{"version":3,"file":"js/chunk-vendors.js?0c45cc5452959dc4","mappings":";;;;;;AAAa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB;AACnH,kBAAkB,mBAAO,CAAC,KAAW;AACrC,2BAA2B,mBAAO,CAAC,KAA6B;AAChE,gBAAgB,mBAAO,CAAC,KAAS;AACjC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF,YAAY,aAAa;AACzB,YAAY,gBAAgB;AAC5B,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC,SAAS,aAAa;AACnF;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB,MAAM,sBAAsB;AAC9F;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;AAC3F,gBAAgB,WAAW;AAC3B;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;;;;;;;ACjPA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AAC2D;AACkB;AAC9B;AACN;AACW;AACpD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2EAAoB;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAU,8BAA8B,kGAAuB;AAClF;AACA;AACO;AACP;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,mBAAmB,0DAAS;AAC5B;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wEAAwE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0DAAS,KAAK,0DAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0DAAK;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gEAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,+CAA+C,0DAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gEAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0DAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gEAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0DAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+EAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;;;;;;;ACncA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC3HW;;AAEZ,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG;AAC1E,mCAAmC,KAAK,sBAAsB,aAAa,EAAE;;AAE7E;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO,GAAG,iCAAiC;AACpE;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,OAAO,GAAG,mBAAmB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,mBAAmB,GAAG,IAAI;;AAEpD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3LA;AACA;AACA;AACA;AACyC;AACQ;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAK;AACjD,4CAA4C,uBAAK;AACjD;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAS;AAC5B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAK;AACjD;AACA;AACA;AACA;AACA,mBAAmB,0BAAS;AAC5B;AACA;;;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACmE;AACR;AACsH;AACtH;AAC6D;AACtD;AACW;AACpC;AACM;AACsB;AACoB;AACvB;AAC8C;AACnD;AACtD;AACP;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,gCAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,gCAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAY;AAC3B;AACA;AACA;AACA,eAAe,gCAAY;AAC3B;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,qCAAc;AAC5C;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAK;AAC/C,kCAAkC,2DAAoC;AACtE;AACA;AACA,kCAAkC,qCAAc;AAChD;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8CAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAqB;AACvE;AACA,yCAAyC,sCAA8B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qCAAc,+BAA+B,uBAAK;AAC1F;AACA;AACA;AACA;AACA;AACA,2BAA2B,yCAAY;AACvC;AACA;AACA,2BAA2B,yCAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAc;AACjC;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAc,KAAK,uBAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAmC;AACtD;AACA;AACA;AACA,uBAAuB,4DAAqC;AAC5D;AACA;AACA,uBAAuB,qCAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAA4B;AAC5D;AACA;AACA,kBAAkB,qCAAc;AAChC;AACA,mCAAmC,yCAAY;AAC/C;AACA;AACA;AACA,wCAAwC,yCAAY;AACpD;AACA;AACA;AACA,wCAAwC,yCAAY;AACpD;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAqC;AACpE;AACA;AACA,+BAA+B,0DAAmC;AAClE;AACA;AACA,wCAAwC,yCAAY;AACpD;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAA4B;AACxD;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,2CAA2C,uCAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAqC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kEAAwB;AAC3D,kCAAkC,6CAAsB;AACxD;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAK;AAC5D;AACA;AACA,uDAAuD,uBAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA,sCAAsC,uBAAK;AAC3C,8BAA8B,qCAAc;AAC5C;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,uBAAK;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA,SAAS;AACT;AACA;AACA,yFAAyF,wBAAQ;AACjG;AACA;AACA;AACA;AACA;AACA,0BAA0B,gCAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAwC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,gCAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAO;AAC/C;AACA;AACA;AACA;AACA;AACA,6DAA6D,uCAAuC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA,8BAA8B,wBAAwB;AACtD;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oCAA4B;AACzE;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAK;AAC/C,oCAAoC,qCAAc;AAClD,2BAA2B,wCAAmB;AAC9C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gCAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D,kCAAkC,mCAAmC;AACrE;AACA,uBAAuB,wCAAmB;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qDAAqD,qCAAc,KAAK,uBAAK;AAC7E,uBAAuB,wCAAmB;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA,uBAAuB,wCAAmB;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wCAAmB;AAC9C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,qCAAc;AAC5C;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,qCAAc;AAC5C;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA,kCAAkC,4DAAqC,KAAK,uBAAK;AACjF;AACA;AACA;AACA;AACA,oEAAoE,uBAAK;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA,gEAAgE,uBAAK;AACrE;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACO,yCAAyC,0DAAmC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAK;AAC5C,kCAAkC,uBAAK;AACvC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC58Ba;AACb,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;;AAEA;AACA;AACA;AACA;;;;;;;;ACRA,aAAa,mBAAO,CAAC,KAAW;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AAC6E;AACvC;AACkB;AACC;AACrB;AACpC;AACA;AACA;AACO;AACA,6BAA6B,oBAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wDAAwB;AAC9E,uBAAuB,yCAAiC,iBAAiB,qBAAa;AACtF,uBAAuB,yCAAiC,eAAe,qBAAa;AACpF,0DAA0D,+BAAuB;AACjF,kEAAkE,iCAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,qBAAa;AACxG;AACA;AACA;AACA;AACA,2GAA2G;AAC3G;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;AC1EA;AACA;AACA;AACA;AACwD;AACE;AACnD,4CAA4C,4BAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3FA;AACA;AACA;AACA;AACoC;AACqB;AACoB;AACxB;AAC8B;AAC7C;AACkB;AACxD;AACA;AACA;AACA;AACO,gCAAgC,oBAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6BAA6B;AACrF;AACA,sDAAsD,wDAAwB;AAC9E;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB,uBAAuB,qBAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB,sBAAsB,qBAAa;AACnF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9MA;AACA;AACA;AACA;AACyD;AACE;AACN;AACA;AACC;AAC/C,kCAAkC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAc;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,cAAc;AAClE,sEAAsE,cAAc;AACpF;AACA;AACA,sBAAsB,uBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAkB;AAChF,aAAa;AACb;AACA;AACA,sBAAsB,uBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAkB;AAChF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvFA;AACA;AACA;AACA;AACyD;AACE;AACN;AACA;AACC;AAC/C,gCAAgC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,cAAc;AAClE,oEAAoE,cAAc;AAClF;AACA;AACA,sBAAsB,uBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAkB;AAChF,aAAa;AACb;AACA;AACA,sBAAsB,uBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAkB;AAChF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1FA;AACA;AACA;AACA;AAC2D;AACvB;AACqB;AACA;AACM;AACJ;AACrB;AACkB;AACL;AACI;AACC;AACG;AAC3B;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,YAAY,wBAAQ;AACpB,iCAAiC,qBAAa;AAC9C,mCAAmC,iCAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wCAAwC,oBAAM;AACrD;AACA;AACA;AACA;AACA;AACA,4CAA4C,4BAAO;AACnD;AACA,gDAAgD,4BAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE,uDAAuD,mBAAmB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wCAAiB;AACvD;AACA;AACA,qCAAqC,wCAAiB;AACtD;AACA;AACA,yCAAyC,wCAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oCAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAAO;AAC3C;AACA;AACA;AACA,uCAAuC,oCAAkB;AACzD;AACA,2CAA2C,iCAAyB,wBAAwB,qBAAa,8BAA8B,gBAAgB;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,IAAI,SAAS,IAAI,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4BAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc;AACxE,yDAAyD,aAAa;AACtE,6DAA6D,iBAAiB,EAAE,aAAa,EAAE,cAAc;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,+BAA+B,oCAAU;AACzC;AACA;AACA,wDAAwD,wCAAgC,CAAC,qBAAa;AACtG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,+BAA+B,oCAAU;AACzC;AACA;AACA,wDAAwD,wCAAgC,CAAC,qBAAa;AACtG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAoB;AAC5B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC1iBA;AACA;AACA;AACA;AAC6D;AACe;AACE;AACE;AACO;AACC;AACjC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oFAAiB,UAAU,sEAAO,qBAAqB,sEAAO,sBAAsB,sEAAO,6BAA6B,sEAAO;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2FAAyB;AACrC;AACA,SAAS;AACT,KAAK;AACL;AACA,WAAW,0EAAQ;AACnB;AACO;AACP;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA,kFAAkF,0BAA0B;AAC5G;AACA;AACA;AACA,oGAAoG,2BAA2B;AAC/H;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,0EAAe;AACrC;AACA;AACA;AACA;AACA,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,0GAA0G,qFAAiB;AAC3H;AACA,CAAC;AACD,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,kHAAkH,qFAAiB;AACnI;AACA,CAAC;AACD,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,4GAA4G,qFAAiB;AAC7H;AACA,CAAC;AACD,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,+GAA+G,qFAAiB;AAChI;AACA,CAAC;AACD,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,kHAAkH,qFAAiB;AACnI;AACA,CAAC;;;;;;;;;ACpGY;;AAEb,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,cAAc,mBAAO,CAAC,KAAgB;AACtC,yBAAyB,mBAAO,CAAC,KAAmB;AACpD,wBAAwB,mBAAO,CAAC,KAAkB;AAClD,4BAA4B,mBAAO,CAAC,KAAsB;;AAE1D;;AAEA,WAAW,aAAa;AACxB;AACA,eAAe,mCAAmC;;AAElD,YAAY,qBAAqB;;AAEjC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AAC8D;AACN;AACA;AACxD;AACA,yCAAyC,yBAAyB;AAClE;AACA,2BAA2B,0BAA0B;AACrD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iCAAiC,8EAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAAsB;AACtE;AACA;AACA;AACA;AACA,iCAAiC,8EAAsB;AACvD,4BAA4B,sEAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mFAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,cAAc;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,SAAS;AACT,oCAAoC,sEAAU;AAC9C;AACA;AACA;AACO;AACP;AACA;AACA,6BAA6B,8EAAsB;AACnD;AACA;AACA;AACA;AACA;;;;;;;;;AC9La;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,gBAAgB,YAAY;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA,+CAA+C,0CAA0C,GAAG,KAAK,IAAI,WAAW;AAChH;AACA;AACA,yCAAyC,QAAQ,MAAM,KAAK;AAC5D;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACiE;AACF;AACrB;AACgD;AACnF,uCAAuC,iFAAO;AACrD;AACA;AACA;AACA,mBAAmB,wDAAa,GAAG,sGAAsG;AACzI;AACA;AACA;AACA,uBAAuB,qFAAqF;AAC5G;AACA,aAAa;AACb;AACA,6BAA6B,wDAAa;AAC1C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,yBAAyB,0EAAQ;AACjC;AACA,QAAQ,0EAAQ;AAChB;AACA,YAAY,8EAAK,CAAC,uDAAY;AAC9B;AACA;AACA,YAAY,8EAAK,CAAC,uDAAY;AAC9B;AACA;AACA;AACA;AACA,8FAAe;;;;;;;;ACtCf;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;AC3FD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4E;AACZ;AACD;AACyB;AACJ;AAC9B;AACoB;AACc;AACpB;AAC8B;AACvC;AACV;AACA;AAC6C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qFAAoB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,8EAA8E,2GAA2G;AACzL,sBAAsB,uEAAQ;AAC9B,uBAAuB,uEAAQ;AAC/B;AACA,2BAA2B,uEAAQ;AACnC,+BAA+B,yEAAU;AACzC;AACA;AACA;AACA,8BAA8B,kEAAK;AACnC;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,6BAA6B,qFAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAqB;AACpC;AACA,sEAAsE,2EAAU;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,kEAAK;AACnE;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,uCAAuC,qEAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6EAAsB,uEAAuE,oEAAiB,YAAY,mEAAY,8KAA8K,wGAAwG;AAClc;AACA;AACA;AACA;AACA,wCAAwC,yEAAe,yCAAyC,qEAAW,0BAA0B,oEAAY,wHAAwH,mDAAmD;AAC5T;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAK,iBAAiB,8DAA8D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,uGAAiB;AAChC,eAAe,8EAAqB;AACpC,eAAe,+FAAkB;AACjC;AACoC;AACpC,0FAAqB;;;;;;;;;;AChMrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA4B;AACzC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA4B;AACzC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;ACrCD;AACA;AACA;AACA;AAC2D;AACN;AACE;AACY;AACnE;AACA,2BAA2B,iEAAS;AACpC,gDAAgD,+EAAmB;AACnE;AACO;AACP;AACA;AACA;AACA,sCAAsC,yEAAoB;AAC1D;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qEAAqE,yBAAyB;AAC9F;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAoD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD,IAAI,YAAY;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB,yEAAkB;AACpC;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAU;AAClB,+BAA+B,sEAAU;AACzC;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA,sCAAsC,KAAK,IAAI,qEAAc,wCAAwC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5Ha;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D,+BAA+B;;;;;;;;ACH/B;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/GY;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AAC8D;AACD;AACjB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI;AACZ;AACA;AACA,OAAO;AACP,OAAO,SAAS,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;AACA;AACA,QAAQ,KAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA;AACA;AACA,QAAQ,KAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qFAA8B;AACxC,yCAAyC,IAAI;AAC7C;AACO;AACP,yBAAyB,gDAAgD;AACzE,WAAW,2EAAoB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA,eAAe,oFAAoC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA,8HAA8H;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChWA,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;;;;;;;;ACFA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACiD;AACjD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yBAAK;AAClC,YAAY,yBAAK;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO,iBAAiB,YAAY;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D,uCAAuC,2DAA2D;AAClG,yBAAyB,2CAA2C;AACpE;AACA,qBAAqB,sCAAsC;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7JA;AACA;AACA;AACA;AACiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAC;AAC7B;AACA;AACA,uBAAuB;AACvB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;;;;;;ACnHA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC6C;AAC6I;AAC9I;AAC0B;AACM;AACf;AACS;AACd;AACE;AAC+B;AACxC;AACU;AACX;AACP;AACsB;AACZ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,uBAAuB,cAAc;AACrC,yBAAyB;AACzB,uBAAuB,eAAe;AACtC,kBAAkB;AAClB;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B;AAC1B,wBAAwB;AACxB,qCAAqC;AACrC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO,+BAAe,gBAAgB;AAC/F,gDAAgD,kDAAkD;AAClG;AACA;AACA;AACA,yDAAyD,wDAAwD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA,iDAAiD,4BAAO;AACxD;AACA,+CAA+C,4BAAU;AACzD;AACA;AACA,6CAA6C,4BAAU;AACvD,kCAAkC,4BAAU;AAC5C,+BAA+B,iCAAe;AAC9C,6CAA6C,4BAAO;AACpD,4CAA4C,4BAAO;AACnD,wCAAwC,0BAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAO;AACpC,mDAAmD,6BAAU;AAC7D;AACA;AACA,gDAAgD,4CAA4B,CAAC,yBAAS;AACtF,SAAS;AACT,0DAA0D,iDAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,qCAAqB,qBAAqB,sBAAc;AACrF;AACA;AACA,6BAA6B,qCAAqB;AAClD,6BAA6B,qCAAqB;AAClD,6BAA6B,qCAAqB;AAClD,6BAA6B,qCAAqB;AAClD,6BAA6B,qCAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,iCAAiC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uFAAuF;AACzH;AACA;AACA,kCAAkC,uFAAuF;AACzH;AACA;AACA,kCAAkC,uFAAuF;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,4BAA4B,yBAAK;AACjC;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,0CAA0C,yBAAK;AAC/C,6CAA6C,yBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAAU;AAC3C,+BAA+B,4BAAU;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,4BAA4B,yBAAK;AACjC,wCAAwC,qBAAqB;AAC7D;AACA;AACA,6BAA6B,yBAAK;AAClC;AACA,sCAAsC,eAAe;AACrD;AACA;AACA;AACA,2EAA2E,KAAK;AAChF,gCAAgC;AAChC,+EAA+E,yBAAK;AACpF;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA,qDAAqD,4CAA4B,CAAC,yBAAS;AAC3F,6DAA6D,iCAAiC;AAC9F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gCAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,+BAAe;AAC1E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAK;AACpC,+BAA+B,yBAAK;AACpC;AACA,mCAAmC,yBAAK;AACxC,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA,gDAAgD,WAAW;AAC3D;AACA,2CAA2C,UAAU;AACrD;AACA,gDAAgD,wCAAwC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAAe;AACpC,sBAAsB,yBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA,+CAA+C,UAAU;AACzD;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA,uDAAuD,MAAM;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,iCAAiC;AAC1F;AACA,mDAAmD,2BAA2B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO,0BAAK,8BAA8B,+BAAU;AAC7E,4BAA4B,OAAO,0BAAK,8BAA8B,+BAAU;AAChF,+BAA+B,OAAO,0BAAK,QAAQ,0BAAK,8BAA8B,+BAAU;AAChG,wBAAwB,OAAO,0BAAK,8BAA8B,+BAAU;AAC5E,wBAAwB,OAAO,0BAAK,8BAA8B,+BAAU;AAC5E,uBAAuB,OAAO,0BAAK,8BAA8B,+BAAU;AAC3E,0BAA0B,OAAO,0BAAK,KAAK,0BAAK,8BAA8B,+BAAU,oFAAoF,0BAAK,8BAA8B,+BAAU,eAAe,sBAAc;AACtP,yBAAyB,OAAO,0BAAK,8BAA8B,+BAAU;AAC7E,kBAAkB,OAAO,0BAAK,8BAA8B,+BAAU,qBAAqB,sBAAc;AACzG;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,iDAAiD,iCAAY;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAU;AACvD;AACA;AACA;AACA;AACA,4BAA4B,gCAAgB;AAC5C,+CAA+C,uBAAO,CAAC,yBAAS;AAChE;AACA;AACA,+CAA+C,0CAAiB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAK;AACpB;AACA;AACA;AACA;AACA,eAAe,6BAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yBAAK;AAC5C;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAK;AAC1C;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAAU,mBAAmB,yBAAS;AAC1E;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,GAAG,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;;;;;;;;;;;;;;;;;;;;;;;;;;AC3jCgD;AACW;AACoC;AAClD;AACF;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uBAAuB,+DAAU;AACjC;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,SAAS,6BAA6B;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2EAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,qCAAqC,2FAA2F;AAChI;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,qCAAqC,2FAA2F;AAChI;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK,GAAG,yBAAyB;AACxD;AACA;AACA;AACA,8BAA8B,6DAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,6CAA6C,eAAe,6CAA6C,SAAS;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mJAAmJ,mEAAiB;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,mEAAmE,KAAK,GAAG;AAC3E;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ,wEAAwE;AAC1I,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB,8EAA8E,YAAY,KAAK,2BAA2B;AACpL;AACA;AACA,0DAA0D,QAAQ,8CAA8C,SAAS;AACzH,uHAAuH,mEAAiB;AACxI;AACA,uBAAuB,+DAAU;AACjC;AACA;AACA;AACA,uBAAuB,+DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAY;AACvC;AACA;AACA;AACA,aAAa;AACb,uCAAuC,oEAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,mEAAiB;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,+BAA+B,+DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAY,CAAC,iFAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,IAAI;AACJ;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kCAAkC,+DAAU;AAC5C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACpuCA;AACA;AACA;AACA;AAC6C;AAC7C;AACA;AACA;AACO;AACP,SAAS,gCAAQ;AACjB,UAAU,gCAAQ;AAClB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,UAAU,gCAAQ;AAClB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,gBAAgB,gCAAQ;AACxB,oBAAoB,gCAAQ;AAC5B,6BAA6B,gCAAQ;AACrC,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,SAAS,gCAAQ;AACjB,yBAAyB,gCAAQ;AACjC,YAAY,gCAAQ;AACpB,eAAe,gCAAQ;AACvB,YAAY,gCAAQ;AACpB,kBAAkB,gCAAQ;AAC1B,mBAAmB,gCAAQ;AAC3B,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,qBAAqB,gCAAQ;AAC7B,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,YAAY,gCAAQ;AACpB,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,WAAW,gCAAQ;AACnB,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,gBAAgB,gCAAQ;AACxB,YAAY,gCAAQ;AACpB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,YAAY,gCAAQ;AACpB,SAAS,gCAAQ;AACjB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,gBAAgB,gCAAQ;AACxB,qBAAqB,gCAAQ;AAC7B,6BAA6B,gCAAQ;AACrC,eAAe,gCAAQ;AACvB,+BAA+B,gCAAQ;AACvC,qBAAqB,gCAAQ;AAC7B,UAAU,gCAAQ;AAClB,YAAY,gCAAQ;AACpB,UAAU,gCAAQ;AAClB,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,UAAU,gCAAQ;AAClB,mBAAmB,gCAAQ;AAC3B,WAAW,gCAAQ;AACnB,iBAAiB,gCAAQ;AACzB,OAAO,gCAAQ;AACf,cAAc,gCAAQ;AACtB,UAAU,gCAAQ;AAClB,WAAW,gCAAQ;AACnB,qBAAqB,gCAAQ;AAC7B,YAAY,gCAAQ;AACpB,gBAAgB,gCAAQ;AACxB,QAAQ,gCAAQ;AAChB,mBAAmB,gCAAQ;AAC3B,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,qBAAqB,gCAAQ;AAC7B,eAAe,gCAAQ;AACvB,WAAW,gCAAQ;AACnB,kBAAkB,gCAAQ;AAC1B,wBAAwB,gCAAQ;AAChC,yBAAyB,gCAAQ;AACjC,aAAa,gCAAQ;AACrB,aAAa,gCAAQ;AACrB,eAAe,gCAAQ;AACvB,yBAAyB,gCAAQ;AACjC,WAAW,gCAAQ;AACnB,cAAc,gCAAQ;AACtB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,YAAY,gCAAQ;AACpB,mBAAmB,gCAAQ;AAC3B,kBAAkB,gCAAQ;AAC1B,gBAAgB,gCAAQ;AACxB,gBAAgB,gCAAQ;AACxB,YAAY,gCAAQ;AACpB,cAAc,gCAAQ;AACtB,aAAa,gCAAQ;AACrB,UAAU,gCAAQ;AAClB,SAAS,gCAAQ;AACjB,iBAAiB,gCAAQ;AACzB,WAAW,gCAAQ;AACnB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,oBAAoB,gCAAQ;AAC5B,WAAW,gCAAQ;AACnB,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,mBAAmB,gCAAQ;AAC3B,qBAAqB,gCAAQ;AAC7B,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,oBAAoB,gCAAQ;AAC5B,uBAAuB,gCAAQ;AAC/B,mBAAmB,gCAAQ;AAC3B,gBAAgB,gCAAQ;AACxB,mBAAmB,gCAAQ;AAC3B,kBAAkB,gCAAQ;AAC1B,qBAAqB,gCAAQ;AAC7B,kBAAkB,gCAAQ;AAC1B,qBAAqB,gCAAQ;AAC7B,yBAAyB,gCAAQ;AACjC,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,qBAAqB,gCAAQ;AAC7B,cAAc,gCAAQ;AACtB,gBAAgB,gCAAQ;AACxB,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,gBAAgB,gCAAQ;AACxB,yBAAyB,gCAAQ;AACjC,aAAa,gCAAQ;AACrB,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,oBAAoB,gCAAQ;AAC5B,oBAAoB,gCAAQ;AAC5B,qBAAqB,gCAAQ;AAC7B,kBAAkB,gCAAQ;AAC1B,aAAa,gCAAQ;AACrB,UAAU,gCAAQ;AAClB,UAAU,gCAAQ;AAClB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,0CAA0C,gCAAQ;AAClD,gCAAgC,gCAAQ;AACxC,wCAAwC,gCAAQ;AAChD,mCAAmC,gCAAQ;AAC3C,yBAAyB,gCAAQ;AACjC,iCAAiC,gCAAQ;AACzC,kCAAkC,gCAAQ;AAC1C,wBAAwB,gCAAQ;AAChC,gCAAgC,gCAAQ;AACxC,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,SAAS,gCAAQ;AACjB,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,WAAW,gCAAQ;AACnB,eAAe,gCAAQ;AACvB,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,oBAAoB,gCAAQ;AAC5B,mBAAmB,gCAAQ;AAC3B,mBAAmB,gCAAQ;AAC3B,YAAY,gCAAQ;AACpB,+BAA+B,gCAAQ;AACvC,kCAAkC,gCAAQ;AAC1C,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,cAAc,gCAAQ;AACtB,YAAY,gCAAQ;AACpB,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,iBAAiB,gCAAQ;AACzB,UAAU,gCAAQ;AAClB,iBAAiB,gCAAQ;AACzB,eAAe,gCAAQ;AACvB,uBAAuB,gCAAQ;AAC/B,gBAAgB,gCAAQ;AACxB,UAAU,gCAAQ;AAClB,eAAe,gCAAQ;AACvB,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,qBAAqB,gCAAQ;AAC7B,gBAAgB,gCAAQ;AACxB,kBAAkB,gCAAQ;AAC1B,gBAAgB,gCAAQ;AACxB,mBAAmB,gCAAQ;AAC3B,kBAAkB,gCAAQ;AAC1B,mBAAmB,gCAAQ;AAC3B,eAAe,gCAAQ;AACvB,WAAW,gCAAQ;AACnB,uBAAuB,gCAAQ;AAC/B,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,UAAU,gCAAQ;AAClB,oBAAoB,gCAAQ;AAC5B,aAAa,gCAAQ;AACrB,kBAAkB,gCAAQ;AAC1B,iBAAiB,gCAAQ;AACzB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,mBAAmB,gCAAQ;AAC3B,0BAA0B,gCAAQ;AAClC,qBAAqB,gCAAQ;AAC7B,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,YAAY,gCAAQ;AACpB,WAAW,gCAAQ;AACnB,cAAc,gCAAQ;AACtB,YAAY,gCAAQ;AACpB,UAAU,gCAAQ;AAClB,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,UAAU,gCAAQ;AAClB,gBAAgB,gCAAQ;AACxB,UAAU,gCAAQ;AAClB,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,oBAAoB,gCAAQ;AAC5B,cAAc,gCAAQ;AACtB,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,WAAW,gCAAQ;AACnB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,UAAU,gCAAQ;AAClB,oBAAoB,gCAAQ;AAC5B,WAAW,gCAAQ;AACnB,WAAW,gCAAQ;AACnB,mBAAmB,gCAAQ;AAC3B,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,UAAU,gCAAQ;AAClB,mBAAmB,gCAAQ;AAC3B,SAAS,gCAAQ;AACjB,SAAS,gCAAQ;AACjB,sBAAsB,gCAAQ;AAC9B,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,iBAAiB,gCAAQ;AACzB,mBAAmB,gCAAQ;AAC3B,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,eAAe,gCAAQ;AACvB,6BAA6B,gCAAQ;AACrC,iBAAiB,gCAAQ;AACzB,UAAU,gCAAQ;AAClB,qBAAqB,gCAAQ;AAC7B,UAAU,gCAAQ;AAClB,eAAe,gCAAQ;AACvB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,iBAAiB,gCAAQ;AACzB,aAAa,gCAAQ;AACrB,cAAc,gCAAQ;AACtB,SAAS,gCAAQ;AACjB,UAAU,gCAAQ;AAClB,SAAS,gCAAQ;AACjB,UAAU,gCAAQ;AAClB,kBAAkB,gCAAQ;AAC1B,aAAa,gCAAQ;AACrB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,cAAc,gCAAQ;AACtB,WAAW,gCAAQ;AACnB,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,aAAa,gCAAQ;AACrB,WAAW,gCAAQ;AACnB,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,gBAAgB,gCAAQ;AACxB,aAAa,gCAAQ;AACrB,eAAe,gCAAQ;AACvB,mBAAmB,gCAAQ;AAC3B,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,YAAY,gCAAQ;AACpB,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB,sBAAsB,gCAAQ;AAC9B,gBAAgB,gCAAQ;AACxB,SAAS,gCAAQ;AACjB,UAAU,gCAAQ;AAClB,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,UAAU,gCAAQ;AAClB,gBAAgB,gCAAQ;AACxB,kBAAkB,gCAAQ;AAC1B,gBAAgB,gCAAQ;AACxB,YAAY,gCAAQ;AACpB,kBAAkB,gCAAQ;AAC1B,cAAc,gCAAQ;AACtB,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,oBAAoB,gCAAQ;AAC5B,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,sBAAsB,gCAAQ;AAC9B,iBAAiB,gCAAQ;AACzB,gBAAgB,gCAAQ;AACxB,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,gBAAgB,gCAAQ;AACxB,oBAAoB,gCAAQ;AAC5B,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,cAAc,gCAAQ;AACtB,eAAe,gCAAQ;AACvB,cAAc,gCAAQ;AACtB,eAAe,gCAAQ;AACvB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,WAAW,gCAAQ;AACnB,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,mBAAmB,gCAAQ;AAC3B,gBAAgB,gCAAQ;AACxB,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,WAAW,gCAAQ;AACnB,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,YAAY,gCAAQ;AACpB,cAAc,gCAAQ;AACtB,YAAY,gCAAQ;AACpB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,eAAe,gCAAQ;AACvB,cAAc,gCAAQ;AACtB,uCAAuC,gCAAQ;AAC/C,6BAA6B,gCAAQ;AACrC,qCAAqC,gCAAQ;AAC7C,2BAA2B,gCAAQ;AACnC,uBAAuB,gCAAQ;AAC/B,wBAAwB,gCAAQ;AAChC,4BAA4B,gCAAQ;AACpC,qBAAqB,gCAAQ;AAC7B,4BAA4B,gCAAQ;AACpC,gCAAgC,gCAAQ;AACxC,kBAAkB,gCAAQ;AAC1B,0BAA0B,gCAAQ;AAClC,mBAAmB,gCAAQ;AAC3B,uBAAuB,gCAAQ;AAC/B,cAAc,gCAAQ;AACtB,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,eAAe,gCAAQ;AACvB,cAAc,gCAAQ;AACtB,4BAA4B,gCAAQ;AACpC,oBAAoB,gCAAQ;AAC5B,sBAAsB,gCAAQ;AAC9B,aAAa,gCAAQ;AACrB,4BAA4B,gCAAQ;AACpC,aAAa,gCAAQ;AACrB,kBAAkB,gCAAQ;AAC1B,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,iBAAiB,gCAAQ;AACzB,YAAY,gCAAQ;AACpB,oBAAoB,gCAAQ;AAC5B,mBAAmB,gCAAQ;AAC3B,uBAAuB,gCAAQ;AAC/B,UAAU,gCAAQ;AAClB,iBAAiB,gCAAQ;AACzB,gBAAgB,gCAAQ;AACxB,gBAAgB,gCAAQ;AACxB,YAAY,gCAAQ;AACpB,mBAAmB,gCAAQ;AAC3B,eAAe,gCAAQ;AACvB,WAAW,gCAAQ;AACnB,WAAW,gCAAQ;AACnB,YAAY,gCAAQ;AACpB,eAAe,gCAAQ;AACvB,YAAY,gCAAQ;AACpB,cAAc,gCAAQ;AACtB,UAAU,gCAAQ;AAClB,cAAc,gCAAQ;AACtB,iBAAiB,gCAAQ;AACzB,gBAAgB,gCAAQ;AACxB,uBAAuB,gCAAQ;AAC/B,iBAAiB,gCAAQ;AACzB,wBAAwB,gCAAQ;AAChC,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,WAAW,gCAAQ;AACnB,mBAAmB,gCAAQ;AAC3B,mBAAmB,gCAAQ;AAC3B,sBAAsB,gCAAQ;AAC9B,wBAAwB,gCAAQ;AAChC,0BAA0B,gCAAQ;AAClC,cAAc,gCAAQ;AACtB,cAAc,gCAAQ;AACtB,sBAAsB,gCAAQ;AAC9B,gBAAgB,gCAAQ;AACxB,sBAAsB,gCAAQ;AAC9B,wBAAwB,gCAAQ;AAChC,sBAAsB,gCAAQ;AAC9B,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,mBAAmB,gCAAQ;AAC3B,wBAAwB,gCAAQ;AAChC,kBAAkB,gCAAQ;AAC1B,oBAAoB,gCAAQ;AAC5B,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,UAAU,gCAAQ;AAClB,eAAe,gCAAQ;AACvB,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,qBAAqB,gCAAQ;AAC7B,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,eAAe,gCAAQ;AACvB,kBAAkB,gCAAQ;AAC1B,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,mBAAmB,gCAAQ;AAC3B,WAAW,gCAAQ;AACnB,gBAAgB,gCAAQ;AACxB,0BAA0B,gCAAQ;AAClC,yBAAyB,gCAAQ;AACjC,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,eAAe,gCAAQ;AACvB,mBAAmB,gCAAQ;AAC3B,wBAAwB,gCAAQ;AAChC,gBAAgB,gCAAQ;AACxB,eAAe,gCAAQ;AACvB,kBAAkB,gCAAQ;AAC1B,cAAc,gCAAQ;AACtB,aAAa,gCAAQ;AACrB,gBAAgB,gCAAQ;AACxB,kBAAkB,gCAAQ;AAC1B,eAAe,gCAAQ;AACvB,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,2BAA2B,gCAAQ;AACnC,4BAA4B,gCAAQ;AACpC,qBAAqB,gCAAQ;AAC7B,uBAAuB,gCAAQ;AAC/B,wBAAwB,gCAAQ;AAChC,sBAAsB,gCAAQ;AAC9B,iBAAiB,gCAAQ;AACzB,uBAAuB,gCAAQ;AAC/B,wBAAwB,gCAAQ;AAChC,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB,YAAY,gCAAQ;AACpB,iBAAiB,gCAAQ;AACzB,gBAAgB,gCAAQ;AACxB,6BAA6B,gCAAQ;AACrC,qBAAqB,gCAAQ;AAC7B,qBAAqB,gCAAQ;AAC7B,sBAAsB,gCAAQ;AAC9B,mBAAmB,gCAAQ;AAC3B,2BAA2B,gCAAQ;AACnC,oBAAoB,gCAAQ;AAC5B,0BAA0B,gCAAQ;AAClC,WAAW,gCAAQ;AACnB,iBAAiB,gCAAQ;AACzB,SAAS,gCAAQ;AACjB,mBAAmB,gCAAQ;AAC3B,oBAAoB,gCAAQ;AAC5B,eAAe,gCAAQ;AACvB,yBAAyB,gCAAQ;AACjC,0BAA0B,gCAAQ;AAClC,iBAAiB,gCAAQ;AACzB,eAAe,gCAAQ;AACvB,kBAAkB,gCAAQ;AAC1B,uBAAuB,gCAAQ;AAC/B,+BAA+B,gCAAQ;AACvC,8BAA8B,gCAAQ;AACtC,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,UAAU,gCAAQ;AAClB,aAAa,gCAAQ;AACrB,YAAY,gCAAQ;AACpB,SAAS,gCAAQ;AACjB,sBAAsB,gCAAQ;AAC9B,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB,WAAW,gCAAQ;AACnB,UAAU,gCAAQ;AAClB,QAAQ,gCAAQ;AAChB,UAAU,gCAAQ;AAClB,WAAW,gCAAQ;AACnB,WAAW,gCAAQ;AACnB,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB,aAAa,gCAAQ;AACrB,sBAAsB,gCAAQ;AAC9B,WAAW,gCAAQ;AACnB,mBAAmB,gCAAQ;AAC3B,gBAAgB,gCAAQ;AACxB,kBAAkB,gCAAQ;AAC1B,kBAAkB,gCAAQ;AAC1B,WAAW,gCAAQ;AACnB,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,iBAAiB,gCAAQ;AACzB,YAAY,gCAAQ;AACpB,oBAAoB,gCAAQ;AAC5B,aAAa,gCAAQ;AACrB,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,cAAc,gCAAQ;AACtB,mBAAmB,gCAAQ;AAC3B,iBAAiB,gCAAQ;AACzB,kBAAkB,gCAAQ;AAC1B,uBAAuB,gCAAQ;AAC/B,wBAAwB,gCAAQ;AAChC,gBAAgB,gCAAQ;AACxB,gBAAgB,gCAAQ;AACxB,oBAAoB,gCAAQ;AAC5B,YAAY,gCAAQ;AACpB;;;ACnkB6C;AACU;AACvD;AACA;AACA;AACA;AACO;AACP,iBAAiB,gCAAQ;AACzB,mBAAmB,gCAAQ;AAC3B,gBAAgB,gCAAQ;AACxB,iBAAiB,gCAAQ;AACzB,sBAAsB,gCAAQ;AAC9B,wBAAwB,gCAAQ;AAChC,yBAAyB,gCAAQ;AACjC,qBAAqB,gCAAQ;AAC7B,qBAAqB,gCAAQ;AAC7B,mBAAmB,gCAAQ;AAC3B,iBAAiB,gCAAQ;AACzB,iBAAiB,gCAAQ;AACzB,yBAAyB,gCAAQ;AACjC,0BAA0B,gCAAQ;AAClC,uBAAuB,gCAAQ;AAC/B,yBAAyB,gCAAQ;AACjC,iBAAiB,gCAAQ;AACzB,oBAAoB,gCAAQ;AAC5B,oBAAoB,gCAAQ;AAC5B,uBAAuB,gCAAQ;AAC/B,gBAAgB,gCAAQ;AACxB,0BAA0B,gCAAQ;AAClC,aAAa,gCAAQ;AACrB,sBAAsB,gCAAQ;AAC9B,oBAAoB,gCAAQ;AAC5B,cAAc,gCAAQ;AACtB,6BAA6B,gCAAQ;AACrC,4BAA4B,gCAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,OAAO,eAAe;AACtB;AACA;;;;;;;;;AC9Ca;AACb;AACA,eAAe,mBAAO,CAAC,KAAwB;AAC/C,6BAA6B,mBAAO,CAAC,KAAuC;AAC5E,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,WAAW,mBAAO,CAAC,KAAmB;AACtC,4BAA4B,mBAAO,CAAC,IAAsC;AAC1E,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;ACnFA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC6B;AACsC;AACV;AACS;AACoD;AAClD;AACM;AAC+B;AAChC;AACC;AACF;AACxE,gGAAgG,2EAAU;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gFAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wFAAuB;AACtC,eAAe,oFAAgB;AAC/B;AACA,4BAA4B,gFAAY;AACxC;AACA;AACA;AACA,mBAAmB,oFAAgB;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAoB;AACpD;AACA;AACA;AACA;AACA;AACA,+BAA+B,kFAAS;AACxC,2CAA2C,yFAAY;AACvD,kDAAkD,gGAAmB;AACrE;AACA;AACA,kCAAkC,2EAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAK,gBAAgB,uDAAC,uDAAuD,uDAAC,uCAAuC,kBAAkB,EAAE,0CAA0C;AAC3L,QAAQ,sEAAM,gBAAgB,uDAAC,kCAAkC,uBAAuB;AACxF;AACA,QAAQ,sEAAM,gBAAgB,uDAAC,uCAAuC,uDAAC,qBAAqB,uDAAC,kBAAkB,uDAAC,+CAA+C,uDAAC,uCAAuC,uCAAuC,KAAK,uDAAC,kBAAkB,uDAAC,iDAAiD,uDAAC,uCAAuC,+DAA+D,KAAK,uDAAC,kBAAkB,uDAAC,iDAAiD,uDAAC,uCAAuC,+DAA+D,KAAK,uDAAC,kBAAkB,uDAAC,iDAAiD,uDAAC,uCAAuC,WAAW,kEAAK,mDAAmD,KAAK,uDAAC,kBAAkB,uDAAC,iDAAiD,uDAAC,uCAAuC,WAAW,kEAAK,mDAAmD;AAC17B,QAAQ,sEAAM,gBAAgB,uDAAC;AAC/B;AACA,YAAY,sEAAM,gBAAgB,uDAAC;AACnC;AACA;AACA;AACA;AACA,yBAAyB,gFAAoB;AAC7C,2BAA2B,qFAAa;AACxC,0BAA0B,qFAAa;AACvC,0BAA0B,qFAAa;AACvC,2BAA2B,qFAAa;AACxC,2BAA2B,qFAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;AAC1B,4FAAoB;;;;;;;;AC7OpB;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFD;AACA;AACA;AACA;AAC4F;AACtC;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAkB,QAAQ,sCAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA,gBAAgB,sCAAkB,QAAQ,sCAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,uBAAK,0EAA0E;AACpH;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,uBAAK,oEAAoE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,uBAAK,6EAA6E;AACvH;AACA;AACA;;;;;;;;;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC4D;AACgB;AACE;AACwC;AAC1D;AACN;AACQ;AACW;AACF;AACN;AACvB;AAC8B;AACY;AACI;AACR;AAClB;AACT;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wMAAwM,sCAAiB;AACzN;AACA,qBAAqB,8BAAsB;AAC3C;AACA;AACA;AACA,iDAAiD,qBAAa;AAC9D;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAwB;AACvC;AACiC;AACjC,kCAAkC,qCAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,8DAA8D;AACpG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,gEAAgE;AACtG;AACA;AACA,SAAS;AACT;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB,iDAAoB;AACb;AACP;AACA,oBAAoB,0BAA0B,2BAA2B;AACzE;AACA;AACA,8BAA8B,sDAA6B;AAC3D;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAAsB;AACtC,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,4BAA4B,uBAAK,sCAAsC,uBAAK;AAC5E,iDAAiD,uBAAK;AACtD;AACA;AACA;AACA;AACA,SAAS,EAAE,wCAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAQ;AACxB;AACA;AACA,qBAAqB,wBAAQ;AAC7B;AACA;AACA,qBAAqB,wBAAQ;AAC7B;AACA;AACA,qBAAqB,wBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK,gCAAgC,uBAAK;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA,8CAA8C,uBAAK;AACnD;AACA;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,cAAG;AAClB,kCAAkC,gDAAwB;AAC1D,yCAAyC,wCAAiB;AAC1D;AACA,+FAA+F,gEAAgE,EAAE,sCAAiB;AAClL;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACzRY;;AAEb,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxDA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzID;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AAC8E;AACvE,0BAA0B,iGAAe;;;;;;;;;ACLnC;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,KAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACXA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC3EY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,qBAAqB,mBAAO,CAAC,KAA0B;AACvD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,oEAAoE,KAAK,+BAA+B,mDAAmD,GAAG,KAAK;AACnK,0CAA0C,KAAK,EAAE,IAAI,EAAE,WAAW;AAClE,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC1BA,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,IAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACrFA;AACA;AACA;AACA;AACwC;AACE;AACQ;AAC3C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAiB,KAAK,4BAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAgB,IAAI,0BAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAiB,KAAK,4BAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY,IAAI,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iIAAiI;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,SAAS;AACjF;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACpMA;AACA;AACA;AACgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,gCAAgC,iCAAa,UAAU,qEAAqE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,iCAAa;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA,QAAQ,6BAAY;AACpB,yBAAyB,wBAAO;AAChC,QAAQ,6BAAY;AACpB;AACA;AACA,SAAS,sCAAK;AACd,wBAAwB,2BAA2B;AACnD;AACA,YAAY,6BAAY;AACxB,6BAA6B,wBAAO;AACpC,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA;AACA;AACA;AACA,sDAAsD,CAAe,IAAI,CAAa;AACtF;AACA;AACA;AACA,kBAAkB,sCAAK;AACvB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,0BAA0B,wBAAO;AACjC,yBAAyB,wBAAO;AAChC,kBAAkB,sCAAK;AACvB,qBAAqB,wBAAO;AAC5B,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd,sBAAsB,MAAI;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,wBAAO;AACjC,yBAAyB,wBAAO;AAChC,kBAAkB,sCAAK;AACvB,IAAI,6BAAY;AAChB,IAAI,6BAAY;AAChB;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAK;AACnB;AACA;AACA,SAAS,sCAAK;AACd;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,aAAa,sCAAK;AAClB,0BAA0B,MAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,sBAAsB,sCAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sCAAK;AAC3B,SAAS,sCAAK;AACd;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA,cAAc,sCAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA,sBAAsB,sCAAK;AAC3B;AACA,eAAe,sCAAK;AACpB,yBAAyB,sCAAK;AAC9B;AACA,QAAQ,sCAAK;AACb,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA,aAAa,sCAAK;AAClB;AACA;AACA;AACA;AACA,SAAS,sCAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA,oBAAoB,qBAAqB;AACzC,QAAQ,2BAAM;AACd;AACA;AACA,SAAS,sCAAK;AACd,wBAAwB,2BAA2B;AACnD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;;;ACxjBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoI;AACvB;AACvB;AACwB;AAC3C;AAClB;AACsB;AAC+C;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,8BAAa;AACQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B;AAC3B,wBAAwB,qBAAI;AAC5B;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,4BAA4B,iGAAiG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA,mDAAmD,sCAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,qBAAqB,sCAAiB,oBAAoB,sCAAiB;AAC3E;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,sCAAiB,8BAA8B,sCAAiB;AACtH;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAiB;AACpC;AACA;AACA;AACA;AACA,0BAA0B,sCAAiB;AAC3C;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA,YAAY,wBAAO;AACnB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAAU,iBAAiB,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAiB;AACpD;AACA;AACA;AACA;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA,kBAAkB,sCAAiB,sBAAsB,sCAAiB;AAC1E;AACA;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA,QAAQ,+BAAU,iBAAiB,iDAAiD;AACpF;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA,0DAA0D,4BAA4B;AACtF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB,gBAAgB,sCAAiB;AACvE;AACA;AACA,qBAAqB,sCAAiB,+BAA+B,sCAAiB;AACtF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD,oBAAoB,sCAAiB;AACrC;AACA;AACA,kCAAkC,sCAAiB;AACnD;AACA,yDAAyD,mCAAmC,oBAAoB;AAChH;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAuB;AACnF;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,qCAAqC,4BAAM;AAC3C;AACA,iBAAiB,sCAAiB;AAClC;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,iDAAiD,sCAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,sDAAsD,iEAAiE;AACvH;AACA,YAAY,+BAAU,iBAAiB,4FAA4F;AACnI;AACA;AACA,YAAY,+BAAU,iBAAiB,yDAAyD;AAChG;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC,uDAAuD,6BAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAO,6CAA6C,sCAAiB;AACrH,2CAA2C,+BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,sFAAsF,6BAAQ;AAC9F;AACA;AACA;AACA;AACA,6BAA6B,4BAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,4BAA4B,6BAAQ;AACpC;AACA;AACA,+CAA+C,wCAAwC,gBAAgB;AACvG;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAkB;AAC/C;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,sCAAsC,sCAAiB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sCAAiB;AAC1D;AACA;AACA,YAAY,wBAAO,oCAAoC,sCAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA,aAAa,sCAAiB;AAC9B,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uDAAuD;AAChH;AACA;AACA;AACA;AACA,QAAQ,+BAAU,iBAAiB,gDAAgD;AACnF,QAAQ,+BAAU,iBAAiB,uDAAuD;AAC1F;AACA,oCAAoC,sCAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B,6DAA6D,uEAAuE;AACpI;AACA;AACA;AACA;AACA,4DAA4D,wCAAwC,kBAAkB;AACtH,uCAAuC,4BAAM,GAAG,0DAA0D;AAC1G;AACA,iBAAiB,sCAAiB;AAClC,gBAAgB,4BAAO;AACvB;AACA;AACA;AACA,gBAAgB,4BAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,iCAAiC,sCAAiB;AAClD,gBAAgB,gCAAW;AAC3B;AACA;AACA;AACA,YAAY,6BAAQ;AACpB,iCAAiC,sCAAiB;AAClD,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB,sDAAsD,wBAAwB;AAC9E;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAiB;AACrC,wBAAwB,wBAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sCAAiB;AAC/C,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA,8CAA8C,sCAAiB;AAC/D;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sCAAiB;AACvE;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0EAA0E,sCAAiB;AAC3F,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,UAAU,+BAAU,kBAAkB;AAC5F;AACA;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,SAAS,+BAAU,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sCAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C,iCAAiC,sCAAiB;AAClD;AACA;AACA,iCAAiC,sCAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+BAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iCAAiC,sCAAiB;AAClD;AACA;AACA,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,YAAY,gCAAW;AACvB,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB,aAAa,sCAAiB;AAC9B,YAAY,gCAAW;AACvB;AACA;AACA,YAAY,gCAAW,IAAI,sCAAiB;AAC5C;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,QAAQ,gCAAW;AACnB,aAAa,sCAAiB;AAC9B,YAAY,gCAAW;AACvB;AACA,aAAa,sCAAiB,sBAAsB,sCAAiB;AACrE;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,YAAY,2BAAM;AAClB;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA;AACA,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sCAAiB;AAC7E,iBAAiB,sCAAiB;AAClC;AACA;AACA,8BAA8B,6BAAQ;AACtC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sCAAiB;AAC5D;AACA;AACA,wBAAwB,gCAAW;AACnC,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA,4EAA4E,8BAAa;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB,kBAAkB,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA,kEAAkE,8BAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,8BAAa;AACzF;AACA;AACA;AACA,qEAAqE,8BAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAiB;AAClD;AACA,gCAAgC,gCAAW;AAC3C;AACA;AACA;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA,YAAY,6BAAQ;AACpB,uCAAuC,sCAAiB;AACxD;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB,YAAY,gCAAW;AACvB,wCAAwC,sCAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU,IAAI;AACtB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,QAAQ,4BAAO,GAAG,0BAA0B,EAAE,0BAAY;AAC1D;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACO;AAClB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,iBAAiB,QAAQ;AACzB;AACA;AACA,4BAA4B,iCAAa,UAAU,6BAA6B;AAChF;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb;AACA,4CAA4C;AAC5C,4BAA4B,uBAAuB;AACnD;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB,QAAQ;AACzB;AACA;AACA,4BAA4B,iCAAa,UAAU,+BAA+B;AAClF;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA,aAAa;AACb;AACA,8CAA8C,YAAY,uBAAuB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAiB;AAC3C,2BAA2B,sCAAiB;AAC5C,2BAA2B,sCAAiB;AAC5C,iCAAiC,sCAAiB;AAClD,iCAAiC,sCAAiB;AAClD,iCAAiC,sCAAiB;AAClD,4BAA4B,sCAAiB,wCAAwC;AACrF,qCAAqC,sCAAiB;AACtD,cAAc;AACd,4BAA4B,sCAAiB;AAC7C,0BAA0B,sCAAiB;AAC3C,wBAAwB,sCAAiB;AACzC,yBAAyB,sCAAiB;AAC1C,0BAA0B,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,aAAa;AACb,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;ACh9DvC,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;;;;;;;;;;;;ACha3C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzCa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,iBAAiB;AAC1B;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,cAAc,mBAAO,CAAC,KAAiB;AACvC;AACA,kBAAe;AACf;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9TA;AACA;AACA;AACA;AACoC;AAC4B;AACxB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oCAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACO;AACP;AACA;AACA;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,6BAA6B;AACzC;AACA;AACA;AACA,YAAY,2DAA2D;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAA8D;AAChF;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAQ,SAAS;AACvC;AACP;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,4BAA4B,2CAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAwD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,+FAA+F,iDAAiD;AAChJ;AACA;AACO;AACP;AACA,WAAW,kBAAkB;AAC7B,6FAA6F,iDAAiD;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAA6C;AACpE,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA,8BAA8B;AACvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA,kFAAkF,+BAA+B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH;AACjH;AACA,yHAAyH;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AChwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;AC3ChB,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,6BAA6B,2BAA2B,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;;;AClQjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,8FAA8F;AACxI;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,0CAA0C,8FAA8F;AACxI;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,2BAA2B,IAAI,mCAAmC;AACtF,UAAU,mCAAmC,IAAI,4CAA4C;AAC7F,UAAU,4CAA4C,IAAI,oCAAoC;AAC9F,UAAU,oCAAoC,IAAI;AAClD;AACA,qBAAqB,oBAAoB,IAAI,6BAA6B,IAAI,qBAAqB,IAAI,YAAY;AACnH;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA,gCAAgC,0EAA0E;AAC1G;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC,oCAAoC,kFAAkF;AACtH;AACA;AACA;AACA;AACA,gCAAgC,0DAA0D;AAC1F;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC,oCAAoC,kEAAkE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,YAAY;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzsBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;AC5XhB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnTA,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AAC2F;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,yCAAyC;AACzC,+BAA+B;AAC/B,YAAY;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,mCAAc;AACtB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;;;AC5d7B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;;AC/9Bc;AACd;AACA;AACO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,mCAAmC;AACnC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS,QAAQ,SAAS;AACnD;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,aAAa;AACpE;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACvW1B,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AAC6D;AACb;AACN;AACG;AACA;AACoB;AACjE;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA,wBAAwB;AACxB,qBAAqB,SAAS;AAC9B;AACA,iBAAiB,WAAW;AAC5B;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,kBAAkB,WAAW;AAC7B,mBAAmB,WAAW;AAC9B,qBAAqB,WAAW;AAChC,sBAAsB,WAAW;AACjC;AACA,sBAAsB,WAAW;AACjC,uBAAuB,WAAW;AAClC,yBAAyB,WAAW;AACpC,0BAA0B,WAAW;AACrC;AACA,eAAe,IAAI;AACnB;AACA;AACA,CAAC,CAAC,cAAc;AACK;;;AC7PrB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACI;AACvD;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACO;;;ACtMvB,IAAI,cAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACwC;AACa;AACM;AACd;AACA;AACU;AACvD;AACA;AACA;AACA;AACA,IAAI,cAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,wBAAwB,WAAW;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,uCAAuC,SAAS;AAChD;AACA,sEAAsE,aAAa;AACnF;AACA,iIAAiI,WAAW;AAC5I;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC,CAAC,SAAS;AACO;;;ACnOlB;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvDA,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACN;AAC8C;AACmB;AAC9G;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,qCAAqC,iBAAiB;AACtD,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC,0BAA0B,oBAAoB;AAC9C;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACO;;;ACnLvB,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AACK;AACxD;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACQ;;;ACrHxB,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC4C;AACM;AAC2C;AAC9F;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,mCAAmC,IAAI;AACvC;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;AACgB;;;;;AC7HhC,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACsF;AACrC;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,4BAA4B,8BAAO;AACnC;AACA,sBAAsB,8BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,qBAAqB;AAChC,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5JA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACwE;AAChB;AACZ;AACmB;AACpB;AAC3C;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,cAAc;AAC/B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;;;AC9IpB,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACjB;AACX;AACS;AACL;AACL;AAC3C;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ,CAAC,qBAAqB;AACtC;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO;AACf;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,iEAAiE,EAAE,SAAS;AAC9F;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,sEAAsE,EAAE,MAAM;AAChG;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;;;AC1L1B;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,iBAAiB;AAC5B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChHA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7FA;AAC8C;AACF;AACW;AACX;AAC+C;AAC7B;AACS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,KAAK;AAChB,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA,yBAAyB;AACzB,mDAAmD,2BAA2B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA,wBAAwB,8BAA8B;AACtD;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB,oBAAoB,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK;AACpD;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK;AACnB;AACA;AACA,kCAAkC,aAAa,oBAAoB,yCAAyC;AAC5G;AACA;AACA;AACA,kCAAkC,eAAe,oBAAoB,kBAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB,mBAAmB,eAAe,mBAAmB,aAAa;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,oBAAoB,oBAAoB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB;AACA;AACO;AACP,cAAc;AACd;AACA,aAAa,KAAK;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,+CAA+C;AAC7E,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,+CAA+C;AAC7E,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,YAAY;AACZ,YAAY;AACZ,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,kBAAkB,KAAK,aAAa,oBAAoB;AACxD;AACA;AACA,wBAAwB,KAAK;AAC7B,kBAAkB,KAAK,aAAa,oBAAoB;AACxD;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,SAAS;AAC3G;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD,cAAc,KAAK;AACnB;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB;AAChB;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,+BAA+B;AAC/B;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,SAAS,2BAA2B;AACpC,YAAY,2BAA2B;AACvC,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,yDAAyD,YAAY;AACrE,mFAAmF,YAAY;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,WAAW,KAAK;AAChB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,mCAAmC,KAAK,iCAAiC,KAAK;AAC9E;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,mCAAmC,KAAK,iCAAiC,KAAK;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,WAAW;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA,wBAAwB;AACxB,+BAA+B;AAC/B;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY;AACzC,4CAA4C,KAAK;AACjD,gCAAgC;AAChC,gCAAgC;AAChC,0BAA0B,KAAK;AAC/B;AACA,kCAAkC,aAAa,wBAAwB,+FAA+F;AACtK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA,gCAAgC,wCAAwC,KAAK;AAC7E,gCAAgC,sCAAsC,KAAK;AAC3E,0BAA0B,KAAK;AAC/B;AACA,kCAAkC,aAAa,wBAAwB,+FAA+F;AACtK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,4BAA4B;AAC5B,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,4GAA4G;AACpL;AACA,gCAAgC,uCAAuC,KAAK;AAC5E,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC;AAChC,gCAAgC,yCAAyC,KAAK;AAC9E,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,2CAA2C,KAAK;AAChF,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gHAAgH;AACxL;AACA,gCAAgC,2CAA2C,KAAK;AAChF,gCAAgC,uCAAuC,KAAK;AAC5E,2BAA2B,KAAK;AAChC;AACA,mCAAmC,aAAa,wBAAwB,gGAAgG;AACxK;AACA;AACA;AACA,kCAAkC,aAAa,wBAAwB,gBAAgB;AACvF;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1rHA,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;;;ACjE7B,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACD;AACG;AAC9C;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,iBAAiB;AACrC;AACA;AACA,CAAC,CAAC,8BAAa;AACK;;;AC/DpB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACkD;AACC;AACO;AAC3D;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC,CAAC,cAAc;AACc;;;ACnG9B,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACA;AACQ;AACpD;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA;AACA,CAAC,CAAC,8BAAa;AACY;AAC3B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA;AACA,CAAC;AACmC;;;AC9GK;AAC6F;AAChE;AACnB;AACN;AAC2B;AAClB;AACtD;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA,6BAA6B,eAAe,sBAAsB,cAAc;AAChF,uCAAuC,qBAAqB;AAC5D;AACA,iCAAiC,SAAS;AAC1C,uCAAuC,oBAAoB;AAC3D;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA,6BAA6B,eAAe,sBAAsB,cAAc;AAChF,uCAAuC,qBAAqB;AAC5D;AACA,iCAAiC,SAAS;AAC1C,uCAAuC,oBAAoB;AAC3D;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,gCAAgC,oBAAoB;AACpD,wCAAwC,oBAAoB;AAC5D;AACA,qCAAqC,oBAAoB;AACzD,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,gCAAgC,oBAAoB;AACpD,wCAAwC,oBAAoB;AAC5D;AACA,qCAAqC,oBAAoB;AACzD,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,wDAAwD;AACnE;AACA;AACO;AACP,yBAAyB,eAAe,sBAAsB,cAAc;AAC5E,kCAAkC,qBAAqB;AACvD;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,yBAAyB,IAAI,yBAAyB,eAAe;AACrE,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA,iCAAiC,eAAe,8BAA8B,eAAe;AAC7F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,WAAW;AACtB;AACA;AACO;AACP,yBAAyB,IAAI,yBAAyB,eAAe;AACrE,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA,iCAAiC,eAAe,8BAA8B,eAAe;AAC7F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,wDAAwD;AACnE,WAAW,wDAAwD;AACnE;AACA;AACO;AACP;AACA,wBAAwB,eAAe,oBAAoB,cAAc;AACzE,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,mCAAmC,oBAAoB;AACvD;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,wBAAwB,SAAS;AACjC,+BAA+B,oBAAoB;AACnD,uCAAuC,oBAAoB;AAC3D;AACA,oCAAoC,oBAAoB;AACxD,0CAA0C,kBAAkB;AAC5D;AACA;AACA,6BAA6B,SAAS,oBAAoB,QAAQ;AAClE,+BAA+B,eAAe;AAC9C,uCAAuC,eAAe;AACtD;AACA,oCAAoC,eAAe;AACnD,0CAA0C,kBAAkB;AAC5D;AACA;AACA,6BAA6B,eAAe,oBAAoB,cAAc;AAC9E,+BAA+B,qBAAqB;AACpD,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,uCAAuC,eAAe;AACtD;AACA,oCAAoC,eAAe;AACnD,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,yBAAyB,YAAY,gCAAgC,YAAY;AACjF;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB;AACA;AACO;AACP,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,iCAAiC,SAAS,IAAI,oBAAoB,YAAY,eAAe;AAC7F;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACA;AACO;AACP,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;;;ACjnBA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD;AAC6D;AAC3B;AACM;AACK;AACM;AACI;AACvD;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,iBAAiB;AAChC,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,oBAAoB;AACnC,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD,oEAAoE,WAAW;AAC/E;AACA;AACA,oEAAoE,MAAM;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB,uBAAuB;AACnE;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qEAAqE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,SAAS;AACU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,MAAM;AACY;AACpB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,cAAc;;;ACzxBuB;AAC8C;AACvC;AACiE;AAChD;AACG;AACN;AAClB;AACS;AACT;AACwE;AACnE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,YAAY,SAAS;AACrB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA,6DAA6D,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe,aAAa,eAAe;AACrE,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,SAAS,SAAS;AAClB,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS,SAAS;AAClB,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe,WAAW,eAAe,YAAY,eAAe;AAC7F,yBAAyB;AACzB;AACA,aAAa,SAAS;AACtB,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,yCAAyC,eAAe;AACxD;AACA;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,iBAAiB;AAC5B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,oBAAoB;AAC/B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA,uBAAuB,IAAI;AAC3B,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,wBAAwB,uDAAuD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,oEAAoE,kBAAkB;AACtF;AACA;AACA;AACA,yDAAyD;AACzD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW,kBAAkB,qBAAW;AACpE;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW,8BAA8B,qBAAW;AAChF;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA,2CAA2C,aAAa;AACxD,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA,qFAAqF,qBAAW;AAChG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B;AAC9B,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC,4DAA4D;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E,wCAAwC,wDAAwD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,YAAY;AACvB,WAAW,WAAW;AACtB,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB,WAAW,YAAY;AACvB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,+CAA+C,aAAa;AAC5D,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6BAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA,0FAA0F,qBAAW;AACrG,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,qFAAqF,QAAQ;AAC7F;AACA;AACA;AACA,qBAAqB,eAAe,WAAW,eAAe;AAC9D,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA,sCAAsC,8CAA8C;AACpF,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA,oBAAoB,2CAA2C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc,kBAAkB;AAC1D;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,oBAAoB,mDAAmD;AACvE;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE,8DAA8D,eAAe;AAC7E;AACA;AACA;AACA,oCAAoC,sBAAsB,wBAAwB;AAClF;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA,0BAA0B,MAAM;AAChC;AACA,wBAAwB,4BAA4B;AACpD,2EAA2E,MAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA,sBAAsB,qBAAW;AACjC;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC;AACxE;AACA,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA,2CAA2C,IAAI,UAAU,gDAAgD;AACzG;AACA;AACA,2DAA2D,WAAW,UAAU,iDAAiD;AACjI;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;;;ACn3EgD;AACT;AACF;AACM;AACD;AACW;AACK;AAChB;AACe;AACkE;AACT;AAC9C;AACc;AAC1B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,mMAAmM,eAAe,IAAI,cAAc;AACpO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sMAAsM,eAAe,IAAI,cAAc;AACvO;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP,mBAAmB,IAAI;AACvB;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA,QAAQ,aAAa,UAAU,IAAI;AACnC,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS,6BAAQ;AACjB;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,SAAS;AACpB,WAAW,WAAW;AACtB;AACA;AACO;AACP;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,qDAAqD,qBAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACO;AACP,qBAAqB,qBAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,qBAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC;AACA,YAAY,mBAAmB;AAC/B;AACA,QAAQ,oBAAoB;AAC5B;AACA,QAAQ,gBAAgB;AACxB,QAAQ,aAAa;AACrB;AACA,IAAI,uBAAuB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzfiD;AACV;AACG;AACkD;AACgB;AACuD;AACxC;AAClD;AAC7B;AACgB;AACoC;AACrD;AACa;AACgB;AACM;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,WAAW,wBAAwB;AACnC,WAAW,wBAAwB;AACnC,WAAW,yEAAyE;AACpF;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA,SAAS,WAAW,aAAa,iBAAiB;AAClD;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,sDAAsD,gBAAgB;AACtE;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,qBAAqB,aAAa;AAClC,uBAAuB,gBAAgB;AACvC;AACA;AACA,qBAAqB,aAAa;AAClC,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA,kDAAkD,SAAS;AAC3D,gBAAgB,aAAa;AAC7B,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA,2BAA2B,SAAS,sBAAsB,QAAQ;AAClE,aAAa,UAAU,cAAc,eAAe,aAAa,cAAc;AAC/E;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe,sBAAsB,cAAc,OAAO,UAAU,cAAc,SAAS;AACtH,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI,mBAAmB,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,gBAAgB,OAAO;AACvB,oCAAoC,SAAS;AAC7C;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA,4BAA4B,UAAU,cAAc,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,WAAW;AACtB,WAAW,eAAe;AAC1B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,oCAAoC,KAAK,2GAA2G,oBAAoB,wEAAwE,oBAAoB;AACpQ;AACA;AACA,oCAAoC,KAAK,kIAAkI,oBAAoB,+FAA+F,oBAAoB;AAClT;AACA;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,iCAAiC;AACjC;AACA;AACA,oCAAoC,+BAA+B;AACnE,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,4BAA4B;AACvC,WAAW,wBAAwB;AACnC,WAAW,wBAAwB;AACnC;AACA;AACO;AACP;AACA;AACA,QAAQ,OAAO,sBAAsB,oBAAoB,SAAS,cAAc;AAChF,YAAY,oBAAoB,SAAS,cAAc;AACvD,kCAAkC,eAAe;AACjD;AACA;AACA;AACA,aAAa,OAAO,sBAAsB,oBAAoB,SAAS,cAAc;AACrF,YAAY,oBAAoB,SAAS,cAAc;AACvD,iCAAiC,eAAe;AAChD;AACA,8BAA8B;AAC9B;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB,oBAAoB,IAAI;AACxB,kBAAkB,IAAI;AACtB,qBAAqB,IAAI;AACzB,oBAAoB,sBAAsB;AAC1C;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,qHAAqH,sBAAsB,WAAW,mEAAmE;AACpP;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,wCAAwC;AACxG;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,uCAAuC;AACvG;AACA;AACA,YAAY,eAAe;AAC3B,+BAA+B,sBAAsB,WAAW,YAAY;AAC5E;AACA;AACA;AACA,QAAQ,eAAe,gHAAgH,sBAAsB,WAAW,uEAAuE;AAC/O;AACA;AACA,QAAQ,eAAe;AACvB,2BAA2B,sBAAsB,WAAW,4CAA4C;AACxG;AACA;AACA,QAAQ,eAAe,iHAAiH,sBAAsB,WAAW,uEAAuE;AAChP;AACA;AACA,QAAQ,eAAe;AACvB,2BAA2B,sBAAsB,WAAW,2CAA2C;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,iCAAiC;AACjC,2BAA2B,QAAQ;AACnC;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA,gCAAgC,eAAe,uBAAuB,cAAc;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/jBA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,mBAAmB,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACuC;AAC0C;AACrC;AACG;AACH;AAC8B;AAChC;AAC6B;AAC+D;AAC1C;AACZ;AACpB;AACvB;AACM;AACkD;AACtB;AACtB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA,4CAA4C,WAAW;AACvD;AACA,iBAAiB,cAAc;AAC/B,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD,uCAAuC,WAAW;AAClD;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB,YAAY,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA,iCAAiC;AACjC;AACA,wCAAwC,qBAAW;AACnD;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA,yCAAyC,KAAK;AAC9C,yCAAyC,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD,oCAAoC,sFAAsF;AAC1H,oCAAoC,sEAAsE;AAC1G;AACA;AACA;AACA;AACA,yDAAyD,YAAY;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA,uEAAuE,YAAY,qBAAqB,YAAY;AACpH;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA,mEAAmE,qBAAW,mBAAmB,qBAAW;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS,sBAAsB,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY,qBAAqB,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,qBAAqB,YAAY;AACjE;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,aAAa,iBAAiB,iBAAiB;AAC/H,mEAAmE,YAAY,iBAAiB,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C,6BAA6B,YAAY;AACzC,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,0CAAqB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA,wCAAwC,eAAe,WAAW,gBAAgB,aAAa,iBAAiB;AAChH,2EAA2E,eAAe,aAAa,eAAe,aAAa,eAAe;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI,2BAA2B,SAAS;AAC3E;AACA;AACA,mCAAmC;AACnC,uCAAuC,IAAI;AAC3C,0CAA0C,qBAAW;AACrD;AACA;AACA,+CAA+C,qBAAW;AAC1D;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+CAA+C,IAAI,2BAA2B,SAAS;AACvF,mDAAmD,IAAI;AACvD,kDAAkD,qBAAW;AAC7D;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ,wOAAwO,QAAQ;AACzS;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD,0CAA0C,iBAAiB,8BAA8B,iBAAiB;AAC1G,wCAAwC,iBAAiB,sCAAsC,iBAAiB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAW,mBAAmB,qBAAW;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA,gFAAgF,SAAS;AACzF;AACA;AACA,0FAA0F,IAAI;AAC9F;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,QAAQ;AAChF;AACA,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,YAAY;AACrE;AACA,4DAA4D,QAAQ;AACpE;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAW;AACrD;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA,oCAAoC,qBAAW,mBAAmB,qBAAW;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,4BAA4B,kCAAkC;AAC9D;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,wDAAwD;AACpJ,wBAAwB,oIAAoI;AAC5J;AACA,+EAA+E,YAAY,qBAAqB,YAAY;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI,sBAAsB,SAAS;AACjE,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,oCAAoC,iBAAiB;AAC1F,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,uBAAuB,6BAAQ;AAC/B,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,0CAAqB;AACjG;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA,YAAY,YAAY;AACxB,+BAA+B,sBAAsB,WAAW,gDAAgD;AAChH,2BAA2B,sBAAsB,WAAW,wCAAwC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,wEAAwE,qBAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA,0BAA0B,qBAAW;AACrC;AACA,6DAA6D,qBAAW,mBAAmB,qBAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA,yBAAyB;AACzB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,4CAA4C,iBAAiB;AAClG,sBAAsB,iBAAiB;AACvC;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,wEAAwE,qBAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,qDAAqD,YAAY;AACjE,0BAA0B,qBAAW;AACrC;AACA,yDAAyD,qBAAW,mBAAmB,qBAAW;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0CAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,+DAA+D,eAAe;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oBAAoB,iBAAiB;AACrC,sBAAsB,iBAAiB,sBAAsB,iBAAiB;AAC9E;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA,gEAAgE,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,iDAAiD,SAAS;AACtH,+DAA+D,YAAY;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,SAAS;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC+B;AAChC;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,4BAA4B,6CAA6C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C,IAAI,sDAAsD;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc;AACxE;AACA;AACA,iCAAiC,KAAK;AACtC,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;AAC9B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe,2BAA2B,kBAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB,WAAW,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAW;AAChE,8CAA8C,qBAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW,0BAA0B,qBAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,0CAA0C,IAAI;AAC9C;AACA,oBAAoB,cAAc;AAClC,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW;AACnC,wBAAwB,qBAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE,uBAAuB,eAAe;AACtC;AACA;AACA,iCAAiC,KAAK;AACtC,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,qBAAqB,2DAA2D;AAChF;AACA;AACA,2BAA2B,4CAA4C,IAAI,sDAAsD;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,+BAA+B,gCAAgC,iBAAiB,gEAAgE;AAChJ;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa,oBAAoB,gBAAgB;AAC/E,0BAA0B;AAC1B,0BAA0B;AAC1B,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA,2EAA2E,OAAO,SAAS,mCAAmC,KAAK;AACnI,2EAA2E,OAAO,SAAS,mCAAmC,KAAK;AACnI;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;ACzhFxB,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwJ;AAC3F;AACjB;AACgB;AAC2D;AACtD;AACvB;AACA;AAC4C;AACyF;AAClF;AACa;AAC3C;AACL;AACE;AACd;AACK;AACmB;AACzB;AACN;AACI;AACuF;AAC/D;AACE;AAC9B;AACwB;AACd;AACf;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,qDAAqD,EAAE,UAAU;AACnF;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,EAAE,KAAK;AACvC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,uBAAuB;AACxC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,gBAAgB;AACjC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACa;AAC5B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK,gCAAgC,KAAK;AAC9D,cAAc,KAAK;AACnB;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,YAAY,EAAE,KAAK;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,uBAAuB;AACzC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACoB;AACnC;AACA;AACA;AACO,SAAS,sBAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACc;AAC7B;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACmB;AAClC;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;AACjC;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA,4CAA4C,eAAe,+BAA+B,eAAe;AACzG;AACA;AACA;AACA;AACA,4CAA4C,eAAe,+BAA+B,eAAe;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM;AAClC,0BAA0B,WAAW;AACrC;AACA,+BAA+B,WAAW;AAC1C,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA,wBAAwB,uEAAuE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,2BAA2B;AAC3B,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,QAAQ,cAAc;AACxE,aAAa,oBAAoB,QAAQ,cAAc,YAAY,oBAAoB,QAAQ,cAAc;AAC7G,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,aAAa;AACb;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA,+DAA+D,yBAAyB,sBAAsB,kBAAkB;AAChI;AACA,2DAA2D,yBAAyB,sBAAsB,kBAAkB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA,gDAAgD,UAAU;AAC1D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA,qCAAqC,4BAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,2BAA2B;AAC3B;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,oBAAoB;AACpB;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK,gDAAgD,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,4BAA4B;AAC5B;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA,0DAA0D,CAA0C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,oBAAoB,KAAK;AACzB,sBAAsB,iBAAiB;AACvC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kFAAkF;AACzG;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,UAAU;AACnH;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA,gFAAgF;AAChF,gFAAgF;AAChF;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA,wCAAwC,sBAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA,wCAAwC,sBAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8DAA8D;AACjG;AACA;AACA,iBAAiB;AACjB;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA,QAAQ,YAAY;AACpB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,qBAAqB,uBAAuB;AAC5C;AACA;AACA,2CAA2C,mBAAmB;AAC9D,QAAQ,eAAe;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ,CAAC,oBAAoB;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,cAAc;AACrC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,wBAAwB;AAC/C;AACA,IAAI,kBAAU;AACd,QAAQ,sCAAiB;AACzB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,eAAe;AACjC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,WAAW;AACrE;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,+BAAU,KAAK,QAAQ;AAC/B;AACA,IAAI,kBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,QAAQ;AACW;;;AC9oDrB,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC2D;AACwC;AACjD;AACS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,gEAAgE,oCAAoC,mBAAmB;AACvH,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD,cAAc;AACd,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gBAAgB,gBAAgB;AAChC,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,sBAAsB,gBAAgB;AACtC;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,0BAAS;AACM;;;ACrbjB;AACA;AACA;AACwB;;;ACH+C;AAC7B;AACA;AACS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,kDAAkD,gCAAgC,kBAAkB,OAAO;AAC3G;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA,wEAAwE,6CAA6C;AACrH;AACA,uGAAuG,gBAAgB;AACvH,iFAAiF,kBAAkB,eAAe;AAClH;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5OA,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,4BAA4B,gBAAgB;AAC5C,UAAU;AACV;AACA,KAAK,0BAA0B,sCAAsC;AACrE;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB,2DAA2D;AACnF;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC1ItB;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoF;AACpF;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACI;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,+BAAU;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,0BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACgB;;;AC3Ge;AACF;AACoC;AACN;AACwB;AAClC;AACO;AAC0B;AACtB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qCAAqC;AACrC,2BAA2B;AAC3B,oBAAoB,KAAK;AACzB,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA,YAAY,eAAe,kBAAkB,kDAAkD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B,iBAAiB,SAAS;AAC1B,iBAAiB,eAAe;AAChC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,kBAAkB;AACnC,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,oBAAoB;AAC9H,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,iBAAiB,kDAAkD;AAC9F;AACA;AACA,YAAY,eAAe,iBAAiB,gJAAgJ;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,gCAAgC;AACjD,gBAAgB,iBAAiB;AACjC,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,gBAAgB,oBAAoB;AACpC,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C,yFAAyF;AACzF,gBAAgB,wBAAwB,sBAAsB;AAC9D,+BAA+B,6EAA6E;AAC5G;AACA,gBAAgB,8DAA8D,sCAAsC;AACpH;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,gBAAgB,sBAAsB;AACtC,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0CAA0C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sCAAsC;AACjG;AACA;AACA;AACA;AACA,QAAQ,eAAe,wCAAwC,mDAAmD,IAAI;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,sBAAsB;AACtC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,mBAAmB,gBAAgB,WAAW,oCAAoC;AAClF;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,QAAQ,cAAc;AACtB;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,gBAAgB,eAAe,gBAAgB,oEAAoE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB,YAAY;AAC5B,gBAAgB,iBAAiB;AACjC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;AC17BqC;AACE;AACF;AACH;AACmC;AAClD;AAC6E;AACU;AAChB;AACE;AAC9B;AACA;AACxC;AACM;AACyC;AACnC;AACc;AACJ;AACvB;AACmC;AAC1C;AACuE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA,wCAAwC,WAAW,SAAS,cAAc;AAC1E;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,QAAQ;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,eAAe,cAAc;AAC7B,eAAe,aAAa;AAC5B,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,iCAAiC;AAChD,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,aAAa;AAC5B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,aAAa;AAC5B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,kCAAkC,oBAAoB;AACtD,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,iBAAiB,oBAAoB;AACrC,gBAAgB,QAAQ;AACxB,gBAAgB,sBAAsB;AACtC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,WAAW,aAAa,4BAA4B,iBAAiB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa,4BAA4B,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE,iGAAiG,aAAa,wDAAwD,iBAAiB,mDAAmD,gFAAgF;AAC1T;AACA,8CAA8C,mBAAmB;AACjE,yGAAyG,aAAa,wDAAwD,iBAAiB,mDAAmD,iFAAiF;AACnU;AACA,8CAA8C,mBAAmB;AACjE,0GAA0G,aAAa,wDAAwD,iBAAiB,mDAAmD,mFAAmF;AACtU;AACA,8CAA8C,mBAAmB;AACjE,kHAAkH,aAAa,wDAAwD,iBAAiB,mDAAmD,oFAAoF;AAC/U;AACA;AACA,0CAA0C,mBAAmB;AAC7D,qGAAqG,aAAa,oDAAoD,iBAAiB,+CAA+C,2EAA2E;AACjT;AACA,0CAA0C,mBAAmB;AAC7D,8GAA8G,aAAa,oDAAoD,iBAAiB,+CAA+C,8EAA8E;AAC7T;AACA,0CAA0C,mBAAmB;AAC7D,qGAAqG,aAAa,mDAAmD,iBAAiB,8CAA8C,4EAA4E;AAChT;AACA,0CAA0C,mBAAmB;AAC7D,6GAA6G,aAAa,mDAAmD,iBAAiB,8CAA8C,6EAA6E;AACzT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,gBAAgB;AAC/B,eAAe,iCAAiC;AAChD,iBAAiB,oBAAoB;AACrC,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,aAAa,6DAA6D,iBAAiB,2DAA2D,iEAAiE;AAChU,yGAAyG,aAAa,6DAA6D,iBAAiB,2DAA2D,iEAAiE;AAChU;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA,mJAAmJ,iBAAiB;AACpK;AACA,cAAc;AACd;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA,mGAAmG,aAAa;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,mGAAmG,aAAa;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,mCAAmC,KAAK;AACxC;AACA,mEAAmE,oBAAoB;AACvF,mCAAmC,oBAAoB;AACvD,8HAA8H,aAAa,6DAA6D,iBAAiB,qDAAqD,iEAAiE;AAC/U,wBAAwB,aAAa;AACrC,qHAAqH,KAAK;AAC1H;AACA;AACA,+BAA+B,KAAK;AACpC,8EAA8E,oBAAoB;AAClG,8CAA8C,oBAAoB;AAClE,8HAA8H,aAAa,6DAA6D,iBAAiB,qDAAqD,iEAAiE;AAC/U,wBAAwB,aAAa;AACrC,qHAAqH,KAAK;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,oBAAoB;AACrC,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,aAAa;AAC7B,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,yBAAyB,KAAK;AAC9B;AACA;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,aAAa;AAC9B,gBAAgB,aAAa;AAC7B,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA,+DAA+D,oBAAoB;AACnF;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC,8BAA8B,IAAI;AAClC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,iCAAiC;AACjD,iBAAiB,aAAa;AAC9B,gBAAgB,sBAAsB;AACtC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,iBAAiB,iCAAiC;AAClD,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,QAAQ;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,iCAAiC;AACjD,gBAAgB,UAAU;AAC1B,gBAAgB,iBAAiB;AACjC,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA,+DAA+D,oBAAoB;AACnF;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC,8BAA8B,IAAI;AAClC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,eAAe;AAC9B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,eAAe;AAC9B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,cAAc;AAC9B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wCAAwC;AAC7G;AACA;AACA,sCAAsC,eAAe;AACrD,sCAAsC,oBAAoB;AAC1D,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,wCAAwC;AAC/I;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,sBAAsB;AACtC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,qDAAqD;AACnJ;AACA;AACA;AACA,0FAA0F,qDAAqD;AAC/I;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,aAAa;AAC5B,gBAAgB,iCAAiC;AACjD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,mBAAmB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,aAAa;AAC7B,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,sBAAsB;AAClD,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,sBAAsB;AAClD,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,eAAe,mBAAmB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,aAAa;AAC7B,gBAAgB,qBAAqB;AACrC,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,aAAa;AAC5B,gBAAgB,gCAAgC;AAChD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA,4BAA4B,iBAAiB;AAC7C,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,cAAc;AACtG;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,cAAc;AAC7B,gBAAgB,gCAAgC;AAChD,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,WAAW;AAC1B,gBAAgB,gCAAgC;AAChD,gBAAgB,cAAc;AAC9B,gBAAgB,aAAa;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW,wCAAwC,aAAa;AACrG;AACA;AACA;AACA,qCAAqC,WAAW,uCAAuC,aAAa;AACpG;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD,4CAA4C,aAAa,6CAA6C,aAAa;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa,uCAAuC,OAAO;AACpG;AACA,uEAAuE,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB,2WAA2W,oBAAoB;AAC1c;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iTAAiT,oBAAoB;AACrU,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa,uCAAuC,OAAO;AACnG;AACA,uEAAuE,oBAAoB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB,2WAA2W,oBAAoB;AAC1c;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iTAAiT,oBAAoB;AACrU,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C;AAClF,qGAAqG,WAAW;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,eAAe,gBAAgB;AAC/B,gBAAgB,gCAAgC;AAChD,gBAAgB,iBAAiB;AACjC,gBAAgB,gBAAgB;AAChC,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kBAAkB;AAC7F;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,kBAAkB;AAClC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,iBAAiB,YAAY;AAC7B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,mBAAmB;AACpC,iBAAiB,QAAQ;AACzB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;AC3yE3B,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkD;AACc;AACM;AAC6B;AACc;AACxB;AACvC;AACA;AACc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,UAAU;AAChD;AACA;AACA;AACA;AACA,yCAAyC,qDAAqD;AAC9F;AACA,kBAAkB,6BAA6B,mBAAmB;AAClE;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAO;AAC3B,mBAAmB,wBAAO;AAC1B;AACA,qBAAqB,wBAAO;AAC5B;AACA;AACA;AACA,mBAAmB,wBAAO;AAC1B,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA,oBAAoB,wBAAO;AAC3B,mBAAmB,wBAAO;AAC1B,mBAAmB,wBAAO;AAC1B,qBAAqB,wBAAO;AAC5B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB,UAAU;AAC9D;AACA,gCAAgC,cAAc;AAC9C,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC,kBAAkB,QAAQ;AACrH;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,0CAA0C,kBAAkB,QAAQ,SAAS;AAC7E,SAAS;AACT;AACA;AACA,wCAAwC,QAAQ,SAAS;AACzD;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB,QAAQ,wCAAwC;AAC9F;AACA;AACA,YAAY,eAAe,mBAAmB,2BAA2B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,SAAS;AAC1D;AACA;AACA,SAAS;AACT,cAAc,gBAAgB;AAC9B;AACA,kBAAkB,gBAAgB,QAAQ,0EAA0E;AACpH;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA,SAAS;AACT,2DAA2D;AAC3D;AACA;AACA,gBAAgB,gBAAgB,QAAQ,wEAAwE;AAChH;AACA,wBAAwB,gBAAgB,WAAW,8DAA8D;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB,UAAU,sEAAsE;AACxH;AACA,wBAAwB,gBAAgB;AACxC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB;AACrB,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA,QAAQ,gBAAgB;AACxB;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;AC5+BwB;AACA;AAC+D;AACvC;AACT;AACF;AACX;AAC4I;AAClH;AACV;AACW;AACb;AACE;AACY;AAC6T;AACnR;AAC/C;AACF;AAC5B;AACC;AAC4C;AACL;AACvB;AACW;AACrB;AACC;AACM;AAC0B;AAC5B;AACP;AACW;AACN;AAC2B;AACJ;AACrB;AACnD;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,MAAM;AACjB,WAAW,gCAAgC;AAC3C;AACA;AACO;AACP;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,gCAAgC;AAC3C,WAAW,QAAQ;AACnB;AACA;AACO;AACP,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,gCAAgC;AAC3C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,MAAM;AACjB;AACA;AACO;AACP,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,WAAW,4BAA4B;AACvC;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA,mBAAmB,KAAK;AACxB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,uCAAuC;AACvC,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA,oBAAoB,YAAY,gCAAgC,KAAK,wEAAwE,KAAK;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,aAAa;AACxB;AACA;AACO;AACP;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,eAAe;AACf;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,4BAA4B;AACvC,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,4BAA4B;AACvC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE,uDAAuD,cAAc;AACrE;AACA;AACA;AACA,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,gBAAgB;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,gBAAgB;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,WAAW,YAAY;AACvB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB,YAAY,YAAY;AACxB;AACA;AACO;AACP,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA;AACA,iBAAiB;AACjB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,YAAY,6CAA6C;AACzD,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA,0CAA0C,IAAI,wBAAwB,eAAe;AACrF,2BAA2B,SAAS,wBAAwB,oBAAoB;AAChF,kCAAkC,eAAe;AACjD,yCAAyC,IAAI,wBAAwB,eAAe;AACpF,2BAA2B,SAAS,wBAAwB,oBAAoB;AAChF,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,6CAA6C;AACxD,YAAY,YAAY;AACxB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAI,oBAAoB,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,YAAY,YAAY;AACxB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B,WAAW,0DAA0D;AACrE,YAAY,QAAQ;AACpB;AACA;AACO;AACP;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC;AAC/C,WAAW,gCAAgC;AAC3C,YAAY,mBAAmB;AAC/B;AACA;AACO;AACP;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,SAAS;AACzB,wBAAwB,oBAAoB;AAC5C,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD,YAAY,OAAO;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,MAAM;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACO;AACP;AACA,gBAAgB,KAAK;AACrB;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,oBAAoB,KAAK;AACzB;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,cAAc;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,WAAW,cAAc;AACzB,YAAY,2CAA2C;AACvD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,kBAAkB,KAAK;AACvB;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,oBAAoB,KAAK;AACzB,oBAAoB,KAAK;AACzB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,cAAc;AACzB;AACA;AACO;AACP;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,2CAA2C;AACtD,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sCAAiB;AACvC,sBAAsB,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,YAAY;AACvB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,WAAW;AACtB,YAAY,UAAU;AACtB;AACA;AACO;AACP,wBAAwB,IAAI;AAC5B,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,QAAQ;AACnB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA,wBAAwB,2BAA2B;AACnD;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qCAAqC;AACpG;AACA;AACA,oBAAoB,wCAAwC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,UAAK;AACvC;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,iEAAiE,YAAY;AAC7E;AACA,oEAAoE,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC,0CAA0C,8BAA8B,IAAI;AAC5E;AACA,wEAAwE,YAAY;AACpF,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,oBAAoB,sCAAsC;AAC1D;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sCAAsC;AAC1D;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA,yEAAyE,eAAe;AACxF,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,2DAA2D;AACtE,WAAW,2DAA2D;AACtE;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,iBAAiB;AAC5B;AACA;AACO;AACP;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,gBAAgB;AAC3B,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB,QAAQ,aAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACO;AACP,sBAAsB,cAAc;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,2EAA2E,cAAc,SAAS,WAAW;AAC7G,kBAAkB,6BAAQ;AAC1B,+BAA+B,cAAc;AAC7C;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACO;AACP,SAAS,6BAAQ;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAQ;AAC1B;AACA,+BAA+B,mBAAmB;AAClD,UAAU,6BAAQ;AAClB;AACA;AACA,eAAe,6BAAQ;AACvB;AACA;AACA;AACA,eAAe,6BAAQ;AACvB,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,MAAM;AACjB;AACA;AACO;AACP,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,WAAW,aAAa;AACxB,WAAW,gBAAgB;AAC3B,WAAW,MAAM;AACjB;AACA;AACO;AACP;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,WAAW;AACtB,WAAW,cAAc;AACzB,WAAW,eAAe;AAC1B;AACA;AACO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,WAAW,eAAe;AAC1B,WAAW,iBAAiB;AAC5B,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA,cAAc,mBAAmB,yCAAyC,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB;AACA;AACO;AACP,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,WAAW,yBAAyB;AACpC,WAAW,QAAQ;AACnB;AACA;AACO;AACP,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAyD;AACtE,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,WAAW;AACvB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,4BAA4B;AACxC,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,iCAAiC;AAC7C,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,oDAAoD,gBAAgB;AACpE;AACA;AACA,sCAAsC,sBAAsB,WAAW,oCAAoC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,6BAA6B;AACzC,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,4CAA4C;AACxD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA,oBAAoB,2CAA2C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB,aAAa,4CAA4C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAA6C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA,wBAAwB,oBAAoB;AAC5C,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kCAAkC;AAC/C,YAAY,mCAAmC;AAC/C,YAAY,6BAA6B;AACzC,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,YAAY,iBAAiB;AAC7B,YAAY,uBAAuB;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,aAAa;AACzB;AACA;AACO;AACP,kBAAkB;AAClB,gBAAgB,cAAc;AAC9B,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,YAAY;AACzE;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA,4BAA4B,sBAAsB,WAAW,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA,4BAA4B,sBAAsB,WAAW,4BAA4B;AACzF;AACA;AACA,4BAA4B,sBAAsB,WAAW,wBAAwB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,WAAW,gBAAgB;AAC7E;AACA;AACA,4BAA4B,sBAAsB,WAAW,wBAAwB;AACrF;AACA;AACA,4BAA4B,sBAAsB,WAAW,oBAAoB;AACjF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM,qBAAqB,SAAS;AACrE;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC,oBAAoB,kBAAkB;AACtC;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,WAAW;AACrC;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wBAAwB,IAAI,oBAAoB,SAAS;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2BAA2B;AAC3B;AACA;AACA,gBAAgB,SAAS;AACzB,qBAAqB,KAAK,aAAa,0CAA0C;AACjF,qBAAqB,KAAK,aAAa,kCAAkC;AACzE,mBAAmB,KAAK,aAAa,kCAAkC;AACvE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,YAAY,wBAAO,2BAA2B,wBAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,qBAAqB;AACjC,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,OAAO;AACnB,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,YAAY;AACzB;AACO;AACP;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;;;ACvjGA,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AACA;AAC5C;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,EAAE,KAAK;AACvC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;;;AC7ErB,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACuC;AACa;AACrD;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,SAAS;AACW;;;ACrNgD;AAC/B;AACW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,gBAAgB;AAC5B,WAAW,WAAW;AACtB,WAAW,SAAS;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB,eAAe,WAAW,eAAe;AACjE,UAAU,eAAe,UAAU,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,YAAY,qBAAqB;AAC5E;AACA;AACA;AACA;AACA,aAAa;AACb,wEAAwE,qBAAqB;AAC7F;AACA;AACA;AACA;AACA,iBAAiB,YAAY,gBAAgB,eAAe,qBAAqB;AACjF;AACA;AACA,sBAAsB,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/I;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC,4BAA4B,QAAQ;AACpC;AACA;AACA,2EAA2E,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sCAAsC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/J;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC,4BAA4B,QAAQ,8BAA8B;AAClE,sHAAsH;AACtH;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,0CAA0C,oBAAoB;AAC9D;AACA;AACA,sCAAsC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC/J;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0EAA0E,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,0BAA0B;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,0BAA0B;AACpG,sEAAsE,4BAA4B;AAClG;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,wBAAwB,QAAQ;AAChC;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP,yBAAyB,IAAI;AAC7B,YAAY,QAAQ,sCAAsC,eAAe,aAAa,eAAe;AACrG;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,MAAM;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACO;AACP,yBAAyB,IAAI;AAC7B,YAAY,QAAQ,sCAAsC,eAAe,aAAa,eAAe;AACrG;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,MAAM;AAClB,WAAW,eAAe;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChmBA,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC1DtB,IAAI,YAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+I;AACpE;AAC/B;AACF;AACG;AACY;AACN;AACO;AACQ;AACN;AACA;AACE;AACS;AACpC;AACgB;AACQ;AACM;AACT;AACT;AACgE;AACvB;AACT;AACH;AACrC;AACmB;AACZ;AACX;AACiD;AACX;AACN;AACP;AACR;AACS;AACF;AACnB;AACa;AACF;AACZ;AACmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA,IAAI,UAAK;AACT,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACQ;AACvB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,eAAe;AACtC;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,uCAAuC,gBAAgB;AACzE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,kEAAkE,iBAAiB;AACrG;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,kEAAkE,iBAAiB;AACrG;AACA;AACA,CAAC,CAAC,8BAAa;AACsB;AACrC;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;;AAEA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACe;AAC9B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACY;AAC3B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACiB;AAChC;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AAC6B;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAQ;AAC9B,mCAAmC,WAAW;AAC9C,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAQ;AAC9B,yCAAyC,cAAc;AACvD;AACA;AACA;AACA,2BAA2B,6BAAQ;AACnC,mCAAmC,WAAW;AAC9C,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA,yCAAyC,WAAW;AACpD,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,gFAAgF,aAAa;AAC7F;AACA;AACA;AACA,gEAAgE,wBAAwB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA,6CAA6C,4BAAoB;AACjE,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,oCAAoC,eAAe;AACnD,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,oCAAoC,eAAe;AACnD;AACA;AACA;AACA,8CAA8C,6BAAQ;AACtD,eAAe,6BAAQ,wFAAwF,6BAAQ;AACvH;AACA;AACA,gEAAgE,qBAAW;AAC3E;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA,yCAAyC,SAAS,SAAS,MAAM;AACjE;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA,gDAAgD,UAAU;AAC1D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6DAA6D;AACrF;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,qEAAqE,YAAY;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,QAAQ,cAAc;AACxE,aAAa,oBAAoB,QAAQ,cAAc,YAAY,oBAAoB,QAAQ,cAAc;AAC7G,kEAAkE,aAAa;AAC/E;AACA;AACA;AACA;AACA,iEAAiE,CAAU;AAC3E;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAoB;AACnE;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC,+BAA+B,YAAY;AAC3C,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,eAAe;AACtC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,mBAAmB;AAC1C;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,SAAS;AAC7B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,eAAe,EAAE,SAAS;AAC5C;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,mCAAc;AACtB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,QAAQ;AACM;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;AAClB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,SAAS,yCAAyC,gBAAgB,uBAAuB;AAC3G;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACC;AAChB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,yCAAyC,EAAE,UAAU;AACvE;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,cAAc,oBAAoB;AACpD;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;AACjB;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,SAAS,yCAAyC,gBAAgB,uBAAuB;AAC3G;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,IAAI,YAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,8DAA8D;AAC9D,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,4BAAO,GAAG,gBAAgB,EAAE,KAAK;AACzC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU,KAAK,UAAU;AACjC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ,CAAC,mBAAmB;AACpC;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,aAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,aAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;;;AC99DsB;AACA;AACyC;AAC2B;AAClB;AACrB;AAChC;AACK;AACY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,YAAY,cAAc;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+BAA+B;AAC5C,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA,QAAQ,wBAAO,yBAAyB,wBAAO;AAC/C,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,0BAA0B,QAAQ;AAClC;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,0DAA0D,oCAAoC,QAAQ;AACtG;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,wGAAwG,QAAQ;AAChH;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,qBAAqB,IAAI;AACzB,2CAA2C,gCAAgC,sBAAsB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,iBAAiB;AAC7B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,SAAS;AACrB,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA,gCAAgC,+CAA+C,GAAG;AAClF;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,YAAY,cAAc;AAC1B,YAAY,iBAAiB;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC,sBAAsB,oBAAoB;AAC1C,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAO,yBAAyB,wBAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAiE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP,kBAAkB,iCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,UAAU;AACtB,YAAY,SAAS;AACrB,YAAY,UAAU;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP,2CAA2C,6BAA6B,eAAe;AACvF;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B,YAAY,YAAY;AACxB;AACA;AACO;AACP;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,eAAe;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,4CAA4C;AACxD,YAAY,UAAU;AACtB,YAAY,sFAAsF;AAClG;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAAO;AACpC,4FAA4F,gBAAgB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAW;AAC3B;AACA;AACA;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA;AACA;AACA;AACA,gBAAgB,qBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAW;AACvB;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,aAAa;AACzB,YAAY,SAAS;AACrB;AACA;AACO;AACP,kCAAkC;AAClC,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,YAAY,cAAc;AAC1B,YAAY,SAAS;AACrB;AACA;AACO;AACP;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wCAAwC,cAAc,YAAY,iBAAiB;AACnF,SAAS;AACT,+CAA+C,iCAAiC,sBAAsB;AACtG;AACA;AACA,sDAAsD,qDAAqD,kEAAkE;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,WAAW,gBAAgB;AAC3B,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,WAAW,oBAAoB;AAC/B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC,yDAAyD,gBAAgB;AACzE;AACA;AACA,8CAA8C,qBAAW;AACzD,4BAA4B,2BAA2B;AACvD;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;;AC1sCuE;AAC7B;AACA;AACkD;AAC5C;AACgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAoB;AAC3C;AACA;AACA,uBAAuB,4BAAoB;AAC3C;AACA;AACA;AACA,mBAAmB,4BAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sCAAsC;AACtC,qBAAqB;AACrB,uCAAuC;AACvC,wCAAwC;AACxC,uBAAuB;AACvB,yCAAyC;AACzC,wBAAwB;AACxB,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO;AACP,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,4CAA4C,sBAAsB;AAClE,gDAAgD,sBAAsB;AACtE,8CAA8C,sBAAsB;AACpE,kDAAkD,sBAAsB;AACxE,oDAAoD,sBAAsB;AAC1E,kDAAkD,sBAAsB;AACxE,sDAAsD,sBAAsB;AAC5E,oDAAoD,sBAAsB;AAC1E;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B,WAAW,gBAAgB;AAC3B;AACA;AACA;AACO,SAAS,qBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,WAAW,2BAA2B;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA,IAAI,oBAAoB,8CAA8C;AACtE,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP,iBAAiB,cAAc;AAC/B,IAAI,YAAY;AAChB,kBAAkB,sBAAsB,WAAW,YAAY;AAC/D,mBAAmB,sBAAsB,WAAW,qBAAqB;AACzE,qBAAqB,sBAAsB,WAAW,sBAAsB;AAC5E,sBAAsB,sBAAsB,WAAW,+BAA+B;AACtF;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,WAAW,YAAY;AACvB,WAAW,gBAAgB;AAC3B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,WAAW,YAAY;AACvB;AACA;AACO;AACP;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;;;ACplBA;AACA;AAC4C;AACE;AACoD;AAChD;AAC0B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,iBAAiB;AACjC,gBAAgB,YAAY;AAC5B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,wBAAwB,iBAAiB,aAAa,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC,iBAAiB,QAAQ;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,iBAAiB,gCAAgC;AACjD,gBAAgB,iBAAiB;AACjC,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,CAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,aAAa,wDAAwD;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,mDAAmD;AACnD;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AC10B1B,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AAC5B;AAC5C;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,iBAAiB,eAAe;AAChC,8CAA8C;AAC9C;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,sBAAU;AACd,QAAQ,4BAAO,GAAG,sCAAsC,EAAE,MAAM;AAChE;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;;;AC/K1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACjB1B,IAAI,kBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACzB;AAC/C;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAS;AACb;AACA;AACA;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ,CAAC,eAAe;AAChC;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,mBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;;;AChFxB,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwE;AACxE;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,sBAAsB,+BAA+B;AACrD,mBAAmB;AACnB,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,2BAA2B;AAC7C;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,yBAAyB;AAC3C;AACA;AACA,CAAC,CAAC,8BAAa;AACU;;;AC1FzB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,qBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAS;AACb;AACA;AACA;AACA,IAAI,qBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,qBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACa;;;ACrC5B,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACoF;AACd;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,qCAAqC;AAC1C,KAAK,kEAAkE;AACvE,KAAK,2DAA2D;AAChE,KAAK,4DAA4D;AACjE,KAAK,6DAA6D;AAClE,KAAK,uDAAuD;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;AACtB;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACiB;AAChC;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,+BAAU,KAAK,gBAAgB;AACvC;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACO;;;AC9ItB,IAAI,mBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC4C;AAC4B;AACxE;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACoB;AACnC;AACA;AACA;AACA;AACA,IAAI,mBAAS;AACb;AACA;AACA;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG,wCAAwC,EAAE,MAAM;AAClE;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,oBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA;AACA,CAAC,CAAC,8BAAa;AACG;;;AC3HlB,IAAI,yBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC2C;AACF;AAC8B;AACrB;AACL;AACT;AACuB;AACc;AACxC;AACc;AAChD;AACA;AACA;AACA;AACA,IAAI,yBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA,oCAAoC,+BAA+B;AACnE,yCAAyC;AACzC;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,uCAAuC,iBAAiB;AACjG,0BAA0B,iBAAiB;AAC3C,yBAAyB,iBAAiB;AAC1C;AACA,2BAA2B,6BAAQ;AACnC,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAW;AACnD;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB,0CAA0C,iBAAiB;AACxG,8BAA8B,iBAAiB;AAC/C,6BAA6B,iBAAiB;AAC9C;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,2CAA2C,iBAAiB;AACrG,0BAA0B,qBAAW,gDAAgD,iBAAiB;AACtG;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,KAAK;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,6BAA6B,iBAAiB;AACxF;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC,8BAA8B,KAAK;AACnC;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,+BAA+B;AACvD;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe,0BAA0B,gCAAgC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,qBAAqB,KAAK;AAC1B,+BAA+B,KAAK;AACpC,0BAA0B,iBAAiB,oBAAoB,qEAAqE;AACpI;AACA;AACA,0BAA0B,iBAAiB,oBAAoB,uDAAuD;AACtH,0BAA0B,iBAAiB,oBAAoB,qEAAqE;AACpI;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,0BAA0B,KAAK;AAC/B,0BAA0B,KAAK;AAC/B,gCAAgC,iBAAiB,oBAAoB,iDAAiD;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB,oBAAoB,0DAA0D;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD,kBAAkB,KAAK;AACvB,kBAAkB,KAAK;AACvB,4BAA4B,iBAAiB,0BAA0B,iDAAiD;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B,iCAAiC,iBAAiB,0BAA0B,iDAAiD;AAC7H;AACA;AACA;AACA,0BAA0B,iBAAiB,0BAA0B,oBAAoB;AACzF;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,0BAA0B,iBAAiB;AACjF;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,0BAA0B,2DAA2D;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,0BAA0B,+DAA+D;AACnI;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC,iBAAiB;AACnD;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,QAAQ;AACkB;;;AC/1B5B;AACA;AACA;AACA;AAC+C;AACH;AACa;AACR;AAC6C;AACR;AAC+B;AACE;AAC9C;AAClB;AACZ;AACqC;AACkE;AACvF;AAC6G;AAC1C;AACyC;AACvG;AAC6C;AACgD;AAC1G;AACqE;AAC7B;AAC/B;AAClB;AACiC;AACjC;AACoD;AACG;AACpB;AACG;AACR;AACgE;AACrD;AAClB;AAC6D;AAC3D;AAClB;AACD;AACM;AACH;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA,gFAAgF,aAAa;AAC7F;AACA;AACA,iFAAiF,aAAa;AAC9F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA,iDAAiD,yBAAyB,IAAI;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ,yBAAyB,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,OAAO;AAC/E,+EAA+E,UAAU,KAAK,OAAO;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,2DAA2D;AAC9H;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB,2BAA2B;AAC3B,4BAA4B;AAC5B,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,mDAAmD;AAC/E;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D,wBAAwB;AACxB,4BAA4B,mDAAmD;AAC/E;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY,yCAAyC,YAAY;AAC3F;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,0BAA0B,YAAY,yCAAyC,YAAY;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,4BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8DAA8D,eAAe,yBAAyB,oBAAoB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,kCAAkC,YAAY;AAC9C,gDAAgD,eAAe;AAC/D,aAAa,UAAU,mBAAmB,WAAW;AACrD;AACA,qEAAqE,cAAc;AACnF;AACA,uCAAuC,kBAAkB,yBAAyB,mBAAmB;AACrG;AACA;AACA;AACA,6BAA6B,iBAAiB,0BAA0B,iBAAiB;AACzF,sDAAsD,iBAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB,yBAAyB,mBAAmB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,eAAe,kBAAkB,cAAc;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,2CAA2C,IAAI;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,QAAQ;AACxF,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB,yBAAyB,mBAAmB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI,qCAAqC,SAAS;AACzG,+BAA+B,IAAI,mBAAmB,SAAS;AAC/D,iCAAiC,WAAW;AAC5C,4EAA4E,IAAI,iCAAiC,SAAS;AAC1H,sDAAsD,cAAc,WAAW,cAAc;AAC7F;AACA,yCAAyC,IAAI;AAC7C,yCAAyC,IAAI;AAC7C,8DAA8D,cAAc,WAAW,cAAc;AACrG;AACA,yCAAyC,SAAS;AAClD,iEAAiE,cAAc,WAAW,cAAc;AACxG;AACA;AACA;AACA,4CAA4C,IAAI;AAChD,oEAAoE,cAAc,WAAW,cAAc;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW,4CAA4C,kBAAkB;AAC9H;AACA,iBAAiB,UAAU,mEAAmE,OAAO;AACrG;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,SAAS,SAAS;AAC1C;AACA,iBAAiB,UAAU;AAC3B,iDAAiD,QAAQ;AACzD;AACA;AACA,iCAAiC,SAAS,qBAAqB,SAAS;AACxE,kBAAkB,QAAQ;AAC1B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY,uCAAuC,YAAY;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe,mBAAmB,UAAU,mBAAmB,WAAW;AACtF;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,eAAe,6BAA6B,cAAc;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,cAAc;AAC/F,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA,2DAA2D,SAAS,0BAA0B,QAAQ;AACtG,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA,iEAAiE,eAAe,gCAAgC,cAAc;AAC9H,sEAAsE,qBAAqB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA,6CAA6C,oBAAoB;AACjE,6CAA6C,mBAAmB;AAChE,6CAA6C,kBAAkB;AAC/D;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA,uEAAuE,WAAW;AAClF,2CAA2C,IAAI;AAC/C,2EAA2E,UAAU;AACrF,2DAA2D,SAAS;AACpE;AACA;AACA,uEAAuE,WAAW;AAClF,2CAA2C,SAAS;AACpD,gFAAgF,UAAU;AAC1F,2DAA2D,IAAI;AAC/D;AACA;AACA,yEAAyE,cAAc;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA,iEAAiE,2CAA2C,IAAI;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,IAAI;AAClE,+CAA+C,eAAe;AAC9D,2CAA2C,SAAS,qCAAqC,oBAAoB;AAC7G,8CAA8C,SAAS,iCAAiC,QAAQ;AAChG,mDAAmD,eAAe;AAClE,2CAA2C,eAAe,iCAAiC,cAAc;AACzG,mDAAmD,qBAAqB;AACxE;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe,yBAAyB,oBAAoB;AAClG,wCAAwC,QAAQ,yBAAyB,UAAU;AACnF,wCAAwC,UAAU,yBAAyB,WAAW;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ,yBAAyB,UAAU;AAC5E;AACA;AACA,uCAAuC,YAAY;AACnD,kCAAkC,YAAY;AAC9C,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,cAAc;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D,gBAAgB,UAAU,mBAAmB,WAAW;AACxD,qDAAqD,kBAAkB,yBAAyB,mBAAmB;AACnH,uCAAuC,kBAAkB,yBAAyB,mBAAmB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA,4EAA4E,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,SAAS;AAC1F;AACA;AACA;AACA;AACA;AACA,iEAAiE,2CAA2C;AAC5G,8BAA8B;AAC9B;AACA;AACA,sDAAsD,aAAa;AACnE,qFAAqF,aAAa;AAClG;AACA;AACA,0FAA0F,QAAQ,yBAAyB,UAAU;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA,wFAAwF,aAAa;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA,iIAAiI,IAAI;AACrI,iIAAiI,KAAK;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,aAAa;AAClG,qEAAqE,QAAQ;AAC7E;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,uDAAuD,aAAa,8CAA8C,kBAAkB;AACpI,qFAAqF,aAAa;AAClG;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,wBAAwB,UAAU;AAClC,0CAA0C,cAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE,gDAAgD,iBAAiB,2BAA2B,iBAAiB;AAC7G,8BAA8B,iBAAiB;AAC/C,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,0CAA0C,YAAY;AACtD,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA,uDAAuD,oBAAoB;AAC3E;AACA,0DAA0D,SAAS,yDAAyD,oBAAoB;AAChJ,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI,QAAQ,8BAA8B;AACzE;AACA,mFAAmF;AACnF,2BAA2B;AAC3B;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,6CAA6C;AAC7C,iCAAiC;AACjC,6EAA6E;AAC7E,yCAAyC;AACzC,6BAA6B;AAC7B,yEAAyE;AACzE,yBAAyB;AACzB;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,cAAc;AACnF;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW,gFAAgF,IAAI;AAChI,qEAAqE,cAAc,SAAS,cAAc;AAC1G;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,0CAA0C,aAAa,+CAA+C,aAAa;AACnH,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mEAAmE;AAC7G;AACA;AACA,0CAA0C,oEAAoE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB,yBAAyB,mBAAmB;AACrH;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA,iEAAiE,IAAI,iCAAiC,IAAI,iCAAiC,IAAI;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD,gCAAgC,6BAAQ;AACxC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,aAAa;AACrG;AACA,oKAAoK,cAAc;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA,6CAA6C;AAC7C,sDAAsD,WAAW;AACjE;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,8DAA8D,kFAAkF;AAChJ;AACA,8EAA8E;AAC9E;AACA,8EAA8E,YAAY;AAC1F;AACA;AACA;AACA;AACA;AACA,sDAAsD,iEAAiE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA,wBAAwB,oDAAoD;AAC5E,wBAAwB;AACxB;AACA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,sBAAsB,wFAAwF;AAC9G;AACA,sCAAsC;AACtC,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,YAAY,wBAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe,yBAAyB,oBAAoB;AAC9F,oCAAoC,QAAQ,yBAAyB,UAAU;AAC/E,oCAAoC,UAAU,yBAAyB,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA,yBAAyB,iBAAiB;AAC1C,yBAAyB,iBAAiB;AAC1C,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA,kEAAkE,IAAI;AACtE,mDAAmD,eAAe;AAClE,kDAAkD,SAAS;AAC3D,uDAAuD,oBAAoB;AAC3E,kDAAkD,SAAS,iCAAiC,QAAQ;AACpG,uDAAuD,eAAe;AACtE,kDAAkD,eAAe,iCAAiC,cAAc;AAChH,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA,+DAA+D,SAAS,iCAAiC,QAAQ;AACjH;AACA;AACA;AACA;AACA,qDAAqD,eAAe,iCAAiC,cAAc;AACnH;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,sFAAsF,kBAAkB,yBAAyB,mBAAmB;AACpJ;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA,uDAAuD,kBAAkB,yBAAyB,mBAAmB;AACrH;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA,yFAAyF,WAAW;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,SAAS,iBAAiB;AACnE;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,sCAAsC,QAAQ;AAC9C;AACA,6CAA6C,QAAQ;AACrD;AACA,6CAA6C,IAAI,wBAAwB,SAAS;AAClF;AACA;AACA;AACA,6DAA6D,oBAAoB;AACjF,6DAA6D,SAAS;AACtE;AACA;AACA,iDAAiD,IAAI,wBAAwB,SAAS;AACtF;AACA,+DAA+D,oBAAoB;AACnF,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,QAAQ;AACnC;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,mBAAmB;AAC9C;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA,2BAA2B,WAAW;AACtC;AACA,2BAA2B,QAAQ;AACnC;AACA,2BAA2B,oBAAoB;AAC/C;AACA,2BAA2B,UAAU;AACrC;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF,4BAA4B,kBAAkB;AAC9C;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,kFAAkF,eAAe;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uEAAuE,qBAAK;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,4CAA4C,6CAA6C;AACzF,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,uFAAuF,kBAAkB;AACzG,6BAA6B,sBAAsB;AACnD;AACA,wDAAwD,UAAU;AAClE;AACA,+DAA+D;AAC/D;AACA;AACA,yBAAyB;AACzB;AACA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,yBAAyB;AACzB;AACA,0CAA0C,oDAAoD;AAC9F;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,8EAA8E,sBAAsB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA,gCAAgC,iEAAiE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,iBAAiB;AACjB;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA,2DAA2D,2DAA2D;AACtH;AACA;AACA;AACA;AACA,2DAA2D,2DAA2D;AACtH;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,eAAe,WAAW,eAAe,iBAAiB,eAAe,UAAU,eAAe,QAAQ,eAAe;AAC3J;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE,mCAAmC,oBAAoB;AACvD,sCAAsC,oBAAoB;AAC1D,6DAA6D,IAAI;AACjE;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA,2EAA2E,SAAS;AACpF,gCAAgC,SAAS,2CAA2C,KAAI;AACxF;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D,kEAAkE,gBAAgB;AAClF;AACA,qCAAqC,cAAc;AACnD,4BAA4B,YAAY;AACxC,oCAAoC,sBAAsB;AAC1D,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C,4BAA4B,sBAAsB;AAClD,gDAAgD,SAAS,IAAI,oBAAoB;AACjF,8DAA8D,SAAS,6BAA6B;AACpG;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA,gHAAgH,QAAQ;AACxH,gEAAgE,QAAQ,KAAK,YAAY;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,4BAA4B,OAAO,mBAAmB,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA,kCAAkC,oBAAoB;AACtD,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,aAAa,iBAAiB,cAAc,aAAa,4BAA4B,SAAS;AAC3H;AACA,iDAAiD,QAAQ;AACzD,8BAA8B,oBAAoB;AAClD,6BAA6B,oBAAoB;AACjD;AACA;AACA,4GAA4G,IAAI,mDAAmD,SAAS,MAAM,SAAS;AAC3L,wFAAwF,aAAa;AACrG,wFAAwF,YAAY;AACpG;AACA;AACA;AACA;AACA,wEAAwE,IAAI,qDAAqD,SAAS,OAAO,aAAa,0CAA0C,iBAAiB,cAAc,YAAY,0CAA0C,gBAAgB;AAC7S,mEAAmE,WAAW;AAC9E,6BAA6B,YAAY,0CAA0C,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,6BAA6B,oBAAoB;AACjD,wEAAwE,IAAI,mDAAmD,SAAS;AACxI,4BAA4B,YAAY,0CAA0C,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,QAAQ;AACzG;AACA,gCAAgC,oBAAoB;AACpD;AACA,4DAA4D,SAAS;AACrE;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uEAAuE,SAAS;AAChF;AACA,sDAAsD,IAAI;AAC1D;AACA;AACA;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uEAAuE,IAAI,mDAAmD,SAAS;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACtnGD,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACE;;;AC1DjB,IAAI,uBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,yBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACiF;AACpB;AACD;AACA;AACH;AACf;AACM;AAC2D;AACR;AACuD;AAC5B;AAC/C;AACpC;AACyC;AACA;AACxC;AACgG;AAC7B;AAC7B;AACM;AACyD;AACrG;AACF;AAC2E;AACnD;AACzB;AAC8B;AAC2B;AACP;AACc;AACjC;AACjC;AACyB;AACiD;AAChD;AACqD;AAC1B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,wFAAwF,mEAAmE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,wFAAwF,mEAAmE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B,eAAe,sBAAsB;AACrC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,0EAA0E,MAAM;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB,gBAAgB,sCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0CAAqB;AACtE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,YAAY;AAC3B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB,WAAW,oBAAoB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB,gBAAgB,uBAAuB;AACjH;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC,gBAAgB,iCAAiC;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA,qDAAqD,mBAAmB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,kBAAkB,kCAAkC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+DAA+D;AAClF,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA,wCAAwC,YAAY,mBAAmB,YAAY;AACnF,sCAAsC,YAAY;AAClD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD,0CAA0C,iBAAiB;AAC3D;AACA,2EAA2E,SAAS,cAAc,YAAY;AAC9G;AACA;AACA;AACA,2EAA2E,YAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,uBAAuB,iBAAiB;AAClF,+BAA+B,iBAAiB,4BAA4B,iBAAiB;AAC7F;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAmE;AACrF,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,yBAAyB,wEAAwE;AACzI,wBAAwB;AACxB;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,yBAAyB,wEAAwE;AACzI;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,UAAU;AAC5B,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,gBAAgB;AAClC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6EAA6E;AAC/F,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,iEAAiE,6BAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAmE;AACrF,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,yBAAyB,sCAAsC;AAC3G,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,yBAAyB,sCAAsC;AAC/G,gCAAgC,wEAAwE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA,yCAAyC;AACzC,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA,+BAA+B,IAAI;AACnC,+BAA+B;AAC/B,uDAAuD,qBAAW;AAClE;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA,8BAA8B,qBAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAA6C;AACzE;AACA,+BAA+B,qBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAK;AACtC,qCAAqC,cAAc;AACnD,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA,6EAA6E,qBAAK;AAClF,gDAAgD,sBAAsB,WAAW,kEAAkE;AACnJ,wDAAwD,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D,4CAA4C,2BAA2B;AACvE;AACA,2DAA2D,qBAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,kDAAkD,qBAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6BAA6B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uEAAuE,mCAAmC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA,6CAA6C,qBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,kBAAkB,IAAI;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,6BAA6B,qBAAW;AACxC;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6BAAQ;AACjF;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,iEAAiE;AACjE;AACA,yDAAyD,qCAAqC;AAC9F,8BAA8B,aAAa,qBAAW,4BAA4B;AAClF;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa,WAAW,SAAS;AACzD,wCAAwC,qBAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA,6FAA6F,gCAAgC,IAAI,0EAA0E;AAC3M;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA,6FAA6F,gCAAgC,IAAI,0EAA0E;AAC3M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,qBAAqB,qBAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA,YAAY,aAAa,CAAC,qBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB;AACnF;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,sCAAsC,YAAY;AAClD;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa,eAAe,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA,YAAY,aAAa,UAAU,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAK;AAC/B,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA,YAAY,aAAa,iCAAiC,IAAI,KAAK,aAAa,iCAAiC,SAAS;AAC1H,yBAAyB,IAAI;AAC7B,oEAAoE,QAAQ;AAC5E;AACA;AACA,yBAAyB,SAAS;AAClC;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,sDAAsD,gBAAgB;AACtE;AACA;AACA,uCAAuC,qBAAqB;AAC5D,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,eAAe,gCAAgC;AAC/C,eAAe,SAAS;AACxB,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,oCAAoC,qCAAqC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B,8CAA8C,YAAY;AAC1D;AACA;AACA,8CAA8C,oBAAoB;AAClE;AACA;AACA,yCAAyC,cAAc;AACvD,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,kDAAkD,+CAA+C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,aAAa,SAAS,0BAA0B,QAAQ,MAAM,UAAU;AACxE;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB,0CAA0C,YAAY;AACtD;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,+BAA+B,iBAAiB;AAChD,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,kCAAkC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kCAAkC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E,qDAAqD,SAAS;AAC9D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD,kCAAkC;AAClC,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,0BAA0B,+BAA+B;AACzD;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C,wCAAwC;AACxC,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA,6CAA6C,EAAE,6CAA6C,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,+BAA+B;AACxH;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA;AACA;AACA,0CAA0C,6BAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA,qGAAqG,WAAW;AAChH,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,WAAW;AAC3G,yBAAyB;AACzB;AACA,0EAA0E,IAAI;AAC9E,8FAA8F,YAAY;AAC1G;AACA;AACA;AACA;AACA,sGAAsG,WAAW;AACjH,sGAAsG,YAAY;AAClH;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAW;AAC5C,8BAA8B;AAC9B,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,yDAAyD,uDAAuD,wBAAwB,qBAAqB;AAC7J;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8CAA8C;AACjH;AACA,yDAAyD,uDAAuD,wBAAwB,qBAAqB;AAC7J;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC,iBAAiB,WAAW;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,UAAU;AAC3B,iBAAiB,WAAW;AAC5B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA;AACA;AACA;AACA;AACA,2EAA2E,gDAAgD;AAC3H,yFAAyF,gCAAgC;AACzH,0FAA0F,gCAAgC;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB,mCAAmC,qBAAW;AAC9C;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH;AACA;AACA;AACA,sDAAsD,qFAAqF;AAC3I;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B;AAChG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uDAAuD;AACpH,gDAAgD,6BAA6B;AAC7E,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,4IAA4I,EAAE,iCAAiC,EAAE;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,+BAA+B,qBAAW;AAC1C;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA;AACA,iBAAiB;AACjB,mCAAmC,qBAAW;AAC9C;AACA;AACA,qCAAqC,qBAAW;AAChD;AACA,iBAAiB;AACjB,8BAA8B;AAC9B,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA,kEAAkE,8CAA8C;AAChH,qDAAqD,oFAAoF;AACzI;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B;AAChG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,4IAA4I,EAAE,iCAAiC,EAAE;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,SAAS;AAC1B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,SAAS;AAC1B,iBAAiB,WAAW;AAC5B,iBAAiB,aAAa;AAC9B,iBAAiB,qBAAqB;AACtC,iBAAiB,WAAW;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gBAAgB;AAChB,gBAAgB;AAChB;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C,qCAAqC;AACrC,4BAA4B,cAAc;AAC1C;AACA,SAAS;AACT,mCAAmC,OAAO,2DAA2D;AACrG,qCAAqC;AACrC;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,SAAS;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,SAAS;AAC7B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,iBAAiB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oBAAoB,WAAW;AAC/B,oBAAoB,WAAW;AAC/B,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,iBAAiB,UAAU;AAC3B,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,eAAe,uBAAS;AACxB;AACA,mBAAmB,yBAAW;AAC9B;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAAQ;AACrC,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA,iCAAiC,6BAAQ;AACzC,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO,sEAAsE,eAAe;AACxG,+BAA+B,IAAI;AACnC,kCAAkC;AAClC;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD,oFAAoF,aAAa;AACjG;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA,iFAAiF,aAAa;AAC9F;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,sEAAsE,4CAA4C;AAClH;AACA;AACA;AACA;AACA,qCAAqC,aAAa;AAClD,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD,8CAA8C,SAAS;AACvD,0CAA0C,eAAe,oDAAoD,wEAAwE;AACrL;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E,kDAAkD,KAAK;AACvD;AACA,uDAAuD,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,qDAAqD,eAAe;AACpE,2BAA2B;AAC3B,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA;AACA,gCAAgC,KAAK;AACrC,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,YAAY,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,gBAAgB,QAAQ,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,0BAA0B,yGAAyG;AACnI,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,0BAA0B,uGAAuG;AACjI,0BAA0B;AAC1B;AACA,kCAAkC,iBAAiB;AACnD,kCAAkC,iBAAiB;AACnD;AACA;AACA,8BAA8B;AAC9B,kCAAkC,iBAAiB;AACnD;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa,qBAAqB,aAAa;AAC5E,oBAAoB,KAAK;AACzB,2CAA2C,eAAe;AAC1D;AACA,oBAAoB,KAAK;AACzB,2CAA2C,eAAe;AAC1D;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA,sBAAsB,KAAK;AAC3B,uCAAuC;AACvC;AACA;AACA,oGAAoG,aAAa;AACjH;AACA;AACA,sBAAsB,KAAK;AAC3B,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,oEAAoE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,sCAAsC,eAAe;AACrD,2BAA2B;AAC3B,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA,2BAA2B,0CAA0C;AACrE;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C;AACA;AACA,qCAAqC,SAAS;AAC9C,wCAAwC,KAAK;AAC7C;AACA;AACA,gCAAgC;AAChC,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA,oCAAoC;AACpC,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA,6CAA6C,SAAS;AACtD,gDAAgD,KAAK;AACrD;AACA;AACA;AACA,yCAAyC,SAAS;AAClD,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,2BAA2B;AAC1C,eAAe,gCAAgC;AAC/C,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA,8CAA8C,uBAAuB;AACrE;AACA,+BAA+B,IAAI;AACnC,oBAAoB,SAAS,SAAS,eAAe;AACrD;AACA;AACA,sCAAsC;AACtC;AACA;AACA,wCAAwC,sBAAsB,WAAW,gDAAgD;AACzH;AACA;AACA,+DAA+D,IAAI,0EAA0E;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gDAAgD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,+BAA+B,sBAAsB;AACrD,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA,4BAA4B;AAC5B,yDAAyD;AACzD;AACA;AACA;AACA;AACA,kEAAkE,IAAI,8BAA8B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,iGAAiG,eAAe;AAChH;AACA;AACA,kDAAkD,qBAAqB;AACvE;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sEAAsE;AACxF,eAAe,WAAW;AAC1B,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc,IAAI;AAC3C;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,+BAA+B,IAAI;AACnC,gCAAgC,oBAAoB;AACpD,kCAAkC,sBAAsB,WAAW,kDAAkD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,kCAAkC;AAClC,qBAAqB;AACrB;AACA;AACA,wBAAwB,sBAAsB;AAC9C,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,qBAAqB;AACjC,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,oBAAoB;AAC5C,2BAA2B,cAAc;AACzC,YAAY,YAAY;AACxB;AACA,kBAAkB,sBAAsB;AACxC;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B,qBAAqB,cAAc;AACnC,QAAQ,YAAY;AACpB;AACA;AACA,wBAAwB,sBAAsB,WAAW,gCAAgC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C;AACA,oNAAoN,OAAO;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,gBAAgB,4BAA4B;AAC5C,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,oBAAoB,OAAO;AAC3B;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,iCAAiC,IAAI;AACrC;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,iCAAiC,IAAI;AACrC;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA,kEAAkE;AAClE;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,8BAA8B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C,kBAAkB,yCAAyC;AAC3D,kBAAkB,yDAAyD;AAC3E,kBAAkB,0CAA0C;AAC5D,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,4BAA4B,0BAA0B;AACtD,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,KAAK,cAAc,YAAY,IAAI,iFAAiF;AAC5I,wBAAwB,sBAAsB;AAC9C;AACA;AACA,kCAAkC,KAAK;AACvC,kCAAkC,KAAK;AACvC;AACA,yBAAyB,KAAK;AAC9B,yBAAyB,KAAK;AAC9B,8BAA8B;AAC9B,8BAA8B;AAC9B,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA,iFAAiF,IAAI;AACrF;AACA;AACA,aAAa;AACb;AACA,sBAAsB,wGAAwG;AAC9H;AACA,2CAA2C,SAAS;AACpD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,sBAAsB,wGAAwG;AAC9H;AACA,2CAA2C,SAAS;AACpD;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,yBAAyB;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA;AACA,oBAAoB,SAAS,GAAG,kDAAkD;AAClF;AACA;AACA,6BAA6B,cAAc;AAC3C,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,yBAAyB,cAAc;AACvC,YAAY,YAAY;AACxB,wEAAwE,IAAI;AAC5E,YAAY,YAAY;AACxB,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,8BAA8B,sBAAsB,WAAW,gDAAgD;AAC/G;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,oFAAoF,IAAI;AACxF;AACA;AACA,6BAA6B,2BAA2B;AACxD,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA,4FAA4F,wCAAwC;AACpI;AACA;AACA,8FAA8F,oGAAoG;AAClM;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4BAA4B;AACtG,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa,2BAA2B,aAAa;AAC9H;AACA,yDAAyD,IAAI;AAC7D,gBAAgB,kBAAkB;AAClC;AACA;AACA,0EAA0E,aAAa,2BAA2B,aAAa;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC,oEAAoE,kDAAkD;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,uCAAuC,aAAa;AACpD,2DAA2D,6BAA6B;AACxF,qEAAqE,aAAa;AAClF;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,CAAC,qBAAK;AAChD;AACA,8BAA8B,YAAY;AAC1C;AACA,6EAA6E,kBAAkB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,wDAAwD;AACxD;AACA,aAAa;AACb;AACA;AACA;AACA,wDAAwD,IAAI,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kBAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,IAAI;AAChD;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,oCAAoC,+BAA+B;AACnE;AACA,4CAA4C,IAAI;AAChD,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAK;AAChC;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAK;AACvC;AACA,2DAA2D,sBAAsB,gBAAgB,eAAe;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,SAAS;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B,oCAAoC,IAAI,2BAA2B,SAAS,oDAAoD,IAAI,2BAA2B,SAAS;AACxK;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI,sBAAsB,QAAQ;AAChE,0CAA0C,IAAI;AAC9C;AACA,sBAAsB,6BAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA;AACA,uCAAuC,SAAS;AAChD,iFAAiF,IAAI;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD,4BAA4B;AAC5B,4BAA4B;AAC5B,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAK;AAC3B,sBAAsB,qBAAK;AAC3B;AACA;AACA,4BAA4B,qBAAW,uBAAuB,qBAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC,wBAAwB,oBAAoB;AAC5C;AACA;AACA,sBAAsB,IAAI;AAC1B,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,2BAA2B,SAAS;AACpC,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAK;AACnC,8BAA8B,qBAAK;AACnC;AACA;AACA,4BAA4B,qBAAW,+BAA+B,qBAAW;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,yBAAyB,SAAS;AAClC,+BAA+B;AAC/B,+BAA+B;AAC/B,wBAAwB,oBAAoB;AAC5C;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAK;AAC9B,yBAAyB,qBAAK;AAC9B;AACA;AACA,4BAA4B,qBAAW,0BAA0B,qBAAW;AAC5E;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,sCAAsC,qBAAK;AAC3C;AACA;AACA,2CAA2C,qBAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,UAAU;AAC5E;AACA;AACA;AACA;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,eAAe,4CAA4C;AAC3D;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,YAAY,mBAAmB;AAC/B;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B,sBAAsB,mBAAmB;AACtF;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AClrNgB;AACe;AACmE;AAC/E;AACiC;AAC9E;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU;AAChF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,WAAW;AACjC,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,UAAU;AAChF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,IAAI;AACtE;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,gCAAgC,oDAAoD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,gCAAgC,gDAAgD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,YAAY,OAAO,mCAAmC,MAAM;AAC5D,yBAAyB,cAAc;AACvC,YAAY,WAAW;AACvB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,cAAc;AACjD,gBAAgB,WAAW;AAC3B,gBAAgB,eAAe;AAC/B,gBAAgB,cAAc;AAC9B,gCAAgC,sBAAsB,WAAW,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AAC0B;;;ACt5B3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,CAAC;AACe;;;ACrM6B;AACf;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;AChbzB,IAAI,8BAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8BAAS;AACb;AACA;AACA;AACA,IAAI,+BAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;;;AC9CjC,IAAI,qBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAS;AACb;AACA;AACA;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,sBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACe;;;ACrCY;AACgE;AAC3C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,4BAA4B,mBAAmB;AAC/C;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iFAAiF;AACvH,kBAAkB;AAClB,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,0CAA0C,uEAAuE;AACjH,sBAAsB;AACtB;AACA;AACA,0CAA0C,yDAAyD;AACnG,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gCAAgC,mBAAmB;AACnD;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oDAAoD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kDAAkD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,uBAAuB,oBAAoB;AAC3F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,uBAAuB,oBAAoB;AAC3F,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,IAAI,wCAAwC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;ACzhCvB,IAAI,wBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAS;AACb;AACA;AACA;AACA,IAAI,yBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACY;;;AC9C3B,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,gBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,eAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,iBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwI;AAC/E;AACH;AACO;AACN;AACA;AACgB;AACpB;AACK;AACkE;AACsB;AACtF;AACG;AAC+D;AAC5E;AACI;AACK;AACsB;AACb;AACzB;AACmG;AAC/F;AACF;AACyD;AACrC;AACU;AACd;AACA;AAC4E;AAC1E;AACmF;AACvG;AACkB;AACY;AACrB;AACmB;AAClB;AACL;AACE;AACmB;AACJ;AACN;AACI;AACe;AAC+D;AACzB;AACkB;AACrC;AACqB;AAClC;AAC0C;AAC3C;AACoC;AACS;AACS;AACrC;AAClC;AACX;AACE;AACf;AAC8B;AACJ;AACR;AACuE;AAC/B;AAC7B;AAC6C;AACrD;AACY;AAC+B;AACjD;AACM;AACJ;AACK;AACH;AACiC;AACjD;AAC4D;AACzB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,IAAI,eAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA,8BAA8B,YAAY;AAC1C;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA,4BAA4B,gEAAgE;AAC5F;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,wBAAwB,gEAAgE;AACxF;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA,uDAAuD,SAAS,qCAAqC,IAAI;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa;AACnD,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAW;AACzD;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,kDAAkD,iBAAiB;AACnE,kDAAkD,iBAAiB;AACnE;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E;AACA;AACA;AACA,qFAAqF,aAAa;AAClG;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,kDAAkD,iBAAiB;AACnE,kDAAkD,iBAAiB;AACnE;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY,+BAA+B,YAAY;AAC1G,mDAAmD,YAAY,+BAA+B,YAAY;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA,kCAAkC,iBAAiB,qBAAqB,iBAAiB;AACzF;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4DAA4D;AACjI;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD,gCAAgC,mBAAmB;AACnD,iCAAiC,aAAa;AAC9C,4BAA4B,eAAe;AAC3C;AACA;AACA,0EAA0E,qBAAI;AAC9E;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA,mEAAmE,eAAe;AAClF;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAO;AACnB,wBAAwB,YAAY,WAAW,YAAY;AAC3D;AACA,qCAAqC;AACrC;AACA,6BAA6B,WAAW;AACxC,8BAA8B,aAAa;AAC3C;AACA;AACA,QAAQ,yBAAyB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE,kDAAkD,gBAAgB;AAClE;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC,4BAA4B,wBAAO;AACnC,yBAAyB,wBAAO;AAChC;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC,4BAA4B,wBAAO;AACnC,yBAAyB,wBAAO;AAChC;AACA,wBAAwB,wBAAO;AAC/B,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gCAAgC;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA,iDAAiD,6BAAQ;AACzD;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA,wBAAwB,qBAAW;AACnC;AACA;AACA;AACA,sFAAsF;AACtF,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,qBAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,qBAAW;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA,6BAA6B,qBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4CAA4C;AAC3D,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA,uEAAuE,qBAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAW,mBAAmB,qBAAW;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,gBAAgB;AAC/B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,+BAA+B;AAC9C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gCAAgC;AAC/C,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,UAAU;AACzB;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA,wFAAwF,gBAAgB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,kBAAkB,iBAAiB;AACnG;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,sBAAsB;AACtB,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,sBAAsB;AACtB,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,iBAAiB;AAChC,eAAe,gCAAgC;AAC/C,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gCAAgC;AAC/C,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,eAAe;AAC9B,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA,4HAA4H,YAAY;AACxI;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,0DAA0D,IAAI,8BAA8B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,eAAS;AACxB;AACA,mBAAmB,iBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,0DAA0D,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,yBAAyB;AACzB;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,sCAAsC,aAAa;AACtH,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA,+EAA+E,qBAAW;AAC1F,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAW;AACnC,sDAAsD,aAAa,sCAAsC,aAAa;AACtH,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA,oFAAoF,qBAAW;AAC/F,4BAA4B,qBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS,0DAA0D;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;;AAE7B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;;AAE1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,qDAAqD;AACpE,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,mBAAmB,SAAS;AAC7D;AACA;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,UAAU,SAAS;AACpD,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA,mEAAmE,oBAAoB;AACvF;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wDAAwD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,kBAAkB;AACxF;AACA,wCAAwC,oBAAoB;AAC5D;AACA,kDAAkD,SAAS;AAC3D,uEAAuE;AACvE;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF,sCAAsC,YAAY;AAClD;AACA,4CAA4C,aAAa,sCAAsC,aAAa;AAC5G,4CAA4C,aAAa;AACzD;AACA,qFAAqF,qBAAW;AAChG,oCAAoC,qBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,qBAAqB;AACpC,eAAe,WAAW;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA,wDAAwD,qBAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,wEAAwE,oBAAoB;AAC5F;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA,6EAA6E,kBAAkB;AAC/F,0DAA0D,gBAAgB;AAC1E;AACA,4BAA4B,aAAa;AACzC,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,kBAAkB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,gCAAgC,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,sCAAsC,YAAY;AAClD;AACA;AACA,wBAAwB,SAAS;AACjC;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,iDAAiD,aAAa,uCAAuC,aAAa;AAClH,wCAAwC,IAAI,mBAAmB,SAAS;AACxE;AACA,yFAAyF,qBAAW;AACpG,wCAAwC,qBAAW;AACnD;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,IAAI,mBAAmB,SAAS;AAC5E;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,eAAe,6BAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,YAAY;AACrF;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,gCAAgC,aAAa;AAC5E,yCAAyC,aAAa,uCAAuC,aAAa;AAC1G,gCAAgC,IAAI,mBAAmB,SAAS;AAChE;AACA,2DAA2D,qBAAW;AACtE,gCAAgC,qBAAW;AAC3C;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF,4CAA4C,qCAAqC;AACjF;AACA;AACA;AACA,oDAAoD,0EAA0E;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,QAAQ;AACtE,wCAAwC,iCAAiC;AACzE;AACA;AACA;AACA;AACA,gDAAgD,sEAAsE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,qCAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAa;AAClE,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB;AACA;AACA,cAAc,UAAU,WAAW,cAAc,WAAW,eAAe;AAC3E;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,SAAS;AACpG;AACA;AACA;AACA;AACA;AACA,iDAAiD,eAAe;AAChE;AACA;AACA,oDAAoD,IAAI,QAAQ,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,QAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;AACtF,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,UAAU;AACjE,mCAAmC,iBAAiB,eAAe;AACnE;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA,yCAAyC,IAAI,CAAC,cAAc;AAC5D;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,iBAAiB;AACtH,oCAAoC,6CAA6C;AACjF,iCAAiC,8BAA8B;AAC/D;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA,gCAAgC,yCAAyC,aAAa,cAAc,iBAAiB;AACrH,8BAA8B;AAC9B,8BAA8B,6CAA6C;AAC3E,kFAAkF;AAClF;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA,wBAAwB,6BAAY;AACpC,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA,yJAAyJ,aAAa;AACtK;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA,qGAAqG,aAAa;AAClH;AACA;AACA;AACA;AACA,oDAAoD,IAAI,8CAA8C;AACtG;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA,gBAAgB,eAAe;AAC/B,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mCAAmC;AACtG;AACA;AACA;AACA;AACA,qFAAqF,4BAA4B;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H;AAC9H,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B;AACpG;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,6DAA6D,oEAAoE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,wDAAwD;AACjH;AACA;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,iEAAiE,mEAAmE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC,gBAAgB,gBAAgB;AAChC,gBAAgB,SAAS;AACzB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,kBAAkB,WAAW;AAC7B;AACA;AACA,2CAA2C,kBAAkB,qBAAqB,mBAAmB;AACrG;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qCAAqC;AAC3D,sBAAsB;AACtB;AACA,0CAA0C;AAC1C;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+BAA+B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,yBAAyB;AACzB;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,iCAAiC,qBAAqB;AACtD;AACA,gCAAgC,0BAA0B;AAC1D;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,wCAAwC,mEAAmE;AAC3G;AACA;AACA;AACA;AACA,yBAAyB;AACzB,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,oCAAoC,0CAA0C;AAC9E;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,kBAAkB;AAClC,kBAAkB;AAClB;AACA;AACA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4BAA4B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA,+DAA+D,GAAG,GAAG,GAAG;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,sBAAsB;AACtB;AACA,oCAAoC;AACpC,sBAAsB;AACtB;AACA,mCAAmC;AACnC,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,gBAAgB,uBAAuB;AACvC,eAAe,gDAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,0DAA0D;AAC/G;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,6BAA6B,SAAS;AACtC;AACA;AACA,oCAAoC,SAAS;AAC7C,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA,0CAA0C,aAAa,wCAAwC,aAAa;AAC5G;AACA,qFAAqF,qBAAW;AAChG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,wBAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,gBAAgB;AAC/B,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,4BAA4B;AAC3C,eAAe,mEAAmE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,+BAA+B,IAAI;AACnC,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA,sCAAsC,oCAAoC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA,wCAAwC,aAAa,sCAAsC,aAAa;AACxG;AACA,sFAAsF,qBAAW;AACjG,gCAAgC,qBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,0EAA0E;AACzF,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,YAAY;AAC3B;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,mCAAmC,WAAW,wBAAwB,kBAAkB;AACxF;AACA,oCAAoC,4BAA4B;AAChE;AACA,wDAAwD,aAAa;AACrE;AACA,sGAAsG,qBAAW;AACjH,gDAAgD,qBAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,gBAAgB,uBAAuB;AACvC,eAAe,gDAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA,oFAAoF,mDAAmD;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,kCAAkC,WAAW;AAC7C;AACA,oCAAoC,sBAAsB;AAC1D;AACA,wDAAwD,aAAa;AACrE;AACA,qGAAqG,qBAAW;AAChH,gDAAgD,qBAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,+CAA+C,8BAA8B;AAC7E,kCAAkC,kBAAkB,cAAc;AAClE,kCAAkC,sBAAsB,kBAAkB;AAC1E,6BAA6B,QAAQ,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB,iEAAiE;AACjE,qDAAqD,kBAAkB,gBAAgB;AACvF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B,0BAA0B,iBAAiB;AAC9H;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA,QAAQ,oBAAoB;AAC5B,8BAA8B,gBAAgB;AAC9C;AACA;AACA,SAAS;AACT;AACA,qBAAqB;AACrB,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,QAAQ,qCAAqC;AACnF,mBAAmB,gBAAgB;AACnC;AACA,SAAS;AACT,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe,eAAe,sBAAsB;AAC5D;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B;AACnF;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB,QAAQ,yCAAyC;AAChG,sCAAsC,gBAAgB,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,YAAY,oBAAoB,uCAAuC,SAAS,QAAQ;AACxF;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,SAAS,gBAAgB,oBAAoB;AAClG;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,mDAAmD,+BAA+B;AAClF,SAAS;AACT,sBAAsB,iBAAiB;AACvC;AACA,mDAAmD,+BAA+B;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB,QAAQ,2CAA2C;AAC/F;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,QAAQ,4CAA4C;AAC9F;AACA,QAAQ,eAAe,kBAAkB,4BAA4B,GAAG;AACxE;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA,QAAQ,eAAe,gBAAgB,sBAAsB;AAC7D;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA,oDAAoD,+BAA+B,kBAAkB,QAAQ;AAC7G,0BAA0B,gBAAgB,oBAAoB;AAC9D;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,wCAAwC,QAAQ,SAAS,mBAAmB;AAC5E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,QAAQ,qEAAqE,GAAG;AAC1H;AACA;AACA,QAAQ,eAAe,mBAAmB,iDAAiD;AAC3F;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe,WAAW,4CAA4C;AAC9E;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA,uEAAuE,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,mBAAmB,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA,0DAA0D,kBAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,UAAU;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,6EAA6E,eAAe,8BAA8B,eAAe;AACzI;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA,+FAA+F,eAAe,oCAAoC,eAAe;AACjK;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mFAAmF;AACnF;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,gCAAgC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,4BAA4B,UAAU;AACtC,kCAAkC,gBAAgB;AAClD,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU,uCAAuC,UAAU;AAChG,0DAA0D,UAAU;AACpE,8CAA8C,aAAa,wCAAwC,aAAa;AAChH,mDAAmD,aAAa;AAChE,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU;AACpE,8CAA8C,aAAa,wCAAwC,aAAa;AAChH,mDAAmD,aAAa;AAChE,wCAAwC,UAAU;AAClD;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,YAAY;AACzF;AACA;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,2BAA2B;AACvC;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,IAAI;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,oBAAoB,aAAa,oBAAoB,iBAAiB,oBAAoB;AACvH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe,aAAa,eAAe,cAAc,eAAe;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA,4BAA4B,qCAAqC,QAAQ,iDAAiD;AAC1H;AACA;AACA;AACA;AACA,qBAAqB,yDAAyD,kEAAkE;AAChJ,yBAAyB,eAAe,aAAa,eAAe,cAAc,eAAe;AACjG;AACA;AACA,yBAAyB;AACzB,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B,oBAAoB,qBAAqB;AACzC;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,6HAA6H,SAAS;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI,wCAAwC;AACnF,qBAAqB,SAAS,qBAAW;AACzC,0BAA0B,YAAY;AACtC;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI;AACpC,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,KAAK;AACjF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,QAAQ;AACpF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,OAAO;AACnF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,OAAO;AACnF;AACA,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,oBAAoB,YAAY;AACpE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI;AAC5E,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACzF,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,kBAAkB,YAAY;AAClE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,wBAAwB,YAAY;AACxE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,qBAAqB,YAAY;AACrE,aAAa;AACb;AACA;AACA,2BAA2B,KAAK,IAAI,sBAAsB,YAAY;AACtE,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,mBAAmB,YAAY;AAC3G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,qBAAqB,YAAY;AAC7G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,qBAAqB,YAAY;AAC7G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,sBAAsB,YAAY;AAC9G,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,kBAAkB,YAAY,WAAW,YAAY;AACjI,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,4BAA4B,YAAY;AACpH,aAAa;AACb;AACA;AACA,mEAAmE,KAAK,IAAI,6BAA6B,YAAY;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,+BAA+B;AAC/C,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,gCAAgC,iCAAiC;AACjE,mGAAmG,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC,iCAAiC;AACjE,mGAAmG,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,eAAe,2BAA2B;AAC1C,eAAe,KAAK;AACpB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAiC;AACnD,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,wBAAwB,+BAA+B;AACvD;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E,oBAAoB,aAAa,sCAAsC,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,iBAAiB;AACjC,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,mBAAmB,SAAS,sBAAsB,OAAO;AACzF;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,sCAAsC,cAAc,2BAA2B,cAAc;AAC7F,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,aAAa,YAAY;AACzB,4BAA4B,+BAA+B;AAC3D;AACA,oCAAoC,IAAI;AACxC,8EAA8E,aAAa;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA,+CAA+C,IAAI;AACnD;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,WAAW;AAC3B,gBAAgB,UAAU;AAC1B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,gCAAgC;AAChD,gBAAgB,kBAAkB;AAClC,gBAAgB,cAAc;AAC9B,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qDAAqD;AACrG,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D,uEAAuE,UAAU;AACjF;AACA,mDAAmD,UAAU;AAC7D,uEAAuE,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAA2D;AACvG;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,oCAAoC,kBAAkB;AACtD;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,YAAY,eAAe,CAAC,iBAAiB;AAC7C,YAAY,eAAe,CAAC,eAAe;AAC3C,6BAA6B,kBAAkB;AAC/C,YAAY,eAAe;AAC3B;AACA;AACA,4BAA4B,eAAe;AAC3C,YAAY,eAAe;AAC3B;AACA,YAAY,eAAe,CAAC,qBAAqB;AACjD;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe,kBAAkB,WAAW;AAC3E;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA,qBAAqB,SAAS,8BAA8B,iBAAiB;AAC7E,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,sCAAsC,iBAAiB;AACrF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,sCAAsC,iBAAiB;AACrF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,uCAAuC,iBAAiB;AACtF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,uCAAuC,iBAAiB;AACtF,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA,qBAAqB,SAAS,2CAA2C,iBAAiB;AAC1F,2DAA2D,iBAAiB;AAC5E;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA,0DAA0D,iBAAiB;AAC3E;AACA,oBAAoB,gBAAgB;AACpC,0DAA0D,iBAAiB;AAC3E;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA,oBAAoB,gBAAgB;AACpC,0DAA0D,iBAAiB;AAC3E;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA,qBAAqB,SAAS;AAC9B,4DAA4D,iBAAiB,mBAAmB,iBAAiB;AACjH,wBAAwB,iBAAiB,eAAe,iBAAiB,cAAc,iBAAiB;AACxG,wBAAwB,iBAAiB,eAAe,iBAAiB,mBAAmB,iBAAiB;AAC7G;AACA,qBAAqB,SAAS;AAC9B,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D,oDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,yCAAyC,kBAAkB;AAC3D,8CAA8C,iBAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,IAAI;AAC1D;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,gEAAgE,iBAAiB;AACjF;AACA;AACA,+EAA+E,eAAe;AAC9F;AACA,iQAAiQ,OAAO;AACxQ;AACA,gEAAgE,SAAS,IAAI,aAAa;AAC1F;AACA,iSAAiS,mBAAmB;AACpT;AACA;AACA;AACA,2NAA2N,OAAO;AAClO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA,wBAAwB,+CAA+C;AACvE;AACA;AACA;AACA,gBAAgB,aAAa,qEAAqE,SAAS;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,6CAA6C,kBAAkB;AAC/D;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mBAAmB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS,IAAI,aAAa;AACpF;AACA,sRAAsR,mBAAmB;AACzS;AACA,0DAA0D,IAAI;AAC9D;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA;AACA;AACA,kOAAkO,OAAO,sDAAsD,eAAe;AAC9S;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D,sGAAsG,cAAc;AACpH;AACA,0BAA0B,qBAAqB;AAC/C,sNAAsN,OAAO;AAC7N;AACA,mGAAmG,cAAc;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,UAAU;AACzB,eAAe,kCAAkC;AACjD;AACA;AACA;AACA;AACA;AACA,+NAA+N,OAAO;AACtO;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qCAAqC;AACvD,eAAe,gCAAgC;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB,gCAAgC,kBAAkB;AAClD,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAM;AAC/C,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,8EAA8E,MAAM;AACpF,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAS;AACxB;AACA,mBAAmB,iBAAW;AAC9B,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA,wBAAwB,6BAAY;AACpC,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,iCAAiC;AACjC;AACA;AACA;AACA,kEAAkE,IAAI;AACtE,oCAAoC,eAAe;AACnD,wDAAwD;AACxD,0CAA0C;AAC1C;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI;AAC5D,wCAAwC,eAAe;AACvD;AACA,kEAAkE;AAClE,kDAAkD;AAClD;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,WAAW,IAAI;AAChE,6DAA6D,iBAAiB,IAAI,iBAAiB;AACnG;AACA;AACA,6DAA6D,sBAAsB,IAAI,sBAAsB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAW;AAC1D;AACA;AACA,yEAAyE,oBAAoB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,4BAA4B;AAC3C,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,WAAW,IAAI;AACtD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA,mCAAmC,aAAa,qCAAqC,aAAa;AAClG,qCAAqC,aAAa,wCAAwC,aAAa;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa,uCAAuC,aAAa;AACnG,yDAAyD,aAAa;AACtE;AACA,kCAAkC,aAAa,0CAA0C,aAAa;AACtG,yDAAyD,aAAa;AACtE;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA,4CAA4C,IAAI;AAChD;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD,sCAAsC,eAAe,aAAa,UAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,gBAAgB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA,wFAAwF,QAAQ;AAChG;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,eAAe;AACnF,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA,iGAAiG,eAAe;AAChH,iDAAiD,eAAe;AAChE;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA,uGAAuG,eAAe;AACtH,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D,wCAAwC,WAAW;AACnD;AACA,qGAAqG,eAAe;AACpH,uDAAuD,eAAe;AACtE;AACA;AACA,6GAA6G,eAAe;AAC5H,6DAA6D,eAAe;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS,gBAAgB,SAAS;AAChF,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE,gBAAgB,YAAY;AAC5B;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,eAAe;AACzF;AACA;AACA,+IAA+I,kDAAkD;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,6BAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,gBAAgB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,WAAW;AAC/G;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA,yGAAyG,aAAa;AACtH,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,iDAAiD,IAAI;AACrD;AACA;AACA,yCAAyC,aAAa,wCAAwC,aAAa;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,aAAa;AACrH,iCAAiC,aAAa;AAC9C,gBAAgB,0BAA0B;AAC1C;AACA;AACA,qBAAqB,YAAY,WAAW,YAAY;AACxD,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,kBAAkB;AAC/G,oDAAoD,aAAa;AACjE;AACA;AACA;AACA,wEAAwE,kBAAkB;AAC1F;AACA;AACA;AACA,gFAAgF,aAAa;AAC7F;AACA,0CAA0C,sBAAsB;AAChE;AACA,kDAAkD,SAAS;AAC3D,sGAAsG;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,MAAM,+CAA+C,WAAW;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU,8BAA8B;AACrE;AACA,4CAA4C;AAC5C;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,6CAA6C,UAAU;AACvD;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM,qBAAqB,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,qDAAqD,iBAAiB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY,qDAAqD,gBAAgB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,qDAAqD,iBAAiB;AACvH;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY,qDAAqD,gBAAgB;AACrH;AACA;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA,oCAAoC,kBAAkB,yCAAyC,aAAa;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,YAAY,WAAW;AACvB;AACA;AACA,gBAAgB,uBAAuB;AACvC,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,aAAa;AACrH,sCAAsC,aAAa;AACnD;AACA;AACA;AACA,iBAAiB,YAAY,WAAW,YAAY;AACpD,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,0BAA0B,iBAAiB,qBAAqB,iBAAiB;AACjF;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD,4EAA4E,SAAS;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,WAAW;AAC1B,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI,iDAAiD,SAAS;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;AAC9C,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA,kDAAkD,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,iBAAiB;AAChC,eAAe,sBAAsB;AACrC,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D;AACA;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,mDAAmD,qBAAqB;AACxE,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,0BAA0B;AACzC,eAAe,0BAA0B;AACzC,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA,oCAAoC,IAAI;AACxC;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oBAAoB,aAAa,cAAc;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA,mCAAmC,iBAAiB;AACpD,oCAAoC,iBAAiB;AACrD,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAA0C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD,oCAAoC,aAAa;AACjD;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA,uDAAuD,SAAS;AAChE,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAW;AACtD;AACA;AACA,sCAAsC,cAAc;AACpD,+EAA+E,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA,2DAA2D,QAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,aAAa;AAC9E;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA,oFAAoF,SAAS;AAC7F,6CAA6C,SAAS;AACtD,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D,mDAAmD,IAAI;AACvD;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yDAAyD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO,eAAS;AAChE;AACA,mBAAmB,iBAAW;AAC9B;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA,mCAAmC,qBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,IAAI,qBAAqB,sBAAsB;AACpH,mCAAmC,YAAY;AAC/C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe,UAAU,cAAc;AACnG;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA,yFAAyF,IAAI;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,cAAc;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa,aAAa,SAAS,KAAK,WAAW,iBAAiB,WAAW,IAAI,MAAM,iBAAiB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB,wBAAwB,aAAa,mBAAmB,SAAS,KAAK,WAAW,iBAAiB;AACvI,oBAAoB,MAAM,iBAAiB,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,sBAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,mBAAmB;AACvC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ,CAAC,kBAAkB;AACnC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ,CAAC,YAAY;AAC7B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,YAAY;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,aAAa;AACjC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,YAAY;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,qBAAqB;AACzC;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,IAAI;AAC3B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,SAAS;AAChC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,UAAU;AAC9B;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,kBAAkB;AACzC;AACA,IAAI,gBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,eAAe;AACnC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,QAAQ;AAC5B;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,MAAM;AAC1B;AACA,IAAI,gBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,cAAc;AAClC;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,+BAAU,KAAK,KAAK;AAC5B;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,gBAAU;AACd,QAAQ,0BAAK;AACb;AACA;AACA,CAAC,CAAC,0BAAS;AACQ;;;AC9qYnB;AACA;AACA;AACA;AACA;AACA;AAC+C;AACc;AACN;AACd;AACK;AAC4C;AACjD;AAC2B;AACZ;AACE;AACQ;AACI;AACnB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,4BAA4B,oBAAoB;AAChD,6EAA6E,kCAAkC;AAC/G,oBAAoB,wBAAO;AAC3B;AACA;AACA;AACA,8BAA8B,iBAAiB,QAAQ,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,sEAAsE,kCAAkC;AACxG,gBAAgB,wBAAO;AACvB;AACA;AACA;AACA,oCAAoC,iBAAiB,QAAQ,uCAAuC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,oEAAoE,oBAAoB,uBAAuB,kBAAkB;AACjI,sEAAsE,kBAAkB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB,QAAQ,mDAAmD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB,QAAQ,iDAAiD;AACzF;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,0DAA0D,UAAU,WAAW;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,oBAAoB;AAClG;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB,iBAAiB;AACnC,uBAAuB,iBAAiB;AACxC,iBAAiB;AACjB,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc,eAAe;AACpG,0BAA0B,yBAAyB,kCAAkC,0BAA0B;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,eAAe;AACzG;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB;AAC1E,sBAAsB,0BAA0B;AAChD,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;AC/4Ba;AACU;AACS;AACG;AACD;AACE;AACd;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU,6BAAQ,aAAa,iBAAiB,WAAW;AACvG;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAAW,qCAAqC,0BAAW;AACzG;AACA,oDAAoD,sBAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,6BAAQ,aAAa,iBAAiB,WAAW;AAC/G;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4HAA4H;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD,gCAAgC,yDAAyD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqC;AAC5E;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,kEAAkE,2BAA2B;AAC7F;AACA,2CAA2C,gCAAgC;AAC3E;AACA;AACA,oFAAoF,sCAAsC;AAC1H;AACA;AACA;AACA;AACA,2CAA2C,gEAAgE;AAC3G;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;AACsB;;;;;AC7hBvB,IAAI,oBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC,iEAAiE,wBAAwB;AACzH;AACA,KAAK;AACL;AACA,IAAI,sBAAW,IAAI,SAAI,IAAI,SAAI;AAC/B,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AAC8C;AACoB;AAC4B;AAC3B;AACnE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB,SAAS,6CAA6C;AAC9F;AACA;AACA,+BAA+B,+BAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,+BAAI;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,eAAe;AAC9B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAS;AACxB;AACA,mBAAmB,sBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;;;ACvd9B;AACA;AACA;AACA;AACA;AACyC;AAC2B;AACf;AACM;AACG;AACA;AACK;AACJ;AACb;AACT;AAC0B;AACvB;AACG;AACD;AACJ;AACA;AACc;AACR;AACI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO,8BAA8B,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM;AACxC;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,MAAM;AACzC;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C,yCAAyC,MAAM;AAC/C,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI,UAAU,4BAA4B;AACxF;AACA;AACA,8CAA8C,IAAI,UAAU,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAW;AACrC;AACA,2DAA2D,sBAAsB;AACjF,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6EAA6E;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,qCAAqC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAA4B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,SAAS;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,KAAK;AAC/C,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,IAAI,yBAAyB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,IAAI,cAAc;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW,8CAA8C,SAAS,MAAM,6BAAQ;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA,gCAAgC,6BAAQ;AACxC,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA,YAAY,WAAW,GAAG,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA,qEAAqE,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA,qEAAqE,IAAI,wBAAwB;AACjG;AACA;AACA;AACA;AACA,qEAAqE,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC,eAAe;AAClD,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC;AACnC,aAAa;AACb,8BAA8B,WAAW;AACzC,8BAA8B,WAAW;AACzC;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD,mCAAmC,yBAAyB,eAAe,yBAAyB;AACpG,mCAAmC,kDAAkD;AACrF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,eAAe;AAClD,mCAAmC;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,2CAA2C;AAC9E,mCAAmC;AACnC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAwB;AACjD,mCAAmC,2CAA2C;AAC9E,mCAAmC,oDAAoD;AACvF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mBAAmB,0BAA0B,eAAe,yBAAyB,qBAAqB,yBAAyB,mBAAmB;AACzN;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC,qBAAqB,KAAK;AAC1B;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,WAAW,QAAQ;AACnB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACliFA;AACA;AAC4C;AACF;AACW;AACG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sEAAsE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,4BAA4B,2BAA2B;AACvD,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;AC1da;AACkB;AACb;AACP;AACG;AACQ;AACD;AACE;AACQ;AACO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,gBAAgB,eAAe;AAC7D;AACA;AACA;AACA,wDAAwD,eAAe;AACvE,kBAAkB,eAAe;AACjC,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,qBAAqB,SAAS;AAC9B,oCAAoC;AACpC,kCAAkC;AAClC,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,iCAAiC,IAAI;AACrC,iCAAiC,IAAI;AACrC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,+CAA+C,sFAAsF;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B,mCAAmC,IAAI;AACvC,mCAAmC,IAAI;AACvC,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,sHAAsH,SAAS;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA,0HAA0H,SAAS;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,uBAAuB,kBAAkB,KAAK,SAAS;AAC1G,YAAY,SAAS;AACrB;AACA,wDAAwD,eAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wBAAwB;AACnG,wBAAwB,oBAAoB;AAC5C;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD,oFAAoF,QAAQ;AAC5F,oBAAoB,SAAS;AAC7B;AACA,+DAA+D,QAAQ;AACvE,oBAAoB,SAAS;AAC7B,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE,2FAA2F,QAAQ;AACnG,oBAAoB,SAAS;AAC7B;AACA,sEAAsE,QAAQ;AAC9E,oBAAoB,SAAS;AAC7B;AACA,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,sBAAsB;AACtB;AACA,wBAAwB,sBAAsB;AAC9C;AACA,4BAA4B;AAC5B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB;AACpB;AACA,wBAAwB,sBAAsB;AAC9C;AACA,0BAA0B;AAC1B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D,4BAA4B,gCAAgC;AAC5D;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,+CAA+C,QAAQ;AACvD,8BAA8B,gCAAgC;AAC9D,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE,8BAA8B,4BAA4B;AAC1D,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB;AAClD,wBAAwB,oBAAoB;AAC5C;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B,kGAAkG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iFAAiF;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,6BAA6B,kFAAkF;AAC/G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,2BAA2B,gGAAgG;AAC3H;AACA;AACA;AACA;AACA;AACA,6BAA6B,iFAAiF;AAC9G;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAA8D;AAC3F,2BAA2B,kGAAkG;AAC7H;AACA;AACA;AACA;AACA;AACA,6BAA6B,uFAAuF;AACpH;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,sFAAsF;AACnH;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACzyCU;AACU;AACK;AACuB;AACJ;AACG;AACd;AACuF;AAChG;AACI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC,sDAAsD,IAAI;AAC1D;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC,wDAAwD;AACxD;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAW;AAClC;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA,6BAA6B,aAAa,eAAe,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA,8BAA8B,aAAa,YAAY,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA,iCAAiC,aAAa,eAAe,IAAI;AACjE,+CAA+C,mCAAmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAoE;AAChI;AACA;AACA;AACA,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,gCAAgC;AAC7F;AACA;AACA;AACA;AACA,yDAAyD,IAAI,gCAAgC;AAC7F;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,wBAAwB;AACrF;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,IAAI,wBAAwB;AACrF;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACxwCqC;AACmB;AAChB;AACA;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA,6BAA6B,YAAY;AACzC;AACA;AACA;AACA,qBAAqB,iBAAiB,CAAC,qBAAK;AAC5C;AACA,6BAA6B,YAAY;AACzC,+DAA+D,kBAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,CAAC,qBAAK;AAChD;AACA,iCAAiC,YAAY;AAC7C,mEAAmE,kBAAkB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACrK8B;AAC+B;AACxC;AACJ;AACA;AACF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA,gCAAgC,uBAAuB;AACvD;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sCAAsC;AACtC;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA,wCAAwC,+CAA+C;AACvF;AACA;AACA;AACA,oDAAoD,uCAAuC;AAC3F;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,4BAA4B,oDAAoD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,+BAA+B,YAAY;AAC3C,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,qBAAqB,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA,8BAA8B,SAAS;AACvC,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI;AACzC;AACA,gFAAgF,mBAAmB,IAAI,kBAAkB;AACzH;AACA,6BAA6B,2BAA2B,IAAI,0BAA0B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD,gCAAgC,mDAAmD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,gCAAgC,2DAA2D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uCAAuC;AACpF;AACA,gCAAgC,+BAA+B;AAC/D;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,0BAA0B,gDAAgD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA,sCAAsC,uBAAuB;AAC7D;AACA;AACA,0CAA0C,+CAA+C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,sDAAsD,mCAAmC;AACzF;AACA;AACA,0DAA0D,6CAA6C;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iCAAiC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrnC6C;AACH;AAC8B;AACrB;AACP;AACgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,4DAA4D,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6CAA6C;AACrF,wBAAwB,mCAAmC;AAC3D;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA,mCAAmC,WAAW,sEAAsE;AACpH;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,iBAAiB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAoE;AAC5F;AACA;AACA;AACA;AACA,4BAA4B,iDAAiD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAoE;AAC5F;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA,sEAAsE,6CAA6C;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,aAAa;AAClG,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI,gCAAgC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB,yBAAyB;AAClF,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,aAAa,qBAAqB,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAA6C;AACtF;AACA;AACA;AACA;AACA;AACA,yCAAyC,6DAA6D;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAA0D,IAAI,yEAAyE,IAAI,kDAAkD;AACtO;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4DAA4D,IAAI,8EAA8E,IAAI,qDAAqD;AAChP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,0BAA0B,iBAAiB,0BAA0B,oBAAoB;AACzF,gCAAgC,KAAK;AACrC,6BAA6B,KAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,mCAAmC;AACnC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,oCAAoC;AACpC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,mCAAmC;AACnC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,8BAA8B,iBAAiB,0BAA0B,oBAAoB;AAC7F,oCAAoC,KAAK;AACzC,iCAAiC,KAAK;AACtC;AACA;AACA,kCAAkC;AAClC,kCAAkC,iBAAiB,0BAA0B,oBAAoB;AACjG,wCAAwC,KAAK;AAC7C,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;ACrpDc;AACS;AACI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,+CAA+C,WAAW;AAC1D,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;;;AC5JnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oFAAoF,oBAAoB;AACxG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mEAAmE,mCAAmC;AACtG;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;ACnPoB;AACS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAW;AAClD;AACA,4DAA4D,8BAA8B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;AAC9B;AACA;AACA;AACA,eAAe,UAAU;AACzB,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;;ACzvByD;AACF;AACX;AAC8C;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAoD;AAChF;AACA;AACA,4BAA4B,sDAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,YAAY;AAC3B,mBAAmB;AACnB,iBAAiB,IAAI;AACrB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8BAA8B;AAClE;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,gDAAgD,yBAAyB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA,gCAAgC,uBAAuB;AACvD;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,oCAAoC,kDAAkD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gCAAgC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wBAAwB,0BAA0B;AAClD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA,qDAAqD,oBAAoB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,wBAAwB,oBAAoB;AAC5C;AACA,4BAA4B,6CAA6C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM;AAC3B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gDAAgD;AACxH;AACA,gFAAgF,gDAAgD;AAChI;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,OAAO;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAwD;AAC1H;AACA;AACA;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB,eAAe,oBAAoB;AACnC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB,mBAAmB;AACnB,eAAe,cAAc;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA,+CAA+C,eAAe;AAC9D;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD,4BAA4B,6DAA6D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,QAAQ;AACvB,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mCAAmC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,eAAe,WAAW;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,kEAAkE;AAClE;AACA;AACA,sCAAsC,8BAA8B;AACpE;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2CAA2C;AAC5F;AACA,gDAAgD,4CAA4C;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0CAA0C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,qCAAqC;AACvH;AACA;AACA;AACA,+EAA+E,yBAAyB;AACxG;AACA;AACA;AACA;AACA,gFAAgF,gCAAgC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAS;AACxE;AACA;AACA,+DAA+D,IAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qCAAqC;AACjF;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAS;AAC5C;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uCAAuC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,mBAAmB,KAAK;AACrD,yBAAyB,KAAK,kBAAkB,KAAK,4BAA4B,KAAK;AACtF;AACA;AACA;AACA;AACA,6BAA6B,KAAK,8BAA8B,KAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,qBAAqB,KAAK;AAC1B,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,+BAA+B,YAAY;AAC3C,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,qBAAqB,oBAAoB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;;;ACzuGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,eAAe,kBAAkB;AACjC,eAAe,SAAS;AACxB,eAAe,iBAAiB;AAChC;AACA;AACA;AACA,mCAAmC;AACnC;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AChUmB;AAC7C,IAAI,wBAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,2DAA2D;AAChI;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,2DAA2D;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kCAAkC;AAC1H;AACA,4FAA4F,2DAA2D;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,2DAA2D;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC;AACtG;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,2DAA2D;AACtI,sFAAsF,2DAA2D;AACjJ,oFAAoF,2DAA2D;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,qCAAqC;AACrC;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA,+DAA+D,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,gBAAgB;AAChG;AACA,wEAAwE,2DAA2D;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,2CAA2C;AAC3C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C,mFAAmF,2DAA2D;AAC9I,gFAAgF,sCAAsC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG,4EAA4E,qBAAqB;AACjG;AACA;AACA,gFAAgF,qBAAqB;AACrG,gFAAgF,qBAAqB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,+BAA+B;AAChG,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;ACjqBiB;AACK;AACO;AACP;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+BAA+B;AAC7F;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA,kCAAkC,wBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kCAAkC,IAAI,qCAAqC;AAC9G,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G,mCAAmC,mCAAmC,IAAI,oCAAoC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C;AAC3F;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8CAA8C;AAC3F;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,mCAAmC;AACrE,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,kCAAkC,mCAAmC;AACrE,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,8CAA8C,oEAAoE;AAClH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA,yBAAyB;AACzB;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gDAAgD;AAC7G;AACA,aAAa;AACb;AACA;AACA,uBAAuB,yGAAyG;AAChI,uBAAuB,mFAAmF;AAC1G,uBAAuB,mFAAmF;AAC1G,uBAAuB,yGAAyG;AAChI;AACA;AACA;AACA,6DAA6D,gDAAgD;AAC7G;AACA,aAAa;AACb;AACA;AACA,uBAAuB,2GAA2G;AAClI,uBAAuB,qFAAqF;AAC5G,uBAAuB,qFAAqF;AAC5G,uBAAuB,2GAA2G;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,uBAAuB;AACjG;AACA;AACA;AACA,qBAAqB;AACrB;AACA,0EAA0E,uBAAuB;AACjG;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uEAAuE,yBAAyB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,eAAe,iBAAiB;AAChC,gBAAgB,iBAAiB;AACjC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACprByB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iDAAiD;AACvG,wDAAwD,mDAAmD;AAC3G,wDAAwD,mDAAmD;AAC3G;AACA,0DAA0D,2EAA2E;AACrI;AACA,0DAA0D,2EAA2E;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA,0BAA0B,oBAAoB;AAC9C,0DAA0D,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;;;AC9SsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA,0BAA0B,qBAAqB;AAC/C,4DAA4D,qBAAqB;AACjF;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;ACpJoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAwD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,yBAAyB,wDAAwD;AACjF;AACA;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA,sCAAsC,kDAAkD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;ACvmBqC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA,yBAAyB,cAAc;AACvC,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;AC/F4E;AAC1C;AACR;AACF;AACA;AAClD;AACA;AACA,mCAAmC,eAAe;AAClD,uCAAuC,mBAAmB;AAC1D,kCAAkC,cAAc;AAChD,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG,eAAe;AACvH;AACA;AACA,yGAAyG,eAAe;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA,0BAA0B,eAAe;AACzC,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kJAAkJ;AACxK;AACA;AACA;AACA;AACA,0BAA0B,yJAAyJ;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gIAAgI;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA,0BAA0B,mBAAmB;AAC7C,wDAAwD,mBAAmB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA,0BAA0B,kBAAkB;AAC5C,sDAAsD,kBAAkB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA,mBAAmB,YAAY;AAC/B,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;;;ACvc5B;AACA;AACA;AAC0B;AACO;AACjC;AACkC;AACA;AACE;AACD;AACnC;AAC4B;AAC5B;AACkC;AACc;AACH;AACC;AACD;AACD;AACH;AACF;AACO;AAC9C;AACoC;AACA;AACA;AACG;AACvC;AAC4C;AACP;AACrC;AAC4C;AAC5C;AACkD;AACN;AACK;AACZ;AACN;AACQ;AACR;AACA;AACK;AACS;AACV;AACC;AACF;AACS;AACT;AACU;AAC5C;AACuC;AACJ;AACU;AACC;AACR;AACU;AACI;AACT;AACK;AACV;AACD;AACO;AACJ;AACD;AACvC;AACqC;AACH;AACS;AACN;AACO;AACO;AACE;AACF;AACJ;AACA;AACD;AACA;;;;;AC5E9C,IAAI,sBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC0I;AAC1F;AACoC;AACtC;AACU;AAC+C;AAC1D;AAC0B;AAChB;AACS;AACuD;AAC7B;AAC8C;AACtD;AACpB;AACV;AACkB;AACrB;AACjD;AACA,IAAI,4BAAa;AACjB;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA,2CAA2C,KAAK;AAChD,eAAe,IAAI;AACnB;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,sCAAiB,CAAC,4BAAa;AACvC;AACA;AACA,CAAC,CAAC,8BAAa;AACI;AACnB;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,EAAE,KAAK;AACzB;AACA;AACA,CAAC,CAAC,8BAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAS;AACb;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E,4BAA4B,+DAA+D;AAC3F;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA,oBAAoB,mBAAmB,+BAA+B,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,eAAe,oBAAoB;AACnC,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6BAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA,6BAA6B,6BAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAAQ;AACzC;AACA;AACA;AACA;AACA,wGAAwG,6BAAQ;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA,gEAAgE,UAAU,aAAa,cAAc;AACrG;AACA;AACA,gEAAgE,UAAU,eAAe,cAAc;AACvG;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C,wCAAwC;AACxC,qCAAqC;AACrC,yBAAyB,cAAc;AACvC;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,wBAAwB,qBAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAAQ;AAC1C;AACA;AACA;AACA,aAAa,6BAAQ;AACrB,+BAA+B,iBAAiB,UAAU,oCAAoC;AAC9F,wCAAwC,2BAAS;AACjD;AACA,aAAa;AACb;AACA,oDAAoD,UAAU,aAAa,cAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,mCAAmC,eAAe,sBAAsB,WAAW;AACnF,+BAA+B,eAAe,sBAAsB,WAAW;AAC/E;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,qBAAqB,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,uCAAuC,QAAQ,aAAa,mCAAmC;AAC/F;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ,aAAa,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,2FAA2F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,2CAA2C;AACzP,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,4FAA4F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AAC3P,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,4FAA4F,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AAC3P,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,aAAa,+CAA+C,YAAY,sBAAsB,2BAA2B;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC,sCAAsC,WAAW;AACjD;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,uDAAuD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB,UAAU,+DAA+D;AACnH;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB,eAAe,4BAA4B;AAC3C,eAAe,SAAS;AACxB;AACA;AACA,wBAAwB,qBAAW;AACnC;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,yEAAyE;AACzE;AACA,6DAA6D,4BAAa;AAC1E,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB,oCAAoC,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA,kCAAkC,MAAM;AACxC,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA,8DAA8D,QAAQ;AACtE,oFAAoF,WAAW;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,IAAI;AACxE;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B;AAC1B,gEAAgE,IAAI;AACpE,+BAA+B,iBAAiB,UAAU,6EAA6E;AACvI;AACA;AACA,gCAAgC;AAChC;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA,aAAa;AACb,2BAA2B,gBAAgB,QAAQ,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA,4BAA4B,IAAI;AAChC;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,0CAA0C,wBAAwB,WAAW;AAC7E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA,aAAa;AACb,uBAAuB,gBAAgB,QAAQ,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB,gBAAgB;AAClF;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA,iDAAiD;AACjD;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,UAAU,iEAAiE;AAC9G,wBAAwB,iBAAiB;AACzC;AACA,2DAA2D;AAC3D,wDAAwD;AACxD;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,2DAA2D;AAC3D,wDAAwD;AACxD,SAAS;AACT;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,SAAS;AACT,wBAAwB,iBAAiB;AACzC;AACA,2DAA2D;AAC3D,wDAAwD;AACxD;AACA,SAAS;AACT,2BAA2B,iBAAiB;AAC5C;AACA,2DAA2D;AAC3D,wDAAwD;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB,gBAAgB;AAC9E;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,yCAAyC;AACzC,iBAAiB,cAAc;AAC/B;AACA;AACA,QAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,yCAAyC;AACrR;AACA;AACA,0HAA0H,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AACzR;AACA;AACA,0HAA0H,YAAY,uBAAuB,oBAAoB,eAAe,qBAAqB,wBAAwB,4CAA4C;AACzR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC,eAAe,QAAQ;AACvB;AACA;AACA,8DAA8D,IAAI;AAClE,4CAA4C,eAAe;AAC3D,2CAA2C,SAAS;AACpD,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA,aAAa,6BAAQ;AACrB,oCAAoC,8BAAO;AAC3C;AACA,0BAA0B,8BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,eAAe,cAAc;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA,eAAe,YAAY;AAC3B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI;AACjD,uDAAuD,eAAe,YAAY,eAAe;AACjG;AACA;AACA,uDAAuD,0CAAqB;AAC5E;AACA,qBAAqB;AACrB;AACA;AACA,kDAAkD,SAAS;AAC3D,uDAAuD,oBAAoB,YAAY,oBAAoB;AAC3G;AACA,uDAAuD,0CAAqB;AAC5E;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI;AAC5D;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB,UAAU,iCAAiC;AACpF,QAAQ,oBAAoB;AAC5B,mEAAmE;AACnE;AACA;AACA,sBAAsB,iBAAiB,YAAY;AACnD;AACA;AACA,QAAQ,oBAAoB,sBAAsB;AAClD,oDAAoD;AACpD;AACA;AACA,mBAAmB,iBAAiB,WAAW,oEAAoE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2DAA2D;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB,UAAU,8CAA8C,oBAAoB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB,UAAU,8CAA8C,cAAc,GAAG;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,yBAAyB,wBAAO;AAChC,wBAAwB,wBAAO;AAC/B,wBAAwB,wBAAO;AAC/B,0BAA0B,wBAAO;AACjC;AACA;AACA,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB,QAAQ,6BAAY;AACpB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,+BAAU;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ,GAAG,WAAW;AAC9B;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG,0CAA0C,EAAE,MAAM;AACpE;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,4BAAO,GAAG;AAClB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,uBAAU;AACd,QAAQ,0BAAK;AACb;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA,IAAI,uBAAU;AACd,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,0BAAS;AACc;;;AC79DzB;AACA;AACA;AACiC;;;ACHjC;AACA;AACA;AAC2B;;;ACH3B;AACA;AACA;AACgC;AACO;AACT;AACG;;;ACNjC;AACA;AACA;AAC4B;;;;;;;;;;;;;;;;;ACHf;AACb;AACA,iBAAiB,mBAAO,CAAC,KAAgC;AACzD,YAAY,mBAAO,CAAC,KAAoB;AACxC,aAAa,mBAAO,CAAC,KAAqB;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AClBD,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;;;;;;;;AC3CvB,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AAC8D;AACV;AACiB;AACrE;AACA;AACA;AACA,sCAAsC,sEAAU;AAChD;AACA;AACA,+CAA+C,+DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8BAA8B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sEAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,+CAA+C,+DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8DAAW;AAC1C;AACA;AACA,gCAAgC,+EAAe;AAC/C;AACA,YAAY,+EAAe,CAAC,6DAAK,MAAM,oEAAqB,KAAK,gBAAgB;AACjF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;ACrFP,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACO;AACP;AACA;;;;;;;;ACzPA,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;AACA;;;;;;;;;;;;;;;;;ACH6E;AACpB;AAClD,4CAA4C,qFAAkB;AACrE,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,kCAAkC,qFAAkB;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC/Ca;;AAEb;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AAC+D;AACP;AAC+B;AAChF,kCAAkC,2EAAU;AACnD;AACA;AACA,+CAA+C,oEAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAoE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4FAA4B,CAAC,yEAAS;AAC9D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvGA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3JD,eAAe,mBAAO,CAAC,KAAa;AACpC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,cAAc,mBAAO,CAAC,KAAY;AAClC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,cAAc,mBAAO,CAAC,KAAY;AAClC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AAC2E;AAC9B;AACS;AACZ;AAC1C,wCAAwC,uDAAY;AACpD,oCAAoC,uDAAY;AAChD,+BAA+B,uDAAY;AACpC,kCAAkC,8DAAM;AAC/C;AACA;AACA;AACA,kBAAkB,iEAAO;AACzB;AACA;AACA,sFAAsF,iGAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,+BAA+B,8DAAM;AAC5C;AACA;AACA;AACA,kBAAkB,iEAAO;AACzB;AACA;AACA,sFAAsF,iGAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,0BAA0B,8DAAM;AACvC;AACA;AACA;AACA,kBAAkB,iEAAO;AACzB;AACA;AACA,sFAAsF,iGAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;ACpDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACTA,cAAc,mBAAO,CAAC,KAAqB;AAC3C,mBAAmB,mBAAO,CAAC,KAA0B;AACrD,QAAQ,MAAM;AACd,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtPA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC5HY;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACH+C;AACF;AACtC;AACP;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAW;AAC9B;AACA;AACA;AACA,mBAAmB,iCAAU;AAC7B;AACA;;;;;ACvBA;AACA;AACA;AACA;AAC8E;AACV;AAC3B;AACyB;AAC/B;AACU;AACtC;AACP;AACA;AACA,QAAQ,2BAAQ,OAAO,qCAAkB;AACzC;AACA;AACA;AACA,8BAA8B,wBAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAU;AACzC,kCAAkC,wBAAQ;AAC1C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAK;AACpB;AACA;AACA,kBAAkB,iCAAkB;AACpC;AACA,eAAe,kBAAK;AACpB;AACO;AACP;AACA,6CAA6C,wBAAQ;AACrD;AACA;AACO;AACP;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,YAAY;AACtC,sDAAsD,KAAK;AAC3D,sDAAsD,KAAK,mBAAmB,KAAK;AACnF,eAAe,UAAU,YAAY,4CAA4C,eAAe,KAAK,uBAAuB,eAAe,IAAI,iBAAiB,KAAK;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,KAAK,IAAI;AACzD;AACA,2CAA2C,MAAM,KAAK,KAAK,KAAK,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA,2CAA2C,OAAO,KAAK,IAAI;AAC3D;AACA;AACA,2CAA2C,OAAO,IAAI,IAAI;AAC1D;AACA;AACA;AACA,+CAA+C,OAAO,KAAK,IAAI;AAC/D;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;AC9Fa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACoC;AACuD;AACjC;AACpB;AACa;AAC1B;AACiB;AACwC;AACJ;AAC9E,0BAA0B,uDAAY;AAC/B,wBAAwB,uDAAM;AACrC;AACA;AACA;AACA;AACA,+DAA+D,6EAAiB;AAChF;AACA,qDAAqD,+DAAO;AAC5D;AACA,6CAA6C,+DAAO;AACpD;AACA,+CAA+C,+DAAO;AACtD;AACA,2CAA2C,+DAAO;AAClD,2CAA2C,+DAAO;AAClD,0DAA0D,+DAAO;AACjE;AACA,kDAAkD,+DAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4EAAe;AAC1D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6CAA6C,oGAA0B;AACvE;AACA,4CAA4C,uEAAW;AACvD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,iDAAiD,4EAAgB;AACjE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oDAAoD,+EAAmB;AACvE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAe;AACvC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAyB;AAChD;AACA,SAAS;AACT,uBAAuB,oEAAyB;AAChD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2EAAe;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3SA;AACA;AACA;AACA;AACsD;AACO;AACe;AAC4C;AACnC;AAC9E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAK;AAC5C;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wCAAsB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAgB,CAAC,uDAAgC;AAChE,kBAAkB,+BAAiB;AACnC,KAAK;AACL;AACA,eAAe,yCAAgB,CAAC,uCAAgB;AAChD;AACA;AACA,CAAC;AACD,yCAAyC,wCAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAgB,CAAC,uDAAgC;AAChE,kBAAkB,+BAAiB;AACnC,KAAK;AACL;AACA,eAAe,yCAAgB,CAAC,uCAAgB;AAChD;AACA;AACA,CAAC;AACD,qDAAqD,wCAAsB;AAC3E;AACA;AACA;AACA;AACA,CAAC;AACD,uDAAuD,wCAAsB;AAC7E;AACA;AACA;AACA,eAAe,yCAAgB,CAAC,uDAAgC;AAChE,kBAAkB,+BAAiB;AACnC;AACA,CAAC;AACD,8CAA8C,wCAAsB;AACpE;AACA;AACA;AACA;AACA,CAAC;AACD,yCAAyC,wCAAsB;AAC/D;AACA;AACA;AACA,CAAC;;;ACzSD;AACA;AACA;AACA;AACsD;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,uBAAK;AAC5B,aAAa;AACb;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClDA;AACA;AACA;AACA;AACwC;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0CAAkC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AChDA;AACA;AACA;AACA;AACwF;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7RA;AACA;AACA;AACA;AACuF;AACL;AACF;AACkC;AACtD;AACN;AACQ;AACU;AACjB;AACI;AACc;AACY;AAC9E,wCAAwC,gCAAa;AACrD;AACP;AACO,uCAAuC,gCAAa;AACpD,0CAA0C,gCAAa;AACvD;AACP;AACA,WAAW;AACX;AACO;AACP;AACA,WAAW;AACX;AACO;AACP;AACA,WAAW;AACX;AACO;AACP;AACA,WAAW;AACX;AACO;AACP;AACA,WAAW;AACX;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACA,8BAA8B,iCAAe;AAC7C;AACA;AACA;AACA,wCAAwC,iCAAY;AACpD,gCAAgC,eAAe;AAC/C;AACA,+CAA+C,qCAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qDAA8B,iDAAiD,uBAAK;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qCAAc;AAClD;AACA,uDAAuD,6BAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,eAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oCAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,4BAA4B,2DAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAAS;AACvD;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACveA;AACA;AACA;AACA;AACuD;AACtB;AAC8F;AAChE;AACK;AAC1B;AAC4H;AAC/D;AAChG,gCAAgC,oBAAM;AAC7C;AACA;AACA,4CAA4C,qCAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wCAAa,CAAC,8CAAuB;AAC1E,yCAAyC,wCAAa,CAAC,kDAA2B;AAClF,yCAAyC,wCAAa,CAAC,kDAA2B;AAClF;AACA,6CAA6C,2DAA0B;AACvE,gDAAgD,4CAAmB;AACnE,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,6CAA6C,yCAAgB;AAC7D,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,wCAAwC,oCAAW;AACnD,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,gBAAgB,qBAAa;AAC7E,uBAAuB,iCAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9IA;AACA;AACA;AACA;AAC2D;AACO;AACZ;AACP;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,+BAA+B,4BAAU;AAChD,yBAAyB;AACzB,0BAA0B;AAC1B,uBAAuB;AACvB,8BAA8B;AAC9B,oBAAoB;AACpB,sBAAsB;AACtB,sBAAsB;AACtB,yBAAyB;AACzB,0BAA0B;AAC1B,4BAA4B;AAC5B,4BAA4B;AAC5B,+BAA+B;AAC/B,wBAAwB;AACxB,4BAA4B;AAC5B,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA,4DAA4D,4BAAO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAK;AACjC,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa;AAChE;AACA;;;;;;;;;;;;;;;;;;;AClPA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACuD;AACqB;AACN;AACN;AACD;AACJ;AACG;AACQ;AACF;AACJ;AACF;AACpC;AAC4B;AAC8D;AAC1E;AAC6F;AACvB;AACqM;AACvN;AACC;AAC9B;AACW;AACT;AAC8C;AACe;AAChI,0BAA0B,qCAAY,mBAAmB,uBAAO,eAAe,oBAAY;AAC3F,yBAAyB,qCAAY,kBAAkB,uBAAO,cAAc,oBAAY;AACjF,0BAA0B,qCAAY,mBAAmB,uBAAO,YAAY,oBAAY;AACxF,wBAAwB,qCAAY,iBAAiB,uBAAO,UAAU,oBAAY;AAClF,2BAA2B,qCAAY,qBAAqB,uBAAO,aAAa,oBAAY;AAC5F,8BAA8B,qCAAY,wBAAwB,uBAAO,UAAU,oBAAY;AAC/F,0BAA0B,qCAAY,oBAAoB,uBAAO,YAAY,oBAAY;AAChG,8BAA8B,oBAAY;AAC1C,6BAA6B,oBAAY;AACzC,mCAAmC,oBAAY;AAC/C,qCAAqC,oBAAY;AACjD,iCAAiC,oBAAY;AAC7C,wCAAwC,oBAAY;AACpD,4BAA4B,oBAAY;AACxC,gCAAgC,oBAAY;AAC5C,sCAAsC,oBAAY;AAClD,8BAA8B,oBAAY;AAC1C,kCAAkC,oBAAY;AAC9C,0CAA0C,oBAAY;AACtD,sCAAsC,oBAAY,6CAA6C,GAAG,4EAA4E,aAAa;AACpL,6BAA6B,oBAAY,4BAA4B,GAAG,IAAI,EAAE;AAC9E,uBAAuB,oBAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,oBAAoB,4BAAoB;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,oBAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4BAAO;AAChD,uBAAuB,iCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,gCAAgC;AACzE;AACA;AACA;AACA,SAAS;AACT,iCAAiC,0BAA0B;AAC3D,gDAAgD,sBAAc;AAC9D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,oCAAoC,6BAA6B;AACjE,mDAAmD,sBAAc;AACjE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,gCAAiB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAc;AAClC;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAY,8BAA8B,GAAG;AAC/D,kBAAkB,oBAAY,yBAAyB,GAAG,YAAY,EAAE;AACxE;AACA;AACA,8BAA8B,oBAAY,oCAAoC,GAAG,YAAY,EAAE,OAAO,EAAE;AACxG;AACA;AACA;AACA,0BAA0B,YAAY,IAAI,UAAU;AACpD;AACA;AACA;AACA,eAAe,oBAAY,kDAAkD,GAAG,YAAY,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yCAAyC,kCAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAiB;AACjD;AACA;AACA,kDAAkD,qCAAqC;AACvF,2CAA2C,yBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA,iCAAiC,0DAA0D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAK;AAC9B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAAkB,IAAI,yBAAiB;AAC3D;AACA,mDAAmD,oBAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA,6CAA6C,yDAAsB;AACnE;AACA;AACA;AACA,+DAA+D,QAAQ;AACvE,4DAA4D,QAAQ;AACpE,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D,4BAA4B,2CAAqB;AACjD,0BAA0B,yCAAmB;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0CAA0C;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,wBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,2DAA0B;AACvE;AACA;AACA,2EAA2E,QAAQ;AACnF;AACA;AACA;AACA,gBAAgB,iCAAe,4BAA4B,QAAQ,iDAAiD,gCAAiB;AACrI;AACA,SAAS;AACT;AACA;AACA,uEAAuE,QAAQ;AAC/E;AACA;AACA;AACA,gBAAgB,iCAAe,4BAA4B,QAAQ,6CAA6C,gCAAiB;AACjI;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAM;AAC7D;AACA,8EAA8E,QAAQ;AACtF;AACA;AACA,yCAAyC,wCAAa,CAAC,kDAA2B;AAClF,qCAAqC,wCAAa,CAAC,8CAAuB;AAC1E,yCAAyC,wCAAa,CAAC,kDAA2B;AAClF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E,kBAAkB,gCAAW;AAC7B;AACA;AACA,qCAAqC,sCAAsC;AAC3E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gDAAgD,4DAAyB;AACzE;AACA;AACA,8DAA8D,QAAQ;AACtE;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D,4BAA4B,2CAAqB;AACjD,0BAA0B,yCAAmB;AAC7C,SAAS;AACT;AACA;AACA;AACA,iCAAiC,kDAAkD;AACnF,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,2DAA0B;AAC9E;AACA;AACA,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wEAAwE,QAAQ;AAChF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF;AACA,+CAA+C,yBAAiB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA,8CAA8C,gBAAI,wBAAwB,oDAAoD;AAC9H;AACA;AACA;AACA,4BAA4B,yBAAiB;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAAoB;AAC5D;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA,2CAA2C,yBAAiB;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,yBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD;AACA,2CAA2C,yBAAiB;AAC5D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,oBAAM;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,wDAAuB;AAC1I;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAAS;AACvD,2CAA2C,0BAAS;AACpD;AACA;AACA,8CAA8C,0BAAS;AACvD,2CAA2C,0BAAS;AACpD;AACA;AACA;AACA;AACA,mDAA0B;AAC1B,oDAAoD,qDAA8B;AAClF;AACA,uDAAuD,cAAc,uCAAc,mCAAmC,EAAE,2BAA2B,yBAAyB;AAC5K;AACA,oDAAoD,qDAA8B;AAClF;AACA,uDAAuD,cAAc,uCAAc,mCAAmC,EAAE,4BAA4B;AACpJ;AACA,oCAAoC,qCAAc;AAClD;AACA,yDAAyD,oBAAoB,YAAY;AACzF;AACA,+CAA+C,gDAAyB;AACxE;AACA,6DAA6D,SAAS,uBAAuB;AAC7F;AACA,wDAAwD,yDAAkC;AAC1F;AACA,oEAAoE,SAAS,gCAAgC;AAC7G;AACA,CAAC;;;;;;;;;;;;;;;;;;;ACtnCD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC2D;AACO;AACJ;AAC4I;AAChH;AACjB;AACZ;AAC8O;AAChP;AACT;AACL;AACH;AAC8B;AACsB;AACY;AACZ;AACJ;AACgB;AAChB;AACT;AACmB;AACxB;AAC5E;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,4BAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA,yCAAyC,4BAAO;AAChD,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAA8B;AACzD;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sCAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,+BAAe;AAC9B,eAAe,yCAAiB;AAChC,eAAe,yCAAoB;AACnC,eAAe,2BAAa;AAC5B;AACgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA,eAAe,sCAAmB;AAClC,eAAe,qCAAkB;AACjC,eAAe,oCAAkB;AACjC,eAAe,kCAAa;AAC5B,eAAe,yCAAoB;AACnC,eAAe,+BAAe;AAC9B,eAAe,yCAAiB;AAChC,eAAe,2BAAa;AAC5B;AAC0B;AACnB,wBAAwB,sDAAyB,KAAK,0CAAiB;AAC9E,QAAQ,QAAQ;AAChB,WAAW,oBAAY;AACvB;AACA,kBAAkB,iCAAc,IAAI,0CAAiB,QAAQ,iCAAc;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB,sBAAM;AACtB;AACA,eAAe,oBAAY,GAAG,mDAAmD;AACjF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD,qCAAqC,gBAAgB;AACrD,+BAA+B,iBAAiB;AAChD,sCAAsC,iBAAiB;AACvD,uCAAuC,iBAAiB;AACxD,oCAAoC,iBAAiB;AACrD,uCAAuC,iBAAiB;AACxD;AACA;AACA,SAAS;AACT;AACO,sCAAsC,qCAAY;AACzD;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO,2CAA2C,qCAAY;AAC9D;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO,8BAA8B,qCAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B,8FAA8F;AACzH;AACA,iBAAiB;AACjB,4BAA4B,iCAAc,KAAK,0CAAiB,QAAQ,0BAA0B;AAClG;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B,kJAAkJ;AAC7K;AACA,iBAAiB;AACjB,4BAA4B,iCAAc,KAAK,0CAAiB,QAAQ,0BAA0B;AAClG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,2BAA2B;AACrD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yCAAoB;AACzE;AACA,0BAA0B,6BAAQ;AAClC,yBAAyB,oBAAY;AACrC,aAAa;AACb;AACA;AACA,+CAA+C,qCAAkB;AACjE;AACA,+BAA+B,oBAAY,8FAA8F,EAAE;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oBAAY,gFAAgF,EAAE;AAC3I;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oBAAY,gFAAgF,EAAE;AAC3I;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAgB,CAAC,uDAA2B;AAC/E,sCAAsC,+BAAiB;AACvD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,uCAAuC,qCAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,QAAQ;AACxB,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,+BAA+B,sDAAyB,KAAK,0CAAiB;AACrF,QAAQ,QAAQ;AAChB,WAAW,oBAAY;AACvB;AACA,kBAAkB,iCAAc,IAAI,0CAAiB,QAAQ,iCAAc;AAC3E;AACA;AACA;AACA,eAAe,mFAAmF;AAClG;AACA,KAAK;AACL;AACA,gBAAgB,sBAAM;AACtB;AACA,eAAe,oBAAY,GAAG,sDAAsD;AACpF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD,uDAA0B,0FAA0F;AACpH,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,oBAAoB,sCAAa;AACjC,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,iCAAc,KAAK,0CAAiB,QAAQ,iCAAc;AAC1E;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC,iBAAiB,6BAA6B;AAC9C,aAAa,6BAA6B;AAC1C,aAAa,6BAA6B;AAC1C,eAAe,6BAA6B;AAC5C;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC,iBAAiB,yBAAyB;AAC1C,aAAa,yBAAyB;AACtC,aAAa,yBAAyB;AACtC,eAAe,yBAAyB;AACxC;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC,iBAAiB,qBAAqB;AACtC,aAAa,qBAAqB;AAClC,aAAa,qBAAqB;AAClC,eAAe,qBAAqB;AACpC;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC,iBAAiB,2BAA2B;AAC5C,aAAa,2BAA2B;AACxC,aAAa,2BAA2B;AACxC,eAAe,2BAA2B;AAC1C;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC,iBAAiB,4BAA4B;AAC7C,aAAa,4BAA4B;AACzC,aAAa,4BAA4B;AACzC,eAAe,4BAA4B;AAC3C;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,iCAAc,KAAK,0CAAiB,QAAQ,6BAA6B;AACzF;AACA;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,iCAAc,KAAK,0CAAiB,QAAQ,6BAA6B;AACzF;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB,QAAQ,QAAQ;AAChB,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACj9BD;AACA;AACA;AACA;AACuD;AACS;AACD;AACM;AACE;AACT;AACpC;AAC4B;AACsB;AAC5E,yBAAyB,mBAAK,KAAK,kBAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAoC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAoC;AAC5C,QAAQ,yBAAiB,mBAAmB,eAAe,yBAAyB,2BAA2B,uBAAuB,cAAc,gBAAgB,aAAa,IAAI,WAAW,aAAa,eAAe,gBAAgB,aAAa,IAAI;AAC7P;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAAW;AAC7B;AACP,oCAAoC;AACpC;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA,uBAAuB,yBAAiB;AACxC,QAAQ,qBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAK,wBAAwB,uBAAK,oBAAoB,uBAAK;AACjF;AACA;AACA;AACA,sCAAsC,gBAAgB,wCAAsB,QAAQ;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAI,uBAAuB,6CAA6C;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACnYA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACwB;AACnB;AACE;AACG;AACR;AACE;AACG;AAC1B;AAC8C;AACE;AACsB;AACtC;AAC1B;AAC6D;AACE;AACb;AACwB;AAC6C;AAC1J,yBAAyB,yCAAe;AAC/C,uCAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6CAA6C;AACjF;AACA,CAAC;AACM;AACP;AACA,mCAAmC,gCAAa,kCAAkC,oBAAY;AAC9F;AACA,CAAC,kCAAkC;AACnC;AACA;AACA,8BAA8B,wDAAwB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC;AACA,uDAA0B,kGAAkG;AACrH;AACP,gCAAgC,2CAAkB;AAClD,0BAA0B,wDAAwB;AAClD;AACA;AACA;AACA;AACA,MAAM,uBAAc;AACpB,2BAA2B,mBAAK;AAChC,yBAAyB,mBAAK;AAC9B,2BAA2B,mBAAK;AAChC;AACA,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA,+BAA+B,4BAAO;AACtC;AACA,QAAQ,qBAAa,eAAe,uBAAc;AAClD;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK;AACjC,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;AACA;AACA,YAAY,yCAAiC;AAC7C;AACA,QAAQ,kBAAU;AAClB;AACA,+BAA+B,KAAK;AACpC,iCAAiC,KAAK;AACtC,4BAA4B,KAAK;AACjC,QAAQ,kBAAU;AAClB,iCAAiC,KAAK;AACtC,QAAQ,kBAAU;AAClB;AACA,oCAAoC,0BAAS;AAC7C;AACA;AACA,2CAA2C,sBAAM,mBAAmB,oBAAY,0BAA0B,0BAAS,aAAa,uBAAO;AACvI;AACA;AACA,aAAa,KAAK,0BAA0B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oDAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB;AACA;AACA,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA,eAAe,2CAAqB;AACpC;AAC0B;AACnB,gCAAgC,wCAAa,+BAA+B,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AACxK,gCAAgC,wCAAa,oCAAoC,MAAM,mBAAK,eAAe,mBAAK,gBAAgB,mBAAK,iBAAiB,uCAAgB,EAAE,EAAE,oBAAY;AACtL,oCAAoC,wCAAa,0CAA0C,8EAA8E,EAAE,oBAAY;AACvL,uBAAuB,wCAAa,sBAAsB,MAAM,2CAAoB,SAAS,2CAAoB,UAAU,qCAAc,WAAW,qCAAc,EAAE,EAAE,oBAAY;AAClL,kCAAkC,wCAAa,gCAAgC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC3K,uCAAuC,wCAAa,oCAAoC,2CAA2C,mBAAK,iBAAiB,uCAAgB,EAAE,EAAE,oBAAY;AACzL,sCAAsC,wCAAa,oCAAoC,MAAM,mBAAK,kCAAkC,mBAAK,iBAAiB,uCAAgB,EAAE,EAAE,oBAAY;AAC1L,2CAA2C,wCAAa,yCAAyC,oEAAoE,EAAE,oBAAY;AACnL,2CAA2C,wCAAa,yCAAyC,MAAM,mBAAK,kCAAkC,mBAAK,iBAAiB,uCAAgB,EAAE,EAAE,oBAAY;AACpM,iCAAiC,wCAAa,gCAAgC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC1K,uCAAuC,wCAAa,sCAAsC,sIAAsI,EAAE,oBAAY;AAC9O,6CAA6C,wCAAa,4CAA4C,sIAAsI,EAAE,oBAAY;AAC1P,sCAAsC,wCAAa,8CAA8C,oEAAoE,EAAE,oBAAY;AACnL,qCAAqC,wCAAa,8CAA8C,oEAAoE,EAAE,oBAAY;AAClL,2CAA2C,wCAAa,0CAA0C,iCAAiC,2CAAoB,WAAW,2CAAoB,EAAE,EAAE,oBAAY;;;;;;;;AC3O7M,gBAAgB,mBAAO,CAAC,KAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;ACtCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;AC1HD;AACA;AACA;AACA;AACyD;AACN;AACnD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB,GAAG,4BAA4B;AAC/E;AACA;AACA,8BAA8B,kBAAkB,GAAG,4BAA4B;AAC/E;AACA,2BAA2B,kBAAkB,GAAG,4BAA4B,UAAU,4BAA4B;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA,wBAAwB,SAAS;AACjC,YAAY,2EAAoB;AAChC;AACA;AACA;AACA;AACA;AACA,oBAAoB,0EAAmB;AACvC;AACA,eAAe,0EAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA,QAAQ,2EAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAmB;AAC/C;AACA,4BAA4B,0EAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpPa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACRa;;AAEb,YAAY,mBAAO,CAAC,IAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACXa;AACb;AACA,oBAAoB,mBAAO,CAAC,IAA2C;;AAEvE;AACA;AACA;;;;;;;;;ACNa;;AAEb,eAAe,mBAAO,CAAC,KAAyB;AAChD,WAAW,mBAAO,CAAC,KAAM;;AAEzB;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA,2EAA2E,+BAA+B;;AAE1G;AACA;;AAEA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;;;;;;;AC7BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9GY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,0BAA0B;AACtD,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;;;;;;ACjBa;;AAEb,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB;AAC1Q;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,EAAE,EAAE,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe,EAAE,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE,EAAE,WAAW;AAClC;AACA;AACA;AACA,4DAA4D,GAAG,EAAE,GAAG;AACpE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kFAAkF,IAAI,WAAW,IAAI;AACrG;AACA,mBAAmB;AACnB;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,qDAAqD,IAAI;AACzD;AACA,wBAAwB;AACxB;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACiG;AAC1B;AACX;AACN;AACO;AACR;AAC9C;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2FAAyB;AACrC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2FAAyB;AACzC;AACA,SAAS;AACT;AACA;AACA,sBAAsB,+EAAiB;AACvC;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iEAAK;AACjC;AACA;AACA;AACA,4BAA4B,iEAAK;AACjC;AACA;AACA;AACA;AACA;AACA,0CAA0C,uEAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iEAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAK;AACxB;AACA;AACA,0DAA0D,aAAa,aAAa;AAC7E;AACP,WAAW,6DAAG;AACd,gBAAgB,sEAAO;AACvB;AACA;AACA,KAAK;AACL;;;;;;;;;ACrJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,8BAA8B;AAChV,kBAAkB,mBAAO,CAAC,KAAoB;AAC9C,eAAe,mBAAO,CAAC,KAAiB;AACxC,gBAAgB,mBAAO,CAAC,KAAkB;AAC1C,eAAe,mBAAO,CAAC,KAAiB;AACxC;AACA,YAAY,gBAAgB;AAC5B;AACA,wBAAwB,qCAAqC,KAAK,GAAG;AACrE;AACA,KAAK;AACL;AACA,8BAA8B;AAC9B,4BAA4B,iBAAiB,QAAQ;AACrD,uJAAuJ,SAAS,IAAI,KAAK;AACzK;AACA,wBAAwB;AACxB;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB;AACA,+BAA+B,iBAAiB,QAAQ,KAAK,IAAI,SAAS;AAC1E;AACA,qBAAqB;AACrB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF,+CAA+C,MAAM,KAAK,mCAAmC;AAC7F;AACA,sBAAsB;AACtB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB;AACxB,4BAA4B,wBAAwB,0CAA0C,MAAM;AACpG,2DAA2D,WAAW,IAAI,KAAK,IAAI,aAAa,EAAE,WAAW;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc,IAAI,sBAAsB;AAC7E,2DAA2D,KAAK,QAAQ,QAAQ,IAAI,KAAK,yBAAyB,KAAK,GAAG,KAAK;AAC/H;AACA,wBAAwB;AACxB;AACA,sBAAsB,WAAW,QAAQ;AACzC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,kCAAkC,4EAA4E,GAAG,QAAQ,IAAI,EAAE;AAC/H,KAAK;AACL;AACA,kBAAkB;AAClB;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,OAAO,KAAK,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;;;;;;;AClIA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAqB,CAAC,0BAAoB,EAAE,0BAAiB,EAAE,0BAAgB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAClG,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,OAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,UAAU;AAC7B,mBAAmB,UAAU;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;AClOD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;ACnI6E;AACvE,sBAAsB,iGAAe;;;;;;;;;;;;;;;;;;ACD5C;AACA;AACA;AACA;AACoC;AACmC;AACI;AACT;AACR;AACJ;AACtD;AACA;AACA;AACA;AACO,+BAA+B,sEAAU;AAChD;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAU,YAAY,sCAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,gEAAc;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uFAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAK,qDAAqD,uFAAoB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uFAAoB;AACrD;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wJAAwJ,iGAAuB;AAC/K,kDAAkD,4FAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;;ACtIA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AAC2F;AAC1D;AACS;AAC3C,eAAe,aAAa,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,6CAA6C,iFAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,yBAAyB,oDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,uBAAuB,kDAAK;AAC5B;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA,2BAA2B,uBAAuB,oDAAQ,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA,iBAAiB,oDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,4BAA4B,yBAAyB;AACrD,yCAAyC,oDAAQ;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B,gCAAgC,oDAAQ;AACxC;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,cAAc;AAC9B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,WAAW,oDAAQ;AAC1C;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ,oBAAoB,oDAAQ;AAC5D;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAQ;AACnC;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,YAAY,oDAAQ;AAC3C;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,oBAAoB,eAAe;AACnC,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,kBAAkB,wEAAQ;AAC1B;AACA,oBAAoB,eAAe;AACnC,iBAAiB,iFAAiB,eAAe,wEAAQ;AACzD;AACA;AACA;AACA,+BAA+B,qEAAK;AACpC;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B,mBAAmB,oDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,mBAAmB,oDAAQ;AAC3B,+BAA+B,oDAAQ,2CAA2C,qDAAqD;AACvI;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAQ;AAC7C;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,sBAAsB,oDAAQ;AAC9B;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA,8CAA8C,oBAAoB;AAClE;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA,kCAAkC,oDAAQ;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wBAAwB,2BAA2B;AACnD,gCAAgC,oDAAQ;AACxC;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,sCAAsC,wBAAwB,oDAAQ,8BAA8B;AACpG;AACA;AACA;AACA;AACA,QAAQ,oDAAQ,0CAA0C,sDAAsD;AAChH;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA,gCAAgC,oDAAQ;AACxC,gCAAgC,oDAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C,oDAAQ;AAClD;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oDAAQ;AAChE;AACA;AACA;AACA,gBAAgB,oDAAQ,yCAAyC,SAAS,oDAAQ,uEAAuE;AACzJ;AACA;AACA,YAAY,oDAAQ,uCAAuC,oDAAQ;AACnE,qDAAqD,oDAAQ;AAC7D,wDAAwD,oDAAQ;AAChE;AACA,YAAY,oDAAQ,qCAAqC,oDAAQ;AACjE;AACA,YAAY,oDAAQ,qCAAqC,oDAAQ;AACjE;AACA,YAAY,oDAAQ;AACpB,qDAAqD,oDAAQ;AAC7D,qDAAqD,oDAAQ;AAC7D;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA,gBAAgB,oDAAQ;AACxB;AACA,mBAAmB,oDAAQ;AAC3B,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA,uEAAuE,iFAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,sCAAsC;AAC7D;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,iFAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA,+BAA+B,sDAAS;AACxC;AACA,eAAe,sDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,iFAAiB;AACrG;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,qBAAqB,iFAAiB;AACtC,8BAA8B,oDAAQ;AACtC;AACA,iCAAiC,kDAAK;AACtC,wBAAwB,oDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB,kDAAK;AACzB,qBAAqB,kDAAK;AAC1B,sBAAsB,kDAAK;AAC3B,uBAAuB,kDAAK;AAC5B,yBAAyB,kDAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC;AACA,sCAAsC,YAAY,qBAAqB,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,wEAAwE;AACxE;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oDAAQ,4BAA4B,oDAAQ;AAChH;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,uBAAuB,oDAAQ;AAC/B;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,iCAAiC,oDAAQ;AACzE;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,iCAAiC,oDAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA,wCAAwC,iFAAiB;AACzD,gCAAgC,oDAAQ,+BAA+B,oDAAQ;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD,wBAAwB,oDAAQ,+BAA+B,oDAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iFAAiB;AAC7C,oBAAoB,oDAAQ,+BAA+B,oDAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,wBAAwB,qBAAqB;AAC7C,4BAA4B,sDAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,0BAA0B,sDAAS;AACnC;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,iBAAiB,iFAAiB;AAClC,gCAAgC,qBAAqB;AACrD,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,iCAAiC;AACxD;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iFAAiB,6CAA6C,gBAAgB;AAC7G;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,0CAA0C,oDAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iFAAiB;AACrE;AACA;AACA;AACA,oDAAoD,oDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAQ;AAC1B;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAQ;AAClC,+CAA+C,oDAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yEAAyE,OAAO,oDAAQ,yBAAyB,oDAAQ,4BAA4B,eAAe;AAC5M;AACA;AACA;AACA,wDAAwD,oDAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA,6CAA6C,oDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAQ,qBAAqB,IAAI;AAC/D,oBAAoB,sEAAM,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,iFAAiF,gCAAgC;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,wEAAwE;AACxE;AACA;AACA;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kDAAK;AAClC;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G;AAC7G,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2FAA2F;AAC3F,SAAS;AACT,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,2DAA2D,sCAAsC;AACjG;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,+EAA+E,kCAAkC;AACjH;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA,eAAe,oDAAQ,iCAAiC;AACxD;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oDAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAQ;AAC1C,uDAAuD,oDAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD;AACjD;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ,iCAAiC;AACxD;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAQ;AAC3B;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAQ;AACjD;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,iCAAiC,sEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC,oCAAoC;AACpC,sCAAsC;AACtC,yCAAyC;AACzC,yCAAyC;AACzC;AACA,SAAS;AACT,QAAQ,sEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wEAAQ;AAC7B;AACA,oBAAoB,wEAAQ;AAC5B;AACA;AACA,yBAAyB,wEAAQ;AACjC,0BAA0B,iFAAiB,eAAe,oDAAQ;AAClE;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB,YAAY,4DAA4D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B,oBAAoB;AACpB;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA,2BAA2B,oDAAQ;AACnC;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,6BAA6B,iCAAiC;AAC9D;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE,4CAA4C,+EAA+E;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA,aAAa,iFAAiB,qCAAqC,oDAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;ACvuFX;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;;AAEA;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK,IAAI,iBAAiB;AAC1B;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AC/BD;AACA;AACA;AACA;AACsC;AAC/B;AACP;AACA;AACA;AACA;AACO;AACP,qBAAqB,wDAAa;AAClC;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACmC;AAC5B;AACP,WAAW,mBAAG,MAAM,mBAAG;AACvB;AACO;AACP;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,IAAI,MAAM,cAAc;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,IAAI,GAAG,KAAK;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACiE;AACiB;AACkB;AACH;AAC6E;AACpG;AACd;AACN;AACU;AACzD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kBAAkB,iCAAe;AACjC;AACA,UAAU,kCAAW,GAAG,2CAA2C,sBAAsB,GAAG;AAC5F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA,WAAW,iCAAY;AACvB;AACA,KAAK;AACL;AACO;AACP;AACA,WAAW,iCAAY;AACvB;AACA,KAAK;AACL;AACO,4CAA4C,4BAAU;AAC7D,kBAAkB;AAClB,mBAAmB;AACnB,4BAA4B;AAC5B;AACA;AACA;AACA,sDAAsD,8CAAmB;AACzE,sBAAsB,sCAAe;AACrC,uBAAuB,sCAAe;AACtC,iEAAiE,kCAAW;AAC5E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,sCAAe;AAClC;AACA;AACA;AACA,cAAc,0CAAoB;AAClC,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,0BAA0B,sCAAe;AACzC,6BAA6B,sCAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,wDAAwD,gCAAgC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,8BAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACO;AACP,QAAQ,kBAAkB;AAC1B,kBAAkB,gDAAyB,oBAAoB,wBAAwB,IAAI,YAAY;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP,sBAAsB,iCAAe;AACrC;AACA,cAAc,uCAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,0CAAoB;AACtC;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO,gDAAgD,4CAAuB;AAC9E;AACA;AACA;AACA;AACO;AACP,oBAAoB,+BAAQ;AAC5B;AACA;AACA,eAAe,kBAAK;AACpB;AACA;AACA;AACA,eAAe,kBAAK,mBAAmB,wBAAQ;AAC/C;AACA;AACA;AACA,eAAe,kBAAK,mBAAmB,wBAAQ;AAC/C;AACA,yBAAyB,+BAAQ;AACjC;AACA;AACA,eAAe,kBAAK,mBAAmB,wBAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAK;AACpB;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;ACpWA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC5E;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACvDD,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AAC8D;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAAS;AAChC;AACA,mBAAmB,+BAAS;AAC5B;AACA;;;ACvBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoF;AACd;AACC;AAC+C;AAChE;AACQ;AACW;AACG;AACI;AACtC;AACyB;AACrC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAW;AACrC;AACA;AACA;AACA;AACA,8BAA8B,gDAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAAS;AACzC;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qCAAqC,gCAAO;AAC5C,8EAA8E,gCAAiB;AAC/F,SAAS,QAAQ,gCAAiB;AAClC;AACA;AACA;AACA,sCAAsC,wCAAsB;AAC5D;AACA;AACA,CAAC;AACD;AACA,eAAe,wCAAoB;AACnC;AACA,+BAA+B,qCAAY;AAC3C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qCAAY;AAC7C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB,iDAAoB;;;;;;;;;ACxJP;;AAEb,WAAW,mBAAO,CAAC,KAAgB;;AAEnC;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,4BAA4B;AAC5B;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4BAA4B;AAC5B,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC5Va;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,qBAAqB,6BAA6B;AAClD,oBAAoB,4BAA4B;AAChD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD,qBAAqB,sBAAsB;AAC3C,oBAAoB,OAAO,yCAAW,GAAG;AACzC,gBAAgB,OAAO,yCAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO,6DAAS,aAAa,+DAAW,wBAAwB;AACzF,qBAAqB,kBAAkB,gCAAgC;AACvE;AACA,oBAAoB,YAAY;AAChC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACO;AACP;AACA;AACA;AACA;AACO;;;;;;;;;;ACzDP;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;ACvBY;;AAEb;AACA;AACA,WAAW,mBAAO,CAAC,KAAe;;AAElC,WAAW,aAAa;AACxB;;;;;;;;ACPA,YAAY,mBAAO,CAAC,KAAU;AAC9B,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,YAAY,mBAAO,CAAC,KAAS;AAC7B,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAS;AAC7B,WAAW,mBAAO,CAAC,KAAQ;AAC3B,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;ACrKa;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACiF;AAC3B;AACyC;AACxF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6GAA6B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gFAAc;AAClC;AACA;AACA,4BAA4B,8EAAY,YAAY,iEAAK,wBAAwB,iEAAK;AACtF;AACA;AACA;AACA,yBAAyB,iEAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;;;;;;;AC1BD;AACA;AACA;AACA;AACgC;AACuC;AAChE;AACP;AACA,0BAA0B,2EAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAa;AACvC;AACA,wBAAwB,oEAAyB,cAAc,wDAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,oEAAyB,cAAc,wDAAa;AAC5E;AACA;;;;;;;;;AC/Ea;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,aAAa,mBAAO,CAAC,KAA+B;;AAEpD;AACA;AACA;;AAEA;AACA;AACA,+CAA+C,aAAa;AAC5D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;ACtBY;AACb,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACbA,yBAAyB,mBAAO,CAAC,KAAuB;AACxD,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AAC+E;AAC2B;AAC7C;AACc;AACL;AAC/D;AACP,iCAAiC,0CAAgB;AACjD,8BAA8B,6CAA6B;AAC3D,0BAA0B,sDAAmB;AAC7C,iBAAiB,+BAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAS;AAC9B;AACA;AACA,yBAAyB,6CAAS;AAClC;AACA;AACA;AACA,yBAAyB,6CAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uEAAmC,UAAU,uEAAmC,CAAC,6CAAS;AAC5H;AACA;AACA;AACA;AACA,yBAAyB,6CAAS;AAClC;AACA;AACA;AACA,sBAAsB,0CAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjEA;AACA;AACA;AACA;AACgE;AACG;AACS;AACpB;AACsB;AACxB;AAC6C;AAChD;AAC0B;AACtE,oFAAoF,sCAAiB;AAC5G;AACA;AACA;AACA,yBAAyB,kBAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAAyB,6EAA6E,mEAAmE;AACrL;AACA,oCAAoC,oCAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAyB;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA,mFAAmF,wDAAwD;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC;AACA;AACA,gCAAgC,mCAAa;AAC7C,gFAAgF,0BAAI;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAW;AACvB;AACA,sJAAsJ,+CAAqB;AAC3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2DAA2D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAK;AACnB,UAAU,uBAAK;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;;;;AChPA;AACA;AACA;AACA;AAC+D;AAC+B;AACxC;AACU;AACE;AACR;AACnD;AACP;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAkB;AAC9C,kBAAkB,4BAAU;AAC5B;AACA,kBAAkB,uBAAK;AACvB,eAAe,+BAAc;AAC7B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wCAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wCAAoB;AACrE;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAK;AACxD;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAAa;AACxC;AACA;AACA,2BAA2B,+BAAa;AACxC;AACA;AACA,eAAe,2BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAO,GAAG,8BAA8B,IAAI,8BAA8B;AACzF;;;ACtMA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkF;AACF;AACV;AACe;AACuB;AACtD;AACY;AACF;AACW;AACgC;AACnB;AACf;AACN;AACnE,oEAAoE,4BAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAiB;AACpE,iCAAiC,gDAAyB;AAC1D,8CAA8C,gDAAyB;AACvE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAuB;AAClD;AACA,4EAA4E,6CAA2B;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAwB;AACvC,eAAe,mEAA6B;AAC5C;AACmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAe,4EAA4E,4BAAU;AACpH,8CAA8C,6CAA2B;AACzE,gDAAgD,6CAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iCAAW,GAAG,uBAAuB,uBAAK,cAAc;AACrF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAAc;AACjC;AACA;AACA,qCAAqC,4BAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oCAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAU,8CAA8C,4BAAU;AACjF;AACA;AACA;AACA;AACA,mBAAmB,+BAAc;AACjC;AACA;AACA,uBAAuB,uBAAK;;;;;;;;;ACpR5B;AACA;AACA;AACA;AACA,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,4BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACgE;AACK;AACL;AACqD;AACnD;AACyI;AACtG;AACxC;AACS;AACV;AACN;AACQ;AACc;AACZ;AACW;AACgC;AACH;AACjC;AACsC;AAChD;AACoB;AACE;AACgB;AAC5F;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD,kEAAkE,4BAAU;AAC5E,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uBAAuB;AACvG,yBAAyB,sCAAe;AACxC,4CAA4C,uCAAgB;AAC5D;AACA,2CAA2C,sCAAe;AAC1D,gCAAgC,8BAAO,mBAAmB,QAAQ,mFAAmF,6BAAQ,SAAS;AACtK;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,2CAAoB;AAClE;AACA;AACA;AACA,6CAA6C,6CAA2B;AACxE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,6CAA2B;AAC3F;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,gBAAgB,kCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,iCAAW,GAAG,uBAAuB,8BAAW,IAAI;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6CAA6C,8BAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wCAAwC,8BAAO;AAC/C;AACA;AACA;AACA,SAAS;AACT,8BAA8B,iCAAW,GAAG,uBAAuB,8BAAW,IAAI,SAAS,YAAY,4LAA4L;AACnS;AACA,sCAAsC,8BAAO;AAC7C,sDAAsD,6CAA2B;AACjF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qBAAqB,iCAAW;AAChC;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAA6B;AACpD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8CAA8C,4BAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD,4BAA4B,uBAAS;AACrC,mGAAmG,2BAAS;AAC5G,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD,4BAA4B,uBAAS;AACrC;AACA;AACA;AACA,yBAAyB;AACzB;AACA,SAAS;AACT,0BAA0B,iCAAW;AACrC;AACA,sBAAsB,+CAA6B;AACnD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,iCAAW;AAC3C;AACA,sBAAsB,8CAA4B;AAClD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,oDAA6B;AACpD;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qCAAc;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,qCAAc;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uBAAS;AAC3E,oCAAoC,mCAAY;AAChD;AACA,gBAAgB,4BAA4B,WAAW,uBAAK;AAC5D,mBAAmB,sBAAsB,2BAA2B,sBAAsB;AAC1F,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAa;AAC7B;AACA;AACA;AACA,kBAAkB,4CAAkB,+FAA+F,uBAAuB;AAC1J;AACA;AACA;AACA,4EAA4E,0BAAS;AACrF;AACA,qCAAqC,kCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,wCAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAK;AAC1C;AACA,wCAAwC,+BAAc;AACtD;AACA,gFAAgF,0BAAS;AACzF,iFAAiF,kCAAa;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAK,oDAAoD,4BAAU;AACzG;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,+BAAU;AACnC,IAAI,4BAAO,IAAI,2CAAqB;AACpC,IAAI,4BAAO,KAAK,+BAAe;AAC/B,IAAI,4BAAO,KAAK,mEAA6B;AAC7C;AACkC;AAC3B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,uBAAK;AAC1E,mCAAmC,2CAAiB;AACpD;AACA,QAAQ,oCAAiB,KAAK,iCAAkB;AAChD,iCAAiC,4BAA4B,MAAM,oCAAoC;AACvG;AACA;AACA;AACA;AACA,uBAAuB,sCAAY,CAAC,2CAAiB;AACrD,mEAAmE,uBAAK;AACxE,kBAAkB,sCAAkB;AACpC,sBAAsB,uBAAK;AAC3B,mBAAmB,+BAAc;AACjC,KAAK;AACL;AACA;AACA;AACA,kBAAkB,+CAA2B;AAC7C,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAAW,gDAAgD,uBAAK;AACrF,qBAAqB,yBAAQ;AAC7B;AACA;AACA;AACA;;;;;;;;;ACxeA;AACA;AACA;AACA;AACyD;AACS;AACN;AACN;AACgB;AACC;AACE;AACM;AACM;AACnB;AACc;AACX;AACsB;AACpF,mCAAmC,4BAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,kDAAiB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,kCAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA,qCAAqC,6BAAQ;AAC7C;AACA;AACA;AACA,oDAAoD,4BAA4B;AAChF,sCAAsC,sBAAsB;AAC5D,iCAAiC;AACjC,qBAAqB;AACrB;AACA,mCAAmC,mCAAY,aAAa,4BAAS,sBAAsB,+BAAgB;AAC3G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,0BAAK;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kCAAkC,kDAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAiB;AACnD;AACA;AACA;AACA,kCAAkC,kDAAiB;AACnD;AACA;AACA;AACO;AACP;AACA,cAAc,aAAa;AAC3B;AACA;AACA,gCAAgC,mCAAa;AAC7C;AACA;AACA,gBAAgB,oCAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wCAAsB;AACzC;AACA;AACA,mBAAmB,+BAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzLA;AACA;AACA;AACA;AACA,IAAI,oCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,iCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoE;AACH;AACN;AACe;AACE;AACqB;AAC6H;AACrI;AACM;AAChC;AACQ;AACX;AAC0C;AACd;AAChC;AACD;AACwB;AACsC;AACzB;AACV;AACpC;AACqD;AAC+C;AAC/D;AACgB;AACT;AACS;AACT;AAC1F,4GAA4G,4BAAU;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gDAAyB;AAC7D,mCAAmC,sCAAe;AAClD,0BAA0B,oCAAmB,GAAG,uBAAuB,8BAAW,CAAC,4BAAU,KAAK,OAAO,6BAAQ;AACjH,wDAAwD,oBAAoB,sBAAsB,YAAY,mLAAmL,qCAAqC,qBAAqB;AAC3V,YAAY,kCAAW;AACvB;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA,aAAa;AACb,SAAS;AACT,gCAAgC,0CAAmB;AACnD,sCAAsC,0CAAmB;AACzD,0CAA0C,0CAAmB;AAC7D,wBAAwB,8BAAO;AAC/B,2BAA2B,0CAAmB;AAC9C,2BAA2B,8BAAO;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,0CAAwB;AACzD,uEAAuE,uCAAe;AACtF;AACA,sCAAsC,sCAAe;AACrD;AACA,aAAa;AACb,SAAS;AACT,gJAAgJ,kBAAkB;AAClK,wCAAwC,uCAAgB;AACxD,2BAA2B,0CAAmB;AAC9C,0BAA0B,0CAAmB;AAC7C,oCAAoC,8BAAO;AAC3C,2BAA2B,8DAA2B;AACtD,uBAAuB,8BAAO;AAC9B;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA,uEAAuE,sBAAsB,sHAAsH,0CAAmB,mGAAmG,0CAAmB,uGAAuG,0CAAmB;AACtd;AACA;AACA,aAAa;AACb,SAAS;AACT,4CAA4C,iCAAiB;AAC7D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,CAAC;AACD,SAAS;AACT;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA,mBAAmB,qBAAqB;AACxC;AACA,6DAA6D,kCAAW;AACxE;AACA;AACA,6DAA6D,kCAAW;AACxE;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA,SAAS;AACT,8CAA8C,kCAAW;AACzD;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,wCAAmB;AACnC,gBAAgB,wCAAmB;AACnC,gBAAgB,wCAAmB;AACnC,gBAAgB,wCAAqB;AACrC;AACA;AACA;AACA,gBAAgB,kCAAW;AAC3B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAkC;AAClD;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAY;AACnC;AACA,SAAS;AACT,qDAAqD,iCAAe;AACpE;AACA,uBAAuB,0CAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAO,KAAK,wCAAe;AACjD,sBAAsB,mCAAY,0CAA0C,yBAAW,eAAe,wCAAe;AACrH,kEAAkE,sDAAmB;AACrF;AACA;AACA;AACA;AACA,SAAS;AACT,2BAA2B,iEAA4B;AACvD;AACA;AACA,4CAA4C,yHAAyH;AACrK;AACA,SAAS;AACT,oCAAoC,yHAAyH;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAQ,kEAAkE,EAAE;AAC/F;AACA,eAAe,sBAAK,0BAA0B,sBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8LAA8L,6BAAQ;AACtM;AACA;AACA;AACA;AACA;AACA,wEAAwE,6BAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAU;AACxE,IAAI,iCAAO,IAAI,2CAAqB;AACpC,IAAI,iCAAO,IAAI,qCAAkB;AACjC,IAAI,iCAAO,IAAI,2CAAqB;AACpC,IAAI,iCAAO,IAAI,+BAAe;AAC9B,IAAI,iCAAO,IAAI,8DAA+B;AAC9C,IAAI,iCAAO,IAAI,gDAAwB;AACvC,IAAI,iCAAO,IAAI,8DAA2B;AAC1C,IAAI,iCAAO,IAAI,oCAAkB;AACjC,IAAI,iCAAO,IAAI,0CAAqB;AACpC;AACuC;AACvC;AACA,mBAAmB,sCAAe;AAClC;AACA,cAAc,8BAAO;AACrB;AACA,QAAQ,kCAAW;AACnB;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA,8CAA8C,sCAAe;AAC7D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;;;;;;AC9SA;AACA;AACA;AACA;AACoE;AACkB;AAClB;AACK;AACuD;AACjD;AACA;AACF;AACnC;AACuC;AACkB;AACb;AAC/E,6CAA6C,qCAAY;AAChE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,8DAA2B;AACpG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA,oCAAoC,mDAAgC;AAC7D,iDAAiD,qCAAY;AACpE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,8DAA2B;AACpG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA,wCAAwC,uDAAoC;AACrE,4CAA4C,qCAAY;AAC/D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA,2BAA2B,2BAA2B;AACtD,cAAc,iCAAgB;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,+CAA+C,qCAAY;AAClE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,8DAA2B;AACpG;AACA;AACA;AACA,wBAAwB,iCAAc,KAAK,0CAAiB,WAAW,8DAA2B;AAClG,aAAa;AACb;AACA,4BAA4B,sBAAM;AAClC,2BAA2B,oBAAY;AACvC;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACO,+CAA+C,qCAAY;AAClE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,8DAA2B;AACpG;AACA;AACA,aAAa;AACb;AACA,4BAA4B,sBAAM;AAClC,2BAA2B,oBAAY;AACvC;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACO,qCAAqC,qCAAY;AACxD;AACA;AACA,gBAAgB,wCAAqB;AACrC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,8DAA2B;AACrD;AACA,4BAA4B,sBAAM;AAClC,2BAA2B,oBAAY;AACvC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,iCAAc,KAAK,8DAA2B,0BAA0B,0CAAiB,4BAA4B,8DAA2B,gDAAgD,uBAAc,sBAAsB,0CAAiB;AAC7Q;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACO,mCAAmC,qCAAY;AACtD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,8DAA2B;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,2BAA2B;AACtD,QAAQ,kCAAW;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;AACO,sDAAsD,sBAAO;AACpE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,sBAAM;AAC9B;AACA;AACA,iBAAiB;AACjB,qBAAqB,iCAAc;AACnC,SAAS;AACT;AACA;AACA,2CAA2C,2CAAqB;AAChE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtMA;AACA;AACA;AACA;AACA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACiB;AACD;AACU;AAC3B;AACmB;AACK;AACC;AACQ;AACiB;AAC9D;AACyD;AACA;AACrB;AACS;AAChF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB,aAAa,uBAAK;AACtE;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uEAAkC,uBAAuB,sCAAe;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA,qCAAqC,kBAAU,iDAAiD,4BAA4B;AAC5H,iDAAiD,wCAAgB,GAAG,sBAAsB;AAC1F;AACA;AACA;AACA;AACA,aAAa;AACb,8CAA8C,oBAAY;AAC1D,6EAA6E,kCAAc;AAC3F;AACA;AACA,4BAA4B,8BAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAS;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,yBAAU;AAC9C,IAAI,sBAAO,IAAI,gCAAgB;AAC/B,IAAI,sBAAO,IAAI,mCAAc;AAC7B,IAAI,sBAAO,IAAI,0CAAqB;AACpC,IAAI,sBAAO,IAAI,2CAAqB;AACpC,IAAI,sBAAO,IAAI,kCAAiB;AAChC;AAC6C;;;AC1I7C;AACA;AACA;AACA;AACkE;AAC3D,8CAA8C,4BAAU;AAC/D;AACA;AACA;AACA;;;;;ACTA;AACA;AACA;AACA;AACwG;AAC3B;AACgN;AACnN;AACa;AACR;AAC+B;AAC7B;AACjF,uDAA0B,CAAC,2BAA2B,KAAK,2BAA2B;AACtF,iDAAoB,CAAC,6BAA6B;AAClD,iDAAoB,CAAC,8BAA8B;AACnD,iDAAoB,CAAC,kCAAkC;AACvD,iDAAoB,CAAC,gCAAgC;AACrD,iDAAoB,CAAC,gCAAgC;AACrD,iDAAoB,CAAC,sBAAsB;AAC3C,iDAAoB,CAAC,oBAAoB;AACzC,mCAAe,CAAC,uCAAuC;AACvD,2CAAwB,UAAU,iCAAiC;AACnE,oDAAsB,cAAc,+BAA+B;;;;;;;;;ACtBtD;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,qBAAqB,mBAAO,CAAC,KAA0B;AACvD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,oEAAoE,KAAK,+BAA+B,mDAAmD,GAAG,KAAK;AACnK,0CAA0C,KAAK,EAAE,IAAI,EAAE,WAAW;AAClE,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAQ;AAC/B,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,iBAAiB,mBAAO,CAAC,KAAU;AACnC,mBAAmB,mBAAO,CAAC,IAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;AChB2D;AAClB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACO;AACP;AACA;AACO;AACP,QAAQ,2DAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACO;AACP;AACA,iBAAiB,iFAAwB;AACzC;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA,mBAAmB,qBAAqB;AACxC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtWa;;AAEb,WAAW,2BAA2B;AACtC;;;;;;;;ACHA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,mCAAmC;AACnC,cAAc;AACd,gCAAgC;AAChC,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;AC7ID;AACA;AACA;AACA;AACiE;AACN;AACqB;AAClB;AACN;AACC;AACP;AACP;AACyD;AACtC;AAC9D;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,yEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AACtC;AACP;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA,qCAAqC,yEAAQ;AAC7C,qEAAqE,yEAAQ,cAAc,yEAAQ;AACnG;AACA;AACA;AACA,4CAA4C,4BAA4B,6DAAG,oBAAoB;AAC/F;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B,2DAAQ,6GAA6G;AACpL,yCAAyC,6BAA6B,2DAAQ;AAC9E,qBAAqB;AACrB;AACA,wCAAwC,QAAQ,6BAA6B;AAC7E;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC,6BAA6B,yEAAS,oBAAoB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa,IAAI,GAAG;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,oDAAoD,YAAY,MAAM,GAAG;AACzE;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAS;AAC5B;AACA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc,SAAS,KAAK,GAAG,yEAAS,gDAAgD,GAAG,oBAAoB;AACxJ;AACA;AACA;AACA,mDAAmD,yEAAS;AAC5D,yCAAyC,cAAc,SAAS,KAAK;AACrE;AACA;AACA;AACA;AACA;AACA,2EAAiB;AACV;AACP;AACA;AACO;AACP;AACA;AACA;AACA,kCAAkC,+FAAwB;AAC1D;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACO;AACP,uBAAuB,2EAAiB,IAAI,gGAAc;AAC1D;AACA,oBAAoB,6EAAgB;AACpC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACO,iDAAiD,sEAAO,QAAQ,2DAAQ;AACxE,oEAAoE,sEAAO,UAAU,2DAAQ;AAC7F,4DAA4D,sEAAO,YAAY,2DAAQ;AACvF,gBAAgB,yEAAS,QAAQ,sEAAO;AACxC,wBAAwB,yEAAS,QAAQ,sEAAO;;;;;;;;AC9KvD,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;AClLD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,QAAQ,uCAAuC,gBAAgB;AAC/E,eAAe,QAAQ,wBAAwB,kBAAkB,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACsD;AACE;AAChB;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2EAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAmB;AACtC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAK;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAa;AAC5B;AACA;AACA,eAAe,oEAAa;AAC5B;AACA;;;;;;;;;;;;;;ACtHA;AACA;AACA;AACA;AACO;AACA;AACA;;;;;;;;ACNP;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxGY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB;AAC/G,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,2BAA2B,mBAAO,CAAC,KAA4B;AAC/D,oBAAoB,mBAAO,CAAC,KAAqB;AACjD,gBAAgB,mBAAO,CAAC,KAAiB;AACzC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,eAAe,mBAAO,CAAC,KAAgB;AACvC,uBAAuB,mBAAO,CAAC,KAAkB;AACjD,cAAc,mBAAO,CAAC,KAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C;AAClF,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAA8B,IAAI,kBAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,gBAAgB,aAAa;AAC7B,gDAAgD,SAAS,yCAAyC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA,6CAA6C,KAAK,gBAAgB,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,mDAAmD,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAqC,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE,gBAAgB,EAAE,UAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA,gCAAgC,IAAI,WAAW,IAAI,IAAI,eAAe;AACtE;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB,SAAS,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,uCAAuC,KAAK;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,4DAA4D,SAAS;AACrE;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;;;;;ACzmBA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;;;;;;;AC3IA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;AClGD;AACA;AACA;AACA;AACuE;AACK;AACE;AACS;AACC;AACjF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uFAAyB;AACxC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,WAAW,gFAAmB;AAC9B;AACO;AACP;AACA;AACA,uGAA+B;AAC/B,iDAAiD,mGAAwB;AACzE,oFAAoF,qFAAiB;AACrG,CAAC;AACD;AACA;AACA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACsD;AACC;AACsC;AACH;AACD;AACC;AACxB;AACF;AACzD,wCAAwC,0GAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAQ;AAClC;AACA;AACA,6EAA6E,sEAAM;AACnF;AACA;AACA;AACA;AACA;AACA,cAAc,wEAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mFAAoB;AAC1C;AACA;AACA,yBAAyB,wEAAK;AAC9B,aAAa,gFAAa;AAC1B,iDAAiD,WAAW,QAAQ,sBAAsB,KAAK,SAAS;AACxG;AACA;AACA;AACA;AACA,2BAA2B,4EAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wEAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB,GAAG,IAAI,EAAE,yBAAyB;AAClF;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4EAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAW;AAC1B,eAAe,qGAAmB;AAClC;AAC0C;AAC1C,wGAAiB;;;;;;;;;;;;;;;;ACvIjB;AACA;AACA;AACA;AACyC;AACc;AACG;AACK;AACxD;AACP;AACA,oCAAoC,+DAAO;AAC3C;AACA,gCAAgC,+DAAO;AACvC;AACA,iCAAiC,2EAAe;AAChD,yBAAyB,wDAAS;AAClC,4BAA4B,wDAAS;AACrC,4BAA4B,wDAAS;AACrC;AACA,6BAA6B,wDAAI,iBAAiB,6CAA6C,IAAI,2CAA2C;AAC9I,6BAA6B,wDAAI,iBAAiB,8BAA8B,IAAI,2CAA2C;AAC/H,8BAA8B,wDAAI,iBAAiB,+BAA+B,IAAI,6DAA6D,kEAAc,QAAQ;AACzK,8BAA8B,wDAAI,iBAAiB,+CAA+C,IAAI,6DAA6D,kEAAc,QAAQ;AACzL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6DAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,6DAAK;AACpC;AACA;AACA;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,iDAAiD;AAC1F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,iDAAiD;AAC1F;AACA,SAAS;AACT,+BAA+B,6DAAK;AACpC;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA,SAAS;AACT,+BAA+B,6DAAK;AACpC;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD,gBAAgB,qCAAqC;AACrD;AACA;AACA,4BAA4B,wDAAS;AACrC,aAAa,wDAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACoC;AAC4B;AACmF;AACnF;AACZ;AACX;AACzC;AACA;AACA;AACO;AACP;AACA;AACA,8BAA8B,oEAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACO;AACP;AACA;AACO,kCAAkC,8DAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAc;AAClC;AACA,8BAA8B,gEAAS,uFAAuF,2EAA2E;AACzM;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4DAA4D,KAAK;AACjE,qBAAqB;AACrB;AACA;AACA;AACA;AACA,sBAAsB,gEAAS,uFAAuF,2EAA2E;AACjM;AACA;AACA;AACA;AACA,eAAe,wEAAe;AAC9B;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AAC5C;AACP;AACA;AACA,wCAAwC,8DAAc;AACtD;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8DAAc;AAC7C;AACA;AACA,yBAAyB,kEAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;AACvB;AACA,aAAa,0BAA0B,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,WAAW,oEAAY;AACvB;AACA,KAAK;AACL;AACA,oEAAgB;AAChB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oEAAY;AACvB;AACA,KAAK;AACL;AACA,qFAAiC;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uBAAuB,8DAAO;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA,iBAAiB,iEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAe;AACjD;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;ACrVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,kBAAkB,GAAG,4BAA4B;AACnE,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,mBAAmB,mBAAO,CAAC,KAAY;AACvC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,mBAAmB,mBAAO,CAAC,KAAY;AACvC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B,4CAA4C;AACxE;AACA,mDAAmD,qBAAqB,IAAI,uBAAuB;AACnG,qDAAqD,EAAE,4BAA4B;AACnF;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD,qBAAqB,IAAI,wBAAwB;AACpG;AACA;AACA;AACA,8BAA8B,EAAE,6BAA6B,OAAO,2BAA2B,IAAI,mCAAmC,IAAI,yBAAyB,GAAG,qBAAqB,EAAE,wCAAwC,+BAA+B,GAAG,mBAAmB,GAAG;AAC7R;AACA;AACA;AACA,kEAAkE,uBAAuB,GAAG,6BAA6B;AACzH,gEAAgE,uBAAuB,GAAG,2BAA2B;AACrH,wEAAwE,uBAAuB,GAAG,mCAAmC;AACrI,8DAA8D,uBAAuB,GAAG,yBAAyB;AACjH;AACA,wEAAwE,uBAAuB,GAAG,+BAA+B;AACjI,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE,KAAK;AACL;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,8DAA8D,aAAa;AAC3E,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW,MAAM,uBAAuB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA,sEAAsE,cAAc;AACpF;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAA6C;AACvE;AACA;AACA,qCAAqC,qBAAqB,cAAc,IAAI;AAC5E;AACA;AACA,iDAAiD,cAAc;AAC/D,kDAAkD,qBAAqB;AACvE,qCAAqC,qBAAqB,iBAAiB,IAAI,IAAI,WAAW,IAAI,SAAS;AAC3G;AACA;AACA;AACA,YAAY,sDAAsD;AAClE;AACA;AACA,mCAAmC,wBAAwB,wFAAwF,gBAAgB,GAAG,wBAAwB;AAC9L;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA,uCAAuC,UAAU;AACjD;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,YAAY,2CAA2C;AACvD,YAAY,QAAQ;AACpB;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,MAAM,eAAe;AACpF;AACA;AACA;AACA,YAAY,qBAAqB,aAAa,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE,4BAA4B,uBAAuB;AAC/F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,sDAAsD,eAAe,iBAAiB,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS,gBAAgB,+BAA+B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,sCAAsC,YAAY,oBAAoB,kDAAkD;AACxH;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC;AACnD,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iGAAiG;AAC5I;AACA;AACA;AACA;AACA;AACA,4EAA4E,yBAAyB,GAAG;AACxG,4CAA4C,kBAAkB,GAAG,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK,EAAE,qEAAqE;AACnH,uCAAuC,MAAM,KAAK,KAAK;AACvD;AACA;AACA;AACA;AACA,gCAAgC,aAAa,EAAE,IAAI,8BAA8B,UAAU;AAC3F;AACA;AACA,eAAe;AACf;;;;;;;;ACvgBa;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;;;;;;;;ACRY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,8BAA8B,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,gBAAgB;AAC5K,gBAAgB,mBAAO,CAAC,KAAU;AAClC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,oEAAoE,KAAK;AACzE;AACA;AACA,mCAAmC,UAAU,+BAA+B,KAAK,OAAO,KAAK;AAC7F,8CAA8C,KAAK;AACnD,yDAAyD,KAAK;AAC9D;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gDAAgD,UAAU,iBAAiB,UAAU;AACrF,8DAA8D,KAAK;AACnE,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,MAAM;AAClF,oBAAoB,UAAU,iBAAiB,MAAM,KAAK,MAAM,MAAM,KAAK;AAC3E,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,UAAU,mBAAmB,MAAM;AACnF,oBAAoB,UAAU,kBAAkB,MAAM,KAAK,MAAM,MAAM,MAAM,OAAO,MAAM;AAC1F,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,MAAM,iBAAiB,MAAM,WAAW,MAAM;AAC9F;AACA,gDAAgD,MAAM,gBAAgB,MAAM;AAC5E;AACA;AACA;AACA,+CAA+C,MAAM,YAAY,MAAM,WAAW,MAAM;AACxF;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,UAAU;AACtF,mBAAmB,UAAU,mBAAmB,MAAM;AACtD,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA,+BAA+B,YAAY,qDAAqD,WAAW,GAAG,mBAAmB;AACjI;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM,EAAE,IAAI;AACnD;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA,uCAAuC,MAAM,YAAY,MAAM,gCAAgC,KAAK;AACpG;AACA;AACA,iDAAiD,MAAM,iBAAiB,KAAK;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,EAAE,IAAI,EAAE,SAAS;AACrE;AACA;AACA;AACA,6DAA6D,MAAM,+DAA+D,KAAK;AACvI;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD,0DAA0D,MAAM,KAAK,OAAO;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB,QAAQ,gBAAgB,OAAO;AAC/C,eAAe,qBAAqB,oDAAoD,QAAQ,QAAQ,uBAAuB,QAAQ,aAAa;AACpJ;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;;;;;;AC1MA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;AC5BA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC6H;AAC7C;AACqC;AAClB;AACrB;AACgD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO,GAAG,oDAAoD;AACtE;AACA;AACA,QAAQ,uEAAO,GAAG,sDAAsD;AACxE;AACA;AACA,CAAC,CAAC,yEAAa;AACuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2EAAe;AAC7C;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0EAAU;AAC9B,qBAAqB,0EAAU;AAC/B,QAAQ,iFAAQ,iBAAiB,kCAAkC;AACnE,YAAY,iFAAK;AACjB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,4DAA4D,sEAAM;AAClE;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA,sCAAsC,4EAAY,iBAAiB,4BAA4B;AAC/F;AACA;AACA,iCAAiC,0EAAc;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAgB;AAC3C;AACA;AACA,2BAA2B,uEAAgB;AAC3C;AACA;AACA;AACA,uBAAuB,uEAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,kDAAkD,0BAA0B;AAC5E,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC,wBAAwB,wEAAY;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uEAAO;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B,uBAAuB,uEAAO;AAC9B,uBAAuB,uEAAO;AAC9B,0BAA0B,iFAAK,cAAc,iFAAK;AAClD;AACA;AACA;AACA;AACA,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAK;AAC7B,yBAAyB,iFAAK,eAAe,iFAAK,CAAC,sEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iFAAK,CAAC,sEAAM;AACpD;AACA,0CAA0C,iFAAK,CAAC,sEAAM,+BAA+B,iFAAK,CAAC,uEAAO;AAClG,wCAAwC,iFAAK,CAAC,sEAAM,iCAAiC,uEAAO;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK,gBAAgB,iFAAK;AACvC,6BAA6B,sEAAM;AACnC,4BAA4B,uEAAO;AACnC;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,sEAAM;AAC7C;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B,2EAAW,kBAAkB;AACzG;AACA;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA;AACA;AACA,gDAAgD,2EAAW;AAC3D,SAAS;AACT;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAkB;AAC3C;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA;AACA;AACA;AACA,kBAAkB,sEAAM;AACxB,8BAA8B,iFAAK;AACnC;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,wDAAwD,0BAA0B;AAClF,oDAAoD,sCAAsC;AAC1F;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iFAAK;AACpC;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA;AACA,2DAA2D,8EAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,aAAa,iFAAK,yCAAyC,iFAAK;AAChE;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uDAAuD,8EAAkB;AACzE;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B,sBAAsB,sEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA,kDAAkD,gDAAgD,2EAAW,iBAAiB;AAC9H,QAAQ,0EAAU,YAAY,uBAAuB;AACrD,8CAA8C,sBAAsB;AACpE,aAAa,iFAAK;AAClB;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uEAAO;AACjC,YAAY,iFAAK,WAAW,yEAAS;AACrC;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,kDAAkD,yEAAa,mBAAmB,yEAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,yEAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAQ,SAAS,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,gCAAgC,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA,0BAA0B,uEAAO;AACjC,YAAY,iFAAK,WAAW,yEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yEAAa,mBAAmB,yEAAa;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,yEAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAQ,SAAS,gDAAgD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,gCAAgC,0BAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E,gBAAgB,QAAQ;AACxB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC,yBAAyB,sEAAM;AAC/B,0BAA0B,sEAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK,SAAS,iFAAK,CAAC,sEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAU,cAAc,2CAA2C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAM;AACjC;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,sEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,iFAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB,SAAS;AACT;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,yBAAyB,sEAAM;AAC/B,0BAA0B,sEAAM;AAChC;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAuD;AACvF;AACA,kCAAkC,uEAAO;AACzC,qBAAqB,iFAAK,gDAAgD,iFAAK;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA,kCAAkC,uEAAO;AACzC,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA,4CAA4C,qBAAqB;AACjE,2CAA2C,yEAAS;AACpD;AACA;AACA;AACA,8CAA8C,sEAAM;AACpD;AACA;AACA;AACA,4FAA4F,iFAAK;AACjG;AACA,wCAAwC,2EAAW;AACnD;AACA;AACA,wCAAwC,wEAAQ;AAChD;AACA;AACA,2FAA2F,iFAAK;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,iFAAK;AACjG;AACA;AACA;AACA,wCAAwC,iFAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAQ,iBAAiB,UAAU,0EAAU,kBAAkB;AACnF;AACA;AACA,oBAAoB,iFAAQ,iBAAiB,SAAS,0EAAU,iBAAiB;AACjF;AACA;AACA,4DAA4D,iFAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACU;;;;;;;;;;AC33CrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;ACVA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoF;AAC3B;AACuB;AAC0D;AAC5E;AACrC;AAC8C;AACO;AAClB;AACN;AACgB;AACG;AACN;AACD;AACa;AACkB;AAC3C;AACe;AAC9D;AACP,oDAAoD,2EAAU;AAC9D;AACA;AACA;AACA;AACA;AACA,0BAA0B,qFAAe;AACzC,gCAAgC,yFAAmB;AACnD,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0EAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2FAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2FAAc;AACpE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,6DAAW;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2BAA2B,6EAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,kEAAK,mBAAmB,wEAAQ;AAC3D;AACA;AACA,iCAAiC,sHAAsH,+EAAuB,OAAO;AACrL;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT,iIAAiI,6EAAO;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT,uBAAuB,gFAAY,SAAS,uCAAuC;AACnF,uBAAuB,gFAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAgB;AAC/B;AAC2B;AACpB,oCAAoC,2EAAU;AACrD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+FAAyB,wBAAwB,kEAAK;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kFAAa;AAChC;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,6BAA6B,2EAAoB;AACjD,4BAA4B,0EAAmB;AAC/C,2BAA2B,6EAAU;AACrC,QAAQ,iGAAc,KAAK,8FAAe,qVAAqV,0FAAmB;AAClZ;AACA;AACA;AACA,IAAI,uFAAa;AACjB;AACA;AACA;AACA;AACO,iBAAiB,gGAAwB,sBAAsB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9PlG;AACA;AACA;AACA;AAC4F;AACa;AACvB;AACf;AAC0B;AACD;AAC9C;AAC9C,kCAAkC,yCAAe;AACjD,oCAAoC,gCAAa,gCAAgC,wBAAQ;AACzF,uCAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qCAAkB;AAC1F,mCAAmC,4BAAU;AAC7C,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,sDAAsD,4CAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAqB,mBAAmB,sCAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;;;AC7ED;AACA;AACA;AACA;AAC8D;AACR;AAC4B;AACX;AACe;AAC/E;AACP;AACA;AACA;AACA;AACA,0CAA0C,sBAAc,GAAG,EAAE,EAAE,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iDAAiD,uCAAuC;AAC/F;AACA;AACA,6BAA6B,iCAAe;AAC5C;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,+CAA+C,4CAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/GA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AAC4D;AACO;AACT;AACC;AACY;AAChE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AAC5B;AACP;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B,sBAAsB,4BAAU;AACvC;AACA;AACA;AACA;AACA,sDAAsD,qCAAgB;AACtE;AACA;AACA;AACA,+CAA+C,qCAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA,yBAAyB,0BAAQ,kCAAkC,iCAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wCAAwC,0BAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxLiF;AAClB;AACG;AAC4C;AAChC;AACvE;AACA,wBAAwB,yCAAe;AACvC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AAC5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,4BAAU;AACtD,4BAA4B,8DAA8D;AAC1F;AACA;AACA,oDAAoD,qCAAgB;AACpE,qDAAqD,qCAAgB;AACrE,mDAAmD,4BAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAK;AACpB;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA,0CAA0C,8DAA8D;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AACpD;AACP;AACA;AACA,qDAAqD,OAAO,KAAK,uBAAuB,MAAM,MAAM,WAAW,oBAAoB;AACnI,iDAAiD,OAAO,KAAK,uBAAuB,MAAM,MAAM,WAAW,oBAAoB;AAC/H,mDAAmD,OAAO,KAAK,uBAAuB,MAAM,MAAM,WAAW,oBAAoB;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/LA;AACA;AACA;AACA;AACyC;AACe;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,qBAAqB,2DAAU;AAC/B;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AAC2G;AAChE;AACK;AACzC,yBAAyB,mEAAa,UAAU,2EAAW,EAAE,2DAAQ;AACrE,2BAA2B,mEAAa,YAAY,uEAAO,EAAE,2DAAQ;AACrE,6BAA6B,mEAAa,cAAc,yEAAS,EAAE,2DAAQ;AAC3E,yBAAyB,mEAAa,UAAU,qEAAK,EAAE,2DAAQ;AAC/D,+BAA+B,mEAAa,gBAAgB,2EAAW,KAAK,qEAAK,EAAE,2DAAQ;AAC3F,yBAAyB,mEAAa,UAAU,qEAAK,EAAE,2DAAQ;AAC/D,4BAA4B,mEAAa,aAAa,wEAAQ,EAAE,2DAAQ;AACxE,iCAAiC,mEAAa;AAC9C,kCAAkC,mEAAa,2BAA2B,2DAAQ;AAClF;AACA,gCAAgC,mEAAa,gCAAgC,2DAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjB5F;AACA;AACA;AACA;AACgJ;AACpG;AACmB;AACT;AACA;AACQ;AACA;AAC8H;AACzH;AACG;AACrB;AACG;AACgB;AACW;AACzB;AACG;AACT;AACgC;AACZ;AAC8B;AAC/C;AACC;AAC1B;AACoB;AACyD;AAC9B;AACzE,0CAA0C,gFAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gFAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uEAAU;AAC9C,+BAA+B,4EAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB,mEAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0FAA0F,0BAA0B;AACpH,aAAa;AACb;AACA,yFAAyF,0BAA0B;AACnH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4EAAe;AAC9C,2BAA2B,8DAAK;AAChC;AACA;AACA;AACA;AACA;AACO;AACP,kHAAkH;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uEAAU;AAChD,+BAA+B,4EAAe;AAC9C;AACA;AACA,QAAQ,8DAAK;AACb;AACA;AACA,8BAA8B;AAC9B;AACA,2BAA2B,oEAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4EAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAM,YAAY,0CAAC;AACtC,uBAAuB,yDAAM,KAAK,0CAAC;AACnC,wBAAwB,yDAAM,KAAK,0CAAC;AACpC,yBAAyB,yDAAM,KAAK,0CAAC;AACrC;AACA,iBAAiB,oDAAoD,uEAAU;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D,6CAA6C,0BAA0B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qEAAS,kBAAkB,kEAAO;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qEAAS,kBAAkB,kEAAO;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAS;AACjB;AACA;AACA;AACA;AACA,oCAAoC,4EAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0CAAC,oBAAoB,iBAAiB,YAAY,KAAK;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4EAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAO;AACf;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4EAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4EAAc;AACnC,6BAA6B,6EAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM,qEAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAM,qEAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAU,kFAAkF,iDAAiD;AACrK;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD,sBAAsB,QAAQ,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM,qEAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAO;AACf;AACA;AACO,yBAAyB,8DAAM;AACtC;AACA;AACA;AACA,kBAAkB,kEAAO;AACzB,mBAAmB,4DAAQ;AAC3B;AACA,sFAAsF,kGAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,0BAA0B,8DAAM;AACvC;AACA;AACA;AACA,kBAAkB,kEAAO;AACzB,mBAAmB,4DAAQ;AAC3B;AACA,sFAAsF,kGAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,gFAAmB;AACvC,kBAAkB,4EAAoB;AACtC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B;AACP;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C,yBAAyB,uEAAU;AACnC;AACA;AACA,8EAA8E,4DAAQ,uCAAuC,4DAAQ;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAAC;AACzB,YAAY,0CAAC,uEAAuE,aAAa;AACjG,YAAY,0CAAC;AACb,YAAY,0CAAC;AACb;AACA;AACA;AACA;AACA,iCAAiC,gEAAO;AACxC;AACA,uBAAuB,4EAAY;AACnC;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA,mDAAmD,qGAA0B;AAC7E,0DAA0D,qGAAqG;AAC/J,gEAAgE,8GAA8G;AAC9K,+BAA+B,8DAAK;AACpC,oCAAoC,8DAAK;AACzC,4CAA4C,uEAAS;AACrD,mBAAmB,4DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,uEAAS;AACrD;AACA,2CAA2C,0DAAU;AACrD,0BAA0B,8DAAK,0CAA0C,6EAAqB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+CAA+C,iEAAM,UAAU,4DAAQ;AACvE,2CAA2C,0BAA0B;AACrE,mDAAmD,0DAAU;AAC7D;AACA,oCAAoC,4EAAe;AACnD,0DAA0D,0DAAU,CAAC,4DAAS;AAC9E,wDAAwD,0DAAU,CAAC,4DAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,8BAA8B,8DAAK,0BAA0B,0DAAU,4DAA4D,6EAAqB;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,oEAAK;AAC1B,4CAA4C,WAAW;AACvD,mBAAmB,oEAAK;AACxB,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAO;AACrB;AACA;AACA;AACA;AACA,oBAAoB;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gEAAO;AAC3C;AACA,yCAAyC,gEAAO;AAChD;AACA,uCAAuC,gEAAO;AAC9C,yCAAyC,gEAAO;AAChD;AACA,sCAAsC,4EAAe;AACrD,+BAA+B,4EAAe;AAC9C;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,4CAA4C,4DAAQ,qCAAqC;AAClL;AACA;AACA,yFAAyF,mCAAmC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,eAAe,oEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uEAAU;AAC/C,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2DAA2D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4EAAe;AAC5D,4BAA4B,0CAAC;AAC7B;AACA,uBAAuB,0CAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,wBAAwB;AACzG;AACA;AACA;AACA;AACA;AACA,oDAAoD,kBAAkB;AACtE;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gDAAgD;AAC5F;AACA;AACA;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,eAAe;AAChF;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,2BAA2B,4EAAY;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mBAAmB,uEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,iFAAe;AACrG,uBAAuB,yEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uEAAU;AAC1C,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gEAAO;AAC/C;AACA,kCAAkC,gEAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sFAAuB,aAAa,oFAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kEAAe;AAC5B;AACA;AACA;AACA,iFAAiF,QAAQ,wGAAwG;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qEAAqE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sFAAuB,aAAa,oFAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qEAAoB;AACrC,QAAQ,qEAAkB;AAC1B,iBAAiB,qEAAoB;AACrC;AACA,aAAa,qEAAkB;AAC/B,iBAAiB,qEAAoB;AACrC;AACA,aAAa,qEAAkB;AAC/B,iBAAiB,qEAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sFAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gEAAO;AACvC;AACA;AACA;AACA,wGAAwG,oEAAM;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB,oBAAoB,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0EAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAQ;AACpB,YAAY,6EAAc;AAC1B,YAAY,6EAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oFAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAoB,2BAA2B,2EAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sFAAuB,aAAa,oFAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sFAAuB,aAAa,oFAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,sEAAQ;AACnC;AACA;AACA,+BAA+B,sEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wBAAwB;AACxB,6BAA6B;AAC7B,iCAAiC;AACjC,4BAA4B,OAAO,8DAAK,QAAQ,8DAAK,qEAAqE,qEAAoB;AAC9I,wBAAwB,OAAO,8DAAK;AACpC,uBAAuB,OAAO,8DAAK;AACnC,0BAA0B,YAAY,OAAO,8DAAK,KAAK,8DAAK,QAAQ,8DAAK,iNAAiN,8DAAK;AAC/R,sBAAsB,OAAO,8DAAK;AAClC,sBAAsB;AACtB,uBAAuB;AACvB,6BAA6B,OAAO,8DAAK;AACzC,qCAAqC;AACrC,qBAAqB,YAAY;AACjC,6BAA6B;AAC7B;AACA;AACA,0BAA0B,YAAY;AACtC,mCAAmC;AACnC;AACA;AACA,gCAAgC;AAChC,qCAAqC;AACrC,yBAAyB;AACzB,oEAAoE;AACpE;AACA;AACA;AACA,iCAAiC,sEAAa;AAC9C,wCAAwC,8DAAK;AAC7C,8CAA8C,8DAAK;AACnD,+BAA+B,4EAAe;AAC9C,mCAAmC,gEAAO;AAC1C;AACA,uCAAuC,gEAAO;AAC9C;AACA,kDAAkD,8DAAK;AACvD,2CAA2C,8DAAK;AAChD;AACA,yCAAyC,6DAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;AACA;AACA,qIAAqI,mHAAmH;AACxP;AACA;AACA,iCAAiC,8DAAK;AACtC;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gEAAO;AACnE,6DAA6D,gEAAO;AACpE,6BAA6B,8DAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,8BAA8B,8DAAK,gDAAgD,6EAAc;AACjG,8BAA8B,6EAAqB;AACnD,YAAY,8DAAK;AACjB,YAAY,8DAAK;AACjB,YAAY,8DAAK;AACjB;AACA;AACA,2DAA2D,wCAAwC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8DAAK;AAC5C,4CAA4C,8DAAK;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAgB;AAC5C;AACA;AACA,oCAAoC;AACpC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8DAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA,wCAAwC,OAAO,wDAAwD,OAAO,6CAA6C,gBAAgB,yCAAyC;AACpN,wCAAwC,QAAQ,2CAA2C,gBAAgB,iCAAiC;AAC5I;AACA;AACA;AACA;AACA,wCAAwC,QAAQ,2DAA2D,oBAAoB,0BAA0B;AACzJ,wCAAwC,QAAQ,mFAAmF,oBAAoB,0BAA0B;AACjL;AACA;AACA;AACA,wCAAwC,QAAQ,2DAA2D,2BAA2B,iCAAiC;AACvK;AACA;AACA;AACA,wCAAwC,QAAQ,gGAAgG,cAAc,+BAA+B,sBAAsB,cAAc;AACjO;AACA;AACA;AACA,wCAAwC,OAAO,iHAAiH,SAAS,8BAA8B;AACvM,wCAAwC,OAAO,iHAAiH,iBAAiB;AACjL;AACA;AACA,yCAAyC,wEAAqB,sCAAsC,wEAAqB;AACzH,wCAAwC;AACxC,wCAAwC,OAAO,0HAA0H,qBAAqB,2BAA2B,sBAAsB;AAC/O,wCAAwC,OAAO,0HAA0H,kBAAkB;AAC3L;AACA,uCAAuC;AACvC,wCAAwC,OAAO,iHAAiH,qBAAqB,0BAA0B,uBAAuB;AACtO,wCAAwC,OAAO,iHAAiH,mBAAmB;AACnL,+EAA+E,OAAO,gIAAgI,qBAAqB,0BAA0B,uBAAuB;AAC5R,+EAA+E,OAAO,iFAAiF,mBAAmB;AAC1L,+EAA+E,OAAO,qHAAqH,mBAAmB;AAC9N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2DAA2D,kEAAe;AAC1E;AACA;AACA,+DAA+D,kEAAe;AAC9E;AACA;AACA,0CAA0C,kEAAe;AACzD;AACA;AACA,8CAA8C,kEAAe;AAC7D,yEAAyE,YAAY,qIAAqI;AAC1N;AACA,uCAAuC,kEAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAO;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACzjEA;AACA;AACA;AACA;AACsC;AACI;AAC4B;AACvC;AACI;AAC5B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AACpB;AACP,QAAQ,iDAAG;AACX,eAAe,uEAAgB;AAC/B;AACA;AACA,eAAe,2EAAoB;AACnC;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA,yBAAyB,yBAAyB,GAAG,oCAAoC;AACzF;AACA,eAAe,iDAAG;AAClB,oBAAoB,yDAAc;AAClC,0BAA0B,KAAK,GAAG,KAAK;AACvC;AACA;AACA,SAAS;AACT;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA,iBAAiB,mEAAwB,QAAQ,2BAA2B,KAAK,kCAAkC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA,gBAAgB,6CAA6C;AAC7D,gBAAgB,gDAAgD;AAChE,gBAAgB,6FAA6F;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iDAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;;;;;;;;;AClPN;;AAEb,WAAW,mBAAO,CAAC,KAAe;;AAElC,aAAa,mBAAO,CAAC,KAAiB;AACtC,YAAY,mBAAO,CAAC,KAAgB;AACpC,oBAAoB,mBAAO,CAAC,KAAgB;;AAE5C,WAAW,yBAAyB;AACpC;;;;;;;;ACTA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACO;AACP,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB,cAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpfA;AACA;AACA;AACA;AAC2D;AACR;AAC5C;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,qBAAqB,oBAAoB,kBAAkB,kBAAkB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO,IAAI,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE,0CAA0C,wBAAwB;AAClE;AACA,sCAAsC,iFAA0B;AAChE,sCAAsC,iFAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc,qBAAqB,uBAAuB,kBAAkB,qBAAqB;AAC3J,yDAAyD,aAAa,qBAAqB,sBAAsB,kBAAkB,oBAAoB;AACvJ;AACA;AACA;AACA;AACA;AACA,gDAAgD,2BAA2B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iFAA0B;AAChE,sCAAsC,iFAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc,qBAAqB,uBAAuB,kBAAkB,qBAAqB;AAC3J,yDAAyD,aAAa,qBAAqB,sBAAsB,kBAAkB,oBAAoB;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,iEAAK;AAC5E;AACA;AACA,2BAA2B,iEAAK;AAChC;AACA;AACA;AACA;AACA,sEAAsE,iEAAK;AAC3E;AACA;AACA,4BAA4B,iEAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Na;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,wBAAwB,GAAG,8BAA8B;AAChV,kBAAkB,mBAAO,CAAC,KAAoB;AAC9C,eAAe,mBAAO,CAAC,KAAiB;AACxC,gBAAgB,mBAAO,CAAC,KAAkB;AAC1C,eAAe,mBAAO,CAAC,KAAiB;AACxC;AACA,YAAY,gBAAgB;AAC5B;AACA,wBAAwB,qCAAqC,KAAK,GAAG;AACrE;AACA,KAAK;AACL;AACA,8BAA8B;AAC9B,4BAA4B,iBAAiB,QAAQ;AACrD,uJAAuJ,SAAS,IAAI,KAAK;AACzK;AACA,wBAAwB;AACxB;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB;AACnB;AACA,+BAA+B,iBAAiB,QAAQ,KAAK,IAAI,SAAS;AAC1E;AACA,qBAAqB;AACrB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF,+CAA+C,MAAM,KAAK,mCAAmC;AAC7F;AACA,sBAAsB;AACtB;AACA,qCAAqC,KAAK,EAAE,sCAAsC;AAClF;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB;AACxB,4BAA4B,wBAAwB,0CAA0C,MAAM;AACpG,2DAA2D,WAAW,IAAI,KAAK,IAAI,aAAa,EAAE,WAAW;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc,IAAI,sBAAsB;AAC7E,2DAA2D,KAAK,QAAQ,QAAQ,IAAI,KAAK,yBAAyB,KAAK,GAAG,KAAK;AAC/H;AACA,wBAAwB;AACxB;AACA,sBAAsB,WAAW,QAAQ;AACzC;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,kCAAkC,4EAA4E,GAAG,QAAQ,IAAI,EAAE;AAC/H,KAAK;AACL;AACA,kBAAkB;AAClB;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,OAAO,KAAK,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;;;;;;;;AClIa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,qBAAqB,mBAAO,CAAC,KAAmC;AAChE,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,2FAA2F;AAC/F;AACA,CAAC;;;;;;;;;;;;;;;;;;;ACTD;AACA;AACA;AACA;AACoC;AACyB;AACe;AACP;AAC3B;AACyK;AAClG;AACjH,gCAAgC,iGAAa,qCAAqC,oEAAoE,EAAE,uDAAY;AACpK,iGAAa,2CAA2C,oEAAoE,EAAE,uDAAY;AAC1I,iGAAa,yCAAyC,kIAAkI,EAAE,uDAAY;AACtM,4BAA4B,iGAAa,iCAAiC,iCAAiC,oGAAoB,WAAW,oGAAoB,EAAE,EAAE,uDAAY;AAC9K,iGAAa,uCAAuC,iCAAiC,oGAAoB,WAAW,oGAAoB,EAAE,EAAE,uDAAY;AACxJ,iGAAa,qCAAqC,kHAAkH,EAAE,uDAAY;AAClL,6CAA6C,iGAAa,kDAAkD,kFAAkF,EAAE,uDAAY;AAC5M,mDAAmD,iGAAa,wDAAwD,kFAAkF,EAAE,uDAAY;AACxN,iDAAiD,iGAAa,sDAAsD,MAAM,yHAAyC,SAAS,yHAAyC,UAAU,yHAAyC,WAAW,yHAAyC,EAAE,EAAE,uDAAY;AAC5U,uBAAuB,wFAAsB;AAC7C;AACA;AACA;AACA;AACA,eAAe,kGAAgB;AAC/B,kBAAkB,yEAAiB;AACnC,KAAK;AACL;AACA,eAAe,kGAAgB,CAAC,mHAAmC;AACnE;AACA,KAAK;AACL,CAAC;AACD,sBAAsB,wFAAsB;AAC5C;AACA;AACA;AACA;AACA,eAAe,kGAAgB;AAC/B,kBAAkB,yEAAiB;AACnC,KAAK;AACL;AACA,eAAe,kGAAgB,CAAC,mHAAmC;AACnE;AACA,KAAK;AACL,CAAC;AACD,qCAAqC,wFAAsB;AAC3D;AACA;AACA;AACA;AACA,eAAe,kGAAgB,CAAC,yHAAyC;AACzE,kBAAkB,yEAAiB;AACnC,KAAK;AACL;AACA,eAAe,kGAAgB,CAAC,mHAAmC;AACnE;AACA,KAAK;AACL,CAAC;AACD,iDAAiD,wFAAsB;AACvE;AACA;AACA;AACA,CAAC;AACD,yBAAyB,wFAAsB;AAC/C;AACA;AACA;AACA;AACA,eAAe,kGAAgB;AAC/B,kBAAkB,yEAAiB;AACnC,KAAK;AACL;AACA,eAAe,kGAAgB,CAAC,mHAAmC;AACnE;AACA,KAAK;AACL,CAAC;AACM;AACP,iBAAiB,iFAAqB;AACtC;AACA;AACA,sBAAsB,iFAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4GAA0B;AAC1B,8CAA8C,wGAAwB;AACtE;AACA,gEAAgE,oBAAoB,uCAAuC;AAC3H;AACA,CAAC;;;;;;;;;;;;;;;;;;ACjGD;AACA;AACA;AACA;AACgE;AACa;AACP;AACe;AACnB;AACpB;AACvC,0CAA0C,2EAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,wCAAwC,0FAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA,qDAAqD,iFAAa;AAClE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0DAA0D,8FAAa,mCAAmC,2DAAQ;AAClH,iEAAiE,8FAAa,0CAA0C,2DAAQ;AAChI,gFAAgF,8FAAa,wDAAwD,2DAAQ;AAC7J,sDAAsD,8FAAa,mDAAmD,2DAAQ;;;;;;;;;;;;;;;;;AC3DjD;AACpB;AAClD,sBAAsB,qFAAkB;AAC/C,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qBAAqB,qFAAkB;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACuE;AACA;AACH;AACR;AACN;AACtD;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB,gBAAgB,aAAa,qCAAqC,mBAAmB;AAC7H;AACA;AACA;AACA,mBAAmB,iEAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kBAAkB,gFAAe;AACjC;AACA,UAAU,iFAAW,GAAG,2CAA2C,sBAAsB,GAAG;AAC5F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,eAAe,uEAAQ;AACvB;AACO;AACP,eAAe,uEAAQ;AACvB;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtBA;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAA6B,CAAC,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC7D,MAAM,KAAK,EAIN;AACL,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzMD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACkC;AACP;AACa;AACE;AACO;AACK;AACvD;AACmB;AAC/B;AACyD;AACrB;AACU;AACpB;AACa;AACnB;AACG;AACa;AACY;AACI;AACM;AAC7B;AACA;AACvE,UAAU,mDAAK;AACf,mCAAmC,+FAAY,6BAA6B,uEAAO,MAAM,uDAAY;AACrG,mCAAmC,+FAAY,6BAA6B,uEAAO,SAAS,uDAAY;AACjG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAoB;AACrC;AACA,iBAAiB,iFAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iFAAc,cAAc,uDAAY;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,uDAAY;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4FAAqB;AACtD;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAK;AACnC,uDAAuD,yEAAO;AAC9D;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAmB;AACtC;AACA;AACA;AACA;AACA,mBAAmB,iFAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8FAAsC;AAC3E,oEAAoE,4FAAqB;AACzF;AACA,6CAA6C,kEAAK;AAClD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAgB;AAC/B,eAAe,uFAAc;AAC7B,eAAe,4GAAqB;AACpC,eAAe,oGAAwB;AACvC,eAAe,mGAAkB;AACjC,eAAe,sFAAa;AAC5B;AACoC;AACpC,yCAAyC,2EAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gFAAY;AACnC;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,gFAAY;AACnC,gEAAgE,sCAAsC;AACtG,SAAS;AACT;AACA;AACA,wBAAwB,2EAAS,yBAAyB,8EAAgB;AAC1E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA,qBAAqB;AACrB;AACA,yEAAyE,iFAAoB;AAC7F,yEAAyE,iFAAoB;AAC7F;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2EAA2E,iFAAoB;AAC/F,2EAA2E,iFAAoB;AAC/F,uBAAuB,iFAAyB,mBAAmB,qEAAa;AAChF;AACA;AACA,SAAS;AACT,uBAAuB,iFAAyB,mBAAmB,qEAAa;AAChF;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,gFAAe;AACzC,4CAA4C,iFAAoB;AAChE,8BAA8B,kEAAU,cAAc,0EAAS;AAC/D;AACA,kCAAkC,+FAAsB,mBAAmB,+BAA+B,6CAA6C;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yFAAW;AACjC,sBAAsB,2FAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iFAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2FAAuB;AACvD,qDAAqD,6BAA6B;AAClF,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA,YAAY,4FAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,2EAAS,yBAAyB,8EAAgB;AACtE,4BAA4B,gFAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAe;AACrC;AACA,YAAY,4FAAqB;AACjC;AACA;AACA;AACA,qCAAqC,kEAAU;AAC/C,uCAAuC,mHAAgB,GAAG,QAAQ;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,aAAa,iFAAoB;AACjC,0DAA0D,4FAAkC;AAC5F;AACA,gBAAgB,uDAAY,wDAAwD,EAAE;AACtF,gBAAgB,uDAAY;AAC5B;AACA,aAAa,iFAAoB;AACjC,0DAA0D,4FAAkC;AAC5F;AACA,gBAAgB,uDAAY,wDAAwD,EAAE;AACtF,gBAAgB,uDAAY;AAC5B;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxXA;AACA;AACA;AACA;AACwC;AACO;AACY;AACN;AAC+B;AAC5B;AACZ;AACU;AAC6B;AACd;AACnB;AACT;AACkB;AAC3D;AACO,QAAQ,iLAAiL;AAChM;AACA,IAAI,sEAAgB,CAAC,4DAAU;AAC/B,qCAAqC,QAAQ,4DAAU,mBAAmB,2EAAe;AACzF,gBAAgB,4DAAU;AAC1B,oCAAoC,+DAAa;AACjD,sCAAsC,+DAAa;AACnD,uCAAuC,+DAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAU;AACjC;AACA,oCAAoC,2EAAe;AACnD;AACA;AACA,iDAAiD,2EAAe;AAChE;AACA;AACA,4BAA4B,2EAAY;AACxC;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAAU;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,2BAA2B,uEAAkB;AAC7C;AACA;AACA;AACA;AACA,2BAA2B,6EAAqB;AAChD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,uCAAuC,iEAAc,IAAI,iEAAe;AACxE;AACO;AACP;AACA;AACA;AACA;AACA,IAAI,mBAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,wEAAY;AACvB;AACA;AACA;AACA;AACA;AACO,8BAA8B,yEAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACA,kCAAkC,qEAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,iCAAiC,MAAM;AACvC;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,eAAe,4DAAU;AACzB;AACA,sDAAsD,QAAQ;AAC9D,yFAAyF,4DAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,+HAA+H,4DAAU;AACzI;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4DAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sCAAsC,4DAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAY;AACxC;AACA;AACA;AACA,sBAAsB,4DAAU;AAChC;AACA;AACA,qBAAqB,oCAAoC;AACzD,iCAAiC,4DAAU;AAC3C,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAe;AAC3C;AACA;AACA,oBAAoB,2EAAY;AAChC;AACA;AACA;AACA,oFAAoF,iBAAiB;AACrG;AACA,KAAK;AACL;AACA,oBAAoB,2EAAY;AAChC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gEAAI;AAChC;AACA;AACA,oCAAoC,+DAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6EAA6E,WAAW,EAAE,SAAS;AACnG;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2DAAgB;AACrC,mBAAmB,2DAAgB;AACnC,yBAAyB,2DAAgB;AACzC;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,6CAA6C;AACjE;AACA;AACA;AACA;AACA;AACO;AACP,oBAAoB,6CAA6C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+DAAa;AAC3D;AACA,6CAA6C,+DAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4BAA4B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAU;AACd;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,2EAAY;AACvB;AACA,2EAAiB,sCAAsC,4DAAU;AACjE;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oEAAU,0DAA0D;AACvF;AACO;AACP,eAAe,2BAA2B;AAC1C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,IAAI,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,IAAI,sEAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,2EAAY;AACvB,QAAQ,yEAAoB;AAC5B,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM,iCAAiC,+DAAa;AACrD;AACA;AACA,kCAAkC,2EAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAW,yCAAyC,qBAAqB,oDAAoD,QAAQ,4DAAU,oCAAoC;AACnN;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,sEAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gCAAgC;AAChC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACr7CA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtBA;AACA;AACA;AACA;AACuC;AACoB;AACF;AACwB;AACxC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gDAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAc;AAC7B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB,mCAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2BAAmB;AAC3E,sCAAsC,QAAQ;AAC9C;AACA;AACA,oDAAoD,2BAAmB;AACvE,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,8CAA8C,QAAQ;AACtD;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+HAA+H,WAAW,sCAAsC;AAChL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uCAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oCAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAc;AACxC,4BAA4B,4DAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mDAAmD;AACnD;AACA,wCAAwC,oBAAoB;AAC5D,iDAAiD;AACjD;AACA;AACA,uBAAuB;AACvB;AACA;AACA,4DAA4D,YAAY;AACxE,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE,qDAAqD;AACrD;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAY,0BAA0B,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAY,qBAAqB,GAAG;AACnD;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA,cAAc,8BAA8B;AAC5C;;;;;;;;AC74BA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACkF;AACL;AACZ;AACV;AACvD,kGAA0B,CAAC,mFAAoB,KAAK,mFAAoB;AACxE,4FAAwB,UAAU,yEAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTjD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC2D;AACuB;AACJ;AACf;AACL;AACE;AACN;AACgD;AACT;AACD;AAC1B;AACK;AACiB;AACjF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa,GAAG,UAAU;AACvD;AACA;AACA,6BAA6B,aAAa,GAAG,eAAe;AAC5D;AACA,iCAAiC,aAAa,GAAG,eAAe,GAAG,gCAAgC,GAAG,4BAA4B;AAClI;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE,oBAAoB,YAAY,GAAG,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,wBAAwB,2FAAuB;AAC/C;AACA;AACA;AACA;AACA,sDAAsD,MAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gBAAgB,2FAAyB;AACzC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,iBAAiB,wEAAM;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uEAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAQ;AACtC;AACA;AACA,oCAAoC,kEAAK;AACzC;AACA;AACA;AACA;AACA;AACA,qCAAqC,wEAAQ,SAAS,kEAAK,4BAA4B,kEAAK,+BAA+B,wEAAQ,SAAS,kEAAK,0BAA0B,kEAAK;AAChL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,0GAAe;AACnD;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C,0BAA0B,mEAAQ;AAClC,wHAAwH,UAAU;AAClI;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wEAAM;AAC3E,+BAA+B,2FAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,iHAA+B;AAC9C,eAAe,6EAAa;AAC5B;AAC+B;AAC/B,yGAAiB;;;;;;;;;;;;;;;;;;;;ACxQjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;;;;;;;;;ACvBa;;AAEb,cAAc,mBAAO,CAAC,KAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,KAAgB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,QAAQ,4BAA4B;AACpC;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;;AAEA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,4BAA4B,0DAA0D,MAAM;AAC5F;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,+BAA+B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,aAAa;AACxB;AACA,eAAe,uCAAuC;AACtD,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;;AAE9C,YAAY,kDAAkD;;AAE9D,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA;AACA;AACA;;;;;;;;;AChHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,YAAY,iCAAiC;AAC7C;AACA;AACA,0CAA0C,KAAK,EAAE,iCAAiC;AAClF;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,wCAAwC,WAAW;AACnD;AACA,wCAAwC,WAAW,KAAK,WAAW,cAAc,WAAW;AAC5F;AACA,UAAU,WAAW;AACrB,8CAA8C,WAAW,cAAc,WAAW;AAClF,0CAA0C,WAAW,IAAI,uCAAuC;AAChG;AACA;;;;;;;AClCA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvBA,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3IA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC8F;AACN;AACpB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,yBAAyB,2EAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,iEAAK,iBAAiB,2EAA2E;AAChI,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2BAA2B;AAC/E,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yEAAS;AAC3B,sBAAsB,yEAAS;AAC/B;AACA,YAAY,sEAAM;AAClB,SAAS;AACT,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA,YAAY,sEAAM;AAClB,iBAAiB,iFAAiB;AAClC,gBAAgB,sEAAM;AACtB;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA,sBAAsB,yEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0DAA0D,iDAAiD;AAC3G;AACA,mDAAmD,8CAA8C;AACjG,kDAAkD,gEAAgE;AAClH;AACA,kDAAkD,gDAAgD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,8CAA8C,6CAA6C;AAC3F;AACA,kDAAkD,gEAAgE;AAClH;AACA,+BAA+B;AAC/B,iDAAiD,+DAA+D;AAChH;AACA,sDAAsD,+DAA+D;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,OAAO,kEAAkE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,wEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA,gBAAgB,iFAAiB;AACjC,gBAAgB,yEAAS;AACzB;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;AClfnB,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,0BAA0B,mBAAO,CAAC,KAAwB;AAC1D,eAAe,mBAAO,CAAC,KAAY;AACnC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5ED;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA,0CAA0C;AAC1C;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5EA,aAAa,mBAAO,CAAC,IAAW;AAChC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;;AAEA,6BAA6B,uCAAuC;AACpE;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACiF;AAC1E;AACP;AACA;AACA,2EAA2E,gEAAkC;AAC7G;AACA;AACA,kEAAkE,gEAAkC,GAAG,yBAAyB;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAkC,GAAG,sDAAsD;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,KAAK;AAC/E,gFAAgF,KAAK;;;;;;;;;ACpCrF;AACA;AACA;AACA;AAC6D;AACN;AACD;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0CAAqB;AACjC;AACA;AACA;AACA;AACA,kBAAkB,sCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC5DA;AACA;AACA;AACA;AACsE;AACR;AACH;AACpD;AACP;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA,iCAAiC,cAAc,yCAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA,iCAAiC,cAAc,yCAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzGA;AACA;AACA;AACA;AACkE;AACJ;AAC9D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,wCAAwC,4BAAc;AACtD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wCAAwC,4BAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAqB;AACpC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjIA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACwD;AACqB;AAClB;AAC4B;AACzB;AACK;AACe;AACnB;AACR;AACW;AACwB;AACM;AAC/C;AACwC;AAC9B;AACiC;AACrF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sCAAsC,yCAAe;AAC5D,8EAA8E,4BAAU;AACxF;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAqB;AACpC,eAAe,gCAAgB;AAC/B;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA,sBAAsB,oCAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO,4CAA4C,4BAAU;AAC7D;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA,qCAAqC,2CAAqB;AAC1D;AACA;AACA;AACA,mBAAmB,KAAK;AACxB;AACA;AACA,kBAAkB,QAAQ,YAAY,GAAG;AACzC,kBAAkB,uBAAuB;AACzC,kBAAkB,uBAAuB;AACzC,kBAAkB,uBAAuB;AACzC,kBAAkB,yBAAyB;AAC3C,kBAAkB,yBAAyB;AAC3C,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA,iCAAiC,oBAAoB;AACrD,mEAAmE,sCAAmB;AACtF;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA,eAAe,gDAAyB;AACxC;AACA;AACA;AACA,iCAAiC,yCAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,0CAA0C,+BAA+B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8CAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChWjB;AACA;AACA;AACA;AACuF;AAC5B;AACL;AACQ;AACvD;AACP,wBAAwB;AACxB,yBAAyB;AACzB;AACA,uCAAuC,4BAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,8BAAQ;AAC9F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qDAA8B;AAC5C;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACsG;AAC1B;AACW;AACxB;AACoB;AACP;AAClB;AACnC;AAC0D;AACuE;AAC/E;AACT;AAC2C;AACgO;AAClR;AACM;AACrB;AAC+D;AACrC;AAChB;AACW;AACiC;AACM;AACrC;AACuB;AAC7B;AACyB;AAC/B;AACa;AACiC;AACnG,oCAAoC,gCAAa;AACjD,8EAA8E,4BAAU;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAe;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gIAAgI,UAAU;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAY;AAC5C;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA,mCAAmC,4BAAO;AAC1C,0CAA0C,qCAAgB;AAC1D;AACA;AACA,2HAA2H;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uDAAmB;AAC3D,kDAAkD;AAClD;AACA;AACA;AACA,yCAAyC,8CAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,+BAA+B,0BAAS;AACxC;AACA,yEAAyE,gDAAuB;AAChG;AACA,+FAA+F;AAC/F;AACA;AACA,mFAAmF,kCAAgB;AACnG;AACA,8CAA8C,iDAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,gBAAgB,oCAAiB;AACjC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,gCAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,mEAA6B;AAC5C,eAAe,yCAAoB;AACnC,eAAe,8DAA+B;AAC9C,eAAe,gDAAwB;AACvC;AAC6B;AACtB;AACP;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAY;AACxC;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yBAAiB;AAC1B,aAAa,sBAAc;AAC3B;AACA;AACA;AACA,aAAa,yBAAiB,yBAAyB,sBAAc;AACrE;AACA;AACA,aAAa,yBAAiB,4BAA4B,sBAAc;AACxE;AACA;AACA,aAAa,yBAAiB,iHAAiH,sBAAc;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAwB;AACpC;AACA;AACA,YAAY,2DAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,2DAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAkB;AAC9B;AACA;AACA;AACA,gBAAgB,yDAAwB;AACxC;AACA;AACA,gBAAgB,2DAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,oDAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,2DAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wDAAuB,eAAe,kCAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0CAAsB;AAC1E,gBAAgB,iEAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wDAAuB,eAAe,kCAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wDAAuB,eAAe,kCAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,wDAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,wDAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,2DAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,2DAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,kDAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,oDAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,gDAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,kCAAkC,oCAAc;AAChD,wCAAwC,oCAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD,iEAAiE,iCAAiC,IAAI,gCAAgC;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B,0FAA0F;AACpH,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,gBAAgB,QAAQ;AACxB,IAAI,6DAAgC;AACpC;AACA,eAAe,oBAAY,uCAAuC,EAAE;AACpE,6BAA6B,EAAE;AAC/B;AACA;AACA,oBAAoB,0CAAiB;AACrC,qBAAqB,6BAAQ;AAC7B;AACA;AACA,KAAK;AACL;AACA,gCAAgB;AAChB;AACA,8BAA8B,cAAG;AACjC,cAAc,kCAAe;AAC7B;AACA,iDAAiD,gDAAwB;AACzE,+BAA+B,mCAAa;AAC5C;AACA,cAAc,kCAAe;AAC7B;AACA,8CAA8C,2CAAqB;AACnE,2DAA2D,UAAU;AACrE;AACA;AACA,sDAAsD,mEAA6B;AACnF,+EAA+E,UAAU;AACzF;AACA;AACA,mFAAmF,UAAU;AAC7F,SAAS;AACT;AACA;AACA,oCAAoC,uDAAmB;AACvD;AACA;AACA;AACA;AACA,gCAAgC,8CAAmB,4BAA4B;AAC/E;AACA;AACA,+CAA+C,sCAAiB;AAChE;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,8BAA8B,mFAAmF,kCAAgB,8BAA8B;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACpkCD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACkE;AAC3D,sCAAsC,2EAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACmE;AACL;AACJ;AACe;AAChB;AACgB;AAC1B;AACkC;AACkB;AACb;AAC7C;AAClC,6CAA6C,sBAAO;AAC3D;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,kBAAkB,uBAAO;AACzB,qBAAqB,iCAAc;AACnC,0BAA0B,iCAAc;AACxC;AACA,sBAAsB,iCAAc;AACpC,oBAAoB,sBAAM;AAC1B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,kDAAkD,2CAAqB;AACvE;AACA;AACA;AACA;AACO,wCAAwC,sBAAO;AACtD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,iCAAc;AACxC,SAAS;AACT;AACA;AACA,kDAAkD,2CAAqB;AACvE;AACA;AACA;AACA;AACO,oDAAoD,sBAAO;AAClE;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,iCAAc;AACxC,SAAS;AACT;AACA;AACA,kDAAkD,2CAAqB;AACvE;AACA;AACA;AACA;AACA,2BAA2B,yBAAS;AAC7B,yBAAyB,sCAAa;AAC7C;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,kBAAkB,uBAAO;AACzB,0BAA0B,iCAAc;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,sCAAa;AAClD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,kBAAkB,uBAAO;AACzB,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA;AACA;AACA;AACO,0CAA0C,sCAAa;AAC9D;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,kBAAkB,uBAAO;AACzB,0BAA0B,iCAAc;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA;AACA;AACA;AACO,sCAAsC,sCAAa;AAC1D;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,kBAAkB,uBAAO;AACzB,0BAA0B,iCAAc;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA;AACA;AACA;AACO,oCAAoC,sBAAO;AAClD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAS;AACvC,uCAAuC,sBAAO;AACrD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA,0BAA0B,iCAAc;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uCAAuC,sBAAO;AACrD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA,0BAA0B,iCAAc;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2CAA2C,oDAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP,2CAA2C,oDAAkB;AAC7D;AACA,0BAA0B,gCAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjPA;AACA;AACA;AACA;AAC8D;AACiO;AACtN;AAC3B;AACyD;AACnB;AACwB;AACnE;AACzC,mCAAe,CAAC,8BAA8B;AAC9C,mCAAe,CAAC,yBAAyB;AACzC,mCAAe,CAAC,qCAAqC;AACrD,4BAAY,gBAAgB,sBAAM;AAClC;AACA,gBAAgB,qCAAqC;AACrD,eAAe,wBAAQ;AACvB,iBAAiB,iCAAc;AAC/B,sBAAsB,iCAAc;AACpC,KAAK;AACL;AACA;AACA,UAAU,iCAAc,KAAK,0CAAiB,oDAAoD,iCAAc;AAChH,CAAC;AACD,4BAAY,gBAAgB,sBAAM;AAClC;AACA,gBAAgB,yBAAyB;AACzC,eAAe,wBAAQ;AACvB,cAAc,uBAAO;AACrB,iBAAiB,uCAAoB;AACrC,sBAAsB,iCAAc;AACpC,KAAK;AACL;AACA;AACA,UAAU,iCAAc;AACxB,CAAC;AACD,mCAAe,CAAC,qBAAqB;AACrC;AACA,MAAM,MAAM,uBAAO,kBAAkB,0CAAiB,mCAAmC;AACzF,MAAM,MAAM,uBAAO,eAAe,0CAAiB;AACnD;AACA,IAAI,4BAAY,gBAAgB,sBAAM;AACtC;AACA,oBAAoB,qBAAqB;AACzC,mBAAmB,wBAAQ;AAC3B;AACA,SAAS;AACT,cAAc,iCAAc,KAAK,0CAAiB;AAClD;AACA;AACA,KAAK;AACL,IAAI,4BAAY,gBAAgB,sBAAM;AACtC;AACA,oBAAoB,qBAAqB;AACzC,mBAAmB,wBAAQ;AAC3B;AACA,SAAS;AACT,cAAc,iCAAc,KAAK,0CAAiB;AAClD;AACA;AACA,KAAK;AACL;AACA,mCAAe,CAAC,UAAU;AAC1B,mCAAe,CAAC,eAAe;AAC/B,mCAAe,CAAC,2BAA2B;AAC3C,mCAAe,CAAC,uBAAuB;AACvC,4BAAY,gBAAgB,sBAAM;AAClC;AACA,YAAY,wBAAwB;AACpC,eAAe,wBAAQ;AACvB,sBAAsB,iCAAc;AACpC,KAAK;AACL;AACA;AACA,UAAU,iCAAc,KAAK,0CAAiB,uCAAuC,iCAAc;AACnG,CAAC;AACD,gCAAgB,uDAAuD,wBAAwB;AAC/F,mCAAe,CAAC,wBAAwB;AACxC,gCAAgB,uDAAuD,wBAAwB;AAC/F,mCAAe,CAAC,wBAAwB;;;;;;;;ACjFxC;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;ACjLD;AACA;AACA;AACA;AAC0F;AAChB;AACG;AACO;AAC6C;AACjI,iCAAiC,gFAAY;AAC7C;AACA;AACA;AACA,mBAAmB,yFAAqB;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oDAAoD,wFAAuB;AAC3E;AACA,YAAY,yFAAc;AAC1B;AACA,wEAAwE,iFAAM,sBAAsB,oFAAkB,GAAG,qFAAmB;AAC5I;AACA;AACA;AACA,4CAA4C,iFAAM,sBAAsB,qFAAmB,GAAG,qFAAmB;AACjH;AACA;AACA;AACA;AACA,4FAAoB;;;;;;;;;ACjCP;AACb;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AAC+C;AACd;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA,8BAA8B,GAAG;AACjC;AACA,iCAAiC,EAAE;AACnC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kCAAkC;AAClC,kCAAkC;AAClC,oCAAoC;AACpC,qCAAqC;AACrC,mCAAmC;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kCAAkC;AAClC,kCAAkC;AAClC,mCAAmC;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mCAAmC,EAAE;AACrC;AACO;AACP;AACA;AACO,yDAAyD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,mDAAmD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP,WAAW,gCAAgC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO,mDAAmD;AAC1D;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,uBAAuB,iBAAiB;AAC1D;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mDAAI;AACrD;AACA;AACA,wBAAwB,qxmBAAqxmB;AAC7ymB,CAAC;AACD,gCAAgC,kEAAiB,GAAG,6BAA6B;AACjF;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAmC,mDAAI;AAChC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC10Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,4BAA4B;AACxD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,cAAc;AAC1B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;;;;;;;ACjDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,cAAc,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA,sDAAsD,IAAI,MAAM,IAAI,SAAS,KAAK;AAClF,kCAAkC,KAAK,eAAe,IAAI;AAC1D,2CAA2C,YAAY,YAAY,KAAK,IAAI,KAAK,GAAG,WAAW,IAAI,QAAQ;AAC3G,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACzBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD;AACA,kBAAe;AACf;;;;;;;;ACXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,mBAAO,CAAC,KAAU;AAC9B;AACA,kBAAe;AACf;;;;;;;ACLA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxGD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAmB;;;;;;;;AC9EnB,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa,IAAI,aAAa,IAAI,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa,IAAI,aAAa,IAAI,aAAa,IAAI,2BAA2B;AAC7G;AACA;AACA;AACA;AACA,kCAAkC,aAAa,IAAI,gCAAgC,KAAK,gCAAgC;AACxH;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa,IAAI,gCAAgC,KAAK,gCAAgC,KAAK,wBAAwB;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B,EAAE,6BAA6B,EAAE,6BAA6B,EAAE,+CAA+C;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC;AAC/C,KAAK,6CAA6C;AAClD,CAAC,sBAAsB;;;;;;;;AC7cvB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ID,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,gDAAgD,QAAQ;AACxD,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AAC8D;AACnB;AAC3C;AACA;AACA;AACA,mBAAmB,wBAAQ,uDAAuD,EAAE;AACpF;AACA,mBAAmB,wBAAQ,uDAAuD,GAAG,IAAI,EAAE;AAC3F;AACA,mBAAmB,wBAAQ,uDAAuD,EAAE,GAAG,GAAG,IAAI,EAAE;AAChG;AACA;AACA;AACA;AACA,2CAA2C,wBAAQ;AACnD,sCAAsC,wBAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,WAAW,IAAI,WAAW,UAAU,eAAe;AAClI,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,OAAO,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAAY,0BAA0B,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,4CAA4C,gEAAgE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,kFAAkF;AAClF,4CAA4C,6DAA6D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4BAA4B,4CAA4C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2DAA2D;AAC/F;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gIAAgI;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gEAAgE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3RA;AACA;AACA;AACA;AACiI;AAC3D;AAC/B;AACuC;AACnC;AAC3C;AACA;AACA;AACA,6BAA6B,4BAAW;AACxC,+BAA+B,wBAAO;AACtC,iCAAiC,0BAAS;AAC1C,6BAA6B,sBAAK;AAClC,mCAAmC,4BAAW,KAAK,sBAAK;AACxD,8BAA8B,uBAAM;AACpC,iCAAiC,0BAAS;AAC1C,gCAAgC,yBAAQ;AACxC,gCAAgC,yBAAQ;AACxC,MAAM,yBAAc;AACpB;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,wBAAwB,wBAAQ;AAChC,0BAA0B,wBAAQ;AAClC,gCAAgC,wBAAQ;AACxC,6BAA6B,wBAAQ;AACrC,4BAA4B,wBAAQ;AACpC,2BAA2B,wBAAQ;AACnC,0BAA0B,wBAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA,2BAA2B,yDAAyD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mFAAmF;AAC1H;AACA;AACA;AACA,mIAAmI;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4DAA4D,OAAO,kCAAkC;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,wEAAwE;AACxE;AACA;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,kCAAkC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iGAAiG;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAQ,uDAAuD,EAAE,cAAc,EAAE,eAAe,OAAO;AAC/H;AACA,uBAAuB,OAAO;AAC9B,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sCAAsC;AACrE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,MAAM,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAc;AACjC;AACA;AACA;AACA;AACA,kBAAkB,UAAU,MAAM,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,UAAU,cAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,MAAM,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,IAAI,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,KAAK,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,IAAI,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU,KAAK,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB,GAAG,kBAAkB;AAC1D;AACA,kBAAkB,UAAU,KAAK,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA,uCAAuC,2HAA2H;AAClK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,yCAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1gDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/EY;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,0BAA0B,mBAAO,CAAC,KAAuC;AACzE,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,gGAAgG;AACpG;AACA,CAAC;;;;;;;;;ACTY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,wBAAwB;AAC3G,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,eAAe,mBAAO,CAAC,IAAyB;AAChD,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,GAAG,QAAQ;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,gDAAgD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,GAAG,aAAa,mBAAmB,kDAAkD,EAAE;AAC5M;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,EAAE,oEAAoE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,gBAAgB;AAC5B,qEAAqE,cAAc,GAAG,sBAAsB;AAC5G;AACA;AACA,YAAY,MAAM;AAClB,6CAA6C,KAAK;AAClD;AACA,iEAAiE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK;AACxJ,gEAAgE,wBAAwB;AACxF;AACA,KAAK;AACL;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,qEAAqE,cAAc,IAAI,qDAAqD;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ,IAAI,eAAe;AAC9F;AACA;AACA;AACA;AACA,oCAAoC,QAAQ,8BAA8B,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;;;;;;AC3Ha;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAwB;AACnD,eAAe,mBAAO,CAAC,KAAS;AAChC,eAAe,mBAAO,CAAC,KAAoB;AAC3C,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACrDA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxHD;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAyB,CAAC,0BAAY,EAAE,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACvE,MAAM,KAAK,EAIN;AACL,CAAC;AACD;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,MAAM,aAAa,KAAK;AACxC;AACA,yBAAyB,KAAK,EAAE,KAAK;AACrC;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,6FAA6F;AAC7F,gBAAgB,MAAM;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,cAAc;AACd;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,gCAAgC,sBAAsB;AACtD,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,sBAAsB;AACtB,8DAA8D,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,yBAAyB;AACzB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACrVD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB,oBAAoB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;;;;;;;;;AC3IhB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAwB;AACnD,eAAe,mBAAO,CAAC,IAAS;AAChC,eAAe,mBAAO,CAAC,KAAoB;AAC3C,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACrDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1Ba;AACb,0BAA0B,mBAAO,CAAC,KAAqC;;AAEvE;;AAEA;AACA;AACA;AACA,kFAAkF;AAClF;;;;;;;;;ACTa;;AAEb,YAAY,mBAAO,CAAC,IAAS;AAC7B,WAAW,mBAAO,CAAC,KAAgB;AACnC,YAAY,mBAAO,CAAC,KAAc;AAClC,kBAAkB,mBAAO,CAAC,KAAoB;AAC9C,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,KAAiB;AACxC,oBAAoB,mBAAO,CAAC,IAAsB;AAClD,iBAAiB,mBAAO,CAAC,KAAmB;;AAE5C;AACA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,KAAkB;;AAEzC;AACA,qBAAqB,mBAAO,CAAC,KAAwB;;AAErD;;AAEA;AACA,yBAAsB;;;;;;;;;;;;;;;;;;;;;ACvDtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,8BAA8B;AAC9B,qBAAqB;AACrB,+BAA+B;AAC/B,gCAAgC;AAChC,uBAAuB;AACvB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK,IAAI,MAAM,EAAE,YAAY,UAAU,SAAS;AAC1E,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU,EAAE,6BAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB,EAAE,qBAAqB;AACxD;AACA;AACA;AACA,wCAAwC,IAAI,EAAE,KAAK,OAAO,IAAI,EAAE,IAAI,EAAE,KAAK;AAC3E;AACO;AACP;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAW,KAAK,eAAe,MAAM,sDAAW;AACvE;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,UAAU,IAAI,oBAAoB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB,IAAI,aAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,IAAI,aAAa;AAC/C,eAAe,eAAe,EAAE,aAAa;AAC7C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU,IAAI,iBAAiB;AACzE;AACA;AACA;AACA,4CAA4C,UAAU,IAAI,oBAAoB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA,+BAA+B,OAAO,IAAI,KAAK,OAAO,OAAO,EAAE,KAAK;AACpE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI,EAAE,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAW;AACnC;AACA;AACA;AACA;AACA,iBAAiB,sDAAW;AAC5B,CAAC;AACM;AACP;AACA;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK,GAAG,aAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI,EAAE,kCAAkC;AAC1D,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACh3CP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,yBAAyB,kCAAkC,EAAE,gCAAgC,IAAI,2BAA2B,GAAG,yBAAyB;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAwC;AACpE,4BAA4B,oDAAoD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Va;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,oBAAoB,GAAG,YAAY,GAAG,eAAe,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,cAAc;AACzb,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,IAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA,+BAA+B,aAAa,EAAE,WAAW,EAAE,oCAAoC;AAC/F;AACA,sBAAsB;AACtB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,8BAA8B,qDAAqD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kEAAkE,IAAI,cAAc,MAAM;AAC1F,uCAAuC,MAAM,gFAAgF,IAAI,KAAK,0CAA0C,GAAG,IAAI,KAAK;AAC5L,SAAS;AACT,mEAAmE,IAAI;AACvE;AACA;AACA;AACA;AACA,mDAAmD,IAAI,KAAK;AAC5D;AACA;AACA,SAAS;AACT,6DAA6D,gBAAgB;AAC7E;AACA,KAAK;AACL;AACA,kEAAkE,IAAI,cAAc,MAAM,yDAAyD,MAAM,oBAAoB,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AAC5M,mEAAmE,IAAI,2EAA2E,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AACjL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,kEAAkE,MAAM,EAAE,8BAA8B;AACxG;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,CAAC,WAAW,YAAY,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,6CAA6C,UAAU;AACvD;AACA,4CAA4C,SAAS;AACrD,4CAA4C,SAAS,6CAA6C;AAClG;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;ACjLa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM,kBAAkB,KAAK;AAC7F;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,QAAQ,IAAI;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,uDAAuD,MAAM,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;AACwC;AACI;AACM;AACU;AACb;AACN;AAClC;AACP;AACA,+BAA+B,kEAAa,sFAAsF,8DAAY;AAC9I;AACA,2BAA2B,kEAAa,6FAA6F,8DAAY;AACjJ;AACO;AACP,qCAAqC,kEAAa,2EAA2E,8DAAY;AACzI;AACO;AACP;AACA,2BAA2B,kEAAa,uLAAuL,8DAAY;AAC3O;AACA,mEAAe;AACf;AACA;AACA;AACA;AACA,IAAI,iBAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2BAA2B,kEAAa,8LAA8L,8DAAY;AAClP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAe;AACrC,2BAA2B,kEAAa;AACxC;AACA;AACA,KAAK,+CAA+C,8DAAY;AAChE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAe;AACrC,2BAA2B,kEAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C,8DAAY;AAChE;AACO,sBAAsB,8DAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gEAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gEAAS;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;AC1RA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AAC4D;AACI;AACzD,gDAAgD,EAAE,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,MAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2EAAU;AACrC;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA,iBAAiB,uEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;AAC8D;AACc;AAC9B;AAC6F;AAC1D;AACI;AACpB;AACjE,uBAAuB,iGAAa,4BAA4B,OAAO,+FAAW,CAAC,yGAAyB,cAAc,+FAAW,CAAC,yGAAyB,qCAAqC,EAAE,2DAAQ;AAC9M,iGAAa,4CAA4C,MAAM,8FAAc,SAAS,8FAAc,UAAU,8FAAc,WAAW,8FAAc,EAAE,EAAE,2DAAQ;AAC1J,4BAA4B,8FAAY,qBAAqB,sEAAO,cAAc,2DAAQ;AAC1F,6BAA6B,8FAAY,sBAAsB,sEAAO,eAAe,2DAAQ;AAC7F,mCAAmC,8FAAY,mDAAmD,2DAAQ;AAC1G,kCAAkC,8FAAY,iDAAiD,2DAAQ;AAC9G,kCAAkC,OAAO,kGAAgB;AACzD,kBAAkB,2DAAQ;AAC1B,iBAAiB,2DAAQ;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wFAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C,CAAC;AACD,oEAAoE,wFAAsB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C,CAAC;AACD,iEAAiE,wFAAsB;AACvF;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C,CAAC;AACD,6EAA6E,wFAAsB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C,CAAC;AACD,mEAAmE,wFAAsB;AACzF;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+EAA+E,wFAAsB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uDAAuD,wFAAsB;AAC7E;AACA;AACA;AACA,2DAA2D,yEAAS;AACpE;AACA,CAAC;AACD,iEAAiE,wFAAsB;AACvF;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C;AACA,CAAC;AACD,gEAAgE,wFAAsB;AACtF;AACA;AACA;AACA,2DAA2D,yEAAS;AACpE;AACA,CAAC;AACD,0EAA0E,wFAAsB;AAChG;AACA;AACA;AACA,kCAAkC,yEAAS;AAC3C;AACA,CAAC;AACD,kEAAkE,wFAAsB;AACxF;AACA;AACA;AACA,CAAC;AACD,oDAAoD,wFAAsB;AAC1E;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IqD;AACjB;AACA;AACrC;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAO,GAAG,sBAAsB;AACxD,+BAA+B,2BAAM;AACrC;AACA;AACA,wBAAwB,uBAAO,GAAG,sBAAsB;AACxD,+BAA+B,2BAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA,mBAAmB,2BAAM;AACzB;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;;;ACtGA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC2G;AACzB;AACjC;AAC2E;AACe;AAC1F;AACmD;AAC1C;AACG;AAChB;AACA;AACuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA,8BAA8B,0BAAS,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC,iBAAiB;AACjB,6BAA6B,6BAAQ;AACrC,gBAAgB,gCAAW;AAC3B;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA,gDAAgD,IAAI,gCAAW,wBAAwB;AACvF,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAAQ;AACrC;AACA,2DAA2D,qDAAqD;AAChH,2DAA2D,WAAW;AACtE;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,kCAAkC,gCAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kDAAkD,qDAAqD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAAQ,uCAAuC,UAAU,kBAAkB;AACnG,iCAAiC,cAAc;AAC/C,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAAS;AACvC,sDAAsD,SAAS;AAC/D;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,wBAAwB,wBAAO;AAC/B,4BAA4B,sBAAK,WAAW,uCAAuC;AACnF;AACA;AACA,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAY;AAC5B,sCAAsC,qCAAmB,sBAAsB,gBAAgB;AAC/F;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA,aAAa,wBAAO;AACpB;AACA;AACA,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA,gBAAgB,6BAAY;AAC5B;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA,wBAAwB,iCAAY,YAAY,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAAc;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,4BAAO;AACnB,iBAAiB,4BAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAAO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iEAAiE,8BAAS;AAC1E;AACA,2BAA2B,8BAAS;AACpC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,sCAAiB,iBAAiB,2BAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2BAAM;AACxD,kBAAkB,8BAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAO;AAC9C;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,uBAAuB,uBAAO;AACnF,uCAAuC,gCAAW,WAAW,mBAAK;AAClE;AACA;AACA;AACA,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sCAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA,wDAAwD,8BAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+FAA+F,8BAAS;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,oBAAoB,4BAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B,4BAA4B;AAC5B,iCAAiC;AACjC;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,wBAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,iEAAiE,kEAAkE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,uEAAuE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAgB;AACtD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAK;AAChC;AACA;AACA,8CAA8C,uBAAuB,IAAI;AACzE,gEAAgE;AAChE,sEAAsE,uBAAuB,IAAI,wBAAwB;AACzH;AACA;AACA;AACA;AACA,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA,yBAAyB,2BAAM;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD,oDAAoD;AACxG,qDAAqD,mCAAkB;AACvE;AACA;AACA,SAAS;AACT;AACA,+EAA+E;AAC/E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,2CAA2C,8DAA8D;AACzG;AACA,SAAS;AACT;AACA;AACA,eAAe,yBAAG,kBAAkB,YAAY,IAAI,sBAAsB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA;AACA,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAY,uBAAuB,sBAAsB;AACrF;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,+BAAS;AAC3B;AACA;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA,iCAAiC,qCAAiB;AAClD;AACA;AACA,kBAAkB,+BAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAiB,qBAAqB,4BAAO;AACpE,4BAA4B,2BAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAO;AACvB;AACA;AACA;AACA;AACA;AACA,6BAA6B,qCAAiB;AAC9C;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA,6BAA6B,qCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAW;AACtE;AACA,oBAAoB,sCAAiB;AACrC;AACA;AACA,oBAAoB,wBAAO;AAC3B;AACA;AACA;AACA;AACA,iEAAiE,kCAAkC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gCAAgC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,iBAAiB,0BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,4BAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAAM;AAC3B;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAAO;AACtC;AACA;AACA,YAAY,wBAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD,wBAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA,wCAAwC,wBAAO;AAC/C,oHAAoH,4BAAO;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,4BAAO;AACtF,+BAA+B,4BAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA;AACA,2BAA2B,4BAAO;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAO;AACtB;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA,mCAAmC,2BAAM;AACzC,4BAA4B,YAAY;AACxC,yBAAyB;AACzB;AACA;AACA;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,CAAC,gCAAW,OAAO,uBAAO;AACnE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA,+EAA+E,WAAW;AAC1F,gCAAgC,2BAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,CAAC,gCAAW,MAAM,uBAAO;AAC1D;AACA;AACA,oBAAoB,aAAa,CAAC,gCAAW,MAAM,uBAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,8BAA8B,8BAAS;AACvC,sDAAsD,SAAS;AAC/D;AACA;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA,wBAAwB,wBAAO;AAC/B,sCAAsC,gCAAW,SAAS,sBAAK;AAC/D;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA,gBAAgB,6BAAY;AAC5B,sCAAsC,qCAAmB,sBAAsB,gBAAgB;AAC/F;AACA,oBAAoB,6BAAY;AAChC;AACA;AACA;AACA,aAAa,wBAAO;AACpB,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA,gBAAgB,6BAAY;AAC5B;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA;AACA,6BAA6B,gCAAW,UAAU,+BAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA,gCAAgC,wBAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,eAAe,4BAAO;AACtB;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,qCAAqC;AACrC,gCAAgC;AAChC;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,+DAA+D,WAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA,uCAAuC,2BAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAAM;AAC9B,wBAAwB,2BAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,4BAAO,GAAG,6HAA6H;AAC/I;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,4BAAO,GAAG,oDAAoD;AACtE;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;;;;;;;;AC12EpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AAC6D;AACI;AACX;AACE;AAC4C;AACtC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,uBAAuB,+BAA+B;AACtD;AACO;AACP,kBAAkB,yBAAyB;AAC3C;AACO;AACP,kBAAkB,yBAAyB,IAAI,gBAAgB;AAC/D;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sCAAsC,4BAAO;AAC7C;AACA,6BAA6B;AAC7B,sCAAsC;AACtC;AACA;AACA;AACA,oCAAoC;AACpC;AACA,iCAAiC,sEAAsE,SAAS,UAAU,GAAG;AAC7H;AACA;AACA;AACA;AACA,+DAA+D,EAAE,4BAA4B,EAAE,WAAW,EAAE,gBAAgB,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,EAAE,MAAM,+BAA+B;AAChH;AACA;AACA;AACA,wBAAiB;AACV;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAK;AACvB,kBAAkB,mBAAK;AACvB;AACA;AACA,kBAAkB,8BAAW;AAC7B;AACA;AACO;AACP,aAAa;AACb;AACO;AACP,aAAa;AACb;AACO;AACP,aAAa;AACb;AACO;AACP,aAAa;AACb;AACO;AACP,aAAa;AACb;AACO;AACP,aAAa;AACb;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAK;AACxB;AACA;AACA;AACA,mCAAmC,mBAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,uBAAuB,wBAAiB,IAAI,0CAAc;AAC1D;AACA,oBAAoB,qCAAgB;AACpC;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;AClLA;AACA;AACA;AACA;AAC0C;AAC1C;AACyD;AACK;AACvD,mBAAmB,aAAa,iBAAiB,0EAA0E,EAAE,oBAAY;AACzI,2BAA2B,aAAa,yBAAyB,8EAA8E,EAAE,oBAAY;AAC7J,wBAAwB,aAAa,sBAAsB,0EAA0E,EAAE,oBAAY;AACnJ,8BAA8B,aAAa,4BAA4B,wBAAwB,WAAW,2BAA2B,WAAW,4BAA4B,WAAW,mBAAmB,EAAE,oBAAY;AACxN,uBAAuB,aAAa,sBAAsB,0EAA0E,EAAE,oBAAY;AAClJ,oBAAoB,aAAa,kBAAkB,0EAA0E,EAAE,oBAAY;AAC3I,uBAAuB,aAAa,qBAAqB,gEAAgE,EAAE,oBAAY;AACvI,6BAA6B,aAAa,2BAA2B,oEAAoE,EAAE,oBAAY;AACvJ,4BAA4B,aAAa,2BAA2B,sDAAsD,EAAE,oBAAY;AAC/I;AACO,2BAA2B,aAAa,0BAA0B,0EAA0E,EAAE,oBAAY;AAC1J,iCAAiC,aAAa,gCAAgC,0EAA0E,EAAE,oBAAY;AACtK,gCAAgC,aAAa,+BAA+B,+CAA+C,mBAAK,4BAA4B,EAAE,oBAAY;AACjL;AACO,gCAAgC,aAAa,+BAA+B,0EAA0E,EAAE,oBAAY;AACpK,gCAAgC,aAAa,+BAA+B,8EAA8E,EAAE,oBAAY;AAC/K;AACO,iCAAiC,aAAa,gCAAgC,qEAAqE,EAAE,oBAAY;AACjK,6BAA6B,aAAa,4BAA4B,+CAA+C,mBAAK,4BAA4B,EAAE,oBAAY;AAC3K;AACO,gCAAgC,aAAa,+BAA+B,+CAA+C,mBAAK,4BAA4B,EAAE,oBAAY;;;AC5BjL;AACA;AACA;AACA;AAC0C;AAC1C;AACyD;AACK;AAC9D;AAC8D;AAC9D;AACO,wBAAwB,aAAa,uBAAuB,MAAM,WAAW,SAAS,WAAW,UAAU,WAAW,WAAW,WAAW,EAAE,EAAE,oBAAY;AACnK;AACO,wBAAwB,aAAa,uBAAuB,2CAA2C,mBAAK,4BAA4B,EAAE,oBAAY;AACtJ,wBAAwB,aAAa,uBAAuB,MAAM,mBAAK,+BAA+B,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC9J;AACO,wBAAwB,aAAa,uBAAuB,gEAAgE,EAAE,oBAAY;AAC1I,kCAAkC,aAAa,iCAAiC,MAAM,mBAAK,6CAA6C,mBAAK,8CAA8C,WAAW,CAAC,cAAc,iBAAiB,WAAW,CAAC,cAAc,QAAQ,EAAE,oBAAY;AACtR,uCAAuC,aAAa,sCAAsC,MAAM,mBAAK,6CAA6C,mBAAK,8CAA8C,WAAW,CAAC,cAAc,iBAAiB,WAAW,CAAC,cAAc,QAAQ,EAAE,oBAAY;AAChS,wCAAwC,aAAa,uCAAuC,MAAM,mBAAK,6CAA6C,mBAAK,8CAA8C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACrQ;AACO,8BAA8B,aAAa,6BAA6B,MAAM,mBAAK,4BAA4B,mBAAK,6BAA6B,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;;;ACrB/M;AACA;AACA;AACA;AAC0C;AAC1C;AAC+D;AAC+B;AAC9F;AACmF;AAChB;AACnE;AACO,yBAAyB,aAAa,wBAAwB,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC1J,yBAAyB,aAAa,wBAAwB,2CAA2C,mBAAK,iBAAiB,UAAU,EAAE,EAAE,oBAAY;AACzJ,qCAAqC,aAAa,oCAAoC,sGAAsG,EAAE,oBAAY;AAC1M,0CAA0C,aAAa,yCAAyC,0DAA0D,mBAAK,sCAAsC,EAAE,oBAAY;AACnN,iCAAiC,aAAa,gCAAgC,iCAAiC,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACtK,iCAAiC,aAAa,gCAAgC,MAAM,eAAe,SAAS,eAAe,UAAU,eAAe,WAAW,eAAe,EAAE,EAAE,oBAAY;AAC9L,+BAA+B,aAAa,8BAA8B,+DAA+D,mBAAK,QAAQ,EAAE,oBAAY;AACpK,+BAA+B,aAAa,8BAA8B,MAAM,UAAU,SAAS,UAAU,UAAU,UAAU,WAAW,UAAU,EAAE,EAAE,oBAAY;AACtK,2BAA2B,aAAa,0BAA0B,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACpK,iCAAiC,aAAa,gCAAgC,sDAAsD,EAAE,oBAAY;AAClJ,8BAA8B,aAAa,6BAA6B,sDAAsD,EAAE,oBAAY;AAC5I,8BAA8B,aAAa,6BAA6B,0EAA0E,EAAE,oBAAY;AAChK,0BAA0B,aAAa,yBAAyB,iCAAiC,mBAAK,0DAA0D,EAAE,oBAAY;AAC9K,gCAAgC,aAAa,+BAA+B,sDAAsD,EAAE,oBAAY;AAChJ,gCAAgC,aAAa,+BAA+B,0EAA0E,EAAE,oBAAY;AACpK,4BAA4B,aAAa,2BAA2B,iCAAiC,mBAAK,+CAA+C,mBAAK,sCAAsC,EAAE,oBAAY;AAClN,6BAA6B,aAAa,4BAA4B,sDAAsD,EAAE,oBAAY;AAC1I,6BAA6B,aAAa,4BAA4B,0EAA0E,EAAE,oBAAY;AAC9J,yBAAyB,aAAa,wBAAwB,iCAAiC,mBAAK,0DAA0D,EAAE,oBAAY;AAC5K,6BAA6B,aAAa,4BAA4B,MAAM,mBAAK,qFAAqF,EAAE,oBAAY;AACpL,yBAAyB,aAAa,wBAAwB,iCAAiC,mBAAK,0DAA0D,EAAE,oBAAY;AAC5K,mCAAmC,aAAa,kCAAkC,wBAAwB,mBAAK,eAAe,mBAAK,2BAA2B,EAAE,oBAAY;AACnL;AACO,kCAAkC,aAAa,iCAAiC,0EAA0E,EAAE,oBAAY;AACxK,kCAAkC,aAAa,iCAAiC,qDAAqD,mBAAK,QAAQ,EAAE,oBAAY;AAChK,gCAAgC,aAAa,yCAAyC,OAAO,WAAW,wCAAwC,WAAW,0CAA0C,WAAW,2CAA2C,WAAW,kCAAkC,EAAE,oBAAY;AACtT,iCAAiC,aAAa,0CAA0C,OAAO,aAAa,+DAA+D,aAAa,sFAAsF,EAAE,oBAAY;AAC5R,uCAAuC,aAAa,sCAAsC,iCAAiC,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AACrM;AACO,wBAAwB,aAAa,iCAAiC,gEAAgE,EAAE,oBAAY;AACpJ,kCAAkC,aAAa,iCAAiC,sDAAsD,EAAE,oBAAY;AACpJ,iCAAiC,aAAa,0CAA0C,oEAAoE,EAAE,oBAAY;AAC1K,2CAA2C,aAAa,0CAA0C,sDAAsD,EAAE,oBAAY;AACtK,iCAAiC,aAAa,0CAA0C,oEAAoE,EAAE,oBAAY;AAC1K,8BAA8B,aAAa,6BAA6B,iCAAiC,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AAC5K,uCAAuC,aAAa,sCAAsC,iCAAiC,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AAC9L,uCAAuC,aAAa,sCAAsC,iCAAiC,WAAW,CAAC,oBAAoB,iBAAiB,WAAW,CAAC,oBAAoB,QAAQ,EAAE,oBAAY;AACzO;AACO,6BAA6B,aAAa,sCAAsC,2EAA2E,EAAE,oBAAY;AACzK,8BAA8B,aAAa,mCAAmC,8HAA8H,EAAE,oBAAY;AAC1N,8BAA8B,aAAa,mCAAmC,8HAA8H,EAAE,oBAAY;AAC1N,0BAA0B,aAAa,+BAA+B,8GAA8G,EAAE,oBAAY;AAClM,uCAAuC,aAAa,4CAA4C,MAAM,OAAO,qCAAqC,MAAM,gGAAgG,EAAE,oBAAY;AAC7Q;AACO,kCAAkC,aAAa,iCAAiC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC5K,kCAAkC,aAAa,iCAAiC,MAAM,WAAW,CAAC,eAAe,eAAe,WAAW,CAAC,eAAe,gBAAgB,WAAW,CAAC,mBAAK,uBAAuB,WAAW,CAAC,eAAe,QAAQ,EAAE,oBAAY;AACpQ,sCAAsC,aAAa,qCAAqC,0IAA0I,EAAE,oBAAY;AAChP,sCAAsC,aAAa,qCAAqC,0IAA0I,EAAE,oBAAY;AAChP,2CAA2C,aAAa,0CAA0C,0IAA0I,EAAE,oBAAY;AAC1P,2CAA2C,aAAa,0CAA0C,0IAA0I,EAAE,oBAAY;AACjQ;AACO,kCAAkC,aAAa,iCAAiC,0EAA0E,EAAE,oBAAY;AACxK,yCAAyC,aAAa,wCAAwC,0EAA0E,EAAE,oBAAY;AACtL,oCAAoC,aAAa,mCAAmC,0IAA0I,EAAE,oBAAY;AACnP;AACO,0CAA0C,aAAa,+CAA+C,UAAU,mBAAK,KAAK,kBAAI,kCAAkC,mBAAK,KAAK,kBAAI,iCAAiC,mBAAK,KAAK,kBAAI,oCAAoC,mBAAK,KAAK,kBAAI,qBAAqB,EAAE,oBAAY;AAClT,sCAAsC,aAAa,2CAA2C,sDAAsD,EAAE,oBAAY;AAClK,+CAA+C,aAAa,oDAAoD,sDAAsD,EAAE,oBAAY;AACpL,2CAA2C,aAAa,gDAAgD,4BAA4B,mBAAK,KAAK,kBAAI,4DAA4D,EAAE,oBAAY;AACnO;AACO,+BAA+B,mBAAK,KAAK,kBAAI;AAC7C,+BAA+B,mBAAK,KAAK,kBAAI;AAC7C,qBAAqB,aAAa,wCAAwC,oEAAoE,EAAE,oBAAY;AAC5J,oBAAoB,aAAa,uCAAuC,oEAAoE,EAAE,oBAAY;AAC1J,yBAAyB,aAAa,wCAAwC,kFAAkF,EAAE,oBAAY;AAC9K,wBAAwB,aAAa,uCAAuC,kFAAkF,EAAE,oBAAY;AAC5K,+BAA+B,aAAa,8CAA8C,sDAAsD,EAAE,oBAAY;AAC9J,8BAA8B,aAAa,6CAA6C,sDAAsD,EAAE,oBAAY;AAC5J,kCAAkC,aAAa,4CAA4C,sDAAsD,EAAE,oBAAY;AAC/J,iCAAiC,aAAa,2CAA2C,sDAAsD,EAAE,oBAAY;AAC7J,4BAA4B,aAAa,oCAAoC,kEAAkE,EAAE,oBAAY;AAC7J,2BAA2B,aAAa,mCAAmC,gEAAgE,EAAE,oBAAY;AACzJ,mBAAmB,aAAa,wBAAwB,iCAAiC,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAChJ,yBAAyB,aAAa,8BAA8B,oEAAoE,EAAE,oBAAY;AACtJ,sCAAsC,aAAa,2CAA2C,sHAAsH,EAAE,oBAAY;AAClO,sCAAsC,aAAa,2CAA2C,sFAAsF,EAAE,oBAAY;AAClM,oCAAoC,aAAa,yCAAyC,oEAAoE,EAAE,oBAAY;AACnL;AACO,qBAAqB,aAAa,oBAAoB,MAAM,WAAW,CAAC,mBAAK,qBAAqB,WAAW,CAAC,mBAAK,2CAA2C,EAAE,oBAAY;AAC5K,qBAAqB,aAAa,oBAAoB,iCAAiC,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACrJ;AACO,+BAA+B,aAAa,8BAA8B,oEAAoE,EAAE,oBAAY;AAC5J,4BAA4B,aAAa,2BAA2B,iCAAiC,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AACxK,gCAAgC,aAAa,+BAA+B,MAAM,OAAO,sCAAsC,MAAM,4DAA4D,EAAE,oBAAY;AACtN;AACO,8BAA8B,aAAa,4BAA4B,OAAO,WAAW,CAAC,UAAU,cAAc,WAAW,CAAC,UAAU,gBAAgB,WAAW,CAAC,UAAU,iBAAiB,WAAW,CAAC,UAAU,QAAQ,EAAE,oBAAY;AAC3O,8BAA8B,aAAa,4BAA4B,sGAAsG,EAAE,oBAAY;AAC3L,mCAAmC,aAAa,iCAAiC,OAAO,MAAM,CAAC,UAAU,cAAc,OAAO,CAAC,UAAU,gBAAgB,OAAO,CAAC,UAAU,iBAAiB,OAAO,CAAC,UAAU,QAAQ,EAAE,oBAAY;AACpO,6CAA6C,aAAa,2CAA2C,OAAO,MAAM,CAAC,UAAU,cAAc,OAAO,CAAC,UAAU,gBAAgB,OAAO,CAAC,UAAU,iBAAiB,OAAO,CAAC,UAAU,QAAQ,EAAE,oBAAY;AACxP,oCAAoC,aAAa,kCAAkC,8HAA8H,EAAE,oBAAY;AACtO;AACA;AACA,yBAAyB,mBAAK;AAC9B,0BAA0B,mBAAK;AAC/B,wBAAwB,mBAAK;AAC7B;AACA;AACO,qCAAqC,aAAa,oCAAoC,8EAA8E,EAAE,oBAAY;AAClL,sCAAsC,aAAa,qCAAqC,MAAM,WAAW,4DAA4D,WAAW,6DAA6D,WAAW,8DAA8D,WAAW,qDAAqD,EAAE,oBAAY;AACpY,sCAAsC,aAAa,qCAAqC,gFAAgF,EAAE,oBAAY;AACtL,uCAAuC,aAAa,sCAAsC,MAAM,WAAW,6DAA6D,WAAW,8DAA8D,WAAW,+DAA+D,WAAW,sDAAsD,EAAE,oBAAY;AAC1Y,oCAAoC,aAAa,mCAAmC,4EAA4E,EAAE,oBAAY;AAC9K,qCAAqC,aAAa,oCAAoC,MAAM,WAAW,2DAA2D,WAAW,4DAA4D,WAAW,6DAA6D,WAAW,oDAAoD,EAAE,oBAAY;AAC9X,oBAAoB,aAAa,mBAAmB,gEAAgE,EAAE,oBAAY;AAClI,8CAA8C,aAAa,mDAAmD,MAAM,WAAW,0DAA0D,WAAW,8FAA8F,EAAE,oBAAY;AAChT,+CAA+C,aAAa,oDAAoD,MAAM,WAAW,2DAA2D,WAAW,+FAA+F,EAAE,oBAAY;AACpT,6CAA6C,aAAa,kDAAkD,MAAM,WAAW,yDAAyD,WAAW,6FAA6F,EAAE,oBAAY;AAC5S,yCAAyC,aAAa,8CAA8C,uEAAuE,EAAE,oBAAY;AACzL,kDAAkD,aAAa,uDAAuD,kFAAkF,EAAE,oBAAY;AAC7N;AACO,oCAAoC,aAAa,mCAAmC,0HAA0H,EAAE,oBAAY;AAC5N,sCAAsC,aAAa,qCAAqC,kIAAkI,EAAE,oBAAY;AACxO,mCAAmC,aAAa,kCAAkC,sHAAsH,EAAE,oBAAY;;;AC5H7N;AACA;AACA;AACA;AAC0C;AAC1C;AAC+D;AACD;AAC9D;AACyH;AACI;AACtH,yBAAyB,aAAa,iCAAiC,0EAA0E,EAAE,oBAAY;AAC/J,4CAA4C,aAAa,2CAA2C,0EAA0E,EAAE,oBAAY;AAC5L,yBAAyB,aAAa,iCAAiC,0EAA0E,EAAE,oBAAY;AAC/J,oBAAoB,aAAa,4BAA4B,MAAM,oBAAoB,SAAS,oBAAoB,UAAU,gBAAgB,WAAW,gBAAgB,EAAE,EAAE,oBAAY;AACzL,uBAAuB,aAAa,+BAA+B,MAAM,uBAAuB,SAAS,uBAAuB,UAAU,mBAAmB,WAAW,mBAAmB,EAAE,EAAE,oBAAY;AAC3M,qBAAqB,aAAa,6BAA6B,UAAU,mBAAK,KAAK,kBAAI,gCAAgC,mBAAK,KAAK,kBAAI,iCAAiC,mBAAK,KAAK,kBAAI,uCAAuC,EAAE,oBAAY;AACzO,0BAA0B,aAAa,yBAAyB,sDAAsD,EAAE,oBAAY;AACpI,iCAAiC,aAAa,gCAAgC,MAAM,mBAAK,0BAA0B,mBAAK,2BAA2B,mBAAK,4BAA4B,mBAAK,mBAAmB,EAAE,oBAAY;AAC1N,gCAAgC,aAAa,+BAA+B,OAAO,WAAW,CAAC,yBAAyB,cAAc,WAAW,CAAC,yBAAyB,gBAAgB,WAAW,CAAC,yBAAyB,iBAAiB,WAAW,CAAC,yBAAyB,QAAQ,EAAE,oBAAY;AAC5S,qCAAqC,aAAa,oCAAoC,OAAO,WAAW,CAAC,8BAA8B,cAAc,WAAW,CAAC,8BAA8B,gBAAgB,WAAW,CAAC,8BAA8B,iBAAiB,WAAW,CAAC,8BAA8B,QAAQ,EAAE,oBAAY;AAC1U,sCAAsC,aAAa,qCAAqC,OAAO,WAAW,CAAC,+BAA+B,cAAc,WAAW,CAAC,+BAA+B,gBAAgB,WAAW,CAAC,+BAA+B,iBAAiB,WAAW,CAAC,+BAA+B,QAAQ,EAAE,oBAAY;;;ACrBvV;AACA;AACA;AACA;AAC0C;AACoB;AACjB;AAC4D;AACnD;AAC/C,yBAAyB,aAAa,wBAAwB,MAAM,UAAU,SAAS,UAAU,UAAU,UAAU,WAAW,UAAU,EAAE,EAAE,oBAAY;AAC1J,oBAAoB,aAAa,mBAAmB,MAAM,WAAW,CAAC,UAAU,cAAc,WAAW,CAAC,UAAU,eAAe,WAAW,CAAC,UAAU,gBAAgB,WAAW,CAAC,UAAU,OAAO,EAAE,oBAAY;AACpN,kBAAkB,aAAa,iBAAiB,MAAM,qBAAqB,SAAS,qBAAqB,UAAU,qBAAqB,WAAW,qBAAqB,EAAE,EAAE,oBAAY;AACxL,mBAAmB,aAAa,kBAAkB,MAAM,oBAAoB,SAAS,oBAAoB,UAAU,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AACtL,qBAAqB,aAAa,oBAAoB,MAAM,uBAAuB,SAAS,uBAAuB,UAAU,uBAAuB,WAAW,uBAAuB,EAAE,EAAE,oBAAY;AACtM,qBAAqB,aAAa,oBAAoB,MAAM,gBAAgB,SAAS,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,EAAE,EAAE,oBAAY;AAC1K,oBAAoB,aAAa,mBAAmB,0EAA0E,EAAE,oBAAY;AAC5I,qBAAqB,aAAa,oBAAoB,0EAA0E,EAAE,oBAAY;;;AChBrJ;AACA;AACA;AACA;AAC0C;AAC1C;AAC+D;AACgB;AAC/E;AAC0F;AAC/B;AAC3D;AACO,wBAAwB,aAAa,uBAAuB,wBAAwB,mBAAK,gBAAgB,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC1J,wBAAwB,aAAa,uBAAuB,MAAM,UAAU,SAAS,UAAU,UAAU,UAAU,WAAW,UAAU,EAAE,EAAE,oBAAY;AACxJ,oBAAoB,aAAa,mBAAmB,iCAAiC,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAC5I,gCAAgC,aAAa,+BAA+B,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAC9K,yCAAyC,aAAa,kCAAkC,oEAAoE,EAAE,oBAAY;AAC1K,oCAAoC,aAAa,mCAAmC,MAAM,WAAW,CAAC,WAAW,eAAe,WAAW,CAAC,WAAW,gBAAgB,mBAAK,uBAAuB,mBAAK,cAAc,EAAE,oBAAY;AACpO,oCAAoC,aAAa,mCAAmC,MAAM,mBAAK,eAAe,mBAAK,gBAAgB,UAAU,WAAW,UAAU,EAAE,EAAE,oBAAY;AAClL,mCAAmC,aAAa,kCAAkC,OAAO,WAAW,CAAC,UAAU,cAAc,WAAW,CAAC,UAAU,gBAAgB,WAAW,CAAC,UAAU,iBAAiB,WAAW,CAAC,UAAU,QAAQ,EAAE,oBAAY;AAC7P;AACO,sCAAsC,aAAa,qCAAqC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AACpL,sCAAsC,aAAa,qCAAqC,gDAAgD,UAAU,EAAE,EAAE,oBAAY;AAClK,kCAAkC,aAAa,iCAAiC,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAClL,yCAAyC,aAAa,wCAAwC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC1L,yCAAyC,aAAa,wCAAwC,gDAAgD,UAAU,EAAE,EAAE,oBAAY;AACxK,qCAAqC,aAAa,oCAAoC,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACxL,uCAAuC,aAAa,sCAAsC,2CAA2C,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AACtL,uCAAuC,aAAa,sCAAsC,gDAAgD,UAAU,EAAE,EAAE,oBAAY;AACpK,mCAAmC,aAAa,kCAAkC,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAC3L;AACO,yBAAyB,aAAa,0BAA0B,wBAAwB,mBAAK,gBAAgB,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC9J,6BAA6B,aAAa,8BAA8B,iCAAiC,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC1J,yBAAyB,aAAa,0BAA0B,wBAAwB,UAAU,UAAU,mBAAK,iBAAiB,UAAU,EAAE,EAAE,oBAAY;AAC5J,qBAAqB,aAAa,sBAAsB,kDAAkD,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACxK;AACO,yBAAyB,aAAa,wBAAwB,MAAM,mBAAK,eAAe,mBAAK,gBAAgB,mBAAK,iBAAiB,mBAAK,QAAQ,EAAE,oBAAY;AAC9J,wBAAwB,aAAa,uBAAuB,MAAM,WAAW,+BAA+B,WAAW,gCAAgC,WAAW,iCAAiC,WAAW,wBAAwB,EAAE,oBAAY;AACpP,yBAAyB,aAAa,wBAAwB,qEAAqE,EAAE,oBAAY;AACjJ,8BAA8B,aAAa,6BAA6B,MAAM,OAAO,gCAAgC,MAAM,8EAA8E,EAAE,oBAAY;AACvN,qBAAqB,aAAa,oBAAoB,MAAM,cAAc,SAAS,cAAc,UAAU,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAClK,kCAAkC,aAAa,iCAAiC,MAAM,mBAAK,eAAe,mBAAK,gBAAgB,mBAAK,iBAAiB,UAAU,EAAE,EAAE,oBAAY;AAC/K,kCAAkC,aAAa,iCAAiC,0DAA0D,mBAAK,QAAQ,EAAE,oBAAY;AACrK,uCAAuC,aAAa,sCAAsC,MAAM,OAAO,yCAAyC,MAAM,+DAA+D,EAAE,oBAAY;AAC1O;AACO,2BAA2B,aAAa,0BAA0B,sGAAsG,EAAE,oBAAY;AACtL,iCAAiC,aAAa,gCAAgC,MAAM,sBAAsB,SAAS,sBAAsB,UAAU,sBAAsB,WAAW,sBAAsB,EAAE,EAAE,oBAAY;AAC1N,2BAA2B,aAAa,0BAA0B,sGAAsG,EAAE,oBAAY;AACtL,uBAAuB,aAAa,sBAAsB,sFAAsF,EAAE,oBAAY;AAC9J,6BAA6B,aAAa,4BAA4B,MAAM,cAAc,SAAS,cAAc,UAAU,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AACzL;AACO,kCAAkC,aAAa,iCAAiC,UAAU,mBAAK,KAAK,kBAAI,mCAAmC,mBAAK,KAAK,kBAAI,+BAA+B,mBAAK,uBAAuB,mBAAK,cAAc,EAAE,oBAAY;AACrP,kCAAkC,aAAa,iCAAiC,MAAM,mBAAK,4BAA4B,mBAAK,6BAA6B,mBAAK,iBAAiB,UAAU,EAAE,EAAE,oBAAY;AACzM,8BAA8B,aAAa,6BAA6B,UAAU,mBAAK,KAAK,kBAAI,+BAA+B,mBAAK,KAAK,kBAAI,mCAAmC,mBAAK,KAAK,kBAAI,2BAA2B,cAAc,EAAE,EAAE,oBAAY;AACvP,oCAAoC,aAAa,mCAAmC,UAAU,mBAAK,KAAK,kBAAI,+BAA+B,mBAAK,KAAK,kBAAI,mCAAmC,mBAAK,KAAK,kBAAI,2BAA2B,UAAU,EAAE,EAAE,oBAAY;;;ACtDtQ;AACA;AACA;AACA;AAC0C;AAC1C;AACyD;AACyC;AAClG;AACgH;AACmB;AAC5H,4BAA4B,aAAa,2BAA2B,sDAAsD,EAAE,oBAAY;AACxI,4BAA4B,aAAa,2BAA2B,sDAAsD,EAAE,oBAAY;AACxI,yBAAyB,aAAa,wBAAwB,MAAM,WAAW,SAAS,WAAW,UAAU,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AAChL,qCAAqC,aAAa,oCAAoC,sDAAsD,EAAE,oBAAY;AAC1J,sCAAsC,aAAa,qCAAqC,0DAA0D,mBAAK,sCAAsC,EAAE,oBAAY;AAC3M,sCAAsC,aAAa,qCAAqC,MAAM,mBAAK,eAAe,mBAAK,qCAAqC,EAAE,oBAAY;AAC1K,0CAA0C,aAAa,yCAAyC,sDAAsD,EAAE,oBAAY;AACpK,wCAAwC,aAAa,uCAAuC,0DAA0D,mBAAK,sCAAsC,EAAE,oBAAY;AAC/M,wCAAwC,aAAa,uCAAuC,sDAAsD,EAAE,oBAAY;AAChK,4CAA4C,aAAa,2CAA2C,sDAAsD,EAAE,oBAAY;AACxK,oCAAoC,aAAa,mCAAmC,sDAAsD,EAAE,oBAAY;AACxJ,iCAAiC,aAAa,gCAAgC,sDAAsD,EAAE,oBAAY;AAClJ,4BAA4B,aAAa,2BAA2B,2CAA2C,mBAAK,kCAAkC,mBAAK,sCAAsC,EAAE,oBAAY;AAC/M,4BAA4B,aAAa,2BAA2B,sDAAsD,EAAE,oBAAY;AACxI,+BAA+B,aAAa,0BAA0B,gEAAgE,EAAE,oBAAY;AACpJ,kCAAkC,aAAa,iCAAiC,MAAM,cAAc,SAAS,cAAc,+BAA+B,EAAE,oBAAY;AACxK,gCAAgC,aAAa,+BAA+B,2CAA2C,WAAW,WAAW,WAAW,EAAE,EAAE,oBAAY;AACxK,qCAAqC,aAAa,oCAAoC,sCAAsC,iBAAiB,wIAAwI,EAAE,oBAAY;AACnS,kCAAkC,aAAa,iCAAiC,0EAA0E,EAAE,oBAAY;AACxK,4BAA4B,aAAa,2BAA2B,gEAAgE,EAAE,oBAAY;AAClJ,8BAA8B,aAAa,6BAA6B,gEAAgE,EAAE,oBAAY;AACtJ,mCAAmC,aAAa,kCAAkC,OAAO,MAAM,CAAC,sBAAsB,YAAY,OAAO,CAAC,sBAAsB,cAAc,sBAAsB,WAAW,sBAAsB,EAAE,EAAE,oBAAY;AACrP,gCAAgC,aAAa,+BAA+B,MAAM,mBAAK,qBAAqB,mBAAK,qDAAqD,EAAE,oBAAY;AACpL,yCAAyC,aAAa,wCAAwC,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAChM,+BAA+B,aAAa,8BAA8B,MAAM,YAAY,SAAS,YAAY,UAAU,YAAY,WAAW,YAAY,EAAE,EAAE,oBAAY;AAC9K,iCAAiC,aAAa,iCAAiC,MAAM,wBAAwB,SAAS,wBAAwB,+BAA+B,EAAE,oBAAY;AAC3L,uCAAuC,aAAa,6BAA6B,MAAM,8BAA8B,SAAS,8BAA8B,UAAU,cAAc,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AACnO,mCAAmC,aAAa,kCAAkC,0EAA0E,EAAE,oBAAY;AACjL;AACO,+BAA+B,aAAa,8BAA8B,0EAA0E,EAAE,oBAAY;AAClK,uCAAuC,aAAa,sCAAsC,MAAM,WAAW,sCAAsC,WAAW,uCAAuC,WAAW,wCAAwC,WAAW,+BAA+B,EAAE,oBAAY;AACrT;AACO,2BAA2B,aAAa,8BAA8B,oEAAoE,EAAE,oBAAY;AACxJ,oCAAoC,aAAa,kCAAkC,MAAM,WAAW,CAAC,UAAU,gBAAgB,WAAW,CAAC,UAAU,sCAAsC,EAAE,oBAAY;;;AC5ChN;AACA;AACA;AACA;AAC0C;AAC1C;AACiD;AACjD;AACuE;AACD;AACyB;AACxF,mBAAmB,aAAa,kBAAkB,iCAAiC,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;AAC1I,uBAAuB,aAAa,sBAAsB,MAAM,gBAAgB,SAAS,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,EAAE,EAAE,oBAAY;AAC9K,uBAAuB,aAAa,sBAAsB,MAAM,gBAAgB,SAAS,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,EAAE,EAAE,oBAAY;AAC9K,gCAAgC,aAAa,+BAA+B,MAAM,6BAA6B,SAAS,6BAA6B,UAAU,6BAA6B,WAAW,6BAA6B,EAAE,EAAE,oBAAY;AACpP,gCAAgC,aAAa,+BAA+B,MAAM,6BAA6B,SAAS,6BAA6B,UAAU,6BAA6B,WAAW,6BAA6B,EAAE,EAAE,oBAAY;AACpP,4BAA4B,aAAa,2BAA2B,iCAAiC,oBAAoB,WAAW,oBAAoB,EAAE,EAAE,oBAAY;AACxK,gCAAgC,aAAa,+BAA+B,2CAA2C,cAAc,WAAW,cAAc,EAAE,EAAE,oBAAY;;;ACjBrL;AACA;AACA;AACA;AAC0C;AAC1C;AAC+D;AACP;AACxD;AACmF;AAC+C;AAC3H,6BAA6B,aAAa,4BAA4B,MAAM,sBAAsB,SAAS,sBAAsB,UAAU,sBAAsB,WAAW,sBAAsB,EAAE,EAAE,oBAAY;AAClN,6BAA6B,aAAa,4BAA4B,MAAM,sBAAsB,SAAS,sBAAsB,UAAU,sBAAsB,WAAW,sBAAsB,EAAE,EAAE,oBAAY;AAClN,kCAAkC,aAAa,iCAAiC,UAAU,mBAAK,KAAK,kBAAI,oCAAoC,mBAAK,KAAK,kBAAI,8CAA8C,mBAAK,QAAQ,EAAE,oBAAY;AACnO,8BAA8B,aAAa,6BAA6B,2CAA2C,mBAAK,4BAA4B,EAAE,oBAAY;AAClK,0BAA0B,aAAa,yBAAyB,2CAA2C,mBAAK,4BAA4B,EAAE,oBAAY;AAC1J,iDAAiD,aAAa,sCAAsC,sDAAsD,iBAAiB,oBAAY;AACvL,sCAAsC,aAAa,qCAAqC,MAAM,6BAA6B,SAAS,6BAA6B,UAAU,6BAA6B,WAAW,6BAA6B,EAAE,EAAE,oBAAY;AAChQ,0CAA0C,aAAa,yCAAyC,MAAM,iCAAiC,SAAS,iCAAiC,UAAU,iCAAiC,WAAW,iCAAiC,EAAE,EAAE,oBAAY;AACxR,sCAAsC,aAAa,qCAAqC,MAAM,KAAK,2CAA2C,6BAA6B,UAAU,KAAK,2CAA2C,6BAA6B,gCAAgC,EAAE,oBAAY;;;ACnBvT;AACA;AACA;AACA;AAC0C;AAC1C;AAC8D;AAC9D;AAC6C;AACgD;AACtF,oCAAoC,aAAa,mCAAmC,OAAO,UAAU,QAAQ,WAAW,CAAC,UAAU,iBAAiB,UAAU,WAAW,UAAU,EAAE,EAAE,oBAAY;AAC1M;AACO,8BAA8B,aAAa,uCAAuC,OAAO,WAAW,CAAC,wBAAwB,eAAe,WAAW,CAAC,wBAAwB,iBAAiB,wBAAwB,WAAW,wBAAwB,EAAE,EAAE,oBAAY;AAC5Q,oCAAoC,aAAa,mCAAmC,OAAO,WAAW,CAAC,8BAA8B,eAAe,WAAW,CAAC,8BAA8B,iBAAiB,8BAA8B,WAAW,8BAA8B,EAAE,EAAE,oBAAY;;;ACb7S;AACA;AACA;AACA;AACgC;AAChC;AACuC;AACE;AACA;AACD;AACD;AACA;AACG;AACH;AACK;AACH;;;;;;;;;;;;;;;;;;;;;ACfzC;AACA;AACA;AACA;AACoC;AAC2B;AACU;AACf;AAC/B;AACmB;AAC9C,UAAU,sCAAK;AACR,0BAA0B,sEAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2FAAoB;AAChE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO,0BAA0B,sEAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,+BAA+B,qDAAU;AACzC;AACA,sBAAsB,qDAAU;AAChC;AACA;AACA,YAAY,qDAAU,6BAA6B,wBAAwB;AAC3E;AACA,sBAAsB,qDAAU;AAChC,iDAAiD,qBAAqB,GAAG,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0CAA0C,2DAAQ,iEAAiE,EAAE,mCAAmC,2DAAQ;AAChK;AACO,0BAA0B,sEAAU;AAC3C;AACA;AACA,uBAAuB,oEAAyB,YAAY,wDAAa;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,4BAA4B,sEAAU;AAC7C;AACA;AACA,uBAAuB,oEAAyB,YAAY,wDAAa;AACzE,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC0D;AAC2B;AACkB;AACrB;AACA;AACb;AACO;AACO;AAClC;AACqD;AACT;AACf;AACmB;AACX;AACtF;AACA;AACA;AACA;AACA;AACA,+BAA+B,uCAAe;AAC9C;AACA;AACA,+BAA+B,sCAAc;AAC7C;AACA;AACA;AACA;AACA;AACA,+BAA+B,uCAAe;AAC9C;AACA;AACA,+BAA+B,sCAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAiB;AAChC;AACsB;AACtB;AACO;AACP;AACA;AACA;AACA;AACA,+BAA+B,sCAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oCAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAQ;AACvB;AACA;AACA;AACA,eAAe,oCAAkB;AACjC;AACwC;AACjC;AACP;AACA,kCAAkC,oCAAY;AAC9C;AACA;AACA;AACA,kEAAkE,4BAAU;AAC5E;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAAS,WAAW,yBAAyB;AACpF,yBAAyB,4BAAU,CAAC,kBAAU,SAAS,KAAK,eAAe,EAAE,6CAAuB;AACpG;AACA;AACA;AACA,uBAAuB,6BAAO;AAC9B,yHAAyH,gBAAgB,KAAK,6DAA6D;AAC3M;AACA;AACA;AACA,sCAAsC,wBAAQ,sBAAsB,GAAG;AACvE;AACA;AACA,sCAAsC,wBAAQ,qBAAqB,GAAG;AACtE;AACA;AACA;AACA;AACA,eAAe,0BAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAqB;AACpC;AACkC;AAClC;AACA;AACA,mCAAmC,4BAAU;AAC7C;AACA;AACA,wCAAwC,wCAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAAQ,cAAc,GAAG,kCAAkC,GAAG,8BAA8B;AAC1H;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,0BAA0B,0BAAU;AACpC;AACA,sCAAsC,iCAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,wBAAQ;AACvB;AACA;AACA;AACA;AACA;;;;;;;ACxMA;AACA;AACA;AACA;AACA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC0D;AACgC;AAC9B;AACS;AACc;AACnB;AACuB;AACvD;AAC6E;AACpD;AACiC;AACoB;AACxB;AACV;AACO;AAC6F;AAC9G;AACrB;AACyD;AACT;AACf;AACe;AACR;AACE;AAClB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAe;AACjD,sCAAsC,iCAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wCAAsB;AAC7D;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kDAAsB;AACnD;AACA;AACA;AACA;AACA,oDAAoD,+BAAuB;AAC3E;AACA,wBAAwB,sGAAsG;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAe;AACrD,kCAAkC,iCAAe;AACjD,yCAAyC,4BAAO;AAChD;AACA,wBAAwB,qBAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf,QAAQ,6BAAO;AACf,QAAQ,6BAAO;AACf,QAAQ,6BAAO;AACf;AACA;AACA;AACA;AACA,2CAA2C,+BAAuB,KAAK,mBAAK;AAC5E;AACA;AACA;AACA,kDAAkD,wCAAgC,KAAK,mBAAK;AAC5F,gDAAgD,wCAAgC;AAChF,kDAAkD,4CAAoC;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAU,mBAAmB,KAAK;AACnE,QAAQ,gBAAQ;AAChB,8BAA8B,0BAAS,qBAAqB,6CAA6C;AACzG;AACA,iCAAiC,kBAAU,mBAAmB,KAAK;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAwB,qCAAqC;AAC/H,QAAQ,gBAAQ;AAChB,+CAA+C,2BAAS,CAAC,oBAAY,mDAAmD,2CAAqB,EAAE,2BAAS;AACxJ;AACA,8BAA8B,kBAAU,mBAAmB,KAAK;AAChE;AACA;AACA,uCAAuC,qBAAqB;AAC5D,uFAAuF,4BAA4B;AACnH,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA,gCAAgC,0CAAkC;AAClE;AACA;AACA;AACA;AACA,oCAAoC,yCAAiC;AACrE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4HAA4H,QAAQ;AACpI,sDAAsD,sBAAsB;AAC5E,sDAAsD,oBAAoB;AAC1E,qDAAqD,UAAU;AAC/D;AACA;AACA,yBAAyB,0BAAK;AAC9B;AACA;AACA;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA,SAAS,EAAE,uBAAM;AACjB;AACA,yBAAyB,0BAAK;AAC9B;AACA;AACA;AACA;AACA,sDAAsD,iBAAiB;AACvE,qDAAqD,MAAM;AAC3D;AACA;AACA,SAAS,EAAE,uBAAM;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mCAAmC,oCAAY;AAC/C;AACA;AACA;AACA,kDAAkD,+BAA+B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,gBAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAY;AAC3D,YAAY,gBAAQ;AACpB;AACA;AACA,QAAQ,gBAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uCAAuC;AAClE;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,QAAQ,gBAAQ;AAChB,QAAQ,gBAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oCAAY;AAC3C;AACA;AACA,oCAAoC,sCAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAO;AAC5C,0BAA0B,yCAAmB,4CAA4C,6BAAO;AAChG;AACA;AACA,0BAA0B,oBAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yBAAU;AAC5B,IAAI,sBAAO,IAAI,kCAAa;AAC5B,IAAI,sBAAO,IAAI,wCAAiB;AAChC,IAAI,sBAAO,IAAI,2CAAqB;AACpC,IAAI,sBAAO,IAAI,iCAAyB;AACxC,IAAI,sBAAO,IAAI,0BAAa;AAC5B,IAAI,sBAAO,IAAI,iCAAgB;AAC/B,IAAI,sBAAO,IAAI,oCAAkB;AACjC,IAAI,sBAAO,KAAK,gCAAgB;AAChC,IAAI,sBAAO,KAAK,mEAA6B;AAC7C;AAC2B;;;;;;;ACle3B;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC8E;AACL;AACP;AACQ;AACa;AACxB;AACN;AAC2B;AACvC;AAC0C;AACe;AACsB;AACtB;AACC;AAC0E;AAC9E;AACf;AAC/B;AACe;AACQ;AACmB;AACxF,sCAAsC,gCAAa,kCAAkC,oBAAY;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,UAAU,gFAAgF;AAC/G,iEAAiE,eAAe;AAChF,8BAA8B,oBAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA,kDAAkD,oBAAY,kBAAkB,GAAG,EAAE,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAK;AAC3B;AACA;AACA,uBAAuB;AACvB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,gDAAuB;AAC/G;AACA,SAAS;AACT;AACA,YAAY,oCAAiB;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA,uBAAuB;AACvB,SAAS;AACT;AACA;AACA;AACA,gDAAgD,6BAAU;AAC1D,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,2CAAkB;AACjC,IAAI,0BAAO,IAAI,yCAAoB;AACnC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,+BAAe;AAC9B,IAAI,0BAAO,IAAI,2CAAqB;AACpC;AACgC;AAChC;AACA,wBAAwB,mCAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAAmB;AACnB;AACA;AACA,aAAa,6BAAQ;AACrB,UAAU,iCAAc,+BAA+B,4BAAW;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA,UAAU,iCAAc,+BAA+B,4BAAW;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA,UAAU,iCAAc,+BAA+B,4BAAW;AAClE;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA,gCAAgB;AAChB,gCAAgB;AAChB;AACA,gCAAgB;AAChB,gCAAgB;AAChB,8CAAmB;AACnB;AACA;AACA;AACA;AACA,UAAU,iCAAc,KAAK,4BAAW,eAAe,iCAAc;AACrE,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA,UAAU,iCAAc,gCAAgC,iCAAc,kCAAkC,iCAAc,IAAI,0CAAiB,kBAAkB,uCAAmB;AAChL,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,iCAAc,gCAAgC,wDAA4B,EAAE,2DAA+B,WAAW,yDAA6B;AAC7J;AACA;AACA,yCAAyC,wCAAY;AACrD;AACA,wDAAwD,oCAAY;AACpE;AACA;AACA;AACA,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,iCAAc,gCAAgC,wDAA4B,EAAE,2DAA+B,WAAW,yDAA6B;AAC7J;AACA;AACA,yCAAyC,wCAAY;AACrD;AACA,wDAAwD,oCAAY;AACpE;AACA;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,qCAAqC,wCAAY;AACjD;AACA,oDAAoD,oCAAY;AAChE;AACA;AACA,CAAC;;;;;;;;AC3XD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AAC0D;AACO;AACJ;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AAChE;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gFAAY;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,0EAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,2EAAQ;;;;;;;;;;;;;;;;;ACpDqE;AACpB;AAClD,uBAAuB,qFAAkB;AAChD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;AC3Da;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,qBAAqB,mBAAO,CAAC,KAA+B;AAC5D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,0BAA0B,mBAAO,CAAC,KAA6B;AAC/D,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,8CAAwD;AAChF,6BAA6B,mBAAO,CAAC,KAAwC;AAC7E,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;AC3EA,eAAe,mBAAO,CAAC,KAAY;AACnC,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;ACrBa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW,gBAAgB;AACjC;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AChCoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAuC,kDAAuB;AACQ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,eAAe;AAChB;AACA;AACA;AACA;AACA,CAAC,mBAAmB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACrB;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4CAA4C;AAC5E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4CAA4C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qDAAqD;AACzD,IAAI,4EAA4E;AAChF,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA,IAAI,oEAAoE;AACxE,IAAI,2EAA2E;AAC/E,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,EAAE,EAIV,CAAC;AACJ,WAAW,qGAAqB;AAChC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AAYC;;;;;;;;;AC7RW;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,KAAU;AACnC;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AAC6E;AACD;AACE;AACf;AACI;AACL;AACT;AAC2E;AAC/D;AACL;AACN;AACQ;AACkB;AACA;AAC3B;AAC+B;AACU;AACK;AACX;AACnB;AAC6E;AAC3I;AACP;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4BAAU;AACxC;AACP,sCAAsC,2CAAqB;AAC3D,YAAY,mFAAmF,eAAe,gDAAwB;AACtI,kBAAkB,sCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC,wCAAoB;AAC3D,oCAAoC,uBAAW;AAC/C,oDAAoD,sEAA2B;AAC/E;AACA;AACA,QAAQ,sCAAY;AACpB;AACA,kBAAkB,sDAAkC;AACpD;AACA;AACA;AACA,kBAAkB,oDAAgC;AAClD;AACA;AACA;AACA;AACA,wBAAwB,0BAAO,qBAAqB,uBAAK;AACzD,uBAAuB,uBAAK;AAC5B,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,uBAAK,6BAA6B;AAC1F,2BAA2B,OAAO,uBAAK,qCAAqC;AAC5E;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sCAAY;AACpB;AACA,QAAQ,oCAAc;AACtB;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,qCAAqC,0BAAS;AAC9C;AACA;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA,SAAS;AACT,yBAAyB,QAAQ;AACjC,oBAAoB,uBAAK;AACzB,gCAAgC,0BAAS;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA,0CAA0C,8DAAmB,WAAW,aAAa;AACrF;AACA;AACO;AACP,sCAAsC,2CAAqB;AAC3D,iDAAiD,gDAAwB;AACzE,kBAAkB,sCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,uCAAuC,wCAAoB;AAC3D,oDAAoD,sEAA2B;AAC/E;AACA;AACA,QAAQ,sCAAY;AACpB;AACA,kBAAkB,sDAAkC;AACpD;AACA;AACA;AACA,kBAAkB,oDAAgC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sCAAY;AACpB;AACA,QAAQ,oCAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,qCAAqC,0BAAS;AAC9C;AACA;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA,SAAS;AACT,yBAAyB,QAAQ;AACjC,oBAAoB,uBAAK;AACzB,gCAAgC,0BAAS;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA,0CAA0C,8DAAmB,WAAW,aAAa;AACrF;AACA;AACO;AACP;AACA;AACA,iIAAiI,wCAAyB;AAC1J,YAAY,kCAAe;AAC3B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,qHAAqH,wCAAyB;AAC9I,YAAY,kCAAe;AAC3B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,wCAAyB;AAC1I;AACA,KAAK;AACL;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,cAAG;AAClB,IAAI,2BAAU,CAAC,uBAAK;AACpB,yCAAyC,iDAAiB;AAC1D,uCAAuC,wCAAoB;AAC3D,iDAAiD,gDAAwB;AACzE;AACA;AACA,oIAAoI,uBAAK,uBAAuB,sCAAiB;AACjL;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,cAAG;AAClB,yCAAyC,iDAAiB;AAC1D,uCAAuC,wCAAoB;AAC3D,iDAAiD,gDAAwB;AACzE;AACA;AACA,wIAAwI,sCAAiB;AACzJ;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,cAAG;AAClB,IAAI,2BAAU,CAAC,6BAAQ;AACvB,IAAI,2BAAU;AACd,yCAAyC,iDAAiB;AAC1D,uCAAuC,wCAAoB;AAC3D,iDAAiD,gDAAwB;AACzE;AACA;AACA,kHAAkH,6BAAQ,8BAA8B,sCAAiB;AACzK;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACvWY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;;;;;;;;;;ACvBoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,kDAAuB;AACQ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK,EAAE,EAIV,CAAC;AACJ,WAAW,qGAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AASE;;;;;;;;;;;;;;AC5JoC;AACtC;AACO;AACP,QAAQ,6DAAQ;AAChB;AACA;AACA,+BAA+B,IAAI,iCAAiC,cAAc;AAClF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;AClBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AAC4G;AAClD;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU,aAAa,IAAI,cAAc,GAAG,eAAe,qBAAqB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,2EAAW;AACxD;AACA;AACA;AACA;AACA,QAAQ,0EAAU,iBAAiB,oCAAoC;AACvE,oCAAoC,kFAAgB;AACpD;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,0EAAU,KAAK,iEAAQ;AAC/B;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,iEAAQ;AACa;;;;;;;;;ACpIV;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,mBAAmB,mBAAO,CAAC,KAA2B;;AAEtD;;AAEA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,0EAAqF;AACrF,wEAAkF;AAClF,0DAA4D;;;;;;;;ACP5D;AACA;AACA;AACA,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,gBAAgB,mBAAO,CAAC,KAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,uBAAuB,IAAI;AAC3B,MAAM;AACN,uBAAuB,IAAI;AAC3B,MAAM;AACN,qBAAqB,KAAK,IAAI,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;AC1Ba;AACb,iBAAiB,mBAAO,CAAC,KAA2B;;AAEpD;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACxBD;AACA;AAC6C;AACoB;AAC/B;AACS;AACgE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,OAAO;AACtB,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kEAAiB,kCAAkC,kEAAiB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA,kDAAkD,oDAAQ;AAC1D,kCAAkC,iFAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6DAAY;AACtD;AACA,wDAAwD,kDAAK;AAC7D;AACA;AACA;AACA;AACA,oCAAoC,4DAAW;AAC/C,aAAa;AACb;AACA;AACA,8CAA8C,4DAAW,SAAS,6DAAY;AAC9E;AACA,mDAAmD,6DAAY;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,6DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,8BAA8B;AAC7H,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sDAAS;AACxD,iCAAiC;AACjC,0EAA0E,sDAAS,yBAAyB,sDAAS;AACrH;AACA;AACA;AACA;AACA,2CAA2C,sDAAS;AACpD;AACA,yBAAyB;AACzB,sCAAsC,sDAAS;AAC/C;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb,2BAA2B,sEAAM,KAAK,kDAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,qDAAqD,kDAAK;AAC1D,YAAY,oDAAQ;AACpB;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oDAAQ;AACxB;AACA,4BAA4B,gBAAgB;AAC5C;AACA,6BAA6B,sEAAM,GAAG,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAK;AACpC,YAAY,oDAAQ;AACpB;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB,iFAAiB;AAClC;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA,sBAAsB,iFAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAM,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAQ;AAChC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAM,GAAG;AACnC;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA,qCAAqC,cAAc,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0DAA0D,sCAAsC;AAChG;AACA;AACA;AACA;AACA,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kDAAK;AACnF;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA,gDAAgD,cAAc,GAAG;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB,gBAAgB,cAAc;AAC9B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,oBAAoB,oDAAQ;AAC5B;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA,iCAAiC,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAM,GAAG;AAC/B;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;AACA;AACA,8CAA8C,oDAAQ;AACtD;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA,cAAc,sEAAM,GAAG;AACvB;AACA,4CAA4C;AAC5C;AACA,SAAS;AACT;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc,GAAG;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;AC9qBP;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,mCAAmC,mBAAO,CAAC,KAA+C;;AAE1F;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACvBA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtHD,eAAe,mBAAO,CAAC,KAAa;AACpC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACpCA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC1FY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM,kBAAkB,KAAK;AAC7F;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC,QAAQ,IAAI;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,uDAAuD,MAAM,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC1EA;AACA,oCAAoC,aAAa;AACjD,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACyF;AACjC;AACc;AACX;AACwB;AAClB;AACM;AACP;AACkB;AAC5B;AACsB;AAC0B;AACd;AACjD;AAC4D;AAC5F,0DAA0D;AACjE,kEAAkE,2EAAU;AAC5E;AACA;AACA;AACA;AACA;AACA,kDAAkD,gFAAe;AACjE;AACA;AACA;AACA,gCAAgC,4EAAe;AAC/C;AACA,4DAA4D,gFAAe;AAC3E,oIAAoI,qCAAqC;AACzK;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAY;AACrD;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B,wFAAuB;AACtD;AACA;AACA;AACA;AACA,2BAA2B,yEAAS;AACpC,iCAAiC,8DAAS;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,wFAAsB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E,oBAAoB,0BAA0B;AAC9C,6BAA6B,iEAAI;AACjC,kCAAkC,OAAO,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO;AAC1E;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iCAAiC,gFAAiB;AAClD,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kEAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,eAAe,6GAAqB;AACpC,eAAe,oGAAwB;AACvC,eAAe,kHAA+B;AAC9C;AACyB;AAClB;AACP;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;;;;;;;;ACjP1B,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,cAAc,mBAAO,CAAC,KAAY;AAClC,cAAc,mBAAO,CAAC,KAAY;AAClC,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACgI;AACpD;AACJ;AACV;AACkB;AACU;AAC9B;AACN;AACQ;AACW;AACkC;AACjE;AACsE;AAC1B;AACG;AAClF,8BAA8B,iFAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yGAAuB;AACtD;AACA;AACA;AACA,mCAAmC,wEAAQ;AAC3C;AACA;AACA,SAAS;AACT;AACA,uHAAuH,0EAAW;AAClI;AACA,4BAA4B,wEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC;AACA;AACA;AACO;AACP;AACA,eAAe,2FAAc;AAC7B;AACA;AACO;AACP;AACA,eAAe,2FAAc;AAC7B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gGAAc,KAAK,oFAAiB,uBAAuB,gGAAc,KAAK,yHAAkC,EAAE,mGAAgB;AAC1J;AACA,uBAAuB,4DAA4D;AACnF;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gGAAc,KAAK,oFAAiB,uBAAuB,gGAAc,KAAK,yHAAkC,EAAE,mGAAgB;AAC1J;AACA,uBAAuB,sFAAsF;AAC7G;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yGAAuB,CAAC,oFAAa;AAChE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yGAAuB,CAAC,oFAAa;AAChE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gGAAc,KAAK,oFAAiB,uBAAuB,gGAAc,KAAK,yHAAkC,EAAE,mGAAgB;AAC1J;AACA,uBAAuB,6DAA6D;AACpF;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gGAAc,KAAK,oFAAiB,uBAAuB,gGAAc,KAAK,yHAAkC,EAAE,mGAAgB;AAC1J;AACA,uBAAuB,uFAAuF;AAC9G;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yGAAuB,CAAC,oFAAa;AAChE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,yGAAuB,CAAC,oFAAa;AAChE;AACA;AACO,gCAAgC,iFAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uHAA6B;AACvF;AACA;AACA;AACA,+BAA+B,yGAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,wFAAc;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB,2FAAc;AAChC;AACA;AACA;AACA,mBAAmB,kEAAK;AACxB;AACA;AACO;AACP;AACA,kBAAkB,2FAAc;AAChC;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAK;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,2DAA2D;AAClF;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,yDAAyD;AAChF;AACA;AACA,SAAS;AACT;AACA;AACO,+BAA+B,gFAAY;AAClD;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,yGAAuB;AACtD;AACA;AACA;AACA,gCAAgC,2FAAc;AAC9C,uBAAuB,wFAAc;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,4FAAoB;;;;;;;;;;AC1bpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,aAAa,gBAAgB;AAC7B;AACO;AACP;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,QAAQ,iFAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,aAAa,gBAAgB;AAC7B;AACO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;;;;;;;ACvLA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC1ED,aAAa,mBAAO,CAAC,KAAW;AAChC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,SAAS,mBAAO,CAAC,KAAM;AACvB,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/GA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClDA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;ACtED;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iEAAiE;AACjE;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAuB;AACvC;AACA;AACA,wBAAwB,iEAAsB;AAC9C;AACA,oCAAoC,mEAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iEAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjQ7D;AACA;AACA;AACA;AACwC;AACD;AACJ;AACgB;AACoB;AAC3B;AACrC;AACP,WAAW,6DAAW;AACtB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgC,0DAAO;AACvC,uBAAuB,kEAAuB;AAC9C;AACA;AACA,uBAAuB,kEAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAW;AAC1B;AACA;AACA,eAAe,qDAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAO;AACvC,sBAAsB,iDAAG,MAAM,uDAAa;AAC5C;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA,0CAA0C,kBAAkB;AAC5D,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAO;AACvC,6BAA6B,iDAAG,MAAM,yDAAe;AACrD;AACA;AACA,6BAA6B,qDAAW;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAO;AACnC,iCAAiC,wDAAc;AAC/C,mBAAmB,6DAAS,GAAG,4DAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAW;AAC1B;AACA;AACA,4BAA4B,0DAAO;AACnC,2BAA2B,iDAAG,MAAM,uDAAa;AACjD;AACA;AACA;AACA,aAAa;AACb;AACA,eAAe,8DAAmB,QAAQ;AAC1C;AACA,kBAAkB,qDAAW;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,uEAAgB;AACrF;AACA,6CAA6C,mDAAS;AACtD,gCAAgC,0DAAO;AACvC;AACA,gCAAgC,0DAAe;AAC/C;AACA;AACA;AACA,+IAA+I;AAC/I;AACA;AACA,gDAAgD,mDAAS;AACzD;AACA;AACA,mCAAmC,yDAAyD;AAC5F;AACA;AACA;AACA,6CAA6C,mDAAS;AACtD;AACA,gCAAgC,0DAAO;AACvC;AACA,gEAAgE,0DAAe;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,0BAA0B,0DAAO,SAAS,2DAAO;AACjD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU,gBAAgB,4BAA4B;AACjG,sCAAsC,gBAAgB;AACtD,mEAAmE,mCAAmC;AACtG,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT,2CAA2C,UAAU,gBAAgB,4BAA4B;AACjG;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;;;;;;;;;;AC/P3B;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;AC3CY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,sBAAsB,GAAG,aAAa,GAAG,gBAAgB,GAAG,sBAAsB;AACvG,eAAe,mBAAO,CAAC,IAAQ;AAC/B;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,EAAE,WAAW;AACtC;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,2CAA2C,0BAA0B,GAAG,UAAU;AAClF;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD,oCAAoC,UAAU,EAAE,eAAe;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD;AACA,SAAS;AACT;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,aAAa;AACtF;AACA;AACA,4CAA4C,KAAK,EAAE,EAAE,EAAE,aAAa;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;;;;;;;AC9IA;AACA;AACA;AACA;AAC+C;AAC8F;AACtI;AACP;AACA;AACA;AACA,0BAA0B,0DAAK;AAC/B,oCAAoC,sEAAgB,4BAA4B,sEAAgB,0BAA0B,oEAAc;AACxI,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAW,mBAAmB,KAAK,iEAAW,iBAAiB,OAAO,iEAAW,iBAAiB;AACrH;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2EAAqB;AACpC;AACA;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA;AACA,0BAA0B,iEAAW;AACrC;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAmB;AACnC;AACA;AACA,kDAAkD,iEAAW;AAC7D;AACA,wDAAwD,iEAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAW;AAC7C,iCAAiC,iEAAW,CAAC,+DAAS;AACtD,yBAAyB,iEAAW;AACpC;AACA;;;;;;;;AC1GA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,8BAA8B,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,gBAAgB;AAC5K,gBAAgB,mBAAO,CAAC,KAAU;AAClC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA;AACA;AACA;AACA,CAAC,eAAe,gBAAgB,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,oEAAoE,KAAK;AACzE;AACA;AACA,mCAAmC,UAAU,+BAA+B,KAAK,OAAO,KAAK;AAC7F,8CAA8C,KAAK;AACnD,yDAAyD,KAAK;AAC9D;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gDAAgD,UAAU,iBAAiB,UAAU;AACrF,8DAA8D,KAAK;AACnE,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,MAAM;AAClF,oBAAoB,UAAU,iBAAiB,MAAM,KAAK,MAAM,MAAM,KAAK;AAC3E,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,UAAU,mBAAmB,MAAM;AACnF,oBAAoB,UAAU,kBAAkB,MAAM,KAAK,MAAM,MAAM,MAAM,OAAO,MAAM;AAC1F,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,gDAAgD,MAAM,iBAAiB,MAAM,WAAW,MAAM;AAC9F;AACA,gDAAgD,MAAM,gBAAgB,MAAM;AAC5E;AACA;AACA;AACA,+CAA+C,MAAM,YAAY,MAAM,WAAW,MAAM;AACxF;AACA;AACA;AACA;AACA,gDAAgD,UAAU,kBAAkB,UAAU;AACtF,mBAAmB,UAAU,mBAAmB,MAAM;AACtD,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA,+BAA+B,YAAY,qDAAqD,WAAW,GAAG,mBAAmB;AACjI;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM,EAAE,IAAI;AACnD;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA,uCAAuC,MAAM,YAAY,MAAM,gCAAgC,KAAK;AACpG;AACA;AACA,iDAAiD,MAAM,iBAAiB,KAAK;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,EAAE,IAAI,EAAE,SAAS;AACrE;AACA;AACA;AACA,6DAA6D,MAAM,+DAA+D,KAAK;AACvI;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD,0DAA0D,MAAM,KAAK,OAAO;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB,QAAQ,gBAAgB,OAAO;AAC/C,eAAe,qBAAqB,oDAAoD,QAAQ,QAAQ,uBAAuB,QAAQ,aAAa;AACpJ;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;;;;;;;AC1Ma;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,qBAAqB,mBAAO,CAAC,KAAsC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC7BA,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,0BAA0B,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,iBAAiB;AACnH,kBAAkB,mBAAO,CAAC,KAAW;AACrC,2BAA2B,mBAAO,CAAC,KAA6B;AAChE,gBAAgB,mBAAO,CAAC,KAAS;AACjC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF,YAAY,aAAa;AACzB,YAAY,gBAAgB;AAC5B,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC,SAAS,aAAa;AACnF;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB,MAAM,sBAAsB;AAC9F;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;AAC3F,gBAAgB,WAAW;AAC3B;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjPA;AACA;AACA;AACA;AACkE;AACoD;AAC7C;AAC/B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uCAAuC,2EAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO,yBAAyB,gFAAY;AAC5C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,gFAAY;AAC5C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B,wGAAwG;AAClI,4FAAoB;AACpB,4FAAoB;;;;;;;;;;ACrIpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAiB;AAC9B;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC9BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;AC9JD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACmC;AAC5B;AACP;AACA;AACA,uBAAuB,qDAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;ACvBD,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtFY;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAM,gBAAgB,qBAAM;AAC3C;AACA;AACA,iBAAiB,cAAc;;;;;;;;ACf/B;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClEY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,QAAQ,uCAAuC,gBAAgB;AAC/E,eAAe,QAAQ,wBAAwB,kBAAkB,iBAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,6DAA6D,QAAQ;AACrE;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AAC4C;AACP;AACM;AAC3C;AACA,uCAAuC,6DAAS,oBAAoB,KAAK,6DAAS,wBAAwB,cAAc;AACxH,8CAA8C,kBAAkB;AACzD;AACP,qFAAqF,MAAM;AAC3F;AACA,oDAAoD,kBAAkB;AAC/D;AACP;AACA,iEAAiE,MAAM;AACvE;AACA,mDAAmD,kBAAkB;AACrE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA,6CAA6C,6DAAS,mBAAmB;AACzE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACO;AACP,YAAY,oBAAoB;AAChC;AACA;AACA,eAAe,mEAAY;AAC3B;AACA;AACA;AACA,kDAAkD,4DAAK;AACvD;AACA;AACA,oBAAoB,mEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8D;AACW;AAChB;AACkD;AACnB;AACW;AAChB;AACO;AACS;AACH;AACd;AAClF,sEAAsE,2EAAgB;AACtF;AACA,4BAA4B,mGAAmG;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAa;AACrB;AACA;AACA;AACA;AACA,eAAe,4GAAqB;AACpC,eAAe,uFAAkB;AACjC,eAAe,2FAAe;AAC9B,eAAe,mGAAkB;AACjC,eAAe,4FAAa;AAC5B,eAAe,yGAAoB;AACnC,gBAAgB,2GAAqB;AACrC,gBAAgB,uHAA6B;AAC7C,gBAAgB,mGAAwB;AACxC;AACoC;;;;;;;;ACxDpC,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACsD;AACQ;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAK;AACzC;AACA;AACA,yCAAyC,kBAAK;AAC9C;AACA;AACA,mCAAmC,kBAAK;AACxC;AACA;AACA,yCAAyC,kBAAK;AAC9C;AACA;AACA;AACA;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA;;;;;AC7CA;AACA;AACA;AACA;AAC0F;AACjB;AAChB;AACf;AAC1C,8BAA8B,qCAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA,iDAAoB;AACpB,iDAAoB;;;;;;;;;AChDP;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,qBAAqB,mBAAO,CAAC,KAA6B;AAC1D,8BAA8B,mBAAO,CAAC,KAAsC;AAC5E,eAAe,mBAAO,CAAC,KAAwB;AAC/C,oBAAoB,mBAAO,CAAC,KAA8B;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACPP;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACgF;AACsB;AAC5E;AACkC;AACN;AACmB;AACN;AACY;AACY;AACQ;AAC5F;AACP,oDAAoD,4BAAU;AAC9D;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAe;AACzC,gCAAgC,0CAAmB;AACnD,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qCAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qCAAc;AACpE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,yBAAW;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2BAA2B,8BAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA,0CAA0C,uBAAK;AAC/C;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA,0CAA0C,uBAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2BAA2B,uBAAK,mBAAmB,6BAAQ;AAC3D;AACA;AACA,iCAAiC,wHAAwH,4CAAuB,OAAO;AACvL;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT,wDAAwD,6CAAqB,oDAAoD,8BAAO;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,SAAS;AACT,uBAAuB,iCAAY,SAAS,uCAAuC;AACnF,uBAAuB,4CAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgB;AAC/B;AAC2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvM3B;AACA;AACA;AACA;AACA,IAAI,8BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,2BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoD;AAC6E;AAClE;AACJ;AACqB;AACgC;AACvD;AACpB;AACuB;AAC+E;AACxD;AACmB;AACnB;AACO;AACI;AACK;AACT;AACH;AACvF,gEAAgE,4BAAU;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC,0CAAmB;AACpD;AACA,wBAAwB,8BAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAAQ;AACzC;AACA;AACA,SAAS;AACT,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAY;AAClC,SAAS;AACT;AACA;AACA,wBAAwB,8BAAU;AAClC,IAAI,2BAAO,IAAI,2CAAqB;AACpC;AACiC;AACjC,+GAA+G,4BAAU;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA,qBAAqB,SAAC,0BAA0B,iDAAiD;AACjG,YAAY,SAAC;AACb;AACA,yFAAyF,6BAAM;AAC/F,2IAA2I,6BAAM;AACjJ,2BAA2B,wBAAwB;AACnD,8BAA8B,4CAA4C;AAC1E;AACA,sCAAsC,qCAAc;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA,0CAA0C,qCAAc;AACxD;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAS;AAClD;AACA;AACA,SAAS;AACT;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAAU;AAC1E,IAAI,2BAAO,IAAI,2CAAqB;AACpC,IAAI,2BAAO,IAAI,qCAAkB;AACjC,IAAI,2BAAO,IAAI,mCAAY;AAC3B;AACwC;AACxC,gCAAgC,uDAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAC;AACzB,yCAAyC,sCAAe,MAAM,WAAE,IAAI,uBAAuB,qDAA8B,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,+BAAgB;AAClG;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA,uGAAuG,mCAAmC;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAA+B,wFAAwF,oBAAoB;AACnJ;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAAU;AAC3C,IAAI,2BAAO,IAAI,mCAAY;AAC3B,IAAI,2BAAO,IAAI,qCAAkB;AACjC,IAAI,2BAAO,IAAI,sCAAmB;AAClC,IAAI,2BAAO,IAAI,oCAAkB;AACjC,IAAI,2BAAO,IAAI,+BAAe;AAC9B,IAAI,2BAAO,IAAI,kCAAiB;AAChC;AAC0C;;;;;;;ACxM1C;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACkE;AACwH;AACpH;AACV;AACN;AACC;AACkD;AACN;AAC9B;AACmB;AACN;AACM;AACL;AAChB;AACC;AAC+B;AACrB;AACvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,4BAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAyB;AACpE,4BAA4B,sCAAe;AAC3C,wBAAwB,0CAAmB;AAC3C,2BAA2B,0CAAmB;AAC9C,mCAAmC,0CAAmB;AACtD;AACA;AACA;AACA,mCAAmC,gDAAyB;AAC5D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,0CAAmB;AAClD,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,gDAAyB;AAC1D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,gDAAyB;AAC3D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4CAA4C,iCAAiB;AAC7D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,CAAC;AACD,SAAS;AACT,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4CAAuB;AAC7D;AACA,mCAAmC,uCAAqB,aAAa,uCAAqB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mCAAS,YAAY,uCAAa;AAChE,kEAAkE,eAAe;AACjF,uBAAuB,sCAAe;AACtC,kCAAkC,sCAAe;AACjD,6BAA6B,sCAAe;AAC5C,mBAAmB,sCAAe;AAClC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kCAAa,SAAS,uBAAK;AAC9E;AACA;AACA;AACA,iCAAiC,wCAAyB;AAC1D;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAQ,QAAQ,wEAAwE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAK,2DAA2D,uBAAK;AACtG;AACA;AACA;AACA;AACA;AACA,wEAAwE,6BAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAa;AACjE;AACA,qDAAqD,gCAAa;AAClE,gDAAgD,6BAAU;AAC1D,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,gDAAwB;AACvC,IAAI,0BAAO,IAAI,+BAAe;AAC9B,IAAI,0BAAO,IAAI,2CAAqB;AACpC;AACgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;;AClWA;AACA;AACA;AACA;AACoE;AACK;AAC0C;AAClD;AACO;AACc;AAC/E,+BAA+B,qCAAY;AAClD;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,oBAAoB;AAC7F;AACA;AACA;AACA;AACA,4BAA4B,iCAAc,KAAK,0CAAiB,WAAW,oBAAoB,2BAA2B,oBAAoB;AAC9I;AACA;AACA;AACA,4BAA4B,6BAAM;AAClC;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACO,gCAAgC,qCAAY;AACnD;AACA,2BAA2B,iCAAc,KAAK,0CAAiB,WAAW,iCAAc,KAAK,oBAAoB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACO,+BAA+B,qCAAY;AAClD;AACA,2BAA2B,iCAAc,KAAK,0CAAiB,WAAW,oBAAoB,2BAA2B,iCAAc,KAAK,oBAAoB;AAChK;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,6BAAM;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACO,iCAAiC,qCAAY;AACpD;AACA,2BAA2B,iCAAc,KAAK,0CAAiB,WAAW,oBAAoB;AAC9F;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,6BAAM;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACO,+BAA+B,qCAAY;AAClD;AACA,2BAA2B,iCAAc,KAAK,0CAAiB,WAAW,oBAAoB;AAC9F;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,6BAAM;AAClC;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;;;ACxIA;AACA;AACA;AACA;AACA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuE;AACC;AACM;AACqB;AACZ;AACtB;AACS;AACnE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB;AACpD;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD;AACA,4DAA4D,4BAA4B,uBAAuB,sCAAe;AAC9H;AACA;AACA;AACA;AACA;AACA,6BAA6B,yBAAU;AACvC,IAAI,sBAAO,IAAI,2CAAqB;AACpC,IAAI,sBAAO,IAAI,kCAAiB;AAChC;AACsC;;;AC5FtC;AACA;AACA;AACA;AACwG;AAC3B;AAC+C;AACzD;AACF;AACjE,iDAAoB,CAAC,gBAAgB;AACrC,iDAAoB,CAAC,gBAAgB;AACrC,iDAAoB,CAAC,gBAAgB;AACrC,iDAAoB,CAAC,kBAAkB;AACvC,iDAAoB,CAAC,iBAAiB;AACtC,uDAA0B,CAAC,oBAAoB,KAAK,oBAAoB;AACxE,2CAAwB,UAAU,0BAA0B;;;;;;;;ACf5D,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC6F;AAC3B;AACgB;AACsC;AACR;AACjB;AACI;AACjB;AACoB;AACrC;AACuB;AACU;AAClG,0FAA0F,2EAAU;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,oBAAoB;AAC5I,oDAAoD,6EAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,uCAAuC,uGAAgC;AACvE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oGAAyB;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa,8GAAsC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wFAAuB,0BAA0B,sGAA8B;AACvG,uBAAuB,yEAAS;AAChC;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA,+DAA+D,8GAAkB;AACjF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,8GAA6B;AAC5C,eAAe,2FAAa;AAC5B,eAAe,4GAAqB;AACpC,eAAe,iHAA+B;AAC9C,eAAe,mGAAwB;AACvC;AAC8C;AAC9C,kGAA0B;;;;;;;;;;;;;AClI1B;AACA;AACA;AACA;AACwD;AACxD;AACA;AACA;AACA,wCAAwC,oEAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;ACzBM;AACb,0BAA0B,mBAAO,CAAC,KAA6C;AAC/E,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;;;;;;;;ACNA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjFD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,SAAS;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA,SAAS;AACT;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,YAAY,mBAAO,CAAC,KAAsB;AAC1C;;AAEA,qBAAqB,mBAAO,CAAC,KAA2B;AACxD,mBAAmB,mBAAO,CAAC,KAAc;AACzC,cAAc,mBAAO,CAAC,KAAmB;AACzC,eAAe,mBAAO,CAAC,KAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,EAAE,mBAAO,CAAC,KAAgB;AAC5B,QAAQ,sCAAsC,EAAE,mBAAO,CAAC,KAAuB;;AAE/E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,iBAAiB,EAAE,QAAQ,OAAO;AAClC,MAAM;AACN;AACA,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO;AAC1C,MAAM;AACN;AACA,iBAAiB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAChC,QAAQ,GAAG,EAAE,GAAG,OAAO;AACvB,MAAM;AACN;AACA,iBAAiB,EAAE,GAAG,EAAE,GAAG;AAC3B,QAAQ,GAAG,EAAE,GAAG,OAAO;AACvB;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN,iBAAiB,EAAE,MAAM,GAAG,GAAG,OAAO;AACtC,MAAM;AACN;AACA,mBAAmB,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,GAAG,OAAO;AAChD,QAAQ;AACR,mBAAmB,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,OAAO;AAC3C;AACA,MAAM;AACN;AACA;AACA;AACA,qBAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACpC,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO;AAChC,UAAU;AACV,qBAAqB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AACpC,YAAY,GAAG,EAAE,GAAG,OAAO;AAC3B;AACA,QAAQ;AACR,mBAAmB,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;AAClC,UAAU,GAAG,OAAO;AACpB;AACA,MAAM;AACN;AACA;AACA;AACA,qBAAqB,EAAE,GAAG,EAAE,GAAG;AAC/B,WAAW,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO;AACpC,UAAU;AACV,qBAAqB,EAAE,GAAG,EAAE,GAAG;AAC/B,WAAW,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO;AAC/B;AACA,QAAQ;AACR,mBAAmB,EAAE,GAAG,EAAE,GAAG;AAC7B,UAAU,GAAG,OAAO;AACpB;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe,SAAS,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG;AACvC,MAAM;AACN,iBAAiB,EAAE,MAAM,IAAI,GAAG,OAAO;AACvC,MAAM;AACN,iBAAiB,EAAE,GAAG,EAAE,IAAI;AAC5B,QAAQ,GAAG,EAAE,GAAG,OAAO;AACvB;;AAEA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,gBAAgB,GAAG,MAAM,kBAAkB;AAC3C,IAAI;AACJ,gBAAgB,GAAG,GAAG,GAAG,IAAI,kBAAkB;AAC/C,IAAI;AACJ,gBAAgB,KAAK;AACrB,IAAI;AACJ,gBAAgB,KAAK,EAAE,kBAAkB;AACzC;;AAEA;AACA;AACA,IAAI;AACJ,aAAa,QAAQ;AACrB,IAAI;AACJ,aAAa,GAAG,GAAG,QAAQ;AAC3B,IAAI;AACJ,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI;AACpC,IAAI;AACJ,aAAa,GAAG,GAAG,GAAG,GAAG,QAAQ;AACjC,IAAI;AACJ,cAAc,GAAG;AACjB;;AAEA,YAAY,MAAM,EAAE,GAAG;AACvB;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACziBa;AACb;AACA,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,6BAA6B,mBAAO,CAAC,KAAuC;;AAE5E;AACA;AACA;;;;;;;;;ACPa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAQ;AAC/B,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,iBAAiB,mBAAO,CAAC,KAAU;AACnC,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AChBa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,8BAA8B,cAAc;AAC5C,6BAA6B,aAAa;AAC1C,sCAAsC;AACtC,wCAAwC;AACxC,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,kCAAkC;AAClC,iCAAiC;AACjC,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA,gCAAgC;AAChC,oCAAoC;AACpC,mCAAmC;AACnC,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,QAAQ;AACR,eAAe;AACf;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,QAAQ;AACR,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChdA;AACA;AACA;AACA;AACoC;AACS;AACa;AACpB;AACgB;AACH;AAC1B;AACiB;AACiC;AAC3E,0BAA0B,oBAAY;AACtC,gCAAgC,oBAAY;AAC5C,iCAAiC,oBAAM;AACvC;AACA;AACA;AACA;AACA,kBAAkB,uBAAO;AACzB;AACA;AACA,sFAAsF,wDAAuB;AAC7G;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,2BAA2B,oBAAM;AACxC;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA,6CAA6C,4BAAO;AACpD;AACA,+CAA+C,4BAAO;AACtD,2CAA2C,4BAAO;AAClD,2CAA2C,4BAAO;AAClD,yDAAyD,4BAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAe;AAC1D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAe;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9KA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4E;AACM;AACwB;AACrB;AAC1C;AACuC;AACnB;AACxD,qCAAqC,gCAAa,gCAAgC,wBAAQ;AACjG;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C,6CAA6C,gCAAa;AAC1D,oDAAoD,gCAAa;AACjE,qDAAqD,gCAAa;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAe;AACvB;AACA;AACA;AACA;AACA,wBAAwB,iCAAY;AACpC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,0BAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC;AACkC;AAClC,wEAAwE,YAAY;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC;AACqC;AACrC,8CAAmB;AACnB;AACA;AACA,UAAU,iCAAc,KAAK,iCAAc,2CAA2C,iCAAc,4DAA4D,iCAAc;AAC9K;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8CAAmB;AACnB;AACA;AACA,UAAU,iCAAc,KAAK,iCAAc,2CAA2C,iCAAc,2DAA2D,iCAAc;AAC7K;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACxGgyE;AAC3uE;AACtD;AACA,qBAAqB;AACrB;AACA;AACA,0CAA0C,kFAAa;AACvD;AACA;AACA;AACO;AACP,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,2BAA2B,kFAAa,CAAC,sFAAqB;AAC9D,iCAAiC,kFAAa,CAAC,4FAA2B;AAC1E,2BAA2B,kFAAa,CAAC,6EAAY;AACrD;AACO;AACP,sBAAsB,kFAAa,CAAC,iFAAgB;AACpD,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,sBAAsB,kFAAa,CAAC,iFAAgB;AACpD,2BAA2B,kFAAa,CAAC,sFAAqB;AAC9D,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,oCAAoC,kFAAa,CAAC,+FAA8B;AAChF,kBAAkB,kFAAa,CAAC,6EAAY;AAC5C;AACO;AACP,2BAA2B,kFAAa,CAAC,sFAAqB;AAC9D;AACO;AACP,6BAA6B,kFAAa,CAAC,wFAAuB;AAClE,iCAAiC,kFAAa,CAAC,4FAA2B;AAC1E,iCAAiC,kFAAa,CAAC,4FAA2B;AAC1E;AACO;AACP,wBAAwB,kFAAa,CAAC,mFAAkB;AACxD,oBAAoB,kFAAa,CAAC,+EAAc;AAChD,wBAAwB,kFAAa,CAAC,mFAAkB;AACxD;AACO;AACP,sBAAsB,kFAAa,CAAC,uFAAsB;AAC1D,sBAAsB,kFAAa,CAAC,uFAAsB;AAC1D,kBAAkB,kFAAa,CAAC,6EAAY;AAC5C,kBAAkB,kFAAa,CAAC,+EAAc;AAC9C,yBAAyB,kFAAa,CAAC,4FAA2B;AAClE,2BAA2B,kFAAa,CAAC,8FAA6B;AACtE,wBAAwB,kFAAa,CAAC,2FAA0B;AAChE,wBAAwB,kFAAa,CAAC,mFAAkB;AACxD;AACO;AACP,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,iBAAiB,kFAAa,CAAC,4EAAW;AAC1C,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,mCAAmC,kFAAa,CAAC,8FAA6B;AAC9E,mCAAmC,kFAAa,CAAC,8FAA6B;AAC9E,kCAAkC,kFAAa,CAAC,6FAA4B;AAC5E,sCAAsC,kFAAa,CAAC,iGAAgC;AACpF,sCAAsC,kFAAa,CAAC,iGAAgC;AACpF,gCAAgC,kFAAa,CAAC,2FAA0B;AACxE,oCAAoC,kFAAa,CAAC,+FAA8B;AAChF,oCAAoC,kFAAa,CAAC,+FAA8B;AAChF;AACO;AACP,gCAAgC,kFAAa,CAAC,2FAA0B;AACxE,6BAA6B,kFAAa,CAAC,wFAAuB;AAClE,sCAAsC,kFAAa,CAAC,iGAAgC;AACpF,4BAA4B,kFAAa,CAAC,uFAAsB;AAChE;AACA;AACA;AACO;AACP,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,iBAAiB,kFAAa,CAAC,+EAAc;AAC7C;AACO;AACP,2BAA2B,kFAAa,CAAC,sFAAqB;AAC9D,2BAA2B,kFAAa,CAAC,sFAAqB;AAC9D,gCAAgC,kFAAa,CAAC,2FAA0B;AACxE,gCAAgC,kFAAa,CAAC,2FAA0B;AACxE,4CAA4C,kFAAa,CAAC,qGAAoC;AAC9F;AACO;AACP;AACA;AACA,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,sBAAsB,kFAAa,CAAC,iFAAgB;AACpD,mCAAmC,kFAAa,CAAC,8FAA6B;AAC9E,mCAAmC,kFAAa,CAAC,8FAA6B;AAC9E,uCAAuC,kFAAa,CAAC,kGAAiC;AACtF,kCAAkC,kFAAa,CAAC,6FAA4B;AAC5E,qCAAqC,kFAAa,CAAC,8FAA6B;AAChF,qCAAqC,kFAAa,CAAC,8FAA6B;AAChF,qCAAqC,kFAAa,CAAC,gGAA+B;AAClF,yCAAyC,kFAAa,CAAC,oGAAmC;AAC1F,qCAAqC,kFAAa,CAAC,gGAA+B;AAClF,iCAAiC,kFAAa,CAAC,4FAA2B;AAC1E,8BAA8B,kFAAa,CAAC,yFAAwB;AACpE,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,4BAA4B,kFAAa,CAAC,uFAAsB;AAChE,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,0BAA0B,kFAAa,CAAC,qFAAoB;AAC5D,sBAAsB,kFAAa,CAAC,qFAAoB;AACxD,4BAA4B,kFAAa,CAAC,uFAAsB;AAChE,oCAAoC,kFAAa,CAAC,+FAA8B;AAChF;AACA;AACA;AACA,wBAAwB,kFAAa,CAAC,mFAAkB;AACxD,iCAAiC,kFAAa,CAAC,4FAA2B;AAC1E;AACO;AACP;AACA;AACO;AACP,sBAAsB,kFAAa,CAAC,iFAAgB;AACpD,0BAA0B,kFAAa,CAAC,qFAAoB;AAC5D,sBAAsB,kFAAa,CAAC,iFAAgB;AACpD,8BAA8B,kFAAa,CAAC,sFAAqB;AACjE,kBAAkB,kFAAa,CAAC,6EAAY;AAC5C,iBAAiB,kFAAa,CAAC,4EAAW;AAC1C,yBAAyB,kFAAa,CAAC,8FAA6B;AACpE,yCAAyC,kFAAa,CAAC,kGAAiC;AACxF,yBAAyB,kFAAa,CAAC,6FAA6B;AACpE,sBAAsB,6FAAwB,CAAC,qFAAoB,EAAE,kEAAK;AAC1E,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,yBAAyB,kFAAa,CAAC,oFAAmB;AAC1D,sBAAsB,kFAAa,CAAC,qFAAoB;AACxD,sBAAsB,kFAAa,CAAC,mFAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,kFAAa,CAAC,6EAAY;AAC3C,iBAAiB,kFAAa,CAAC,2EAAU;AACzC,qBAAqB,kFAAa,CAAC,+EAAc;AACjD,qBAAqB,kFAAa,CAAC,+EAAc;AACjD,8BAA8B,kFAAa,CAAC,wFAAuB;AACnE,8BAA8B,kFAAa,CAAC,wFAAuB;AACnE,0BAA0B,kFAAa,CAAC,oFAAmB;AAC3D,oBAAoB,kFAAa,CAAC,wFAAuB;AACzD,qBAAqB,kFAAa,CAAC,gFAAe;AAClD,+BAA+B,kFAAa,CAAC,0FAAyB;AACtE,oCAAoC,kFAAa,CAAC,+FAA8B;AAChF,qCAAqC,kFAAa,CAAC,gGAA+B;AAClF;;;;;;;;;ACzKa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,mBAAmB,mBAAO,CAAC,KAAiC;AAC5D,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,yFAAyF;AAC7F;AACA,CAAC;;;;;;;;;ACTY;AACb,cAAc,mBAAO,CAAC,KAAsB;AAC5C,YAAY,mBAAO,CAAC,KAA2B;;AAE/C;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;ACZD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACmE;AAC5D;AACP,2BAA2B,8EAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxBA,eAAe,mBAAO,CAAC,KAAa;AACpC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;ACvBD,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACzFY;AACb,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;;;;;;;;;ACPa;AACb;;;;;;;;ACDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtKD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChFD,eAAe,KAAmD,kBAAkB,mBAAO,CAAC,KAAK,GAAG,CAAqJ,CAAC,mDAAmD,mBAAmB,SAAS,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,uCAAuC,qCAAqC,oBAAoB,EAAE,iBAAiB,6FAA6F,eAAe,wCAAwC,SAAS,EAAE,mBAAmB,8BAA8B,sDAAsD,0BAA0B,6CAA6C,sBAAsB,6DAA6D,YAAY,eAAe,SAAS,iBAAiB,iCAAiC,oBAAoB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,sBAAsB,EAAE,uBAAuB,wCAAwC,4CAA4C,wBAAwB,gBAAgB,0BAA0B,4BAA4B,UAAU,yBAAyB,kBAAkB,0BAA0B,oBAAoB,4BAA4B,sBAAsB,8BAA8B,wBAAwB,kBAAkB,8BAA8B,wBAAwB,0HAA0H,sBAAsB,0BAA0B,cAAc,UAAU,yCAAyC,wBAAwB,wCAAwC,6BAA6B,8CAA8C,eAAe,UAAU,IAAI,GAAG,wBAAwB,oDAAoD,gBAAgB,4BAA4B,wBAAwB,iBAAiB,SAAS,cAAc,wBAAwB,aAAa,8EAA8E,sCAAsC,yDAAyD,sBAAsB,0BAA0B,6EAA6E,UAAU,wBAAwB,gBAAgB,0CAA0C,sBAAsB,sBAAsB,wEAAwE,UAAU,wBAAwB,qCAAqC,IAAI,WAAW,gBAAgB,OAAO,YAAY,mBAAmB,OAAO,gBAAgB,YAAY,0BAA0B,QAAQ,GAAG,UAAU,wBAAwB,mBAAmB,SAAS,IAAI,SAAS,gBAAgB,OAAO,gBAAgB,OAAO,aAAa,MAAM,UAAU,UAAU,wBAAwB,gBAAgB,qDAAqD,sBAAsB,sBAAsB,wDAAwD,UAAU,sBAAsB,4FAA4F,6BAA6B,iCAAiC,iCAAiC,SAAS,KAAK,yEAAyE,SAAS,sBAAsB,IAAI,mEAAmE,iBAAiB,YAAY,SAAS,+FAA+F,kBAAkB,mBAAmB,oBAAoB,wBAAwB,sCAAsC,wBAAwB,WAAW,4BAA4B,wBAAwB,0FAA0F,wBAAwB,+CAA+C,uBAAuB,WAAW,0BAA0B,yGAAyG,gCAAgC,OAAO,iDAAiD,wBAAwB,6DAA6D,4CAA4C,eAAe,sBAAsB,aAAa,mEAAmE,sBAAsB,iBAAiB,oBAAoB,+BAA+B,aAAa,GAAG,wBAAwB,mMAAmM,sCAAsC,wBAAwB,WAAW,iBAAiB,eAAe,kBAAkB,MAAM,eAAe,UAAU,eAAe,4CAA4C,qBAAqB,aAAa,gDAAgD,yBAAyB,qDAAqD,QAAQ,eAAe,YAAY,+BAA+B,iBAAiB,wBAAwB,YAAY,sMAAsM,yCAAyC,0BAA0B,aAAa,mBAAmB,sDAAsD,eAAe,wBAAwB,sEAAsE,sIAAsI,wBAAwB,gBAAgB,yCAAyC,wBAAwB,wDAAwD,sBAAsB,oDAAoD,wBAAwB,oDAAoD,kDAAkD,KAAK,4BAA4B,+BAA+B,UAAU,wBAAwB,gBAAgB,sBAAsB,6EAA6E,UAAU,sBAAsB,aAAa,sBAAsB,aAAa,4BAA4B,GAAG,6CAA6C,EAAE,UAAU,EAAE,wBAAwB,gBAAgB,YAAY,wBAAwB,uCAAuC,wBAAwB,2CAA2C,eAAe,4CAA4C,QAAQ,wBAAwB,gBAAgB,wBAAwB,gBAAgB,4DAA4D,sBAAsB,uDAAuD,wBAAwB,yBAAyB,+CAA+C,sBAAsB,gBAAgB,yDAAyD,wBAAwB,GAAG,wBAAwB,sDAAsD,uBAAuB,oCAAoC,YAAY,oCAAoC,UAAU,IAAI,4CAA4C,eAAe,WAAW,8BAA8B,wBAAwB,2BAA2B,sBAAsB,uCAAuC,oBAAoB,QAAQ,gBAAgB,wBAAwB,oBAAoB,sBAAsB,4BAA4B,yBAAyB,kCAAkC,EAAE,uBAAuB,wFAAwF,EAAE,wBAAwB,oDAAoD,8CAA8C,sBAAsB,2BAA2B,oBAAoB,0DAA0D,wBAAwB,+FAA+F,mBAAmB,mBAAmB,6DAA6D,WAAW,+BAA+B,sBAAsB,wBAAwB,OAAO,gEAAgE,wBAAwB,uDAAuD,wBAAwB,MAAM,iKAAiK,wBAAwB,wHAAwH,uBAAuB,EAAE,eAAe,mBAAmB,MAAM,qFAAqF,WAAW,MAAM,oCAAoC,gBAAgB,uBAAuB,eAAe,uBAAuB,eAAe,oBAAoB,KAAK,iBAAiB,wBAAwB,kBAAkB,eAAe,sBAAsB,eAAe,eAAe,WAAW,yCAAyC,wBAAwB,iIAAiI,6BAA6B,mEAAmE,4LAA4L,4CAA4C,uDAAuD,GAAG,sBAAsB,4BAA4B,0BAA0B,QAAQ,mGAAmG,oBAAoB,iCAAiC,oBAAoB,wHAAwH,wBAAwB,gBAAgB,sBAAsB,qBAAqB,wBAAwB,6JAA6J,eAAe,yBAAyB,eAAe,yBAAyB,4BAA4B,gBAAgB,cAAc,mCAAmC,iJAAiJ,cAAc,IAAI,iDAAiD,UAAU,aAAa,eAAe,4BAA4B,YAAY,+CAA+C,MAAM,gFAAgF,wBAAwB,wCAAwC,0DAA0D,wBAAwB,gBAAgB,sBAAsB,wDAAwD,UAAU,wBAAwB,gBAAgB,yBAAyB,kCAAkC,IAAI,eAAe,UAAU,KAAK,GAAG,sBAAsB,sBAAsB,0DAA0D,sBAAsB,UAAU,eAAe,0EAA0E,8CAA8C,aAAa,gEAAgE,wFAAwF,sEAAsE,IAAI,gBAAgB,SAAS,kPAAkP,2EAA2E,YAAY,gFAAgF,YAAY,WAAW,KAAK,+CAA+C,4BAA4B,gEAAgE,aAAa,SAAS,GAAG,sBAAsB,oCAAoC,iEAAiE,iBAAiB,4BAA4B,sBAAsB,YAAY,sBAAsB,wBAAwB,sBAAsB,mEAAmE,sBAAsB,wCAAwC,4BAA4B,uBAAuB,iBAAiB,iBAAiB,wBAAwB,oDAAoD,cAAc,mDAAmD,2BAA2B,8CAA8C,YAAY,iCAAiC,YAAY,wBAAwB,gBAAgB,4BAA4B,IAAI,8BAA8B,SAAS,kBAAkB,mCAAmC,wBAAwB,4EAA4E,wBAAwB,6BAA6B,gBAAgB,UAAU,mEAAmE,qCAAqC,wBAAwB,eAAe,cAAc,iBAAiB,qBAAqB,kBAAkB,SAAS,wBAAwB,+BAA+B,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,IAAI,QAAQ,WAAW,2CAA2C,YAAY,iCAAiC,QAAQ,WAAW,kBAAkB,GAAG,2BAA2B,aAAa,GAAG,sBAAsB,aAAa,gBAAgB,wBAAwB,YAAY,yBAAyB,0BAA0B,QAAQ,IAAI,IAAI,oBAAoB,6BAA6B,sBAAsB,mCAAmC,sBAAsB,aAAa,kPAAkP,8BAA8B,8EAA8E,gDAAgD,gBAAgB,wBAAwB,yBAAyB,MAAM,0BAA0B,MAAM,iBAAiB,gCAAgC,IAAI,8CAA8C,qBAAqB,UAAU,0CAA0C,wBAAwB,oCAAoC,wCAAwC,kBAAkB,oCAAoC,sMAAsM,WAAW,wCAAwC,wCAAwC,sBAAsB,oEAAoE,eAAe,SAAS,wBAAwB,sBAAsB,QAAQ,EAAE,mFAAmF,gCAAgC,kBAAkB,OAAO,WAAW,SAAS,oBAAoB,uBAAuB,IAAI,sBAAsB,aAAa,4BAA4B,cAAc,qBAAqB,8BAA8B,sBAAsB,oNAAoN,iBAAiB,QAAQ,0BAA0B,SAAS,gBAAgB,IAAI,IAAI,SAAS,wBAAwB,sBAAsB,gBAAgB,cAAc,+DAA+D,iBAAiB,eAAe,YAAY,0DAA0D,YAAY,eAAe,YAAY,2BAA2B,OAAO,kBAAkB,gCAAgC,sBAAsB,8HAA8H,sBAAsB,+DAA+D,sBAAsB,wFAAwF,iDAAiD,yBAAyB,yFAAyF,IAAI,sDAAsD,oBAAoB,gBAAgB,gBAAgB,gBAAgB,mBAAmB,mBAAmB,uBAAuB,WAAW,iFAAiF,sBAAsB,gBAAgB,wBAAwB,kBAAkB,QAAQ,iEAAiE,6DAA6D,kEAAkE,4DAA4D,oBAAoB,aAAa,oBAAoB,QAAQ,UAAU,sBAAsB,8BAA8B,sBAAsB,iEAAiE,EAAE,YAAY,oBAAoB,MAAM,aAAa,YAAY,GAAG,IAAI,mCAAmC,SAAS,qCAAqC,YAAY,sBAAsB,4DAA4D,wBAAwB,sBAAsB,sCAAsC,qDAAqD,UAAU,sBAAsB,oEAAoE,sBAAsB,gCAAgC,sBAAsB,wCAAwC,wBAAwB,yCAAyC,yBAAyB,uBAAuB,sBAAsB,4BAA4B,wBAAwB,IAAI,SAAS,SAAS,OAAO,UAAU,oBAAoB,aAAa,oBAAoB,sBAAsB,IAAI,YAAY,SAAS,WAAW,sBAAsB,0CAA0C,qCAAqC,wBAAwB,yEAAyE,sBAAsB,aAAa,QAAQ,sEAAsE,IAAI,IAAI,kBAAkB,gBAAgB,wBAAwB,GAAG,sBAAsB,4BAA4B,iDAAiD,YAAY,gBAAgB,IAAI,sGAAsG,UAAU,qBAAqB,gDAAgD,WAAW,sBAAsB,wCAAwC,oCAAoC,UAAU,EAAE,sBAAsB,6DAA6D,0BAA0B,mCAAmC,wBAAwB,GAAG,sBAAsB,aAAa,kBAAkB,2BAA2B,8KAA8K,uBAAuB,sBAAsB,4BAA4B,mCAAmC,eAAe,sBAAsB,gBAAgB,0BAA0B,6BAA6B,UAAU,oBAAoB,sBAAsB,IAAI,OAAO,oBAAoB,SAAS,OAAO,oBAAoB,sBAAsB,aAAa,gmBAAgmB,uBAAuB,OAAO,mBAAmB,yDAAyD,uCAAuC,yCAAyC,iCAAiC,eAAe,eAAe,GAAG,oBAAoB,oCAAoC,gBAAgB,0BAA0B,+BAA+B,GAAG,kBAAkB,MAAM,gDAAgD,oBAAoB,gBAAgB,cAAc,kBAAkB,cAAc,+BAA+B,kBAAkB,qEAAqE,IAAI,iLAAiL,SAAS,sBAAsB,sDAAsD,IAAI,oBAAoB,QAAQ,+FAA+F,mBAAmB,8DAA8D,kBAAkB,qBAAqB,wBAAwB,uBAAuB,6CAA6C,oDAAoD,GAAG,gBAAgB,kCAAkC,kBAAkB,qBAAqB,+CAA+C,GAAG,sBAAsB,mBAAmB,YAAY,sBAAsB,4DAA4D,sBAAsB,YAAY,mBAAmB,IAAI,qDAAqD,YAAY,gBAAgB,OAAO,SAAS,IAAI,oCAAoC,SAAS,aAAa,oCAAoC,SAAS,MAAM,QAAQ,SAAS,mBAAmB,8BAA8B,cAAc,IAAI,+BAA+B,SAAS,cAAc,eAAe,QAAQ,oFAAoF,EAAE,4BAA4B,mBAAmB,6BAA6B,kKAAkK,mBAAmB,4BAA4B,eAAe,mBAAmB,8DAA8D,mBAAmB,kCAAkC,kFAAkF,WAAW,4BAA4B,cAAc,aAAa,GAAG,UAAU,2BAA2B,kCAAkC,EAAE,kBAAkB,kCAAkC,OAAO,4BAA4B,EAAE,UAAU,8BAA8B,2BAA2B,EAAE,mBAAmB,cAAc,0CAA0C,KAAK,8BAA8B,EAAE,oBAAoB,gCAAgC,KAAK,2BAA2B,EAAE,gBAAgB,yDAAyD,gCAAgC,iBAAiB,eAAe,iDAAiD,2BAA2B,KAAK,aAAa,GAAG,qCAAqC,kBAAkB,6CAA6C,mBAAmB,iBAAiB,8BAA8B,GAAG,GAAG,sCAAsC,EAAE,sBAAsB,oDAAoD,wBAAwB,+BAA+B,WAAW,KAAK,WAAW,wBAAwB,sBAAsB,gBAAgB,qCAAqC,qBAAqB,sBAAsB,8DAA8D,sBAAsB,4CAA4C,sBAAsB,aAAa,8BAA8B,QAAQ,kCAAkC,qEAAqE,QAAQ,uCAAuC,wBAAwB,iBAAiB,sBAAsB,uFAAuF,iBAAiB,oBAAoB,IAAI,YAAY,YAAY,0BAA0B,UAAU,2JAA2J,sBAAsB,wCAAwC,sBAAsB,0BAA0B,sBAAsB,aAAa,0CAA0C,SAAS,gCAAgC,gDAAgD,kFAAkF,MAAM,EAAE,gDAAgD,cAAc,gBAAgB,wBAAwB,gEAAgE,qBAAqB,kCAAkC,mCAAmC,aAAa,kDAAkD,4BAA4B,2DAA2D,iCAAiC,sBAAsB,KAAK,wBAAwB,SAAS,iCAAiC,QAAQ,iCAAiC,OAAO,8CAA8C,aAAa,WAAW,cAAc,+BAA+B,yBAAyB,OAAO,0FAA0F,iBAAiB,kBAAkB,4BAA4B,IAAI,MAAM,oEAAoE,kEAAkE,SAAS,oBAAoB,WAAW,iKAAiK,MAAM,uFAAuF,IAAI,GAAG,gCAAgC,sBAAsB,GAAG,kEAAkE,qBAAqB,KAAK,MAAM,2KAA2K,iDAAiD,iDAAiD,UAAU,sBAAsB,WAAW,gEAAgE,gGAAgG,oBAAoB,kCAAkC,0BAA0B,GAAG,2BAA2B,iCAAiC,qCAAqC,4CAA4C,kCAAkC,yCAAyC,qBAAqB,0BAA0B,yBAAyB,iCAAiC,EAAE,8BAA8B,MAAM,0DAA0D,+BAA+B,MAAM,2DAA2D,+BAA+B,MAAM,2DAA2D,gCAAgC,MAAM,4DAA4D,+BAA+B,MAAM,2DAA2D,gCAAgC,MAAM,4DAA4D,sBAAsB,MAAM,kDAAkD,uBAAuB,MAAM,mDAAmD,sBAAsB,MAAM,kDAAkD,sBAAsB,MAAM,kDAAkD,sBAAsB,MAAM,kDAAkD,0BAA0B,MAAM,sDAAsD,yBAAyB,MAAM,qDAAqD,iBAAiB,MAAM,6CAA6C,mBAAmB,MAAM,+CAA+C,oBAAoB,2CAA2C,uBAAuB,MAAM,mDAAmD,sBAAsB,6CAA6C,4BAA4B,mDAAmD,6BAA6B,MAAM,yDAAyD,sCAAsC,8DAA8D,qBAAqB,MAAM,iDAAiD,wBAAwB,MAAM,oDAAoD,mCAAmC,0DAA0D,2BAA2B,4DAA4D,2BAA2B,kDAAkD,+BAA+B,8DAA8D,gCAAgC,MAAM,4DAA4D,sCAAsC,8DAA8D,wBAAwB,+CAA+C,wBAAwB,gDAAgD,8BAA8B,sDAAsD,wBAAwB,gDAAgD,6BAA6B,qDAAqD,QAAQ,iBAAiB,MAAM,wEAAwE,mBAAmB,MAAM,wEAAwE,gBAAgB,iEAAiE,0BAA0B,MAAM,iDAAiD,MAAM,WAAW,QAAQ,eAAe,sBAAsB,4BAA4B,sBAAsB,gBAAgB,oBAAoB,WAAW,qfAAqf,sBAAsB,gBAAgB,4DAA4D,sBAAsB,gBAAgB,qBAAqB,aAAa;AACtkhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDA;AACA;AACA;AACA;AACuD;AACR;AACN;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB,qBAAqB,gBAAgB;AACpG,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,iFAAiF,wBAAQ;AACzF,+EAA+E,wBAAQ;AACvF,0CAA0C,WAAW,wBAAwB,mBAAmB,sBAAsB,iBAAiB;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAiB,KAAK,uBAAK,8FAA8F,wBAAQ;AAC7J;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,gCAAgC,sCAAiB,KAAK,uBAAK,0FAA0F,wBAAQ;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF;AACA,sFAAsF,wBAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACoC;AACsB;AACN;AACQ;AACsE;AAC7D;AACO;AACpB;AACsB;AACyB;AAC7B;AACpB;AACN;AACmB;AACa;AACc;AACjC;AAC7D;AACO,gCAAgC,sCAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACO;AACP;AACA;AACA,aAAa,sBAAc;AAC3B;AACA;AACA;AACA,aAAa,sBAAc;AAC3B;AACA;AACA,aAAa,yBAAiB,mBAAmB,sBAAc;AAC/D;AACA;AACA,aAAa,yBAAiB,sBAAsB,sBAAc;AAClE;AACA;AACA,aAAa,yBAAiB,6BAA6B,uBAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;AACA,aAAa,sBAAc;AAC3B;AACA;AACA;AACA,aAAa,sBAAc,8BAA8B,sBAAc;AACvE;AACA;AACA,aAAa,yBAAiB,sBAAsB,sBAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA,+CAA+C,2CAAkB;AACjE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,gCAAgB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8CAA8C,2CAAkB;AAChE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAqB;AACzD;AACA;AACA;AACA,KAAK;AACL,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H,gCAAW;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,wBAAQ;AAC1G;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,KAAK;AACL,oDAAoD,kDAAqB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,KAAK;AACL,qDAAqD,kDAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA,kDAAkD,kDAAqB;AACvE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,qBAAqB;AACrB;AACA,KAAK;AACL,sDAAsD,kDAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA,oDAAoD,kDAAqB;AACzE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,qBAAqB;AACrB;AACA,KAAK;AACL,wDAAwD,kDAAqB;AAC7E;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAW;AACrC,aAAa;AACb;AACA;AACA,2BAA2B,oCAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAkB;AAC7C;AACA;AACA;AACA;AACA,2BAA2B,4CAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,4CAAkB;AACjH;AACA;AACA;AACA,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,8CAA8C,kDAAqB;AACnE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,yCAAyC,kDAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,+CAA+C,kDAAqB;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,sCAAsC,kDAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,mBAAmB,6DAA6D;AAChF,qBAAqB;AACrB;AACA,KAAK;AACL,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,gDAAgD,kDAAqB;AACrE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,8CAA8C,kDAAqB;AACnE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,mBAAmB,+DAA+D;AAClF,qBAAqB;AACrB;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,kDAAkD,kDAAqB;AACvE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA;AACA,KAAK;AACL,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAkB;AAC7C;AACA;AACA,2BAA2B,4CAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oDAAoD,kDAAqB;AACzE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAAkB;AAChE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,4CAAkB;AAC1G;AACA;AACA;AACA,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,8CAA8C,kDAAqB;AACnE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA;AACA;AACA;AACA,6CAA6C,kDAAqB;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,mDAAmD,kDAAqB;AACxE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,4CAAkB;AAC1G;AACA;AACA;AACA,uCAAuC,kDAAqB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oBAAY;AACzD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,6CAA6C,kDAAqB;AAClE;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oBAAY;AACzD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA;AACA;AACA;AACA,2CAA2C,kDAAqB;AAChE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,iDAAiD,kDAAqB;AACtE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,4CAAkB;AAC1G;AACA;AACA;AACA,uCAAuC,kDAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,6CAA6C,kDAAqB;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,4CAAkB;AAC1G;AACA;AACA;AACA,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL,gDAAgD,kDAAqB;AACrE;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAAiB;AACrC;AACA,mBAAmB;AACnB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4CAAkB;AACtC;AACA;AACA,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,wBAAQ;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAqB;AAC/D,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B,yDAAyD;AACpF,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,6CAA6C,kDAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B,2DAA2D;AACtF,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,gDAAgD,kDAAqB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,yCAAyC,kDAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA,KAAK;AACL,kDAAkD,kDAAqB;AACvE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAAkB;AAChE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA,KAAK;AACL,4CAA4C,kDAAqB;AACjE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAAkB;AAChE;AACA;AACA;AACA;AACA,kDAAkD,kDAAqB;AACvE;AACA;AACA;AACA,KAAK;AACL,sDAAsD,kDAAqB;AAC3E;AACA;AACA;AACA,KAAK;AACL,6CAA6C,kDAAqB;AAClE;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB,4CAAkB;AAClC;AACA;AACA;AACA,KAAK;AACL,oDAAoD,kDAAqB;AACzE;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAM,CAAC,oBAAY;AAC/B;AACA,KAAK;AACL,wCAAwC,kDAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,yCAAgB;AAClC;AACA;AACA,gBAAgB,yBAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAkB;AAClC;AACA;AACA,KAAK;AACL,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA,KAAK;AACL,CAAC,wDAAwD;AACzD,iCAAiC,iCAAc,KAAK,0CAAiB,iBAAiB,0CAAiB;AACvG;AACA,IAAI,8CAAmB;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qCAAqC,sCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA,0CAA0C,kDAAqB;AAC/D;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA,4CAA4C,2CAAc;AAC1D;AACA,KAAK;AACL,kCAAkC,kDAAqB;AACvD;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,4BAA4B,iCAAc,KAAK,0CAAiB,kBAAkB,0CAAiB;AACnG;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4CAA4C,2CAAc;AAC1D;AACA;AACA,KAAK;AACL,8BAA8B,kDAAqB;AACnD;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,4BAA4B,iCAAc,KAAK,0CAAiB,kBAAkB,0CAAiB;AACnG;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4CAA4C,2CAAc;AAC1D;AACA;AACA,KAAK;AACL,qCAAqC,kDAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA,6DAA6D,8CAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sCAAsC,kDAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0CAAiB;AAC7C;AACA,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA,6DAA6D,8CAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,oCAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAkB,oCAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,kDAAkD;AACnD;AACA;AACA;AACA,mCAAmC,gCAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,2CAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9rDa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,0CAA0C,KAAK,UAAU,IAAI,EAAE,WAAW;AAC1E,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AAC2C;AACa;AACsB;AAC5B;AAC4B;AACvE,iCAAiC,iGAAe;AAChD;AACP;AACA,8IAA8I,6DAAG;AACjJ;AACO;AACP;AACA;AACA;AACA;AACA;AACO,uDAAuD;AACvD,yCAAyC;AACzC;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qIAAqI,6DAAG;AACxI;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACO;AACA,4BAA4B,MAAM,2DAAQ,wEAAwE;AAClH;AACA;AACP;AACA;;;;;;;;;ACnIa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5FA;AACA;AACA;AACA;AACuD;AACa;AACT;AACA;AACZ;AACN;AAClC;AACP;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,sCAAsC,mEAAW;AACjD;AACA,sCAAsC,mEAAW,gBAAgB,6EAAc;AAC/E;AACA;AACA,sCAAsC,mEAAW,eAAe,6EAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,sCAAsC,mEAAW;AACjD;AACA,sCAAsC,mEAAW,gBAAgB,6EAAc;AAC/E;AACA;AACA,sCAAsC,mEAAW,eAAe,6EAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAW,eAAe,6EAAc;AACvD;AACA;AACA,eAAe,mEAAW,gBAAgB,6EAAc;AACxD;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAW,eAAe,6EAAc;AACvD;AACA;AACA,eAAe,mEAAW,gBAAgB,6EAAc;AACxD;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAW,oBAAoB,yEAAiB,KAAK,0DAAK,oFAAoF,gEAAQ;AAC9K;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,gBAAgB,6EAAc;AACjE;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,gBAAgB,6EAAc;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAW,oBAAoB,yEAAiB,KAAK,0DAAK,wDAAwD,gEAAQ;AACzI;AACA;AACA;AACA;AACA,sEAAsE,gEAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAW,oBAAoB,yEAAiB,KAAK,0DAAK,sGAAsG,gEAAQ;AAC3L;AACA;AACA;AACA;AACA,mBAAmB,mEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAW;AAC9B;AACA;AACA;AACA,mBAAmB,mEAAW;AAC9B;AACA;AACA;AACA;AACA,eAAe,mEAAW,gBAAgB,6EAAc;AACxD;AACA;AACA;AACA,uBAAuB,mEAAW;AAClC;AACA;AACA;AACA,eAAe,mEAAW,mBAAmB,yEAAiB,KAAK,0DAAK,oFAAoF,gEAAQ;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gEAAQ;AAC9E;AACA,eAAe,mEAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mEAAW,eAAe,6EAAc;AACzF;AACA;AACA,iDAAiD,mEAAW,gBAAgB,6EAAc;AAC1F;AACA;AACA;AACA;AACA,iDAAiD,mEAAW,eAAe,6EAAc;AACzF;AACA;AACA,iDAAiD,mEAAW,gBAAgB,6EAAc;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6EAAc;AAC3C,mBAAmB,mEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mEAAW,eAAe,6EAAc;AAC7E;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA,wBAAwB,mEAAW,eAAe,6EAAc;AAChE;AACA;AACA;AACA;AACA,qCAAqC,mEAAW,eAAe,6EAAc;AAC7E;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA,wBAAwB,mEAAW,eAAe,6EAAc;AAChE;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,eAAe,6EAAc;AAChE;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,gBAAgB,6EAAc;AACjE;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,eAAe,6EAAc;AAChE;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA,wBAAwB,mEAAW,gBAAgB,6EAAc;AACjE;AACA;AACA;AACA;AACA,eAAe,mEAAW;AAC1B;AACA;AACA,eAAe,mEAAW;AAC1B;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,aAAa,qEAAc;AAC3B;AACA;AACA;AACA,aAAa,qEAAc;AAC3B;AACA;AACA,aAAa,wEAAiB,2BAA2B,sEAAe;AACxE;AACA;AACA,aAAa,wEAAiB,uBAAuB,qEAAc;AACnE;AACA;AACA,aAAa,wEAAiB,0BAA0B,qEAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;;;;;;;AC1oBjC;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;AC5FD;AACA;AACA;AACA;AAC0D;AACF;AACD;AAChB;AAC4B;AACiC;AACvC;AACtD;AACP;AACA;AACO,sBAAsB,cAAc;AACpC,8BAA8B,cAAc;AAC5C,0BAA0B,cAAc;AACxC,qCAAqC,cAAc;AACnD,yBAAyB,cAAc;AACvC,2BAA2B,cAAc;AACzC;AACP,6BAA6B,2EAAQ,IAAI,gGAAc;AACvD;AACA;AACA;AACA,sCAAsC,oEAAO;AAC7C,6CAA6C,oEAAO;AACpD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0IAA0I;AACrL,mEAAmE,4CAA4C;AAC/G,qCAAqC,0FAA6B;AAClE;AACA;AACA;AACA,qCAAqC,uDAAY,2FAA2F,GAAG;AAC/I;AACA;AACA,gCAAgC,qEAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,+BAA+B;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,6EAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2CAA2C,WAAW;AACtG;AACA;AACA,qCAAqC,6EAAuB;AAC5D,0CAA0C,6EAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA,6BAA6B,uDAAY;AACzC,8BAA8B,uDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAiB;AAC7B;AACA;AACA;AACA,YAAY,wEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uCAAuC,4BAA4B;AACnE;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0EAAQ;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAAQ;AACD;AACP;AACA;AACA,eAAe,uDAAY;AAC3B;AACA;AACA,eAAe,uDAAY,uDAAuD,EAAE;AACpF;AACA;AACA,eAAe,uDAAY,iDAAiD,EAAE;AAC9E;AACA;AACA,eAAe,uDAAY,+CAA+C,EAAE,0BAA0B,GAAG,4BAA4B,EAAE;AACvI;AACA;AACA;;;;;;;;;;;;;;;AC5TA;AACA;AACA;AACA;AAC4C;AACrC;AACP,UAAU,yBAAS;AACnB,UAAU,yBAAS;AACnB,UAAU,yBAAS;AACnB,UAAU,yBAAS;AACnB,iBAAiB,yBAAS;AAC1B,eAAe,yBAAS,GAAG,gGAAgG;AAC3H,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZD;AACA;AACA;AACA;AACuD;AAC6B;AACzB;AACwB;AAClB;AACrC;AACyD;AACqB;AAC9C;AACU;AACS;AACkB;AACO;AACjG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAM;AACrB,eAAe,yBAAM;AACrB;AACA;AACA,kBAAkB,gDAAwB,4BAA4B,4BAA4B;AAClG;AACA;AACA;AACA;AACO,iCAAiC,4BAAU;AAClD;AACA;AACA;AACA,qCAAqC,iCAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wDAAwB;AAC9F;AACA;AACA;AACA,+HAA+H,6BAA6B;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB;AACnE,yGAAyG,kEAAkE;AAC3K,2CAA2C,qDAAqD;AAChG;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH,6BAA6B;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa;AAChE,uDAAuD,aAAa;AACpE,4CAA4C,aAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAyB,2BAA2B,qBAAa;AACpG;AACA;AACA,SAAS;AACT,mCAAmC,iCAAyB,2BAA2B,qBAAa;AACpG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,6BAAQ;AAC7G;AACA;AACA;AACA;AACA,sCAAsC,qCAAc;AACpD;AACA;AACA;AACA;AACA,oCAAoC,wCAAe;AACnD,uBAAuB,mCAAa;AACpC,6BAA6B,2CAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,KAAK;AACrD,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iBAAiB;AACnE,6CAA6C,4BAA4B;AACzE,mDAAmD,2BAA2B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE,2CAA2C,iBAAiB;AAC5D,6CAA6C,iBAAiB;AAC9D,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0JAA0J;AACzL,uCAAuC,yBAAyB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAAqB;AAC5C,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD,uCAAuC,UAAU;AACjD,iCAAiC,0BAAS,2BAA2B,+CAAoB,GAAG,8CAAmB;AAC/G;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACpbA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACmF;AACK;AACmB;AACvB;AACM;AACP;AACA;AACwB;AACrC;AACa;AACpB;AACoC;AACnG;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AACzB,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA;AACA;AACA,mDAAmD,4BAAO;AAC1D,mDAAmD,iCAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,oCAAiB;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,2CAAqB;AACpC,eAAe,gDAAwB;AACvC;AAC+B;AAC/B,2CAA2C,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qCAAqC,gDAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gBAAgB,oCAAiB;AACjC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAY;AAC3B;AACA;AACA;AACA,gBAAgB,mCAAmC;AACnD;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAQ,kDAAkD,yCAAY;AAClF,6BAA6B,wBAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,+BAA+B,WAAW;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAwB;AACvC;AACA;AACA;AACA;AACA,yCAAyC,kCAAmB;AAC5D;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa;AACtD,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa,KAAK,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+CAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAiB;AACnD;AACA,+CAA+C,8CAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gDAAwB;AACvC;;;ACzUA;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiG;AACT;AACN;AACd;AACH;AACN;AACgD;AACtC;AAC9D;AACP;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,4BAAU;AACtF;AACA;AACA;AACA;AACA,2DAA2D,4BAAO;AAClE;AACA;AACA;AACA;AACA;AACA,gDAAgD,iCAAe;AAC/D,8CAA8C,qCAAgB;AAC9D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B,iCAAY;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAAY,wDAAwD,eAAe;AAC/H,4CAA4C,+BAAY,gEAAgE,eAAe;AACvI,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6BAAU;AACxC,IAAI,0BAAO,IAAI,gDAAwB;AACvC,IAAI,0BAAO,IAAI,mEAA6B;AAC5C;AACuC;;;;;;;;;;;;;;;;;;;ACvKvC;AACA;AACA;AACA;AACA,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,4BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiG;AACT;AACF;AACd;AAC2B;AACL;AACtB;AACkB;AACjB;AACY;AAC/B;AAC4B;AACW;AACjC;AACsB;AACyB;AACL;AAC/C;AACA;AACqB;AACP;AACO;AAC5E,6FAA6F,4BAAU;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,gDAAgD,2BAA2B;AAC3E;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,sBAAsB,qBAAa;AACnF,gCAAgC,qBAAa;AAC7C,SAAS;AACT,8CAA8C,0CAAiB;AAC/D,8CAA8C,0CAAiB;AAC/D,4CAA4C,sBAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,iCAAyB,sBAAsB,qBAAa;AACnF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAqE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAK;AACvC;AACA;AACA;AACA,gDAAgD,iCAAe;AAC/D,2CAA2C,yCAAgB;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAK;AAChC;AACA;AACA;AACA;AACA,uBAAuB,yCAAiC,4BAA4B,qBAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAAQ;AACvC;AACA;AACA,SAAS;AACT,uBAAuB,yCAAiC,4BAA4B,qBAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,4BAA4B,qBAAa;AACzF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4CAAuB;AACjE,6BAA6B,iCAAY;AACzC;AACA,YAAY,+CAAwB,gFAAgF,6BAAQ;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAY;AACrD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,yCAAyC,iCAAY;AACrD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4CAA4C;AACnF;AACA,8CAA8C,qDAA0B,qBAAqB,6EAA6E;AAC1K,SAAS;AACT;AACA;AACA,0BAA0B,oCAAkB;AAC5C;AACA,oBAAoB,sBAAM;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,+BAAU;AAC9D,IAAI,4BAAO,IAAI,sCAAmB;AAClC,IAAI,4BAAO,IAAI,gDAAwB;AACvC,IAAI,4BAAO,IAAI,2CAAqB;AACpC,IAAI,4BAAO,IAAI,mEAA6B;AAC5C,IAAI,4BAAO,IAAI,8DAA+B;AAC9C,IAAI,4BAAO,IAAI,qCAAkB;AACjC;AACkC;;;ACpgBlC;AACA;AACA;AACA;AACqE;AACZ;AACiC;AACT;AACkB;AACb;AACb;AACJ;AAC9D,iCAAiC,sBAAO;AAC/C;AACA;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,+BAA+B,wBAAQ,GAAG,iEAAiE;AAC3G,aAAa;AACb;AACA,6BAA6B,yBAAS;AACtC,aAAa;AACb,sBAAsB,UAAU;AAChC;AACA,2BAA2B,iCAAc;AACzC,uBAAuB,wBAAQ;AAC/B,+BAA+B,wBAAQ,GAAG,2DAA2D;AACrG,aAAa;AACb;AACA,kBAAkB,IAAI,sBAAM,iBAAiB;AAC7C,kBAAkB,IAAI,sBAAM,qDAAqD;AACjF,kBAAkB,IAAI,sBAAM;AAC5B;AACA,SAAS;AACT;AACA;AACA,kDAAkD,2CAAqB;AACvE;AACA;AACA;AACA;AACA;AACO,gCAAgC,sCAAa;AACpD;AACA;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,+BAA+B,wBAAQ,GAAG,gEAAgE;AAC1G,aAAa;AACb,0BAA0B,iCAAc,KAAK,iCAAc,4CAA4C,0CAAiB;AACxH;AACA,kBAAkB,IAAI,sBAAM,iBAAiB;AAC7C;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACO,yCAAyC,sCAAa;AAC7D;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACO,6CAA6C,sCAAa;AACjE;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACO,mCAAmC,sCAAa;AACvD;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACO,2BAA2B,sCAAa;AAC/C;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;;;ACjIA;AACA;AACA;AACA;AACkF;AAC+F;AAC5G;AACY;AACjF,uDAA0B,CAAC,sBAAsB,KAAK,sBAAsB;AAC5E,mCAAe,CAAC,kBAAkB;AAClC,mCAAe,CAAC,iBAAiB;AACjC,mCAAe,CAAC,8BAA8B;AAC9C,mCAAe,CAAC,0BAA0B;AAC1C,mCAAe,CAAC,oBAAoB;AACpC,mCAAe,CAAC,YAAY;;;;;;;;ACd5B,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;ACFA,cAAc,mBAAO,CAAC,KAAS;AAC/B;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,sBAAsB,GAAG,6BAA6B;AAC9E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACuD;AACvD;AACA;AACA;AACO;AACP;AACA,6BAA6B,sEAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvDA,cAAc,mBAAO,CAAC,KAAkB;;AAExC;AACA;AACA;AACA;;AAEA;;;;;;;;;ACPa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACwD;AACb;AACmC;AACvE;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAAQ;AACpD,8CAA8C,2DAAQ;AACtD,2CAA2C,2DAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yEAAQ;AACzB,iBAAiB,yEAAQ;AACzB,iBAAiB,yEAAQ;AACzB,iBAAiB,yEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,8CAA8C,yEAAQ;AACtD,gDAAgD,yEAAQ;AACxD,6CAA6C,yEAAQ;AACrD,6CAA6C,yEAAQ;AACrD;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AAC5B,uBAAuB,iGAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnH7C;AACA;AACA;AACA;AAC+C;AACN;AACQ;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8BAAQ;AACpE;AACA;AACA;AACA;AACA,mCAAmC,wBAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C,4BAA4B,wCAAwC,GAAG,2BAA2B,GAAG,yBAAyB;AAC9H;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACngBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC6D;AACkB;AACH;AACD;AACf;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAQ;AACxD,iFAAiF,gBAAgB,IAAI,iBAAiB,eAAe,2CAAa,yBAAyB,cAAc,2CAAa,oCAAoC;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uEAAuE;AACnH;AACA;AACA;AACA;AACA;AACA,uEAAuE,oBAAQ;AAC/E,2GAA2G,8BAA8B,cAAc,4CAA4C;AACnM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oBAAQ;AAC5D,uGAAuG,gBAAgB,cAAc,wCAAwC;AAC7K;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAQ;AACxD,wEAAwE,gBAAgB,GAAG,UAAU,MAAM,kBAAkB,GAAG,yBAAyB,gBAAgB,2CAAa,yBAAyB,cAAc,2CAAa,oCAAoC;AAC9Q;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,WAAW,WAAW,YAAY;AAC1H;AACA;AACA;AACA;AACA;AACA,+FAA+F,WAAW,WAAW,YAAY;AACjI;AACA;AACA;AACA;AACA;AACA,8FAA8F,iBAAiB,cAAc,SAAS,aAAa,UAAU,8BAA8B,WAAW,uCAAuC,iBAAiB;AAC9P;AACA;AACA;AACA;AACA,eAAe,kCAAa;AAC5B,eAAe,gCAAgB;AAC/B,eAAe,uBAAW;AAC1B;AACyC;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClRA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuE;AACwB;AACnC;AAC4B;AACV;AACL;AACO;AACS;AACiB;AACb;AACM;AACrB;AACU;AAC1C;AACkB;AAChB;AACoB;AACsB;AACd;AAC5E,oCAAoC,6FAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA,oDAAoD,0GAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mFAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oGAAkC,oCAAoC,yFAA0B;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gFAAmB;AACtC;AACA,mBAAmB,gFAAmB;AACtC,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iFAAc;AAChD;AACA;AACA;AACA;AACA;AACA,qCAAqC,+FAAa;AAClD;AACA;AACA,gBAAgB,kFAAe;AAC/B,qCAAqC,+FAAa,0BAA0B,iFAAc,cAAc,4DAAQ;AAChH;AACA;AACA;AACA;AACA,kCAAkC,iFAAc;AAChD;AACA;AACA;AACA;AACA;AACA,qCAAqC,+FAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4EAAoB;AAC1C,0BAA0B,4DAAQ;AAClC,0BAA0B,4DAAQ;AAClC,sBAAsB,4EAAoB;AAC1C,0BAA0B,4DAAQ;AAClC,0BAA0B,4DAAQ;AAClC;AACA,mCAAmC,iFAAc,cAAc,4DAAQ,2CAA2C,EAAE;AACpH;AACA;AACA,mCAAmC,iFAAc,cAAc,4DAAQ,iCAAiC,EAAE;AAC1G;AACA;AACA,mCAAmC,iFAAc,KAAK,4DAAQ,gCAAgC,IAAI,wEAAa,qBAAqB,GAAG,wBAAwB,MAAM,GAAG,MAAM,iBAAiB;AAC/L;AACA;AACA,yCAAyC,+FAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,gFAAmB;AACtC;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,gFAAmB;AAC1C;AACA,mBAAmB,2GAAsC,yDAAyD,wEAAQ;AAC1H,iCAAiC,4FAAqB;AACtD,iCAAiC,+FAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oFAAgB;AAC/B,eAAe,uFAAc;AAC7B,eAAe,mGAAkB;AACjC,eAAe,sFAAa;AAC5B,eAAe,4GAAqB;AACpC,eAAe,2FAAiB;AAChC,eAAe,oGAAwB;AACvC;AAC2B;;;;;;;;;;;;;;;;;AC9JkD;AACpB;AAClD,8BAA8B,qFAAkB;AACvD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,qFAAkB;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC3DA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACwG;AACnC;AACtB;AACwC;AACV;AAChB;AACT;AACuE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa,YAAY;AACrE,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,SAAS,0EAAU,iBAAiB;AAC1F;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,UAAU,0EAAU,kBAAkB;AAC5F;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,0BAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAU;AACrC;AACA;AACA,4BAA4B,0EAAU;AACtC;AACA,QAAQ,iFAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAO;AACnB,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,YAAY,mEAAO;AACnB,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gBAAgB;AACvG;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA,sDAAsD,iFAAiB;AACvE;AACA,6BAA6B,2BAA2B;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iFAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,YAAY,iFAAiB,aAAa,iFAAiB;AAC3D;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,wBAAwB,4EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB,yFAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gFAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yEAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAI;AACZ;AACA;AACA,YAAY,sEAAS;AACrB,gBAAgB,iFAAiB;AACjC,2BAA2B,gEAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAiB,iBAAiB,iFAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe,gBAAgB;AAC/B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,4BAA4B,mEAAO;AACjE;AACA;AACA,qCAAqC,iFAAiB;AACtD,iCAAiC,iFAAiB;AAClD;AACA,YAAY,iFAAiB,iBAAiB,uBAAuB;AACrE;AACA,6BAA6B,iFAAiB;AAC9C;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,oBAAoB,2EAAW;AAC/B,oBAAoB,wEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAS;AACzB;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,iFAAiB;AAC9C;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA,oBAAoB,2EAAW;AAC/B,oBAAoB,wEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,qEAAS;AACzB;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,iFAAiB;AAC7G;AACA;AACA,oBAAoB,0EAAU;AAC9B,sBAAsB,0EAAU;AAChC;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB,kBAAkB,iFAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ,GAAG,sBAAsB;AACzC;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACM;AACjB;AACA;AACA;AACA,YAAY,cAAc;AAC1B,WAAW,SAAS;AACpB;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,cAAc;AAC1B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,cAAc;AAC1B;AACA;AACO;AACP,8BAA8B;AAC9B;AACA,oBAAoB,oBAAoB;AACxC;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC90BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACqC;AACO;AACR;AAC7B,qBAAqB,+DAAU;AACtC;AACA;AACA,+CAA+C,wDAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,+DAAU;AAC5C;AACA;AACA,6CAA6C,wDAAO;AACpD;AACA,4CAA4C,wDAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/jBA;AACA;AACA;AACA;AAC6D;AACmB;AACnC;AAC7C;AACA;AACA;AACA;AACA,iCAAiC,2EAAoB;AACrD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,+DAAU;AAChF;AACA;AACA,sCAAsC,6EAAoB;AAC1D;AACA,wCAAwC,6EAAoB;AAC5D;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,GAAG,yBAAyB,GAAG,2BAA2B,GAAG,gBAAgB,GAAG,mBAAmB;AAC5L;AACA;AACA;AACA;AACA;AACA,mCAAmC,6EAAoB;AACvD;AACA;AACA,sBAAsB,WAAW,IAAI,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxJA;AACA;AACA;AACA;AACyC;AACzC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/YA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACZA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC1ED,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,sDAAsD,KAAK,WAAW,IAAI,EAAE,WAAW;AACvF,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACwC;AACyD;AAClD;AACN;AACzC;AACA;AACA,IAAI,UAAU;AACd;AACO;AACP,mCAAmC,+BAAa;AAChD;AACA;AACA;AACA,IAAI,UAAU;AACd;AACO;AACP;AACA,mCAAmC,+BAAa;AAChD;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,mCAAmC,+BAAa;AAChD;AACA;AACA;AACA;AACO;AACP,sBAAsB,iCAAe;AACrC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,WAAW,iCAAY;AACvB;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAAS;AACvB;AACA,QAAQ,qCAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6BAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;;;;;;;AChL3B;AACA;AACA;AACA;AACuC;AACU;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,OAAO;AACzB;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,gCAAiB;AAC5C,aAAa;AACb;AACA;AACA;AACA,2BAA2B,gCAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AC1DA;AACA;AACA;AACA;AACuH;AACR;AACA;AACgI;AAChL;AACsB;AACrF;AACA;AACA;AACA,IAAI,6BAAS,KAAK,uCAAuB;AACzC;;;;;;;;;ACda;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;AClBa;AACb,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AAC4E;AACmB;AAC1C;AACC;AACY;AACkB;AACI;AACP;AACkB;AAC5F;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0HAA0H;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,qFAAiB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA,gCAAgC,mGAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2FAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC,eAAe,mGAAwB;AAC1F,+BAA+B,6EAAa;AAC5C;AACA,cAAc,iFAAe;AAC7B;AACA,yDAAyD,4GAAqB,8CAA8C,UAAU;AACtI,aAAa;AACb;AACA,4FAAgB;AAChB;AACA,8BAA8B,6DAAG;AACjC,cAAc,iFAAe;AAC7B;AACA,YAAY,gEAAgE;AAC5E,qFAAqF,qFAAiB;AACtG,CAAC;AACD,4FAAgB;AAChB;AACA,YAAY,aAAa;AACzB,yBAAyB,6DAAG,qDAAqD,iEAAK;AACtF,cAAc,iFAAe;AAC7B;AACA,YAAY,gEAAgE;AAC5E;AACA,4DAA4D,uBAAuB,2BAA2B,iCAAiC,qFAAiB;AAChK,CAAC;;;;;;;;AC/GD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9ED,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxJD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AAC2B;AACjB;AAC+B;AACI;AACnB;AACX;AACV;AACyB;AACH;AACpB;AACH;AAC0B;AACpB;AACQ;AAC7C;AAC0C;AACV;AACN;AACoC;AAChD;AACI;AAC2D;AACf;AACrB;AACe;AACiJ;AACnJ;AAClF;AACA;AACO,yCAAyC,gCAAa,8BAA8B,wBAAQ;AAC5F,yCAAyC,gCAAa,8BAA8B,wBAAQ;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,gDAAgD,0BAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,iBAAiB;AACjB;AACA,4DAA4D;AAC5D,6CAA6C;AAC7C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mCAAY;AAC7D,iDAAiD,mCAAY;AAC7D,0EAA0E,6CAAsB;AAChG,4EAA4E,kBAAkB;AAC9F,sEAAsE,kBAAkB;AACxF,gEAAgE,sCAAe;AAC/E,sCAAsC,kCAAW;AACjD,0FAA0F,sCAAe;AACzG,wFAAwF,sCAAe;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAU;AAClB;AACA;AACA,wCAAwC,8CAA8C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAiB;AACzC,0BAA0B,kCAA0B;AACpD;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,sCAAsC,YAAY;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAQ,GAAG,kGAAkG,IAAI,GAAG,YAAY,GAAG;AACnK,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAU;AAClB,QAAQ,2BAAU;AAClB,QAAQ,2BAAU;AAClB,+BAA+B,0BAAkB;AACjD,4BAA4B,0BAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAiB;AACpC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,yBAAyB,yDAAyD;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA,kCAAkC,iCAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAyB;AACvD,8BAA8B,iCAAyB,+BAA+B,qBAAa;AACnG,qCAAqC,0CAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,6BAA6B,wBAAQ;AACrC;AACA;AACA;AACA;AACA,sGAAsG;AACtG;AACA,0BAA0B,iCAAY;AACtC;AACA;AACA,SAAS,IAAI;AACb,0BAA0B,iCAAY;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT,0BAA0B,iCAAY;AACtC,gCAAgC,oCAAe;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,4DAA4D,kCAAkC,IAAI;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yEAAyE,QAAQ,oJAAoJ;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAU;AAClB;AACA,oDAAoD,4CAAuB;AAC3E,sDAAsD,0CAAwB,UAAU,0CAAwB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAU;AAClB;AACA;AACA;AACA,aAAa,kBAAK,wBAAwB,kBAAK,kCAAkC,kBAAK;AACtF;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,yCAAgB;AACvD;AACA;AACA;AACA;AACA;AACA,+GAA+G,2BAAS;AACxH;AACA;AACA,8EAA8E,iBAAiB;AAC/F;AACA,8BAA8B,uBAAe;AAC7C,uCAAuC,sBAAsB;AAC7D,2DAA2D,eAAe;AAC1E,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAa;AAC5B,eAAe,oCAAkB;AACjC,eAAe,qCAAkB;AACjC,eAAe,uBAAW;AAC1B;AACwB;AACxB;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,+BAA+B,uCAAa;AAC5C,yCAAyC,mDAA6B;AACtE,yCAAyC,oDAA6B;AACtE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD,6CAA6C,MAAM;AACnD,QAAQ,mBAAW,CAAC,wBAAQ,6CAA6C,GAAG;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc,sCAAsC,8BAA8B;AAClG;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAI;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,wBAAQ;AAC/D;AACA;AACA;AACA;AACA,uCAAuC,oBAAY;AACnD,0CAA0C,oBAAY;AACtD,gCAAgC,mDAAyB,uBAAuB,wDAAuB;AACvG;AACA;AACA;AACA,kCAAkC,iCAAyB,aAAa,qBAAa;AACrF,kCAAkC,iCAAyB,aAAa,qBAAa;AACrF,qCAAqC,0CAAqB;AAC1D;AACA;AACA;AACA,aAAa;AACb,kCAAkC,iCAAyB,aAAa,qBAAa;AACrF;AACA,kCAAkC,iCAAyB,aAAa,qBAAa;AACrF;AACA;AACA;AACA;AACA,aAAa;AACb,kCAAkC,iCAAyB,aAAa,qBAAa;AACrF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,QAAQ,2BAAU;AAClB;AACA;AACA;AACA,QAAQ,2BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gCAAU,CAAC,uBAAO;AACzG,QAAQ,qBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,gCAAU,CAAC,uBAAO;AACnG,QAAQ,qBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA,oEAAoE,0BAA0B;AAC9F;AACA,qBAAqB,gCAAU,CAAC,uBAAO;AACvC;AACA;AACA;AACA,QAAQ,gCAAyB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,kCAAgB;AACpH;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;ACluBA;AACA;AACA;AACA;AACA,IAAI,eAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,YAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiE;AACG;AACiC;AACZ;AACf;AACH;AACT;AACT;AACwI;AAC7G;AACI;AACxB;AACN;AACmB;AACD;AACgB;AACkB;AACZ;AACf;AACrC;AACgD;AACM;AACV;AACa;AAC9B;AAC2B;AACN;AACd;AACW;AACR;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,oBAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qDAAqD,sCAAiB;AACtE;AACA,iBAAiB;AACjB;AACA,gDAAgD,sCAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD,wBAAwB,4CAAuB;AAC/C,yFAAyF,YAAY;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAkC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gCAAiB;AAC9C;AACA;AACA;AACA;AACA,6CAA6C,wCAAgB;AAC7D,0BAA0B,0CAAiB,4EAA4E,oBAAY;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,iBAAiB;AAC9E,kBAAkB,0CAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAkC;AAC3D,8CAA8C;AAC9C;AACA,6GAA6G,QAAQ,+GAA+G;AACpO;AACA;AACA,gCAAgC,0CAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,qEAAqE,iBAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0BAA0B;AAC3F;AACA;AACA;AACA;AACA,qCAAqC,kBAAK;AAC1C;AACA;AACA;AACA;AACA,uBAAuB,oBAAY,sBAAsB,EAAE,OAAO,EAAE;AACpE;AACA,+BAA+B,oBAAY,6BAA6B,GAAG,IAAI,EAAE;AACjF;AACA,aAAa;AACb;AACA;AACA,oBAAoB,sBAAK,CAAC,oBAAY,iCAAiC,EAAE,OAAO,EAAE,aAAa,EAAE;AACjG;AACA,aAAa;AACb,mDAAmD,gCAAgC;AACnF,gDAAgD,oBAAY;AAC5D;AACA,aAAa;AACb,SAAS;AACT;AACA,4CAA4C,oBAAY;AACxD;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAU;AAClD,IAAI,YAAO,IAAI,2CAAqB;AACpC,IAAI,YAAO,IAAI,yCAAoB;AACnC,IAAI,YAAO,IAAI,wCAAgB;AAC/B,IAAI,YAAO,IAAI,uCAAsB;AACrC,IAAI,YAAO,IAAI,uBAAW;AAC1B,IAAI,YAAO,IAAI,kEAAiC;AAChD,IAAI,YAAO,IAAI,gDAAwB;AACvC,IAAI,YAAO,IAAI,kCAAiB;AAChC;AACA;AACO,2BAA2B,qCAAY;AAC9C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB;AAC1F;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,2CAAkB;AAC7D;AACA,YAAY,qBAAG,eAAe,wBAAQ;AACtC,kDAAkD,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,EAAE,gCAAiB;AAChC;AACA;AACA;AACA;AACA,wCAAwC,uBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB,sBAAsB,sCAAa;AACnC,kDAAqB;AACrB;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA,gBAAgB,iCAAc,KAAK,0CAAiB,QAAQ,iCAAc;AAC1E;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,4BAA4B,EAAE,iCAAc;AACjF;AACA;AACA;AACA,gBAAgB,iCAAc,KAAK,0CAAiB,QAAQ,iCAAc;AAC1E;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,mCAAe,yCAAyC,sBAAO;AAC/D;AACA;AACA;AACA;AACA,mBAAmB,qBAAa;AAChC,aAAa;AACb,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,2CAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAe,6CAA6C,sBAAO;AACnE;AACA;AACA;AACA;AACA,mBAAmB,qBAAa;AAChC,aAAa;AACb,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,2CAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,4DAA+B;AAC/B;AACA,IAAI,2BAAU;AACd,YAAY,iBAAiB,eAAe,gDAAwB;AACpE;AACA,CAAC;AACD,4DAA+B;AAC/B,YAAY,iBAAiB,eAAe,gDAAwB;AACpE;AACA,qDAAqD,sCAAiB;AACtE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wBAAQ,IAAI,wCAAU;AACtB;AACA;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC9dY;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA,aAAa,mBAAO,CAAC,IAAW;AAChC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnED;AACA;AACA;AACA;AACqD;AACqB;AACnE;AACP;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxHwD;AACT;AACP;AACqD;AACrD;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACO;AACP;AACA;AACA,kDAAkD,uBAAO;AACzD,oDAAoD,uBAAO;AAC3D,uDAAuD,uBAAO;AAC9D,iDAAiD,uBAAO;AACxD,oDAAoD,uBAAO;AAC3D,iDAAiD,uBAAO;AACxD,kDAAkD,uBAAO;AACzD,qDAAqD,uBAAO;AAC5D,kDAAkD,uBAAO;AACzD,oDAAoD,uBAAO;AAC3D,kDAAkD,uBAAO;AACzD,qDAAqD,uBAAO;AAC5D,iDAAiD,uBAAO;AACxD,kDAAkD,uBAAO;AACzD,iDAAiD,uBAAO;AACxD,qDAAqD,uBAAO;AAC5D,iDAAiD,uBAAO;AACxD,uDAAuD,uBAAO;AAC9D,oDAAoD,uBAAO;AAC3D,oDAAoD,uBAAO;AAC3D,iDAAiD,uBAAO;AACxD,kDAAkD,uBAAO;AACzD,iDAAiD,uBAAO;AACxD,sDAAsD,uBAAO;AAC7D,wDAAwD,uBAAO;AAC/D,mDAAmD,uBAAO;AAC1D,0DAA0D,uBAAO;AACjE,iDAAiD,uBAAO;AACxD,kDAAkD,uBAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA,WAAW,4DAA4D;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kEAAkE;AAC5D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,4DAA4D;AACtD;AACP;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACO;AACP;AACA,WAAW,cAAG;AACd,WAAW,kBAAK;AAChB,YAAY,kBAAK,yCAAyC,kBAAK;AAC/D;AACA;AACA;AACA;AACO;AACP,iCAAiC,wBAAQ;AACzC,mCAAmC,wBAAQ;AAC3C,gCAAgC,wBAAQ;AACxC,oCAAoC,wBAAQ;AAC5C,sCAAsC,wBAAQ;AAC9C,+BAA+B,wBAAQ;AACvC,sCAAsC,wBAAQ;AAC9C,iCAAiC,wBAAQ;AACzC,gCAAgC,wBAAQ;AACxC,+BAA+B,wBAAQ;AACvC,oCAAoC,wBAAQ;AAC5C,qCAAqC,wBAAQ;AAC7C,+BAA+B,wBAAQ;AACvC,iCAAiC,wBAAQ;AACzC,iCAAiC,wBAAQ;AACzC,oCAAoC,wBAAQ;AAC5C,gCAAgC,wBAAQ;AACxC,kCAAkC,wBAAQ;AAC1C,kCAAkC,wBAAQ;AAC1C,oCAAoC,wBAAQ;AAC5C,kCAAkC,wBAAQ;AAC1C,mCAAmC,wBAAQ;AAC3C,kCAAkC,wBAAQ;AAC1C,kCAAkC,wBAAQ;AAC1C,yCAAyC,wBAAQ;AACjD,oCAAoC,wBAAQ;AAC5C;AACA;AACA;AACA;AACO;AACP,WAAW,wBAAQ,sBAAsB,GAAG,EAAE,EAAE;AAChD;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC,uBAAO;AAC/C,0CAA0C,uBAAO;AACjD,6CAA6C,uBAAO;AACpD,2CAA2C,uBAAO;AAClD,yCAAyC,uBAAO;AAChD,0CAA0C,uBAAO;AACjD,4CAA4C,uBAAO;AACnD,yCAAyC,uBAAO;AAChD,+CAA+C,uBAAO;AACtD,wCAAwC,uBAAO;AAC/C,8CAA8C,uBAAO;AACrD,6CAA6C,uBAAO;AACpD,6CAA6C,uBAAO;AACpD,6CAA6C,uBAAO;AACpD,2CAA2C,uBAAO;AAClD,2CAA2C,uBAAO;AAClD,4CAA4C,uBAAO;AACnD,0CAA0C,uBAAO;AACjD,2CAA2C,uBAAO;AAClD,wCAAwC,uBAAO;AAC/C,yCAAyC,uBAAO;AAChD,+CAA+C,uBAAO;AACtD,2CAA2C,uBAAO;AAClD,0CAA0C,uBAAO;AACjD,6CAA6C,uBAAO;AACpD,kDAAkD,uBAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAO;AAC1B;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACO;AACP;AACO;AACP;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,CAAC,4CAA4C;AACtC;AACP;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AACpB;AACP;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,8BAAoB,OAAO,oBAAwB;AACzD;AACP;AACA;AACA;AACA,CAAC,sDAAsD;;;;;;;;AC/YvD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;ACpI2D;AACkB;AACvE,eAAe,yEAAY;AAC3B,6BAA6B,iGAAe;AAC5C;AACP;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AAC8C;AACN;AACQ;AACiB;AACT;AACK;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wFAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mFAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,eAAe,0EAAa;AAC5B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,0EAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAS;AACnC,iDAAiD,0DAAK;AACtD;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI,gEAAQ;AAC9I;AACA;AACA;AACA,6CAA6C,0DAAK,yGAAyG,gEAAQ;AACnK;AACA;AACA;AACA;AACA,mBAAmB,kEAAS;AAC5B;AACA;AACA,mBAAmB,kEAAS;AAC5B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;AChPA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChGD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb;;;;;;;;ACDA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACqC;AACI;AACK;AACI;AACO;AAC0B;AAC9B;AAC9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AACxB,sBAAsB,sEAAU;AACvC;AACA;AACA;AACA,2BAA2B,sEAAU;AACrC,iCAAiC,sEAAU;AAC3C;AACA;AACA;AACA,uBAAuB,6DAAU,iBAAiB,kEAA4B,KAAK,qBAAqB;AACxG,4BAA4B,oEAA8B,+DAA+D,gBAAgB;AACzI,4BAA4B,oEAA8B;AAC1D,4BAA4B,oEAA8B,6DAA6D,gBAAgB;AACvI,SAAS,IAAI,QAAQ,2DAAU,4BAA4B;AAC3D;AACA;AACA;AACA,mBAAmB,sEAAU;AAC7B;AACA;AACA,+BAA+B,+EAAe;AAC9C;AACA;AACA,eAAe,2EAAY;AAC3B;AACA;AACA;AACA,mBAAmB,sEAAU;AAC7B;AACA;AACA,+BAA+B,+EAAe;AAC9C;AACA;AACA,eAAe,2EAAY;AAC3B;AACA;AACA;AACA;AACA,eAAe,6EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6DAAW;AAC3D,gDAAgD,6DAAW;AAC3D;AACA,4BAA4B,6DAAW;AACvC,4BAA4B,6DAAW;AACvC;AACA;AACA;AACA,gDAAgD,6DAAW;AAC3D,gDAAgD,6DAAW;AAC3D;AACA,4BAA4B,6DAAW;AACvC,4BAA4B,6DAAW;AACvC;AACA;AACA;AACA,+BAA+B,6DAAW;AAC1C,+BAA+B,6DAAW;AAC1C,+BAA+B,6DAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2EAAqC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sCAAsC;AACtC,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6DAAW;AACxD,6CAA6C,6DAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,IAAI,mEAAO;AACX;;;;;;;;AC3QA,cAAc,mBAAO,CAAC,KAAY;AAClC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACyD;AAClD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE,cAAc,EAAE;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2CAA2C,SAAS;AACpD;AACA,0BAA0B,KAAK,SAAS,SAAS;AACjD;AACA,wBAAwB,qBAAqB;AAC7C,wBAAwB,oBAAoB;AAC5C,wBAAwB,4BAA4B,iCAAiC;AACrF,wBAAwB,gCAAgC;AACxD,6BAA6B,yCAAyC,iCAAiC;AACvG;AACA;;;;;;;AC3RA;AACA;AACA;AACA;AACwG;AACgD;AACxJ;AACO;AACP;AACA;AACA;AACA,UAAU,uDAAuD;AACjE,UAAU,wCAAwC;AAClD,UAAU,wCAAwC;AAClD,UAAU,oCAAoC;AAC9C,UAAU,yCAAyC;AACnD,UAAU,oDAAoD;AAC9D,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,qCAAqC;AAC/C,UAAU,0CAA0C;AACpD,UAAU,+CAA+C;AACzD,UAAU,8CAA8C;AACxD,UAAU,oCAAoC;AAC9C,UAAU,2CAA2C;AACrD,UAAU,8CAA8C;AACxD,UAAU,0CAA0C;AACpD,UAAU,wCAAwC;AAClD,UAAU,qDAAqD;AAC/D,UAAU,6CAA6C;AACvD,UAAU,4CAA4C;AACtD,UAAU,yCAAyC;AACnD,UAAU,oCAAoC;AAC9C,UAAU,gDAAgD;AAC1D,UAAU,kDAAkD;AAC5D,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU,uDAAuD;AACjE,UAAU,qDAAqD;AAC/D,UAAU,qDAAqD;AAC/D,UAAU,oDAAoD;AAC9D,UAAU,uCAAuC;AACjD,UAAU,4CAA4C;AACtD,UAAU,2CAA2C;AACrD,UAAU,4CAA4C;AACtD,UAAU,wCAAwC;AAClD,UAAU,6CAA6C;AACvD,UAAU,6CAA6C;AACvD,UAAU,kDAAkD;AAC5D,UAAU,8CAA8C;AACxD,UAAU,6CAA6C;AACvD,UAAU,+CAA+C;AACzD,UAAU,+CAA+C;AACzD;AACA;AACA,SAAS,uCAAgB;AACzB,SAAS,uCAAgB;AACzB,SAAS,8CAAuB;AAChC,SAAS,8CAAkB;AAC3B,SAAS,oDAAwB;AACjC,SAAS,+CAAwB;AACjC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,uDAAuD;AACjE,UAAU,wCAAwC;AAClD,UAAU,wCAAwC;AAClD,UAAU,oCAAoC;AAC9C,UAAU,yCAAyC;AACnD,UAAU,oDAAoD;AAC9D,UAAU,mDAAmD;AAC7D,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,qCAAqC;AAC/C,UAAU,0CAA0C;AACpD,UAAU,+CAA+C;AACzD,UAAU,8CAA8C;AACxD,UAAU,oCAAoC;AAC9C,UAAU,2CAA2C;AACrD,UAAU,8CAA8C;AACxD,UAAU,0CAA0C;AACpD,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,qDAAqD;AAC/D,UAAU,6CAA6C;AACvD,UAAU,4CAA4C;AACtD,UAAU,yCAAyC;AACnD,UAAU,oCAAoC;AAC9C,UAAU,gDAAgD;AAC1D,UAAU,kDAAkD;AAC5D,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU,2DAA2D;AACrE,UAAU,yDAAyD;AACnE,UAAU,wDAAwD;AAClE,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,wCAAwC;AAClD,UAAU,6CAA6C;AACvD,UAAU,6CAA6C;AACvD,UAAU,kDAAkD;AAC5D,UAAU,8CAA8C;AACxD,UAAU,6CAA6C;AACvD,UAAU,+CAA+C;AACzD,UAAU,+CAA+C;AACzD;AACA;AACA,SAAS,uCAAgB;AACzB,SAAS,uCAAgB;AACzB,SAAS,8CAAuB;AAChC,SAAS,8CAAkB;AAC3B,SAAS,oDAAwB;AACjC,SAAS,+CAAwB;AACjC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,uDAAuD;AACjE,UAAU,wCAAwC;AAClD,UAAU,wCAAwC;AAClD,UAAU,oCAAoC;AAC9C,UAAU,yCAAyC;AACnD,UAAU,mDAAmD;AAC7D,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,uCAAuC;AACjD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,qCAAqC;AAC/C,UAAU,0CAA0C;AACpD,UAAU,+CAA+C;AACzD,UAAU,oCAAoC;AAC9C,UAAU,2CAA2C;AACrD,UAAU,8CAA8C;AACxD,UAAU,qCAAqC;AAC/C,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,qDAAqD;AAC/D,UAAU,6CAA6C;AACvD,UAAU,4CAA4C;AACtD,UAAU,yCAAyC;AACnD,UAAU,oCAAoC;AAC9C,UAAU,2CAA2C;AACrD,UAAU,6CAA6C;AACvD,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,wCAAwC;AAClD,UAAU,6CAA6C;AACvD,UAAU,6CAA6C;AACvD,UAAU,+CAA+C;AACzD,UAAU,+CAA+C;AACzD;AACA;AACA,SAAS,uCAAgB;AACzB,SAAS,uCAAgB;AACzB,SAAS,8CAAkB;AAC3B,SAAS,oDAAwB;AACjC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,UAAU,uDAAuD;AACjE,UAAU,wCAAwC;AAClD,UAAU,wCAAwC;AAClD,UAAU,oCAAoC;AAC9C,UAAU,yCAAyC;AACnD,UAAU,oDAAoD;AAC9D,UAAU,yCAAyC;AACnD,UAAU,wCAAwC;AAClD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,qCAAqC;AAC/C,UAAU,0CAA0C;AACpD,UAAU,+CAA+C;AACzD,UAAU,oCAAoC;AAC9C,UAAU,2CAA2C;AACrD,UAAU,8CAA8C;AACxD,UAAU,0CAA0C;AACpD,UAAU,wCAAwC;AAClD,UAAU,qDAAqD;AAC/D,UAAU,6CAA6C;AACvD,UAAU,4CAA4C;AACtD,UAAU,yCAAyC;AACnD,UAAU,oCAAoC;AAC9C,UAAU,gDAAgD;AAC1D,UAAU,kDAAkD;AAC5D,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU,uCAAuC;AACjD,UAAU,2CAA2C;AACrD,UAAU,wCAAwC;AAClD,UAAU,6CAA6C;AACvD,UAAU,6CAA6C;AACvD,UAAU,+CAA+C;AACzD,UAAU,+CAA+C;AACzD;AACA;AACA,SAAS,uCAAgB;AACzB,SAAS,uCAAgB;AACzB,SAAS,8CAAkB;AAC3B,SAAS,oDAAwB;AACjC;AACA;AACA;;;;;;;;;;;;;;;ACpOA;AACA;AACA;AACA;AAC4E;AACpB;AACY;AACN;AACF;AACrD;AACP,2BAA2B,iCAAe;AAC1C,kDAAkD,4BAAO;AACzD,yBAAyB,+CAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE,oDAAoD,gBAAgB;AACpE;AACA;AACA,wCAAwC,cAAc,IAAI,kCAAkB,uBAAuB,MAAM,WAAW,KAAK,yBAAyB,EAAE;AACpJ,2CAA2C,gBAAgB,UAAU,YAAY,yBAAyB,GAAG,eAAe,kCAAkB,yBAAyB;AACvK;AACA;AACA,wCAAwC,WAAW,KAAK,yBAAyB,GAAG,EAAE,cAAc,YAAY;AAChH,2CAA2C,gBAAgB,UAAU,YAAY,yBAAyB,IAAI;AAC9G;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F,oEAAoE,kBAAkB;AACtF,uDAAuD,wBAAQ,cAAc,UAAU,SAAS;AAChG,yCAAyC,OAAO,MAAM,eAAe,kCAAkB,MAAM,EAAE,WAAW,EAAE,WAAW,sBAAsB;AAC7I;AACA,gCAAgC,EAAE,wBAAwB;AAC1D;AACA;AACA;AACA;AACO;AACP;AACA,6BAA6B,+CAAe;AAC5C;AACA,eAAe,0BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACpEA;AACA;AACA;AACA;AACoD;AAC2B;AACzB;AACE;AACS;AACM;AACoC;AACrC;AACG;AACuB;AACC;AAClC;AAC+B;AACoB;AACrD;AACtD;AACA;AACA;AACA;AACP,MAAM,oCAAa,GAAG,wBAAQ,IAAI,iCAAU;AAC5C,wBAAwB,wBAAQ,IAAI,+BAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAAK;AACpC;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAW;AACxD,6CAA6C,yBAAW;AACxD,6CAA6C,yBAAW;AACxD,4BAA4B,yBAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2CAAa;AACxC,0BAA0B,2CAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,OAAO;AAC1B;AACA,mBAAmB,QAAQ;AAC3B;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,4BAAU;AACtD;AACA;AACA,sDAAsD,4BAAO;AAC7D;AACA,4DAA4D,4BAAO;AACnE;AACA;AACA,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB;AACjE;AACA;AACA,0BAA0B,iBAAiB,IAAI,eAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,+CAA2B,CAAC,gCAAU;AAC9C;AACA,SAAS;AACT;AACA;AACA,YAAY,yBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAoB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA,eAAe,4BAAU;AACzB;AACA;AACA,6BAA6B,4BAAoB;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAU;AAChD,sCAAsC,gCAAc;AACpD;AACA;AACA,oBAAoB,wBAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAa;AACxC;AACA;AACA,uCAAuC,4CAAiB,UAAU,IAAI,kBAAkB;AACxF;AACA;AACA,wFAAwF,EAAE,4BAA4B;AACtH;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA,QAAQ,sCAAoB;AAC5B;AACA;AACA;AACA,0BAA0B,iBAAiB,IAAI,eAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxVa;;AAEb,WAAW,aAAa;AACxB;AACA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACoC;AACQ;AACmB;AACJ;AACY;AACI;AAC9B;AACO;AACM;AACC;AACD;AACA;AAC3B;AACe;AAC9C,UAAU,KAAK;AACf;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,oBAAoB,kBAAU;AAC9B,sBAAsB,kBAAU;AAChC,8BAA8B,kBAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,4BAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mDAAyB,uBAAuB,wDAAuB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA,oCAAoC,kBAAU;AAC9C;AACA,qCAAqC,kBAAU;AAC/C,qCAAqC,kBAAU;AAC/C;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;AACA,4BAA4B,4BAAoB;AAChD;AACA;AACA,uBAAuB,iCAAyB,+BAA+B,qBAAa;AAC5F,YAAY,uBAAe;AAC3B,SAAS;AACT;AACA;AACA;AACA,uBAAuB,yCAAiC;AACxD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,iCAAyB,qBAAqB,qBAAa;AAClF,YAAY,uBAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,qBAAqB,qBAAa;AAClF,YAAY,uBAAe;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB;AAChD;AACA,SAAS;AACT,uBAAuB,iCAAyB;AAChD,YAAY,uBAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,iCAAyB,qBAAqB,qBAAa;AAClF,8BAA8B,0CAAqB;AACnD;AACA;AACA,gBAAgB,4BAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAe;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8IAA8I,oBAAoB,iCAAiC,aAAa;AAChN;AACA;AACA,8IAA8I,SAAS,iCAAiC,aAAa;AACrM;AACA;AACA,4KAA4K,SAAS,wCAAwC;AAC7N;AACA;AACA,kEAAkE,oBAAoB,4BAA4B;AAClH,wGAAwG,wBAAwB,4BAA4B;AAC5J,2GAA2G,2BAA2B,4BAA4B;AAClK;AACA;AACA,wGAAwG,wBAAwB,gCAAgC;AAChK,2GAA2G,2BAA2B,gCAAgC;AACtK;AACA;AACA;AACA,gLAAgL,SAAS,iCAAiC,aAAa;AACvO;AACA;AACA;AACA,gLAAgL,oBAAoB,iCAAiC,aAAa;AAClP;AACA;AACA;AACA,8IAA8I,wBAAwB,8BAA8B,YAAY,oCAAoC;AACpP;AACA;AACA,gLAAgL,wBAAwB,8BAA8B,YAAY,oCAAoC;AACtR;AACA;AACA,0JAA0J,0CAA0C,2BAA2B,2BAA2B;AAC1P,wJAAwJ,0CAA0C,2BAA2B,2BAA2B;AACxP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAa;AACxC,mCAAmC,kCAA0B;AAC7D,2BAA2B,qBAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B,yBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAU;AACrD;AACA,8BAA8B,uBAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA,sCAAsC,uBAAuB;AAC7D;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA,iBAAiB;AACjB,0CAA0C,wBAAQ,GAAG,4EAA4E;AACjI,+BAA+B,4BAAW;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6CAA6C,+BAAU;AACvD,wCAAwC,0BAAK;AAC7C,0BAA0B,0CAAqB;AAC/C,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK,6GAA6G;AACzI,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B;AACA,uBAAuB,iCAAyB,mCAAmC,qBAAa;AAChG;AACA;AACA,uBAAuB,iCAAyB,+BAA+B,qBAAa;AAC5F,oCAAoC,sBAAc;AAClD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2CAAc,GAAG,sCAAsC,IAAI,eAAe;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAY;AAC/B;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACz1BA;AACA;AACA;AACA;AACoC;AACgB;AACA;AACD;AACO;AACA;AACnD,8BAA8B,4BAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAO;AAC9B,SAAS,sBAAS;AAClB,2BAA2B,iCAAyB;AACpD;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,yCAAiC;AACxD,YAAY,uBAAe;AAC3B,SAAS;AACT,uBAAuB,yCAAiC;AACxD;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,yCAAiC;AACxD;AACA,gBAAgB,4BAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAa;AAC3C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3IA;AACA;AACA;AACA;AACqD;AACE;AACjB;AACoB;AACjC;AAClB,wBAAwB,oBAAM;AACrC;AACA;AACA;AACA,YAAY,4BAAW;AACvB,yCAAyC,eAAe;AACxD;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3CA;AACA;AACA;AACA;AAC6C;AACA;AACgC;AACP;AACK;AACrB;AACuB;AACnB;AACF;AACN;AACzB;AACiB;AAC6B;AAChE,iCAAiC,4BAAU;AAClD;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,8BAA8B,sBAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,4BAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAO;AAC9B;AACA;AACA;AACA,gBAAgB,yBAAS;AACzB;AACA,+BAA+B,qCAAqB,YAAY,qBAAS,oBAAoB,QAAQ,6EAA6E,wBAAa,6BAA6B;AAC5N;AACA;AACA,uBAAuB,qCAAqB,UAAU,sBAAc,oCAAoC;AACxG,uBAAuB,qCAAqB,UAAU,qBAAS;AAC/D;AACA,gBAAgB,uBAAW,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,4BAAoB;AAChC;AACA;AACA;AACA;AACA,2BAA2B,qCAAqB,UAAU,qBAAS;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qCAAqB,UAAU,qBAAS;AAC/D,YAAY,uBAAW;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,UAAU,qBAAS;AAC/D,YAAY,uBAAW;AACvB,SAAS;AACT,SAAS,qBAAS,WAAW,qBAAS;AACtC,2BAA2B,qCAAqB;AAChD,gBAAgB,uBAAW;AAC3B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,QAAQ,uBAAW;AACnB,wBAAwB,8BAAuB,8GAA8G,gBAAgB;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,wDAAuB;AAChI,mDAAmD,mDAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAS;AACzC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAY,GAAG,mEAAmE,IAAI,GAAG,EAAE,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAiC;AAC5D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA,gBAAgB,UAAU,QAAQ,mEAAmE,GAAG,MAAM,GAAG;AACjH,eAAe,UAAU,QAAQ,wBAAwB,KAAK,EAAE,OAAO,GAAG;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA,4BAA4B,MAAM;AAClC;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,uCAAuC,EAAE,EAAE,GAAG;AAC9C,kDAAkD,KAAK,GAAG,EAAE;AAC5D;AACA;AACA,sDAAsD,MAAM,kCAAkC,MAAM;AACpG;AACA,mDAAmD,QAAQ,GAAG,KAAK;AACnE,sDAAsD,QAAQ,GAAG,KAAK;AACtE;AACA;AACA,iBAAiB;AACjB,8CAA8C,QAAQ,GAAG,KAAK,MAAM,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA,oDAAoD,EAAE,EAAE,GAAG,qCAAqC,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,oCAAoC,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE;AACtL;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC/DA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAiB;AAC9B;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtIY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAwB;AAChD,kBAAkB,mBAAO,CAAC,EAAe;AACzC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,uBAAuB;AACjD,kBAAkB,QAAQ;AAC1B,2BAA2B,QAAQ;AACnC,eAAe,UAAU,4BAA4B,wBAAwB,SAAS,WAAW,SAAS,QAAQ,cAAc,KAAK;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK,EAAE,oCAAoC;AACpG,0CAA0C,KAAK,gEAAgE,kDAAkD;AACjK;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK,MAAM,SAAS;AACnE;AACA;AACA;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,QAAQ;AAC7H;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACvGA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACsC;AACoB;AACP;AACS;AACL;AACW;AACX;AAChD;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,qDAAqD;AACrD;AACA;AACA;AACA;AACA,iCAAiC,qEAAa;AAC9C,6CAA6C,+DAAO;AACpD;AACA,+CAA+C,+DAAO;AACtD;AACA,gCAAgC,+DAAO;AACvC;AACA,mCAAmC,+DAAO,CAAC,uEAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kEAAQ,sBAAsB;AAC3E;AACA,sBAAsB,yDAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB,kEAAQ;AACtE,wCAAwC;AACxC,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAO,GAAG,2CAA2C;AAC9E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,kEAAQ;AAC9F;AACA;AACA;AACA;AACA,mDAAmD,kEAAQ,YAAY,wDAAwD;AAC/H,gBAAgB,2CAA2C;AAC3D;AACA,sCAAsC,kEAAQ;AAC9C;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gCAAgC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yDAAS;AAC/B;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oCAAoC;AAC3F;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kEAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yDAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA,sBAAsB,yDAAS;AAC/B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sBAAsB,yDAAS;AAC/B;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzhBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AAC+C;AACN;AAC+B;AACC;AAClE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,gEAAQ;AACxG,8FAA8F,gEAAQ;AACtG,gCAAgC,0DAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA,uGAAuG,+FAA2B;AAClI;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qEAAgB;AAC7D;AACA;AACA,yDAAyD,+BAA+B;AACxF;AACA;AACA;AACA;AACA;AACA,iDAAiD,qEAAgB,KAAK,0DAAK;AAC3E;AACA;AACA;AACA;AACA;AACA,iDAAiD,qEAAgB,KAAK,0DAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mCAAmC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9GD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtID,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,KAAW;AAChC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5BA,cAAc,mBAAO,CAAC,KAAW;AACjC,YAAY,mBAAO,CAAC,KAAU;AAC9B,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;AClBa;;AAEb;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;AClBa;;AAEb;;;;AAIA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA,qBAAqB,UAAU;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA+B;AAC5C;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxIY;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AAC+D;AACxD,4BAA4B,2EAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;;;;;;;;;ACrGD;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,4CAA4C,6CAA6C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,CAAC;AACD;AACA;AACA,8BAA8B;AAC9B,wCAAwC;AACxC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS,mBAAmB,aAAa;AAC1E,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mBAAmB,aAAa;AACzF,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,wBAAwB;AAC7G,oEAAoE;AACpE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qEAAqE;AACrE,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,2CAA2C;AAC3C,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAe,aAAa,EAAC;AAC7B;;;;;;;;;ACnoBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,sBAAsB,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW,MAAM,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,KAAK,MAAM,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,wGAAwG,+BAA+B,QAAQ,IAAI;AACnJ;AACA;AACA;AACA;AACA,gDAAgD,KAAK,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;ACzGA;AACA;AACA;AACA;AACiE;AACyB;AAChD;AAC1C,oCAAoC,gFAAY;AAChD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA,4FAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BpB;AACA;AACA;AACA;AAC8D;AACxB;AACO;AACK;AACX;AACE;AACzC;AACA;AACO;AACP,SAAS,sBAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,4BAAO;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,iDAA8B;AACzD;AACA,wEAAwE,iDAA8B;AACtG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,4BAAU;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iEAAiE,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA,wDAAwD,UAAU;AAClE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kCAA0B;AAC3E;AACA;AACA;AACA,sCAAsC,kCAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA,gDAAgD,UAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;ACxbA;AACA;AACA;AACA;AAC6D;AACL;AACmB;AACT;AAClE,iBAAiB,gDAAwB,2BAA2B,iCAAiC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,aAAa;AACzG;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA,8GAA8G,aAAa;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,qBAAqB,MAAM,gCAAgC,YAAY,cAAc,GAAG,iFAAiF,iCAAiC,EAAE,2CAA2C,WAAW,SAAS,WAAW,GAAG,IAAI,MAAM;AACnS,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW,GAAG,MAAM;AACnC,MAAM;AACN,eAAe,WAAW,GAAG,kBAAkB,GAAG,MAAM;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC,gBAAgB,oCAAiB,yCAAyC,WAAW,aAAa,YAAY;AAC9G;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;;;ACtIA;AACA;AACA;AACA;AAC6D;AACd;AACY;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6BAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA,mCAAmC,0CAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjHA;AACA;AACA;AACA;AACqE;AACrE;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAAmB;AAC7C;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA,+CAA+C;AAC/C,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;AC7QA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uBAAuB;AACvB,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AAC4D;AACT;AACwB;AAChB;AAClB;AACqC;AAC7B;AACjD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAAS;AAC7C;AACA;AACA,oCAAoC,0BAAS;AAC7C;AACA;AACA;AACA;AACA,oCAAoC,0BAAS;AAC7C;AACA;AACA,oCAAoC,0BAAS;AAC7C;AACA,6BAA6B,6CAAwB,yGAAyG,iCAAY,KAAK,uBAAK,sGAAsG,uBAAK;AAC/R;AACA;AACA;AACA;AACA,iCAAiC,6CAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAQ;AAChB,mBAAmB,qCAAkB;AACrC;AACA;AACA;AACA,SAAS;AACT,mBAAmB,kCAAS;AAC5B;AACA;AACA;AACA,yBAAyB,oBAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iIAAiI,uBAAuB,GAAG,mBAAmB;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,YAAY;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uCAA+B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjdA;AACA;AACA;AACA;AACuE;AAC2B;AAC3F;AACP,yBAAyB,uBAAuB;AAChD,0BAA0B,yDAAwB;AAClD;;;;;ACTA;AACA;AACA;AACA;AAC4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAK,KAAK,kBAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,EAAE,qDAAqD,EAAE,qDAAqD,EAAE;AAC3L;AACA;AACA;AACA,2EAA2E,EAAE,qDAAqD,EAAE,qDAAqD,EAAE;AAC3L;AACA;AACA;AACA,4GAA4G,IAAI,UAAU,IAAI,iBAAiB,IAAI,UAAU,IAAI;AACjK;AACA;AACA;AACA,4GAA4G,IAAI,UAAU,IAAI,iBAAiB,IAAI,UAAU,IAAI;AACjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;ACtIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;ACjFA;AACA;AACA;AACA;AAC+D;AACb;AACH;AACN;AACwC;AACA;AACrB;AACyB;AAC5B;AACK;AACiB;AACZ;AACoB;AACM;AAChC;AAC7D;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA,kDAAkD,6BAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAa,kBAAkB,gDAAyB;AACnF;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAwD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8DAA8D;AAC7G,6CAA6C,0DAA0D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAG;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,eAAe,8DAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kBAAkB,gBAAgB,kBAAkB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gCAAgC,0BAA0B;AAC1D,gBAAgB,uBAAK,gDAAgD,uBAAK;AAC1E,0CAA0C,uBAAK,eAAe,uBAAK,4CAA4C,uBAAK;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA,4BAA4B,2BAAU;AACtC,8CAA8C,uBAAK;AACnD;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iCAAiC,sEAAsE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8DAA8D;AAClH;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qCAAiB;AACpD;AACA;AACA;AACA,oDAAoD,+BAA+B;AACnF;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,yBAAM;AACtB;AACA;AACA;AACA;AACA,wBAAwB,4CAAmB;AAC3C;;;;;;;;;;;;;;;;;ACnhBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuE;AACgC;AACG;AACrB;AAClC;AACqD;AACvB;AAClB;AACwC;AACtC;AACC;AACJ;AACJ;AAC2B;AAClB;AAC0C;AAClD;AACE;AACM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2CAA2C;AAClH;AACA;AACA,6CAA6C,WAAW,GAAG;AAC3D;AACA;AACA,sCAAsC;AACtC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kCAAS,KAAK,qCAAgB,KAAK,0BAAS,kBAAkB,0BAAS;AACpH;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAAwB,KAAK,0BAAS,kBAAkB,0BAAS,iFAAiF,iCAAY,KAAK,uBAAK,8BAA8B,uBAAK;AACtO,aAAa;AACb;AACA;AACA;AACA,YAAY,kCAAe;AAC3B;AACA,+CAA+C;AAC/C;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA,yCAAyC,gCAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAa;AAC5B,eAAe,kEAAiC;AAChD,eAAe,uBAAW;AAC1B,eAAe,mEAA6B;AAC5C,eAAe,gDAAwB;AACvC;AAC+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,gCAAgC,uBAAK,+BAA+B,uBAAK;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+BAAmB;AACzE,sHAAsH,gCAAU;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,iCAAe;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,sBAAsB,iCAAY;AAClC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,4BAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA,gBAAgB,uBAAuB;AACvC,+DAA+D,kBAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC,2DAA2D,kBAAkB;AAC7E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAAQ;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7cA,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNa;AACb,eAAe,mBAAO,CAAC,GAAwB;;AAE/C;AACA;AACA;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;ACNa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAS;AAChC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC7BA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACyE;AACN;AAC5B;AACqF;AACjE;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,uBAAuB,4DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAQ;AACvB;AACA;AACA;AACA,uBAAuB,+DAAS;AAChC,oBAAoB,iEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yFAAmC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAa;AAC7C,4CAA4C,8EAAa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yFAAmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,aAAa,IAAI,YAAY;AACzG;AACA;AACA,uBAAuB,gEAAU;AACjC,6DAA6D,8EAAiB,iBAAiB,0DAAW;AAC1G;AACA;AACO;AACP;AACA;AACA,uBAAuB,4DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC,gDAAgD,8DAAQ,oCAAoC,8EAAiB,iBAAiB,0DAAW,CAAC,8DAAQ;AAClJ;AACA;AACA,wBAAwB,QAAQ;AAChC,gDAAgD,8DAAQ,oCAAoC,8EAAiB,iBAAiB,0DAAW,CAAC,8DAAQ;AAClJ;AACA;AACA;AACA,oEAAoE,aAAa,IAAI,YAAY;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8DAAQ;AACvD,sFAAsF,8EAAiB,iBAAiB,0DAAW;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8DAAQ;AACvD,sFAAsF,8EAAiB,iBAAiB,0DAAW;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAAQ;AAC1B,kBAAkB,8DAAQ;AAC1B,sEAAsE,8EAAiB,iBAAiB,0DAAW;AACnH;AACA,sBAAsB,8DAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+EAAiB;AACnC;AACA;;;;;;;;ACzSA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACTA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACnEY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,sBAAsB,GAAG,6BAA6B;AAC9E,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAA2B;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACda;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;;;;;;;;ACRa;AACb;AACA,SAAS;;;;;;;;;ACFI;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C,SAAS;;AAET;AACA,4DAA4D,wBAAwB;AACpF;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC,cAAc;AAC9C;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;ACpDA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC2G;AACQ;AAC/C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB,2EAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,iEAAK,iBAAiB,2EAA2E;AAChI,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4EAAQ,UAAU,2BAA2B;AACrE,wBAAwB,4EAAQ,UAAU,2BAA2B;AACrE;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,2EAAW;AACnB,mBAAmB,yEAAS;AAC5B,uBAAuB,yEAAS;AAChC;AACA,YAAY,sEAAM;AAClB,SAAS;AACT,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA,YAAY,sEAAM;AAClB,iBAAiB,iFAAiB;AAClC,gBAAgB,sEAAM;AACtB;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB,KAAK;AACtB;AACA;AACA,qBAAqB,yEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,4EAAQ,UAAU,gDAAgD;AAC/F;AACA,sBAAsB,4EAAQ,UAAU,2CAA2C;AACnF,sBAAsB,4EAAQ,UAAU,+DAA+D;AACvG;AACA,oBAAoB,4EAAQ,UAAU,8CAA8C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4EAAQ,UAAU,4CAA4C;AAChF;AACA,sBAAsB,4EAAQ,UAAU,+DAA+D;AACvG;AACA,yBAAyB,4EAAQ,UAAU,4DAA4D;AACvG;AACA,wBAAwB,4EAAQ,UAAU,6DAA6D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,QAAQ,kEAAkE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,wEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA,gBAAgB,iFAAiB;AACjC,gBAAgB,yEAAS;AACzB;AACA;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;;;;;;ACtdnB;AACA;AACA;AACA;AAC6C;AACtC;AACP;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAO;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,KAAkB;AACxC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AAC4C;AACoB;AACvB;AACzC;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wEAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe,GAAG,SAAS;AACzD;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU;AACd;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc,gEAAS;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,wEAAe;AAC9B;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,cAAc,gEAAS;AACvB;AACA;AACO;AACP;AACA;AACA,4BAA4B,kEAAa;AACzC;AACA;AACA,4BAA4B,kEAAa;AACzC;AACA,4DAA4D,8DAAY;AACxE;AACO;AACP;AACA,mCAAmC,kEAAa,sHAAsH,8DAAY;AAClL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mBAAmB,eAAe;AACtF;AACA;AACA;AACA;AACA,kBAAkB,gEAAS,4EAA4E,oEAAoE;AAC3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe,IAAI,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,4BAA4B,kEAAa;AACzC;AACA;AACA,4BAA4B,kEAAa;AACzC;AACA,sEAAsE,8DAAY;AAClF;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACjQ0B;;AAE1B,IAAI,UAAM;AACV;AACA,WAAW,yDAAS;;AAEpB;;AAEO,SAAS,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEmB;AAOlB;;;;;ACjCD;AACA;AACA;AACA;AACA;AAC8O;AACtL;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAqC,IAAI,CAAe;;AAE9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,CAAC,oCAAoC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAA0J,IAAI,CAAS;;AAE5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,qBAAqB,kBAAkB,IAAI;AAC3C;AACA;AACA;AACA,6DAA6D;AAC7D,+DAA+D,iBAAiB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,SAAS,QAAQ;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mCAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAK;AAChD;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe;AACjE;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA,wBAAwB,OAAO;AAC/B;AACA,mEAAmE,QAAQ,MAAM,KAAK;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,mCAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT,KAAK;AACL;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,YAAY,yBAAK,OAAO,yBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,aAAa,IAAI,YAAY;AAC7B,SAAS;AACT,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS,IAAI,+BAA+B;AAC5C;AACA,2BAA2B,2BAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAK;AACxC;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,+BAAW;AAC7B;AACA;AACA,kCAAkC,uBAAG,GAAG;AACxC;AACA;AACA;AACA,kBAAkB,2BAAO;AACzB;AACA;AACA;AACA;AACA,iBAAiB,UAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,UAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAwC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,oBAAoB,QAAQ,GAAG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAe;AACpC,QAAQ,kCAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yBAAK;AAClB,aAAa,8BAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAqC;AAChE,MAAM,CAA6B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAM;AACjB;AACA;AACA;AACA,QAAQ,MAAM,iBAAG;AACjB;AACA,cAAc,yBAAK;AACnB;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,8BAA8B,KAAwC,IAAI,CAAI;AAC9E;AACA,gBAAgB,UAAM;AACtB,gBAAgB,OAAG,4CAA4C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAA8C;AACzE;AACA,gBAAgB,CAAuC;AACvD,cAAc,0BAAM;AACpB,eAAe,YAAM,+CAA+C;AACpE,gBAAgB,KAA6D,EAAE,EAElE;AACb,oCAAoC,2BAAO,CAAC,4BAAQ;AACpD;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,6BAA6B,YAAM,GAAG,aAAa;AACnD;AACA,QAAQ,KAA2D,EAAE,EAEhE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkD,EAAE,EAkBvD;AACL;AACA,qBAAqB;AACrB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAwC,IAAI,CAAI;AAC7F;AACA,YAAY,UAAM;AAClB,YAAY,OAAG,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAG,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAE5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAQ;AAChB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,YAAM;AACtB,aAAa;AACb;AACA;AACA,aAAa,MAAqC;AAClD,kBAAkB,CAED;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2BAAO;AAC7C,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,gDAAgD,yBAAK;AACrD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,EAAE,YAAM,GAAG;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,UAAM;AACd;AACA;AACA;AACA,kBAAkB,4BAAQ,EAAE,MAAqC;AACjE,UAAU,YAAM;AAChB;AACA,+BAA+B,2BAAO;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,+BAAW;AACnF;AACA;AACA;AACA,aAAa,yBAAK,gCAAgC,8BAAU;AAC5D;AACA,gBAAgB,KAA8C,EAAE,EAInD;AACb;AACA;AACA;AACA,wBAAwB,yBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B,oBAAoB,OAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA,gCAAgC,MAA8C,GAAG,CAAI;AACrF;AACA;AACA;AACA,gBAAgB,UAAM;AACtB,gBAAgB,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA,kBAAkB,KAAqC,GAAG,EAcjD;AACT;AACA;AACA;AACA,QAAQ,UAAM;AACd;AACA,YAAY,OAAG;AACf,SAAS;AACT;AACA;AACA,QAAQ,YAAM;AACd;AACA;AACA,QAAQ,YAAM,CAAC,yBAAK;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAA8C,GAAG,CAAc;AACnF;AACA;AACA,gBAAgB,KAA8C,EAAE,EAEnD;AACb;AACA,gBAAgB,YAAM;AACtB,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS,KAAqC,GAAG,EAoE5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAM,GAAG,iBAAiB;AACtE,SAAS;AACT;AACA;AACA,QAAQ,UAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wCAAwC;AACxC,YAAY,YAAM;AAClB;AACA;AACA,YAAY,YAAM;AAClB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL,QAAQ,KAI8D,EAAE,EAInE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAiE,EAAE,EAEtE;AACT;AACA;AACA,2BAA2B,uCAAmB;AAC9C;AACA;AACA;AACA,aAAa,MAAwE,GAAG,CAAI;AAC5F,8BAA8B,0BAAM;AACpC;AACA;AACA,YAAY,KAAuD,EAAE,EAI5D;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAG5C;AACb;AACA;AACA,YAAY,KAA8C,EAAE,EASnD;AACT,YAAY,KAAoD,EAAE,EAWzD;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAmE,EAAE,EAQxE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAE+N;;;;;;;;;ACp9DlN;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,cAAc,mBAAO,CAAC,KAAuB;;AAE7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoD;AACsC;AACuC;AAC1D;AACZ;AACS;AACN;AACkB;AAC4D;AACnD;AAChC;AACQ;AACrB;AACgB;AACe;AAC8B;AAC3D;AAC6F;AACxD;AACmB;AACnB;AACO;AACI;AACK;AACT;AACH;AACN;AACjF,8EAA8E,2EAAU;AACxF;AACA;AACA;AACA;AACA;AACA,iCAAiC,yFAAmB;AACpD;AACA,wBAAwB,6EAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wEAAQ;AACzC;AACA;AACA,SAAS;AACT,uBAAuB,sFAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,uCAAuC,sGAAgB;AACvD;AACA;AACA,0BAA0B,gFAAY;AACtC,0BAA0B,6EAAO;AACjC;AACA;AACA;AACA;AACA;AACA,+DAA+D,wFAA2B;AAC1F;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,gCAAgC,gGAA0B;AAC1D,sBAAsB,6EAAO;AAC7B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe,6GAAqB;AACpC;AACwC;AACxC,sCAAsC,+FAAY,iCAAiC,sEAAO,eAAe,4DAAQ;AACjH,0CAA0C,+FAAY,qCAAqC,sEAAO,cAAc,4DAAQ;AACxH,iIAAiI,2EAAU;AAC3I,mCAAmC;AACnC;AACA,2BAA2B,qEAAM;AACjC;AACA;AACA;AACA,sBAAsB,4DAAQ,GAAG,sDAAsD,IAAI,GAAG,EAAE,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0CAA0C;AACjG;AACA;AACA,qBAAqB,uDAAC,iCAAiC,iDAAiD;AACxG,YAAY,uDAAC;AACb;AACA,uDAAuD,2FAAoC,EAAE,4DAAQ,0BAA0B,0EAAS;AACxI,kDAAkD,qEAAM;AACxD,mDAAmD,uFAAgC,EAAE,4DAAQ,kBAAkB,0EAAS;AACxH;AACA,yFAAyF,kFAAM;AAC/F,8EAA8E,6EAAgB;AAC9F;AACA,SAAS;AACT,0DAA0D,6EAAgB;AAC1E;AACA,SAAS;AACT,8HAA8H,kFAAM;AACpI,2BAA2B,wBAAwB;AACnD,8BAA8B,4CAA4C;AAC1E;AACA,sCAAsC,0FAAc;AACpD;AACA;AACA;AACA,mFAAmF,0BAA0B;AAC7G;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,+DAA+D,yBAAyB,GAAG,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,0CAA0C,0FAAc;AACxD;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAS;AAClD;AACA;AACA,SAAS;AACT;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4FAAe;AAC9B,eAAe,6GAAqB;AACpC,eAAe,mGAAkB;AACjC,eAAe,oGAAkB;AACjC,gBAAgB,wFAAY;AAC5B;AAC8C;AAC9C,0CAA0C,mGAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oHAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uDAAC;AACzB,yCAAyC,yGAAe,MAAM,yDAAE,IAAI,uBAAuB,wHAA8B,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,4FAAgB;AAClG;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA,uGAAuG,mCAAmC;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gIAA+B,wFAAwF,oBAAoB;AACnJ;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wFAAY;AAC3B,eAAe,oGAAkB;AACjC,eAAe,uGAAmB;AAClC,eAAe,mGAAkB;AACjC,eAAe,4FAAe;AAC9B,eAAe,gGAAiB;AAChC;AAC0C;;;;;;;;;AChU7B;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS;AACvS,eAAe,mBAAO,CAAC,KAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,KAAQ;AAC7B,qCAAoC,EAAE,qCAAqC,oBAAoB,EAAC;AAChG,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,+CAA8C,EAAE,qCAAqC,8BAA8B,EAAC;AACpH,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,8CAA6C,EAAE,qCAAqC,6BAA6B,EAAC;AAClH,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,cAAc,mBAAO,CAAC,KAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,wDAAwD,SAAS;AACjE,kBAAkB,SAAS,EAAE,UAAU,EAAE,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,IAAI,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,EAAE,QAAQ,IAAI,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,uCAAuC,WAAW;AAClD,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,sBAAsB,SAAS,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,WAAW,UAAU,GAAG,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,sBAAsB;AACtB;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D,gDAAgD,IAAI,GAAG,EAAE;AACzD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS,KAAK,WAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ,QAAQ,GAAG,QAAQ,YAAY;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,qFAAqF,QAAQ,EAAE,IAAI,EAAE,OAAO;AAC5G;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;;;;;;;;ACxrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,sBAAsB,GAAG,aAAa,GAAG,gBAAgB,GAAG,sBAAsB;AACvG,eAAe,mBAAO,CAAC,KAAQ;AAC/B;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB,sBAAsB,sBAAsB;AAClE,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,EAAE,WAAW;AACtC;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,2CAA2C,0BAA0B,GAAG,UAAU;AAClF;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD,oCAAoC,UAAU,EAAE,eAAe;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,KAAK;AACvD;AACA,SAAS;AACT;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,aAAa;AACtF;AACA;AACA,4CAA4C,KAAK,EAAE,EAAE,EAAE,aAAa;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;AC9IY;;AAEZ,QAAQ,MAAM,EAAE,mBAAO,CAAC,KAAe;;AAEvC,8CAA8C,EAAE,gBAAgB,EAAE,wBAAwB,EAAE;;AAE5F;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA,mBAAmB,oBAAoB;AACvC,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnPA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;;;;;;;;;ACHa;;AAEb,UAAU,mBAAO,CAAC,KAAsB;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxGA;AACA;AACA;AACA;AACmE;AACpB;AACU;AACzD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,oEAAU;AACzB;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAK;AACpB;AACO;AACP,kBAAkB,6EAAU;AAC5B;AACA;;;;;;;;;AC/Ga;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,kBAAkB,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gDAAgD,UAAU,KAAK,MAAM;AACrE;AACA,8DAA8D,QAAQ,IAAI,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA,cAAc,SAAS,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA,cAAc,SAAS,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA,cAAc,SAAS,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D,cAAc,SAAS,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA,4BAA4B,KAAK,YAAY,4BAA4B;AACzE;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,sBAAsB,YAAY,EAAE,SAAS,GAAG,WAAW;AAC3D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAA+C;AACpE;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,IAAI,IAAI,+CAA+C;AAC5E;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjQa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,kBAAkB,mBAAO,CAAC,KAAW;AACrC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,gBAAgB,mBAAO,CAAC,IAAS;AACjC,eAAe,mBAAO,CAAC,KAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAkD;AACxD,MAAM,4CAA4C;AAClD;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AChCa;AACb,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,gCAAgC,mBAAO,CAAC,KAA4C;AACpF,kCAAkC,mBAAO,CAAC,KAA8C;AACxF,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC2C;AACkB;AACO;AACO;AACrB;AACO;AAC7D;AACA;AACA;AACA;AACA,wBAAwB,wBAAQ,IAAI,8BAAU;AAC9C;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qFAAqF,qBAAqB;AAC1G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAQ,wBAAwB,EAAE,GAAG,EAAE;AAClE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,oCAAkB;AACjC;AACmC;;;ACzEnC;AACA;AACA;AACA;AAC4E;AACO;AACf;AACiC;AACrG,wBAAQ,IAAI,8BAAU;AACtB,UAAU,uBAAuB;AACjC;AACA,oBAAoB,aAAa,sCAAY,6BAA6B;AAC1E,CAAC;;;;;;;;;ACZY;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,eAAe,mBAAO,CAAC,KAAqB;AAC5C,yBAAyB,mBAAO,CAAC,KAAsB;AACvD,sBAAsB,mBAAO,CAAC,KAAmB;AACjD,kBAAkB,mBAAO,CAAC,KAAe;AACzC,gBAAgB,mBAAO,CAAC,KAAsB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnJ8C;AACJ;AACnC,kDAAkD,0BAAS;AAClE,QAAQ,kCAAc;AACtB;AACA;AACA;AACA;AACA;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACyE;AACjB;AACO;AACgE;AAChE;AAC4C;AACjE;AACA;AACqI;AACxK;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wCAAoB;AAClE;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAAI;AAC9C,+CAA+C,wCAAoB,CAAC,8BAAU;AAC9E;AACA;AACA,iBAAiB;AACjB,+CAA+C,sCAAkB;AACjE,oFAAoF,QAAQ,EAAE,oDAAoD,EAAE,KAAK;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,mBAAmB,qBAAa;AAChC;AACA;AACA,yBAAyB,qBAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAY;AAC5B;AACA;AACA,kDAAkD,6BAAO;AACzD;AACA;AACA;AACA;AACA;AACA,qEAAqE,gCAAgC;AACrG;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,uCAAmB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA6B;AAC5C;AACwC;AACjC;AACP;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAY,sBAAsB,oBAAY,sBAAsB,oBAAY,wBAAwB,oBAAY,4BAA4B,oBAAY,0BAA0B,oBAAY,sBAAsB,oBAAY;AAC1Q,2CAA2C,oBAAY,wBAAwB,oBAAY,wBAAwB,oBAAY,yBAAyB,oBAAY,2BAA2B,oBAAY,0BAA0B,oBAAY,wBAAwB,oBAAY;AACrR,wCAAwC,oBAAY,wBAAwB,oBAAY,0BAA0B,oBAAY,oBAAoB,oBAAY,oBAAoB,oBAAY,gBAAgB,oBAAY,kBAAkB,oBAAY,kBAAkB,oBAAY,sBAAsB,oBAAY,4BAA4B,oBAAY,wBAAwB,oBAAY,0BAA0B,oBAAY;AAC1a,6CAA6C,oBAAY,yBAAyB,oBAAY,0BAA0B,oBAAY,uBAAuB,oBAAY,uBAAuB,oBAAY,qBAAqB,oBAAY,sBAAsB,oBAAY,sBAAsB,oBAAY,wBAAwB,oBAAY,2BAA2B,oBAAY,yBAAyB,oBAAY,0BAA0B,oBAAY;AAC9b;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2CAAqB;AACzD,YAAY,gDAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAiC;AAC7C,mBAAmB,qBAAa;AAChC;AACA,uBAAuB,qBAAa;AACpC,8BAA8B,qCAAmB;AACjD,4DAA4D,qCAAmB;AAC/E;AACA;AACA;AACA;AACA,YAAY,uDAAiC;AAC7C,mBAAmB,oBAAoB;AACvC;AACA,yBAAyB,qBAAa;AACtC;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD;AACA;AACO;AACP;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAY;AAC/B;AACA;AACA;AACA;;;AC/VA;AACA;AACA;AACA;AACA,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,oBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC4D;AACG;AACW;AAC5C;AACwC;AAChB;AACQ;AAC6C;AAC/B;AACD;AACmB;AACC;AAC4L;AACpR;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAAO,wBAAwB,iCAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA;AACA,oCAAoC,kCAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,uCAAuC,4BAAM;AAC7C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAAO,6BAA6B,iCAAW;AACrF,SAAS;AACT;AACA;AACA;AACA,YAAY,wCAAsB,YAAY,iJAAiJ;AAC/L,cAAc,wCAAsB,YAAY,gJAAgJ;AAChM,iBAAiB,wCAAsB,YAAY,uJAAuJ;AAC1M,mBAAmB,wCAAsB,YAAY,uJAAuJ;AAC5M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wCAAoB;AAC1D;AACA;AACA;AACA;AACA,oCAAoC,0BAAI,8BAA8B,4BAAM;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAAI;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,+BAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qFAAqF,0CAAwB;AAC7G,sFAAsF,0BAA0B,cAAc,0BAAa;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD,4BAA4B,uBAAK;AACjC,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gCAAgC;AACzE;AACA,oBAAoB,8BAA8B;AAClD,oBAAoB,8BAA8B;AAClD,oBAAoB,4BAA4B;AAChD,oBAAoB,yBAAyB;AAC7C,oBAAoB,8BAA8B;AAClD,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA,yBAAyB,kCAAa;AACtC,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2BAA2B,mCAAa;AACxC,4BAA4B,qCAAe;AAC3C;AACA,6BAA6B,gCAAgC;AAC7D,uDAAuD,0BAA0B,cAAc,0BAAa;AAC5G,gBAAgB,8BAA8B;AAC9C,gBAAgB,8BAA8B;AAC9C,gBAAgB,4BAA4B;AAC5C,gBAAgB,yBAAyB;AACzC,gBAAgB,8BAA8B,qDAAqD,0CAAwB;AAC3H,gBAAgB,2BAA2B;AAC3C;AACA;AACA,mDAAmD,uBAAK;AACxD;AACA,wBAAwB,yBAAyB;AACjD,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC,qCAAqC,0BAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kCAAa;AACtC,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA,4BAA4B,eAAe,uBAAuB,kCAAkC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAAS;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAAS;AACtD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAU;AAC9C,IAAI,oBAAO,IAAI,mEAA6B;AAC5C;AAC0B;;;;;;;;;ACzoBb;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;ACHA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,aAAa,mBAAO,CAAC,IAAkB;AACvC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,eAAe,mBAAO,CAAC,KAAuB;AAC9C,oBAAoB,mBAAO,CAAC,KAAuB;AACnD,mBAAmB,mBAAO,CAAC,KAA2B;AACtD,sBAAsB,mBAAO,CAAC,KAA8B;AAC5D,kBAAkB,mBAAO,CAAC,KAAqB;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;;;AC5LA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAwB;AACrC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,0BAA0B,mBAAO,CAAC,KAAqC;;AAEvE;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,WAAW,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,+DAA+D,WAAW,IAAI,EAAE;AAChF,2CAA2C,OAAO,QAAQ,KAAK;AAC/D,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,IAAe;AAC7C,kBAAkB,mBAAO,CAAC,KAAW;AACrC,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,gBAAgB,mBAAO,CAAC,KAAS;AACjC,eAAe,mBAAO,CAAC,KAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAkD;AACxD,MAAM,4CAA4C;AAClD;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AChCa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,YAAY,mBAAO,CAAC,KAAoB;AACxC,oBAAoB,mBAAO,CAAC,IAAsC;;AAElE;AACA;AACA;AACA;AACA,uBAAuB;AACvB,GAAG;AACH,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXD;AACA;AACA;AACO;AACP;AACA,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;ACrCO,SAAS,sBAAW;AAC3B;AACA;AACO,SAAS,uBAAY;AAC5B;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4D;AACf;;AAE7C;AACA;AACA;AACA;AACO;AACP,MAAM,sBAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,SAAS,uBAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,uBAAY;AACpB;AACA,MAAM,SAAS,sBAAW;AAC1B;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAY,YAAY,sBAAW;AACzC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,UAAU,sBAAW;AACrB;AACA;AACA,UAAU,uBAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;ACjRsF;AACd;AACpB;;AAEpD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kBAAkB,uBAAuB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,SAAS,KAAK;AACd;;AAEA;AACA;AACA;AACO;AACP,SAAS,QAAQ;AACjB;;AAEA;AACA;AACA;AACO;AACP;AACA,WAAW,QAAQ;AACnB,IAAI;AACJ,WAAW,KAAK;AAChB;AACA;;AAEA;AACA;AACA;AACO;AACP,gBAAgB,KAAK;AACrB;AACA,WAAW,QAAQ;AACnB,IAAI;AACJ,kBAAkB,KAAK;AACvB,WAAW,KAAK;AAChB;AACA;;AAEA;AACA;AACA;AACO;AACP,gBAAgB,KAAK;AACrB;AACA;AACA,sBAAsB,QAAQ;AAC9B,0CAA0C,QAAQ,6BAA6B,KAAK;AACpF;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA,8DAA8D,kBAAkB,OAAO;AACvF;AACA,OAAO,QAAQ;AACf,2DAA2D,kBAAkB,OAAO;AACpF;AACA,sBAAsB,KAAK;AAC3B,OAAO,OAAO;AACd,0DAA0D,kBAAkB,OAAO;AACnF;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,KAAK,WAAW,OAAO;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP,MAAM,IAAI;AACV;AACA;AACA,qBAAqB,OAAO;AAC5B,iBAAiB,KAAK;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,gBAAgB;AACpD;AACO;AACP,SAAS,gBAAgB;AACzB;AACA;;AChL2D;AACqC;AAC1C;AACd;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN,oDAAoD,SAAS;AAC7D,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,kBAAkB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,KAAK;AAChB,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,KAAK;AAChB,GAAG;AACH;AACA;AACA,MAAM,WAAW,qBAAqB,QAAQ;AAC9C;AACA;AACA,YAAY,kBAAkB;AAC9B,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,UAAU,kBAAkB;AAC5B;AACA,OAAO,WAAW,oBAAoB,QAAQ;AAC9C;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;AC5GO;AACP;AACA;AACA;AACA;AACA;AACA;;ACNA,wBAAwB;AACxB,yBAAyB;AACzB,qBAAqB;AACrB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP,6CAA6C,MAAM,OAAO,OAAO;AACjE;AACA,QAAQ,OAAO;AACf;AACA;AACO;AACP,iBAAiB;AACjB;AACO;AACP;AACA;AACO;AACP;AACA;;AAEA;AACO;;AAEP;AACO,mDAAmD;AACnD;AACP,gBAAgB;AAChB;AACO;AACP;AACA;;AAEA;AACA,+BAA+B;AACxB;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;;AClJ8D;AAC4Y;AAC1c;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA,cAAc,eAAe;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACO;AACP,aAAa;AACb,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,cAAc,aAAa,sBAAsB;AACvD;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA,IAAI;AACJ;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wCAAwC,YAAY,GAAG,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,mBAAmB;AACpC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA,qBAAqB,mBAAmB;AACxC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA,qBAAqB,0BAA0B;AAC/C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB;AACpB;AACA,QAAQ;AACR;AACA,iBAAiB,0BAA0B,WAAW;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA,yBAAyB,aAAa,YAAY,aAAa,GAAG,aAAa,YAAY,aAAa,GAAG,iBAAiB,YAAY,iBAAiB,GAAG,iBAAiB;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW,aAAa,OAAO,aAAa,OAAO;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU,4BAA4B,yBAAyB;AAC/D;AACA;;AAEA;AACA,qCAAqC,aAAa;AAClD,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,kBAAkB;AACvC;AACA;AACA;AACA,YAAY;AACZ,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B,QAAQ;AACR;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAuB;AAC/B,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB,cAAc,OAAO;AAC7E;AACA;;AAEA;AACA,+BAA+B,aAAa;AAC5C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW,aAAa,YAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;;ACztBA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACHgB;;AAE1C;AACA;;AAEA;AACA,WAAW,WAAU;;AAErB,0CAAe,IAAI,EAAC;;;ACRU;;AAE9B;AACA,IAAI,cAAM,GAAG,KAAI;;AAEjB,4CAAe,cAAM,EAAC;;;ACLY;;AAElC;AACA;;AAEA;AACA,IAAI,yBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,cAAc,yBAAc;AAC5B;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC7CzB;AACA,IAAI,2BAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,oCAAoB,GAAG,2BAAW;;AAEtC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,oCAAoB;AAC7B;;AAEA,oDAAe,cAAc,EAAC;;;ACrBI;AACM;AACU;;AAElD;AACA;AACA;;AAEA;AACA,IAAI,0BAAc,GAAG,OAAM,GAAG,OAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAc,IAAI,0BAAc;AAC1C,MAAM,UAAS;AACf,MAAM,eAAc;AACpB;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAAe,YAAY,EAAC;;;AC5Bc;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,sBAAY,WAAW,WAAU;AACtC;;AAEA,uDAAe,QAAQ,EAAC;;;AC5Ba;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACvB5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACpBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACzBW;AACI;AACH;AACE;;AAErC;AACA;;AAEA;AACA,kBAAkB,OAAM,GAAG,OAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO;AACb;AACA,WAAW,SAAQ;AACnB;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpCkB;AACA;;AAE9C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAY;AAC5B,gBAAgB,aAAY;AAC5B,QAAQ;AACR,gBAAgB,aAAY;AAC5B,gBAAgB,aAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;ACrCyB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI,OAAG,GAAG,oBAAmB;AAC7B;AACA,CAAC;;AAED,kDAAe,OAAG,EAAC;;;ACrBnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AClBqB;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,sBAAsB,gBAAe;AACrC;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AClBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC9Bc;AACD;AACA;;AAErC;AACA,IAAI,YAAG;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd,WAAW,YAAG;AACd;AACA,MAAM,kBAAQ;AACd;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB;AACA;AACA;AACA,gCAAgC,YAAG;AACnC;;AAEA,uDAAe,QAAQ,EAAC;;;AC/Da;;AAErC;AACA,IAAI,iBAAQ;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAQ;AAClB,gBAAgB,iBAAQ,eAAe,iBAAQ;AAC/C;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACzCa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;;AAEA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACnCc;;AAEvC;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,gCAAgC;AACjD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACzCrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACpBkB;AACL;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,YAAY,WAAU;AACtB;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACpCI;;AAE9B;AACA,iBAAiB,KAAI;;AAErB,gDAAe,UAAU,EAAC;;;ACLgB;;AAE1C;AACA;AACA,0BAA0B,WAAU,IAAI,WAAU,SAAS,WAAU;AACrE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACnBxB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACzBiB;AACH;AACD;AACC;;AAEtC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA,IAAI,uBAAS;AACb,IAAI,yBAAW;;AAEf;AACA,IAAI,0BAAY,GAAG,uBAAS;;AAE5B;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA,EAAE,0BAAY,MAAM,4BAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,OAAO,kBAAQ,WAAW,SAAQ;AAClC;AACA;AACA,gBAAgB,oBAAU;AAC1B,sBAAsB,SAAQ;AAC9B;;AAEA,kDAAe,YAAY,EAAC;;;AC9C5B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACZsB;AACR;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,cAAc,SAAQ;AACtB,SAAS,aAAY;AACrB;;AAEA,+CAAe,SAAS,EAAC;;;AChBe;AACV;;AAE9B;AACA,IAAI,gBAAO,GAAG,UAAS,CAAC,KAAI;;AAE5B,6CAAe,gBAAO,EAAC;;;ACNa;;AAEpC;AACA,cAAc,QAAO,QAAQ,QAAO;;AAEpC,6CAAe,OAAO,EAAC;;;ACLc;AACD;;AAEpC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA,mBAAmB,QAAO,GAAG,kBAAQ;AACrC,EAAE,QAAO;AACT;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AChBU;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,gDAAe,UAAU,EAAC;;;AC7BgB;AACL;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAU;AAChC;;AAEA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpCgB;AACZ;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,aAAa,WAAU;;AAEvB;AACA,+BAA+B,KAAI;AACnC;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAAe,KAAK,EAAC;;;ACpBrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtC3B;AACA,IAAI,2BAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,SAAS;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAS;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxChC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpB5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACTgB;AACA;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,WAAU,CAAC,WAAU;AAC7C;;AAEA,iDAAe,WAAW,EAAC;;;AC3B3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;AChBgB;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA,eAAe,QAAO,GAAG,cAAI;AAC7B,SAAS,QAAO;AAChB;;AAEA,6CAAe,OAAO,EAAC;;;ACdvB;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACHe;;AAExC;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,2BAAc,GAAG,wBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,UAAS;AACvB,eAAe,2BAAc,MAAM,UAAS;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC9Be;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,WAAU,CAAC,WAAU;AAC/C;;AAEA,mDAAe,aAAa,EAAC;;;ACrB7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBmB;AACI;AACR;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,yBAAyB,YAAW;AACpC;AACA;AACA,mBAAmB,cAAa;AAChC,uBAAuB,UAAS;AAChC;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACtBgB;AACI;AACN;AACP;AACU;AACC;;AAE9C;AACA,IAAI,yBAAW;;AAEf;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAY,YAAY,iBAAO,8BAA8B,YAAW;AAC9E,yBAAyB,cAAa;AACtC;AACA;AACA,QAAQ,4BAAc;AACtB,aAAa,aAAY;AACzB;AACA;AACA,aAAa,cAAa;AAC1B;;AAEA;AACA,mBAAmB,WAAU;AAC7B;;AAEA,kDAAe,MAAM,EAAC;;;AClJsB;AACR;AACQ;AACJ;;AAExC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA,iBAAiB,YAAW;AAC5B,cAAc,aAAM;;AAEpB,kDAAkD,YAAW;AAC7D;AACA;AACA;AACA;AACA;AACA,aAAa,QAAO;AACpB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC3B1B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACpCoB;AACN;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA,cAAc,SAAQ,CAAC,YAAW;;AAElC,6CAAe,OAAO,EAAC;;;ACnBvB;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AChB9B;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA,uDAAe,iBAAiB,EAAC;;;ACtBjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACzBgB;;AAExC;AACA;AACA,eAAe,UAAS;AACxB,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED,oDAAe,cAAc,EAAC;;;ACVO;AACa;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,uBAAuB,eAAc,GAAG,kBAAQ;AAChD,SAAS,eAAc;AACvB;AACA;AACA,aAAa,kBAAQ;AACrB;AACA,GAAG;AACH;;AAEA,qDAAe,eAAe,EAAC;;;ACrBqB;AACd;;AAEtC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,kBAAkB,SAAQ,CAAC,gBAAe;;AAE1C,iDAAe,WAAW,EAAC;;;ACb3B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACrBzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACvB7B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACXzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACtBmB;AACR;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,MAAM,cAAa;AACnB,MAAM,cAAa,QAAQ,UAAS;AACpC;;AAEA,iDAAe,WAAW,EAAC;;;ACnBiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,qBAAqB,YAAW;AAChC;;AAEA,mDAAe,aAAa,EAAC;;;AChBW;AACQ;;AAEhD;AACA,IAAI,iCAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iCAAc;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,EAAE,UAAS;AACX;AACA,gCAAgC,cAAa;AAC7C;AACA;AACA,GAAG;AACH;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;AC7CiB;AACM;AACZ;AACY;;AAExD;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,SAAS,YAAW,UAAU,kBAAiB,SAAS,kBAAiB,CAAC,eAAc;AACxF;;AAEA,qDAAe,eAAe,EAAC;;;ACpBW;AACN;AACgB;;AAEpD;AACA,IAAI,6BAAc;AAClB,IAAI,iCAAkB;AACtB;AACA,IAAI,8BAAe;AACnB,IAAI,gCAAiB;AACrB,IAAI,sCAAuB;;AAE3B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,0BAA0B,8BAAe;AACzC;AACA;AACA;AACA;;AAEA,wBAAwB,gCAAiB,GAAG,sCAAuB;AACnE,yBAAyB,sCAAuB,GAAG,gCAAiB;;AAEpE;AACA,iBAAiB,6BAAc,GAAG,iCAAkB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,WAAU;AAChB,IAAI,QAAO;AACX;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,mDAAe,aAAa,EAAC;;;ACvD7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACZzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACxBiB;AACJ;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,iBAAiB,UAAS;;AAE1B;AACA;AACA,oBAAoB,QAAO;AAC3B;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;AC5BvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC5Bc;AACU;AACR;AACJ;AACM;AACR;AACJ;AACc;AACpB;;AAE9B;AACA,IAAI,4BAAc;AAClB,IAAI,gCAAkB;AACtB,IAAI,6BAAe;AACnB,IAAI,mCAAqB;AACzB,IAAI,2BAAa;AACjB,IAAI,4BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,wBAAwB,2BAAa;AACrC,yBAAyB,4BAAc;AACvC,4BAA4B,gCAAkB;AAC9C,6BAA6B,6BAAe,GAAG,mCAAqB;AACpE,yBAAyB,4BAAc;AACvC,qCAAqC,WAAU;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,UAAS;AACjC,yBAAyB,aAAY;AACrC;AACA;AACA,aAAa,YAAW;AACxB;AACA;AACA,aAAa,iBAAgB;AAC7B;AACA;AACA;AACA,uBAAuB,eAAc;AACrC,aAAa,cAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAO;AACpB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAI;AAC7B,mBAAmB,WAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AC3FI;AACU;AACI;AACE;AACR;AACU;AACpB;;AAE9B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,aAAa,WAAU;;AAEvB;AACA;AACA;AACA;AACA,sBAAsB,UAAS;;AAE/B;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAc;;AAEtB;AACA;AACA,aAAa,cAAa;AAC1B,uBAAuB,aAAY;AACnC;AACA;AACA,+BAA+B,KAAI;AACnC,WAAW,MAAK;AAChB;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7CK;AACU;AACZ;;AAE9B;AACA,IAAI,6BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB;AACA,aAAa,UAAU;AACvB;AACA;AACA,yBAAyB,6BAAc;AACvC,aAAa,WAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAI;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAK;AAChB;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AC1Ce;AACU;AACJ;;AAElD;AACA,IAAI,sBAAW;;AAEf;AACA,IAAI,yBAAc;AAClB,IAAI,6BAAkB;AACtB,IAAI,gCAAqB;AACzB,IAAI,0BAAe;AACnB,IAAI,wBAAa;AACjB,IAAI,0BAAe;;AAEnB;AACA,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAc,GAAG,6BAAkB,GAAG,wBAAa;;AAElF;AACA,oBAAoB,wBAAa,iBAAiB,0BAAe;AACjE,oBAAoB,wBAAa,iBAAiB,0BAAe;AACjE,qBAAqB,wBAAa,GAAG,0BAAe,qDAAqD,0BAAe;;AAExH;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAc;AACjC;AACA;AACA,4BAA4B,yBAAc,OAAO,gCAAqB;AACtE;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAW;AACpC,yBAAyB,eAAc,UAAU,sBAAW;AAC5D;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAgB;AACzC,yBAAyB,eAAc,UAAU,sBAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAa;AAChC,4CAA4C,oBAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACzFmB;AACF;AACE;AACE;AACE;AACZ;AACI;AACJ;AACgB;AACb;;AAEvC;AACA,IAAI,2BAAe;;AAEnB;AACA,IAAI,0BAAc;AAClB,IAAI,8BAAkB;AACtB,IAAI,2BAAe;AACnB,IAAI,iCAAqB;AACzB,IAAI,6BAAiB;AACrB,IAAI,mCAAuB;;AAE3B;AACA,IAAI,qBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,4BAA4B,8BAAkB;AAC9C;AACA,wBAAwB,2BAAe;AACvC;AACA;AACA;AACA,iBAAiB,6BAAiB,GAAG,mCAAuB;AAC5D;AACA;AACA,kCAAkC,qBAAS,CAAC,mBAAS;AACrD,wCAAwC,mBAAS;AACjD;;AAEA,gBAAgB,mCAAuB;AACvC;AACA;;AAEA;AACA;AACA,qCAAqC,QAAO;;AAE5C;AACA;AACA;AACA;;AAEA;AACA,IAAI,UAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAS;;AAEf,2BAA2B,2BAAe,GAAG,iCAAqB;AAClE,iBAAiB,2BAAe,GAAG,iCAAqB;AACxD;AACA,6BAA6B,0BAAc;AAC3C,iBAAiB,WAAU;AAC3B,IAAI,oBAAoB,2BAAe,eAAe,iCAAqB;AAC3E,aAAa,YAAW;AACxB,IAAI,qBAAqB,6BAAiB,gBAAgB,0BAAc,GAAG,6BAAiB;AAC5F,aAAa,cAAa;AAC1B,IAAI;AACJ,aAAa,aAAY;AACzB;AACA,sBAAsB,YAAW,GAAG,QAAO;AAC3C,SAAS,gBAAe;AACxB;;AAEA,gDAAe,UAAU,EAAC;;;ACzGgB;;AAE1C;AACA,IAAI,iBAAa;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAU,OAAO,iBAAa;AACvC;;AAEA,kDAAe,GAAG,EAAC;;;AC5B+B;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA,4BAA4B,eAAc;AAC1C,IAAI,eAAc;AAClB;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACxB/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,EAAE,EAAC;;;ACpCkC;AAC3B;;AAEzB;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,2BAAc,GAAG,wBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA,QAAQ,2BAAc,sBAAsB,YAAE;AAC9C;AACA,IAAI,gBAAe;AACnB;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3BiB;AACQ;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,QAAQ,UAAU;AAC7B,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,gBAAe;AACrB,MAAM;AACN,MAAM,YAAW;AACjB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACvCM;;AAEhC;AACA,IAAI,mBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,UAAU,mBAAS;AACnB;AACA;AACA;AACA,iBAAiB,mBAAS;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAK;AAChB;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACnCa;AACC;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,YAAW,CAAC,SAAQ,cAAc,kBAAQ;AACnD;;AAEA,8CAAe,QAAQ,EAAC;;;AChBxB;AACA,IAAI,yBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAgB;AAC7D;;AAEA,uDAAe,QAAQ,EAAC;;;AClCiB;AACJ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAQ,mBAAmB,oBAAU;AAC/D;;AAEA,0DAAe,WAAW,EAAC;;;AChCF;AACkB;AACP;AACC;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA;AACA;AACA,WAAW,qBAAW,YAAY,QAAO;AACzC;AACA;AACA,WAAW,YAAE;AACb;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC7BQ;AACY;;AAElD;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,eAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,oDAAe,cAAc,EAAC;;;ACpC9B;AACA,IAAI,wBAAW;;AAEf;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,+DAA+D,wBAAW;;AAE1E;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBiB;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU;AAC1C;;AAEA,qDAAe,eAAe,EAAC;;;ACjBqB;AACP;;AAE7C;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,0BAAc,GAAG,uBAAW;;AAEhC;AACA,2BAA2B,uBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAe,cAAc,mBAAmB,MAAM,gBAAe;AACvF,SAAS,sBAAY,WAAW,0BAAc;AAC9C;AACA;;AAEA,0DAAe,WAAW,EAAC;;;ACnC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACjBK;AACS;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,KAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAS;;AAE1C,uDAAe,QAAQ,EAAC;;;ACrCkB;AACL;AACQ;;AAE7C;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAO;AACtB;AACA;AACA,0CAA0C,yBAAO;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY;AACrB,IAAI,kBAAQ,mCAAmC,WAAU;AACzD;;AAEA,sDAAe,gBAAgB,EAAC;;;AC3DhC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACbiB;;AAE1C;AACA,IAAI,qBAAW;;AAEf;AACA,IAAI,oBAAU,GAAG,qBAAW;;AAE5B;AACA,IAAI,uBAAa,GAAG,oBAAU,IAAI,oBAAU,aAAa,qBAAW;;AAEpE;AACA,kBAAkB,uBAAa,IAAI,WAAU;;AAE7C;AACA;AACA;AACA;AACA,gBAAgB,oBAAU,IAAI,oBAAU,YAAY,oBAAU;;AAE9D;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED,8CAAe,QAAQ,EAAC;;;AC7B8B;AACd;AACF;;AAEtC;AACA,uBAAuB,SAAQ,IAAI,SAAQ;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAS,qBAAqB,iBAAgB;;AAEpF,2DAAe,YAAY,EAAC;;;AC1BY;AACG;AACR;AACE;AACD;AACS;;AAE7C;AACA,IAAI,0BAAW;;AAEf;AACA,IAAI,6BAAc,GAAG,0BAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,cAAc,iBAAO;AACrB,wBAAwB,qBAAW;AACnC,mCAAmC,kBAAQ;AAC3C,8CAA8C,sBAAY;AAC1D;AACA,6BAA6B,UAAS;AACtC;;AAEA;AACA,sBAAsB,6BAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AChD7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACda;;AAEpC;AACA,iBAAiB,QAAO;;AAExB,gDAAe,UAAU,EAAC;;;ACLkB;AACF;;AAE1C;AACA,IAAI,qBAAW;;AAEf;AACA,IAAI,wBAAc,GAAG,qBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,OAAO,YAAW;AAClB,WAAW,WAAU;AACrB;AACA;AACA;AACA,QAAQ,wBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AC7BwB;AACV;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAW,WAAW,cAAa,WAAW,SAAQ;AAC/D;;AAEA,mDAAe,IAAI,EAAC;;;ACpCwB;AACF;AACQ;AACP;AACC;AACf;;AAE7B;AACA,IAAI,kBAAW;;AAEf;AACA,IAAI,qBAAc,GAAG,kBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,IAAI,aAAM,GAAG,eAAc;AAC3B,MAAM,YAAW,YAAY,qBAAW;AACxC,IAAI,WAAU,SAAS,cAAI;AAC3B;AACA;AACA;AACA,QAAQ,qBAAc;AACtB,MAAM,YAAW;AACjB;AACA;AACA,CAAC;;AAED,qDAAe,aAAM,EAAC;;;ACzDtB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACnBS;AACO;AACE;;AAE9C;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,0BAAc,GAAG,uBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,OAAO,kBAAQ;AACf,WAAW,aAAY;AACvB;AACA,gBAAgB,YAAW;AAC3B;;AAEA;AACA,+CAA+C,0BAAc;AAC7D;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AChCsB;AACN;AACC;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAW,WAAW,cAAa,iBAAiB,WAAU;AACvE;;AAEA,qDAAe,MAAM,EAAC;;;AC/BoB;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,WAAW;AACX;AACA,eAAe,eAAc;AAC7B,EAAE,WAAU,SAAS,gBAAM;AAC3B,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACvCkB;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9C,WAAW;AACX;AACA,mBAAmB,eAAc;AACjC,EAAE,WAAU,SAAS,gBAAM;AAC3B,CAAC;;AAED,2DAAe,YAAY,EAAC;;;ACrCc;AACQ;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9C,WAAW;AACX;AACA,iBAAiB,eAAc;AAC/B,EAAE,WAAU,SAAS,cAAI;AACzB,CAAC;;AAED,yDAAe,UAAU,EAAC;;;ACpCS;AACE;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA;AACA;AACA,uBAAuB,kBAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA,2CAAe,KAAK,EAAC;;;AC5BmB;;AAExC;AACA,mBAAmB,UAAS;;AAE5B,kDAAe,YAAY,EAAC;;;ACLkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAY,GAAG,aAAY;AAC7C;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACdzB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AChBoB;;AAE9C;AACA;;AAEA;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,MAAM,aAAY;AAClB;AACA;AACA;AACA,SAAS,uBAAc;AACvB;;AAEA,6CAAe,OAAO,EAAC;;;AC7BuB;;AAE9C;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,SAAS,aAAY,+BAA+B,uBAAc;AAClE;;AAEA,6CAAe,OAAO,EAAC;;;ACtBuB;;AAE9C;AACA,IAAI,uBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe,aAAY,2BAA2B,uBAAc;AACpE;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACtBiB;AACE;AACN;AACA;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,UAAS;AAChC,2BAA2B,WAAU;AACrC,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;AAC5B,qBAAqB,QAAO;;AAE5B,0CAAe,IAAI,EAAC;;;AC/BpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACZL;;AAEzB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,QAAQ,YAAE;AACV;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpBkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AClCe;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AClBkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,aAAY;AACrB;;AAEA,kDAAe,YAAY,EAAC;;;ACfkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,aAAY;;AAE1B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACzBsB;AACE;AACN;AACA;AACA;;AAE9C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,eAAc;AAC1C,gCAAgC,gBAAe;AAC/C,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;AACtC,0BAA0B,aAAY;;AAEtC,+CAAe,SAAS,EAAC;;;AC/Be;AACV;;AAE9B;AACA,IAAI,QAAG,GAAG,UAAS,CAAC,KAAI;;AAExB,yCAAe,QAAG,EAAC;;;ACNW;AACU;AACZ;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAI;AACpB,gBAAgB,IAAG,IAAI,UAAS;AAChC,kBAAkB,KAAI;AACtB;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACpB7B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACde;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,SAAS,UAAS;AAClB;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,eAAe,WAAU;AACzB;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACjBY;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,WAAU;AACnB;;AAEA,iDAAe,WAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,WAAU;AACnB;;AAEA,iDAAe,WAAW,EAAC;;;ACfe;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,aAAa,WAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrBqB;AACE;AACN;AACA;AACA;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,cAAa;AACxC,+BAA+B,eAAc;AAC7C,yBAAyB,YAAW;AACpC,yBAAyB,YAAW;AACpC,yBAAyB,YAAW;;AAEpC,8CAAe,QAAQ,EAAC;;;AC/Bc;;AAEtC;AACA,IAAI,uBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAe;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAQ;AACjD;AACA;;AAEA;AACA,gBAAgB,SAAQ;;AAExB,sDAAe,OAAO,EAAC;;;ACxEY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,eAAe,iBAAO;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACzBmB;;AAEhD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,mBAAmB,cAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED,kDAAe,YAAY,EAAC;;;AC1BkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB,8BAA8B,aAAY;AAC1C;;AAEA,uDAAe,iBAAQ,EAAC;;;AC3BW;AACH;AACc;AACT;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA,SAAS,MAAK,4BAA4B,aAAY,CAAC,kBAAQ;AAC/D;;AAEA,8CAAe,QAAQ,EAAC;;;ACpBa;;AAErC;AACA,IAAI,eAAQ;;AAEZ;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA,kCAAkC,kBAAQ;AAC1C;AACA;AACA;AACA,2CAA2C,eAAQ;AACnD;;AAEA,2CAAe,KAAK,EAAC;;;ACpBiB;AACN;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;;AAEA;AACA,oBAAoB,MAAK;AACzB;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACvBa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAO;AACnD;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AChCQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,aAAG;AAC1C;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACtBtB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACnBS;AACS;AACR;;AAEnC;AACA,uBAAuB,OAAM,GAAG,OAAM;;AAEtC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,iBAAO,WAAW,qBAAW;AACtC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACnBW;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,4BAA4B,cAAa;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,QAAQ,UAAS;AACjB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrCiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAW;AAC7B;;AAEA,sDAAe,OAAO,EAAC;;;ACrBY;AACG;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,YAAW,CAAC,SAAQ,kBAAkB,iBAAO;AACtD;;AAEA,8CAAe,QAAQ,EAAC;;;ACfU;AACI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,SAAS,SAAQ,CAAC,OAAM;;AAExB,iDAAe,EAAE,EAAC;;;ACtBkB;;AAEpC;AACA,mBAAmB,QAAO;;AAE1B,kDAAe,YAAY,EAAC;;;ACLc;AACI;AACD;;AAE7C;AACA,IAAI,uBAAS;;AAEb;AACA,IAAI,uBAAS;AACb,IAAI,yBAAW;;AAEf;AACA,IAAI,0BAAY,GAAG,uBAAS;;AAE5B;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA,uBAAuB,0BAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAY,WAAW,WAAU,WAAW,uBAAS;AAC5D;AACA;AACA,cAAc,aAAY;AAC1B;AACA;AACA;AACA,aAAa,4BAAc;AAC3B;AACA,IAAI,0BAAY;AAChB;;AAEA,4DAAe,aAAa,EAAC;;;AC7Da;AACG;AACE;;AAE/C;AACA;AACA,IAAI,gBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAY;AACnB;AACA;AACA,YAAY,WAAU;AACtB,gBAAgB,gBAAQ;AACxB,2EAA2E,uBAAa;AACxF;;AAEA,sDAAe,OAAO,EAAC;;;ACnCS;AACM;AACH;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB;AACA,WAAW,MAAK;AAChB,IAAI;AACJ,WAAW,iBAAO;AAClB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AClCgB;;AAEvC;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA,MAAM,mBAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvCgB;AACI;AACF;AACU;;AAElD;AACA,IAAI,mBAAc;AAClB,IAAI,sBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAQ;AACnB,gBAAgB,mBAAc;AAC9B;AACA,kBAAkB,eAAc,WAAW,UAAS;AACpD,eAAe,sBAAiB;AAChC;AACA,SAAS,WAAU;AACnB,CAAC;;AAED;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACxDoB;AACY;AACvB;AACS;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,EAAE,UAAS;AACX,UAAU,MAAK;AACf,IAAI,gBAAe,cAAc,cAAI;AACrC,GAAG;AACH;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACxCe;AACI;AACF;AACU;;AAElD;AACA,IAAI,sBAAc;AAClB,IAAI,0BAAkB;AACtB,IAAI,yBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,gBAAgB,sBAAc,GAAG,0BAAkB;AACnD;AACA,kBAAkB,eAAc,WAAW,UAAS;AACpD,eAAe,yBAAiB;AAChC;AACA,SAAS,WAAU;AACnB,CAAC;;AAED;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACnEvB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC9Be;;AAExC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,UAAS;AACtD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACzB1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACX5B;AACA,IAAI,6BAAa;AACjB,IAAI,iCAAiB;AACrB,IAAI,qCAAqB;AACzB,IAAI,mCAAmB;AACvB,IAAI,4BAAY,GAAG,iCAAiB,GAAG,qCAAqB,GAAG,mCAAmB;AAClF,IAAI,0BAAU;;AAEd;AACA,qBAAqB,6BAAa;AAClC,oBAAoB,4BAAY;AAChC;AACA;AACA,yBAAyB,6BAAa;AACtC,+CAA+C,EAAE;AACjD;AACA,IAAI,qBAAK;;AAET;AACA;AACA,qBAAqB,0BAAU;AAC/B,wBAAwB,qBAAK;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACvCgB;AACJ;AACQ;;AAElD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,WAAU;AACnB,MAAM,eAAc;AACpB,MAAM,aAAY;AAClB;;AAEA,mDAAe,aAAa,EAAC;;;ACjBW;AACE;AACM;AACX;;AAErC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,aAAa,kBAAQ;;AAErB,qBAAqB,WAAU;AAC/B,QAAQ,cAAa;AACrB;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ,UAAS;AACjB;;AAEA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AChCqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAe;;AAEhC,yDAAe,UAAU,EAAC;;;ACrBW;AACI;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oBAAU,CAAC,kBAAQ;AAC5B;;AAEA,yDAAe,UAAU,EAAC;;;ACtB1B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACzB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACboB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,mBAAmB,eAAc;;AAEjC,kDAAe,YAAY,EAAC;;;ACtEkB;AACT;;AAErC;AACA;;AAEA;AACA,IAAI,wBAAiB;AACrB,IAAI,4BAAqB;AACzB,IAAI,0BAAmB;AACvB,IAAI,mBAAY,GAAG,wBAAiB,GAAG,4BAAqB,GAAG,0BAAmB;;AAElF;AACA,IAAI,cAAO,SAAS,mBAAY;;AAEhC;AACA;AACA;AACA;AACA,yBAAyB,cAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,2CAA2C,aAAY;AACvD;;AAEA,qDAAe,MAAM,EAAC;;;AC5CtB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACd1B;AACA,yCAAyC,EAAE;;AAE3C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACd9B;AACA,IAAI,2BAAa;AACjB,IAAI,+BAAiB;AACrB,IAAI,mCAAqB;AACzB,IAAI,iCAAmB;AACvB,IAAI,0BAAY,GAAG,+BAAiB,GAAG,mCAAqB,GAAG,iCAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAU;AACd;;AAEA;AACA;AACA;AACA,IAAI,qBAAO,SAAS,0BAAY;AAChC;AACA;AACA;AACA,oBAAoB,2BAAa;AACjC,IAAI,oBAAM;AACV,IAAI,wBAAU,WAAW,qBAAO,SAAS,oBAAM;AAC/C,IAAI,yBAAW,UAAU,2BAAa;AACtC,IAAI,wBAAU,iCAAiC,EAAE;AACjD,IAAI,wBAAU;AACd;AACA,IAAI,mBAAK;;AAET;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAQ,GAAG,wBAAU;AACzB,IAAI,sBAAQ,SAAS,wBAAU;AAC/B,IAAI,uBAAS,WAAW,mBAAK,YAAY,yBAAW,EAAE,wBAAU,EAAE,wBAAU,oBAAoB,sBAAQ,GAAG,sBAAQ;AACnH;AACA;AACA,IAAI,mBAAK,GAAG,sBAAQ,GAAG,sBAAQ,GAAG,uBAAS;AAC3C,kCAAkC,wBAAU,EAAE,wBAAU,oBAAoB,mBAAK;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpEc;AACQ;AACb;AACS;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;;AAEA;AACA,WAAW,eAAc,WAAW,aAAY,WAAW,WAAU;AACrE;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AClCuB;AACX;AACF;;AAE/B;AACA,IAAI,wBAAM;;AAEV;AACA,oBAAoB,wBAAM;;AAE1B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,YAAW,CAAC,eAAK,CAAC,gBAAM;AACnC;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACvBS;AACa;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,2BAA2B,oBAAU;AACrC,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC5BU;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAO;AAChB;;AAEA,wDAAe,SAAS,EAAC;;;AC3CK;AACS;AACF;AACA;;AAErC;AACA,qBAAqB,KAAI;AACzB,IAAI,sBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,aAAa,kBAAQ;AACrB,wCAAwC,sBAAS,CAAC,mBAAS;AAC3D;AACA;AACA;AACA,kBAAkB,kBAAQ;AAC1B;;AAEA,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClCiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAW;;AAEtB,mDAAe,IAAI,EAAC;;;ACzBoB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,8BAA8B;AACrC,OAAO,8BAA8B;AACrC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,aAAM;AACrB;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACrCmB;AACU;AACX;;AAEvC;AACA;AACA,IAAI,eAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,WAAW,eAAS,CAAC,mBAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,UAAS;AAClC;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjDrB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACrBe;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA,SAAS,UAAS,CAAC,kBAAQ;AAC3B;;AAEA,oDAAe,KAAK,EAAC;;;ACtCmB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAS;AAC/B;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACd1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACbxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACbgB;AACZ;AACU;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA,sBAAsB,UAAS;AAC/B;AACA,SAAS,IAAG;AACZ;AACA;AACA;AACA;AACA,+BAA+B,SAAQ;AACvC;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACjCgB;AACE;AACE;AACN;AACA;AACA;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA,iCAAiC,UAAS;AAC1C;AACA;;AAEA;AACA,wBAAwB,WAAU;AAClC,4BAA4B,YAAW;AACvC,sBAAsB,SAAQ;AAC9B,sBAAsB,SAAQ;AAC9B,sBAAsB,SAAQ;;AAE9B,2CAAe,KAAK,EAAC;;;AC1BqB;AACb;;AAE7B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,WAAU,SAAS,cAAI;AAC1C;;AAEA,gDAAe,UAAU,EAAC;;;AChBgB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,WAAU,SAAS,gBAAM;AAC5C;;AAEA,kDAAe,YAAY,EAAC;;;AChBE;;AAE9B;AACA,IAAI,wBAAW;;AAEf;AACA,IAAI,uBAAU,GAAG,wBAAW;;AAE5B;AACA,IAAI,0BAAa,GAAG,uBAAU,IAAI,uBAAU,aAAa,wBAAW;;AAEpE;AACA,IAAI,mBAAM,GAAG,0BAAa,GAAG,KAAI;AACjC,kBAAkB,mBAAM,GAAG,mBAAM;;AAEjC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClC3B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACxB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACtBmB;AACL;;AAEvC;AACA,IAAI,uBAAW;;AAEf;AACA,IAAI,gCAAoB,GAAG,uBAAW;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,qCAAqC,mBAAS;AAC9C;AACA;AACA;AACA;AACA,SAAS,YAAW;AACpB,WAAW,gCAAoB;AAC/B,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC7BgB;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU,SAAS,WAAU;AACtC;;AAEA,iDAAe,WAAW,EAAC;;;ACfa;AACM;AACJ;AACH;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA,oBAAoB,8BAAgB,GAAG,mBAAS;AAChD;AACA;AACA,IAAI,UAAS,SAAS,WAAU;AAChC,aAAa,aAAY;AACzB;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACxBc;AACI;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU,SAAS,aAAY;AACxC;;AAEA,mDAAe,aAAa,EAAC;;;ACfW;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,SAAS,iBAAO,oBAAoB,UAAS;AAC7C;;AAEA,oDAAe,cAAc,EAAC;;;ACnBoB;AACR;AACb;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,eAAc,SAAS,cAAI,EAAE,WAAU;AAChD;;AAEA,gDAAe,UAAU,EAAC;;;ACfwB;AACJ;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,eAAc,SAAS,gBAAM,EAAE,aAAY;AACpD;;AAEA,kDAAe,YAAY,EAAC;;;AChBY;AACV;;AAE9B;AACA,eAAe,UAAS,CAAC,KAAI;;AAE7B,8CAAe,QAAQ,EAAC;;;ACNgB;AACV;;AAE9B;AACA,IAAI,gBAAO,GAAG,UAAS,CAAC,KAAI;;AAE5B,6CAAe,gBAAO,EAAC;;;ACNiB;AACV;;AAE9B;AACA,IAAI,QAAG,GAAG,UAAS,CAAC,KAAI;;AAExB,yCAAe,QAAG,EAAC;;;ACNmB;AACV;AACQ;AACR;AACQ;AACM;AACJ;;AAEtC;AACA,IAAI,cAAM;AACV,IAAI,iBAAS;AACb;AACA,IAAI,cAAM;AACV,IAAI,kBAAU;;AAEd,IAAI,mBAAW;;AAEf;AACA,yBAAyB,SAAQ,CAAC,SAAQ;AAC1C,oBAAoB,SAAQ,CAAC,IAAG;AAChC,wBAAwB,SAAQ,CAAC,QAAO;AACxC,oBAAoB,SAAQ,CAAC,IAAG;AAChC,wBAAwB,SAAQ,CAAC,QAAO;;AAExC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA,aAAa,WAAU;;AAEvB;AACA,KAAK,SAAQ,eAAe,SAAQ,yBAAyB,mBAAW;AACxE,KAAK,IAAG,eAAe,IAAG,KAAK,cAAM;AACrC,KAAK,QAAO,WAAW,QAAO;AAC9B,KAAK,IAAG,eAAe,IAAG,KAAK,cAAM;AACrC,KAAK,QAAO,eAAe,QAAO,KAAK,kBAAU;AACjD;AACA,iBAAiB,WAAU;AAC3B,yBAAyB,iBAAS;AAClC,4BAA4B,SAAQ;;AAEpC;AACA;AACA,wCAAwC,mBAAW;AACnD,mCAAmC,cAAM;AACzC;AACA,mCAAmC,cAAM;AACzC,uCAAuC,kBAAU;AACjD;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACzDtB;AACA,IAAI,2BAAW;;AAEf;AACA,IAAI,8BAAc,GAAG,2BAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,8BAAc;AAC7D;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACzBA;;AAE9B;AACA,IAAI,sBAAU,GAAG,KAAI;;AAErB,gDAAe,sBAAU,EAAC;;;ACLgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,MAAM,WAAU,iBAAiB,WAAU;AAC3C;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACfsB;;AAEtD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB,iBAAgB;AACxC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACf7B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AChBO;;AAElC;AACA,IAAI,wBAAW,GAAG,OAAM,GAAG,OAAM;AACjC,oBAAoB,wBAAW,GAAG,wBAAW;;AAE7C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACjB2B;;AAEtD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA,wBAAwB,iBAAgB;AACxC;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACfuB;AACN;AACJ;AACA;AACQ;;AAEpD;AACA,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,sBAAM;AACV,IAAI,yBAAS;AACb,IAAI,yBAAS;AACb,IAAI,sBAAM;AACV,IAAI,yBAAS;AACb,IAAI,yBAAS;;AAEb,IAAI,8BAAc;AAClB,IAAI,2BAAW;AACf,IAAI,0BAAU;AACd,IAAI,0BAAU;AACd,IAAI,uBAAO;AACX,IAAI,wBAAQ;AACZ,IAAI,wBAAQ;AACZ,IAAI,wBAAQ;AACZ,IAAI,+BAAe;AACnB,IAAI,yBAAS;AACb,IAAI,yBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,SAAS,8BAAc;AACvB,aAAa,iBAAgB;;AAE7B,SAAS,uBAAO;AAChB,SAAS,uBAAO;AAChB;;AAEA,SAAS,2BAAW;AACpB,aAAa,cAAa;;AAE1B,SAAS,0BAAU,OAAO,0BAAU;AACpC,SAAS,uBAAO,OAAO,wBAAQ,OAAO,wBAAQ;AAC9C,SAAS,wBAAQ,OAAO,+BAAe,OAAO,yBAAS,OAAO,yBAAS;AACvE,aAAa,gBAAe;;AAE5B,SAAS,sBAAM;AACf;;AAEA,SAAS,yBAAS;AAClB,SAAS,yBAAS;AAClB;;AAEA,SAAS,yBAAS;AAClB,aAAa,YAAW;;AAExB,SAAS,sBAAM;AACf;;AAEA,SAAS,yBAAS;AAClB,aAAa,YAAW;AACxB;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC5EY;AACI;AACF;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,sDAAsD,YAAW;AACjE,MAAM,WAAU,CAAC,aAAY;AAC7B;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACjBG;AACW;;AAE7C;AACA,IAAI,iBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,iBAAM;AACvD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBe;AACA;AACF;;AAEtC;AACA,gBAAgB,SAAQ,IAAI,SAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAS,cAAc,UAAS;;AAExD,oDAAe,KAAK,EAAC;;;AC1Ba;AACW;;AAE7C;AACA,IAAI,iBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,iBAAM;AACvD;;AAEA,+CAAe,SAAS,EAAC;;;ACjBe;AACA;AACF;;AAEtC;AACA,gBAAgB,SAAQ,IAAI,SAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAS,cAAc,UAAS;;AAExD,oDAAe,KAAK,EAAC;;;AC1BW;AACQ;AACI;AACF;AACI;AACF;AACJ;AACI;AACI;AACN;AACI;AACZ;AACgB;AACA;AACE;AACjB;AACE;AACN;AACM;AACN;AACF;AACI;;AAEjC;AACA;AACA;AACA;;AAEA;AACA,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,kBAAO;AACX,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,kBAAO;AACX,IAAI,iBAAM;AACV,IAAI,iBAAM;AACV,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,iBAAM;AACV,IAAI,oBAAS;AACb,IAAI,oBAAS;AACb,IAAI,qBAAU;;AAEd,IAAI,yBAAc;AAClB,IAAI,sBAAW;AACf,IAAI,qBAAU;AACd,IAAI,qBAAU;AACd,IAAI,kBAAO;AACX,IAAI,mBAAQ;AACZ,IAAI,mBAAQ;AACZ,IAAI,mBAAQ;AACZ,IAAI,0BAAe;AACnB,IAAI,oBAAS;AACb,IAAI,oBAAS;;AAEb;AACA;AACA,cAAc,kBAAO,kBAAkB,mBAAQ;AAC/C,cAAc,yBAAc,kBAAkB,sBAAW;AACzD,cAAc,kBAAO,kBAAkB,kBAAO;AAC9C,cAAc,qBAAU,kBAAkB,qBAAU;AACpD,cAAc,kBAAO,kBAAkB,mBAAQ;AAC/C,cAAc,mBAAQ,kBAAkB,iBAAM;AAC9C,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,oBAAS,kBAAkB,iBAAM;AAC/C,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,mBAAQ,kBAAkB,0BAAe;AACvD,cAAc,oBAAS,kBAAkB,oBAAS;AAClD,cAAc,mBAAQ,kBAAkB,kBAAO;AAC/C,cAAc,qBAAU;;AAExB;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA,cAAc,iBAAO;AACrB;AACA,aAAa,eAAc;AAC3B;AACA,aAAa,UAAS;AACtB;AACA,IAAI;AACJ,cAAc,OAAM;AACpB,wBAAwB,kBAAO,WAAW,iBAAM;;AAEhD,QAAQ,kBAAQ;AAChB,aAAa,YAAW;AACxB;AACA,eAAe,oBAAS,WAAW,kBAAO;AAC1C,uCAAuC,EAAE,gBAAe;AACxD;AACA;AACA,YAAY,cAAa,QAAQ,aAAY;AAC7C,YAAY,YAAW,QAAQ,WAAU;AACzC;AACA,MAAM;AACN;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA;AACA;AACA,wBAAwB,MAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,eAAK;AACX;AACA;AACA,KAAK;AACL,IAAI,SAAS,eAAK;AAClB;AACA;AACA,KAAK;AACL;;AAEA;AACA,gBAAgB,aAAY,GAAG,WAAU;AACzC,gBAAgB,gBAAM,GAAG,cAAI;;AAE7B;AACA,EAAE,UAAS;AACX;AACA;AACA;AACA;AACA;AACA,IAAI,YAAW;AACf,GAAG;AACH;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACrKe;;AAExC;AACA,IAAI,wBAAkB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,wBAAkB;AAC5C;;AAEA,oDAAe,KAAK,EAAC;;;ACnCmB;;AAExC;AACA,IAAI,yBAAe;AACnB,IAAI,4BAAkB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,yBAAe,GAAG,4BAAkB;AAC9D;;AAEA,wDAAe,SAAS,EAAC;;;AC5Be;;AAExC;AACA,IAAI,6BAAe;AACnB,IAAI,gCAAkB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,6BAAe,GAAG,gCAAkB;AAC9D;;AAEA,4DAAe,aAAa,EAAC;;;ACvCW;;AAExC;AACA,IAAI,4BAAkB;;AAEtB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAS,QAAQ,4BAAkB;AAC5C;;AAEA,wDAAe,SAAS,EAAC;;;ACzCuB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAa;AAC1B;;AAEA,2CAAe,aAAa,EAAC;;;AChC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC9BiB;AACI;AACJ;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,UAAS,CAAC,iBAAO,UAAU,UAAS,mBAAmB,YAAW;AAC3E;;AAEA,qDAAe,MAAM,EAAC;;;AC1CtB;AACA,IAAI,2BAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,2BAA2B,2BAAc;AACzC;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClB3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACbW;AACM;AACA;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA,sBAAsB,SAAQ;AAC9B;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,YAAW;AAC9D,yBAAyB,YAAW;;AAEpC,8CAAe,QAAQ,EAAC;;;AC1BxB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACtBzB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACZc;AACE;AACF;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAQ;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAS;AACpB,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACnF3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjB1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBQ;AACQ;AACjB;AACmB;AACF;AACA;;AAE1C;AACA,IAAI,gCAAoB;AACxB,IAAI,kCAAsB;;AAE1B;AACA,IAAI,mBAAO;AACX,IAAI,mBAAO;AACX,IAAI,oBAAQ;AACZ,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;AACb,IAAI,kBAAM;AACV,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb,IAAI,0BAAc;AAClB,IAAI,uBAAW;;AAEf;AACA,IAAI,uBAAW,GAAG,OAAM,GAAG,OAAM;AACjC,IAAI,yBAAa,GAAG,uBAAW,GAAG,uBAAW;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,SAAS,uBAAW;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,0BAAc;AACvB;AACA,yBAAyB,WAAU,cAAc,WAAU;AAC3D;AACA;AACA;;AAEA,SAAS,mBAAO;AAChB,SAAS,mBAAO;AAChB,SAAS,qBAAS;AAClB;AACA;AACA,aAAa,YAAE;;AAEf,SAAS,oBAAQ;AACjB;;AAEA,SAAS,qBAAS;AAClB,SAAS,qBAAS;AAClB;AACA;AACA;AACA;;AAEA,SAAS,kBAAM;AACf,oBAAoB,WAAU;;AAE9B,SAAS,kBAAM;AACf,gCAAgC,gCAAoB;AACpD,4BAA4B,WAAU;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kCAAsB;;AAEvC;AACA;AACA,mBAAmB,YAAW;AAC9B;AACA;;AAEA,SAAS,qBAAS;AAClB,UAAU,yBAAa;AACvB,eAAe,yBAAa,iBAAiB,yBAAa;AAC1D;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC/GgB;;AAE1C;AACA,IAAI,kCAAoB;;AAExB;AACA,IAAI,yBAAW;;AAEf;AACA,IAAI,4BAAc,GAAG,yBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,4BAA4B,kCAAoB;AAChD,iBAAiB,WAAU;AAC3B;AACA,iBAAiB,WAAU;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4BAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACzFI;AACY;AACF;AACI;AACZ;AACC;AACE;AACQ;;AAE7C;AACA,IAAI,qCAAoB;;AAExB;AACA,IAAI,wBAAO;AACX,IAAI,yBAAQ;AACZ,IAAI,0BAAS;;AAEb;AACA,IAAI,4BAAW;;AAEf;AACA,IAAI,+BAAc,GAAG,4BAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB,iBAAO;AACxB,iBAAiB,iBAAO;AACxB,0BAA0B,yBAAQ,GAAG,OAAM;AAC3C,0BAA0B,yBAAQ,GAAG,OAAM;;AAE3C,qBAAqB,wBAAO,GAAG,0BAAS;AACxC,qBAAqB,wBAAO,GAAG,0BAAS;;AAExC,2BAA2B,0BAAS;AACpC,2BAA2B,0BAAS;AACpC;;AAEA,mBAAmB,kBAAQ;AAC3B,SAAS,kBAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAK;AAC/B,wBAAwB,sBAAY;AACpC,QAAQ,YAAW;AACnB,QAAQ,WAAU;AAClB;AACA,kBAAkB,qCAAoB;AACtC,mCAAmC,+BAAc;AACjD,mCAAmC,+BAAc;;AAEjD;AACA;AACA;;AAEA,4BAA4B,MAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAK;AAC7B,SAAS,aAAY;AACrB;;AAEA,qDAAe,eAAe,EAAC;;;AClFqB;AACP;;AAE7C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAY,YAAY,sBAAY;AAC9E;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,iDAAe,WAAW,EAAC;;;AC3BK;AACY;;AAE5C;AACA,IAAI,iCAAoB;AACxB,IAAI,mCAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,MAAK;AAC3B;AACA;AACA;AACA;AACA,cAAc,YAAW,qBAAqB,iCAAoB,GAAG,mCAAsB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7DU;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,6BAA6B,kBAAQ;AACrC;;AAEA,wDAAe,kBAAkB,EAAC;;;ACdwB;AAC7B;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,eAAe,cAAI;AACnB;;AAEA;AACA;AACA;;AAEA,kCAAkC,mBAAkB;AACpD;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACvB5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6DAAe,uBAAuB,EAAC;;;ACnBK;AACE;AACsB;;AAEpE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB,aAAY;AAC9B;AACA,WAAW,wBAAuB;AAClC;AACA;AACA,gCAAgC,YAAW;AAC3C;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACrB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACZa;AACK;AACR;AACC;AACC;AACL;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;AACA;;AAEA;AACA,cAAc,MAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAQ,YAAY,QAAO;AAChD,KAAK,iBAAO,YAAY,qBAAW;AACnC;;AAEA,6CAAe,OAAO,EAAC;;;ACtCiB;AACJ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAO,eAAe,UAAS;AAC1D;;AAEA,oDAAe,KAAK,EAAC;;;ACjCuB;AACjB;AACI;AACC;AAC0B;AACU;AACpC;;AAEhC;AACA,IAAI,yCAAoB;AACxB,IAAI,2CAAsB;;AAE1B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,MAAM,MAAK,UAAU,mBAAkB;AACvC,WAAW,wBAAuB,CAAC,MAAK;AACxC;AACA;AACA,mBAAmB,aAAG;AACtB;AACA,QAAQ,eAAK;AACb,QAAQ,YAAW,qBAAqB,yCAAoB,GAAG,2CAAsB;AACrF;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;AChCnC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACbQ;;AAEpC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,QAAO;AAClB;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACfc;AACQ;AACtB;AACA;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAK,SAAS,aAAY,CAAC,MAAK,UAAU,iBAAgB;AACnE;;AAEA,uDAAe,QAAQ,EAAC;;;AC/BoB;AACgB;AACvB;AACF;AACE;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;AACA,WAAW,iBAAO;AAClB,QAAQ,oBAAmB;AAC3B,QAAQ,YAAW;AACnB;AACA,SAAS,kBAAQ;AACjB;;AAEA,kDAAe,YAAY,EAAC;;;AC9BI;AACM;AACQ;AACR;;AAEtC;AACA,IAAI,oBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,aAAY;;AAE/B,yBAAyB,SAAQ;AACjC;AACA,0BAA0B,oBAAe;AACzC;AACA;AACA,GAAG;;AAEH,SAAS,SAAQ;AACjB;AACA;AACA;AACA,UAAU,MAAK;AACf,eAAe,MAAK;AACpB;AACA;AACA,GAAG;AACH;;AAEA,mDAAe,IAAI,EAAC;;;AC3DpB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC1BoB;AACrB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,cAAc,cAAI;AAClB;AACA,WAAW,eAAc;AACzB;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACjBY;AACM;;AAE9C;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,gBAAgB;AACvB,OAAO;AACP;AACA;AACA,kCAAkC,mBAAmB,iBAAiB;AACtE,YAAY,gBAAgB;AAC5B;AACA;AACA,SAAS,aAAY,CAAC,UAAS,SAAS,wBAAe;AACvD;;AAEA,uDAAe,QAAQ,EAAC;;;AClC0B;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB;AACA,0BAA0B,mBAAmB,iBAAiB;AAC9D;AACA;AACA,0BAA0B,mBAAmB,iBAAiB;AAC9D;AACA;AACA;AACA,2BAA2B,eAAc,iBAAiB,cAAI;AAC9D;;AAEA,yDAAe,UAAU,EAAC;;;AC/B1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACrB/B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACxBmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA,cAAc,cAAa;;AAE3B,6CAAe,OAAO,EAAC;;;ACfa;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,QAAO,mBAAmB,cAAI;AACjD;;AAEA,gDAAe,UAAU,EAAC;;;ACfiB;;AAE3C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAW;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC/BY;AACQ;;AAElD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA,eAAe,eAAc,CAAC,WAAU;;AAExC,8CAAe,QAAQ,EAAC;;;ACbc;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,EAAE,SAAQ;AACV;AACA,GAAG;AACH;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACpBsB;AACF;AACJ;AACX;;AAEnC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,eAAe,iBAAO,eAAe,gBAAe,GAAG,eAAc;AACrE;;AAEA,oCAAoC,aAAY;AAChD;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACtBoB;AACE;;AAEtD;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,cAAc,iBAAgB;AAC9B,MAAM,sBAAc;AACpB;AACA,IAAI;AACJ,IAAI,gBAAe;AACnB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACvCmB;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU;AACzB,uCAAuC,WAAU;AACjD;;AAEA,qDAAe,MAAM,EAAC;;;AC1CoB;;AAE1C;AACA,IAAI,qBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU,OAAO,qBAAe;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACxDqB;;AAE1C;AACA,IAAI,gCAAqB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAU,OAAO,gCAAqB;AACrD;AACA;AACA;;AAEA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACrDI;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,SAAS,KAAI;AACb;;AAEA,kDAAe,GAAG,EAAC;;;ACtBkB;AACV;AACU;;AAErC;AACA,IAAI,wBAAe;;AAEnB;AACA,IAAI,kBAAS;AACb,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAe;AACvC;AACA,SAAS,kBAAQ;AACjB,MAAM,kBAAQ;AACd;AACA;AACA,uBAAuB,kBAAS,CAAC,kBAAQ;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,kBAAS;AACjB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,aAAG;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,aAAG;AAC5D;;AAEA;AACA,eAAe,aAAG;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC9LxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;ACxBa;AACb;AACyB;AACjB;;AAEjC;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,gBAAgB,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChD,WAAW;AACX;AACA,eAAe,SAAQ;AACvB;;AAEA;AACA;AACA;;AAEA,eAAe,eAAc;AAC7B;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAM;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAE,QAAQ,oBAAW,WAAW,uBAAc;AACzD;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AC/D4B;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA,+BAA+B,YAAE;AACjC;AACA,IAAI,gBAAe;AACnB;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACnBW;AACE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,qBAAW;AAC3C;;AAEA,gEAAe,iBAAiB,EAAC;;;AChCjC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACpBmB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA,SAAS,WAAU,QAAQ,gBAAM;AACjC;;AAEA,4DAAe,aAAa,EAAC;;;AC/ByB;AACV;AACQ;AACZ;AACY;AACT;AACR;AACoB;AAClB;AACI;AACJ;AACU;AACF;AACT;AACW;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA,iBAAiB,QAAO;AACxB,iBAAiB,QAAO;AACxB;;AAEA;AACA,IAAI,iBAAgB;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,iBAAO;AACvB,2BAA2B,kBAAQ;AACnC,uCAAuC,sBAAY;;AAEnD;AACA;AACA,UAAU,iBAAO;AACjB;AACA;AACA,eAAe,2BAAiB;AAChC,mBAAmB,UAAS;AAC5B;AACA;AACA;AACA,mBAAmB,YAAW;AAC9B;AACA;AACA;AACA,mBAAmB,gBAAe;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAa,cAAc,qBAAW;AACnD;AACA,UAAU,qBAAW;AACrB,mBAAmB,uBAAa;AAChC;AACA,gBAAgB,kBAAQ,cAAc,oBAAU;AAChD,mBAAmB,gBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,iBAAgB;AAClB;;AAEA,mDAAe,aAAa,EAAC;;;AC7FG;AACsB;AAClB;AACY;AACX;AACJ;AACG;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,QAAO;AACT,0BAA0B,MAAK;AAC/B,QAAQ,kBAAQ;AAChB,MAAM,cAAa;AACnB;AACA;AACA;AACA,qBAAqB,QAAO;AAC5B;;AAEA;AACA;AACA;AACA,MAAM,iBAAgB;AACtB;AACA,GAAG,EAAE,gBAAM;AACX;;AAEA,+CAAe,SAAS,EAAC;;;ACzCe;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,aAAa,GAAG;AAChB;AACA;AACA,MAAM,kBAAQ,cAAc,kBAAQ;AACpC;AACA;AACA,IAAI,UAAS;AACb;AACA;AACA;AACA;;AAEA,yDAAe,mBAAmB,EAAC;;;AC3BK;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA,WAAW;AACX;AACA,gBAAgB,eAAc;AAC9B,EAAE,UAAS;AACX,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACtCO;AACM;AACsB;AACrB;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,OAAO,UAAU,IAAI,OAAO,kBAAkB;AAClE,WAAW,OAAO;AAClB;AACA,mBAAmB,SAAQ;AAC3B,uBAAuB,oBAAmB;AAC1C,SAAS,MAAK,CAAC,mBAAS;AACxB,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC7B5B;AACA,IAAI,0BAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA;AACA;AACA,wBAAwB,0BAAe;AACvC;AACA,iCAAiC,8BAA8B;AAC/D;;AAEA,+CAAe,SAAS,EAAC;;;ACpBe;AACF;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,UAAS;AAClB,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACzBmB;AACF;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,UAAS,OAAO,kBAAQ;AACjC,CAAC;;AAED,oDAAe,KAAK,EAAC;;;AC3BrB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;ACrBK;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA,IAAI,gCAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAQ,SAAS,UAAS;AACvC;AACA;AACA,eAAe,kBAAiB;AAChC;AACA;AACA,4BAA4B,gCAAgB;AAC5C,eAAe,SAAQ;AACvB;AACA,iBAAiB,SAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AClEoB;AACN;AACN;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAQ;AACzB,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB;AACpE;AACA,CAAC;;AAED,yDAAe,UAAU,EAAC;;;AChC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACA;;AAEA,mDAAe,SAAI,EAAC;;;ACnB8B;AACN;AACE;AACR;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AACvD,YAAY,QAAQ;AACpB;AACA,mBAAmB,SAAQ;AAC3B,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB,SAAS,aAAY;AACzF;AACA,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC3CsB;AACN;AACN;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD;AACA,gCAAgC,gBAAgB;AAChD,YAAY,gBAAgB;AAC5B;AACA,qBAAqB,SAAQ;AAC7B,mBAAmB,cAAI;AACvB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,2BAAiB;AAC1B,MAAM,eAAc,QAAQ,YAAW,YAAY,2BAAiB;AACpE;AACA,CAAC;;AAED,6DAAe,cAAc,EAAC;;;ACvC8B;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAmB;AAChC;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;ACrBkB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;ACrCoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;ACtCe;;AAExC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM,UAAS;AACf,MAAM,UAAS;AACf;;AAEA,+CAAe,SAAS,EAAC;;;ACzBqB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,6DAAe,cAAc,EAAC;;;AC5CgB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC5CY;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,8CAA8C,kBAAQ;AACtD;;AAEA,kDAAe,YAAY,EAAC;;;ACbY;AACF;AACQ;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,0BAA0B,aAAY;AACtC;;AAEA,sDAAe,OAAO,EAAC;;;ACxCvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;ACpBkB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA,mBAAmB,cAAa;;AAEhC,kDAAe,YAAY,EAAC;;;ACdkB;AACjB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,aAAY,mBAAmB,cAAI;AACtD;;AAEA,qDAAe,eAAe,EAAC;;;ACfqB;AACF;;AAElD;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA,oBAAoB,eAAc,CAAC,gBAAe;;AAElD,mDAAe,aAAa,EAAC;;;ACbqB;AACF;AACF;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,eAAc,GAAG,cAAa;AACjE,0BAA0B,aAAY;AACtC;;AAEA,2DAAe,YAAY,EAAC;;;AC9BY;AACM;AACP;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,aAAY;;AAEvB;AACA;AACA;AACA,MAAM,UAAS,CAAC,mBAAS;;AAEzB;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC1Cc;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,SAAQ;AACjB;AACA,GAAG;AACH;;AAEA,iDAAe,WAAW,EAAC;;;ACjB3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACjBkB;AACV;AACQ;AACA;;AAE1C;AACA,IAAI,qBAAM;AACV,IAAI,qBAAM;;AAEV;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,cAAc,OAAM;AACpB,eAAe,qBAAM;AACrB,aAAa,WAAU;AACvB;AACA,eAAe,qBAAM;AACrB,aAAa,WAAU;AACvB;AACA,WAAW,YAAW;AACtB;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AC7BmB;AACnB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAa,CAAC,cAAI;;AAEhC,sDAAe,OAAO,EAAC;;;AC7ByB;AACf;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAa,CAAC,gBAAM;;AAEpC,wDAAe,SAAS,EAAC;;;AC7ByB;;AAElD;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,qBAAqB,eAAc;;AAEnC,oDAAe,cAAc,EAAC;;;ACpBoB;AACb;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,SAAS,aAAM;AACf,WAAW,kBAAQ;AACnB;AACA,sCAAsC,eAAc;AACpD;AACA;;AAEA,qDAAe,aAAM,EAAC;;;AC1Ce;;AAErC;AACA;AACA;AACA;AACA,IAAI,yBAAY,oBAAoB;AACpC,6BAA6B,yBAAY;;AAEzC;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,qBAAqB,yBAAY;AACjC;AACA;;AAEA,2DAAe,YAAY,EAAC;;;AC/B5B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACtBY;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACpBiB;AACF;AACM;AACX;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,WAAU,GAAG,UAAS;AACzD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEA,oDAAe,KAAK,EAAC;;;ACvDmB;AACD;;AAEvC;AACA,IAAI,yBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAS,CAAC,mBAAS,YAAY,yBAAgB;AAChE;;AAEA,uDAAe,QAAQ,EAAC;;;ACrCe;AACF;;AAErC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,UAAU,mBAAS;AACnB;AACA;AACA;AACA,uDAAuD,mBAAS;AAChE;AACA;AACA;AACA,0BAA0B,kBAAQ;AAClC;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;AC/Bc;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA;AACA,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;AC5CkB;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,EAAE,SAAQ;AACV;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpBkB;AACF;AACI;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,aAAY;AACtC;;AAEA,qDAAe,MAAM,EAAC;;;ACnDwB;AACH;AACd;;AAE7B;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,SAAS,qBAAW;AACpB,qBAAqB,aAAY;AACjC,mBAAmB,cAAI;AACvB,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACxBsB;AACF;AACP;;AAEvC;AACA,IAAI,mBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,mBAAS;AACrB;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEA,wDAAe,SAAS,EAAC;;;ACtDiB;AACH;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO,+CAA+C;AACtD,OAAO;AACP;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU,CAAC,mBAAS;;AAE/B,mDAAe,IAAI,EAAC;;;ACzCpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtBiB;AACF;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,4BAA4B;AAC9C,kBAAkB;AAClB;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,SAAS,aAAY,gBAAgB,WAAU;AACnE;;AAEA,sDAAe,OAAO,EAAC;;;AC3CyB;AACF;AACP;;AAEvC;AACA,IAAI,uBAAS;AACb,IAAI,uBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,wCAAwC,6BAA6B;AACrE;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB;AACA,QAAQ,uBAAS;AACjB,QAAQ,uBAAS;AACjB;AACA,SAAS,cAAa,QAAQ,aAAY;AAC1C;;AAEA,4DAAe,aAAa,EAAC;;;AC1Da;AACK;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,eAAe,WAAU,CAAC,uBAAa;;AAEvC,uDAAe,QAAQ,EAAC;;;ACxBoB;AACQ;AACN;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,4BAA4B;AAC9C,kBAAkB;AAClB;AACA;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,SAAS,aAAY,gBAAgB,gBAAe;AACxE;;AAEA,0DAAe,WAAW,EAAC;;;AC3C3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACtBkB;AACK;;AAE3C;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,qBAAW;;AAE1B,EAAE,SAAQ;AACV;AACA,GAAG;AACH;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACrBe;AACQ;AACV;AACD;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA,OAAO,kBAAkB;AACzB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,SAAQ,GAAG,QAAO;AACrD,0BAA0B,aAAY;AACtC;;AAEA,kDAAe,GAAG,EAAC;;;ACpDyB;AACjB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,CAAC,aAAG;AACxB;;AAEA,sDAAe,OAAO,EAAC;;;AC5BqB;AACjB;;AAE3B;AACA,IAAI,oBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,CAAC,aAAG,wBAAwB,oBAAQ;AACxD;;AAEA,0DAAe,WAAW,EAAC;;;AC9BiB;AACjB;AACY;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAS;AAC7C,SAAS,YAAW,CAAC,aAAG;AACxB;;AAEA,2DAAe,YAAY,EAAC;;;AC9BgB;;AAE5C;AACA,IAAI,oBAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAW,QAAQ,oBAAQ;AAC7C;;AAEA,0DAAe,WAAW,EAAC;;;ACxBiB;AACL;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAS;AAC7C,SAAS,YAAW;AACpB;;AAEA,2DAAe,YAAY,EAAC;;;AChCc;;AAE1C;AACA,IAAI,mBAAc;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,WAAU,OAAO,mBAAc;AACxC;;AAEA,mDAAe,IAAI,EAAC;;;AC3BwB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;ACzB2B;AACV;AACF;AACQ;AACT;AACO;;AAE1C;AACA,IAAI,2BAAe;;AAEnB;AACA,IAAI,2BAAe;AACnB,IAAI,6BAAiB;AACrB,IAAI,yBAAa;AACjB,IAAI,2BAAe;;AAEnB;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB;AACA;AACA,iBAAiB,cAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAAe;AAC3C;AACA,gCAAgC,YAAW;AAC3C,0BAA0B,cAAa;AACvC;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAW;AAChC,yCAAyC,QAAO;;AAEhD,kBAAkB,WAAU;AAC5B,wBAAwB,yBAAa,GAAG,2BAAe,GAAG,6BAAiB,GAAG,2BAAe;AAC7F;AACA;AACA,0BAA0B,YAAW;AACrC,QAAQ;AACR,uCAAuC,WAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,iBAAO;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC7EgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU;;AAErB,mDAAe,IAAI,EAAC;;;AC1BsB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAU;;AAE1B,wDAAe,SAAS,EAAC;;;ACzBW;AACU;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,SAAS,aAAY,YAAY,gBAAM;AACpD;;AAEA,oDAAe,KAAK,EAAC;;;ACtCyB;AACA;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,SAAS,aAAY,YAAY,gBAAM;AACzD;;AAEA,yDAAe,UAAU,EAAC;;;ACpCgB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,WAAU,SAAS,aAAY;AAClD;;AAEA,qDAAe,MAAM,EAAC;;;ACnC8B;AACN;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,gBAAe,SAAS,aAAY;AACvD;;AAEA,0DAAe,WAAW,EAAC;;;ACjC3B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC3BmB;AACH;;AAEzC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW;AACpB,WAAW,oBAAU;AACrB,GAAG;AACH;;AAEA,mDAAe,aAAa,EAAC;;;AClBmB;AACnB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAa,SAAS,cAAI;AACzD;;AAEA,wDAAe,SAAS,EAAC;;;AC9BuB;AACf;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAa,SAAS,gBAAM;AAC3D;;AAEA,0DAAe,WAAW,EAAC;;;AC9ByB;AACE;;AAEtD;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,cAAc,iBAAgB;AAC9B,MAAM,sBAAc;AACpB;AACA,IAAI;AACJ,IAAI,gBAAe;AACnB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACxCvB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACbe;;AAErC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,cAAc,kBAAQ;AACtB,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;;AAEA,+DAAe,yBAAyB,EAAC;;;ACnBP;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAAyB,CAAC,OAAM;;AAEzC,iDAAe,EAAE,EAAC;;;AC5BsD;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAyB;AACnC;AACA,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC7BnB;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,uBAAc;AACzC;;AAEA,6CAAe,OAAO,EAAC;;;AClBa;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,OAAO;AACzB,0BAA0B,gBAAgB,QAAQ,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAO,eAAe,QAAO;AACxD;;AAEA,kDAAe,GAAG,EAAC;;;AClCnB;AACA,IAAI,sBAAS;AACb,IAAI,sBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,mBAAmB,sBAAS,yBAAyB,sBAAS;AAC9D;;AAEA,iDAAe,WAAW,EAAC;;;ACjBiB;AACP;AACA;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAQ;AAClB;AACA;AACA;AACA,IAAI;AACJ,UAAU,kBAAQ;AAClB;AACA,WAAW,kBAAQ;AACnB,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;ACtDmB;AACP;AACU;;AAE7C;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO,WAAW,sBAAY,WAAW,WAAU,WAAW,kBAAS;AAC7E;;AAEA,uDAAe,QAAQ,EAAC;;;AC7Bc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,SAAQ;AACjB;AACA,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AClBgB;AACb;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAU,SAAS,cAAI;AACtD;;AAEA,qDAAe,MAAM,EAAC;;;ACjCsB;AACD;AACN;AACE;AACN;;AAEjC;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAW,4BAA4B,gBAAM;AAC5D,sCAAsC,mBAAS;;AAE/C;AACA;AACA,gBAAgB,kBAAS;AACzB;AACA,SAAS,kBAAQ;AACjB;AACA,mBAAmB,YAAW;AAC9B;;AAEA,uDAAe,QAAQ,EAAC;;;ACpDoB;AACL;;AAEvC;AACA,IAAI,iBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAS;AAC/C;AACA,YAAY,iBAAS;AACrB;AACA,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;ACzCiB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS,eAAO;AAChB;AACA,kBAAkB,UAAS;AAC3B;;AAEA,sDAAe,eAAO,EAAC;;;ACrBe;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA,IAAI,2BAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,8BAA8B,kBAAiB,GAAG,cAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,SAAQ,QAAQ,UAAS;AACvC;AACA,gBAAgB,2BAAS;AACzB;AACA,YAAY,SAAQ;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,SAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACzEuB;;AAEvD;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,cAAc;AAC3B;AACA;AACA,SAAS,2BAAiB;AAC1B;;AAEA,yDAAe,mBAAmB,EAAC;;;ACbG;AACgB;AAChB;AACsB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAQ;AAC3B,eAAe,SAAQ,SAAS,oBAAmB;AACnD;AACA,MAAM,iBAAgB;AACtB;AACA,CAAC;;AAED,2DAAe,YAAY,EAAC;;;AC7BU;AACgB;AACR;AACR;AACsB;AAC/B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AACzD,YAAY,QAAQ;AACpB;AACA,qBAAqB,SAAQ;AAC7B,iBAAiB,cAAI;AACrB,eAAe,SAAQ,SAAS,oBAAmB;;AAEnD,mBAAmB,cAAI;AACvB;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,iBAAgB,SAAS,aAAY;AAC3C;AACA,CAAC;;AAED,6DAAe,cAAc,EAAC;;;AC5CQ;AACgB;AAChB;AACsB;AAC/B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,uBAAuB,SAAQ;AAC/B,mBAAmB,cAAI;AACvB,eAAe,SAAQ,SAAS,oBAAmB;;AAEnD;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAgB;AACtB;AACA,CAAC;;AAED,+DAAe,gBAAgB,EAAC;;;ACxCU;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA,EAAE,WAAU;AACZ;AACA,GAAG;AACH;AACA;;AAEA,kDAAe,YAAY,EAAC;;;ACpBkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA,WAAW,aAAY,yCAAyC;AAChE;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AChBO;AACa;AACb;;AAErC;AACA,IAAI,kBAAW;;AAEf;AACA;AACA;AACA;AACA;AACA,IAAI,2BAAoB,GAAG,kBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,aAAa,eAAc;AAC3B;AACA;AACA,YAAY,2BAAoB;AAChC;;AAEA;AACA,CAAC,EAAE,kBAAQ,CAAC,kBAAQ;;AAEpB,qDAAe,MAAM,EAAC;;;ACzCwB;AACI;;AAElD;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA,IAAI,6BAAoB,GAAG,oBAAW;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,IAAI;AACJ,WAAW;AACX;AACA,eAAe,eAAc;AAC7B;AACA;AACA,YAAY,6BAAoB;AAChC;;AAEA,MAAM,uBAAc;AACpB;AACA,IAAI;AACJ;AACA;AACA,CAAC,EAAE,aAAY;;AAEf,uDAAe,QAAQ,EAAC;;;ACvDY;AACI;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA,SAAS,cAAM;AACf,oCAAoC,QAAO,SAAS,UAAS;AAC7D;;AAEA,4CAAe,cAAM,EAAC;;;ACfU;AACM;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,OAAM;AACjB,8CAA8C,MAAK,CAAC,cAAI;AACxD,oCAAoC,MAAK;AACzC;;AAEA,gDAAe,UAAU,EAAC;;;ACvBgB;AACJ;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,qBAAqB;AACtD;AACA;AACA;AACA;AACA,aAAa,SAAQ,CAAC,WAAU;;AAEhC,qDAAe,MAAM,EAAC;;;ACvBU;AACM;AACI;AACJ;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,uBAAuB;AAClC;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA,eAAe,qBAAW;;AAE1B,EAAE,SAAQ;AACV,+BAA+B,MAAK,sBAAsB,WAAU;AACpE,GAAG;AACH;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACxCiB;AACG;;AAE7C,IAAI,iCAAc;;AAElB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,iCAAc;AACnE;;AAEA,uDAAe,iBAAiB,EAAC;;;AChBuB;AAChB;AACF;;AAEtC;AACA,wBAAwB,SAAQ,IAAI,SAAQ;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAS,sBAAsB,kBAAiB;;AAExF,4DAAe,aAAa,EAAC;;;AC1Ba;AACG;;AAE7C;AACA,IAAI,iBAAO;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,sBAAY,WAAW,WAAU,WAAW,iBAAO;AACxD;;AAEA,wDAAe,SAAS,EAAC;;;AC5BiB;AACG;;AAE7C;AACA,IAAI,mBAAO;;AAEX;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,mBAAO;AAC5D;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACF;AACF;;AAEtC;AACA,iBAAiB,SAAQ,IAAI,SAAQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAS,eAAe,WAAU;;AAE5D,qDAAe,MAAM,EAAC;;;AC1BuB;AACE;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,oCAAoC,uBAAa;AACtE;;AAEA,wDAAe,SAAS,EAAC;;;ACxBa;AACJ;AACS;AACR;AACQ;AACN;AACO;AACC;;AAE7C;AACA,IAAI,cAAM;AACV,IAAI,cAAM;;AAEV;AACA,IAAI,mBAAW;;AAEf;AACA,IAAI,sBAAc,GAAG,mBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,OAAO,iBAAO;AACd,QAAQ,kBAAQ,WAAW,sBAAY,WAAW,qBAAW;AAC7D;AACA;AACA,YAAY,OAAM;AAClB,aAAa,cAAM,WAAW,cAAM;AACpC;AACA;AACA,MAAM,YAAW;AACjB,YAAY,SAAQ;AACpB;AACA;AACA,QAAQ,sBAAc;AACtB;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC5EqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAO;AAChB,SAAS,YAAW;AACpB;;AAEA,sDAAe,eAAO,EAAC;;;AClCqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAW;AAC3C;;AAEA,0DAAe,WAAW,EAAC;;;ACxCG;;AAE9B;AACA,IAAI,uBAAc,GAAG,KAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB,qCAAqC,uBAAc;AACnD;;AAEA,uDAAe,iBAAQ,EAAC;;;ACnCe;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mBAAS;AACvD;;AAEA,wDAAe,SAAS,EAAC;;;AChCmB;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,8BAA8B,YAAW,iBAAiB,aAAY;AACtE;;AAEA,sDAAe,OAAO,EAAC;;;ACnCqB;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAW,iBAAiB,aAAY;AACjD;;AAEA,0DAAe,WAAW,EAAC;;;ACxCe;AACG;;AAE7C;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,sBAAY,WAAW,WAAU,WAAW,kBAAS;AAC1D;;AAEA,uDAAe,QAAQ,EAAC;;;ACrCa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,WAAK;AACd;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,oDAAe,WAAK,EAAC;;;ACrCqB;AACD;AACF;;AAEvC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA,iBAAiB,WAAU,GAAG,oBAAU,GAAG,mBAAS;;AAEpD,gDAAe,UAAU,EAAC;;;ACboB;AACJ;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,WAAU;AAChB;AACA;AACA,SAAS,aAAY;AACrB;;AAEA,uDAAe,QAAQ,EAAC;;;ACvCxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACxBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACrBoB;AACG;;AAE7C;AACA,IAAI,uBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,SAAS,sBAAY,WAAW,WAAU,WAAW,uBAAS;AAC9D;;AAEA,kDAAe,YAAY,EAAC;;;ACjBkB;AACN;AACF;;AAEtC;AACA,mBAAmB,SAAQ,IAAI,SAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAS,iBAAiB,aAAY;;AAEpE,uDAAe,QAAQ,EAAC;;;AC1Be;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAS,qBAAqB,8BAAgB,aAAa,8BAAgB;AACpF;;AAEA,4DAAe,aAAa,EAAC;;;ACpC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAe,WAAW,EAAC;;;ACrBO;AACW;;AAE7C;AACA,IAAI,oBAAU;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,OAAM,WAAW,oBAAU;AAC3D;;AAEA,wDAAe,SAAS,EAAC;;;AC3BiB;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAY,WAAW,WAAU;AAC1C;;AAEA,wDAAe,SAAS,EAAC;;;AC3Be;AACM;;AAE9C;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,6CAA6C;AACpD,OAAO;AACP;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE,YAAY,6CAA6C;AACzD;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,aAAY,oCAAoC,UAAS,OAAO,wBAAe;AACxF;;AAEA,uDAAe,QAAQ,EAAC;;;ACpDxB;AACA,IAAI,eAAU;;AAEd;AACA,iBAAiB,eAAU;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;ACzBkC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC3B2B;AACE;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,2BAA2B;AAClC,OAAO;AACP;AACA;AACA;AACA;AACA,IAAI;AACJ,WAAW,OAAO,2BAA2B,SAAS;AACtD;AACA;AACA,WAAW,UAAU,2BAA2B,aAAa;AAC7D;AACA,YAAY,iBAAgB;AAC5B,EAAE,gBAAe;AACjB,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACnCrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,iBAAiB,EAAC;;;ACpBe;AACR;AACgB;AACjB;;AAEvC;AACA,IAAI,qBAAS;AACb,IAAI,qBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAS;AACrB,wBAAwB,qBAAS,sBAAsB,qBAAS;AAChE;AACA;AACA,MAAM,kBAAiB;AACvB,MAAM,cAAa,QAAQ,UAAS;AACpC;;AAEA,0DAAe,WAAW,EAAC;;;AC7C2B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC1B2B;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAe;;AAEhC,yDAAe,UAAU,EAAC;;;ACrB1B;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA,4CAAe,MAAM,EAAC;;;ACbY;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0BAAyB,CAAC,OAAM;;AAEzC,iDAAe,EAAE,EAAC;;;AC5BsD;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0BAAyB;AACnC;AACA,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC7BiC;AACV;AACI;;AAE9C;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,IAAI;AACJ,WAAW;AACX;AACA;AACA;AACA,aAAa,aAAY;;AAEzB,EAAE,WAAU;AACZ,IAAI,gBAAe;AACnB,GAAG;AACH;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACnC6B;AACV;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD,kBAAkB;AAClB;AACA;AACA,oCAAoC,eAAe;AACnD,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA,aAAa,aAAY;;AAEzB,EAAE,WAAU;AACZ,IAAI,gBAAe;AACnB,GAAG;AACH;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC1Ce;AACI;;AAE5C;AACA,IAAI,uBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,wBAAwB;AAC/B,OAAO;AACP;AACA;AACA,iCAAiC,gBAAgB;AACjD,YAAY,wBAAwB;AACpC;AACA;AACA,6CAA6C,QAAQ,eAAe,QAAQ;AAC5E,YAAY,wBAAwB,IAAI,wBAAwB;AAChE;AACA;AACA,SAAS,YAAW,CAAC,UAAS,SAAS,uBAAe;AACtD;;AAEA,sDAAe,OAAO,EAAC;;;AC7CiB;AACoB;;AAE5D;AACA,IAAI,+BAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,wBAAwB;AAC/B,OAAO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY,wBAAwB,IAAI,wBAAwB;AAChE;AACA;AACA,SAAS,oBAAmB,OAAO,UAAS,WAAW,+BAAe;AACtE;;AAEA,8DAAe,eAAe,EAAC;;;AC3CM;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,kBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,YAAY,EAAC;;;AC/BkB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5B2B;AACZ;AACY;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM,aAAY,QAAQ,aAAY,eAAe,OAAM;AAC3D;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjCrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;ACvBa;;AAEpC;AACA,IAAI,aAAG;;AAEP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,mBAAmB,QAAO,8BAA8B,aAAG;AAC3D;;AAEA,8CAAe,QAAQ,EAAC;;;ACnBc;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ,QAAQ,kBAAQ;AACjC;;AAEA,mDAAe,IAAI,EAAC;;;ACrB0B;AACR;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChE;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ,QAAQ,aAAY;AACrC;;AAEA,qDAAe,MAAM,EAAC;;;AC9BkB;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA,YAAY,eAAc;AAC1B,EAAE,UAAS;AACX,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACtCqB;AACJ;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,sBAAsB;AACpC,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA,WAAW,WAAU;AACrB;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;ACjCoB;AACJ;;AAEtC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAQ;AACvB;AACA,WAAW,WAAU;AACrB;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AChCsB;AACZ;AACG;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAY,QAAQ,kBAAQ,EAAE,OAAM;AAC1C;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5B2B;AACA;AACZ;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,aAAa;AAC/C,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM,aAAY,QAAQ,aAAY,eAAe,OAAM;AAC3D;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACjCmB;AACA;AACQ;AACR;AACC;AACJ;AACR;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB,IAAI,gBAAgB;AACnD;AACA;AACA;AACA;AACA,cAAc,cAAI;AAClB,oBAAoB,cAAa;;AAEjC,gBAAgB,kBAAQ;AACxB,eAAe,oBAAU;;AAEzB,EAAE,UAAS;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,UAAS;;AAEtD,yBAAyB,oDAAoD;AAC7E;AACA;AACA;AACA,kCAAkC,UAAS;AAC3C;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACzEuC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAmB;AAClC;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACrBxB;AACA,IAAI,sBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvCtB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACjBG;AACM;AACN;AACS;AACN;AACe;AACV;AACA;AACM;AACf;;AAEjC;AACA,IAAI,cAAM;AACV,IAAI,cAAM;;AAEV;AACA,kBAAkB,OAAM,GAAG,OAAM;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,WAAW,kBAAQ,UAAU,cAAa,UAAU,UAAS;AAC7D;AACA;AACA,WAAW,gBAAe;AAC1B;AACA,YAAY,OAAM;AAClB,oBAAoB,cAAM,GAAG,WAAU,WAAW,cAAM,GAAG,WAAU,GAAG,gBAAM;;AAE9E;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACzDY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,sBAAsB,iBAAO;AAC7B;AACA;AACA;;AAEA,WAAW;AACX;;AAEA,yCAAe,WAAW,EAAC;;;AClCS;;AAEpC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAO;AAChB;;AAEA,6CAAe,OAAO,EAAC;;;ACnBa;AACG;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAO,QAAQ,mBAAS;AAC3D;;AAEA,kDAAe,GAAG,EAAC;;;AC5BiB;AACE;AACC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf,SAAS,SAAQ;AACjB,WAAW,QAAO;AAClB,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;AC/BgB;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,OAAM;AACjB,yCAAyC,MAAK,CAAC,cAAI;AACnD;;AAEA,+CAAe,SAAS,EAAC;;;ACnBsB;;AAE/C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,uBAAa;AACtB;;AAEA,qDAAe,eAAe,EAAC;;;ACfO;AACE;AACA;AACF;AACI;AACU;AACd;AACQ;;AAE9C;AACA,IAAI,oBAAe;AACnB,IAAI,oBAAe;AACnB,IAAI,uBAAkB;;AAEtB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,WAAW,SAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB,WAAW,SAAQ;AACnB;AACA;AACA,GAAG;AACH,EAAE,WAAU,SAAS,aAAY;AACjC;AACA,aAAa,UAAS,SAAS,oBAAe,GAAG,oBAAe,GAAG,uBAAkB,EAAE,gBAAe;AACtG;AACA;AACA;AACA,IAAI,UAAS;AACb;AACA;AACA,CAAC;;AAED,mDAAe,IAAI,EAAC;;;ACxDwB;AACN;AACF;AACC;AACL;;AAEhC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,OAAO,kBAAQ;AACf;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;AACA;AACA;;AAEA;AACA,cAAc,MAAK;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,kBAAQ;AAC3B;AACA,aAAa,QAAO,2BAA2B;AAC/C;AACA;AACA,IAAI,YAAW;AACf;AACA;AACA;AACA;;AAEA,6CAAe,OAAO,EAAC;;;AClDa;AACA;AACE;;AAEtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAO;;AAEvB;AACA,MAAM,QAAO,SAAS,SAAQ;AAC9B;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AC7BY;AACQ;AACJ;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ,CAAC,aAAY;AACnC;AACA,GAAG;AACH,cAAc,aAAY;AAC1B,SAAS,WAAU;AACnB;AACA,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;ACpCwB;AACb;AACA;;AAEjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,gBAAM,SAAS,gBAAM,CAAC,aAAY;AAC3C;;AAEA,qDAAe,MAAM,EAAC;;;AC5BW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAM;AACf;;AAEA,mDAAe,IAAI,EAAC;;;ACxBpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpBW;;AAErC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxCsB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;AC3CO;AACF;AACU;AACV;AACM;AACF;AACY;AACf;AACF;;AAEnC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,8BAA8B;AACzC,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB,UAAU,iBAAO;AACjB;AACA,iBAAiB,QAAO;AACxB;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ,iBAAiB,kBAAQ;AACzB;;AAEA;AACA,cAAc,SAAQ,YAAY,UAAS,CAAC,aAAY;;AAExD,eAAe,QAAO;AACtB,mBAAmB,SAAQ;AAC3B;AACA,KAAK;AACL,aAAa;AACb,GAAG;;AAEH,SAAS,WAAU;AACnB,WAAW,gBAAe;AAC1B,GAAG;AACH;;AAEA,iDAAe,WAAW,EAAC;;;AChDiB;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,sCAAsC;AACjD;AACA,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iBAAO;AACd;AACA;AACA;AACA,OAAO,iBAAO;AACd;AACA;AACA,SAAS,YAAW;AACpB;;AAEA,sDAAe,OAAO,EAAC;;;AC9CS;AACM;AACQ;AACR;AACE;AACF;;AAEtC;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,SAAS,SAAQ;AACjB,gBAAgB,SAAQ,YAAY,UAAS,CAAC,aAAY;AAC1D,WAAW,SAAQ;AACnB;AACA;AACA,eAAe,MAAK;AACpB,OAAO;AACP,KAAK;AACL,GAAG;AACH;;AAEA,gDAAe,UAAU,EAAC;;;AC1BY;AACI;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAU,CAAC,SAAQ;;AAE9B,mDAAe,IAAI,EAAC;;;ACvBkB;;AAEtC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA,eAAe,SAAQ;;AAEvB,8CAAe,QAAQ,EAAC;;;ACbQ;AACM;AACM;AACE;AACR;AACE;AACF;AACH;;AAEnC;AACA,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAQ;AACvB,0CAA0C,iBAAO;AACjD,MAAM,SAAQ,gBAAgB,UAAS,CAAC,aAAY;AACpD,MAAM,SAAQ,CAAC,YAAW,iBAAiB,UAAS,CAAC,aAAY;;AAEjE;AACA,SAAS,SAAQ;AACjB;AACA,iBAAiB,kBAAS;;AAE1B;AACA;AACA;AACA,WAAW,MAAK;AAChB,GAAG;AACH,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;AC5DkB;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAU,CAAC,WAAU;;AAErC,wDAAe,SAAS,EAAC;;;ACjCe;AACE;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,IAAI,QAAQ;AACvD;AACA;AACA,eAAe,WAAU,CAAC,UAAS;;AAEnC,uDAAe,QAAQ,EAAC;;;ACpCxB;AACA,IAAI,4BAAgB;;AAEpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,8BAA8B,4BAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;;AAEA,gDAAe,UAAU,EAAC;;;AClCoB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,gBAAgB,aAAY;;AAE5B,+CAAe,SAAS,EAAC;;;ACXzB;AACA,IAAI,0BAAa;AACjB,IAAI,8BAAiB;AACrB,IAAI,kCAAqB;AACzB,IAAI,gCAAmB;AACvB,IAAI,yBAAY,GAAG,8BAAiB,GAAG,kCAAqB,GAAG,gCAAmB;AAClF,IAAI,uBAAU;;AAEd;AACA,IAAI,qBAAQ,SAAS,0BAAa;AAClC,IAAI,oBAAO,SAAS,yBAAY;AAChC,IAAI,mBAAM;AACV,IAAI,uBAAU,WAAW,oBAAO,SAAS,mBAAM;AAC/C,IAAI,wBAAW,UAAU,0BAAa;AACtC,IAAI,uBAAU,iCAAiC,EAAE;AACjD,IAAI,uBAAU;AACd,IAAI,kBAAK;;AAET;AACA,IAAI,qBAAQ,GAAG,uBAAU;AACzB,IAAI,qBAAQ,SAAS,uBAAU;AAC/B,IAAI,sBAAS,WAAW,kBAAK,YAAY,wBAAW,EAAE,uBAAU,EAAE,uBAAU,oBAAoB,qBAAQ,GAAG,qBAAQ;AACnH,IAAI,kBAAK,GAAG,qBAAQ,GAAG,qBAAQ,GAAG,sBAAS;AAC3C,IAAI,qBAAQ,YAAY,wBAAW,GAAG,oBAAO,QAAQ,oBAAO,EAAE,uBAAU,EAAE,uBAAU,EAAE,qBAAQ;;AAE9F;AACA,IAAI,sBAAS,UAAU,mBAAM,WAAW,mBAAM,UAAU,qBAAQ,GAAG,kBAAK;;AAExE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,eAAe,sBAAS;AACxB,SAAS,sBAAS;AAClB;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3Ca;AACE;AACE;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU;AACnB,MAAM,YAAW;AACjB,MAAM,UAAS;AACf;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACI;AACN;AACE;AACA;AACM;;AAEhD;AACA,IAAI,yBAAU;;AAEd;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,sCAAsC,aAAY;;AAElD;AACA;AACA,yBAAyB,WAAU;AACnC;AACA,eAAe,WAAU,QAAQ,yBAAU,UAAU,WAAU;AAC/D,SAAS,WAAU;AACnB,MAAM,UAAS,CAAC,cAAa;AAC7B;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AChCmB;AACN;AACH;AACF;;AAErC;AACA,IAAI,cAAU;AACd,IAAI,eAAW;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA;AACA;AACA;AACA;AACA,IAAI,cAAa,CAAC,eAAW;AAC7B;AACA,IAAI,cAAa,CAAC,cAAU;AAC5B;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AChD6B;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA,gBAAgB,cAAa;AAC7B;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACtC0B;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB,WAAW,mBAAS;;AAEpB,2BAA2B,WAAU;AACrC;AACA,OAAO,cAAa;AACpB;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACtCM;AACO;;AAErC;AACA,IAAI,oBAAW;;AAEf;AACA,qBAAqB,KAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAQ;AACjB;AACA;AACA,IAAI;AACJ;AACA;AACA,wBAAwB,kBAAQ,iBAAiB,oBAAW;AAC5D;;AAEA,uDAAe,iBAAQ,EAAC;;;AC1Cc;AACI;AACF;AACU;;AAElD;AACA,IAAI,yBAAiB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,gBAAgB,eAAc,WAAW,UAAS;AAClD,SAAS,WAAU,OAAO,yBAAiB;AAC3C,CAAC;;AAED;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACjDe;AACI;AACF;AACU;;AAElD;AACA,IAAI,oCAAuB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,MAAM;AACjB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAQ;AAC3B,gBAAgB,eAAc,WAAW,UAAS;AAClD,SAAS,WAAU,OAAO,oCAAuB;AACjD,CAAC;;AAED;AACA;;AAEA,2DAAe,YAAY,EAAC;;;AChD0B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,+CAA+C;AACtD,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC,eAAe,kBAAkB;;AAElC,wDAAe,SAAS,EAAC;;;AC1CiB;AACX;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,WAAU;AACnB,WAAW,eAAK;AAChB,GAAG;AACH;;AAEA,8CAAe,QAAQ,EAAC;;;AClBc;AACA;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW;AACX;AACA,WAAW,SAAQ;AACnB,6BAA6B,EAAE,SAAQ;AACvC,CAAC;;AAED,mDAAe,IAAI,EAAC;;;ACxBsB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,WAAU;AACrC,gBAAgB,aAAY;AAC5B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0CAAe,YAAY,EAAC;;;AC/CQ;;AAEpC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAO;AAC/C;AACA;;AAEA,yDAAe,UAAU,EAAC;;;AC7B1B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACtBO;AACM;AACQ;AACZ;AACA;;AAExC;AACA,IAAI,uBAAU;;AAEd;AACA,IAAI,mBAAM,GAAG,uBAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,6BAA6B,gBAAe,GAAG,YAAW;AAC1D;AACA;AACA;;AAEA;AACA,aAAa,UAAS;AACtB;AACA;AACA,WAAW,SAAQ,QAAQ,UAAS;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,mBAAM;AACd;AACA,MAAM,mBAAM;AACZ;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AClDiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAW;AACjB;AACA;;AAEA,sDAAe,OAAO,EAAC;;;AC5Be;AACH;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAQ,CAAC,iBAAO;;AAE3B,mDAAe,IAAI,EAAC;;;AC5B0B;AACF;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC9D;AACA,yBAAyB,QAAQ,IAAI,QAAQ;AAC7C;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,MAAM,YAAW,gBAAgB,aAAY;AAC7C;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AChCmB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,kBAAkB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC1E;AACA,2BAA2B,gBAAgB;AAC3C;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA,MAAM,YAAW;AACjB;AACA;;AAEA,0DAAe,WAAW,EAAC;;;AC/Ba;AACJ;;AAEpC;AACA,IAAI,sBAAU;;AAEd;AACA,IAAI,kBAAM,GAAG,sBAAU;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,QAAO;AACjB,QAAQ,kBAAM;AACd,QAAQ;AACR,QAAQ,UAAS;AACjB;AACA;AACA;AACA;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACpCY;AACJ;AACQ;AACY;AAChB;AACF;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,sBAAsB;AACjC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA,eAAe,OAAM;;AAErB,EAAE,WAAU,QAAQ,SAAQ;AAC5B,WAAW,QAAO;AAClB,GAAG,OAAO,iBAAgB;;AAE1B;AACA,CAAC;;AAED,qDAAe,MAAM,EAAC;;;AC1CtB;AACA,IAAI,uBAAW;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,uBAAW;AAC5B;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACQ;AACb;;AAErC;AACA;;AAEA;AACA,IAAI,gBAAS;AACb,IAAI,mBAAY;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN,cAAc,kBAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAY;AAC3B,WAAW,gBAAS;AACpB;AACA,SAAS,WAAU;AACnB;;AAEA,qDAAe,MAAM,EAAC;;;ACjFtB;AACA,IAAI,qBAAU;AACd,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,eAAe,oBAAS,CAAC,qBAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;AC3Be;AACU;AACb;;AAErC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA;AACA,YAAY,kBAAQ;AACpB;AACA;AACA;AACA,MAAM;AACN,YAAY,kBAAQ;AACpB;AACA,yDAAyD,kBAAQ;AACjE,WAAW,UAAS;AACpB;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC7BiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;AC7CuB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAW;;AAE5B,yDAAe,UAAU,EAAC;;;ACxCgB;AACJ;;AAEtC;AACA,IAAI,qBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,sBAAsB;AACjC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,WAAU,OAAO,qBAAe;AACzC,CAAC;;AAED,oDAAe,KAAK,EAAC;;;AChCrB;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACtBkB;AACN;AACQ;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,IAAI,IAAI;AACR,WAAW,8BAA8B;AACzC;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;;AAEA,0BAA0B,aAAY,uCAAuC,SAAQ;AACrF;;AAEA,qDAAe,MAAM,EAAC;;;AClDtB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACvBsB;AACN;AACF;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,iBAAO,eAAe,iBAAgB,GAAG,WAAU;AAChE;;AAEA,0BAA0B,aAAY,uCAAuC,cAAa;AAC1F;;AAEA,0DAAe,WAAW,EAAC;;;ACnCiB;AACF;AACI;AACX;AACF;;AAEjC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,OAAO,8CAA8C;AACrD,OAAO;AACP;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D,0BAA0B,gBAAM,CAAC,aAAY;AAC7C;;AAEA,qDAAe,MAAM,EAAC;;;AC7CwB;AACJ;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,aAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,WAAU;AACZ;AACA;;AAEA,qDAAe,aAAM,EAAC;;;ACpDoB;AACQ;AACX;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,QAAQ,mBAAS;AACjB;AACA,SAAS,WAAU,CAAC,kBAAQ;AAC5B;;AAEA,qDAAe,MAAM,EAAC;;;ACpCe;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,iBAAiB;AAC5B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,eAAO;AAChB;AACA,eAAe,kBAAQ;;AAEvB;AACA;;AAEA,sDAAe,eAAO,EAAC;;;AC5Be;AACC;;AAEvC;AACA,IAAI,oBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,wCAAwC,mBAAS;AACjD,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;ACvCkB;AACG;AACT;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,gCAAgC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAQ;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAK;AACzD;AACA;AACA;AACA;AACA,aAAa,oBAAU;AACvB;AACA;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvDtB;AACA,IAAI,kBAAU;;AAEd;AACA,oBAAoB,kBAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACjCqB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAW;;AAEvB,oDAAe,KAAK,EAAC;;;ACzBqB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA,wBAAwB,WAAU;AAClC;;AAEA,iDAAe,WAAW,EAAC;;;ACdiB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEA,gDAAe,UAAU,EAAC;;;ACdkB;AACF;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,YAAW,GAAG,WAAU;AAC3D;AACA;;AAEA,qDAAe,MAAM,EAAC;;;ACvBoB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,WAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;AC3Ba;AACA;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,UAAS,SAAS,UAAS;AAChD;;AAEA,qDAAe,eAAe,EAAC;;;AChBS;AACI;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,cAAc,gBAAM;AACpB,SAAS,YAAW,QAAQ,UAAS;AACrC;;AAEA,oDAAe,cAAc,EAAC;;;ACjBsB;AACF;AACf;AACe;AACX;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAc;AAC7B;AACA,IAAI;AACJ,QAAQ,mBAAS;AACjB;AACA,aAAa,iBAAO,eAAe,gBAAe,GAAG,eAAc;AACnE;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACpCU;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAO;AAC1C;;AAEA,kDAAe,GAAG,EAAC;;;AClCiB;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,mCAAmC,QAAO;AAC1C;;AAEA,sDAAe,OAAO,EAAC;;;AC/BiB;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,UAAS;AAC9B;;AAEA,kDAAe,YAAY,EAAC;;;ACdgB;AACX;;AAEjC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA,SAAS,YAAW,CAAC,gBAAM;AAC3B;;AAEA,iDAAe,WAAW,EAAC;;;ACdmB;AACF;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,aAAY,GAAG,YAAW;AAC7D;AACA;;AAEA,sDAAe,OAAO,EAAC;;;ACxBe;AACJ;AACS;AACN;AACK;;AAE1C;AACA,IAAI,WAAM;AACV,IAAI,WAAM;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAW;AACjB,WAAW,kBAAQ,eAAe,WAAU;AAC5C;AACA,YAAY,OAAM;AAClB,aAAa,WAAM,WAAW,WAAM;AACpC;AACA;AACA,SAAS,SAAQ;AACjB;;AAEA,mDAAe,IAAI,EAAC;;;AC7CoB;AACU;AACX;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAc;AACrD;AACA;AACA;AACA;AACA,gCAAgC,mBAAS;AACzC,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,oDAAe,KAAK,EAAC;;;ACpCiC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC3Ba;;AAEtC;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,EAAE,SAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACrBgB;AACM;AACR;AACH;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,kCAAkC;AACzC,OAAO;AACP;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAO,eAAe,UAAS,GAAG,SAAQ;AACvD,eAAe,eAAc;AAC7B;AACA;AACA,0BAA0B,aAAY;AACtC;;AAEA,mDAAe,IAAI,EAAC;;;AClDwB;AACA;AACN;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,0BAA0B;AACrC;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA,aAAa,SAAQ;AACrB;AACA;AACA;AACA;AACA,oBAAoB,eAAc;AAClC;AACA,IAAI,uBAAuB,eAAc;AACzC;AACA;AACA,SAAS,YAAW,aAAa,YAAW;AAC5C,CAAC;;AAED,qDAAe,MAAM,EAAC;;;AC/Ce;;AAErC;AACA,IAAI,mCAAgB;AACpB,sBAAsB,mCAAgB;;AAEtC;AACA,IAAI,8BAAW;AACf,IAAI,4BAAS;;AAEb;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,kBAAQ;AAC5B;;AAEA;AACA,cAAc,8BAAW;AACzB;AACA;AACA;AACA;AACA,sBAAsB,kBAAQ;;AAE9B;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,SAAS,4BAAS;AAClB;;AAEA,uDAAe,iBAAiB,EAAC;;;AClEuB;AACnB;AACA;;AAErC;AACA,IAAI,iCAAgB;AACpB,4BAA4B,iCAAgB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,kBAAQ;AACxC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,kBAAQ;AACjD;;AAEA,qDAAe,eAAe,EAAC;;;ACzCqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,0DAAe,WAAW,EAAC;;;ACvBmB;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,8BAA8B,QAAQ,gBAAgB,aAAa;AACnE;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,aAAY;AACrD;;AAEA,4DAAe,aAAa,EAAC;;;AChCuB;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAe;AAC/B,0BAA0B,YAAE;AAC5B;AACA;AACA;AACA;AACA;;AAEA,4DAAe,aAAa,EAAC;;;AC9BuB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAe;AACxB;;AAEA,8DAAe,eAAe,EAAC;;;ACxBe;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA,kCAAkC,QAAQ,gBAAgB,aAAa;AACvE;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA,SAAS,kBAAiB,eAAe,aAAY;AACrD;;AAEA,gEAAe,iBAAiB,EAAC;;;AChCmB;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAe;AAC/B,QAAQ,YAAE;AACV;AACA;AACA;AACA;AACA;;AAEA,gEAAe,iBAAiB,EAAC;;;AC9BR;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,YAAE;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAe,cAAc,EAAC;;;AC7BoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAc;AACpB;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACvBoB;AACI;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAc,QAAQ,aAAY;AACxC;AACA;;AAEA,2DAAe,YAAY,EAAC;;;ACzBkB;AACN;AACE;AACQ;AACb;AACW;AACX;;AAErC;AACA,IAAI,sBAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAc;AACzD;AACA;AACA,gCAAgC,sBAAgB;AAChD;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA;AACA,+BAA+B,kBAAQ;AACvC;AACA,gBAAgB,aAAY;AAC5B,sBAAsB,WAAU;AAChC,aAAa,UAAS,CAAC,cAAa;AACpC;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;ACnDW;AACQ;AACF;AACE;AACD;;AAEvC;AACA,IAAI,sBAAe;;AAEnB;AACA,IAAI,gBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,wBAAwB,sBAAe;AACvC;AACA,8BAA8B,gBAAS,CAAC,mBAAS;AACjD,SAAS,SAAQ;AACjB;AACA,oBAAoB,UAAS;;AAE7B;AACA,MAAM,UAAS;AACf;AACA,WAAW,MAAK;AAChB,GAAG;AACH;;AAEA,qDAAe,MAAM,EAAC;;;AC9DgC;AACb;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC,uCAAuC,oBAAU;AACjD,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC5Be;AACM;AACP;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAU;AACnB,WAAW,kBAAQ;AACnB;AACA;AACA,MAAM,UAAS,CAAC,mBAAS;;AAEzB,WAAW,aAAY;AACvB;AACA;;AAEA,yDAAe,qBAAU,EAAC;;;ACtC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACtB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yDAAe,UAAU,EAAC;;;ACjB1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;ACjBoC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAmB;AAClC;AACA,CAAC;;AAED,uDAAe,QAAQ,EAAC;;;ACrBY;AACC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,QAAQ,kBAAQ;AAC7B;AACA;;AAEA,kDAAe,GAAG,EAAC;;;ACvB2B;AACV;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAChE;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAO,QAAQ,aAAY;AACjC;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AChCmB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAS;AAC3B;;AAEA,mDAAe,IAAI,EAAC;;;ACrBoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;ACpCoB;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAS;AAChD;AACA,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;ACtCqB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,mCAAmC;AAC1C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,6DAAe,cAAc,EAAC;;;AC5CgB;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,OAAO,oCAAoC;AAC3C,OAAO,oCAAoC;AAC3C,OAAO;AACP;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,QAAQ,aAAY;AACnC;AACA;;AAEA,wDAAe,SAAS,EAAC;;;AC5CzB;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kDAAe,GAAG,EAAC;;;AC5BM;;AAEzB;AACA,IAAI,mCAAW;;AAEf;AACA,IAAI,sCAAc,GAAG,mCAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA,OAAO,YAAE,WAAW,mCAAW,WAAW,sCAAc;AACxD;AACA;AACA;AACA;;AAEA,4DAAe,sBAAsB,EAAC;;;AC5BtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,sDAAe,gBAAgB,EAAC;;;ACrBhC;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACH7B;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACHxB;AACA;;AAEA,gDAAe,UAAU,EAAC;;;ACHO;AACK;AACI;AACM;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY,SAAQ;;AAEpB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,cAAc,WAAU;;AAExB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,iBAAiB,cAAa;;AAE9B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,WAAW,UAAU,gBAAM;AAC3B;AACA;;AAEA,+DAAe,gBAAgB,EAAC;;;AClEa;AACV;AACO;AACwB;AACZ;AACnB;AACe;AACrB;AACmB;AACK;AAChB;;AAErC;AACA;;AAEA;AACA,yCAAyC;AACzC;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA,wBAAwB,MAAM,aAAa,OAAO;;AAElD;AACA;;AAEA;AACA;;AAEA;AACA,IAAI,oBAAW;;AAEf;AACA,IAAI,uBAAc,GAAG,oBAAW;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC,iBAAiB,UAAU;AAC3B;AACA;AACA,mEAAmE,0BAA0B,GAAG;AAChG,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA,yDAAyD;AACzD,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA,kDAAkD,0BAA0B,GAAG;AAC/E,qCAAqC,aAAa,gBAAgB;AAClE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA,qDAAqD,oCAAoC;AACzF;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,uCAAuC,OAAO;AAC9C,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0BAAgB,+BAA+B,0BAAgB;;AAEhF,eAAe,eAAc;AAC7B;AACA;AACA,WAAW,kBAAQ;AACnB,YAAY,sBAAY,GAAG,qBAAqB,uBAAsB;;AAEtE,gBAAgB,sBAAY,GAAG,qCAAqC,uBAAsB;AAC1F,oBAAoB,cAAI;AACxB,sBAAsB,WAAU;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,cAAa;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,uBAAc;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,iBAAgB;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,eAAe;;AAEf;AACA;AACA,iBAAiB,uBAAc;AAC/B;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,mDAAmD;AACnD;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,4BAA4B,gCAAgC;AAC5D,UAAU;AACV;AACA;AACA,kBAAkB;;AAElB,eAAe,iBAAO;AACtB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,MAAM,iBAAO;AACb;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC/Qa;AACA;;AAErC;AACA,IAAI,wBAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mBAAmB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wBAAe;AACvC;AACA,MAAM,kBAAQ;AACd;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;AACA;AACA;AACA,GAAG;AACH;;AAEA,uDAAe,QAAQ,EAAC;;;ACpExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,IAAI,EAAC;;;AC3BoB;AACM;AACP;;AAEvC;AACA,IAAI,sBAAgB;;AAEpB;AACA,IAAI,sBAAgB;;AAEpB;AACA,IAAI,eAAS;;AAEb;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAS;AACf,mBAAmB,sBAAgB;AACnC;AACA;AACA,cAAc,sBAAgB;AAC9B,eAAe,eAAS,IAAI,sBAAgB;;AAE5C,aAAa,aAAY;AACzB,OAAO,sBAAgB;;AAEvB,eAAe,UAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA,oDAAe,KAAK,EAAC;;;AClDrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,iBAAiB,EAAC;;;ACtBW;AACJ;AACI;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA,wBAAwB,YAAW;AACnC;AACA;AACA,SAAS,YAAW;AACpB,6CAA6C,UAAS;AACtD,GAAG;AACH;;AAEA,sDAAe,gBAAgB,EAAC;;;ACxBsB;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAgB;AACzB;;AAEA,2DAAe,YAAY,EAAC;;;ACpBS;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,sDAAe,OAAO,EAAC;;;AC3Be;AACE;AACL;AACE;AACS;AACd;AACK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAO;AACb,WAAW,SAAQ,QAAQ,MAAK;AAChC;AACA,SAAS,kBAAQ,oBAAoB,UAAS,CAAC,aAAY,CAAC,kBAAQ;AACpE;;AAEA,qDAAe,MAAM,EAAC;;;AChCkB;AACD;;AAEvC;AACA,IAAI,8BAAgB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAS,CAAC,mBAAS,UAAU,8BAAgB,EAAE,8BAAgB;AACrE;AACA;;AAEA,4DAAe,aAAa,EAAC;;;ACpCQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,sDAAe,OAAO,EAAC;;;AC3BiB;AACE;AACA;AACI;AACA;AACX;AACE;AACI;AACJ;AACQ;;AAE7C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA,SAAS,mBAAS;AAClB,cAAc,iBAAO;AACrB,2BAA2B,kBAAQ,YAAY,sBAAY;;AAE3D,aAAa,aAAY;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAQ;AACrB,oBAAoB,oBAAU,SAAS,WAAU,CAAC,aAAY;AAC9D;AACA;AACA;AACA;AACA;AACA,eAAe,UAAS,GAAG,WAAU;AACrC;AACA,GAAG;AACH;AACA;;AAEA,wDAAe,mBAAS,EAAC;;;AChEmB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA,oBAAoB,YAAW;AAC/B;AACA;;AAEA,mDAAe,aAAa,EAAC;;;AClBe;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,6BAA6B,YAAW;AACxC;AACA;;AAEA,qDAAe,eAAe,EAAC;;;ACnBe;AACR;AACE;AACQ;AACI;AACJ;AACX;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,WAAW,SAAQ;AACnB;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,mBAAmB,cAAa;AAChC,cAAc,gBAAe;AAC7B,YAAY,cAAa;;AAEzB,SAAS,UAAS;AAClB;;AAEA,mDAAe,IAAI,EAAC;;;AC9C0B;AACN;AACQ;AACA;AACX;AACe;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,2BAA2B,gBAAe;AAC1C;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,YAAY,cAAa,aAAa,cAAa;;AAEnD,SAAS,UAAS;AAClB;;AAEA,sDAAe,OAAO,EAAC;;;ACxCuB;AACN;AACY;AACJ;AACX;;AAErC;AACA,IAAI,qBAAW;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAQ;AACnB;AACA,0BAA0B,qBAAW;AACrC;AACA,2BAA2B,aAAY;AACvC;AACA;AACA,mBAAmB,cAAa;AAChC,cAAc,gBAAe,aAAa,cAAa;;AAEvD,SAAS,UAAS;AAClB;;AAEA,wDAAe,SAAS,EAAC;;;AC1CqB;AACN;AACE;AACL;AACA;AACK;AACM;AACT;AACF;;AAErC;AACA;AACA;;AAEA;AACA,IAAI,gBAAO;;AAEX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,WAAW;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,MAAM,kBAAQ;AACd;AACA,mCAAmC,mBAAS;AAC5C,uCAAuC,aAAY;AACnD;AACA,WAAW,kBAAQ;;AAEnB;AACA,MAAM,WAAU;AAChB,qBAAqB,cAAa;AAClC;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAU;AAC/B;AACA;AACA;AACA;AACA,MAAM,UAAS;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAQ;AACd;AACA;AACA;;AAEA;AACA,6CAA6C,kBAAQ,CAAC,gBAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,aAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,QAAQ,EAAC;;;AC9GG;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAG;AACZ;;AAEA,oDAAe,KAAK,EAAC;;;ACrB6B;;AAElD;AACA;AACA,QAAQ;AACR,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA,uBAAuB,eAAc;;AAErC,sDAAe,gBAAgB,EAAC;;;ACpBK;AACiB;;AAEtD;AACA,6CAA6C;AAC7C;;AAEA;AACA,8BAA8B;AAC9B,SAAS,QAAQ,QAAQ,UAAU,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,SAAS,iBAAQ;AACjB,WAAW,kBAAQ;AACnB;AACA,oCAAoC,iBAAgB;AACpD;AACA;;AAEA,uDAAe,iBAAQ,EAAC;;;ACjCI;AACC;AACa;;AAE1C;AACA,IAAI,mBAAQ;;AAEZ;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA,kBAAkB,IAAG,SAAS,WAAU,KAAK,IAAG,gBAAgB,mBAAQ,IAAI,cAAI;AAChF,aAAa,IAAG;AAChB;;AAEA,+CAAe,SAAS,EAAC;;;AClBa;AACU;AACQ;AAClB;AACE;AACE;;AAE1C;AACA,IAAI,0BAAgB;;AAEpB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kBAAiB;AAChC;AACA,qBAAqB,0BAAgB;AACrC,gCAAgC,UAAS;AACzC;AACA,aAAa,WAAU;AACvB;AACA;AACA,eAAe,SAAQ;AACvB,eAAe,SAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAAe,QAAQ,EAAC;;;ACvEoB;AACN;AACA;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAQ;AACpB,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB;AAC1D,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACzBuB;AACE;AACR;AACA;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AAClD,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA,cAAc,SAAQ;AACtB,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB,SAAS,aAAY;AAC/E,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACtCqB;AACN;AACA;AACiB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AACpE;AACA,gBAAgB,SAAQ;AACxB,mBAAmB,cAAI;AACvB;AACA,SAAS,SAAQ,CAAC,YAAW,YAAY,2BAAiB;AAC1D,CAAC;;AAED,wDAAe,SAAS,EAAC;;;ACjCa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAQ;AAC3C;;AAEA,mDAAe,IAAI,EAAC;;;ACxB0B;AACR;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ,IAAI,QAAQ,IAAI,QAAQ;AAC/C,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA,mCAAmC,SAAQ,QAAQ,aAAY;AAC/D;;AAEA,qDAAe,MAAM,EAAC;;;AC9BgB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB,IAAI,gBAAgB;AAC5E;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA;AACA;AACA,mCAAmC,SAAQ;AAC3C;;AAEA,uDAAe,QAAQ,EAAC;;;AC3Ba;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAQ;AACjB;;AAEA,uDAAe,QAAQ,EAAC;;;AC3BgB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,WAAW,QAAQ,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ,SAAS;AAC5B;AACA;AACA,iCAAiC,UAAS;AAC1C;;AAEA,oDAAe,KAAK,EAAC;;;ACjCuB;AACN;AACQ;AACN;AACe;;AAEvD;AACA,IAAI,eAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAW;AACrB,QAAQ,2BAAiB;AACzB,eAAe,eAAS;AACxB;AACA;AACA,GAAG;AACH,SAAS,UAAS;AAClB,WAAW,SAAQ,QAAQ,aAAY;AACvC,GAAG;AACH;;AAEA,oDAAe,KAAK,EAAC;;;AC5CW;AACM;AACP;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAK;AACpB;AACA;AACA;AACA,SAAS,SAAQ;AACjB,WAAW,MAAK;AAChB,GAAG;AACH;;AAEA,wDAAe,SAAS,EAAC;;;ACtCW;AACA;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,QAAO,uBAAuB,QAAO;AAC9C;;AAEA,gDAAe,UAAU,EAAC;;;ACjBgB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA,8CAA8C,eAAe;AAC7D;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA,mCAAmC,WAAU,eAAe,aAAY;AACxE;;AAEA,qDAAe,MAAM,EAAC;;;AClCoB;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA,mCAAmC,WAAU,eAAe,aAAY;AACxE;;AAEA,yDAAe,UAAU,EAAC;;;AChC4B;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAgB;AAChC;AACA,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC1BiB;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAU,SAAS,gBAAM;AACxD;;AAEA,uDAAe,QAAQ,EAAC;;;AC/B0B;AACZ;AACiB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAQ;AACtB,SAAS,2BAAiB;AAC1B,MAAM,eAAc;AACpB;AACA,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AC9BuB;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,iBAAO,CAAC,aAAY;AAC7B;;AAEA,mDAAe,IAAI,EAAC;;;AC7BwB;AACI;AACd;AACI;AACF;AACP;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,SAAQ;AACxB;AACA;AACA;AACA,uCAAuC,OAAO,OAAM;;AAEpD;AACA,yBAAyB,YAAW,MAAM,QAAO;AACjD;AACA;AACA;AACA;AACA,YAAY,cAAI;AAChB;AACA;AACA,GAAG;AACH,aAAa,cAAa;AAC1B;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED,wDAAe,SAAS,EAAC;;;AC/CM;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,6BAA6B;AACpC,OAAO;AACP;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,eAAK;AACd;;AAEA,2DAAe,YAAY,EAAC;;;ACjCgB;AACI;AACb;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAW;AAClC;AACA;AACA,oBAAoB,YAAW;AAC/B;AACA;AACA;AACA,cAAc,cAAI;AAClB,eAAe,iBAAO;AACtB;AACA,KAAK;AACL,eAAe,cAAa;AAC5B;AACA,mBAAmB,iBAAO;AAC1B;;AAEA,6DAAe,cAAc,EAAC;;;AC3CoB;AACN;AACN;;AAEtC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,oBAAoB,SAAQ;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,eAAc;AACtC;AACA;AACA;AACA,SAAS,SAAQ,CAAC,YAAW;AAC7B;;AAEA,6CAAe,OAAO,EAAC;;;ACnCqB;AACN;AACF;AACmB;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ;AAClB,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB;AACtD,CAAC;;AAED,kDAAe,GAAG,EAAC;;;AC3ByB;AACE;AACR;AACF;AACmB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,MAAM,QAAQ,IAAI,QAAQ;AAChD,YAAY,QAAQ;AACpB;AACA,YAAY,SAAQ;AACpB,iBAAiB,cAAI;AACrB,MAAM,2BAAiB;AACvB;AACA;AACA,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB,GAAG,aAAY;AACrE,CAAC;;AAED,oDAAe,KAAK,EAAC;;;ACtCuB;AACN;AACF;AACmB;AAC1B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB,gBAAgB,IAAI,gBAAgB;AACxD,mBAAmB,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA,YAAY,gBAAgB,IAAI,gBAAgB;AAChD;AACA,cAAc,SAAQ;AACtB,mBAAmB,cAAI;AACvB;AACA,SAAS,QAAO,CAAC,YAAW,SAAS,2BAAiB;AACtD,CAAC;;AAED,sDAAe,OAAO,EAAC;;;ACjCe;AACP;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,UAAU,SAAQ,CAAC,eAAK;;AAExB,kDAAe,GAAG,EAAC;;;ACrBnB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAe,aAAa,EAAC;;;ACtBe;AACI;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS,cAAa,4BAA4B,YAAW;AAC7D;;AAEA,wDAAe,SAAS,EAAC;;;ACvBW;AACY;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,WAAW,OAAO,QAAQ,QAAQ,IAAI,QAAQ;AAC9C;AACA;AACA,SAAS,cAAa,4BAA4B,QAAO;AACzD;;AAEA,4DAAe,aAAa,EAAC;;;ACtBS;AACC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,SAAQ;AACtB;AACA;;AAEA;AACA,SAAS,mBAAS;AAClB,CAAC;;AAED,sDAAe,OAAO,EAAC;;;AC/BQ;AACI;AACF;AACQ;AACI;AACI;AACpB;AACU;AACU;AACV;AACV;AACU;AACQ;AAChB;AACI;AACQ;AACE;AACN;AACV;AACM;AACA;AACU;AACI;AACI;AACxB;AACA;AACc;AAChB;AACE;AACM;AACI;AACI;AACV;AACA;AACE;AACJ;AACY;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AAChB;AACA;AACU;AACU;AACV;AACR;AACI;AACI;AACV;AACI;AACI;AACN;AACQ;AACJ;AACR;AACI;AACI;AACR;AACY;AACQ;AACZ;;AAEnC,kDAAe;AACf,OAAO,0BAAS,2BAAQ,8BAAY,oCAAc;AAClD,gBAAgB,gCAAM,2BAAW,qCAAgB,qCAAW;AAC5D,MAAM,2BAAW,oCAAe,gCAAO,yBAAS;AAChD,aAAa,qCAAc,mCAAW,2BAAM,yBAAS;AACrD,SAAS,iCAAc,wCAAgB,4CAAkB,kCAAM;AAC/D,MAAM,6BAAa,4BAAK,qBAAM,yBAAS;AACvC,WAAW,kCAAa,+BAAQ,0BAAQ,2BAAS;AACjD,OAAO,8BAAa,sCAAe,wCAAe,0CAAiB;AACnE,mBAAmB,gDAAmB,yCAAY,oCAAc,8BAAM;AACtE,MAAM,2BAAW,qCAAgB,qCAAW,4BAAO;AACnD,SAAS,8BAAW,2BAAM,wBAAQ,4BAAU;AAC5C,OAAO,4BAAW,8BAAS,wBAAK,sBAAO;AACvC,SAAS,wBAAK,0BAAW,oCAAe,kCAAS;AACjD,CAAC,EAAC;;;AChFiC;AACN;AACU;AACR;AACE;AACJ;AACQ;AACF;AACQ;AACE;AACV;AACU;AACV;AACE;AACE;AACR;AACJ;AACQ;AACI;AACN;AACU;AACV;AACA;AACQ;AACN;AACN;AACA;AACI;;AAEjC,uDAAe;AACf,SAAS,yBAAM,8BAAW,+BAAO,yBAAQ;AACzC,MAAM,0BAAU,6BAAS,gCAAa,qCAAc;AACpD,SAAS,iCAAc,iCAAS,6BAAU,+BAAW;AACrD,OAAO,sBAAK,wBAAS,8BAAW,6BAAQ;AACxC,aAAa,+BAAQ,0BAAQ,8BAAY,+BAAS;AAClD,MAAM,sBAAM,wBAAQ;AACpB,CAAC,EAAC;;;ACpCyB;;AAE3B,iDAAe;AACf,KAAK;AACL,CAAC,EAAC;;;ACJ6B;AACJ;AACM;AACJ;AACM;AACJ;AACU;AACJ;AACN;AACA;AACF;AACM;AACF;AACJ;AACQ;AACF;AACU;AACd;AACF;AACI;AACI;AACN;AACF;;AAE7B,qDAAe;AACf,OAAO,sBAAK,uBAAQ,wBAAM,yBAAS;AACnC,OAAO,6BAAY,gCAAU,2BAAO,wBAAO;AAC3C,MAAM,yBAAS,2BAAQ,wBAAM,0BAAU;AACvC,SAAS,iCAAc,+BAAO,uBAAM,wBAAQ;AAC5C,UAAU,2BAAO,uBAAM;AACvB,CAAC,EAAC;;;AC9BqC;AACR;AACQ;AACQ;AACR;AACE;AAChB;AACA;AACE;AACgB;AACR;AACY;AACJ;AACY;AAChB;AACF;AACJ;AACM;AACJ;AACA;AACQ;AACR;AACE;AACI;AACF;AACF;AACN;AACI;AACQ;AACZ;AACM;AACN;AACE;AACI;AACA;AACQ;AACE;AACV;AACU;AAChB;AACM;AACA;AACQ;AACF;AACJ;AACA;AACd;AACE;AACQ;AACE;AACE;AACF;AACA;AACU;AACA;AACV;;AAErC,iDAAe;AACf,WAAW,4BAAO,4BAAW,oCAAe,oCAAW;AACvD,YAAY,0BAAI,kBAAI,mBAAK,4BAAa;AACtC,SAAS,kCAAe,sCAAa,0CAAmB,wCAAW;AACnE,UAAU,4BAAQ,6BAAW,8BAAS,4BAAS;AAC/C,aAAa,gCAAS,6BAAU,gCAAY,iCAAW;AACvD,UAAU,2BAAO,0BAAS,gCAAa,8BAAO;AAC9C,UAAU,2BAAO,yBAAQ,4BAAU,8BAAU;AAC7C,cAAc,uCAAe,mCAAU,mCAAe,gCAAO;AAC7D,UAAU,8BAAU,kCAAc,qCAAa,kCAAW;AAC1D,WAAW,yBAAI,mBAAK,wBAAS,6BAAU;AACvC,WAAW,+BAAU,8BAAU,mCAAe,wCAAe;AAC7D,UAAU;AACV,CAAC,EAAC;;;ACtEyB;AACE;AACI;AACF;AACJ;AACI;AACF;AACI;AACN;AACI;AACM;AACN;AACM;AACV;AACI;;AAE/B,iDAAe;AACf,KAAK,qBAAM,wBAAQ,yBAAO,sBAAK;AAC/B,OAAO,uBAAM,wBAAQ,uBAAK,sBAAO;AACjC,UAAU,2BAAO,2BAAU,yBAAK,sBAAO;AACvC,CAAC,EAAC;;;ACpB6B;AACI;AACF;;AAEjC,mDAAe;AACf,OAAO,0BAAS,2BAAQ;AACxB,CAAC,EAAC;;;ACN+B;AACI;AACQ;AACJ;AAChB;AACQ;AACI;AACQ;AACV;AACI;AACN;AACQ;AACN;AACQ;AACZ;AACU;AACR;AACU;AACJ;AACI;AAChB;AACA;AACI;AACE;AACI;AACJ;AACJ;AACI;AACE;AACI;AACR;AACQ;AACV;AACI;AACJ;AACI;AACA;AACN;AACQ;AACA;AACI;AACA;AACR;AACE;AACQ;AACR;AACI;;AAErC,mDAAe;AACf,QAAQ,4BAAU,kCAAc,oCAAY,0BAAI;AAChD,QAAQ,4BAAU,kCAAc,iCAAS,8BAAW;AACpD,QAAQ,gCAAY,iCAAS,gCAAa,8BAAO;AACjD,YAAY,8BAAQ,+BAAa,kCAAW,kCAAa;AACzD,KAAK,oBAAK,sBAAO,yBAAQ,4BAAU;AACnC,QAAQ,wBAAM,wBAAQ,2BAAS,8BAAW;AAC1C,OAAO,4BAAW,2BAAM,wBAAQ,wBAAM;AACtC,QAAQ,0BAAQ,uBAAK,wBAAS,4BAAS;AACvC,WAAW,gCAAW,4BAAO,yBAAQ,8BAAY;AACjD,QAAQ,4BAAU;AAClB,CAAC,EAAC;;;AC3D8B;AACD;AACE;AACO;AACX;AACE;AACW;AACf;AACE;AACY;AACR;AACK;AACH;AACU;;AAE7C,gDAAe;AACf,IAAI,4BAAO,yBAAQ,gBAAQ,qBAAM;AACjC,OAAO,gBAAS,+BAAK,qBAAM,4BAAY;AACvC,QAAQ,+BAAO,iCAAS,sCAAc;AACtC,CAAC,EAAC;;;ACnBqC;AACE;AACR;AACI;AACJ;AACY;AACN;AACA;AACE;AACd;AACM;AACI;AACA;AACJ;AACE;AACI;AACR;AACQ;AACE;AACJ;AACgB;AAClB;AACA;AACN;AACM;AACI;AACF;AACA;AACE;AACE;AACV;;AAE/B,mDAAe;AACf,WAAW,iCAAY,8BAAQ,4BAAU,4BAAQ;AACjD,cAAc,mCAAW,gCAAW,iCAAY,2BAAK;AACrD,QAAQ,4BAAU,8BAAU,4BAAQ,2BAAS;AAC7C,WAAW,4BAAO,4BAAW,iCAAY,gCAAU;AACnD,kBAAkB,qCAAS,4BAAS,yBAAM,yBAAS;AACnD,WAAW,+BAAU,8BAAU,+BAAW,iCAAY;AACtD,OAAO;AACP,CAAC,EAAC;;;ACxCiC;AACA;AACN;AACQ;AACA;AACE;AACV;AACU;AACF;AACA;AACF;AACgB;AAClB;AACI;AACN;AACF;AACI;AACJ;AACU;AACF;AACA;AACI;AACV;AACU;AACF;AACA;AACE;AACA;AACJ;AACN;AACE;AACI;;AAErC,iDAAe;AACf,SAAS,4BAAS,yBAAM,0BAAU,8BAAU;AAC5C,WAAW,2BAAM,2BAAW,+BAAU,8BAAU;AAChD,SAAS,oCAAiB,mCAAQ,4BAAU,2BAAO;AACnD,MAAM,wBAAQ,wBAAM,2BAAW,+BAAU;AACzC,UAAU,gCAAY,6BAAO,6BAAY,iCAAW;AACpD,WAAW,iCAAY,kCAAY,gCAAU,2BAAO;AACpD,QAAQ,4BAAU;AAClB,CAAC,EAAC;;;ACzC0C;AACJ;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,mBAAmB,YAAW;AAC9B,uBAAuB,UAAS;AAChC;AACA;AACA,yBAAyB,UAAS;AAClC;AACA,qBAAqB,UAAS;AAC9B;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACtBmB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,qBAAqB,YAAW;AAChC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,iDAAe,WAAW,EAAC;;;ACtB3B;AACA,IAAI,kBAAS;AACb,IAAI,kBAAS;;AAEb;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC,qCAAqC;AACrC,8BAA8B,kBAAS,qBAAqB;AAC5D,gCAAgC,kBAAS,qBAAqB;AAC9D;AACA;AACA,WAAW;AACX;;AAEA,6CAAe,OAAO,EAAC;;;AChC+B;AAClB;AACD;;AAEnC;AACA;AACA;;AAEA;AACA,IAAI,oBAAS;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA,cAAc,iBAAO;AACrB;AACA;AACA,aAAa,QAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAS;;AAE3B;AACA,WAAW,iBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+CAAe,SAAS,EAAC;;;ACpEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AACU;AACZ;AACI;AACJ;AACA;AACI;AACA;AACN;AACM;AACJ;AACe;AACI;AACd;AACM;AACA;AACE;AACM;AACN;AACI;AACR;AACQ;AACT;AACF;AACE;AACR;AACA;AACW;AACI;AACJ;AACR;AACC;AACO;AACX;AACU;AACC;;AAExC;AACA;;AAEA;AACA,IAAI,iCAAkB;;AAEtB;AACA,IAAI,+BAAgB;AACpB;;AAEA;AACA,IAAI,+BAAgB;;AAEpB;AACA,IAAI,yBAAU;AACd,IAAI,0BAAW;;AAEf;AACA,IAAI,6BAAc,GAAG,0BAAW;;AAEhC;AACA,IAAI,0BAAW,GAAG,OAAM,GAAG,OAAM;;AAEjC;AACA,IAAI,wBAAS;AACb,IAAI,wBAAS;;AAEb;AACA,IAAI,oBAAK;AACT;AACA;AACA,kBAAkB,kBAAQ;AAC1B,2BAA2B,cAAI;AAC/B,iDAAiD,cAAa;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,eAAM;;AAER;AACA,aAAM,SAAS,gBAAI;AACnB,aAAM,OAAO,gBAAI;AACjB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,cAAc,cAAM;AAC1B,aAAM,MAAM,cAAM;AAClB,aAAM,UAAU,gBAAI;AACpB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,gBAAI;AACrB,aAAM,aAAa,YAAI;AACvB,aAAM,SAAS,WAAG;AAClB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,UAAU,aAAK;AACrB,aAAM,QAAQ,YAAI;AAClB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,kBAAU;AAC3B,aAAM,UAAU,cAAM;AACtB,aAAM,SAAS,gBAAI;AACnB,aAAM,cAAc,gBAAI;AACxB,aAAM,YAAY,gBAAI;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,SAAS,gBAAI;AACnB,aAAM,SAAS,gBAAI;AACnB,aAAM,cAAc,aAAK;AACzB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,kBAAkB,aAAK;AAC7B,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,aAAK;AACxB,aAAM,kBAAkB,aAAK;AAC7B,aAAM,aAAa,aAAK;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,WAAW,kBAAU;AAC3B,aAAM,eAAe,kBAAU;AAC/B,aAAM,gBAAgB,kBAAU;AAChC,aAAM,WAAW,aAAK;AACtB,aAAM,eAAe,aAAK;AAC1B,aAAM,gBAAgB,aAAK;AAC3B,aAAM,QAAQ,gBAAI;AAClB,aAAM,QAAQ,YAAI;AAClB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,aAAK;AACxB,aAAM,aAAa,cAAM;AACzB,aAAM,eAAe,cAAM;AAC3B,aAAM,WAAW,kBAAU;AAC3B,aAAM,WAAW,aAAK;AACtB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,kBAAkB,aAAK;AAC7B,aAAM,oBAAoB,aAAK;AAC/B,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,aAAa,kBAAU;AAC7B,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,kBAAU;AACzB,aAAM,QAAQ,cAAI;AAClB,aAAM,UAAU,cAAM;AACtB,aAAM,OAAO,kBAAU;AACvB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,WAAW,YAAI;AACrB,aAAM,mBAAmB,YAAI;AAC7B,aAAM,WAAW,gBAAI;AACrB,aAAM,SAAS,cAAM;AACrB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,oBAAK;AACpB,aAAM,UAAU,gBAAM;AACtB,aAAM,UAAU,YAAI;AACpB,aAAM,QAAQ,cAAM;AACpB,aAAM,UAAU,cAAM;AACtB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,kBAAU;AAC3B,aAAM,QAAQ,YAAI;AAClB,aAAM,YAAY,gBAAI;AACtB,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,gBAAI;AACrB,aAAM,gBAAgB,gBAAI;AAC1B,aAAM,aAAa,kBAAU;AAC7B,aAAM,QAAQ,cAAM;AACpB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,cAAc,YAAI;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,WAAW,aAAK;AACtB,aAAM,aAAa,aAAK;AACxB,aAAM,eAAe,aAAK;AAC1B,aAAM,UAAU,aAAK;AACrB,aAAM,SAAS,YAAI;AACnB,aAAM,cAAc,YAAI;AACxB,aAAM,SAAS,gBAAI;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,UAAU,aAAK;AACrB,aAAM,QAAQ,gBAAI;AAClB,aAAM,WAAW,aAAK;AACtB,aAAM,cAAc,kBAAU;AAC9B,aAAM,OAAO,cAAM;AACnB,aAAM,WAAW,cAAM;AACvB,aAAM,WAAW,kBAAU;AAC3B,aAAM,SAAS,aAAK;AACpB,aAAM,UAAU,kBAAU;AAC1B,aAAM,cAAc,aAAK;AACzB,aAAM,gBAAgB,aAAK;AAC3B,aAAM,SAAS,cAAM;AACrB,aAAM,UAAU,gBAAI;AACpB,aAAM,QAAQ,aAAK;AACnB,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,aAAK;AACxB,aAAM,kBAAkB,aAAK;AAC7B,aAAM,aAAa,aAAK;AACxB,aAAM,OAAO,WAAG;AAChB,aAAM,YAAY,gBAAI;AACtB,aAAM,QAAQ,cAAI;AAClB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,YAAI;AACpB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,aAAa,cAAM;AACzB,aAAM,SAAS,gBAAI;AACnB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,aAAa,aAAK;AACxB,aAAM,QAAQ,aAAK;AACnB,aAAM,UAAU,aAAK;AACrB,aAAM,YAAY,aAAK;AACvB,aAAM,SAAS,cAAM;AACrB,aAAM,SAAS,aAAK;AACpB,aAAM,aAAa,aAAK;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,cAAc,cAAM;AAC1B,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,WAAW,aAAK;AACtB,aAAM,SAAS,cAAM;AACrB,aAAM,QAAQ,gBAAI;AAClB,aAAM,OAAO,aAAK;AAClB,aAAM,SAAS,aAAK;AACpB,aAAM,WAAW,aAAK;AACtB,aAAM,OAAO,aAAK;AAClB,aAAM,aAAa,aAAK;AACxB,aAAM,iBAAiB,aAAK;AAC5B,aAAM,WAAW,aAAK;;AAEtB;AACA,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,UAAU,cAAM;AACtB,aAAM,cAAc,cAAM;;AAE1B;AACA,oBAAK,CAAC,aAAM,EAAE,aAAM;;AAEpB;AACA,aAAM,OAAO,YAAI;AACjB,aAAM,WAAW,YAAI;AACrB,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,QAAQ,YAAI;AAClB,aAAM,SAAS,cAAM;AACrB,aAAM,SAAS,YAAI;AACnB,aAAM,aAAa,YAAI;AACvB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,aAAa,YAAI;AACvB,aAAM,cAAc,YAAI;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,aAAa,YAAI;AACvB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,cAAM;AACxB,aAAM,MAAM,YAAI;AAChB,aAAM,UAAU,cAAM;AACtB,aAAM,gBAAgB,cAAM;AAC5B,aAAM,SAAS,kBAAU;AACzB,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,aAAK;AACxB,aAAM,WAAW,cAAM;AACvB,aAAM,YAAY,kBAAU;AAC5B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,eAAe,cAAM;AAC3B,aAAM,SAAS,YAAI;AACnB,aAAM,WAAW,kBAAU;AAC3B,aAAM,gBAAgB,kBAAU;AAChC,aAAM,SAAS,cAAM;AACrB,aAAM,cAAc,cAAM;AAC1B,aAAM,UAAU,cAAM;AACtB,aAAM,eAAe,cAAM;AAC3B,aAAM,OAAO,cAAM;AACnB,aAAM,MAAM,YAAI;AAChB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,cAAM;AACnB,aAAM,SAAS,cAAM;AACrB,aAAM,QAAQ,aAAK;AACnB,aAAM,YAAY,kBAAQ;AAC1B,aAAM,YAAY,kBAAU;AAC5B,aAAM,WAAW,aAAK;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,UAAU,cAAM;AACtB,aAAM,eAAe,YAAI;AACzB,aAAM,WAAW,iBAAO;AACxB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,eAAe,YAAI;AACzB,aAAM,qBAAqB,YAAI;AAC/B,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,UAAU,YAAI;AACpB,aAAM,aAAa,YAAI;AACvB,aAAM,WAAW,YAAI;AACrB,aAAM,WAAW,YAAI;AACrB,aAAM,eAAe,YAAI;AACzB,aAAM,WAAW,YAAI;AACrB,aAAM,YAAY,YAAI;AACtB,aAAM,cAAc,YAAI;AACxB,aAAM,aAAa,YAAI;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,WAAW,YAAI;AACrB,aAAM,eAAe,YAAI;AACzB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,UAAU,YAAI;AACpB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,kBAAQ;AAC1B,aAAM,gBAAgB,YAAI;AAC1B,aAAM,iBAAiB,YAAI;AAC3B,aAAM,YAAY,YAAI;AACtB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,gBAAgB,YAAI;AAC1B,aAAM,eAAe,YAAI;AACzB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,YAAI;AACvB,aAAM,QAAQ,aAAK;AACnB,aAAM,aAAa,cAAM;AACzB,aAAM,QAAQ,cAAI;AAClB,aAAM,eAAe,aAAK;AAC1B,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,MAAM,YAAI;AAChB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,QAAQ,YAAI;AAClB,aAAM,UAAU,YAAI;AACpB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,aAAa,YAAI;AACvB,aAAM,aAAa,YAAI;AACvB,aAAM,cAAc,YAAI;AACxB,aAAM,cAAc,YAAI;AACxB,aAAM,YAAY,YAAI;AACtB,aAAM,YAAY,YAAI;AACtB,aAAM,OAAO,aAAK;AAClB,aAAM,QAAQ,YAAI;AAClB,aAAM,OAAO,YAAI;AACjB,aAAM,OAAO,cAAM;AACnB,aAAM,UAAU,cAAM;AACtB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,cAAM;AACxB,aAAM,UAAU,cAAM;AACtB,aAAM,UAAU,kBAAU;AAC1B,aAAM,eAAe,kBAAU;AAC/B,aAAM,UAAU,cAAM;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,UAAU,cAAM;AACtB,aAAM,SAAS,YAAI;AACnB,aAAM,UAAU,kBAAU;AAC1B,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,cAAM;AACzB,aAAM,QAAQ,kBAAU;AACxB,aAAM,eAAe,aAAK;AAC1B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,iBAAiB,aAAK;AAC5B,aAAM,mBAAmB,aAAK;AAC9B,aAAM,qBAAqB,aAAK;AAChC,aAAM,qBAAqB,aAAK;AAChC,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;AAC1B,aAAM,YAAY,YAAI;AACtB,aAAM,OAAO,YAAI;AACjB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,cAAM;AACxB,aAAM,SAAS,YAAI;AACnB,aAAM,YAAY,YAAI;AACtB,aAAM,aAAa,mBAAS;AAC5B,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,YAAY,YAAI;AACtB,aAAM,iBAAiB,YAAI;AAC3B,aAAM,YAAY,YAAI;AACtB,aAAM,WAAW,cAAM;AACvB,aAAM,QAAQ,cAAM;AACpB,aAAM,WAAW,cAAM;AACvB,aAAM,aAAa,cAAM;AACzB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,cAAM;AACxB,aAAM,YAAY,YAAI;AACtB,aAAM,aAAa,cAAM;AACzB,aAAM,cAAc,cAAM;;AAE1B;AACA,aAAM,QAAQ,kBAAU;AACxB,aAAM,aAAa,kBAAU;AAC7B,aAAM,SAAS,aAAK;;AAEpB,oBAAK,CAAC,aAAM;AACZ;AACA,EAAE,WAAU,CAAC,aAAM;AACnB,SAAS,6BAAc,MAAM,aAAM;AACnC;AACA;AACA,GAAG;AACH;AACA,CAAC,OAAO,gBAAgB;;AAExB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,aAAM;AACN,CAAC,aAAM,oBAAoB,cAAM,+BAA+B,aAAM;;AAEtE;AACA,UAAS;AACT,EAAE,aAAM,2BAA2B,aAAM;AACzC,CAAC;;AAED;AACA,UAAS;AACT,EAAE,YAAW;AACb,8BAA8B,wBAAS,CAAC,mBAAS;;AAEjD;AACA,YAAY,YAAW;AACvB;;AAEA;AACA,6BAA6B,wBAAS;AACtC,MAAM;AACN;AACA,gBAAgB,wBAAS,IAAI,+BAAgB;AAC7C;AACA,OAAO;AACP;AACA;AACA;;AAEA,EAAE,YAAW;AACb;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;AACA,yBAAyB,+BAAgB;;AAEzC,EAAE,YAAW;AACb;AACA;AACA,kBAAkB,aAAY;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;;AAEA,EAAE,YAAW;AACb;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT;;AAEA,EAAE,YAAW;AACb,mCAAmC,YAAW;AAC9C;AACA,CAAC;;AAED,YAAW;AACX,qBAAqB,kBAAQ;AAC7B;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW,uBAAuB,SAAQ;AAC1C;AACA,eAAe,YAAW;AAC1B;AACA;AACA,WAAW,WAAU;AACrB,GAAG;AACH,CAAC;;AAED,YAAW;AACX,qBAAqB,gBAAM,CAAC,aAAY;AACxC;;AAEA,YAAW;AACX,UAAU,mBAAS;;AAEnB;AACA;AACA,eAAe,YAAW;AAC1B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,UAAU,mBAAS;AACnB;AACA;AACA;AACA;;AAEA,YAAW;AACX;AACA;;AAEA,YAAW;AACX,mBAAmB,+BAAgB;AACnC;;AAEA;AACA,WAAU,CAAC,YAAW;AACtB;AACA;AACA,mBAAmB,aAAM;AACzB;;AAEA;AACA;AACA;AACA,EAAE,aAAM;AACR;AACA;AACA,kCAAkC,YAAW;AAC7C;AACA,4BAA4B,iBAAO;;AAEnC;AACA,oCAAoC,aAAM,EAAE,UAAS;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,YAAW;AAChD;AACA,gCAAgC,QAAQ,cAAI,+CAA+C;AAC3F,iBAAiB,cAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,UAAS;AACT,aAAa,yBAAU;AACvB;AACA;;AAEA,EAAE,aAAM;AACR;AACA;AACA;AACA,wBAAwB,iBAAO;AAC/B;AACA;AACA,wBAAwB,iBAAO;AAC/B,KAAK;AACL;AACA,CAAC;;AAED;AACA,WAAU,CAAC,YAAW;AACtB,mBAAmB,aAAM;AACzB;AACA;AACA,SAAS,6BAAc,MAAM,UAAS;AACtC,MAAM,UAAS;AACf;AACA,IAAI,UAAS,aAAa,wCAAwC;AAClE;AACA,CAAC;;AAED,UAAS,CAAC,aAAY,YAAY,iCAAkB;AACpD;AACA;AACA,CAAC;;AAED;AACA,YAAW,mBAAmB,UAAS;AACvC,YAAW,qBAAqB,YAAW;AAC3C,YAAW,mBAAmB,UAAS;;AAEvC;AACA,aAAM,gBAAgB,WAAG;AACzB,aAAM,mBAAmB,WAAG;AAC5B,aAAM,oBAAoB,WAAG;AAC7B,aAAM,kBAAkB,WAAG;AAC3B,aAAM,mBAAmB,WAAG;AAC5B,aAAM,qBAAqB,WAAG;AAC9B,aAAM,oBAAoB,aAAM,qBAAqB,aAAM,mBAAmB,WAAG;;AAEjF;AACA,aAAM,mBAAmB,aAAM;;AAE/B,IAAI,0BAAW;AACf,EAAE,aAAM,WAAW,0BAAW,IAAI,WAAG;AACrC;;AAEA,mDAAe,aAAM,EAAC;;;ACloBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0C;AACI;AACJ;AACM;AACI;AACQ;AACJ;AAChB;AACU;AACF;AACJ;AACM;AACA;AACI;AACE;AACF;AACV;AACE;AACA;AACA;AACA;AACQ;AACQ;AACR;AACN;AACE;AACF;AACJ;AACQ;AACI;AACJ;AACF;AACF;AACF;AACU;AACJ;AACJ;AACM;AACF;AACQ;AACd;AACA;AACU;AACI;AACI;AAChB;AACJ;AACU;AACU;AACV;AACV;AACU;AACF;AACF;AACI;AACd;AACQ;AACY;AACd;AACE;AACQ;AACZ;AACI;AACJ;AACU;AACJ;AACE;AACU;AACJ;AACZ;AACI;AACQ;AACE;AACV;AACQ;AACE;AAChB;AACE;AACF;AACU;AACJ;AACU;AACd;AACU;AACR;AACU;AACJ;AACA;AACI;AAChB;AACQ;AACV;AACE;AACA;AACI;AACF;AACQ;AACF;AACE;AACF;AACA;AACU;AACI;AACI;AACpB;AACI;AACJ;AACM;AACI;AACR;AACY;AACJ;AACY;AAChB;AACF;AACJ;AACM;AACJ;AACA;AACQ;AACR;AACE;AACI;AACF;AACF;AACN;AACI;AACQ;AACZ;AACM;AACN;AACE;AACI;AACA;AACQ;AACE;AACV;AACU;AAChB;AACM;AACA;AACQ;AACF;AACJ;AACA;AACF;AACR;AACU;AACR;AACF;AACI;AACJ;AACc;AACH;AACD;AACE;AAChB;AACE;AACA;AACQ;AACI;AACJ;AACgB;AACxB;AACI;AACF;AACI;AACE;AACJ;AACQ;AACN;AACI;AACV;AACI;AACA;AACM;AACJ;AACJ;AACA;AACF;AACA;AACM;AACJ;AACI;AACJ;AACM;AACN;AACQ;AACE;AACF;AACV;AACM;AACI;AACA;AACF;AACU;AACN;AACV;AACI;AACF;AACM;AACI;AACZ;AACM;AACI;AACI;AACV;AACA;AACF;AACU;AACV;AACE;AACU;AACV;AACA;AACA;AACE;AACN;AACI;AACE;AACJ;AACE;AACQ;AACd;AACQ;AACA;AACN;AACE;AACQ;AACV;AACI;AACU;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AACd;AACE;AACM;AACE;AACF;AACA;AACE;AACA;AACJ;AACA;AACV;AACI;AACF;AACA;AACU;AACU;AACV;AACZ;AACU;AACgB;AAChB;AACR;AACE;AACI;AACE;AACE;AACE;AACR;AACI;AACF;AACE;AACF;AACI;AACN;AACc;AACA;AACV;AACF;AACI;AACV;AACM;AACI;AACF;AACN;AACM;AACN;AACI;AACI;AACV;AACI;AACI;AACA;AACN;AACA;AACQ;AACN;AACQ;AACF;AACE;AACV;AACI;AACF;AACI;AACF;AACJ;AACF;AACU;AACM;AACL;AACO;AACX;AACE;AACW;AACD;AACH;AAClB;AACI;AACI;AACR;AACY;AACQ;AACZ;AACJ;;;AC1U9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA,cAAc,oDAAoD;AAClE;AACA;AACA,qCAAqC,IAAI,qBAAqB,kBAAkB;AAChF;AACA;AACA;AACA;AACA,QAAQ;AACR,+BAA+B,mBAAmB;AAClD;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,2CAA2C;AACzD;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,2EAA2E,EAAE;AAC7E;AACA,WAAW,8BAA8B;AACzC;AACA;AACA,GAAG;AACH,mBAAmB;AACnB;AACA;AACA;AACA,aAAa,2BAA2B,GAAG;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,+CAA+C,eAAe;AAC9D,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,kCAAkC,EAAE;AACpC,GAAG;AACH,6BAA6B,GAAG,QAAQ,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM;AACR,EAAE,MAAM;AACR,EAAE,EAAE;AACJ;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,EAAE,GAAG,EAAE,EAAE;AAC7B;AACA;AACA,kDAAkD,EAAE,EAAE,KAAK;AAC3D;AACA,UAAU,EAAE;AACZ,2BAA2B,EAAE;AAC7B,EAAE,EAAE,cAAc,EAAE;AACpB,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ;AACA,GAAG;AACH,8DAA8D,KAAK,IAAI,QAAQ;AAC/E;AACA;AACA,UAAU,YAAY;AACtB;AACA,EAAE,EAAE;AACJ,EAAE,EAAE;AACJ,EAAE,GAAG;AACL;AACA,GAAG,8BAA8B,KAAK;AACtC;AACA;AACA;AACA;AACA;AAOE;AACF;;;AC7XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE+jH;;;ACvpC/jH;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,+BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,8BAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,gCAAW;AAC7B,MAAM,+BAAU,GAAG,gCAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,mCAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,4BAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2CAAsB;AAC5B;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,2CAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAkB;AACxB;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,uCAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,gCAAW;AAC/B,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,6BAAQ;AAC7B,MAAM,iCAAY,GAAG,6BAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,kCAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,oCAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,2BAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,+BAAU;AACzB;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,mCAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,6BAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,sCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,oCAAe;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,+BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,4BAAO,GAAG,kCAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,kCAAa;AACvC,MAAM,0CAAqB,GAAG,kCAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,iCAAY;AAClC,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wCAAmB;AACzB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,wCAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,qCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,0CAAqB,GAAG,kCAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,sCAAiB;AAC1C,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,uCAAkB,GAAG,+BAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,qCAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA,MAAM,+BAAU,GAAG,mCAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,6BAAQ,GAAG,iCAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,kCAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,oCAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,gCAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,0BAAK,GAAG,gCAAW;AACzB,MAAM,0CAAqB;AAC3B;AACA;AACA;AACA;AACA,MAAM,sCAAiB,GAAG,0CAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,oCAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,yCAAoB,GAAG,iCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,mCAAc,GAAG,iCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,4BAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAkB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,2BAAM,GAAG,+BAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8BAAS;AACf;AACA;AACA;AACA;AACA,MAAM,0BAAK,GAAG,8BAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAQ;AACd;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,6BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,gCAAW,GAAG,oCAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,yCAAoB,GAAG,iCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,iCAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,+BAAU;AAChC,MAAM,mCAAc,GAAG,+BAAU;AACjC;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAiB;AACvB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,sCAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,0BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,qCAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wCAAmB;AACzB;AACA;AACA;AACA;AACA,MAAM,oCAAe,GAAG,wCAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAoB;AAC1B;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,yCAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAW;AACjB;AACA;AACA;AACA;AACA,MAAM,4BAAO,GAAG,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA,MAAM,qCAAgB,GAAG,qCAAgB;AACzC,MAAM,qCAAgB,GAAG,qCAAgB;AACzC,MAAM,kCAAa,GAAG,qCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,kCAAa,GAAG,kCAAa;AACnC,MAAM,kCAAa,GAAG,kCAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAY;AAClB;AACA;AACA;AACA;AACA,MAAM,iCAAY,GAAG,iCAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAa;AACnB;AACA;AACA;AACA;AACA,MAAM,8BAAS,GAAG,kCAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oCAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0BAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW;AACX,cAAc;AACd;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA,WAAW;AACX,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,UAAU;AACV,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,QAAQ;AACR;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,QAAQ;AACR,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY;AACZ,QAAQ;AACR;AACA,kBAAkB;AAClB,cAAc;AACd,eAAe;AACf,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,eAAe;AACf;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,UAAU;AACV,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB,iBAAiB;AACjB;AACA,YAAY;AACZ,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,aAAa;AACb,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf,eAAe;AACf,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe;AACf,mBAAmB;AACnB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,YAAY;AACZ,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,uBAAuB;AACvB;AACA,mBAAmB;AACnB,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,cAAc;AACd,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,OAAO;AACP,uBAAuB;AACvB,mBAAmB;AACnB;AACA,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,cAAc;AACd,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,cAAc;AACd,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,eAAe;AACf,gBAAgB;AAChB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE242B;;;;;AC70S342B;AACA;AACA;AACA;AACA,SAAS,uBAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,aAAa,uBAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiC;;;;;;;AClDjC;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,sBAAsB;AACnC,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2EAA2E,aAAa;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,GAAG;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;;AAEA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,uBAAuB;AACpC,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;AAER;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,CAAC;AACD,kBAAkB,sBAAsB,OAAO;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA,wBAAwB;AACxB,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,sBAAsB;AACtB,uBAAuB;;AAEvB,MAAM,wBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAM,wDAAwD,wBAAM;AACxE;AACA;AACA,UAAU,wBAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,wBAAM;AAClB;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,wBAAM;AAChB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B,wBAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA,oBAAoB;AACpB,aAAa,eAAe,GAAG,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK,YAAY,KAAK;AACzE;AACA;AACA,mDAAmD,KAAK,YAAY,KAAK;AACzE;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sDAAsD,uFAAuF;AAC7I;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA,aAAa,gDAAgD;AAC7D;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,cAAc;AACzB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB,aAAa,YAAY;AACzB,aAAa,qBAAqB;AAClC,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA,UAAU,eAAe;AACzB,UAAU,oBAAoB;AAC9B,UAAU,cAAc;AACxB,YAAY;AACZ;;AAEA;AACA;AACA,UAAU,YAAY;AACtB,UAAU,QAAQ;AAClB,UAAU,qBAAqB;AAC/B,UAAU,QAAQ;AAClB,YAAY;AACZ;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,UAAU,QAAQ;AAClB,UAAU,aAAa;AACvB,YAAY;AACZ;;AAEA;AACA,aAAa,mBAAmB;AAChC;;AAEA;AACA,aAAa,QAAQ;AACrB,cAAc,MAAM;AACpB,cAAc,iBAAiB;AAC/B,cAAc;AACd,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,QAAQ,WAAW;AACjC,cAAc;AACd,cAAc;AACd,cAAc,0BAA0B;AACxC,cAAc,aAAa;AAC3B,cAAc,kBAAkB;AAChC,cAAc,mBAAmB;AACjC;AACA,cAAc,SAAS;AACvB;;AAEA;AACA,WAAW,wBAAwB;AACnC,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,kBAAkB;AAC7B;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,GAAG;AAC3H;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB,EAAE;AACvB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B,aAAa,yBAAyB,OAAO;AAC7C,GAAG;AACH;AACA,kBAAkB,GAAG,OAAO,GAAG;AAC/B;AACA,gBAAgB;AAChB,sCAAsC;AACtC;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA,aAAa,KAAK;AAClB;;AAEA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA,aAAa,QAAQ;AACrB;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,KAAK;AACL;;AAEA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoB;;;AC7mEpB;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA,CAAC;;AAEM;AACP;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;;AAEO,SAAS,oBAAgB;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,mEAAmE,eAAe;AAClF;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B,6BAA6B;AAC7B,+BAA+B;;;ACtFqD;;AAEpF;AACA;AACA;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK,wBAAwB,YAAY;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,GAAG,KAAK,WAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,qBAAqB;AACrB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,IAAI,SAAI,4CAA4C;AACpD;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qBAAgB;AACzB,WAAW,oBAAkB;AAC7B;AACA,SAAS,iBAAY,OAAO;AAC5B,SAAS,kBAAa,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAW;AACpB;AACA,SAAS,kBAAa;AACtB;AACA;AACA,SAAS,iBAAY;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAa,SAAS;;AAE/B;AACA;AACA;AACA;AACA,IAAI,YAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE,YAAO,KAAK,YAAO,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,mCAAmC,YAAO;AAC1C;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAO;AACnC,6BAA6B,YAAO;AACpC,gCAAgC,YAAO;AACvC,gCAAgC,YAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAK,0CAA0C,KAAK;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAI;AACtC,gEAAgE,SAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,YAAY,aAAa,OAAO;AAC9G;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA,iEAAiE,MAAM,KAAK,IAAI,oBAAoB,OAAO;AAC3G,wCAAwC,SAAI,qCAAqC,SAAI;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAI;AACtC,8BAA8B,SAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAI;AACrD,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA,cAAc,WAAW;AACzB,0CAA0C,SAAI;AAC9C;AACA;AACA,cAAc,WAAW;AACzB,kDAAkD,SAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,oBAAe;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe,EAAE,oBAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAe,mBAAmB,oBAAe;AACnH;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW,gBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,gBAAW;AAC/F;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW,4BAA4B,gBAAW;AAClD;AACA;AACA;AACA,gBAAW,6BAA6B,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gBAAW;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAW;AAC1D,kDAAkD,gBAAW;AAC7D;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,gBAAW;AACX;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAW,uCAAuC,gBAAW;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAW;AACpD;AACA;AACA;AACA,0CAA0C,oBAAe,SAAS,oBAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW,gEAAgE,gBAAW;AACnG;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA,gCAAgC,gBAAW;AAC3C;AACA,2FAA2F,gBAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,iBAAY,KAAK,iBAAY,KAAK;AACxD;AACA;AACA;AACA,6CAA6C,WAAW,IAAI,OAAO;AACnE;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAY;AAC/B;AACA,mBAAmB,iBAAY;AAC/B,wBAAwB,sBAAsB;AAC9C;AACA,uBAAuB,iBAAY;AACnC,eAAe,iBAAY;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAqC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW,8CAA8C;AACvG,mBAAmB,oBAAe,mCAAmC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA,sBAAsB,gBAAW,uCAAuC,gBAAW;AACnF;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,wCAAwC,SAAI;AAC5C,cAAc,SAAI;AAClB,4CAA4C,oBAAe;AAC3D,0CAA0C,oBAAe;AACzD,kBAAkB,oBAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA,uBAAuB,qBAAgB;AACvC,gDAAgD,iBAAY;AAC5D;AACA;AACA;AACA;AACA,uBAAuB,qBAAgB;AACvC,8CAA8C,iBAAY;AAC1D;AACA;AACA;AACA,qCAAqC,oBAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,gBAAW;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,+BAA+B,YAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oIAAoI,OAAO;AAC3I;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iEAAiE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAQ;AACrF,sCAAsC,0CAA0C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAQ,2BAA2B,aAAQ;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAQ;AAC3B;AACA,sCAAsC,QAAQ;AAC9C,sCAAsC,SAAS,aAAQ,QAAQ;AAC/D,6BAA6B,aAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAQ,0BAA0B,aAAQ;AAC1C;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAQ,mBAAmB,aAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB,aAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAQ;AAC7B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+BAA+B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,SAAS,WAAM;AACf,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAgB;AAC5B;AACA;AACA;;AAEkX;;;ACxyHlX,MAAM,WAAC;AACP,oDAAoD,WAAC,cAAc,WAAC;AACpE;AACA,MAAM,aAAG;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,2BAA2B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;;AAEjB;AACA;AACA;;AAEA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV,8GAA8G;AAC9G;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,aAAa,aAAG;AAChB,IAAI,aAAG;AACP,WAAW,WAAC;AACZ;;AAEA,2EAA2E,eAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,IAAI,iBAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,yBAAyB,KAAK;;;AC3KvB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,0EAA0E,GAAG;;AAE7E;AACA,gBAAgB,QAAQ;;AAExB;AACA,gBAAgB,SAAS;;AAEzB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtHqS;AAC7P;AACW;;AAEnD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC,aAAa;AACnD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW,yGAAyG;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,2BAA2B;AAC3B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D;AAC1D,wDAAwD,mBAAmB;AAC3E;AACA;AACA,mDAAmD,GAAG;AACtD,MAAM,OAAE;AACR,eAAe,OAAE;AACjB,gBAAgB,OAAE;AAClB;AACA,gBAAgB,OAAE;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,yBAAyB;AACzB;AACA;AACA,mBAAmB,SAAI;AACvB;AACA;AACA;AACA,cAAc,OAAO;AACrB,+DAA+D,SAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,oBAAoB;AACpB,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,eAAe,SAAI;AACnB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,4BAA4B,WAAW;AACvC,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB,aAAQ;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAO,6BAA6B,YAAO,eAAe,YAAO;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2CAA2C;AACrD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA,wCAAwC,YAAY,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,SAAI;AACpG;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,yBAAyB;AACzB,uBAAuB;AACvB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B;AAC5B,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,cAAc;AACd,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B,WAAW,oBAAe;AAC1B;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,KAAK;AAClD,0CAA0C,KAAK;AAC/C,yCAAyC,KAAK;AAC9C,mCAAmC,KAAK;AACxC,oCAAoC,KAAK;AACzC,kCAAkC,KAAK;AACvC,uCAAuC,KAAK;AAC5C,0CAA0C,KAAK;AAC/C,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA,CAAC;AACD,2CAA2C,KAAK;AAChD;AACA,CAAC;AACD,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAe;AAC5C;AACA;AACA,oCAAoC,gBAAW,UAAU,2BAA2B;AACpF,8CAA8C,gBAAW;AACzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK,UAAU,qDAAqD;AAClG;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAA4D;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,uCAAuC,KAAK;AAC5C;AACA,iCAAiC,KAAK;AACtC,sCAAsC,KAAK;AAC3C,kCAAkC,KAAK;AACvC,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ,mBAAmB;AACnB;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA,8CAA8C,2DAA2D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0DAA0D;AACpH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA,kBAAkB,qBAAqB;AACvC,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAgB;AAClC;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,aAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,yBAAyB,qCAAqC;AAC9D;AACA,qBAAqB;AACrB;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,6BAA6B;AAC7B,uBAAuB;AACvB;AACA;AACA;AACA,IAAI,aAAQ;AACZ;AACA;AACA;AACA,yBAAyB,sBAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAgB;AAC/B;AACA,aAAa,qBAAgB;AAC7B;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+DAA+D;AAC7F;AACA;AACA,oCAAoC,4DAA4D;AAChG;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,iDAAiD;AACjD;AACA,mBAAmB,oBAAe;AAClC;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAe;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iDAAiD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAe;AACzC;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAe;AACpC,mBAAmB,0CAA0C,SAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAe;AACpC,mBAAmB,oCAAoC,SAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAA8C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,UAAU,mDAAmD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oBAAe;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6BAA6B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAkE;AACxE,MAAM,yDAAyD;AAC/D,MAAM,yDAAyD;AAC/D,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,WAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,8BAA8B,oBAAe;AAC7C;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB,WAAW,yBAAyB;AACzD,uBAAuB,oBAAe;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB,WAAW,mDAAmD;AACnF,uBAAuB,oBAAe;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,eAAe,oBAAe;AAC9B;AACA,0BAA0B;AAC1B;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oCAAoC;AACrE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAe,mBAAmB,oBAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,cAAc,WAAW;AACzB;AACA,mBAAmB,oBAAe;AAClC;AACA;AACA;AACA;AACA,UAAU,aAAa,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAoC;AACzE,UAAU,iBAAiB;AAC3B;AACA,YAAY,mDAAmD;AAC/D,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qBAAqB,uEAAuE;AAC5F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA,8BAA8B,8DAA8D;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAA8C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,6CAA6C;AAC7C;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mBAAmB,SAAI;AACvB;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,oCAAoC;AACpC;AACA;AACA,yCAAyC,QAAQ;AACjD,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAO;AACxB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB,YAAY;AAC7C;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,+BAA+B;AAC/B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY,EAAE,sCAAsC,EAAE,iDAAiD;AAC9H;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C,4CAA4C,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAO;AAC3B,qBAAqB,YAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,6BAA6B;AAC7B,gCAAgC;AAChC,kCAAkC;AAClC,mCAAmC;AACnC,+BAA+B;AAC/B,8BAA8B;AAC9B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,SAAI;AAC5E,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD,wBAAwB,QAAQ;AAChC;AACA,mCAAmC,UAAU;AAC7C,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wJAAwJ,SAAS;AACjK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,SAAI;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA,cAAc,MAAM;AACpB,cAAc,SAAS;AACvB,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAQ;AAChB,6BAA6B,cAAc,UAAU,IAAI;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAoE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAQ;AACZ,kBAAkB;AAClB;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA,KAAK,OAAO;AACZ;AACA,sBAAsB,eAAe;AACrC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB,WAAW;AAC5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,KAAK,UAAU,iCAAiC;AAC3E,+BAA+B,KAAK,UAAU,8CAA8C;AAC5F,iCAAiC,WAAW,uCAAuC,WAAW,sCAAsC,WAAW;AAC/I,uBAAuB;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,kEAAkE,EAAE;AACpE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4BAA4B,qBAAqB;AACjD,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6BAA6B,QAAQ,WAAW,YAAY,cAAc;AAC1E,8BAA8B,QAAQ,WAAW,YAAY,cAAc;AAC3E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,2BAA2B;AAC3B,KAAK;AACL,+BAA+B,8BAA8B;AAC7D,8BAA8B,8BAA8B;AAC5D,gCAAgC,cAAc;AAC9C,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,sBAAsB;AACvC;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,wBAAwB,eAAe;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oDAAoD,eAAe;AACnE;AACA;AACA,mCAAmC;AACnC,2BAA2B,kBAAkB,SAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAe;AAC5C;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB,SAAI;AACjD;AACA;AACA;AACA,kDAAkD,oBAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2EAA2E,EAAE,4BAA4B;AAC3K,oDAAoD,cAAc,SAAS;AAC3E;AACA;AACA;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,eAAU;AAChB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,8BAA8B,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC,wEAAwE,oBAAe;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,IAAI,mBAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAU;AAC/C,QAAQ,WAAW,6EAA6E,QAAQ;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,2EAA2E,oBAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA,kDAAkD,oBAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC,sEAAsE,OAAO;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA;AACA,eAAU,yBAAyB,KAAK,UAAU,mDAAmD;AACrG;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU;AACV;AACA;AACA;AACA;AACA,eAAU,6BAA6B,eAAU,wBAAwB,4BAA4B;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAU,yBAAyB,gBAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,QAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,IAAI,sBAAsB,eAAU;AACzE;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,UAAU,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,+CAA+C;AAC/C,sDAAsD;AACtD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sBAAsB,MAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,mBAAmB,gBAAW,oBAAoB,kBAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B;AACA;AACA;AACA,oDAAoD,KAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D,mCAAmC,4BAA4B;AAC/D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,gDAAgD,WAAW,IAAI,WAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC;AACA;AACA;AACA,SAAS,UAAK;AACd;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,KAAK;AAC1C;AACA,eAAe,aAAa;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,UAAK;AACtC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAe;AAC1D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,oCAAoC,UAAK;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,yCAAyC,IAAI,sBAAsB,eAAU;AAC7E;AACA,yCAAyC,2CAA2C;AACpF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,sCAAsC,gBAAW;AACjD,wBAAwB;AACxB,CAAC;AACD,mCAAmC,UAAU;AAC7C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA,CAAC;AACD;AACA;AACA,oDAAoD,oCAAoC;AACxF,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8DAA8D,qBAAqB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAA2D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+FAA+F;AACpI;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,qBAAqB,aAAa;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM;AAChC,+BAA+B,gBAAW;AAC1C;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA,yBAAyB;AACzB;AACA;AACA,2EAA2E,2CAA2C;AACtH,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA,MAAM,WAAM,gBAAgB;AAC5B;AACA;AACA,uBAAuB;AACvB;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B,OAAO;AAC5D;AACA;AACA,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,WAAM,iCAAiC,QAAQ,0BAA0B,WAAM,4DAA4D;AACvJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2CAA2C;AACjG;AACA;AACA,4BAA4B;AAC5B,KAAK,IAAI,iCAAiC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA,wBAAwB,UAAU;AAClC;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA,0BAA0B,UAAU;AACpC,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA,cAAc,WAAW;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAU;AACrB;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,yBAAyB,SAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,eAAU,gCAAgC,QAAQ,4GAA4G;AACtK;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC;AAC/C;AACA,wBAAwB,kCAAkC;AAC1D,4FAA4F,MAAM;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mBAAmB;AACnB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAU;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,mBAAmB;AACtC,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C,4BAA4B,mBAAmB;AAC/C,SAAS;AACT;AACA,wBAAwB,mBAAmB;AAC3C;AACA,8BAA8B,mBAAmB;AACjD,aAAa;AACb;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA,SAAS;AACT;AACA,qBAAqB,mBAAmB;AACxC;AACA,iCAAiC,mBAAmB;AACpD,aAAa;AACb;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;AACnB;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA,CAAC;AACD,sCAAsC,KAAK;AAC3C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,sBAAsB;AACtB,oBAAoB;AACpB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,6DAA6D;AAClH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,wCAAwC,sEAAsE;AAC9G;AACA,aAAa;AACb;AACA;AACA,4BAA4B,gEAAgE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc,kBAAkB;AAChC;AACA,kBAAkB,MAAM;AACxB;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,mBAAmB,gBAAW;AAC9B,qBAAqB,UAAU;AAC/B,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,YAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAW;AACxD;AACA;AACA;AACA,wCAAwC,gFAAgC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB,eAAU;AACjC;AACA,0BAA0B;AAC1B,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C,MAAM,aAAQ;AACd;AACA;AACA;AACA,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE,aAAQ;AAChF;AACA,kCAAkC,KAAK;AACvC;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB,eAAU;AACjC;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,KAAK;AACL,CAAC;AACD,SAAS,YAAO,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAQ;AAC9B;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,YAAO;AAC9B;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,uBAAuB,YAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA;AACA;AACA,4CAA4C,KAAK;AACjD,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa,WAAW,4CAA4C;AACnF;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6CAA6C;AACjE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAQ;AACnB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,KAAK;AACL;AACA,+CAA+C,0BAA0B;AACzE,iDAAiD,4BAA4B;AAC7E;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAE2rB;;;ACj6V3rB;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,kCAAkC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2CAA2C;AACzD;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,eAAe;AACf;AACA,gCAAgC;AAChC,uBAAuB,sBAAsB,oDAAoD,QAAQ;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB,sBAAsB;AACtB,uBAAuB;AACvB;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8EAA8E,MAAM;AACpF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,UAAU,yBAAyB;AAClD;AACA,2FAA2F,QAAQ;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,OAAO;AAC7E,oCAAoC,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,iBAAiB,QAAQ;AAChD,oEAAoE,QAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4GAA4G;AACtH;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,KAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,kBAAkB,uBAAuB;AACzC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAK,yDAAyD,UAAK,uBAAuB,UAAK;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB,uBAAuB;AACvB,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,UAAK;AAC7D;AACA;AACA;AACA;AACA,mGAAmG,UAAK;AACxG;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kNAAkN,UAAK;AACvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,KAAK;AACxD;AACA;AACA,6CAA6C,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAK;AACnC;AACA,8CAA8C,UAAK;AACnD;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA,qDAAqD,UAAK;AAC1D;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgK;;;ACvnEvH;;AAEzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA,0BAA0B,SAAS,GAAG,KAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,cAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAS;AAClB;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAI,qBAAqB,SAAI,oBAAoB,SAAI;AAC1E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,oBAAoB,SAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA,iBAAiB,SAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM,yCAAyC;AAC/C,MAAM,2CAA2C;AACjD,MAAM,uCAAuC;AAC7C,MAAM,yCAAyC;AAC/C,MAAM,mCAAmC;AACzC,MAAM,mCAAmC;AACzC,MAAM,iCAAiC;AACvC,MAAM,6CAA6C;AACnD,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,yCAAyC;AAC/C,MAAM,uCAAuC;AAC7C,MAAM,uCAAuC;AAC7C,MAAM,kFAAkF;AACxF,MAAM,mDAAmD;AACzD,MAAM,yEAAyE;AAC/E,MAAM,mFAAmF;AACzF,MAAM,kEAAkE;AACxE,MAAM,mFAAmF;AACzF,MAAM,2CAA2C;AACjD,MAAM,6CAA6C;AACnD,MAAM,6CAA6C;AACnD,MAAM,6CAA6C;AACnD,MAAM,mDAAmD;AACzD,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,mCAAmC;AACzC,MAAM,yCAAyC;AAC/C,MAAM;AACN;;AAE8G;;;ACv4BZ;AAC2C;AACZ;AAC/C;AAC1C;;AAExC;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,kCAAkC,WAAW,sBAAsB,QAAQ,OAAO,eAAU,WAAW;AACvG;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA,0CAA0C,sCAAsC;AAChF;AACA,sCAAsC,oCAAoC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,kCAAkC,IAAI;AACtC;AACA;AACA;AACA,gBAAgB,eAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iCAAiC,gBAAW;AAC5C;AACA,gDAAgD,eAAU;AAC1D;AACA,8BAA8B,MAAM,6BAA6B,QAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAU;AACnB;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA,gFAAgF,wBAAwB;AACxG,wBAAwB,YAAY;AACpC,mBAAmB,IAAI;AACvB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI,CAAC,QAAQ;AAChD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,WAAW,YAAY,4BAA4B,4CAA4C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,mBAAmB;AACvG;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,4DAA4D;AAC/G,SAAS;AACT;AACA;AACA;AACA;AACA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA,oBAAoB;AACpB,cAAc,mBAAmB,aAAa;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,iEAAiE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB,UAAU;AAC/B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC,yBAAyB,gDAAgD;AACzE;AACA;AACA;AACA,QAAQ,eAAU;AAClB;AACA,yCAAyC,6BAA6B;AACtE,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,qBAAqB,YAAY;AACjJ;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM,eAAU,gBAAgB,KAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gCAAgC,QAAQ,qEAAqE;AAC1J;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAA2D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qCAAqC;AACnD;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG;AACA,qCAAqC,QAAQ;AAC7C,sBAAsB;AACtB;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB,IAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2DAA2D;AAC1F;AACA,uCAAuC,2BAA2B;AAClE,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8DAA8D;AAC3G;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAW,UAAU,eAAe;AACpE;AACA;AACA;AACA,kCAAkC,gBAAW,UAAU,eAAe;AACtE;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA,eAAe,UAAU;AACzB,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA,oBAAoB,UAAU,WAAW,uEAAuE;AAChH,yCAAyC,+CAA+C;AACxF;AACA;AACA,yCAAyC;AACzC,oEAAoE;AACpE;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C,mDAAmD;AACnD,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL,kBAAkB,eAAU;AAC5B;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,KAAK;AACL;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,uBAAuB;AACvB;AACA;AACA;AACA,gEAAgE,gBAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qFAAqF;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA,WAAW,eAAU,gBAAgB,6DAA6D,EAAE,UAAU,EAAE,yBAAyB,EAAE,OAAO;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+BAA+B,UAAU,KAAK;AAC1G,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAsD;AAC5D,MAAM,wDAAwD;AAC9D,MAAM,iCAAiC;AACvC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC,sBAAsB,OAAO,aAAa;AAC1C,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,WAAW,uCAAuC,UAAU;AACtG,sBAAsB;AACtB,OAAO;AACP,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA,gBAAgB;AAChB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,mDAAmD;AACnD;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAU,uBAAuB,eAAU;AAC3D;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,mBAAmB;AAC7B;AACA;AACA,QAAQ,MAAM;AACd;AACA,4BAA4B,QAAQ,wFAAwF,aAAQ,SAAS;AAC7I;AACA;AACA,aAAa;AACb,4DAA4D,uBAAuB;AACnF;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA,mBAAmB;AACnB,SAAS;AACT;AACA;AACA;AACA,MAAM,gBAAW,gBAAgB,eAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC;AACA,sDAAsD,WAAW,WAAW;AAC5E,SAAS;AACT;AACA,SAAS;AACT,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,sCAAsC,KAAK;AAC3C,yCAAyC,KAAK;AAC9C,sBAAsB;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAU;AACtD,+BAA+B,eAAU;AACzC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAU;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,0BAA0B,eAAe;AACzC,mBAAmB,WAAW;AAC9B,YAAY,aAAa;AACzB,wFAAwF,UAAU,QAAQ,cAAc;AACxH,aAAa;AACb;AACA;AACA;AACA;AACA,qCAAqC,IAAI,mBAAmB,UAAU;AACtE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,MAAM,KAAK,IAAI;AACf,0BAA0B;AAC1B,MAAM,KAAK,IAAI;AACf,qCAAqC;AACrC,MAAM,KAAK,IAAI;AACf;AACA,4BAA4B;AAC5B,MAAM,KAAK,IAAI;AACf,6BAA6B;AAC7B,MAAM,KAAK,IAAI;AACf,4BAA4B;AAC5B,MAAM,KAAK,IAAI;AACf,wCAAwC;AACxC,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,MAAM,IAAI,OAAO,IAAI,OAAO,IAAI,MAAM,IAAI,mBAAmB,IAAI;AACvE,uBAAuB;AACvB,MAAM,MAAM,IAAI,UAAU,IAAI;AAC9B,uBAAuB;AACvB,MAAM,MAAM,IAAI,SAAS,IAAI;AAC7B,uBAAuB;AACvB,MAAM,MAAM,IAAI,SAAS,IAAI,sBAAsB,IAAI,SAAS,IAAI;AACpE,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,YAAY,IAAI;AAC5C,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,OAAO,IAAI;AACvC,uBAAuB;AACvB,MAAM,MAAM,IAAI,WAAW,IAAI;AAC/B,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,mBAAmB,IAAI,SAAS,IAAI,gBAAgB,IAAI;AAC9D,uBAAuB;AACvB,MAAM,kBAAkB,IAAI,YAAY,IAAI;AAC5C,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf,uBAAuB;AACvB,MAAM,KAAK,IAAI;AACf;AACA;;AAEA,MAAM,cAAS,gBAAgB,eAAU;AACzC,0CAA0C,8BAA8B;AACxE,6CAA6C;AAC7C,CAAC;AACD,wDAAwD;AACxD,2CAA2C,KAAK;AAChD;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,kCAAkC,UAAU,QAAQ,6BAA6B,kCAAkC,UAAU,QAAQ,gCAAgC;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,UAAU;AACpD,eAAe,OAAO,UAAU,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,KAAK;AACL,kBAAkB,eAAU;AAC5B,CAAC;AACD;AACA;AACA,IAAI,cAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA,qCAAqC,QAAQ,YAAY,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,eAAe,eAAU;AACzB,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC,yCAAyC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,yCAAyC;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,2BAA2B,mDAAmD;AAC9E;AACA;AACA;AACA;AACA,wFAAwF,YAAY;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,yBAAyB,0BAA0B,4CAA4C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oCAAoC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,GAAG,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,iBAAiB;AACjB,2CAA2C,QAAQ;AACnD;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa,yFAAyF,IAAI;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY,iCAAiC,eAAe;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA,8DAA8D,KAAK;AACnE;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;AACA;AACA;AACA;AACA;AACA,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA,gBAAgB,SAAS,GAAG,gBAAgB;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,QAAQ,UAAU;AACjC;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,KAAK,UAAU,wCAAwC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,kCAAkC,SAAS;AAC3C,6BAA6B,eAAU;AACvC;AACA,oBAAoB,eAAU;AAC9B,kGAAkG,UAAU;AAC5G;AACA;AACA;AACA,yCAAyC,SAAS;AAClD,+BAA+B,eAAU;AACzC;AACA;AACA;AACA;AACA,mBAAmB,eAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,0IAA0I,UAAU;AACpJ;AACA,gBAAgB,eAAU;AAC1B,YAAY,IAAI,QAAQ,eAAU;AAClC;AACA,CAAC;AACD;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU,QAAQ,gDAAgD,YAAY,eAAe,SAAS,MAAM;AAClI,sBAAsB,UAAU,QAAQ,gDAAgD,YAAY,eAAe,SAAS,MAAM;AAClI,uBAAuB,UAAU,QAAQ,gDAAgD,aAAa,qBAAqB;AAC3H;;AAEwyB;;;ACvmFlmB;AAC7I;AACgF;AAChG;;AAEzC;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yGAAyD;AAC1F;AACA;AACA;AACA,mCAAmC,2GAA2D;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0GAA0D;AAC5F;AACA;AACA;AACA,oCAAoC,4GAA4D;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ,mDAAmD;AAC5E,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,uFAAuF;AACvF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2EAA2E;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,gDAAgD,IAAI,+CAA+C;AAC7H,aAAa;AACb;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,yCAAyC,cAAc;AACvD,+BAA+B,gEAAgE,IAAI,oEAAoE;AACvK;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAoD;AACjF;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAqC;AACxD;AACA,+BAA+B,+CAA+C;AAC9E;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C,mCAAmC,KAAK;AACxC;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD,mCAAmC,UAAU;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAW;AACrC;AACA;AACA,iCAAiC,gBAAW,kCAAkC,gBAAW;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,SAAS,YAAO,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAa;AAClC;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAA8B;AAC7D;AACA;AACA;AACA,+BAA+B,gFAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS,4CAA4C,UAAU,+CAA+C,oBAAe,yDAAyD,oBAAe;AAClP;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H,SAAI;AACjI;AACA;AACA,wCAAwC,SAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,SAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAI;AACjD;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAI;AACvE;AACA;AACA,0GAA0G,SAAI;AAC9G;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,gBAAW,+GAA+G,SAAI;AACnQ;AACA;AACA;AACA;AACA,sCAAsC,SAAI;AAC1C;AACA;AACA,wFAAwF,SAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6CAA6C;AAC3F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mDAAmD,SAAI,EAAE,SAAI;AAC7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,mEAAmE;AACzE,MAAM,wDAAwD;AAC9D,MAAM,wDAAwD;AAC9D,MAAM;AACN;;AAEA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA,0BAA0B,sDAAsD;AAChF;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA;AACA,mEAAmE,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,cAAc,eAAU;AACxB,gCAAgC,QAAQ,YAAY,QAAQ;AAC5D;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa,uBAAuB,aAAa;AACvF;AACA;AACA;AACA,WAAW,oBAAe;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,eAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAU,uCAAuC,+CAA+C;AACrH;AACA,8CAA8C,iBAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAe;AACtE;AACA;AACA;AACA,qDAAqD,oBAAe;AACpE;AACA;AACA,uBAAuB,aAAa;AACpC,eAAe,aAAa;AAC5B,kCAAkC,aAAa;AAC/C,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA,wBAAwB,oBAAe,6BAA6B,oBAAe;AACnF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA,eAAe,oBAAe;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oBAAe;AACxE;AACA;AACA;AACA,uDAAuD,oBAAe;AACtE;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C,6BAA6B,8CAA8C;AAC3E;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC,6BAA6B,6DAA6D;AAC1F;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC,4BAA4B,aAAa,mCAAmC,uBAAuB;AACnG;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,kDAAkD,UAAU,KAAK,oBAAe;AAChF,4BAA4B,WAAW,oBAAe,sCAAsC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA,mBAAmB,eAAU;AAC7B;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA,oBAAoB,oBAAe,SAAS,oBAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,IAAI,WAAW,UAAU,SAAS,oBAAe;AACvF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C,eAAU;AACzD,KAAK;AACL;AACA;AACA;AACA,0BAA0B,eAAU;AACpC,8CAA8C,eAAU;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA,kBAAkB,WAAW,sCAAsC,aAAa,WAAW,aAAa;AACxG,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA,oBAAoB,qBAAgB;AACpC;AACA;AACA;AACA,wBAAwB,qBAAgB;AACxC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,+BAA+B,+CAA+C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,iBAAiB,WAAW,wCAAwC,SAAI,eAAe;AACvF,mBAAmB,oBAAe;AAClC,KAAK;AACL,qCAAqC,0CAA0C;AAC/E;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gDAAgD,qBAAgB;AAChE,4CAA4C,qBAAgB;AAC5D,iBAAiB,WAAW,+EAA+E;AAC3G,mBAAmB,oBAAe;AAClC,KAAK;AACL;AACA;AACA,qCAAqC,mDAAmD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAuD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAiC,IAAI,2DAA2D;AAC3H;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA,2BAA2B,qCAAqC,IAAI,yDAAyD;AAC7H;AACA,4BAA4B,oBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mFAAmF;AAC9G;AACA,2BAA2B,iFAAiF;AAC5G;AACA,4BAA4B,4DAA4D;AACxF;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ,iEAAiE,UAAU;AAC7F;AACA;AACA;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,oEAAoE;AACxF;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,qEAAqE,0CAA0C;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA,uBAAuB,kEAAkE;AACzF;AACA;AACA,KAAK,KAAK,0CAA0C;AACpD;AACA;AACA;AACA,qBAAqB,EAAE;AACvB,iBAAiB;AACjB,kBAAkB,eAAU;AAC5B;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA,yBAAyB,aAAa,UAAU,qDAAqD;AACrG,yBAAyB,cAAc;AACvC;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA,4BAA4B,YAAY;AACxC,qBAAqB,WAAW,kBAAkB,SAAI,aAAa;AACnE,uBAAuB,oBAAe;AACtC,SAAS;AACT,yCAAyC,0CAA0C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mBAAmB,oBAAe;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,sBAAsB,aAAa,UAAU;AAC7C;AACA;AACA,WAAW;AACX;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA,2BAA2B,2DAA2D;AACtF;AACA,KAAK;AACL;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA,uBAAuB,qCAAqC,eAAU,GAAG;AACzE,KAAK,KAAK,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B,qBAAqB,YAAY,0BAA0B,aAAa;AACxE;AACA;AACA,uBAAuB,kFAAkF;AACzG,KAAK,KAAK,4BAA4B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,4BAA4B,iBAAiB;AAC7C,0DAA0D,0CAA0C;AACpG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iFAAiF;AACvF,MAAM,6DAA6D;AACnE,MAAM,uDAAuD;AAC7D,MAAM,2DAA2D;AACjE,MAAM,6DAA6D;AACnE,MAAM,yDAAyD;AAC/D,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,qCAAqC;AAC3C,MAAM,6CAA6C;AACnD,MAAM,+BAA+B;AACrC,MAAM,oCAAoC;AAC1C,MAAM,oCAAoC;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oFAAoF;AAC1F,MAAM,gHAAgH;AACtH,MAAM,wGAAwG;AAC9G,MAAM,uFAAuF;AAC7F,MAAM,oHAAoH;AAC1H,MAAM,2GAA2G;AACjH,MAAM,8EAA8E;AACpF,MAAM,gEAAgE;AACtE,MAAM,6DAA6D;AACnE,MAAM,oFAAoF;AAC1F,MAAM,8DAA8D;AACpE,MAAM,mEAAmE;AACzE,MAAM,uDAAuD;AAC7D,MAAM,6DAA6D;AACnE,MAAM,uGAAuG;AAC7G,MAAM,6DAA6D;AACnE,MAAM,oGAAoG;AAC1G,MAAM,wDAAwD;AAC9D,MAAM,0EAA0E;AAChF,MAAM,8BAA8B;AACpC,MAAM,sEAAsE;AAC5E,MAAM,uCAAuC;AAC7C,MAAM,sEAAsE;AAC5E,MAAM,+DAA+D;AACrE,MAAM,uDAAuD;AAC7D,MAAM;AACN,mDAAmD,wCAAwC;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6FAA6F;AACnG,MAAM,iGAAiG;AACvG,MAAM,qCAAqC;AAC3C,MAAM,2CAA2C;AACjD,MAAM,yCAAyC;AAC/C,MAAM,+CAA+C;AACrD,MAAM,uCAAuC;AAC7C,MAAM,wCAAwC;AAC9C,MAAM,8CAA8C;AACpD,MAAM,6DAA6D;AACnE,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;AACrC,MAAM,yCAAyC;AAC/C,MAAM,qCAAqC;AAC3C,MAAM,iDAAiD;AACvD,MAAM,kCAAkC;AACxC,MAAM,uCAAuC;AAC7C,MAAM,4DAA4D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAEs8D;;;AC5sD/8D;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sBAAsB,KAAK,SAAG;AACvC;AACA;;AAEA,SAAS,SAAG;AACZ;AACA;AACA,IAAI;AACJ,IAAI;AACJ;AACA,IAAI;AACJ,oBAAoB,kBAAkB,KAAK,SAAG;AAC9C,IAAI;AACJ;AACA;AACA;;;AC3BsK;AACzD;AACrF;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,MAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAW;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAW;AACrD,iCAAiC,gBAAW;AAC5C,wCAAwC,gBAAW;AACnD,+BAA+B,UAAU;AACzC;AACA,6BAA6B,UAAU;AACvC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,mBAAmB,SAAS;AAC5B,QAAQ,eAAU;AAClB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,QAAQ,2CAA2C;AAC7F;AACA,UAAU,cAAc;AACxB;AACA,yFAAyF,MAAM;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,WAAW,KAAG,SAAS,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAA8D;AACtF,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa,kCAAkC,wBAAwB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB,aAAa,sIAAsI,wBAAwB;AAC/L;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,8DAA8D;AACpE,MAAM;AACN;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ,eAAe,UAAU;AACnD;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY,2BAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC,KAAK;AACrC;AACA,+BAA+B,0DAA0D,EAAE,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAG,SAAS,6DAA6D,EAAE,KAAG,WAAW,4BAA4B;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,YAAY,KAAG;AACf;AACA,eAAe,KAAG;AAClB;AACA;AACA;AACA;AACA,sCAAsC,KAAK,EAAE,qCAAqC,QAAQ,IAAI;AAC9F,SAAS;AACT,KAAK,wBAAwB,KAAG,UAAU,8BAA8B;AACxE;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,KAAG,WAAW,gDAAgD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,mEAAmE;AACnE;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,8FAA8F;AAC9F,sBAAsB,aAAa;AACnC,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,KAAG;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,KAAG,UAAU,wBAAwB,aAAa,KAAG;AACxE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,4EAA4E,MAAM;AAClF;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4FAA4F;AAC3H,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,SAAS;AACT;AACA,wBAAwB;AACxB;AACA;AACA,8EAA8E,MAAM,GAAG,4BAA4B;AACnH;AACA;AACA,oEAAoE,MAAM;AAC1E;AACA,MAAM,mBAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,8BAA8B;AAC5D,gCAAgC,gCAAgC;AAChE,6BAA6B,8BAA8B;AAC3D,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL,6BAA6B,iDAAiD;AAC9E,+BAA+B,mDAAmD;AAClF,4BAA4B,iDAAiD;AAC7E,4BAA4B,iDAAiD;AAC7E,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,wBAAwB;AAC7C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG;AACpB;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAQ;AACnB;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD,uCAAuC,UAAU;AACjD;AACA,eAAe,aAAQ;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0CAA0C,gBAAW;AACrD,uCAAuC,UAAU;AACjD,eAAe,cAAc;AAC7B;AACA;AACA,sFAAsF,cAAc,qCAAqC;AACzI;AACA,KAAK;AACL,sBAAsB,WAAW;AACjC,CAAC;AACD,qCAAqC,eAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA,iBAAiB,eAAU;AAC3B,cAAc,kBAAkB;AAChC,qEAAqE,UAAU,QAAQ,UAAU;AACjG;AACA;AACA,KAAK;AACL,iBAAiB,YAAY,gBAAgB,qBAAqB;AAClE,IAAI,mBAAS;AACb;AACA,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqM;;;AC73B5F;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAA2D,IAAI,SAAS,EAAE,mCAAmC;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,uCAAuC,yCAAyC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA,gCAAgC,qEAAqE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kEAAkE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAkB;AAClB,gBAAgB;AAChB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,QAAQ,cAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,YAAY,cAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAS;AAClB,6CAA6C,UAAU;AACvD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,yCAAW,qBAAqB,yCAAW;AAC5F;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA,WAAW;AACX;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,aAAa,aAAa;AACjD;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,WAAW,SAAS,aAAa,OAAO;AAC9D,0BAA0B,SAAS;AACnC,+GAA+G;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,uBAAuB,UAAK;AAC5B;AACA,kBAAkB,mBAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA,4DAA4D,OAAO;AACnE;AACA,8EAA8E,QAAQ;AACtF;AACA;AACA,mFAAmF,+BAA+B;AAClH;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,6DAA6D;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,mCAAmC,sDAAsD,GAAG,MAAM,sBAAsB,IAAI,MAAM,EAAE,qCAAqC;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAA0D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,2BAA2B;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa,mCAAmC,sBAAsB;AAC1H;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO,4BAA4B,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS;AACnC,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,QAAQ,oBAAoB;AACrF;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,2DAA2D,6CAA6C;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE4F;;;AC11DvD;AACc;;AAEnD,yBAAyB,SAAS;AAClC,UAAU,IAAI;AACd,UAAU,IAAI;AACd,gBAAgB,IAAI;AACpB,gBAAgB,IAAI;AACpB,QAAQ,IAAI;AACZ,SAAS,IAAI;AACb,SAAS,IAAI;AACb,MAAM,GAAG,IAAI;AACb,CAAC;;AAED;AACA,eAAe,QAAQ;AACvB;AACA,iFAAiF;AACjF;AACA,8BAA8B;AAC9B,2DAA2D;AAC3D;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yCAAyC,GAAG,wBAAwB,yEAAyE,GAAG,KAAK,GAAG,aAAa,wJAAwJ,gBAAgB,4EAA4E,IAAI,2IAA2I;AACxiB;AACA,aAAa,iBAAiB;AAC9B;AACA,CAAC;;AAEiB;;;ACpCmB;AACyF;;AAE9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA,yBAAyB,MAAM;AAC/B;AACA,yBAAyB,cAAc;AACvC,qCAAqC,eAAe,GAAG,eAAe,GAAG;AACzE,oCAAoC,eAAe,GAAG,kBAAkB;AACxE,aAAa;AACb,yBAAyB,YAAY;AACrC,gCAAgC,UAAU;AAC1C,aAAa;AACb;AACA,KAAK;AACL;AACA,yBAAyB,kBAAkB,SAAS;AACpD,+BAA+B;AAC/B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;;AAE+C;;;AC/D8D;AACqG;AAC1L;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,8BAA8B,kBAAa;AAC3C;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;;AAE5D,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,KAAG,YAAY,kDAAkD;AACjF,cAAc,KAAG;AACjB;AACA;AACA,uCAAuC;AACvC;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK,EAAE,KAAG,8DAA8D,KAAG,aAAa,oCAAoC,4BAA4B,KAAG;AAC3J;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAe;AACvC;AACA,8CAA8C,eAAU,kCAAkC,aAAa;AACvG;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,kCAAkC,gBAAW;AAC7C,iCAAiC,UAAU;AAC3C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,SAAS;AAC3B,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,yBAAyB,gBAAW,+BAA+B,uBAAW;AAC9E,wBAAwB,SAAS;AACjC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAW,gBAAgB,eAAU;AAC3C;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,QAAQ,4BAA4B;AAC7E,mCAAmC,UAAU,QAAQ,mDAAmD;AACxG;AACA;AACA,kEAAkE,iBAAY;AAC9E,wEAAwE,iBAAY;AACpF;AACA;AACA;AACA,oDAAoD,iBAAY;AAChE,gDAAgD,iBAAY;AAC5D;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,CAAC;AACD;AACA,CAAC;AACD,kCAAkC,eAAU;AAC5C,4BAA4B,8BAA8B;AAC1D,4CAA4C;AAC5C,CAAC;AACD;AACA,sBAAsB,iBAAiB;AACvC,UAAU,YAAY;AACtB,iBAAiB,oBAAe,kEAAkE,oBAAe;AACjH;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA,wGAAwG;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,UAAU,SAAS;AACnB;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAe;AAC3D,iBAAiB,eAAU;AAC3B,KAAK;AACL;AACA;;AAEA,uCAAuC,KAAK;AAC5C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAU;AAC9C,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA,MAAM,cAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAY;AAC3E,0DAA0D,iBAAY;AACtE,yDAAyD,iBAAY;AACrE,6DAA6D,iBAAY;AACzE;AACA;AACA,0BAA0B,cAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,qBAAgB;AACrC;AACA;AACA,4BAA4B,qBAAgB;AAC5C;AACA;AACA;AACA,8DAA8D,iBAAY;AAC1E,gEAAgE,iBAAY;AAC5E,mFAAmF,iBAAY;AAC/F,uFAAuF,iBAAY;AACnG;AACA,0BAA0B,cAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C,MAAM,gBAAW,gBAAgB,gBAAW;AAC5C,iCAAiC,UAAU;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C;AACA;AACA;AACA,KAAK;AACL,kBAAkB,SAAS;AAC3B,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,QAAQ,yBAAyB,oCAAoC,UAAU,QAAQ,iDAAiD;AACjL,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA,mBAAmB,UAAU;AAC7B,cAAc,OAAO;AACrB,0BAA0B,eAAe;AACzC,wEAAwE,OAAO;AAC/E,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D,UAAU,KAAK;AACf;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,yDAAyD,OAAO;AAChE,UAAU,QAAQ,UAAU,OAAO;AACnC;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;AACA,mBAAmB,oBAAe,wBAAwB,oBAAe;AACzE;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA,mBAAmB,oBAAe;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wDAAwD,OAAO;AAC/D,UAAU,QAAQ,UAAU,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,qBAAqB,eAAU;AAC/B;AACA;AACA;AACA,oBAAoB,oBAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA,cAAc,WAAW;AACzB,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAU;AAC3B;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gBAAgB,gBAAW;AAC3B,wFAAwF,gBAAW;AACnG,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,oBAAoB,SAAS,gBAAW,YAAY;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAkE;AACxE,MAAM,mGAAmG;AACzG,MAAM,sGAAsG;AAC5G,MAAM,oEAAoE;AAC1E,MAAM,iDAAiD;AACvD,MAAM,iCAAiC;AACvC,MAAM,+DAA+D;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B,KAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,KAAG;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,KAAG;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,KAAG;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,KAAG,aAAa,mDAAmD;AACtF;AACA,mBAAmB,KAAG,UAAU,uDAAuD;AACvF;AACA;AACA;AACA;AACA,YAAY,KAAG;AACf,YAAY,KAAG;AACf,YAAY,KAAG;AACf;AACA,gBAAgB,KAAG;AACnB;AACA;AACA;AACA;AACA,YAAY,KAAG;AACf;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB;AACA,gCAAgC;AAChC;AACA,uBAAuB;AACvB,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,eAAU,gBAAgB,mCAAmC,IAAI,MAAM,EAAE,8BAA8B,EAAE,YAAY;AAChI;AACA,MAAM,qBAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,8BAA8B;AAC9D,+BAA+B,8BAA8B;AAC7D,yCAAyC,8BAA8B;AACvE,wCAAwC;AACxC,CAAC;AACD;AACA;AACA,iBAAiB,IAAI;AACrB,IAAI,qBAAS;AACb;;AAEgT;;;ACluChF;AACpF;AAC9E;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAU;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,EAAE,iCAAiC;AACrE;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,WAAW;AACpE;AACA;AACA;AACA,6CAA6C,4DAA4D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA,yBAAyB,oBAAoB,KAAK,OAAO,GAAG,kBAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB,yCAAyC;AACzC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,uBAAuB,gGAAgG;AACvH,mBAAmB,oBAAe;AAClC;AACA,KAAK,MAAM,mDAAmD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAW;AACtD,2CAA2C,gBAAW;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C,uBAAuB,gBAAW,qBAAqB,kBAAa;AACpE;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA,wBAAwB,gBAAW,uBAAuB,kBAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF,2BAA2B,gBAAW;AACtC;AACA;AACA,qBAAqB,kBAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,wBAAwB;AAC/G,uBAAuB,gBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAa,CAAC,gBAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC,KAAK;AAC3C;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK,IAAI,gBAAgB,IAAI,aAAa,kBAAkB;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE,SAAS;AACT;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,KAAK;AACvE;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC,cAAc;AAC/C,kBAAkB,oBAAoB,gBAAgB,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mBAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4FAA4F,mBAAmB,uCAAuC;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAI;AACvC;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,kBAAkB,sEAAsE,YAAO;AAC/F;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sBAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAW;AAChD,4BAA4B;AAC5B,CAAC;AACD,uCAAuC,gBAAW;AAClD,qCAAqC,UAAU;AAC/C,eAAe,iCAAiC;AAChD,wBAAwB,0BAA0B;AAClD;AACA,QAAQ,WAAW;AACnB,QAAQ,eAAU;AAClB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sEAAsE,qDAAqD;AAC/K;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,yCAAyC;AAC1E,YAAY,YAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD;AACA,0DAA0D,yCAAyC;AACnG;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sDAAsD,0CAA0C;AAChG;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sCAAsC,IAAI,sBAAsB,eAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,MAAM,2BAAS,gBAAgB,eAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA,KAAK;AACL,mDAAmD,eAAe;AAClE,oDAAoD,cAAc;AAClE,0DAA0D,UAAU,qBAAqB,KAAK;AAC9F,2DAA2D,SAAS,qBAAqB,KAAK;AAC9F,iCAAiC,8BAA8B;AAC/D,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB,wBAAwB;AAC7C,KAAK;AACL;AACA,qBAAqB;AACrB,KAAK;AACL;AACA,qBAAqB;AACrB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB,eAAe,KAAK,OAAO;AACzE;AACA,iDAAiD;AACjD,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,UAAU,uCAAuC,UAAU;AACpG;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,OAAO;AACP,8BAA8B,UAAU,QAAQ,0BAA0B;AAC1E;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAW;AAC1C,0BAA0B;AAC1B,CAAC;AACD,iCAAiC,gBAAW;AAC5C,kCAAkC,UAAU;AAC5C,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,eAAU,6CAA6C,UAAU;AACnF,CAAC;AACD;AACA,WAAW,oBAAe,sDAAsD,oBAAe;AAC/F;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO,KAAK,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG;;AAEtE,SAAS,oCAAoC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,EAAE,QAAQ,cAAc;AACpD;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B,cAAc,OAAO;AACrB;AACA,uBAAuB,iEAAiE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,2BAAS;AAC1H;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4DAA4D;AAClE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC,oBAAoB;AACpB,CAAC;AACD,sCAAsC,IAAI,sBAAsB,MAAM;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB,0BAA0B;AACpF;AACA,2CAA2C,eAAU;AACrD;AACA;AACA,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,gCAAgC,WAAW,IAAI,OAAO,GAAG,QAAQ;AACjE;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAmB;AACnD;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE,cAAc,QAAQ;AACtB;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA,MAAM,0BAAQ;AACd,2BAA2B;AAC3B,gBAAgB,EAAE;AAClB;AACA;AACA,wCAAwC,gBAAW;AACnD;AACA,+CAA+C,YAAO;AACtD;AACA;AACA,CAAC;AACD,qDAAqD,UAAU;AAC/D;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C,eAAe,OAAO,aAAQ,SAAS;AACvC;AACA;AACA;AACA;AACA,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA,uCAAuC,4DAA4D;AACnG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAY;AACxB;AACA,8BAA8B;AAC9B;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA,4DAA4D,0BAAQ;AACpE;AACA;AACA,MAAM,iBAAY,gBAAgB,eAAU;AAC5C;AACA;AACA;AACA,mDAAmD,kBAAa,CAAC,gBAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA,kCAAkC,0BAAQ;AAC1C;AACA;AACA;AACA;AACA,kFAAkF,gBAAW;AAC7F,6BAA6B,WAAW,gEAAgE;AACxG,+BAA+B,oBAAe;AAC9C;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA,yCAAyC,oDAAoD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAAQ;AAC1C;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA,gEAAgE,0BAAQ;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yBAAyB,kBAAa,CAAC,gBAAW;AAClD;AACA;AACA;AACA,WAAW,kBAAa,CAAC,gBAAW;AACpC;AACA;AACA;AACA;AACA,qBAAqB,YAAY,gCAAgC,IAAI,+BAA+B;AACpG;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA,qBAAqB,WAAW,wCAAwC;AACxE;AACA,uBAAuB,oBAAe;AACtC,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,WAAW,gEAAgE;AAChG,uBAAuB,oBAAe;AACtC,wBAAwB;AACxB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kDAAkD,0BAAQ;AAC1D;AACA;AACA,qBAAqB,YAAY,iCAAiC,IAAI,+BAA+B;AACrG;AACA,uBAAuB,oBAAe;AACtC;AACA;AACA;AACA,yBAAyB,WAAW,kCAAkC;AACtE;AACA,2BAA2B,oBAAe;AAC1C;AACA;AACA;AACA;AACA,yBAAyB,WAAW,sDAAsD;AAC1F,2BAA2B,oBAAe;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,kDAAkD;AAClF;AACA,uBAAuB,oBAAe;AACtC;AACA,qDAAqD,iBAAY;AACjE;AACA,yBAAyB,WAAW,kCAAkC;AACtE;AACA,2BAA2B,oBAAe;AAC1C;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,eAAU;AACzB;AACA;AACA;AACA,eAAe,eAAU;AACzB;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAY;AAC7D;AACA;AACA;AACA,iGAAiG,iBAAY;AAC7G;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAyC;AAC/C,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM,mEAAmE;AACzE,MAAM,kEAAkE;AACxE,MAAM,0EAA0E;AAChF,MAAM,yEAAyE;AAC/E,MAAM;AACN;AACA,yCAAyC,IAAI,sBAAsB,MAAM;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE6hB;;;AC9hExe;AACqB;AACJ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,KAAK;AAClD;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,WAAW,eAAU;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,gEAAgE,kBAAkB,MAAM,UAAU,kBAAkB,UAAU,KAAK,YAAY;AAC/I;AACA,cAAc,UAAU,EAAE,0BAA0B,YAAY,sBAAsB;AACtF;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,UAAU;AACxD;AACA;AACA,gDAAgD,YAAY;AAC5D,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA,SAAS;AACT;AACA;;AAE8B;;;ACtZ9B,qHAAqH,oBAAC,oCAAoC,gBAAgB,oBAAoB,wBAAwB,oBAAoB,SAAS,oBAAoB,2BAA2B,8BAA8B,UAAU,SAAS,MAAM,iCAAiC,sCAAsC,QAAQ,WAAW,gCAAgC,6CAA6C,SAAS,gBAAgB,qBAAqB,iCAAiC,sCAAsC,4BAA4B,uDAAuD,sBAAsB,SAAS,cAAc,YAAY,mBAAmB,KAAK,yCAAyC,yCAAyC,YAAY,qIAAqI,gEAAgE,GAAG,SAAS,kBAAkB,qBAAqB,oBAAoB,mCAAmC,4BAA4B,eAAe,6BAA6B,+BAA+B,oEAAoE,sCAAsC,aAAa,gCAAgC,oCAAoC,kDAAkD,WAAW,SAAS,oBAAC,gBAAgB,IAAI,wBAAwB,SAAS,iBAAiB,yCAAyC,cAAc,kBAAkB,uBAAuB,kCAAkC,mBAAmB,cAAc,oBAAC,qBAAqB,cAAc,oBAAC,sBAAsB,UAAU,IAAyhG,+DAA+D,UAAU,cAAc,UAAU,MAAM,6NAA6N,qBAAE,wEAAwE,qBAAE,kGAAkG,eAAe,2BAA2B,eAAe,WAAW,eAAe,YAAY,WAAW,WAAW,UAAU,qBAAE,IAAI,cAAc,MAAM,MAAM,qBAAE,SAAS,qBAAE,UAAU,eAAe,+BAA+B,qBAAE,SAAS,eAAe,kBAAkB,iBAAiB,2EAA2E,iBAAiB,aAAa,eAAe,oBAAoB,iBAAiB,OAAO,4CAA4C,eAAe,0EAA0E,oGAAoG,SAAS,eAAe,mBAAmB,sDAAsD,SAAS,gEAAgE,iBAAiB,+BAA+B,iBAAiB,+EAA+E,8DAA8D,WAAW,iBAAiB,+GAA+G,KAAK,qBAAqB,eAAe,uFAAuF,iBAAiB,iBAAiB,kBAAkB,0CAA0C,IAAI,KAAK,iBAAiB,2DAA2D,eAAe,uCAAuC,mDAAmD,sGAAsG,eAAe,YAAY,qBAAqB,eAAe,gBAAgB,aAAa,eAAe,YAAY,WAAW,eAAe,eAAe,kBAAkB,WAAW,eAAe,mBAAmB,SAAS,EAAE,qBAAqB,WAAW,YAAY,KAAK,IAAI,cAAc,QAAQ,MAAM,SAAS,IAAI,uEAAuE,sBAAsB,eAAe,kDAAkD,YAAY,2BAA2B,gCAAgC,oDAAoD,sBAAsB,iFAAiF,gEAAgE,GAAG,eAAe,oEAAoE,qBAAqB,eAAe,sCAAsC,KAAK,0BAA0B,kCAAkC,oCAAoC,eAAe,SAAS,YAAY,MAAM,mBAAmB,wBAAwB,gHAAgH,YAAY,uBAAuB,0BAA0B,+BAA+B,4CAA4C,mBAAmB,eAAe,mBAAmB,oBAAoB,oCAAoC,6BAA6B,mDAAmD,SAAS,UAAU,MAAM,mBAAmB,wDAAwD,mJAAmJ,SAAS,cAAc,0BAA0B,+BAA+B,MAAM,MAAM,kBAAkB,qDAAqD,8HAA8H,4CAA4C,uCAAuC,0BAA0B,kCAAkC,uCAAuC,MAAM,SAAS,YAAY,MAAM,qCAAqC,eAAe,4BAA4B,GAAG,6CAA6C,SAAS,kBAAkB,YAAY,8DAA8D,IAAI,EAAE,eAAe,+DAA+D,YAAY,eAAe,qDAAqD,cAAc,gEAAgE,kCAAkC,eAAe,kBAAkB,eAAe,kBAAkB,iBAAiB,aAAa,iBAAiB,YAAY,iDAAiD,eAAe,uEAAuE,IAAI,SAAS,SAAS,+CAA+C,eAAe,KAAK,eAAe,KAAK,6BAA6B,eAAe,KAAK,YAAY,eAAe,KAAK,YAAY,yBAAyB,4BAA4B,cAAc,WAAW,eAAe,UAAU,iBAAiB,SAAS,wBAAwB,aAAa,kDAAkD,SAAS,mBAAmB,QAAQ,IAAI,KAAK,UAAU,4JAA4J,6CAA6C,QAAQ,IAAI,4CAA4C,6BAA6B,SAAS,qBAAqB,OAAO,iCAAiC,gDAAgD,YAAY,qCAAqC,YAAY,SAAS,EAAE,cAAc,oBAAoB,SAAS,QAAQ,WAAW,cAAc,MAAM,iBAAiB,+EAA+E,wBAAwB,WAAW,KAAK,WAAW,6DAA6D,eAAe,kDAAkD,iGAAiG,IAAI,0BAA0B,cAAc,MAAM,yDAAyD,YAAY,kBAAkB,iBAAiB,gBAAgB,WAAW,KAAK,QAAQ,sEAAsE,mDAAmD,uDAAuD,YAAY,gBAAgB,wBAAwB,QAAQ,0CAA0C,iBAAiB,kBAAkB,aAAa,mBAAmB,WAAW,iBAAiB,8CAA8C,2FAA2F,iBAAiB,aAAa,wBAAwB,WAAW,eAAe,eAAe,UAAU,YAAY,SAAS,cAAc,KAAK,IAAI,iBAAiB,cAAc,KAAK,SAAS,EAAE,aAAa,mBAAmB,gBAAgB,YAAY,+CAA+C,OAAO,GAAG,SAAS,mBAAmB,QAAQ,OAAO,cAAc,WAAW,KAAK,IAAI,YAAY,qEAAqE,GAAG,SAAS,qBAAqB,eAAe,KAAK,eAAe,eAAe,UAAU,KAAK,SAAS,MAAM,IAAI,YAAY,IAAI,KAAK,WAAW,6BAA6B,QAAQ,OAAO,eAAe,eAAe,qBAAqB,IAAI,KAAK,WAAW,oBAAoB,wGAAwG,SAAS,qBAAqB,cAAc,qBAAqB,SAAS,gCAAgC,eAAe,+CAA+C,YAAY,gBAAgB,EAAE,qBAAqB,SAAS,kBAAkB,SAAS,WAAW,eAAe,mBAAmB,OAAO,SAAS,EAAE,4CAA4C,eAAe,iBAAiB,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,SAAS,mBAAmB,QAAQ,MAAM,cAAc,aAAa,IAAI,UAAU,+BAA+B,SAAS,EAAE,iBAAiB,aAAa,aAAa,IAAI,WAAW,WAAW,IAAI,SAAS,eAAe,cAAc,IAAI,KAAK,SAAS,sBAAsB,yBAAyB,+DAA+D,QAAQ,WAAW,cAAc,gCAAgC,cAAc,yBAAyB,6BAA6B,0BAA0B,eAAe,gBAAgB,uCAAuC,uCAAuC,mBAAmB,6BAA6B,KAAK,sCAAsC,gEAAgE,GAAG,cAAc,uGAAuG,6BAA6B,eAAe,kBAAkB,wBAAwB,IAAI,uCAAuC,QAAQ,KAAK,SAAS,cAAc,kEAAkE,eAAe,eAAe,SAAS,IAAI,iBAAiB,QAAQ,MAAM,aAAa,iBAAiB,aAAa,eAAe,uEAAuE,0CAA0C,WAAW,uCAAuC,eAAe,qEAAqE,wEAAwE,2DAA2D,WAAW,UAAU,YAAY,wGAAwG,MAAM,qBAAE,IAAI,gBAAgB,eAAe,SAAS,UAAU,cAAc,eAAe,iCAAiC,sDAAsD,6CAA6C,kEAAkE,kBAAkB,2DAA2D,GAAG,mBAAmB,oFAAoF,2JAA2J,MAAM,SAAS,IAAI,wBAAwB,SAAS,cAAc,QAAQ,OAAO,qBAAqB,iIAAiI,aAAa,uDAAuD,0BAA0B,WAAW,0DAA0D,SAAS,eAAe,oBAAoB,+BAA+B,eAAe,iEAAiE,WAAW,4CAA4C,2BAA2B,EAAE,eAAe,kBAAkB,iBAAiB,YAAY,oBAAoB,iCAAiC,0CAA0C,GAAG,cAAc,SAAS,SAAS,eAAe,qBAAqB,eAAe,uCAAuC,aAAa,GAAG,eAAe,kBAAkB,eAAe,qIAAqI,iCAAiC,eAAe,8EAA8E,eAAe,8EAA8E,eAAe,iBAAiB,aAAa,cAAc,gBAAgB,IAAI,aAAa,QAAQ,cAAc,eAAe,wEAAwE,wBAAwB,SAAS,EAAE,aAAa,aAAa,eAAe,sEAAsE,0CAA0C,sCAAsC,SAAS,EAAE,uBAAuB,eAAe,KAAK,6BAA6B,oBAAoB,oCAAoC,MAAM,eAAe,0GAA0G,eAAe,iCAAiC,sGAAsG,iBAAiB,SAAS,sBAAsB,aAAa,GAAG,iBAAiB,eAAe,QAAQ,mBAAmB,wBAAwB,SAAS,mBAAmB,cAAc,uFAAuF,kBAAkB,SAAS,EAAE,aAAa,4CAA4C,eAAe,SAAS,iBAAiB,WAAW,kDAAkD,kBAAkB,SAAS,EAAE,aAAa,wCAAwC,6EAA6E,eAAe,oEAAoE,YAAY,eAAe,KAAK,eAAe,mBAAmB,eAAe,IAAI,0CAA0C,wEAAwE,8BAA8B,EAAE,eAAe,SAAS,aAAa,oBAAoB,UAAU,aAAa,cAAc,SAAS,IAAI,YAAY,WAAW,KAAK,WAAW,sCAAsC,QAAQ,aAAa,cAAc,aAAa,cAAc,kCAAkC,eAAe,QAAQ,iFAAiF,UAAU,KAAK,SAAS,EAAE,UAAU,qBAAqB,MAAM,YAAY,cAAc,gRAAgR,QAAQ,6VAA6V,kCAAkC,eAAe,sBAAsB,UAAU,eAAe,cAAc,kBAAkB,IAAI,WAAW,QAAQ,aAAa,mBAAmB,+DAA+D,kCAAkC,eAAe,gBAAgB,UAAU,6DAA6D,6BAA6B,uDAAuD,MAAM,4CAA4C,GAAG,GAAG,WAAW,GAAG,0BAA0B,mBAAmB,gEAAgE,cAAc,0FAA0F,4EAA4E,0BAA0B,+BAA+B,uBAAuB,OAAO,oBAAoB,eAAe,sDAAsD,6BAA6B,GAAG,eAAe,uIAAuI,MAAM,mBAAmB,8DAA8D,mBAAmB,iBAAiB,YAAY,2BAA2B,sBAAsB,6BAA6B,EAAE,cAAc,kBAAkB,IAAI,eAAe,SAAS,EAAE,iDAAiD,IAAI,gBAAgB,qCAAqC,cAAc,oBAAoB,iBAAiB,SAAS,gBAAgB,yCAAyC,IAAI,MAAM,kBAAkB,qBAAqB,QAAQ,IAAI,oBAAoB,SAAS,QAAQ,gDAAgD,eAAe,yCAAyC,+BAA+B,iBAAiB,SAAS,sDAAsD,iBAAiB,iDAAiD,WAAW,6CAA6C,sDAAsD,gCAAgC,UAAU,iBAAiB,iKAAiK,WAAW,OAAO,gBAAgB,6CAA6C,MAAM,sBAAsB,aAAa,sBAAsB,gCAAgC,UAAU,cAAc,yEAAyE,iBAAiB,cAAc,4EAA4E,+BAA+B,iBAAiB,sBAAsB,iBAAiB,6CAA6C,mFAAmF,iBAAiB,qBAAqB,IAAI,4BAA4B,+BAA+B,GAAG,YAAY,gBAAgB,iDAAiD,yCAAyC,mKAAmK,GAAG,oBAAoB,YAAY,WAAW,KAAK,WAAW,cAAc,SAAS,YAAY,yBAAyB,UAAU,EAAE,gBAAgB,4CAA4C,UAAU,gCAAgC,EAAE,qBAAE,gBAAgB,2BAA2B,kBAAkB,kBAAkB,gEAAgE,wBAAwB,mBAAmB,gBAAgB,qBAAqB,IAAI,OAAO,oCAAoC,gBAAgB,SAAS,UAAU,8BAA8B,SAAS,QAAQ,gBAAgB,4BAA4B,gBAAgB,qEAAqE,MAAM,+EAA+E,GAAG,qBAAqB,MAAM,eAAe,mBAAmB,iBAAiB,8CAA8C,qEAAqE,WAAW,2DAA2D,OAAO,iDAAiD,OAAO,MAAM,SAAS,0BAA0B,gEAAgE,mBAAmB,4BAA4B,SAAS,wCAAwC,GAAG,iBAAiB,SAAS,uBAAuB,yEAAyE,0BAA0B,gCAAgC,2BAA2B,UAAU,0BAA0B,qBAAE,IAAI,GAAG,SAAS,uBAAuB,2CAA2C,wFAAwF,aAAa,IAAI,MAAM,MAAM,4GAA4G,QAAQ,IAAI,6CAA6C,MAAM,8GAA8G,UAAU,yBAAyB,sBAAsB,aAAa,SAAS,2BAA2B,QAAQ,WAAW,kBAAkB,QAAQ,WAAW,oBAAoB,+DAA+D,6FAA6F,SAAS,cAAc,kBAAkB,2DAA2D,qBAAqB,IAAI,uBAAuB,KAAK,gGAAgG,yBAAyB,wBAAwB,qBAAE,IAAI,SAAS,8BAA8B,eAAe,QAAQ,wBAAwB,MAAM,QAAQ,IAAI,MAAM,MAAM,2CAA2C,QAAQ,IAAI,MAAM,MAAM,wCAAwC,mBAAmB,4BAA4B,IAAI,oBAAoB,kCAAkC,MAAM,mBAAmB,mEAAmE,WAAW,YAAY,IAAI,KAAK,WAAW,mDAAmD,GAAG,WAAW,YAAY,0BAA0B,MAAM,uCAAuC,GAAG,2CAA2C,+EAA+E,OAAO,WAAW,GAAG,qBAAqB,mCAAmC,iCAAiC,qDAAqD,yCAAyC,IAAI,kJAAkJ,UAAU,mBAAmB,gFAAgF,MAAM,EAAE,YAAY,iBAAiB,mBAAmB,mFAAmF,uBAAuB,eAAe,SAAS,MAAM,2FAA2F,WAAW,kCAAkC,YAAY,qDAAqD,MAAM,iBAAiB,iBAAiB,KAAK,GAAG,uBAAuB,0DAA0D,wFAAwF,mBAAmB,YAAY,SAAS,yDAAyD,MAAM,mBAAmB,SAAS,yCAAyC,GAAG,yBAAyB,cAAc,SAAS,UAAU,oCAAoC,QAAQ,4CAA4C,GAAG,eAAe,aAAa,+CAA+C,gDAAgD,eAAe,QAAQ,IAAI,2CAA2C,yCAAyC,SAAS,eAAe,oCAAoC,wCAAwC,IAAI,oDAAoD,SAAS,iBAAiB,iBAAiB,kEAAkE,4GAA4G,qBAAqB,kEAAkE,6DAA6D,0HAA0H,qBAAqB,iIAAiI,wBAAwB,mCAAmC,6EAA6E,iFAAiF,eAAe,WAAW,gEAAgE,yBAAyB,wCAAwC,aAAa,QAAQ,uBAAuB,iBAAiB,sBAAsB,gBAAgB,gFAAgF,2CAA2C,oBAAoB,0CAA0C,gDAAgD,YAAY,WAAW,iBAAiB,qBAAqB,MAAM,KAAK,cAAc,kBAAkB,iBAAiB,mCAAmC,kDAAkD,uCAAuC,MAAM,oBAAoB,wBAAwB,sCAAsC,IAAI,eAAe,qFAAqF,0FAA0F,MAAM,8BAA8B,MAAM,0DAA0D,+IAA+I,8CAA8C,qBAAqB,gBAAgB,qBAAqB,iEAAiE,KAAK,uBAAuB,0DAA0D,0BAA0B,yBAAyB,2CAA2C,GAAG,oBAAoB,SAAS,eAAe,eAAe,2BAA2B,cAAc,wBAAwB,gCAAgC,MAAM,EAAE,eAAe,qBAAE,wBAAwB,QAAQ,SAAS,mBAAmB,oCAAoC,kCAAkC,MAAM,6EAA6E,mBAAmB,MAAM,kCAAkC,mBAAmB,KAAK,mCAAmC,uBAAuB,qBAAqB,0DAA0D,iFAAiF,iBAAiB,sEAAsE,kBAAkB,+BAA+B,wCAAwC,wCAAwC,+FAA+F,+DAA+D,UAAU,2FAA2F,GAAG,eAAe,aAAa,gCAAgC,eAAe,qBAAqB,mBAAmB,cAAc,2BAA2B,UAAU,IAAI,mBAAmB,mCAAmC,oDAAoD,MAAM,wBAAwB,YAAY,6DAA6D,QAAQ,oCAAoC,iBAAiB,oEAAoE,mBAAmB,kCAAkC,sDAAsD,KAAK,8FAA8F,WAAW,KAAK,YAAY,UAAU,4BAA4B,kCAAkC,yBAAyB,iBAAiB,eAAe,SAAS,iCAAiC,gBAAgB,QAAQ,GAAG,oBAAoB,gEAAgE,OAAO,gBAAgB,GAAG,IAAI,eAAe,sCAAsC,iBAAiB,yCAAyC,cAAc,+DAA+D,mFAAmF,gBAAgB,QAAQ,gBAAgB,kBAAkB,wDAAwD,GAAG,QAAQ,SAAS,+BAA+B,IAAI,KAAK,eAAe,kBAAkB,8CAA8C,IAAI,sBAAsB,8DAA8D,eAAe,kBAAkB,8CAA8C,IAAI,sBAAsB,6DAA6D,cAAc,2EAA2E,MAAM,oBAAoB,MAAM,YAAY,YAAY,eAAe,6CAA6C,gBAAgB,GAAG,YAAY,oBAAoB,gBAAgB,sBAAsB,4BAA4B,WAAW,0CAA0C,wBAAwB,gBAAgB,IAAI,iBAAiB,kCAAkC,IAAI,eAAe,YAAY,kBAAkB,sEAAsE,iBAAiB,4FAA4F,8BAA8B,eAAe,0DAA0D,YAAY,iCAAiC,GAAG,eAAe,oCAAoC,cAAc,SAAS,gCAAgC,wDAAwD,MAAM,0CAA0C,IAAI,6BAA6B,2DAA2D,0BAA0B,gCAAgC,EAAE,QAAQ,6BAA6B,0BAA0B,UAAU,eAAe,wCAAwC,8DAA8D,oBAAoB,eAAe,YAAY,yCAAyC,gBAAgB,UAAU,QAAQ,SAAS,wFAAwF,iDAAiD,SAAS,mBAAmB,uEAAuE,+CAA+C,+CAA+C,QAAQ,8MAA8M,iBAAiB,kBAAkB,4BAA4B,eAAe,KAAK,QAAQ,SAAS,yBAAyB,IAAI,EAAE,iBAAiB,oEAAoE,YAAY,yBAAyB,IAAI,EAAE,iBAAiB,eAAe,cAAc,+BAA+B,SAAS,+BAA+B,yBAAyB,IAAI,EAAE,iBAAiB,wDAAwD,cAAc,mDAAmD,UAAU,2BAA2B,gEAAgE,SAAS,YAAY,SAAS,4EAA4E,WAAW,cAAc,8CAA8C,IAAI,sBAAsB,kBAAkB,QAAQ,KAAK,qBAAqB,6DAA6D,oBAAoB,SAAS,IAAI,sBAAsB,QAAQ,MAAM,oBAAoB,uLAAuL,6CAA6C,4DAA4D,2BAA2B,WAAW,qCAAqC,KAAK,4BAA4B,eAAe,YAAY,8CAA8C,mBAAmB,MAAM,iBAAiB,qBAAqB,4DAA4D,iCAAiC,kBAAkB,oCAAoC,GAAG,sCAAsC,kDAAkD,2BAA2B,0EAA0E,cAAc,eAAe,yEAAyE,kBAAkB,IAAI,0FAA0F,UAAU,OAAO,UAAU,kEAAkE,IAAI,gBAAgB,kBAAkB,gBAAgB,WAAW,oCAAoC,iCAAiC,IAAI,kBAAkB,8CAA8C,IAAI,sBAAsB,qDAAqD,eAAe,sIAAsI,cAAc,WAAW,eAAe,sBAAsB,eAAe,OAAO,oBAAE,SAAS,IAAI,oBAAE,iDAAiD,eAAe,4FAA4F,eAAe,0HAA0H,eAAe,qBAAqB,eAAe,wGAAwG,2CAA2C,IAAI,sBAAsB,sBAAsB,SAAS,SAAS,SAAS,eAAe,8EAA8E,qBAAqB,uDAAuD,cAAc,eAAe,+CAA+C,iBAAiB,2FAA2F,qCAAqC,yBAAyB,kCAAkC,wBAAwB,qBAAqB,uFAAuF,0BAA0B,eAAe,qCAAqC,iBAAiB,mBAAmB,eAAe,oEAAoE,eAAe,kBAAkB,0BAA0B,iBAAiB,gCAAgC,YAAY,WAAW,4BAA4B,SAAS,eAAe,mEAAmE,2DAA2D,gBAAgB,+CAA+C,kBAAC,4CAA4C,oBAAoB,GAAG,qCAAqC,IAAI,KAAK,WAAW,iCAAiC,gBAAC,EAAE,mBAAmB,uBAAuB,IAAI,SAAS,iBAAiB,iCAAiC,eAAe,WAAW,IAAI,eAAe,wBAAwB,qBAAqB,iCAAiC,wCAAwC,mBAAmB,iDAAiD,iBAAiB,IAAI,kBAAkB,SAAS,eAAe,UAAC,MAAM,iBAAiB,IAAI,eAAe,SAAS,QAAQ,iBAAiB,mBAAmB,IAAI,YAAY,UAAU,IAAI,WAAW,MAAM,GAAG,UAAU,IAAI,oBAAoB,UAAU,gDAAgD,eAAe,mBAAmB,IAAI,OAAO,UAAC,IAAI,UAAU,IAAI,MAAM,UAAC,YAAY,iCAAiC,UAAU,IAAI,MAAM,UAAC,GAAG,MAAM,GAAG,iCAAiC,UAAU,iDAAiD,eAAe,iBAAiB,iBAAiB,MAAM,+BAA+B,6IAA6I,IAAI,yBAAyB,SAAS,yCAAyC,OAAO,mGAAmG,+JAA+J,0BAA0B,KAAK,YAAY,2BAA2B,0BAA0B,eAAe,OAAO,mGAAmG,eAAe,8YAA8Y,eAAe,yDAAyD,eAAe,sCAAsC,eAAe,8BAA8B,eAAe,kIAAkI,gBAAgB,iCAAiC,eAAe,kEAAkE,gBAAgB,sBAAsB,mBAAmB,sBAAsB,iBAAiB,iBAAiB,eAAe,iEAAiE,8BAA8B,iBAAiB,qBAAqB,qBAAqB,8BAA8B,YAAY,WAAW,KAAK,uBAAuB,eAAe,qBAAqB,2BAA2B,YAAY,WAAW,KAAK,kBAAkB,oBAAoB,uDAAuD,MAAM,iEAAiE,iBAAiB,oDAAoD,qCAAqC,eAAe,IAAI,oDAAoD,GAAG,yBAAyB,aAAa,4CAA4C,WAAW,eAAe,4FAA4F,WAAW,eAAe,8DAA8D,WAAW,eAAe,kDAAkD,WAAW,eAAe,4BAA4B,WAAW,eAAe,0BAA0B,WAAW,eAAe,kDAAkD,WAAW,GAAG,QAAQ,4DAA4D,KAAK,oDAAoD,KAAK,oDAAoD,KAAK,6CAA6C,eAAe,sCAAsC,MAAM,iJAAiJ,GAAG,eAAe,iCAAiC,EAAE,QAAQ,IAAI,4BAA4B,gBAAgB,SAAS,UAAU,GAAG,QAAQ,6EAA6E,KAAK,wFAAwF,eAAe,mDAAmD,eAAe,gDAAgD,eAAe,6DAA6D,iBAAiB,6DAA6D,mBAAmB,gCAAgC,+DAA+D,UAAU,iBAAiB,gBAAgB,iBAAiB,YAAY,SAAS,gBAAgB,SAAS,eAAe,QAAQ,4GAA4G,eAAe,sDAAsD,4BAA4B,iBAAiB,iCAAiC,eAAe,4NAA4N,eAAe,0BAA0B,kBAAC,KAAK,eAAe,yJAAyJ,SAAS,gBAAC,+BAA+B,eAAe,IAAI,wEAAwE,KAAK,aAAC,uBAAuB,gCAAgC,6BAA6B,aAAa,cAAc,gCAAgC,OAAO,wDAAwD,gBAAgB,uFAAuF,0BAA0B,gBAAgB,4BAA4B,+BAA+B,qCAAqC,MAAM,iBAAiB,uCAAuC,MAAM,mBAAmB,mCAAmC,QAAQ,KAAK,eAAC,OAAO,eAAC,mBAAmB,gCAAgC,yBAAyB,6BAA6B,qBAAqB,MAAM,iBAAiB,qBAAqB,MAAM,mCAAmC,eAAC,OAAO,eAAC,MAAM,iCAAiC,cAAc,YAAY,sVAAsV,eAAe,sEAAsE,oIAAoI,iDAAiD,oCAAoC,eAAe,gEAAgE,iCAAiC,QAAQ,yDAAyD,iBAAiB,iBAAiB,EAAE,iBAAiB,oCAAoC,gGAAgG,yKAAyK,wCAAwC,uBAAuB,YAAY,WAAW,aAAa,cAAc,kBAAkB,GAAG,+EAA+E,oBAAoB,YAAY,WAAW,aAAa,cAAc,eAAe,cAAc,iBAAiB,kBAAkB,qBAAqB,GAAG,yFAAyF,uBAAuB,GAAG,GAAG,kPAAkP,iBAAiB,SAAS,mEAAmE,cAAc,sFAAsF,cAAc,uEAAuE,eAAe,qBAAqB,QAAQ,WAAW,+BAA+B,KAAK,uDAAuD,KAAK,MAAM,kBAAkB,mBAAmB,uEAAuE,yBAAyB,8CAA8C,iCAAiC,4CAA4C,YAAY,aAAa,IAAI,sEAAsE,IAAI,8BAA8B,6GAA6G,OAAO,6DAA6D,oDAAoD,IAAI,kCAAkC,GAAG,OAAO,gGAAgG,kFAAkF,GAAG,uCAAuC,8BAA8B,qCAAqC,gCAAgC,IAAI,kCAAkC,UAAU,YAAY,gEAAgE,oBAAoB,kCAAkC,uBAAuB,iBAAiB,SAAS,qDAAqD,cAAc,qCAAqC,WAAW,eAAe,0EAA0E,sBAAsB,kCAAkC,iBAAiB,OAAO,+BAA+B,gBAAgB,+BAA+B,sBAAsB,oCAAoC,kBAAkB,eAAe,mBAAmB,+BAA+B,MAAM,YAAY,aAAa,sBAAsB,EAAE,4BAA4B,oBAAoB,iBAAiB,iEAAiE,SAAS,EAAE,4BAA4B,sCAAsC,SAAS,iBAAiB,UAAU,2CAA2C,eAAe,mBAAmB,sBAAsB,0BAA0B,uBAAuB,wBAAwB,oBAAoB,gCAAgC,+BAA+B,QAAQ,ucAAuc,IAAI,6BAA6B,QAAQ,gEAAgE,CAAC,oDAAoD,MAAM,sFAAsF,kGAAkG,OAAO,CAAC,gBAAgB,4BAA4B,oBAAoB,CAAC,UAAU,eAAe,mBAAmB,wBAAwB,iBAAiB,SAAS,aAAa,8BAA8B,cAAc,uBAAuB,iBAAiB,8DAA8D,wCAAwC,oCAAoC,oFAAoF,WAAW,kCAAkC,KAAK,uBAAuB,aAAa,QAAQ,WAAW,yCAAyC,iCAAiC,4BAA4B,yBAAyB,KAAK,wCAAwC,8BAA8B,KAAK,sCAAsC,8BAA8B,KAAK,6BAA6B,8DAA8D,KAAK,gCAAgC,kBAAkB,KAAK,8BAA8B,6DAA6D,KAAK,uCAAuC,UAAU,gCAAgC,OAAO,YAAY,kCAAkC,OAAO,KAAK,KAAK,4BAA4B,6EAA6E,iBAAiB,0IAA0I,SAAS,uOAAuO,aAAa,QAAQ,kIAAkI,aAAa,qDAAqD,yCAAyC,iBAAiB,MAAM,MAAM,wBAAwB,+BAA+B,WAAW,oBAAoB,GAAG,0DAA0D,IAAI,KAAK,4BAA4B,SAAS,mHAAmH,aAAa,wDAAwD,oGAAoG,SAAS,qBAAqB,UAAU,qDAAqD,WAAW,8CAA8C,2GAA2G,2BAA2B,iXAAiX,uBAAuB,gBAAgB,MAAM,YAAY,iKAAiK,iLAAiL,WAAW,OAAO,YAAY,WAAW,aAAa,aAAa,cAAc,aAAa,WAAW,aAAa,aAAa,aAAa,YAAY,WAAW,YAAY,WAAW,eAAe,WAAW,aAAa,WAAW,aAAa,YAAY,UAAU,iBAAiB,WAAW,uBAAuB,MAAM,mBAAmB,aAAa,MAAM,wDAAwD,cAAc,aAAa,qBAAqB,6BAA6B,GAAG,YAAY,aAAa,MAAM,2DAA2D,cAAc,aAAa,qBAAqB,6BAA6B,GAAG,kBAAkB,MAAM,WAAW,aAAa,aAAa,QAAQ,aAAa,GAAG,UAAU,MAAM,0CAA0C,WAAW,WAAW,UAAU,YAAY,QAAQ,4yBAA4yB,eAAe,oBAAoB,wBAAwB,yBAAyB,mDAAmD,GAAG,2DAA2D,oBAAoB,GAAG,GAAG,oGAAoG,iBAAiB,SAAS,kGAAkG,OAAO,sCAAsC,aAAC,CAAC,QAAC,GAAG,MAAM,WAAW,cAAc,WAAW,2IAA2I,iCAAiC,gCAAgC,kBAAkB,kBAAC,iBAAiB,UAAU,gBAAgB,4+BAA4+B,yFAAyF,wBAAwB,GAAG,2RAA2R,6EAA6E,GAAG,8DAA8D,kDAAkD,0CAA0C,GAAG,6DAA6D,sDAAsD,mEAAmE,GAAG,mEAAmE,gEAAgE,GAAG,GAAG,sEAAsE,iBAAiB,SAAS,iFAAiF,kBAAkB,4BAA4B,qGAAwB,iCAAiC,0DAA0D,+CAA+C,QAAQ,EAAE,gBAAgB,aAAa,aAAa,IAAI,QAAQ,WAAW,4CAA4C,gzBAAgzB,+CAA+C,oDAAoD,qDAAqD,2BAA2B,eAAe,yDAAyD,yBAAyB,wBAAwB,qDAAqD,uBAAuB,wBAAwB,kBAAkB,GAAG,+DAA+D,oBAAoB,GAAG,GAAG,2FAA2F,iBAAiB,SAAS,qCAAqC,oBAAoB,oHAAoH,cAAc,MAAM,kBAAkB,kBAAC,cAAc,OAAO,aAAa,MAAM,uBAAuB,cAAc,oCAAoC,8DAA8D,eAAe,WAAW,SAAS,MAAM,6IAA6I,6BAA6B,QAAQ,SAAS,gJAAgJ,kCAAkC,QAAQ,8EAA8E,GAAG,gBAAgB,8BAA8B,eAAe,2FAA2F,sSAAsS,6CAA6C,eAAe,UAAU,gBAAC,8BAA8B,WAAW,KAAK,+BAA+B,qBAAqB,0DAA0D,WAAW,SAAS,eAAe,gBAAgB,eAAe,2BAA2B,eAAe,4CAA4C,eAAe,oDAAoD,eAAe,uDAAuD,eAAe,wCAAwC,eAAe,4EAA4E,eAAe,oDAAoD,eAAe,uDAAuD,eAAe,+BAA+B,eAAe,gDAAgD,eAAe,gFAAgF,eAAe,sDAAsD,eAAe,2CAA2C,eAAe,uDAAuD,eAAe,qCAAqC,eAAe,oCAAoC,eAAe,oCAAoC,eAAe,oBAAoB,eAAe,kDAAkD,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,IAAI,gBAAgB,iBAAiB,IAAI,iBAAiB,GAAG,wIAAwI,EAAE,kBAAkB,EAAE,2BAA2B,cAAc,IAAI,WAAW,yDAAyD,aAAa,OAAO,qDAAqD,cAAc,IAAI,WAAW,yDAAyD,aAAa,OAAO,wCAAwC,QAAQ,6FAA6F,OAAO,gBAAgB,qBAAqB,IAAI,kFAAkF,GAAG,yBAAyB,qBAAqB,kBAAkB,yBAAyB,+CAA+C,OAAO,KAAC,qBAAqB,UAAU,kBAAkB,yBAAyB,gDAAgD,OAAO,KAAC,uBAAuB,mBAAmB,QAAQ,iBAAiB,iFAAiF,8DAA8D,6BAA6B,oBAAoB,6BAA6B,iBAAiB,YAAY,uBAAuB,eAAe,kCAAkC,SAAS,mCAAmC,sDAAsD,qBAAqB,wBAAwB,MAAM,EAAE,QAAQ,IAAI,uBAAuB,SAAS,mCAAmC,mDAAmD,qBAAqB,2DAA2D,MAAM,EAAE,aAAa,IAAI,SAAS,mBAAmB,eAAe,IAAI,cAAc,GAAG,6BAA6B,GAAG,iBAAiB,qBAAqB,WAAW,EAAE,qBAAqB,WAAW,6BAA6B,KAAK,+FAA+F,WAAW,8BAA8B,IAAI,SAAS,qBAAqB,0BAA0B,mBAAmB,oBAAoB,+BAA+B,MAAM,EAAE,YAAY,IAAI,2BAA2B,iBAAiB,wCAAwC,+BAA+B,eAAe,mBAAmB,aAAa,MAAM,EAAE,gDAAgD,EAAE,eAAe,GAAG,KAAK,WAAW,SAAS,0CAA0C,0EAA0E,MAAM,EAAE,YAAY,MAAM,YAAY,uCAAuC,MAAM,EAAE,YAAY,MAAM,YAAY,6BAA6B,aAAa,qBAAqB,0CAA0C,yCAAyC,gBAAgB,eAAe,+BAA+B,MAAM,EAAE,+BAA+B,0BAA0B,MAAM,EAAE,YAAY,IAAI,mBAAmB,OAAO,uBAAuB,sBAAsB,KAAK,kBAAC,wDAAwD,MAAM,OAAO,sDAAsD,mBAAmB,GAAG,cAAC,4BAA4B,GAAG,iBAAC,qBAAqB,GAAG,kBAAC,KAAK,MAAM,SAAC,uBAAuB,mBAAmB,6BAA6B,IAAI,OAAO,eAAC,KAAK,eAAC,oBAAoB,GAAG,eAAC,8BAA8B,UAAU,SAAC,uBAAuB,eAAC,gBAAgB,YAAY,GAAG,iBAAiB,YAAY,MAAM,UAAU,mBAAmB,IAAI,OAAO,KAAC,YAAY,SAAS,QAAQ,uBAAuB,kBAAkB,OAAO,QAAC,gBAAgB,MAAM,KAAC,MAAM,cAAc,GAAG,qBAAqB,2BAA2B,kBAAkB,OAAO,KAAC,cAAc,aAAa,qBAAqB,sBAAsB,qBAAqB,MAAM,SAAC,eAAe,gBAAgB,iBAAC,aAAa,mBAAmB,SAAS,cAAC,MAAM,0BAA0B,GAAG,aAAa,MAAM,EAAE,6EAA6E,EAAE,eAAe,mBAAmB,MAAM,SAAC,aAAa,iBAAC,MAAM,KAAC,MAAM,0CAA0C,mBAAmB,SAAS,cAAC,MAAM,0BAA0B,GAAG,aAAa,MAAM,EAAE,mEAAmE,EAAE,mBAAmB,cAAc,OAAO,QAAC,MAAM,QAAC,cAAc,QAAQ,mBAAmB,mBAAmB,qBAAqB,KAAK,WAAW,mCAAmC,gCAAgC,kBAAkB,SAAS,aAAa,4DAA4D,KAAK,mBAAmB,QAAQ,KAAC,iDAAiD,+EAA+E,iBAAiB,6EAA6E,0CAA0C,iBAAiB,SAAS,yBAAyB,UAAU,sBAAC,oDAAoD,uCAAuC,GAAG,uBAAC,oDAAoD,oCAAoC,GAAG,WAAW,iBAAiB,sEAAsE,uBAAuB,QAAQ,qBAAqB,EAAE,gBAAgB,yBAAyB,cAAc,sBAAsB,EAAE,sBAAC,KAAK,iCAAiC,YAAY,0BAA0B,qBAAqB,qBAAqB,EAAE,GAAG,GAAG,uBAAC,gCAAgC,kBAAkB,QAAQ,mBAAmB,uBAAuB,qBAAqB,EAAE,IAAI,SAAS,mBAAmB,sBAAsB,kBAAC,UAAU,kBAAC,KAAK,sCAAsC,mBAAmB,mEAAmE,oBAAoB,KAAK,KAAC,MAAM,WAAW,mBAAmB,gBAAgB,sCAAsC,eAAe,8CAA8C,eAAe,oBAAoB,cAAc,SAAS,cAAc,SAAS,eAAe,gCAAgC,eAAe,iCAAiC,eAAe,8BAA8B,eAAe,gCAAgC,eAAe,gCAAgC,eAAe,cAAc,iBAAC,2BAA2B,eAAe,yCAAyC,eAAe,+BAA+B,iBAAiB,SAAS,uBAAuB,aAAa,oBAAoB,GAAG,iBAAC,kBAAkB,qBAAqB,cAAc,wDAAwD,0DAA0D,yBAAyB,MAAM,KAAC,MAAM,GAAG,uBAAC,KAAK,6BAA6B,KAAK,KAAK,wBAAwB,uBAAuB,OAAO,GAAG,sBAAC,KAAK,YAAY,KAAK,KAAK,6BAA6B,uBAAuB,OAAO,8CAA8C,UAAU,UAAU,KAAK,eAAe,oBAAoB,iBAAC,QAAQ,iBAAiB,wBAAwB,2BAA2B,sDAAsD,iBAAiB,wBAAwB,2BAA2B,sDAAsD,mBAAmB,8DAA8D,MAAM,wCAAwC,sBAAsB,kBAAC,IAAI,kBAAC,mBAAmB,6BAA6B,QAAQ,iFAAiF,sBAAsB,sBAAsB,UAAU,mCAAmC,MAAM,iBAAC,MAAM,KAAC,MAAM,yBAAyB,iBAAC,gBAAgB,sCAAsC,qBAAqB,aAAa,0CAA0C,kCAAkC,iBAAC,kDAAkD,OAAO,qGAAqG,iBAAiB,sBAAsB,wCAAwC,KAAK,WAAW,+CAA+C,KAAC,GAAG,iBAAC,kBAAkB,iBAAiB,iBAAiB,MAAM,cAAC,IAAI,8BAA8B,SAAC,YAAY,IAAI,iBAAC,kCAAkC,MAAM,cAAC,iBAAiB,IAAI,eAAC,KAAK,eAAC,oCAAoC,eAAC,KAAK,eAAC,kCAAkC,SAAC,YAAY,uHAAuH,SAAC,aAAa,IAAI,iBAAC,WAAW,yBAAyB,cAAC,cAAc,cAAC,KAAK,iBAAiB,YAAY,oCAAoC,KAAK,oBAAoB,eAAe,2BAA2B,iBAAiB,iBAAiB,KAAC,iBAAiB,iBAAC,QAAQ,iBAAiB,8BAA8B,YAAY,WAAW,4BAA4B,SAAS,eAAe,UAAU,IAAI,cAAc,GAAG,OAAO,eAAe,SAAS,eAAe,OAAO,oBAAoB,iBAAiB,OAAO,2CAA2C,eAAe,OAAO,sBAAsB,iBAAiB,OAAO,6CAA6C,eAAe,OAAO,uBAAuB,eAAe,OAAO,sBAAsB,iBAAiB,qDAAqD,OAAO,wFAAwF,qBAAqB,uBAAuB,cAAC,UAAU,UAAU,MAAM,KAAC,WAAW,iDAAiD,UAAU,GAAG,iBAAC,2CAA2C,cAAc,KAAC,MAAM,qBAAqB,UAAU,MAAM,KAAC,gBAAgB,6BAA6B,wBAAwB,MAAM,KAAC,MAAM,2CAA2C,cAAc,wBAAwB,MAAM,cAAC,MAAM,KAAC,MAAM,uEAAuE,eAAe,eAAe,kCAAkC,eAAe,2BAA2B,eAAe,2BAA2B,eAAe,eAAe,8BAA8B,gCAAgC,gCAAgC,kCAAkC,iBAAiB,UAAU,yBAAyB,2BAA2B,2BAA2B,4BAA4B,2CAA2C,mBAAmB,gCAAgC,iBAAC,iCAAiC,mBAAmB,2BAA2B,8BAA8B,iBAAC,WAAW,6BAA6B,UAAU,0BAA0B,iBAAC,cAAc,yCAAyC,wCAAwC,yBAAyB,SAAS,mBAAmB,MAAM,iBAAC,cAAc,yCAAyC,oBAAoB,KAAC,MAAM,GAAG,uBAAC,qCAAqC,GAAG,sBAAC,KAAK,YAAY,uBAAuB,SAAS,eAAe,gCAAgC,eAAe,iCAAiC,cAAc,mDAAmD,IAAI,sBAAsB,sIAAsI,mBAAmB,mBAAmB,sCAAsC,2FAA2F,EAAE,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,wCAAwC,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,4BAA4B,uBAAuB,0BAA0B,4BAA4B,GAAG,qDAAqD,0BAA0B,GAAG,qDAAqD,0BAA0B,wBAAwB,GAAG,4DAA4D,wDAAwD,kDAAkD,uBAAuB,0BAA0B,qBAAqB,eAAe,GAAG,4DAA4D,sEAAsE,6BAA6B,GAAG,uDAAuD,yBAAyB,yDAAyD,GAAG,GAAG,+FAA+F,iBAAiB,SAAS,yMAAyM,cAAC,yEAAyE,aAAa,yBAAyB,2BAA2B,qBAAqB,cAAc,mCAAmC,SAAS,aAAa,2BAA2B,6CAA6C,uBAAuB,qDAAqD,mFAAmF,eAAe,QAAQ,YAAY,UAAU,eAAe,8BAA8B,2BAA2B,oCAAoC,eAAe,eAAe,WAAW,uCAAuC,mDAAmD,oCAAoC,qBAAqB,gCAAgC,UAAU,2BAA2B,+BAA+B,oBAAoB,YAAY,yEAAyE,wBAAwB,UAAU,qBAAqB,sFAAsF,6BAA6B,6CAA6C,4CAA4C,QAAQ,2BAA2B,gCAAgC,gBAAgB,yCAAyC,0DAA0D,gBAAgB,iBAAiB,SAAS,sRAAsR,cAAc,uBAAuB,aAAa,mBAAmB,OAAO,iFAAiF,MAAM,YAAY,aAAa,oBAAoB,aAAa,2CAA2C,MAAM,kBAAkB,kBAAC,oCAAoC,aAAa,OAAO,iBAAC,mBAAmB,sDAAsD,SAAS,gCAAgC,IAAI,mBAAmB,YAAY,uCAAuC,IAAI,QAAQ,kBAAkB,kBAAC,cAAc,EAAE,gBAAgB,kBAAkB,KAAK,EAAE,WAAW,cAAc,WAAW,0BAA0B,4CAA4C,OAAO,mBAAmB,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,SAAS,cAAC,KAAK,uBAAuB,cAAc,kBAAC,sCAAsC,IAAI,GAAG,uBAAC,KAAK,MAAM,cAAC,gDAAgD,qBAAqB,kBAAkB,OAAO,cAAc,kBAAC,6BAA6B,2BAA2B,sFAAsF,mBAAmB,MAAM,KAAC,MAAM,qBAAqB,eAAe,uBAAuB,cAAc,kBAAC,sCAAsC,IAAI,kBAAkB,+BAA+B,OAAO,cAAc,kBAAC,6BAA6B,GAAG,qBAAqB,8CAA8C,QAAQ,eAAe,kBAAC,mBAAmB,kBAAC,cAAc,yBAAyB,iBAAiB,MAAM,cAAC,IAAI,GAAG,iBAAC,oDAAoD,MAAM,iBAAC,MAAM,cAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,WAAW,cAAC,SAAS,0BAA0B,eAAe,kBAAC,SAAS,kBAAC,wBAAwB,KAAK,GAAG,uBAAC,KAAK,gDAAgD,qBAAqB,SAAS,cAAC,OAAO,OAAO,eAAe,kBAAC,SAAS,kBAAC,eAAe,2BAA2B,yFAAyF,qBAAqB,UAAU,gBAAgB,iBAAC,WAAW,KAAC,MAAM,2BAA2B,cAAC,iCAAiC,iBAAiB,iBAAC,kBAAkB,QAAQ,kBAAkB,kBAAC,iCAAiC,EAAE,SAAS,QAAQ,kBAAkB,kBAAC,gBAAgB,EAAE,UAAU,cAAc,uBAAuB,MAAM,cAAC,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,WAAW,cAAC,OAAO,mCAAmC,cAAc,kBAAC,sCAAsC,KAAK,GAAG,uBAAC,KAAK,MAAM,cAAC,MAAM,iBAAC,MAAM,cAAC,oEAAoE,cAAC,kCAAkC,8BAA8B,kBAAkB,OAAO,cAAc,kBAAC,6BAA6B,2BAA2B,uFAAuF,cAAc,UAAU,yBAAyB,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,SAAS,cAAC,KAAK,qCAAqC,GAAG,uBAAC,KAAK,aAAa,cAAC,sBAAsB,GAAG,iBAAC,KAAK,cAAC,yBAAyB,4BAA4B,2BAA2B,sFAAsF,UAAU,yBAAyB,KAAC,MAAM,GAAG,sBAAC,iCAAiC,GAAG,uBAAC,KAAK,qBAAqB,GAAG,iBAAC,qBAAqB,MAAM,cAAC,IAAI,2BAA2B,sFAAsF,mFAAmF,eAAe,mBAAmB,iBAAiB,kBAAC,IAAI,cAAc,iBAAiB,OAAO,eAAe,kBAAC,mBAAmB,kBAAC,eAAe,iBAAiB,YAAY,yEAAyE,uCAAuC,uBAAuB,mCAAmC,0BAA0B,mCAAmC,iBAAiB,MAAM,uBAAuB,EAAE,iBAAiB,UAAU,MAAM,iBAAC,WAAW,KAAC,4BAA4B,cAAC,aAAa,OAAO,mCAAmC,gBAAgB,aAAa,kBAAkB,kBAAC,kBAAkB,kBAAkB,UAAU,wBAAwB,cAAC,IAAI,GAAG,iBAAC,KAAK,OAAO,aAAa,8BAA8B,uBAAuB,MAAM,iBAAC,MAAM,KAAC,MAAM,GAAG,sBAAC,KAAK,MAAM,cAAC,SAAS,cAAC,KAAK,OAAO,iEAAiE,GAAG,uBAAC,KAAK,uBAAuB,cAAC,MAAM,cAAC,4BAA4B,OAAO,uDAAuD,sFAAsF,mFAAmF,iBAAiB,mBAAmB,6DAA6D,iBAAC,CAAC,yBAAyB,cAAc,WAAW,0BAA0B,SAAS,GAAG,CAAC,eAAC,MAAM,iBAAiB,GAAG,iBAAC,KAAK,MAAM,gBAAC,SAAS,OAAO,oCAAoC,GAAG,eAAC,KAAK,MAAM,gBAAC,SAAS,OAAO,mEAAmE,OAAO,aAAa,GAAG,iBAAiB,MAAM,iBAAC,MAAM,cAAC,MAAM,KAAC,MAAM,OAAO,uBAAC,iDAAiD,eAAe,oHAAoH,MAAM,EAAE,aAAa,IAAI,aAAa,MAAM,EAAE,mCAAmC,EAAE,iBAAiB,iEAAiE,mHAAmH,cAAc,uBAAuB,gBAAgB,GAAG,sBAAC,KAAK,eAAe,YAAY,YAAY,WAAW,mDAAmD,QAAQ,QAAQ,uBAAC,KAAK,gCAAgC,qFAAqF,QAAQ,kCAAkC,mBAAmB,MAAM,6FAA6F,YAAY,WAAW,KAAK,eAAe,mBAAmB,WAAW,KAAK,WAAW,0BAA0B,iBAAiB,WAAW,gBAAgB,KAAK,oBAAoB,SAAS,IAAI,KAAC,OAAO,qBAAqB,SAAS,gBAAgB,uBAAuB,oCAAoC,GAAG,0CAA0C,mDAAmD,OAAO,cAAc,qBAAqB,yCAAyC,mBAAmB,QAAQ,OAAO,sBAAC,QAAQ,wBAAwB,KAAK,uBAAuB,IAAI,6BAA6B,GAAG,eAAe,MAAM,iBAAC,MAAM,KAAC,QAAQ,cAAC,yCAAyC,OAAO,mCAAmC,iBAAiB,MAAM,KAAC,MAAM,uEAAuE,kBAAC,MAAM,mEAAmE,kBAAkB,kBAAC,sBAAsB,EAAE,OAAO,mCAAmC,kFAAkF,SAAS,qBAAE,IAAI,mDAAmD,QAAQ,gCAAgC,4BAA4B,iCAAiC,sBAAsB,iCAAiC,aAAa,GAAG,iBAAiB,0CAA0C,sBAAsB,0BAA0B,MAAM,EAAE,4DAA4D,aAAa,eAAe,gJAAgJ,mBAAmB,syBAAsyB,6DAA6D,mDAAmD,GAAG,2CAA2C,mGAAmG,gEAAgE,GAAG,GAAG,gEAAgE,iBAAiB,SAAS,0DAA0D,iCAAiC,mBAAmB,aAAa,gBAAgB,yBAAyB,gBAAgB,+BAA+B,EAAE,6BAA6B,QAAQ,wCAAwC,UAAU,MAAM,cAAC,IAAI,kCAAkC,4CAA4C,IAAI,mBAAmB,aAAa,WAAW,mCAAmC,yBAAyB,WAAW,mCAAmC,OAAO,mBAAmB,QAAQ,wCAAwC,oCAAoC,UAAU,mCAAmC,WAAW,gBAAgB,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,8BAA8B,0BAA0B,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,uBAAuB,4BAA4B,0BAA0B,GAAG,2CAA2C,0BAA0B,wBAAwB,GAAG,sCAAsC,mBAAmB,sEAAsE,6BAA6B,GAAG,6CAA6C,yBAAyB,yDAAyD,qBAAqB,GAAG,GAAG,qFAAqF,iBAAiB,SAAS,6LAA6L,uBAAuB,cAAc,eAAe,yBAAyB,qCAAqC,MAAM,WAAW,aAAa,yBAAyB,YAAY,EAAE,OAAO,WAAW,4DAA4D,UAAU,iBAAiB,WAAW,4GAA4G,sDAAsD,uGAAuG,gCAAgC,uCAAuC,gBAAgB,qyBAAqyB,6JAA6J,0CAA0C,wBAAwB,2EAA2E,uBAAuB,4DAA4D,8EAA8E,wBAAwB,gFAAgF,GAAG,GAAG,6DAA6D,iBAAiB,oCAAoC,4BAA4B,iBAAiB,OAAO,gDAAgD,GAAG,aAAa,QAAQ,OAAO,EAAE,2EAA2E,EAAE,aAAa,KAAK,8EAA8E,UAAU,8EAA8E,uyBAAuyB,eAAe,cAAc,2BAA2B,yBAAyB,kDAAkD,GAAG,GAAG,iEAAiE,iBAAiB,SAAS,6DAA6D,uBAAuB,gDAAgD,eAAe,WAAW,UAAU,KAAK,OAAE,CAAC,gDAAgD,WAAW,mBAAmB,eAAe,SAAS,yCAAyC,qBAAqB,qCAAqC,qBAAqB,uBAAuB,qBAAqB,uBAAuB,qBAAqB,qCAAqC,qBAAqB,IAAI,eAAe,oFAAoF,6BAA6B,mCAAmC,eAAe,iBAAiB,WAAW,qJAAqJ,cAAc,uEAAuE,qBAAqB,0DAA0D,SAAS,cAAc,sGAAsG,IAAI,SAAS,eAAe,OAAO,cAAc,iBAAC,yBAAyB,eAAe,8BAA8B,0BAA0B,wBAAwB,8DAA8D,eAAe,yHAAyH,mDAAmD,KAAK,8BAA8B,6DAA6D,QAAQ,MAAM,oDAAoD,KAAK,yBAAyB,mBAAmB,qBAAqB,iBAAiB,kCAAkC,eAAe,uBAAuB,eAAe,uBAAuB,eAAe,sBAAsB,eAAe,+BAA+B,eAAe,+CAA+C,eAAe,iBAAiB,eAAe,0CAA0C,eAAe,sDAAsD,eAAe,qCAAqC,UAAU,8BAA8B,IAAI,KAAK,+BAA+B,eAAe,IAAI,yBAAyB,GAAG,OAAO,4DAA4D,mBAAmB,OAAO,uBAAuB,mHAAmH,UAAU,aAAa,oBAAoB,MAAM,gBAAgB,oBAAoB,MAAM,eAAe,mBAAmB,MAAM,cAAc,mBAAmB,MAAM,WAAW,aAAa,cAAc,gCAAgC,MAAM,8BAA8B,SAAS,kBAAkB,0BAA0B,QAAQ,sEAAsE,0FAA0F,kCAAkC,GAAG,QAAQ,mBAAmB,SAAS,WAAW,KAAK,IAAI,YAAY,OAAO,uBAAuB,UAAU,gGAAgG,wBAAwB,EAAE,oCAAoC,MAAM,EAAE,UAAU,UAAU,qHAAqH,kCAAkC,aAAa,QAAQ,mBAAmB,OAAO,iDAAiD,GAAG,uBAAuB,gCAAgC,GAAG,iBAAiB,gCAAgC,cAAc,4BAA4B,MAAM,iBAAiB,EAAE,IAAI,iDAAiD,IAAI,kHAAkH,8FAA8F,uMAAuM,qBAAqB,wDAAwD,qLAAqL,QAAQ,6HAA6H,4CAA4C,KAAK,OAAO,yIAAyI,4BAA4B,cAAc,4BAA4B,IAAI,kCAAkC,2IAA2I,uCAAuC,qBAAqB,0CAA0C,EAAE,+EAA+E,sDAAsD,YAAY,EAAE,aAAa,4BAA4B,cAAc,iCAAiC,eAAe,wDAAwD,eAAe,MAAM,wEAAwE,eAAe,MAAM,8FAA8F,eAAe,2DAA2D,eAAe,iEAAiE,eAAe,yEAAyE,eAAe,yGAAyG,eAAe,IAAI,6CAA6C,OAAO,wFAAwF,eAAe,0CAA0C,eAAe,2CAA2C,IAAI,oBAAoB,SAAS,UAAU,GAAG,eAAe,2BAA2B,gaAAga,cAAc,gGAAgG,eAAe,kDAAkD,eAAe,iCAAiC,eAAe,cAAc,8CAA8C,EAAE,0CAA0C,eAAe,2BAA2B,yDAAyD,sBAAsB,eAAe,YAAY,8EAA8E,mBAAmB,MAAM,sCAAsC,oEAAoE,MAAM,YAAY,iEAAiE,8BAA8B,eAAe,qEAAqE,eAAe,uIAAuI,qBAAqB,sBAAsB,eAAe,gCAAgC,eAAe,YAAY,uBAAuB,iCAAiC,qBAAqB,iEAAiE,kEAAkE,SAAS,aAAa,eAAe,YAAY,+BAA+B,2DAA2D,IAAI,qBAAqB,sCAAsC,gDAAgD,gCAAgC,sBAAsB,iDAAiD,sFAAsF,oDAAoD,YAAY,EAAE,yJAAyJ,oDAAoD,WAAW,yBAAyB,EAAE,iBAAiB,uBAAuB,mCAAmC,mBAAmB,mBAAmB,gCAAgC,OAAO,yDAAyD,mBAAmB,MAAM,kCAAkC,gFAAgF,MAAM,qBAAqB,WAAW,qDAAqD,OAAO,0BAA0B,MAAM,qCAAqC,gNAAgN,uEAAuE,0BAA0B,QAAQ,8BAA8B,yFAAyF,OAAO,mEAAmE,MAAM,KAAK,YAAY,GAAG,mDAAmD,aAAa,iBAAiB,YAAY,mEAAmE,mBAAmB,oDAAoD,yBAAyB,SAAS,sDAAsD,mBAAmB,yCAAyC,oBAAoB,6BAA6B,OAAO,yFAAyF,eAAe,gCAAgC,iBAAiB,gDAAgD,iBAAiB,qBAAqB,6CAA6C,iBAAiB,YAAY,kBAAkB,WAAW,gBAAgB,UAAU,EAAE,0BAA0B,QAAQ,SAAS,kBAAkB,gBAAgB,WAAW,gDAAgD,gBAAgB,cAAc,EAAE,kBAAkB,qBAAqB,QAAQ,YAAY,OAAO,QAAQ,kEAAkE,IAAI,4CAA4C,+CAA+C,wBAAwB,OAAO,yBAAyB,yBAAyB,4DAA4D,YAAY,iDAAiD,gCAAgC,OAAO,4GAA4G,mDAAmD,IAAI,+CAA+C,wDAAwD,eAAe,cAAc,uGAAuG,cAAc,EAAE,oBAAoB,4KAA4K,oBAAoB,uDAAuD,gBAAgB,mHAAmH,aAAa,OAAO,6DAA6D,+CAA+C,sBAAsB,0EAA0E,OAAO,mEAAmE,wCAAwC,GAAG,mBAAmB,gCAAgC,8BAA8B,sCAAsC,2BAA2B,IAAI,iBAAiB,OAAO,OAAO,kBAAkB,4CAA4C,gCAAgC,iBAAiB,oEAAoE,qBAAqB,iBAAiB,EAAE,IAAI,oKAAoK,8CAA8C,eAAe,kCAAkC,WAAW,oCAAoC,GAAG,2BAA2B,qBAAqB,aAAa,MAAM,mDAAmD,uBAAuB,yCAAyC,iCAAiC,8BAA8B,GAAG,gBAAgB,OAAO,8HAA8H,MAAM,IAAI,mCAAmC,MAAM,EAAE,qBAAqB,GAAG,SAAS,gCAAgC,aAAa,cAAc,6BAA6B,UAAU,iBAAiB,6BAA6B,WAAW,OAAO,kDAAkD,OAAO,uBAAuB,8BAA8B,SAAS,0FAA0F,MAAM,0BAA0B,QAAQ,qCAAqC,mBAAmB,uBAAuB,YAAY,iBAAiB,+BAA+B,YAAY,MAAM,eAAe,0EAA0E,+EAA+E,mBAAmB,0BAA0B,6CAA6C,SAAS,qCAAqC,yBAAyB,gCAAgC,MAAM,2FAA2F,EAAE,2BAA2B,MAAM,EAAE,YAAY,GAAG,MAAM,gBAAgB,wBAAwB,GAAG,4CAA4C,IAAI,oBAAoB,cAAc,wCAAwC,OAAO,IAAI,QAAQ,GAAG,OAAO,WAAW,SAAS,oBAAC,KAAK,QAAQ,mDAAmD,MAAM,+BAA+B,yCAAyC,MAAM,+BAA+B,yCAAyC,iBAAiB,MAAM,EAAE,YAAY,GAAG,aAAa,MAAM,EAAE,MAAM,yBAAyB,cAAc,EAAE,MAAM,gBAAgB,wBAAwB,GAAG,2CAA2C,SAAS,8EAA8E,cAAc,qIAAqI,YAAY,iDAAiD,iHAAiH,YAAY,sBAAsB,kBAAkB,mCAAmC,8BAA8B,0CAA0C,UAAU,4CAA4C,kEAAkE,kBAAkB,sBAAsB,+DAA+D,WAAW,gFAAgF,sBAAsB,sBAAsB,mBAAmB,sGAAsG,yDAAyD,QAAQ,wBAAwB,YAAY,wBAAwB,uBAAuB,0DAA0D,YAAY,MAAM,oBAAoB,QAAQ,cAAc,oHAAoH,gBAAgB,6CAA6C,MAAM,sBAAsB,sBAAsB,SAAS,wHAAwH,SAAS,MAAM,2BAA2B,gBAAgB,OAAO,cAAc,SAAS,OAAO,eAAe,WAAW,cAAc,kBAAkB,SAAS,OAAO,QAAQ,yBAAyB,mBAAmB,YAAY,YAAY,eAAe,EAAE,KAAK,EAAE,oBAAoB,MAAM,EAAE,WAAW,GAAG,mBAAmB,MAAM,uBAAuB,qEAAqE,kEAAkE,IAAI,OAAO,oBAAoB,8CAA8C,KAAK,WAAW,kCAAkC,QAAQ,SAAS,MAAM,yCAAyC,WAAW,kBAAkB,cAAc,IAAI,aAAa,8DAA8D,sDAAsD,OAAO,cAAc,UAAU,YAAY,WAAW,MAAM,IAAI,eAAe,IAAI,uKAAuK,GAAG,iBAAiB,eAAe,+CAA+C,oBAAoB,kBAAkB,qEAAqE,GAAG,qBAAqB,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,oEAAoE,2BAA2B,kEAAkE,6BAA6B,EAAE,GAAG,wFAAwF,QAAQ,SAAS,mDAAmD,0BAA0B,2BAA2B,+CAA+C,gDAAgD,wDAAwD,KAAK,KAAK,0eAA0e,6BAA6B,+CAA+C,gDAAgD,uDAAuD,OAAO,KAAK,2WAA2W,eAAe,WAAW,mCAAmC,4CAA4C,8CAA8C,0DAA0D,iEAAiE,0CAA0C,0BAA0B,OAAO,qCAAqC,+BAA+B,gCAAgC,OAAO,0CAA0C,gBAAgB,wCAAwC,WAAW,OAAO,KAAK,mOAAmO,wCAAwC,gIAAgI,wDAAwD,wDAAwD,2DAA2D,8DAA8D,iDAAiD,wEAAwE,4EAA4E,qDAAqD,6CAA6C,iEAAiE,sDAAsD,6DAA6D,iEAAiE,0DAA0D,uEAAuE,mEAAmE,mEAAmE,mEAAmE,iDAAiD,mDAAmD,iDAAiD,2CAA2C,yCAAyC,4DAA4D,6CAA6C,+CAA+C,gEAAgE,yCAAyC,mEAAmE,8CAA8C,oDAAoD,qDAAqD,2DAA2D,0EAA0E,6CAA6C,mDAAmD,2CAA2C,wDAAwD,oDAAoD,wDAAwD,6DAA6D,kDAAkD,+CAA+C,2CAA2C,4CAA4C,8CAA8C,mEAAmE,0EAA0E,gFAAgF,sDAAsD,sDAAsD,wDAAwD,qEAAqE,uEAAuE,4DAA4D,uDAAuD,2DAA2D,8DAA8D,+CAA+C,iDAAiD,+CAA+C,2CAA2C,qDAAqD,mDAAmD,0CAA0C,6BAA6B,wBAAwB,+BAA+B,2DAA2D,8CAA8C,mCAAmC,oCAAoC,4CAA4C,wCAAwC,OAAO,wBAAwB,oDAAoD,OAAO,4CAA4C,yDAAyD,OAAO,wCAAwC,wBAAwB,uBAAuB,0BAA0B,8BAA8B,wBAAwB,yDAAyD,6BAA6B,4DAA4D,8BAA8B,OAAO,gEAAgE,wBAAwB,yBAAyB,8BAA8B,OAAO,mCAAmC,+CAA+C,qCAAqC,yCAAyC,2CAA2C,OAAO,6BAA6B,6BAA6B,0BAA0B,uBAAuB,uDAAuD,2CAA2C,+DAA+D,yCAAyC,0BAA0B,iBAAiB,mBAAmB,oBAAoB,kBAAkB,kCAAkC,4CAA4C,OAAO,2GAA2G,sBAAsB,uBAAuB,OAAO,0CAA0C,mDAAmD,iDAAiD,OAAO,mCAAmC,wBAAwB,OAAO,8CAA8C,2DAA2D,iFAAiF,OAAO,iCAAiC,0DAA0D,8DAA8D,gDAAgD,OAAO,0EAA0E,4DAA4D,0DAA0D,OAAO,sCAAsC,6BAA6B,0DAA0D,4DAA4D,kCAAkC,8BAA8B,qDAAqD,4CAA4C,OAAO,mEAAmE,6BAA6B,2CAA2C,sCAAsC,OAAO,4CAA4C,wBAAwB,OAAO,2CAA2C,qBAAqB,OAAO,6BAA6B,wBAAwB,8BAA8B,kCAAkC,OAAO,qCAAqC,qBAAqB,wBAAwB,8BAA8B,kCAAkC,iDAAiD,mDAAmD,+DAA+D,gDAAgD,8BAA8B,yBAAyB,OAAO,2CAA2C,wEAAwE,OAAO,gCAAgC,4CAA4C,wCAAwC,0DAA0D,4CAA4C,yBAAyB,OAAO,gCAAgC,4CAA4C,8CAA8C,6DAA6D,8DAA8D,0DAA0D,iEAAiE,yBAAyB,OAAO,8BAA8B,wEAAwE,OAAO,0DAA0D,wDAAwD,6BAA6B,0DAA0D,yBAAyB,OAAO,4CAA4C,yDAAyD,oDAAoD,OAAO,kCAAkC,wBAAwB,sBAAsB,yCAAyC,sBAAsB,qBAAqB,6BAA6B,2BAA2B,uBAAuB,8BAA8B,OAAO,mCAAmC,oDAAoD,8CAA8C,6DAA6D,8DAA8D,iDAAiD,sDAAsD,wBAAwB,0BAA0B,oDAAoD,2BAA2B,0CAA0C,+BAA+B,kDAAkD,4DAA4D,OAAO,kDAAkD,mEAAmE,iEAAiE,OAAO,wCAAwC,2BAA2B,kCAAkC,8BAA8B,OAAO,yCAAyC,wBAAwB,8BAA8B,kCAAkC,uEAAuE,OAAO,0CAA0C,uEAAuE,OAAO,2CAA2C,6EAA6E,wDAAwD,oDAAoD,2BAA2B,mDAAmD,mDAAmD,0CAA0C,qCAAqC,OAAO,iCAAiC,qBAAqB,+BAA+B,OAAO,yCAAyC,mDAAmD,0BAA0B,wDAAwD,2DAA2D,sCAAsC,2CAA2C,sDAAsD,kCAAkC,6BAA6B,8BAA8B,uEAAuE,gEAAgE,8DAA8D,+DAA+D,OAAO,8BAA8B,2DAA2D,qDAAqD,kDAAkD,OAAO,6BAA6B,0BAA0B,0DAA0D,oEAAoE,+CAA+C,4CAA4C,kCAAkC,2BAA2B,8BAA8B,uDAAuD,8BAA8B,sBAAsB,OAAO,wCAAwC,6DAA6D,OAAO,oCAAoC,6DAA6D,OAAO,oCAAoC,wDAAwD,mDAAmD,OAAO,mCAAmC,sEAAsE,OAAO,gDAAgD,oDAAoD,kDAAkD,OAAO,qMAAqM,2DAA2D,kCAAkC,OAAO,iCAAiC,qBAAqB,sBAAsB,6BAA6B,iBAAiB,kBAAkB,oBAAoB,mBAAmB,OAAO,KAAK,40CAA40C,iBAAiB,kBAAkB,SAAS,0DAA0D,SAAS,IAAI,SAAS,2+BAA2+B,gBAAgB,gLAAgL,+DAA+D,kCAAkC,oGAAoG,2JAA2J,0DAA0D,YAAY,eAAe,uBAAuB,mCAAmC,IAAI,eAAe,cAAc,eAAe,aAAa,uEAAuE,mCAAmC,6BAA6B,cAAc,KAAK,GAAG,SAAS,2BAA2B,sBAAsB,KAAK,cAAc,wGAAwG,iEAAiE,cAAc,SAAS,QAAQ,cAAc,iBAAiB,mDAAmD,WAAW,SAAS,eAAe,wBAAwB,iCAAiC,eAAe,gCAAgC,cAAc,0BAA0B,aAAa,gEAAgE,0BAA0B,eAAe,yCAAyC,qCAAqC,MAAM,uCAAuC,0BAA0B,kBAAkB,iCAAiC,KAAK,MAAM,gBAAgB,MAAM,mEAAmE,MAAM,kEAAkE,MAAM,uBAAuB,kEAAkE,wCAAwC,MAAM,6CAA6C,2BAA2B,6EAA6E,yCAAyC,MAAM,mDAAmD,mFAAmF,MAAM,qEAAqE,0EAA0E,eAAe,QAAQ,mIAAmI,eAAe,gCAAgC,cAAc,0BAA0B,MAAM,4FAA4F,0BAA0B,cAAc,+CAA+C,cAAc,mCAAmC,cAAc,iBAAiB,kBAAkB,iCAAiC,aAAa,iCAAiC,GAAG,4SAA4S,mBAAmB,cAAc,qCAAqC,MAAM,OAAO,SAAS,MAAM,0CAA0C,GAAG,UAAU,eAAe,kCAAkC,MAAM,MAAM,sBAAsB,IAAI,uCAAuC,qDAAqD,sDAAsD,IAAI,IAAI,eAAe,UAAU,eAAe,gGAAgG,6EAA6E,kBAAkB,6CAA6C,mBAAmB,8BAA8B,gBAAgB,eAAe,OAAO,UAAU,kCAAkC,gCAAgC,KAAK,WAAW,2FAA2F,kCAAkC,iCAAiC,oBAAoB,yBAAyB,wCAAwC,MAAM,oBAAoB,EAAE,8EAA8E,gBAAgB,MAAM,GAAG,qCAAqC,kCAAkC,2HAA2H,kEAAkE,0BAA0B,oDAAoD,mCAAmC,2BAA2B,oCAAoC,6BAA6B,0BAA0B,6JAA6J,2CAA2C,kCAAkC,oCAAoC,gBAAgB,mCAAmC,6DAA6D,MAAM,iBAAiB,yEAAyE,EAAE,iIAAiI,oCAAoC,4GAA4G,UAAU,6LAA6L,GAAG,kDAAkD,sEAAsE,oCAAoC,gBAAgB,0BAA0B,WAAW,2BAA2B,MAAM,wBAAwB,oCAAoC,gCAAgC,kCAAkC,0BAA0B,kDAAkD,6BAA6B,oDAAoD,MAAM,qFAAqF,oCAAoC,QAAQ,iGAAiG,mDAAmD,gBAAgB,qCAAqC,kBAAkB,WAAW,2BAA2B,sBAAsB,cAAc,wBAAwB,0BAA0B,aAAa,gKAAgK,MAAM,4CAA4C,oEAAoE,2CAA2C,kCAAkC,kDAAkD,6BAA6B,wBAAwB,aAAa,mBAAmB,QAAQ,4CAA4C,0CAA0C,yBAAyB,eAAe,mCAAmC,eAAe,2BAA2B,iBAAiB,UAAU,KAAK,aAAa,2CAA2C,6BAA6B,IAAI,QAAQ,6BAA6B,6CAA6C,GAAG,2BAA2B,WAAW,4CAA4C,qBAAqB,qCAAqC,MAAM,6FAA6F,aAAa,YAAY,2BAA2B,MAAM,kGAAkG,uBAAuB,qBAAqB,yBAAyB,WAAW,4BAA4B,gBAAgB,UAAU,wBAAwB,GAAG,oBAAoB,WAAW,mBAAmB,oBAAoB,cAAc,eAAe,OAAO,yBAAyB,WAAW,qCAAqC,mBAAmB,mBAAmB,WAAW,aAAa,SAAS,MAAM,WAAW,SAAS,MAAM,wDAAwD,WAAW,8CAA8C,uCAAuC,+CAA+C,+BAA+B,gBAAgB,MAAM,qNAAqN,iIAAiI,IAAI,WAAW,GAAG,gGAAgG,kFAAkF,oBAAoB,EAAE,eAAe,uCAAuC,kBAAkB,aAAa,WAAW,OAAO,yBAAyB,WAAW,qBAAqB,MAAM,WAAW,YAAY,UAAU,WAAW,eAAe,UAAU,4BAA4B,eAAe,UAAU,oBAAoB,GAAG,oBAAoB,WAAW,2BAA2B,gBAAgB,UAAU,uBAAuB,6IAA6I,kBAAkB,mDAAmD,kBAAkB,kDAAkD,WAAW,WAAW,GAAG,iCAAiC,yCAAyC,SAAS,wBAAwB,YAAY,WAAW,WAAW,GAAG,gBAAgB,wBAAwB,OAAO,iCAAiC,yBAAyB,WAAW,2BAA2B,mBAAmB,wBAAwB,gBAAgB,aAAa,SAAS,MAAM,WAAW,mCAAmC,GAAG,oBAAoB,WAAW,gCAAgC,MAAM,MAAM,kDAAkD,UAAU,oBAAoB,YAAY,+CAA+C,oCAAoC,sCAAsC,kBAAkB,aAAa,WAAW,OAAO,WAAW,wBAAwB,gBAAgB,YAAY,MAAM,WAAW,iCAAiC,uDAAuD,UAAU,iBAAiB,YAAY,WAAW,aAAa,GAAG,mBAAmB,2BAA2B,iCAAiC,WAAW,4BAA4B,MAAM,aAAa,WAAW,IAAI,YAAY,WAAW,WAAW,GAAG,uBAAuB,WAAW,0BAA0B,MAAM,MAAM,6BAA6B,WAAW,aAAa,GAAG,uBAAuB,WAAW,2BAA2B,eAAe,YAAY,MAAM,aAAa,WAAW,IAAI,YAAY,WAAW,YAAY,GAAG,gBAAgB,wBAAwB,YAAY,YAAY,MAAM,WAAW,QAAQ,yBAAyB,iDAAiD,GAAG,uBAAuB,WAAW,uBAAuB,YAAY,YAAY,MAAM,WAAW,YAAY,kBAAkB,iCAAiC,6GAA6G,MAAM,yPAAyP,cAAc,WAAW,EAAE,yCAAyC,mBAAmB,kIAAkI,kCAAkC,EAAE,kzBAAkzB,8BAA8B,sBAAsB,gBAAgB,GAAG,wEAAwE,yBAAyB,uBAAuB,GAAG,8FAA8F,wBAAwB,qBAAqB,gBAAgB,GAAG,oIAAoI,gBAAgB,kBAAkB,wBAAwB,wDAAwD,GAAG,+JAA+J,wBAAwB,GAAG,oKAAoK,sBAAsB,GAAG,mKAAmK,YAAY,uDAAuD,GAAG,uKAAuK,cAAc,uDAAuD,GAAG,iKAAiK,YAAY,uDAAuD,GAAG,sKAAsK,YAAY,GAAG,wKAAwK,YAAY,GAAG,yJAAyJ,2BAA2B,GAAG,4KAA4K,YAAY,qBAAqB,uDAAuD,gDAAgD,kBAAkB,+EAA+E,mBAAmB,GAAG,kLAAkL,oHAAoH,GAAG,GAAG,4kBAA4kB,iBAAiB,cAAc,SAAS,yLAAyL,mEAAmE,gBAAgB,QAAQ,8BAA8B,EAAE,gCAAgC,qIAAqI,MAAM,uEAAuE,oPAAoP,MAAM,sEAAsE,2BAA2B,uBAAuB,yBAAyB,kCAAkC,uBAAuB,kCAAkC,0BAA0B,6BAA6B,oBAAoB,6BAA6B,6BAA6B,0BAA0B,iBAAC,SAAS,MAAM,iIAAiI,iBAAC,yCAAyC,wBAAwB,UAAU,8CAA8C,iBAAC,0GAA0G,KAAC,wCAAwC,wBAAwB,UAAU,8CAA8C,iBAAC,kHAAkH,KAAC,4CAA4C,wBAAwB,QAAQ,QAAQ,iBAAC,4GAA4G,KAAC,yCAAyC,wBAAwB,UAAU,8CAA8C,iBAAC,sGAAsG,KAAC,sCAAsC,wBAAwB,UAAU,8CAA8C,iBAAC,gHAAgH,KAAC,2CAA2C,wBAAwB,aAAa,MAAM,iBAAC,oHAAoH,KAAC,6CAA6C,uCAAuC,eAAe,uDAAuD,MAAM,mDAAmD,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,EAAE,cAAc,MAAM,4EAA4E,aAAa,cAAc,QAAQ,aAAa,EAAE,kDAAkD,MAAM,iDAAiD,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,cAAc,2EAA2E,aAAa,cAAc,QAAQ,aAAa,EAAE,gCAAgC,UAAU,oEAAoE,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,8CAA8C,kzBAAkzB,uBAAuB,gBAAgB,GAAG,uGAAuG,uBAAuB,WAAW,aAAa,kBAAkB,2BAA2B,gFAAgF,GAAG,iJAAiJ,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,qBAAqB,yEAAyE,wBAAwB,8EAA8E,4DAA4D,GAAG,uJAAuJ,sEAAsE,GAAG,GAAG,oOAAoO,iBAAiB,SAAS,8FAA8F,KAAK,WAAW,yBAAyB,yBAAyB,MAAM,KAAK,aAAC,CAAC,EAAE,OAAO,MAAM,KAAK,QAAC,CAAC,GAAG,UAAU,4BAA4B,GAAG,YAAY,SAAS,MAAM,yJAAyJ,sBAAsB,mCAAmC,MAAM,WAAW,gBAAgB,oyBAAoyB,kBAAkB,gDAAgD,sEAAsE,GAAG,gEAAgE,YAAY,iBAAiB,2BAA2B,GAAG,4DAA4D,iBAAiB,4BAA4B,oBAAoB,mBAAmB,oBAAoB,GAAG,kEAAkE,yCAAyC,GAAG,GAAG,iSAAiS,iBAAiB,SAAS,oHAAoH,OAAO,qCAAqC,mBAAmB,OAAO,oBAAoB,iCAAiC,4BAAE,CAAC,8BAAE,GAAG,MAAM,WAAW,cAAc,uCAAuC,UAAU,UAAU,GAAG,cAAc,UAAU,KAAK,OAAE,CAAC,yCAAyC,MAAM,6CAA6C,gBAAgB,oyBAAoyB,iBAAiB,4BAA4B,oBAAoB,mBAAmB,oBAAoB,GAAG,oCAAoC,yCAAyC,GAAG,mCAAmC,kBAAkB,GAAG,GAAG,iIAAiI,0CAA0C,eAAe,QAAQ,cAAc,8BAA8B,aAAa,MAAM,iBAAiB,gBAAgB,cAAc,gEAAgE,aAAa,6DAA6D,wCAAwC,mBAAmB,MAAM,iBAAiB,eAAe,2BAA2B,kBAAkB,aAAa,UAAU,UAAU,sBAAsB,MAAM,oEAAoE,8BAA8B,cAAc,iGAAiG,cAAc,oDAAoD,cAAc,wEAAwE,gBAAgB,0CAA0C,0BAA0B,SAAS,GAAG,mBAAmB,gEAAgE,wFAAwF,2BAA2B,MAAM,mDAAmD,MAAM,0CAA0C,+BAA+B,iCAAiC,MAAM,sBAAsB,MAAM,gDAAgD,kCAAkC,0BAA0B,MAAM,+BAA+B,iCAAiC,iBAAiB,uBAAuB,yBAAyB,4BAA4B,gCAAgC,4BAA4B,iCAAiC,sBAAsB,iCAAiC,aAAa,GAAG,qBAAqB,sBAAsB,qBAAqB,kCAAkC,UAAU,qBAAqB,uCAAuC,YAAY,qBAAqB,gDAAgD,mBAAmB,oFAAoF,GAAG,oBAAoB,gFAAgF,aAAa,2LAA2L,OAAO,iBAAC,YAAY,oBAAoB,SAAS,4BAA4B,wBAAwB,IAAI,eAAe,UAAC,QAAQ,SAAS,UAAU,4EAA4E,OAAO,0DAA0D,qCAAqC,eAAe,OAAO,gEAAgE,QAAQ,aAAa,UAAU,8CAA8C,aAAa,uCAAuC,2BAA2B,IAAI,QAAQ,yBAAyB,UAAU,4EAA4E,WAAW,2BAA2B,UAAU,kFAAkF,GAAG,oyBAAoyB,mHAAmH,+CAA+C,sCAAsC,kBAAkB,kCAAkC,oBAAoB,yBAAyB,GAAG,0CAA0C,2DAA2D,kDAAkD,GAAG,8DAA8D,kBAAkB,YAAY,mBAAmB,wBAAwB,GAAG,4EAA4E,oBAAoB,GAAG,kFAAkF,+CAA+C,GAAG,wCAAwC,qFAAqF,gDAAgD,GAAG,0CAA0C,+DAA+D,qDAAqD,GAAG,uCAAuC,4DAA4D,+CAA+C,GAAG,iEAAiE,kBAAkB,kCAAkC,GAAG,yGAAyG,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,+EAA+E,mBAAmB,2EAA2E,GAAG,+GAA+G,yFAAyF,GAAG,GAAG,2RAA2R,iBAAiB,SAAS,sKAAsK,oBAAoB,yCAAyC,MAAM,WAAW,YAAY,GAAG,UAAU,UAAU,GAAG,YAAY,2BAA2B,yBAAyB,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,YAAY,SAAS,MAAM,6GAA6G,sBAAsB,+BAA+B,0BAA0B,uCAAuC,WAAW,YAAY,QAAQ,gKAAgK,4BAA4B,WAAW,gBAAgB,wzBAAwzB,mHAAmH,+CAA+C,mBAAmB,oBAAoB,GAAG,+EAA+E,8BAA8B,gBAAgB,GAAG,yGAAyG,oBAAoB,GAAG,8HAA8H,qFAAqF,gDAAgD,GAAG,gIAAgI,+DAA+D,qDAAqD,GAAG,sIAAsI,6BAA6B,GAAG,6HAA6H,4DAA4D,+CAA+C,GAAG,+GAA+G,6BAA6B,GAAG,mIAAmI,0CAA0C,2BAA2B,GAAG,6JAA6J,gBAAgB,2BAA2B,GAAG,+JAA+J,gBAAgB,2BAA2B,eAAe,GAAG,4NAA4N,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gBAAgB,iBAAiB,oBAAoB,GAAG,kOAAkO,+CAA+C,GAAG,2LAA2L,0BAA0B,uBAAuB,aAAa,GAAG,GAAG,qkCAAqkC,iBAAiB,SAAS,qFAAqF,aAAa,SAAS,aAAa,SAAS,uBAAuB,iBAAiB,eAAe,yBAAyB,yBAAyB,2BAA2B,uCAAuC,mBAAmB,UAAU,KAAK,qBAAE,CAAC,EAAE,sDAAsD,WAAW,UAAU,KAAK,WAAE,CAAC,+BAA+B,UAAU,0BAA0B,WAAW,MAAM,yHAAyH,8CAA8C,6BAA6B,WAAW,GAAG,kBAAkB,iCAAiC,SAAS,MAAM,mFAAmF,YAAY,UAAU,gBAAgB,WAAW,OAAO,mCAAmC,UAAU,KAAK,qBAAE,CAAC,EAAE,gBAAgB,cAAc,KAAK,YAAE,CAAC,UAAU,MAAM,wIAAwI,QAAQ,kFAAkF,MAAM,+BAA+B,UAAU,8BAA8B,YAAY,UAAU,iBAAC,YAAY,gBAAgB,iBAAiB,6CAA6C,UAAU,qCAAqC,cAAc,gEAAgE,yyBAAyyB,uBAAuB,wCAAwC,iBAAiB,eAAe,kBAAkB,iBAAiB,iBAAiB,sBAAsB,gEAAgE,GAAG,kDAAkD,iBAAiB,GAAG,oDAAoD,iBAAiB,kBAAkB,GAAG,wDAAwD,iBAAiB,kBAAkB,GAAG,uDAAuD,kBAAkB,kBAAkB,GAAG,kDAAkD,gBAAgB,iBAAiB,GAAG,6CAA6C,kEAAkE,GAAG,yCAAyC,0EAA0E,GAAG,mDAAmD,iDAAiD,GAAG,2EAA2E,YAAY,kBAAkB,2BAA2B,iBAAiB,kBAAkB,eAAe,6JAA6J,0CAA0C,wBAAwB,qDAAqD,0CAA0C,GAAG,kCAAkC,UAAU,6BAA6B,KAAK,QAAQ,0BAA0B,KAAK,GAAG,kCAAkC,UAAU,iBAAiB,KAAK,QAAQ,iBAAiB,KAAK,GAAG,kDAAkD,iEAAiE,+DAA+D,iEAAiE,4DAA4D,wDAAwD,kFAAkF,gFAAgF,mBAAmB,8BAA8B,6BAA6B,kCAAkC,oCAAoC,yBAAyB,GAAG,GAAG,oFAAoF,iBAAiB,SAAS,sFAAsF,aAAa,MAAM,yDAAyD,mBAAmB,uBAAuB,yEAAyE,0CAA0C,8CAA8C,IAAI,sBAAsB,+CAA+C,GAAG,MAAM,yCAAyC,kBAAkB,6DAA6D,wDAAwD,6CAA6C,4yBAA4yB,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,0EAA0E,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,oHAAoH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,0HAA0H,0GAA0G,GAAG,6HAA6H,uEAAuE,GAAG,mCAAmC,kBAAkB,oBAAoB,kCAAkC,iDAAiD,GAAG,sGAAsG,oBAAoB,2CAA2C,GAAG,GAAG,imBAAimB,iBAAiB,SAAS,0CAA0C,aAAa,cAAc,WAAW,6CAA6C,mBAAmB,MAAM,0CAA0C,YAAY,EAAE,oCAAoC,+CAA+C,cAAc,uIAAuI,gDAAgD,IAAI,sBAAsB,4CAA4C,WAAW,UAAU,YAAY,OAAO,iyBAAiyB,gDAAgD,6JAA6J,oDAAoD,sEAAsE,kBAAkB,oBAAoB,yBAAyB,uBAAuB,GAAG,6DAA6D,yBAAyB,uBAAuB,uBAAuB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6CAA6C,8CAA8C,kDAAkD,cAAc,qBAAqB,yBAAyB,wBAAwB,uBAAuB,4BAA4B,GAAG,oIAAoI,0DAA0D,GAAG,sEAAsE,sEAAsE,iBAAiB,4BAA4B,GAAG,8EAA8E,gBAAgB,+EAA+E,mDAAmD,wDAAwD,iFAAiF,GAAG,6FAA6F,uBAAuB,GAAG,wFAAwF,sDAAsD,GAAG,uFAAuF,uDAAuD,GAAG,sKAAsK,0DAA0D,GAAG,2FAA2F,2EAA2E,2CAA2C,GAAG,4DAA4D,YAAY,GAAG,gEAAgE,2EAA2E,iBAAiB,eAAe,gBAAgB,GAAG,GAAG,iOAAiO,iBAAiB,SAAS,gCAAgC,OAAO,mBAAmB,gBAAgB,OAAO,cAAc,qBAAqB,yBAAyB,WAAW,OAAO,yBAAyB,WAAW,OAAO,yBAAyB,yBAAyB,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,oBAAoB,WAAW,oCAAoC,UAAU,iBAAiB,YAAY,MAAM,iJAAiJ,4BAA4B,gDAAgD,IAAI,sBAAsB,sDAAsD,WAAW,OAAO,WAAW,iCAAiC,0DAA0D,sBAAsB,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,0BAA0B,oBAAoB,kzBAAkzB,YAAY,kBAAkB,2BAA2B,kDAAkD,0CAA0C,GAAG,4EAA4E,kDAAkD,6JAA6J,0CAA0C,2BAA2B,GAAG,iFAAiF,YAAY,iBAAiB,iBAAiB,mHAAmH,+CAA+C,+EAA+E,0CAA0C,iBAAiB,kBAAkB,GAAG,GAAG,0SAA0S,iBAAiB,SAAS,6SAA6S,aAAa,iBAAiB,+CAA+C,4CAA4C,aAAa,SAAS,aAAa,IAAI,0BAA0B,WAAW,oBAAoB,uBAAuB,iBAAiB,IAAI,mBAAmB,SAAS,wBAAwB,OAAO,0BAA0B,iBAAiB,IAAI,iBAAiB,SAAS,UAAU,OAAO,wBAAwB,iBAAiB,0BAA0B,OAAO,aAAa,EAAE,mBAAmB,OAAE,0DAA0D,GAAG,WAAW,WAAE,QAAQ,MAAM,KAAK,WAAE,+DAA+D,EAAE,WAAW,QAAE,QAAQ,MAAM,KAAK,QAAE,gEAAgE,EAAE,sCAAsC,kCAAkC,0BAA0B,OAAO,KAAK,OAAE,8DAA8D,GAAG,eAAe,mBAAmB,MAAM,YAAY,aAAa,UAAU,aAAa,aAAa,EAAE,oBAAoB,4DAA4D,MAAM,kBAAkB,qBAAE,eAAe,aAAa,eAAe,cAAc,EAAE,OAAO,MAAM,4EAA4E,cAAc,GAAG,UAAU,mBAAmB,GAAG,cAAc,wCAAwC,yBAAyB,6BAA6B,kBAAkB,qBAAqB,8BAA8B,gBAAgB,iBAAiB,SAAS,uGAAuG,cAAc,aAAa,aAAa,MAAM,aAAa,cAAc,WAAW,+CAA+C,MAAM,cAAc,WAAW,gBAAgB,WAAW,iCAAiC,WAAW,aAAa,KAAK,aAAa,EAAE,UAAU,YAAY,OAAO,gzBAAgzB,8EAA8E,6JAA6J,0CAA0C,sEAAsE,kDAAkD,kCAAkC,wBAAwB,wEAAwE,8kBAA8kB,sEAAsE,+DAA+D,2EAA2E,iFAAiF,mFAAmF,kBAAkB,GAAG,uDAAuD,qEAAqE,0GAA0G,GAAG,sKAAsK,mDAAmD,GAAG,8EAA8E,oBAAoB,GAAG,yFAAyF,yBAAyB,uBAAuB,sEAAsE,qBAAqB,iBAAiB,eAAe,+BAA+B,oBAAoB,GAAG,4LAA4L,oEAAoE,GAAG,GAAG,6NAA6N,iBAAiB,SAAS,kPAAkP,iCAAiC,eAAe,wBAAwB,gBAAgB,4CAA4C,sCAAsC,kDAAkD,sDAAsD,gCAAgC,mBAAmB,OAAO,8BAA8B,8BAA8B,8BAA8B,2BAA2B,0BAA0B,wCAAwC,0DAA0D,eAAe,eAAe,mCAAmC,qCAAqC,mBAAmB,SAAS,QAAQ,uHAAuH,8CAA8C,YAAY,QAAQ,+JAA+J,iCAAiC,oBAAoB,gBAAgB,kzBAAkzB,uBAAuB,4EAA4E,8EAA8E,iEAAiE,kEAAkE,eAAe,cAAc,oBAAoB,4BAA4B,uBAAuB,0EAA0E,qHAAqH,iBAAiB,gFAAgF,GAAG,qDAAqD,WAAW,8EAA8E,GAAG,uDAAuD,gBAAgB,GAAG,kDAAkD,4HAA4H,GAAG,yDAAyD,wGAAwG,GAAG,+DAA+D,4HAA4H,GAAG,GAAG,gGAAgG,iBAAiB,SAAS,6FAA6F,OAAO,WAAW,2BAA2B,KAAK,WAAE,CAAC,WAAW,qEAAqE,6BAA6B,mBAAmB,yBAAyB,gBAAgB,QAAQ,6EAA6E,EAAE,gBAAgB,gyBAAgyB,0BAA0B,mBAAmB,mBAAmB,2BAA2B,kBAAkB,uBAAuB,wBAAwB,yCAAyC,uBAAuB,0BAA0B,0BAA0B,GAAG,oCAAoC,mBAAmB,sEAAsE,6BAA6B,GAAG,2CAA2C,yBAAyB,yDAAyD,mBAAmB,GAAG,GAAG,oHAAoH,oGAAoG,iBAAiB,SAAS,yKAAyK,4BAA4B,uBAAuB,0EAA0E,wBAAwB,yTAAyT,GAAG,eAAe,WAAW,mCAAmC,yBAAyB,oCAAoC,cAAc,MAAM,kDAAkD,6BAA6B,OAAO,WAAW,wCAAwC,2BAA2B,YAAY,UAAU,uBAAuB,WAAW,gBAAgB,QAAQ,kGAAkG,eAAe,IAAI,oCAAoC,GAAG,aAAa,oDAAoD,sBAAsB,IAAI,oCAAoC,+BAA+B,iBAAC,oBAAoB,MAAM,qDAAqD,SAAS,KAAK,kCAAkC,aAAa,sBAAsB,6BAA6B,sBAAsB,QAAQ,EAAE,oCAAoC,cAAc,OAAO,oCAAoC,+BAA+B,iBAAC,4BAA4B,MAAM,sDAAsD,KAAK,kCAAkC,aAAa,MAAM,iBAAC,MAAM,KAAC,iFAAiF,UAAU,sBAAsB,EAAE,oBAAoB,EAAE,oCAAoC,EAAE,2BAA2B,oDAAoD,sBAAsB,eAAe,4EAA4E,iBAAC,UAAU,KAAC,MAAM,gDAAgD,0BAA0B,cAAC,MAAM,cAAC,2BAA2B,IAAI,uBAAC,KAAK,GAAG,sBAAC,KAAK,gDAAgD,OAAO,eAAC,gBAAgB,eAAe,kBAAC,6BAA6B,kBAAC,wBAAwB,QAAQ,eAAe,kBAAC,2BAA2B,kBAAC,sBAAsB,GAAG,oFAAoF,2FAA2F,8JAA8J,UAAU,iBAAC,YAAY,KAAC,MAAM,qBAAqB,kBAAkB,SAAS,oCAAoC,yCAAyC,iBAAC,+BAA+B,iBAAC,yGAAyG,eAAe,EAAE,2CAA2C,EAAE,OAAO,iDAAiD,OAAO,sDAAsD,ozBAAozB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,2CAA2C,GAAG,+CAA+C,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,0CAA0C,GAAG,kDAAkD,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,cAAc,wBAAwB,yBAAyB,6CAA6C,GAAG,GAAG,gDAAgD,iBAAiB,SAAS,mFAAmF,uBAAuB,oEAAoE,aAAa,WAAW,UAAU,KAAK,qBAAE,CAAC,mCAAmC,gDAAgD,IAAI,sBAAsB,4CAA4C,mDAAmD,WAAW,eAAe,MAAM,kGAAkG,gBAAgB,myBAAmyB,mDAAmD,eAAe,cAAc,iBAAiB,oBAAoB,4BAA4B,2DAA2D,+CAA+C,oDAAoD,GAAG,mCAAmC,iBAAiB,GAAG,oHAAoH,wBAAwB,2DAA2D,GAAG,8BAA8B,oDAAoD,GAAG,gCAAgC,mBAAmB,GAAG,2CAA2C,4CAA4C,GAAG,4BAA4B,iBAAiB,mBAAmB,6JAA6J,qEAAqE,8DAA8D,uBAAuB,oBAAoB,0BAA0B,mBAAmB,wBAAwB,kBAAkB,GAAG,gCAAgC,iBAAiB,GAAG,uCAAuC,iBAAiB,oBAAoB,GAAG,mCAAmC,wBAAwB,uBAAuB,GAAG,kCAAkC,uBAAuB,0CAA0C,GAAG,yCAAyC,qBAAqB,wBAAwB,2BAA2B,GAAG,2HAA2H,oBAAoB,GAAG,iIAAiI,uBAAuB,GAAG,+IAA+I,kBAAkB,8EAA8E,GAAG,kEAAkE,uBAAuB,GAAG,0IAA0I,kBAAkB,4BAA4B,GAAG,0EAA0E,kBAAkB,8EAA8E,GAAG,qIAAqI,kBAAkB,wBAAwB,4BAA4B,GAAG,oEAAoE,0DAA0D,gDAAgD,GAAG,2GAA2G,yBAAyB,GAAG,kEAAkE,yBAAyB,sEAAsE,GAAG,sMAAsM,kEAAkE,GAAG,iFAAiF,oDAAoD,YAAY,GAAG,4FAA4F,yBAAyB,wBAAwB,GAAG,2FAA2F,kBAAkB,0BAA0B,GAAG,uFAAuF,uBAAuB,GAAG,uEAAuE,kBAAkB,uBAAuB,eAAe,8EAA8E,qBAAqB,qBAAqB,cAAc,uDAAuD,uBAAuB,GAAG,mFAAmF,6EAA6E,GAAG,qEAAqE,uBAAuB,GAAG,mSAAmS,uEAAuE,gDAAgD,GAAG,yuBAAyuB,uEAAuE,gDAAgD,GAAG,8oDAA8oD,qBAAqB,GAAG,6OAA6O,+DAA+D,sDAAsD,GAAG,uVAAuV,wBAAwB,oBAAoB,GAAG,sFAAsF,+DAA+D,sDAAsD,GAAG,seAAse,+DAA+D,sDAAsD,GAAG,ynBAAynB,wBAAwB,oBAAoB,GAAG,6CAA6C,4CAA4C,GAAG,oFAAoF,2GAA2G,GAAG,GAAG,oMAAoM,goDAAgoD,+DAA+D,qHAAqH,43BAA43B,uhCAAuhC,iBAAiB,SAAS,mYAAmY,cAAc,oBAAoB,YAAY,6BAA6B,cAAc,2CAA2C,gBAAgB,qCAAqC,sBAAsB,cAAC,CAAC,gBAAC,aAAa,cAAc,cAAc,cAAc,qKAAqK,aAAa,MAAM,qHAAqH,gBAAgB,8BAA8B,oCAAoC,cAAc,uBAAuB,MAAM,iBAAC,UAAU,GAAG,iBAAC,WAAW,oBAAoB,SAAS,cAAc,2CAA2C,oBAAoB,6BAA6B,EAAE,uBAAuB,oBAAoB,qBAAqB,mCAAmC,cAAC,mBAAmB,cAAC,4CAA4C,aAAa,IAAI,cAAc,GAAG,+CAA+C,iCAAiC,SAAS,gBAAgB,2BAA2B,sBAAsB,KAAK,oBAAoB,eAAe,kCAAkC,iBAAC,cAAc,SAAS,KAAK,qDAAqD,EAAE,MAAM,kKAAkK,2GAA2G,qFAAqF,aAAa,cAAc,UAAU,oBAAoB,qBAAqB,kBAAkB,SAAS,KAAK,+DAA+D,EAAE,sDAAsD,UAAU,EAAE,yBAAyB,KAAK,cAAc,UAAU,oBAAoB,qBAAqB,kBAAkB,gCAAgC,KAAK,+DAA+D,EAAE,6BAA6B,gCAAgC,IAAI,6DAA6D,kCAAkC,yBAAyB,4HAA4H,cAAc,6EAA6E,cAAc,6EAA6E,cAAc,6CAA6C,cAAc,6CAA6C,uBAAuB,KAAK,gBAAC,OAAO,0BAA0B,8BAA8B,0BAA0B,8BAA8B,oCAAoC,qBAAqB,0BAA0B,yCAAyC,0BAA0B,MAAM,0DAA0D,0CAA0C,kCAAkC,wBAAwB,uBAAuB,eAAe,yBAAyB,iDAAiD,MAAM,KAAK,WAAE,CAAC,EAAE,OAAO,MAAM,KAAK,YAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,cAAc,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,oCAAoC,6BAA6B,SAAS,QAAQ,sJAAsJ,WAAW,OAAO,iCAAiC,SAAS,QAAQ,sJAAsJ,4BAA4B,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,wCAAwC,GAAG,oBAAoB,WAAW,wBAAwB,OAAO,WAAW,yBAAyB,UAAU,mBAAmB,GAAG,oBAAoB,iCAAiC,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,qFAAqF,oCAAoC,UAAU,kDAAkD,8CAA8C,mBAAmB,4BAA4B,2CAA2C,eAAC,MAAM,gGAAgG,sBAAsB,gBAAgB,sBAAsB,IAAI,yCAAyC,mJAAmJ,mBAAC,wHAAwH,MAAM,YAAY,wBAAwB,eAAe,aAAa,aAAa,aAAa,wBAAwB,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,eAAe,WAAW,iCAAiC,mBAAmB,2BAA2B,4CAA4C,UAAU,GAAG,oBAAoB,0BAA0B,MAAM,sBAAsB,aAAa,4BAA4B,kBAAkB,YAAY,aAAa,uBAAuB,2BAA2B,iBAAiB,WAAW,eAAe,YAAY,GAAG,UAAU,2BAA2B,WAAW,GAAG,kCAAkC,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,YAAY,2BAA2B,OAAO,yBAAyB,iDAAiD,MAAM,KAAK,WAAE,CAAC,EAAE,OAAO,MAAM,KAAK,YAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,cAAc,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,oCAAoC,WAAW,OAAO,iCAAiC,8LAA8L,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,wCAAwC,GAAG,oBAAoB,WAAW,wBAAwB,OAAO,yBAAyB,WAAW,yBAAyB,UAAU,YAAY,eAAe,UAAU,mBAAmB,GAAG,oBAAoB,iCAAiC,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,qFAAqF,oCAAoC,UAAU,kDAAkD,mCAAmC,qBAAqB,oFAAoF,yBAAyB,qBAAqB,mBAAC,iPAAiP,MAAM,YAAY,kBAAkB,eAAe,aAAa,aAAa,aAAa,wBAAwB,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,eAAe,WAAW,iCAAiC,mBAAmB,8BAA8B,mGAAmG,QAAQ,GAAG,eAAe,SAAS,wLAAwL,cAAc,kEAAkE,gBAAgB,oDAAoD,iBAAC,kBAAkB,qEAAqE,aAAa,oCAAoC,uBAAuB,KAAK,gBAAC,OAAO,kCAAkC,cAAc,iBAAC,kBAAkB,kCAAkC,qBAAqB,eAAe,yBAAyB,+FAA+F,MAAM,YAAY,aAAa,oBAAoB,aAAa,kEAAkE,mBAAmB,EAAE,OAAO,yBAAyB,mDAAmD,MAAM,WAAW,aAAa,yBAAyB,YAAY,EAAE,OAAO,WAAW,0EAA0E,UAAU,iBAAiB,oEAAoE,UAAU,kCAAkC,GAAG,oBAAoB,MAAM,gCAAgC,0BAA0B,GAAG,UAAU,kCAAkC,gBAAgB,IAAI,cAAc,aAAa,WAAW,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,WAAW,eAAe,qDAAqD,iBAAC,kCAAkC,UAAU,GAAG,kCAAkC,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,YAAY,2BAA2B,OAAO,2BAA2B,sBAAsB,OAAO,oBAAoB,YAAY,UAAU,YAAY,GAAG,8DAA8D,mGAAmG,QAAQ,GAAG,MAAM,WAAW,aAAa,aAAa,WAAW,qBAAqB,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,YAAY,EAAE,oBAAoB,WAAW,UAAU,WAAW,aAAa,iCAAiC,0BAA0B,WAAW,UAAU,yDAAyD,iBAAC,sBAAsB,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,YAAY,GAAG,UAAU,YAAY,GAAG,oBAAoB,WAAW,yBAAyB,UAAU,YAAY,YAAY,UAAU,qBAAqB,eAAe,UAAU,gCAAgC,GAAG,oBAAoB,WAAW,iBAAiB,uCAAuC,MAAM,yBAAyB,aAAa,iBAAiB,UAAU,sDAAsD,oCAAoC,UAAU,kDAAkD,iBAAiB,yPAAyP,2BAA2B,qBAAqB,sGAAsG,uIAAuI,MAAM,sIAAsI,4DAA4D,2NAA2N,yBAAyB,iCAAiC,mEAAmE,MAAM,cAAC,YAAY,oBAAoB,mCAAmC,2CAA2C,2BAA2B,iCAAiC,mBAAmB,wHAAwH,mBAAmB,iBAAC,2MAA2M,iCAAiC,mTAAmT,gCAAgC,4DAA4D,gBAAgB,QAAQ,uKAAuK,KAAK,iJAAiJ,KAAK,gLAAgL,KAAK,mJAAmJ,qyBAAqyB,YAAY,mBAAmB,6JAA6J,0CAA0C,kBAAkB,2BAA2B,wBAAwB,2DAA2D,4DAA4D,GAAG,0CAA0C,6DAA6D,GAAG,4EAA4E,YAAY,GAAG,2EAA2E,YAAY,GAAG,oEAAoE,kBAAkB,2BAA2B,qBAAqB,yCAAyC,kCAAkC,GAAG,6GAA6G,oDAAoD,GAAG,kGAAkG,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,wGAAwG,0GAA0G,GAAG,2GAA2G,uEAAuE,GAAG,GAAG,shBAAshB,iBAAiB,kFAAkF,OAAO,oBAAE,MAAM,eAAe,yLAAyL,KAAC,MAAM,GAAG,sBAAC,KAAK,8FAA8F,mBAAmB,uMAAuM,qBAAqB,MAAM,KAAC,QAAQ,KAAC,MAAM,mGAAmG,QAAQ,KAAC,MAAM,QAAQ,kBAAkB,kBAAC,6BAA6B,EAAE,UAAU,4BAA4B,6HAA6H,KAAC,+BAA+B,2BAA2B,SAAS,mCAAmC,kBAAkB,kBAAC,YAAY,EAAE,QAAQ,mDAAmD,ozBAAozB,uBAAuB,cAAc,YAAY,eAAe,wFAAwF,6DAA6D,gFAAgF,kBAAkB,2BAA2B,sBAAsB,mBAAmB,oBAAoB,GAAG,4GAA4G,mHAAmH,+CAA+C,iBAAiB,4BAA4B,mBAAmB,oBAAoB,kBAAkB,qBAAqB,wBAAwB,2BAA2B,uDAAuD,GAAG,kOAAkO,wEAAwE,GAAG,yHAAyH,kEAAkE,mFAAmF,GAAG,GAAG,sRAAsR,iBAAiB,SAAS,oEAAoE,OAAO,mBAAmB,yCAAyC,mBAAmB,YAAY,yDAAyD,oGAAoG,GAAG,oBAAoB,WAAW,0DAA0D,UAAU,qBAAqB,gBAAgB,gzBAAgzB,uBAAuB,kBAAkB,GAAG,iGAAiG,yBAAyB,uBAAuB,sDAAsD,iBAAiB,4BAA4B,mBAAmB,oBAAoB,kBAAkB,mBAAmB,wBAAwB,GAAG,4MAA4M,sEAAsE,+EAA+E,GAAG,0HAA0H,4CAA4C,GAAG,mIAAmI,wFAAwF,6DAA6D,GAAG,qDAAqD,4CAA4C,GAAG,GAAG,gRAAgR,iBAAiB,SAAS,uCAAuC,yCAAyC,+HAA+H,cAAc,0BAA0B,iCAAiC,uBAAuB,oCAAoC,eAAe,eAAe,mBAAmB,UAAU,KAAK,YAAE,CAAC,EAAE,oBAAoB,mBAAmB,4DAA4D,UAAU,qBAAqB,4FAA4F,UAAU,SAAS,OAAO,gDAAgD,UAAU,+CAA+C,UAAU,GAAG,gBAAgB,eAAe,QAAQ,+DAA+D,gFAAgF,yCAAyC,+FAA+F,IAAI,6BAA6B,SAAS,iBAAiB,QAAQ,6BAA6B,yBAAyB,uDAAuD,uzBAAuzB,YAAY,kBAAkB,uDAAuD,kDAAkD,GAAG,qGAAqG,YAAY,yBAAyB,uBAAuB,uBAAuB,kDAAkD,0CAA0C,iBAAiB,kBAAkB,GAAG,8EAA8E,iBAAiB,kDAAkD,oBAAoB,yBAAyB,mBAAmB,mBAAmB,GAAG,6GAA6G,sDAAsD,GAAG,kHAAkH,2CAA2C,GAAG,uDAAuD,kDAAkD,GAAG,2GAA2G,2CAA2C,GAAG,wFAAwF,2DAA2D,kDAAkD,uBAAuB,gBAAgB,mBAAmB,uBAAuB,GAAG,GAAG,4bAA4b,iBAAiB,SAAS,uMAAuM,aAAa,cAAc,cAAc,IAAI,mBAAmB,mBAAmB,sEAAsE,KAAK,qBAAqB,SAAS,OAAO,sBAAsB,SAAS,IAAI,YAAY,gBAAgB,oCAAoC,yBAAyB,gCAAgC,kCAAkC,aAAa,mBAAmB,+BAA+B,oBAAoB,WAAW,UAAU,KAAK,qBAAE,CAAC,gDAAgD,uBAAuB,eAAe,UAAU,YAAY,GAAG,oBAAoB,YAAY,UAAU,YAAY,GAAG,cAAc,UAAU,KAAK,2BAAE,CAAC,WAAW,qDAAqD,kCAAkC,YAAY,yDAAyD,4BAA4B,eAAe,0CAA0C,8BAA8B,4BAA4B,4BAA4B,+DAA+D,gBAAgB,2yBAA2yB,mHAAmH,+CAA+C,qDAAqD,kDAAkD,eAAe,cAAc,kBAAkB,mBAAmB,2DAA2D,4DAA4D,GAAG,oFAAoF,mHAAmH,+CAA+C,2EAA2E,oDAAoD,4BAA4B,iBAAiB,kBAAkB,oBAAoB,kBAAkB,wBAAwB,GAAG,yFAAyF,YAAY,GAAG,4QAA4Q,sEAAsE,+EAA+E,4DAA4D,GAAG,oIAAoI,YAAY,qBAAqB,GAAG,GAAG,uOAAuO,iBAAiB,SAAS,wMAAwM,cAAc,0BAA0B,MAAM,KAAC,QAAQ,2BAA2B,eAAC,yBAAyB,UAAU,8BAA8B,oBAAoB,SAAS,cAAc,OAAO,QAAC,QAAQ,cAAc,gDAAgD,aAAa,SAAS,cAAc,SAAS,4BAA4B,qBAAqB,kCAAkC,QAAQ,KAAC,cAAc,wBAAwB,uBAAuB,0BAA0B,0CAA0C,uCAAuC,yBAAyB,IAAI,GAAG,eAAe,yBAAyB,mBAAmB,iCAAiC,MAAM,sBAAsB,aAAa,oBAAoB,EAAE,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,aAAa,oBAAoB,YAAY,GAAG,UAAU,YAAY,WAAW,OAAO,MAAM,WAAW,aAAa,oCAAoC,WAAW,+BAA+B,YAAY,GAAG,UAAU,mBAAmB,GAAG,wDAAwD,OAAE,CAAC,2BAAE,GAAG,MAAM,WAAW,cAAc,yCAAyC,kIAAkI,yEAAyE,aAAa,gBAAgB,wyBAAwyB,+EAA+E,uBAAuB,6JAA6J,0CAA0C,qDAAqD,oDAAoD,gFAAgF,0BAA0B,iBAAiB,oBAAoB,mBAAmB,GAAG,0EAA0E,kBAAkB,yBAAyB,GAAG,8MAA8M,yBAAyB,uBAAuB,GAAG,wGAAwG,mBAAmB,uBAAuB,iBAAiB,mBAAmB,cAAc,oBAAoB,kDAAkD,gEAAgE,GAAG,8GAA8G,+EAA+E,sEAAsE,GAAG,uGAAuG,kEAAkE,uDAAuD,uBAAuB,+EAA+E,iBAAiB,mBAAmB,cAAc,YAAY,aAAa,oBAAoB,kBAAkB,GAAG,qHAAqH,2EAA2E,oBAAoB,sEAAsE,GAAG,sHAAsH,YAAY,kBAAkB,2BAA2B,kDAAkD,8CAA8C,GAAG,iKAAiK,YAAY,kBAAkB,wBAAwB,uBAAuB,GAAG,yMAAyM,mBAAmB,oBAAoB,wBAAwB,gBAAgB,uBAAuB,GAAG,qNAAqN,YAAY,kBAAkB,GAAG,0MAA0M,mBAAmB,mBAAmB,uBAAuB,mBAAmB,oBAAoB,uBAAuB,GAAG,sNAAsN,wBAAwB,GAAG,kKAAkK,YAAY,kBAAkB,uBAAuB,GAAG,gMAAgM,gBAAgB,GAAG,GAAG,q3CAAq3C,iBAAiB,SAAS,oXAAoX,kBAAC,cAAc,+BAA+B,SAAS,kBAAC,cAAc,+BAA+B,OAAO,aAAa,cAAc,cAAc,oBAAoB,YAAY,0DAA0D,6KAA6K,cAAc,8DAA8D,aAAa,+BAA+B,aAAa,wBAAwB,uCAAuC,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,MAAM,SAAS,uDAAuD,sBAAsB,+BAA+B,0BAA0B,WAAW,cAAc,EAAE,kBAAkB,GAAG,IAAI,4BAA4B,yBAAyB,gBAAgB,oBAAoB,2CAA2C,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,SAAS,sBAAsB,6BAA6B,EAAE,IAAI,4BAA4B,qBAAqB,kBAAkB,eAAe,WAAW,WAAW,KAAK,oBAAoB,0BAA0B,iBAAC,gBAAgB,cAAC,0BAA0B,oCAAoC,EAAE,qFAAqF,WAAW,sBAAsB,IAAI,uBAAuB,GAAG,eAAe,MAAM,iBAAC,MAAM,KAAC,QAAQ,cAAC,uCAAuC,wBAAwB,KAAK,kGAAkG,MAAM,KAAC,MAAM,uEAAuE,kBAAC,MAAM,iEAAiE,kBAAkB,kBAAC,sBAAsB,EAAE,yBAAyB,IAAI,6BAA6B,0BAA0B,gBAAgB,oBAAoB,eAAe,0BAA0B,cAAc,WAAW,aAAa,+BAA+B,aAAa,wBAAwB,uCAAuC,0BAA0B,aAAa,+BAA+B,aAAa,wBAAwB,uBAAuB,gGAAgG,MAAM,EAAE,aAAa,IAAI,aAAa,MAAM,EAAE,mCAAmC,EAAE,0BAA0B,2BAA2B,aAAa,+BAA+B,aAAa,wBAAwB,MAAM,uBAAuB,uDAAuD,qCAAqC,0BAA0B,aAAa,yBAAyB,qBAAqB,2BAA2B,aAAa,yBAAyB,6BAA6B,2BAA2B,aAAa,yBAAyB,qBAAqB,2BAA2B,kBAAkB,+BAA+B,aAAa,6BAA6B,2BAA2B,oBAAoB,qHAAqH,iBAAiB,cAAc,0BAA0B,EAAE,mBAAmB,4BAA4B,qBAAE,wCAAwC,iBAAC,GAAG,qBAAE,sKAAsK,MAAM,EAAE,aAAa,IAAI,OAAO,uCAAuC,wBAAwB,GAAG,6CAA6C,2BAA2B,aAAa,6DAA6D,qBAAqB,MAAM,wFAAwF,wBAAwB,MAAM,6DAA6D,6BAA6B,iDAAiD,kCAAkC,WAAW,0BAA0B,aAAa,wBAAwB,MAAM,wBAAwB,SAAS,0BAA0B,OAAO,eAAe,6BAA6B,iCAAiC,iCAAiC,WAAE,CAAC,YAAE,GAAG,MAAM,WAAW,cAAc,2BAA2B,UAAU,UAAU,GAAG,wCAAwC,MAAM,KAAK,aAAE,SAAS,EAAE,OAAO,MAAM,KAAK,QAAE,CAAC,GAAG,UAAU,mBAAmB,GAAG,sBAAsB,kGAAkG,gCAAgC,UAAU,KAAK,aAAE,CAAC,EAAE,cAAc,UAAU,KAAK,WAAE,CAAC,EAAE,cAAc,UAAU,KAAK,OAAE,CAAC,EAAE,oBAAoB,uCAAuC,0FAA0F,UAAU,gBAAgB,YAAY,QAAQ,wKAAwK,8EAA8E,WAAW,WAAW,iBAAiB,sBAAsB,iBAAiB,sEAAsE,kCAAkC,2BAA2B,mDAAmD,IAAI,KAAK,sBAAsB,aAAa,UAAU,yBAAyB,GAAG,SAAS,0CAA0C,mBAAmB,gBAAgB,2BAA2B,EAAE,+CAA+C,qBAAqB,gBAAgB,yBAAyB,yBAAyB,uBAAC,qBAAqB,yBAAyB,sEAAsE,sBAAC,+BAA+B,uBAAuB,GAAG,iBAAC,aAAa,iBAAiB,4BAA4B,yCAAyC,SAAS,aAAa,iBAAiB,gBAAgB,SAAS,aAAa,gBAAgB,IAAI,YAAY,OAAO,mGAAmG,sBAAC,qBAAqB,qBAAqB,QAAQ,WAAW,iBAAiB,IAAI,eAAe,SAAS,iBAAiB,+BAA+B,OAAO,8DAA8D,iBAAiB,IAAI,yBAAyB,GAAG,0BAA0B,iBAAiB,SAAS,mBAAC,yBAAyB,iBAAC,SAAS,mBAAC,QAAQ,OAAO,mBAAmB,sBAAsB,oBAAoB,mBAAmB,2CAA2C,SAAS,MAAM,qFAAqF,KAAK,GAAG,OAAO,eAAe,iBAAiB,6CAA6C,mHAAmH,eAAe,8BAA8B,mBAAmB,iCAAiC,eAAe,qBAAqB,MAAM,gBAAC,UAAU,yBAAyB,2BAA2B,iBAAC,aAAa,kCAAkC,SAAS,UAAU,kBAAkB,eAAe,oEAAoE,uBAAuB,uBAAC,6CAA6C,oBAAoB,GAAG,sBAAC,eAAe,SAAS,gCAAgC,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,+DAA+D,GAAG,6BAA6B,kBAAkB,eAAe,UAAU,sCAAsC,cAAc,IAAI,4BAA4B,SAAS,cAAc,oBAAoB,MAAM,4BAA4B,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,0CAA0C,iBAAiB,wBAAwB,0BAA0B,eAAe,4BAA4B,eAAe,IAAI,kGAAkG,GAAG,UAAU,KAAK,SAAS,SAAS,oCAAoC,GAAG,cAAc,eAAe,8BAA8B,YAAY,4CAA4C,eAAe,QAAQ,qBAAqB,cAAC,KAAK,kBAAC,iCAAiC,MAAM,SAAC,WAAW,YAAY,IAAI,SAAS,GAAG,sBAAsB,aAAa,eAAe,MAAM,OAAO,mBAAmB,IAAI,eAAe,IAAI,0EAA0E,GAAG,UAAU,qDAAqD,GAAG,iBAAC,0BAA0B,YAAY,QAAQ,oBAAoB,aAAa,mBAAmB,EAAE,kBAAkB,EAAE,wCAAwC,EAAE,oBAAoB,IAAI,4BAA4B,SAAS,aAAa,wCAAwC,gBAAgB,wBAAwB,MAAM,eAAe,IAAI,4GAA4G,GAAG,OAAO,sBAAsB,yBAAyB,wBAAwB,gCAAgC,mBAAmB,KAAC,MAAM,sBAAsB,iBAAC,KAAK,MAAM,cAAC,IAAI,aAAa,uBAAC,iDAAiD,SAAS,QAAQ,eAAe,mCAAmC,eAAe,4CAA4C,EAAE,MAAM,cAAC,gDAAgD,eAAe,MAAM,MAAM,SAAC,WAAW,gBAAgB,wCAAwC,WAAW,MAAM,iBAAC,WAAW,KAAC,GAAG,iBAAC,KAAK,OAAO,sDAAsD,qBAAqB,KAAK,eAAe,wBAAwB,EAAE,SAAS,cAAc,4CAA4C,MAAM,eAAe,gCAAgC,cAAc,0BAA0B,IAAI,kGAAkG,GAAG,kBAAkB,MAAM,EAAE,uBAAuB,KAAK,UAAU,wHAAwH,cAAc,uHAAuH,uBAAuB,KAAC,qBAAqB,MAAM,EAAE,uBAAuB,qCAAqC,OAAO,oBAAoB,gCAAgC,EAAE,wEAAwE,IAAI,4BAA4B,cAAc,0BAA0B,IAAI,wEAAwE,GAAG,OAAO,mHAAmH,EAAE,4BAA4B,0yBAA0yB,YAAY,mHAAmH,+CAA+C,oDAAoD,mBAAmB,0BAA0B,iBAAiB,2DAA2D,4DAA4D,6DAA6D,GAAG,GAAG,kEAAkE,iBAAiB,SAAS,+FAA+F,iCAAiC,mBAAmB,SAAS,EAAE,aAAa,EAAE,6CAA6C,+BAA+B,aAAa,mBAAmB,mCAAmC,uzBAAuzB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,YAAY,wBAAwB,sCAAsC,mBAAmB,GAAG,uDAAuD,sEAAsE,GAAG,uDAAuD,sEAAsE,eAAe,GAAG,0DAA0D,2DAA2D,sBAAsB,GAAG,sDAAsD,qBAAqB,GAAG,qDAAqD,gBAAgB,GAAG,GAAG,oDAAoD,iBAAiB,SAAS,6EAA6E,KAAK,yBAAyB,MAAM,WAAW,iBAAiB,GAAG,UAAU,eAAe,GAAG,oBAAoB,WAAW,kCAAkC,UAAU,eAAe,WAAW,iFAAiF,8EAA8E,qBAAqB,gBAAgB,6yBAA6yB,YAAY,wBAAwB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,uBAAuB,eAAe,kBAAkB,GAAG,iEAAiE,cAAc,eAAe,GAAG,2FAA2F,cAAc,eAAe,0BAA0B,GAAG,uFAAuF,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,eAAe,4DAA4D,8EAA8E,qBAAqB,GAAG,mGAAmG,4DAA4D,GAAG,6FAA6F,sEAAsE,GAAG,6FAA6F,eAAe,GAAG,gGAAgG,2DAA2D,sBAAsB,GAAG,kFAAkF,kBAAkB,uBAAuB,cAAc,YAAY,eAAe,4DAA4D,8EAA8E,gFAAgF,GAAG,8FAA8F,mBAAmB,GAAG,gHAAgH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gBAAgB,qBAAqB,sCAAsC,cAAc,GAAG,sHAAsH,sEAAsE,GAAG,yHAAyH,2DAA2D,sBAAsB,GAAG,GAAG,+WAA+W,uzBAAuzB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,YAAY,wBAAwB,sCAAsC,mBAAmB,GAAG,uDAAuD,sEAAsE,GAAG,uDAAuD,sEAAsE,eAAe,GAAG,0DAA0D,2DAA2D,sBAAsB,GAAG,sDAAsD,qBAAqB,GAAG,qDAAqD,gBAAgB,GAAG,GAAG,oEAAoE,iBAAiB,SAAS,oFAAoF,iCAAiC,6BAA6B,MAAM,EAAE,YAAY,oBAAoB,KAAK,2BAA2B,SAAS,+GAA+G,aAAa,SAAS,cAAc,gDAAgD,SAAS,4EAA4E,YAAY,kFAAkF,0BAA0B,sCAAsC,eAAe,mBAAmB,uBAAuB,OAAO,cAAc,UAAU,KAAK,WAAE,CAAC,EAAE,cAAc,yBAAyB,iCAAiC,MAAM,WAAW,mBAAmB,GAAG,UAAU,iBAAiB,GAAG,YAAY,SAAS,MAAM,wJAAwJ,+CAA+C,YAAY,MAAM,6HAA6H,8BAA8B,4BAA4B,YAAY,2BAA2B,gCAAgC,IAAI,YAAY,iBAAiB,aAAa,aAAa,UAAU,oBAAoB,yBAAyB,MAAM,WAAW,sBAAsB,GAAG,UAAU,oBAAoB,GAAG,YAAY,QAAQ,MAAM,uJAAuJ,mFAAmF,0BAA0B,aAAa,OAAO,yyBAAyyB,gFAAgF,6JAA6J,0CAA0C,4DAA4D,8EAA8E,GAAG,mEAAmE,kBAAkB,wBAAwB,4BAA4B,6BAA6B,GAAG,wGAAwG,YAAY,wBAAwB,sCAAsC,2DAA2D,wBAAwB,GAAG,sGAAsG,YAAY,iFAAiF,kDAAkD,iDAAiD,2EAA2E,mBAAmB,uBAAuB,kBAAkB,wBAAwB,4BAA4B,kCAAkC,uBAAuB,GAAG,8IAA8I,sDAAsD,GAAG,sEAAsE,YAAY,kBAAkB,2BAA2B,yBAAyB,GAAG,uFAAuF,6EAA6E,GAAG,yEAAyE,gBAAgB,gBAAgB,iEAAiE,GAAG,GAAG,mmBAAmmB,iBAAiB,SAAS,iFAAiF,SAAS,0EAA0E,aAAa,GAAG,OAAO,mEAAmE,cAAc,kEAAkE,OAAO,mBAAmB,qBAAqB,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,qCAAqC,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,WAAW,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,qCAAqC,yBAAyB,MAAM,4BAA4B,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,MAAM,4BAA4B,aAAa,sBAAsB,YAAY,EAAE,OAAO,yBAAyB,WAAW,OAAO,yBAAyB,mBAAmB,mCAAmC,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,WAAW,OAAO,yBAAyB,WAAW,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,WAAW,OAAO,yBAAyB,WAAW,OAAO,WAAW,4CAA4C,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,eAAe,UAAU,uBAAuB,WAAW,GAAG,oBAAoB,2BAA2B,UAAU,KAAK,WAAE,CAAC,EAAE,kBAAkB,6BAA6B,UAAU,UAAU,8DAA8D,mBAAmB,gBAAgB,mBAAmB,UAAU,0KAA0K,EAAE,cAAc,gBAAgB,6yBAA6yB,kDAAkD,GAAG,2EAA2E,oBAAoB,2DAA2D,GAAG,uCAAuC,kDAAkD,GAAG,wCAAwC,mDAAmD,GAAG,qCAAqC,gDAAgD,GAAG,wCAAwC,0CAA0C,GAAG,oCAAoC,+CAA+C,+BAA+B,GAAG,mCAAmC,uEAAuE,iBAAiB,eAAe,yBAAyB,uBAAuB,oBAAoB,kBAAkB,GAAG,8CAA8C,+DAA+D,mBAAmB,GAAG,iDAAiD,0CAA0C,GAAG,GAAG,2DAA2D,iBAAiB,SAAS,2LAA2L,uBAAuB,UAAU,0BAA0B,aAAa,wBAAwB,MAAM,eAAe,WAAW,SAAS,eAAe,sBAAsB,GAAG,wBAAwB,eAAe,SAAS,SAAS,6FAA6F,WAAW,8CAA8C,sEAAsE,8HAA8H,+BAA+B,qCAAqC,GAAG,iCAAiC,oBAAoB,gBAAgB,mBAAmB,gBAAgB,IAAI,qBAAqB,uCAAuC,gCAAgC,qBAAqB,4BAA4B,+BAA+B,OAAO,WAAW,mBAAmB,kGAAkG,wEAAwE,gBAAgB,2CAA2C,eAAe,iBAAiB,KAAK,wBAAwB,iEAAiE,uBAAuB,WAAW,cAAc,oBAAoB,MAAM,sDAAsD,sDAAsD,sDAAsD,gCAAgC,qBAAqB,mEAAmE,SAAS,uBAAuB,qGAAqG,sJAAsJ,qFAAqF,iEAAiE,mBAAmB,qBAAqB,MAAM,kBAAkB,eAAe,8BAA8B,2BAA2B,YAAY,QAAQ,yBAAyB,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,kBAAkB,IAAI,iCAAiC,eAAe,iCAAiC,KAAK,+BAA+B,oBAAoB,GAAG,SAAS,IAAI,4IAA4I,0BAA0B,8BAA8B,mBAAmB,yDAAyD,OAAO,iFAAiF,SAAS,eAAe,aAAa,gDAAgD,eAAe,MAAM,+CAA+C,qCAAqC,yBAAyB,8CAA8C,0HAA0H,MAAM,EAAE,UAAU,IAAI,QAAQ,4XAA4X,IAAI,6BAA6B,QAAQ,mCAAmC,6BAA6B,KAAC,4EAA4E,+CAA+C,mCAAmC,gIAAgI,wEAAwE,iBAAiB,6BAA6B,8BAA8B,8DAA8D,GAAG,SAAS,8BAA8B,+BAA+B,qBAAqB,uCAAuC,IAAI,OAAO,eAAS,QAAQ,eAAe,0BAA0B,0EAA0E,8BAA8B,eAAe,sDAAsD,QAAQ,4QAA4Q,IAAI,6BAA6B,SAAS,mCAAmC,sCAAsC,uEAAuE,mHAAmH,eAAe,0HAA0H,iFAAiF,SAAS,4BAA4B,MAAM,QAAE,EAAE,cAAc,EAAE,2BAA2B,eAAe,iBAAiB,wEAAwE,QAAQ,0cAA0c,IAAI,6BAA6B,kCAAkC,mCAAmC,wKAAwK,4EAA4E,mEAAmE,2HAA2H,+CAA+C,mCAAmC,uBAAuB,MAAM,cAAC,YAAY,gEAAgE,GAAG,2BAA2B,iCAAiC,QAAQ,KAAK,iBAAiB,oDAAoD,wDAAwD,wBAAwB,GAAG,4BAA4B,aAAa,yIAAyI,6FAA6F,IAAI,qCAAqC,+CAA+C,qGAAqG,iBAAiB,KAAK,sBAAC,KAAK,2BAA2B,cAAc,+JAA+J,IAAI,6BAA6B,yBAAyB,mCAAmC,wKAAwK,4EAA4E,yFAAyF,mMAAmM,iDAAiD,kMAAkM,OAAO,mCAAmC,uBAAuB,mDAAmD,wDAAwD,GAAG,2BAA2B,2BAA2B,cAAc,KAAK,oCAAoC,4CAA4C,8BAA8B,wBAAwB,GAAG,4BAA4B,iCAAiC,+CAA+C,qGAAqG,iBAAiB,UAAU,2BAA2B,iBAAiB,sDAAsD,gBAAgB,uBAAuB,gBAAgB,+BAA+B,aAAa,+BAA+B,syBAAsyB,YAAY,kBAAkB,2BAA2B,uBAAuB,kDAAkD,iBAAiB,kBAAkB,mHAAmH,+CAA+C,0CAA0C,yDAAyD,GAAG,sHAAsH,oBAAoB,eAAe,gBAAgB,eAAe,gBAAgB,eAAe,cAAc,kBAAkB,GAAG,6CAA6C,0DAA0D,GAAG,gFAAgF,uBAAuB,cAAc,kCAAkC,wDAAwD,0CAA0C,sBAAsB,eAAe,GAAG,oEAAoE,YAAY,mBAAmB,uBAAuB,iBAAiB,kBAAkB,2BAA2B,2DAA2D,4DAA4D,GAAG,+EAA+E,6DAA6D,GAAG,6GAA6G,YAAY,GAAG,uGAAuG,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,qHAAqH,4DAA4D,iBAAiB,uBAAuB,0BAA0B,GAAG,GAAG,soBAAsoB,iBAAiB,SAAS,6EAA6E,cAAc,MAAM,kBAAC,KAAK,kBAAC,IAAI,yCAAyC,00BAA00B,IAAI,6GAA6G,gBAAgB,aAAa,mBAAmB,EAAE,gEAAgE,YAAY,mCAAmC,eAAe,SAAS,SAAS,WAAW,iBAAiB,uDAAuD,GAAG,oFAAoF,eAAe,yCAAyC,eAAe,gCAAgC,cAAc,0BAA0B,0CAA0C,0BAA0B,cAAc,yBAAyB,eAAe,4DAA4D,eAAe,gEAAgE,yCAAyC,iBAAiB,mDAAmD,mDAAmD,0BAA0B,kDAAkD,UAAE,KAAK,qBAAqB,SAAS,MAAM,IAAI,cAAc,SAAS,IAAI,qEAAqE,EAAE,iBAAC,2EAA2E,MAAM,sBAAsB,8BAA8B,MAAM,EAAE,kBAAkB,IAAI,kBAAkB,iBAAiB,WAAW,GAAG,iBAAC,iDAAiD,MAAM,EAAE,iBAAiB,4EAA4E,IAAI,KAAK,aAAa,0DAA0D,cAAc,yBAAyB,8BAA8B,yBAAyB,iBAAC,iBAAiB,wBAAwB,EAAE,cAAc,cAAc,cAAc,cAAc,cAAc,cAAc,eAAe,0BAA0B,iBAAiB,oBAAoB,qBAAqB,OAAO,iBAAC,WAAW,6BAA6B,0CAA0C,YAAY,OAAO,qFAAqF,2FAA2F,4BAA4B,8BAA8B,iBAAiB,6BAA6B,YAAY,YAAY,OAAO,qFAAqF,IAAI,+EAA+E,SAAS,IAAI,UAAU,UAAC,kFAAkF,SAAS,8HAA8H,iBAAiB,SAAS,eAAe,mCAAmC,eAAe,SAAS,QAAC,gBAAgB,QAAC,mGAAmG,eAAe,qCAAqC,uCAAuC,SAAS,kBAAkB,UAAU,kCAAkC,6IAA6I,OAAO,UAAU,kCAAkC,sHAAsH,GAAG,iBAAiB,MAAM,iFAAiF,gBAAgB,4GAA4G,+IAA+I,6PAA6P,oBAAoB,QAAQ,UAAU,qHAAqH,GAAG,0CAA0C,cAAc,oCAAoC,cAAc,iBAAiB,mBAAmB,KAAC,WAAW,oBAAoB,yBAAyB,eAAe,cAAc,SAAS,OAAO,4CAA4C,sBAAsB,EAAE,oBAAoB,cAAc,qBAAqB,mBAAmB,kBAAC,MAAM,KAAC,kEAAkE,+BAA+B,uCAAuC,OAAO,4BAA4B,YAAY,qBAAqB,6BAA6B,EAAE,KAAK,cAAc,4DAA4D,YAAY,EAAE,iBAAiB,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,UAAU,yFAAyF,EAAE,4BAA4B,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,4BAA4B,iEAAiE,GAAG,4BAA4B,eAAe,MAAM,6FAA6F,cAAc,gCAAgC,cAAc,yBAAyB,IAAI,yCAAyC,SAAS,4BAA4B,0BAA0B,eAAe,gBAAgB,mHAAmH,EAAE,iBAAiB,OAAO,wEAAwE,EAAE,cAAc,IAAI,+FAA+F,EAAE,cAAc,oCAAoC,iBAAC,8BAA8B,iBAAiB,oCAAoC,cAAc,4CAA4C,iBAAC,cAAc,aAAa,iBAAiB,EAAE,oBAAoB,iBAAiB,eAAe,kBAAC,iBAAiB,EAAE,iGAAiG,MAAM,iBAAC,gBAAgB,KAAC,MAAM,GAAG,sBAAC,KAAK,uBAAuB,SAAS,cAAC,KAAK,YAAY,GAAG,QAAQ,6BAA6B,EAAE,GAAG,uBAAC,KAAK,SAAS,4BAA4B,aAAa,cAAC,KAAK,UAAU,KAAK,6BAA6B,EAAE,oFAAoF,gBAAgB,cAAc,UAAU,OAAO,mBAAmB,IAAI,eAAe,IAAI,kIAAkI,EAAE,eAAe,0EAA0E,eAAe,kCAAkC,mBAAmB,KAAC,6BAA6B,gBAAgB,6BAA6B,sBAAsB,0BAA0B,iBAAiB,6BAA6B,sBAAsB,SAAS,UAAU,UAAU,iBAAiB,iCAAiC,kBAAkB,0BAA0B,iBAAiB,kBAAkB,iCAAiC,SAAS,OAAO,SAAS,OAAO,SAAS,6CAA6C,oEAAoE,UAAU,gBAAgB,QAAQ,kBAAkB,kBAAC,YAAY,EAAE,mBAAmB,4CAA4C,iBAAiB,uCAAuC,IAAI,SAAS,OAAO,sEAAsE,cAAc,WAAW,oCAAoC,iBAAC,aAAa,IAAI,iBAAC,SAAS,iBAAC,GAAG,iBAAC,0DAA0D,gDAAgD,yBAAyB,cAAc,WAAW,wBAAwB,wDAAwD,eAAe,gCAAgC,cAAc,0BAA0B,UAAU,oHAAoH,EAAE,0BAA0B,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,2JAA2J,yDAAyD,mCAAmC,oEAAoE,wCAAwC,aAAa,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,2JAA2J,yDAAyD,mCAAmC,oEAAoE,wCAAwC,aAAa,eAAe,MAAM,mCAAmC,sDAAsD,IAAI,aAAa,GAAG,+BAA+B,gCAAgC,IAAI,eAAe,+BAA+B,eAAe,sBAAsB,GAAG,cAAc,8BAA8B,cAAc,OAAO,eAAe,oBAAoB,IAAI,6BAA6B,oBAAoB,YAAY,+CAA+C,KAAK,yCAAyC,kBAAC,WAAW,uCAAuC,gCAAgC,KAAK,cAAc,6BAA6B,GAAG,cAAc,YAAY,2BAA2B,EAAE,cAAc,IAAI,YAAY,EAAE,eAAe,gCAAgC,cAAc,0BAA0B,iEAAiE,yCAAyC,YAAY,iBAAiB,gCAAgC,sCAAsC,gEAAgE,+DAA+D,kBAAkB,wBAAwB,KAAK,uDAAuD,EAAE,GAAG,4BAA4B,eAAe,QAAQ,iIAAiI,eAAe,YAAY,aAAa,qEAAqE,KAAC,wBAAwB,oBAAoB,sCAAsC,4BAA4B,mDAAmD,GAAG,iBAAiB,yEAAyE,SAAS,yBAAyB,mCAAmC,iCAAiC,EAAE,yBAAyB,SAAS,yBAAyB,mCAAmC,iCAAiC,GAAG,iBAAiB,qBAAqB,OAAO,wBAAwB,WAAW,iBAAiB,iBAAiB,OAAO,wBAAwB,IAAI,oFAAoF,6EAA6E,uNAAuN,gBAAgB,iBAAiB,sBAAsB,OAAO,wBAAwB,IAAI,qFAAqF,IAAI,0FAA0F,SAAS,IAAI,UAAU,UAAC,6EAA6E,SAAS,wBAAwB,sBAAsB,6EAA6E,yBAAyB,8BAA8B,8KAA8K,iBAAiB,gBAAgB,iBAAiB,8DAA8D,kBAAkB,8BAA8B,+BAA+B,cAAc,aAAa,cAAc,aAAa,eAAe,cAAc,iBAAiB,sCAAsC,mBAAmB,GAAG,iBAAiB,qDAAqD,yBAAyB,mBAAmB,sCAAsC,aAAa,MAAM,EAAE,kBAAkB,EAAE,GAAG,qBAAqB,eAAe,oCAAoC,eAAe,OAAO,0EAA0E,iBAAiB,IAAI,+OAA+O,6BAA6B,iBAAC,YAAY,KAAC,qHAAqH,KAAC,GAAG,iBAAC,qXAAqX,cAAc,6BAA6B,QAAQ,mBAAmB,mCAAmC,KAAE,4EAA4E,EAAE,6BAA6B,mCAAmC,KAAE,uEAAuE,sBAAsB,mBAAmB,KAAE,uFAAuF,EAAE,qBAAqB,kCAAE,CAAC,6BAAE,gIAAgI,EAAE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,6BAA6B,qCAAqC,KAAE,2FAA2F,sBAAsB,mBAAmB,KAAE,uHAAuH,EAAE,mBAAmB,KAAE,sHAAsH,EAAE,EAAE,6BAA6B,qCAAqC,2BAAE,6FAA6F,sBAAsB,mBAAmB,2BAAE,yHAAyH,EAAE,mBAAmB,2BAAE,wHAAwH,EAAE,EAAE,mCAAmC,4BAAE,oEAAoE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,sBAAsB,mCAAmC,4BAAE,2EAA2E,EAAE,mCAAmC,SAAE,8DAA8D,EAAE,mCAAmC,mBAAE,kEAAkE,EAAE,mCAAmC,QAAE,oGAAoG,EAAE,mCAAmC,+BAAE,wEAAwE,EAAE,EAAE,sBAAsB,oBAAoB,EAAE,gDAAgD,qBAAE,CAAC,MAAE,oFAAoF,EAAE,6CAA6C,qBAAE,CAAC,MAAE,6CAA6C,EAAE,4CAA4C,qBAAE,CAAC,MAAE,2CAA2C,EAAE,4CAA4C,qBAAE,CAAC,MAAE,2CAA2C,EAAE,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,mCAAmC,oCAAE,6GAA6G,EAAE,mCAAmC,sCAAE,2GAA2G,EAAE,EAAE,EAAE,+QAA+Q,sCAAsC,WAAW,OAAO,kGAAkG,aAAa,MAAM,YAAY,kHAAkH,KAAK,eAAe,8GAA8G,2DAA2D,EAAE,KAAK,sGAAsG,SAAS,mDAAmD,EAAE,KAAK,sEAAsE,OAAO,wDAAwD,IAAI,eAAe,IAAI,uEAAuE,EAAE,cAAc,gCAAgC,cAAc,yBAAyB,yCAAyC,IAAI,gBAAgB,QAAQ,kCAAkC,0BAA0B,cAAc,0CAA0C,cAAc,aAAa,eAAe,wBAAwB,cAAc,iDAAiD,eAAe,uBAAuB,MAAM,iBAAC,OAAO,cAAC,OAAO,KAAC,2BAA2B,+BAA+B,kBAAkB,eAAe,uBAAuB,cAAc,yBAAyB,qBAAqB,sBAAsB,MAAM,SAAS,iBAAC,kCAAkC,oCAAoC,UAAU,wDAAwD,GAAG,yBAAyB,aAAa,mHAAmH,2CAA2C,IAAI,SAAS,0BAA0B,QAAQ,0BAA0B,aAAa,iBAAC,yCAAyC,qCAAqC,mBAAmB,MAAM,mDAAmD,uBAAuB,6BAA6B,6BAA6B,2DAA2D,OAAO,ySAAyS,yBAAyB,EAAE,yBAAyB,4BAA4B,eAAe,YAAY,+BAA+B,kMAAkM,GAAG,+BAA+B,eAAe,SAAS,wWAAwW,aAAa,QAAQ,oEAAoE,uBAAuB,mBAAmB,qCAAqC,yCAAyC,oCAAoC,MAAM,kGAAkG,EAAE,oCAAoC,MAAM,sGAAsG,EAAE,0BAA0B,MAAM,mBAAmB,QAAE,gFAAgF,EAAE,oHAAoH,uBAAuB,iBAAiB,EAAE,mBAAmB,2BAAE,wEAAwE,EAAE,iBAAiB,QAAQ,aAAa,gBAAgB,iBAAiB,EAAE,mBAAmB,mBAAE,0EAA0E,EAAE,mBAAmB,QAAE,qHAAqH,QAAQ,mBAAmB,WAAE,kDAAkD,EAAE,iBAAiB,EAAE,mBAAmB,MAAE,8EAA8E,EAAE,mBAAmB,MAAE,oFAAoF,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,WAAW,cAAc,iBAAiB,cAAc,gBAAgB,WAAW,eAAe,WAAW,4HAA4H,WAAW,kBAAkB,cAAc,mBAAmB,SAAS,aAAa,GAAG,WAAW,WAAW,GAAG,uBAAuB,MAAM,WAAW,cAAc,iBAAiB,cAAc,2BAA2B,WAAW,kBAAkB,YAAY,GAAG,WAAW,WAAW,GAAG,uBAAuB,2BAA2B,6CAA6C,oBAAoB,yBAAyB,eAAe,SAAS,kGAAkG,OAAO,6CAA6C,yBAAyB,mDAAmD,KAAK,cAAc,4HAA4H,UAAU,UAAU,0CAA0C,IAAI,eAAe,WAAW,qBAAqB,UAAU,GAAG,oBAAoB,aAAa,cAAc,MAAM,EAAE,OAAO,sCAAsC,KAAK,MAAE,mGAAmG,IAAI,MAAM,kHAAkH,cAAc,cAAc,WAAW,cAAc,YAAY,cAAc,mBAAmB,WAAW,cAAc,YAAY,WAAW,UAAU,0CAA0C,WAAW,OAAO,mBAAmB,UAAU,WAAW,cAAc,qBAAqB,cAAc,cAAc,WAAW,kBAAkB,cAAc,mBAAmB,cAAc,gBAAgB,WAAW,6DAA6D,EAAE,cAAc,+CAA+C,kBAAkB,YAAY,UAAU,aAAa,eAAe,YAAY,cAAc,wBAAwB,cAAc,wBAAwB,cAAc,qBAAqB,cAAc,iBAAiB,cAAc,eAAe,cAAc,sBAAsB,cAAC,CAAC,iCAAiC,oBAAoB,wGAAwG,MAAM,0BAA0B,aAAa,WAAW,KAAK,QAAE,4FAA4F,EAAE,0EAA0E,EAAE,GAAG,UAAU,aAAa,GAAG,oBAAoB,uBAAuB,KAAK,OAAE,2DAA2D,EAAE,KAAK,MAAE,+GAA+G,IAAI,MAAM,0GAA0G,aAAa,YAAY,GAAG,UAAU,aAAa,eAAe,uBAAuB,cAAc,gBAAgB,WAAW,UAAU,6BAA6B,4BAA4B,QAAQ,YAAY,WAAW,iBAAiB,mCAAmC,uBAAuB,MAAM,sBAAsB,GAAG,WAAW,cAAc,GAAG,uBAAuB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,kBAAkB,cAAc,qEAAqE,yBAAyB,gBAAgB,kBAAkB,mbAAmb,mBAAmB,kEAAkE,mBAAmB,2CAA2C,mBAAmB,6BAA6B,8DAA8D,MAAM,2BAA2B,KAAC,8CAA8C,0GAA0G,wCAAwC,wCAAwC,wCAAwC,UAAU,mCAAmC,MAAM,iBAAC,MAAM,KAAC,MAAM,oCAAoC,8DAA8D,mDAAmD,mBAAmB,2CAA2C,mBAAmB,6BAA6B,2HAA2H,MAAM,IAAI,mBAAmB,aAAa,2CAA2C,qBAAqB,MAAM,iBAAC,UAAU,KAAC,MAAM,kGAAkG,wDAAwD,mBAAmB,6CAA6C,mBAAmB,8CAA8C,2HAA2H,MAAM,IAAI,eAAe,aAAa,iFAAiF,wDAAwD,mBAAmB,wBAAwB,eAAe,yBAAyB,KAAC,QAAQ,iBAAC,KAAK,oDAAoD,+CAA+C,WAAW,EAAE,QAAQ,qCAAqC,KAAC,qDAAqD,WAAW,EAAE,QAAQ,GAAG,wFAAwF,+EAA+E,iCAAiC,MAAM,KAAC,qBAAqB,uCAAuC,mOAAmO,kCAAkC,uBAAuB,eAAe,+IAA+I,4PAA4P,oIAAoI,EAAE,eAAe,qDAAqD,qEAAqE,EAAE,MAAM,gCAAgC,cAAc,+DAA+D,4BAA4B,aAAa,kBAAkB,aAAa,WAAW,aAAa,OAAO,mFAAmF,aAAa,4BAA4B,cAAc,wDAAwD,aAAa,yBAAyB,aAAa,QAAQ,WAAW,gCAAgC,aAAa,0CAA0C,OAAO,OAAO,kzBAAkzB,YAAY,kBAAkB,2BAA2B,iBAAiB,kBAAkB,GAAG,sFAAsF,mBAAmB,YAAY,kBAAkB,2BAA2B,eAAe,mBAAmB,iBAAiB,kBAAkB,GAAG,yHAAyH,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,kKAAkK,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,wKAAwK,0GAA0G,GAAG,2KAA2K,uEAAuE,GAAG,+HAA+H,YAAY,kBAAkB,4CAA4C,kBAAkB,2BAA2B,2EAA2E,GAAG,yKAAyK,YAAY,kBAAkB,2BAA2B,GAAG,kNAAkN,uCAAuC,GAAG,8NAA8N,kBAAkB,GAAG,6NAA6N,qBAAqB,GAAG,qNAAqN,sEAAsE,mHAAmH,+CAA+C,GAAG,4MAA4M,2CAA2C,GAAG,kNAAkN,YAAY,kBAAkB,qBAAqB,GAAG,wKAAwK,YAAY,kBAAkB,2BAA2B,4CAA4C,GAAG,iNAAiN,YAAY,kBAAkB,2BAA2B,kBAAkB,2BAA2B,GAAG,0NAA0N,eAAe,GAAG,gNAAgN,YAAY,kBAAkB,2BAA2B,kBAAkB,2BAA2B,GAAG,+LAA+L,2BAA2B,WAAW,qBAAqB,GAAG,yHAAyH,4GAA4G,GAAG,yCAAyC,iIAAiI,6BAA6B,qBAAqB,KAAK,oNAAoN,wBAAwB,iBAAiB,KAAK,yLAAyL,oBAAoB,iBAAiB,KAAK,GAAG,6EAA6E,sBAAsB,mBAAmB,2BAA2B,GAAG,oHAAoH,mDAAmD,wDAAwD,2BAA2B,GAAG,iJAAiJ,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sBAAsB,eAAe,GAAG,2DAA2D,YAAY,kEAAkE,qBAAqB,2BAA2B,kEAAkE,GAAG,kJAAkJ,uDAAuD,kBAAkB,2BAA2B,kDAAkD,mHAAmH,+CAA+C,mBAAmB,+EAA+E,GAAG,8JAA8J,oHAAoH,GAAG,sKAAsK,kEAAkE,GAAG,yFAAyF,YAAY,kEAAkE,uDAAuD,2CAA2C,kDAAkD,GAAG,8CAA8C,uCAAuC,GAAG,oDAAoD,iDAAiD,GAAG,GAAG,wlDAAwlD,iBAAiB,UAAU,SAAS,ilBAAilB,oBAAoB,oFAAoF,kBAAC,4CAA4C,8GAA8G,8IAA8I,QAAQ,KAAK,cAAc,MAAM,+DAA+D,cAAc,IAAI,yFAAyF,8CAA8C,EAAE,SAAS,iBAAiB,cAAc,qDAAqD,2BAA2B,EAAE,yBAAyB,MAAM,wCAAwC,GAAG,MAAM,kBAAC,gBAAgB,2BAA2B,QAAQ,8BAA8B,qBAAqB,sBAAsB,QAAQ,EAAE,mCAAmC,MAAM,OAAO,eAAe,SAAS,MAAM,QAAQ,kBAAkB,WAAW,OAAO,EAAE,OAAO,aAAa,+BAA+B,QAAQ,8BAA8B,IAAI,qBAAqB,YAAY,EAAE,2CAA2C,MAAM,kBAAkB,kBAAC,cAAc,SAAS,SAAS,uBAAuB,QAAQ,mBAAmB,aAAa,uCAAuC,aAAa,yCAAyC,cAAc,UAAU,cAAc,sDAAsD,cAAc,yBAAyB,iCAAiC,QAAQ,KAAC,YAAY,wBAAwB,YAAY,WAAW,EAAE,QAAQ,EAAE,gCAAgC,eAAe,mDAAmD,YAAY,kEAAkE,uCAAuC,qBAAqB,cAAc,WAAW,kDAAkD,aAAa,kBAAkB,WAAW,UAAU,iBAAiB,mBAAmB,eAAe,SAAS,4JAA4J,yCAAyC,sBAAsB,aAAa,OAAO,iEAAiE,cAAc,UAAU,4DAA4D,EAAE,aAAa,oDAAoD,WAAW,kBAAkB,WAAW,mBAAmB,KAAK,UAAU,gBAAgB,WAAW,UAAU,KAAK,KAAE,CAAC,+FAA+F,aAAa,OAAO,IAAI,qBAAqB,WAAW,uBAAuB,WAAW,uCAAuC,WAAW,kBAAkB,aAAa,mBAAmB,QAAQ,aAAa,EAAE,wCAAwC,yCAAyC,gEAAgE,WAAE,CAAC,YAAE,GAAG,MAAM,WAAW,cAAc,EAAE,oBAAoB,yBAAyB,mBAAmB,MAAM,mBAAmB,aAAa,YAAY,aAAa,YAAY,EAAE,oBAAoB,mBAAmB,+BAA+B,UAAU,YAAY,WAAW,OAAO,0DAA0D,UAAU,kCAAkC,YAAY,UAAU,YAAY,GAAG,cAAc,+BAA+B,gFAAgF,WAAE,CAAC,YAAE,GAAG,OAAO,WAAW,eAAe,EAAE,uBAAuB,MAAM,sBAAsB,aAAa,wCAAwC,aAAa,+DAA+D,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,qBAAqB,WAAW,oBAAoB,WAAW,2BAA2B,WAAW,gCAAgC,cAAC,cAAc,cAAC,UAAU,cAAC,QAAQ,cAAC,QAAQ,cAAC,SAAS,cAAC,QAAQ,cAAC,aAAa,cAAC,kBAAkB,cAAC,mBAAmB,cAAC,mBAAmB,WAAW,yCAAyC,WAAW,kBAAkB,YAAY,GAAG,WAAW,aAAa,GAAG,uCAAuC,MAAM,sBAAsB,aAAa,wCAAwC,aAAa,+DAA+D,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,qBAAqB,WAAW,oBAAoB,WAAW,2BAA2B,WAAW,gCAAgC,cAAC,cAAc,cAAC,UAAU,cAAC,QAAQ,cAAC,QAAQ,cAAC,SAAS,cAAC,QAAQ,cAAC,aAAa,cAAC,kBAAkB,cAAC,mBAAmB,cAAC,mBAAmB,WAAW,yCAAyC,WAAW,kBAAkB,YAAY,EAAE,QAAQ,mBAAmB,+BAA+B,WAAW,qBAAqB,GAAG,mBAAmB,mEAAmE,uGAAuG,OAAO,iBAAC,8FAA8F,UAAU,YAAY,0DAA0D,UAAU,YAAY,OAAO,eAAe,eAAe,iEAAiE,kCAAkC,UAAU,oCAAoC,UAAU,oCAAoC,UAAU,wDAAwD,wyBAAwyB,qDAAqD,oDAAoD,mHAAmH,+CAA+C,cAAc,mFAAmF,2DAA2D,4DAA4D,kBAAkB,kCAAkC,GAAG,6CAA6C,6DAA6D,GAAG,8EAA8E,iBAAiB,GAAG,GAAG,6QAA6Q,OAAO,cAAE,UAAU,IAAI,IAAE,gDAAgD,EAAE,IAAI,IAAE,mDAAmD,EAAE,IAAI,IAAE,kDAAkD,EAAE,IAAI,IAAE,mDAAmD,EAAE,IAAI,IAAE,kDAAkD,MAAM,kBAAE,iBAAiB,sBAAsB,QAAQ,UAAE,iBAAiB,eAAe,4BAA4B,aAAE,gKAAgK,UAAU,MAAM,aAAE,UAAU,mGAAmG,YAAY,UAAU,eAAE,CAAC,sGAAsG,SAAS,6CAA6C,gLAAgL,8BAA8B,yBAAyB,8BAA8B,gBAAgB,IAAI,2BAA2B,+MAA+M,oBAAoB,UAAE,OAAO,YAAY,mCAAmC,2BAA2B,IAAI,IAAI,mBAAmB,qBAAqB,QAAQ,YAAY,uCAAuC,KAAK,EAAE,sBAAsB,+BAA+B,SAAS,gBAAgB,aAAa,cAAc,WAAW,iBAAiB,aAAa,WAAW,uBAAuB,WAAW,oBAAoB,gBAAgB,OAAO,6BAA6B,EAAE,6BAA6B,GAAG,syBAAsyB,wDAAwD,0EAA0E,4EAA4E,0EAA0E,sEAAsE,YAAY,2BAA2B,kBAAkB,2BAA2B,kDAAkD,GAAG,6CAA6C,0DAA0D,GAAG,oEAAoE,YAAY,kBAAkB,uBAAuB,2BAA2B,qBAAqB,iBAAiB,kBAAkB,2DAA2D,4DAA4D,GAAG,+EAA+E,6DAA6D,GAAG,+EAA+E,uBAAuB,uBAAuB,WAAW,YAAY,GAAG,+EAA+E,YAAY,qBAAqB,GAAG,4FAA4F,mHAAmH,+CAA+C,yDAAyD,2DAA2D,GAAG,2FAA2F,qDAAqD,oDAAoD,qFAAqF,GAAG,iMAAiM,6EAA6E,GAAG,uGAAuG,+DAA+D,GAAG,+FAA+F,6DAA6D,mDAAmD,GAAG,uHAAuH,mGAAmG,gEAAgE,GAAG,kGAAkG,kGAAkG,GAAG,mGAAmG,8DAA8D,qEAAqE,iBAAiB,wCAAwC,GAAG,2FAA2F,0CAA0C,6JAA6J,oEAAoE,oFAAoF,iFAAiF,GAAG,oGAAoG,4FAA4F,qEAAqE,GAAG,0FAA0F,sFAAsF,GAAG,0FAA0F,qDAAqD,kEAAkE,6JAA6J,0CAA0C,GAAG,gGAAgG,6JAA6J,0DAA0D,kEAAkE,uDAAuD,+EAA+E,sBAAsB,GAAG,iGAAiG,6JAA6J,0DAA0D,kDAAkD,gEAAgE,iBAAiB,oBAAoB,+BAA+B,2EAA2E,cAAc,GAAG,uGAAuG,+EAA+E,sEAAsE,GAAG,gGAAgG,6JAA6J,0DAA0D,2CAA2C,GAAG,sGAAsG,sBAAsB,GAAG,+GAA+G,gBAAgB,iBAAiB,oBAAoB,sBAAsB,eAAe,aAAa,cAAc,GAAG,kGAAkG,iDAAiD,GAAG,6GAA6G,YAAY,GAAG,uGAAuG,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,gFAAgF,YAAY,mHAAmH,+CAA+C,oDAAoD,mBAAmB,0BAA0B,2BAA2B,iBAAiB,GAAG,GAAG,+YAA+Y,iBAAiB,SAAS,onBAAonB,8CAA8C,8BAA8B,cAAc,iGAAiG,WAAE,OAAO,WAAE,OAAO,WAAE,OAAO,WAAE,OAAO,WAAE,kCAAkC,UAAE,kBAAkB,cAAc,+BAA+B,yGAAyG,kBAAkB,2DAA2D,OAAO,+CAA+C,qDAAqD,kBAAkB,kBAAkB,UAAU,cAAc,IAAI,gDAAgD,GAAG,8BAA8B,yBAAyB,EAAE,oBAAoB,mBAAmB,+DAA+D,yBAAyB,WAAE,SAAS,8BAA8B,MAAE,KAAK,aAAE,gBAAgB,UAAE,GAAG,WAAE,GAAG,yBAAE,GAAG,qBAAE,GAAG,UAAE,GAAG,aAAE,GAAG,UAAE,GAAG,WAAE,gCAAgC,aAAE,GAAG,kBAAE,CAAC,qBAAE,EAAE,YAAY,EAAE,eAAE,GAAG,aAAE,GAAG,cAAE,GAAG,oBAAE,GAAG,eAAE,GAAG,mBAAE,GAAG,yBAAE,GAAG,MAAE,QAAQ,mBAAE,IAAI,aAAE,IAAI,YAAE,EAAE,qCAAqC,EAAE,uDAAuD,EAAE,4CAA4C,IAAI,UAAE,IAAI,gBAAE,IAAI,UAAE,MAAM,kBAAE,EAAE,mBAAmB,EAAE,eAAE,mBAAmB,YAAY,EAAE,eAAE,wBAAwB,8GAA8G,qBAAqB,GAAG,IAAE,GAAG,MAAE,EAAE,OAAO,EAAE,eAAE,mBAAmB,WAAE,sBAAsB,WAAE,mCAAmC,eAAE,SAAS,EAAE,UAAU,IAAI,EAAE,MAAM,eAAE,EAAE,iBAAiB,gCAAgC,mCAAmC,GAAG,SAAS,EAAE,oGAAoG,EAAE,SAAS,kBAAkB,aAAa,qDAAqD,GAAG,OAAO,kBAAC,MAAM,kBAAC,GAAG,cAAc,0BAA0B,UAAU,eAAe,gBAAgB,iBAAiB,qBAAqB,0BAA0B,kBAAC,QAAQ,eAAC,MAAM,WAAW,+BAA+B,QAAQ,qCAAqC,cAAc,4BAA4B,IAAI,wBAAwB,WAAW,+BAA+B,qBAAqB,SAAS,OAAO,SAAS,cAAc,6BAA6B,IAAI,wBAAwB,WAAW,sBAAsB,oBAAoB,SAAS,OAAO,SAAS,cAAc,wBAAwB,IAAI,KAAK,UAAC,SAAS,gCAAgC,SAAS,QAAQ,cAAc,MAAM,YAAY,wBAAwB,WAAW,mDAAmD,IAAI,aAAa,GAAG,uBAAuB,eAAe,+BAA+B,eAAe,YAAY,EAAE,SAAS,QAAQ,eAAe,IAAI,wCAAwC,GAAG,IAAI,wBAAwB,WAAW,+CAA+C,KAAK,oCAAoC,kBAAC,MAAM,gCAAgC,cAAc,mBAAmB,EAAE,SAAS,QAAQ,cAAc,SAAS,YAAY,EAAE,cAAc,6CAA6C,gBAAE,IAAI,eAAE,KAAK,cAAc,gBAAgB,KAAK,iBAAiB,sCAAsC,kCAAkC,SAAE,oCAAoC,oBAAE,8CAA8C,kBAAkB,cAAc,gBAAgB,KAAK,iBAAiB,sCAAsC,kCAAkC,SAAE,oCAAoC,oBAAE,8CAA8C,kBAAkB,cAAc,uBAAuB,cAAc,aAAa,cAAc,KAAK,eAAe,+BAA+B,IAAI,YAAY,OAAO,uCAAuC,iBAAiB,kBAAkB,gBAAgB,gCAAgC,WAAW,gBAAgB,mBAAmB,GAAG,iBAAiB,wCAAwC,8DAA8D,KAAK,gBAAgB,MAAM,qBAAO,6CAA6C,MAAM,yEAAyE,mBAAmB,4HAA4H,cAAc,OAAO,MAAE,KAAK,UAAU,EAAE,cAAc,wFAAwF,eAAe,IAAI,4BAA4B,IAAI,4BAA4B,eAAe,IAAI,MAAM,qBAAO,MAAM,kBAAC,oBAAoB,YAAY,wMAAwM,SAAS,iBAAiB,OAAO,oCAAoC,8BAA8B,OAAO,oEAAoE,iBAAiB,IAAI,qCAAqC,GAAG,OAAO,kFAAkF,kCAAkC,UAAU,eAAe,OAAO,uFAAuF,mBAAmB,uBAAuB,iBAAC,UAAU,0BAA0B,uCAAuC,yDAAyD,SAAS,+DAA+D,sBAAsB,eAAe,aAAa,oBAAE,oBAAoB,cAAc,gCAAgC,cAAc,yBAAyB,8BAA8B,gCAAgC,GAAG,4BAA4B,cAAc,MAAM,oEAAoE,gCAAgC,YAAY,KAAK,QAAQ,YAAY,YAAY,8BAA8B,cAAc,yBAAyB,iBAAiB,WAAW,iBAAiB,OAAO,cAAc,uBAAuB,eAAE,SAAS,EAAE,OAAO,IAAI,GAAG,0BAA0B,eAAe,MAAM,eAAE,wCAAwC,0BAA0B,IAAI,wHAAwH,YAAY,EAAE,OAAO,kBAAC,SAAS,cAAc,WAAW,iBAAiB,cAAc,sCAAsC,EAAE,cAAc,yBAAyB,eAAe,UAAU,aAAa,aAAa,iBAAiB,2BAA2B,kCAAkC,cAAc,6BAA6B,WAAW,UAAU,IAAI,4BAA4B,GAAG,oBAAoB,mDAAmD,cAAc,yBAAyB,gDAAgD,2KAA2K,OAAO,UAAE,KAAK,cAAc,oBAAoB,0BAA0B,eAAe,iDAAiD,SAAS,QAAQ,KAAK,0BAAE,qEAAqE,uBAAuB,SAAS,uDAAuD,GAAG,0BAA0B,cAAc,0BAA0B,aAAa,UAAU,YAAY,iFAAiF,YAAY,IAAI,MAAM,0BAA0B,aAAa,mCAAmC,4BAA4B,EAAE,MAAM,0BAA0B,aAAa,yCAAyC,6BAA6B,GAAG,MAAM,0BAA0B,aAAa,qCAAqC,sBAAsB,WAAE,gBAAgB,GAAG,MAAM,0BAA0B,aAAa,sCAAsC,uBAAuB,WAAE,kBAAkB,GAAG,MAAM,mCAAmC,+CAA+C,4BAA4B,iBAAiB,SAAS,+DAA+D,GAAG,2BAA2B,QAAE,SAAS,6BAA6B,KAAK,QAAE,iEAAiE,MAAM,eAAe,6BAA6B,8GAA8G,eAAe,SAAS,iWAAiW,mBAAmB,QAAE,4DAA4D,iBAAiB,yHAAyH,aAAa,aAAa,IAAI,+IAA+I,EAAE,yJAAyJ,EAAE,iBAAiB,EAAE,mBAAmB,mBAAE,kEAAkE,EAAE,mBAAmB,QAAE,6GAA6G,IAAI,iBAAiB,EAAE,mBAAmB,MAAE,sEAAsE,EAAE,mBAAmB,MAAE,4EAA4E,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,eAAe,WAAW,yGAAyG,aAAa,kBAAkB,aAAa,eAAe,aAAa,oBAAoB,aAAa,eAAe,mBAAmB,eAAe,mBAAmB,oBAAoB,YAAY,GAAG,WAAW,WAAW,GAAG,uBAAuB,gDAAgD,+BAA+B,oBAAoB,wMAAwM,MAAM,KAAK,qBAAE,4BAA4B,aAAa,WAAW,6GAA6G,EAAE,kHAAkH,EAAE,qEAAqE,aAAa,EAAE,kBAAkB,qDAAqD,UAAU,YAAY,GAAG,oBAAoB,yBAAyB,eAAe,SAAS,+DAA+D,uBAAuB,MAAM,kHAAkH,kCAAkC,MAAM,4GAA4G,wBAAwB,yCAAyC,gCAAgC,+DAA+D,0BAA0B,MAAM,gJAAgJ,aAAa,yBAAyB,mBAAmB,SAAS,MAAM,gEAAgE,YAAY,UAAU,qBAAqB,GAAG,oBAAoB,mBAAmB,SAAS,MAAM,kEAAkE,YAAY,UAAU,qBAAqB,GAAG,oBAAoB,mBAAmB,SAAS,MAAM,mFAAmF,YAAY,UAAU,8BAA8B,gBAAgB,IAAI,kBAAkB,cAAc,GAAG,UAAU,UAAU,GAAG,oBAAoB,MAAM,kBAAkB,qBAAE,eAAe,sBAAsB,eAAe,aAAa,uBAAuB,GAAG,UAAU,aAAa,GAAG,oBAAoB,MAAM,mEAAmE,oGAAoG,EAAE,KAAK,OAAE,kEAAkE,aAAa,GAAG,UAAU,QAAQ,2FAA2F,eAAe,uBAAuB,aAAa,gBAAgB,WAAW,UAAU,YAAY,8CAA8C,QAAQ,YAAY,kBAAkB,iBAAiB,oOAAoO,uFAAuF,EAAE,yyBAAyyB,mHAAmH,+CAA+C,yDAAyD,iBAAiB,oDAAoD,4BAA4B,mBAAmB,oBAAoB,GAAG,iDAAiD,6DAA6D,mDAAmD,GAAG,4DAA4D,mGAAmG,gEAAgE,GAAG,GAAG,qFAAqF,0yBAA0yB,qBAAqB,iBAAiB,yBAAyB,uBAAuB,mBAAmB,kBAAkB,kCAAkC,qJAAqJ,gBAAgB,GAAG,0CAA0C,sEAAsE,GAAG,yEAAyE,oBAAoB,GAAG,oFAAoF,gBAAgB,GAAG,GAAG,oMAAoM,gzBAAgzB,YAAY,kBAAkB,2BAA2B,mBAAmB,wBAAwB,2DAA2D,4DAA4D,GAAG,qDAAqD,6DAA6D,GAAG,uFAAuF,YAAY,GAAG,oFAAoF,kBAAkB,2BAA2B,kCAAkC,qBAAqB,yCAAyC,6JAA6J,0CAA0C,GAAG,mIAAmI,oDAAoD,GAAG,0IAA0I,qBAAqB,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,gJAAgJ,0GAA0G,GAAG,mJAAmJ,uEAAuE,GAAG,yLAAyL,iBAAiB,wBAAwB,GAAG,sFAAsF,YAAY,GAAG,GAAG,krBAAkrB,iBAAiB,SAAS,2OAA2O,uBAAuB,wBAAwB,+BAA+B,yDAAyD,wBAAwB,MAAM,iBAAC,SAAS,oCAAoC,6CAA6C,gDAAgD,iEAAiE,uBAAC,kBAAkB,sBAAC,iDAAiD,eAAe,iEAAiE,uIAAuI,OAAO,WAAW,SAAS,MAAM,6FAA6F,YAAY,UAAU,mBAAmB,GAAG,oBAAoB,WAAW,OAAO,6DAA6D,UAAU,yBAAyB,GAAG,cAAc,+BAA+B,iCAAiC,OAAO,KAAC,eAAe,8BAA8B,QAAQ,UAAU,2MAA2M,6DAA6D,GAAG,sBAAsB,SAAS,MAAM,+EAA+E,2EAA2E,0yBAA0yB,qBAAqB,iBAAiB,yBAAyB,uBAAuB,mBAAmB,kBAAkB,kCAAkC,qJAAqJ,gBAAgB,GAAG,0CAA0C,sEAAsE,GAAG,yEAAyE,oBAAoB,GAAG,GAAG,wFAAwF,uyBAAuyB,YAAY,kBAAkB,2BAA2B,uBAAuB,kDAAkD,iBAAiB,kBAAkB,mHAAmH,+CAA+C,0CAA0C,yDAAyD,GAAG,8CAA8C,0DAA0D,GAAG,iFAAiF,uBAAuB,cAAc,sFAAsF,wDAAwD,0CAA0C,sBAAsB,eAAe,GAAG,+EAA+E,oBAAoB,aAAa,WAAW,aAAa,cAAc,GAAG,uHAAuH,aAAa,cAAc,eAAe,cAAc,kBAAkB,GAAG,qEAAqE,YAAY,4BAA4B,2BAA2B,kBAAkB,mBAAmB,0BAA0B,6BAA6B,2DAA2D,4DAA4D,GAAG,gFAAgF,6DAA6D,GAAG,gHAAgH,8BAA8B,sBAAsB,GAAG,iYAAiY,cAAc,eAAe,GAAG,iKAAiK,4DAA4D,GAAG,gMAAgM,6CAA6C,GAAG,2JAA2J,+EAA+E,GAAG,2LAA2L,4CAA4C,wBAAwB,wBAAwB,oDAAoD,GAAG,gaAAga,wBAAwB,qBAAqB,6CAA6C,4DAA4D,GAAG,iNAAiN,eAAe,qBAAqB,WAAW,GAAG,6PAA6P,qJAAqJ,GAAG,iNAAiN,+EAA+E,GAAG,kOAAkO,0BAA0B,gDAAgD,GAAG,wOAAwO,uEAAuE,GAAG,qPAAqP,+DAA+D,GAAG,0OAA0O,yBAAyB,uBAAuB,wBAAwB,GAAG,0FAA0F,uBAAuB,GAAG,mIAAmI,YAAY,GAAG,6HAA6H,YAAY,uBAAuB,oDAAoD,2BAA2B,6JAA6J,0CAA0C,GAAG,GAAG,0jDAA0jD,iBAAiB,SAAS,kFAAkF,yCAAyC,+BAA+B,kBAAC,KAAK,kBAAC,gCAAgC,cAAc,suBAAsuB,IAAI,+GAA+G,iBAAiB,aAAa,kBAAkB,EAAE,sHAAsH,eAAe,yCAAyC,eAAe,gCAAgC,cAAc,0BAA0B,0BAA0B,0BAA0B,cAAc,yBAAyB,iFAAiF,qCAAqC,eAAe,SAAS,eAAe,qBAAqB,QAAC,gBAAgB,QAAC,6FAA6F,8BAA8B,YAAY,wEAAwE,eAAe,SAAS,sBAAsB,qCAAqC,oCAAoC,uBAAuB,KAAK,SAAS,uBAAuB,GAAG,qBAAqB,eAAe,qCAAqC,uCAAuC,SAAS,kBAAkB,UAAU,kCAAkC,qJAAqJ,OAAO,UAAU,kCAAkC,sHAAsH,GAAG,oBAAoB,UAAE,KAAK,qBAAqB,SAAS,MAAM,IAAI,cAAc,SAAS,IAAI,qEAAqE,EAAE,iBAAC,wDAAwD,0DAA0D,cAAc,6BAA6B,kCAAkC,yBAAyB,iBAAC,iBAAiB,wBAAwB,EAAE,iBAAiB,iFAAiF,gBAAgB,4GAA4G,2HAA2H,4TAA4T,oBAAoB,QAAQ,UAAU,qHAAqH,GAAG,0CAA0C,iBAAiB,qBAAqB,OAAO,wBAAwB,WAAW,iBAAiB,iBAAiB,gFAAgF,OAAO,yBAAyB,SAAS,iCAAiC,EAAE,yBAAyB,OAAO,yBAAyB,SAAS,iCAAiC,GAAG,eAAe,oCAAoC,eAAe,sDAAsD,OAAO,QAAC,uBAAuB,cAAc,oDAAoD,eAAe,0BAA0B,cAAc,yBAAyB,GAAG,sBAAC,WAAW,iBAAC,WAAW,iBAAC,uCAAuC,IAAI,cAAc,4BAA4B,OAAO,wBAAwB,IAAI,yGAAyG,yCAAyC,gBAAgB,OAAO,yBAAyB,eAAe,4HAA4H,iBAAiB,qCAAqC,mCAAmC,qCAAqC,UAAU,gCAAgC,2DAA2D,mCAAmC,yBAAyB,KAAK,qDAAqD,WAAW,EAAE,KAAK,MAAM,KAAK,kEAAkE,qBAAqB,cAAc,+BAA+B,EAAE,EAAE,EAAE,eAAe,YAAY,cAAc,iEAAiE,oBAAoB,sBAAsB,4BAA4B,kBAAkB,oBAAoB,8BAA8B,eAAe,aAAa,WAAW,IAAI,WAAW,sHAAsH,QAAQ,UAAU,2BAA2B,QAAQ,UAAU,6BAA6B,UAAU,eAAe,0EAA0E,iIAAiI,eAAe,OAAO,0EAA0E,iBAAiB,IAAI,4MAA4M,sCAAsC,KAAC,uHAAuH,QAAQ,iBAAiB,EAAE,mBAAmB,sBAAsB,gCAAgC,EAAE,6BAA6B,mCAAmC,KAAE,4EAA4E,sBAAsB,mBAAmB,KAAE,4FAA4F,EAAE,qBAAqB,kCAAE,CAAC,6BAAE,gIAAgI,EAAE,EAAE,6BAA6B,qCAAqC,KAAE,2FAA2F,sBAAsB,mBAAmB,KAAE,0HAA0H,EAAE,mBAAmB,KAAE,yHAAyH,EAAE,EAAE,6BAA6B,qCAAqC,2BAAE,6FAA6F,sBAAsB,mBAAmB,2BAAE,yHAAyH,EAAE,mBAAmB,2BAAE,wHAAwH,EAAE,EAAE,mCAAmC,4BAAE,uEAAuE,EAAE,mCAAmC,+BAAE,wEAAwE,EAAE,EAAE,sBAAsB,+BAA+B,EAAE,mCAAmC,KAAE,iEAAiE,EAAE,mCAAmC,4BAAE,oFAAoF,EAAE,mCAAmC,MAAE,qFAAqF,EAAE,mCAAmC,MAAE,mFAAmF,EAAE,mCAAmC,+BAAE,iEAAiE,EAAE,EAAE,EAAE,EAAE,wOAAwO,sCAAsC,WAAW,OAAO,kGAAkG,aAAa,MAAM,YAAY,2GAA2G,WAAW,KAAK,eAAe,+GAA+G,2DAA2D,EAAE,KAAK,mGAAmG,SAAS,mDAAmD,EAAE,KAAK,uEAAuE,OAAO,wDAAwD,IAAI,eAAe,IAAI,uEAAuE,EAAE,cAAc,iBAAiB,iBAAiB,GAAG,KAAC,gCAAgC,cAAc,wCAAwC,cAAc,qBAAqB,oBAAoB,kBAAC,MAAM,KAAC,kEAAkE,+BAA+B,uCAAuC,OAAO,4BAA4B,YAAY,qBAAqB,6BAA6B,EAAE,KAAK,cAAc,gCAAgC,cAAc,yBAAyB,yCAAyC,IAAI,gBAAgB,QAAQ,oBAAoB,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,IAAI,yCAAyC,SAAS,4BAA4B,0BAA0B,cAAc,0CAA0C,cAAc,aAAa,eAAe,gCAAgC,cAAc,0BAA0B,UAAU,yFAAyF,EAAE,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,iEAAiE,4BAA4B,iEAAiE,GAAG,4BAA4B,cAAc,IAAI,+FAA+F,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,oBAAoB,WAAW,EAAE,kBAAkB,sBAAsB,yBAAyB,wCAAwC,KAAK,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,WAAW,aAAa,wBAAwB,WAAW,uBAAuB,aAAa,uBAAC,SAAS,IAAI,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,uBAAuB,WAAW,EAAE,4BAA4B,aAAa,uBAAC,SAAS,IAAI,EAAE,4CAA4C,yBAAyB,yBAAyB,KAAK,KAAK,EAAE,oEAAoE,EAAE,cAAc,aAAa,IAAI,kDAAkD,GAAG,6BAA6B,IAAI,yBAAyB,aAAa,iBAAiB,WAAW,+BAA+B,sDAAsD,yBAAyB,YAAY,sCAAsC,wCAAwC,GAAG,qBAAqB,IAAI,EAAE,oEAAoE,EAAE,cAAc,0BAA0B,UAAU,oHAAoH,EAAE,0BAA0B,eAAe,MAAM,6FAA6F,eAAe,gBAAgB,mHAAmH,EAAE,iBAAiB,OAAO,wBAAwB,IAAI,wGAAwG,4DAA4D,yOAAyO,gBAAgB,iBAAiB,sBAAsB,OAAO,wBAAwB,IAAI,yGAAyG,IAAI,6EAA6E,SAAS,IAAI,UAAU,UAAC,gEAAgE,SAAS,0GAA0G,yBAAyB,8BAA8B,8KAA8K,iBAAiB,gBAAgB,eAAe,4DAA4D,eAAe,oBAAoB,IAAI,6BAA6B,oBAAoB,WAAW,mDAAmD,KAAK,yCAAyC,kBAAC,WAAW,+BAA+B,cAAc,6BAA6B,GAAG,eAAe,yBAAyB,OAAO,aAAa,SAAS,KAAK,KAAC,WAAW,gCAAgC,sBAAsB,EAAE,iBAAiB,OAAO,wEAAwE,EAAE,cAAc,aAAa,kCAAkC,uCAAuC,IAAI,oCAAoC,GAAG,mCAAmC,sBAAsB,4CAA4C,IAAI,cAAc,sBAAsB,GAAG,KAAK,cAAc,IAAI,YAAY,EAAE,eAAe,cAAc,iBAAiB,sCAAsC,mBAAmB,GAAG,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,0LAA0L,mBAAmB,mCAAmC,oEAAoE,wCAAwC,aAAa,cAAc,sBAAsB,iBAAiB,UAAU,OAAO,yBAAyB,mBAAmB,kBAAC,0LAA0L,mBAAmB,mCAAmC,oEAAoE,wCAAwC,aAAa,eAAe,wCAAwC,iCAAiC,SAAS,wDAAwD,GAAG,yBAAyB,aAAa,WAAW,gBAAgB,iBAAiB,sDAAsD,GAAG,SAAS,0BAA0B,aAAa,OAAO,YAAY,0BAA0B,iBAAC,gBAAgB,gCAAgC,YAAY,KAAK,OAAO,yGAAyG,aAAa,kFAAkF,SAAS,IAAI,UAAU,UAAC,0EAA0E,SAAS,+GAA+G,kFAAkF,gCAAgC,MAAM,0BAA0B,aAAa,iBAAC,yCAAyC,qCAAqC,mBAAmB,MAAM,iDAAiD,MAAM,sBAAC,uBAAuB,oBAAoB,kBAAC,mBAAmB,kBAAC,GAAG,qCAAqC,kCAAkC,iBAAiB,gBAAC,EAAE,mCAAmC,kCAAkC,iBAAiB,iBAAC,WAAW,kCAAkC,kDAAkD,mDAAmD,iDAAiD,yBAAyB,gCAAgC,4CAA4C,EAAE,yBAAyB,MAAM,SAAS,iBAAC,kCAAkC,gEAAgE,OAAO,mLAAmL,sBAAsB,GAAG,kBAAC,KAAK,MAAM,gBAAC,SAAS,eAAe,gBAAgB,iBAAC,IAAI,aAAa,QAAC,MAAM,YAAY,cAAc,kBAAC,aAAa,IAAI,iBAAC,IAAI,UAAU,SAAS,GAAG,qEAAqE,EAAE,mDAAmD,uBAAuB,kCAAkC,wBAAwB,eAAe,YAAY,+BAA+B,yMAAyM,GAAG,+BAA+B,eAAe,SAAS,2OAA2O,aAAa,QAAQ,oCAAoC,iFAAiF,WAAW,aAAa,IAAI,mBAAmB,mBAAE,kEAAkE,EAAE,mBAAmB,QAAE,6GAA6G,EAAE,mBAAmB,QAAE,wEAAwE,EAAE,mBAAmB,WAAE,kDAAkD,EAAE,iBAAiB,EAAE,mBAAmB,MAAE,8EAA8E,EAAE,mBAAmB,MAAE,oFAAoF,EAAE,aAAa,GAAG,kCAAkC,wBAAwB,qBAAqB,YAAY,cAAc,OAAO,IAAI,yBAAyB,cAAc,gBAAgB,WAAW,eAAe,WAAW,kFAAkF,WAAW,kBAAkB,cAAc,mBAAmB,SAAS,aAAa,GAAG,WAAW,WAAW,GAAG,uBAAuB,2BAA2B,+CAA+C,oBAAoB,mBAAmB,UAAU,WAAW,cAAc,qBAAqB,cAAc,cAAc,WAAW,kBAAkB,cAAc,mBAAmB,cAAc,gBAAgB,WAAW,eAAe,cAAc,8CAA8C,EAAE,4DAA4D,sBAAsB,MAAM,yDAAyD,iBAAiB,WAAW,UAAU,sBAAsB,aAAa,aAAa,WAAW,UAAU,YAAY,YAAY,UAAU,MAAM,iBAAC,mDAAmD,GAAG,YAAY,gCAAgC,WAAW,eAAe,SAAS,sIAAsI,4BAA4B,KAAK,iBAAC,wBAAwB,oCAAoC,MAAM,UAAU,iBAAC,yEAAyE,6BAA6B,6BAA6B,eAAe,2CAA2C,4CAA4C,WAAE,CAAC,SAAE,GAAG,MAAM,WAAW,cAAc,iFAAiF,UAAU,qBAAqB,WAAW,0GAA0G,kDAAkD,UAAU,qDAAqD,EAAE,gBAAgB,QAAQ,WAAW,aAAa,oBAAoB,cAAc,gBAAgB,WAAW,WAAW,UAAU,GAAG,kBAAkB,qEAAqE,eAAe,SAAS,4FAA4F,OAAO,WAAW,UAAU,KAAK,QAAE,CAAC,WAAW,qOAAqO,0CAA0C,IAAI,YAAY,aAAa,sBAAsB,cAAc,gBAAgB,WAAW,0BAA0B,WAAW,UAAU,YAAY,GAAG,4BAA4B,8CAA8C,mFAAmF,MAAM,qEAAqE,yDAAyD,sBAAsB,iCAAiC,MAAM,sBAAsB,aAAa,aAAa,GAAG,UAAU,YAAY,+DAA+D,uCAAuC,qBAAqB,MAAM,8DAA8D,WAAW,GAAG,YAAY,oCAAoC,+DAA+D,KAAC,yEAAyE,MAAM,wDAAwD,qDAAqD,oGAAoG,iBAAC,UAAU,eAAe,SAAS,4KAA4K,OAAO,mBAAmB,QAAQ,kFAAkF,QAAQ,MAAM,6DAA6D,mDAAmD,IAAI,WAAW,aAAa,aAAa,aAAa,cAAc,WAAW,kBAAkB,aAAa,4BAA4B,aAAa,kCAAkC,aAAa,WAAW,EAAE,OAAO,eAAe,MAAM,6EAA6E,2GAA2G,MAAM,WAAW,aAAa,aAAa,aAAa,qBAAqB,aAAa,iBAAiB,aAAa,yBAAyB,aAAa,eAAe,eAAe,GAAG,UAAU,uBAAuB,GAAG,kBAAkB,WAAW,UAAU,6BAA6B,WAAW,UAAU,8BAA8B,GAAG,oBAAoB,MAAM,sBAAsB,aAAa,aAAa,GAAG,UAAU,YAAY,WAAW,qDAAqD,8BAA8B,GAAG,kBAAkB,YAAY,UAAU,YAAY,WAAW,GAAG,gBAAgB,6GAA6G,oBAAoB,wGAAwG,MAAM,0BAA0B,aAAa,WAAW,KAAK,QAAE,sGAAsG,EAAE,gFAAgF,EAAE,GAAG,UAAU,aAAa,GAAG,oBAAoB,uBAAuB,KAAK,OAAE,2DAA2D,EAAE,KAAK,MAAE,+GAA+G,IAAI,MAAM,0GAA0G,aAAa,YAAY,GAAG,UAAU,aAAa,eAAe,uBAAuB,cAAc,gBAAgB,WAAW,+KAA+K,WAAW,OAAO,yBAAyB,sCAAsC,KAAK,MAAE,mGAAmG,IAAI,MAAM,kHAAkH,cAAc,cAAc,WAAW,cAAc,YAAY,cAAc,mBAAmB,WAAW,cAAc,YAAY,UAAU,OAAO,MAAM,WAAW,cAAc,YAAY,cAAc,gBAAgB,WAAW,cAAc,WAAW,2CAA2C,WAAW,cAAc,MAAM,GAAG,UAAU,kDAAkD,eAAe,UAAU,oBAAoB,4BAA4B,QAAQ,YAAY,WAAW,iBAAiB,qCAAqC,uBAAuB,MAAM,sBAAsB,GAAG,WAAW,cAAc,GAAG,uBAAuB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,kBAAkB,cAAc,uEAAuE,iCAAiC,eAAe,0BAA0B,YAAY,MAAM,0CAA0C,kCAAkC,gCAAgC,YAAY,gBAAgB,kBAAkB,gaAAga,oBAAoB,IAAI,yBAAyB,aAAa,kBAAkB,2BAA2B,OAAO,gBAAgB,mBAAmB,uDAAuD,oBAAoB,IAAI,yBAAyB,aAAa,2BAA2B,2BAA2B,OAAO,gBAAgB,mBAAmB,oDAAoD,oBAAoB,IAAI,yBAAyB,aAAa,kBAAkB,2BAA2B,OAAO,gBAAgB,mBAAmB,sDAAsD,sBAAsB,IAAI,yBAAyB,aAAa,2BAA2B,2BAA2B,OAAO,uBAAuB,mBAAmB,oCAAoC,mBAAmB,kBAAkB,GAAG,KAAC,mCAAmC,WAAW,EAAE,QAAQ,GAAG,0FAA0F,yBAAyB,QAAQ,iCAAiC,mBAAmB,MAAM,KAAC,qBAAqB,uCAAuC,mOAAmO,mMAAmM,mGAAmG,EAAE,iBAAiB,SAAS,y1BAAy1B,oBAAoB,mBAAmB,cAAc,UAAU,kBAAkB,qEAAqE,gBAAgB,kCAAkC,qCAAqC,cAAc,UAAU,kBAAkB,qEAAqE,gBAAgB,kCAAkC,qCAAqC,cAAc,iBAAiB,eAAe,cAAc,+BAA+B,+BAA+B,+BAA+B,6EAA6E,gBAAgB,kCAAkC,8EAA8E,gBAAgB,oCAAoC,gFAAgF,cAAc,qCAAqC,0CAA0C,KAAK,2FAA2F,6BAA6B,aAAa,iCAAiC,iCAAiC,iCAAiC,gFAAgF,aAAa,0CAA0C,eAAe,kCAAkC,kCAAkC,gFAAgF,eAAe,qCAAqC,qCAAqC,mFAAmF,cAAc,6DAA6D,cAAc,gCAAgC,cAAc,yBAAyB,+BAA+B,0BAA0B,uBAAuB,aAAa,cAAc,OAAO,kBAAkB,4BAA4B,OAAO,0BAA0B,mFAAmF,MAAM,kCAAkC,OAAO,6LAA6L,EAAE,oLAAoL,EAAE,gMAAgM,GAAG,wDAAwD,UAAU,mDAAmD,mBAAC,IAAI,cAAc,kCAAkC,KAAK,GAAG,0DAA0D,UAAU,QAAQ,mBAAC,IAAI,wBAAwB,gDAAgD,yBAAyB,GAAG,aAAa,6BAA6B,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,mBAAmB,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,+BAA+B,WAAW,cAAc,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,iCAAiC,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,aAAa,4BAA4B,QAAQ,yBAAyB,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,WAAW,cAAc,WAAW,uBAAuB,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,mBAAmB,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,uCAAuC,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,2BAA2B,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,yBAAyB,WAAW,aAAa,4BAA4B,OAAO,SAAS,sBAAsB,WAAW,yBAAyB,WAAW,eAAe,aAAa,gBAAgB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,cAAc,WAAW,uBAAuB,WAAW,iBAAiB,WAAW,wBAAwB,WAAW,kBAAkB,WAAW,eAAe,WAAW,gBAAgB,WAAW,oBAAoB,WAAW,gBAAgB,WAAW,uCAAuC,WAAW,mBAAmB,WAAW,eAAe,WAAW,cAAc,WAAW,oBAAoB,aAAa,2BAA2B,aAAa,mBAAmB,WAAW,wBAAwB,WAAW,yBAAyB,WAAW,aAAa,6BAA6B,UAAU,8BAA8B,eAAe,kBAAkB,uDAAuD,qNAAqN,qHAAqH,EAAE,0yBAA0yB,YAAY,kBAAkB,iBAAiB,kBAAkB,2BAA2B,GAAG,8EAA8E,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,iHAAiH,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,0JAA0J,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,gKAAgK,0GAA0G,GAAG,mKAAmK,uEAAuE,GAAG,+GAA+G,sBAAsB,mBAAmB,2BAA2B,GAAG,sJAAsJ,mDAAmD,wDAAwD,2BAA2B,GAAG,6HAA6H,YAAY,sBAAsB,iBAAiB,oBAAoB,kBAAkB,oEAAoE,wFAAwF,GAAG,uEAAuE,kCAAkC,wBAAwB,GAAG,wGAAwG,YAAY,2CAA2C,GAAG,kHAAkH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,gEAAgE,6EAA6E,yEAAyE,uBAAuB,GAAG,wHAAwH,0EAA0E,GAAG,2HAA2H,yEAAyE,GAAG,gEAAgE,uDAAuD,kBAAkB,2BAA2B,kDAAkD,mHAAmH,+CAA+C,mBAAmB,+EAA+E,GAAG,sEAAsE,oHAAoH,GAAG,0EAA0E,kEAAkE,GAAG,GAAG,m0BAAm0B,UAAU,4yBAA4yB,YAAY,kBAAkB,2BAA2B,kBAAkB,mBAAmB,iBAAiB,kBAAkB,GAAG,0EAA0E,kBAAkB,wBAAwB,8BAA8B,0CAA0C,GAAG,oHAAoH,iBAAiB,4BAA4B,mBAAmB,oBAAoB,6JAA6J,0CAA0C,iBAAiB,cAAc,sFAAsF,iDAAiD,yEAAyE,uBAAuB,GAAG,0HAA0H,0GAA0G,GAAG,6HAA6H,uEAAuE,GAAG,mEAAmE,gBAAgB,8BAA8B,sBAAsB,GAAG,yLAAyL,qBAAqB,2BAA2B,wBAAwB,6CAA6C,GAAG,4EAA4E,gBAAgB,2BAA2B,sBAAsB,uDAAuD,gDAAgD,yBAAyB,uBAAuB,wBAAwB,kEAAkE,mBAAmB,kBAAkB,GAAG,2DAA2D,2BAA2B,GAAG,wEAAwE,kBAAkB,GAAG,0GAA0G,2CAA2C,GAAG,GAAG,yvBAAyvB,iyBAAiyB,gBAAgB,iBAAiB,iBAAiB,sBAAsB,6JAA6J,0CAA0C,wBAAwB,uBAAuB,kBAAkB,wBAAwB,GAAG,2CAA2C,8FAA8F,qGAAqG,GAAG,GAAG,yEAAyE,iBAAiB,SAAS,qDAAqD,QAAQ,sFAAsF,sBAAsB,wEAAwE,qCAAqC,o8BAAo8B,cAAc,WAAW,eAAe,gCAAgC,cAAc,0BAA0B,SAAS,YAAY,wBAAwB,iBAAiB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,YAAY,YAAY,wBAAwB,gBAAgB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,sBAAsB,oBAAoB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,gBAAgB,0BAA0B,iBAAiB,gCAAgC,cAAc,4BAA4B,8BAA8B,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,8DAA8D,gCAAgC,4BAA4B,eAAe,oBAAoB,cAAc,yBAAyB,cAAc,gCAAgC,cAAc,yBAAyB,gCAAgC,oBAAoB,4BAA4B,eAAe,gCAAgC,cAAc,0BAA0B,yBAAyB,0BAA0B,eAAe,6BAA6B,cAAc,gCAAgC,cAAc,yBAAyB,0BAA0B,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,uBAAuB,0BAA0B,eAAe,gCAAgC,cAAc,0BAA0B,oGAAoG,4BAA4B,kDAAkD,MAAM,oDAAoD,MAAM,mDAAmD,MAAM,sDAAsD,MAAM,kDAAkD,MAAM,+CAA+C,MAAM,sDAAsD,MAAM,wDAAwD,MAAM,oDAAoD,MAAM,sDAAsD,MAAM,kEAAkE,MAAM,kEAAkE,MAAM,6DAA6D,MAAM,qDAAqD,MAAM,wDAAwD,MAAM,+DAA+D,MAAM,yDAAyD,MAAM,6DAA6D,MAAM,8DAA8D,MAAM,oEAAoE,MAAM,uDAAuD,MAAM,4DAA4D,MAAM,0DAA0D,MAAM,2DAA2D,MAAM,kEAAkE,MAAM,2DAA2D,MAAM,uDAAuD,MAAM,sDAAsD,MAAM,sDAAsD,MAAM,qDAAqD,MAAM,eAAe,eAAe,sCAAsC,uDAAuD,0BAA0B,cAAc,gCAAgC,cAAc,yBAAyB,wHAAwH,0BAA0B,mBAAmB,uBAAuB,eAAe,gBAAgB,mBAAC,KAAK,cAAc,uBAAuB,cAAc,uBAAuB,eAAe,gCAAgC,cAAc,0BAA0B,8CAA8C,0BAA0B,eAAe,+CAA+C,eAAe,IAAI,+CAA+C,GAAG,YAAY,oRAAoR,+BAA+B,iCAAiC,6CAA6C,2CAA2C,EAAE,eAAe,cAAc,eAAe,IAAI,qCAAqC,GAAG,uBAAuB,iBAAiB,SAAS,+YAA+Y,EAAE,mDAAmD,qBAAqB,iDAAiD,iCAAiC,GAAG,qCAAqC,EAAE,yBAAyB,0BAA0B,cAAc,8BAA8B,0BAA0B,qFAAqF,2BAA2B,KAAK,UAAE,cAAc,0BAA0B,yBAAyB,qBAAqB,iBAAiB,mBAAmB,2BAA2B,SAAS,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,YAAY,cAAc,YAAY,uBAAuB,aAAa,iBAAiB,YAAY,wBAAwB,YAAY,kBAAkB,YAAY,8BAA8B,YAAY,6DAA6D,YAAY,mBAAmB,YAAY,yCAAyC,YAAY,2BAA2B,YAAY,qEAAqE,8BAA8B,GAAG,oBAAoB,eAAe,QAAQ,SAAS,gMAAgM,0BAA0B,OAAO,4BAA4B,8BAA8B,kBAAC,iKAAiK,aAAa,IAAI,UAAU,aAAa,oMAAoM,iCAAiC,iDAAiD,QAAQ,SAAS,iBAAiB,cAAc,UAAU,iCAAiC,KAAK,KAAC,WAAW,wBAAwB,2BAA2B,gCAAgC,6BAA6B,6BAA6B,iCAAiC,qCAAqC,YAAY,+CAA+C,uCAAuC,qBAAqB,cAAc,WAAW,6CAA6C,2EAA2E,MAAM,YAAY,aAAa,eAAe,YAAY,EAAE,wEAAwE,uBAAuB,UAAU,2BAA2B,aAAa,aAAa,aAAa,cAAc,QAAQ,aAAa,WAAW,UAAU,MAAM,uFAAuF,GAAG,wBAAwB,UAAU,gDAAgD,aAAa,cAAc,QAAQ,aAAa,EAAE,4BAA4B,mBAAmB,+BAA+B,UAAU,YAAY,GAAG,kBAAkB,iEAAiE,MAAM,8FAA8F,aAAa,iBAAC,6CAA6C,UAAU,YAAY,OAAO,oBAAoB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,GAAG,oBAAoB,sBAAsB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,GAAG,oBAAoB,eAAe,SAAS,wtBAAwtB,0DAA0D,8BAA8B,cAAc,cAAc,sBAAC,0BAA0B,aAAa,kBAAkB,cAAC,wCAAwC,6BAA6B,aAAa,6BAA6B,aAAa,6CAA6C,kBAAkB,kBAAC,yBAAyB,EAAE,mBAAmB,oDAAoD,KAAK,kBAAC,MAAM,SAAS,6BAA6B,EAAE,UAAU,EAAE,wDAAwD,kBAAkB,SAAS,iBAAiB,aAAa,qDAAqD,iBAAC,yBAAyB,MAAM,4CAA4C,uBAAuB,cAAc,gCAAgC,MAAM,EAAE,UAAU,IAAI,cAAc,yCAAyC,MAAM,EAAE,YAAY,IAAI,cAAc,oCAAoC,MAAM,EAAE,OAAO,IAAI,cAAc,QAAQ,cAAC,SAAS,SAAS,iBAAC,YAAY,cAAc,oCAAoC,cAAc,IAAI,iBAAiB,GAAG,2BAA2B,iBAAiB,EAAE,OAAO,qDAAqD,mCAAmC,MAAM,qDAAqD,GAAG,cAAc,UAAU,SAAS,MAAM,wCAAwC,wBAAwB,KAAK,cAAC,YAAY,wBAAwB,yCAAyC,6BAA6B,KAAK,iBAAC,qCAAqC,0BAA0B,KAAK,UAAE,aAAa,qBAAqB,4DAA4D,aAAa,kBAAkB,WAAW,UAAU,iBAAiB,+EAA+E,MAAM,YAAY,MAAM,uEAAuE,gDAAgD,aAAa,mBAAmB,QAAQ,aAAa,EAAE,sCAAsC,aAAa,mBAAmB,kBAAkB,eAAe,qBAAqB,iBAAiB,uBAAuB,gBAAgB,WAAW,mBAAmB,WAAW,eAAe,WAAW,iBAAiB,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,qBAAqB,WAAW,+BAA+B,WAAW,+BAA+B,WAAW,sBAAsB,WAAW,cAAc,WAAW,uBAAuB,aAAa,iBAAiB,WAAW,wBAAwB,WAAW,kBAAkB,WAAW,mFAAmF,WAAW,mBAAmB,WAAW,yCAAyC,WAAW,2BAA2B,WAAW,mBAAmB,WAAW,wBAAwB,WAAW,iCAAiC,4BAA4B,wBAAwB,mBAAmB,+BAA+B,UAAU,YAAY,GAAG,oBAAoB,WAAW,UAAU,KAAK,WAAE,CAAC,2BAA2B,UAAU,qBAAqB,GAAG,oBAAoB,WAAW,iEAAiE,OAAO,WAAW,yBAAyB,UAAU,iBAAiB,iCAAiC,UAAU,YAAY,UAAU,UAAU,YAAY,OAAO,oBAAoB,aAAa,MAAM,0DAA0D,IAAI,UAAU,aAAa,8CAA8C,UAAU,YAAY,6TAA6T,uLAAuL,EAAE,eAAe,IAAI,iBAAiB,YAAY,iBAAiB,EAAE,gCAAgC,qBAAqB,gBAAgB,wCAAwC,oCAAoC,KAAK,eAAe,IAAI,iBAAiB,GAAG,8IAA8I,iBAAiB,EAAg8D;AACj8ld;;;;;ACD0B;;AAE1B;AACA;AACA,WAAW,yDAAS;;AAEpB;;AAEO,SAAS,OAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEmB;AAOlB;;;ACjCuE;AACsI;AAC9M,uBAAuB,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,6LAA6L,WAAW,KAAK,MAAM,KAAK;AAChW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gBAAgB,kBAAkB;AAClC;AACA,4JAA4J,kBAAE,0CAA0C,kBAAE,GAAG,kBAAE,SAAS,kBAAE,0BAA0B,kBAAE,iBAAiB,iBAAE,GAAG,kBAAE,WAAW,iBAAC,GAAG,kBAAE,GAAG,kBAAE;AACpS;AACA,qBAAqB,iBAAC,SAAS,iBAAC;AAChC;AACA,MAAM,iBAAC;AACP;AACA,IAAI;AACJ;AACA,UAAU,iBAAE;AACZ,qBAAqB,iBAAC,iBAAiB,iBAAC;AACxC;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACjE;AACA,8CAA8C,kBAAE,IAAI,kBAAE;AACtD;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,mDAAmD,kBAAE;AACrD;AACA;AACA;AACA,yBAAyB,6BAA6B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,IAAI,kBAAE,QAAQ,kBAAE,yBAAyB,kBAAE,qCAAqC,kBAAE;AAClF,SAAS,kBAAE;AACX;AACA;AACA;AACA,WAAW,kBAAE;AACb,MAAM,kBAAE;AACR;AACA,QAAQ,kBAAE;AACV;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ,2BAA2B,kBAAE,0BAA0B,kBAAE,WAAW,kBAAE;AACtE;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,CAAC,6CAA6C,kBAAE;AAChD,SAAS,kBAAE;AACX;AACA;AACA;AACA,MAAM,kBAAE,UAAU,kBAAE,wDAAwD,kBAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAE;AAClC;AACA;AACA,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,sJAAsJ,iBAAC,GAAG,kBAAE,yCAAyC,iBAAC,SAAS,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,iBAAiB,kBAAE,GAAG,kBAAE,WAAW,iBAAC;AACvR;AACA,UAAU,kBAAE,SAAS,iBAAC,SAAS,iBAAC;AAChC;AACA,MAAM,iBAAC;AACP;AACA,IAAI;AACJ;AACA,UAAU,kBAAE;AACZ,qBAAqB,iBAAC,iBAAiB,iBAAC;AACxC;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,IAAI,kBAAE,oBAAoB,kBAAE,yBAAyB,kBAAE;AACvD,SAAS,iBAAC;AACV,oCAAoC,kBAAE,GAAG,kBAAE,GAAG,kBAAE,IAAI,kBAAE,wBAAwB,kBAAE;AAChF;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,yCAAyC,iBAAC,OAAO,kBAAE;AACnD;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA,mCAAmC,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AAC9E,SAAS,kBAAE;AACX;AACA;AACA;AACA,iBAAiB,kBAAE;AACnB,MAAM,kBAAE;AACR,WAAW,kBAAE,GAAG,kBAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,gGAAgG,kBAAE;AAClG,SAAS,kBAAE;AACX;AACA;AACA,UAAU,iBAAC;AACX,+CAA+C,kBAAE;AACjD;AACA,IAAI,kBAAE,GAAG,iBAAC,wBAAwB,kBAAE;AACpC,wBAAwB,kBAAE,IAAI,kBAAE,SAAS,kBAAE;AAC3C;AACA,CAAC;AACD;AACA,WAAW,kBAAE,IAAI,kBAAE;AACnB;AACA;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ,gBAAgB,iBAAC;AACjB;AACA;AACA;AACA;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,IAAI,kBAAE,GAAG,iBAAC,CAAC,iBAAC,cAAc,kBAAE;AAC5B;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAE;AACV,aAAa,kBAAE;AACf;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,YAAY,iBAAC;AACb,eAAe,QAAQ;AACvB,IAAI;AACJ;AACA,CAAC,SAAS,kBAAE;AACZ,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE,EAAE,kBAAE;AACN;AACA,iDAAiD,iCAAiC;AAClF;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,GAAG,kBAAE;AAC7B;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,iBAAC;AACV;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,sBAAsB,iBAAC,yCAAyC,kBAAE;AAClE;AACA,SAAS,kBAAE;AACX;AACA,cAAc;AACd,iCAAiC,SAAS;AAC1C;AACA,oCAAoC,kBAAE,YAAY,kBAAE;AACpD;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA,aAAa,kBAAE;AACf,wCAAwC,kBAAE,iCAAiC,SAAS;AACpF;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAE;AACvB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,eAAe,kBAAE;AACzC;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAE,OAAO,kBAAE,2CAA2C,iBAAC;AACjF;AACA,SAAS,kBAAE;AACX;AACA;AACA,mJAAmJ,SAAS;AAC5J;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,iBAAiB,iBAAC;AAClB;AACA,IAAI,kBAAE,0BAA0B,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,GAAG,kBAAE;AACxF;AACA,CAAC,MAAM,kBAAE;AACT;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,0EAA0E,kBAAE,GAAG,kBAAE,4EAA4E,kBAAE,IAAI,kBAAE,aAAa,kBAAE,EAAE,kBAAE,QAAQ,iBAAC,uBAAuB,kBAAE,GAAG,kBAAE,8BAA8B,kBAAE,yNAAyN,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE;AACh2B,EAAE,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AACpE,kBAAkB,kBAAE,cAAc,kBAAE,sDAAsD,kBAAE,MAAM,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AACpH,SAAS,kBAAE;AACX,iBAAiB,kBAAE,kBAAkB,iBAAC;AACtC;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,IAAI,kBAAE,0EAA0E,iBAAC,GAAG,kBAAE,uEAAuE,kBAAE,GAAG,iBAAC,IAAI,iBAAC,aAAa,kBAAE,EAAE,kBAAE,GAAG,kBAAE,IAAI,kBAAE,UAAU,iBAAC;AACjN;AACA,YAAY,iBAAC,IAAI,iBAAC,YAAY,iBAAC;AAC/B,gBAAgB,kBAAE,IAAI,kBAAE,YAAY,kBAAE;AACtC,IAAI;AACJ;AACA,CAAC,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,eAAe,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACpF,SAAS,kBAAE;AACX,0BAA0B,kBAAE,iDAAiD,kBAAE;AAC/E;AACA,UAAU,kBAAE;AACZ;AACA;AACA;AACA,IAAI,kBAAE;AACN;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE,uBAAuB,iBAAE,qBAAqB,kBAAE,GAAG,iBAAE;AAChE,SAAS,kBAAE;AACX,OAAO,kBAAE;AACT,WAAW,kBAAE;AACb;AACA;AACA,IAAI,kBAAE;AACN;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,MAAM,kBAAE;AAC3B;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,WAAW,kBAAE;AACb,UAAU,kBAAE;AACZ;AACA,iCAAiC,kBAAE;AACnC;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,UAAU,kBAAE;AAC/B;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX,EAAE,kBAAE,IAAI,kBAAE;AACV,CAAC,GAAG,kBAAE,uDAAuD,kBAAE;AAC/D,SAAS,kBAAE;AACX;AACA;AACA;AACA,0EAA0E,kBAAE,WAAW,kBAAE,aAAa,kBAAE;AACxG;AACA,IAAI,iBAAC,GAAG,iBAAC;AACT,SAAS,kBAAE;AACX,kBAAkB,iBAAC,GAAG,iBAAC,WAAW;AAClC;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,IAAI,kBAAE,gCAAgC,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACpE,SAAS,kBAAE;AACX;AACA,MAAM,iBAAC;AACP;AACA,iBAAiB,kBAAE;AACnB;AACA,SAAS,kBAAE;AACX;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,SAAS,iBAAC,qBAAqB,kBAAE;AACjC;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,kDAAkD,iBAAC,mBAAmB,kBAAE;AACxE;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,yBAAyB,KAAK;AAC9B,QAAQ,iBAAC;AACT;AACA;AACA;AACA,IAAI,kBAAE,oBAAoB,kBAAE,GAAG,kBAAE;AACjC,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA;AACA,4BAA4B,kBAAE;AAC9B;AACA,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,6BAA6B,kBAAE;AAC/B;AACA;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,QAAQ,iBAAC,CAAC,iBAAC;AACX,SAAS,kBAAE;AACX;AACA,cAAc,iBAAC;AACf,mBAAmB,iBAAC;AACpB,gBAAgB,iBAAC;AACjB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,iBAAC;AACV;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,wBAAwB,kBAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAE,UAAU,iBAAC;AACrC;AACA,kBAAE,SAAS,iBAAC;AACZ,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ,sBAAsB,kBAAE;AACxB,GAAG;AACH;AACA;AACA,IAAI,kBAAE,uGAAuG,kBAAE,eAAe,kBAAE,GAAG,kBAAE;AACrI;AACA,yDAAyD,kBAAE;AAC3D,yBAAyB,kBAAE;AAC3B,GAAG;AACH,CAAC;AACD,SAAS,kBAAE;AACX,0BAA0B,kBAAE;AAC5B;AACA,SAAS,kBAAE;AACX,oBAAoB,kBAAE,eAAe,kBAAE,CAAC,kBAAE;AAC1C;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,8BAA8B,kBAAE;AAChC;AACA;AACA,+BAA+B,kBAAE;AACjC;AACA,SAAS,kBAAE;AACX,MAAM,kBAAE;AACR,gCAAgC,oBAAoB;AACpD,UAAU,kBAAE;AACZ;AACA;AACA,SAAS,kBAAE;AACX,+BAA+B,kBAAE;AACjC;AACA;AACA,SAAS,kBAAE;AACX,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE,iCAAiC,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,WAAW,kBAAE,GAAG,kBAAE,iBAAiB,kBAAE,GAAG,kBAAE;AACrK,SAAS,kBAAE;AACX,eAAe,iBAAC,OAAO,kBAAE;AACzB;AACA,UAAU,kBAAE;AACZ;AACA;AACA,UAAU,kBAAE;AACZ,qDAAqD,kBAAE,YAAY,kBAAE;AACrE;AACA,SAAS,kBAAE;AACX,sBAAsB,iBAAC;AACvB;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,iBAAE;AACN,SAAS,kBAAE;AACX;AACA,mBAAmB,iBAAC;AACpB;AACA,yBAAyB,iBAAE;AAC3B;AACA,4BAA4B,iBAAC;AAC7B;AACA;AACA;AACA,SAAS,iBAAC;AACV,8BAA8B,iBAAC;AAC/B;AACA;AACA,iBAAC,mBAAmB,kBAAE;AACtB,iBAAC,oBAAoB,kBAAE;AACvB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,iBAAC,iBAAiB,kBAAE;AACpB,IAAI,kBAAE,0EAA0E,kBAAE,GAAG,kBAAE,uEAAuE,kBAAE,GAAG,kBAAE,IAAI,kBAAE,aAAa,kBAAE,EAAE,kBAAE,GAAG,kBAAE,GAAG,iBAAC,kBAAkB,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACrO,SAAS,kBAAE;AACX;AACA;AACA,wBAAwB,kBAAE,GAAG,kBAAE;AAC/B;AACA;AACA,SAAS,kBAAE;AACX,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE,uBAAuB,kBAAE,iCAAiC,kBAAE,GAAG,kBAAE;AACnG,0CAA0C,kBAAE,CAAC,kBAAE;AAC/C,WAAW,kBAAE;AACb,GAAG;AACH,EAAE,EAAE,kBAAE;AACN,SAAS,kBAAE;AACX;AACA,oBAAoB,kBAAE;AACtB;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,IAAI,kBAAE,EAAE,kBAAE;AACrB;AACA,IAAI,iBAAE,GAAG,iBAAC,CAAC,iBAAC,eAAe,kBAAE,GAAG,iBAAC,CAAC,iBAAC,cAAc,kBAAE,GAAG,iBAAC,CAAC,iBAAC,UAAU,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,mBAAmB,kBAAE,uBAAuB,kBAAE,wBAAwB,kBAAE,GAAG,iBAAC,CAAC,iBAAE,GAAG,kBAAE,GAAG,iBAAC,KAAK,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,kBAAE,GAAG,iBAAC,CAAC,kBAAE,GAAG,iBAAC,GAAG,iBAAC;AACjR,CAAC,iBAAE,IAAI,iBAAC,KAAK,iBAAE,yBAAyB,kBAAE,SAAS,iBAAC,aAAa,kBAAE,IAAI,kBAAE,IAAI,iBAAC,CAAC,kBAAE,eAAe,kBAAE,IAAI,kBAAE,IAAI,iBAAC,KAAK,kBAAE,OAAO,kBAAE,IAAI,kBAAE,IAAI,iBAAC,KAAK,kBAAE,OAAO,kBAAE,MAAM,iBAAC;AAC/J,UAAU,iBAAC,cAAc,kBAAE,mCAAmC,iBAAC;AAC/D;AACA;AACA,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB,WAAW,kBAAE;AACb,eAAe,kBAAE;AACjB;AACA;AACA,CAAC;AACD,IAAI,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAClC,SAAS,kBAAE;AACX;AACA,yCAAyC,kBAAE;AAC3C;AACA,IAAI,kBAAE,GAAG,iBAAC;AACV,SAAS,kBAAE;AACX;AACA,aAAa,kBAAE,YAAY,kBAAE;AAC7B;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ;AACA;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,sCAAsC,kBAAE;AACxC;AACA;AACA,IAAI,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AAC/C,SAAS,kBAAE;AACX,SAAS,kBAAE,UAAU,kBAAE;AACvB;AACA,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB;AACA;AACA,IAAI,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE;AACje,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,aAAa,kBAAE;AACf;AACA;AACA,SAAS,kBAAE;AACX,gDAAgD,kBAAE,SAAS,kBAAE;AAC7D;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,iBAAiB,iBAAC,OAAO,kBAAE;AAC3B;AACA,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,QAAQ,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE;AAChD,SAAS,kBAAE;AACX,iBAAiB,iBAAC,OAAO,kBAAE;AAC3B;AACA,IAAI,kBAAE,GAAG,iBAAC,IAAI,iBAAC,QAAQ,kBAAE,GAAG,kBAAE,GAAG,kBAAE,CAAC,kBAAE,IAAI,kBAAE,EAAE,kBAAE,MAAM,kBAAE,yBAAyB,kBAAE,qBAAqB,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,qBAAqB,kBAAE,wBAAwB,kBAAE,iCAAiC,iBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,uBAAuB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,4BAA4B,kBAAE,4BAA4B,kBAAE,yBAAyB,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,0BAA0B,kBAAE,iCAAiC,kBAAE,2BAA2B,kBAAE,2BAA2B,iBAAC;AACtuB,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,iBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE;AAC5K,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE,IAAI,iBAAC,CAAC,kBAAE;AACpB,SAAS,iBAAC;AACV,iBAAiB,kBAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAE;AACV;AACA,YAAY,iBAAC,cAAc,kBAAE,SAAS,kBAAE;AACxC;AACA,aAAa,kBAAE;AACf,aAAa,kBAAE,SAAS,kBAAE;AAC1B,iBAAiB,EAAE,kBAAE;AACrB;AACA,WAAW,iBAAC;AACZ;AACA,UAAU,kBAAE;AACZ;AACA;AACA,gBAAgB,iBAAC;AACjB;AACA;AACA;AACA,eAAe,kBAAE;AACjB,UAAU,iBAAC;AACX,GAAG,IAAI,kBAAE;AACT,aAAa,iBAAC;AACd,GAAG;AACH,UAAU,kBAAE;AACZ;AACA,4BAA4B,kBAAE,OAAO,iBAAC;AACtC,GAAG;AACH;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,SAAS,iBAAC,IAAI,kBAAE,GAAG,kBAAE;AACrB;AACA,IAAI,kBAAE;AACN,SAAS,kBAAE;AACX,8BAA8B,kBAAE;AAChC;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA,2BAA2B,iBAAC,IAAI,SAAS;AACzC;AACA;AACA,kBAAE,iBAAiB,kBAAE,kBAAkB,kBAAE;AACzC,kBAAE,iBAAiB,kBAAE;AACrB,SAAS,kBAAE;AACX,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAE,OAAO,kBAAE;AACzC,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAE;AACb,aAAa,kBAAE;AACf;AACA,OAAO;AACP;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI,kBAAE,MAAM,kBAAE,MAAM,kBAAE,uBAAuB,kBAAE,oBAAoB,kBAAE,qBAAqB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,mBAAmB,kBAAE,sBAAsB,kBAAE,sBAAsB,kBAAE,2BAA2B,kBAAE,wBAAwB,kBAAE,6BAA6B,kBAAE,GAAG,kBAAE,GAAG,kBAAE;AACtU,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,sDAAsD,kBAAE,SAAS,kBAAE;AACnE,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX,aAAa,iBAAC;AACd,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE;AACX;AACA,SAAS,kBAAE;AACX,cAAc,kBAAE;AAChB,SAAS,kBAAE;AACX,kBAAkB,kBAAE;AACpB,oBAAoB,kBAAE;AACtB;AACA;AACA;AACA;AACA,WAAW,kBAAE;AACb,cAAc,kBAAE;AAChB;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE;AACZ,eAAe,kBAAE,YAAY,kBAAE;AAC/B;AACA;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AAC1C,SAAS,kBAAE;AACX,cAAc,kBAAE,MAAM,kBAAE,uBAAuB,kBAAE;AACjD;AACA;AACA,kBAAkB,KAAK;AACvB;AACA,uBAAuB,kBAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,MAAM,kBAAE,yBAAyB,kBAAE,4CAA4C,kBAAE,qBAAqB,kBAAE,GAAG,kBAAE;AACnH,SAAS,kBAAE;AACX,kCAAkC,kBAAE,GAAG,iBAAC,aAAa,kBAAE,GAAG,iBAAC;AAC3D,WAAW,kBAAE,mBAAmB,kBAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAC,UAAU,kBAAE,MAAM,kBAAE,qBAAqB,kBAAE;AACrE,YAAY,kBAAE;AACd,iBAAiB,kBAAE,kCAAkC,kBAAE;AACvD;AACA;AACA,2BAA2B,iBAAC;AAC5B;AACA;AACA,4BAA4B,iBAAC,KAAK,kBAAE;AACpC;AACA,SAAS,kBAAE;AACX,wFAAwF,kBAAE,aAAa,kBAAE;AACzG;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kBAAkB,iBAAC;AACnB,2BAA2B,kBAAE,OAAO,kBAAE,GAAG,kBAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,iBAAE;AACX,eAAe,kBAAE,mBAAmB,KAAK;AACzC;AACA,kBAAkB,kBAAE;AACpB;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,UAAU,iBAAE;AACZ,oCAAoC,kBAAE;AACtC,sBAAsB,kBAAE;AACxB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX,MAAM,kBAAE;AACR,yCAAyC,SAAS;AAClD,YAAY,kBAAE;AACd;AACA;AACA;AACA;AACA,mEAAmE,kBAAE,OAAO,kBAAE,mBAAmB,kBAAE;AACnG;AACA,SAAS,kBAAE;AACX,sBAAsB,kBAAE,OAAO,kBAAE;AACjC;AACA,IAAI,kBAAE,MAAM,kBAAE;AACd,SAAS,kBAAE;AACX,SAAS,kBAAE,OAAO,kBAAE,MAAM,kBAAE,CAAC,kBAAE;AAC/B,YAAY,kBAAE;AACd,qCAAqC,kBAAE,SAAS,kBAAE,OAAO,kBAAE,GAAG,kBAAE;AAChE;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,WAAW,kBAAE;AACb;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,MAAM,kBAAE,CAAC,kBAAE,OAAO,kBAAE;AAC/B;AACA,SAAS,kBAAE;AACX,kDAAkD,kBAAE,iCAAiC,kBAAE,eAAe,kBAAE,MAAM,kBAAE;AAChH;AACA,SAAS,kBAAE;AACX;AACA,4DAA4D,KAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX,SAAS,kBAAE;AACX,cAAc,kBAAE,OAAO,kBAAE;AACzB;AACA,SAAS,kBAAE;AACX,oBAAoB,iBAAC,2CAA2C,kBAAE;AAClE;AACA,SAAS,kBAAE;AACX,iBAAiB,kBAAE;AACnB;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX,SAAS,kBAAE,IAAI,kBAAE;AACjB;AACA,SAAS,kBAAE;AACX,UAAU,kBAAE,YAAY,kBAAE;AAC1B;AACA,IAAI,kBAAE;AACN;AACA;AACA;AACA;AACA,kDAAkD,kBAAE;AACpD,wCAAwC,kBAAE,mCAAmC,kBAAE,4BAA4B,kBAAE,oBAAoB,kBAAE,OAAO,kBAAE,cAAc,kBAAE,UAAU,kBAAE,gBAAgB,kBAAE,aAAa,kBAAE;AACzM;AACA,qDAAqD,kBAAE;AACvD;AACA;AACA,aAAa,kBAAE;AACf,sBAAsB,iBAAC;AACvB,MAAM,kBAAE;AACR;AACA,oBAAoB,kBAAE;AACtB,+BAA+B,kBAAE;AACjC;AACA,GAAG,EAAE,kBAAE;AACP;AACA,IAAI,kBAAE,GAAG,kBAAE;AACX;AACA,CAAC;AACD,SAAS,kBAAE;AACX;AACA,aAAa,kBAAE,KAAK,kBAAE;AACtB,IAAI,kBAAE;AACN,GAAG;AACH;AACA,MAAM,kBAAE,qBAAqB,GAAG,UAAU,GAAG,WAAW,kBAAE,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,YAAY,kBAAE,wBAAwB,GAAG,MAAM,EAAE,aAAa,kBAAE,SAAS,EAAE,UAAU,kBAAE,aAAa,kBAAE;AAC1M;AACA;AACA,gBAAgB,kBAAE,EAAE,kBAAE,UAAU,kBAAE,EAAE,kBAAE,iBAAiB,kBAAE;AACzD;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA,SAAS,0BAA0B;AACnC;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,kBAAkB,cAAc;AAChC,wBAAwB,kBAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX,oBAAoB,kBAAE,YAAY,kBAAE,cAAc,kBAAE,cAAc,kBAAE;AACpE;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE,UAAU;AACrB,4CAA4C,kBAAE,kCAAkC,kBAAE,4BAA4B,kBAAE;AAChH;AACA,SAAS,cAAc;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iBAAC,4BAA4B,kBAAE,SAAS,kBAAE;AAChD,SAAS,kBAAE;AACX;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,MAAM,kBAAE,mBAAmB,kBAAE;AAC7B,SAAS,kBAAE;AACX;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA,YAAY,kBAAE;AACd,MAAM,kBAAE;AACR;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,cAAc,4BAA4B,EAAE,kBAAE;AAC9C;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,UAAU,gBAAgB,EAAE;AAC5B;AACA;AACA;AACA,wEAAwE,EAAE;AAC1E;AACA,SAAS,kBAAE;AACX;AACA;AACA;AACA,CAAC;AACD;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA,wBAAwB,kBAAE,YAAY,kBAAE;AACxC;AACA,SAAS,kBAAE;AACX;AACA,CAAC;AACD;AACA,GAAG;AACH;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA;AACA,MAAM,kBAAE,GAAG,gCAAgC;AAC3C,gBAAgB,kBAAE;AAClB,oCAAoC,kBAAE,SAAS,kBAAE,cAAc,iBAAC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8GAA8G,EAAE;AAChH;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA,2CAA2C,kBAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS,iBAAE;AACX,uBAAuB,iBAAC;AACxB;AACA;AACA,SAAS,kBAAE;AACX;AACA;AACA,EAAE,IAAI;AACN;AACA,aAAa;AACb,aAAa;AACb,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB,iBAAC;AAC1B;AACA;AACA;AACA,aAAa,iBAAC;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,UAAU,MAAE;AACZ;AACA,kBAAkB,iBAAE;AACpB;AACA;AACA;AACA,sBAAsB,iBAAE;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN,oBAAoB,iBAAC;AACrB;AACA;AACA;AACA;AACA,MAAM,kBAAE,0BAA0B,EAAE,kBAAE,KAAK,EAAE,kBAAE,GAAG,MAAE,2BAA2B,kBAAE,GAAG,MAAE,kCAAkC,kBAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,kBAAE;AACL,GAAG,kBAAE,KAAK;AACV;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,IAAI,kBAAE;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,kBAAE,GAAG,mCAAE;AACV,QAAQ,kBAAE;AACV;AACA,cAAc,kBAAE,QAAQ,IAAI,OAAO,kBAAE,EAAE;AACvC,6CAA6C,kBAAE,wBAAwB,kBAAE;AACzE,GAAG;AACH,SAAS,kBAAE;AACX;AACA,KAAK,kBAAE;AACP;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH,aAAa,8BAA8B;AAC3C;AACA,mBAAmB,sCAAE,oCAAoC,uBAAE,QAAQ,uBAAE,UAAU,uBAAE;AACjF,IAAI,+BAAE;AACN;AACA;AACA;AACA,OAAO;AACP,yBAAyB,EAAE;AAC3B,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,4BAAE;AAChB;AACA,KAAK,QAAQ,4BAAE;AACf;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ,kBAAE;AACV;AACA;AACA,KAAK,MAAM,kBAAE;AACb;AACA,KAAK;AACL;AACA;AACA,4BAA4B,eAAe,GAAG,+BAAE;AAChD;AACA;AACA,KAAK,GAAG,6BAAE;AACV,qBAAqB,kBAAE,KAAK,kBAAE;AAC9B,mBAAmB,kBAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,OAAO,GAAG,yBAAE;AACZ,gBAAgB,kBAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,yBAAE;AACX,yBAAyB,kBAAE;AAC3B;AACA;AACA;AACA,wDAAwD,kBAAE;AAC1D;AACA;AACA,SAAS,yBAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAE;AACnB,OAAO,MAAM,eAAe;AAC5B,KAAK,SAAS,qBAAE,UAAU,sBAAsB;AAChD;AACA,CAAC;AAGC;AACF;;;;;;;;;;ACviDA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;;ACxBM;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;AClCa;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;;AAE1C,oBAAoB,mBAAO,CAAC,KAAyB;;AAErD,WAAW,sEAAsE;AACjF;;AAEA,WAAW,aAAa;AACxB;AACA;;AAEA,4BAA4B,gDAAgD;AAC5E;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACwE;AACN;AACgB;AACH;AACrC;AACnC,wCAAwC,2EAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6FAAiB;AACnD;AACA;AACA;AACA;AACA,kCAAkC,iFAAc,CAAC,uDAAY;AAC7D;AACA;AACA,kCAAkC,iFAAc,CAAC,uDAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;;;;;;;;AChC1B,SAAS,mBAAO,CAAC,KAAM;AACvB,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AAC8D;AACG;AACW;AAC9B;AACqC;AACF;AAC1E,uBAAuB,iGAAa,6BAA6B,mFAAmF,EAAE,2DAAQ;AAC9J,6BAA6B,iGAAa,mCAAmC,2EAA2E,EAAE,2DAAQ;AAClK,wCAAwC,iGAAa,uCAAuC,+EAA+E,EAAE,2DAAQ;AACrL,uBAAuB,8FAAY,gBAAgB,sEAAO,MAAM,2DAAQ;AACxE,uBAAuB,8FAAY,gBAAgB,sEAAO,SAAS,2DAAQ;AAC3E,qDAAqD,wFAAsB;AAClF;AACA;AACA;AACA,gDAAgD,yEAAS;AACzD;AACA,CAAC;AACM,wDAAwD,wFAAsB;AACrF;AACA;AACA;AACA,gDAAgD,yEAAS;AACzD;AACA,CAAC;AACM,wCAAwC,wFAAsB;AACrE;AACA;AACA;AACA;AACA,CAAC;AACM,2CAA2C,wFAAsB;AACxE;AACA;AACA;AACA;AACA,CAAC;AACM,0BAA0B,wFAAsB;AACvD;AACA;AACA;AACA,CAAC;AACM,mCAAmC,wFAAsB;AAChE;AACA;AACA;AACA,CAAC;AACM,+BAA+B,wFAAsB;AAC5D;AACA;AACA,CAAC;AACM,6BAA6B,wFAAsB;AAC1D;AACA;AACA;AACA,CAAC;AACM,sCAAsC,wFAAsB;AACnE;AACA;AACA;AACA,CAAC;AACM,kCAAkC,wFAAsB;AAC/D;AACA;AACA,CAAC;;;;;;;;;ACpEY;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,gBAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoE;AACiC;AAC/B;AACP;AACQ;AAC+C;AAClC;AACT;AACrB;AACmB;AACO;AACQ;AAC6C;AAChF;AACX;AACwG;AAC7C;AACf;AACa;AACC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C,uCAAuC,gFAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uFAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2FAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,+EAAwB;AAChC;AACA;AACA;AACA,gBAAgB,iFAAe;AAC/B,4DAA4D,+HAAmB,WAAW,oBAAoB;AAC9G,gBAAgB,wEAAc;AAC9B;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,2FAAoB;AACnC,eAAe,uIAA2B;AAC1C;AACwB;AACxB;AACA;AACA;AACA;AACA;AACA,kCAAkC,gFAAe;AACjD,gCAAgC,gFAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2FAAwC,qDAAqD,sFAAQ,OAAO,qFAAiB,oBAAoB,+EAAiB;AACpN;AACA;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,6GAAqB;AACpC;AACA,mCAAmC,gFAAY;AAC/C;AACA;AACA;AACA,mBAAmB,wDAAY;AAC/B;AACA,0BAA0B,gGAAc,KAAK,oFAAiB,uBAAuB,oFAAiB,WAAW,oFAAiB;AAClI;AACA,wBAAwB,oFAAiB;AACzC;AACA,yBAAyB,sFAAsF;AAC/G;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8CAA8C,6GAAqB;AACnE,iDAAiD,oGAAsB;AACvE,wEAAwE,qFAAkC,2CAA2C,sFAAQ,OAAO,qFAAiB;AACrL;AACA;AACA;AACA,oCAAoC,gFAAY;AAChD;AACA;AACA;AACA,mBAAmB,wDAAY;AAC/B;AACA,0BAA0B,gGAAc,KAAK,oFAAiB,WAAW,oFAAiB;AAC1F;AACA,wBAAwB,oFAAiB;AACzC,yBAAyB,4EAAQ;AACjC;AACA,aAAa;AACb;AACA,sBAAsB,oFAAiB;AACvC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0CAA0C,6GAAqB;AAC/D;AACA;AACA;AACA,sBAAsB,kEAAK;AAC3B;AACA,SAAS;AACT,6CAA6C,oGAAsB;AACnE,oEAAoE,2FAAwC,mDAAmD,sFAAQ,OAAO,qFAAiB;AAC/L;AACA;AACA,kGAA0B;AAC1B,kGAA0B;AAC1B,4FAAoB;AACpB,4FAAoB;AACpB;AACA;AACA,6FAAgB;AAChB,gCAAgC,+FAAkB;AAClD;AACA;AACA;AACA,wCAAwC,4FAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtQD,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzBa;AACb,4BAA4B,mBAAO,CAAC,KAAoC;AACxE,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;AACA,iDAAiD,mBAAmB;;AAEpE;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7B0F;AACnF,0BAA0B,0GAAe;;;;;;;;;;;;;;ACDhD;AACA;AACA;AACA;AACqC;AAC9B;AACP;AACA,gCAAgC,wDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;AC7BM;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,cAAc,YAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA,sDAAsD,IAAI,MAAM,IAAI,SAAS,KAAK;AAClF,kCAAkC,KAAK,eAAe,IAAI;AAC1D,2CAA2C,YAAY,YAAY,KAAK,IAAI,KAAK,GAAG,WAAW,IAAI,QAAQ;AAC3G,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACzBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACO;AACP;AACA,4BAA4B,KAAK,IAAI,QAAQ;AAC7C;AACA;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC8I;AAClG;AACmB;AACtB;AACD;AACS;AAC+B;AAC7B;AACF;AACO;AACiB;AACC;AACF;AACrB;AACK;AACJ;AAChC;AACkB;AACG;AACgB;AACgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAAY;AAC3B;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAK,gCAAgC,+BAAU;AAC9D,0BAA0B,0CAAqB;AAC/C;AACA;AACA;AACA;AACA,+BAA+B,iCAAe;AAC9C,gDAAgD,iCAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAAoB;AAC9E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACO;AACP;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AAChE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAe;AACrD,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAAK,uCAAuC,+BAAU;AAC7E;AACA,8BAA8B,0CAAqB;AACnD;AACA;AACA,0BAA0B,uBAAW;AACrC;AACA,wBAAwB,0BAAK;AAC7B,wBAAwB,0BAAK,QAAQ,0BAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAK;AACrB;AACA;AACA,gBAAgB,sBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iCAAa;AACrC;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAe;AAC9C,0BAA0B,0BAAK,gCAAgC,+BAAU;AACzE;AACA,0BAA0B,0CAAqB;AAC/C,sBAAsB,0BAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAAa;AAC/C;AACA;AACA,sBAAsB,yBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,4BAAoB;AAC/B;AACO;AACP;AACA;AACA;AACA,WAAW,4BAAY;AACvB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,+BAA+B,iCAAe;AAC9C,8BAA8B,4BAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAO;AACxC;AACA,QAAQ,0BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oBAAoB;AACtE;AACA;AACA,wCAAwC,QAAQ,oBAAoB,cAAc,yBAAyB;AAC3G;AACA;AACA,wCAAwC,OAAO,kCAAkC,oBAAoB,8BAA8B;AACnI,wCAAwC,OAAO,wCAAwC,oBAAoB,8BAA8B,IAAI;AAC7I;AACA;AACA,wCAAwC,OAAO,kCAAkC,SAAS,8BAA8B;AACxH;AACA;AACA,wCAAwC,OAAO,mCAAmC,oBAAoB,wCAAwC;AAC9I,wCAAwC,OAAO,yCAAyC,oBAAoB,wCAAwC,IAAI;AACxJ;AACA;AACA,wCAAwC,OAAO,mCAAmC,SAAS,wCAAwC;AACnI;AACA;AACA,wCAAwC,OAAO,4CAA4C,SAAS,4CAA4C;AAChJ;AACA;AACA;AACA;AACA,kBAAkB,OAAO,2CAA2C,oBAAoB;AACxF;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,2CAA2C,SAAS;AAC7E;AACA;AACA;AACA,wCAAwC,QAAQ,2BAA2B,UAAU,sCAAsC;AAC3H,wCAAwC,QAAQ,iCAAiC,UAAU,sCAAsC,IAAI;AACrI;AACA;AACA,wCAAwC,QAAQ,oCAAoC,UAAU,8CAA8C;AAC5I;AACA;AACA,wCAAwC,QAAQ,2BAA2B,qBAAqB,sCAAsC;AACtI,wCAAwC,QAAQ,iCAAiC,qBAAqB,sCAAsC,IAAI;AAChJ;AACA;AACA,wCAAwC,QAAQ,4BAA4B,qBAAqB,0CAA0C;AAC3I,wCAAwC,QAAQ,kCAAkC,qBAAqB,0CAA0C,IAAI;AACrJ;AACA;AACA,wCAAwC,QAAQ,4BAA4B,SAAS,0CAA0C;AAC/H;AACA;AACA,wCAAwC,OAAO,wFAAwF,oBAAoB,8BAA8B;AACzL;AACA;AACA,wCAAwC,OAAO,wFAAwF,UAAU,8BAA8B;AAC/K;AACA;AACA;AACA;AACA,yCAAyC,qCAAqB,sCAAsC,qCAAqB;AACzH,wCAAwC;AACxC,wCAAwC,OAAO,2CAA2C,qBAAqB,2BAA2B,sBAAsB;AAChK;AACA,uCAAuC;AACvC;AACA;AACA,kBAAkB,OAAO,kCAAkC,qBAAqB,0BAA0B;AAC1G,yDAAyD,OAAO,yCAAyC,qBAAqB,0BAA0B;AACxJ;AACA;AACA,iDAAiD,qCAAqB;AACtE;AACA,wCAAwC,QAAQ,oCAAoC,sBAAsB,mCAAmC,uBAAuB;AACpK;AACA,2CAA2C;AAC3C,wCAAwC,QAAQ,4BAA4B,sBAAsB,8BAA8B,uBAAuB;AACvJ;AACA,+CAA+C;AAC/C,wCAAwC,QAAQ,2BAA2B,sBAAsB,kCAAkC,uBAAuB;AAC1J;AACA,uCAAuC;AACvC,wCAAwC,QAAQ,yBAAyB,sBAAsB,0BAA0B,uBAAuB;AAChJ;AACA;AACA;AACA,kBAAkB,OAAO;AACzB,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ,+BAA+B,oBAAoB,+BAA+B,YAAY;AACxH;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,oBAAoB,UAAU,WAAW,aAAa;AACvE,wBAAwB;AACxB,IAAI;AACJ;AACA,iBAAiB,QAAQ;AACzB,iBAAiB,QAAQ;AACzB,iBAAiB,oBAAoB,aAAa,WAAW,aAAa;AAC1E,wBAAwB;AACxB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAK;AACzC,wBAAwB,mBAAK;AAC7B,iCAAiC,mBAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc;AACrC,yBAAyB;AACzB,uBAAuB,eAAe;AACtC,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B,iCAAe;AAC5D;AACA;AACA;AACA,sFAAsF,6CAAe;AACrG,6BAA6B,qCAAO;AACpC;AACA,SAAS;AACT;AACA;AACA,yDAAyD,UAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,oDAAoD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,0BAAK;AACpB;AACA;AACA,eAAe,0BAAK;AACpB;AACA,kBAAkB;AAClB,wBAAwB;AACxB,yBAAyB;AACzB,4BAA4B;AAC5B,+BAA+B;AAC/B,sBAAsB;AACtB,wBAAwB;AACxB,wBAAwB;AACxB,uBAAuB;AACvB,yBAAyB;AACzB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAAK,gCAAgC,+BAAU,2DAA2D,0CAAqB;AAC3J;AACA,sBAAsB,uBAAW;AACjC;AACA,0BAA0B,0BAAK,gCAAgC,+BAAU;AACzE,0BAA0B,0CAAqB;AAC/C;AACA,sBAAsB,uBAAW;AACjC,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT,0BAA0B,0BAAK;AAC/B,oBAAoB,8BAA8B,QAAQ,4BAA4B,oCAAkB,CAAC,yBAAS,kDAAkD;AACpK,eAAe,0BAAK;AACpB;AACA,sBAAsB,gCAAgC,+BAAU;AAChE,uBAAuB,OAAO,0BAAK,iCAAiC,+BAAU;AAC9E,sBAAsB,OAAO,0BAAK,iCAAiC,+BAAU;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kCAAa;AAC9C;AACA,+BAA+B,iCAAe;AAC9C,iCAAiC,4BAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gCAAgB;AACjD;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAQ;AAC3B;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,oCAAoC,MAAM;AACzE;AACA;AACA,sBAAsB,SAAS,qCAAqC,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,6BAA6B,MAAM;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,6BAA6B,MAAM;AAClE;AACA;AACA;AACA;AACA,eAAe,iCAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,6BAA6B,MAAM;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gCAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,6BAA6B,MAAM;AAClE;AACA;AACA;AACA;AACA,YAAY,0BAAQ;AACpB;AACA;AACA,uCAAuC,yBAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS,6BAA6B,MAAM;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA,IAAI,yBAAO;AACX;;;;;;;;ACjgDA,uBAAuB,mBAAO,CAAC,IAAqB;AACpD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACmC;AACO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0BAA0B,cAAc,YAAY,SAAS,aAAa,UAAU,gBAAgB,aAAa,EAAE;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2CAA2C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAS;AACrB,+BAA+B,qDAAW;AAC1C;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB,cAAc,EAAE,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2CAA2C;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B,GAAG,eAAe,GAAG;AAC/E;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B,GAAG,eAAe,GAAG;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1lBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA,YAAY,QAAQ,IAAI,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,IAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,iBAAiB,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS,GAAG,KAAK,IAAI,EAAE;AAChG;AACA;AACA;AACA;AACA,sCAAsC,SAAS,GAAG,KAAK,IAAI,QAAQ,GAAG,EAAE;AACxE,sCAAsC,MAAM,MAAM,IAAI;AACtD;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AAC2D;AACK;AACJ;AACN;AACsB;AACrE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wEAAQ;AACjC,uCAAuC,8EAAc,CAAC,iEAAK,mBAAmB,uEAAQ;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6EAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6EAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,wEAAM;AACjB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACnGa;;AAEb,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,kDAAkD,EAAE;AACpD;AACA,SAAS;AACT;;AAEA;AACA,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,OAAO,UAAU,aAAa;AACjD;;AAEA,oBAAoB,kBAAkB;AACtC;AACA;;AAEA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3PA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACLA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpFY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,8CAA8C,WAAW;AACrF,eAAe,YAAY,wBAAwB,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+DAA+D,KAAK,GAAG,WAAW;AAClF;AACA;AACA;AACA,8CAA8C,MAAM,mBAAmB,MAAM,iEAAiE,KAAK,uDAAuD,KAAK;AAC/M;AACA;AACA;AACA;AACA,2CAA2C,YAAY,MAAM,OAAO;AACpE;AACA;AACA;AACA,2CAA2C,KAAK,iBAAiB,OAAO,GAAG,KAAK,MAAM,OAAO,GAAG,KAAK;AACrG,0CAA0C,OAAO,GAAG,KAAK;AACzD,8DAA8D,QAAQ,kBAAkB,YAAY,IAAI,OAAO,QAAQ,KAAK;AAC5H,2CAA2C,QAAQ,KAAK,QAAQ,cAAc,OAAO,MAAM,UAAU,MAAM,UAAU;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,+BAA+B,cAAc;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE,mCAAmC;AACrG;AACA,wDAAwD,gCAAgC;AACxF;AACA,0FAA0F,IAAI;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,GAAG,KAAK;AACpE;AACA,yEAAyE,OAAO,GAAG,KAAK,yBAAyB,OAAO,QAAQ,KAAK;AACrI;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;AC3F6E;AACpB;AAClD,uBAAuB,qFAAkB;AAChD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACoC;AAC2C;AACxE;AACP;AACA,8CAA8C,8FAAa;AAC3D;AACA;AACA;AACA;AACA,4CAA4C,8FAAa,2BAA2B,uDAAY;AAChG;AACA;AACA;AACA,kCAAkC,8FAAa,uBAAuB,uDAAY;AAClF;AACA;AACA;AACA,2CAA2C,8FAAa,0BAA0B,uDAAY;AAC9F,qCAAqC,8FAAa,0BAA0B,uDAAY;AACxF,yCAAyC,8FAAa,wBAAwB,uDAAY;AAC1F,iDAAiD,8FAAa,gCAAgC,uDAAY;AAC1G,8CAA8C,8FAAa,6BAA6B,uDAAY;AACpG,wDAAwD,8FAAa,2CAA2C,uDAAY;AAC5H,uCAAuC,8FAAa,gCAAgC,uDAAY;AAChG,+CAA+C,8FAAa,8BAA8B,uDAAY;AACtG,wDAAwD,8FAAa,uCAAuC,uDAAY;AACxH,8EAA8E,8FAAa,6DAA6D,uDAAY;AACpK,iDAAiD,8FAAa,gCAAgC,uDAAY;AAC1G,uDAAuD,8FAAa,sCAAsC,uDAAY;AACtH,uDAAuD,8FAAa,sCAAsC,uDAAY;AACtH,kDAAkD,8FAAa,8BAA8B,uDAAY;AACzG,kDAAkD,8FAAa,8BAA8B,uDAAY;AACzG,4CAA4C,8FAAa,iCAAiC,uDAAY;AACtG;AACA,iDAAiD,8FAAa,8BAA8B,uDAAY;AACxG;AACA,kDAAkD,8FAAa,uCAAuC,uDAAY;AAClH;AACA,0CAA0C,8FAAa,+BAA+B,uDAAY;AAClG;AACA,+CAA+C,8FAAa;AAC5D,oCAAoC,8FAAa;AACjD,oCAAoC,8FAAa;AACjD,yCAAyC,8FAAa,8BAA8B,uDAAY;AAChG,yCAAyC,8FAAa,8BAA8B,uDAAY;AAChG,gDAAgD,8FAAa,+BAA+B,uDAAY;AACxG,gDAAgD,8FAAa,+BAA+B,uDAAY;AACxG,yDAAyD,8FAAa,wCAAwC,uDAAY;AAC1H,yDAAyD,8FAAa,wCAAwC,uDAAY;AAC1H;AACA;AACA;AACA;AACA,8CAA8C,8FAAa,iCAAiC,uDAAY;AACxG;AACA;AACA,uCAAuC,8FAAa,qBAAqB,uDAAY;AACrF,sDAAsD,8FAAa,2CAA2C,uDAAY;AAC1H,mDAAmD,8FAAa,wCAAwC,uDAAY;AACpH,gDAAgD,8FAAa,qCAAqC,uDAAY;AAC9G,kDAAkD,8FAAa,uCAAuC,uDAAY;AAClH,mDAAmD,8FAAa,wCAAwC,uDAAY;AACpH,sDAAsD,8FAAa,2CAA2C,uDAAY;AAC1H,sDAAsD,8FAAa,2CAA2C,uDAAY;AAC1H,6CAA6C,8FAAa,kCAAkC,uDAAY;AACxG,yDAAyD,8FAAa,8CAA8C,uDAAY;AAChI,sDAAsD,8FAAa,2CAA2C,uDAAY;AAC1H,iDAAiD,8FAAa,sCAAsC,uDAAY;AAChH,8CAA8C,8FAAa,mCAAmC,uDAAY;AAC1G,qDAAqD,8FAAa,0CAA0C,uDAAY;AACxH,kDAAkD,8FAAa,uCAAuC,uDAAY;AAClH;AACA,0DAA0D,8FAAa,+CAA+C,uDAAY;AAClI,mEAAmE,8FAAa,wDAAwD,uDAAY;AACpJ,kEAAkE,8FAAa,uDAAuD,uDAAY;AAClJ,2EAA2E,8FAAa,gEAAgE,uDAAY;AACpK,CAAC,8CAA8C;;;;;;;;;;AChF/C;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,wBAAwB;AAC3G,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,eAAe,mBAAO,CAAC,KAAyB;AAChD,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,GAAG,QAAQ;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB;AACA;AACA,YAAY,gDAAgD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,GAAG,aAAa,mBAAmB,kDAAkD,EAAE;AAC5M;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,EAAE,oEAAoE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,YAAY,gBAAgB;AAC5B,qEAAqE,cAAc,GAAG,sBAAsB;AAC5G;AACA;AACA,YAAY,MAAM;AAClB,6CAA6C,KAAK;AAClD;AACA,iEAAiE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK;AACxJ,gEAAgE,wBAAwB;AACxF;AACA,KAAK;AACL;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,qEAAqE,cAAc,IAAI,qDAAqD;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,gCAAgC,mCAAmC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,QAAQ,IAAI,eAAe;AAC9F;AACA;AACA;AACA;AACA,oCAAoC,QAAQ,8BAA8B,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;;;;;AC3HA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,iCAAiC;AAC1E;;;;;;;;;ACba;AACb,yBAAyB,mBAAO,CAAC,KAAmC;AACpE,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;ACXA;AACsG;AACd;AACzC;AACW;AACnD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA,+BAA+B;AAC/B,wBAAwB,uBAAuB;AAC/C,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA,8BAA8B,sEAAM,GAAG;AACvC,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iFAAiB;AACjE;AACA,+BAA+B;AAC/B;AACA,wBAAwB,uBAAuB;AAC/C;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iFAAiB;AAChG;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC,oBAAoB;AAC1H;AACA;AACA,2DAA2D,oCAAoC,oBAAoB;AACnH;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB;AACzC,0DAA0D,4DAA4D;AACtH;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAkB;AACxD;AACA;AACA,yEAAyE,wBAAwB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,iFAAiB;AAC1G;AACA,iCAAiC,uCAAuC,iFAAiB;AACzF,oBAAoB,qEAAK;AACzB,6DAA6D,wCAAwC;AACrG;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,6DAA6D,4DAA4D;AACzH;AACA;AACA;AACA;AACA,wBAAwB,uEAAO;AAC/B;AACA;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA,oBAAoB,uEAAO;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,wEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,iBAAiB;AACjC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,SAAS;AACzB;AACA,gBAAgB,KAAK;AACrB;AACA,kBAAkB,eAAe;AACjC;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,IAAI;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,WAAW;AAC3B,iBAAiB,UAAU;AAC3B;AACA;AACA,oCAAoC;AACpC,wBAAwB,sEAAM,GAAG;AACjC,2BAA2B,gEAAK;AAChC;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA,gCAAgC,YAAY,gEAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,IAAI;AAC5B;AACA,gBAAgB,OAAO;AACvB;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA,mBAAmB,sEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,iBAAiB;AACjC,iBAAiB,UAAU;AAC3B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,qBAAqB,sEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,kBAAkB,4DAA4D;AAC9E;AACA;AACA,sBAAsB;AACtB,wBAAwB,iBAAiB;AACzC,iBAAiB,iFAAiB;AAClC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ,qEAAK;AACb;AACA,YAAY,wEAAQ;AACpB;AACA;AACA,QAAQ,0EAAU;AAClB;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,QAAQ;AACxB,iBAAiB,OAAO,IAAI;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,iBAAiB;AACjC,gBAAgB,KAAK;AACrB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,8CAA8C,iCAAiC,wBAAwB;AACvG,qBAAqB,sEAAM,GAAG;AAC9B,wBAAwB,sEAAM,GAAG;AACjC;AACA;AACA;AACA,+BAA+B;AAC/B,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA,8CAA8C,iFAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA,gBAAgB,OAAO,IAAI;AAC3B;AACA,gBAAgB,eAAe;AAC/B;AACA,gBAAgB,WAAW;AAC3B;AACA,eAAe,iBAAiB;AAChC;AACA,eAAe,GAAG;AAClB;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAM,GAAG;AACjC,qBAAqB,sEAAM,GAAG;AAC9B;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,UAAU;AACzB,eAAe,iBAAiB;AAChC,eAAe,aAAa;AAC5B,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,mEAAO,GAAG,kEAAM;AACxF,kDAAkD,iDAAiD;AACnG;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,0BAA0B;AACzC,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,iBAAiB,iFAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,iFAAiB;AACjG;AACA,kBAAkB,kFAAkF,IAAI;AACxG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iFAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,qBAAqB;AACrB;AACA,YAAY,qEAAK;AACjB;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAgE;AAC7G;AACA;AACA,6CAA6C,+CAA+C;AAC5F,uDAAuD,gCAAgC;AACvF;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,0BAA0B;AACzC,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,iBAAiB;AAChC,eAAe,GAAG;AAClB,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,iFAAiB;AACjG;AACA,kBAAkB,kFAAkF,IAAI;AACxG,SAAS;AACT,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,8DAA8D,mCAAmC,IAAI;AACrG,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC,IAAI;AACnG,iBAAiB;AACjB;AACA,wCAAwC,8EAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB,eAAe;AAC/B;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B,6BAA6B,sEAAM,GAAG;AACtC;AACA;AACA,4CAA4C,iFAAiB;AAC7D,uDAAuD,gCAAgC,IAAI;AAC3F,SAAS;AACT,QAAQ,sEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB,WAAW;AAC3B;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,iBAAiB;AACjC;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA,qBAAqB,sEAAM,GAAG;AAC9B;AACA,mEAAmE,mEAAO,GAAG,kEAAM;AACnF;AACA;AACA,qBAAqB,iFAAiB;AACtC,aAAa;AACb;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,eAAe;AAC1B,aAAa,sBAAsB;AACnC;AACO;AACP;AACA,QAAQ,iFAAiB;AACzB,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA,yBAAyB,iFAAiB;AAC1C,kDAAkD,wEAAQ;AAC1D,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,sBAAsB;AACnC;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA;AACA,mBAAmB,uEAAO;AAC1B;AACA;AACA;AACA;;;;;;;;ACplCA,qBAAqB,mBAAO,CAAC,KAAiB;AAC9C;AACA;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AAC8E;AACvE,yBAAyB,iGAAe;AACxC;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvCA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;AC1Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAwB;AAChD,kBAAkB,mBAAO,CAAC,KAAe;AACzC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,uBAAuB;AACjD,kBAAkB,QAAQ;AAC1B,2BAA2B,QAAQ;AACnC,eAAe,UAAU,4BAA4B,wBAAwB,SAAS,WAAW,SAAS,QAAQ,cAAc,KAAK;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK,EAAE,oCAAoC;AACpG,0CAA0C,KAAK,gEAAgE,kDAAkD;AACjK;AACA;AACA;AACA;AACA;AACA,+CAA+C,KAAK,MAAM,SAAS;AACnE;AACA;AACA;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA,2CAA2C,8BAA8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,QAAQ;AAC7H;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,mCAAmC,UAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvGa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,YAAY,mBAAO,CAAC,KAAoB;AACxC,mBAAmB,mBAAO,CAAC,KAA+B;AAC1D,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,2DAA2D;AAC/D;AACA,CAAC;;;;;;;;;ACfY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,eAAe,mBAAO,CAAC,KAAwB;;AAE/C,mCAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACoE;AACnB;AACR;AACY;AACrD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,+CAA+C,kEAAS,6DAA6D,kEAAS;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kEAAS,wDAAwD,kEAAS;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,yBAAyB,IAAI,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gFAAkB;AAC5C;AACA;AACA;AACA,wCAAwC,0DAAK,iFAAiF,0DAAK;AACnI;AACA;AACA;AACA,wCAAwC,0DAAK,qIAAqI,0DAAK;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,8BAA8B,kEAAS,6BAA6B,kEAAS;AAC7E,8BAA8B,kEAAS,6BAA6B,kEAAS;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,8BAA8B,IAAI,+BAA+B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAc;AACjC;AACA;;;;;;;;AC3HA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;AC7Ba;AACb,aAAa,mBAAO,CAAC,KAAqB;;AAE1C;AACA;;AAEA;AACA;AACA,kCAAkC,kDAAkD;AACpF,IAAI;AACJ;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACuD;AACgB;AACK;AACb;AACT;AAC0B;AAC4C;AAC3D;AACkD;AAChC;AACO;AACI;AACK;AACO;AACnG;AACP;AACA,yCAAyC,2FAAiB;AAC1D,4CAA4C,uGAAmB;AAC/D,wCAAwC,2FAAe;AACvD,sCAAsC,6GAAqB;AAC3D,6CAA6C,0GAAoB;AACjE,4BAA4B,qFAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uFAAY,cAAc,iFAAM;AAC3D,qBAAqB,0FAAW,2BAA2B,2EAAY;AACvE,2BAA2B,iGAAsB;AACjD;AACA,iCAAiC,qEAAM,mBAAmB,yFAAc,wBAAwB,wBAAwB;AACxH;AACA;AACA,6CAA6C,iGAAsB,6BAA6B,kEAAK;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,6BAA6B,wEAAS;AACtC,6BAA6B,qEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8FAAQ;AACtC;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kFAA0B;AAClD,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACO;AACP,yCAAyC,2FAAiB;AAC1D;AACA;AACA;AACA,+CAA+C,mGAAkB;AACjE,yBAAyB,gFAAW;AACpC;AACA,2BAA2B,2FAAgB,GAAG,oDAAoD,IAAI,SAAS,yBAAyB,mCAAmC;AAC3K,wCAAwC,iGAAsB,6BAA6B,kEAAK,oCAAoC,kEAAK;AACzI,KAAK;AACL;AACA;;;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;ACvByC;AAC1C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAK;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AAC8C;AACvC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kBAAkB,qEAAe;AACjC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACsE;AACV;AACmB;AACO;AAChC;AACS;AACV;AACjC;AAC6E;AACpC;AAC7D,8BAA8B,4BAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAM,YAAY,SAAC;AACrC;AACA;AACA,SAAS;AACT,2FAA2F,wDAAuB;AAClH;AACA;AACA,kDAAkD,+BAAU;AAC5D,8CAA8C,+BAAU;AACxD,6BAA6B,0BAAK,6CAA6C,0CAAqB;AACpG;AACA,yCAAyC,+BAAU,UAAU,sBAAc;AAC3E,uBAAuB,oBAAO;AAC9B,uBAAuB,0BAAK;AAC5B;AACA;AACA;AACA;AACA,YAAY,uBAAW;AACvB;AACA;AACA;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAAa;AAC5B,eAAe,mCAAc;AAC7B;AACgB;;;;;;;AChGhB,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACgC;AACuC;AACQ;AACnB;AACM;AACsC;AACL;AAChC;AACa;AACf;AACjE;AACA,sDAAsD,4BAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,yBAAU;AAC7B,IAAI,sBAAO,IAAI,2CAAqB;AACpC;AAC4B;AAC5B;AACA,kCAAkC,4BAAU;AAC5C;AACA;AACA;AACA,yEAAyE,wCAAgB,IAAI;AAC7F,uBAAuB,SAAC;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAS;AACjB;AACA;AACA;AACA,QAAQ,yBAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sBAAM,eAAe,SAAC;AACpD;AACA;AACA,sCAAsC,SAAC,OAAO,0BAAS,0BAA0B;AACjF;AACA;AACA,iCAAiC,sBAAM,eAAe,SAAC;AACvD;AACA;AACA;AACA,uCAAuC,sBAAM,eAAe,SAAC;AAC7D;AACA;AACA,wEAAwE,IAAI,kCAAkC,yBAAyB,IAAI;AAC3I;AACA;AACA;AACA,mCAAmC,sBAAM,eAAe,SAAC;AACzD,4CAA4C,0BAAS;AACrD,+CAA+C,sBAAM,iCAAiC,0BAAS,aAAa,gCAAW;AACvH;AACA;AACA;AACA,SAAS,MAAM,0BAA0B;AACzC;AACA;AACA;AACA,SAAS,yBAAU;AACnB,IAAI,sBAAO,IAAI,2CAAqB;AACpC;;;;;;;;;;;ACtHA;AACA;AACA;AACA;AACA,IAAI,2BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,wBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoE;AACN;AACU;AACN;AACF;AACuB;AACrD;AACoF;AACX;AAC/B;AAC0B;AACtB;AACP;AAC2E;AACvE;AACyB;AAC7C;AACf;AACyD;AACA;AACrB;AACY;AACT;AAC0B;AACpG,oBAAoB,qCAAY,+BAA+B,uBAAO,UAAU,oBAAY;AACnG,0DAA0D,4BAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAY;AAC7C;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAY;AAC7C;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oFAAoF,gBAAgB;AACpG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAiB;AAC5C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAAU;AAC/B,IAAI,wBAAO,IAAI,wCAAoB;AACnC,IAAI,wBAAO,IAAI,sDAAgC;AAC/C,IAAI,wBAAO,IAAI,2CAAqB;AACpC;AAC8B;AAC9B;AACA;AACA,iDAAiD,0CAAoB;AACrE;AACA;AACA,qDAAqD,0CAAoB;AACzE,mDAAmD,0CAAoB;AACvE;AACA;AACA;AACA;AACA,0EAA0E,4BAAU;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAgB;AAC9D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAwB;AACrC;AACA;AACA;AACA;AACA;AACA,uBAAuB,2DAA0B;AACjD,sBAAsB,0DAAyB;AAC/C;AACA;AACA;AACA,6BAA6B,2BAAU;AACvC,IAAI,wBAAO,IAAI,wCAAoB;AACnC;AACA,yCAAyC,4BAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAgB;AAC9D;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8DAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8EAA8E;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAwB;AACrC;AACA;AACA;AACA;AACA,uBAAuB,2DAA0B;AACjD,sBAAsB,0DAAyB;AAC/C;AACA;AACA;AACA,4CAA4C,oBAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAY;AACpC,iCAAiC,oBAAY,+DAA+D,GAAG,4CAA4C,EAAE;AAC7J;AACA;AACA,iCAAiC,oBAAY,0DAA0D,GAAG,sCAAsC,EAAE;AAClJ;AACA;AACA;AACA;AACA,6BAA6B,oBAAY,0DAA0D,GAAG;AACtG;AACA;AACA,6BAA6B,oBAAY,8DAA8D,GAAG;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAY;AAC/C,mCAAmC,sBAAsB,GAAG,uDAAuD;AACnH,iCAAiC,kCAAc;AAC/C;AACA;AACA;AACA,4BAA4B,8CAAa;AACzC;AACA;AACA;AACA;AACA,eAAe,yDAAoB;AACnC;AACA;AACA,qCAAqC,2BAAU;AAC/C,IAAI,wBAAO,IAAI,gCAAgB;AAC/B,IAAI,wBAAO,IAAI,mCAAc;AAC7B;AAC8C;AAC9C;AACA,gBAAgB,wCAAwC;AACxD;AACA;AACA,qBAAqB,0BAA0B;AAC/C,SAAS,mCAAmB;AAC5B;AACA,sBAAsB,GAAG,uCAAuC,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAA2B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe,EAAE,cAAc;AACtD;AACA;AACA,sBAAsB,wCAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACO,kDAAkD,qCAAY;AACrE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT,0BAA0B,oBAAY;AACtC;AACA;AACA,sGAAsG,2CAAqB;AAC3H;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAA0B;AACzE;AACA;AACO,iDAAiD,qCAAY;AACpE;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT,0BAA0B,oBAAY;AACtC;AACA;AACA,sGAAsG,2CAAqB;AAC3H;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAA0B;AACzE;AACA;AACO,6DAA6D,qCAAY;AAChF;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT,0BAA0B,oBAAY;AACtC;AACA;AACA,sGAAsG,2CAAqB;AAC3H;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAA0B;AACzE;AACA;AACA;AACO,6DAA6D,qCAAY;AAChF;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT,0BAA0B,oBAAY;AACtC;AACA;AACA,sGAAsG,2CAAqB;AAC3H;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAA0B;AACzE;AACA;AACA;AACO,iEAAiE,qCAAY;AACpF;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT,0BAA0B,oBAAY;AACtC;AACA;AACA,sGAAsG,2CAAqB;AAC3H;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAA0B;AACzE;AACA;AACA;AACO,iCAAiC,qCAAY;AACpD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA,8CAA8C,qCAAkB;AAChE,kDAAkD,2CAAqB;AACvE;AACA,gBAAgB,mCAAmB;AACnC,uBAAuB,oBAAY,wEAAwE,GAAG;AAC9G;AACA,mBAAmB,oBAAY,+DAA+D,GAAG,4BAA4B,2BAA2B,GAAG,KAAK;AAChK;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAY,uHAAuH,EAAE;AAChK;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,8EAA8E;AACzG;AACA;AACA;AACA,2BAA2B,8EAA8E;AACzG;AACA;AACA;AACA,2BAA2B,8EAA8E;AACzG;AACA;AACA;AACA,2BAA2B,8EAA8E;AACzG;AACA;AACA;AACA,2BAA2B,8EAA8E;AACzG;AACA;AACA;AACA;AACA,8DAA8D,4CAA4C;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gDAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAA0B;AACrE;AACA;AACA;AACA,6DAA6D,gDAA0B;AACvF;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAA0B;AACrE;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,uDAA0B;AAC1B,2CAAwB;;;;;;;;;;AC3pBxB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,kBAAkB,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gDAAgD,UAAU,KAAK,MAAM;AACrE;AACA,8DAA8D,QAAQ,IAAI,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAAqB,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACzC,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,CAAC;;;;;;;;AC9ID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC5Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,iBAAiB,YAAY;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS,GAAG,KAAK,IAAI,EAAE;AAChG;AACA;AACA;AACA;AACA,sCAAsC,SAAS,GAAG,KAAK,IAAI,QAAQ,GAAG,EAAE;AACxE,sCAAsC,MAAM,MAAM,IAAI;AACtD;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO,IAAI,OAAO,IAAI,GAAG;AAC3E;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACpLA;AACA;AACA;AACA;AACwD;AACuB;AACoB;AACxC;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wCAAwC,4BAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAiB;AACrE;AACA;AACA,iEAAiE,iCAAe;AAChF;AACA;AACA;AACA;AACA,2BAA2B,4CAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE,8DAA8D,mBAAmB;AACjF;AACA;AACA;;;;;;;ACjRA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACsE;AACD;AACyC;AAChC;AACf;AACR;AAC+B;AAC3C;AACyB;AACgB;AACnB;AACmB;AACT;AACrB;AACa;AACoB;AACf;AACxE,oIAAoI,yBAAyB;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8CAAwB;AACjD,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF;AACA,0EAA0E;AAC1E;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,oCAAoC,0BAA0B,wBAAQ,mCAAmC;AACzG;AACA;AACA;AACA,oCAAoC,0BAA0B,wBAAQ,mCAAmC;AACzG;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B,wBAAQ,mCAAmC;AACzG;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B,wBAAQ,qCAAqC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,wBAAQ,mCAAmC;AAChH;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAQ,yCAAyC,EAAE,GAAG,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAmB;AAC5C,iDAAiD,wBAAQ,yBAAyB,EAAE,6CAA6C,sCAAc;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yCAAyC;AAC7D;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA,2BAA2B,yFAAyF,0BAA0B,GAAG,4BAA4B,GAAG;AAChL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,cAAE,CAAC,6BAAa,EAAE,4BAAY,EAAE,0CAA0B;AAC5G;AACA,eAAe,2CAAqB;AACpC,eAAe,oCAAkB;AACjC,eAAe,+BAAe;AAC9B,eAAe,kCAAiB;AAChC,eAAe,6BAAc;AAC7B;AAC+C;AAC/C,wEAAwE,4BAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmB;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,MAAM;AAC/E;AACA;AACA,oDAAoD,oBAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,uFAAuF,YAAY;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAAe;AAC9B,eAAe,2CAAqB;AACpC,eAAe,uBAAW;AAC1B;AAC2B;;;ACpW3B;AACA;AACA;AACA;AACmE;AACc;AACoC;AAC9G,wDAAwD,mCAAmC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mCAAiB;AACrC;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAU;AACjC,aAAa;AACb;AACA;AACA;AACA;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,IAAI,sCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,mCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4E;AACO;AACZ;AACa;AACoC;AACrB;AACT;AACP;AACI;AACP;AACU;AACjB;AACiB;AAC1F,gGAAgG,yCAAyC;AACzI,oCAAoC,QAAQ;AAC5C;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sCAAU;AAClD,IAAI,mCAAO,IAAI,2CAAqB;AACpC,IAAI,mCAAO,IAAI,2CAAkB;AACjC,IAAI,mCAAO,IAAI,oCAAkB;AACjC,IAAI,mCAAO,IAAI,+BAAe;AAC9B,IAAI,mCAAO,IAAI,kCAAiB;AAChC,IAAI,mCAAO,IAAI,6BAAc;AAC7B;AACiD;AAC1C,6BAA6B,qCAAY;AAChD;AACA;AACA;AACA,mBAAmB,yCAAe;AAClC;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,qCAAkB;AACvC;AACA;AACA;AACA,iDAAoB;AACpB,wBAAQ,IAAI,8BAAU;AACtB;AACA;AACA,oBAAoB,aAAa,yCAAe,iDAAiD;AACjG,CAAC;;;;;;;;AC/ED,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;ACFa;AACb,WAAW,mBAAO,CAAC,KAA4B;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA;AACqE;AACb;;AAExD;;AAEA;AACA;;AAEA,SAAS,2CAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,eAAe;AAC1B,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,gDAAW;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAAQ,eAAe,4BAA4B;AAC9E;AACA,2BAA2B,kCAAkC;AAC7D;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH,iBAAiB,6CAAQ;AACzB;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,YAAoB,oBAAoB,EAErF;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC,GAAG,EAM5C;AACP;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAgE,EAAE,EAGrE;AACT;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAkE,EAAE,EAGvE;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,KAAK;AACL;AACA,yBAAyB;AACzB;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,0CAAK,eAAe,2BAA2B;AACjD,SAAS,KAAqC,GAAG,EAE5C;AACL,GAAG,IAAI,2BAA2B;AAClC;;AAEA;AACA,6CAA6C,oBAAoB;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;;AAEH,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,EAAE,gFAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,mDAAmD;AAC9D,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,oCAAoC,mBAAmB;AACvD,KAAK,IAAI;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,+CAA+C,sBAAsB;AACrE,MAAM;AACN,2CAA2C,sBAAsB;AACjE;AACA,GAAG;AACH;AACA;;AAEA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,cAAc;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,KAAqC,GAAG,EAK5C;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAK5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,qCAAqC;AAClE;AACA;;AAEA;AACA,6BAA6B;AAC7B,yEAAyE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAG5C;;AAEH,iCAAiC;AACjC,+BAA+B;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,0BAA0B;AAChE;;AAEA,2BAA2B,SAAS;;AAEpC;AACA;AACA;;AAEA;AACA;AACA,OAAO,MAAqC,KAAK,KAAqB;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO,KAAqC,GAAG,EAE5C;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,8BAA8B,uCAAuC;;AAErE;AACA,IAAI,KACyB;AAC7B,IAAI,EAKD;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA,SAAS,KAAqC,GAAG,EAE5C;AACL;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD,gCAAgC,4CAA4C;AAC5E,IAAI;AACJ,SAAS,KAAqC,GAAG,EAG5C;AACL;;AAEA;AACA,iDAAiD,0BAA0B;AAC3E;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,oCAAoC,2CAA2C;AAC/E,QAAQ;AACR,aAAa,KAAqC,GAAG,EAG5C;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mCAAmC,mBAAmB;AACtD,oCAAoC,kDAAkD;AACtF,QAAQ;AACR,aAAa,KAAqC,GAAG,EAG5C;AACT;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C,aAAa;AACvD;AACA;;AAEA;AACA;;AAEA,OAAO,KAAqC,GAAG,EAE5C;AACH,SAAS,0CAAK,eAAe,kDAAkD,sBAAsB;AACrG;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAG5C;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,kCAAkC;;AAElC,OAAO,KAAqC,GAAG,EAE5C;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW;AACX;AACA;AACA;AACA,MAAM,KAA8D,EAAE,EAEnE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAAiE,EAAE,EAEtE;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAEpE;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAwE,EAAE,EAG7E;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAEpE;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,kCAAkC,gBAAgB,IAAI,gBAAgB,IAAI,iBAAiB;AAC3F,iBAAiB,iBAAiB,SAAS,kBAAkB,IAAI,kBAAkB,IAAI,mBAAmB;AAC1G,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,oBAAoB,IAAI;AACjE,4CAA4C,UAAU,yBAAyB,IAAI;AACnF;;AAEA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,MAAM,KAAkD,EAAE,EAEvD;AACH;AACA;;AAEA;;AAEA;AACA;AACA,iCAAiC;AACjC,2BAA2B,iFAAiF;AAC5G,qCAAqC,+DAA+D;AACpG,qDAAqD,6EAA6E;AAClI,uCAAuC,yEAAyE;AAChH,iDAAiD,yEAAyE;AAC1H,uCAAuC;AACvC,mCAAmC;AACnC,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,qDAAqD;AACrD,uDAAuD;AACvD;AACA;;AAEA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAe,KAAK,EAAC;AACoH;;;;;;;;AC58CzI;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;ACHa;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA,2FAA2F;AAC3F,4CAA4C;;AAE5C,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,gCAAgC;;AAEhC,kEAAkE;AAClE,qEAAqE;;AAErE;AACA,iCAAiC;AACjC;AACA,uCAAuC;;AAEvC,2DAA2D;AAC3D,+DAA+D;;AAE/D;AACA;AACA,sBAAsB,gBAAgB;AACtC,2EAA2E;;AAE3E,yGAAyG;;AAEzG;AACA,6CAA6C;;AAE7C,8DAA8D;;AAE9D;AACA;AACA,8BAA8B,oBAAoB;AAClD,uEAAuE;AACvE;;AAEA;AACA;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAsB;AACnC;AACA;AACA,CAAC;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;ACtKyF;AACnF,0CAA0C,0GAAe;AACzD,uCAAuC,0GAAe;;;;;;;;;ACF7D,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;AAC3B,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,8CAA+B;AAC9C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,+CAAiC;;AAEjD;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uDAAuD,YAAY;AACnE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oBAAoB;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C,sBAAsB,+CAA+C;AACrE;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,sBAAsB,4BAA4B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAgC;;;;;;;;;;;;;;;;;;ACzjChC;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC2D;AACF;AAChB;AACQ;AACY;AACiC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0EAAa;AACvD;AACA;AACA,mCAAmC,0EAAa;AAChD,6DAA6D;AAC7D;AACA;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,0CAA0C,0EAAa;AACvD;AACA;AACA,mCAAmC,0EAAa;AAChD,6DAA6D;AAC7D;AACA;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA,0CAA0C,sFAA+B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0EAAa;AACnE;AACA;AACA;AACA;AACA,gDAAgD,kFAAc,mCAAmC,0DAAK;AACtG;AACA;AACA;AACA,0FAA0F,sCAAsC;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,0DAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA,0CAA0C,sFAA+B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0DAAK;AAC7D;AACA;AACA,wDAAwD,0DAAK;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAS;AACpC;AACA,uBAAuB,kEAAS;AAChC;AACA;AACA;AACA;AACA;AACA,eAAe,gHAA6B;AAC5C;AACwB;;;;;;;;AC9OxB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzGD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtGD,YAAY,mBAAO,CAAC,KAAU;AAC9B,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACtED;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC2E;AACf;AACM;AACiC;AAC/B;AACc;AACA;AACa;AACwD;AACjD;AACrC;AACuB;AACU;AACxB;AACsC;AAChH,gFAAgF,2EAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oGAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oGAAyB;AACzC;AACA;AACA,SAAS;AACT;AACA,gBAAgB,oGAAyB;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uCAAuC,uGAAgC;AACvE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8GAA6B;AAC5C,eAAe,6EAAa;AAC5B,eAAe,2FAAa;AAC5B,eAAe,4GAAqB;AACpC,eAAe,iHAA+B;AAC9C,eAAe,oGAAwB;AACvC;AACyC;AACzC,0FAA0F,2EAAU;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,gGAAgG;AACnN,+DAA+D,6EAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,4EAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yGAAiC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2FAAuB;AACnE;AACA;AACA,wBAAwB,iGAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,0EAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,SAAS;AACT,4CAA4C,iFAA0B;AACtE;AACA,gBAAgB,+EAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6FAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wFAAgB;AAC5B;AACA,2BAA2B,8GAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8GAA6B;AAC5C,eAAe,2FAAa;AAC5B,eAAe,iHAA+B;AAC9C,eAAe,oGAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAAqB;;;;;;;;;;ACtWrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrLY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,oBAAoB;AACnJ,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB;AACpB,gBAAgB,SAAS,sCAAsC,QAAQ;AACvE;AACA,yBAAyB;AACzB,gBAAgB,qBAAqB;AACrC,iCAAiC,QAAQ,oBAAoB,YAAY;AACzE,iCAAiC,QAAQ;AACzC;AACA;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,mBAAmB;AACnB;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,+BAA+B,yBAAyB,wEAAwE,wBAAwB;AACxJ;AACA,wBAAwB;AACxB,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB,GAAG,EAAE;AACxE,mCAAmC,IAAI,mEAAmE,IAAI;AAC9G,uCAAuC,IAAI,oCAAoC,iBAAiB,GAAG,QAAQ;AAC3G;AACA,2CAA2C,IAAI;AAC/C,2CAA2C,IAAI;AAC/C;AACA,KAAK;AACL;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,yBAAyB,0EAA0E,IAAI,yBAAyB,wBAAwB,QAAQ,IAAI;AACnM,iCAAiC,uBAAuB;AACxD;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA,0CAA0C,mBAAmB,GAAG,KAAK;AACrE;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA,mCAAmC;AACnC;AACA;AACA,gDAAgD;AAChD,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW,IAAI,cAAc;AAC1D;AACA,gCAAgC,UAAU,EAAE,wDAAwD;AACpG;AACA;AACA;AACA,2BAA2B,eAAe,iBAAiB,IAAI,0BAA0B;AACzF,uEAAuE,cAAc,GAAG,QAAQ;AAChG;AACA,wCAAwC,QAAQ,EAAE,sDAAsD;AACxG;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,YAAY,iCAAiC;AAC7C,YAAY,+CAA+C;AAC3D,8HAA8H;AAC9H;AACA;AACA;AACA;AACA,qFAAqF,aAAa,EAAE,WAAW;AAC/G;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AAC0D;AAC4E;AACpF;AACH;AACuB;AAC/D;AACP,+BAA+B,kFAAc;AAC7C;AACA;AACA;AACA;AACA,wCAAwC,oGAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6DAAG;AAC/B,WAAW,kGAA0B;AACrC;AACA,KAAK;AACL;AACA;AACA,IAAI,qFAAiB;AACrB,IAAI,qFAAiB;AACrB,IAAI,wEAAa;AACjB,IAAI,wEAAa;AACjB;AACO;AACP;AACA;AACA,uCAAuC,wEAAa;AACpD;AACA,+BAA+B,gEAAK;AACpC;AACA;AACA,oDAAoD,gEAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6DAAG;AAC/C;AACA;AACA,4CAA4C,6DAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAK,UAAU,oGAA4B,CAAC,2EAAO;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,aAAa,8BAA8B;AAC3C;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AAC9C;AACP;AACA;AACA;AACA,CAAC,sDAAsD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oEAAoE;AAC9D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AAC1C;AACP;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0EAA0E;AAC3E;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA,WAAW,4DAA4D;AACvE;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kEAAkE;AAC5D;AACP;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,4CAA4C;AAC5C;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,4CAA4C;AAC5C;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AACpB;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACP;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,8DAA8D;AAC/D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AACpC;AACP;AACA;AACA,CAAC,4CAA4C;AACtC;AACP;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0EAA0E;AAC3E;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AAChD;AACP;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;AACA;AACA,CAAC,gCAAgC;AAC1B;AACP;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AAC1C;AACP;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AAChD;AACP;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AAC1B;AACP;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;;;;;;;;;ACh9B5B;AACb,aAAa,mBAAO,CAAC,KAA+B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,+BAA+B,mBAAO,CAAC,KAAuC;;AAE9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACiC;AACjC;AACA,yBAAyB,mDAAI;AAC7B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;;;;;;;;ACnEA,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,wBAAwB,mBAAO,CAAC,KAAqB;AACrD,eAAe,mBAAO,CAAC,IAAY;AACnC,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;AACnC,oBAAoB,mBAAO,CAAC,KAAiB;AAC7C,mBAAmB,mBAAO,CAAC,KAAgB;AAC3C,cAAc,mBAAO,CAAC,KAAY;AAClC,oBAAoB,mBAAO,CAAC,KAAiB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACO;AACP;AACA,+BAA+B;AAC/B,6BAA6B;AAC7B,8BAA8B;AAC9B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qEAAqE;AACtG,2BAA2B,+DAA+D;AAC1F,yBAAyB,6DAA6D;AACtF,0BAA0B,8DAA8D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;;;;;;;AC3NrC;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;ACxBD,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,iBAAiB,mBAAO,CAAC,KAA6B;AACtD,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,uFAAuF;AAC3F;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTD;AACA;AACA;AACA;AAC8D;AACU;AACF;AACK;AACb;AAC+C;AACtG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4DAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA;AACA,eAAe,gCAAY;AAC3B;AACA;AACA;AACA,eAAe,gCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA,+BAA+B,oCAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAa,iBAAiB,0BAAS,wDAAwD,2CAAoB;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChGA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuE;AACT;AACwD;AAC9C;AAClB;AACmB;AACkC;AACzC;AACV;AACd;AACgD;AACQ;AAC7B;AACiB;AAC/E,wCAAwC,qCAAY;AAC3D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO,sCAAsC,qCAAY;AACzD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO,0CAA0C,qCAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qCAAkB;AACjE,0CAA0C,mCAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAY;AAC9B;AACA,sBAAsB,oBAAY;AAClC;AACA,0BAA0B,oBAAY;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA,4CAA4C,aAAa,oBAAY,GAAG,oEAAoE,0EAA0E;AACtN;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACO,gCAAgC,qCAAY;AACnD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA,0CAA0C,mCAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,qCAAY;AACrD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0CAA0C,qCAAY;AAC7D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,6BAA6B,qBAAa;AAC1C;AACA,SAAS;AACT;AACA;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iCAAe;AAChD,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA,uBAAuB,gCAAY;AACnC,aAAa;AACb;AACA,uBAAuB,gCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qDAAoB;AAC1D;AACA,uCAAuC,oCAA4B;AACnE,oCAAoC,8BAAuB;AAC3D,oCAAoC,8BAAuB;AAC3D;AACA,sCAAsC,iCAA0B;AAChE;AACA,mCAAmC,uBAAK;AACxC;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2CAA2C,kDAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qDAAoB;AAC3D;AACA,gDAAgD,8BAAuB;AACvE,gDAAgD,8BAAuB,CAAC,oCAA4B;AACpG;AACA;AACA,sDAAsD,0BAA0B;AAChF;AACA,+CAA+C,oCAA4B;AAC3E,kDAAkD,8BAAuB;AACzE;AACA,0CAA0C,iCAA0B;AACpE;AACA;AACA,2CAA2C,uBAAK;AAChD;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA6B;AAC5C;AAC6B;AAC7B;AACA;AACA,0BAA0B,oDAA8B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,+DAA+D,yBAAyB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;;;;;;;;;AChjBP;AACb,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA;AACA,iCAAiC,OAAO,mBAAmB,aAAa;AACxE,CAAC;;;;;;;;ACPD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChHD,iBAAiB,mBAAO,CAAC,KAAe;AACxC,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;AClL6E;AACvE,yBAAyB,iGAAe;AACxC;AACP,eAAe;AACf,gBAAgB;AAChB;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AACvC,+BAA+B,iGAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBrD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC2F;AAC9B;AACgC;AACoB;AAClC;AACb;AACV;AACQ;AACD;AACoB;AACE;AACL;AAC1B;AACkB;AACgB;AACb;AACC;AACkB;AACP;AACR;AACjC;AACgD;AACT;AACc;AACf;AACM;AAC9B;AACrD;AACA,kCAAkC,+FAAa,8BAA8B,4DAAQ;AAC5F;AACA,oFAAoF,2EAAU;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qFAAqB;AAC5C,uBAAuB,qFAAqB;AAC5C,uBAAuB,qFAAqB;AAC5C,wDAAwD,sGAAqB;AAC7E,0FAA0F,+EAAqB,sDAAsD,qCAAqC,4DAAQ,mDAAmD;AACrQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY,gFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAK;AAC/B;AACA,iKAAiK,yEAAkB;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qBAAqB;AACzE;AACA;AACA,6BAA6B,2EAAgB;AAC7C,+DAA+D,QAAQ,oEAAoE;AAC3I;AACA,uBAAuB,2EAAY;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,wBAAwB,wFAAuB;AAC/C,4BAA4B,0EAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8FAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAAwB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,sFAAe;AACtH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8FAAiB,wEAAwE,4DAAQ,uCAAuC,EAAE,gCAAgC,uFAAgB;AACxM;AACA;AACA,kBAAkB,wFAAuB;AACzC;AACA;AACA;AACA;AACA;AACA,oCAAoC,8GAAkC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,+FAAkC;AAC9H;AACA;AACA;AACA;AACA,iCAAiC,qFAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,+FAAkC;AACzH;AACA;AACA;AACA;AACA,+FAA+F,6CAA6C;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6EAA6E,4DAAQ;AACrF;AACA;AACA;AACA,kBAAkB,wFAAuB;AACzC;AACA;AACA;AACA;AACA;AACA,oCAAoC,8GAAkC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qFAAwB;AACzD,8DAA8D,uFAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uFAAgB;AAClE;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB,qCAAqC,4DAAQ;AAC7C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,8CAA8C,+EAA2B;AACzE,2EAA2E,sBAAsB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,4DAAQ;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+FAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAK;AACnC;AACA;AACA;AACA;AACA;AACA,oCAAoC,gEAAK,UAAU,oGAA4B,CAAC,2EAAO;AACvF;AACA;AACA;AACA;AACA,8BAA8B,iFAAgB;AAC9C;AACA;AACA;AACA;AACA,+IAA+I,mBAAmB;AAClK;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sBAAsB,0EAAQ;AAC9B;AACA,SAAS;AACT,eAAe,sEAAkB;AACjC;AACA;AACA;AACA,wDAAwD,gEAAK;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uFAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6GAAqB;AACpC,eAAe,6FAAgB;AAC/B,eAAe,uGAAiB;AAChC,eAAe,oGAAwB;AACvC,eAAe,oGAAkB;AACjC,eAAe,8FAAgB;AAC/B;AAC+B;;;;;;;;;AC5dlB;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,qBAAqB,mBAAO,CAAC,KAA+B;AAC5D,+BAA+B,mBAAO,CAAC,KAA2C;AAClF,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA,wBAAwB,qBAAqB;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACzCY;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;ACjBa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,gBAAgB,mBAAO,CAAC,KAAwB;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACVA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;AC1KD;AACA;AACA;AACA;AACsC;AACF;AACA;AACpC;AACA;AACA,eAAe,uDAAY,wBAAwB,EAAE,GAAG,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,eAAe,uDAAY,oDAAoD,EAAE;AACjF;AACA,gCAAgC,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,uDAAY;AAC3B;AACA;AACA,uBAAuB,0DAAe;AACtC;AACA;AACA,mBAAmB,uDAAY,uBAAuB,GAAG,EAAE,GAAG;AAC9D;AACA;AACA;AACA,QAAQ,yDAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uDAAY;AACvB;;;;;;;;ACnEA,UAAU,mBAAO,CAAC,KAAQ;AAC1B,WAAW,mBAAO,CAAC,KAAQ;AAC3B,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;AClBa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D,6BAA6B;AAC7B;;AAEA;AACA;AACA;;;;;;;;;ACRa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,gBAAgB,qBAAqB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACrCa;;AAEb;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;;;;;;;ACVA,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACiC;AAC2B;AACN;AAChB;AACiB;AAChD,qBAAqB,sEAAU;AACtC;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,4BAA4B,uEAAkB,CAAC,wDAAa;AACnI;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,iCAAiC,uEAAkB,CAAC,wDAAa;AACxI;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,iCAAiC,uEAAkB,CAAC,wDAAa;AACxI;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,kCAAkC,uEAAkB,CAAC,wDAAa;AACzI;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,+BAA+B,6EAAqB;AAC3H;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa,6BAA6B,6EAAqB;AACzH;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa;AACvE;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa;AACvE;AACA;AACA,uBAAuB,oEAAyB,UAAU,wDAAa;AACvE;AACA;AACA,eAAe,uDAAO;AACtB;AACA;;;;;;;;;ACxCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AAC2D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5MA;AACA;AACA;AACA;AACA,EAAE,EAAE,mBAAO,CAAC,KAAa;AACzB,cAAc,mBAAO,CAAC,KAAS;AAC/B;;AAEA;AACA,WAAW,UAAU;AACrB,eAAe,cAAc;AAC7B,YAAY,WAAW;AACvB,gBAAgB,eAAe;AAC/B,UAAU,SAAS;AACnB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,MAAM,YAAY,OAAO,IAAI,KAAK;AAClD,gBAAgB,MAAM,YAAY,OAAO,IAAI,KAAK;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oDAAoD,iBAAiB;;AAErE;AACA;;AAEA,+BAA+B,yBAAyB;AACxD,uBAAuB,yBAAyB;AAChD,uBAAuB,yBAAyB;;AAEhD,oCAAoC,8BAA8B;AAClE,4BAA4B,8BAA8B;AAC1D,4BAA4B,8BAA8B;;AAE1D;AACA;;AAEA,0CAA0C;AAC1C,CAAC,GAAG,4BAA4B;;AAEhC,+CAA+C;AAC/C,CAAC,GAAG,4BAA4B;;AAEhC;AACA;AACA;;AAEA,kCAAkC;AAClC,CAAC,QAAQ,4BAA4B;;AAErC,wCAAwC;AACxC,CAAC,QAAQ,iCAAiC;;AAE1C;AACA;;AAEA,kCAAkC,iBAAiB;;AAEnD;AACA;AACA;;AAEA,+BAA+B;AAC/B,CAAC,QAAQ,uBAAuB;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;AAC9B,CAAC,EAAE,kBAAkB;AACrB,eAAe;;AAEf,wBAAwB,iBAAiB;;AAEzC;AACA;AACA;AACA,qCAAqC;AACrC,CAAC,EAAE,uBAAuB;AAC1B,eAAe;;AAEf,yBAAyB,kBAAkB;;AAE3C;;AAEA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE,mCAAmC,yBAAyB;;AAE5D,uCAAuC,wBAAwB;AAC/D,6BAA6B,wBAAwB;AACrD,6BAA6B,wBAAwB;AACrD,yBAAyB,kBAAkB;AAC3C,kCAAkC;AAClC;;AAEA,4CAA4C,6BAA6B;AACzE,kCAAkC,6BAA6B;AAC/D,kCAAkC,6BAA6B;AAC/D,8BAA8B,uBAAuB;AACrD,uCAAuC;AACvC;;AAEA,0BAA0B,YAAY,MAAM,mBAAmB;AAC/D,+BAA+B,YAAY,MAAM,wBAAwB;;AAEzE;AACA;AACA,8BAA8B;AAC9B,oBAAoB,IAAI,EAAE,2BAA2B;AACrD,0BAA0B,IAAI,2BAA2B;AACzD,0BAA0B,IAAI,2BAA2B;AACzD,yBAAyB,mBAAmB;AAC5C;AACA,oBAAoB,kBAAkB;AACtC,oBAAoB,aAAa;AACjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,iBAAiB;AACnD,wBAAwB;;AAExB,yBAAyB,iBAAiB,EAAE,mBAAmB;AAC/D,8BAA8B,iBAAiB,EAAE,wBAAwB;;AAEzE;AACA;AACA;;AAEA,kCAAkC,iBAAiB;AACnD,wBAAwB;;AAExB,yBAAyB,iBAAiB,EAAE,mBAAmB;AAC/D,8BAA8B,iBAAiB,EAAE,wBAAwB;;AAEzE;AACA,mCAAmC,YAAY,OAAO,kBAAkB;AACxE,8BAA8B,YAAY,OAAO,iBAAiB;;AAElE;AACA;AACA,uCAAuC;AACvC,CAAC,OAAO,kBAAkB,GAAG,mBAAmB;AAChD,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA,uBAAuB,mBAAmB;AAC1C;;AAEA,yCAAyC,wBAAwB;AACjE;AACA,4BAA4B,wBAAwB;AACpD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;AC1NA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC3ID;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACvID,eAAe,mBAAO,CAAC,KAAmB;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACoC;AAC7B;AACP;AACA,2CAA2C,uDAAY;AACvD,CAAC,4CAA4C;AACtC;AACP;AACA,sCAAsC,uDAAY;AAClD,CAAC,kCAAkC;AAC5B;AACP;AACA,8CAA8C,uDAAY;AAC1D,CAAC,oCAAoC;AAC9B;AACP;AACA,8CAA8C,uDAAY;AAC1D,uCAAuC,uDAAY;AACnD,CAAC,0CAA0C;AACpC;AACP;AACA,8CAA8C,uDAAY;AAC1D,wDAAwD,uDAAY;AACpE,CAAC,0CAA0C;AACpC;AACP;AACA,wDAAwD,uDAAY;AACpE,uDAAuD,uDAAY;AACnE,CAAC,0DAA0D;AACpD;AACP;AACA,+CAA+C,uDAAY;AAC3D,CAAC,sDAAsD;AAChD;AACP;AACA,mDAAmD,uDAAY,kCAAkC,GAAG,UAAU,GAAG;AACjH,CAAC,sDAAsD;;;;;;;;;ACvC1C;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,gBAAgB,qBAAqB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC8E;AACL;AACE;AACD;AAClC;AACkC;AACW;AAC5B;AACmB;AACO;AAC1B;AACW;AACvB;AACgD;AACvC;AACM;AAC+B;AACA;AAC3F;AACA;AACA;AACA;AACA;AACA,4BAA4B,gFAAe;AAC3C,uCAAuC,gFAAe;AACtD;AACA;AACA;AACA;AACA,gCAAgC,4EAAgB;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,mFAAiB;AACrC,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sFAAW;AACrC;AACA;AACA;AACA;AACA,+BAA+B,wFAAuB;AACtD;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kEAAK;AACnB,kBAAkB,kEAAK;AACvB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,oCAAoC,kEAAK;AACzC;AACA;AACA,kDAAkD,iFAAc,cAAc,wDAAY,oCAAoC,GAAG;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,oBAAoB;AACtD,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iFAAc;AAC/E;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,4CAA4C;AAClG;AACA;AACA;AACA,oGAAoG,EAAE,eAAe;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2HAA2H,qGAAkC;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mFAAwB;AACvC;AACA;AACA;AACA;AACA;AACA,+BAA+B,yEAAgB,GAAG,oDAAoD,IAAI,SAAS,yBAAyB,mCAAmC;AAC/K;AACA,SAAS;AACT;AACA;AACA,+CAA+C,oGAAkB;AACjE,eAAe,gFAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2FAAiB;AAChC,eAAe,oFAAgB;AAC/B,eAAe,oGAAwB;AACvC;AACsD;AACtD,kGAA0B;;;;;;;;ACxQ1B,cAAc,mBAAO,CAAC,KAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CD;AACA;AACA;AACA;AACsE;AAC/D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6CAAoB;AACxC;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA,4BAA4B,6CAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjHA;AACA;AACA;AACA;AAC+D;AACa;AACZ;AACrB;AAC0C;AACN;AAC0C;AAC7C;AACE;AAC9E;AACA,QAAQ,yBAAiB;AACzB;AACA;AACA;AACA,QAAQ,wBAAgB,IAAI,yBAAiB,IAAI,wBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qCAAc;AACtD;AACA;AACA,YAAY,gCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAc;AACtC,yDAAyD,qCAAc;AACvE;AACA;AACA;AACA;AACA;AACA,kDAAkD,kCAAS;AAC3D;AACA;AACA;AACA;AACA,oCAAoC,wCAAe,odAAod,yCAAmB;AAC1hB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA,uBAAuB,2CAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAa,YAAY,6CAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6CAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,eAAe;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAoB;AAC5C;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAgB;AACxB;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oCAAW;AACrD;;;;;;;;;;;;;;;;;;;;AC9hBwD;AACO;AACO;AACQ;AACvE,oBAAoB,iGAAe;AACnC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AACtB;AACA,6BAA6B,2EAAU;AAC9C;AACA;AACA;AACA,uDAAuD,oEAAO;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,qFAAa;;;;;;;;;ACrJrC;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,+BAA+B,8BAA4D;AAC3F,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,gCAAgC,mBAAO,CAAC,KAA0C;AAClF,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,8DAA8D;AAC9D,IAAI;AACJ,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrLY;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,gBAAgB,mBAAO,CAAC,KAAyB;;AAEjD;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,mCAAmC;AACnC;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wBAAwB;AACxB;AACA;AACA,kCAAkC;AAClC;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,IAAI,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,IAAI,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACv3Ba;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,YAAY,mBAAO,CAAC,KAAoB;AACxC,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,EAAE;;;;;;;;;ACfW;;AAEb,WAAW,0BAA0B;AACrC;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACkE;AACL;AACmE;AACzH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wEAAU;AACpC;AACA;AACA,qBAAqB,kEAAkE,GAAG;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAY;AACvC;AACA;AACA,uBAAuB,2EAAqB;AAC5C;AACA;AACA,aAAa,kEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAY;AAC7C;AACA,4CAA4C,+EAAY,oCAAoC,+DAAS;AACrG;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA,mBAAmB,4DAAU;AAC7B;AACA;AACA;AACA,6BAA6B,gEAAU;AACvC,gCAAgC,+DAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2EAAqB;AAC1D,YAAY,kEAAY,uBAAuB,4DAAU;AACzD;AACA;AACA;AACA;AACA;AACA,iDAAiD,4DAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,GAAG,iEAAW,qBAAqB,KAAK,iEAAW,mBAAmB;AAClH;AACA;AACA;AACA;AACA,qBAAqB,4DAAU;AAC/B;AACA,4BAA4B,2EAAqB;AACjD,aAAa,kEAAY;AACzB;AACA;AACA,6BAA6B,2EAAqB;AAClD;AACA;AACA;AACA;AACA;;;;;;;;ACxHA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA,eAAe,mBAAO,CAAC,KAAa;AACpC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,GAAG;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkI;AACnD;AACkD;AACxB;AAChB;AACd;AAC6B;AAC9B;AACnC;AACI;AAC4C;AACZ;AACA;AACyB;AAChB;AACT;AACM;AACf;AACC;AACL;AACT;AACM;AACuB;AACJ;AACM;AAC7E;AACP;AACA,+BAA+B,8EAAkB;AACjD,2EAA2E,yEAAS,IAAI,uEAAO;AAC/F;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAS;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAS;AACzC;AACA;AACA;AACA;AACA,2CAA2C,wEAAc;AACzD;AACA;AACA;AACA,kCAAkC,4EAAa;AAC/C,kCAAkC,kCAAkC;AACpE;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mGAAc;AAClF;AACA,mCAAmC,iVAAiV;AACpX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kFAAiB;AACrE,uBAAuB,8EAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qFAAqB;AAChD;AACA;AACA,aAAa;AACb,2BAA2B,qFAAqB;AAChD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAQ,iBAAiB,GAAG,EAAE,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2DAAQ,iBAAiB,GAAG,EAAE,EAAE;AAClD;AACA,oBAAoB,2DAAQ,uBAAuB,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,uFAAe,gBAAgB,wDAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA,oDAAoD,8FAA0B;AAC9E;AACA;AACA;AACA,YAAY,0EAAS;AACrB;AACA,gCAAgC,0EAAS;AACzC;AACA,2CAA2C,gFAAY;AACvD;AACA,aAAa;AACb;AACA;AACA;AACA,2CAA2C,yEAAM;AACjD,kBAAkB,wEAAQ;AAC1B,kBAAkB,wEAAQ;AAC1B;AACA,2CAA2C,uFAAkB,CAAC,gFAAY;AAC1E;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,0FAAkB;AACjC,eAAe,iGAAoB;AACnC,eAAe,2FAAkB;AACjC,eAAe,mFAAa;AAC5B,eAAe,8FAAmB;AAClC,eAAe,mGAAqB;AACpC;AACmC;AACnC,0EAA0E,oHAA0B;AACpG;AACA;AACA;AACA;AACA;AACA,sIAAsI,0EAAS,iCAAiC,0EAAS;AACzL;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAU;AAClB;AACA;AACA,gBAAgB,OAAO;AACvB,qBAAqB,0EAAS;AAC9B;AACA;AACA;AACA,0DAA0D,yEAAM;AAChE,0BAA0B,wEAAQ;AAClC,0BAA0B,wEAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,0FAAkB;AACjC,eAAe,8FAAmB;AAClC,eAAe,mFAAa;AAC5B;AACsC;AACtC,wFAAwF,uGAAkB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,kEAAkE;AAC5K;AACA;AACA;AACA;AACA;AACA,6IAA6I,2EAAY;AACzJ;AACA,6BAA6B,oHAA0B;AACvD;AACA,oCAAoC,wEAAc;AAClD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,+DAA+D;AACtK,6DAA6D,2EAAY;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA,uCAAuC,uEAAO,kBAAkB,uDAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAC;AAClC,mCAAmC,sEAAM;AACzC,uBAAuB,qFAAqB,mBAAmB,qEAAS;AACxE,8BAA8B,0FAAqB;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,uDAAC;AACnC,8BAA8B,sEAAM;AACpC,uBAAuB,qFAAqB,oBAAoB,qEAAS;AACzE;AACA,8BAA8B,0FAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0FAAkB;AACjC,eAAe,iGAAoB;AACnC,eAAe,8FAAmB;AAClC,eAAe,sEAAY;AAC3B,eAAe,oGAAqB;AACpC,eAAe,kFAAe;AAC9B;AAC6C;AAC7C,sFAAsF,yGAAoB;AAC1G;AACA;AACA,2BAA2B,wEAAS;AACpC;AACA,SAAS,2BAA2B,8FAAsB,IAAI,oDAAoD;AAClH;AACA;AACA;AACA;AACA,sCAAsC,yFAAa,CAAC,oFAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8FAAmB;AAClC;AACA;AACA;AACA;AACO;AACP,0BAA0B,wEAAc;AACxC;AACA;AACA,+BAA+B,2EAAiB;AAChD;AACA;AACA;AACA;AACA;AACA,gGAAgG,uCAAuC;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC7cA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC/BA;AACA;AACA;AACA;AAC6C;AACL;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D,4BAA4B,2BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACl4Ba;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB;AAC1Q;AACA;AACA;AACA,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,EAAE,EAAE,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe,EAAE,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE,EAAE,WAAW;AAClC;AACA;AACA;AACA,4DAA4D,GAAG,EAAE,GAAG;AACpE;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kFAAkF,IAAI,WAAW,IAAI;AACrG;AACA,mBAAmB;AACnB;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA,qDAAqD,IAAI;AACzD;AACA,wBAAwB;AACxB;AACA;AACA;AACA,kBAAkB;AAClB;;;;;;;;AC3Ja;;AAEb,mBAAmB,mBAAO,CAAC,IAAgB;;AAE3C;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACjGY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,KAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACuC;AACqB;AACqN;AACrL;AAC5F;AACA;AACA;AACO,4BAA4B,iGAAa,qCAAqC,sDAAsD,EAAE,uDAAY;AAClJ,kCAAkC,iGAAa,iCAAiC,+DAA+D,8FAAc,EAAE,EAAE,uDAAY;AAC7K,6BAA6B,iGAAa,sCAAsC,oEAAoE,EAAE,uDAAY;AAClK,mCAAmC,iGAAa,kCAAkC,iCAAiC,oGAAoB,WAAW,oGAAoB,EAAE,EAAE,uDAAY;AACtL,8BAA8B,iGAAa,uCAAuC,MAAM,wGAAwB,SAAS,wGAAwB,+BAA+B,EAAE,uDAAY;AAC9L,oCAAoC,iGAAa,mCAAmC,iCAAiC,oGAAoB,WAAW,oGAAoB,EAAE,EAAE,uDAAY;AACxL,+BAA+B,iGAAa,8BAA8B,wBAAwB,kEAAK,gBAAgB,kEAAK,4BAA4B,EAAE,uDAAY;AACtK,+BAA+B,iGAAa,kCAAkC,uDAAY;AAC1F,2CAA2C,iGAAa,2CAA2C,8HAA8H,EAAE,uDAAY;AAC/O,2CAA2C,iGAAa,2CAA2C,8HAA8H,EAAE,uDAAY;AAC/O,6CAA6C,iGAAa,6CAA6C,8HAA8H,EAAE,uDAAY;AACnP,6CAA6C,iGAAa,6CAA6C,8HAA8H,EAAE,uDAAY;AACnP,0BAA0B,iGAAa,kCAAkC,gFAAgF,EAAE,uDAAY;AACvK,0BAA0B,iGAAa,kCAAkC,2CAA2C,kEAAK,4BAA4B,EAAE,uDAAY;AACnK,qCAAqC,iGAAa,mCAAmC,0GAA0G,EAAE,uDAAY,0EAA0E,uDAAY;AACnS,2CAA2C,iGAAa,yCAAyC,0GAA0G,EAAE,uDAAY,sFAAsF,uDAAY;AAC3T,2BAA2B,iGAAa,oCAAoC,sJAAsJ,EAAE,uDAAY;AAChP,2BAA2B,iGAAa,oCAAoC,kFAAkF,EAAE,uDAAY;AAC5K,2BAA2B,iGAAa,oCAAoC,kFAAkF,EAAE,uDAAY;AAC5K,2BAA2B,iGAAa,oCAAoC,kFAAkF,EAAE,uDAAY;AAC5K,2BAA2B,iGAAa,oCAAoC,kFAAkF,EAAE,uDAAY;AAC5K,2BAA2B,iGAAa,oCAAoC,kFAAkF,EAAE,uDAAY;AAC5K,iCAAiC,iGAAa,0CAA0C,8KAA8K,EAAE,uDAAY;AACpR,iCAAiC,iGAAa,0CAA0C,kFAAkF,EAAE,uDAAY;AACxL,iCAAiC,iGAAa,0CAA0C,kFAAkF,EAAE,uDAAY;AACxL,iCAAiC,iGAAa,0CAA0C,kFAAkF,EAAE,uDAAY;AACxL,iCAAiC,iGAAa,0CAA0C,kFAAkF,EAAE,uDAAY;AACxL,iCAAiC,iGAAa,0CAA0C,kFAAkF,EAAE,uDAAY;AAC/L,yCAAyC,iGAAa,wCAAwC,2CAA2C,oGAAoB,WAAW,oGAAoB,EAAE,EAAE,uDAAY,yEAAyE,uDAAY;AAC1R,+BAA+B,iGAAa,wCAAwC,sKAAsK,EAAE,uDAAY;AACxQ,+BAA+B,iGAAa,wCAAwC,sDAAsD,EAAE,uDAAY;AACxJ,oBAAoB,iGAAa,6BAA6B,wBAAwB,kEAAK,oBAAoB,kEAAK,4BAA4B,EAAE,uDAAY;AAC9J,iCAAiC,iGAAa,gCAAgC,0EAA0E,EAAE,uDAAY;AACtK,qCAAqC,iGAAa,oCAAoC,8EAA8E,EAAE,uDAAY;AAClL,iCAAiC,iGAAa,gCAAgC,wCAAwC,8FAAc,WAAW,8FAAc,EAAE,EAAE,uDAAY;AAC7K,kCAAkC,iGAAa,iCAAiC,gFAAgF,EAAE,uDAAY;AAC9K,sCAAsC,iGAAa,yCAAyC,uDAAY;AACxG,qBAAqB,iGAAa,8BAA8B,MAAM,gGAAgB,SAAS,gGAAgB,UAAU,gGAAgB,WAAW,gGAAgB,EAAE,EAAE,uDAAY;AACpL,oCAAoC,iGAAa,mCAAmC,iCAAiC,kEAAK,4CAA4C,8FAAc,EAAE,EAAE,uDAAY;AACpM,qCAAqC,iGAAa,oCAAoC,MAAM,kEAAK,0BAA0B,kEAAK,gDAAgD,EAAE,uDAAY;AAC9L,wBAAwB,iGAAa,6BAA6B,iCAAiC,kEAAK,4CAA4C,kEAAK,sCAAsC,EAAE,uDAAY;AAC7M,4BAA4B,iGAAa,iCAAiC,MAAM,kEAAK,8BAA8B,kEAAK,gDAAgD,EAAE,uDAAY;AACtL,4BAA4B,iGAAa,iCAAiC,sDAAsD,EAAE,uDAAY;AACrJ,8BAA8B,kEAAK,KAAK,iEAAI;AACrC,oCAAoC,iGAAa,mDAAmD,0GAA0G,EAAE,uDAAY;AAC5N,2BAA2B,iGAAa,0CAA0C,UAAU,kEAAK,KAAK,iEAAI,gCAAgC,kEAAK,KAAK,iEAAI,iCAAiC,kEAAK,KAAK,iEAAI,uCAAuC,EAAE,uDAAY;AAC5P,6BAA6B,iGAAa,4CAA4C,MAAM,uGAAuB,SAAS,uGAAuB,UAAU,mGAAmB,WAAW,mGAAmB,EAAE,EAAE,uDAAY;AAC9N,0BAA0B,iGAAa,yCAAyC,MAAM,oGAAoB,SAAS,oGAAoB,UAAU,gGAAgB,WAAW,gGAAgB,EAAE,EAAE,uDAAY;AAC5M,6CAA6C,iGAAa,yCAAyC,8EAA8E,EAAE,uDAAY;AAC/L,6CAA6C,iGAAa,yCAAyC,8EAA8E,EAAE,uDAAY;AAC/L,6CAA6C,iGAAa,yCAAyC,8EAA8E,EAAE,uDAAY;AAC/L,6CAA6C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AACnM,6CAA6C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AACnM,6CAA6C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AACnM,6DAA6D,iGAAa,0DAA0D,UAAU,kEAAK,KAAK,iEAAI,gCAAgC,kEAAK,KAAK,iEAAI,iCAAiC,kEAAK,KAAK,iEAAI,gCAAgC,EAAE,uDAAY;AACvS,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,0CAA0C,iGAAa,yCAAyC,kFAAkF,EAAE,uDAAY;AAChM,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,gDAAgD,iGAAa,+CAA+C,kFAAkF,EAAE,uDAAY;AAC5M,qCAAqC,iGAAa,oCAAoC,MAAM,uGAAuB,SAAS,uGAAuB,UAAU,uGAAuB,WAAW,uGAAuB,EAAE,EAAE,uDAAY;AACtO,yCAAyC,iGAAa,wCAAwC,MAAM,uGAAuB,SAAS,uGAAuB,UAAU,uGAAuB,WAAW,uGAAuB,EAAE,EAAE,uDAAY;AACrP;AACA,4GAA0B;AAC1B,sCAAsC,gGAAgB;AACtD;AACA;AACA;AACA,iEAAiE,oBAAoB,iBAAiB;AACtG;AACA,CAAC;;;;;;;;ACxFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpEW;;AAEZ,QAAQ,kGAAkG,EAAE,mBAAO,CAAC,KAAa;AACjI,gBAAgB,mBAAO,CAAC,GAAe;;AAEvC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,4CAA4C,gBAAgB;AAC5D;AACA,+BAA+B,wCAAwC;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;AACA,+EAA+E,8BAA8B;AAC7G,IAAI;AACJ,+DAA+D,8BAA8B;AAC7F;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,aAAa,8BAA8B,QAAQ;;AAElF;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAsB;AACtB,sBAAsB;;;;;;;;AC9StB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACzHD;AACA;AACA;AACA;AACuE;AACjB;AACe;AACR;AACyC;AACtC;AAChE;AACA;AACA;AACA;AACA;AACA,oCAAoC,2EAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAE;AACd;AACA;AACA;AACA;AACA,iBAAiB,wDAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gFAAe;AAC1C;AACA,uBAAuB,uFAAgB,mBAAmB,wDAAE;AAC5D;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA,2BAA2B,uFAAgB,IAAI,wDAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uFAAkB,oCAAoC,mFAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,gFAAY;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACA;AACA,2EAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3GA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AAC+C;AACU;AACzD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,sBAAsB;AACjC,WAAW,gBAAgB;AAC3B,aAAa;AACb;AACO;AACP,sCAAsC;AACtC,2BAA2B,SAAS;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACO;AACP,sCAAsC;AACtC,qBAAqB,qEAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,sBAAsB;AACjC,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA,sCAAsC;AACtC,2BAA2B,SAAS;AACpC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uCAAuC;AACvC;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,mBAAmB,qEAAiB;AACpC,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B,cAAc,qEAAiB;AAC/B;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA,mBAAmB;AACnB,mBAAmB;AACnB,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;;;;;;;;;AC/ca;;AAEb,WAAW,oCAAoC;AAC/C;;;;;;;;ACHA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU,GAAG,WAAW;AAC3C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU,GAAG,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;ACpGA,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;ACFa;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,YAAY,mBAAO,CAAC,KAAoB;;AAExC;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;ACZY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,KAAM;AAC3B,cAAc,mBAAO,CAAC,KAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB;AAC3B;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;ACfa;AACb,8BAA8B;AAC9B;AACA;;AAEA;AACA,4EAA4E,MAAM;;AAElF;AACA;AACA,SAAS;AACT;AACA;AACA,EAAE;;;;;;;;;;ACbF;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;;;;;;;;ACbP,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,6BAA6B,mBAAO,CAAC,KAAuC;;AAE5E;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACyC;AACW;AAC1B;AACnB;AACP;AACA;AACA;AACA;AACA,uBAAuB,yDAAM,YAAY,0CAAC;AAC1C,yDAAyD,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAM;AACzC,6BAA6B,oEAAM;AACnC;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;;;;;;;;;ACnCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,iBAAiB;AACjI,eAAe,mBAAO,CAAC,KAAQ;AAC/B,cAAc,mBAAO,CAAC,KAAiB;AACvC,iBAAiB,mBAAO,CAAC,KAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D,sCAAsC,OAAO;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA,qBAAqB;AACrB;;;;;;;AC1JA,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AAC8E;AACP;AACF;AACrE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gFAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA,SAAS,EAAE,uFAAyB;AACpC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAe,oBAAoB,wEAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA,uBAAuB,uEAAc;AACrC;AACA;AACA;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAc;AACrC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC3KA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACvIA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,mBAAmB,wDAAwD,gBAAgB;AACrH,eAAe,UAAU,mBAAmB,wBAAwB,mBAAmB,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,sDAAsD,YAAY,uBAAuB,WAAW;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA,aAAa;AACb;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;AC9EA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ,GAAG,MAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,UAAU,GAAG,MAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzGA;AACA;AACA;AACA;AACyC;AACc;AACI;AACE;AACc;AACpE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iDAAiD;AACnF;AACA,6BAA6B,yEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,yBAAyB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAuB;AACnD;AACA;AACA;AACA;AACA,+BAA+B,4EAAa,iBAAiB,8EAAmB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6EAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAK;AAC7C;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,8CAA8C,kFAA2B,6BAA6B,kFAA2B;AACjI,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,qFAA8B,0DAA0D;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kFAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kFAA2B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2EAAoB;AACzD;AACA;AACA;AACA,qBAAqB,kFAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kFAA2B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxLA,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;;;ACFoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,kDAAuB;AACQ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,MAAM,KAAK,EAAE,EAIV,CAAC;AACJ,WAAW,qGAAsB;AACjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AAKC;;;;;;;;;;;;;;;;;;;;;;;;ACnJF;AACA;AACA;AACA;AACsE;AACX;AACe;AACX;AACF;AACW;AACV;AACR;AACR;AACvC;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,kFAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ,2BAA2B,GAAG,SAAS,GAAG,WAAW,EAAE,GAAG,6EAAQ;AAC7F;AACA;AACA,mBAAmB,2DAAQ,GAAG,kJAAkJ,IAAI,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,kBAAkB,6EAAQ;AACjP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAyD;AACzE,kDAAkD,sDAAsD;AACxG,gCAAgC,iEAAK;AACrC,+BAA+B,iEAAK;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6BAA6B,sEAAW;AACxC;AACA;AACA,QAAQ,4EAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ,wCAAwC,EAAE,aAAa,EAAE,GAAG,6EAAQ;AAC/F;AACA;AACA,mBAAmB,2DAAQ,4BAA4B,GAAG,YAAY,EAAE,aAAa,EAAE,QAAQ,6EAAQ;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAiB;AACjC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,8CAA8C,oEAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4EAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA,mBAAmB,2DAAQ,sCAAsC,EAAE;AACnE;AACA;AACA,mBAAmB,2DAAQ,2BAA2B,GAAG,YAAY,EAAE;AACvE;AACA;AACA,mBAAmB,2DAAQ,2BAA2B,GAAG,YAAY,GAAG;AACxE;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAA0B;AACrD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAM,0BAA0B,iEAAK;AACpD;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/OA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoF;AAChB;AACA;AACiC;AAC/B;AACe;AAC3B;AACI;AACT;AACW;AACiB;AACF;AACT;AAChB;AACI;AACS;AACqB;AACc;AACd;AACR;AACK;AACd;AACoB;AACU;AACT;AACwB;AACV;AAC7B;AACQ;AACrF;AACA;AACA;AACA,4BAA4B,mEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB,GAAG,qBAAqB;AAC/D;AACA;AACA,yBAAyB,2GAAe;AACxC,yGAAiB;AACjB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C,uCAAuC,gFAAe;AACtD;AACA,gCAAgC,4EAAe;AAC/C;AACA,8GAA8G,SAAS;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gFAAY;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8BAA8B,6EAAgB;AAC9C;AACA;AACA,sBAAsB,2FAAuB;AAC7C;AACA;AACA;AACA,yCAAyC,0EAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qCAAqC,gFAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gFAAe;AACzC,sCAAsC,qGAAgB;AACtD;AACA,iCAAiC,gFAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2FAAuB;AACnD,6BAA6B,gFAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAK;AACnC;AACA;AACA,6BAA6B,gFAAY;AACzC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yFAA0B;AAChF;AACA,yBAAyB,oEAAiB;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qFAAiB;AACrD,gBAAgB,iFAAe;AAC/B,mEAAmE,kFAAa,SAAS,kEAAK;AAC9F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,6EAAa;AAC/B;AACA;AACA;AACA;AACA,wDAAwD,kFAAmB;AAC3E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qGAAkC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8FAAQ;AAClC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sEAAe;AAClD,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kEAAK;AACpD,0DAA0D,kEAAK;AAC/D,wCAAwC,kEAAK;AAC7C;AACA;AACA;AACA,4CAA4C,kEAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA,aAAa;AACb,iEAAiE,gFAAuB,SAAS,gFAAuB;AACxH;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C,uCAAuC,cAAc,KAAK,2FAAoB,YAAY;AAC1F;AACA;AACA;AACA,oBAAoB,iFAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mGAAgB,CAAC,2GAAiC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8BAA8B;AACrF,wDAAwD,mBAAmB;AAC3E;AACA;AACA;AACA,6DAA6D,8BAA8B;AAC3F,wDAAwD,mBAAmB,SAAS,mBAAmB;AACvG;AACA;AACA;AACA,uDAAuD,8BAA8B;AACrF,0DAA0D,mBAAmB,KAAK,mBAAmB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oJAAoJ,gFAAuB,SAAS,gFAAuB;AAC3M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6FAAuB;AACnD;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0BAA0B,0EAAuB;AACjD,oCAAoC,mGAAgB,CAAC,mHAAyC;AAC9F,0BAA0B,mGAAgB,CAAC,mHAAyC;AACpF;AACA,+BAA+B,0EAAuB;AACtD,oCAAoC,mGAAgB,CAAC,8GAAoC;AACzF,0BAA0B,mGAAgB,CAAC,8GAAoC;AAC/E;AACA;AACA,oCAAoC,mGAAgB,CAAC,0GAAgC;AACrF,0BAA0B,mGAAgB,CAAC,0GAAgC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oGAAwB;AACvC,eAAe,kHAA+B;AAC9C;AACA,eAAe,4FAAe;AAC9B,eAAe,0GAAoB;AACnC,eAAe,6GAAqB;AACpC;AACgC;AAChC;AACA;AACA;AACA;AACA;AACA,6FAAgB;AAChB;AACA,IAAI,2EAAU,CAAC,6DAAG;AAClB,IAAI,2EAAU,CAAC,kEAAK;AACpB,YAAY,qBAAqB,eAAe,oGAAwB;AACxE,mCAAmC,4FAAiB;AACpD;AACA,4BAA4B,0EAAmB,yDAAyD,kEAAK,eAAe,qFAAiB;AAC7I;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;AC7kBD,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,iBAAiB,mBAAO,CAAC,IAAe;AACxC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;;;;;ACxEA;AACA;AACA;AACA;AACuC;AACR;AACxB;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,kDAAkD,iDAAG;AACrD;AACA;AACA;AACA,2BAA2B,0DAAQ;AACnC;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtDa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,aAAa,mBAAO,CAAC,KAA+B;AACpD,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,iCAAiC,yCAAkD;AACnF,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,0BAA0B,mBAAO,CAAC,KAA6B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,aAAa,cAAc,UAAU;AAC3E,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAiC;AACtF;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA,MAAM;AACN,IAAI,gBAAgB;AACpB;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtDD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;AC7GD;AACA;AACA;AACA;AAC2D;AACF;AACV;AACN;AACiC;AACnB;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,8CAA8C,6EAAsB;AACpE;AACA;AACA;AACA,uBAAuB,gEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4FAAuB;AACvD;AACA,2BAA2B,gEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6EAAsB;AACpD;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA,gCAAgC,4FAAuB;AACvD;AACA,2BAA2B,gEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0EAAa;AACzE;AACA;AACA,iCAAiC,gEAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gEAAQ;AAC3D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAiB,KAAK,0DAAK,oLAAoL,gEAAQ;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAiB,KAAK,0DAAK,oLAAoL,gEAAQ;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9RA,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,YAAY,mBAAO,CAAC,KAAU;AAC9B,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,UAAU;AACvB;AACA;AACA;AACA,OAAO,OAAO,UAAU;AACxB,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACsC;AACmB;AACN;AAC7B;AACqD;AACJ;AAChE;AACP;AACA;AACA;AACA;AACO,qBAAqB,uDAAM;AAClC;AACA;AACA;AACA,4CAA4C,+DAAO;AACnD;AACA,6CAA6C,+DAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4FAAyB,kFAAkF,iGAAuB;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AChGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;ACvBD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,IAAQ;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAgB;;;;;;;;ACvGhB,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACzFa;AACb,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,gBAAgB,mBAAO,CAAC,KAAwB;AAChD,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACoC;AACW;AACsB;AACf;AACM;AACc;AACe;AACX;AACsB;AACP;AACC;AACxB;AACW;AACzB;AACO;AACF;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+FAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4GAAmB;AACnC;AACA;AACA,QAAQ,4FAAgB;AACxB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,uFAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+EAAW;AACnD,+CAA+C,mGAAkB;AACjE,+CAA+C,QAAQ,cAAc,8BAA8B;AACnG;AACA;AACA,6DAA6D,iFAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,oBAAoB,UAAU;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uFAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mGAAkB;AACnE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iFAAM;AACpC;AACA;AACA;AACA;AACA,wBAAwB,+FAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qBAAqB,gGAAiB,sCAAsC,+BAA+B;AAC3G;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,iFAAO;AAC1C;AACA;AACA,+CAA+C,uFAAkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mGAAkB;AACnE,kDAAkD,+EAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO;AACP,IAAI,4FAAgB;AACpB,0CAA0C,4GAAqB;AAC/D;AACA,QAAQ,2EAAU,CAAC,6DAAG;AACtB,QAAQ,2EAAU,CAAC,wEAAQ;AAC3B,mCAAmC,6EAAa;AAChD;AACA,mCAAmC,wEAAQ;AAC3C;AACA;AACA,4BAA4B,2FAAiB;AAC7C;AACA;AACA,0GAA0G,wEAAQ;AAClH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAQ;AACR;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,mDAAmD;AACrF;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,CAAC;AACD,gDAAgD,6CAA6C;AACtF;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,KAAK;AACL;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,mDAAmD;AACrF;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,CAAC;AACD,gDAAgD,6CAA6C;AACtF;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,wDAAwD;AAC1F;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC5cD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuE;AACT;AAC0D;AAC5D;AACa;AACkC;AACnB;AACf;AAC3B;AAC2E;AACpD;AAChB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gFAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,6BAA6B;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uEAAc;AAC9C;AACA;AACA;AACA,YAAY,2EAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,wEAAQ;AACxF;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK,GAAG,aAAa;AACjF,uCAAuC,2CAA2C,2DAAQ;AAC1F,yBAAyB;AACzB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4FAAqB;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8FAAa,yBAAyB,2DAAQ;AACrF,wCAAwC,8FAAa,0BAA0B,2DAAQ;AACvF,wCAAwC,8FAAa,0BAA0B,2DAAQ;AACvF;AACA,eAAe,8EAAW;AAC1B,eAAe,mGAAwB;AACvC,eAAe,mGAAkB;AACjC,eAAe,uHAA6B;AAC5C;AAC8B;AAC9B,kGAA0B;AAC1B,oBAAoB,iFAAa;AACjC,6FAAqB;AACrB;AACA,kBAAkB,+FAAc;AAChC;AACA;AACA;AACA,gBAAgB,oFAAiB;AACjC;AACA;AACA,CAAC;AACD,6FAAqB;AACrB;AACA,kBAAkB,+FAAc;AAChC;AACA;AACA;AACA,gBAAgB,oFAAiB;AACjC;AACA;AACA,CAAC;AACD,6FAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,oFAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,6FAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AClSD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;;;;;;;;AC9BA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;ACPP,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,+CAAoD;AAC7E,WAAW,mBAAO,CAAC,IAAQ;;AAE3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,6CAA6C,cAAc;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH,WAAW;AACX;;AAEA,kBAAkB;;;;;;;;;ACtZL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB;AAC/G,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,2BAA2B,mBAAO,CAAC,KAA4B;AAC/D,oBAAoB,mBAAO,CAAC,KAAqB;AACjD,gBAAgB,mBAAO,CAAC,KAAiB;AACzC,kBAAkB,mBAAO,CAAC,EAAW;AACrC,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,kBAAkB,mBAAO,CAAC,KAAmB;AAC7C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,eAAe,mBAAO,CAAC,KAAgB;AACvC,uBAAuB,mBAAO,CAAC,IAAkB;AACjD,cAAc,mBAAO,CAAC,KAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6CAA6C;AAClF,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAA8B,IAAI,kBAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,gBAAgB,aAAa;AAC7B,gDAAgD,SAAS,yCAAyC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,aAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA,6CAA6C,KAAK,gBAAgB,YAAY;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,mDAAmD,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,qCAAqC,KAAK;AAChD;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,EAAE,gBAAgB,EAAE,UAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA,gCAAgC,IAAI,WAAW,IAAI,IAAI,eAAe;AACtE;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB,SAAS,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,uCAAuC,KAAK;AAC5C;AACA,uCAAuC,KAAK;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,4DAA4D,SAAS;AACrE;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;;;;;;;;ACzmBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;AACD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrC8E;AAC/C;AACU;AACI;AAC9C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAAU,mGAAmG,iDAAiD;AAChL;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA,sCAAsC,UAAU;AAChD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,YAAY,kDAAkD;AAC9D,yDAAyD,gBAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kHAAkH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,QAAQ,0BAAS;AACjB,iDAAiD,gBAAG,GAAG;AACvD;AACA;AACA,iDAAiD,gBAAG,GAAG;AACvD;AACA;AACA,uBAAuB,kCAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzIA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACmE;AACe;AACpB;AACG;AACgC;AACA;AAC/B;AACZ;AAC4B;AACG;AACU;AACjD;AAC0C;AACvB;AACjE,0IAA0I,8EAA2C;AACrL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAQ;AAC9C,eAAe,4BAAU;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA,sCAAsC,wBAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0BAA0B,mDAAmD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oCAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,iCAAY;AACpC;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,6CAA6C,yFAAyF;AACtI;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yDAAyD,MAAM;AAC/D;AACA,6CAA6C,6EAA6E;AAC1H;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAuB;AAClD;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+BAAQ,mEAAmE,kBAAK;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wBAAQ;AAC9D;AACA;AACA,sDAAsD,wBAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY,mBAAmB;AACzD,6BAA6B,YAAY,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,0BAAS,aAAa,uBAAO,oBAAoB,0BAAS,aAAa,uBAAO;AACnJ,mEAAmE,wBAAQ,qCAAqC,wBAAQ;AACxH,iBAAiB;AACjB;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA,gCAAgC,wBAAI;AACpC,6CAA6C,6BAAW,wBAAwB,IAAI,YAAY;AAChG;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B,IAAI,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,WAAW,wBAAwB,+DAA+D;AACrJ;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2CAAqB;AAChD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,+BAA+B,kBAAK;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,wBAAQ,uBAAuB,EAAE,oDAAoD;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+CAA+C,EAAE,qDAAqD;AACpK;AACA,eAAe,gDAAwB;AACvC,eAAe,yCAAoB;AACnC;AACiD;AACjD;AACA,iCAAiC,wBAAQ,2BAA2B,EAAE;AACtE;AACA,iCAAiC,wBAAQ,sBAAsB,EAAE;AACjE,oCAAoC,wBAAQ,0BAA0B,EAAE;AACxE,sCAAsC,wBAAQ,iCAAiC,EAAE;AACjF,oCAAoC,wBAAQ,0BAA0B,EAAE;AACxE,gCAAgC,wBAAQ,qBAAqB,EAAE;AAC/D,kCAAkC,wBAAQ,sBAAsB,EAAE;AAClE,iCAAiC,wBAAQ,oBAAoB,EAAE;AAC/D,oCAAoC,wBAAQ,0BAA0B,EAAE;AACxE,qCAAqC,wBAAQ,4BAA4B,EAAE;AAC3E,oCAAoC,wBAAQ,4BAA4B,EAAE;AAC1E,kCAAkC,wBAAQ,wBAAwB,EAAE;AACpE,yCAAyC,wBAAQ,qCAAqC,EAAE;AACxF,iCAAiC,wBAAQ,uBAAuB,EAAE;AAClE,mCAAmC,wBAAQ,2BAA2B,EAAE;AACxE,+BAA+B,wBAAQ,yBAAyB,EAAE;AAClE,sCAAsC,wBAAQ,sCAAsC,EAAE;AACtF,kCAAkC,wBAAQ,sBAAsB,EAAE;AAClE,+BAA+B,wBAAQ,kBAAkB,EAAE;AAC3D,iCAAiC,wBAAQ,oBAAoB,EAAE;AAC/D,kCAAkC,wBAAQ,sBAAsB,EAAE;AAClE,mCAAmC,wBAAQ,wBAAwB,EAAE;AACrE,kCAAkC,wBAAQ,sBAAsB,EAAE;AAClE,+BAA+B,wBAAQ,gBAAgB,EAAE;AACzD,gCAAgC,wBAAQ,oBAAoB,EAAE;AAC9D,oCAAoC,wBAAQ,0BAA0B,EAAE;AACxE;AACA;;;;;;;;;;;;;;;;;;;AC1YA;AACA;AACA;AACA;AACA,IAAI,wCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,qCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC+D,CAAC;AACH,CAAC;AACwD;AAC1C;AACO;AACC;AACb;AACd;AACiC;AACjB;AACiC;AACV;AACR;AACxF,oGAAoG,qCAAqC;AACzI;AACA;AACA;AACA,kDAAkD,0BAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wCAAU;AACpD,IAAI,qCAAO,IAAI,2CAAkB;AACjC,IAAI,qCAAO,IAAI,gDAAwB;AACvC,IAAI,qCAAO,IAAI,yCAAoB;AACnC;AACmD;AAC5C,+BAA+B,qCAAY;AAClD;AACA;AACA;AACA,mBAAmB,yCAAe;AAClC;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,qCAAkB,mBAAmB,qCAAqC,WAAW,gBAAgB,iCAAc,OAAO;AAC/I;AACA;AACA;AACA,iDAAoB;AACpB,+BAAQ,IAAI,8BAAU;AACtB;AACA,YAAY,qCAAqC;AACjD;AACA,UAAU,aAAa,yCAAe,kCAAkC,qCAAqC,yCAAyC;AACtJ,UAAU,aAAa,yCAAe,4CAA4C,qCAAqC;AACvH;AACA,CAAC;;;;;;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AAC6E;AACO;AAC9B;AACmB;AAC2B;AAChB;AAC7E,iCAAiC,kGAAiB;AACzD;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,sFAAsF;AAC7G;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,+FAAkB;AACpC;AACA;AACA;AACA,mBAAmB,iEAAK;AACxB;AACA;AACO,kCAAkC,kGAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,0BAA0B,oFAAiB;AAC3C;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,oFAAoF;AAC3G;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,+FAAkB;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAK;AACxB;AACA;AACO,kCAAkC,gGAAe;AACxD;AACA,eAAe,+FAAkB;AACjC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,uFAAuF;AAC9G;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4FAAgB;AACT;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,iHAAiH;AACxI;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4FAAgB;AACT,mCAAmC,gGAAe;AACzD;AACA,eAAe,+FAAkB;AACjC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,wFAAwF;AAC/G;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA,uBAAuB,kHAAkH;AACzI;AACA;AACA,SAAS;AACT;AACA;AACA,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;AACrB,6FAAqB;;;;;;;;AC7IrB,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACFgG;AACxC;AACO;AACqB;AACd;AACK;AACT;AACjB;AACE;AACoC;AAC7B;AACD;AACnC;AACiD;AAChE;AACP;AACA;AACA,qBAAqB,6DAAK;AAC1B,sBAAsB,6DAAK;AAC3B;AACA;AACA;AACA;AACA;AACO,qBAAqB,uEAAU;AACtC,uBAAuB;AACvB;AACA;AACA;AACA,8CAA8C,+DAAO;AACrD,+CAA+C,+DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAO;AAC9B,SAAS,wDAAS,QAAQ,yDAAc;AACxC,2BAA2B,wEAAqB;AAChD;AACA,oBAAoB,0DAAW;AAC/B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,wEAAqB,gBAAgB,wDAAS;AACrE,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAW;AAC3B;AACA,SAAS;AACT,uBAAuB,wEAAqB,gBAAgB,wDAAS;AACrE;AACA;AACA;AACA,SAAS;AACT,uBAAuB,wEAAqB,gBAAgB,wDAAS;AACrE,0CAA0C;AAC1C,SAAS;AACT;AACA,2CAA2C,6DAAU;AACrD,4DAA4D;AAC5D;AACA,WAAW;AACX,2DAA2D;AAC3D;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAgB,iBAAiB,kFAAgB,WAAW,qFAAmB;AAC3F;AACA;AACA;AACA;AACA,YAAY,kFAAgB;AAC5B,6BAA6B,8EAAc,UAAU,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA,kCAAkC,2EAAQ,SAAS,+FAA+F;AAClJ;AACA;AACA;AACA,gBAAgB,wDAAK;AACrB;AACA;AACA;AACA;AACA,gBAAgB,wDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uFAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qEAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6FAAyB,0FAA0F,iGAAuB;AACnL;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxNA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACwD;AACM;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oEAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAAiB;;;;;;;;;;;;;;;AC7BjB;AACA;AACA;AACA;AACwC;AACC;AACS;AAClD;AACA;AACA;AACO;AACP;AACA,oBAAoB,mEAAiB;AACrC;AACA;AACA,mBAAmB,mEAAiB;AACpC;AACA,KAAK;AACL;AACA,YAAY,mEAAiB,IAAI,+DAAoB;AACrD;AACA;AACA,kCAAkC,2DAAgB;AAClD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,6EAA4B;AACvC,mBAAmB,2DAAU,kBAAkB,6EAA4B;AAC3E;;;;;;;;;;;;;;;;;;;;;;AC/BA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACsG;AACA;AACkB;AACtD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,CAAC,CAAC,8BAAa;AACW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAiB;AACrD,yBAAyB;AACzB;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sCAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA,QAAQ,6BAAQ;AAChB,mBAAmB,wBAAO;AAC1B;AACA;AACA,YAAY,wBAAO;AACnB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA,wDAAwD,sCAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,uBAAuB,mCAAkB;AACzC;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB;AACA,gCAAgC,sCAAiB;AACjD;AACA;AACA;AACA,wBAAwB,mCAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gDAAgD;AAChF;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0CAA0C;AAC1E,mCAAmC,4CAA4C;AAC/E;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAM;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gCAAgC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,YAAY,gCAAW;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB,QAAQ,gCAAW;AACnB,6BAA6B,6CAA6C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS,+BAAU,SAAS,IAAI,UAAU,+BAAU;AACjG,QAAQ,sCAAiB;AACzB;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA,aAAa,sCAAiB;AAC9B,aAAa,sCAAiB;AAC9B,YAAY,gCAAW,EAAE,2BAAM;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA,YAAY,6BAAY;AACxB;AACA;AACA,gBAAgB,gCAAW,EAAE,2BAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAS;AACxB;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,eAAe,sCAAiB;AAChC;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,4BAA4B,0BAA0B;AACtD,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,+BAA+B,sCAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAW;AACvB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA,4BAA4B,6BAA6B;AACzD,2BAA2B,8BAAS;AACpC,4BAA4B,8BAAS;AACrC;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sCAAiB,iBAAiB,kCAAkC;AAC5E;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA,oBAAoB,gCAAW;AAC/B;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA,qBAAqB,sCAAiB;AACtC;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,4BAA4B,gCAAW;AACvC;AACA;AACA,4BAA4B,6BAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAiB;AACpC,oBAAoB,MAAI;AACxB;AACA;AACA,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA,gBAAgB,sCAAiB,cAAc,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA,wBAAwB,6BAAY;AACpC,yCAAyC,wBAAO;AAChD,wBAAwB,6BAAY;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ,EAAE,2BAAM;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAO;AACnB;AACA,4BAA4B,mBAAmB;AAC/C,8BAA8B,sCAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAiB;AAC/B;AACA,aAAa,sCAAiB;AAC9B;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA,YAAY,gCAAW;AACvB,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sCAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA,4BAA4B,wBAAO;AACnC,qCAAqC,wCAAwC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAO;AACrC,6BAA6B,wBAAO;AACpC;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAO;AACrC,6BAA6B,wBAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAY;AACpB;AACA;AACA;AACA,4BAA4B,8BAAS;AACrC;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA,oBAAoB,gCAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA,QAAQ,gCAAW,EAAE,2BAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD,gBAAgB,sCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW,EAAE,2BAAM;AAC3B;AACA;AACA,QAAQ,6BAAQ,EAAE,2BAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC;AACA;AACA;AACA,6CAA6C,sCAAiB;AAC9D,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sCAAiB;AACxE;AACA;AACA;AACA;AACA,2BAA2B,wBAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA,UAAU;AACV;AACA;AACA,YAAY,6BAAQ;AACpB;AACA,YAAY,6BAAQ;AACpB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,mCAAmC,sCAAiB;AAClF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB,mCAAmC,sCAAiB;AAClF;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,iBAAiB,sCAAiB;AAClC;AACA;AACA,oBAAoB,sCAAiB,iBAAiB,wCAAwC;AAC9F;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAiB,iBAAiB,oBAAoB;AACtE;AACA;AACA;AACA,YAAY,sCAAiB,iBAAiB,oBAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sCAAiB;AAC9B,yBAAyB,4BAAO;AAChC;AACA;AACA,yBAAyB,4BAAO;AAChC;AACA;AACA,aAAa,sCAAiB;AAC9B,uCAAuC;AACvC;AACA,aAAa,sCAAiB;AAC9B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+CAA+C,6BAAQ,wBAAwB,gCAAW;AAC1F;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA;AACA,wBAAwB,6BAAQ;AAChC;AACA;AACA,yBAAyB,sCAAiB,2BAA2B,sCAAiB;AACtF;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA,yBAAyB,sCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,6BAAY;AACxB,YAAY,6BAAY;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA,gBAAgB,6BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA,YAAY,6BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD,YAAY,2BAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sCAAiB;AACnC,iBAAiB,sCAAiB;AAClC,iBAAiB,sCAAiB;AAClC,qBAAqB,sCAAiB;AACtC,uBAAuB,sCAAiB;AACxC,yBAAyB,sCAAiB;AAC1C,uBAAuB,sCAAiB;AACxC,sBAAsB,sCAAiB;AACvC;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,sCAAiB;AAC7B;AACA;AACA,QAAQ,2BAAM;AACd;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,+BAAU;AAClB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,6BAAQ;AAChB;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,QAAQ,sCAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0BAAS;AACS;;;;;ACh3EkF;AAC7C;AACN;AAC+C;AAC3F;AACA;AACA,eAAe,iCAAQ,GAAG,mBAAmB;AAC7C;AACP;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,0CAAkB;AACjD;AACA,aAAa,kCAAa;AAC1B;AACA;AACA;AACA,2BAA2B,SAAS,wBAAwB;AAC5D;AACA;AACA,8BAA8B,QAAQ,GAAG;AACzC;AACA;AACA;AACA;AACA,yBAAyB,qBAAqB;AAC9C,6BAA6B,6BAA6B;AAC1D,qBAAqB,8BAAS;AAC9B,kCAAkC;AAClC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,8BAAS,GAAG,eAAE;AAC/B;AACA,aAAa,sCAAiB;AAC9B,qBAAqB,8BAAS;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA;AACA,kFAAkF,iCAAiC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,CAAC;AACM;AACP;AACA;AACA;AACA,sBAAsB,yCAAU,OAAO,4CAAa;AACpD,sBAAsB,0CAAW,OAAO,6CAAc;AACtD;AACA;;;;;;;;;;;;;;;;AC5HA;AACA;AACA;AACA;AACgE;AACuE;AAChE;AAChE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2GAA2G,gFAAiB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0CAA0C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,yEAAU,GAAG,2FAA4B;AAC3H,wBAAwB,mBAAmB;AAC3C;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yEAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2EAAQ;AAC7C,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6EAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/NA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACiD;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;ACpGA;AACA;AACA;AACA;AAC2D;AACM;AACT;AACO;AACS;AACG;AAChB;AACpD,mCAAmC,4BAAU;AACpD;AACA;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAQ;AACzC,gCAAgC,4BAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,QAAQ,cAAc;AACtB;AACA,gEAAgE,yCAAmB;AACnF;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAQ;AAC3B,wBAAwB,4BAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;AC1MP,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;ACLa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,mBAAmB;AACrC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,KAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,kBAAkB,mBAAO,CAAC,KAAe;AACzC,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,mDAAmD;AACnE,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gDAAgD,IAAI,UAAU;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,MAAM;AAClB;AACA,uCAAuC,mBAAmB;AAC1D,8BAA8B,4BAA4B,UAAU,EAAE;AACtE;AACA,mBAAmB;AACnB;AACA,YAAY,UAAU;AACtB,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8CAA8C;AAC7F,iCAAiC;AACjC;AACA;AACA,SAAS;AACT,yCAAyC,GAAG,aAAa,mBAAmB;AAC5E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,gEAAgE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK,KAAK;AAC5J,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAe;AACf;;;;;;;ACzHA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAQ;AAC3B,eAAe,8CAA+B;AAC9C,kBAAkB,iDAAqC;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,SAAS;AACpD;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;;;;;;;;ACnZ1B,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AAC0F;AACnF,iCAAiC,0GAAe;;;;;;;;;;;;;;ACLvD;AACA;AACA;AACA;AAC8E;AACvE,4BAA4B,iGAAe;AAC3C,4BAA4B,iGAAe;;;;;;;;;;;;;;;;ACNlD;AACA;AACA;AACA;AACA;AAC+E;AAC6E;AACnF;AACC;AACsC;AACP;AAC/D;AAC1C,kGAA0B,CAAC,kFAAmB,KAAK,kFAAmB,kDAAkD;AACxH,yFAAqB,CAAC,wFAA4B;AAClD,6FAAqB,mBAAmB,iFAAa;AACrD;AACA;AACA,gBAAgB,uFAAwB;AACxC,0BAA0B,oFAAqB;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB,kFAAmB;AACxC;AACA,CAAC;AACD,6FAAqB,mBAAmB,iFAAa;AACrD;AACA;AACA;AACA,0BAA0B,oFAAqB;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,kFAAmB;AACjC;AACA,CAAC;AACD,4FAAoB,mCAAmC,gFAAY;AACnE;AACA;AACA;AACA,uBAAuB,uDAAY;AACnC;AACA,8BAA8B,oFAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kFAAmB,yEAAyE,uFAAgB;AACrI;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT,KAAK;AACL;AACA,4FAAoB,eAAe,gFAAY;AAC/C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,0BAA0B,oFAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA,qBAAqB,kFAAmB,gEAAgE,YAAY,8FAAkC,KAAK;AAC3J;AACA,CAAC;;;;;;;;AChGD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACnED;AACA;AACA;AACA;AACyE;AACjB;AACiB;AAClE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,qBAAqB,kBAAkB,GAAG;AAC1C,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gFAAY,KAAK,sEAAW,uEAAuE,sEAAW;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gFAAY,KAAK,sEAAW,uEAAuE,sEAAW;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,eAAe;AAC3B;AACA,YAAY,eAAe;AAC3B,YAAY,6CAA6C;AACzD,YAAY,oEAAoE;AAChF;AACA,YAAY,oEAAoE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA,mCAAmC,sEAAW;AAC9C,mCAAmC,sEAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gFAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,gFAAY;AACtC;AACA,wBAAwB,8EAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gFAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gFAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,2CAA2C,sEAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,2CAA2C,sEAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,sFAAoB;AACxB;AACA;AACA;AACA;AACA;AACA,6CAA6C,sEAAW;AACxD;AACA;AACA;AACA,6CAA6C,sEAAW;AACxD;AACA;AACA;AACA,+BAA+B,gFAAY,kDAAkD,8EAAU,iCAAiC,8EAAU;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;AClXA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;AClID;AACA;AACA;AACA;AAC8D;AACH;AACF;AAChB;AACU;AACH;AACsD;AAClC;AAC7D,kCAAkC,qEAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB;AACxC;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA,sGAAsG,0DAAK;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,0DAAK,0DAA0D,0DAAK;AACzI,2CAA2C,8EAAQ;AACnD;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gFAAqB,0CAA0C,gFAAqB;AACtJ;AACA;AACA,kFAAkF,sEAAW,sEAAsE,oFAAyB;AAC5L;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sFAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wCAAwC;AAC9F,qDAAqD,sEAAW;AAChE;AACA;AACA;AACA,wEAAwE,sEAAW,wCAAwC,oFAAyB;AACpJ;AACA;AACA,sEAAsE,sEAAW,wCAAwC,oFAAyB;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0EAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,wCAAwC;AACxC;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;;;;;;;;;AClZa;AACb;AACA,0BAA0B,mBAAO,CAAC,KAA6C;AAC/E,eAAe,mBAAO,CAAC,KAAwB;AAC/C,yBAAyB,mBAAO,CAAC,KAAmC;;AAEpE;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC1BY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACtBA,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,IAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACPY;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,WAAW,mBAAO,CAAC,KAAuB;AAC1C,cAAc,mBAAO,CAAC,KAA0B;AAChD,mBAAmB,mBAAO,CAAC,KAA6B;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACfA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AACsE;AACQ;AACvE,8BAA8B,iGAAe;AAC7C,+CAA+C,qFAAa;;;;;;;;ACPnE,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACuC;AAC4B;AAClB;AACC;AACiC;AAC1B;AACI;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4FAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA;AACA;AACA,gBAAgB,2EAAoB;AACpC;AACA,gBAAgB,2EAAoB;AACpC;AACA,gBAAgB,2EAAoB;AACpC;AACA,gBAAgB,2EAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAmB;AACzC;AACA,wBAAwB,WAAW;AACnC,6CAA6C,0EAAmB;AAChE;AACA,yCAAyC,0EAAmB;AAC5D;AACA,uCAAuC,0EAAmB;AAC1D;AACA,mCAAmC,0EAAmB;AACtD;AACA,0BAA0B,kEAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA,QAAQ,2EAAoB;AAC5B;AACA,QAAQ,wEAAiB;AACzB;AACA,QAAQ,wEAAiB;AACzB;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0EAAmB;AACnD;AACA,+BAA+B,0EAAmB;AAClD;AACA,0BAA0B,uEAAgB;AAC1C;AACA,yBAAyB,uEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAmB;AAC/C;AACA;AACA,wBAAwB,iBAAiB;AACzC,qBAAqB,oEAAU;AAC/B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,YAAY,6DAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6EAAQ,4BAA4B,IAAI,iBAAiB;AACpF;AACA,iBAAiB,EAAE,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,uDAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,yCAAyC;AACjH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mFAAiB;AAC7B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtWA;AACA;AACA;AACA;AAC2D;AACE;AACJ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,+BAA+B,8EAAuB;AACtD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,yBAAyB,0EAAmB;AAC5C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8EAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;;;;;;;;;;;;;;ACtHA;AACA;AACA;AACA;AAC8E;AACvE,uBAAuB,iGAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,cAAc;AACvC;AACA,aAAa;AACb;;;;;;;;;AC7Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;AAClE,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,mCAAmC,mBAAO,CAAC,KAA+C;AAC1F,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,IAAI,8DAA8D;AAClE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;AClCD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC;AAChC,+BAA+B;AAC/B,+BAA+B;AAC/B,8BAA8B;AAC9B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACpHD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACsG;AACvC;AACS;AACd;AACP;AAC3B;AACxB,2BAA2B,4BAAY;AACvC;AACA;AACA,yDAAyD,4BAAO;AAChE;AACA,wBAAwB,sBAAM,YAAY,SAAC;AAC3C,sBAAsB,sBAAM,gBAAgB,SAAC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAS,QAAQ,qBAAS,aAAa,sBAAgB;AACpF,2BAA2B,qCAAqB,2BAA2B,uBAAW,kBAAkB;AACxG;AACA,6BAA6B,qBAAS,aAAa,sBAAgB;AACnE,2BAA2B,qCAAqB;AAChD,oBAAoB,4BAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qCAAqB,cAAc,qBAAS;AACnE,8BAA8B,0CAAqB;AACnD;AACA,gBAAgB,uBAAW,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,oBAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1IyC;AAC4B;AACxB;AACM;AAC3B;AACmD;AACJ;AAChE,yCAAyC,0CAAkB;AAClE;AACA;AACA;AACA,yDAAyD,4BAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAM,KAAK,SAAC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAyB,0FAA0F,wDAAuB;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA,yGAAyG,QAAQ;AACjH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Ga;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,2BAA2B,GAAG,oBAAoB;AAChF,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,4BAA4B,sEAAsE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC;AACpG,kCAAkC,iBAAiB,GAAG,QAAQ;AAC9D;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC,EAAE,uCAAuC;AAC7I,kCAAkC,iBAAiB,GAAG,QAAQ,GAAG,uCAAuC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,8CAA8C,+DAA+D;AAC7G;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA,gBAAgB,+BAA+B;AAC/C,6DAA6D,QAAQ,EAAE,qCAAqC;AAC5G;AACA,oDAAoD,UAAU,EAAE,kEAAkE;AAClI,2DAA2D,SAAS;AACpE;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,0CAA0C,uEAAuE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,yCAAyC;AACzC;AACA,2BAA2B;AAC3B;;;;;;;;AChFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,0BAA0B;AACtD,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;;;;;;ACjBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;AC7DD;AACA;AACA;AACA;AACuC;AACiB;AACiB;AACpB;AACmE;AACxH;AACO;AACP;AACA;AACO;AACP;AACA,yCAAyC,oEAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,SAAS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oFAAQ;AACD;AACA;AACP;AACA;AACA;AACA,cAAc,uDAAY;AAC1B,gBAAgB,gEAAK;AACrB,CAAC;AACD,oFAAQ,IAAI,yGAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;;;;;;;ACvDQ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,0CAA0C,KAAK,UAAU,IAAI,EAAE,WAAW;AAC1E,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb;AACA,oBAAoB,iCAAiC;AACrD,wBAAwB,qCAAqC;AAC7D,2BAA2B,wCAAwC;AACnE,wBAAwB,qCAAqC;AAC7D,2BAA2B,wCAAwC;AACnE,wBAAwB,sCAAsC;AAC9D,gCAAgC,8CAA8C;AAC9E,mBAAmB,gCAAgC;AACnD,uBAAuB,oCAAoC;AAC3D,yBAAyB,uCAAuC;AAChE,uBAAuB,qCAAqC;AAC5D,iBAAiB,8BAA8B;AAC/C,8BAA8B,4CAA4C;AAC1E,oBAAoB,iCAAiC;AACrD,wBAAwB,sCAAsC;AAC9D,qBAAqB,kCAAkC;AACvD,uBAAuB,qCAAqC;AAC5D,mBAAmB,gCAAgC;AACnD,kBAAkB,+BAA+B;AACjD,gBAAgB,6BAA6B;AAC7C,sBAAsB,oCAAoC;AAC1D,wBAAwB,sCAAsC;AAC9D,kBAAkB,+BAA+B;AACjD,0BAA0B,yCAAyC;AACnE,oBAAoB;AACpB;;;;;;;;AC3BA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;AAC5B,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;AC9GA,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrBA,qBAAqB,mBAAO,CAAC,KAAiB;AAC9C;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,QAAa;AAC9C,uGAAuG;AACvG,CAAC,8BAA8B;;AAE/B;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,SAAS;;AAEpD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,gDAAgD;AAChD;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D;AAC7D;AACA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,sBAAsB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,WAAW,kBAAkB;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;;;AAGN,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,WAAW,OAAO;AAClB;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC;;AAElC;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;;AAEpC;AACA;AACA,UAAU;;;AAGV,wCAAwC,IAAI,6CAA6C;;AAEzF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ,4CAA4C;;AAE5C,8CAA8C;;AAE9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD,kCAAkC,aAAa,IAAI;AACpG,yCAAyC,kCAAkC,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG;AACjH,kDAAkD,kCAAkC;AACpF,mDAAmD,kCAAkC,KAAK;;AAE1F;AACA;AACA,8BAA8B;;AAE9B;AACA,wCAAwC,IAAI,MAAM,EAAE;AACpD,gBAAgB;;;AAGhB;AACA;AACA,gBAAgB;;;AAGhB;AACA;AACA,gBAAgB;;;AAGhB;AACA;AACA,gBAAgB;;;AAGhB;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;;;AAGZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,UAAU;;;AAGV;AACA;AACA;AACA,mCAAmC;;AAEnC,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA,gFAAgF,4BAA4B;AAC5G;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;;;AAGA;;AAEA,sBAAsB,OAAO;AAC7B;AACA,YAAY;;;AAGZ;;AAEA,sBAAsB,OAAO;AAC7B;;AAEA,wBAAwB,gBAAgB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;;;AAGZ;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,4CAA4C,EAAE,GAAG,GAAG;;AAE9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;;AAEA;AACA;AACA,iCAAiC;;AAEjC;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA,6EAA6E;;AAE7E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;;AAGZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,YAAY;;AAEZ;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,IAAI,GAAG,GAAG,gBAAgB,GAAG,iCAAiC,IAAI;AAClF,YAAY,IAAI,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG;AACjE,iBAAiB,IAAI,GAAG,IAAI;AAC5B,qBAAqB,IAAI;AACzB,eAAe,IAAI;AACnB,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA,oGAAoG,GAAG,SAAS,GAAG,WAAW,GAAG;AACjI;AACA;AACA;AACA,yFAAyF,IAAI,EAAE,KAAK;AACpG,kDAAkD,IAAI,yBAAyB,IAAI,KAAK,GAAG,kBAAkB,GAAG,iCAAiC,IAAI;AACrJ;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA,sBAAsB;AACtB;AACA,SAAS,IAAI;AACb;;AAEA,GAAG;AACH,wFAAwF,IAAI,EAAE,KAAK,4BAA4B,IAAI,uBAAuB,EAAE,8BAA8B,IAAI,KAAK,GAAG,kBAAkB,GAAG,iCAAiC,IAAI;AAChQ;AACA;AACA,6FAA6F,IAAI,EAAE,KAAK;AACxG;AACA,4BAA4B,IAAI,yBAAyB,IAAI,KAAK,GAAG,kBAAkB,GAAG,iCAAiC,IAAI;AAC/H;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,iFAAiF,GAAG;AACpF,gEAAgE,GAAG;AACnE;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,6FAA6F,KAAK,sEAAsE,IAAI;AAC5K,GAAG;AACH;AACA;AACA;;AAEA;AACA,oCAAoC,eAAe,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA,aAAa,GAAG;AAChB;AACA,6BAA6B,GAAG,8CAA8C,GAAG;AACjF;AACA,KAAK;AACL;;AAEA,4CAA4C,cAAc,EAAE;AAC5D,yGAAyG;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe,EAAE;AAC5D,2CAA2C,KAAK;AAChD,6CAA6C,EAAE,kCAAkC,KAAK,6CAA6C,KAAK;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA,4BAA4B,oCAAoC,UAAU;AAC1E;AACA,iCAAiC,GAAG,iCAAiC,GAAG,6EAA6E,GAAG,+BAA+B,GAAG,gCAAgC,GAAG;AAC7N,GAAG;AACH;AACA;AACA;AACA;;AAEA,0BAA0B;AAC1B,kCAAkC,GAAG;AACrC,wDAAwD,GAAG,iBAAiB,IAAI;AAChF,GAAG;;AAEH;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,8BAA8B;AAC9B;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,UAAU;;;AAGV;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;AACV;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA,kCAAkC;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA,UAAU;AACV;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,KAAK;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;;AAGA;;AAEA;AACA;AACA;AACA,6DAA6D,WAAW,EAAE;AAC1E;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB,2BAA2B;;AAE3B;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;;AAE3B;AACA;;AAEA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;;AAEA,0BAA0B,QAAQ;AAClC;AACA;AACA;;AAEA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB,2BAA2B;;AAE3B;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,4BAA4B;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wEAAwE,aAAa;AACrF;AACA;;AAEA,sCAAsC;AACtC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uFAAuF,eAAe;AACtG;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;AACA;;AAEA;AACA,+CAA+C;;AAE/C;AACA,qFAAqF,eAAe;AACpG;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD;;AAEjD;AACA,qFAAqF,eAAe;AACpG;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,QAAQ;;;AAGR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yFAAyF,8BAA8B;AACvH;AACA;AACA;;AAEA,uFAAuF,8BAA8B;AACrH;;AAEA,kFAAkF,8BAA8B;AAChH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,4BAA4B;AACrG;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,4BAA4B;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD,aAAa;;AAE9D,CAAC;;AAED;AACA,CAAC;AACM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;;;;;;;;;;;;;;;AC3hGA;AACA;AACA;AACA;AACgC;AACsB;AACd;AACmB;AACA;AACN;AACe;AACZ;AACb;AACkE;AACxC;AACT;AACnB;AAC8B;AACnB;AACH;AACU;AACL;AACQ;AAChB;AACP;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB,EAAE,8CAAsB;AAC1D,oCAAoC,0CAAkB,OAAO;AAC7D;AACA;AACA,oCAAoC,0CAAkB,OAAO;AAC7D;AACA;AACA,sCAAsC,0CAAkB,QAAQ;AAChE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,KAAK;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,mBAAmB,6CAAqB;AACxC;AACA,4CAA4C,0CAAkB,CAAC,6CAAqB;AACpF,eAAe,6CAAqB;AACpC;AACA,wCAAwC;AACxC,gCAAgC;AAChC,gCAAgC;AAChC,kCAAkC;AAClC,iCAAiC;AACjC,2BAA2B,KAAK,WAAW,cAAc,sBAAsB,KAAK;AACpF,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACO,8CAA8C,oBAAoB;AACzE;AACA,4BAA4B,iCAAe;AAC3C;AACA,oBAAoB,8CAAa;AACjC;AACA;AACA;AACA,mBAAmB,6BAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAc;AAC7B;AACA,uBAAuB,qBAAG;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,qBAAG;AACrB;AACA,gCAAgC,uBAAO;AACvC;AACA;AACA;AACA,sBAAsB,qBAAG;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAU;AAC7B;AACA;AACA;AACA;AACA,YAAY,qBAAG;AACf,yBAAyB;AACzB;AACA;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAgB;AACvC;AACA;AACA,mDAAmD,GAAG,IAAI,0BAAM,OAAO;AACvE;AACA;AACA;AACA;AACA,uBAAuB,mCAAgB;AACvC;AACA;AACA,mDAAmD,GAAG,IAAI,0BAAM,OAAO;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAG;AACrD;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,kEAAkE,+BAAU;AAC5E,qEAAqE,+BAAU;AAC/E,8CAA8C,0BAAK;AACnD,mCAAmC,4CAAkB,CAAC,qBAAa;AACnE;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,iCAAyB;AACvE,sCAAsC,kDAAqB;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA,gBAAgB,wDAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA,2BAA2B,MAAM;AACjC;AACA;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA,yBAAyB,0CAAoB;AAC7C;AACA;AACA;AACA,kFAAkF,4DAA4D;AAC9I;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,wCAAwC;AACxC,8CAA8C,qBAAG;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAG;AAC/B,mCAAmC,uBAAO,wBAAwB,uBAAO;AACzE,oCAAoC,KAAK;AACzC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6CAA6C;AAC7C,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAG;AACrD;AACA;AACA;AACA,KAAK;AACL,mDAAmD,4DAA4D;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAS;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iCAAyB;AACtE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAW;AAC1B;AACA;AACA,eAAe,iCAAW,CAAC,6BAAO;AAClC;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,sBAAsB,iCAAe;AACrC;AACA;AACA;AACA;AACA;AACA,wFAAwF,kEAAkE;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU,IAAI,WAAW;AACrE;AACA;AACA,uCAAuC,UAAU,EAAE,WAAW;AAC9D;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,cAAc,4CAAoC;AAClD;AACA,eAAe,0BAAkB,qBAAqB,sCAAsC;AAC5F;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf,QAAQ,uBAAO;AACf;AACA;AACA,4BAA4B,uBAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,+BAAuB;AACjH;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA,iBAAiB,MAAM,gBAAgB,4FAA4F,6BAA6B,WAAW,QAAQ,uEAAuE;AAC1P,sCAAsC,kBAAkB;AACxD;AACA;AACA,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAI;AAClC,4CAA4C,gBAAI;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qJAAqJ;AACrJ;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oBAAoB,kCAAkC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM,4BAA4B,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,yBAAyB;AACtG,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA,IAAI,yBAAiB;AACrB,WAAW,iCAAY,OAAO,4BAAoB;AAClD;;;;;;;;AC5zBA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA,WAAW,QAAQ,gBAAgB,IAAI,gBAAgB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;ACtCa;;AAEb,gBAAgB,mBAAO,CAAC,KAAa;AACrC,YAAY,mBAAO,CAAC,KAAS;AAC7B,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACsE;AAChB;AAC2B;AAC1E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4FAAuB;AACnD;AACA;AACA;AACA,wEAAwE,iFAAa,SAAS,iEAAK;AACnG;AACA;AACA,wEAAwE,iFAAa,aAAa,iEAAK;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACrDA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;ACLA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACjBA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AAC0F;AACxB;AACxB;AAC1C,+BAA+B,gFAAY;AAC3C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,6EAAU,cAAc,6EAAU;AAC1C;AACA;AACA,gCAAgC,gFAAY;AAC5C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,6EAAU,cAAc,6EAAU;AAC1C;AACA;AACA,kCAAkC,gFAAY;AAC9C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,6EAAU;AAClB;AACA;AACA,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;;;;;;;;AChDpB,eAAe,mBAAO,CAAC,KAAa;AACpC,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,wBAAwB,mBAAO,CAAC,KAAsB;AACtD,eAAe,mBAAO,CAAC,KAAa;AACpC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACvEA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;AC3ED;AACA;AACA;AACA;AACyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA,WAAW,2DAAU;AACrB,iCAAiC,2DAAU;AAC3C,iCAAiC,2DAAU;AAC3C;AACA,gCAAgC,2DAAU,2BAA2B,SAAS;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;;;;;;;;;ACtDa;AACb,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACkE;AACgB;AAClF,8BAA8B,2EAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,kGAA0B;;;;;;;;ACrB1B;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;AC9FD;AACA;AACA;AACA;AAC8E;AACvE,2BAA2B,iGAAe;;;;;;;;;ACLpC;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,wBAAwB,uCAAuC;AAC/D,wBAAwB,uCAAuC;AAC/D;AACA;AACA,gBAAgB,qBAAqB,mCAAmC,qBAAqB,EAAE,WAAW;AAC1G,eAAe,qBAAqB,wBAAwB,cAAc,oBAAoB,WAAW,YAAY;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,0CAA0C,MAAM,EAAE,oBAAoB,EAAE,YAAY,WAAW,KAAK;AACpG,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AAC4E;AACd;AACT;AAC2B;AACvB;AAC2B;AACpF,4FAAgB;AAChB;AACA,IAAI,0EAAU,CAAC,6DAAG;AAClB,wCAAwC,4EAAoB;AAC5D,sCAAsC,2FAAiB;AACvD;AACA;AACA,mFAAmF,qFAAiB;AACpG;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACtBD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AAC2D;AACF;AAChB;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,yBAAyB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sCAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kCAAa,YAAY,uBAAK;AAClD;AACA;AACA;;;;;;;;;;;AC9FA;AACA;AACA;AACA;AACsD;AACQ;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAK;AAC9C;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAAS;AAC9B;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8D;AACU;AAClB;AACQ;AACoB;AACyB;AACpC;AAC2B;AACxB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA,oBAAoB,+BAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA,+CAA+C,oCAA4B;AAC3E,oEAAoE,8BAAuB;AAC3F,+CAA+C,iCAA0B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,mDAAmD,2CAAoB;AACvE;AACA,mDAAmD,oCAA4B;AAC/E,gDAAgD,8BAAuB;AACvE,gDAAgD,8BAAuB;AACvE;AACA,uDAAuD,iCAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,yDAAyD,2CAAoB;AAC7E;AACA,mDAAmD,oCAA4B;AAC/E,gDAAgD,8BAAuB;AACvE,gDAAgD,8BAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAK;AAClD;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2CAAoB;AACtE;AACA;AACA,8CAA8C,oCAA4B;AAC1E,gDAAgD,8BAAuB;AACvE,gDAAgD,8BAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAY;AACnC,aAAa;AACb;AACA,uBAAuB,gCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yCAAY;AACnD;AACA;AACA,4CAA4C,yCAAY;AACxD;AACA;AACA,4CAA4C,yCAAY;AACxD;AACA;AACA,4CAA4C,yCAAY;AACxD;AACA;AACA;AACA;AACA,uCAAuC,oCAA4B;AACnE,qCAAqC,oCAA4B;AACjE,qDAAqD,wCAAiB;AACtE;AACA;AACA;AACA,oCAAoC,8BAAuB;AAC3D,oCAAoC,8BAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAA8B;AAC1C;AACA;AACA,0BAA0B,qCAAc,8BAA8B,uBAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sCAA8B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qCAAc,8BAA8B,uBAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAA8B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qCAAc,8BAA8B,uBAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA,mCAAmC,oCAA4B;AAC/D,sCAAsC,8BAAuB;AAC7D;AACA,8BAA8B,iCAA0B;AACxD;AACA,6CAA6C,uBAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAA6B;AAC5C;AAC4B;;;ACtY5B;AACA;AACA;AACA;AACsE;AAChB;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAa,aAAa,uBAAK;AAC1C;;;;;;;;;AClFA;AACA;AACA;AACA;AAC+D;AACQ;AACmB;AACuD;AACvC;AAC1B;AACV;AACV;AACN;AACQ;AACW;AAChB;AACA;AACA;AACf;AAC8B;AACmC;AACR;AACnG;AACA,sCAAsC,qCAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iCAAiC;AAChH,kCAAkC,uBAAK;AACvC;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,yBAAyB,gHAAgH;AACzI;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,0DAA0D;AAChG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,yBAAyB,kHAAkH;AAC3I;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,4DAA4D;AAClG;AACA;AACA,SAAS;AACT;AACA;AACO,uCAAuC,qCAAY;AAC1D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,iEAAiE;AACvG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA,4CAA4C,+BAAS;AACrD,kCAAkC,oDAA6B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qCAAY;AAClD;AACA;AACA;AACA;AACA;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,yBAAyB,0DAA0D;AACnF;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,0DAA0D;AAChG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,yBAAyB,4DAA4D;AACrF;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,4DAA4D;AAClG;AACA;AACA,SAAS;AACT;AACA;AACO,sCAAsC,qCAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACO,yCAAyC,qCAAY;AAC5D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAAS;AACpD;AACA,uCAAuC,+BAAS;AAChD,uBAAuB,kCAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2CAA2C,qCAAY;AAC9D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wBAAQ;AAC1E;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAAqB;AAC1D;AACA,yGAAyG,4JAA4J;AACrQ,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,qCAAY;AACnD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAa,aAAa,+BAAS;AAC1D,iCAAiC,+BAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,qCAAY;AACnD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAAc;AACtD;AACA;AACA;AACA,iCAAiC,qCAAY;AAC7C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,wCAAmB;AAC3B;AACA;AACO,qCAAqC,qCAAY;AACxD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAAc;AACtD;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAAc;AACtD;AACA;AACO,gDAAgD,qCAAY;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA,wCAAwC,uBAAK;AAC7C;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAa;AAChC,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,uBAAuB,gEAAgE;AACvF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAAS;AACzC;AACA;AACA,gCAAgC,+BAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,uBAAuB,6HAA6H;AACpJ;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA,kCAAkC,+BAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA;AACA,SAAS;AACT,4BAA4B,uBAAK;AACjC;AACA;AACA;AACO,8BAA8B,qCAAY;AACjD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,uBAAuB,2DAA2D;AAClF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAAS;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oBAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAK;AAC7C;AACA;AACA;AACA,+BAA+B,kCAAa;AAC5C,0CAA0C,+BAAS;AACnD;AACA;AACA;AACA,mCAAmC,kCAAa;AAChD,8CAA8C,+BAAS;AACvD;AACA;AACA,mCAAmC,kCAAa;AAChD,8CAA8C,+BAAS;AACvD;AACA;AACA,oBAAoB,uBAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,qCAAY;AACjD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAK;AACjD;AACA,kCAAkC,qCAAc,KAAK,+BAAS;AAC9D;AACA;AACA,4CAA4C,uBAAK;AACjD;AACA,kCAAkC,2DAAoC,6BAA6B,+BAAS;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,qCAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA,+BAA+B,kCAAa;AAC5C;AACA;AACA;AACA,+BAA+B,kCAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE;AAClG;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG,MAAM,GAAG;AAC/E,oEAAoE,GAAG,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG;AACzF;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG,MAAM,GAAG;AAC/E,oEAAoE,GAAG,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG;AAC9F;AACA,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB;AACA,IAAI,iDAAoB;AACxB;AACA;AACA,IAAI,iDAAoB;AACxB;AACA;AACA,IAAI,iDAAoB;AACxB;AACA;AACA,IAAI,iDAAoB;AACxB;AACA;AACA,IAAI,iDAAoB;AACxB;;;;;;;;;;;;;;;;AC/kCA;AACA;AACA;AACA;AAC6D;AACL;AACjD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uEAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAQ;AACxB,gBAAgB,uEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAQ;AAC7B,gBAAgB,uEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA,KAAK,oCAAoC;AACzC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6EAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,SAAS;AAClF;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9NA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC9EY;AACb,oBAAoB,mBAAO,CAAC,KAA8B;;AAE1D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC+D;AACuB;AACpB;AACyC;AACzC;AACsB;AACd;AACnE;AACP;AACA,uCAAuC,kGAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAK,KAAK,iEAAI;AACxC,4BAA4B,kEAAK,+BAA+B,kEAAK;AACrE,4BAA4B,kEAAK,+BAA+B,kEAAK;AACrE,4BAA4B,kEAAK,+BAA+B,kEAAK;AACrE;AACA,kCAAkC,wBAAwB,2BAA2B;AACrF,kCAAkC,wBAAwB,2BAA2B;AACrF,kCAAkC,wBAAwB,2BAA2B;AACrF;AACA;AACA;AACA,4FAA4F,2EAAU;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6EAAa;AAC5B,eAAe,uHAA6B;AAC5C,eAAe,mGAAwB;AACvC;AACA,yFAAqB;;;;;;;;;;ACrDrB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAiB;AAC9B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoE;AACF;AACgB;AACyB;AAC/B;AACI;AAChF,gEAAgE,2EAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,wDAAwD,6EAAgB;AACxE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D,qCAAqC;AACrC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uHAA6B;AAC5C,eAAe,2FAAoB;AACnC;AACiC;AACjC;AACA;AACA;AACA,iBAAiB,wFAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,kGAA0B;;;;;;;;ACjL1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACzBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/LD;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACxHD,eAAe,KAAiD,kBAAkB,mBAAO,CAAC,KAAK,EAAE,mBAAO,CAAC,KAAW,GAAG,CAAoL,CAAC,oBAAoB,WAAW,wBAAwB,aAAa,sCAAsC,SAAS,oBAAoB,uBAAuB,wBAAwB,UAAU,eAAe,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,QAAQ,kCAAkC,cAAc,0BAA0B,WAAW,WAAW,8BAA8B,kBAAkB,QAAQ,OAAO,+DAA+D,WAAW,wBAAwB,cAAc,sBAAsB,WAAW,iCAAiC,OAAO,wBAAwB,QAAQ,wBAAwB,QAAQ,+BAA+B,aAAa,kCAAkC,2BAA2B,cAAc,wBAAwB,iBAAiB,wBAAwB,mBAAmB,yBAAyB,oBAAoB,OAAO,oFAAoF,iBAAiB,OAAO,sDAAsD,WAAW,mBAAmB,0DAA0D,qBAAqB,oBAAoB,OAAO,sGAAsG,QAAQ,iBAAiB,kBAAkB,oBAAoB,WAAW,0OAA0O,4CAA4C,uCAAuC,2BAA2B,cAAc,EAAE,UAAU,qBAAqB,uBAAuB,uBAAuB,WAAW,0BAA0B,iGAAiG,EAAE,sBAAsB,WAAW,mDAAmD,YAAY,gDAAgD,6BAA6B,iCAAiC,wBAAwB,4BAA4B,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,8EAA8E,gBAAgB,aAAa,oGAAoG,gGAAgG,cAAc,0BAA0B,WAAW,WAAW,0DAA0D,OAAO,qEAAqE,UAAU,uBAAuB,qBAAqB,sBAAsB,+FAA+F,yBAAyB,iBAAiB,OAAO,0CAA0C,oBAAoB,kFAAkF,UAAU,kBAAkB,8CAA8C,sBAAsB,6EAA6E,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,wDAAwD,oBAAoB,wCAAwC,QAAQ,oEAAoE,oBAAoB,mBAAmB,yBAAyB,6WAA6W,oJAAoJ,mDAAmD,OAAO,kCAAkC,qBAAqB,mCAAmC,wCAAwC,OAAO,YAAY,2FAA2F,sBAAsB,qBAAqB,OAAO,aAAa,iRAAiR,WAAW,kCAAkC,qCAAqC,kBAAkB,OAAO,kFAAkF,MAAM,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,yBAAyB,WAAW,yBAAyB,WAAW,yBAAyB,iBAAiB,OAAO,wBAAwB,oBAAoB,uFAAuF,UAAU,kBAAkB,0BAA0B,mBAAmB,0CAA0C,uBAAuB,OAAO,4BAA4B,eAAe,uIAAuI,OAAO,iBAAiB,qCAAqC,kBAAkB,kCAAkC,OAAO,gCAAgC,qBAAqB,kBAAkB,OAAO,oBAAoB,iBAAiB,wBAAwB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,0CAA0C,WAAW,0BAA0B,mBAAmB,sBAAsB,OAAO,+BAA+B,oDAAoD,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,uCAAuC,WAAW,yBAAyB,mBAAmB,uCAAuC,sBAAsB,OAAO,uEAAuE,qCAAqC,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,wCAAwC,kBAAkB,mBAAmB,sBAAsB,OAAO,6BAA6B,qCAAqC,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,4CAA4C,WAAW,WAAW,yBAAyB,WAAW,wBAAwB,UAAU,uBAAuB,QAAQ,sBAAsB,iIAAiI,iBAAiB,OAAO,UAAU,WAAW,mBAAmB,WAAW,gCAAgC,SAAS,0DAA0D,gBAAgB,KAAK,QAAQ,sBAAsB,kBAAkB,oBAAoB,8BAA8B,UAAU,qBAAqB,WAAW,sBAAsB,UAAU,IAAI,mBAAmB,8DAA8D,sBAAsB,iEAAiE,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,yDAAyD,mBAAmB,kBAAkB,0DAA0D,OAAO,kCAAkC,qBAAqB,mCAAmC,0BAA0B,OAAO,4BAA4B,aAAa,EAAE,sHAAsH,aAAa,kCAAkC,8MAA8M,IAAI,2EAA2E,OAAO,iBAAiB,qBAAqB,kCAAkC,yGAAyG,0BAA0B,OAAO,4BAA4B,aAAa,EAAE,uBAAuB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,4CAA4C,WAAW,WAAW,wBAAwB,WAAW,uBAAuB,UAAU,uBAAuB,QAAQ,sBAAsB,iIAAiI,iBAAiB,OAAO,UAAU,QAAQ,sBAAsB,kBAAkB,oBAAoB,8BAA8B,UAAU,qBAAqB,sEAAsE,6CAA6C,mDAAmD,IAAI,mBAAmB,8DAA8D,sBAAsB,iEAAiE,0BAA0B,IAAI,6CAA6C,SAAS,oCAAoC,yDAAyD,mBAAmB,gBAAgB,8DAA8D,OAAO,kCAAkC,qBAAqB,mCAAmC,0BAA0B,OAAO,2BAA2B,eAAe,iDAAiD,0BAA0B,aAAa,+BAA+B,gNAAgN,GAAG,0DAA0D,OAAO,iBAAiB,qBAAqB,kCAAkC,4EAA4E,0BAA0B,OAAO,2BAA2B,eAAe,uBAAuB,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,yCAAyC,WAAW,2BAA2B,mBAAmB,sBAAsB,OAAO,8BAA8B,QAAQ,gCAAgC,gBAAgB,YAAY,EAAE,IAAI,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,WAAW,WAAW,2DAA2D,WAAW,uBAAuB,mBAAmB,uCAAuC,sBAAsB,OAAO,4BAA4B,wBAAwB,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,sBAAsB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,uBAAuB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,uBAAuB,oCAAoC,WAAW,oDAAoD,mBAAmB,YAAY,EAAE,IAAI,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,MAAM,iEAAiE,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,iCAAiC,yCAAyC,wDAAwD,mDAAmD,gEAAgE,4EAA4E,mCAAmC,oDAAoD,gBAAgB,GAAG,oCAAoC,gBAAgB,YAAY,2GAA2G,+EAA+E,uCAAuC,gCAAgC,GAAG,uBAAuB,yKAAyK,+KAA+K,qDAAqD,iEAAiE,EAAE,mCAAmC,yCAAyC,oBAAoB,GAAG,qDAAqD,WAAW,iBAAiB,YAAY,qCAAqC,OAAO,yBAAyB,WAAW,+BAA+B,iBAAiB,aAAa,sBAAsB,SAAS,6BAA6B,4BAA4B,oBAAoB,sBAAsB,eAAe,+BAA+B,cAAc,kGAAkG,cAAc,mBAAmB,6BAA6B,gCAAgC,gEAAgE,EAAE,2CAA2C,qBAAqB,MAAM,qCAAqC,cAAc,KAAK,WAAW,qBAAqB,sCAAsC,SAAS,iBAAiB,cAAc,KAAK,iBAAiB,mBAAmB,YAAY,WAAW,KAAK,sBAAsB,iFAAiF,IAAI,iBAAiB,cAAc,iBAAiB,oDAAoD,YAAY,8CAA8C,SAAS,aAAa,kBAAkB,kBAAkB,iCAAiC,cAAc,6CAA6C,yBAAyB,SAAS,OAAO,OAAO,YAAY,0BAA0B,gBAAgB,YAAY,WAAW,KAAK,qBAAqB,MAAM,SAAS,YAAY,iBAAiB,2BAA2B,KAAK,iBAAiB,kCAAkC,KAAK,iBAAiB,iBAAiB,4BAA4B,SAAS,0BAA0B,gBAAgB,iBAAiB,KAAK,WAAW,KAAK,wCAAwC,oCAAoC,qCAAqC,eAAe,EAAE,SAAS,gBAAgB,sBAAsB,qIAAqI,oBAAoB,gIAAgI,+CAA+C,KAAK,iQAAiQ,wCAAwC,qBAAqB,cAAc,sFAAsF,cAAc,sCAAsC,qDAAqD,gBAAgB,mCAAmC,uBAAuB,EAAE,gBAAgB,cAAc,uBAAuB,+CAA+C,QAAQ,0XAA0X,gEAAgE,uCAAuC,qDAAqD,sEAAsE,gBAAgB,gBAAgB,WAAW,wDAAwD,2BAA2B,yCAAyC,0BAA0B,sBAAsB,6BAA6B,uCAAuC,KAAK,KAAK,aAAa,6BAA6B,2CAA2C,yBAAyB,KAAK,mBAAmB,2EAA2E,wBAAwB,+IAA+I,QAAQ,2CAA2C,qIAAqI,aAAa,0BAA0B,iBAAiB,WAAW,KAAK,WAAW,6BAA6B,eAAe,cAAc,WAAW,0BAA0B,YAAY,iBAAiB,iBAAiB,kBAAkB,4BAA4B,2CAA2C,EAAE,oBAAoB,iBAAiB,mKAAmK,iBAAiB,YAAY,qCAAqC,OAAO,yBAAyB,WAAW,+BAA+B,iBAAiB,aAAa,YAAY,2CAA2C,gBAAgB,EAAE,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,qCAAqC,WAAW,mCAAmC,oBAAoB,qCAAqC,EAAE,iBAAiB,aAAa,OAAO,sBAAsB,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,MAAM,wFAAwF,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,6EAA6E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,2EAA2E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,0EAA0E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,yEAAyE,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,4EAA4E,YAAY,iBAAiB,aAAa,OAAO,cAAc,sCAAsC,mBAAmB,YAAY,EAAE,IAAI,wEAAwE,YAAY,iBAAiB,aAAa,MAAM,iBAAiB,kCAAkC,kBAAkB,eAAe,YAAY,4BAA4B,WAAW,gBAAgB,4BAA4B,kBAAkB,iBAAiB,qBAAqB,eAAe,sBAAsB,kDAAkD,0DAA0D,mCAAmC,qEAAqE,qFAAqF,gDAAgD,SAAS,mCAAmC,SAAS,EAAE,qKAAqK,GAAG,eAAe,YAAY,iBAAiB,aAAa,sCAAsC,SAAS,EAAE,yBAAyB,0BAA0B,kBAAkB,0CAA0C,IAAI,sBAAsB,2DAA2D,kBAAkB,mBAAmB,iBAAiB,aAAa,MAAM,iBAAiB,4BAA4B,QAAQ,OAAO,2BAA2B,sBAAsB,kBAAkB,oBAAoB,sBAAsB,kBAAkB,0BAA0B,sCAAsC,yBAAyB,kBAAkB,uBAAuB,gBAAgB,mBAAmB,cAAc,eAAe,gDAAgD,oCAAoC,WAAW,sBAAsB,qBAAqB,gBAAgB,gBAAgB,wBAAwB,aAAa,kBAAkB,mBAAmB,eAAe,yBAAyB,iBAAiB,kCAAkC,cAAc,+BAA+B,cAAc,iBAAiB,yCAAyC,cAAc,2CAA2C,cAAc,4CAA4C,cAAc,0CAA0C,cAAc,0CAA0C,cAAc,6CAA6C,cAAc,0CAA0C,cAAc,sBAAsB,mBAAmB,mDAAmD,cAAc,kDAAkD,gBAAgB,kBAAkB,wDAAwD,gBAAgB,uBAAuB,gBAAgB,kBAAkB,6BAA6B,iBAAiB,4BAA4B,8BAA8B,iBAAiB,gBAAgB,oBAAoB,yBAAyB,4BAA4B,4BAA4B,wBAAwB,kCAAkC,eAAe,WAAW,YAAY,iBAAiB,qBAAqB,0CAA0C,kCAAkC,0BAA0B,kDAAkD,8BAA8B,gCAAgC,wBAAwB,uBAAuB,kBAAkB,UAAU,SAAS,OAAO,QAAQ,YAAY,WAAW,kBAAkB,eAAe,kCAAkC,kBAAkB,QAAQ,UAAU,WAAW,4BAA4B,oBAAoB,gCAAgC,wBAAwB,uCAAuC,iCAAiC,yBAAyB,6BAA6B,WAAW,WAAW,YAAY,kBAAkB,SAAS,OAAO,UAAU,uFAAuF,qFAAqF,4BAA4B,oBAAoB,wCAAwC,QAAQ,WAAW,mCAAmC,uFAAuF,qFAAqF,yBAAyB,kBAAkB,eAAe,qBAAqB,YAAY,UAAU,gCAAgC,YAAY,eAAe,0BAA0B,kBAAkB,gCAAgC,WAAW,+BAA+B,UAAU,sBAAsB,eAAe,qBAAqB,iBAAiB,aAAa,wBAAwB,cAAc,qNAAqN,eAAe,8BAA8B,qNAAqN,4BAA4B,qCAAqC,oBAAoB,EAAE,iBAAiB,4FAA4F,eAAe,wCAAwC,SAAS,EAAE,mBAAmB,8BAA8B,qDAAqD,0BAA0B,6CAA6C,sBAAsB,6DAA6D,YAAY,eAAe,SAAS,iBAAiB,iCAAiC,iBAAiB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,kBAAkB,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,QAAQ;;;;;;;ACAzh5B,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACnCa;AACb,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACTA,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;ACFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,mBAAmB,GAAG,yBAAyB,GAAG,oBAAoB;AACnJ,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB;AACpB,gBAAgB,SAAS,sCAAsC,QAAQ;AACvE;AACA,yBAAyB;AACzB,gBAAgB,qBAAqB;AACrC,iCAAiC,QAAQ,oBAAoB,YAAY;AACzE,iCAAiC,QAAQ;AACzC;AACA;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,mBAAmB;AACnB;AACA,YAAY,KAAK;AACjB,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,+BAA+B,yBAAyB,wEAAwE,wBAAwB;AACxJ;AACA,wBAAwB;AACxB,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB,GAAG,EAAE;AACxE,mCAAmC,IAAI,mEAAmE,IAAI;AAC9G,uCAAuC,IAAI,oCAAoC,iBAAiB,GAAG,QAAQ;AAC3G;AACA,2CAA2C,IAAI;AAC/C,2CAA2C,IAAI;AAC/C;AACA,KAAK;AACL;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,yBAAyB,0EAA0E,IAAI,yBAAyB,wBAAwB,QAAQ,IAAI;AACnM,iCAAiC,uBAAuB;AACxD;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA,0CAA0C,mBAAmB,GAAG,KAAK;AACrE;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA,mCAAmC;AACnC;AACA;AACA,gDAAgD;AAChD,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW,IAAI,cAAc;AAC1D;AACA,gCAAgC,UAAU,EAAE,wDAAwD;AACpG;AACA;AACA;AACA,2BAA2B,eAAe,iBAAiB,IAAI,0BAA0B;AACzF,uEAAuE,cAAc,GAAG,QAAQ;AAChG;AACA,wCAAwC,QAAQ,EAAE,sDAAsD;AACxG;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD,YAAY,iCAAiC;AAC7C,YAAY,+CAA+C;AAC3D,8HAA8H;AAC9H;AACA;AACA;AACA;AACA,qFAAqF,aAAa,EAAE,WAAW;AAC/G;AACA;AACA;AACA;AACA;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACiG;AAC/B;AAC6B;AACjD;AACvC,kDAAkD,8EAA2C;AACpG;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA,sBAAsB,wBAAQ;AAC9B,0BAA0B,OAAO;AACjC;AACA,eAAe,4BAAU;AACzB;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+GAA+G;AAC5J;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uCAAa;AACxC;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D,gCAAgC,iCAAY,kCAAkC,yBAAyB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAQ,qCAAqC,GAAG,eAAe,EAAE;AACxF;AACA,mBAAmB,wBAAQ,+BAA+B,EAAE;AAC5D;AACA;AACA,mDAAmD;AACnD;AACA;AACA,mBAAmB,wBAAQ,gDAAgD,EAAE,cAAc,EAAE,oCAAoC,GAAG;AACpI;AACA,eAAe,wBAAQ,uCAAuC,EAAE,cAAc,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkH;AACtC;AACO;AACC;AACjB;AACV;AACiC;AACjB;AACiB;AAC1F,gGAAgG,mCAAmC;AACnI;AACA;AACA;AACA,kDAAkD,0BAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAkB;AACjC;AACiD;AAC1C,6BAA6B,qCAAY;AAChD;AACA;AACA;AACA,mBAAmB,qCAAW;AAC9B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA,uBAAuB,2DAA2D;AAClF;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,qCAAkB;AACvC;AACA;AACA;AACA,iDAAoB;AACpB,wBAAQ,IAAI,8BAAU;AACtB;AACA;AACA,oBAAoB,aAAa,qCAAW,oDAAoD;AAChG,CAAC;;;;;;;;;;;;;;AC9DD;AACA;AACA;AACA;AAC6D;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAa;AACxC;AACA;AACA;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,SAAS;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAA8B;AAC/D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/RA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA,MAAM,EAK4B;AAClC,CAAC;AACD,8BAA8B;AAC9B;;AAEA;AACA,yCAAyC,0BAAmB,EAAE,8BAAmB;;AAEjF;;AAEA;AACA,8BAAmB,GAAG,0BAAmB;AACzC,0BAA0B;AAC1B,CAAC;;AAED;AACA,mBAAmB,8BAAmB;AACtC,wCAAwC,8BAAmB;AAC3D;AACA,aAAa,8BAAmB;AAChC,kCAAkC,8BAAmB;AACrD;AACA,iBAAiB,8BAAmB;AACpC,kCAAkC,8BAAmB;AACrD,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA,wDAAwD;;AAExD,uCAAuC;;AAEvC;AACA;AACA,kCAAkC;;AAElC;AACA,2DAA2D;;AAE3D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD,wBAAwB,2BAA2B,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;;;AAIpW;AACA;AACA;AACA,WAAW,QAAQ;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL,IAAI;;;AAGJ;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC;AACD,iCAAiC,2BAA2B,2EAA2E,2CAA2C,wBAAwB,OAAO,2CAA2C,mIAAmI;;AAE/X,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,iCAAiC,6DAA6D,yCAAyC,8CAA8C,iCAAiC,mDAAmD,2DAA2D,OAAO,yCAAyC;;AAEpX,kDAAkD,mFAAmF,eAAe;;AAEpJ,wCAAwC,uBAAuB,yFAAyF;;AAExJ,uCAAuC,wEAAwE,0CAA0C,8CAA8C,MAAM,uEAAuE,IAAI,eAAe,YAAY;;AAEnT,8BAA8B,gGAAgG,mDAAmD;;;;;;;AAOjL;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;;AAEA;AACA,aAAa,4CAA4C;AACzD,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;;AAEP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,cAAc,gCAAmB;;AAEjC;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP;AACA,kDAAkD,gCAAmB;;AAErE,SAAS,gCAAmB;AAC5B,eAAe,gCAAmB;;AAElC;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;AAGA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,KAAK;;AAEL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA,YAAY,SAAS;AACrB;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,kCAAkC;AAClC;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA,OAAO;;AAEP,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAmB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA,0BAA0B,4BAA4B;AACtD,0BAA0B;AAC1B,YAAY,gCAAmB,aAAa,WAAW;AACvD;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW,gCAAmB;AAC9B;AACA,gBAAgB,gCAAmB,wBAAwB,gCAAmB;AAC9E,oDAAoD,wCAAwC;AAC5F;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW,gCAAmB,2BAA2B;AACzD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAmB;AACpC,UAAU;AACV;AACA,CAAC;;;;;;;ACz3BD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC7DY;AACb,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,aAAa,mBAAO,CAAC,IAA4B;AACjD,qBAAqB,mBAAO,CAAC,KAAsC;AACnE,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;;;;;;;AChDA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC5F4E;AACpB;AAClD,gCAAgC,qFAAkB;AACzD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,sBAAsB,qFAAkB;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AAC2D;AACR;AACnD;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,wBAAwB,qEAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACO;AACP,kCAAkC,sFAA+B;AACjE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACgE;AACF;AACG;AAC0B;AAC3B;AACsB;AACK;AACb;AACO;AAC9E;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qBAAqB,iGAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oCAAoC,6EAAgB;AACpD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,gFAAY;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2EAAU;AACjC;AACA;AACA;AACA;AACA,eAAe,gFAAY;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,gFAAe;AAC1C,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA,SAAS;AACT;AACA;AACO,gCAAgC,4EAAa;AACpD;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,yBAAyB;AAChG;AACA;AACA;AACA;AACA,gCAAgC,yEAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAS;AAC5B;AACA;AACA;AACA;AACA,6BAA6B,yEAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0FAAkB;AACjC,eAAe,kFAAe;AAC9B;AAC0B;AACnB;AACP;AACA;AACA;AACA;AACO;AACP,4BAA4B;AAC5B;AACA,YAAY,mCAAmC;AAC/C,QAAQ,mFAAgB;AACxB,0EAA0E,WAAW;AACrF;AACA;AACA,qBAAqB,mFAAgB;AACrC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oEAAoE,WAAW,yFAAyF,WAAW;AACnL;AACA;AACA;AACA,gEAAgE,WAAW,yFAAyF,WAAW;AAC/K;AACA;AACA,8EAA8E,qCAAqC;AACnH;AACA;AACA;AACA;AACA;AACA,6BAA6B,mGAAmB;AAChD;AACA;AACA,6CAA6C,sFAAc;AAC3D,aAAa;AACb;AACA;AACA;AACA,yBAAyB,mGAAmB;AAC5C;AACA;AACA,yCAAyC,sFAAc;AACvD,SAAS;AACT;AACA;AACA;AACA,YAAY,4EAAO;AACnB;AACA;AACA;AACA;;;;;;;;;AC3ba;;AAEb,WAAW,oBAAoB;AAC/B;;;;;;;;ACHA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/HD,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChCa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,8CAA8C,WAAW;AACrF,eAAe,YAAY,wBAAwB,UAAU,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+DAA+D,KAAK,GAAG,WAAW;AAClF;AACA;AACA;AACA,8CAA8C,MAAM,mBAAmB,MAAM,iEAAiE,KAAK,uDAAuD,KAAK;AAC/M;AACA;AACA;AACA;AACA,2CAA2C,YAAY,MAAM,OAAO;AACpE;AACA;AACA;AACA,2CAA2C,KAAK,iBAAiB,OAAO,GAAG,KAAK,MAAM,OAAO,GAAG,KAAK;AACrG,0CAA0C,OAAO,GAAG,KAAK;AACzD,8DAA8D,QAAQ,kBAAkB,YAAY,IAAI,OAAO,QAAQ,KAAK;AAC5H,2CAA2C,QAAQ,KAAK,QAAQ,cAAc,OAAO,MAAM,UAAU,MAAM,UAAU;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO,+BAA+B,cAAc;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE,mCAAmC;AACrG;AACA,wDAAwD,gCAAgC;AACxF;AACA,0FAA0F,IAAI;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO,GAAG,KAAK;AACpE;AACA,yEAAyE,OAAO,GAAG,KAAK,yBAAyB,OAAO,QAAQ,KAAK;AACrI;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC3FA,WAAW,mBAAO,CAAC,KAAM;AACzB,YAAY,mBAAO,CAAC,KAAO;AAC3B,WAAW,mBAAO,CAAC,KAAM;AACzB,YAAY,mBAAO,CAAC,KAAO;AAC3B,WAAW,mBAAO,CAAC,KAAM;AACzB,YAAY,mBAAO,CAAC,KAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,GAAG;AAClD;AACA;AACA;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACyC;AACN;AACnC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAK;AAC5B;AACA;AACA,uBAAuB,qDAAK;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,2DAAQ;AAC/B;AACA;AACA,uBAAuB,2DAAQ;AAC/B;AACA;AACA;AACA,kBAAkB,eAAe,GAAG,iBAAiB;AACrD;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACiD;AACyC;AACpB;AACR;AACe;AACA;AAC7E;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,iBAAiB;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sBAAsB,kFAA0B;AAChD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,+BAA+B,oFAAkB;AACxD;AACA,cAAc,qEAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAyB;AACxC;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB;AACxC;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB,SAAS,qEAAa;AAC9D;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB,SAAS,qEAAa;AAC9D;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB,SAAS,qEAAa;AAC9D;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB;AACxC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAyB;AACxC;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB,SAAS,qEAAa;AAC9D;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB,SAAS,qEAAa;AAC9D;AACA,SAAS;AACT;AACA;AACA,eAAe,iFAAyB;AACxC;AACA;AACO,6CAA6C,2EAAU;AAC9D;AACA;AACA;AACA,4DAA4D,wGAAwB;AACpF;AACA;AACA;AACA;AACA;AACA,gCAAgC,yFAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6EAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB,GAAG,QAAQ,GAAG,yEAAiB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gFAAe;AAC3D,6BAA6B,4EAAoB;AACjD;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA,2BAA2B,iGAAa;AACxC;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY,IAAI,UAAU;AACpD;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAqB;AACpE;;;;;;;;;ACzRa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AAC8D;AACO;AAC8B;AACtC;AACC;AAC+F;AACjH;AACc;AACU;AACI;AACP;AAC1D,+BAA+B,4BAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAAO;AAC3C,oCAAoC,0CAAgB;AACpD,4BAA4B,6CAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,kCAAkC,+CAAa;AAC/C,2CAA2C,+BAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,0CAA0C,4CAAY,CAAC,4CAAQ,2BAA2B,4CAAQ,qBAAqB,4CAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4CAAY;AAClC;AACA;AACA;AACA;AACA,uBAAuB,oDAAoB;AAC3C;AACA;AACA,6DAA6D,oDAAoB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAmB;AACjD,uBAAuB,+BAAa;AACpC;AACA;AACA;AACA;AACA,4BAA4B,4CAAQ;AACpC,0BAA0B,4CAAQ;AAClC,mBAAmB,+BAAgB;AACnC;AACA,kCAAkC,0CAAU;AAC5C,SAAS;AACT;AACA;AACA;AACA,4BAA4B,oDAAgB;AAC5C,0BAA0B,oDAAgB;AAC1C,mBAAmB,+BAAgB;AACnC;AACA;AACA,sCAAsC,0CAAU;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA,0CAA0C,0CAAU,eAAe,oDAAgB;AACnF;AACA;AACA;AACA;AACA,2CAA2C,0CAAU,eAAe,oDAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAAS;AACrC,2BAA2B,gCAAgC;AAC3D;AACA;AACA,yCAAyC,QAAQ;AACjD,oBAAoB,iCAAiC;AACrD,gBAAgB,kDAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAAS;AACrC,gBAAgB,kDAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA,oCAAoC,6CAAS;AAC7C,wBAAwB,uDAAmB;AAC3C,wBAAwB,0DAAsB;AAC9C,kDAAkD,0DAAsB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA,oCAAoC,6CAAS;AAC7C,wBAAwB,uDAAmB;AAC3C,wBAAwB,0DAAsB;AAC9C,kDAAkD,0DAAsB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kDAAc;AAC5C,gCAAgC,WAAW;AAC3C;AACA;AACA,8BAA8B,kDAAc;AAC5C,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAS;AAC3C;AACA;AACA;AACA;AACA,0CAA0C,iCAAiC,CAAC,kDAAc,kCAAkC,kDAAc;AAC1I,cAAc,kDAAc,CAAC,6CAAS,0FAA0F,0CAAU;AAC1I;AACA;AACA;AACA;AACA,4BAA4B,6CAAS;AACrC,gBAAgB,uDAAmB;AACnC,gBAAgB,0DAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAS;AACjC,gBAAgB,uDAAmB;AACnC,gBAAgB,uDAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtVA;AACA;AACA;AACA;AACgF;AACrB;AAC2C;AAC1D;AACwB;AACS;AACH;AACnE,wCAAwC,4BAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAiB;AACpE,sCAAsC,4BAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAe;AACjD,gFAAgF,gBAAgB;AAChG;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2IAA2I,+BAAgB;AAC3J;AACA;AACA;AACA;AACA;AACA,0IAA0I,+BAAgB;AAC1J;AACA;AACA;AACA;AACA;AACA,uJAAuJ,+BAAgB;AACvK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAK;AACjE;AACA,wFAAwF,4BAAS;AACjG;AACA,4CAA4C,uBAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA,gBAAgB,0CAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA,gBAAgB,0CAAqB;AACrC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAAqB;AACzD,kBAAkB,qCAAqC;AACvD;AACA;AACA;AACA;AACA,qCAAqC,sCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0CAAqB;AAC1D,wBAAwB,qCAAqC;AAC7D,qCAAqC,sCAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,+FAA+F,0CAAqB;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,+FAA+F,0CAAqB;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,kCAAkC,sCAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0CAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA,kCAAkC,sCAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0CAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B,4DAA4D,uBAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,SAAS;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0CAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACltBA;AACA;AACA;AACA;AAC2D;AACO;AACtB;AACiS;AAC9O;AACxF,sDAAsD,4BAAU;AACvE;AACA;AACA;AACA;AACA,sCAAsC,4BAAO;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB,GAAG,qBAAqB;AAC3E;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA,mDAA0B;AAC1B;AACA,QAAQ,gEAAoC;AAC5C,QAAQ,gEAAoC;AAC5C,QAAQ,gEAAoC;AAC5C,QAAQ,gEAAoC;AAC5C,QAAQ,gEAAoC;AAC5C,QAAQ,gEAAoC;AAC5C;AACA;AACA,yCAAyC,mDAAmD,SAAS,eAAe,gFAAoD,KAAK;AAC7K;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA,6CAA6C,kDAAkD,SAAS,SAAS;AACjH;AACA,CAAC;;;;;;;AC7FD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC,0CAA0C;AAC1C,+BAA+B;AAC/B,qCAAqC;AACrC,4DAA4D;AAC5D,0CAA0C;AAC1C,yDAAyD;AACzD;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,wCAAwC;AACxC,wCAAwC;AACxC,sCAAsC;AACtC,kDAAkD,UAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/KA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;ACz9BA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAQ;AACnC,mBAAmB,kBAAO;AAC1B;AACA;AACA,+BAA+B,mBAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAQ;AACpC,mBAAmB,mBAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAQ;AAClC;AACA;AACA;AACA,+BAA+B,mBAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAQ;AACpC,mBAAmB,mBAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAQ;AACrB,mBAAQ,UAAU,mBAAQ;AAC1B,mBAAQ,QAAQ,mBAAQ;AACxB,mBAAQ,SAAS,mBAAQ;AACzB,mBAAQ;AACD,SAAS,kBAAO;AACvB,yBAAyB,mBAAQ;AACjC;AACA;AACA;AACA;AACO;AACP,0BAA0B,mBAAQ;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAQ;AACzB;AACA;AACA;AACA;AACA,SAAS,wBAAa;AACtB,IAAI,mBAAQ,UAAU,mBAAQ;AAC9B;AACO,SAAS,qBAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAQ;AAC3B;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAW;AAC3B;AACA;AACA,oBAAoB,mBAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,mBAAmB,mBAAQ;AAC3B;AACA;AACA;AACA,yBAAyB,mBAAQ;AACjC;AACA;AACA;AACA;AACA,YAAY,kBAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAa;AACrB,2BAA2B,mBAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAQ;AAC/B;AACA;AACA,wBAAwB,mBAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAa;AACjB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAU;AAC9B;AACA;AACA;AACA,gBAAgB,sBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAW;AAC/B;AACA;AACA;AACA,gBAAgB,qBAAU;AAC1B;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oCAAoC,mBAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACvWA;AACA;AACA;AACA;AACkD;AACN;AACD;AACuE;AAClC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAQ;AAClC;AACA,6BAA6B,mBAAQ;AACrC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,oBAAoB,mBAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA,iDAAiD,oBAAoB,IAAI,gIAAgI;AACzM;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB,mBAAQ;AAC7B,2BAA2B,mBAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAAQ;AACvC;AACA,2BAA2B,6BAAQ;AACnC;AACA;AACA;AACA;AACA,gCAAgC,mBAAQ;AACxC;AACA;AACA;AACA,+BAA+B,6BAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2CAAe,KAAK,uBAAK;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,6BAA6B,gCAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wCAAY;AACnD,8CAA8C,uBAAS,KAAK,uBAAK;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2CAAe,KAAK,uBAAK;AAC/D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAQ;AAClC,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS,mBAAQ,sBAAsB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,oBAAoB,IAAI,2FAA2F;AACvM;AACA;AACA;AACA,gFAAgF,oBAAoB,IAAI,sFAAsF;AAC9L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAQ;AACjC,+BAA+B,mBAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B,2BAA2B,mBAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B,4BAA4B,mBAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,iBAAiB,mBAAQ;AACzB,kBAAkB,mBAAQ;AAC1B,mBAAmB,mBAAQ;AAC3B;AACA;AACA;AACA,kBAAkB,mBAAQ;AAC1B;AACA;AACA;AACA,gCAAgC,mBAAQ;AACxC;AACA;AACA;AACA;AACA,6BAA6B,kBAAO;AACpC;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,iBAAiB,mBAAQ;AACzB,kBAAkB,mBAAQ;AAC1B,mBAAmB,mBAAQ;AAC3B;AACA;AACA,0BAA0B,mBAAQ;AAClC;AACA;AACA;AACA,+BAA+B,mBAAQ;AACvC;AACA;AACA;AACA;AACA,6BAA6B,SAAS,aAAa;AACnD;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;;;;;AC36CA;AACA;AACA;AACA;AAC2D;AACG;AAClB;AACM;AACC;AACC;AACE;AACY;AAC3D,kCAAkC,4BAAU;AACnD;AACA;AACA,sDAAsD,4BAAO;AAC7D;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4BAA4B;AAC9E;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE,wBAAwB,+BAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAoB;AACzE;AACA;AACA;AACA;AACA,sCAAsC,2BAAmB;AACzD;AACA;AACA;AACA,yDAAyD,8CAAsC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,8BAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,wEAAwE,0CAA0C;AAClH;AACA;AACA;AACA,gCAAgC,uCAA+B;AAC/D;AACA;AACA;AACA,+DAA+D,wDAAwD;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uCAA+B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAK;AACzC;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA,iDAAiD,uBAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8BAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAK;AACvB;AACA;AACA;AACA;AACA;AACA;;;ACtcA;AACA;AACA;AACA;AAC8D;AAC4B;AAC3B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA,qCAAqC,oBAAoB;AACzD,gCAAgC,YAAY;AAC5C;AACA;AACA,+BAA+B,mBAAmB;AAClD,iBAAiB;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAyB;AACzC,2BAA2B,kCAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C,6BAA6B,YAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAAmB;AACtD;AACA;AACA,sDAAsD,8CAAsC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxIA;AACA;AACA;AACA;AAC6D;AAC7D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,sBAAsB,8BAAW;AACjC;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;;AClEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7B2E;AACpE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;;;;;ACnBA;AACA;AACA;AACA;AACkE;AACqB;AACxB;AACD;AACb;AACA;AACI;AACc;AACtB;AACoD;AAC5C;AAC9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAwC;AAC5F,8DAA8D,kBAAkB;AAChF;AACO;AACP;AACA;AACA;AACA;AACA,uDAAuD,8BAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA,2DAA2D,8BAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAAW;AAC3E;AACA;AACA;AACA,+BAA+B,8BAAQ;AACvC,kCAAkC,0BAAS;AAC3C;AACA;AACA;AACA,uDAAuD,8BAAW;AAClE;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA,iBAAiB;AACjB;AACA;AACO;AACP;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8BAAW;AACvD;AACA;AACA;AACA;AACA,4CAA4C,8BAAW;AACvD;AACA;AACA,oDAAoD,8BAAW,0BAA0B,8BAAW;AACpG;AACA;AACA;AACA;AACA;AACA,QAAQ,8BAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D;AACA;AACA;AACA,iCAAiC,8BAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA,YAAY,4CAAmB;AAC/B;AACA,IAAI,mCAAU;AACd;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAiB;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D,mBAAmB,0BAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0BAAS;AACjF;AACA;;;AC7aA;AACA;AACA;AACA;AAC6C;AACtC;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAU;AACzC;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC5HA;AACA;AACA;AACA;AACyD;AACV;AAC0D;AAC5D;AACgB;AAC7D;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE,uBAAuB,mCAAU,CAAC,aAAa;AAC/C;AACA;AACA;AACA;AACA,mBAAmB,mCAAU;AAC7B;AACA;AACA,iCAAiC,aAAa;AAC9C;AACA;AACA;AACA,0CAA0C,2CAAa;AACvD;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,2BAA2B,0BAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAa;AAC/B,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA,sCAAsC,uBAAuB;AAC7D,sCAAsC,uBAAuB;AAC7D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA,2DAA2D,qCAAqC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2EAA2E;AACzG;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3MA;AACA;AACA;AACA;AACyD;AACZ;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ,EAAE,yCAAyC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,6CAA6C;AAC7C;AACA,2BAA2B,0BAAkB;AAC7C;AACA,iCAAiC,qBAAqB;AACtD,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjMA;AACA;AACA;AACA;AACwD;AACS;AACsB;AAC/B;AACyC;AAChD;AACA;AACF;AACO;AACC;AACJ;AACoF;AACtC;AACtB;AACR;AAC5D,wCAAwC,kCAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD,uDAAuD,4BAAO;AAC9D;AACA,oEAAoE,4BAAO;AAC3E;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,oEAAoE,8BAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iEAAiE;AACxF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAsD;AACvF;AACA;AACA;AACA;AACA,qEAAqE,8DAA8D;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6BAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mCAAiB;AACxE,2BAA2B,qBAAqB;AAChD,4DAA4D,mCAAiB;AAC7E;AACA,0EAA0E,4BAAO;AACjF;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA,sDAAsD,+BAAa;AACnE,uBAAuB,sCAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wCAAwC,sCAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAmC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA,kDAAkD,qBAAqB;AACvE,kDAAkD,8BAA8B;AAChF;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,oDAAoD,8BAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,2CAA2C,gDAAgD;AAC3F;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6BAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4BAAU;AAC5C,uBAAuB;AACvB;AACA;AACA;AACA,yCAAyC,qCAAgB;AACzD;AACA;AACA;AACA;AACA,YAAY,yBAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1gBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACsE;AAChB;AACkD;AAChD;AAC8C;AAC3C;AACT;AACD;AACa;AACb;AACF;AACN;AACQ;AACoB;AACT;AACkC;AACzD;AACuD;AACqC;AACtF;AACoB;AACJ;AACqB;AACG;AACc;AAC5B;AACM;AACgL;AAC1K;AAC1E;AACP,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACO;AACP,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,aAAa,6BAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,4BAA4B;AAC5B,sDAAsD,4BAAU;AAChE;AACA;AACA,uCAAuC,gBAAgB;AACvD,uBAAuB,sCAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,sCAA8B;AACjD;AACA,gCAAgC;AAChC,6CAA6C;AAC7C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,eAAe,wCAAkB;AACjC;AACA,qBAAqB;AACrB,yBAAyB;AACzB,yBAAyB;AACzB,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAAO;AACxD;AACA;AACA;AACA,sDAAsD,4BAAO;AAC7D;AACA,uDAAuD,4BAAO;AAC9D;AACA,2DAA2D,4BAAO;AAClE;AACA,6DAA6D,mCAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE,uDAAuD,8CAAmB;AAC1E,sDAAsD,uCAAuC;AAC7F,8CAA8C,yBAAyB;AACvE;AACA,wEAAwE,uBAAK;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAwB;AACnD;AACA;AACA;AACA,mCAAmC,2BAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA,iCAAiC,4BAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAA+B;AACnE;AACA;AACA;AACA;AACA,kBAAkB,kCAAe;AACjC;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAA2B;AACrE,gBAAgB,qCAAa;AAC7B,2EAA2E,uBAAK;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAA2B;AACrE,gBAAgB,0CAAkB;AAClC,2EAA2E,uBAAK;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAA8B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,2CAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAgC;AACzE;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC,kCAAkC,0BAAS;AAC3C;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAuB;AACvC,2BAA2B,6BAAQ;AACnC;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAAuB;AACpE,2CAA2C,+BAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK,yBAAyB,0BAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAAuB;AACpE,2CAA2C,+BAAuB;AAClE;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qCAAqC,oCAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAe,uBAAuB,oCAAY;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAAY;AACjD;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA,YAAY,uCAAe,yBAAyB,oCAAY;AAChE;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAe,yBAAyB,oCAAY;AACnE;AACA;AACA;AACA;AACA,eAAe,uCAAe,6BAA6B,oCAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yCAAiC;AACrE;AACA;AACA,mBAAmB,yCAAiC;AACpD;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,SAAS;AACrF;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAK;AACnD,gDAAgD,yCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA,mCAAmC,8BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4IAA4I,6BAAQ,gDAAgD,6BAAQ;AAC5M,kDAAkD,wCAAgB;AAClE,2DAA2D,yBAAU;AACrE,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA,+CAA+C,2CAAmB;AAClE;AACA;AACA;AACA;AACA,+CAA+C,4CAAoB;AACnE;AACA;AACA,+DAA+D,yBAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA,+CAA+C,6CAAqB;AACpE;AACA;AACA;AACA,8CAA8C,mDAA2B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,2CAAmB;AACxF,+CAA+C,qDAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gCAAgC;AAClG,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gEAAgE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB,EAAE,qBAAqB;AACzF,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,wDAAwD;AACxD,wDAAwD;AACxD,mEAAmE;AACnE;AACA;AACA,aAAa,8CAAqB;AAClC,gBAAgB,8CAAqB;AACrC,kBAAkB,8CAAqB;AACvC;AACA;AACA,wBAAwB,8CAAqB;AAC7C,4BAA4B,8CAAqB;AACjD,oCAAoC,8CAAqB;AACzD;AACA;AACA,eAAe,iCAAgB;AAC/B,eAAe,gCAAgB;AAC/B,eAAe,mEAA6B;AAC5C;AACqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,YAAY;AACjD,qCAAqC,YAAY;AACjD,gDAAgD,YAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mFAAmF,+BAAuB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,mIAAmI,6BAAqB;AACxJ;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAK;AACxB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAgC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA,sCAAsC,+IAA+I;AACrL,sCAAsC,6IAA6I;AACnL,sCAAsC,wIAAwI;AAC9K,sCAAsC,sIAAsI;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAAU;AACpD;AACA;AACA;AACA,0CAA0C,4BAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4BAAU;AAChD;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA,+CAA+C,4BAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,6CAA6C,4BAAO;AACpD;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0BAAS;AAC1E,iCAAiC,+BAA+B;AAChE;AACA;;;;;;;;ACr4DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjED;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACgE;AACkB;AACZ;AACX;AACqB;AAC2B;AAC7C;AACkB;AAC/B;AAC6C;AACK;AACT;AACrB;AACkB;AAChC;AACqE;AACpC;AACjB;AACT;AAC+C;AAC5B;AACY;AACtF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,4HAA2B;AACjF;AACA;AACA;AACA,qEAAqE,4HAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4HAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gFAAe;AAC7C,6CAA6C,gFAAe;AAC5D,wCAAwC,yEAAY;AACpD;AACA,0CAA0C,gFAAe;AACzD,gCAAgC,oEAAO;AACvC,iCAAiC,oEAAO;AACxC,iCAAiC,oEAAO;AACxC;AACA;AACA;AACA;AACA,oEAAoE,yEAAS;AAC7E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,4EAAO;AACf,QAAQ,4EAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gFAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAc;AAC9B,oBAAoB,kFAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAgD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAuB;AACnC;AACA;AACA;AACA,6GAA6G,gGAAkB;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAAuB;AACvC;AACA;AACA,iBAAiB,2EAAuB;AACxC;AACA;AACA;AACA;AACA,oBAAoB,2EAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC,SAAS;AACT;AACA;AACA,QAAQ,2EAAU;AAClB,QAAQ,2EAAU;AAClB;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0HAA0H;AAC5J;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2FAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,sCAAsC,qEAAiB;AACvD,6BAA6B,mEAAY;AACzC,4BAA4B,8EAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAiB;AACpC;AACA;AACA,wCAAwC,0EAAe;AACvD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gCAAgC;AACnI;AACA;AACA;AACA,SAAS,QAAQ,+EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iCAAiC;AAC3G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uFAAoB,6BAA6B,uFAAoB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAA0D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,2FAAoB;AACnC,eAAe,sGAAiB;AAChC,eAAe,gGAAiB;AAChC,eAAe,+EAAW;AAC1B,eAAe,oGAAkB;AACjC,eAAe,6GAAqB;AACpC,eAAe,oGAAwB;AACvC,eAAe,sGAAmB;AAClC;AACwB;;;;;;;;ACzpBxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA,yDAAyD;AACzD;AACA;AACA;AACA,2GAA2G,EAAE;AAC7G;AACA;AACA;AACA;;AAEA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;AACA,kGAAkG,gCAAgC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uGAAuG;AAC7H;AACA,kCAAkC;AAClC,kBAAkB,uDAAuD;AACzE;AACA;AACA;AACA,sCAAsC,yBAAyB;AAC/D,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,mBAAmB,qBAAM,4BAA4B,qBAAM;AAC3D;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA,2BAA2B,iCAAiC;AAC5D;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA,wBAAwB;AACxB,uBAAuB;AACvB,yBAAyB;AACzB,wBAAwB;AACxB,yBAAyB;AACzB,yBAAyB;AACzB,0BAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,iEAAiE;AACjE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;AACA,aAAa;AACb;AACA;;AAEA;AACA,sBAAsB;AACtB,mCAAmC,OAAO;AAC1C,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,iCAAiC;AACjC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,qCAAqC;AACrC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,iCAAiC;AACjC,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,qCAAqC;AACrC,MAAM;AACN;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB,GAAG;AACzB;;AAEA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;;AAEA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA,2BAA2B;AAC3B,8BAA8B,YAAY;AAC1C,wEAAwE,YAAY;AACpF;AACA;AACA,sBAAsB;AACtB,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/hBa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;;;;;;;;;;;;AC5FA;AACA;AACA;AACA;AACwC;AACjC;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B,IAAI,iCAAiC;AAC/G;AACA;AACA;AACA,oCAAoC,0DAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B,KAAK,iCAAiC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAG,GAAG,SAAS;AACnC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;;;;;;;;ACnF/B;AACA;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,iCAA0B,CAAC,0BAAY,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,MAAM,KAAK,EAIN;AACL,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA,+CAA+C,iDAAiD;AAChG,kBAAkB;AAClB,+CAA+C,WAAW;AAC1D;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC5CY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,mBAAO,CAAC,KAAU;AAC9B;AACA,kBAAe;AACf;;;;;;;;ACLa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,KAAU;AACnC;AACA,kBAAe;AACf;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,2BAA2B;AAC7C,iBAAiB,0BAA0B;AAC3C,kBAAkB,2BAA2B;AAC7C;AACA;AACA,iBAAiB,qDAAqD;AACtE,kBAAkB,WAAW;AAC7B,gBAAgB,WAAW;AAC3B,eAAe;AACf,oBAAoB;AACpB;AACA;AACA,gBAAgB;AAChB;;;;;;;ACzBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACoC;AAChB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA;AACA,IAAI,wDAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACkE;AACY;AACqB;AACf;AACM;AAC/B;AAC6B;AACN;AACT;AACiB;AACxB;AACyC;AAC1B;AAC1B;AAC5B;AAC3B,wHAAwH,4BAAU;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0CAAiB;AAC9D,6CAA6C,0CAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,0BAAa;AAC5B,eAAe,oCAAkB;AACjC,eAAe,2CAAqB;AACpC,eAAe,gDAAwB;AACvC,eAAe,mEAA6B;AAC5C;AAC2C;AAC3C,uDAA0B;AAC1B;AACA;AACA,4GAA4G,4BAAU;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4BAAO;AACnD;AACA;AACA,sFAAsF,8DAAgC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB,4CAA4C,sBAAc;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,8GAA8G,gEAA4B;AAC1I;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,iDAAoB;AACjE;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAqB;AACpC,eAAe,0BAAa;AAC5B,eAAe,oCAAkB;AACjC,eAAe,gDAAwB;AACvC,eAAe,mEAA6B;AAC5C;AACuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACvQA;AACA;AACA;AACA;AACyG;AAChD;AAC0B;AACV;AACgB;AAC9D;AACpB,+CAA+C,sCAAa;AACnE;AACA;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B,+BAA+B,wBAAQ,GAAG,+EAA+E;AACzH,aAAa;AACb;AACA;AACA,kBAAkB,IAAI,sBAAM,iBAAiB;AAC7C;AACA;AACA,6BAA6B,yBAAS;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA,wCAAwC,qCAAY;AACpD;AACA;AACA;AACA,mBAAmB,wBAAQ;AAC3B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,yBAAS;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA,mDAAmD,qCAAY;AAC/D;AACA;AACA;AACA,mBAAmB,wBAAQ;AAC3B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,yBAAS;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,+BAA+B;AAC7C;AACA;AACA,iDAAoB;AACpB,iDAAoB;AACpB,mCAAe;;;;;;;;;;;;;;;;;ACtF8D;AACpB;AAClD,0BAA0B,qFAAkB;AACnD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,qFAAkB;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AClEA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACrGD;AACA;AACA;AACA;AACwD;AACI;AACK;AACD;AACI;AACU;AACvE,wBAAwB,iGAAe;AACvC;AACP;AACA;AACA,yCAAyC,oEAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oFAAmB;AACnC;AACA;AACA;AACA;AACA,gBAAgB,KAAK;AACrB;AACA;AACA,2BAA2B,2EAAU;AACrC;AACA;AACA;AACA,oBAAoB,gFAAY;AAChC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;;;;;;;;;AC/ElD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,YAAY;AACtC,sDAAsD,KAAK;AAC3D,sDAAsD,KAAK,mBAAmB,KAAK;AACnF,eAAe,UAAU,YAAY,4CAA4C,eAAe,KAAK,uBAAuB,eAAe,IAAI,iBAAiB,KAAK;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,KAAK;AAC9D,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,KAAK,IAAI;AACzD;AACA,2CAA2C,MAAM,KAAK,KAAK,KAAK,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA,2CAA2C,OAAO,KAAK,IAAI;AAC3D;AACA;AACA,2CAA2C,OAAO,IAAI,IAAI;AAC1D;AACA;AACA;AACA,+CAA+C,OAAO,KAAK,IAAI;AAC/D;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC9FA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;ACpGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAyE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAyE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACvGA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AAChD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC0C;AACkB;AACK;AAC0B;AACf;AACqB;AACd;AAClB;AACsF;AACnE;AAC9B;AACmB;AACJ;AACH;AACsB;AACd;AAC+B;AAC5C;AACA;AACD;AAC5D,YAAY,uCAAuC;AACnD,YAAY,wBAAwB;AACpC,iCAAiC,+FAAa;AACvC;AACP;AACA;AACA;AACA;AACA,WAAW,sEAAK;AAChB;AACA,6BAA6B,uFAAyB;AACtD,KAAK,GAAG,6EAAsB;AAC9B;AACA,4BAA4B,uEAAW;AACvC;AACA;AACA;AACA,mBAAmB,uEAAW;AAC9B,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,sEAAK;AAChB;AACA,mBAAmB,mFAAsB;AACzC,SAAS;AACT,mBAAmB,4EAAK;AACxB,SAAS;AACT;AACA,6BAA6B,uFAAyB;AACtD,KAAK,uBAAuB,uEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wFAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kEAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4BAA4B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wEAAO;AACtB,+BAA+B,uEAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kFAAqB;AAC/C,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAA+B;AAC/B,iDAAiD,oGAAwB;AACzE,mHAAmH,qFAAiB;AACpI;AACA,CAAC;AACD;AACA;AACA,4BAA4B,gFAAe;AAC3C;AACA;AACA,sCAAsC,uEAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H;AAC7H;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kEAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK,IAAI,YAAY,IAAI,cAAc,KAAK,mBAAmB,OAAO,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK,IAAI,YAAY,IAAI,cAAc,KAAK,mBAAmB,OAAO,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,uEAAO,8KAA8K,uEAAO,uBAAuB;AAC1T;AACA,6BAA6B;AAC7B;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uJAAuJ,uEAAO;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uEAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,iFAAiF,uEAAO;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4CAA4C;AAC5C;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,+EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iGAA6B;AAClE,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uEAAW;AACnD;AACA;AACA,eAAe,+FAAkB;AACjC;AACA,4GAA4G,2EAAU;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oGAAkB;AACjC,eAAe,oGAAwB;AACvC,eAAe,+FAAkB;AACjC;AACuC;AACvC,4CAA4C,gFAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,qFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,qFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yCAAyC,gFAAY;AACrD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,qFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B,8GAA8G;AACxI,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB;;;;;;;;;;;;;;;AChxBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC6G;AACjC;AACoB;AACjD;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B,yBAAyB,oEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,4EAAY,iBAAiB,qCAAqC;AACpG;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA,aAAa,wEAAQ,OAAO,wEAAQ;AACpC;AACA,+DAA+D,8EAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA,YAAY,2EAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2EAAW;AAC/B;AACA;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA,wBAAwB,2EAAW;AACnC;AACA;AACA,wBAAwB,wEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAW;AAC1C;AACA;AACA;AACA,yBAAyB,wEAAQ,OAAO,wEAAQ;AAChD;AACA,8CAA8C,8EAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC;AACA;AACA,wBAAwB,wEAAY;AACpC,wBAAwB,2EAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACO;;;;;;;;AC9WlB;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACjIY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,KAAiC;AAC5D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C;AACA,gBAAgB,UAAU,QAAQ,mEAAmE,GAAG,MAAM,GAAG;AACjH,eAAe,UAAU,QAAQ,wBAAwB,KAAK,EAAE,OAAO,GAAG;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA,uDAAuD,KAAK;AAC5D;AACA,4BAA4B,MAAM;AAClC;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,uCAAuC,EAAE,EAAE,GAAG;AAC9C,kDAAkD,KAAK,GAAG,EAAE;AAC5D;AACA;AACA,sDAAsD,MAAM,kCAAkC,MAAM;AACpG;AACA,mDAAmD,QAAQ,GAAG,KAAK;AACnE,sDAAsD,QAAQ,GAAG,KAAK;AACtE;AACA;AACA,iBAAiB;AACjB,8CAA8C,QAAQ,GAAG,KAAK,MAAM,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA,oDAAoD,EAAE,EAAE,GAAG,qCAAqC,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,oCAAoC,IAAI,GAAG,KAAK,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE;AACtL;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACc;AACP;AACuB;AACd;AACN;AAC7B;AACkB;AACsB;AACuB;AACnG,iCAAiC,wFAAsB;AACvD;AACA;AACA;AACA;AACA,iBAAiB,gFAAiB;AAClC;AACA;AACA;AACA,CAAC;AACD,mCAAmC,2EAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAK;AAC5B;AACA;AACA,4BAA4B,mDAAK;AACjC;AACA,qCAAqC,yEAAS,kBAAkB,sEAAO;AACvE;AACA;AACA,2CAA2C,WAAW;AACtD,0CAA0C,4BAA4B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iFAAyB,eAAe,qEAAa;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAwE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2EAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+CAA+C,kFAAiB;AAChE,kCAAkC,kFAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kFAAiB;AACnD,0BAA0B,iEAAK;AAC/B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4GAAqB;AACpC;AACiC;;;;;;;;ACpIjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;ACvMmC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,kDAAuB;AACQ;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,MAAM,KAAK,EAAE,EAIV,CAAC;AACJ,WAAW,qGAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AAIC;;;;;;;;;;AC1GF;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB,GAAG,WAAW;AACjL,eAAe,mBAAO,CAAC,KAAQ;AAC/B,iBAAiB,mBAAO,CAAC,KAAuB;AAChD,wBAAwB,mBAAO,CAAC,KAA8B;AAC9D,yBAAyB,mBAAO,CAAC,KAAkC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,kBAAkB;AAClB,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe;AACf,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,yBAAyB,mBAAO,CAAC,KAA4B;AAC7D,mDAAkD,EAAE,qCAAqC,sCAAsC,EAAC;AAChI,kBAAkB,mBAAO,CAAC,KAAqB;AAC/C,mDAAkD,EAAE,qCAAqC,+BAA+B,EAAC;AACzH;;;;;;;ACjDA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,UAAU;AACrB;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,UAAU;AACrB;AACA;AACA,SAAiB;AACjB;AACA;;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;ACxBD,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;AC1Ba;AACb,kBAAkB,mBAAO,CAAC,KAAoC;AAC9D,aAAa,mBAAO,CAAC,KAA+B;AACpD,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,cAAc,oCAA8C;AAC5D,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACpBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACpDA,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;ACzBa;AACb;AACA;AACA;AACA,WAAW;AACX;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AAC2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,YAAY,mFAA4B,eAAe,+EAAwB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,+EAAwB;AACrD;AACA;AACA,8BAA8B,+EAAwB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+EAAwB;AACrD;AACA;AACA;AACA,8BAA8B,+EAAwB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;;;;;;;AC5Ga;;AAEb,YAAY,mBAAO,CAAC,KAAS;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;;AAExE;AACA,wCAAwC;;AAExC;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;;AAEA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,mCAAmC,QAAQ;AAC3C;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,wBAAwB;AACxB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;ACvQa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,kBAAkB,GAAG,4BAA4B;AACnE,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,mBAAmB,mBAAO,CAAC,KAAY;AACvC,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,mBAAmB,mBAAO,CAAC,KAAY;AACvC,mBAAmB,mBAAO,CAAC,KAAY;AACvC,kBAAkB,mBAAO,CAAC,KAAW;AACrC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,iBAAiB,mBAAO,CAAC,KAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B,4CAA4C;AACxE;AACA,mDAAmD,qBAAqB,IAAI,uBAAuB;AACnG,qDAAqD,EAAE,4BAA4B;AACnF;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD,qBAAqB,IAAI,wBAAwB;AACpG;AACA;AACA;AACA,8BAA8B,EAAE,6BAA6B,OAAO,2BAA2B,IAAI,mCAAmC,IAAI,yBAAyB,GAAG,qBAAqB,EAAE,wCAAwC,+BAA+B,GAAG,mBAAmB,GAAG;AAC7R;AACA;AACA;AACA,kEAAkE,uBAAuB,GAAG,6BAA6B;AACzH,gEAAgE,uBAAuB,GAAG,2BAA2B;AACrH,wEAAwE,uBAAuB,GAAG,mCAAmC;AACrI,8DAA8D,uBAAuB,GAAG,yBAAyB;AACjH;AACA,wEAAwE,uBAAuB,GAAG,+BAA+B;AACjI,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE,KAAK;AACL;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,8DAA8D,aAAa;AAC3E,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G,+BAA+B,aAAa,qDAAqD,aAAa;AAC9G;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW,MAAM,uBAAuB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA,sEAAsE,cAAc;AACpF;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAA6C;AACvE;AACA;AACA,qCAAqC,qBAAqB,cAAc,IAAI;AAC5E;AACA;AACA,iDAAiD,cAAc;AAC/D,kDAAkD,qBAAqB;AACvE,qCAAqC,qBAAqB,iBAAiB,IAAI,IAAI,WAAW,IAAI,SAAS;AAC3G;AACA;AACA;AACA,YAAY,sDAAsD;AAClE;AACA;AACA,mCAAmC,wBAAwB,wFAAwF,gBAAgB,GAAG,wBAAwB;AAC9L;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA,uCAAuC,UAAU;AACjD;AACA,uCAAuC,UAAU;AACjD;AACA;AACA,YAAY,2CAA2C;AACvD,YAAY,QAAQ;AACpB;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB,MAAM,eAAe;AACpF;AACA;AACA;AACA,YAAY,qBAAqB,aAAa,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE,4BAA4B,uBAAuB;AAC/F;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,sDAAsD,eAAe,iBAAiB,QAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS,gBAAgB,+BAA+B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,sCAAsC,YAAY,oBAAoB,kDAAkD;AACxH;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC;AACnD,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iGAAiG;AAC5I;AACA;AACA;AACA;AACA;AACA,4EAA4E,yBAAyB,GAAG;AACxG,4CAA4C,kBAAkB,GAAG,WAAW;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,KAAK,EAAE,qEAAqE;AACnH,uCAAuC,MAAM,KAAK,KAAK;AACvD;AACA;AACA;AACA;AACA,gCAAgC,aAAa,EAAE,IAAI,8BAA8B,UAAU;AAC3F;AACA;AACA,eAAe;AACf;;;;;;;;;;;;;;;;;;ACvgBA;AACA;AACA;AACA;AAC8E;AACC;AACxE;AACP;AACA,4BAA4B,uFAAgB;AAC5C,4BAA4B,uFAAgB;AAC5C;AACA;AACA;AACA;AACA,4BAA4B,uFAAgB;AAC5C,0BAA0B,uFAAgB;AAC1C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,yCAAyC,uFAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uFAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2FAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC7IA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9CA,WAAW,mBAAO,CAAC,KAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAc;AACtC,UAAU,mBAAO,CAAC,KAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrFD;AACA;AACA;AACA;AACA;AACoC;AAC7B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAgB;AACtC,8BAA8B,yDAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAA8B;AAC3D;AACA;AACA;AACA;AACA,IAAI,uDAAY,GAAG,+CAA+C,OAAO,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACA;AACA;AACA;;;;;;;;ACjKP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA,gDAAgD,KAAK,UAAU,OAAO;AACtE;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;ACXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,4BAA4B,GAAG,aAAa;AACzE,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAS;AAChC,aAAa;AACb,gBAAgB,UAAU,6BAA6B;AACvD;AACA,+CAA+C,cAAc,EAAE,MAAM,gBAAgB,UAAU;AAC/F,KAAK;AACL,eAAe,UAAU,8CAA8C,wBAAwB,YAAY,SAAS;AACpH,uBAAuB,gBAAgB;AACvC,iBAAiB,UAAU;AAC3B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uCAAuC,aAAa,MAAM,iDAAiD;AAC3G;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA,2CAA2C,2BAA2B;AACtE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,kBAAe;AACf;;;;;;;ACpFA,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,QAAQ,OAAO,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,+BAA+B;AAC7E;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yCAAyC,SAAS;;AAElD;AACA;;AAEA;AACA;AACA;;AAE4b;;;AC7I5b,SAAS,0BAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA,SAAS,mBAAO;AAChB;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA,SAAS,yBAAc;AACvB,kBAAkB,sBAAsB;AACxC;;AAEA;AACA,MAAM,mBAAO;AACb,QAAQ,0BAAe;AACvB,OAAO;AACP,MAAM;AACN;AACA,MAAM;AACN,MAAM,mBAAO;AACb;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA,2EAA2E,eAAe;AAC1F;AACA;;AAEA;AACA,iFAAiF,eAAe;AAChG;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,0BAAc;AACvB;AACA;;AAEA;AACA;AACA;AACA,YAAY,0BAAc;AAC1B,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,yBAAc,CAAC,yBAAc,GAAG;AAClD;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,gDAAe,KAAK,EAAC;;;AChMrB;AACA;AACA;AACA;AACA;;AAEA,8CAAe,MAAM,EAAC;;;ACNtB,SAAS,WAAK;AACd;AACA;;AAEA,wEAAwE,aAAa;AACrF;AACA;;AAEA;AACA,iFAAiF,eAAe;AAChG;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gDAAe,WAAK,EAAC;;;AClBrB,SAAS,iBAAQ;AACjB,WAAW;AACX;;AAEA,mDAAe,iBAAQ,EAAC;;;ACJc;AACM;;AAE5C;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;;AAEA;AACA,eAAe,uBAAY;AAC3B,OAAO,cAAQ,UAAU,uBAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA,eAAe,wBAAa;AAC5B;;AAEA,SAAS,qBAAU;AACnB;AACA;;AAEA,IAAI,wBAAa;AACjB;AACA;AACA;AACA,wIAAwI,QAAQ,qBAAqB,kCAAkC,SAAS,aAAa;AAC7N;AACA,IAAI,uBAAY,GAAG,WAAK,CAAC,qBAAU,EAAE,wBAAa;AAClD,IAAI,qBAAU;AACd;AACA;;AAEA,kDAAe,qBAAU,EAAC;AACa;;;ACjDvC,IAAI,eAAO;AACX,qEAAqE,aAAa;AAClF;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,kDAAe,eAAO,EAAC;;;ACZoE;;AAE3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,cAAc,CAAC,cAAc,GAAG;AACzC;;AAEA,8CAAe,KAAK,EAAC;;;ACbrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA,yDAAe,cAAc,EAAC;AACC;;;ACpBiH;AAChH;AACU;AACM;AACN;AACA;AACc;;AAExD;;AAEA,oBAAoB,WAAK;AACzB,UAAU,SAAQ;AAClB;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;;;AAGA,SAAS,aAAM;AACf,2BAA2B,aAAU;AACrC;AACA,eAAe,wBAAwB;;AAEvC;AACA;AACA,cAAc,SAAK;AACnB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,YAAY,SAAS;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,aAAa,oBAAc;AAC3B;;AAEA;AACA;AACA;AACA,aAAa,oBAAc;AAC3B;;AAEA,IAAI,aAAO;AACX;;AAEA,SAAS,oBAAc;AACvB;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD,IAAI,aAAM;AACV,UAAU,aAAM;AAChB;AACA;AACA;;AAEA,8CAAe,aAAM,EAAC;;;AC3LiB;AACK;;;;;ACDlB;;AAE1B;AACA;AACA,WAAW,yDAAS;;AAEpB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEmB;AAOlB;;;ACjC0C;AACe;AACwD;;AAElH;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,6DAA6D;AAC/I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAQ;AAC/B,YAAY,gBAAgB;AAC5B,4CAA4C;AAC5C;AACA;AACA,KAAK;AACL,GAAG;AACH,yBAAyB,4BAAQ;AACjC,+CAA+C;AAC/C,GAAG;AACH,WAAW;AACX;;AAEA;AACA,oBAAoB,8BAAU,CAAC,SAAM;AACrC,uBAAuB,uBAAG;AAC1B;AACA,EAAE,6BAAS;AACX;AACA;AACA,cAAc,SAAM;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kFAAkF,6DAA6D;AAC/I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mCAAe;AACrC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB;AACxB,KAAK;AACL;AACA;AACA,wBAAwB;AACxB,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA,yBAAyB,8BAAU;AACnC,YAAY,kCAAkC;AAC9C,YAAY,YAAY;AACxB,YAAY,mBAAmB;AAC/B,0BAA0B,4BAAQ;AAClC,YAAY,+BAA+B;AAC3C,IAAI,+BAAW;AACf;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA,QAAQ;AACR;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,WAAW,qBAAC;AACZ;AACA;AACA;AACA,OAAO;AACP;AACA,0BAA0B,qBAAC;AAC3B;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,QAAQ,qBAAC;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD,qBAAqB,MAAM;AAC3B,oBAAoB,8BAAU;AAC9B,EAAE,6BAAS;AACX,iBAAiB,yBAAK;AACtB;AACA;AACA;AACA,UAAU,4BAAQ;AAClB;AACA;AACA,OAAO;AACP,QAAQ;AACR;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,wBAAwB,MAAM;AAC9B,2BAA2B,uBAAG;AAC9B,eAAe,yBAAK;AACpB;AACA,MAAM,4BAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,8EAA8E,6DAA6D;AAC3I;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mCAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB;AACxB,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA,yBAAyB,8BAAU;AACnC,YAAY,kCAAkC;AAC9C,YAAY,gBAAgB;AAC5B,8BAA8B,4BAAQ;AACtC,YAAY,+BAA+B;AAC3C,IAAI,+BAAW;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAK;AACT;AACA;AACA;AACA;AACA,OAAO;AACP,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,YAAY,mFAAmF;AAC/F,WAAW,qBAAC;AACZ;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,qBAAC;AAC/B;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,QAAQ,qBAAC;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD,yBAAyB,MAAM;AAC/B,wBAAwB,8BAAU;AAClC,EAAE,6BAAS;AACX,iBAAiB,yBAAK;AACtB;AACA;AACA;AACA,UAAU,4BAAQ;AAClB;AACA;AACA,OAAO;AACP,QAAQ;AACR;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW;AACX;;AAEA,SAAS,UAAO;AAChB;AACA;AACA;AACA;AACA;AACA;;AAE8J;;;;;;;;AC/jB9J;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;;AAEb;AACA,oBAAoB,mBAAO,CAAC,KAAS;;AAErC,WAAW,aAAa;AACxB;AACA,yCAAyC;AACzC,qCAAqC;AACrC,8CAA8C;AAC9C,0CAA0C;;AAE1C;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACnFY;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;ACnEA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kBAAkB;AAClB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC5GY;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,UAAU,gCAAuC;AACjD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;AACzD,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;ACrBa;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,oBAAoB,mBAAO,CAAC,KAAiB;AAC7C,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AAC0E;AACX;AACsB;AAC1B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,KAAK;AAC/D;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qBAAqB,+DAAS;AAC9B;AACA;AACA,qBAAqB,+DAAS;AAC9B;AACA,uHAAuH,8EAAiB;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,+DAAS;AACtE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4DAAU,SAAS,8EAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gFAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA,qBAAqB,+DAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,8BAA8B,+DAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,8EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,sBAAsB,iEAAW;AACjC;AACA;AACA;AACA,8BAA8B,wEAAkB,CAAC,+DAAS;AAC1D;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAa;AAC/C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACjeA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AAC0F;AACnF,sBAAsB,0GAAe;;;;;;;;;ACL/B;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,cAAc,mBAAO,CAAC,KAAiB;AACvC;AACA,kBAAe;AACf;;;;;;;ACNA,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChCY;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;AC7Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA2B;AACpD,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,qBAAqB,8BAAgD;AACrE,aAAa,mBAAO,CAAC,KAA+B;AACpD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,wBAAwB,mBAAO,CAAC,KAAkC;AAClE,8BAA8B,mBAAO,CAAC,KAAwC;AAC9E,4BAA4B,mBAAO,CAAC,KAAsC;AAC1E,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,wEAAwE,IAAI;AAChF;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;AC1ED;AACA;AACA;AACA;AAC+C;AAC/C;AACA,kBAAkB,YAAY;AAC9B,sBAAsB;AACtB,uBAAuB,mBAAmB;AAC1C,CAAC;AACD;AACA,sCAAsC,0DAAI;AAC1C,wCAAwC,0DAAI;AAC5C;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAgB;AAC7B;AACA;AACA,CAAC;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACgC;AACuB;AACW;AACgB;AACtB;AACrD,+BAA+B,2EAAU;AAChD;AACA;AACA;AACA;AACA,YAAY,qEAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2EAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,uBAAuB,iFAAyB;AAChD;AACA,SAAS;AACT,uBAAuB,iFAAyB;AAChD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;;;;;;;;ACtE1B,eAAe,mBAAO,CAAC,KAAmB;AAC1C,mBAAmB,mBAAO,CAAC,KAAuB;AAClD,QAAQ,MAAM;AACd,cAAc,mBAAO,CAAC,KAAkB;AACxC,kBAAkB,mBAAO,CAAC,KAAwB;AAClD,WAAW,mBAAO,CAAC,KAAiB;AACpC,WAAW,mBAAO,CAAC,KAAiB;AACpC,YAAY,mBAAO,CAAC,KAAkB;AACtC,YAAY,mBAAO,CAAC,KAAkB;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AAC4D;AACQ;AACxB;AACE;AACF;AACE;AACvC;AACP;AACA;AACO;AACP,uBAAuB,+EAAuB;AAC9C;AACA;AACA;AACA;AACA,uBAAuB,mEAAiB;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAuB;AACrD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,mEAAiB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,mEAAiB;AACxC,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uBAAuB,oEAAY;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAkB;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sBAAsB,oEAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAkB;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,0BAA0B,oEAAY;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA,YAAY,mEAAW;AACvB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,UAAU;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,SAAS;AACT;AACA;AACA,8BAA8B,mEAAiB;AAC/C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,SAAS;AACT;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wDAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA,0BAA0B,sDAAK;AAC/B,kBAAkB;AAClB,aAAa;AACb;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,uBAAuB,+EAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAiB;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;;;;;ACl1BA;AACA;AACA;AACA;AACsD;AACtD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpIA;AACA;AACA;AACA;AAC+E;AACH;AACO;AACV;AACuG;AACtI;AAC4C;AACc;AACnC;AACH;AAC9D;AACA,WAAW,iCAAc,OAAO,8CAAsB,mCAAmC,0CAAsB;AAC/G;AACA;AACA;AACA,wBAAwB,QAAQ,YAAY;AAC5C;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC,SAAS;AACT;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA,gBAAgB,oBAAY;AAC5B,gBAAgB,oBAAY;AAC5B,gBAAgB,oBAAY;AAC5B;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA,8GAA8G,qCAAuB;AACrI;AACA,2BAA2B,gDAAoB;AAC/C;AACA;AACA;AACO,6BAA6B,qCAAY;AAChD;AACA;AACA,gBAAgB,oCAAiB;AACjC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB;AAC1F;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4DAA4D,oBAAY,2FAA2F,qCAAuB;AAC1L;AACA;AACO,gCAAgC,sCAAa;AACpD;AACA;AACA,gBAAgB,sCAAmB;AACnC,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB;AAC1F;AACA;AACA,yBAAyB,mCAAmC;AAC5D;AACA,SAAS;AACT;AACA;AACA,qBAAqB,mCAAqB;AAC1C,kBAAkB,wCAAgB;AAClC;AACA,SAAS;AACT;AACA;AACA,kBAAkB,oBAAY,yFAAyF,EAAE;AACzH,kBAAkB,oBAAY,qEAAqE,EAAE;AACrG;AACA,kBAAkB,oBAAY;AAC9B,kBAAkB,oBAAY;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,6BAA6B,qCAAY;AAChD;AACA;AACA,gBAAgB,oCAAiB;AACjC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB;AAC1F;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,iCAAc,KAAK,0CAAiB,yCAAyC,4BAAc;AACjH,aAAa;AACb;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA,SAAS;AACT;AACA;AACA,qBAAqB,mCAAqB;AAC1C,kBAAkB,4BAAc;AAChC;AACA,SAAS;AACT;AACA;AACA,kBAAkB,oBAAY,uFAAuF,EAAE;AACvH,kBAAkB,oBAAY,mEAAmE,EAAE;AACnG;AACA,kBAAkB,oBAAY;AAC9B,kBAAkB,oBAAY;AAC9B,qBAAqB,4BAAc,4CAA4C,wCAAgB;AAC/F;AACA,SAAS,cAAc,qCAAuB;AAC9C;AACA;AACO,2BAA2B,qCAAY;AAC9C;AACA;AACA,gBAAgB,wCAAqB;AACrC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB;AAC1F;AACA;AACA;AACA,sBAAsB,iCAAc,KAAK,0CAAiB,yCAAyC,4BAAc;AACjH,aAAa;AACb;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA,SAAS;AACT;AACA;AACA,qBAAqB,mCAAqB;AAC1C,kBAAkB,4BAAc;AAChC;AACA,SAAS;AACT;AACA;AACA,kBAAkB,oBAAY,uFAAuF,EAAE;AACvH,kBAAkB,oBAAY,mEAAmE,EAAE;AACnG;AACA,kBAAkB,oBAAY;AAC9B,kBAAkB,oBAAY;AAC9B,qBAAqB,4BAAc,0CAA0C,wCAAgB;AAC7F;AACA;AACA,SAAS,cAAc,qCAAuB;AAC9C;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA,gBAAgB,2CAAwB;AACxC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,yCAAyC,4BAAc;AACrH;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,4DAA4D,oBAAY,kFAAkF,SAAS,4BAAc,oDAAoD,iDAAiD,qCAAuB;AAC7S;AACA;AACO,2BAA2B,qCAAY;AAC9C;AACA;AACA,gBAAgB,kCAAe;AAC/B,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,yCAAyC,4BAAc;AACrH,SAAS;AACT;AACA;AACA,4DAA4D,oBAAY,yDAAyD,SAAS,4BAAc,2CAA2C,iDAAiD,qCAAuB;AAC3Q;AACA;AACO,4BAA4B,qCAAY;AAC/C;AACA;AACA,gBAAgB,mCAAgB;AAChC,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,yCAAyC,4BAAc;AACrH;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,4DAA4D,oBAAY;AACxE,qBAAqB,4BAAc;AACnC;AACA,SAAS,iDAAiD,qCAAuB;AACjF;AACA;;;;;;;;;ACrOA;AACA;AACA;AACA;AAC+H;AAC7B;AAC4D;AAC7F;AACV;AACb;AACsD;AACpB;AAC5E,uDAA0B,CAAC,gDAAoB,KAAK,gDAAoB;AACxE,uDAA0B,CAAC,sCAAe,KAAK,sCAAe;AAC9D,iDAAoB,CAAC,cAAc;AACnC,iDAAoB,CAAC,cAAc;AACnC,iDAAoB,CAAC,YAAY;AACjC,iDAAoB,CAAC,qBAAqB;AAC1C,iDAAoB,CAAC,aAAa;AAClC,iDAAoB,CAAC,YAAY;AACjC,kDAAqB,KAAK,iBAAiB;AAC3C,wBAAQ,IAAI,wCAAU;AACtB,OAAO,6DAA2B;AAClC;AACA;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA,SAAS;AACT;AACA,CAAC;AACD,wBAAQ,IAAI,wCAAU;AACtB,OAAO,6DAA2B;AAClC;AACA;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA,SAAS;AACT;AACA,CAAC;;;;;;;;;AC1CY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,UAAU,mBAAO,CAAC,KAAkB;;AAEpC;;AAEA;AACA;AACA;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,kDAAuB;AACK;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;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;AACA;AACA;AACA,GAAG;AACH;AAIE;;;;;;;;;AC/EW;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,YAAY,mBAAO,CAAC,KAAwB;AAC5C,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,kFAAkF;AACtF;AACA,CAAC;;;;;;;;;;ACTY;AACb,6BAA6C,EAAE,aAAa,CAAC;AAC7D;AACA;AACA,SAAe;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACe;AACR;AACW;AACD;AACf;AAC0C;AACrE;AACkD;AACxB;AACV;AAC4C;AACI;AACK;AACT;AACM;AAChG,qEAAqE,2EAAU;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gFAAY;AACnC;AACA;AACA,uBAAuB,gFAAY;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,kEAAK;AAC5B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6EAA6E,QAAQ;AACrF;AACA;AACA,uBAAuB,mDAAK;AAC5B,yCAAyC,8EAAM;AAC/C;AACA,SAAS;AACT;AACA,uBAAuB,iFAAyB,eAAe,qEAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kFAA0B;AACtD,yBAAyB;AACzB,aAAa;AACb;AACA,4DAA4D,2EAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,uGAAmB;AAClC,eAAe,oGAAkB;AACjC,eAAe,mGAAkB;AACjC;AACA,gEAAgE,2EAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kFAAiB;AAClE,uBAAuB,kEAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yDAAyD;AAC7G;AACA;AACA,gBAAgB,qFAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2DAAQ,yCAAyC,EAAE,KAAK,EAAE,eAAe,qFAAc;AACzH;AACA;AACA;AACA;AACA,sCAAsC,8EAA2B;AACjE;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,aAAa;AACb;AACA;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA;AACA;AACA,kCAAkC,2DAAQ,sCAAsC,EAAE,KAAK,EAAE,eAAe,qFAAc;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6GAAqB;AACpC,eAAe,4FAAgB;AAC/B,eAAe,0GAAoB;AACnC;AACiC;;;;;;;;;;;;;;;;;AC9MjC;AACA;AACA;AACA;AACiD;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAS;AACxB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACjFA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAwB;AACpC;AACA;AACA,YAAY,mEAAwB,qBAAqB,mEAAwB;AACjF;AACA;AACA,YAAY,mEAAwB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B,sDAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDxB;AACA;AACA;AACA;AACyD;AACE;AACE;AACQ;AACP;AACvB;AACvC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,oEAAa;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,aAAa,uDAAY,sGAAsG;AAC/N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,0BAA0B,2EAAoB;AAC9C,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iBAAiB;AACjB;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iBAAiB;AACjB;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAY;AAC9C,iBAAiB;AACjB;AACA;AACA,4DAA4D,IAAI;AAChE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAY;AAChD,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gHAAgH;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY,iGAAiG,EAAE,GAAG,2EAAoB;AAC1J,oBAAoB,uDAAY,iGAAiG,EAAE,GAAG,2EAAoB;AAC1J,oBAAoB,uDAAY;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY,0FAA0F,GAAG,gDAAgD,GAAG;AACjM,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY,sGAAsG,GAAG;AAC1J,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0IAA0I,qBAAqB,uDAAY,yQAAyQ;AACpb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAAoB;AACpC;AACA;AACA;AACA;AACA;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,mCAAmC,uDAAY,4DAA4D,uDAAY,oDAAoD,uDAAY;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iBAAiB;AACjB;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iBAAiB;AACjB;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,iBAAiB;AACjB,aAAa;AACb;AACA,iCAAiC,uDAAY,kRAAkR,EAAE;AACjU,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,8DAA8D;AAChI;AACA;AACA;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B,uDAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uDAAY;AACzD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,qEAAc;AAC/B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,iBAAiB,qEAAc;AAC/B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sFAAqB;AAC1C,gDAAgD,sFAAqB;AACrE;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY,wGAAwG,GAAG;AAC5J,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,aAAa;AACb;AACA;AACA,oCAAoC,uDAAY;AAChD,aAAa;AACb;AACA;AACA,oCAAoC,uDAAY;AAChD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,aAAa;AACb;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C;AACA,iBAAiB;AACjB,iCAAiC,uDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,aAAa;AACb;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAY;AAChC,oBAAoB,uDAAY;AAChC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,2EAAoB,8BAA8B,uEAAgB;AACnF;AACA,eAAe,2EAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP,6KAA6K,qBAAqB,uDAAY,2JAA2J,oFAAoF;AAC7b;AACA;AACA;AACA,YAAY,uDAAY;AACxB;AACA;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL;AACA;AACA,qBAAqB,uDAAY;AACjC;AACA,KAAK;AACL,4FAA4F,uDAAY;AACxG;AACA;AACA,qBAAqB,uDAAY;AACjC;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA,uHAAuH,aAAa,uDAAY,0IAA0I;AAC1R,mGAAmG,aAAa,uDAAY,6DAA6D;AACzL,8HAA8H,aAAa,uDAAY,kEAAkE;AACzN;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL,wHAAwH,aAAa,uDAAY,gHAAgH;AACjQ;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL,yHAAyH,aAAa,uDAAY,qGAAqG;AACvP;AACA;AACA,yJAAyJ,aAAa,uDAAY,6GAA6G;AAC/R,mPAAmP,aAAa,uDAAY,2DAA2D;AACvU;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL,+OAA+O,aAAa,uDAAY,+CAA+C;AACvT,4LAA4L,aAAa,uDAAY,qNAAqN;AAC1a;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL,2JAA2J,qBAAqB,uDAAY,mGAAmG;AAC/R;AACA;AACA;AACA,4GAA4G,aAAa,uDAAY,kGAAkG;AACvO;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,4JAA4J,qBAAqB,uDAAY,8EAA8E;AAC3Q;AACA;AACA,gGAAgG,aAAa,uDAAY,sEAAsE;AAC/L;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL,2HAA2H,aAAa,uDAAY,qFAAqF;AACzO,iJAAiJ,aAAa,uDAAY,mGAAmG;AAC7Q;AACA,MAAM,aAAa,uDAAY,8MAA8M;AAC7O,6JAA6J,aAAa,uDAAY,6HAA6H;AACnT,mIAAmI,aAAa,uDAAY,6CAA6C;AACzM;AACA;AACA;AACA;AACA;AACA,mHAAmH,aAAa,uDAAY,kMAAkM;AAC9U,gHAAgH,aAAa,uDAAY,oGAAoG;AAC7O,4GAA4G,aAAa,uDAAY,oIAAoI;AACzQ;AACA,uJAAuJ,aAAa,uDAAY,sGAAsG;AACtR;AACA;AACA,uLAAuL,aAAa,uDAAY,6DAA6D;AAC7Q;AACA;AACA;AACA;AACA;AACA,mHAAmH,aAAa,uDAAY,uKAAuK;AACnT,0FAA0F,aAAa,uDAAY,uFAAuF;AAC1M,sJAAsJ,aAAa,uDAAY,mDAAmD;AAClO;AACA;AACA,+KAA+K,qBAAqB,uDAAY,uHAAuH;AACvU;AACA,6BAA6B,2EAAoB;AACjD,cAAc,uDAAY;AAC1B,cAAc,uDAAY;AAC1B,KAAK;AACL,4JAA4J,aAAa,uDAAY,sFAAsF;AAC3Q;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,6BAA6B,uDAAY;AACzC,KAAK;AACL,oIAAoI,aAAa,uDAAY,iGAAiG;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL,uJAAuJ,aAAa,uDAAY,oHAAoH;AACpS;AACA,0LAA0L,aAAa,uDAAY,6GAA6G;AAChU;AACA;AACA,gHAAgH,aAAa,uDAAY,mGAAmG,uDAAY,8EAA8E;AACtU,gJAAgJ,aAAa,uDAAY,gHAAgH;AACzR,6HAA6H,uEAAgB,gDAAgD,aAAa,uDAAY,sFAAsF;AAC5S;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL,4KAA4K,aAAa,uDAAY,0IAA0I;AAC/U;AACA;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,4HAA4H,aAAa,uDAAY,kFAAkF;AACvO;AACA;AACA,6LAA6L,aAAa,uDAAY,yHAAyH;AAC/U,wIAAwI,aAAa,uDAAY,2FAA2F;AAC5P,2IAA2I,aAAa,uDAAY,0MAA0M;AAC9W;AACA,qBAAqB,uDAAY;AACjC,kBAAkB,uEAAgB;AAClC,KAAK;AACL,kIAAkI,aAAa,uDAAY,0GAA0G;AACrQ;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL,0GAA0G,aAAa,uDAAY,uDAAuD;AAC1L,sHAAsH,aAAa,uDAAY,oEAAoE;AACnN;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,0HAA0H,aAAa,uDAAY,oFAAoF;AACvO;AACA;AACA;AACA;AACA,4LAA4L,aAAa,uDAAY,oKAAoK;AACzX,2HAA2H,qBAAqB,uDAAY,oEAAoE,EAAE,gBAAgB,GAAG,0CAA0C;AAC/R,iIAAiI,qBAAqB,uDAAY,wEAAwE,EAAE,gBAAgB,GAAG,oEAAoE;AACnU,0JAA0J,aAAa,uDAAY,6HAA6H;AAChT;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,6GAA6G,aAAa,uDAAY,0FAA0F;AAChO;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA,qBAAqB,uDAAY;AACjC,KAAK;AACL;AACA,6GAA6G,gFAAqB,IAAI,aAAa,uDAAY,0HAA0H;AACzR;AACA;AACA,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB,YAAY,uDAAY;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,uDAAY;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,qBAAqB,uDAAY;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA,QAAQ;AACR;AACA,6BAA6B,uDAAY;AACzC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,+IAA+I,qBAAqB,uDAAY,mIAAmI;AACnT;AACA,iHAAiH,qBAAqB,uDAAY,+GAA+G;AACjQ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC7jGwG;AACjG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uEAAgB;AAC9B,cAAc,iFAA0B;AACxC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uEAAgB;AAC9B,cAAc,iFAA0B;AACxC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wEAAiB;AACpC;AACA;AACA,mBAAmB,wEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAO;AAC1B;AACA;AACA,mBAAmB,8DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7mBA;AACA;AACA;AACA;AAC0F;AACxB;AACN;AACL;AACvD;AACA;AACO,qCAAqC,4BAAU;AACtD,2CAA2C,qBAAa;AACxD;AACA;AACA;AACA;AACA,iDAAiD,qCAAoB;AACrE;AACA;AACA;AACA,sCAAsC,qBAAa;AACnD;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,wBAAQ;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAA0B;AACpD,wBAAwB,yBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACmC;AACrB;AACqB;AACS;AACA;AAC1B;AACkC;AAC3G;AACA;AACA,iFAAiF,sBAAsB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAa;AAC7C;AACA;AACA;AACA;AACA,yCAAyC,+BAAW;AACpD;AACA,gCAAgC,0CAAiB;AACjD,gCAAgC,0CAAiB;AACjD,QAAQ,kBAAU;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,sBAAc;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;AACtE,kEAAkE,OAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,MAAM;AACtE,kEAAkE,OAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,iHAAiH,MAAM;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAa;AACvD;AACA;AACA;AACA;AACA,mDAAmD,qBAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA,4CAA4C,SAAS;AACrD,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kDAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAa;AACvD;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAAkB;AACvC,oBAAoB,yBAAiB;AACrC;AACA;AACA,iBAAiB,0BAAkB;AACnC,gBAAgB,yBAAiB;AACjC;AACA;AACA;AACA;AACA,iCAAiC,0BAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C;AAC9F;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C;AAC9F;AACA;AACA;AACA,kDAAkD,kDAAkD;AACpG;AACA;AACA;AACA,kDAAkD,kDAAkD;AACpG;AACA;AACA;AACA;AACA,kDAAkD,qCAAqC;AACvF;AACA;AACA;AACA;AACA,kDAAkD,qCAAqC;AACvF;AACA;AACA,kDAAkD,cAAc;AAChE;AACA;AACA,kDAAkD,qEAAqE;AACvH;AACA;AACA;AACA,yCAAyC,qBAAa;AACtD;AACA,eAAe,qCAAkB;AACjC,eAAe,2CAAqB;AACpC,eAAe,0CAAqB;AACpC,eAAe,oCAAkB;AACjC;AAC8B;AAC9B;AACA,kCAAkC;AAClC,kCAAkC;AAClC;AACA;AACA;AACA;;;;;;;;;;;;;ACtYA;AACA;AACA;AACA;AACmG;AAC7B;AACX;AACO;AAC3D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,4BAAU;AAC9C;AACA;AACA;AACA;AACA,4CAA4C,4BAAO;AACnD;AACA,sDAAsD,qCAAgB;AACtE,uDAAuD,qCAAgB;AACvE,2DAA2D,qCAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAA6B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAAiB;AACrC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClJA;AACA;AACA;AACA;AAC6D;AACU;AAChE;AACP,mBAAmB;AACnB,wBAAwB;AACxB,wBAAwB;AACxB,6BAA6B;AAC7B,mBAAmB;AACnB,wBAAwB;AACxB,wCAAwC;AACxC,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,wCAAmB;AACtC;AACA;AACA,eAAe,wCAAmB;AAClC;AACA,uBAAuB,wCAAmB;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAAQ;AACvB;AACA;;;AC9EA;AACA;AACA;AACA;AACO,MAAM,6BAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,6BAAW;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzCA;AACA;AACA;AACA;AACA,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,4BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AAC0C;AACrC;AACN;AACsB;AACR;AACf;AACwB;AACsB;AACT;AACjB;AACK;AACjB;AACI;AACa;AACZ;AACP;AAC3D,6FAA6F,4BAAU;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA,gFAAgF,kBAAkB;AAClG;AACA;AACA,kCAAkC,2CAAwB;AAC1D;AACA,+CAA+C,yDAAwB,qCAAqC,sCAAe;AAC3H;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD,kDAAkD,cAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAAW;AAC5C,SAAS;AACT,uBAAuB,yCAAiC;AACxD;AACA;AACA;AACA,SAAS;AACT,uBAAuB,sCAAoB;AAC3C;AACA,6DAA6D;AAC7D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAA0D;AAC1E,gCAAgC,iCAAe;AAC/C,8CAA8C,iDAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gCAAgC,iCAAY;AAC5C;AACA,iBAAiB;AACjB;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,wBAAQ;AACpG,qGAAqG,wBAAQ;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mCAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mCAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wCAAsB;AACnE;AACA;AACA,CAAC;AACD,oDAAoD,+BAAU;AAC9D,IAAI,4BAAO,IAAI,2CAAqB;AACpC,IAAI,4BAAO,IAAI,oCAAkB;AACjC;AACkC;;;;;;;;;ACvWlC;AACA;AACA;AACA;AAC4D;AACmB;AACpB;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+IAA+I,6BAAe;AAC9J;AACA;AACA;AACA;AACA,iCAAiC,6CAAqB;AACtD;AACA;AACA,2BAA2B,0BAAO;AAClC;AACA;AACA;AACA;;;ACnDA;AACA;AACA;AACA;AACuD;AAC4B;AACqB;AACnD;AAC0B;AAChB;AAC/D,UAAU,KAAK;AACR,gCAAgC,4BAAU;AACjD;AACA;AACA,sDAAsD,iCAAe;AACrE;AACA;AACA;AACA,yCAAyC,+BAAW;AACpD;AACA,oDAAoD,wCAAgB,GAAG,sBAAsB;AAC7F,6BAA6B,mBAAmB;AAChD,kDAAkD,cAAc;AAChE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D,oDAAoD,6BAA6B;AACjF;AACA;AACA;;;ACtIA;AACA;AACA;AACA;AACA,IAAI,wBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,qBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC4I;AACzD;AACgB;AACkB;AAC3B;AACtB;AACP;AACQ;AAChD;AACsC;AACA;AAC3D;AACA;AACA,wEAAwE,4BAAU;AAClF;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAAO;AACjE;AACA,mCAAmC,iCAAe;AAClD;AACA;AACA;AACA;AACA,gEAAgE,qCAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,iBAAiB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,kBAAkB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oDAA6B;AACrF,2DAA2D,yDAAkC;AAC7F,2DAA2D,yDAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,uEAAkC;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,sBAAsB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAU;AAChD,IAAI,qBAAO,IAAI,2CAAqB;AACpC,IAAI,qBAAO,IAAI,oCAAkB;AACjC;AAC2B;;;;;;;;AC1X3B;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;AC9ED;AACA;AACA;AACA;AAC0D;AAC1D;AACA;AACA;AACO;AACP;AACA,yCAAyC,wEAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,yCAAyC,wEAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjDA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACuD;AACwB;AACb;AACwB;AAC1F,UAAU,mDAAK;AACf,8DAA8D,2EAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAU;AACxC;AACA;AACA;AACA;AACA;AACA,8BAA8B,wFAAW;AACzC;AACA;AACA,uBAAuB,kEAAU;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,kGAAkB;AACjC;AACgC;;;;;;;;;AC7CnB;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,+BAA+B,mBAAO,CAAC,IAAyC;;AAEhF;AACA;AACA,EAAE;AACF;AACA;AACA;;;;;;;;ACVA,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACkD;AAClD;AACO;AACP,sCAAsC,oEAAc;AACpD,+BAA+B,oEAAc;AAC7C;AACA;AACA;AACO;AACP;AACA;;;;;;;;;ACda;;AAEb,qBAAqB,mBAAO,CAAC,KAAkB;;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACyG;AAC7D;AACL;AACqC;AACF;AACzB;AACS;AAC2C;AAClD;AACQ;AACT;AACzB;AACzB;AACA,qBAAqB,6DAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,4BAA4B;AAC5B,wBAAwB;AACxB,4BAA4B;AAC5B,qBAAqB;AACrB,+BAA+B,QAAQ;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C,yCAAyC,UAAU;AACnD;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA,CAAC,wBAAwB;AACzB;AACA,QAAQ,iBAAiB;AACzB,mDAAmD,aAAa;AAChE;AACA;AACA,MAAM;AACN,MAAM;AACN,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA,gBAAgB,0CAA0C;AAC1D,+CAA+C,wBAAwB;AACvE,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,sEAAU;AACzC,gCAAgC;AAChC,8BAA8B;AAC9B,iCAAiC;AACjC,+BAA+B;AAC/B;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,mDAAmD,+DAAO;AAC1D,kDAAkD,+DAAO;AACzD;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yDAAM,UAAU,0CAAC;AAC9C,6BAA6B,0CAAC;AAC9B,6CAA6C,uEAAU;AACvD;AACA;AACA,sDAAsD,+EAA4B,CAAC,4DAAS;AAC5F,SAAS;AACT,oDAAoD,8FAAuB;AAC3E;AACA;AACA,SAAS;AACT;AACA,4DAA4D,0DAAU;AACtE;AACA;AACA;AACA;AACA;AACA,2DAA2D,uBAAuB;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,yDAAM;AACd;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAiB,6EAA6E;AAC7H;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB,SAAS,gBAAgB;AACzD;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA,2CAA2C,gBAAgB;AAC3D,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kEAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA,gCAAgC,mEAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA,2BAA2B,kFAAkB,CAAC,wEAAqB,wGAAwG,wEAAqB;AAChM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAK;AACvC,oCAAoC,kEAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,gBAAgB,sEAAsE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB,YAAY,gBAAgB;AAC/D;AACA,yBAAyB,kBAAkB;AAC3C,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kEAAK;AACjC;AACA;AACA;AACA;AACA,mBAAmB,mEAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB,gBAAgB,kBAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAK;AAC7B;AACA,wBAAwB,kEAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2EAAY;AACpD,+BAA+B,kFAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,0BAA0B,wDAAI,uBAAuB,wGAAwG,IAAI,sDAAsD;AACvN,0BAA0B,wDAAI,uBAAuB,sGAAsG,IAAI,oDAAoD;AACnN;AACA,gCAAgC,2DAA2D;AAC3F,gCAAgC,2DAA2D;AAC3F,gCAAgC,6DAAK;AACrC;AACA,iCAAiC,6DAAK;AACtC;AACA,8BAA8B,6DAAK;AACnC;AACA;AACA;AACA,sCAAsC,kEAAK;AAC3C,wCAAwC,kEAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,kFAAkB;AACrD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAK;AAC/B,4BAA4B,kEAAK;AACjC;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAK;AACrB,yCAAyC,oBAAoB;AAC7D;AACA,yBAAyB,mEAAK;AAC9B;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA,yBAAyB,mEAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kEAAK;AAC7B;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,sEAAS;AACrB;AACA;AACA,YAAY,sEAAS;AACrB;AACA,wBAAwB,wCAAwC;AAChE;AACA,yBAAyB,mEAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAK;AACvC,oCAAoC,kEAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5zBA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;ACrBA;AACA;AACA;AACA;AACyF;AACC;AAClC;AACjD,6BAA6B,yCAAe;AACnD,uCAAiB,uBAAuB,mBAAmB;;;;;;;;;;;;;;;;;ACR3D;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC6D;AACgC;AACH;AACX;AACb;AACC;AACb;AACkC;AACF;AACC;AACO;AACP;AACzC;AACqD;AACd;AACJ;AACkB;AACpD;AACa;AACrD;AACA;AACA,iCAAiC,gCAAa,6BAA6B,wBAAQ;AAC1F,mGAAmG,4BAAU;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0CAAsB;AACvD,uFAAuF,2CAAqB;AAC5G,yFAAyF,2CAAqB,oDAAoD,oCAAoC,wBAAQ,iDAAiD;AAC/P;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAuB;AACzC,oCAAoC,sDAAkC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,kBAAK,6BAA6B,kCAAkC;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sDAAsD,wBAAQ;AAC9D;AACA;AACA;AACA,8BAA8B,yCAAgB;AAC9C;AACA;AACA,0FAA0F,kCAAkC;AAC5H;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sBAAsB,2BAAQ;AAC9B,eAAe,kCAAkB;AACjC;AACA;AACA,yFAAyF,qBAAqB;AAC9G;AACA,oCAAoC,wCAAgB;AACpD;AACA,2CAA2C,8CAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAAc;AACrC;AACA,6BAA6B,uCAAwB;AACrD,2CAA2C,0BAA0B;AACrE,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2CAAqB;AACpC,eAAe,2CAAqB;AACpC,eAAe,gDAAwB;AACvC,eAAe,oBAAoB;AACnC;AACoC;;;AC/JpC;AACA;AACA;AACA;AACwH;AACtB;AACxB;AACN;AAC1B;AACiF;AAC/C;AACmE;AAC/I,uDAA0B,CAAC,wBAAwB,KAAK,wBAAwB;AAChF,+CAAqB,CAAC,oDAA2B;AACjD,kDAAqB,mBAAmB,sCAAa;AACrD;AACA;AACA,gBAAgB,uBAAuB;AACvC,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA,CAAC;AACD,kDAAqB,mBAAmB,sCAAa;AACrD;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA,CAAC;AACD,wBAAQ,IAAI,wCAAuB;AACnC,OAAO,6DAA2B;AAClC;AACA,SAAS,qBAAqB;AAC9B;AACA;AACA,yBAAyB,oBAAY;AACrC,uBAAuB;AACvB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,CAAC;;;;;;;;;;;;;;AC3DD;AACA;AACA;AACA;AACyD;AACF;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAS,CAAC,qEAAc;AAChC,QAAQ,sDAAS,CAAC,qEAAc;AAChC,QAAQ,sDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;ACpBP;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,KAAmB;AAC1C,cAAc,mBAAO,CAAC,KAAkB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,2BAA2B,GAAG,oBAAoB;AAChF,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC,4BAA4B,sEAAsE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC;AACpG,kCAAkC,iBAAiB,GAAG,QAAQ;AAC9D;AACA;AACA;AACA,gDAAgD,cAAc,EAAE,oCAAoC,EAAE,uCAAuC;AAC7I,kCAAkC,iBAAiB,GAAG,QAAQ,GAAG,uCAAuC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,8CAA8C,+DAA+D;AAC7G;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA,gBAAgB,+BAA+B;AAC/C,6DAA6D,QAAQ,EAAE,qCAAqC;AAC5G;AACA,oDAAoD,UAAU,EAAE,kEAAkE;AAClI,2DAA2D,SAAS;AACpE;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,0CAA0C,uEAAuE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,yCAAyC;AACzC;AACA,2BAA2B;AAC3B;;;;;;;;AChFa;AACb,wBAAwB,mBAAO,CAAC,KAAmC;;AAEnE;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AAC+D;AACK;AACJ;AAC6C;AACL;AACpB;AACX;AACkB;AACjD;AAC4C;AACQ;AACR;AACtF;AACA,qBAAqB,wEAAiB;AACtC,sBAAsB,wEAAiB;AACvC;AACA;AACA;AACA,qEAAqE,yEAAiB;AACtF;AACA;AACA;AACA;AACO,oDAAoD,gFAAY;AACvE;AACA;AACA;AACA;AACA;AACA,IAAI,wEAAiB;AACrB;AACA,eAAe,4HAA4H;AAC3I;AACA,MAAM;AACN;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,kDAAkD;AACpF;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B,kBAAkB,oFAAiB;AACnC;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B,kBAAkB,oFAAiB;AACnC;AACA,SAAS;AACT,CAAC;AACM,sDAAsD,gFAAY;AACzE;AACA;AACA;AACA;AACA;AACA,IAAI,wEAAiB;AACrB;AACA,eAAe,8HAA8H;AAC7I;AACA,MAAM;AACN;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,mDAAmD;AACrF;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,CAAC;AACD,uFAAY,gBAAgB,iFAAM,oBAAoB,SAAS,iFAAM,qBAAqB,wDAAa,kDAAkD;AACzJ,uFAAY,gBAAgB,iFAAM,kBAAkB,SAAS,iFAAM,2BAA2B,wDAAa,uEAAuE;AAClL,uFAAY,gBAAgB,iFAAM,kBAAkB,SAAS,iFAAM,4BAA4B,wDAAa,wDAAwD,gGAAc,KAAK,gGAAc,wCAAwC,oFAAiB,mBAAmB;AACjR,uFAAY,gBAAgB,iFAAM,oBAAoB,SAAS,iFAAM,8BAA8B,wDAAa,kDAAkD;AAC3J,wDAAwD,gFAAY;AAC3E;AACA;AACA;AACA;AACA;AACA,IAAI,wEAAiB;AACrB;AACA,eAAe,4HAA4H;AAC3I,iBAAiB,4HAA4H;AAC7I;AACA,MAAM;AACN;AACA,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY,GAAG,oDAAoD;AACtF;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B,kBAAkB,oFAAiB;AACnC;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B;AACA,SAAS;AACT,oBAAoB,iFAAM;AAC1B;AACA,mBAAmB,uDAAY;AAC/B,kBAAkB,oFAAiB;AACnC;AACA,SAAS;AACT,CAAC;AACD,0DAA0D,gFAAY;AACtE;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uFAAW;AACnB;AACA;AACA,QAAQ,uFAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+FAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,gFAAiB;AACzB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+FAAkB;AACjE,8CAA8C,uGAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA,mCAAmC,0GAAmB;AACtD;AACA,qBAAqB,qEAAc;AACnC;AACA;AACA;AACA;AACA,yCAAyC,4GAAgC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,QAAQ,gFAAiB;AACzB;AACA,KAAK;AACL;AACA;AACA,IAAI,4FAAoB;AACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/OA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACO,SAAS,aAAQ;AACxB;AACA;AACA,oBAAoB,sBAAsB,gBAAW,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,yDAAyD;AACzD;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,aAAQ;AACxB;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACO,SAAS,UAAK;AACrB,SAAS,sBAAiB;AAC1B;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA,iBAAiB,sBAAiB;AAClC,iBAAiB,aAAQ;AACzB,gBAAgB,WAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACO,SAAS,WAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAQ;AACtD,oBAAoB,aAAQ;AAC5B;AACA;AACA,wBAAwB,WAAM,UAAU;AACxC;AACA;AACA,2CAA2C,WAAM,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAM;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO,SAAS,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA,QAAQ,sBAAiB;AACzB;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,gCAAgC,sBAAsB,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,WAAW,sBAAsB;AACjC;AACA;AACO;AACP;AACA,qDAAqD,sBAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;;AC/dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB,QAAQ;AAC5B,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,aAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,gDAAgD,wBAAwB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,eAAe;AAChC;AACA;AACA;AACA,kBAAkB,aAAQ;AAC1B,sBAAsB,aAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB,sCAAsC,aAAQ,4BAA4B,aAAQ;AAClF,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,cAAc;AAC/B;AACA;AACA,oBAAoB;AACpB;AACA,aAAa,gBAAW;AACxB;AACA,gCAAgC,aAAQ;AACxC,gCAAgC,aAAQ;AACxC,yBAAyB,aAAQ;AACjC,iBAAiB,gBAAW;AAC5B,wEAAwE,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACO;AACP,WAAW,aAAQ;AACnB;;;AC7WA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,CAAC,kCAAkC;;;AC3MkB;AACN;AACuB;AACxB;AACM;AACpD;AACA;AACA;AACO,oBAAoB,mFAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,wBAAwB,aAAQ;AAChC;AACA,8BAA8B,WAAW,kBAAI;AAC7C,YAAY,QAAQ;AACpB,qBAAqB,kBAAI;AACzB;AACA;AACA,YAAY,kBAAI,iFAAiF,QAAQ;AACzG,sCAAsC,QAAQ,KAAK,aAAQ,gCAAgC,kBAAI;AAC/F,YAAY,gBAAW;AACvB,YAAY,UAAU;AACtB;AACA;AACA,yBAAyB,kBAAI;AAC7B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C,gBAAgB,WAAM,GAAG,eAAe,UAAM,0CAA0C,UAAM;AAC9F;AACA,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,oDAAoD,aAAQ,WAAW,kBAAI;AAC3E;AACA;AACA,+EAA+E,kBAAI,wBAAwB,kBAAI;AAC/G;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,kDAAkD,aAAQ,aAAa,kBAAI;AAC3E;AACA;AACA,6EAA6E,kBAAI,yBAAyB,kBAAI;AAC9G;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D,4BAA4B,aAAQ,6BAA6B,aAAQ;AACzE;AACA;AACA;AACA,4CAA4C,QAAQ,KAAK,aAAQ,uBAAuB,aAAQ;AAChG;AACA;AACA;AACA,iDAAiD,aAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,eAAe;AAC9B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,oCAAoC,kBAAI;AACxC;AACA,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAM,2BAA2B,kBAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACqB;;;ACzStB;AACiG;AACnC;AACf;AACM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,uBAAuB,WAAM,GAAG;AAChC;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B;AACA,gCAAgC,QAAQ,KAAK,WAAM,GAAG;AACtD,YAAY,UAAM,0CAA0C,UAAM;AAClE,kCAAkC,QAAQ,KAAK,aAAQ,gCAAgC,kBAAI,kEAAkE,mBAAmB;AAChL,iCAAiC,QAAQ,KAAK,aAAQ;AACtD;AACA,+BAA+B,QAAQ,KAAK,aAAQ;AACpD;AACA;AACA,iCAAiC,kBAAI;AACrC,uBAAuB,kBAAI;AAC3B,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA,YAAY,WAAM,WAAW,kBAAI;AACjC;AACA;AACA,iBAAiB,QAAQ;AACzB,gCAAgC,kBAAI;AACpC;AACA;AACA;AACA,iBAAiB,gBAAW;AAC5B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA,wCAAwC,QAAQ;AAChD,iEAAiE,kBAAI;AACrE;AACA,iBAAiB,QAAQ;AACzB,kDAAkD;AAClD,iCAAiC,kBAAI;AACrC,iCAAiC,kBAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD;AACA,oBAAoB,kBAAI;AACxB;AACA;AACA,0BAA0B,gBAAW;AACrC;AACA;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA,iDAAiD,gBAAW;AAC5D;AACA;AACA;AACA,iBAAiB,gBAAW,YAAY,gBAAW;AACnD;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAM;AACd,QAAQ,WAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA,kCAAkC,kBAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,2BAA2B;AAC1C,eAAe,eAAe;AAC9B,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,YAAY,gBAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,qBAAqB,UAAM,2BAA2B,kBAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;AC7XuB;AACM;AACoC;AACtC;AACL;AAC9C,IAAI,sBAAU;AACd;AACA,IAAI,sBAAU;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,yBAAyB,UAAM,mDAAmD,UAAM,kCAAkC,QAAQ;AAClI;AACA,YAAY,QAAQ;AACpB,qBAAqB,kBAAI;AACzB;AACA;AACA,YAAY,kBAAI,iFAAiF,QAAQ;AACzG;AACA;AACA,YAAY,gBAAW;AACvB,YAAY,UAAU;AACtB;AACA;AACA,yBAAyB,kBAAI;AAC7B,6BAA6B,WAAW,kBAAI,0EAA0E;AACtH,gDAAgD,kBAAI;AACpD;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,kBAAkB,UAAM,0CAA0C,UAAM;AACxE,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,uCAAuC,aAAQ,WAAW,kBAAI;AAC9D;AACA;AACA,kEAAkE,kBAAI,YAAY,sBAAU,EAAE,kBAAI;AAClG;AACA,yCAAyC,UAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC,4CAA4C,aAAQ,aAAa,kBAAI;AACrE;AACA;AACA,mFAAmF,sBAAU,EAAE,kBAAI;AACnG;AACA,yDAAyD,UAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD,4BAA4B,aAAQ;AACpC,4BAA4B,aAAQ;AACpC,qDAAqD,UAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAM,eAAe,QAAQ;AAClF,4BAA4B,aAAQ,kCAAkC,aAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAQ;AAC7D;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,2CAA2C,sBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA,iBAAiB,gBAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAU;AACvC;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA,2BAA2B;AAC3B,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAW;AAC3D;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA,gBAAgB,UAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,sBAAsB;AACrC,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,qCAAqC,EAAE;AACvC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;ACxYkD;AACnB;AACN;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,yBAAyB,kBAAI;AAC7B,6BAA6B;AAC7B,aAAa,kBAAI;AACjB,YAAY,WAAM,eAAe,kBAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAM,eAAe,kBAAI;AACrC;AACA,sBAAsB,aAAQ;AAC9B,yBAAyB,UAAM,mDAAmD,UAAM,iCAAiC,QAAQ;AACjI,mCAAmC,UAAM;AACzC;AACA;AACA,aAAa,QAAQ;AACrB,4BAA4B,kBAAI;AAChC;AACA,iEAAiE,kBAAI;AACrE,kDAAkD;AAClD,qCAAqC,kBAAI;AACzC,qCAAqC,kBAAI;AACzC;AACA;AACA;AACA,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD,iCAAiC,WAAM,GAAG,IAAI,EAAE,aAAQ;AACxD;AACA,gBAAgB,kBAAI,iEAAiE,aAAQ;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAM;AAC1B,oBAAoB,UAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;ACrIxB;AACuE;AACvE;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA,mDAAmD,0CAA0C;AAC7F;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA,yDAAyD,0CAA0C;AACnG;AACA;AACA;AACA,qDAAqD,kCAAkC;AACvF;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAQ;AAChC;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAQ;AAChC;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5D,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,UAAU;AACzB,iBAAiB,SAAS;AAC1B;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;ACrN+B;AACI;AACP;AACI;AACR;AACQ;AACd;AACtC;AACA;AACA;AACO,uBAAuB,QAAQ;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,2BAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC;AACrF;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA,yDAAyD,cAAc;AACvE;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,kDAAkD,6BAA6B;AAC/E;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA,eAAe,UAAU,4CAA4C,iCAAiC;AACtG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,eAAe,YAAY,iDAAiD;AAC5E;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,iBAAiB,UAAU;AAC3B;AACA;AACA,eAAe,UAAU,4CAA4C,iCAAiC;AACtG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,UAAU;AAC3B;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,eAAe,YAAY,8CAA8C,aAAa;AACtF;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,mBAAmB;AAClC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,kBAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,CAAC;AAC+B;AAChC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA,kDAAkD,0BAA0B;AAC5E;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA,kDAAkD,qCAAqC;AACvF;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACO;AACP,6BAA6B;AAC7B;AACA,kDAAkD,wBAAwB;AAC1E;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP,oBAAoB,kBAAQ,4CAA4C,2BAAM;AAC9E,qBAAqB,kBAAQ,sCAAsC,2BAAM;AACzE,oBAAoB,aAAQ;AAC5B,sBAAsB,QAAQ,KAAK,aAAQ,+BAA+B,aAAQ;AAClF,kBAAkB,kBAAQ;AAC1B,WAAW,WAAM,cAAc,kBAAQ,2CAA2C,iBAAiB,kBAAQ,+BAA+B;AAC1I;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP,WAAW,kBAAQ,2CAA2C,2BAAM;AACpE;;;AChSA;AAC8D;AACU;AACM;AAChC;AACI;AACZ;AACtC,IAAI,gBAAM;AACH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAI,kBAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAM,YAAY,EAAE;AACnD,uCAAuC,gBAAM,SAAS,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,kCAAkC,GAAG,QAAQ,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sCAAsC;AACtC,kCAAkC,EAAE;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,yCAAyC;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,oDAAoD,oBAAoB;AACxE,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA,6BAA6B,aAAQ;AACrC;AACA,mCAAmC,aAAQ;AAC3C,mCAAmC,aAAQ;AAC3C,sDAAsD,EAAE,uBAAuB,EAAE;AACjF;AACA;AACA;AACA,6BAA6B,aAAQ;AACrC;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,2BAA2B,UAAM,kCAAkC,QAAQ;AAC3E;AACA,gCAAgC,aAAQ;AACxC;AACA;AACA,6BAA6B,QAAQ;AACrC,6BAA6B,aAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA,eAAe,aAAQ;AACvB,wFAAwF,aAAQ;AAChG;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,8BAA8B,aAAQ;AACtC;AACA,8BAA8B,aAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,iDAAiD,aAAQ;AACzD,YAAY,aAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,yCAAyC;AACzC;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,YAAY,sBAAiB;AAC7B,4BAA4B,WAAM,GAAG;AACrC,kCAAkC,sBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA,YAAY,WAAM;AAClB;AACA,gBAAgB,WAAM;AACtB;AACA;AACA;AACA,YAAY,WAAM;AAClB;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,qCAAqC,YAAY,0CAA0C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA,wBAAwB;AACxB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,aAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kCAAkC;AAClC,sCAAsC,UAAM,0CAA0C,UAAM;AAC5F,qCAAqC,aAAQ;AAC7C;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU;AAChD,8EAA8E,GAAG;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,iCAAiC,aAAQ;AACzC,sCAAsC,aAAQ;AAC9C;AACA;AACA,yCAAyC,aAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,gBAAgB,WAAM,GAAG;AACzB,gBAAgB,UAAM,0CAA0C,UAAM;AACtE,0BAA0B,QAAQ,KAAK,aAAQ;AAC/C,gFAAgF,mBAAmB;AACnG;AACA;AACA,8CAA8C;AAC9C,wCAAwC,QAAQ;AAChD,2BAA2B,QAAQ,KAAK,aAAQ;AAChD;AACA,2BAA2B,QAAQ,KAAK,aAAQ;AAChD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,YAAY,WAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,QAAQ;AAClF,oBAAoB,QAAQ;AAC5B,mCAAmC,aAAQ;AAC3C,mCAAmC,aAAQ;AAC3C;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,uCAAuC;AACvC;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,qBAAqB,aAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,kBAAQ,KAAK,kBAAQ,KAAK;;;AC5sCqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAiB;AAC1C;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,iBAAiB,sBAAiB;AAClC;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAiB;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAiB;AAChC;AACA;AACA,CAAC;AACe;;;ACnKhB;AACqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAK;AAC9B;AACA;AACA,iBAAiB,aAAQ;AACzB,YAAY,UAAK;AACjB;AACA,4BAA4B,sBAAK,2DAA2D;AAC5F;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAK;AACrB,4DAA4D,mBAAmB;AAC/E;AACA,qBAAqB,sBAAK;AAC1B,6BAA6B,sBAAK;AAClC;AACA;AACA,+BAA+B,kCAAkC;AACjE;AACA,iBAAiB;AACjB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAK;AAClB;AACA;AACA;AACA;AACA,CAAC;AACgB;;;AClHjB;AACqC;AACrC;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA,gBAAgB,gBAAW;AAC3B,oDAAoD,gBAAW,oBAAoB,gBAAW;AAC9F,uBAAuB,gBAAW;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,gBAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACkB;;;ACjYuB;AACN;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,gGAAgG,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,uBAAuB,WAAM;AAC7B,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;AC1IxB;AACA;AACA;AACA;AAC+C;AACkC;AACjF;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA,kDAAkD,yBAAyB;AAC3E;AACA,gBAAgB,aAAQ;AACxB,+BAA+B,aAAQ;AACvC,oBAAoB,sBAAiB;AACrC,oBAAoB,QAAQ;AAC5B;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,iBAAiB;AAC7B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA,oCAAoC,gBAAgB;AACpD;AACA,mBAAmB,aAAQ;AAC3B,+BAA+B,aAAQ;AACvC;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA,oCAAoC,aAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,SAAS;AACrB,WAAW,SAAS;AACpB,aAAa,sBAAsB;AACnC;AACA;AACO;AACP;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC,YAAY,SAAS;AACrB,WAAW,SAAS;AACpB,aAAa,sBAAsB;AACnC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA,IAAI,YAAY;AAChB;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,YAAY,aAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,kBAAkB;AAC9B,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACO,SAAS,UAAM;AACtB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,kBAAkB;AAC9B,WAAW,SAAS;AACpB,aAAa,eAAe;AAC5B;AACA;AACO;AACP,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,kDAAkD,mBAAmB,EAAE;AACvE;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B,aAAa,WAAW;AACxB;AACA;AACO;AACP;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;;;ACpdA;AACmH;AACrE;AACR;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,SAAS;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,UAAK;AACb;AACA,YAAY,UAAK;AACjB;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA,QAAQ,WAAM,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,QAAQ,WAAW;AACnB;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA,uCAAuC;;;AChU9C;AAC8E;AAC9E;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,+BAA+B;AACpE;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,mBAAmB;AAChC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB,YAAY,UAAU;AACtB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,aAAa,wBAAwB;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAmB;AAChC;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACO,SAAS,4BAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAW;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACA;AACA;AACA,QAAQ,gBAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,mDAAmD,qBAAqB;AACxE;AACA;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sBAAsB,aAAQ;AAC9B;AACA;AACA;AACA,gCAAgC,aAAQ;AACxC;AACA;;;AC5iBA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC0D;AAC5B;AACM;AACW;AACmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,gBAAgB;AAC/B,iBAAiB,MAAM;AACvB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,sDAAsD,SAAS;AAC/D,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,4BAAK;AACb;AACA;AACA,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,eAAe;AAC1B,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,YAAY,4CAA4C,6CAA6C;AACzG,IAAI,YAAY,4CAA4C,yDAAyD;AACrH,IAAI,YAAY,kDAAkD,6CAA6C;AAC/G,QAAQ,OAAO;AACf,QAAQ,YAAY,qDAAqD,6CAA6C;AACtH;AACA;AACA;AACA,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,QAAQ,YAAY;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB,kBAAkB,iBAAiB;AACtG,iDAAiD;AACjD,wBAAwB,aAAa,UAAU,+CAA+C;AAC9F;AACA;AACA;AACA;AACA,QAAQ,YAAY,kDAAkD,wDAAwD;AAC9H;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,4BAA4B;AACvC,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;;ACzcnD;AACA;AACA;AACA;AAC0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,qBAAqB;AACpC,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA,0DAA0D,8CAA8C;AACxG;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,0DAA0D,yCAAyC;AACnG;AACA;AACA,SAAS;AACT,8DAA8D,+BAA+B;AAC7F;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;ACxHxB;AAC6D;AAC/B;AAC9B;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAQ,sBAAsB,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA,YAAY,UAAK;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;AChLa;AAC0C;AACzE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,yBAAyB;AACzB;AACA,gCAAgC;AAChC;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe,KAAK,aAAQ,2BAA2B,eAAe,MAAM,aAAQ,WAAW,eAAe;AAChJ;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,aAAQ,4BAA4B,eAAe;AACxF,8BAA8B,aAAQ,wBAAwB,eAAe;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAiB;AACpF;AACA,+BAA+B,aAAa;AAC5C,6DAA6D,kmCAAkmC,yCAAyC,iCAAiC,kCAAkC,mCAAmC,6DAA6D,eAAe,iBAAiB;AAC34C,iBAAiB;AACjB,gEAAgE,4BAA4B,6BAA6B,8BAA8B,kCAAkC,sCAAsC,iCAAiC,qCAAqC,mCAAmC,4CAA4C,+CAA+C,qCAAqC,gEAAgE;AACxgB;AACA;AACA;AACA;AACA,YAAY,QAAQ,6CAA6C,eAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,0DAA0D,2BAA2B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,yDAAyD;AACzD;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,mEAAmE,kBAAkB,mBAAmB,aAAa,cAAc,eAAe,gBAAgB,2CAA2C,qBAAqB,0DAA0D,oBAAoB,mBAAmB,oDAAoD,qBAAqB,wFAAwF,qBAAqB,sBAAsB,0BAA0B,6DAA6D,eAAe,eAAe,4BAA4B,4BAA4B,+BAA+B,gCAAgC,qDAAqD,i7RAAi7R,mBAAmB,yBAAyB,gBAAgB,iBAAiB,6EAA6E,gBAAgB,iBAAiB,sBAAsB,uBAAuB,uBAAuB,6BAA6B,yBAAyB,wBAAwB,8HAA8H,2BAA2B,yBAAyB,iCAAiC,6BAA6B,qBAAqB,oBAAoB,4BAA4B,+VAA+V,iCAAiC,mCAAmC,gMAAgM,iCAAiC,mCAAmC,0MAA0M,iCAAiC,mCAAmC,iBAAiB,gQAAgQ,iCAAiC,mCAAmC,qaAAqa,iCAAiC,mCAAmC,wSAAwS,iCAAiC,mCAAmC,mNAAmN,iCAAiC,mCAAmC,2GAA2G,+BAA+B,iCAAiC,gCAAgC,qCAAqC,wBAAwB,yBAAyB,gHAAgH,+x0CAA+x0C,iCAAiC,yBAAyB,yBAAyB,wFAAwF,8BAA8B,8BAA8B,2BAA2B,uBAAuB,uBAAuB,6BAA6B,6BAA6B,qBAAqB,sBAAsB,0BAA0B,uBAAuB,gCAAgC,iCAAiC,qFAAqF,yBAAyB,iBAAiB,iBAAiB,6BAA6B,uBAAuB,wBAAwB,4IAA4I,iBAAiB,mBAAmB;AAC5xwD,4CAA4C,sBAAiB;AAC7D,8BAA8B,aAAa;AAC3C;AACA,SAAS;AACT;AACA;AACA;;;ACrQA,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACgG;AACjD;AACjB;AACQ;AACW;AAC0B;AACQ;AACd;AACiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B,kCAAkC,aAAa,WAAW,EAAE;AAC5D;AACA,YAAY,sBAAiB;AAC7B,kCAAkC,UAAU,cAAc,EAAE;AAC5D;AACA,iCAAiC,YAAY;AAC7C,kCAAkC,QAAQ;AAC1C,QAAQ,YAAY;AACpB;AACA,iFAAiF,eAAe;AAChG,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB,oCAAoC,eAAe;AACnD;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,iBAAiB,MAAM;AACvB;AACA;AACA,aAAa,sBAAiB;AAC9B,2BAA2B,UAAM;AACjC;AACA,kBAAkB,sBAAiB;AACnC;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,gBAAgB;AAChH;AACA;AACA;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,mBAAmB;AAClC,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB;AACrE;AACA,2BAA2B,aAAQ;AACnC,iBAAiB,gBAAW;AAC5B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,aAAa;AACxC,mBAAmB,aAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,gBAAgB,kBAAU;AAC1B,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;;ACvhBD,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AAC8B;AACM;AACF;AACyD;AAC5C;AACE;AACmC;AACY;AAChG,wBAAwB;AACxB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA;AACA,CAAC,CAAC,aAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA,eAAe,WAAM,GAAG;AACxB;AACA;AACA;AACA,aAAa,gBAAW;AACxB,kBAAkB,UAAM;AACxB;AACA,6CAA6C,OAAO,aAAa,OAAO;AACxE;AACA,YAAY,YAAY,6BAA6B,OAAO,6BAA6B,OAAO;AAChG;AACA;AACA,YAAY,YAAY,0BAA0B,OAAO,6BAA6B,OAAO;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,YAAY,eAAe,OAAO,4BAA4B,OAAO;AAC7E,QAAQ,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAC5E;AACA;AACA;AACA;AACA,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD,qBAAqB,sBAAiB,CAAC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAW;AAC/C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,eAAe,OAAO,4BAA4B,OAAO;AACjF,YAAY,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mCAAmC,OAAO,6BAA6B,OAAO;AAClG;AACA;AACA;AACA,6BAA6B,gBAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,qCAAqC;AACrC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC,YAAY,iBAAiB,2CAA2C,8DAA8D;AACtI,YAAY,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AACpF,YAAY,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AACnF,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,YAAY,eAAe,OAAO,4BAA4B,OAAO;AACjF,YAAY,YAAY,eAAe,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA,gDAAgD,OAAO,aAAa,OAAO;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA,gBAAgB,sBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gDAAgD;AACzG;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAM,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kFAAkF;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E,QAAQ,YAAY,kBAAkB,OAAO,2BAA2B,OAAO;AAC/E,QAAQ,YAAY,kBAAkB,OAAO,4BAA4B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAiB;AACpF;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,OAAO,oCAAoC,OAAO;AAChH,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA,oBAAoB,sBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC;AAC3E;AACA;AACA,0BAA0B,aAAa,UAAU,kEAAkE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAiB;AACpD,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,8BAA8B,kBAAU;AACxC,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;;;ACl6BrB,IAAI,iBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC8B;AACM;AACO;AACuC;AACnC;AACD;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mBAAmB,OAAO,2BAA2B,OAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAA6B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA,mCAAmC,8EAA8E;AACjH;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO,2BAA2B,OAAO;AACnF;AACA;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,kBAAU;AACd,QAAQ,4BAAK;AACb;AACA,gBAAgB,kBAAU;AAC1B,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACe;;;AC1IrB,IAAI,gBAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,iBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkF;AACpD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI,gBAAS;AACb;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA,wEAAwE,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAU;AACd,QAAQ,QAAQ,GAAG;AACnB;AACA,IAAI,iBAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,iBAAU;AACd,QAAQ,4BAAK;AACb;AACA,wCAAwC,iBAAU;AAClD,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACoB;;;AC5NyB;AACK;AACxD;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA,sBAAsB,WAAM,8BAA8B;AAC1D;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,aAAa,sBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;ACxFhB,IAAI,aAAS,IAAI,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,IAAI,cAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACgC;AAC2D;AACvD;AACN;AACmB;AACF;AAC/C;AACA;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA;AACA,CAAC,CAAC,aAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,gEAAgE,0BAA0B;AAC1F,gBAAgB,YAAY,oBAAoB,OAAO;AACvD,gBAAgB,YAAY,oBAAoB,OAAO;AACvD,gBAAgB,YAAY,oBAAoB,OAAO;AACvD;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAM,gBAAgB;AACpD;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY,uBAAuB,OAAO;AACtD;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAgD;AAC3F;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD,qBAAqB,MAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,YAAY,uBAAuB,OAAO;AACtD,YAAY,YAAY,uBAAuB,OAAO;AACtD,YAAY,YAAY,uBAAuB,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,mBAAmB,OAAO;AAC9C;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD,QAAQ,YAAY,sBAAsB,OAAO;AACjD,yBAAyB;AACzB;AACA,QAAQ,YAAY,sBAAsB,OAAO;AACjD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,4BAAK;AACb;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,QAAQ;AAChB;AACA,IAAI,cAAU;AACd,QAAQ,OAAO,GAAG;AAClB;AACA,YAAY,cAAU;AACtB,QAAQ,qBAAqB;AAC7B;AACA;AACA,CAAC,CAAC,IAAI;AACW;;;AC/VjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,eAAe;AAC9B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,sBAAsB,qFAAqF,uBAAuB,oCAAoC,gDAAgD,6BAA6B,4BAA4B,kBAAkB,MAAM,2EAA2E,iGAAiG,+FAA+F,sDAAsD,eAAe,2CAA2C,WAAW,uDAAuD,wCAAwC,mDAAmD,iCAAiC,gCAAgC,kBAAkB,MAAM,6EAA6E,mCAAmC,yGAAyG,uGAAuG,8DAA8D,uBAAuB,mBAAmB,+CAA+C,eAAe,WAAW;AAC39C,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC,wDAAwD;AACxD;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,qDAAqD,uGAAuG;AAC5J,iBAAiB,OAAO;AACxB,4CAA4C,kDAAkD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B,OAAO;AAC3D;AACA;AACA;AACA,6CAA6C,KAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oLAAoL;AACpL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sCAAsC,eAAe;AACpH;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzRA;AACA;AACA;AACA;AAC+C;AACT;AACe;AACrD;AACA;AACO;AACP;AACA;AACA,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACO,SAAS,uBAAO;AACvB;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAiB;AAClC;AACA,gDAAgD,oBAAoB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,aAAa,SAAS,8CAA8C;AACrH,iBAAiB,aAAa,UAAU,8CAA8C;AACtF;AACA;AACA;AACA,0BAA0B,aAAa,UAAU,mBAAmB;AACpE;AACA;AACA;AACA,0BAA0B,aAAa,6CAA6C,mBAAmB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,aAAa,MAAM;AACnB;AACO;AACP,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,iBAAiB,sBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,yBAAyB,sBAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B,aAAa,MAAM;AACnB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,KAAK;AAChB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA,SAAS,sBAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,eAAe,OAAM;AACrB;AACA;AACA,CAAC;AACD,kBAAkB;;;AC7KlB;AACA;AACA;AAC+B;AACY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAsD;AAC5D,MAAM,wCAAwC;AAC9C,MAAM,kEAAkE;AACxE,MAAM,wDAAwD;AAC9D,MAAM,wDAAwD;AAC9D,MAAM,sDAAsD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AAC6B;;;AC1M9B;AACA;AACA;AACiC;AACV;AACC;AACI;AACL;AACG;AACE;AACK;AACL;AACA;AACI;AACO;AACZ;AACJ;AACS;AACS;AACjB;AACO;AACG;AACX;AACD;AACK;AACO;AACH;;;AC1B/B;AACA;AACA;AAC4B;;;;;;;;;ACHf;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACsD;AAC6B;AAChB;AACb;AACG;AACG;AACe;AACpD;AACmB;AACoC;AAC9E;AACA;AACA;AACO,sBAAsB,4BAAU;AACvC,4DAA4D,oDAAoD;AAChH;AACA;AACA;AACA;AACA,iEAAiE,qCAAgB;AACjF;AACA,8CAA8C,iCAAe;AAC7D,6GAA6G,2DAA0B;AACvI;AACA;AACA,4EAA4E,QAAQ,6FAA6F;AACjL;AACA;AACA;AACA,4CAA4C,0BAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wDAA0B;AAClF;AACA;AACA;AACA,oCAAoC,0BAAS,2EAA2E,uBAAO;AAC/H;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oCAAa;AACnD,uCAAuC,wDAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uEAAuE;AACjH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,+BAA+B,6BAAM;AAC5C;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACgF;AACP;AACe;AAClB;AACL;AACE;AACC;AACZ;AACI;AACQ;AACzB;AACoC;AACQ;AACZ;AACP;AACO;AACI;AACJ;AACH;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAA4B;AACpC;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA,yCAAyC,QAAQ,0GAA0G;AAC3J;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iCAAe;AACtE;AACA;AACA;AACA,kHAAkH,wCAAwC;AAC1J;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA,wCAAwC,6CAAc,yBAAyB,gDAAiB;AAChG,8CAA8C,UAAU,GAAG,cAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mCAAY,mDAAmD,wBAAQ;AACvG;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAe;AACvB,QAAQ,kCAAe;AACvB,kCAAkC,gCAAS;AAC3C;AACA;AACA,yCAAyC,qCAAqB;AAC9D;AACA,kCAAkC,oCAAkB,CAAC,yBAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAAc;AACpD;AACA;AACA,6CAA6C,gDAAiB,sBAAsB,gBAAgB;AACpG,wCAAwC,sDAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAA0B;AAClE;AACA,mDAAmD,mCAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,uCAAuC;AACvC;AACA;AACA;AACA;AACA,sDAAsD,6CAAc,sBAAsB,gDAAiB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mCAAQ;AACpD;AACA,mCAAmC,wBAAQ;AAC3C;AACA;AACA,yBAAyB;AACzB;AACA;AACA,gCAAgC,gCAAS;AACzC;AACA;AACA;AACA;AACA;AACA,qCAAqC,gCAAS;AAC9C,iCAAiC,mCAAQ;AACzC;AACA,+BAA+B,wBAAQ;AACvC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qGAAqG;AAC9I;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,2CAAY;AAC3B,eAAe,qCAAkB;AACjC,eAAe,sCAAmB;AAClC,eAAe,oCAAkB;AACjC,eAAe,+BAAe;AAC9B,eAAe,kCAAiB;AAChC;AAC4B;AAC5B;AACA,MAAM,0CAA0C,8BAA8B,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D,yDAAyD,4BAAO;AAChE;AACA;AACA,yFAAyF,mCAAmC;AAC5H;AACA;AACA;AACA;AACA,YAAY,mEAA+B,gFAAgF,oBAAoB;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAkB;AACpC;AACA;AACA;AACA,eAAe,2CAAY;AAC3B,eAAe,qCAAkB;AACjC,eAAe,sCAAmB;AAClC,eAAe,oCAAkB;AACjC,eAAe,+BAAe;AAC9B,eAAe,kCAAiB;AAChC;AACgC;;;;;;;;AClQhC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW,EAAE,aAAa,EAAE,UAAU;AACtD;AACA,gBAAgB,gCAAgC,EAAE,aAAa,EAAE,oBAAoB;AACrF;AACA;;AAE4B;AAC5B;;;ACd2D;;AAE3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,sBAAsB,GAAG;AACzD,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,yBAAyB,GAAG;AAC5D,iDAAiD,SAAS;AAC1D;AACA;AACA,0DAA0D,eAAe,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,+BAA+B,GAAG;AAClE,eAAe,IAAI,sBAAsB,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW,sBAAsB,GAAG;AACzD,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoD;AACpD;;;ACzD4E;;AAE5E;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B,4BAA4B;AAC5B,0BAA0B;AAC1B,EAAE,EAAE,cAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,qEAAqE;AAClG,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oCAA2B;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,6BAA6B;AAC1D;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B,uBAAuB,wBAAwB;AAC1F,OAAO;AACP;AACA,iBAAiB,mCAA0B,uBAAuB,wBAAwB;AAC1F,OAAO;AACP;AACA,iBAAiB,mCAA0B,uBAAuB,wBAAwB;AAC1F;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B,uBAAuB,wBAAwB;AAC1F;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B,uBAAuB,wBAAwB;AAC1F;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,6BAA6B,2BAA2B;AACxD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,kBAAkB;AAC/C,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,6BAA6B,0DAA0D;AACvF;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,uCAAuC;AACpE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,6BAA6B,oBAAoB;AACjD,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,uCAAuC;AACpE,GAAG;AACH;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,SAAS;AACT,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,SAAS;AACT,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iBAAiB,mCAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C,OAAO;AACP;AACA,iBAAiB,mCAA0B;AAC3C,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,kBAAkB;AAC/C,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,iBAAiB;AAC9C,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,qBAAqB;AAClD,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf;AACA,iBAAiB,iCAAwB;AACzC,OAAO;AACP;AACA,iBAAiB,iCAAwB;AACzC,OAAO;AACP;AACA,iBAAiB,iCAAwB;AACzC,OAAO;AACP;AACA,iBAAiB,iCAAwB;AACzC;AACA,OAAO;AACP;AACA,iBAAiB,iCAAwB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB;AACtB;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,0DAA0D;AACvF,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,iBAAiB,oCAA2B;AAC5C,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,6BAA6B;AAC1D;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,MAAM;AACN,OAAO;AACP,OAAO;AACP;AACA;AACA,SAAS;AACT,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,OAAO;AACP;AACA;AACA,SAAS;AACT,SAAS;AACT,MAAM;AACN,OAAO;AACP,OAAO;AACP;AACA;AACA,UAAU;AACV,UAAU;AACV,WAAW;AACX,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT;AACA;AACA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,UAAU;AACV,QAAQ;AACR,YAAY;AACZ,QAAQ;AACR,OAAO;AACP,QAAQ;AACR,SAAS;AACT,UAAU;AACV,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,SAAS;AACT,WAAW;AACX,YAAY;AACZ,UAAU;AACV,SAAS;AACT,WAAW;AACX,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,iBAAiB;AACjB,UAAU;AACV,YAAY;AACZ;AACA;AACA,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,OAAO;AACP,SAAS;AACT,WAAW;AACX;AACA;AACA,UAAU;AACV,UAAU;AACV;AACA;AACA,QAAQ;AACR,QAAQ;AACR,YAAY;AACZ,SAAS;AACT,YAAY;AACZ,eAAe;AACf,aAAa;AACb,WAAW;AACX,aAAa;AACb,aAAa;AACb,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,YAAY;AACZ,QAAQ;AACR,YAAY;AACZ,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,UAAU;AACV,WAAW;AACX,WAAW;AACX,WAAW;AACX,SAAS;AACT,UAAU;AACV,cAAc;AACd,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,OAAO;AACP,OAAO;AACP,UAAU;AACV,WAAW;AACX,UAAU;AACV,WAAW;AACX,YAAY;AACZ,aAAa;AACb,YAAY;AACZ,WAAW;AACX,mBAAmB;AACnB,iBAAiB;AACjB,YAAY;AACZ,UAAU;AACV,YAAY;AACZ,UAAU;AACV,gBAAgB;AAChB,eAAe;AACf,iBAAiB;AACjB,qBAAqB;AACrB,qBAAqB;AACrB,sBAAsB;AACtB,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,OAAO;AACP,WAAW;AACX,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,YAAY;AACZ,WAAW;AACX,YAAY;AACZ,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT;AACA,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,YAAY;AACZ,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,UAAU;AACV,YAAY;AACZ,UAAU;AACV,UAAU;AACV,UAAU;AACV,wBAAwB;AACxB,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,UAAU;AACV,UAAU;AACV;AACA;AACA,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,WAAW;AACX,QAAQ;AACR,QAAQ;AACR;AACA,SAAS;AACT,WAAW;AACX,WAAW;AACX;AACA,QAAQ;AACR,aAAa;AACb,aAAa;AACb,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,aAAa;AACb,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,UAAU;AACV,mBAAmB;AACnB,oBAAoB;AACpB,cAAc;AACd,eAAe;AACf,eAAe;AACf,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,eAAe;AACf,cAAc;AACd,eAAe;AACf,QAAQ;AACR,QAAQ;AACR,YAAY;AACZ,UAAU;AACV,WAAW;AACX,4BAA4B;AAC5B,yBAAyB;AACzB,mBAAmB;AACnB,SAAS;AACT,YAAY;AACZ,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,WAAW;AACX,SAAS;AACT,UAAU;AACV,QAAQ;AACR,UAAU;AACV,cAAc;AACd,aAAa;AACb,QAAQ;AACR,WAAW;AACX,aAAa;AACb,UAAU;AACV,UAAU;AACV,mBAAmB;AACnB,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,aAAa;AACb;AACA;AACA,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,mCAAmC;AACnC,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,SAAS;AACT,SAAS;AACT,UAAU;AACV,WAAW;AACX,OAAO;AACP,OAAO;AACP,YAAY;AACZ,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,QAAQ;AACR,UAAU;AACV,WAAW;AACX,eAAe;AACf,eAAe;AACf,YAAY;AACZ,cAAc;AACd;AACA,UAAU;AACV,kBAAkB;AAClB,mBAAmB;AACnB,SAAS;AACT,SAAS;AACT,YAAY;AACZ,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,MAAM;AACN,MAAM;AACN,WAAW;AACX,SAAS;AACT,YAAY;AACZ,WAAW;AACX;AACA,OAAO;AACP,OAAO;AACP,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,oBAAoB;AACpB,kBAAkB;AAClB,0BAA0B;AAC1B,oBAAoB;AACpB,oBAAoB;AACpB,QAAQ;AACR,WAAW;AACX,WAAW;AACX,eAAe;AACf,SAAS;AACT,OAAO;AACP,iBAAiB;AACjB,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA,UAAU;AACV,iBAAiB;AACjB,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP,UAAU;AACV,SAAS;AACT,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,aAAa;AACb,kBAAkB;AAClB,yBAAyB;AACzB,aAAa;AACb,mBAAmB;AACnB,mBAAmB;AACnB,wBAAwB;AACxB,iBAAiB;AACjB,uBAAuB;AACvB,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB;AACpB,kBAAkB;AAClB,iBAAiB;AACjB,qBAAqB;AACrB,qBAAqB;AACrB,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,oBAAoB;AACpB,aAAa;AACb,kBAAkB;AAClB,mBAAmB;AACnB,oBAAoB;AACpB,uBAAuB;AACvB,qBAAqB;AACrB,kBAAkB;AAClB,qBAAqB;AACrB,sBAAsB;AACtB,mBAAmB;AACnB,sBAAsB;AACtB,WAAW;AACX,gBAAgB;AAChB,YAAY;AACZ,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,WAAW;AACX,QAAQ;AACR,QAAQ;AACR,YAAY;AACZ;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR;AACA;AACA,SAAS;AACT,SAAS;AACT,UAAU;AACV,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,SAAS;AACT,OAAO;AACP,OAAO;AACP,MAAM;AACN;AACA;AACA,UAAU;AACV,UAAU;AACV,OAAO;AACP,UAAU;AACV,MAAM;AACN,WAAW;AACX,YAAY;AACZ,OAAO;AACP,OAAO;AACP,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,YAAY;AACZ,oBAAoB;AACpB,UAAU;AACV,wBAAwB;AACxB,UAAU;AACV,UAAU;AACV,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,SAAS;AACT,QAAQ;AACR,WAAW;AACX,WAAW;AACX,SAAS;AACT,UAAU;AACV,WAAW;AACX,SAAS;AACT,cAAc;AACd,eAAe;AACf,SAAS;AACT,UAAU;AACV,cAAc;AACd,UAAU;AACV,eAAe;AACf,SAAS;AACT,WAAW;AACX,YAAY;AACZ,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP;AACA;AACA,OAAO;AACP,OAAO;AACP;AACA;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,UAAU;AACV,eAAe;AACf,gBAAgB;AAChB,gBAAgB;AAChB,iBAAiB;AACjB,OAAO;AACP,OAAO;AACP,UAAU;AACV,UAAU;AACV,SAAS;AACT,UAAU;AACV,OAAO;AACP,OAAO;AACP,SAAS;AACT,qBAAqB;AACrB,yBAAyB;AACzB,SAAS;AACT,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,QAAQ;AACR,SAAS;AACT,cAAc;AACd,YAAY;AACZ;AACA,UAAU;AACV,UAAU;AACV;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,OAAO;AACP,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,MAAM;AACN,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,YAAY;AACZ,OAAO;AACP,SAAS;AACT,UAAU;AACV,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,UAAU;AACV,OAAO;AACP,OAAO;AACP,MAAM;AACN,MAAM;AACN,OAAO;AACP,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,YAAY;AACZ,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,gBAAgB;AAChB,oBAAoB;AACpB,oBAAoB;AACpB,kBAAkB;AAClB,eAAe;AACf,qBAAqB;AACrB,gBAAgB;AAChB,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT;AACA;AACA,MAAM;AACN,MAAM;AACN,MAAM;AACN,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,WAAW;AACX,aAAa;AACb,UAAU;AACV,UAAU;AACV,aAAa;AACb,cAAc;AACd,WAAW;AACX,UAAU;AACV,aAAa;AACb,QAAQ;AACR,SAAS;AACT,UAAU;AACV,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,SAAS;AACT,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,aAAa;AACb,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,gBAAgB;AAChB,YAAY;AACZ,YAAY;AACZ,SAAS;AACT,UAAU;AACV,iBAAiB;AACjB,kBAAkB;AAClB,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,kBAAkB;AAClB,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,gBAAgB;AAChB,aAAa;AACb,UAAU;AACV,UAAU;AACV;AACA;AACA,UAAU;AACV,UAAU;AACV,MAAM;AACN;AACA;AACA,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;AACA,SAAS;AACT,OAAO;AACP,OAAO;AACP,OAAO;AACP;AACA;AACA,UAAU;AACV,UAAU;AACV,MAAM;AACN,UAAU;AACV,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,MAAM;AACN,SAAS;AACT,SAAS;AACT,SAAS;AACT,cAAc;AACd,YAAY;AACZ,YAAY;AACZ,SAAS;AACT,QAAQ;AACR,SAAS;AACT,WAAW;AACX,MAAM;AACN,UAAU;AACV,SAAS;AACT,YAAY;AACZ,UAAU;AACV,OAAO;AACP,OAAO;AACP,UAAU;AACV,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,gBAAgB;AAChB,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,kBAAkB;AAClB,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT;AACA,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,MAAM;AACN,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT;AACA;AACA,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,UAAU;AACV,UAAU;AACV,YAAY;AACZ,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,UAAU;AACV,OAAO;AACP,cAAc;AACd;AACA,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,WAAW;AACX,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,WAAW;AACX,UAAU;AACV,OAAO;AACP,UAAU;AACV,UAAU;AACV,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,SAAS;AACT,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,UAAU;AACV,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,MAAM;AACN,MAAM;AACN,oBAAoB;AACpB,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,uBAAuB;AACvB,iBAAiB;AACjB,eAAe;AACf,qBAAqB;AACrB,qBAAqB;AACrB,kBAAkB;AAClB,qBAAqB;AACrB,aAAa;AACb,mBAAmB;AACnB,iBAAiB;AACjB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,uBAAuB;AACvB,mBAAmB;AACnB,WAAW;AACX,gBAAgB;AAChB,iBAAiB;AACjB,kBAAkB;AAClB,gBAAgB;AAChB,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB,gBAAgB;AAChB,mBAAmB;AACnB,cAAc;AACd,iBAAiB;AACjB,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,YAAY;AACZ,OAAO;AACP,SAAS;AACT,UAAU;AACV,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,UAAU;AACV,cAAc;AACd,WAAW;AACX,aAAa;AACb,cAAc;AACd,oBAAoB;AACpB,iBAAiB;AACjB,eAAe;AACf,WAAW;AACX,YAAY;AACZ,WAAW;AACX,kBAAkB;AAClB,aAAa;AACb,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,MAAM;AACN,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,MAAM;AACN,SAAS;AACT,YAAY;AACZ,cAAc;AACd,UAAU;AACV,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,cAAc;AACd,QAAQ;AACR,YAAY;AACZ,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB,sBAAsB;AACtB,sBAAsB;AACtB,sBAAsB;AACtB,cAAc;AACd,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB,iBAAiB;AACjB,kBAAkB;AAClB,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,WAAW;AACX,UAAU;AACV,UAAU;AACV,kBAAkB;AAClB,mBAAmB;AACnB,OAAO;AACP,WAAW;AACX,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,SAAS;AACT,YAAY;AACZ,SAAS;AACT,UAAU;AACV,OAAO;AACP,SAAS;AACT,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA,MAAM;AACN,MAAM;AACN,MAAM;AACN,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,WAAW;AACX,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,YAAY;AACZ,WAAW;AACX,aAAa;AACb,QAAQ;AACR;AACA,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,OAAO;AACP,OAAO;AACP,UAAU;AACV,cAAc;AACd,cAAc;AACd,YAAY;AACZ,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,SAAS;AACT,SAAS;AACT,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,OAAO;AACP,OAAO;AACP,OAAO;AACP;AACA,SAAS;AACT,OAAO;AACP,UAAU;AACV,UAAU;AACV;AACA,UAAU;AACV,SAAS;AACT,UAAU;AACV,UAAU;AACV,WAAW;AACX,aAAa;AACb,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,MAAM;AACN,MAAM;AACN,YAAY;AACZ,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,QAAQ;AACR,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,WAAW;AACX,YAAY;AACZ;AACA,QAAQ;AACR,SAAS;AACT,UAAU;AACV,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,YAAY;AACZ,QAAQ;AACR,OAAO;AACP,OAAO;AACP,SAAS;AACT,MAAM;AACN,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,uBAAuB;AACvB,sBAAsB;AACtB,qBAAqB;AACrB,yBAAyB;AACzB,UAAU;AACV,UAAU;AACV,SAAS;AACT,wBAAwB;AACxB,kBAAkB;AAClB,WAAW;AACX,UAAU;AACV,WAAW;AACX,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,aAAa;AACb,QAAQ;AACR,OAAO;AACP,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,MAAM;AACN,OAAO;AACP,QAAQ;AACR,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,OAAO;AACP,OAAO;AACP,cAAc;AACd,cAAc;AACd,mBAAmB;AACnB,mBAAmB;AACnB,QAAQ;AACR,SAAS;AACT,aAAa;AACb,QAAQ;AACR,SAAS;AACT,OAAO;AACP,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,oBAAoB;AACpB,QAAQ;AACR,QAAQ;AACR;AACA,OAAO;AACP,OAAO;AACP,gBAAgB;AAChB,aAAa;AACb,wBAAwB;AACxB,cAAc;AACd,YAAY;AACZ,iBAAiB;AACjB,aAAa;AACb,cAAc;AACd,mBAAmB;AACnB,uBAAuB;AACvB,qBAAqB;AACrB,kBAAkB;AAClB,wBAAwB;AACxB,mBAAmB;AACnB,mBAAmB;AACnB,gBAAgB;AAChB,SAAS;AACT,YAAY;AACZ,UAAU;AACV,WAAW;AACX,WAAW;AACX,WAAW;AACX,mBAAmB;AACnB,sBAAsB;AACtB,wBAAwB;AACxB,WAAW;AACX,gBAAgB;AAChB,kBAAkB;AAClB,eAAe;AACf,qBAAqB;AACrB,gBAAgB;AAChB,2BAA2B;AAC3B,qBAAqB;AACrB,SAAS;AACT,WAAW;AACX,WAAW;AACX,WAAW;AACX,eAAe;AACf,oBAAoB;AACpB,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB;AACpB,uBAAuB;AACvB,yBAAyB;AACzB,mBAAmB;AACnB,wBAAwB;AACxB,qBAAqB;AACrB,0BAA0B;AAC1B,aAAa;AACb,kBAAkB;AAClB,eAAe;AACf,oBAAoB;AACpB,yBAAyB;AACzB,oBAAoB;AACpB,eAAe;AACf,oBAAoB;AACpB,YAAY;AACZ,iBAAiB;AACjB,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB;AAClB,QAAQ;AACR,aAAa;AACb,UAAU;AACV,SAAS;AACT,WAAW;AACX,OAAO;AACP,UAAU;AACV,QAAQ;AACR,SAAS;AACT,WAAW;AACX,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,eAAe;AACf,eAAe;AACf,SAAS;AACT,UAAU;AACV,OAAO;AACP,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,aAAa;AACb,kBAAkB;AAClB,QAAQ;AACR,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,aAAa;AACb,cAAc;AACd,SAAS;AACT,WAAW;AACX,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,aAAa;AACb,cAAc;AACd,QAAQ;AACR;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR,iBAAiB;AACjB,mBAAmB;AACnB,kBAAkB;AAClB,oBAAoB;AACpB,MAAM;AACN,MAAM;AACN,OAAO;AACP,UAAU;AACV,SAAS;AACT,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,WAAW;AACX,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,UAAU;AACV,WAAW;AACX,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR;AACA;AACA,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR;AACA;AACA,UAAU;AACV,UAAU;AACV,OAAO;AACP,SAAS;AACT,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,SAAS;AACT,OAAO;AACP,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,wBAAwB;AACxB,kBAAkB;AAClB,SAAS;AACT,SAAS;AACT,MAAM;AACN,MAAM;AACN,SAAS;AACT,OAAO;AACP,SAAS;AACT,WAAW;AACX;AACA,QAAQ;AACR;AACA,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,WAAW;AACX,OAAO;AACP,MAAM;AACN,QAAQ;AACR,QAAQ;AACR;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,YAAY;AACZ;AACA;AACA,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,WAAW;AACX,aAAa;AACb,eAAe;AACf,mBAAmB;AACnB,OAAO;AACP;AACA,QAAQ;AACR,YAAY;AACZ,UAAU;AACV,SAAS;AACT,QAAQ;AACR,YAAY;AACZ,OAAO;AACP,OAAO;AACP,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,WAAW;AACX,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,UAAU;AACV,SAAS;AACT,MAAM;AACN,MAAM;AACN,aAAa;AACb,OAAO;AACP,UAAU;AACV,WAAW;AACX,UAAU;AACV,QAAQ;AACR,YAAY;AACZ,SAAS;AACT,WAAW;AACX,UAAU;AACV,UAAU;AACV,SAAS;AACT,aAAa;AACb;AACA,UAAU;AACV,WAAW;AACX,WAAW;AACX,MAAM;AACN,iBAAiB;AACjB,YAAY;AACZ,QAAQ;AACR,QAAQ;AACR;AACA,SAAS;AACT,MAAM;AACN,MAAM;AACN,QAAQ;AACR,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR,cAAc;AACd,eAAe;AACf,YAAY;AACZ,iBAAiB;AACjB,sBAAsB;AACtB,iBAAiB;AACjB,UAAU;AACV,eAAe;AACf,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,WAAW;AACX,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,QAAQ;AACR,cAAc;AACd,gBAAgB;AAChB,UAAU;AACV,SAAS;AACT,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,eAAe;AACf,WAAW;AACX,SAAS;AACT,WAAW;AACX;AACA;AACA,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,YAAY;AACZ,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV;AACA,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,SAAS;AACT,WAAW;AACX,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,WAAW;AACX,UAAU;AACV,UAAU;AACV,SAAS;AACT,UAAU;AACV,UAAU;AACV,SAAS;AACT,aAAa;AACb,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,SAAS;AACT,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,WAAW;AACX,SAAS;AACT,UAAU;AACV,QAAQ;AACR,MAAM;AACN,QAAQ;AACR,WAAW;AACX,YAAY;AACZ,SAAS;AACT,QAAQ;AACR;AACA;AACA,OAAO;AACP,OAAO;AACP,kBAAkB;AAClB,sBAAsB;AACtB,wBAAwB;AACxB,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,qBAAqB;AACrB,cAAc;AACd,cAAc;AACd,cAAc;AACd,iBAAiB;AACjB,uBAAuB;AACvB,kBAAkB;AAClB,gBAAgB;AAChB,sBAAsB;AACtB,sBAAsB;AACtB,mBAAmB;AACnB,sBAAsB;AACtB,cAAc;AACd,oBAAoB;AACpB,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;AACrB,oBAAoB;AACpB,mBAAmB;AACnB,YAAY;AACZ,iBAAiB;AACjB,kBAAkB;AAClB,mBAAmB;AACnB,iBAAiB;AACjB,oBAAoB;AACpB,sBAAsB;AACtB,qBAAqB;AACrB,oBAAoB;AACpB,iBAAiB;AACjB,oBAAoB;AACpB,eAAe;AACf,kBAAkB;AAClB,QAAQ;AACR,gBAAgB;AAChB,SAAS;AACT,SAAS;AACT,OAAO;AACP,UAAU;AACV,cAAc;AACd,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,WAAW;AACX,gBAAgB;AAChB,QAAQ;AACR,UAAU;AACV,YAAY;AACZ,SAAS;AACT,eAAe;AACf,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,SAAS;AACT,SAAS;AACT,YAAY;AACZ,eAAe;AACf,WAAW;AACX,MAAM;AACN,UAAU;AACV,UAAU;AACV,SAAS;AACT,MAAM;AACN,MAAM;AACN,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,OAAO;AACP,OAAO;AACP,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,UAAU;AACV,YAAY;AACZ,SAAS;AACT,OAAO;AACP,OAAO;AACP,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX;AACA,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,YAAY;AACZ,SAAS;AACT,QAAQ;AACR,OAAO;AACP,OAAO;AACP,UAAU;AACV,SAAS;AACT,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,kBAAkB;AAClB,kBAAkB;AAClB,YAAY;AACZ,iBAAiB;AACjB,mBAAmB;AACnB,gBAAgB;AAChB;AACA,OAAO;AACP,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,OAAO;AACP,UAAU;AACV,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,SAAS;AACT,eAAe;AACf,iBAAiB;AACjB,UAAU;AACV,YAAY;AACZ,QAAQ;AACR,SAAS;AACT,OAAO;AACP,QAAQ;AACR,SAAS;AACT,UAAU;AACV,UAAU;AACV,OAAO;AACP,QAAQ;AACR,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,aAAa;AACb,QAAQ;AACR,SAAS;AACT,UAAU;AACV,SAAS;AACT,UAAU;AACV,QAAQ;AACR,SAAS;AACT,UAAU;AACV,YAAY;AACZ,cAAc;AACd,SAAS;AACT,UAAU;AACV,YAAY;AACZ,cAAc;AACd,OAAO;AACP,UAAU;AACV,UAAU;AACV,sBAAsB;AACtB,gBAAgB;AAChB,qBAAqB;AACrB,kBAAkB;AAClB,uBAAuB;AACvB,eAAe;AACf,UAAU;AACV,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,mBAAmB;AACnB,eAAe;AACf,SAAS;AACT,OAAO;AACP,OAAO;AACP,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,WAAW;AACX,SAAS;AACT,SAAS;AACT,WAAW;AACX,WAAW;AACX,UAAU;AACV,UAAU;AACV,YAAY;AACZ,aAAa;AACb,eAAe;AACf,aAAa;AACb,cAAc;AACd,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,cAAc;AACd,eAAe;AACf,YAAY;AACZ,iBAAiB;AACjB,sBAAsB;AACtB,iBAAiB;AACjB,UAAU;AACV,eAAe;AACf,YAAY;AACZ,YAAY;AACZ,WAAW;AACX,YAAY;AACZ,OAAO;AACP,OAAO;AACP,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR,OAAO;AACP,OAAO;AACP,UAAU;AACV,WAAW;AACX,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,YAAY;AACZ,iBAAiB;AACjB,WAAW;AACX,WAAW;AACX,WAAW;AACX,WAAW;AACX,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV,UAAU;AACV,YAAY;AACZ,aAAa;AACb,aAAa;AACb,cAAc;AACd,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV;AACA,SAAS;AACT,OAAO;AACP,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,UAAU;AACV,OAAO;AACP,OAAO;AACP,UAAU;AACV,aAAa;AACb,aAAa;AACb,SAAS;AACT,SAAS;AACT,YAAY;AACZ,UAAU;AACV,eAAe;AACf,YAAY;AACZ,cAAc;AACd,UAAU;AACV,aAAa;AACb,SAAS;AACT,UAAU;AACV;AACA;AACA,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,cAAc;AACd,kBAAkB;AAClB,cAAc;AACd;AACA,SAAS;AACT,UAAU;AACV,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,QAAQ;AACR,UAAU;AACV,SAAS;AACT,SAAS;AACT,YAAY;AACZ,gBAAgB;AAChB,gBAAgB;AAChB,kBAAkB;AAClB,aAAa;AACb,iBAAiB;AACjB,mBAAmB;AACnB,UAAU;AACV,QAAQ;AACR,YAAY;AACZ,aAAa;AACb,WAAW;AACX,SAAS;AACT,WAAW;AACX,YAAY;AACZ,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,SAAS;AACT,oBAAoB;AACpB,qBAAqB;AACrB;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,YAAY;AACZ,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV;AACA;AACA,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,UAAU;AACV,UAAU;AACV,SAAS;AACT,UAAU;AACV,OAAO;AACP,OAAO;AACP;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,YAAY;AACZ,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT;AACA,OAAO;AACP,YAAY;AACZ,cAAc;AACd,gBAAgB;AAChB,oBAAoB;AACpB,SAAS;AACT,aAAa;AACb,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,WAAW;AACX,WAAW;AACX,cAAc;AACd,oBAAoB;AACpB,eAAe;AACf,eAAe;AACf,eAAe;AACf,iBAAiB;AACjB,iBAAiB;AACjB,kBAAkB;AAClB,SAAS;AACT,kBAAkB;AAClB,mBAAmB;AACnB,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,WAAW;AACX,WAAW;AACX,SAAS;AACT,cAAc;AACd,cAAc;AACd,UAAU;AACV,YAAY;AACZ,UAAU;AACV,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,UAAU;AACV,UAAU;AACV,QAAQ;AACR,SAAS;AACT,SAAS;AACT;AACA;AACA,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,UAAU;AACV,cAAc;AACd,YAAY;AACZ,cAAc;AACd,UAAU;AACV,SAAS;AACT,aAAa;AACb,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,YAAY;AACZ,gBAAgB;AAChB,iBAAiB;AACjB,gBAAgB;AAChB,iBAAiB;AACjB,YAAY;AACZ,mBAAmB;AACnB,oBAAoB;AACpB,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,SAAS;AACT,SAAS;AACT,SAAS;AACT,UAAU;AACV,OAAO;AACP,OAAO;AACP,UAAU;AACV,SAAS;AACT,UAAU;AACV,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,eAAe;AACf,gBAAgB;AAChB,qBAAqB;AACrB,iBAAiB;AACjB,iBAAiB;AACjB,OAAO;AACP,OAAO;AACP,SAAS;AACT,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,WAAW;AACX,SAAS;AACT,SAAS;AACT,UAAU;AACV,SAAS;AACT,SAAS;AACT,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,MAAM;AACN,MAAM;AACN,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,SAAS;AACT,OAAO;AACP,OAAO;AACP,SAAS;AACT,SAAS;AACT,MAAM;AACN,MAAM;AACN,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,SAAS;AACT,QAAQ;AACR,UAAU;AACV;AACA;AACA,UAAU;AACV,UAAU;AACV,QAAQ;AACR,QAAQ;AACR,SAAS;AACT,SAAS;AACT,OAAO;AACP,OAAO;AACP;AACA,OAAO;AACP,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR;AACA,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,UAAU;AACV,kBAAkB;AAClB,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,OAAO;AACP,QAAQ;AACR,QAAQ;AACR,WAAW;AACX,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,QAAQ;AACR;;AAE2D;AAC3D;;;ACh/JA;AACA;AACA,IAAI,mDAAmD,EAAE,yCAAW,IAAI,CAAE;AAC1E;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,EAAE;AACnC,oBAAoB,EAAE,oBAAoB,EAAE;;AAE5C;AACA;AACA;AACA;AACA;;AAEA;AACO,MAAM,YAAK;AACX;AACA;AACA;AACA;AACA;AACA,MAAM,aAAM;AACZ;;AAEP;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEP;AACO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpDP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA,6BAA6B,4FAA4F;AACzH;AACA;AACA;AACA,mGAAmG;AACnG;AACA;AACA;AACA;AACA,yEAAyE,8BAA8B;AACvG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA,yBAAyB,sBAAsB;AAC/C,aAAa,SAAS,GAAG,KAAK,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;AACA;AACA,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,eAAe;AACf,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,eAAe;AACf,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAgE;AAC7G,UAAU;AACV;AACA,uCAAuC,gEAAgE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,gBAAgB,qCAAqC;AACrD,cAAc,gBAAgB;AAC9B,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB,aAAa,WAAW;AACxB,eAAe,cAAc;AAC7B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,WAAW;AACxB,eAAe,YAAY;AAC3B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,WAAW;AACxB,eAAe,YAAY;AAC3B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,SAAS;AACtB,aAAa,WAAW;AACxB,eAAe,aAAa;AAC5B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,WAAW;AACxB,eAAe,UAAU;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,WAAW;AACxB,eAAe,WAAW;AAC1B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,WAAW;AACxB,aAAa,WAAW;AACxB,eAAe,aAAa;AAC5B;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,mBAAmB;AAChC,aAAa,WAAW;AACxB,eAAe,YAAY;AAC3B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,WAAW;AACxB,aAAa,WAAW;AACxB,eAAe,YAAY;AAC3B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,WAAW;AACxB,eAAe,gBAAgB;AAC/B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,MAAM;AACnB,aAAa,WAAW;AACxB,eAAe,SAAS;AACxB;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,aAAa,MAAM;AACnB,aAAa,WAAW;AACxB,eAAe,cAAc;AAC7B;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE;AACxC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAA0D;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4CAA4C;AACtF;AACA;AACA;AACA;;AAEA;AACkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,WAAW;AACX;AACA,kDAAkD;AAClD;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA,MAAM;AACN,iDAAiD,KAAK;AACtD;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,UAAU,KAAK,SAAS;AAC5E;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA,oDAAoD,UAAU,KAAK,SAAS;AAC5E;AACA;AACA;AACA;AACA,6BAA6B,SAAS,EAAE,oCAAoC;AAC5E;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;;AAEA;AACA;AACA,0BAA0B,6BAA6B,IAAI,gCAAgC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0CAA0C;AACtD,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;;AAEA;AACA,eAAe,IAAI;AACnB;AACA;AACA,YAAY,QAAQ;AACpB,aAAa;AACb;AACA;AACA,YAAY,kBAAkB;AAC9B,iBAAiB,GAAG,IAAI,UAAU,EAAE,QAAQ;AAC5C,uBAAuB;AACvB;AACA;AACA,2BAA2B,OAAO,0BAA0B;AAC5D;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA,gBAAgB,yBAAyB,EAAE,QAAQ;AACnD;AACA;AACA;AACA;;AAEA;AAC+E;AAC/E,0BAA0B,IAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,iBAAiB,GAAI,IAAI,qBAAqB,EAAE,QAAQ;AACxD,uBAAuB;AACvB;AACA;AACA;AACA,WAAW,OAAQ,6BAA6B;AAChD,WAAW,kBAAkB,GAAG,0BAA0B;AAC1D;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,6BAA6B,kBAAkB,GAAG,0BAA0B;AAC5E,gBAAgB,yBAAyB,WAAW,2BAA2B;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC+E;AAC/E,WAAW,IAAK;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB,MAAM;AACN;AACA,kBAAkB,GAAI,IAAI,MAAM,EAAE,QAAQ;AAC1C,kBAAkB,GAAI,KAAK,yBAAyB;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA,6CAA6C,OAAQ,aAAa;AAClE;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB,EAAE,QAAQ,IAAI,cAAc;AACrE;AACA;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AAC+E;AAC/E;AACA;AACA,YAAY,mBAAmB;AAC/B,iBAAiB,GAAI,IAAI,IAAK,yBAAyB,EAAE,QAAQ;AACjE,uBAAuB;AACvB;AACA,8CAA8C,OAAQ,WAAW,EAAE,QAAQ;AAC3E;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA,gBAAgB,wBAAwB,IAAI,SAAS,EAAE,QAAQ;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,UAAU,6CAA6C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;AAGE;AACF;;;ACphEa;;AAEb,IAAI,iBAAW,EAAE,yBAAmB,EAAE,cAAQ,EAAE,UAAI,EAAE,WAAK;AAC3D;AACA,IAAI,WAAW,wCAAqB,qCAAU,sBAAM,eAAG,EAAE,yCAAW,IAAI,CAAE;AAC1E,CAAC,WAAK;AACN;;AAEA,MAAM,OAAC;AACP,WAAW,yBAAmB,IAAI,cAAQ,YAAY,UAAI;AAC1D,EAAE,iBAAW,YAAY,iBAAW,YAAY,WAAK;AACrD;;AAEA;AACA,QAAQ,UAAI;AACZ,OAAO,UAAI;AACX,MAAM,UAAI;AACV,SAAS,UAAI;AACb,YAAY,UAAI;AAChB,UAAU,UAAI;AACd,SAAS,UAAI;AACb,gBAAgB,UAAI;;AAEpB;AACA,QAAQ,UAAI;AACZ,MAAM,UAAI;AACV,QAAQ,UAAI;AACZ,SAAS,UAAI;AACb,OAAO,UAAI;AACX,UAAU,UAAI;AACd,OAAO,UAAI;AACX,QAAQ,UAAI;AACZ,OAAO,UAAI;AACX,OAAO,UAAI;;AAEX;AACA,UAAU,UAAI;AACd,QAAQ,UAAI;AACZ,UAAU,UAAI;AACd,WAAW,UAAI;AACf,SAAS,UAAI;AACb,YAAY,UAAI;AAChB,SAAS,UAAI;AACb,UAAU,UAAI;AACd;;AAEA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;;AAEb,aAAa,OAAC;AACd,YAAY,OAAC;AACb,WAAW,OAAC;AACZ,cAAc,OAAC;AACf,iBAAiB,OAAC;AAClB,eAAe,OAAC;AAChB,cAAc,OAAC;AACf,qBAAqB,OAAC;;AAEtB,aAAa,OAAC;AACd,WAAW,OAAC;AACZ,aAAa,OAAC;AACd,cAAc,OAAC;AACf,YAAY,OAAC;AACb,eAAe,OAAC;AAChB,YAAY,OAAC;AACb,aAAa,OAAC;AACd,YAAY,OAAC;AACb,YAAY,OAAC;;AAEb,eAAe,OAAC;AAChB,aAAa,OAAC;AACd,eAAe,OAAC;AAChB,gBAAgB,OAAC;AACjB,cAAc,OAAC;AACf,iBAAiB,OAAC;AAClB,cAAc,OAAC;AACf,eAAe,OAAC;;AAEhB;AACA;;AAEA,SAAS,UAAI;AACb;AACA,gBAAgB,KAAK;AACrB,iBAAiB,MAAM;AACvB,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA,kCAAkC,OAAC;AACnC;AACA,iDAAiD,OAAC;AAClD;AACA;;AAEA,0CAAe,OAAC,EAAC;;;AC7GjB,IAAI,cAAQ;AACZ,IAAI,eAAS;AACb,IAAI,sBAAgB;AACpB,IAAI,uBAAiB;AACrB,IAAI,kBAAY;AAChB,IAAI,kBAAY;AAChB,IAAI,gBAAU;AACd,uBAAuB,uBAAiB,mBAAmB,aAAa;AACxE;AACA,IAAI,iBAAW;AACf;AACA,oBAAoB,uBAAiB;AACrC,WAAW,kBAAY;AACvB,QAAQ,eAAS,YAAY,2CAA2C,sBAAgB,iCAAiC;AACzH;AACA;AACA;AACA,IAAI,aAAO,wDAAwD,cAAQ,CAAC,kBAAY,WAAW,EAAE,iBAAW;AAChH;AACA;AACA;AACA;AACA,0CAA0C,eAAS,sBAAsB,8BAA8B;AACvG;AACA;;AAEA;AACA,yBAAyB,gBAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,wBAAwB,aAAO;;AAE/B;AACA;AACA;AACA;AACA,IAAI,aAAK;AACT,IAAI,YAAI;AACR,IAAI,WAAG;AACP,IAAI,iBAAS;AACb,IAAI,cAAM;AACV,IAAI,WAAG;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gBAAgB;;AAEjB;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA,sDAAsD,WAAG,IAAI,GAAG,GAAG,GAAG;AACtE;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAG;AACzB,uBAAuB,WAAG;AAC1B,QAAQ;AACR,sBAAsB,cAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAG;AAC5B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAS;AAC1B;AACA,iBAAiB;;AAEjB;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,YAAI;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAK;AAC1B;AAIE;AACF;;;;;ACrOsB;AAC4D;AACzB;AACE;AACjC;AACoC;AAClC;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA;;AAEA,MAAM,cAAS;AACf;AACA;AACA,kCAAkC,cAAS;AAC3C,gBAAgB,cAAS;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,cAAS;AACpC;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC,gCAAgC,QAAQ,yBAAyB,QAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC,uGAAuG,cAAc;AACrH;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C,yCAAyC,QAAQ,0CAA0C,QAAQ;AACnG,qCAAqC,QAAQ,8BAA8B,QAAQ;AACnF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,aAAe;AAChC;AACA,GAAG;AACH;AACA;AACA,oCAAoC,cAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ,IAAI,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,qBAAqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAS,0CAA0C,SAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mDAAmD,IAAI,mBAAmB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,QAAG,GAAG,qDAAqD;AACjF;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8BAA8B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,4BAA4B,KAAK;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,aAAa;;AAEd;AACA;AACA;AACA;AACA;AACA,CAAC,oBAAoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,gBAAgB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,UAAK;AACd;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB,EAAE,UAAK;AACzC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,qCAAqC,KAAK;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,QAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,QAAQ;AAC5E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,kBAAkB,GAAG;AACrB;AACA,GAAG;AACH;AACA;AACA;AACA,uCAAuC,QAAQ,UAAU,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,YAAY,sDAAsD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,yBAAyB,YAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B,aAAa,kBAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI,+BAA+B,IAAI;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,aAAQ;AACZ;AACA;AACA;AACA;AACA,CAAC,EAAE,aAAQ,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;;AAEA,SAAS,WAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAM;AACzB;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,oEAAoE,IAAI,IAAI,qBAAqB;AACjG,cAAc,EAAE,UAAU;AAC1B;AACA;AACA;AACA;AACA,yBAAyB,UAAU,QAAQ;AAC3C;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,iCAAiC,YAAY;AAC7C,iCAAiC,YAAY;AAC7C,oDAAoD,YAAY;AAChE,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AAC3B;AACA,UAAU,+CAA+C;AACzD;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU,+CAA+C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,kBAAkB,QAAG,GAAG,qDAAqD;AAC7E;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,aAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mCAAmC;AAC/C;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,EAAE,mBAAmB;AAC9D;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C,uBAAuB,oBAAoB;AAC3C,uBAAuB,oBAAoB;AAC3C,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;;AAEA,EAAE,MAAM;AACR;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,cAAS;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,KAAK,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA,kDAAkD,IAAI,QAAQ,QAAQ;AACtE;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,8GAA8G,GAAG,8CAA8C,MAAM;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,UAAU,cAAc,gBAAgB;AACvE;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,iBAAiB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,0CAA0C,UAAU,oBAAoB,MAAM;AAC9E;AACA;AACA;AACA;AACA;AACA,0CAA0C,2BAA2B,UAAU,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,2BAA2B,IAAI,MAAM;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,eAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,oBAAoB,eAAU;AAC9B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C,IAAI;AACJ,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA,6CAA6C,GAAG;AAChD,yBAAyB,KAAK,yBAAyB,SAAS;AAChE,IAAI;AACJ,yBAAyB,KAAK,kBAAkB,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA,qCAAqC,GAAG;AACxC;AACA,IAAI;AACJ,yBAAyB,KAAK,2CAA2C,QAAQ;AACjF;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB,gBAAgB,eAAe,IAAI,gBAAgB;AAC7F,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,gBAAgB,iBAAiB,kBAAkB,eAAe;AAC3G;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM,WAAW,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU,SAAS,aAAa,sBAAsB,SAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;AACA;AACA;AACA,yBAAyB,OAAO;AAChC,UAAU;AACV,wBAAwB,kBAAkB;AAC1C;AACA,OAAO;AACP;AACA,kBAAkB,QAAQ,6CAA6C,UAAU,0BAA0B,MAAM;AACjH;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,mCAAmC,gBAAgB,kBAAkB,kBAAkB,0CAA0C,iBAAiB,EAAE,kBAAkB;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,YAAY,aAAa;AACzB;AACA,2BAA2B,IAAI,uBAAuB,iBAAiB;AACvE,MAAM;AACN,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA,2BAA2B,IAAI;AAC/B;AACA,2BAA2B,IAAI,qBAAqB,IAAI,IAAI,IAAI;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;;AAEA;AACA,UAAU,yBAAyB;AACnC,kBAAkB,KAAK,mCAAmC,QAAQ,sBAAsB,QAAQ;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO,iCAAiC,WAAW,oBAAoB,UAAU;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D;AACA,+BAA+B,MAAM,EAAE,QAAQ,EAAE,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB,gBAAgB,eAAe,IAAI,gBAAgB;AAC7F;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B,YAAY,QAAQ;AACpB,kDAAkD,KAAK,wBAAwB,MAAM,uDAAuD,KAAK,wBAAwB,MAAM;AAC/K;AACA;AACA,kDAAkD,KAAK;AACvD;AACA,qCAAqC,eAAe;AACpD;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,WAAW,0BAA0B,eAAe;AACxE,+CAA+C,MAAM,GAAG,MAAM,0CAA0C,QAAQ,OAAO,MAAM,GAAG,MAAM,sDAAsD,QAAQ;AACpM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA,QAAQ;AACR,8CAA8C,gBAAgB;AAC9D;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,QAAQ;AAC1E;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB;AACtB,wBAAwB,aAAa,mBAAmB,WAAW;AACnE;AACA;AACA;AACA,sBAAsB;AACtB,wBAAwB,aAAa;AACrC;AACA;AACA;AACA,sBAAsB;AACtB,6CAA6C,mBAAmB;AAChE,wBAAwB,aAAa,iBAAiB,OAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA,sBAAsB,UAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAQ;AACzC,yDAAyD,UAAU;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oHAAoH,cAAc;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,+GAA+G,GAAG,+CAA+C,MAAM;AACvK;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,KAAK;AACL;AACA,cAAc,mBAAmB;AACjC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe,cAAc,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA,+CAA+C,IAAI;AACnD;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc,4DAA4D,eAAe;AAC1G;AACA;AACA;AACA,iBAAiB,cAAc,uDAAuD,iBAAiB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,yBAAyB,OAAO,4CAA4C,qBAAqB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA,yBAAyB,OAAO,8CAA8C,SAAS;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,+BAA+B,mBAAmB;AACrF;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc,yBAAyB,aAAa;AAC9E;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM;AAC1D;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC,4BAA4B,MAAM,6BAA6B,OAAO;AACtE;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,QAAQ;AACR,uBAAuB,GAAG;AAC1B;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,UAAU,sBAAsB,YAAY;AAC1D;AACA,kBAAkB,WAAW;AAC7B,YAAY,UAAU,qBAAqB,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,GAAG;AACvD,mBAAmB,cAAc,wBAAwB,WAAW,WAAW;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,GAAG,SAAS,GAAG;AAC9E,sBAAsB,aAAa;AACnC,wBAAwB,aAAa,uBAAuB,WAAW,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB,mCAAmC,kBAAkB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB,uBAAuB,IAAI;AAC5D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA,4BAA4B,QAAQ,0BAA0B,QAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA,+CAA+C,kBAAkB,eAAe,QAAQ;AACxF,6BAA6B,oBAAoB,oBAAoB,KAAK;AAC1E;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA,uDAAuD,OAAO,0BAA0B,OAAO;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO,YAAY,OAAO;AAC7D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD,6BAA6B,cAAc;AAC3C,sEAAsE,aAAa,UAAU,UAAU;AACvG;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,2BAA2B,cAAc;AACzC;AACA,+EAA+E,4BAA4B,2BAA2B,UAAU,qCAAqC,aAAa,UAAU,UAAU;AACtN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,2EAA2E,aAAa,UAAU,UAAU;AAC5G;AACA,UAAU;AACV,mFAAmF,aAAa,QAAQ,yBAAyB,YAAY,UAAU;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,mCAAmC,UAAU,sCAAsC,KAAK;AACxF;AACA,yBAAyB,UAAU;AACnC,+DAA+D,GAAG;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS,mCAAmC,UAAU;AAC5F;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA,2CAA2C,oCAAoC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,MAAM;AACN;AACA;AACA,YAAY,aAAa;AACzB;AACA,MAAM;AACN,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA,6CAA6C,GAAG;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wBAAwB;AACtF;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA,KAAK;AACL;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oCAAoC;AAClD,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA,6CAA6C,GAAG;AAChD;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU,sBAAsB,aAAa;AACrE;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,KAAK;AACrD;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,GAAG;AAC9C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA,QAAQ;AACR;AACA;AACA,sBAAsB,eAAe,qCAAqC,WAAW;AACrF;AACA;AACA,QAAQ;AACR;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA,QAAQ;AACR;AACA;AACA,sBAAsB,eAAe,sCAAsC,WAAW;AACtF;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,GAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,IAAI,kDAAkD;AACtD,IAAI,yCAAyC;AAC7C,IAAI,4CAA4C;AAChD,IAAI,yCAAyC;AAC7C,IAAI,8CAA8C;AAClD,IAAI,uCAAuC;AAC3C,IAAI,2CAA2C;AAC/C,IAAI;AACJ;AACA;AACA,kDAAkD,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA,sCAAsC,cAAc,sBAAsB,aAAa;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,0DAA0D,GAAG;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,4DAA4D,GAAG;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,4CAA4C;AAC5C,wDAAwD;AACxD;AACA;AACA,cAAc;AACd,aAAa;AACb,cAAc;AACd,YAAY;AACZ,gBAAgB;AAChB,YAAY;AACZ,eAAe;AACf;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,KAAK,wBAAwB,YAAY;AAC3E;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,GAAG;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA,kCAAkC,KAAK,0DAA0D,QAAQ;AACzG;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW,QAAQ,eAAe;AAC7D;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,QAAQ,KAAK,QAAQ,6BAA6B,QAAQ;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,MAAM,UAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,sCAAsC,IAAI,mBAAmB,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAK;AAChB;AACA;AACA,wBAAwB;AACxB,wEAAwE,KAAK;AAC7E;AACA,KAAK;AACL;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa,8BAA8B,oBAAoB;AACzH;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,aAAa;AAClE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;;AAEA;AACA;AACA,MAAM,kCAAkC,sCAAsC;AAC9E,MAAM,mCAAmC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,sBAAsB,WAAW,sBAAsB,eAAe,MAAM,eAAe;AAC3F,KAAK;AACL;AACA;AACA,iBAAiB,gBAAgB,yCAAyC,oBAAoB,gBAAgB,oBAAoB;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,YAAY;AACxB;AACA;AACA;AACA,YAAY,cAAc;AAC1B,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS,yBAAyB,KAAK;AAC5F;AACA,0BAA0B,SAAS,6BAA6B,kBAAkB,KAAK,kBAAkB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,GAAG;AAC1B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,0BAA0B,QAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,eAAe;AACnE,IAAI;AACJ,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,QAAU;AACvB;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA,uDAAuD,eAAe;AACtE,YAAY,mBAAmB;AAC/B,YAAY,iCAAiC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,2CAA2C;AAC3C;AACA;AACA,kBAAkB;AAClB,UAAU;AACV,kBAAkB;AAClB;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,OAAO;AACjE;AACA,kBAAkB,QAAQ,uBAAuB,OAAO;AACxD;AACA,kBAAkB,SAAS,yBAAyB,QAAQ;AAC5D;AACA,kBAAkB,QAAQ;AAC1B;AACA,kBAAkB,SAAS,8BAA8B,QAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,aAAa;AACvE;AACA;AACA;AACA,mDAAmD,GAAG;AACtD;AACA;AACA,4BAA4B,cAAc,0BAA0B,aAAa;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa,wDAAwD,oCAAoC;AACtH;AACA,0CAA0C,GAAG;AAC7C;AACA,wBAAwB,cAAc,4BAA4B,aAAa;AAC/E;AACA;AACA;AACA;AACA,cAAc,eAAe,4BAA4B,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA,mBAAmB,eAAe,iCAAiC,cAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,qDAAqD,KAAK,SAAS,KAAK;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB,IAAI,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,cAAc,UAAU;AACxB;AACA;AACA;AACA,iBAAiB,EAAE;AACnB,0BAA0B;AAC1B;AACA;AACA;AACA,gBAAgB,EAAE,GAAG,EAAE;AACvB,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uCAAuC,KAAK;AAC5C,4CAA4C,KAAK;AACjD,mDAAmD,KAAK;AACxD,sDAAsD,KAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,KAAK,SAAS,gBAAgB,EAAE,IAAI;AAC9G;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa,qCAAqC,aAAa;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa,iCAAiC,aAAa;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAAK;AAChC,MAAM;AACN,2BAA2B,KAAK;AAChC;AACA;AACA;;AAEA,QAAQ,oBAAoB,EAAE,KAAK;AACnC,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO,EAAE,EAAE,eAAe,aAAa,EAAE,iBAAiB;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA,+BAA+B,OAAO,EAAE,KAAK;AAC7C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,qCAAqC,uBAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,uCAAuC,GAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,uCAAuC,GAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,kCAAkC,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,kCAAkC,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,gCAAgC,GAAG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,gCAAgC,GAAG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,qCAAqC,GAAG;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAS,qCAAqC,GAAG;AAC7D;;AAEA,gCAAgC;AAChC,UAAU,aAAa,cAAc,cAAc,sBAAsB;AACzE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,QAAG,GAAG,qDAAqD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA,kDAAkD,4BAA4B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN,eAAe;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc;AACrF;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,yCAAyC,MAAM,KAAK,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,QAAQ;AACR,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,0DAA0D,MAAM,KAAK,QAAQ;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,uBAAuB,YAAY,GAAG,KAAK;AAC3C;AACA,yBAAyB,oBAAoB,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;;AAEA,MAAM,SAAI;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,0BAA0B;AAC1B;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sDAAsD,aAAQ;AAC9D;AACA;AACA,sDAAsD,aAAQ;AAC9D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,KAAK;AAC1F;AACA;AACA;AACA,oDAAoD,KAAK;AACzD;AACA;AACA,kEAAkE,OAAO;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAA0B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,KAAK,GAAG,OAAO;AAClD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAQ;AACzC,0BAA0B,aAAQ;AAClC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK;AACzD,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB,aAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,sEAAsE,WAAW;AAC5G;AACA;AACA;AACA;AACA,qCAAqC,WAAW,yCAAyC,IAAI;AAC7F;AACA;AACA;;AAEA;AACA,+CAA+C,aAAa;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,mBAAmB,iCAAiC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA,2DAA2D,KAAK,KAAK,YAAY;AACjF,MAAM;AACN,2DAA2D,KAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,gDAAgD,gBAAgB,KAAK,QAAQ;AAC7E;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,cAAS;AACvB;AACA;AACA;AACA;AACA,gBAAgB,cAAS;AACzB;AACA;AACA;AACA,gBAAgB,cAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,gDAAgD,gBAAgB,KAAK,QAAQ;AAC7E;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,aAAQ;AACd,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,cAAc;AACd,aAAa;AACb;AACA;AACA;AACA,WAAW,aAAQ;AACnB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA,qDAAqD,eAAe;AACpE;AACA;AACA,wBAAwB,wBAAwB;AAChD,mBAAmB,0BAA0B;AAC7C,qBAAqB,mCAAmC;AACxD,oBAAoB,4BAA4B,GAAG,eAAe;AAClE,mBAAmB,OAAO;AAC1B;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,YAAO;AACb,SAAS,mBAAc;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS,qBAAgB;AACzB,+BAA+B,YAAO;AACtC,UAAU,0BAA0B,EAAE,mBAAc;AACpD;AACA,wBAAwB,YAAO;AAC/B;AACA,6BAA6B,eAAe;AAC5C,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD,MAAM;AACN,iDAAiD,KAAK;AACtD;AACA,GAAG;AACH;AACA,SAAS,cAAS;AAClB,iCAAiC,KAAK;AACtC;AACA;AACA;AACA,oBAAoB,aAAa,GAAG,eAAe;AACnD;AACA,SAAS,KAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,wCAAwC,KAAK,gBAAgB,KAAK;AAClE,cAAc,KAAK;AACnB,iBAAiB,KAAK,SAAS,eAAe;AAC9C;AACA;AACA;AACA,OAAO,KAAK;AACZ;AACA;AACA,uBAAuB,SAAS,WAAW,SAAS;AACpD;AACA;AACA;AACA,mBAAmB,qBAAgB;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB,KAAK,oBAAoB,EAAE,wBAAwB;AACtE;AACA;AACA,mBAAmB,KAAK,mBAAmB,EAAE,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB,EAAE,cAAS,kBAAkB;AACjE;AACA;AACA,oBAAoB,kBAAkB,EAAE,cAAS,sBAAsB;AACvE;AACA,SAAS,KAAK,yBAAyB,uBAAuB;AAC9D;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,EAAE,KAAK,0BAA0B;AACjC,EAAE;AACF;AACA;AACA,SAAS,YAAO;AAChB,iBAAiB,OAAS;AAC1B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,OAAO,EAAE,MAAM;AAC3B;AACA,oBAAoB,YAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB,GAAG,KAAK,GAAG,OAAO;AAC5D,gBAAgB,SAAS,IAAI,aAAa,GAAG,eAAe,IAAI;AAChE;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,2BAAsB;AAC/B,UAAU,mCAAmC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM,kCAAkC,SAAS,qCAAqC,QAAQ;AACrG;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB;;AAEhB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,MAAM;AAC7C;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,QAAQ;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,iBAAiB;AACjB,mBAAmB,MAAM;AACzB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM,EAAE,+BAA+B,EAAE,MAAM;AAC9D;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB,EAAE,UAAU;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB;AACA,YAAY,MAAM;AAClB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,GAAG;;AAEf;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,YAAY,GAAG;;AAEf;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,iCAAiC;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;;AAEA;AACA,cAAc,UAAU;;AAExB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,aAAa;AACxD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,GAAG,mBAAmB,aAAa;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,KAAW,IAAI,yCAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,+DAAe;AACjD,0BAA0B,sFAAsC;;AAEhE;AACA;AACA;;AAEA;;AAEsjC;AACtjC;;;ACxybgV;;AAEhV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA,oCAAoC,eAAe;AACnD,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA,8BAA8B,mBAAmB;AACjD,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB,GAAG,KAAK,GAAG,QAAQ,WAAW,OAAO;AACjF;AACA;AACA,kFAAkF,KAAK;AACvF;AACA;AACA;AACA;AACA;AACA,8BAA8B,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA,uBAAuB,MAAM,SAAS,MAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,UAAU,MAAM;AAC7C,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,MAAM,IAAI,MAAM;AACvC,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB,gBAAgB,cAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,2BAAO,EAAE,CAAC;AACnB;;AAEA;AACA,UAAU,yBAAyB;AACnC;AACA,4BAA4B,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,MAAM,qBAAQ;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,qBAAQ;AACf;AACA,GAAG;AACH;;AAEwE;AACxE;;;AC9ciG;AACgpB;AACrqB;AAC/D;AACU;AACa;AACH;AAClB;AACiB;AAChB;AAChB;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP,gBAAgB,mCAAmC;AACnD;AACA;AACA,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sBAAsB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,SAAS,mBAAmB,YAAY;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AAC9B;AACP;AACA;AACA;;;;;;;;;;ACnXA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACvBD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkG;AACc;AACX;AACX;AACA;AACnD;AACgB;AAC2B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ,GAAG,2CAA2C;AAC9D;AACA;AACA,QAAQ,wEAAQ,GAAG,4CAA4C;AAC/D;AACA;AACA,CAAC,CAAC,yEAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAA4C;AAC1F,oDAAoD,kDAAkD;AACtG,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA,4BAA4B,yDAAK;AACjC;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB;AACrB;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,yCAAyC;AACzC,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAS;AAC9B;AACA,QAAQ,2EAAW;AACnB;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAM;AACnC;AACA,YAAY,wEAAQ;AACpB;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS,8EAAkB,yBAAyB;AAC7F;AACA;AACA,gEAAgE,8EAAkB;AAClF;AACA;AACA,uCAAuC,uEAAO;AAC9C,iDAAiD;AACjD;AACA,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uEAAO;AAC9C,iDAAiD;AACjD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oBAAoB,sEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA,QAAQ,wEAAY,eAAe,mEAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU,WAAW,yEAAyE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA,uCAAuC,yEAAS;AAChD,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA,oBAAoB,2EAAW,oCAAoC,2EAAW;AAC9E;AACA;AACA;AACA,qBAAqB;AACrB,wBAAwB,0EAAU,iBAAiB,WAAW,0EAAU,kBAAkB,kBAAkB;AAC5G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAO;AACvB,gBAAgB,wEAAQ;AACxB;AACA;AACA,oDAAoD,0EAAU;AAC9D;AACA,0EAA0E,oBAAoB;AAC9F;AACA,YAAY,2EAAW;AACvB;AACA;AACA,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA,4DAA4D,iFAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yEAAa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,YAAY,gEAAG,+CAA+C,kCAAkC;AAChG;AACA,uBAAuB,sEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B;AACA;AACA;AACA,qDAAqD,iFAAiB;AACtE;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yEAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAW;AACvB,YAAY,wEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAO;AAChD;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAc;AACtB,QAAQ,2EAAW;AACnB,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uEAAO;AACtC;AACA;AACA;AACA;AACA;AACA,kBAAkB,uEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY,mBAAmB,mEAAO;AACtD;AACA;AACA,oBAAoB,mEAAO;AAC3B,2CAA2C,iEAAK;AAChD;AACA;AACA,qBAAqB;AACrB,oBAAoB,wEAAY,mBAAmB,mEAAO;AAC1D;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAO;AAC9B;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,2CAA2C,yEAAS;AACpD;AACA,iBAAiB,iFAAiB;AAClC,4DAA4D,0BAA0B;AACtF;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,sDAAsD,2BAA2B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY,sBAAsB,mEAAO;AACzD;AACA;AACA,oBAAoB,mEAAO;AAC3B;AACA;AACA;AACA,oBAAoB,wEAAY,sBAAsB,mEAAO;AAC7D;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB;AAC9B,2CAA2C,yEAAS;AACpD,iBAAiB,iFAAiB;AAClC,4DAA4D,0BAA0B;AACtF;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA;AACA,oBAAoB,wEAAY;AAChC,oBAAoB,wEAAY;AAChC;AACA,4CAA4C,mEAAO;AACnD,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,YAAY,wEAAY;AACxB;AACA;AACA;AACA,qBAAqB,sEAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA,uFAAuF,0EAAU;AACjG;AACA;AACA;AACA;AACA;AACA,uDAAuD,0EAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sEAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAW;AACvC;AACA;AACA,4BAA4B,wEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAQ;AACpC;AACA;AACA,4BAA4B,2EAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiB;AAC1C,wBAAwB,2EAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,0BAA0B;AACzC,iBAAiB;AACjB;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA,YAAY,iFAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAiB,uBAAuB,iFAAiB;AACtE,2BAA2B,yEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA,QAAQ,oEAAgB;AACxB,QAAQ,2EAAW;AACnB;AACA;AACA;AACA;AACA,4BAA4B,yEAAS;AACrC,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACQ;;;;;;;;;AC77CN;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;AC9Ba;;AAEb;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,oBAAoB,GAAG,YAAY,GAAG,eAAe,GAAG,oBAAoB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,gBAAgB,GAAG,2BAA2B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,sBAAsB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,cAAc;AACzb,kBAAkB,mBAAO,CAAC,KAAW;AACrC,eAAe,mBAAO,CAAC,KAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,IAAI;AACzD;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA,+BAA+B,aAAa,EAAE,WAAW,EAAE,oCAAoC;AAC/F;AACA,sBAAsB;AACtB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,kBAAkB,IAAI;AACtB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,8BAA8B,qDAAqD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,kEAAkE,IAAI,cAAc,MAAM;AAC1F,uCAAuC,MAAM,gFAAgF,IAAI,KAAK,0CAA0C,GAAG,IAAI,KAAK;AAC5L,SAAS;AACT,mEAAmE,IAAI;AACvE;AACA;AACA;AACA;AACA,mDAAmD,IAAI,KAAK;AAC5D;AACA;AACA,SAAS;AACT,6DAA6D,gBAAgB;AAC7E;AACA,KAAK;AACL;AACA,kEAAkE,IAAI,cAAc,MAAM,yDAAyD,MAAM,oBAAoB,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AAC5M,mEAAmE,IAAI,2EAA2E,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK;AACjL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,kEAAkE,MAAM,EAAE,8BAA8B;AACxG;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,CAAC,WAAW,YAAY,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,6CAA6C,UAAU;AACvD;AACA,4CAA4C,SAAS;AACrD,4CAA4C,SAAS,6CAA6C;AAClG;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;;;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;ACvBD,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;;AAEA;;;;;;;;AChBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/FY;;AAEb,WAAW,aAAa;AACxB;;;;;;;;ACHA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACxGY;AACb,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;;AAEA;AACA;AACA;;;;;;;;;ACPa;;AAEb,WAAW,kBAAkB;AAC7B;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACoE;AACF;AACnC;AACuF;AAC1D;AACN;AACQ;AACW;AACZ;AACe;AAClC;AAC4C;AACH;AACE;AACrF,4CAA4C,iGAAa,iDAAiD,0EAA0E,EAAE,uDAAY;AAClM,kCAAkC,gFAAY;AAC9C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gFAAY;AAChD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,6BAA6B,wDAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gFAAY;AAC/C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wCAAwC,2EAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6EAAgB;AACtE;AACA;AACA;AACA;AACA;AACA,6HAA6H;AAC7H;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAS;AACpC;AACA,uBAAuB,yEAAS;AAChC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yEAAS;AAChD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAA8B;AACpD,sBAAsB;AACtB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,wFAAsB;AAC1F;AACA;AACA;AACA;AACA,eAAe,mGAAgB;AAC/B,kBAAkB,yEAAiB;AACnC;AACA,CAAC;AACD,uEAAuE,wFAAsB;AAC7F;AACA;AACA;AACA,CAAC;AACD,kGAA0B;AAC1B,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB;AACA,uFAAY,gBAAgB,iFAAM;AAClC;AACA;AACA;AACA,eAAe,uDAAY,GAAG,0DAA0D;AACxF,KAAK;AACL;AACA,CAAC;;;;;;;;;;;;;;;;;;AC9VD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiE;AACO;AACT;AACnC;AAC0F;AACxD;AACW;AAC3B;AAC2D;AAClG,+BAA+B,8FAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yEAAS;AACpE;AACA;AACA,sCAAsC,iFAAc,cAAc,2DAAQ;AAC1E;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,8EAAK,CAAC,2DAAQ,8BAA8B,EAAE,EAAE,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAkB;AACjC;AACA,iCAAiC,gFAAY;AAC7C;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC,yBAAyB,4EAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gFAAY;AAC9C;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gFAAY;AACnD;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC,yBAAyB,4EAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gFAAY;AAChD;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;AAC1B,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;;;;;;;;ACnKpB,gBAAgB,mBAAO,CAAC,KAAc;AACtC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,iBAAiB,mBAAO,CAAC,IAAc;AACvC,eAAe,mBAAO,CAAC,KAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA,IAAI,IAAI;AACR,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;AChEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,gBAAgB,YAAY,+CAA+C,WAAW;AACtF,eAAe,YAAY,wBAAwB,WAAW,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;AACA;AACA,+DAA+D,WAAW,IAAI,EAAE;AAChF,2CAA2C,OAAO,QAAQ,KAAK;AAC/D,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACvBA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA,cAAc,QAAQ;AACtB,WAAW;AACX;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACuC;AACE;AACA;AAClC;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB,IAAI,+DAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,eAAe,8DAAQ;AACvB,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;AChID,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AClCa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,wBAAwB,mBAAO,CAAC,KAAkC;;AAElE;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;ACzGD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAiB;AAC9B;AACA;AACA,CAAC;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AAC2B;AACmB;AACiD;AACxF,qCAAqC,iGAAa;AACzD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,uCAAuC,iGAAa;AAC3D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,qCAAqC,iGAAa;AACzD;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,qCAAqC,iGAAa;AACzD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,wCAAwC,iGAAa;AAC5D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,2CAA2C,iGAAa;AAC/D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,0CAA0C,iGAAa;AAC9D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,iDAAiD,iGAAa;AACrE;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,qCAAqC,iGAAa;AACzD;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,qCAAqC,iGAAa;AACzD;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,oCAAoC,iGAAa;AACxD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,wCAAwC,iGAAa;AAC5D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,yCAAyC,iGAAa;AAC7D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,mCAAmC,iGAAa;AACvD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,uCAAuC,iGAAa;AAC3D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,yCAAyC,iGAAa;AAC7D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,oCAAoC,iGAAa;AACxD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,wCAAwC,iGAAa;AAC5D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,uCAAuC,iGAAa;AAC3D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,wCAAwC,iGAAa;AAC5D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,yCAAyC,iGAAa;AAC7D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,uCAAuC,iGAAa;AAC3D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,sCAAsC,iGAAa;AAC1D,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,oCAAoC,iGAAa;AACxD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,6CAA6C,iGAAa;AACjE,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,oCAAoC,iGAAa;AACxD,UAAU,0FAAU;AACpB,WAAW,0FAAU;AACrB,YAAY,0FAAU;AACtB,aAAa,0FAAU;AACvB,CAAC,EAAE,2DAAQ;AACJ,wCAAwC,iGAAa;AAC5D;AACA;AACA;AACA;AACA,CAAC,EAAE,2DAAQ;;;;;;;;;AC5ME;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;;AAEb;;AAEA,cAAc,mBAAO,CAAC,KAAiB;;AAEvC,aAAa,mBAAO,CAAC,KAAW;AAChC,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,kBAAkB,mBAAO,CAAC,KAAiB;AAC3C,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,mBAAmB,mBAAO,CAAC,KAAkB;AAC7C,iBAAiB,mBAAO,CAAC,KAAgB;AACzC,gBAAgB,mBAAO,CAAC,KAAe;;AAEvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,YAAY,mBAAO,CAAC,KAAuB;AAC3C,UAAU,mBAAO,CAAC,IAAqB;AACvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,UAAU,mBAAO,CAAC,KAAqB;AACvC,YAAY,mBAAO,CAAC,KAAuB;AAC3C,WAAW,mBAAO,CAAC,KAAsB;;AAEzC;;AAEA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF,GAAG;AACH;;AAEA,YAAY,mBAAO,CAAC,KAAM;AAC1B,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;AAEA,iBAAiB,mBAAO,CAAC,KAAa;;AAEtC,eAAe,mBAAO,CAAC,KAAW;AAClC,iBAAiB,mBAAO,CAAC,KAAiC;AAC1D,kBAAkB,mBAAO,CAAC,KAAkC;;AAE5D,aAAa,mBAAO,CAAC,KAAuC;AAC5D,YAAY,mBAAO,CAAC,KAAsC;;AAE1D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,gDAAgD;AAChD,GAAG;AACH,sDAAsD;AACtD,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,KAAe;AAClC,aAAa,mBAAO,CAAC,IAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzXa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B;AAC/B,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,iCAAiC;AAC7C;AACA,qDAAqD,KAAK;AAC1D;AACA,wBAAwB,mBAAmB;AAC3C,qCAAqC,KAAK,KAAK,aAAa;AAC5D;AACA;AACA,2DAA2D,KAAK,KAAK,aAAa,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B,kBAAe;AACf;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AAC2D;AACD;AAC0F;AACpJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wGAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qBAAqB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mFAA4B;AACrD,oBAAoB,4EAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mFAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA,qCAAqC,mFAA4B;AACjE,gCAAgC,4EAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mFAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mFAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mFAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wGAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mFAA4B;AAClE;AACA;AACA;AACA,sDAAsD,4EAAY;AAClE,sDAAsD,4EAAY;AAClE;AACA;AACA,0DAA0D,4EAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mFAA4B;AACvD;AACA;AACA;AACA;AACA,kCAAkC,4EAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4EAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uGAA2B;AACvE;AACA;AACA;AACA,8BAA8B,mFAA4B;AAC1D;AACA,6CAA6C,iHAAgC;AAC7E;AACA,8BAA8B,mFAA4B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4EAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,6CAA6C,iHAAgC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uGAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4EAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC3WA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,kBAAkB,mBAAO,CAAC,KAAe;AACzC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,cAAc,mBAAO,CAAC,KAAY;AAClC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AChDa;;AAEb,cAAc,mBAAO,CAAC,KAAiB;;AAEvC,WAAW,mCAAmC;AAC9C;;;;;;;;;ACLa;AACb,yBAAyB,mBAAO,CAAC,KAAmC;AACpE,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C;AACA;AACA,eAAe,YAAY,wBAAwB,gBAAgB,YAAY;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA,+CAA+C,0CAA0C,GAAG,KAAK,IAAI,WAAW;AAChH;AACA;AACA,yCAAyC,QAAQ,MAAM,KAAK;AAC5D;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;ACxB2C;AACmC;AACvE,oCAAoC,iGAAe;AAC1D;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD,iCAAiC,yBAAyB;AAC1D,iCAAiC,yBAAyB;AAC1D,oCAAoC,6BAA6B;AACjE,+BAA+B,uBAAuB;AACtD,oCAAoC,4BAA4B;AAChE,uCAAuC,+BAA+B;AACtE,oCAAoC,4BAA4B;AAChE,sCAAsC,8BAA8B;AACpE,0CAA0C,kCAAkC;AAC5E,yCAAyC,iCAAiC;AAC1E,0CAA0C,kCAAkC;AAC5E,yCAAyC,iCAAiC;AAC1E,+CAA+C,uCAAuC;AACtF,+CAA+C,uCAAuC;AACtF,+CAA+C,uCAAuC;AACtF,+CAA+C,uCAAuC;AACtF,+BAA+B,uBAAuB;AACtD,8BAA8B,sBAAsB;AACpD,gCAAgC,wBAAwB;AACxD,+CAA+C,uCAAuC;AACtF,+CAA+C,uCAAuC;AACtF,kCAAkC,0BAA0B;AACrD;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAQ;AAClB;AACA,yBAAyB,2DAAQ;AACjC;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA,yBAAyB,2DAAQ;AACjC;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,yBAAyB,2DAAQ;AACjC;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;AACD;AACA,UAAU,2DAAQ;AAClB;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACnRD;AACA;AACA;AACA;AACuE;AAChE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,iEAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,qEAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,SAAS,6DAAQ;AACjB;AACA;AACA,QAAQ,6DAAQ;AAChB;AACA;AACA;AACA,wBAAwB,6DAAQ,sBAAsB,6DAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AClLA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACgF;AACT;AACvE;AACA,YAAY,uBAAuB,8BAA8B,qBAAqB;AACtF,QAAQ,uBAAuB;AAC/B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4FAAgB,QAAQ,mDAAmD,sFAAa,kFAAkF;AACjN;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjFa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACK;AACE;AACI;AACA;AACD;AAClC;AACqC;AACE;AAC5B;AACyC;AACO;AAC1F;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC,wEAAwE,2EAAU;AAClF;AACA;AACA;AACA;AACA,2CAA2C,oEAAO;AAClD;AACA;AACA;AACA,wBAAwB,mDAAK;AAC7B;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,yGAAiD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc,EAAE,kFAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,iFAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,kEAAK;AAC5B;AACA,0FAA0F,sEAAgB;AAC1G,yFAAyF,uEAAiB;AAC1G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA,uBAAuB,oFAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gEAAgE;AACxF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAO;AAC9B;AACA;AACA,uBAAuB,sEAAO;AAC9B;AACA;AACA;AACA,mBAAmB,sEAAO;AAC1B;AACA;AACA,mBAAmB,sEAAO;AAC1B;AACA;AACA,4BAA4B,yEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uDAAY,6BAA6B,EAAE;AACpE;AACA;AACA,yBAAyB,uDAAY,kFAAkF,EAAE;AACzH;AACA;AACA,yBAAyB,uDAAY,0CAA0C,EAAE;AACjF;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kGAAkB;AACjC,eAAe,2FAAe;AAC9B;AAC2B;;;;;;;;;ACtOd;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS;AACvS,eAAe,mBAAO,CAAC,IAAQ;AAC/B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,IAAQ;AAC7B,qCAAoC,EAAE,qCAAqC,oBAAoB,EAAC;AAChG,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,uCAAsC,EAAE,qCAAqC,sBAAsB,EAAC;AACpG,+CAA8C,EAAE,qCAAqC,8BAA8B,EAAC;AACpH,6CAA4C,EAAE,qCAAqC,4BAA4B,EAAC;AAChH,8CAA6C,EAAE,qCAAqC,6BAA6B,EAAC;AAClH,wCAAuC,EAAE,qCAAqC,uBAAuB,EAAC;AACtG,cAAc,mBAAO,CAAC,KAAS;AAC/B,yCAAwC,EAAE,qCAAqC,yBAAyB,EAAC;AACzG,8CAA6C,EAAE,qCAAqC,8BAA8B,EAAC;AACnH,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,4CAA2C,EAAE,qCAAqC,4BAA4B,EAAC;AAC/G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,wDAAwD,SAAS;AACjE,kBAAkB,SAAS,EAAE,UAAU,EAAE,KAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,IAAI,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,UAAU,EAAE,QAAQ,IAAI,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,uCAAuC,WAAW;AAClD,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,kBAAkB,WAAW;AAC7B;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,sBAAsB,SAAS,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,WAAW,UAAU,GAAG,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,sBAAsB;AACtB;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI;AAC/D,gDAAgD,IAAI,GAAG,EAAE;AACzD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,IAAI;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS,KAAK,WAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ,QAAQ,GAAG,QAAQ,YAAY;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,OAAO;AACvG;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,qFAAqF,QAAQ,EAAE,IAAI,EAAE,OAAO;AAC5G;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;;;;;;;;;;;;ACxrBA;AACA;AACA;AACA;AACyD;AAClD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0EAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0EAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0EAAa;AACjD;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0EAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7IA,uBAAuB,mBAAO,CAAC,KAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrGY;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;AAC1C,gBAAgB,mBAAO,CAAC,KAAY;AACpC,cAAc,mBAAO,CAAC,KAAgB;AACtC,wBAAwB,mBAAO,CAAC,KAAkB;;AAElD,iBAAiB,mBAAO,CAAC,KAAgB;AACzC;;AAEA,WAAW,4DAA4D;AACvE;AACA,WAAW,yEAAyE;AACpF;AACA,WAAW,kEAAkE;AAC7E;AACA,WAAW,kEAAkE;AAC7E;;AAEA,WAAW,aAAa;AACxB;AACA,cAAc,6BAA6B;AAC3C,gBAAgB,0CAA0C;AAC1D,gBAAgB,+BAA+B;AAC/C,gBAAgB,+BAA+B;;AAE/C,aAAa,oCAAoC;AACjD,aAAa,qBAAqB;;AAElC,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;ACxBD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;;AAEA;;;;;;;;ACnCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AChED,2CAAuC;;;;;;;;;;;;;ACAvC;AACA;AACA;AACA;AACoE;AACpE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB,mBAAmB,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW,IAAI,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB,4BAA4B,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB,4BAA4B,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChMA,aAAa,mBAAO,CAAC,KAAW;AAChC,gBAAgB,mBAAO,CAAC,GAAc;AACtC,qBAAqB,mBAAO,CAAC,KAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC3Ba;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,cAAc,mBAAO,CAAC,KAAsB;AAC5C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA,IAAI,6CAA6C;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI,oCAAoC;AAC7C;AACA,CAAC;;;;;;;;;ACnBY;AACb,WAAW,mBAAO,CAAC,KAAoC;AACvD,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kBAAkB,mBAAO,CAAC,KAA4B;AACtD,4BAA4B,mBAAO,CAAC,KAAuC;AAC3E,wBAAwB,mBAAO,CAAC,KAAmC;AACnE,oBAAoB,mBAAO,CAAC,IAAqC;AACjE,kBAAkB,mBAAO,CAAC,KAA2B;AACrD,wBAAwB,mBAAO,CAAC,KAAkC;AAClE,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;ACpEa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,0BAA0B,mBAAO,CAAC,KAAoC;AACtE,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,KAAY;AACnC,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChCA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AAC8E;AACvE,sBAAsB;AACtB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AAClC;AACP;AACA;AACA;AACA;AACO;AACP;AACO,2BAA2B,iGAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7FjD;AACA;AACA;AACA;AACsF;AACV;AACwC;AACjC;AAC9B;AAC2B;AAC1B;AACQ;AAC0B;AACtB;AAC0B;AAClD;AAC2D;AACL;AACpB;AACW;AAC8C;AACtD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACP,mCAAmC,2EAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW,IAAI,WAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAe;AAC3B,mBAAmB,iFAAe;AAClC;AACA,iBAAiB,iFAAe;AAChC;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,QAAQ;AAC9D;AACA;AACA,yCAAyC,aAAa,mBAAmB,uEAAc,uBAAuB,wFAAgB;AAC9H;AACA;AACA,yCAAyC,aAAa;AACtD;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA,mCAAmC;AAC5B;AACP;AACA;AACA;AACA;AACA,+CAA+C,uEAAc;AAC7D;AACA;AACA;AACA;AACA;AACA,oBAAoB,2GAAgC;AACpD;AACA;AACA;AACA,4BAA4B,gFAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+KAA+K,0EAAa;AAC5L;AACA;AACA,2DAA2D,uEAAc;AACzE;AACA;AACA;AACA;AACA,gBAAgB,qFAAmB;AACnC;AACA;AACA,YAAY,2FAAyB;AACrC;AACA;AACA,KAAK;AACL;AACA;AACA,aAAa,wEAAM;AACnB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,0EAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,oFAAuB,aAAa,wFAAgB;AACjH,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,yJAAyJ;AACjR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,UAAU,wFAAgB,sCAAsC;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wFAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,kEAAkE;AAClE,CAAC,sDAAsD;AAChD,kFAAkF,qFAAiB;AAC1G;AACA,yCAAyC,4FAAgB;AACzD,wCAAwC,4FAAe;AACvD,0CAA0C,gGAAiB;AAC3D,6CAA6C,0GAAoB;AACjE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAAgB;AAChB,8BAA8B,6DAAG;AACjC,cAAc,iFAAe;AAC7B;AACA,YAAY,qBAAqB,eAAe,mGAAwB;AACxE,+BAA+B,6EAAa;AAC5C;AACA,cAAc,iFAAe;AAC7B;AACA,sCAAsC,yEAAS;AAC/C,UAAU,yEAAS;AACnB,UAAU,kEAAK;AACf;AACA;AACA;AACA,cAAc,iFAAe;AAC7B;AACA,mDAAmD,wFAAgB;AACnE,uGAAuG,qEAAqE,gFAAuB,oBAAoB,uCAAuC,EAAE,sFAAQ,OAAO,qFAAiB;AAChS;AACA;AACA,oBAAoB,kBAAkB;AACtC,6DAA6D,qFAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;AC7RY;;AAEb,aAAa,mBAAO,CAAC,KAAS;;AAE9B,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACVa;;AAEb,WAAW,mBAAO,CAAC,KAAe;AAClC,iBAAiB,mBAAO,CAAC,KAAgB;;AAEzC,YAAY,mBAAO,CAAC,KAAgB;AACpC,mBAAmB,mBAAO,CAAC,KAAe;;AAE1C,WAAW,uEAAuE;AAClF;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACdA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,eAAe,mBAAO,CAAC,KAAa;AACpC,cAAc,mBAAO,CAAC,KAAY;AAClC,eAAe,mBAAO,CAAC,KAAY;AACnC,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,GAAG;AACd,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClDA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC6D;AACK;AACa;AACb;AACV;AACK;AACO;AACf;AACmB;AACgB;AAC1C;AACgD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB,+HAA+H;AACrJ;AACA;AACA;AACA;AACA,yBAAyB,+HAA+H;AACxJ;AACA;AACO;AACP;AACA;AACA;AACA,8BAA8B,gEAAK;AACnC,+BAA+B,gEAAK;AACpC;AACA;AACA,2CAA2C,gEAAK;AAChD;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAK;AAClC;AACA;AACA;AACA;AACA,6BAA6B,gEAAK;AAClC,mBAAmB,4DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uFAAgB;AAC9D;AACA;AACA;AACA,wBAAwB,uFAAgB;AACxC,8BAA8B,gEAAK;AACnC,+BAA+B,gEAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC,+BAA+B,sEAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B,kBAAkB,4DAAQ;AAC1B;AACA;AACA,6BAA6B,gEAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uFAAgB;AACxC,8BAA8B,gEAAK;AACnC,+BAA+B,gEAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAQ,gBAAgB,KAAK;AAC1D;AACA,0BAA0B,iFAAY;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA,6BAA6B,gEAAK;AAClC;AACA;AACA,kBAAkB,4DAAQ;AAC1B,kBAAkB,4DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA,eAAe,wGAAwB;AACvC;AACA;AACA;AACA,wBAAwB,uFAAgB;AACxC;AACA,2BAA2B,UAAU,gEAAK,OAAO;AACjD;AACA;AACA;AACA,oCAAoC,oFAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,2BAA2B,4DAAQ;AACnC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0CAA0C,gEAAK;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,2EAAO;AAC/B;AACA,2BAA2B,KAAK,6DAAG,oCAAoC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2EAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,wGAAwB;AACvC;AACuC;AACvC,8EAA8E,2EAAU;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,wGAAwB;AACvC;AACwC;;;;;;;;ACzNxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iDAAiD,KAAK;AACtD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,qBAAqB,mBAAO,CAAC,KAA2B;AACxD,QAAQ,gBAAgB,EAAE,mBAAO,CAAC,KAAgB;AAClD,YAAY,mBAAO,CAAC,KAAkB;AACtC,cAAc,mBAAO,CAAC,KAAmB;AACzC,eAAe,mBAAO,CAAC,KAAU;AACjC,cAAc,mBAAO,CAAC,KAAS;;;;;;;;;AC5IlB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACVA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrFY;AACb,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiF;AACM;AACd;AACX;AACY;AAC1C;AAC+B;AACa;AACU;AACC;AACN;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gCAAgC,gFAAe;AAC/C,yCAAyC,2FAAc,aAAa,8DAA8D;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+FAAqB;AACtD;AACA,mCAAmC,oGAAgB;AACnD;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gGAAwB;AACzD;AACA;AACA;AACA,CAAC;AACD;AACA,eAAe,oFAAgB;AAC/B,eAAe,sFAAc;AAC7B;AAC4B;AACrB;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,mFAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0CAA0C;AAC1C;AACA,kBAAkB;AAClB;;;;;;;;AC7HA,eAAe,mBAAO,CAAC,KAAmB;AAC1C,cAAc,mBAAO,CAAC,KAAkB;AACxC,WAAW,mBAAO,CAAC,KAAiB;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5DA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzED;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;AC5FD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiE;AACQ;AACL;AACwC;AACxC;AACO;AACL;AACJ;AACa;AACpC;AACgC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wEAAwE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAe;AAC9B,eAAe,0FAAkB;AACjC,eAAe,iFAAe;AAC9B;AACuB;AACvB;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C,gCAAgC,oEAAO;AACvC;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oHAAoH;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ,GAAG,UAAU;AAC5E;AACA;AACA,0CAA0C,QAAQ,GAAG,UAAU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+FAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kEAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6HAA6H,iEAAc;AAC3I;AACA;AACA;AACA;AACA,+CAA+C,wEAAS;AACxD;AACA,iIAAiI,oEAAiB;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAW,iCAAiC,kEAAW;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAe;AAC9B,eAAe,0FAAkB;AACjC,eAAe,0FAAkB;AACjC;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C;AACA;AACA;AACA;AACA,oCAAoC,6EAAgB;AACpD;AACA,qCAAqC,sFAAsF;AAC3H,SAAS;AACT;AACA,8BAA8B,+DAAY;AAC1C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uDAAuD,gFAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAoE;AACjH;AACA,aAAa;AACb;AACA,yCAAyC,wFAAwF;AACjI,aAAa;AACb;AACA,gCAAgC,4EAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAe;AAC9B,eAAe,0FAAkB;AACjC,eAAe,0FAAkB;AACjC;AACA;AACA,eAAe,qEAAc;AAC7B;AACA,iBAAiB,2EAAQ;AACzB,oBAAoB,QAAQ,GAAG,GAAG;AAClC,eAAe,2DAAQ,wBAAwB,EAAE;AACjD,gBAAgB;AAChB,KAAK;AACL,mBAAmB,2EAAQ;AAC3B,sBAAsB,QAAQ,GAAG,GAAG;AACpC;AACA,wBAAwB,oCAAoC;AAC5D,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACO;AACP,WAAW,2EAAQ;AACnB,mCAAmC,UAAU;AAC7C,eAAe,2DAAQ;AACvB;AACA;AACA;AACA,mFAAmF;AACnF;AACA,gGAAgG,UAAU,2BAA2B,UAAU;AAC/I;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;ACrZA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkF;AACE;AACoB;AACL;AACT;AACS;AACH;AACf;AACjF,kFAAkF,mHAAoB;AACtG;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAkB;AACjC,eAAe,+FAAkB;AACjC,eAAe,yGAAoB;AACnC,eAAe,4GAAqB;AACpC,eAAe,0FAAe;AAC9B,eAAe,4GAAqB;AACpC;AAC0C;AAC1C,kGAA0B,CAAC,mHAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnC/C,SAAS,0BAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,kBAAkB,MAAyC,GAAG,CAAiB;AAC/E,kBAAkB,MAAyC,GAAG,CAAiB;AAC/E,MAAM,uBAAI;AACV;AACA,MAAM,qBAAE;AACR;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAc;AACpB,MAAM,yBAAM,iBAAiB,iCAAc;AAC3C,MAAM,0BAAO;AACb;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAQ;AACd;AACA,MAAM,2BAAQ;AACd;AACA,UAAU,2BAAQ;AAClB;AACA;AACA;AACA,MAAM,4BAAS;AACf;AACA;AACA;AACA,8BAA8B,2BAAQ;AACtC,uCAAuC,0EAAO;AAC9C;AACA;AACA,CAAC;AACD,MAAM,qCAAkB,mBAAmB,0EAAO;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,MAAM,4BAAS;AACf;AACA;AACA,MAAM,6BAAU;AAChB;AACA,CAAC;AACD;AACA,uBAAuB,6BAAU,MAAM;AACvC;AACA,CAAC;AACD;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAQ;AACpB;AACA;AACA;AACA;AACA,6KAA6K,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA;AACA;AACA,yCAAyC,KAAK,eAAe,qBAAqB;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,0EAAO,iBAAiB;AAClE,8BAA8B,iEAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0BAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,2BAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,2BAAQ,WAAW,2BAAQ;AACxC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,2BAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,4BAAS;AAChE,QAAQ,2BAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2BAAQ;AACd;AACA,IAAI,SAAS,0BAAO;AACpB,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,2BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,4BAAS,mBAAmB,0EAAO,WAAW;AACpD,MAAM,2BAAQ,mBAAmB,0EAAO,UAAU;AAClD,kCAAkC,0EAAO,WAAW;;AAEpD;AACA,6CAA6C,0EAAO,qBAAqB;AACzE,sCAAsC,0BAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAO;AAC/C;AACA,CAAC;AACD,uCAAuC,0EAAO;AAC9C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAO;AACtB,eAAe,0BAAO;AACtB;AACA;AACA;AACA,eAAe,2BAAQ;AACvB,eAAe,2BAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,2BAAQ,iCAAiC,0BAAO,SAAS,2BAAQ;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI;AACJ;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,2BAAQ,UAAU,0BAAO;AACtC;AACA;AACA;AACA;;AAE00B;;;ACvZxqB;;AAElK,SAAS,2BAAI;AACb,6BAA6B,IAAI;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAIrD;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM;AAChC;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,MAAyC,GAAG,CAAS;AAChF,mCAAmC,MAAyC,GAAG,CAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAA2C,CAAC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAStE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6BAA6B,0BAAO;AACxC;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,aAAa,0BAAO;AACpB;AACA,cAAc,KAAK;AACnB;AACA;AACA,UAAU,SAAS,YAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa,0BAAO;AACpB;AACA,cAAc,KAAK;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,KAAK;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAyC,GAAG,CAAoD,CAAC;AACrH;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C,CAAC;AACR;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA8D,EAAE,EAEnE;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C,0BAAO;AAClD;AACA,+IAA+I,QAAQ;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAAK;AACvB,uCAAuC,OAAO;AAC9C,QAAQ,4BAAK;AACb;AACA;AACA;AACA,oCAAoC,4BAAK;AACzC,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,4BAAK;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,qCAAc;AACvB,cAAc,4BAAK;AACnB,EAAE,4BAAK;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,0BAA0B,0BAAO;AACjC;AACA,2BAA2B,yBAAM;AACjC;AACA;AACA;AACA,eAAe,qCAAc;AAC7B;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA,MAAM,4BAAK;AACX;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAK;AACxB,gBAAgB,4BAAK;AACrB;AACA,WAAW,0BAAO;AAClB;AACA;AACA;AACA;AACA,mBAAmB,0BAAO,YAAY,YAAY,sCAAsC,yBAAM;AAC9F;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB,MAAM,4BAAK;AACX;AACA;AACA;AACA;AACA,IAAI,4BAAK;AACT;AACA;AACA,MAAM,0BAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAK9C;AACL;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAK9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4BAAK;AACzB,iBAAiB,4BAAK;AACtB;AACA,QAAQ,UAAU;AAClB,MAAM,4BAAK;AACX;AACA,IAAI,4BAAK;AACT;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAAK;AACzB,iBAAiB,4BAAK;AACtB;AACA,QAAQ,UAAU;AAClB,MAAM,4BAAK;AACX;AACA,IAAI,4BAAK;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK,CAAC,4BAAK;AAC5B;AACA;AACA;AACA,UAAU,4BAAK;AACf,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4BAAK;AACf,iBAAiB,4BAAK;AACtB,UAAU,uBAAuB;AACjC;AACA;AACA,UAAU,4BAAK;AACf;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA,IAAI,SAAS,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB,UAAU,uBAAuB;AACjC;AACA;AACA,UAAU,4BAAK;AACf;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA,oBAAoB,MAAyC,GAAG,CAAiD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAK;AAC3B;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAK;AAC3B,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA,mBAAmB,4BAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,wBAAwB,cAAc;AACtC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAM9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA,kBAAkB,MAAM,gEAAgE,iCAAiC;AACzH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,4BAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,2BAAQ;AACf,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA,eAAe,4BAAK;AACpB;AACA;AACA,EAAE,GAAG;AACL;AACA;AACA,8BAA8B,2BAAQ;AACtC,8BAA8B,2BAAQ;;AAEtC;AACA;AACA,WAAW,4BAAK;AAChB,QAAQ,KAAyC,EAAE,EAM9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA,SAAS,4BAAK;AACd;AACA;AACA,QAAQ,KAAyC,EAAE,EAO9C,CAAC;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAK;AAC5C,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAyC,GAAG,CAAU;AAC9E;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA6D,EAAE,EAElE;AACH,cAAc,0BAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,UAAU;AACvB;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA,aAAa,MAAyC,GAAG,CAEpD,CAAC,EAAE,uBAAI;AACZ,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,KAAmE,EAAE,EAGxE;AACH;AACA;;AAEA,6BAA6B,iEAAiB;AAC9C,cAAc,kDAAE;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4BAAK;AAChB;AACA;AACA;AACA;AACA;;AAEqZ;;;ACltCrZ,SAAS,+BAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,4BAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,4BAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,4BAAI;AACV;AACA,MAAM,0BAAE;AACR,MAAM,uBAAI;AACV,MAAM,uBAAI,YAAY,uBAAI;AAC1B,MAAM,kCAAe;AACrB,MAAM,8BAAM;AACZ,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAc;AACpB,MAAM,8BAAM,iBAAiB,sCAAc;AAC3C,MAAM,+BAAO;AACb,MAAM,wBAAK,YAAY,+BAAY;AACnC,MAAM,wBAAK,YAAY,+BAAY;AACnC,MAAM,yBAAM,YAAY,+BAAY;AACpC,MAAM,2BAAQ,YAAY,+BAAY;AACtC,MAAM,6BAAU;AAChB,MAAM,gCAAQ;AACd,MAAM,2BAAQ;AACd,MAAM,gCAAQ;AACd,MAAM,4BAAS;AACf,UAAU,gCAAQ,SAAS,6BAAU,UAAU,6BAAU,cAAc,6BAAU;AACjF;AACA,MAAM,iCAAc;AACpB,MAAM,+BAAY,cAAc,iCAAc;AAC9C,MAAM,iCAAS;AACf,SAAS,+BAAY;AACrB;AACA,MAAM,gCAAa,YAAY,+BAAY;AAC3C,MAAM,+BAAY,YAAY,gCAAQ;AACtC,MAAM,iCAAc,mBAAmB,+BAAO;AAC9C;AACA;AACA;AACA,MAAM,0CAAkB,mBAAmB,+EAAO;AAClD;AACA,CAAC;AACD,MAAM,sCAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB,MAAM,2BAAQ,GAAG,sCAAmB;AACpC,qBAAqB,6BAAU;AAC/B,CAAC;AACD,MAAM,8BAAW;AACjB,MAAM,iCAAS,GAAG,sCAAmB;AACrC,uBAAuB,8BAAW;AAClC;AACA,MAAM,kCAAU,GAAG,sCAAmB;AACtC;AACA,CAAC;AACD,MAAM,+BAAY,GAAG,sCAAmB;AACxC,uBAAuB,kCAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,6BAAU;AAChB,MAAM,iCAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,sBAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,gCAAa;AACnB;AACA;AACA;AACA,MAAM,2BAAQ;AACd,YAAY,gCAAQ;AACpB;AACA;AACA,IAAI,6BAAW;AACf,MAAM,gCAAa;AACnB,SAAS,6BAAW,KAAK,6BAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,0BAAO;AACb,SAAS,oCAAiB;AAC1B,SAAS,0BAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,gCAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,kCAAe;AACrB,MAAM,oCAAiB,mBAAmB,+BAAO,CAAC,kCAAe;AACjE,MAAM,wCAAqB,GAAG,oFAAiB;;AAE/C,MAAM,wBAAK;AACX,SAAS,oCAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,wBAAK,EAAE,SAAS,wBAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,iCAAc;AACvB,MAAM,+BAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,gCAAQ,SAAS,mCAAgB,SAAS,iCAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,gCAAQ,WAAW,gCAAQ;AACxC;AACA;AACA;AACA,MAAM,kCAAe,KAAK;AAC1B,MAAM,sCAAmB;AACzB,MAAM,iCAAc;AACpB,SAAS,mCAAgB;AACzB;AACA,kBAAkB,iCAAc,YAAY,kCAAe;AAC3D;AACA,6BAA6B,sCAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,iCAAc;AACvB;AACA,iBAAiB,gCAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,iCAAS;AAChE,QAAQ,gCAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,iCAAc;AACvB;AACA,MAAM,gCAAQ;AACd;AACA,IAAI,SAAS,+BAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,iCAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iCAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,gCAAQ;AACxB,kBAAkB,iCAAc;AAChC;AACA;AACA,kBAAkB,iCAAc;AAChC;AACA;AACA;;AAEA,MAAM,4BAAS;AACf,MAAM,2BAAQ;AACd,MAAM,4BAAS;AACf,MAAM,iCAAS,mBAAmB,+EAAO,CAAC,4BAAS,CAAC;AACpD,MAAM,gCAAQ,mBAAmB,+EAAO,CAAC,2BAAQ,CAAC;AAClD,MAAM,4BAAS,mBAAmB,+EAAO,CAAC,4BAAS,CAAC;;AAEpD,MAAM,sCAAmB;AACzB,MAAM,uCAAoB,mBAAmB,+EAAO,CAAC,sCAAmB,CAAC;AACzE,MAAM,gCAAa,mBAAmB,+BAAO;AAC7C,EAAE,sCAAmB;AACrB;AACA,SAAS,qCAAkB;AAC3B;AACA;AACA,MAAM,mCAAgB;AACtB,MAAM,sCAAmB;AACzB,SAAS,oCAAiB;AAC1B,MAAM,sCAAmB;AACzB,WAAW,sCAAmB;AAC9B;AACA,mBAAmB,mCAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,sCAAmB;AAC5B;AACA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAe,mBAAmB,+EAAO;AAC/C;AACA,CAAC;AACD,MAAM,iCAAc,mBAAmB,+EAAO;AAC9C;AACA,CAAC;;AAED,MAAM,2BAAQ;AACd,SAAS,6BAAU;AACnB;AACA,gBAAgB,2BAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAc;AACpB,SAAS,oCAAiB;AAC1B,qBAAqB,iCAAc;AACnC;;AAEA,SAAS,qCAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,6BAAU;AACtB;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA,mBAAmB,yBAAM;AACzB,mBAAmB,yBAAM;AACzB;AACA;AACA;AACA,eAAe,2BAAQ;AACvB,eAAe,2BAAQ;AACvB;AACA;AACA;AACA,eAAe,+BAAO;AACtB,eAAe,+BAAO;AACtB;AACA,sCAAsC,qCAAkB;AACxD;AACA,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAAY;AACrB,iCAAiC,6BAAU;AAC3C;;AAEA,MAAM,kCAAe;AACrB,SAAS,gCAAQ,iCAAiC,+BAAO,SAAS,gCAAQ,2BAA2B,iCAAc,KAAK,6BAAU,sCAAsC,2BAAQ;AAChL;AACA,MAAM,2BAAQ;AACd;AACA,WAAW,2BAAQ;AACnB,IAAI,SAAS,wBAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,wBAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,gCAAQ,UAAU,+BAAO,UAAU,gCAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZviB;AACkC;AACqG;AACxS;;AAElI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAI;AACb,MAAM,IAA0C;AAChD;AACA,EAAE,aAAa;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,YAAY,0CAA0C;AAC1E;AACA;AACA;AACA;AACA,IAAI;AACJ,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,aAAa;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,4BAA4B,qBAAqB;AACjD,6CAA6C,cAAc;AAC3D;AACA,uBAAuB;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,6BAA6B,IAAI,GAAG,MAAM;AAC1C,IAAI;AACJ,6BAA6B,IAAI,GAAG,MAAM;AAC1C,IAAI,SAAS,KAAK;AAClB,4BAA4B,4BAAK;AACjC,6BAA6B,IAAI;AACjC,IAAI,SAAS,6BAAU;AACvB,eAAe,IAAI,KAAK,iBAAiB,WAAW,QAAQ;AAC5D,IAAI;AACJ,YAAY,4BAAK;AACjB,6BAA6B,IAAI;AACjC;AACA;AACA;AACA,MAAM,IAA0C;AAChD;AACA;AACA;AACA,IAAI;AACJ,IAAI,6BAAI,IAAI,MAAM,8BAA8B,oBAAoB;AACpE,IAAI;AACJ,IAAI,6BAAI,IAAI,MAAM;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA,eAAe,4BAAS;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAAsB;AACxF;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAc9C,CAAC;AACJ;AACA;AACA;;AAEA;AACA;AACA,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAK;AACjB;AACA;AACA,sBAAsB,8BAAK;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8BAAK,YAAY,8BAAK;AAC7B;AACA;AACA;AACA;AACA,MAAM,8BAAK;AACX,MAAM;AACN,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAK;AACjB;AACA,IAAI,8BAAK;AACT;AACA;AACA;AACA,OAAO,+BAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH,SAAS,IAAI,8BAAK,SAAS;AAC3B,eAAe,8BAAK;AACpB;AACA,UAAU,KAA4E,EAAE,EAEjF;AACP,MAAM,8BAAK;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA,6BAA6B,4CAA4C;AACzE,UAAU,KAA4G,EAAE,EAEjH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH,EAAE,8BAAK;AACP,gBAAgB,MAAyC,GAAG,CAAyC,GAAG,4BAAI;AAC5G;AACA,yBAAyB,aAAa,8BAAK,SAAS;AACpD,kBAAkB,8BAAK;AACvB;AACA,YAAY,KAAuD,EAAE,EAE5D;AACT;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,8BAAK;AACT;AACA;AACA;AACA,QAAQ,8BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,6BAAI;AACV,6CAA6C,kCAAkC,cAAc,QAAQ;AACrG;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,KAAyC,EAAE,EAM9C;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,CAAC;AACD,iDAAiD,wHAAwE;AACzH,kDAAkD;AAClD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,CAAC;AACD,wCAAwC;AACxC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,4BAAS;AACjD,MAAM,KAAyC,EAAE,EAwB9C;AACH;AACA;AACA;AACA;AACA,4BAA4B,+CAA+C;AAC3E,YAAY,eAAe,yBAAyB,4BAAS;AAC7D;AACA,gCAAgC,gCAAQ;AACxC;AACA;AACA,yBAAyB,gCAAa;AACtC;AACA;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH,MAAM,KAAyC,EAAE,EAU9C;AACH;AACA,oCAAoC,+BAAY;AAChD,sBAAsB,+BAAY,CAAC,2BAAQ;AAC3C;AACA,kCAAkC,+BAAY,CAAC,iCAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAmB,KAAK,6BAAU;AACxC;AACA;AACA;AACA;AACA,QAAQ,8BAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI;AACJ,IAAI,8BAAM;AACV;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAI;AACvB;AACA;AACA;AACA,SAAS,8BAAM,kDAAkD,8BAAM,UAAU,iCAAS,UAAU,8BAAM;AAC1G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,UAAU,KAA4D,EAAE,EAEjE;AACP;AACA;AACA;AACA,UAAU,MAAyC,GAAG,CAO3C,CAAC,IAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA4F,EAAE,EAEjG;AACH;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA,sCAAsC,kCAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAoF,EAAE,EAwBhG;AACP;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAItE;AACL;AACA;AACA;AACA;AACA,QAAQ,KAAiE,EAAE,EAItE;AACL;AACA;AACA,MAAM,KAAoD,EAAE,EAEzD,CAAC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAI;AAClD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAe;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sDAAsD;AAChE,UAAU,sDAAsD;AAChE;AACA,MAAM,KAA4F,EAAE,EAEjG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2BAAQ,uBAAuB,kCAAU,CAAC,2BAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgE,EAAE,EAIrE;AACL;AACA,IAAI,SAAS,KAAyC,EAAE,EAIrD;AACH;AACA;AACA,iDAAiD,2BAAQ,oBAAoB,kCAAU,CAAC,2BAAQ;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qGAAqG,4BAA4B,iBAAiB;AAClJ;AACA;AACA;AACA;AACA;AACA,UAAU,yDAAyD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+D,EAAE,EAKpE;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAAQ;AACxC,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAW9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,uGAAuG;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,QAAQ,KAA6H,EAAE,EAElI;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAAsC,KAAK;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAAsC,KAAK;AAC3F;AACA;AACA;AACA;AACA,MAAM,KAA4D,EAAE,EAIjE;AACH;AACA;AACA,+BAA+B,6CAA6C,EAAE,4BAAS;AACvF;AACA,MAAM,KAAgD,EAAE,EAWrD;AACH;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,MAAM,KAAK;AACX;AACA,mBAAmB,SAAW;AAC9B,IAAI,SAAS,UAAU;AACvB;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA,sCAAsC,UAAU,OAAO,SAAW;AAClE;AACA,UAAU,KAAK;AACf;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA,QAAQ,SAAS,6BAAU;AAC3B;AACA,QAAQ;AACR,QAAQ,MAAyC,IAAI,CAAoB;AACzE;AACA,KAAK;AACL,IAAI,SAAS,6BAAU;AACvB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,aAAa,4BAAI;AACjB,IAAI,MAAyC,IAAI,CAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAAI;AACpB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,4BAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,6BAAU,oBAAoB,6BAAU;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,qBAAqB,cAAc;AACnC,MAAM,KAAyC,EAAE,EAG9C;AACH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,yBAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAQ;AACzB;AACA,MAAM,6BAAU;AAChB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,gCAAQ;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAK;AACX;AACA,IAAI,SAAS,+BAAO;AACpB,oBAAoB,kBAAkB;AACtC;AACA;AACA,IAAI,SAAS,wBAAK,WAAW,wBAAK;AAClC;AACA;AACA,KAAK;AACL,IAAI,SAAS,gCAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAAgE;AACjH;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,sCAAsC,4BAAS;AAC/C;AACA,UAAU,6BAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqD,EAAE,EAK1D;AACb;AACA;AACA,gBAAgB,IAA0C;AAC1D;AACA;AACA;AACA;AACA,uBAAuB,4BAAK;AAC5B,cAAc,OAAO;AACrB,UAAU,KAAiH,EAAE,EAEtH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,iDAAiD,KAAK;AACtD;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA,2BAA2B,8BAAM,GAAG,oBAAoB,kBAAkB,gBAAgB;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,KAAkD,EAAE,EAIvD;AACP;AACA;AACA;AACA,UAAU,KAAyF,EAAE,EAE9F;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,qBAAqB,GAAG;AACxB,oBAAoB,GAAG;AACvB,sBAAsB,GAAG;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAkE,EAAE,EAEvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAkE,EAAE,EAEvE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA,IAAI,SAAS,2BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAM;AACV,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA;AACA;AACA,MAAM,aAAa;AACnB;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAKrD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+BAAO,YAAY,gCAAQ;AACjC;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,IAAI;AACJ,QAAQ,KAAsE,EAAE,EAE3E;AACL;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,yBAAyB;AAC3C;AACA,QAAQ,+BAAO;AACf,sBAAsB,iBAAiB;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAoE,EAAE,EAKzE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,KAAK;AAC3D,KAAK;AACL;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,MAAM,KAA2D,EAAE,EAGhE;AACH;AACA,6DAA6D,IAAI,IAAI,+BAAY;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAAM;AACxB;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,mBAAmB,MAAyC,GAAG,CAAwB;AACvF,kBAAkB,MAAyC,GAAG,CAAuB;AACrF;AACA;AACA;AACA,qBAAqB,KAAmB,6BAA6B,CAAM;AAC3E;AACA;AACA,mBAAmB,KAAmB,2BAA2B,CAAI;AACrE,GAAG;AACH;AACA;AACA,kDAAkD,4BAAS,8BAA8B,8BAAM;AAC/F;AACA,QAAQ,aAAa;AACrB,YAAY,8DAA8D;AAC1E,QAAQ,KAA8D,EAAE,EAEnE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ,kBAAkB,4BAAS,IAAI,8BAAM;AAC7C;AACA;AACA,QAAQ;AACR;AACA;AACA,wDAAwD,8BAAM;AAC9D;AACA;AACA;AACA,QAAQ,iBAAiB,4BAAS,IAAI,8BAAM;AAC5C;AACA;AACA,QAAQ,SAAS,MAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAK;AACb,QAAQ,MAAyC,IAAI,CAAmB;AACxE,QAAQ,SAAS,KAA6D,EAAE,EAEzE;AACP;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM,iBAAiB,4BAAS,IAAI,8BAAM;AAC1C;AACA;AACA,MAAM;AACN;AACA,6DAA6D,8BAAM;AACnE;AACA;AACA;AACA;AACA,MAAM,SAAS,KAEc,EAAE,EAY1B;AACL,GAAG;AACH,QAAQ,aAAa;AACrB,YAAY,wBAAwB;AACpC;AACA;AACA;AACA,MAAM,SAAS,KAAkG,EAAE,EAG9G,CAAC,kBAAkB,4BAAS,IAAI,8BAAM;AAC3C;AACA;AACA,MAAM,SAAS,8BAAM;AACrB,MAAM,MAAyC,IAAI,CAA+D;AAClH;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA,MAAM;AACN,UAAU,KAA+F,EAAE,EAMpG,CAAC;AACR;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,SAAS;AACT,GAAG;AACH;AACA,0CAA0C,4BAAS,IAAI,8BAAM,0FAA0F,8BAAM,0BAA0B,8BAAM,cAAc,8BAAM,8BAA8B,8BAAM;AACrP,GAAG;AACH;AACA;AACA;AACA,MAAM,SAAS,8BAAM;AACrB;AACA;AACA;AACA;AACA;AACA,IAAI,KAAiD,EAAE,EAOtD;AACD,mEAAmE,8BAAM;AACzE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qCAAqC,oCAAiB;AACtD,UAAU,KAA4F,EAAE,EAMjG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA,QAAQ,6BAAI;AACZ,qCAAqC;AACrC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA,qCAAqC,6BAAI;AACzC,KAAK,OAAO;AACZ;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+C,EAAE,EAGpD;AACH,MAAM,KAAqE,EAAE,EAG1E;AACH;AACA,kBAAkB,GAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA+C,EAAE,EAEpD;AACH;AACA;AACA;AACA,SAAS,+BAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAAO,SAAS,6BAAU;AACpC,6BAA6B;AAC7B,QAAQ;AACR;AACA;AACA,MAAM;AACN,2BAA2B;AAC3B,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,kCAAkC,IAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO,OAAO,+BAAO;AAC3B;AACA,SAAS,8BAAM,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiD,EAAE,EAItD;AACH;AACA;AACA,MAAM,4BAAS;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,6BAAI,IAAI,MAAM,YAAY,IAAI,0BAA0B,WAAW;AACzE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,mCAAmC,MAAyC,GAAG,CAAwB;AACvG,MAAM,KAAyC,EAAE,EAO9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6BAAU;AACpB,YAAY,KAAyC,EAAE,EAO9C,CAAC;AACV;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,QAAQ,SAAS,KAAyC,EAAE,EAIrD;AACP;AACA;AACA;AACA,QAAQ,KAAqE,EAAE,EAI1E;AACL;AACA,QAAQ,KAA4D,EAAE,EAIjE;AACL,SAAS,gCAAQ;AACjB,MAAM,MAAyC,IAAI,CAAuC;AAC1F,MAAM;AACN,sBAAsB,QAAQ;AAC9B,UAAU,KAAyC,EAAE,EAY9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAU,2CAA2C,6BAAU,mDAAmD,4BAAI;AACxI,UAAU,KAAyD,EAAE,EAE9D;AACP,mBAAmB,6BAAU,SAAS,6BAAU,uCAAuC,MAAyC,GAAG,CAI5H,CAAC,EAAE,4BAAI;AACd,gBAAgB,iCAAQ;AACxB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6BAAU;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,oCAAoC,4BAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4BAAI;AAC9E,MAAM,+BAAO;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ,KAAK;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA,IAAI,+BAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,QAAQ,6BAAU;AAClB;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,IAAI,SAAS,6BAAU;AACvB;AACA,IAAI,SAAS,gCAAQ;AACrB,QAAQ,+BAAO;AACf;AACA,MAAM;AACN,sBAAsB,6BAAU;AAChC,UAAU,6BAAU;AACpB;AACA,QAAQ,SAAS,KAAyC,EAAE,EAErD;AACP;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA,cAAc;AACd,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAAM;AAClB,MAAM,6BAAU;AAChB,MAAM,6BAAU;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAAM;AACpB;AACA;AACA;AACA,QAAQ,+BAAO,QAAQ,+BAAO;AAC9B;AACA;AACA,WAAW,8BAAM;AACjB;AACA;AACA,oDAAoD;AACpD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,0BAAE;AACrB;AACA,0BAA0B;AAC1B,+BAA+B;AAC/B;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB,sBAAsB,8BAAM,GAAG;AAC/B;AACA,8BAA8B,gCAAQ;AACtC,MAAM,MAAyC,IAAI,CAA2D;AAC9G;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAW9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAI9C;AACT,OAAO;AACP;AACA;AACA,UAAU,MAAyC,IAAI,CAAsD;AAC7G,UAAU,mBAAmB,6BAAU;AACvC;AACA;AACA,UAAU,SAAS,6BAAU;AAC7B;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAIrD;AACT;AACA,OAAO;AACP;AACA,YAAY,IAAmB;AAC/B;AACA;AACA,YAAY,SAAS,KAAyC,EAAE,EAIrD;AACX,UAAU,KAAK,EAEN;AACT;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAE1E;AACT;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAE1E;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,KAAsE,EAAE,EAK3E;AACX;AACA;AACA,cAAc,KAAyC,EAAE,EAI9C;AACX;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,cAAc,KAAkE,EAAE,EAGvE;AACX;AACA,UAAU,SAAS,KAAyC,EAAE,EAKrD;AACT,OAAO;AACP;AACA;AACA;AACA,cAAc,KAAkE,EAAE,EAGvE;AACX;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT,OAAO;AACP;AACA,YAAY,KAAoE,EAAE,EAIzE;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sCAAsC,6BAAU;AAChD,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,sBAAG;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA,qCAAqC,eAAe;AACpD,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ,0BAA0B,4BAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAwE;AAC5E;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8BAAM;AACpB;AACA;AACA;AACA;AACA,YAAY;AACZ,iCAAiC,2BAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,8BAAM;AACb;AACA,mBAAmB,iCAAS,mBAAmB,8BAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO;AACX;AACA,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA,qBAAqB,8BAAM,qBAAqB,2BAAQ;AACxD;AACA;AACA,UAAU;AACV,+CAA+C;AAC/C;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAK;AACjC,wCAAwC,4BAAS;AACjD,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8BAAM;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAAM;AAC7B;AACA;AACA,uDAAuD,6BAAU;AACjE,gBAAgB,gBAAgB;AAChC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAmE,iCAAS;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAmB,KAAK,6BAAU;AACxC;AACA;AACA;AACA,MAAM,8BAAM;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gCAAQ;AAChB,sBAAsB,4BAAS;AAC/B;AACA,WAAW,4BAAS;AACpB;AACA,MAAM,+BAAO;AACb,oBAAoB,gBAAgB;AACpC,UAAU,KAA8D,EAAE,EAEnE;AACP,4BAA4B,2BAAQ;AACpC;AACA,oCAAoC,4BAAS;AAC7C;AACA;AACA,IAAI;AACJ,QAAQ,KAA2D,EAAE,EAEhE;AACL;AACA,4BAA4B,2BAAQ;AACpC;AACA;AACA,iDAAiD,+BAAO,SAAS,6BAAU,UAAU,YAAY,EAAE,8BAAM,GAAG;AAC5G;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,KAAyC,EAAE,EAErD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO;AACb;AACA,IAAI,SAAS,6BAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uCAAuC;AACjD;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAA8B;AAClD,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA,MAAM,6BAAI;AACV;AACA;AACA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA,qCAAqC;AACrC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK,cAAc,0CAA0C;AAC1H;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA,sBAAsB,cAAc;AACpC;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,IAAI;AACJ,cAAc,cAAc;AAC5B,IAAI;AACJ,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,+BAAO;AAC7C;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA4D,EAAE,EAIjE;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAU;AAClB;AACA,MAAM;AACN,UAAU,KAAiD,EAAE,EAItD;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiF,EAAE,EAItF;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAK;AAC5B,MAAM,sBAAG;AACT,MAAM;AACN;AACA;AACA,2BAA2B;AAC3B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE,sBAAG;AACL;AACA;AACA,UAAU,eAAe;AACzB;AACA,iCAAiC,4BAAS;AAC1C;AACA;AACA;AACA,UAAU,KAA0D,EAAE,EAG/D,CAAC;AACR;AACA,QAAQ;AACR,QAAQ,8BAAM;AACd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,+BAAO;AACb;AACA;AACA;AACA,sBAAsB,+BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B,MAAM,KAAmD,EAAE,EAKxD;AACH;AACA,8BAA8B,4BAAS,mBAAmB;AAC1D;AACA;AACA,QAAQ,gCAAQ;AAChB;AACA,UAAU,8BAAM;AAChB;AACA;AACA,MAAM,SAAS,KAAK;AACpB;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA,IAAI;AACJ,sBAAsB,gCAAQ;AAC9B,mBAAmB,KAAK;AACxB;AACA;AACA;AACA,uCAAuC,8BAAM;AAC7C;AACA,YAAY,+BAAO,cAAc,yBAAM;AACvC,YAAY;AACZ,iBAAiB,+BAAO;AACxB;AACA;AACA,oBAAoB,8BAAM;AAC1B;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,8BAAM;AACpB;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM,SAAS,KAAyC,EAAE,EAErD;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY,MAAyC,IAAI,CAM5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAsD;AAClE;AACA,QAAQ,MAAyC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAI,UAAU,iCAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAuD,EAAE,EAK5D;AACX;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU,MAAyC,IAAI,CAI5C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,YAAY,KAAuD,EAAE,EAK5D;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qCAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAQ5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,KAAK,GAAG,aAAa;AAC1C;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA,4BAA4B,KAAK,GAAG,aAAa;AACjD;AACA;AACA;AACA,UAAU,6CAA6C,IAAI,KAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAwC,EAAE,EAG7C;AACH,MAAM,KAA0C,EAAE,EAG/C;AACH,MAAM,KAA4D,EAAE,EAOjE;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAa;AAC9B;AACA,MAAM,KAAkE,EAAE,EAEvE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAAI;AACrC;AACA,IAAI;AACJ,kJAAkJ,MAA0D,GAAG,CAAK;AACpN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2CAA2C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EASvE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,KAA8F,EAAE,EAEnG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C;AACA,iCAAiC,4BAAS;AAC1C,iCAAiC,4BAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA0D,EAAE,EAI/D;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAS;AAChC;AACA,eAAe,iCAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iEAAiE;AAC3E,QAAQ,KAC+B,EAAE,EAIpC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL,QAAQ,KAAyC,EAAE,EAG9C;AACL;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA,UAAU,KAAyC,EAAE,EAE9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAG9C;AACL;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAyC,EAAE,EAE9C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA,cAAc,KAAyC,EAAE,EAE9C;AACX,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAyC,EAAE,EAE9C;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAkE,EAAE,EAEvE;AACT;AACA,QAAQ;AACR,cAAc,6BAA6B;AAC3C;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU,iCAAc;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAkE,EAAE,EAEvE;AACT,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAI9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAS;AACxB,eAAe,4BAAS;AACxB;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,cAAc,KAAgF,EAAE,EAMrF;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,4BAAS;AAC/F;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAA4C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,YAAY,+BAA+B;AAC3C;AACA,UAAU,KAAiI,EAAE,EAQtI,CAAC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL,YAAY,kCAAkC;AAC9C;AACA,MAAM,iCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAkE,EAAE,EAEvE;AACL;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+BAAO,SAAS,+BAAO;AAC7B,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAA0E,EAAE,EAE/E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA,MAAM;AACN;AACA;AACA,QAAQ,MAAyC,IAAI,CAE5C;AACT;AACA;AACA;AACA,IAAI;AACJ,QAAQ,KAA0F,EAAE,EAE/F;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,MAAM;AACN;AACA,UAAU,uCAAuC;AACjD,QAAQ,KAA0D,EAAE,EAG/D;AACL;AACA,kCAAkC,MAAyC,GAAG,CAA+B;AAC7G,qCAAqC,MAAyC,GAAG,CAA6B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAsD,EAAE,EAElE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS,KAAyC,EAAE,EAMrD;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,8DAA8D,kBAAkB,sBAAsB;AACtG,YAAY,2DAA2D;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,wDAAwD,KAAK,QAAQ,WAAW;AAChF;AACA;AACA;AACA,UAAU,yCAAyC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4BAAS;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAgG,EAAE,EAIrG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uBAAuB,gCAAQ,SAAS,KAAK,SAAS,6BAAU,UAAU,gEAAgE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,uBAAuB,gCAAQ;AAC/B;AACA,MAAM,KAAoE,EAAE,EAEzE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAyC,GAAG,CAA4B;AAC5F;AACA;AACA,QAAQ,KAAkD,EAAE,EAEvD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB;AAChC,kBAAkB,gCAAQ;AAC1B,oBAAoB,iCAAc;AAClC;AACA,QAAQ,gCAAQ;AAChB,UAAU,OAAO,YAAY,+BAAO;AACpC,gBAAgB,8BAAM,GAAG;AACzB;AACA,oBAAoB,iCAAc;AAClC;AACA;AACA,oBAAoB,gCAAQ,8DAA8D,gCAAQ,aAAa,6BAAU;AACzH,MAAM,KAA2E,EAAE,EAQhF;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wCAAwC,8BAAM,GAAG;AACjE;AACA;AACA,UAAU,kCAAkC;AAC5C,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAAO;AAC/B;AACA;AACA;AACA,cAAc,MAAkF,GAAG,CAA4B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA,IAAI,SAAS,+BAAO;AACpB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,6BAAU;AACvB,iBAAiB;AACjB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA,sBAAsB,iCAAc;AACpC;AACA,QAAQ;AACR,oBAAoB,iCAAc;AAClC,QAAQ,SAAS,uBAAI;AACrB;AACA;AACA,mDAAmD,+BAAO;AAC1D;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAS;AAC5B;AACA;AACA;AACA,SAAS,4BAAS;AAClB,UAAU,4BAAS;AACnB,WAAW,4BAAS;AACpB,WAAW,4BAAS;AACpB,WAAW,4BAAS;AACpB,UAAU,4BAAS;AACnB,gBAAgB,4BAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAE9C,CAAC;AACJ,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAa;AACpD,mCAAmC,gCAAa;AAChD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yEAAyB;AAC9D;AACA;AACA;AACA,IAAI,6BAAI;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAqB9C;AACH;AACA,mBAAmB,OAAO;AAC1B,MAAM,KAAyC,EAAE,EAE9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA,OAAO,MAAyC,GAAG,CAA+B;AAClF;AACA,IAAI,aAAa;AACjB;AACA,QAAQ,4BAAS;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,QAAQ;AACR;AACA,YAAY,KAA+D,EAAE,EAKpE;AACT;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM,6BAAU;AAChB;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,SAAS,gCAAQ;AACrB,QAAQ,KAAiE,EAAE,EAItE;AACL,QAAQ,KAAkE,EAAE,EAEvE;AACL,0BAA0B,SAAS;AACnC,QAAQ,KAAyC,EAAE,EAE9C;AACL,IAAI,SAAS,KAAmE,EAAE,EAI/E;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAa;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,gBAAgB,mCAAmC;AACnD,gBAAgB,wDAAwD;AACxE,qCAAqC,8BAAM;AAC3C,UAAU,8BAAM;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT;AACA;AACA,0CAA0C,4BAAI;AAC9C;AACA;AACA;AACA;AACA,MAAM,IAA2B;AACjC;AACA,IAAI,aAAa;AACjB;AACA;AACA,MAAM;AACN,MAAM,aAAa;AACnB;AACA;AACA;AACA,MAAM,KAAoG,EAAE,EASzG;AACH;AACA;AACA;AACA;AACA,IAAI,MAAyC,GAAG,CAc3C,CAAC;AACN;AACA,QAAQ,4BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAmB9C;AACL;AACA;AACA,MAAM,KAAyC,EAAE,EAa9C,CAAC;AACJ;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,SAAS,CAAC,OAAO;AACtF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAAU;AACnB;;AAEA,MAAM,iCAAQ;AACd,SAAS,QAAU;AACnB;;AAEA;AACA;AACA;AACA,QAAQ,gCAAQ,sBAAsB,+BAAO;AAC7C;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAE5C;AACP;AACA;AACA;AACA;;AAEA,SAAS,kCAAS;AAClB;AACA;;AAEA,SAAS,4CAAmB;AAC5B,MAAM,IAA2E;AACjF;AACA;AACA,qBAAqB;AACrB,wBAAwB;AACxB,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA,WAAW,gCAAQ;AACnB;AACA;AACA;AACA;AACA,QAAQ,SAAS,KAAK;AACtB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA,YAAY;AACZ,6BAA6B,kCAAS;AACtC;AACA;AACA,cAAc,UAAU,2BAA2B;AACnD;AACA,QAAQ,SAAS,UAAU;AAC3B;AACA;AACA,YAAY;AACZ,6BAA6B,kCAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAK;AACpD;AACA,gCAAgC,4BAAS;AACzC;AACA;AACA,0BAA0B,4BAAS;AACnC,8CAA8C,4BAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,wCAAwC;AACxC,SAAS;AACT;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA,aAAa,8BAAM,GAAG;AACtB;AACA,wBAAwB;AACxB;AACA;AACA;AACA,QAAQ,2BAA2B,sBAAsB;AACzD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM,SAAS,gCAAQ;AACvB,0BAA0B,gBAAgB,4BAAK,SAAS;AACxD,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAO,gCAAgC,gCAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,QAAQ,6BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEk+C;;;ACnnPl+C,SAAS,sCAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,iCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,iCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,mCAAI;AACV;AACA,MAAM,iCAAE;AACR,MAAM,4BAAI;AACV,MAAM,4BAAI,YAAY,4BAAI;AAC1B,MAAM,uCAAe;AACrB,MAAM,qCAAM;AACZ,MAAM,8BAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,6CAAc;AACpB,MAAM,qCAAM,iBAAiB,6CAAc;AAC3C,MAAM,sCAAO;AACb,MAAM,6BAAK,YAAY,oCAAY;AACnC,MAAM,6BAAK,YAAY,oCAAY;AACnC,MAAM,8BAAM,YAAY,oCAAY;AACpC,MAAM,gCAAQ,YAAY,oCAAY;AACtC,MAAM,kCAAU;AAChB,MAAM,uCAAQ;AACd,MAAM,gCAAQ;AACd,MAAM,uCAAQ;AACd,MAAM,iCAAS;AACf,UAAU,uCAAQ,SAAS,kCAAU,UAAU,kCAAU,cAAc,kCAAU;AACjF;AACA,MAAM,sCAAc;AACpB,MAAM,oCAAY,cAAc,sCAAc;AAC9C,MAAM,wCAAS;AACf,SAAS,oCAAY;AACrB;AACA,MAAM,qCAAa,YAAY,oCAAY;AAC3C,MAAM,oCAAY,YAAY,uCAAQ;AACtC,MAAM,sCAAc,mBAAmB,sFAAO;AAC9C;AACA;AACA,CAAC;AACD,MAAM,iDAAkB,mBAAmB,sFAAO;AAClD;AACA,CAAC;AACD,MAAM,2CAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kCAAU;AAChB,MAAM,gCAAQ,GAAG,2CAAmB;AACpC,qBAAqB,kCAAU;AAC/B,CAAC;AACD,MAAM,mCAAW;AACjB,MAAM,wCAAS,GAAG,2CAAmB;AACrC,uBAAuB,mCAAW;AAClC;AACA,MAAM,yCAAU,GAAG,2CAAmB;AACtC;AACA,CAAC;AACD,MAAM,oCAAY,GAAG,2CAAmB;AACxC,uBAAuB,yCAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,kCAAU;AAChB,MAAM,sCAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,2BAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,qCAAa;AACnB;AACA;AACA;AACA,MAAM,gCAAQ;AACd,YAAY,uCAAQ;AACpB;AACA;AACA,IAAI,kCAAW;AACf,MAAM,qCAAa;AACnB,SAAS,kCAAW,KAAK,kCAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,+BAAO;AACb,SAAS,yCAAiB;AAC1B,SAAS,+BAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,sCAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,qCAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,uCAAe;AACrB,MAAM,yCAAiB,mBAAmB,sFAAO,CAAC,uCAAe,CAAC;AAClE,MAAM,6CAAqB,GAAG,yFAAiB;;AAE/C,MAAM,6BAAK;AACX,SAAS,yCAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,6BAAK,EAAE,SAAS,6BAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,sCAAc;AACvB,MAAM,sCAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,uCAAQ,SAAS,wCAAgB,SAAS,sCAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ,WAAW,uCAAQ;AACxC;AACA;AACA;AACA,MAAM,uCAAe,KAAK;AAC1B,MAAM,2CAAmB;AACzB,MAAM,sCAAc;AACpB,SAAS,wCAAgB;AACzB;AACA,kBAAkB,sCAAc,YAAY,uCAAe;AAC3D;AACA,6BAA6B,2CAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,sCAAc;AACvB;AACA,iBAAiB,uCAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,wCAAS;AAChE,QAAQ,uCAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,sCAAc;AACvB;AACA,MAAM,uCAAQ;AACd;AACA,IAAI,SAAS,sCAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,sCAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,uCAAQ;AACxB,kBAAkB,sCAAc;AAChC;AACA;AACA,kBAAkB,sCAAc;AAChC;AACA;AACA;;AAEA,MAAM,iCAAS;AACf,MAAM,gCAAQ;AACd,MAAM,iCAAS;AACf,MAAM,wCAAS,mBAAmB,sFAAO,CAAC,iCAAS,CAAC;AACpD,MAAM,uCAAQ,mBAAmB,sFAAO,CAAC,gCAAQ,CAAC;AAClD,MAAM,iCAAS,mBAAmB,sFAAO,CAAC,iCAAS,CAAC;;AAEpD,MAAM,2CAAmB;AACzB,MAAM,4CAAoB,mBAAmB,sCAAO,CAAC,2CAAmB;AACxE,MAAM,qCAAa,mBAAmB,sCAAO;AAC7C,EAAE,2CAAmB;AACrB;AACA,SAAS,0CAAkB;AAC3B;AACA;AACA,MAAM,wCAAgB;AACtB,MAAM,2CAAmB;AACzB,SAAS,yCAAiB;AAC1B,MAAM,2CAAmB;AACzB,WAAW,2CAAmB;AAC9B;AACA,mBAAmB,wCAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,2CAAmB;AAC5B;AACA,MAAM,sCAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAe,mBAAmB,sFAAO;AAC/C;AACA,CAAC;AACD,MAAM,sCAAc,mBAAmB,sFAAO;AAC9C;AACA,CAAC;;AAED,MAAM,gCAAQ;AACd,SAAS,kCAAU;AACnB;AACA,gBAAgB,gCAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAc;AACpB,SAAS,yCAAiB;AAC1B,qBAAqB,sCAAc;AACnC;;AAEA,SAAS,0CAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,kCAAU;AACtB;AACA;AACA;AACA,SAAS,kCAAU;AACnB;AACA;AACA,mBAAmB,8BAAM;AACzB,mBAAmB,8BAAM;AACzB;AACA;AACA;AACA,eAAe,gCAAQ;AACvB,eAAe,gCAAQ;AACvB;AACA;AACA;AACA,eAAe,sCAAO;AACtB,eAAe,sCAAO;AACtB;AACA,sCAAsC,0CAAkB;AACxD;AACA,eAAe,uCAAQ;AACvB,eAAe,uCAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kCAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oCAAY;AACrB,iCAAiC,kCAAU;AAC3C;;AAEA,MAAM,uCAAe;AACrB,SAAS,uCAAQ,iCAAiC,sCAAO,SAAS,uCAAQ,2BAA2B,sCAAc,KAAK,kCAAU,sCAAsC,gCAAQ;AAChL;AACA,MAAM,gCAAQ;AACd;AACA,WAAW,gCAAQ;AACnB,IAAI,SAAS,6BAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,6BAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,uCAAQ,UAAU,sCAAO,UAAU,qCAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZha;AACxY;AACsQ;;AAExS;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,uFAAuF,KAAK;AAC5F;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,OAAO,KAAK,CAAC,CAAC,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qCAAM;AAC3E,IAAI;AACJ,EAAE,6BAA6B;AAC/B;AACA;AACA,MAAM,gCAAQ;AACd,MAAM,sCAAO;AACb;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,sCAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,0BAA0B,KAAK;AAC/B,sBAAsB,KAAK;AAC3B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS,qCAAM;AACf;AACA,MAAM,gCAAQ;AACd;AACA;AACA,KAAK;AACL;AACA,MAAM,gCAAQ;AACd;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd,KAAK;AACL;AACA;AACA,MAAM,gCAAQ;AACd;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI,SAAS,uCAAQ;AACrB;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc,gCAAQ;AACtB,MAAM,KAAyC,EAAE,EAE9C;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2BAA2B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D,oDAAoD,WAAW;AAC/D;AACA,gDAAgD,UAAU;AAC1D,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO,IAAI,YAAY;AAC3C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,gBAAgB,OAAO,IAAI,YAAY;AACvC;AACA;AACA;AACA,GAAG;AACH,gBAAgB,iBAAiB,IAAI,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,uCAAQ;AAC9B;AACA,iBAAiB,uCAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,MAAM,sCAAO;AACb;AACA,IAAI;AACJ;AACA;AACA,QAAQ,KAAyC,EAAE,EAM9C;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU,wCAAS;AACnB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2BAAQ;AACrB;AACA;AACA;AACA,SAAS,yCAAU;AACnB,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ,sBAAsB,4CAAoB;AAC1C,uCAAuC,0CAAkB;AACzD;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0CAAkB;AAChC,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,QAAQ,KAAwD,EAAE,EAK7D;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI,0BAA0B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sCAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI,SAAS,4BAAI;AACjB,SAAS,uCAAe;AACxB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kCAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uCAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,UAAU,KAA4D,EAAE,EAIjE;AACP,0BAA0B,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ;AACZ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,6BAA6B,kBAAkB;AAC/C;AACA,cAAc,gBAAgB;AAC9B;AACA,oBAAoB,sCAAO;AAC3B;AACA;AACA;AACA;AACA,iCAAiC,gCAAQ;AACzC;AACA,iFAAiF,gCAAU;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,6BAA6B,sCAAO,yCAAyC;AAC7E;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAU;AACrD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,qBAAqB,gCAAU;AAC/B;AACA,cAAc,gCAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAS;AACrC,UAAU;AACV,4BAA4B,wCAAS;AACrC,UAAU;AACV,+BAA+B,wCAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAW,YAAY,qCAAM,GAAG;AAClD;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAU9C;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,wCAAS;AACvB,qBAAqB,wCAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAyC,EAAE,EAE9C;AACT,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA,MAAM,MAAyC,IAAI,CAAkD;AACrG,aAAa,iCAAS;AACtB;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAA4D;AAC/G,aAAa,iCAAS;AACtB;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAAkE;AACrH,aAAa,iCAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,kBAAkB;AACrC;AACA,IAAI,MAAyC,IAAI,CAAuE;AACxH;AACA;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,eAAe;AACjB,EAAE,SAAS;AACX;AACA,iDAAiD,iBAAiB;AAClE,IAAI,WAAW;AACf,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wBAAwB,QAAQ;AACpC;AACA,IAAI,wBAAwB,MAAM;AAClC,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,kCAAU;AAChB;AACA;AACA,yBAAyB,qCAAM,GAAG;AAClC;AACA;AACA,GAAG;AACH,iBAAiB,OAAO;AACxB,qBAAqB,kBAAkB;AACvC,kBAAkB,kBAAkB;AACpC;AACA;AACA,IAAI,SAAS;AACb;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,uBAAuB,4BAAK;AAC5B;AACA,gCAAgC,QAAQ;AACxC;AACA,iCAAiC,wBAAwB;AACzD,sBAAsB,qBAAqB;AAC3C;AACA;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,sBAAsB;AAClC;AACA,UAAU,SAAS,KAAyC,EAAE,EAErD;AACT;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,UAAU,kBAAkB;AAC5B;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAU;AACnB,OAAO,kCAAU;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,GAAG,KAAK,GAAG;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;;AAEA;AACA;AACA,SAAS,sCAAO,kBAAkB,sCAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAa;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,OAAO;AACvB;AACA,GAAG;AACH,qBAAqB,oBAAoB,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sCAAO;AACjB,sBAAsB,oCAAY;AAClC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ,SAAS,6BAAK;AACtB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,MAAM,sCAAO;AACb,iBAAiB,oCAAY;AAC7B,IAAI,SAAS,6BAAK;AAClB;AACA,IAAI;AACJ,iBAAiB,kCAAU;AAC3B;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,kCAAU;AAC3B;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,qBAAqB,iBAAiB;AACtC;AACA;AACA,mBAAmB,kCAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB,UAAU;AAC9C,uBAAuB,6BAAK;AAC5B;AACA;AACA,wBAAwB,qCAAa;AACrC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB,sCAAO,YAAY,6BAAK;AAC7C,IAAI,MAAyC,IAAI,CAE5C;AACL;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA,UAAU,sCAAO;AACjB,0BAA0B,oCAAY;AACtC,QAAQ;AACR;AACA;AACA,MAAM;AACN,UAAU,kCAAU;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,QAAQ,OAAO;AACpD,+BAA+B,OAAO;AACtC,uBAAuB,kCAAU;AACjC,eAAe;AACf;AACA;AACA,kCAAkC,OAAO;AACzC,QAAQ,sCAAO;AACf,yBAAyB,oCAAY;AACrC,iBAAiB;AACjB;AACA,MAAM,SAAS,6BAAK;AACpB;AACA,iBAAiB;AACjB;AACA,MAAM;AACN,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wCAAS;AAC9B;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,qCAAM,GAAG,WAAW;AAC5D;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAG9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,kCAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAyC,EAAE,EAG9C;AACH,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM,uCAAQ;AACd;AACA,QAAQ,KAAiD,EAAE,EAItD;AACL;AACA;AACA,MAAM,KAAuI,EAAE,EAI5I;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEgS;;;AC7/ChS,SAAS,2CAAO;AAChB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;;AAEA,MAAM,wCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,wCAAS,GAAG,MAAyC,GAAG,CAAiB;AAC/E,MAAM,wCAAI;AACV;AACA,MAAM,sCAAE;AACR,MAAM,mCAAI;AACV,MAAM,mCAAI,YAAY,mCAAI;AAC1B,MAAM,8CAAe;AACrB,MAAM,0CAAM;AACZ,MAAM,qCAAM;AACZ;AACA;AACA;AACA;AACA;AACA,MAAM,kDAAc;AACpB,MAAM,0CAAM,iBAAiB,kDAAc;AAC3C,MAAM,2CAAO;AACb,MAAM,oCAAK,YAAY,2CAAY;AACnC,MAAM,oCAAK,YAAY,2CAAY;AACnC,MAAM,qCAAM,YAAY,2CAAY;AACpC,MAAM,uCAAQ,YAAY,2CAAY;AACtC,MAAM,yCAAU;AAChB,MAAM,4CAAQ;AACd,MAAM,uCAAQ;AACd,MAAM,4CAAQ;AACd,MAAM,wCAAS;AACf,UAAU,4CAAQ,SAAS,yCAAU,UAAU,yCAAU,cAAc,yCAAU;AACjF;AACA,MAAM,6CAAc;AACpB,MAAM,2CAAY,cAAc,6CAAc;AAC9C,MAAM,6CAAS;AACf,SAAS,2CAAY;AACrB;AACA,MAAM,4CAAa,YAAY,2CAAY;AAC3C,MAAM,2CAAY,YAAY,4CAAQ;AACtC,MAAM,6CAAc,mBAAmB,2CAAO;AAC9C;AACA;AACA;AACA,MAAM,sDAAkB,mBAAmB,2CAAO;AAClD;AACA;AACA,MAAM,kDAAmB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAU;AAChB,MAAM,uCAAQ,GAAG,kDAAmB;AACpC,qBAAqB,yCAAU;AAC/B,CAAC;AACD,MAAM,0CAAW;AACjB,MAAM,6CAAS,GAAG,kDAAmB;AACrC,uBAAuB,0CAAW;AAClC;AACA,MAAM,8CAAU,GAAG,kDAAmB;AACtC;AACA,CAAC;AACD,MAAM,2CAAY,GAAG,kDAAmB;AACxC,uBAAuB,8CAAU,MAAM;AACvC;AACA,CAAC;AACD,MAAM,yCAAU;AAChB,MAAM,6CAAc;AACpB,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM,kCAAG;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,MAAM,4CAAa;AACnB;AACA;AACA;AACA,MAAM,uCAAQ;AACd,YAAY,4CAAQ;AACpB;AACA;AACA,IAAI,yCAAW;AACf,MAAM,4CAAa;AACnB,SAAS,yCAAW,KAAK,yCAAW,yIAAyI,qBAAM,mBAAmB,qBAAM,KAAK;AACjN;AACA,MAAM,sCAAO;AACb,SAAS,gDAAiB;AAC1B,SAAS,sCAAO,yBAAyB,KAAK,eAAe,qBAAqB;AAClF;;AAEA,MAAM,6CAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,4CAAa;AACnB;AACA;AACA;AACA;;AAEA,MAAM,8CAAe;AACrB,MAAM,gDAAiB,mBAAmB,2FAAO,CAAC,8CAAe,CAAC;AAClE,MAAM,oDAAqB,GAAG,gGAAiB;;AAE/C,MAAM,oCAAK;AACX,SAAS,gDAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,uBAAuB,oCAAK,EAAE,SAAS,oCAAK,iBAAiB;AAC7D;AACA;AACA;AACA;AACA,aAAa,KAAK,EAAE,iDAAiD,KAAK,SAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,6CAAc;AACvB,MAAM,2CAAO;AACb;AACA,oBAAoB,kBAAkB;AACtC;AACA,yBAAyB,4CAAQ,SAAS,+CAAgB,SAAS,6CAAc;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,4CAAQ,WAAW,4CAAQ;AACxC;AACA;AACA;AACA,MAAM,8CAAe,KAAK;AAC1B,MAAM,kDAAmB;AACzB,MAAM,6CAAc;AACpB,SAAS,+CAAgB;AACzB;AACA,kBAAkB,6CAAc,YAAY,8CAAe;AAC3D;AACA,6BAA6B,kDAAmB;AAChD;AACA;AACA,GAAG;AACH;AACA;AACA,SAAS,6CAAc;AACvB;AACA,iBAAiB,4CAAQ;AACzB;AACA;AACA;AACA;AACA,uDAAuD,6CAAS;AAChE,QAAQ,4CAAQ;AAChB,gBAAgB,cAAc,GAAG,OAAO;AACxC;AACA;AACA;AACA;AACA,SAAS,6CAAc;AACvB;AACA,MAAM,4CAAQ;AACd;AACA,IAAI,SAAS,2CAAO;AACpB,oBAAoB,kBAAkB;AACtC,yBAAyB,6CAAc;AACvC;AACA;AACA;AACA;AACA,IAAI,SAAS,4CAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6CAAc;AACvB;AACA;AACA,QAAQ,sBAAsB;AAC9B,gBAAgB,4CAAQ;AACxB,kBAAkB,6CAAc;AAChC;AACA;AACA,kBAAkB,6CAAc;AAChC;AACA;AACA;;AAEA,MAAM,wCAAS;AACf,MAAM,uCAAQ;AACd,MAAM,wCAAS;AACf,MAAM,6CAAS,mBAAmB,2CAAO,CAAC,wCAAS;AACnD,MAAM,4CAAQ,mBAAmB,2CAAO,CAAC,uCAAQ;AACjD,MAAM,wCAAS,mBAAmB,2CAAO,CAAC,wCAAS;;AAEnD,MAAM,kDAAmB;AACzB,MAAM,mDAAoB,mBAAmB,2FAAO,CAAC,kDAAmB,CAAC;AACzE,MAAM,4CAAa,mBAAmB,2CAAO;AAC7C,EAAE,kDAAmB;AACrB;AACA,SAAS,iDAAkB;AAC3B;AACA;AACA,MAAM,+CAAgB;AACtB,MAAM,kDAAmB;AACzB,SAAS,gDAAiB;AAC1B,MAAM,kDAAmB;AACzB,WAAW,kDAAmB;AAC9B;AACA,mBAAmB,+CAAgB;AACnC;AACA,4CAA4C,KAAK;AACjD;AACA,SAAS,kDAAmB;AAC5B;AACA,MAAM,6CAAc;AACpB;AACA;AACA;AACA;AACA;AACA,MAAM,8CAAe,mBAAmB,2FAAO;AAC/C;AACA,CAAC;AACD,MAAM,6CAAc,mBAAmB,2FAAO;AAC9C;AACA,CAAC;;AAED,MAAM,uCAAQ;AACd,SAAS,yCAAU;AACnB;AACA,gBAAgB,uCAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6CAAc;AACpB,SAAS,gDAAiB;AAC1B,qBAAqB,6CAAc;AACnC;;AAEA,SAAS,iDAAkB;AAC3B;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC,YAAY,yCAAU;AACtB;AACA;AACA;AACA,SAAS,yCAAU;AACnB;AACA;AACA,mBAAmB,qCAAM;AACzB,mBAAmB,qCAAM;AACzB;AACA;AACA;AACA,eAAe,uCAAQ;AACvB,eAAe,uCAAQ;AACvB;AACA;AACA;AACA,eAAe,2CAAO;AACtB,eAAe,2CAAO;AACtB;AACA,sCAAsC,iDAAkB;AACxD;AACA,eAAe,4CAAQ;AACvB,eAAe,4CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yCAAU;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2CAAY;AACrB,iCAAiC,yCAAU;AAC3C;;AAEA,MAAM,8CAAe;AACrB,SAAS,4CAAQ,iCAAiC,2CAAO,SAAS,4CAAQ,2BAA2B,6CAAc,KAAK,yCAAU,sCAAsC,uCAAQ;AAChL;AACA,MAAM,uCAAQ;AACd;AACA,WAAW,uCAAQ;AACnB,IAAI,SAAS,oCAAK;AAClB;AACA,cAAc,SAAS;AACvB,mBAAmB,KAAK;AACxB;AACA,OAAO,IAAI;AACX;AACA,IAAI,SAAS,oCAAK;AAClB;AACA,cAAc,SAAS;AACvB;AACA,IAAI,SAAS,4CAAQ,UAAU,2CAAO,UAAU,4CAAa;AAC7D;AACA;AACA;AACA;;AAE00B;;;ACvZxmB;AAClL;;AAEhD;AACA;AACA;AACA;AACA,EAAE,MAAyC,IAAI,CAAyC;AACxF;AACA;AACA,cAAc,MAAkD,GAAG,CAA6D;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,0BAA0B,MAAyC,GAAG,CAAW;AACjF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,0BAA0B,MAAyC,GAAG,CAAW;AACjF,4BAA4B,MAAyC,GAAG,CAAa;AACrF,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,4BAA4B,MAAyC,GAAG,CAAa;AACrF,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,8BAA8B,MAAyC,GAAG,CAAoB;AAC9F,2BAA2B,MAAyC,GAAG,CAAiB;AACxF,6BAA6B,MAAyC,GAAG,CAAmB;AAC5F,iCAAiC,MAAyC,GAAG,CAAkB;AAC/F;AACA,EAAE,MAAyC,GAAG,CAAyB;AACvE;AACA,iCAAiC,MAAyC,GAAG,CAAkB;AAC/F,8BAA8B,MAAyC,GAAG,CAAe;AACzF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,2BAA2B,MAAyC,GAAG,CAAY;AACnF,2BAA2B,MAAyC,GAAG,CAAY;AACnF,4BAA4B,MAAyC,GAAG,CAAa;AACrF,iCAAiC,MAAyC,GAAG,CAAiB;AAC9F,2BAA2B,MAAyC,GAAG,CAAY;AACnF,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,+BAA+B,MAAyC,GAAG,CAAgB;AAC3F,oCAAoC,MAAyC,GAAG,CAAoB;AACpG,2BAA2B,MAAyC,GAAG,CAAY;AACnF,wBAAwB,MAAyC,GAAG,CAAU;AAC9E,0BAA0B,MAAyC,GAAG,CAAY;AAClF,8BAA8B,MAAyC,GAAG,CAAc;AACxF,kCAAkC,MAAyC,GAAG,CAAkB;AAChG,6BAA6B,MAAyC,GAAG,CAAa;AACtF,4BAA4B,MAAyC,GAAG,CAAY;AACpF,wBAAwB,MAAyC,GAAG,CAAS;AAC7E,qBAAqB,MAAyC,GAAG,CAAO;AACxE,sBAAsB,MAAyC,GAAG,CAAO;AACzE,yBAAyB,MAAyC,GAAG,CAAU;AAC/E,4BAA4B,MAAyC,GAAG,CAAY;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,WAAW,+BAA+B;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAqE,6CAAS;AAC9E;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA,kDAAkD,4CAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAQ;AACxB;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAAQ;AAC/B;AACA,IAAI;AACJ;AACA,SAAS,4CAAQ;AACjB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK,GAAG;AACrB;AACA,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iHAAiH,IAAI,yCAAyC,IAAI;AAClK;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAoD,EAAE,EAEzD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,8BAA8B,IAAI,IAAI,2DAA2D,EAAE;AACnG,aAAa,KAAK,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM;AACxB;AACA;AACA,aAAa,sCAAE;AACf,YAAY,sCAAE;AACd,mBAAmB,sCAAE;AACrB;AACA;AACA;AACA,eAAe,YAAoB;AACnC;AACA,SAAS,mCAAS,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0CAAM,GAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAyC,IAAI,CAI5C;AACb;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAO;AACf,sBAAsB,iBAAiB;AACvC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2CAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0CAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAGH,EAAE,EAqBF;AACH;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAuE,EAAE,EAM5E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB;AACjC,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAyC,GAAG,CAAgB;AAC1G;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qJAAqJ,2CAAO;AAC5J;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA,YAAY,4CAAQ,WAAW,uCAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAQ;AACpC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,oBAAoB,uBAAuB;AAC3C,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,uBAAuB,wCAAI;AAC3B,oBAAoB,wCAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2BAA2B,8CAAU,CAAC,uCAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB,oCAAoC;AACrD,KAAK;AACL;AACA,UAAU,KAAyC,EAAE,EAO9C;AACP;AACA,KAAK;AACL;AACA,UAAU,KAA4D,EAAE,EAEjE;AACP;AACA;AACA,UAAU,KAA6D,EAAE,EAElE;AACP;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,UAAU,4CAAQ;AAClB;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,wBAAwB,6CAAc;AACtC,QAAQ,KAA8F,EAAE,EAGnG;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAAyB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4BAA4B;AACrC;AACA,QAAQ,4CAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA,UAAU,2CAAO;AACjB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4CAAQ;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,iBAAiB,KAAK,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa,GAAG,UAAU,GAAG;AAClD;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,oBAAoB,EAAE,uCAAuC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,cAAc,kBAAkB,OAAO,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,EAAE,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAA6B;AAChE;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B,IAAI,SAAS,GAAG,mBAAmB,EAAE,mCAAmC,GAAG,gBAAgB;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uCAAuC;AACjD;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,0BAA0B,OAAO,IAAI,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAyC,IAAI,CAA2C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B,kBAAkB,kBAAkB;AACpC;AACA,QAAQ,4CAAQ;AAChB;AACA,MAAM,SAAS,2CAAO;AACtB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4CAAQ;AACd;AACA;AACA;AACA,MAAM,uCAAQ;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,MAAyC,IAAI,CAG5C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAI9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA,UAAU,0BAA0B;AACpC;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA,QAAQ,4CAAQ;AAChB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ,aAAa,aAAa;AAC1B;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA,UAAU,uBAAuB,GAAG,6BAA6B;AACjE;AACA;AACA,UAAU,qBAAqB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,aAAa,mBAAmB,GAAG,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qBAAqB;AAC/B,iBAAiB,4CAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,kCAAkC;AAC5C,UAAU,aAAa;AACvB;AACA,YAAY;AACZ;AACA;AACA,8CAA8C,MAAyC,IAAI,CAA0C;AACrI,sBAAsB,OAAO;AAC7B;AACA,kBAAkB,uBAAuB;AACzC,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU,yCAAyC;AACnD;AACA,aAAa,wBAAwB;AACrC;AACA;AACA,MAAM,2CAAO;AACb;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAO;AACf;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oDAAoD;AAC9D,UAAU,kCAAkC;AAC5C;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,0CAA0C;AACpD,iBAAiB,WAAW;AAC5B;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,+EAA+E,GAAG;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,KAAK,cAAc,eAAe,IAAI,OAAO,QAAQ,IAAI,GAAG;AACxF;AACA,IAAI;AACJ;AACA;AACA;AACA,qEAAqE,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAE9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAA4D,EAAE,EAEjE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAyC,IAAI,CAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAC6F,EAAE,EAElG;AACT,YAAY,KAAkD,EAAE,EAcvD;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAyC,GAAG,CAAQ;AAC5D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,0BAA0B,6CAAc;AACxC,UAAU,KAAsH,EAAE,EAG3H;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB,MAAyC,GAAG,CAAyB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAyC,GAAG,CAAwC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,YAAY,KAAkE,EAAE,EAevE;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAyC,GAAG,CAA8B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4CAA4C;AACtD,UAAU,4BAA4B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAiD,EAAE,EAEtD;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAiD,EAAE,EAMtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAiD,EAAE,EAMtD;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAiD,EAAE,EAMtD;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAoB;AAClC,cAAc,oCAAoC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAyC,GAAG,CAAmC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA,2EAA2E,IAAI;AAC/E,+BAA+B,4CAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqE,EAAE,EAQ1E;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU,KAAyC,EAAE,EAO9C,CAAC;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyC,EAAE,EAI9C;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAiC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA,6BAA6B,mCAAI;AACjC;AACA;AACA;AACA;AACA,OAAO,6CAAc;AACrB;AACA;AACA,4BAA4B,6CAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAyC,EAAE,EAoB9C;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc,uCAAQ;AACtB;AACA;AACA;AACA,QAAQ,UAAU,sDAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAI;AACtD,QAAQ,sCAAY;AACpB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAY;AACrB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B,YAAY,sBAAsB;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,mBAAmB,uCAAQ;AAC3B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B,uCAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAwE,EAAE,EAI7E;AACP;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA,QAAQ,2CAAY,CAAC,uCAAQ;AAC7B;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA,MAAM;AACN;AACA,WAAW,qCAAqC;AAChD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,kCAAkC,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,QAAQ,KAAiD,EAAE,EAOtD;AACL;AACA;AACA,WAAW,kCAAkC,GAAG,YAAY,KAAK,0BAA0B,QAAQ;AACnG;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,sBAAsB;AAChC;AACA;AACA;AACA;AACA,IAAI;AACJ,qBAAqB,aAAa;AAClC;AACA;AACA;AACA;AACA,sBAAsB,uCAAQ;AAC9B,QAAQ;AACR,yBAAyB,+BAA+B,GAAG,YAAY;AACvE;AACA,MAAM;AACN,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,OAAO,GAAG,EAAE,aAAa;AAClD;AACA,IAAI;AACJ,6BAA6B,OAAO;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAyC,GAAG,CAA6B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uCAAQ,cAAc;AAC/E;AACA;AACA;AACA;AACA,SAAS,UAAU;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA;AACA;AACA,aAAa,EAAE,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAyC,IAAI,CAI5C;AACL,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iCAAiC,GAAG,IAAI;AACtD,IAAI;AACJ;AACA;AACA;AACA,cAAc,+BAA+B,GAAG,IAAI,EAAE,iCAAiC;AACvF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAyC,GAAG,CAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4CAAQ,aAAa,mCAAS;AAC5C;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAM;AACjC,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI,0CAAM,GAAG;AACb;AACA,KAAK;AACL;AACA;;AAEA,wCAAwC,WAAW;;AAE2nE;;;AChmJ3xD;AAChX;AACyE;;AAE5G,6BAA6B,MAAyC,GAAG,CAAa;AACtF,gCAAgC,MAAyC,GAAG,CAAgB;AAC5F,4BAA4B,MAAyC,GAAG,CAAY;AACpF,8BAA8B,MAAyC,GAAG,CAAc;AACxF,+BAA+B,MAAyC,GAAG,CAAe;AAC1F,mCAAmC,MAAyC,GAAG,CAAmB;AAClG,8BAA8B,MAAyC,GAAG,CAAc;AACxF,sBAAsB,MAAyC,GAAG,CAAO;AACzE,MAAM,mCAAU,UAAU,MAAyC,GAAG,CAAY;AAClF,gCAAgC,MAAyC,GAAG,CAAiB;AAC7F,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,mCAAU;AACb;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,GAAG;AACjE;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA,2CAA2C,2CAAO;AAClD;AACA;AACA;AACA;AACA,WAAW;AACX,wBAAwB,6CAAS,SAAS,4CAAQ;AAClD;AACA;AACA;AACA,QAAQ,aAAa;AACrB,aAAa,mCAAU;AACvB,MAAM,SAAS,aAAa;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,+CAAgB;AACrC,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,mBAAmB;AAC5B;AACA;AACA,IAAI,MAAkD,GAAG,CAAgB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB;AAC1B,QAAQ,sBAAsB;AAC9B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAoB;AAC1B,QAAQ,sBAAsB;AAC9B,cAAc,eAAe,2BAA2B,oBAAoB;AAC5E,+BAA+B,iBAAiB;AAChD;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;;AAEA,MAAM,uCAAc;AACpB,qBAAqB,cAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAyC,IAAI,CAAsB;AACjF;AACA;AACA;AACA,QAAQ,SAAS,kBAAkB;AACnC;AACA,QAAQ;AACR,QAAQ,MAAyC,IAAI,CAAsB;AAC3E;AACA,MAAM;AACN;AACA,MAAM;AACN,MAAM,MAAyC,IAAI,CAAsB;AACzE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,2CAAO;AACrD,yCAAyC,2CAAO;AAChD;AACA;AACA;AACA,yCAAyC,2CAAO;AAChD,wCAAwC,2CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,YAAY,WAAW;AACvB;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,yBAAyB,sBAAsB,iCAAiC,wBAAwB;AACxG;AACA;AACA,0BAA0B,MAAM;AAChC;AACA;AACA;AACA;AACA,MAAM,oCAAW;AACjB,SAAS,WAAa;AACtB,YAAY,YAAY;AACxB;AACA;AACA,UAAU,yBAAyB;AACnC,YAAY,sDAAsD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,MAAM,WAAW;AACjB,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA,uDAAuD,8CAAU;AACjE,YAAY,WAAW,QAAQ,sBAAsB,IAAI,YAAY,EAAE,gBAAgB,WAAW,wBAAwB,oBAAoB,gBAAgB;AAC9J;AACA;AACA,cAAc,oBAAoB;AAClC;AACA,GAAG;AACH;;AAEA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,mCAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,MAAyC,IAAI,CAK5C;AACL;AACA;AACA;;AAEA;AACA;AACA,KAAK,MAAyC,GAAG,CAAqB;AACtE;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA,SAAS,uCAAc;AACvB;AACA,MAAM,oCAAW;AACjB;AACA;AACA;AACA,SAAS,gCAAO,uBAAuB;AACvC,SAAS,WAAW;AACpB;AACA,IAAI,0CAAM,GAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAM;AACjC,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC;AACrC,sCAAsC;AACtC;;AAEuR;;;ACxexO;AACuC;AACrD;AACW;AAC4B;;AAExE;AACA;AACA;AACA;AACA;;AAEA,IAAI,KAAyC,EAAE,EAE9C;AACD;AACA;AACA,OAAO,4CAAQ;AACf;AACA;AACA,MAAM;AACN,MAAM,MAAyC,IAAI,CAA2C;AAC9F,aAAa,wCAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgD,EAAE,EAErD;AACL;AACA;AACA,eAAe,0CAAM;AACrB;AACA;AACA,eAAe,MAAyC,GAAG,CAAO;AAClE,cAAc,MAAyC,GAAG,CAAuB,GAAG,wCAAI;AACxF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO,EAAE,gCAAO;AAC1B;AACA,6EAA6E,YAAY;AACzF,iCAAiC,gDAAiB;AAClD;AACA;AACA;AACA;AACA,IAAI,6BAAI,gBAAgB;AACxB,EAAE,UAAU;AACZ;AACA,2CAA2C,uCAAU;AACrD;AACA;AACA;AACA,uBAAuB;;AAEiB;;;;;;;;ACjExC,WAAW,mBAAO,CAAC,IAAS;AAC5B,gBAAgB,mBAAO,CAAC,KAAa;AACrC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AClCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtFD;AACA;AACA;AACA;AACsE;AACV;AACN;AACQ;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kBAAK;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAK;AAClB;AACA,qBAAqB,kCAAa,YAAY,kBAAK;AACnD;AACA,qBAAqB,kCAAa,YAAY,kBAAK;AACnD;AACA;AACA;AACA,qBAAqB,kCAAa,YAAY,kBAAK;AACnD;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAK;AAClB;AACA,qBAAqB,kCAAa,YAAY,wBAAQ;AACtD;AACA,qBAAqB,kCAAa,YAAY,wBAAQ;AACtD;AACA;AACA;AACA,qBAAqB,kCAAa,aAAa,kBAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAAS;AAChC;AACA;AACA;AACA,yFAAyF;AACzF,uBAAuB,0BAAS;AAChC;AACA;AACA;;;;;ACjJA;AACA;AACA;AACA;AAC8D;AACQ;AACV;AACN;AACQ;AACC;AACxD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,eAAe;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAQ;AAC3C,0CAA0C,SAAS;AACnD;AACA,gBAAgB,kBAAK,0BAA0B,kBAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB,yCAAyC,kBAAK;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uCAA+B;AAC7E;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB,sCAAsC,kBAAK;AACpF;AACA;AACA,sBAAsB,mBAAmB,sCAAsC,kBAAK;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA,qBAAqB,kCAAa,YAAY,kBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA,qBAAqB,kCAAa,YAAY,wBAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA,8DAA8D,qDAAqD;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA,0DAA0D,qDAAqD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AClUA;AACA;AACA;AACA;AAC+D;AAC2B;AACpC;AACmB;AACkC;AAC5C;AACF;AACnB;AAC8B;AACxE,gCAAgC,qCAAY;AAC5C;AACA;AACA;AACA;AACA;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,0CAA0C;AACzH,kCAAkC,kBAAK;AACvC;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,gEAAgE;AACtG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,qCAAY;AAC7C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA,yBAAyB,sFAAsF;AAC/G;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA,uBAAuB,oBAAY,GAAG,iEAAiE;AACvG;AACA;AACA,SAAS;AACT;AACA;AACA,0DAA0D,mEAA6B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;;;;;;;;ACjJpB;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACdA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACsE;AAChB;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAgE,YAAY;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB,yEAAS;AACjE;AACA,6DAA6D,qEAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC5GA,cAAc,mBAAO,CAAC,KAAS;AAC/B;AACA;AACA;AACA;AACA;;;;;;;;ACLA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,WAAW,mBAAO,CAAC,KAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;;AAEb;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACkE;AACE;AACL;AACoB;AACmC;AACpC;AAC5B;AACQ;AACW;AACG;AAClC;AAC8B;AACc;AACE;AACuB;AACZ;AACnG;AACA;AACA;AACA,6DAA6D,kCAAkC,SAAS,6BAA6B;AACrI,8CAA8C,uDAAY,gCAAgC,EAAE,sBAAsB,uDAAY,kCAAkC,EAAE;AAClK,QAAQ,+EAAM;AACd;AACA;AACO,gCAAgC,gFAAY;AACnD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,gEAAgE;AACtG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6FAAkB;AACtG;AACA;AACA;AACA;AACO,gCAAgC,gFAAY;AACnD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,gEAAgE;AACtG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6FAAkB;AACtG;AACA;AACA;AACA;AACA,kDAAkD,gFAAY;AAC9D;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,kFAAkF;AACxH;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gDAAgD,6BAA6B;AAC7E;AACA,4BAA4B,yEAAS;AACrC;AACA;AACA,4BAA4B,yEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gFAAY;AAC1D;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE,mCAAmC,yEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gFAAY;AAC1D;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D,mCAAmC,yEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yEAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6CAA6C,2EAAU;AAC9D;AACA;AACA;AACA;AACA;AACA,kDAAkD,gFAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yEAAS;AAC9D;AACA;AACA;AACA;AACO,mDAAmD,gFAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2FAAoB;AACvD;AACA;AACA;AACA;AACA,uDAAuD,6GAAqB,iBAAiB,2FAAoB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,0EAA0E;AAChH;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,8EAA8E;AACpH;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC,yBAAyB,4EAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,kFAAM;AAC9B;AACA,uBAAuB,uDAAY,GAAG,+DAA+D;AACrG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,0BAA0B,gGAAc,KAAK,oFAAiB,WAAW,oFAAiB;AAC1F;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAK;AAC9C;AACA;AACA;AACA;AACA,uFAAuF,2EAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6EAAgB;AAC7D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6HAA6H;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,2FAAoB;AACnD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2FAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kEAAK;AAC7B;AACA;AACA,kFAAkF,QAAQ;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kEAAK;AACjC;AACA;AACA,oDAAoD,kEAAK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kIAAsC;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oGAAwB;AACvC;AACgC;AAChC;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,gFAAY;AACjD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,gFAAY;AACrD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,6BAA6B,uDAAY;AACzC;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;AAC1B,kGAA0B;AAC1B,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;AACpB,4FAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/+BpB;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC+E;AACxB;AACoF;AAChE;AACe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAI;AAC9C;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAAwB;AACzD,gCAAgC,MAAM,4BAAc;AACpD;AACA,sCAAsC,kCAAe;AACrD,gCAAgC,MAAM,4BAAc;AACpD;AACA;AACA;AACA,mBAAmB,mCAAqB;AACxC,0BAA0B,+CAAgB;AAC1C;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,IAAI,oCAAiB;AACrB,IAAI,sCAAmB;AACvB,IAAI,wCAAqB;AACzB,IAAI,2CAAwB;AAC5B,IAAI,kCAAe;AACnB;AACA;AACA,eAAe,oCAAkB;AACjC;AACwC;;;;;;;;;ACtFxC;AACA;AACA;AACA;AAC+D,CAAC;AACF;AACV;AACF,CAAC;AACL;AACiC;AAC/E,qDAAqD,MAAM,+CAAgB,eAAe,wBAAQ,kDAAkD;AACpJ;AACA,MAAM,MAAM,4BAAc,kBAAkB,wBAAQ,gDAAgD;AACpG,MAAM,MAAM,4BAAc,yBAAyB,wBAAQ,mDAAmD,uBAAO,SAAS;AAC9H,MAAM,MAAM,4BAAc,wBAAwB,wBAAQ,iDAAiD,uBAAO,SAAS;AAC3H,MAAM,MAAM,4BAAc,yBAAyB,wBAAQ,mDAAmD,uBAAO,SAAS;AAC9H,MAAM,MAAM,4BAAc,sBAAsB,wBAAQ,6CAA6C,uBAAO,SAAS;AACrH,MAAM,MAAM,4BAAc,sBAAsB,wBAAQ,0DAA0D,uBAAO,eAAe;AACxI,MAAM,MAAM,4BAAc,gBAAgB,wBAAQ,wDAAwD,uBAAO,aAAa;AAC9H;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yDAAyD,oBAAoB;AAC7E;AACA,8CAA8C,+CAAgB,uBAAuB,+CAAgB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAwE;AACxG;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,uBAAO,WAAW;AAChH;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AChEA,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,gBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACoD;AAC0C;AAC3B;AACY;AACpB;AACI;AACT;AACQ;AAClC;AACe;AACoC;AACJ;AACF;AACL;AAC7D;AACA;AACP;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sCAAe,YAAY,WAAE;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,0BAAS;AAC3C;AACA,wCAAwC,wCAAa;AACrD;AACA;AACA;AACA,kCAAkC,0BAAS,aAAa,uBAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAQ,GAAG,yGAAyG,IAAI,GAAG,WAAW,GAAG;AAChL;AACA;AACA,uCAAuC,wBAAQ,GAAG,2EAA2E,IAAI,GAAG;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAU;AAC/B,IAAI,gBAAO,IAAI,oCAAkB;AACjC;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4CAAuB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAI;AAC5C;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAA4B;AAC3E;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAQ,GAAG,0FAA0F,IAAI,EAAE,oBAAoB,EAAE;AACrK;AACA;AACA;AACA;AACA,iBAAiB;AACjB,0CAA0C,wBAAQ,GAAG,mEAAmE;AACxH;AACA;AACA,aAAa;AACb,SAAS;AACT,yBAAyB,uCAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mBAAU;AACvB,IAAI,gBAAO,IAAI,sCAAmB;AAClC,IAAI,gBAAO,IAAI,oCAAkB;AACjC;AACsB;AACtB;AACA;AACA;;;;;;;;;;;AClRA,IAAI,qBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,kBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACoD;AACwB;AACuB;AACvE;AAC0B;AACkD;AAC7B;AACe;AACX;AACF;AACwB;AACJ;AACjG,wCAAa,kCAAkC,MAAM,kDAA2B,SAAS,kDAA2B,UAAU,kDAA2B,WAAW,kDAA2B,GAAG,EAAE,wBAAQ;AAC5M;AACA,iBAAiB,gCAAa,iCAAiC,wBAAQ;AACvE;AACO,6BAA6B,yCAAe;AACnD,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAiB;AACzD;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAe;AACrD;AACA;AACA;AACA;AACA,8BAA8B,iCAAyB,QAAQ,qBAAa;AAC5E;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAyB,eAAe,qBAAa;AACnF,8BAA8B,iCAAyB,eAAe,qBAAa;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAM;AACtC,mDAAmD,sBAAc;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,8BAA8B,0BAAS;AACvC,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAU;AAChC,IAAI,kBAAO,IAAI,sCAAmB;AAClC,IAAI,kBAAO,IAAI,qCAAkB;AACjC,IAAI,kBAAO,IAAI,2CAAqB;AACpC;AACA,uCAAiB;AACjB;AACA,mCAAe,eAAe,sBAAO;AACrC;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAe,eAAe,sBAAO;AACrC;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,uBAAuB,wJAAwJ;AAC/K;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAe,eAAe,sBAAO;AACrC;AACA;AACA;AACA,mBAAmB,yBAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAe,eAAe,sBAAO;AACrC;AACA;AACA,gBAAgB,2BAA2B;AAC3C,mBAAmB,yBAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mCAAe,eAAe,sBAAO;AACrC;AACA;AACA,gBAAgB,4BAA4B;AAC5C,mBAAmB,yBAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;ACxOD;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACyE;AACR;AACK;AACf;AAC8B;AACzB;AACgB;AACY;AACf;AACQ;AAC/B;AACK;AACwB;AACjC;AACmD;AACd;AACgB;AACT;AACS;AACnB;AACU;AACoC;AAClD;AACmB;AAClB;AACtB;AACwB;AACQ;AACvF;AACA,uFAAuF,4BAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAiB;AACtE;AACA;AACA;AACA,yCAAyC,uCAAe;AACxD;AACA,oCAAoC,gBAAI;AACxC,wDAAwD,sCAAe;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT,6DAA6D,4BAA4B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,YAAY,+HAA+H;AACjN,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,kEAAkE,wCAAqB;AACvF;AACA;AACA,qDAAqD,oDAAoD;AACzG;AACA;AACA,sDAAsD,qDAAqD;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0CAAiB;AAC/B;AACA,wBAAwB,yFAAyF,kDAAkD;AACnK;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kCAAe,0BAA0B,+BAA+B;AACpI;AACA;AACA;AACA,gCAAgC,yDAAyD,qCAAuB,uBAAuB;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA,sFAAsF,wCAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,8CAA8C;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAQ;AAC/B;AACA;AACA,uGAAuG,wCAAqB,mBAAmB,wCAAqB;AACpK;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+CAAgB;AACjE;AACA,wBAAwB,4BAAc;AACtC,wBAAwB,4BAAc;AACtC,wBAAwB,4BAAc;AACtC,wBAAwB,4BAAc;AACtC,wBAAwB,4BAAc;AACtC;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,+DAA+D;AAC9H,qDAAqD,mDAAmD;AACxG;AACA;AACA;AACA,6EAA6E,+DAA+D;AAC5I;AACA;AACA;AACA,mJAAmJ,wEAAwE;AAC3N,4BAA4B,mBAAW,CAAC,wBAAQ,mCAAmC,GAAG,SAAS,GAAG,YAAY,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,WAAW;AAC5E;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsB;AACnD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4FAA4F,mEAAmE;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ,4HAA4H;AACjK,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,uBAAuB,wBAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,uBAAuB,wBAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAsB;AACxD;AACA;AACA,CAAC;AACD,gDAAgD,6BAAU;AAC1D,IAAI,0BAAO,IAAI,8BAAc;AAC7B,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,gDAAwB;AACvC,IAAI,0BAAO,IAAI,uCAAsB;AACrC,IAAI,0BAAO,IAAI,+BAAe;AAC9B,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,oBAAoB;AACnC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,KAAK,kCAAiB;AACjC;AACgC;AAChC,mDAA0B;AAC1B;AACA;AACA,gDAAgD,YAAY,oBAAoB,SAAS;AACzF;AACA;AACA,sEAAsE,+CAAwB;AAC9F,oDAAoD,qDAA8B;AAClF;AACA,qEAAqE,cAAc,uCAAc,mCAAmC,EAAE,2BAA2B,yBAAyB;AAC1L;AACA,CAAC;;;;;;;;;;;;;;;;;;;ACnXD;AACA;AACA;AACA;AACuE;AACG;AACf;AACpD;AACP;AACA,yDAAyD,sEAAW,wBAAwB,sEAAW;AACvG;AACA;AACA,yDAAyD,sEAAW,wBAAwB,sEAAW;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,QAAQ,iFAAe;AACvB;AACA,SAAS;AACT;AACA;AACA;AACA,oCAAoC,sEAAW,2CAA2C,sEAAW;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,MAAM,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc,MAAM,aAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB;AACxC;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA,gCAAgC;AAChC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjCA;AACA;AACA;AACA;AACgD;AACzC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC5EA;AACA;AACA;AACA;AACoC;AACQ;AACqC;AAC3B;AACd;AAC+B;AACI;AACL;AAChC;AACoB;AACI;AACV;AAC5B;AACkB;AAC1C,UAAU,KAAK;AACR;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,oBAAM;AACpC;AACA;AACA;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA,qDAAqD,4BAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAU;AACjC;AACA,wBAAwB,kBAAU;AAClC,qBAAqB,kBAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAU;AACpC;AACA,yCAAyC,2CAAiB,iBAAiB,4CAA4C;AACvH;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAU;AACtB;AACA;AACA;AACA,yDAAyD,+BAAU;AACnE,8CAA8C,0BAAK;AACnD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0BAAS;AACzD,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAyB,uBAAuB,wDAAuB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,0BAAkB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sBAAsB;AAC3E,mDAAmD,WAAW;AAC9D;AACA;AACA,qCAAqC,0BAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAyB,+BAA+B;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,uDAAuD;AACvD,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAmB;AACzC,sBAAsB,4CAAU;AAChC;AACA;AACA;AACA;AACA,wEAAwE,cAAc;AACtF,gBAAgB,kBAAU;AAC1B;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,oBAAY,+BAA+B,EAAE;AACrE;AACA;AACA,wBAAwB,oBAAY,mCAAmC,EAAE;AACzE;AACA;AACA,wBAAwB,oBAAY,6BAA6B,EAAE;AACnE;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAyB,wBAAwB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,8DAA8D,oBAAY;AAC1E;AACA;AACA,SAAS,QAAQ,GAAG;AACpB,8DAA8D,oBAAY;AAC1E;AACA;AACA,SAAS,MAAM,GAAG;AAClB;AACA,8CAA8C,4BAAO;AACrD;AACA,6CAA6C,4BAAO;AACpD;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA,uDAAuD,2BAAmB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,4CAA4C,4BAA4B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mBAAW,2BAA2B,oBAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzgBA;AACA;AACA;AACA;AACA;AACiM;AACzI;;AAExD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA,qBAAqB;AACrB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAA0E,EAAE,EAgB/E;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAqC;AAClD,gBAAgB,CAAyF;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA,sCAAsC,mBAAmB,iCAAiC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,YAAY,KAAyD,EAAE,EAI9D;AACT;AACA,+BAA+B,iDAAiD,qCAAqC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAsF,EAAE,EAE3F;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,aAAa;AACb;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA,wCAAwC,MAAqC,IAAI,CAAoB;AACrG;AACA;AACA,IAAI,2BAA2B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA,6CAA6C,2BAA2B;AACxE,iCAAiC,yBAAyB,EAAE;AAC5D;AACA,iBAAiB;AACjB,KAAK;AACL,qDAAqD,WAAW;AAChE,mCAAmC,cAAc,QAAQ,mBAAmB;AAC5E,KAAK;AACL,8CAA8C,UAAU;AACxD,2CAA2C,cAAc,QAAQ,YAAY;AAC7E,KAAK;AACL,gDAAgD,UAAU;AAC1D,6CAA6C,cAAc,QAAQ,YAAY;AAC/E,KAAK;AACL,kDAAkD,UAAU;AAC5D,qEAAqE,cAAc;AACnF,KAAK;AACL;AACA;AACA;AACA,QAAQ,KAAgD,EAAE,EAKrD;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,GAAG;AAC1C;AACA;AACA,4EAA4E,MAAM,KAAK,GAAG;AAC1F;AACA;AACA;AACA;AACA,qDAAqD,GAAG,UAAU,GAAG,YAAY,GAAG;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA;AACA,2DAA2D,MAAM;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,MAAqC;AAC9D,cAAc,CAAsE;AACpF,+BAA+B,KAAK;AACpC;AACA;AACA;AACA,gCAAgC,MAAM,KAAK,OAAO,KAAK,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,OAAO;AAC5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,KAAqC,GAAG,EAO5C;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAA4C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAqC,GAAG,EAE5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAwE,EAAE,EAG7E;AACb;AACA;AACA,gBAAgB,KAAoE;AACpF,gBAAgB,EAAkD;AAClE;AACA;AACA;AACA;AACA,qBAAqB,KAAqC,GAAG,EAE5C;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,KAAqC,GAAG,EAK5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAgE,EAAE,EAErE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc,8BAA8B,cAAc,0CAA0C,SAAS;AAC/I;AACA;AACA;AACA,kCAAkC,cAAc,8BAA8B,cAAc,0CAA0C,SAAS;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB,0CAA0C,SAAS,mBAAmB,mBAAmB;AACtJ;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B;AAC3B,wBAAwB;AACxB,uBAAuB;AACvB,qBAAqB;AACrB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,qCAAqC;AACrC,6BAA6B;AAC7B,gCAAgC;AAChC,kCAAkC;AAClC,4BAA4B;AAC5B,mCAAmC;AACnC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAqC,KAAK,CAAsD;AACzG;AACA;AACA;;AAEA;AACA,oCAAoC,qBAAqB;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB,QAAQ,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,MAAqC,IAAI,CAA8B;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAqC,IAAI,CAAmB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAqC,IAAI,CAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAqC,IAAI,CAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAqC,IAAI,CAAsB;;AAErG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA;AACA,wBAAwB;AACxB;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA,MAAM;AACN;AACA,SAAS,MAAqC;AAC9C,YAAY,CAAgM;AAC5M;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,QAAQ,KAAgE,EAAE,EAGrE;AACL;AACA;AACA,MAAM;AACN;AACA,SAAS,MAAqC;AAC9C,YAAY,CAAiM;AAC7M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,MAAqC,IAAI,CAAmC;AAChK;AACA;AACA;AACA,YAAY,KAA2D,EAAE,EAoBhE;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,2GAA2G,cAAc,QAAQ,YAAY;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAwF,EAAE,EAG7F;AACT;AACA;AACA,iBAAiB,KAAqC,GAAG,EA8B5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAyE,EAAE,EAG9E;AACjB;AACA;AACA,uFAAuF,KAAK,QAAQ,YAAY;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,KAAK,QAAQ,YAAY;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,2CAAM;AACzB,yBAAyB,2CAAM;AAC/B,kBAAkB,6CAAQ,sBAAsB,0CAAK;AACrD,8BAA8B,6CAAQ;AACtC,gBAAgB,UAAU;AAC1B,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,6CAAQ;AAC7B;AACA,0BAA0B,6CAAQ;AAClC;AACA;AACA,4BAA4B;AAC5B;AACA,0BAA0B,0CAAK,sCAAsC,0CAAK;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA+E,EAAE,EAkBpF;AACL;AACA;AACA,cAAc,6CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,qCAAqC,oDAAe;AACpD;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mBAAmB,OAAO;AAC1B,qBAAqB,6CAAQ;AAC7B,gBAAgB,UAAU,EAAE,2CAAM;AAClC,wBAAwB,6CAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,sCAAC;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,oDAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,oBAAoB,SAAS;AAC7B,mBAAmB,cAAc;AACjC,SAAS,MAAqC,KAAK,CAAqB;AACxE,8BAA8B,2CAAM;AACpC,+BAA+B,6CAAQ;AACvC,8BAA8B,2CAAM;AACpC;AACA;AACA,sBAAsB,6CAAQ;AAC9B,+BAA+B,0CAAK;AACpC,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,6CAAQ;AACxC,QAAQ,4CAAO,eAAe,6CAAQ;AACtC,QAAQ,4CAAO;AACf,QAAQ,4CAAO;AACf,wBAAwB,wCAAG;AAC3B;AACA;AACA,QAAQ,0CAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sCAAC,yBAAyB;AACxD;AACA;AACA,aAAa;AACb,gBAAgB,KAEa,EAAE,EAelB;AACb;AACA;AACA;AACA,2CAA2C,6BAA6B;AACxE;AACA;AACA,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,WAAW;AAC/C,kBAAkB,KAAK;AACvB;AACA,mBAAmB,KAAK;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA,2CAA2C,qBAAqB;AAChE;AACA,gEAAgE,eAAe;AAC/E;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA,UAAU,kDAAkD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kBAAkB,iDAAiD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS,EAAE,oBAAoB;AACtE;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAyD;AACjE,QAAQ,EACoD;AAC5D;AACA;AACA;AACA,yBAAyB,+CAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAqC,GAAG,EAEjD;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA,iBAAiB,KAAqC,GAAG,EAM5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB,KAIsC,EAAE,EAI3C;AACb,uCAAuC;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAwE,EAAE,EAE7E;AACT;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,SAAS;AACT;AACA,aAAa,KAAqC,GAAG,EAO5C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,eAAe;AAClE;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,KAE8B,EAAE,EAGnC;AACb;AACA;AACA;AACA;AACA,yDAAyD;AACzD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,sBAAsB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KASa,EAAE,EAGlB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,uCAAuC;AACvC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAqC,GAAG,EAE5C;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAK;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAqC;AAC9D,wBAAwB,EAAwD;AAChF,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qCAAqC,6CAAQ;AAC7C;AACA;AACA,0CAA0C,6CAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAA+E,EAAE,EAEpF;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEoa;;;;;;;;AC9gHpa;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACmC;AACZ;AACP;AACX;AAC0D;AAC7C;AAC/B;AACuD;AACP;AACyB;AACzB;AACS;AACwB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gFAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yEAAiB;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4FAAiB;AACvD;AACA;AACA,wCAAwC,4EAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAS;AACzC;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kFAA0B;AAC3D;AACA;AACA,uBAAuB;AACvB;AACA,6FAA6F,qEAAK,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mGAAc,mBAAmB,8DAA8D;AAC9H;AACA;AACA;AACA;AACA;AACA,2BAA2B,mGAAc,mBAAmB,uCAAuC;AACnG,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,+GAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4EAAa,gBAAgB,SAAS;AAC7D;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,wEAAS;AAClC;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,uDAAY;AAClD,uBAAuB,uDAAY;AACnC;AACA,aAAa;AACb,uBAAuB,uDAAY;AACnC;AACA,aAAa;AACb,uBAAuB,uDAAY;AACnC;AACA,aAAa;AACb,sCAAsC,uDAAY;AAClD,uBAAuB,uDAAY;AACnC;AACA,aAAa;AACb,uBAAuB,uDAAY;AACnC;AACA,aAAa;AACb,6FAA6F,qEAAK,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uGAAmB;AAClC,eAAe,uGAAmB;AAClC,eAAe,mGAAkB;AACjC,eAAe,mGAAkB;AACjC,eAAe,uFAAY;AAC3B,eAAe,6GAAqB;AACpC,eAAe,wGAAwB;AACvC;AACiC;AACjC,8BAA8B,gFAAY;AAC1C;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;AAC1B,4FAAoB;;;;;;;;;ACxVP;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,4BAA4B,GAAG,aAAa;AACzE,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC,aAAa;AACb,gBAAgB,UAAU,6BAA6B;AACvD;AACA,+CAA+C,cAAc,EAAE,MAAM,gBAAgB,UAAU;AAC/F,KAAK;AACL,eAAe,UAAU,8CAA8C,wBAAwB,YAAY,SAAS;AACpH,uBAAuB,gBAAgB;AACvC,iBAAiB,UAAU;AAC3B,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uCAAuC,aAAa,MAAM,iDAAiD;AAC3G;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA,2CAA2C,2BAA2B;AACtE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,kBAAe;AACf;;;;;;;;ACpFa;;AAEb,WAAW,aAAa;AACxB,YAAY,mBAAO,CAAC,IAAQ;;AAE5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;ACda;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACkE;AACgB;AAC5B;AACiB;AACJ;AACM;AACI;AACtE,gCAAgC,2EAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0FAAiC;AACjG;AACA;AACA;AACA;AACA;AACA,6DAA6D,uFAAe;AAC5E;AACA;AACA;AACA;AACA,8BAA8B,iEAAK;AACnC;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,kGAA0B;AAC1B,4FAAwB,UAAU,sFAAqB;;;;;;;;;AClD1C;AACb,kBAAkB,mBAAO,CAAC,KAA2C;AACrE,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA,uBAAuB,mBAAO,CAAC,KAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,KAAmB;AAC1C;AACA;;AAEA;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AAC8E;AACvE,0BAA0B,iGAAe;;;;;;;;ACLhD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC8E;AACb;AACR;AACiB;AACgB;AACzD;AACuF;AAClE;AACsD;AAClE;AAC+D;AAC3B;AACvB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kFAAiB;AACnD,qCAAqC,gFAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAK,CAAC,uFAAgB;AAC9B;AACA;AACA;AACA,wBAAwB,uFAAgB,YAAY,2FAAc;AAClE;AACA;AACA;AACA,oBAAoB,2HAAoB,2BAA2B,uFAAgB;AACnF,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,mCAAmC,kEAAK;AACxC;AACA,wBAAwB;AACxB;AACA,6CAA6C,uEAAc,CAAC,6EAAoB;AAChF,wBAAwB;AACxB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mCAAmC,kFAAyB,yCAAyC,sEAAa;AAClH,mCAAmC,kFAAyB,yCAAyC,sEAAa;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kEAAK;AAClC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8FAAa,0BAA0B,uDAAY;AAC3F;AACA,eAAe,mGAAkB;AACjC,eAAe,sFAAc;AAC7B;AAC6B;AAC7B,uBAAuB,iFAAa;AACpC,6FAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAA0B;;;;;;;;ACtL1B;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;AClED;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuF;AACnB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAyB;AACxC;AACyC;AACzC,uDAA0B,kHAAkH;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3B5I;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,eAAe,aAAa,gBAAgB;AACpG,iEAAiE,eAAe,aAAa,gBAAgB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACvMD;AACA;AACA;AACA;AACA,IAAI,4BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,yBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4D;AACH;AACD;AACO;AACJ;AACE;AACE;AACN;AACJ;AACZ;AACqF;AAC/D;AACA;AACiC;AACxB;AACP;AACjE,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA,mDAAmD,4BAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0CAAoB;AAC7D;AACA;AACA,qDAAqD,8CAAmB;AACxE,+BAA+B,yBAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAAU;AACjC,uBAAuB,wBAAQ;AAC/B;AACA,uBAAuB,wCAAgB;AACvC,uBAAuB,4BAAU,aAAa,yBAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wBAAgB,IAAI,yBAAiB;AAC1E,wBAAwB,4BAAU,aAAa,6BAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAgB,cAAc,6BAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAU;AAChC,IAAI,yBAAO,IAAI,0CAAqB;AACpC;AAC+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wBAAgB,KAAK,+BAAuB;AACrD;AACA;AACA;AACA,QAAQ,wBAAgB;AACxB;AACA;AACA;AACA;AACA,QAAQ,4BAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAa;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+CAAyB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAiB;AACrC,IAAI,cAAc;AAClB;AACA;;;;;;;;;;;AC3RA;AACA;AACA;AACA;AAC4D;AACrD,+BAA+B,4BAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACtLA;AACA;AACA;AACA;AACoE;AAC7D,uBAAuB,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACkD;AACK;AACG;AACD;AACS;AACC;AACf;AACwC;AACxC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AAChC;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,uBAAuB,uBAAW;AAClC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAAQ;AAC5C;AACA;AACA;AACA,qCAAqC,6BAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW,GAAG,WAAW,eAAe,iBAAiB,GAAG,iBAAiB,iBAAiB,mBAAmB,GAAG,mBAAmB,0BAA0B,yBAAyB,kCAAkC,kCAAkC,cAAc,2CAA2C;AAC7U;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B,mBAAmB,QAAQ;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kDAAkD;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kDAAkD;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,kDAAkD;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6BAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6BAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6BAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qDAAqD;AAChH;AACA;AACA,sBAAsB,2CAA2C;AACjE;AACA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA,iEAAiE,qBAAa;AAC9E;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,0BAA0B,uBAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC,0BAA0B,6BAAQ;AAClC;AACA;AACA;AACA,sDAAsD,6EAA6E;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iCAAe;AACpD,yGAAyG,qBAAa;AACtH;AACA;AACA;AACA;AACA;AACA,iGAAiG,qBAAa;AAC9G;AACA;AACA,2BAA2B,yBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,iEAAiE;AACjE,iEAAiE;AACjE;AACA,qCAAqC,yBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,iEAAiE;AACjE;AACA,qCAAqC,yBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,iEAAiE;AACjE,iEAAiE;AACjE;AACA,qCAAqC,yBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yBAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,4BAA4B,yDAAuB;AACnD;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,qBAAa;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,GAAG,YAAY,EAAE,WAAW;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACz5BA;AACA;AACA;AACA;AACoD;AACqB;AACV;AACF;AACsB;AAC0H;AAC9I;AACN;AACE;AACS;AAC2B;AACxF,2BAA2B,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA,gCAAgC,yCAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iCAAyB;AACnE;AACA;AACA,+CAA+C,kCAAgB;AAC/D;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB,8BAA8B,qBAAa;AAC3F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,8CAAoB;AAC/C;AACA,oCAAoC,4BAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAkB;AAC5C;AACA;AACA;AACA,sCAAsC,4BAAU;AAChD;AACA,oBAAoB,4BAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4BAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB,8BAA8B,qBAAa,8BAA8B,+BAA+B;AACxJ;AACA,oBAAoB,4BAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mCAAiB;AAC/C,gDAAgD,qBAAa;AAC7D,0BAA0B,8CAAwB;AAClD;AACA;AACA;AACA,4BAA4B,uDAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iCAAiC,4BAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gDAA8B;AAClF;AACA;AACA,qCAAqC,+BAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA,mBAAmB,WAAW,sCAAsC,6BAAQ;AAC5E;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA,mBAAmB,WAAW,sCAAsC,6BAAQ;AAC5E;AACA;AACA;AACA;AACA,mBAAmB,WAAW,sCAAsC,6BAAQ;AAC5E;AACA;AACA;AACA,mBAAmB,WAAW,sCAAsC,6BAAQ;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC,4BAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4BAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAgC,CAAC,qBAAa;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8CAAwB;AACtD;AACA,4BAA4B,iCAAe;AAC3C,gCAAgC,uDAAiC;AACjE;AACA;AACA;AACA;AACA,8BAA8B,WAAW,qDAAqD,6BAAQ;AACtG;AACA;AACA,8BAA8B,WAAW,qDAAqD,6BAAQ;AACtG;AACA;AACA;AACA,yCAAyC,wCAAgC,CAAC,qBAAa;AACvF;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB,oBAAoB;AACpB,qBAAqB;AACrB,uBAAuB;AACvB,yBAAyB;AACzB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;;;;AC5mBlD;AACA;AACA;AACA;AACmE;AACf;AACgB;AACP;AACE;AACF;AACZ;AACY;AACiB;AAC9E;AACA;AACA;AACO,kCAAkC,YAAY;AACrD;AACA;AACA,uBAAuB,oBAAO;AAC9B,uBAAuB,iCAAyB,sCAAsC,sBAAS;AAC/F,uBAAuB,iCAAyB,sCAAsC,sBAAS;AAC/F,uBAAuB,iCAAyB,sCAAsC,sBAAS,6CAA6C,kCAAgB;AAC5J;AACA,uBAAuB,iCAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kCAAkC,2CAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kCAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA,uBAAuB,oBAAO;AAC9B,uBAAuB,iCAAyB,sCAAsC,sBAAS;AAC/F,uBAAuB,iCAAyB,sCAAsC,sBAAS;AAC/F,uBAAuB,iCAAyB,sCAAsC,sBAAS,6CAA6C,kCAAgB;AAC5J;AACA;AACA;AACA;AACA,mDAAmD,kCAAgB;AACnE;AACA;AACA;AACA,4BAA4B,6CAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,4BAAU;AAC9C;AACA;AACA,wBAAwB,sBAAc,KAAK,0BAAkB,IAAI,yBAAiB;AAClF,uBAAuB,8BAAe;AACtC;AACA;AACA,iBAAiB,gCAAU;AAC3B;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChIA;AACA;AACA;AACA;AACoE;AAC7D,iCAAiC,gBAAgB;AACxD;;;;;;;ACNA;AACA;AACA;AACA;AAC2B;AACqC;AACM;AACV;AACN;AACyC;AACS;AACjG,iCAAiC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA,4CAA4C,6BAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH,6BAAQ;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wBAAgB;AACrD;AACA;AACA;AACA,yCAAyC,uBAAK;AAC9C;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8BAA8B;AAC7E,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B,EAAE,oBAAoB,EAAE,gBAAgB,gBAAgB,sBAAsB,GAAG,QAAQ,uBAAuB,GAAG,IAAI,iBAAiB;AACtN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B,kDAAkD,6CAAiB;AACnE,uDAAuD,kDAAsB;AAC7E;AACA,6EAA6E,SAAS,+BAA+B;AACrH;AACA;AACA,6EAA6E,SAAS,2CAA2C;AACjI;AACA,CAAC;;;AChLD;AACA;AACA;AACA;AACsB;AACsD;AAC1B;AAC3C,qBAAqB,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA,6CAA6C,wCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9DA;AACA;AACA;AACA;AAC2B;AACpB;;;;;;;;;;;;;ACLP;AACA;AACA;AACA;AACA,IAAI,wBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,qBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC+B;AACQ;AACqB;AACa;AACZ;AACF;AACF;AACwB;AACgB;AAChC;AACY;AACtB;AACc;AACkB;AAC9B;AACN;AACQ;AAC4C;AACtC;AACX;AACJ;AACqC;AACS;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6BAAQ;AAC/C,qCAAqC,6BAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAiB;AACjD,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,0CAA0C,6BAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAAS;AACzC,qCAAqC,+BAAS;AAC9C;AACA;AACA,wBAAwB,wCAAiB;AACzC,QAAQ,gBAAgB;AACxB,gDAAgD,gCAAgC,CAAC;AACjF;AACA,gBAAgB,UAAU;AAC1B,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAY;AACvE;AACA;AACA;AACA,6BAA6B,wCAAiB;AAC9C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI,0BAAkB;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mCAAa,mDAAmD,uBAAK;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAAoB;AAC5C;AACA,mCAAmC,mCAAa;AAChD;AACA;AACA;AACA;AACA,wBAAwB,wBAAgB;AACxC;AACA,mCAAmC,mCAAa;AAChD;AACA,2BAA2B,mCAAa;AACxC;AACA,oBAAoB,yBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mCAAa,6DAA6D,uBAAK;AACtH;AACA;AACA,2BAA2B,mCAAa;AACxC;AACA,uBAAuB,+CAAyB;AAChD,aAAa;AACb;AACA;AACA;AACA;AACA,mDAAmD,qCAAe;AAClE,uFAAuF,mCAAa,sCAAsC,WAAW;AACrJ,uBAAuB,yBAAiB;AACxC,sBAAsB,wBAAgB;AACtC,uBAAuB,yBAAiB;AACxC,sBAAsB,wBAAgB;AACtC,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,uCAAiB;AACrC,0DAA0D,OAAO,MAAM,qBAAqB,IAAI,qBAAqB,IAAI,gBAAgB;AACzI;AACA;AACA;AACA;AACA,oBAAoB,uCAAiB;AACrC,+CAA+C,OAAO;AACtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAoD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA,yBAAyB;AACzB,aAAa;AACb,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA,kEAAkE,uBAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC,EAAE;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC,CAAC;AACrF;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,uBAAuB,cAAG;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,EAAE,IAAI;AAChE;AACA,+BAA+B,0DAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+BAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAY;AAC3D;AACA,uBAAuB,oBAAY,gCAAgC,GAAG,6CAA6C,EAAE;AACrH;AACA;AACA,uBAAuB,oBAAY,oCAAoC,GAAG,kEAAkE,GAAG;AAC/I;AACA;AACA,uBAAuB,oBAAY,qCAAqC,GAAG,6HAA6H,GAAG;AAC3M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAA6G,mCAAa;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,iDAAiD,oCAAoC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6BAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAoB;AAChD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA,uCAAuC,mBAAK;AAC5C;AACA;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC,EAAE,gDAAgD;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,MAAM;AAC/E;AACA;AACA;AACA,6EAA6E,kBAAkB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAU;AAC5B,IAAI,qBAAO,IAAI,oCAAkB;AACjC,IAAI,qBAAO,IAAI,2CAAqB;AACpC;AAC2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oCAAa;AACjB,6CAA6C;AAC7C,sCAAsC,8BAA8B,KAAK;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3wBA;AACA;AACA;AACA;AAC4D;AACH;AACI;AACtD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB;AAC9B;AACA;AACA,QAAQ,2CAAsB,kDAAkD,iBAAiB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1QA;AACA;AACA;AACA;AACyE;AACQ;AACb;AACD;AAC5D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yCAAyC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4BAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4BAA4B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAwB,sBAAsB,4BAA4B;AACxG,4BAA4B,mCAAa;;;AChdzC;AACA;AACA;AACA;AACyE;AAChB;AACD;AACf;AAClC,2BAA2B,QAAQ;AAC1C;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxMA;AACA;AACA;AACA;AACyD;AAClD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,6BAAQ;AACjG;AACA;AACA;;;AClGA;AACA;AACA;AACA;AAC4E;AAC5C;AACkB;AAC3C,+BAA+B,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wCAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;;;AC9FA;AACA;AACA;AACA;AACuD;AACqB;AACR;AAC7D,iCAAiC,QAAQ;AAChD;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,gDAAgD,wCAAiB;AACjE,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAA0B;AAC1D;AACA;AACA;AACA;AACA,2BAA2B,yBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzeA;AACA;AACA;AACA;AACoC;AACkC;AACuC;AACjD;AACmC;AACjC;AACc;AAChB;AACrD,2CAA2C,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qBAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,6BAAQ;AAC5G,wGAAwG,6BAAQ;AAChH,uGAAuG,6BAAQ;AAC/G;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,8BAA8B,UAAU,iBAAiB,8CAA8C,GAAG;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,8BAA8B,UAAU,iBAAiB,kBAAkB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B,yCAAyC,+CAAmB;AAC5D;AACA,yEAAyE,oBAAoB,iBAAiB;AAC9G,uFAAuF,oBAAoB,gBAAgB,eAAe;AAC1I;AACA,yEAAyE,qDAAyB;AAClG,mDAAmD,qDAAyB;AAC5E;AACA,mFAAmF,oBAAoB,uBAAuB;AAC9H,iGAAiG,oBAAoB,uBAAuB;AAC5I,gBAAgB,uCAAc;AAC9B,uFAAuF,oBAAoB;AAC3G,qGAAqG,oBAAoB;AACzH;AACA;AACA;AACA,CAAC;;;ACnMD;AACA;AACA;AACA;AAC2B;AAC2C;AACL;AACX;AAC/C,iCAAiC,kBAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB,SAAS;AACT;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA,0CAA0C,oBAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAK;AACjC;AACA,0FAA0F,uBAAK;AAC/F;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uCAAe;AACrE;AACA;AACA,oEAAoE,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,8BAA8B;AAC9B,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjMA;AACA;AACA;AACA;AACuD;AACqB;AACyB;AACjC;AACqB;AAClF,8BAA8B,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6CAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iDAAuB;AACnE,QAAQ,gBAAgB;AACxB,gCAAgC,wCAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAyB;AAChD,uBAAuB,iCAAyB;AAChD,uBAAuB,iCAAyB;AAChD,uBAAuB,iCAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6CAAoB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7IA;AACA;AACA;AACA;AAC4E;AACb;AACpC;AAC2C;AACpB;AACU;AACN;AACK;AAC3D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+IAA+I,oCAAe;AAC9J;AACA,mDAAmD,6BAA6B;AAChF,0HAA0H,6BAAQ;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC,4EAA4E,uBAAK;AACtI;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH,6BAAQ;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yBAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wCAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/YA;AACA;AACA;AACA;AAC4B;AAC0C;AACu7B;AAC95B;AACnC;AACG;AACF;AAC8B;AACH;AACjF,kCAAkC,kBAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA,2EAA2E,6BAAQ;AACnF;AACA;AACA;AACA,sDAAsD,6BAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAAQ;AAC3E;AACA,oDAAoD,iBAAiB,EAAE,UAAU,gBAAgB,KAAK,GAAG,QAAQ,MAAM;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAAqB;AAC3C;AACA,0BAA0B,6CAAqB;AAC/C,0BAA0B,6CAAqB;AAC/C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA,iDAAiD,yBAAU;AAC3D;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAW,2CAA2C,qBAAqB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B;AACA,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC,EAAE;AACxK,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC,EAAE;AACxK,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC,EAAE;AACxK,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC,EAAE;AACxK,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC,EAAE;AACxK,UAAU,cAAc,gEAAoC,cAAc,6DAAiC,oBAAoB,mEAAuC;AACtK;AACA,8BAA8B,sDAA2B;AACzD;AACA,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF,UAAU,aAAa,8CAAkB,qBAAqB,oDAAwB,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,uBAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,uBAAS;AACzB;AACA,4BAA4B,YAAY;AACxC;AACA,iDAAiD,qEAAqE,iBAAiB,oBAAoB,wBAAwB,2BAA2B;AAC9M;AACA,sDAAsD,iDAAiD;AACvG,4DAA4D,2CAA2C;AACvG,+DAA+D,8CAA8C;AAC7G,sDAAsD,iCAAiC,wDAAwD;AAC/I,4DAA4D,iCAAiC,kDAAkD;AAC/I,+DAA+D,iCAAiC,qDAAqD;AACrJ;AACA;AACA,4BAA4B,YAAY;AACxC;AACA,sFAAsF,SAAS,kBAAkB,qBAAqB,yBAAyB,4BAA4B;AAC3L;AACA,8EAA8E,kDAAkD;AAChI,4FAA4F,yDAAyD;AACrJ;AACA,CAAC;;;;;ACzPD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA;AACA;AACA;AACA;AAC0G;AACtC;AACJ;AACvC;AACmC;AAC4C;AACvC;AACG;AACT;AACD;AACE;AACN;AACtD;AACA;AACA,wCAAwC,uBAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,QAAQ;AACvC;AACA;AACA;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gCAAe;AACnD,QAAQ,gBAAgB;AACxB,gDAAgD,gCAAgC,CAAC;AACjF,QAAQ,oCAAa;AACrB;AACA;AACA,0CAA0C,qCAAgB;AAC1D;AACA,SAAS;AACT,uDAAuD,qCAAgB;AACvE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAe;AACtD;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI;AAChB;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,6BAA6B;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA,mCAAmC,yBAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAK;AAC3B;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA,0HAA0H,6BAAQ;AAClI;AACA;AACA;AACA,qDAAqD,mCAAmC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H,6BAAQ;AACtI;AACA;AACA;AACA;AACA,oDAAoD,0CAAiB,uDAAuD,uCAAe;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wBAAgB;AAC5B;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7rBA;AACA;AACA;AACA;AACgC;AACiD;AAC1E,sCAAsC,YAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sBAAsB;AAC3E;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACrGA;AACA;AACA;AACA;AACiC;AACgD;AAC1E,+CAA+C,YAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChCA;AACA;AACA;AACA;AACwD;AACwB;AACxC;AACe;AAChD,wCAAwC,4BAAU;AACzD;AACA;AACA,6BAA6B,qCAAe;AAC5C;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA,uBAAuB,sCAAoB;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,sCAAoB;AAC7C;AACA,4BAA4B,KAAK;AACjC;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B,8BAA8B,2BAA2B;AACzD;AACA;AACA,wCAAwC,KAAK;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtDA;AACA;AACA;AACA;AACO;AACP;AACA,mDAAmD,sCAAsC;AACzF;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;;;;;ACtBA;AACA;AACA;AACA;AACqD;AACK;AACnD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD,wBAAwB,uBAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACtFA;AACA;AACA;AACA;AACiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,OAAO,8CAAwB;AAC/B,OAAO,8CAAwB;AAC/B;;;AChDA;AACA;AACA;AACA;AAC+D;AACV;AACG;AACE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,0BAA0B,mBAAmB,CAAC,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA;AACA,2BAA2B,uCAAuC,KAAK,WAAW;AAClF;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;ACpIA;AACA;AACA;AACA;AAC+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,0BAAS,2CAA2C,4BAAW;;;ACblG;AACA;AACA;AACA;AACuB;AACgC;AACqB;AACoB;AAC9B;AACF;AACF;AACI;AACE;AACqC;AACnD;AACD;AAC8C;AAChC;AACkF;AACvF;AACS;AACM;AACI;AACvB;AACc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA,kFAAkF;AAClF;AACA,4BAA4B,8CAAwB,OAAO,0BAA0B;AACrF;AACA;AACA;AACA;AACA;AACA,0CAA0C,wCAAiB;AAC3D;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA,0CAA0C,+CAAwB;AAClE;AACA,mBAAmB,KAAK;AACxB;AACA;AACA;AACA;AACA,0CAA0C,uCAAgB;AAC1D;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB,EAAE,8CAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,eAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sBAAsB,QAAQ;AACrC;AACA;AACA,uCAAuC,oBAAQ;AAC/C,kCAAkC,yBAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wEAAwE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,uBAAuB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ,yGAAyG;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAmB,KAAK,uBAAK;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ,0GAA0G;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uBAAK;AACrE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,4BAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uCAAgB;AACpE,wBAAwB,wCAAiB;AACzC,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA,kCAAkC,wCAAiB;AACnD;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAiB;AAClD;AACA;AACA;AACA;AACA,oCAAoC,yCAAiC,wBAAwB,qBAAa;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kCAA0B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6CAA6C,wDAAwB;AACrE,0CAA0C,yCAAiC,uBAAuB,qBAAa;AAC/G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,oBAAO;AACzC,yCAAyC,iCAAyB,wBAAwB,sBAAS;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,gBAAgB;AAC7B,wCAAwC,iCAAyB,wBAAwB,sBAAS;AAClG;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,gBAAgB;AAC7B,uCAAuC,yCAAiC,wBAAwB,sBAAS;AACzG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAA0B;AAC9D;AACA,gBAAgB,0BAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uCAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA,oBAAoB,sCAAsC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA,uCAAuC,0CAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0CAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAAoB;AACtD,wBAAwB,0CAAoB;AAC5C,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA,sBAAsB,oCAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA,sCAAsC,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB;AACnG;AACA,sCAAsC,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,0CAAoB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C;AACA;AACA,iFAAiF,uBAAuB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0CAAoB;AACrC;AACA;AACA,gEAAgE,wBAAwB;AACxF;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAA4B;AAC9D,oCAAoC,WAAW;AAC/C;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,WAAW;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjlDA;AACA;AACA;AACA;AAC8B;AAC8C;AACR;AACb;AAChD,iCAAiC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wBAAwB,wCAAiB;AACzC,QAAQ,gBAAgB;AACxB;AACA,gDAAgD,wCAAiB;AACjE,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAA0B;AAC1D;AACA;AACA;AACA;AACA,8CAA8C,gEAAgE;AAC9G;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;;;ACxKA;AACA;AACA;AACA;AAC4E;AACnB;AACP;AACU;AACQ;AACqJ;AAC5I;AAClB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qDAAyB;AACpE;AACA;AACA,iDAAiD,kDAAsB;AACvE;AACA,kDAAkD,8DAAkC;AACpF;AACA,oDAAoD,gEAAoC;AACxF;AACA;AACA;AACA;AACA;AACA,0CAA0C,yDAA6B;AACvE,kCAAkC,sCAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uCAAuC,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sCAAoB;AAC/D;AACA;AACA;AACA,SAAS;AACT,mCAAmC,cAAc,6BAAQ,iDAAiD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA,6CAA6C,6BAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mBAAK;AACpE;AACA;AACA;AACA;AACA,yBAAyB,+CAA6B;AACtD,6EAA6E,+CAA6B;AAC1G;AACA;AACA,6EAA6E,yBAAM;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,SAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7ZA;AACA;AACA;AACA;AAC4E;AACW;AAChB;AAChE,4BAA4B,gBAAgB;AACnD;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA,gCAAgC,+CAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9HA;AACA;AACA;AACA;AACsB;AACsD;AAC1B;AAC3C,qBAAqB,QAAQ;AACpC;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA,6BAA6B,wCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA,yDAAyD,aAAa;AACtE;AACA;AACA;AACA;AACA;;;AC1EA;AACA;AACA;AACA;AACgC;AAC4C;AAC1B;AAC3C,uCAAuC,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClEA;AACA;AACA;AACA;AAC0B;AAC4C;AACyB;AACA;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+CAA+C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gCAAgC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,kDAAkD;AAClD,8CAA8C;AAC9C,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B,0DAA0D,gDAAyB;AACnF;AACA,iFAAiF,SAAS,kCAAkC;AAC5H;AACA,CAAC;AACD;AACA;AACA;;;ACjUA;AACA;AACA;AACA;AACuD;AACqB;AACd;AACF;AACoB;AACpB;AACN;AACoD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAiB;AACzC,6CAA6C,gCAAgC,CAAC;AAC9E;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA,6BAA6B,6BAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,yCAAyC,sCAA+B;AACxE,oBAAoB,6BAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAAqB,+BAA+B,2CAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAa;AACxC;AACA,sCAAsC,2CAAqB;AAC3D,wBAAwB,kCAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,uBAAK;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAAqB,oCAAoC,2CAAqB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sBAAsB,EAAE,gCAAgC,EAAE,EAAE,sCAAsC;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACjNA;AACA;AACA;AACA;AAC2B;AACiD;AACZ;AACd;AACY;AACkB;AACiL;AAClK;AACnB;AACK;AAC1E,0BAA0B,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU,gBAAgB,eAAe;AAC3E;AACA;AACA,wBAAwB,wCAAiB;AACzC;AACA;AACA;AACA;AACA,8CAA8C,iCAAY;AAC1D,4CAA4C,+BAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,eAAe,gBAAgB,eAAe;AACnH;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC,sCAAsC,UAAU,gBAAgB,eAAe;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B,yBAAS;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA,iBAAiB,2CAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B;AACA,UAAU,8BAA8B,kDAAsB,cAAc,kDAAsB,EAAE;AACpG,UAAU,sCAAsC,8DAAkC,cAAc,8DAAkC,EAAE;AACpI,UAAU,wCAAwC,gEAAoC,cAAc,gEAAoC,EAAE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qBAAqB,oBAAoB,QAAQ,gBAAgB,QAAQ,SAAS,mBAAmB;AACpK,gBAAgB,uCAAc;AAC9B,iFAAiF,qBAAqB,yBAAyB,kBAAkB,0BAA0B,mBAAmB;AAC9L;AACA;AACA;AACA,CAAC;;;ACxUD;AACA;AACA;AACA;AAC4E;AACN;AACpB;AACU;AAC5D,4BAA4B;AACrB,wBAAwB,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA;AACA,6BAA6B,wCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC,6BAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wCAAiB;AACtC,gDAAgD,wCAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAiB;AACzB;AACA;;;;;ACtUA;AACA;AACA;AACA;AAC0B;AAC4C;AACR;AACa;AACf;AACoB;AACzE,gCAAgC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA,gEAAgE,8CAA8C;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kCAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6CAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uCAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAA8B;AACnE;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,6BAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gDAAgD,QAAQ,4BAA4B,OAAO,4BAA4B;AACpK;AACA;AACA;AACA;AACA,8DAA8D,kBAAkB,GAAG,SAAS,WAAW,GAAG,IAAI,2FAA2F;AACzM;AACA;AACA,8DAA8D,kBAAkB,GAAG,SAAS,WAAW,GAAG,IAAI,yCAAyC;AACvJ;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB,QAAQ,QAAQ,GAAG,SAAS,WAAW,mBAAmB,SAAS,EAAE,WAAW,6CAA6C,MAAM;AAC/L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,qBAAqB;AACrB,sBAAsB;AACtB;AACA,sCAAsC,uBAAuB,EAAE,sBAAsB;AACrF,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3QA;AACA;AACA;AACA;AACyC;AACzC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1BA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpBA;AACA;AACA;AACA;AACgD;AACzC;AACP;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClBA;AACA;AACA;AACA;AACA,IAAI,aAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,UAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiD;AACqB;AACL;AACmB;AACT;AACX;AACE;AACJ;AACJ;AACuB;AAC3B;AACc;AACgB;AACF;AACwD;AAC9D;AACK;AACL;AACG;AACH;AACjB;AACgC;AACrC;AACgD;AAC7C;AACyB;AACe;AACtB;AACrB;AACsC;AACnB;AACJ;AACN;AACU;AACnB;AACN;AACQ;AACH;AACY;AACY;AACZ;AAC4B;AACV;AACnF,8BAA8B,gBAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAAS;AACzC;AACA,mCAAmC,cAAc;AACjD;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA,0EAA0E,eAAe;AACzF;AACA;AACA,6BAA6B,wCAAiB;AAC9C;AACA;AACA,uBAAuB,wCAAiB;AACxC;AACA;AACA;AACA,uCAAuC,wCAAiB;AACxD,QAAQ,gBAAgB;AACxB;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA,8BAA8B,SAAS;AACvC;AACA,8BAA8B,SAAS;AACvC;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA,qCAAqC,wBAAwB;AAC7D;AACA,wCAAwC,mBAAmB;AAC3D;AACA,kDAAkD,2BAA2B;AAC7E,kDAAkD,iBAAiB;AACnE,kDAAkD,mBAAmB;AACrE,kDAAkD,kBAAkB;AACpE,kDAAkD,iBAAiB;AACnE,uCAAuC,kBAAkB;AACzD;AACA,iDAAiD,iCAAiC;AAClF,iDAAiD,gCAAgC;AACjF,iDAAiD,uBAAuB;AACxE,iDAAiD,kBAAkB;AACnE;AACA,uCAAuC,kBAAkB;AACzD;AACA,2BAA2B,MAAM;AACjC;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA,2BAA2B,MAAM;AACjC;AACA,iCAAiC,gBAAgB;AACjD;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,cAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wJAAwJ,oCAAe;AACvK;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mEAAmE,6BAAQ;AAC3E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,6CAAoB;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAkB;AACxC;AACA;AACA;AACA;AACA,wBAAwB,qBAAa;AACrC;AACA;AACA,kCAAkC,iCAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,iCAAkB;AACpD;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,iCAAkB;AACpD;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kCAAkC,iCAAkB;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAY;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yCAAgB;AAC/D,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yEAAyE,6BAAQ;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAU;AACjB,IAAI,UAAO,IAAI,2CAAqB;AACpC;AACgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mDAA2C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACplBA;AACA;AACA;AACA;AAC0D;AACZ;AACO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8BAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAAuB,yBAAyB,4CAAuB;AACjG;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAAuB,wBAAwB,4CAAuB;AAChG;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB,GAAG,kBAAkB;AAC5D;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;;;;;AC1SA;AACA;AACA;AACA;AACiF;AACtB;AACK;AACP;AACU;AACe;AACf;AACnE,iBAAiB,gDAAwB,4BAA4B,4BAA4B;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wCAAwC,iCAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wCAAgB;AAC7C;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oCAAa;AACjB,mBAAmB,mCAAa;AAChC;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC,4BAA4B,wCAAgB;AAC5C;AACA;AACA;AACA;AACA,sCAAsC,uCAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA,sCAAsC;AACtC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oCAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1SA;AACA;AACA;AACA;AAC+E;AACT;AACW;AAC1E,sCAAsC,4BAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB,6DAA6D,QAAQ;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiB,CAAC,yBAAS;AAClD;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,iCAAiB,CAAC,yBAAS;AAClD;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,iCAAiB,CAAC,yBAAS;AAClD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiB,CAAC,yBAAS;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AAC2D;AACU;AACZ;AACe;AACjE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4CAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8CAAmB;AAC7D;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA,oBAAoB,+BAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8BAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oCAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4CAAgB;AACzB,qBAAqB,wCAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+BAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA,YAAY,+BAAuB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAA4B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uCAA+B;AACvE;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzbA;AACA;AACA;AACA;AACoE;AACrB;AACN;AACQ;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oCAAoC,sCAAiB,KAAK,uBAAK,wDAAwD,6BAAQ,gBAAgB,sCAAiB,KAAK,uBAAK,wDAAwD,6BAAQ;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAAS;AAC5B;AACA,eAAe,+BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAiB,CAAC,uBAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAiB;AAC9C;AACA;AACA;AACA,4GAA4G,6BAAQ;AACpH,4GAA4G,6BAAQ;AACpH,2CAA2C,uBAAK;AAChD;AACA,4BAA4B,sCAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;;;ACjHA;AACA;AACA;AACA;AAC2D;AACoB;AAC9B;AACT;AACO;AACN;AACQ;AAC1C;AACP;AACA;AACA,4BAA4B,MAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAY,eAAe,4BAAS,4BAA4B,6BAAQ;AACvF;AACA;AACA,eAAe,kCAAW,eAAe,4BAAS,4BAA4B,6BAAQ;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B,4BAAS,mBAAmB,uBAAK;AAC5D,wCAAwC,8CAA8C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+BAAS;AAC1D;AACA;AACA,iDAAiD,+BAAS;AAC1D;AACA;AACA,2CAA2C,gCAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9LA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACZA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;ACjLA;AACA;AACA;AACA;AACqD;AACO;AACrD,uCAAuC,4BAAU;AACxD;AACA;AACA,2CAA2C,4BAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,8CAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClWA;AACA;AACA;AACA;AACmE;AACR;AACF;AACa;AACnB;AACY;AAC4C;AAClE;AACQ;AACqB;AACsB;AACpB;AACC;AAClE,gCAAgC,4BAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6BAAO;AACzC;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA,0CAA0C,2BAA2B;AACrE;AACA;AACA;AACA;AACA,0CAA0C,2BAA2B;AACrE;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2FAA2F,gCAAW;AACtG;AACA;AACA;AACA,6BAA6B,qDAA6B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH,gCAAW;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gCAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAA8B;AAC1D;AACA,uCAAuC,uDAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,2BAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAK;AAC7D,uDAAuD,uBAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2CAAc;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8BAAsB;AAC7D;AACA;AACA,+CAA+C,2CAAc;AAC7D;AACA;AACA;AACA;AACA,2CAA2C,2CAAc;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAAS;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uCAAuC,2CAAc;AACrD,SAAS;AACT;AACA;AACA;AACA,uCAAuC,2CAAc;AACrD,SAAS;AACT;AACA;AACA;AACA,uCAAuC,8CAAgB;AACvD,SAAS;AACT;AACA;AACA;AACA;AACA,2CAA2C,wCAAmB;AAC9D;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,2CAA2C,wCAAmB;AAC9D;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAK;AAClC,wBAAwB,uBAAK;AAC7B,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,2CAA2C,+BAAS;AACpD;AACA,uCAAuC,+BAAS;AAChD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAK;AAC1B,SAAS;AACT;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,gBAAgB,uBAAK,6CAA6C,uBAAK;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA,uFAAuF,kCAA0B;AACjH,gIAAgI,kCAA0B;AAC1J;AACA;AACA,mBAAmB,+CAAkB;AACrC;AACA;;;;;;;;;ACj3BA;AACA;AACA;AACA;AAC2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2BAA2B,gCAAwB;AACnD;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC;AACrF,iBAAiB;AACjB;AACA;AACA,kDAAkD,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC/vBA;AACA;AACA;AACA;AACwD;AACO;AACC;AACjB;AACJ;AAC8B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAAU;AACzC;AACA;AACA,0DAA0D,4BAAO;AACjE;AACA;AACA,8CAA8C,6BAAU;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,4BAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAQ;AAC3B;AACA;AACA;AACA;AACA,mBAAmB,0BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;AClWA;AACA;AACA;AACA;AACqD;AACN;AACU;AACkB;AACpE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,wCAAgB;AACjH,uCAAuC,wCAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAsD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4CAA0B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAAU;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA,kDAAkD,6CAA6C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxUA;AACA;AACA;AACA;AACyD;AACV;AACN;AACsC;AAChB;AACN;AACV;AACsB;AACS;AAC/B;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yBAAiB,CAAC,wCAAgB;AACxE,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA,sHAAsH,uBAAK;AAC3H;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;AACA,gDAAgD,uDAA6B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oHAAoH,uBAAK;AACzH;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wCAAsB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,yBAAyB,yBAAyB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAiC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qBAAgC;AACpG,qEAAqE,sBAAiC;AACtG,oEAAoE,qBAAgC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6CAA6C;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA,iDAAiD,6BAAQ;AACzD,mCAAmC,uBAAK;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C,6BAAQ;AAClD;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mCAAW,2CAA2C,iDAAyB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mCAAW,2CAA2C,iDAAyB;AAClH;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,sBAAsB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,6BAAQ;AAC9E;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAAQ;AACvD;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA,8DAA8D,6BAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA,uBAAuB,uBAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAK;AAC7D;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC;AAC5F;AACA;AACA;AACA;AACA,mCAAmC,6BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uBAAK;AACrF;AACA;AACA;AACA;AACA;AACA,wEAAwE,uBAAK;AAC7E;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAK;AAC3B;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAgC;AACnD;AACA;AACA,mBAAmB,sBAAiC;AACpD;AACA;AACA,2BAA2B,qBAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,iCAAiC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACj9BA;AACA;AACA;AACA;AAC8C;AAC9C,iBAAiB,oCAAe;AACzB;AACP;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAe;AACtD;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzDA;AACA;AACA;AACA;AAC4D;AACK;AACX;AACS;AACF;AACF;AACoC;AACvC;AACC;AACV;AACN;AACgB;AACF;AACe;AACG;AAC1B;AACU;AACkB;AACuC;AACjD;AACwS;AACrQ;AACvC;AAC7D;AACO,wBAAwB,4BAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA,gCAAgC,wCAAmB;AACnD,oEAAoE,qCAAgB;AACpF;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA,8BAA8B,2BAA2B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D;AACA;AACA,0CAA0C,iBAAiB;AAC3D,6CAA6C,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAiC;AAC3F,wDAAwD,kBAAkB;AAC1E,SAAS;AACT;AACA;AACA,SAAS;AACT,gCAAgC,iDAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,yBAAyB;AAChD,0DAA0D,4BAAuC;AACjG,SAAS;AACT;AACA;AACA,0DAA0D,qBAAgC;AAC1F,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uBAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qBAAgC;AACtF,oDAAoD,iBAAiB;AACrE;AACA;AACA,sDAAsD,yBAAoC;AAC1F;AACA;AACA,sDAAsD,uBAAkC;AACxF;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAA2B;AACzE,8CAA8C,2BAAsC;AACpF,8CAA8C,2BAAsC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,2BAAsC;AACpF;AACA;AACA;AACA,8CAA8C,2BAAsC;AACpF;AACA,0CAA0C,6BAAwC;AAClF;AACA;AACA,YAAY,wCAAmB;AAC/B,oCAAoC,wCAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uDAA+C;AAC7F,gDAAgD,uDAA+C;AAC/F;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAU;AACrD;AACA;AACA;AACA;AACA,8DAA8D,gBAA2B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,2BAAsC;AAC5F,sDAAsD,2BAAsC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iEAAiE;AACzH;AACA;AACA;AACA;AACA,iCAAiC,uDAA+C;AAChF,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA,6GAA6G,6BAAQ;AACrH,2GAA2G,6BAAQ;AACnH;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAiC;AAC3F,wDAAwD,uBAAuB;AAC/E,SAAS;AACT;AACA,0DAA0D,8BAAyC;AACnG,oCAAoC,wCAAmB;AACvD;AACA,wDAAwD,sCAAsC;AAC9F,SAAS;AACT;AACA,oCAAoC,wCAAmB;AACvD;AACA,wDAAwD,yBAAyB;AACjF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAA2B;AACjF,sDAAsD,2BAAsC;AAC5F,sDAAsD,2BAAsC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wCAAmB;AACvD;AACA,wDAAwD,wBAAwB;AAChF,SAAS;AACT;AACA;AACA,0DAA0D,2BAAsC;AAChG,wDAAwD,4BAA4B;AACpF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAA2B;AAC7E,kDAAkD,2BAAsC;AACxF,kDAAkD,2BAAsC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAK;AAC/C;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA,+FAA+F,6BAAQ;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAyB;AAC5C;AACA;AACA,mFAAmF,qDAA2B;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2CAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA,iCAAiC;AACjC,6EAA6E,0CAAoB;AACjG;AACA;AACA,yBAAyB,0CAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW;AAChD;AACA;AACA,4BAA4B,WAAW,IAAI,0CAAoB,YAAY;AAC3E;AACA;AACA;AACA;AACA,4BAA4B,6CAA6C;AACzE,uCAAuC,6CAA6C;AACpF,kCAAkC,YAAY;AAC9C,kCAAkC,qBAAqB;AACvD,gCAAgC,kBAAkB,GAAG;AACrD,kCAAkC,oBAAoB,GAAG;AACzD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAkB,+EAA+E,0BAAkB;AAC7I;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAoB;AAC7C;AACA;AACA,mDAAmD,SAAS;AAC5D,4BAA4B,mBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC,2FAA2F,2BAAsC;AACjI;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC,2FAA2F,2BAAsC;AACjI;AACA;AACA,2FAA2F,2BAAsC;AACjI;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAgC;AAC1F,wDAAwD,8CAAqB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uBAAK;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,6BAAQ;AACvG,4GAA4G,uBAAK;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+CAA6B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kDAAkD;AACzF;AACA;;;;;;;;;;;;;ACpiCA;AACA;AACA;AACA;AACA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC6C;AACU;AACe;AACe;AACV;AACd;AACvC;AACsC;AACc;AACtB;AACiB;AACI;AACpC;AAC8C;AACX;AACD;AACe;AAChB;AACqB;AAC/B;AACN;AACQ;AACkB;AACT;AACP;AACS;AACkC;AAC/B;AACY;AACsB;AACvC;AAC7B;AACyD;AAChB;AACO;AACS;AACA;AACO;AACsD;AAClD;AACtC;AACxE,2EAA2E,4BAAU;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iDAAwB;AACtD,iDAAiD,uBAAuB;AACxE,gDAAgD,4BAAO;AACvD;AACA,2DAA2D,4BAAO,GAAG,oCAAoC;AACzG;AACA,4DAA4D,4BAAO,GAAG,oCAAoC;AAC1G;AACA,yEAAyE,4BAAO,GAAG,oCAAoC;AACvH;AACA,2DAA2D,4BAAO,GAAG,oCAAoC;AACzG;AACA,+DAA+D,4BAAO,GAAG,oCAAoC;AAC7G;AACA,0DAA0D,4BAAO,GAAG,oCAAoC;AACxG;AACA,4DAA4D,4BAAO,GAAG,oCAAoC;AAC1G;AACA,qDAAqD,4BAAO,GAAG,oCAAoC;AACnG;AACA,oDAAoD,4BAAO,GAAG,oCAAoC;AAClG;AACA,6DAA6D,4BAAO,GAAG,oCAAoC;AAC3G;AACA,8DAA8D,4BAAO,GAAG,oCAAoC;AAC5G;AACA;AACA;AACA,qDAAqD,4BAAO,GAAG,oCAAoC;AACnG;AACA,yEAAyE,oCAAoC;AAC7G;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAAO,GAAG,oCAAoC;AACxG;AACA,qDAAqD,4BAAO,GAAG,oCAAoC;AACnG;AACA,wDAAwD,4BAAO,GAAG,oCAAoC;AACtG;AACA,0DAA0D,4BAAO,GAAG,oCAAoC;AACxG;AACA;AACA,iDAAiD,4BAAO;AACxD;AACA,+CAA+C,4BAAO;AACtD;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gPAAgP,sBAAM,uBAAuB,sBAAM;AACnR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,0CAAiB,EAAE,qCAAkB;AAC9H;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAwB;AACpD;AACA;AACA,6BAA6B,iDAAwB;AACrD;AACA,gBAAgB,oCAAiB,uDAAuD,UAAU;AAClG;AACA;AACA,uCAAuC,wCAAoB;AAC3D;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qCAAqC;AACvF;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,uBAAK;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAAQ;AACrB;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAAS;AACrC,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAK;AAClB;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD,iBAAiB,+BAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gCAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAwB;AAChD;AACA;AACA;AACA;AACA,mGAAmG,gCAAiB;AACpH,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qDAA2B;AACzG;AACA;AACA;AACA;AACA;AACA,4EAA4E,qDAA2B;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS,uCAAuC,4BAA4B,QAAQ,qBAAa,qBAAqB,kCAAkC,oDAAoD,wCAAgC,CAAC,qBAAa;AACxR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAY,gEAAgE,EAAE;AACtH,yDAAyD,6BAAQ;AACjE;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,uCAAuC,oBAAY;AACnD;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,iBAAiB;AACjB;AACA,sCAAsC;AACtC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,iBAAiB;AACjB;AACA,0HAA0H;AAC1H,iBAAiB;AACjB;AACA,sHAAsH;AACtH,iBAAiB;AACjB;AACA,gGAAgG;AAChG;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wCAAsB;AACzE;AACA;AACA,CAAC;AACD,wCAAwC,yBAAU;AAClD,IAAI,sBAAO,IAAI,2CAAqB;AACpC,IAAI,sBAAO,IAAI,2CAAkB;AACjC,IAAI,sBAAO,IAAI,+BAAe;AAC9B,IAAI,sBAAO,IAAI,qCAAkB;AACjC,IAAI,sBAAO,IAAI,kCAAa;AAC5B,IAAI,sBAAO,IAAI,yCAAoB;AACnC,IAAI,sBAAO,IAAI,0CAAqB;AACpC,IAAI,sBAAO,KAAK,mEAA6B;AAC7C,IAAI,sBAAO,KAAK,gDAAwB;AACxC;AAC4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,4BAAU;AACnD;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D;AACA,sDAAsD,4BAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAAO;AACxC;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAU;AACjD;AACA;AACA;AACA;AACA,kCAAkC,0CAAiB;AACnD,4BAA4B,0CAAiB;AAC7C,+BAA+B,0CAAiB;AAChD,gCAAgC,0CAAiB;AACjD,8BAA8B,0CAAiB;AAC/C,+BAA+B,0CAAiB;AAChD,6BAA6B,0CAAiB;AAC9C,sCAAsC,0CAAiB;AACvD,sCAAsC,0CAAiB;AACvD,qCAAqC,0CAAiB;AACtD,wBAAwB,0CAAiB;AACzC,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,4BAAU;AACjD;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAAiB;AACxC,0CAA0C,0CAAiB;AAC3D,uCAAuC,0CAAiB;AACxD,oCAAoC,0CAAiB;AACrD,sCAAsC,0CAAiB;AACvD,uCAAuC,0CAAiB;AACxD,0CAA0C,0CAAiB;AAC3D,0CAA0C,0CAAiB;AAC3D,iCAAiC,0CAAiB;AAClD,6CAA6C,0CAAiB;AAC9D,0CAA0C,0CAAiB;AAC3D,qCAAqC,0CAAiB;AACtD,kCAAkC,0CAAiB;AACnD,yCAAyC,0CAAiB;AAC1D,sCAAsC,0CAAiB;AACvD,8CAA8C,0CAAiB;AAC/D,uDAAuD,0CAAiB;AACxE,sDAAsD,0CAAiB;AACvE,+DAA+D,0CAAiB;AAChF,mCAAmC,0CAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAO,4CAA4C,uBAAO;AACxH,SAAS;AACT;AACA;AACA,2CAA2C,4BAAU;AACrD;AACA;AACA,4CAA4C,4BAAO;AACnD;AACA;AACA;AACA,+CAA+C,sBAAc;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,0DAA0D,sBAAc;AACxE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAA0B;AAC1B,2CAA2C,4CAAqB;AAChE;AACA,6CAA6C,0DAA0D,sCAAsC,oCAAoC,0BAA0B;AAC3M;AACA,6CAA6C,8CAAuB;AACpE;AACA,6CAA6C,8DAA8D,sCAAsC,sCAAsC,0BAA0B;AACjN;AACA,0CAA0C,2CAAoB;AAC9D;AACA,6CAA6C,wDAAwD,sCAAsC,mCAAmC,0BAA0B;AACxM;AACA,0CAA0C,2CAAoB;AAC9D;AACA,6CAA6C,wDAAwD,sCAAsC,oCAAoC,2BAA2B;AAC1M;AACA,iDAAiD,wDAA4B;AAC7E;AACA,wDAAwD,mFAAmF,WAAW,gCAAgC;AACtL;AACA,CAAC;;;;;;;;AC3wDD,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,sBAAsB,mBAAO,CAAC,KAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC5Ea;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,GAAG,4BAA4B;AACxD,iBAAiB,mBAAO,CAAC,KAAW;AACpC,kBAAkB,mBAAO,CAAC,KAAY;AACtC,gBAAgB,mBAAO,CAAC,KAAU;AAClC;AACA;AACA;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa;AACpD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,YAAY,cAAc;AAC1B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,yBAAyB;AACzB;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACrFY;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,WAAW,mBAAO,CAAC,KAA4B;AAC/C,iCAAiC,mBAAO,CAAC,KAA4C;AACrF,+BAA+B,mBAAO,CAAC,IAAyC;AAChF,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,oBAAoB,mBAAO,CAAC,KAA8B;AAC1D,aAAa,mBAAO,CAAC,KAA+B;AACpD,qBAAqB,mBAAO,CAAC,KAA6B;;AAE1D;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,IAAI,gBAAgB;AACpB;AACA;;;;;;;;;ACtBa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,gBAAgB,mBAAO,CAAC,KAAgC;;AAExD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACoC;AAC2B;AACW;AACI;AACT;AAClB;AACgD;AACjD;AACzB;AAClB,wBAAwB,sEAAU;AACzC,uCAAuC;AACvC;AACA;AACA,2DAA2D,2EAAe;AAC1E,sDAAsD,yEAAa;AACnE;AACA;AACA;AACA,6CAA6C,+DAAO;AACpD;AACA,+CAA+C,+DAAO,GAAG,6DAA6D;AACtH;AACA;AACA,4CAA4C,+DAAO;AACnD;AACA,6CAA6C,+DAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,oGAA0B;AACrI;AACA;AACA;AACA;AACA,qCAAqC,sEAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAyB,eAAe,wDAAa;AAC5E,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,6EAAkB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,oEAAyB,eAAe,wDAAa;AAC5E,8BAA8B,6EAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2CAA2C,yDAAc;AACzD;AACA,gBAAgB,+DAAoB,wBAAwB,yDAAc,CAAC,+DAAoB;AAC/F;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,6EAAkB;AAC3F,wCAAwC,6EAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA,kCAAkC,6EAAkB;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA,gBAAgB,yDAAc,CAAC,+DAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wCAAwC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,oBAAoB,gEAAc;AAClC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,2BAA2B,yEAAc;AACzC;AACA;AACA;AACA,mDAAmD,oEAAyB,wBAAwB,wDAAa;AACjH,oBAAoB,0DAAe;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kDAAkD,6EAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uEAAO;AAChC;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2HAA2H,mEAAS;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2HAA2H,mEAAS;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kEAAgB;AACjC;AACA;AACA,sDAAsD,kEAAgB;AACtE;AACA;AACA,6CAA6C,mEAAS;AACtD;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,sCAAsC,6EAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uEAAO;AAChC;AACA;AACA;AACA;;;;;;;;ACnaA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB,+BAA+B;AAC/B;AACA,mDAAmD;AACnD;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA,4CAA4C;AAC5C,gBAAgB;AAChB;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E,oBAAoB;AACpB,mCAAmC,2CAA2C;AAC9E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E,oBAAoB;AACpB,mCAAmC,yCAAyC;AAC5E;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,YAAY;AACZ;AACA,sBAAsB;AACtB,YAAY;AACZ,sBAAsB;AACtB;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,wBAAwB;AACxB;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B,gBAAgB;AAChB,0BAA0B;AAC1B;AACA,YAAY;AACZ;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,yBAAyB;AACzB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA,oBAAoB,+BAA+B,iBAAiB;AACpE;AACA,oBAAoB;AACpB;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB;AACxB,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B;AAC5B;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,gBAAgB;AAChB,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,uBAAuB;AACvB,YAAY;AACZ;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,OAAO;;AAEP;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA,gBAAgB;AAChB,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wCAAwC,qBAAqB,EAAE;AAC7E,cAAc,wCAAwC,2BAA2B,EAAE;AACnF,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E;AACA;AACA,0BAA0B,iCAAiC;AAC3D,yBAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE,gBAAgB,0CAA0C,qBAAqB,EAAE;AACjF;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qBAAqB,GAAG,oBAAoB,EAAE;AACxE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,0BAA0B,qCAAqC;AAC/D,SAAS;AACT;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,cAAc,wCAAwC,2BAA2B,EAAE;AACnF;AACA;AACA,0BAA0B,qBAAqB,GAAG,qBAAqB,EAAE;AACzE;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT,eAAe,yCAAyC,kBAAkB,EAAE;AAC5E,eAAe,yCAAyC,qBAAqB,EAAE;AAC/E,iBAAiB,2CAA2C,qBAAqB,EAAE;AACnF,eAAe,yCAAyC,8CAA8C,EAAE;AACxG;AACA;AACA,wBAAwB,oBAAoB,GAAG,qBAAqB;AACpE,SAAS;AACT;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D,qBAAqB,4CAA4C,kBAAkB,EAAE;AACrF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF,sBAAsB,6CAA6C,kBAAkB,EAAE;AACvF;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,sBAAsB,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,0BAA0B,qBAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA8B,GAAG,CAAkB,CAAC;;;;;;;;ACvoDvD,aAAa,mBAAO,CAAC,KAAW;AAChC,eAAe,mBAAO,CAAC,KAAa;AACpC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpCa;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA,6DAA6D;;AAE7D;;;;;;;;;ACPa;AACb,aAAa,mBAAO,CAAC,KAA+B;AACpD,cAAc,mBAAO,CAAC,KAAuB;AAC7C,qCAAqC,mBAAO,CAAC,KAAiD;AAC9F,2BAA2B,mBAAO,CAAC,KAAqC;;AAExE;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACpBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,kBAAkB,GAAG,WAAW;AACjL,eAAe,mBAAO,CAAC,KAAQ;AAC/B,iBAAiB,mBAAO,CAAC,KAAuB;AAChD,wBAAwB,mBAAO,CAAC,KAA8B;AAC9D,yBAAyB,mBAAO,CAAC,KAAkC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,kBAAkB;AAClB,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe;AACf,iBAAiB,mBAAO,CAAC,KAAoB;AAC7C,8CAA6C,EAAE,qCAAqC,iCAAiC,EAAC;AACtH,gBAAgB,mBAAO,CAAC,KAAmB;AAC3C,qCAAoC,EAAE,qCAAqC,uBAAuB,EAAC;AACnG,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,6CAA4C,EAAE,qCAAqC,+BAA+B,EAAC;AACnH,uCAAsC,EAAE,qCAAqC,yBAAyB,EAAC;AACvG,wCAAuC,EAAE,qCAAqC,0BAA0B,EAAC;AACzG,2CAA0C,EAAE,qCAAqC,6BAA6B,EAAC;AAC/G,yBAAyB,mBAAO,CAAC,KAA4B;AAC7D,mDAAkD,EAAE,qCAAqC,sCAAsC,EAAC;AAChI,kBAAkB,mBAAO,CAAC,KAAqB;AAC/C,mDAAkD,EAAE,qCAAqC,+BAA+B,EAAC;AACzH;;;;;;;ACjDA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;ACxFD;AACA;AACA;AACA;AAC0F;AACnF,yBAAyB,0GAAe;;;;;;;;ACL/C;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AAC0C;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uDAAY,GAAG,iHAAiH;AAC9K;AACA,8CAA8C,uDAAY,GAAG,iHAAiH;;;;;;;;;AClBxK;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,aAAa,mBAAO,CAAC,KAAqB;AAC1C,aAAa,mBAAO,CAAC,KAA+B;AACpD,UAAU,mBAAO,CAAC,KAAkB;AACpC,oBAAoB,mBAAO,CAAC,IAA2C;AACvE,wBAAwB,mBAAO,CAAC,IAAgC;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;;;;;;;AClBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACViC;AACjC;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACqC;AACA;AACE;AACJ;AACI;AACM;AACF;AACF;AACN;AACM;AACN;AACA;AACM;AACJ;AACY;AACd;AACM;AACF;AACE;AACU;AAClB;AACU;AACM;AACd;AACE;AACF;AACE;AACY;AACV;AACE;AACJ;AACE;AACJ;AACM;AACR;AACY;AACV;AACE;AACE;AACA;AACY;AACV;AACM;AACV;AACE;AACJ;AACA;AACU;AACI;AACA;AACJ;AACV;AACM;AACA;AACV;AACQ;AACA;AACM;AACgB;AACxB;AACA;AACJ;AACM;AACE;AACJ;AACE;AACM;AACJ;AACA;AACN;AACF;AACM;AACgB;AACpB;AACE;AACY;AACJ;AACZ;AACI;AACF;AACE;;;;;;;;;;;;;AC1FrC;AACA;AACA;AACA;AACmC;AACsB;AACO;AACR;AACM;AACA;AACN;AACN;AACe;AACP;AACG;AACU;AACzB;AACQ;AACF;AACd;AAC8B;AACK;AACvB;AACJ;AACE;AACG;AACW;AACiB;AACnB;AACN;AACiB;AACrB;AACI;AACA;AACU;AACJ;AACF;AACI;AACJ;AAChB;AACoB;AACR;AACW;AACL;AAChB;AACgB;AACQ;AACA;AACd;AACG;AACW;AACZ;AACO;AACP;AACY;AACA;AACQ;AACd;AACF;AACQ;AACT;AACM;AACjE;AACA;AACuC;AACe,CAAC;;;ACjEvD;AACA;AACA;AACA;AACyB;AAC0C;AACN;AACU;AACI;AACE;AACF;AACA;AACJ;AACvC;;;ACbgB;AACH;AACC;AACA;AACM;;;;ACJpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAA2C,GAAG,qBAAuB,GAAG,CAAM;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,0CAA0C,gCAAgC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuD;AACM;AAC3B;AAC2B;AACN;AACN;AACe;AACR;AACC;AACG;AACU;AACzB;AACQ;AACF;AACY;AACC;AAC3B;AACwB;AACM;AACK;AACvB;AACJ;AACE;AACG;AACD;AACyB;AACrB;AACiB;AACjB;AACa;AACP;AACN;AACU;AACe;AACd;AACL;AACC;AACH;AACI;AACJ;AAChB;AACoB;AACR;AACM;AACe;AACJ;AACM;AAClB;AACgB;AAC/B;AACgB;AACQ;AACA;AACd;AACG;AACW;AACZ;AACO;AACQ;AACH;AACZ;AACY;AACQ;AACd;AACF;AACQ;;AAEvB;AACV;AACnC,gDAAe,2BAAM,EAAC;AACtB;AACsD;AACA;AACE;AACJ;AACI;AACM;AACF;AACF;AACN;AACM;AACN;AACA;AACJ;AACU;AACJ;AACY;AACd;AACM;AACF;AACY;AACV;AACR;AACU;AACM;AACd;AACE;AACL;AACG;AACE;AACY;AACjB;AACO;AACE;AACJ;AACE;AACE;AACN;AACF;AACY;AACV;AACE;AACE;AACA;AACY;AACV;AACM;AACV;AACE;AACJ;AACA;AACU;AACI;AACA;AACJ;AACV;AACM;AACA;AACV;AACQ;AACA;AACM;AACgB;AACxB;AACA;AACJ;AACM;AACE;AACJ;AACE;AACM;AACJ;AACA;AACN;AACF;AACM;AACgB;AACpB;AACE;AACY;AACX;AACO;AACZ;AACI;AACF;;;;;;;;;;AC9LpD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;ACvB4E;AACpB;AAClD,sCAAsC,qFAAkB;AAC/D,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACO,qCAAqC,qFAAkB;AAC9D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;AC/CA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC9FD,eAAe,mBAAO,CAAC,KAAmB;AAC1C,cAAc,mBAAO,CAAC,KAAS;AAC/B,QAAQ,gBAAgB,EAAE,mBAAO,CAAC,KAAgB;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E,4DAA4D,SAAS;;AAErE,kBAAkB,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,WAAW,EAAE,MAAM;AAC/D;AACA;;;;;;;;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACuC;AACG;AACU;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,qDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,qDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,eAAe,WAAW;AAC1B;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wEAAwE,mDAAG;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2EAAoB;AAC/C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO,4CAA4C,6DAAS;AAC5D;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/IA;AACA;AACA;AACA;AAC4C;AAC5C;AACA;AACA,aAAa,YAAY;AACzB,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAK;AACtC,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,gBAAgB,YAAY,oBAAoB;AAChD;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC2D;AACyC;AACrC;AAC6B;AACR;AAC9B;AACR;AAC2D;AACb;AACC;AACH;AACU;AACJ;AACzF,0BAA0B,gCAAa,sBAAsB,wBAAQ;AACrE,iCAAiC,yCAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAAO;AAC3B;AACA,mDAAmD,uBAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,wCAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAQ,yBAAyB,GAAG,IAAI,EAAE,GAAG,GAAG;AAC9D,cAAc,wBAAQ,sBAAsB,GAAG,IAAI,EAAE;AACrD;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,oDAAkB;AACjC,eAAe,yCAAoB;AACnC,eAAe,oCAAkB;AACjC;AACA,uCAAiB;AACjB,kDAAqB,mBAAmB,sCAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD,8CAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA,mCAAmC,wCAAkB,gEAAgE,QAAQ,iEAAiE,QAAQ;AACtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAkB;AACjC;;;;;;;;;;;;;;;;;;;;;ACjLA;AACA;AACA;AACA;AACA;AACiE;AAC4B;AAC9B;AACD;AACT;AACyC;AAC7B;AACI;AACe;AACsB;AACzC;AACX;AACmB;AACX;AACQ;AACf;AACU;AACc;AACd;AACvB;AAC6D;AACF;AACf;AACa;AACH;AACN;AACiF;AACnF;AACzB;AACsB;AACrF,4BAAY,gBAAgB,sBAAM;AAClC,aAAa,sBAAM;AACnB,WAAW,oBAAY;AACvB;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,sCAAa;AACzD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,+BAA+B,wBAAQ;AACvC,gCAAgC,sBAAM,8BAA8B,sBAAM;AAC1E,gCAAgC,iCAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAoB;AACrE,2CAA2C,oDAAkB;AAC7D,6CAA6C,uCAAsB;AACnE,8CAA8C,wBAAwB;AACtE,qDAAqD,gDAAwB;AAC7E,0CAA0C,2CAAqB;AAC/D;AACA;AACA;AACA,wBAAwB,sDAAkC;AAC1D,wBAAwB,yCAAgB;AACxC;AACA;AACA;AACA;AACA,YAAY,sBAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAK;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4EAA4E,kBAAkB,iFAAiF;AAC/K;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,2BAA2B,gDAAoB;AAC/C;AACA,wGAAwG,gDAAuB;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,mBAAmB,uCAAe,OAAO,+CAAwB,sEAAsE,oBAAY;AACnJ;AACA;AACA;AACA,cAAc,oBAAY,4CAA4C,EAAE;AACxE,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,qBAAa;AACpC,mCAAmC,oBAAY,GAAG,6DAA6D;AAC/G,iBAAiB;AACjB,8BAA8B,0CAAiB;AAC/C;AACA,8BAA8B,0CAAiB;AAC/C;AACA;AACA,qBAAqB;AACrB,8BAA8B,iCAAc,KAAK,0CAAiB,kBAAkB,gCAAY;AAChG;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B,sBAAM;AAClC;AACA;AACA,qBAAqB;AACrB,4BAA4B,sBAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,YAAY,gCAAgB;AAC5B;AACA,KAAK;AACL;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qBAAa;AACpC,8BAA8B,iCAAc,KAAK,0CAAiB,wBAAwB,0CAAiB;AAC3G;AACA,8BAA8B,0CAAiB;AAC/C,iCAAiC,6BAAQ;AACzC;AACA,qBAAqB;AACrB,8BAA8B,iCAAc,KAAK,0CAAiB,kBAAkB,gCAAY;AAChG,iCAAiC,6BAAQ;AACzC;AACA,qBAAqB;AACrB,aAAa;AACb,YAAY,gCAAgB;AAC5B;AACA,KAAK;AACL;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qBAAa;AACpC,8BAA8B,iCAAc,KAAK,0CAAiB,wBAAwB,4BAAW,kBAAkB,0CAAiB;AACxI;AACA,0BAA0B,0CAAiB;AAC3C;AACA,6BAA6B,qFAAqF;AAClH;AACA,iBAAiB;AACjB;AACA,wBAAwB,sBAAM;AAC9B;AACA;AACA;AACA,aAAa;AACb,YAAY,gCAAgB;AAC5B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAe,OAAO,gDAAyB,uEAAuE,oBAAY;AACrJ;AACA;AACA;AACA,cAAc,oBAAY,kDAAkD,EAAE;AAC9E,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,qBAAa;AACpC,mCAAmC,oBAAY,GAAG,8DAA8D;AAChH,iBAAiB;AACjB,8BAA8B,iCAAc,KAAK,0CAAiB,yBAAyB,0CAAiB;AAC5G;AACA,4BAA4B,sBAAM;AAClC;AACA;AACA,qBAAqB;AACrB,4BAA4B,sBAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;AACA;AACA,kBAAkB,oBAAY,kDAAkD,EAAE;AAClF,kBAAkB,oBAAY;AAC9B;AACA,KAAK;AACL;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,qBAAa;AAChC,0BAA0B,iCAAc,KAAK,0CAAiB,yBAAyB,4BAAW,kBAAkB,0CAAiB;AACrI;AACA,oBAAoB,sBAAM;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,mBAAmB,uCAAe,OAAO,mDAA4B,0EAA0E,oBAAY;AAC3J;AACA;AACA;AACA,cAAc,oBAAY,oEAAoE,EAAE;AAChG,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,qBAAa;AACpC,mCAAmC,oBAAY,GAAG,iEAAiE;AACnH,iBAAiB;AACjB,8BAA8B,0CAAiB;AAC/C;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA,iBAAiB;AACjB;AACA,4BAA4B,sBAAM;AAClC;AACA;AACA,qBAAqB;AACrB,4BAA4B,sBAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qBAAa;AACpC,8BAA8B,iCAAc,KAAK,0CAAiB,4BAA4B,4BAAW,kBAAkB,0CAAiB;AAC5I;AACA,wBAAwB,sBAAM;AAC9B;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uCAAe,OAAO,mDAA4B,0EAA0E,oBAAY;AAC3J;AACA;AACA;AACA,cAAc,oBAAY,mEAAmE,EAAE;AAC/F,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,qBAAa;AACpC,mCAAmC,oBAAY,GAAG,iEAAiE;AACnH,iBAAiB;AACjB,8BAA8B,0CAAiB;AAC/C;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA,iBAAiB;AACjB;AACA,4BAA4B,sBAAM;AAClC;AACA;AACA,qBAAqB;AACrB,4BAA4B,sBAAM;AAClC;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,qBAAa;AACpC,8BAA8B,iCAAc,KAAK,0CAAiB,4BAA4B,4BAAW,kBAAkB,0CAAiB;AAC5I;AACA,0BAA0B,0CAAiB;AAC3C;AACA;AACA,iBAAiB;AACjB;AACA,wBAAwB,sBAAM;AAC9B;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAY,6CAA6C,EAAE;AACzE,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,qBAAa;AAChC,+BAA+B,oBAAY,GAAG,4DAA4D;AAC1G,aAAa;AACb,0BAA0B,iCAAc,KAAK,0CAAiB,uBAAuB,4BAAW,kBAAkB,0CAAiB;AACnI;AACA,sBAAsB,0CAAiB;AACvC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B;AACA;AACA,iBAAiB;AACjB,wBAAwB,sBAAM;AAC9B;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA,mBAAmB,uCAAe,OAAO,8CAAuB,2EAA2E,oBAAY;AACvJ;AACA,CAAC;AACD,mCAAe;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,qBAAa;AAChC,0BAA0B,iCAAc,KAAK,0CAAiB,uBAAuB,4BAAW,kBAAkB,0CAAiB;AACnI;AACA,oBAAoB,sBAAM;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,uCAAe,OAAO,8CAAuB,4EAA4E,oBAAY;AACxJ;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAa;AAChC,0BAA0B,iCAAc,KAAK,4BAAW,kBAAkB,0CAAiB;AAC3F,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,uCAAe,mBAAmB,oBAAY;AACjE;AACA;AACA,uBAAuB,oBAAY,uCAAuC,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,gCAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc,6EAA6E,cAAG,EAAE;AAChG,cAAc,6EAA6E,6BAAqB,cAAc;AAC9H,cAAc,6EAA6E;AAC3F,cAAc,0HAA0H;AACxI,cAAc,qGAAqG;AACnH;AACA,KAAK;AACL;AACA,QAAQ,2BAAU,CAAC,cAAG;AACtB,QAAQ,2BAAU,CAAC,6BAAqB;AACxC,QAAQ,2BAAU;AAClB,QAAQ,2BAAU;AAClB,QAAQ,2BAAU;AAClB,2CAA2C,oDAAkB;AAC7D,4DAA4D,UAAU;AACtE,YAAY,sCAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,2CAAqB;AAClD,aAAa;AACb;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc,6EAA6E,cAAG,EAAE;AAChG,cAAc,6EAA6E,6BAAqB,cAAc;AAC9H,cAAc,6EAA6E;AAC3F,cAAc,0HAA0H;AACxI;AACA,KAAK;AACL;AACA,qBAAqB,+BAAe;AACpC;AACA,CAAC;AACD;AACA;AACA,gCAAgB;AAChB;AACA;AACA,QAAQ,2BAAU,CAAC,cAAG;AACtB,QAAQ,2BAAU,CAAC,6BAAqB;AACxC,qDAAqD,gDAAwB;AAC7E,+CAA+C,oDAAkB;AACjE,kDAAkD,UAAU;AAC5D,iBAAiB,sCAAY;AAC7B;AACA;AACA,+BAA+B,gDAAoB;AACnD;AACA;AACA;AACA,+BAA+B,gDAAuB,UAAU,8CAAuB,gEAAgE,6BAAqB,sDAAsD,uCAAe,aAAa,oBAAY;AAC1Q,8BAA8B,uBAAK;AACnC;AACA,SAAS;AACT;AACA,CAAC;AACD;AACA,gCAAgB;AAChB;;;;;;;;;AC3rBa;AACb;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACPa;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACrE6E;AACpB;AAClD,qBAAqB,qFAAkB;AAC9C,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,oBAAoB,qFAAkB;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACoE;AACN;AAC9D;AACA;AACA;AACA;AACO;AACP;AACA;AACA,kCAAkC,8CAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qCAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB,iBAAiB,IAAI,IAAI;AAC5C;AACA;AACO;AACP,wBAAwB,iBAAiB,IAAI,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,uCAAuC;AACvC;AACA;AACA,+CAA+C;AAC/C;AACA;AACA,gCAAgC;AAChC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC9IA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACkE;AACR;AAC+C;AACrD;AAC+C;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAe;AAC7C;AACA;AACA;AACA;AACA,kDAAkD,sCAA8B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sCAA8B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,SAAS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAmC;AACtD;AACA;AACA,2EAA2E,4BAAU;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAA8B;AACrD;AACA;AACA;AACA;AACA,6DAA6D,SAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAA8B;AAC9C;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wCAAwC,sCAA8B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAA8B;AAC/C;AACA,8BAA8B,sCAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qCAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAuB,kCAAkC;AAC7E;AACA,sBAAsB,WAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAuB,sBAAsB;AACzE;AACA,8BAA8B,WAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAA2B,YAAY,SAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAA+B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAyB;AAC3D;AACA;AACA;AACA;AACA,8BAA8B,WAAyB;AACvD;AACA;AACA,mDAAmD,iBAA+B;AAClF;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,oCAAoC,iBAA+B,yDAAyD;AAC5H;AACA,yDAAyD;AACzD;AACA,yBAAyB,SAAuB;AAChD,8BAA8B,WAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA;AACA;AACA,kCAAkC,WAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAA+B;AACvE;AACA,6DAA6D;AAC7D;AACA,6BAA6B,SAAuB;AACpD,kCAAkC,WAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,GAAiB,8CAA8C,iBAA+B;AAClH;AACA;AACA;AACA;AACA,sBAAsB,WAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAyB;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAsB;AAC1C;AACA;AACA;AACA,8BAA8B,WAAyB;AACvD;AACA,gCAAgC,QAAsB;AACtD;AACA;AACA;AACA,gCAAgC,QAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAAS;AACjE;AACA;AACA;AACA;AACA,YAAY,sCAA8B;AAC1C;AACA;AACA,oCAAoC,sCAA8B;AAClE;AACA;AACA;AACA,oDAAoD,8BAAS;AAC7D;AACA;AACA;AACA,eAAe,2CAAqB;AACpC;AAC4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAqB;AACnC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;;AC7vBA;AACA;AACA;AACA;AACiF;AACtB;AACM;AACF;AACkD;AAC/C;AACG;AACrE,iBAAiB,gDAAwB,0BAA0B,4BAA4B;AACxF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iCAAyB;AACrC;AACA;AACA,sBAAsB,0BAAkB;AACxC;AACA;AACA;AACA,0CAA0C,sCAAoB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uCAAqB;AAClD,4BAA4B,uCAAqB;AACjD,6BAA6B,4CAAc,KAAK,wCAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,+BAA+B,mCAAU;AACzC,6BAA6B,uCAAqB;AAClD,4BAA4B,uCAAqB;AACjD,6BAA6B,4CAAc,KAAK,wCAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,QAAQ,mCAAU;AAClB,+BAA+B,mCAAU;AACzC,6BAA6B,uCAAqB;AAClD,4BAA4B,uCAAqB;AACjD,6BAA6B,4CAAc,KAAK,wCAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrHA,IAAI,kCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,+BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACwD;AACqB;AACb;AACe;AAC/E,wEAAwE,4BAAU;AAClF;AACA;AACA;AACA,0DAA0D,4BAAO;AACjE,mDAAmD,4BAAO;AAC1D;AACA,sDAAsD,4BAAO;AAC7D;AACA,0DAA0D,4BAAO;AACjE,mDAAmD,4BAAO;AAC1D;AACA,sDAAsD,4BAAO;AAC7D;AACA;AACA,2CAA2C,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA,4BAA4B,kCAAU;AACtC,IAAI,+BAAO,IAAI,kCAAa;AAC5B;AACqC;AAC9B;AACP;AACA;AACA;AACA;;;;;;;AC9HA;AACA;AACA;AACA;AACA,IAAI,oCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,iCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkE;AACR;AACsC;AACf;AACM;AACE;AACV;AAC/E,4EAA4E,yBAAyB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAO,oBAAoB,uBAAO;AACjE;AACA,oBAAoB,kCAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oCAAU;AACxC,IAAI,iCAAO,IAAI,qCAAkB;AACjC,IAAI,iCAAO,IAAI,kCAAa;AAC5B;AACuC;AACvC,uCAAiB,CAAC,oDAAkB;;;;;;;AC7FpC;AACA;AACA;AACA;AAC8E;AACvE,uBAAuB,yCAAe;;;ACL7C;AACA;AACA;AACA;AACA,IAAI,gCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,6BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoD;AACS;AACa;AACpB;AAC2B;AACQ;AACN;AACnF;AACA;AACA;AACA,2BAA2B,iCAAc,6IAA6I,gCAAU;AAChM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAiB;AAChC;AACA;AACA,eAAe,yBAAiB;AAChC;AACA;AACA,eAAe,2BAAQ;AACvB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0BAAK;AAC7C,0CAA0C,0BAAK;AAC/C,oCAAoC,0BAAK;AACzC,0CAA0C,0BAAK;AAC/C,iCAAiC,0BAAK;AACtC,qCAAqC;AACrC,uCAAuC;AACvC;AACA;AACA,0BAA0B,gCAAU;AACpC,IAAI,6BAAO,IAAI,oDAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAU;AACtC,IAAI,6BAAO,IAAI,oDAAkB;AACjC;AACqC;AACrC,uCAAiB,CAAC,cAAc;;;;;;;;;;;;;;;AC1EhC;AACA;AACA;AACA;AACA,IAAI,wBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,qBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACmE;AACU;AACnB;AACF;AACjB;AAC0B;AACY;AACI;AAC0B;AAC3G;AACA;AACA,+BAA+B,uBAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ,WAAW,aAAa,KAAK,qCAAqC,IAAI,8BAA8B,IAAI,YAAY;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAY,GAAG,oCAAoC,GAAG,0BAA0B,+DAA+D,EAAE;AAC3K;AACA;AACA,0BAA0B,oBAAY,GAAG,wCAAwC,GAAG,0BAA0B,mEAAmE,EAAE;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ,WAAW,aAAa,KAAK,kDAAkD,IAAI,8BAA8B,IAAI,YAAY;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iBAAiB;AAC1C,wBAAwB,uBAAuB;AAC/C,uCAAuC,cAAc;AACrD;AACA,8CAA8C,QAAQ;AACtD,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA,mBAAmB,0CAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAAa,gBAAgB,+BAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0CAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oCAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA,YAAY,kCAAY;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,oBAAY,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,uBAAuB,oBAAoB,EAAE,qBAAqB,EAAE;AAC1P;AACA;AACA,+FAA+F,oBAAY,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,uBAAuB,oBAAoB,EAAE,qBAAqB,EAAE;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,oDAAoD,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE,iDAAiD,EAAE;AAClR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,+DAA+D,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE,kFAAkF,EAAE;AAC9T;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,+DAA+D,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C,oBAAoB,SAAS;AAC7B,sBAAsB,8BAAQ;AAC9B,yBAAyB,oBAAY,+CAA+C,EAAE;AACtF;AACA;AACA,+BAA+B,oBAAY,GAAG,uBAAuB,GAAG,uDAAuD,cAAc,GAAG;AAChJ;AACA,qBAAqB;AACrB;AACA,+BAA+B,oBAAY,GAAG,gDAAgD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAY,GAAG,8DAA8D,GAAG,gCAAgC,oBAAoB,EAAE;AAClK;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAY,qDAAqD,EAAE;AACxF,2BAA2B,oBAAY,GAAG,uEAAuE;AACjH,0BAA0B,oBAAY;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,oBAAY,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,uBAAuB,oBAAoB,EAAE,qBAAqB,EAAE;AAC1P;AACA;AACA,+FAA+F,oBAAY,GAAG,wCAAwC,GAAG,8BAA8B,GAAG,uBAAuB,oBAAoB,EAAE,qBAAqB,EAAE;AAC9P;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,oDAAoD,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE,iDAAiD,EAAE;AAClR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,+DAA+D,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE,kFAAkF,EAAE;AAC9T;AACA;AACA;AACA,uEAAuE,oBAAY,GAAG,+DAA+D,GAAG,8BAA8B,GAAG,2BAA2B,oBAAoB,EAAE;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAY,GAAG,8DAA8D,GAAG,gCAAgC,oBAAoB,EAAE;AAClK;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAU;AAC5B,IAAI,qBAAO,IAAI,6BAAc;AAC7B,IAAI,qBAAO,IAAI,yCAAoB;AACnC;AAC2B;AAC3B;AACA;AACA;AACA;AACA;AACA,uCAAiB,CAAC,iCAAgB;;;;;;;;;;;ACpkClC;AACA;AACA;AACA;AACA,IAAI,qCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,kCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC+D;AACH;AACmB;AACb;AACiB;AACR;AACc;AACzF,8EAA8E,4BAAU;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2CAA2C,kEAA6B;AACxE;AACA;AACA;AACA;AACA,+BAA+B,qCAAU;AACzC,IAAI,kCAAO,IAAI,kCAAa;AAC5B,IAAI,kCAAO,IAAI,8BAAW;AAC1B,IAAI,kCAAO,IAAI,0CAAgB;AAC/B;AACwC;AACxC,uCAAiB,CAAC,0DAA6B;;;;;AC5C/C;AACA;AACA;AACA;AACqD;AACS;AACV;AACN;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAK,sDAAsD,+CAAsB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3KA;AACA;AACA;AACA;AACwE;AACP;AACwB;AAClF;AACP;AACA,qCAAqC,uBAAuB;AAC5D,kCAAkC,uBAAuB;AACzD,0CAA0C,uBAAuB;AACjE,sCAAsC,uBAAuB;AAC7D,sCAAsC,uBAAuB;AAC7D,0CAA0C,uBAAuB;AACjE,uCAAuC,uBAAuB;AAC9D,0CAA0C,uBAAuB;AACjE,0CAA0C,uBAAuB;AACjE,sCAAsC,uBAAuB;AAC7D,iCAAiC,uBAAuB;AACxD,oCAAoC,uBAAuB;AAC3D,kDAAkD,uBAAuB;AACzE,uDAAuD,uBAAuB;AAC9E,gDAAgD,uBAAuB;AACvE,yCAAyC,uBAAuB;AAChE,iCAAiC,uBAAuB;AACxD,6CAA6C,uBAAuB;AACpE,kDAAkD,uBAAuB;AACzE,0CAA0C,uBAAuB;AACjE,wCAAwC,uBAAuB;AAC/D,gCAAgC,uBAAuB;AACvD,6CAA6C,uBAAuB;AACpE,sCAAsC,uBAAuB;AAC7D,sCAAsC,uBAAuB;AAC7D,8CAA8C,uBAAuB;AACrE,uDAAuD,uBAAuB;AAC9E,kDAAkD,uBAAuB;AACzE,4CAA4C,uBAAuB;AACnE,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAiB,CAAC,gDAAwB;;;;;;;;;;;;;;;;;;;;;;;;;AC7C1C;AACA;AACA;AACA;AACA,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,iBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACqB;AACkD;AACZ;AACJ;AACmC;AACS;AACpB;AAC4D;AAC5E;AACe;AACqB;AACgB;AACzC;AAC5B;AACoB;AACiC;AACjC;AAClE,UAAU,KAAK;AACf,4CAA4C,oBAAM;AAClD;AACA,eAAe,qBAAa;AAC5B;AACA;AACA,eAAe,qBAAa;AAC5B;AACA,uBAAuB;AACvB,sBAAsB;AACtB,oBAAoB;AACpB,sBAAsB;AACtB,4BAA4B;AAC5B,mBAAmB;AACnB,cAAc;AACd,cAAc;AACd;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iCAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAO;AACpD,mDAAmD,4BAAO;AAC1D;AACA,mBAAmB,gDAAoB,2BAA2B,wCAAgB;AAClF,SAAS;AACT;AACA;AACA,yCAAyC,+BAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,iCAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,yEAAyE,wCAAgB,IAAI,iFAAiF,0CAAoB,aAAa;AAC/M,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wCAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAQ,qBAAqB,GAAG,oBAAoB,4BAAW;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mBAAW;AAC3D,+CAA+C,kBAAU;AACzD;AACA;AACA,2BAA2B,iCAAyB;AACpD;AACA;AACA,aAAa;AACb,2BAA2B,iCAAyB;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kDAA0B;AAC7E;AACA,YAAY,uBAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F,+DAA+D,+BAA+B;AAC9F;AACA;AACA;AACA;AACA,iEAAiE,8BAA8B;AAC/F,gEAAgE,+BAA+B;AAC/F;AACA;AACA;AACA;AACA,+DAA+D,8BAA8B;AAC7F,8DAA8D,+BAA+B;AAC7F;AACA;AACA;AACA;AACA,kEAAkE,8BAA8B;AAChG,iEAAiE,+BAA+B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iEAAiE;AAClI;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA,yCAAyC,oDAAoD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0EAA0E;AAChI;AACA;AACA;AACA,sDAAsD,8DAA8D;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAU;AACxB,IAAI,iBAAO,IAAI,oCAAkB;AACjC,IAAI,iBAAO,IAAI,2CAAqB;AACpC,IAAI,iBAAO,IAAI,mCAAc;AAC7B,IAAI,iBAAO,IAAI,2CAAqB;AACpC,IAAI,iBAAO,IAAI,0CAAqB;AACpC;AACuB;AACvB,oCAAoC,oBAAM;AAC1C,uBAAuB;AACvB,sBAAsB;AACtB;AACA;AACA;AACA;AACA,8CAA8C,4BAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA;AACA;AACA,YAAY,qBAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/kBA;AACA;AACA;AACA;AACmD;AACf;AACqD;AACjC;AACP;AACtB;AACpB;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,0DAA0D;AAC1D;AACA,qDAAqD;AACrD;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,8CAA8C;AAC9C;AACA,kBAAkB;AAClB;AACA;AACO,0BAA0B,4BAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAU;AAC1C,uCAAuC,4BAAU;AACjD;AACA;AACA,oBAAoB,KAAK;AACzB,QAAQ,gBAAQ;AAChB;AACA,uBAAuB,iCAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,KAAK;AAClD;AACA,4EAA4E,cAAc;AAC1F;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA,gDAAgD,iCAAe;AAC/D;AACA,4CAA4C,yCAAiC;AAC7E;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,4CAA4C,yCAAiC;AAC7E;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAa;AACrB;AACA;AACA;AACA,oCAAoC,kEAAkE;AACtG;AACA,QAAQ,gBAAQ;AAChB;AACA,8DAA8D,4BAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sBAAc,IAAI,8BAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAiB;AAC7B,oCAAoC,kCAA0B;AAC9D;AACA;AACA;AACA,yBAAyB,+BAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAiB;AAC/C,+BAA+B,0BAAkB;AACjD;AACA;AACA;AACA;AACA;AACA,6BAA6B,2BAAmB;AAChD;AACA,qCAAqC;AACrC,uCAAuC;AACvC;AACA;AACA,gBAAgB,kBAAK,cAAc,uCAAuC,IAAI,gFAAgF;AAC9J;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,qCAAqC;AACrC;AACA;AACA,gBAAgB,kBAAK,cAAc,wCAAwC,IAAI,sFAAsF;AACrK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kCAA0B;AAC5D,iCAAiC,+BAA+B,kCAA0B,yCAAyC;AACnI,kCAAkC,gCAAgC,kCAA0B,2CAA2C;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAa;AACzD;AACA,mCAAmC,sBAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB,qCAAqC;AACrC,qCAAqC;AACrC,gCAAgC;AAChC,gCAAgC;;AAEhC,2BAA2B;AAC3B,yCAAyC;AACzC,yCAAyC;AACzC,oCAAoC;AACpC,oCAAoC;;AAEpC,yBAAyB;AACzB,uCAAuC;AACvC,uCAAuC;AACvC,kCAAkC;AAClC,kCAAkC;AAClC;;;ACzSA;AACA;AACA;AACA;AACA,IAAI,2BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,wBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkF;AACnB;AACQ;AACd;AACzD,0DAA0D,4BAAU;AACpE;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,yBAAS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2BAAU;AAC/B,IAAI,wBAAO,IAAI,cAAc;AAC7B;AAC8B;AACvB;AACP;AACA;AACA;AACA;;;;;;;ACtEA;AACA;AACA;AACA;AACgE;AACkB;AACR;AACF;AAC1B;AACvC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAAQ,aAAa,6BAAa;AACvE;AACA;AACA,kBAAkB,4BAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAQ;AAClC;AACA;AACA,gDAAgD,4CAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wCAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3FA;AACA;AACA;AACA;AACA,IAAI,qBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,kBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4F;AACG;AACR;AACX;AACkB;AACK;AACpD;AACkD;AACqE;AAC5E;AACR;AACiB;AACb;AACtB;AACoC;AACnC;AACD;AAChE,8CAA8C,4BAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kBAAkB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iCAAe;AACpD,gEAAgE,WAAW;AAC3E;AACA;AACA;AACA;AACA;AACA,mHAAmH,yCAAyB;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC,6BAAa;AAC/C,iEAAiE,yBAAS;AAC1E;AACA;AACA;AACA;AACA,iCAAiC,qCAAqB,CAAC,yBAAS,8BAA8B,qBAAS;AACvG,qBAAqB,0BAAU;AAC/B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC,qCAAqB,UAAU,qBAAS;AACjF;AACA;AACA;AACA,qCAAqC,qCAAqB,iBAAiB,qBAAS;AACpF;AACA,mCAAmC,gCAAgB;AACnD;AACA,+CAA+C,yBAAS;AACxD,qCAAqC,qCAAqB,iBAAiB,qBAAS,kBAAkB,QAAQ,uHAAuH;AACrO,qCAAqC,qCAAqB,yBAAyB,qBAAS,kBAAkB,QAAQ,uHAAuH;AAC7O,qCAAqC,qCAAqB,iBAAiB,qBAAS;AACpF,qCAAqC,qCAAqB,yBAAyB,qBAAS;AAC5F;AACA;AACA,YAAY,0DAAoC;AAChD,iGAAiG,cAAc;AAC/G;AACA;AACA,iCAAiC,iCAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAY;AACnC;AACA,sCAAsC,oBAAoB;AAC1D,2GAA2G,uBAAuB;AAClI;AACA,aAAa;AACb;AACA;AACA,iCAAiC,qCAAqB,cAAc,qBAAS;AAC7E;AACA;AACA,SAAS;AACT,+BAA+B,qCAAqB,cAAc,qBAAS;AAC3E;AACA,SAAS;AACT,kCAAkC,qCAAqB,cAAc,qBAAS;AAC9E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kCAAkC,iCAAe;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAAa;AACtC;AACA;AACA;AACA,8BAA8B,qCAAqB,cAAc,qBAAS;AAC1E;AACA;AACA,iBAAiB,6BAAa;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA,oCAAoC,qCAAqB,cAAc,qBAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAe;AACjD;AACA,0BAA0B,qCAAqB,cAAc,qBAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qCAAqB,cAAc,qBAAS;AAC1E;AACA;AACA;AACA,wCAAwC;AACxC,8DAA8D;AAC9D,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAU;AACzB,IAAI,kBAAO,IAAI,2CAAqB;AACpC,IAAI,kBAAO,IAAI,sCAAmB;AAClC,IAAI,kBAAO,IAAI,oCAAkB;AACjC,IAAI,kBAAO,IAAI,cAAc;AAC7B,IAAI,kBAAO,IAAI,0CAAqB;AACpC;AACwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,yBAAS;AAC1F;AACA;AACA;AACA;AACA;AACA,uCAAiB,CAAC,2BAAa;AAC/B,mDAA0B;AAC1B,uCAAuC,wCAAiB;AACxD;AACA,yGAAyG,wBAAwB,gCAAgC;AACjK,mEAAmE,wBAAwB,gCAAgC;AAC3H;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxWD;AACA;AACA;AACA;AACyD;AACC;AACC;AACJ;AACL;AAC4D;AACD;AAChD;AAC7D;AACA,0CAA0C,0BAAkB;AAC5D;AACO;AACP;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yBAAiB;AAC1C,0BAA0B,yBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAa;AACtE;AACA;AACA;AACA,oCAAoC,uBAAe;AACnD;AACA;AACA,mCAAmC,yBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAc,iBAAiB,sBAAc;AACjE;AACA;AACA;AACA;AACA,0BAA0B,yBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6CAAmB;AAC3B,YAAY,qDAAuB;AACnC,gEAAgE,qBAAa,gBAAgB,4DAA0B;AACvH;AACA;AACA;AACA,QAAQ,wCAAc;AACtB;AACA;AACA;AACA;AACA,YAAY,qDAAuB;AACnC;AACA,6BAA6B,4DAA0B;AACvD;AACA,0BAA0B,sCAAY;AACtC,aAAa;AACb;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E;AACA;AACA;AACA;AACA,wCAAwC,+BAAQ,IAAI,wCAAU;AAC9D;AACA;AACA,yBAAyB,sCAAY,oEAAoE,WAAW,IAAI,QAAQ;AAChI;AACA,8GAA8G,WAAW,IAAI,QAAQ;AACrI,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,gBAAgB,qDAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gBAAgB,qDAAuB;AACvC;AACA;AACA;AACA;AACA;AACA,iCAAiC,4DAA0B;AAC3D;AACA,8BAA8B,sCAAY;AAC1C,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB,4BAA4B;AACpD,uCAAuC,2BAA2B;AAClE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAG;AAC1B;AACA,SAAS,MAAM,uBAAW;AAC1B,gQAAgQ,uBAAW;AAC3Q;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAc;AAClC;AACA;AACA;AACA;;;;;AC7jBA;AACA;AACA;AACA;AAC6G;AAC7G;AACO,uBAAuB;AAC9B,2BAA2B;AAC3B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kEAA2C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA,sEAAsE;AACtE;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB,+BAA+B,6CAA6C,uBAAuB,kCAAkC,YAAY,+BAA+B;AACnO;AACA;AACA,6BAA6B,kBAAkB,8BAA8B,eAAe,UAAU,kCAAkC,YAAY,+BAA+B;AACnL;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,yDAAyD,eAAe,sBAAsB,eAAe;AAC7G;AACA;;;AC1SA;AACA;AACA;AACA;AAC4E;AACd;AACC;AACb;AACa;AACxB;AACgB;AACvD;AACO,wCAAwC,4BAAU;AACzD;AACA,mFAAmF,0BAAK,OAAO;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAAO;AACjE;AACA,wCAAwC,kCAAa;AACrD;AACA;AACA;AACA,sDAAsD,iCAAY;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mCAAmC,4CAA4C;AAC/E;AACA;AACA,sBAAsB,+BAAY;AAClC;AACA;AACA,mFAAmF,oBAAY,mBAAmB,EAAE;AACpH;AACA;AACA,qEAAqE,OAAO;AAC5E,mFAAmF,oBAAY,kBAAkB,EAAE;AACnH;AACA;AACA;AACA,YAAY,cAAG;AACf,YAAY,cAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,cAAG;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,eAAe;AACzF;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iEAAiE,gBAAgB,EAAE,eAAe;AAClG;AACA;AACA;AACA;AACA,8EAA8E,6BAA6B,EAAE,eAAe;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA,uDAAuD,UAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,OAAO;AACjF,+EAA+E,mBAAmB,IAAI,cAAc;AACpH,qDAAqD,oBAAY,yCAAyC,EAAE,GAAG,EAAE,4DAA4D,gCAAgC;AAC7M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,yBAAyB;AACxI;AACA;AACA,8EAA8E,OAAO;AACrF,6EAA6E,mBAAmB,IAAI,cAAc;AAClH,yDAAyD,oBAAY,yCAAyC,EAAE,GAAG,EAAE,4DAA4D,gCAAgC;AACjN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gJAAgJ;AACvO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3RA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AChCA;AACA;AACA;AACA;AACiE;AAC0F;AACnE;AACjF,qCAAqC,sCAAkB;AAC9D;AACA;AACA;AACA,kBAAkB,kCAAe;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAe;AAC9B;AACA;AACA,eAAe,0CAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAgC;AAC/C;AACA;AACA,eAAe,kDAAyB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpDA;AACA;AACA;AACA;AAC4F;AACzB;AACE;AACI;AACzE;AACA;AACA;AACO,yCAAyC,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAAY;AAC3B;AACA;AACA,eAAe,6BAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gCAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAY;AAC/B;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC3KA;AACA;AACA;AACA;AACqD;AACA;AACK;AACK;AACH;AACQ;AACE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wDAAwD,0BAA0B,4BAA4B,qBAAqB;AACnI;AACA;AACA,uDAAuD,yBAAyB,4BAA4B,qBAAqB;AACjI;AACA;AACA,0DAA0D,4BAA4B,4BAA4B,qBAAqB;AACvI;AACA;AACA,wDAAwD,0BAA0B,4BAA4B,qBAAqB;AACnI;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAK;AAC7D,qFAAqF,yBAAK;AAC1F;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAO;AACxB;AACA;AACA,iBAAiB,uBAAO;AACxB,iCAAiC,yBAAO;AACxC,oCAAoC,yBAAO;AAC3C;AACA;AACA,iBAAiB,uBAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB,iBAAK,UAAU;AACtD;AACA;AACA,qBAAqB,gCAAQ;AAC7B;AACA;AACA;AACA,sCAAsC,IAAI,2CAAqB,QAAQ,iBAAK,OAAO;AACnF;AACA;AACA;AACA;AACA,sCAAsC,IAAI,2CAAqB,QAAQ,iBAAK,OAAO;AACnF;AACA;AACA;AACA;AACA;AACA,yCAAyC,IAAI,2CAAqB,QAAQ,iBAAK,OAAO;AACtF;AACA;AACA,cAAc,qBAAqB,iBAAK,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qCAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,wDAAwD,QAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9LA;AACA;AACA;AACA;AACwD;AACO;AACY;AACyD;AAC/C;AACQ;AACpB;AACzE,MAAM,gCAAc;AACpB;AACO;AACP;AACA;AACA;AACA;AACA,uBAAuB,2CAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,4BAAU;AACjD;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAa;AACxC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iCAAiC;AACzC,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT,QAAQ,+BAAQ,IAAI,wCAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,GAAG,qDAAqD;AAC3G;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,GAAG,mDAAmD;AACzG;AACA;AACA;AACA;AACA;AACA,gBAAgB,mCAAmC,GAAG,6DAA6D;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4CAAwB;AAC7C,oBAAoB,mCAAmC,GAAG,0DAA0D;AACpH;AACA;AACA;AACA;AACA,iCAAiC,QAAQ,kCAAkC,kBAAkB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;;;AC3OA;AACA;AACA;AACA;AACwD;AACO;AACJ;AACK;AACT;AACe;AAC/D,8BAA8B,4BAAU;AAC/C;AACA;AACA,qEAAqE,4BAAO;AAC5E;AACA,oEAAoE,4BAAO;AAC3E;AACA,+CAA+C,4BAAO,GAAG,mFAAmF;AAC5I;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAc;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,2CAAqB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxHA;AACA;AACA;AACA;AAC6C;AACyB;AACkH;AACzH;AACN;AACH;AAC+B;AAC9B;AACkB;AACiB;AAC9B;AACN;AACqB;AAClB;AACE;AACI;AACI;AACb;AAC/C;AACA,2CAA2C,QAAQ;AACnD;AACP;AACA;AACA;AACA,CAAC,kDAAkD;AAC5C;AACP;AACA;AACA;AACA,CAAC,8CAA8C;AACxC,mBAAmB,0BAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC,4BAAW,IAAI,wBAAO;AACnF,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,oBAAO;AAC9B,uBAAuB,qCAAqB,cAAc,qBAAS;AACnE,8BAA8B,kDAAqB;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2BAA2B,qCAAqB,cAAc,qBAAS;AACvE;AACA;AACA,oBAAoB,uBAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,wBAAO;AACnB,2BAA2B,qCAAqB,cAAc,qBAAS;AACvE,kCAAkC,kDAAqB;AACvD;AACA;AACA;AACA,oBAAoB,uBAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,uBAAW;AAC/B;AACA,aAAa;AACb;AACA,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE;AACA,iBAAiB,0BAAU;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,mBAAmB,qBAAS;AACxE;AACA,4BAA4B,0BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,oBAAO;AAC9B,uBAAuB,qCAAqB,mBAAmB,sBAAc;AAC7E;AACA,4BAA4B,0BAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oDAAoD,8CAAoB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,qCAAqB,cAAc,sBAAc;AACxE,YAAY,uBAAW;AACvB;AACA,uDAAuD,uCAAuC;AAC9F,SAAS;AACT,uBAAuB,qCAAqB,gBAAgB,qBAAS;AACrE;AACA;AACA;AACA,SAAS;AACT,uBAAuB,yBAAS;AAChC,yCAAyC,8EAA8E;AACvH;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA,6BAA6B,gCAAS;AACtC;AACA;AACA;AACA;AACA,0CAA0C,gCAAS;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,uCAAuC;AACpE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,6BAAa;AAC7B,kCAAkC,gCAAgB;AAClD;AACA;AACA;AACA,4CAA4C,gCAAgB;AAC5D;AACA;AACA;AACA;AACA,8DAA8D,6BAAa;AAC3E;AACA;AACA;AACA;AACA;AACA,wDAAwD,kBAAkB;AAC1E;AACA,wDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sCAAsC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8BAA8B,gCAAS;AACvC,8EAA8E,YAAY;AAC1F;AACA,mCAAmC,oCAAa;AAChD,2GAA2G,6EAA6E;AACxL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0CAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAgB;AAC1D;AACA;AACA;AACA,2BAA2B,qCAAqB,eAAe,qBAAS;AACxE;AACA;AACA;AACA,gBAAgB,uBAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAS;AAC7B,2CAA2C,4CAAkB,CAAC,yBAAS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,2BAA2B,qCAAqB,eAAe,qBAAS;AACxE,gBAAgB,uBAAW;AAC3B,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAM,eAAe,SAAC;AAC1C,gCAAgC,gCAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,cAAc;AAC7E;AACA;AACA,qBAAqB,sBAAM,YAAY,SAAC,0BAA0B,0BAAS,eAAe,uBAAO;AACjG;AACA,qBAAqB,sBAAM,YAAY,SAAC;AACxC;AACA,YAAY,sBAAM,YAAY,SAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,sDAAsD,QAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAS;AACrB,wBAAwB,iCAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,KAAK,UAAU;AAC3F;AACA,0CAA0C,qBAAa,8DAA8D,SAAC,QAAQ,uBAAuB,gBAAgB,qBAAa;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,oCAAoC;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAe;AACpE;AACA,mIAAmI;AACnI,iCAAiC,qCAAgB;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,qCAAgB;AACjD,kCAAkC,0BAAU,CAAC,gCAAgB;AAC7D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAM,YAAY,SAAC,4BAA4B,0BAAS,eAAe,uBAAO;AAClH;AACA;AACA,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE,8BAA8B,kDAAqB;AACnD;AACA,gBAAgB,uBAAW;AAC3B;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE,8BAA8B,kDAAqB;AACnD,gBAAgB,gCAAgB;AAChC;AACA,oBAAoB,uBAAW;AAC/B;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE;AACA,SAAS;AACT,uBAAuB,qCAAqB,eAAe,qBAAS;AACpE,iCAAiC,0BAAU,CAAC,gCAAgB;AAC5D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,mBAAmB,MAAM,0CAA0C,sLAAsL;AACzP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM,4CAA4C,2EAA2E;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAM,eAAe,SAAC;AAC1D;AACA;AACA;AACA,mCAAmC,yBAAS;AAC5C;AACA,oDAAoD,0EAA0E;AAC9H;AACA;AACA;AACA;AACA,8HAA8H,yCAAkB;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAS;AACpC,oBAAoB,YAAY,sCAAsC,qBAAS,yCAAyC,qBAAS;AACjI;AACA,kDAAkD,oBAAoB;AACtE,iDAAiD,kBAAkB;AACnE,wCAAwC,qCAAqB,wBAAwB,qBAAS;AAC9F,kCAAkC,kDAAqB;AACvD;AACA,oBAAoB,uBAAW;AAC/B;AACA;AACA;AACA,aAAa;AACb,wCAAwC,qCAAqB,wBAAwB,qBAAS;AAC9F,kCAAkC,kDAAqB;AACvD;AACA,oBAAoB,uBAAW;AAC/B;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,+BAA+B;AACpH;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,gDAAwB;AAClD,uBAAuB,KAAK,UAAU,cAAc,2BAA2B,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,WAAW,uBAAO;AACpB,EAAE,WAAW,uBAAO;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;;;;ACvnCA;AACA;AACA;AACA;AAC2I;AAClE;AACZ;AACE;AACM;AACmB;AACf;AAClE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,6BAA6B,gCAAgB;AAC7C;AACA,kCAAkC,6BAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqB,aAAa,qBAAS;AACtF;AACA,4CAA4C,iCAAe;AAC3D,kEAAkE,mCAAY;AAC9E;AACA;AACA,2BAA2B,IAAI;AAC/B;AACA;AACA;AACA;AACA,iBAAiB,EAAE,uCAAiB;AACpC;AACA;AACA,qCAAqC,yBAAS;AAC9C,oCAAoC,qCAAqB,eAAe,qBAAS;AACjF,oCAAoC,qCAAqB,eAAe,qBAAS;AACjF;AACA;AACA;AACA,sCAAsC,4CAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uBAAuB,wCAAkB;AACzC,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gCAAgB,6BAA6B,0BAAU,CAAC,gCAAgB;AACrH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0EAA0E,sCAAsC;AAChH;AACA;AACA;AACA;AACA,wBAAwB,sCAAmB;AAC3C;AACA;AACA;AACA;;;AC3HA;AACA;AACA;AACA;AACA,IAAI,2BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,wBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkE;AACN;AACJ;AACO;AACsC;AAC9B;AACI;AACA;AACM;AACT;AACX;AACN;AACvD,0DAA0D,4BAAU;AACpE;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4BAAO;AAChE;AACA,yDAAyD,4BAAO;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,8BAAkB;AAC1B;AACA;AACA;AACA,qBAAqB,2BAAU;AAC/B,IAAI,wBAAO,IAAI,kCAAiB;AAChC,IAAI,wBAAO,IAAI,yCAAoB;AACnC,IAAI,wBAAO,IAAI,sCAAmB;AAClC,IAAI,wBAAO,IAAI,oCAAkB;AACjC,IAAI,wBAAO,IAAI,4BAAY;AAC3B,IAAI,wBAAO,IAAI,qCAAkB;AACjC;AAC8B;AACvB;AACP;AACA;AACA,gDAAgD,sBAAM;AACtD;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAA+C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAS;AACpC;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;;;;;ACrG3D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;;;AChB7C;AACA;AACA;AACA;AACA,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,mBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoD;AACS;AACY;AACT;AACN;AACE;AACgC;AAC1B;AAChB;AACU;AACoB;AACH;AACA;AAC7E;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAa,SAAS,uBAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAK;AACxB;AACA;AACA;AACA;AACA,uBAAuB,6BAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAU;AAC1B,IAAI,mBAAO,IAAI,+BAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAG;AACxB;AACA,gBAAgB,iBAAiB,EAAE,yCAAgB;AACnD;AACA,8BAA8B,uBAAO;AACrC,qBAAqB,mCAAa,UAAU;AAC5C;AACA;AACA;AACA;AACA;AACA,sGAAsG,gBAAgB,QAAQ,gBAAgB;AAC9I;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,sBAAU;AACzB,IAAI,mBAAO,IAAI,oDAAkB;AACjC;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC,+BAA+B,4BAAU;AACzC,8BAA8B,4BAAU;AACxC,uCAAuC,uBAAW,mBAAmB,yCAAyC;AAC9G,oCAAoC,4BAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qCAAiB,OAAO,uBAAO,OAAO,uBAAO;AACjE,oBAAoB,8BAAsB;AAC1C;AACA;AACA,oBAAoB,gCAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,qCAAiB,SAAS,uBAAO,SAAS,uBAAO,OAAO,uBAAO,QAAQ,uBAAO;AAC9K;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,uDAAuD,qBAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,sCAAiB;AACpC;AACA;AACA;AACA;AACA;AACA,gEAAgE,gBAAgB,EAAE,sCAAiB;AACnG;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAU;AAC1B,IAAI,mBAAO,IAAI,oDAAkB;AACjC,IAAI,mBAAO,IAAI,+BAAe;AAC9B;AACyB;;;;;;;;;;;AC3NzB;AACA;AACA;AACA;AACA,IAAI,iCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,8BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC6F;AAChB;AAC7B;AACkC;AAC2B;AAClE;AACF;AACiB;AACF;AACoD;AAChC;AACb;AAC/D,sEAAsE,4BAAU;AAChF;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D,sCAAsC,uBAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAO;AACxC,oCAAoC,uBAAO;AAC3C,oCAAoC,uBAAO;AAC3C,sFAAsF,qBAAqB;AAC3G;AACA;AACA;AACA;AACA,mDAAmD,kDAAkD;AACrG;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAU;AACrC,IAAI,8BAAO,IAAI,0BAAa;AAC5B,IAAI,8BAAO,IAAI,qCAAc;AAC7B;AACoC;AACpC,gCAAgC,4BAAU;AAC1C;AACA;AACA;AACA,wBAAwB,4BAAgB;AACxC,uBAAuB,iCAAY;AACnC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB,EAAE,+BAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAK;AACvB,mCAAmC,qCAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAc;AAC/B;AACA,wBAAwB,yCAAgB,CAAC,6CAAiB;AAC1D;AACA;AACA,2BAA2B,yCAAgB,CAAC,kCAAW;AACvD;AACA;AACA;AACA,iBAAiB,qCAAc;AAC/B;AACA,wBAAwB,yCAAgB,CAAC,gDAAoB;AAC7D;AACA;AACA,2BAA2B,yCAAgB,CAAC,qCAAc;AAC1D;AACA;AACA;AACA,iBAAiB,qCAAc;AAC/B;AACA;AACA,wBAAwB,yCAAgB,CAAC,8CAAkB;AAC3D;AACA;AACA,2BAA2B,yCAAgB,CAAC,mCAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAiB;AAC3C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnOA;AACA;AACA;AACA;AACA,IAAI,qBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,kBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACwD;AACwB;AACnB;AACX;AACmB;AACC;AACV;AACoB;AACgB;AACf;AACvB;AACC;AACD;AACD;AACqC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAgB,IAAI,4BAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,4BAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAAO;AACvD;AACA,kDAAkD,4BAAO;AACzD;AACA,sDAAsD,4BAAO;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8CAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8CAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAqB;AACtD;AACA;AACA;AACA,gCAAgC,8CAAqB;AACrD;AACA;AACA;AACA,qCAAqC,8CAAqB;AAC1D;AACA;AACA;AACA,6CAA6C,8CAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8BAA8B;AACrG;AACA;AACA;AACA,eAAe,WAAW,+CAA+C,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,wCAAwC;AACnH;AACA,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA,yDAAyD,6CAA6C,4CAA4C,6CAA6C;AAC/L,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAkB;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,wCAAkB;AAC1C;AACA;AACA;AACA,yFAAyF,wCAAkB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2CAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAO;AAC3C,mCAAmC,uBAAO;AAC1C,mCAAmC,uBAAO;AAC1C,mCAAmC,uBAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAkB;AAC1C;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,wBAAwB,wCAAkB;AAC1C;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,wCAAkB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qCAAqC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAU;AAC1C,IAAI,kBAAO,IAAI,2CAAqB;AACpC,IAAI,kBAAO,IAAI,+DAA8B;AAC7C,IAAI,kBAAO,IAAI,iCAAgB;AAC/B,IAAI,kBAAO,IAAI,0CAAgB;AAC/B,IAAI,kBAAO,IAAI,mEAA6B;AAC5C;AACwB;AACjB;AACP;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;;;;;;;ACpa5D;AACA;AACA;AACA;AACA,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,iBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACgE;AACe;AACzB;AACwC;AACV;AACC;AACR;AAChB;AAC7D,gEAAgE,4BAAU;AAC1E;AACA;AACA;AACA;AACA,wBAAwB,+BAAQ,IAAI,8BAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE,+BAA+B;AACrF;AACA;AACA;AACA;AACA;AACA,2CAA2C,iDAA6B;AACxE;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE,mBAAmB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA,qJAAqJ,iCAAc;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oCAAe;AAC7C,4BAA4B,0BAAK;AACjC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA,+DAA+D;AAC/D,wBAAwB,iCAAY;AACpC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kDAAkD;AAClD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAU;AAClC,IAAI,iBAAO,IAAI,qCAAkB;AACjC,IAAI,iBAAO,IAAI,2CAAqB;AACpC;AACiC;;;;;;;;;;;;;ACxMjC;AACA;AACA;AACA;AACA,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AAC0C;AACnC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAU;AACV,IAAI,yBAAO;AACX;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5CA;AACA;AACA;AACA;AACoD;AACQ;AACN;AACyB;AACS;AACA;AACtB;AACG;AACrC;AACW;AAC3C;AACA,+BAA+B,8BAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAiB,KAAK,UAAU,eAAe,UAAU,wBAAwB,oBAAY,kCAAkC;AACvI,QAAQ,yBAAiB,cAAc,UAAU,eAAe,UAAU,wBAAwB,oBAAY,gBAAgB;AAC9H;AACA;AACA;AACA;AACO;AACP;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,iBAAS;AACb,mBAAmB,eAAe;AAClC;AACA;AACA;AACA,gCAAgC,oDAAoB;AACpD;AACA;AACA;AACA;AACA,wBAAwB,wBAAQ,+CAA+C,EAAE;AACjF;AACA;AACA;AACA;AACA,2BAA2B,KAAK,QAAQ,8CAA8C;AACtF;AACA;AACA,oBAAoB,uBAAe;AACnC,oBAAoB,uBAAe;AACnC;AACA;AACA;AACA,8DAA8D,+BAAU,SAAS,qBAAa;AAC9F,gEAAgE,+BAAU,SAAS,qBAAa;AAChG,mCAAmC,0BAAK;AACxC,kCAAkC,kDAAqB;AACvD;AACA,aAAa;AACb,0CAA0C,oBAAO;AACjD,4DAA4D,+BAAU,SAAS,sBAAgB;AAC/F,YAAY,0BAAK;AACjB;AACA;AACA;AACA;;;ACnFA;AACA;AACA;AACA;AACA,IAAI,mBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,gBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoD;AAC2B;AACZ;AACX;AACK;AACF;AACY;AACS;AACvB;AACD;AACM;AAC9B;AACW;AACiD;AACC;AACT;AACC;AAC5B;AAC6B;AAC/E;AACA,mCAAmC,gCAAa,qCAAqC,wBAAQ;AAC7F,4BAA4B,iCAAc;AAC1C;AACA,qCAAqC,gCAAa,2CAA2C,wBAAQ;AACrG;AACA,yCAAyC,gCAAa,2CAA2C,wBAAQ;AACzG,kCAAkC,iCAAc;AAChD;AACP,eAAe,0BAAS,aAAa,uBAAO;AAC5C,aAAa,wBAAQ;AACrB;AACA;AACA,yBAAyB,4BAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAAQ;AACjC,4DAA4D,4BAAO;AACnE,mDAAmD,4BAAO;AAC1D,oDAAoD,4BAAO;AAC3D,mDAAmD,4BAAO;AAC1D,qDAAqD,iCAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sBAAK;AAC9E,kDAAkD,sBAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uCAAoB;AACzC;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA,sBAAsB,uCAAoB;AAC1C,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAS;AACzB;AACA;AACA,gBAAgB,iBAAS;AACzB;AACA;AACA;AACA,iCAAiC,iCAAY;AAC7C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB,eAAe,MAAM;AACrF,sDAAsD,0BAA0B;AAChF;AACA;AACA;AACA,wCAAwC,wBAAwB,eAAe,MAAM;AACrF,wDAAwD,0BAA0B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,oBAAM;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAS;AACrB,YAAY,2BAA2B;AACvC;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY,GAAG,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAQ,uBAAuB,EAAE,EAAE,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8BAAQ;AACjC;AACA,iEAAiE,kBAAkB;AACnF,2EAA2E,kBAAkB;AAC7F,wEAAwE,cAAc;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wBAAQ;AAC9B;AACP;AACA;AACA;AACA,0DAA0D,4BAAO;AACjE,sDAAsD,4BAAO;AAC7D,qDAAqD,4BAAO;AAC5D,qDAAqD,4BAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAc;AAC7C;AACA;AACA;AACA,2DAA2D,4BAAO;AAClE;AACA;AACA;AACA,8DAA8D,4BAAO;AACrE,gEAAgE,4BAAO;AACvE,qEAAqE,4BAAO;AAC5E;AACA;AACA;AACA,uCAAuC,kCAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,uEAAuE,yBAAM;AAC7E;AACA;AACA;AACA;AACA,aAAa;AACb,6EAA6E,6BAA6B;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yBAAM;AACjF;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAgB;AACtD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,2EAA2E,yBAAM;AACjF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA,eAAe,iCAAyB,oBAAoB,qBAAa;AACzE;AACA;AACA;AACA,sCAAsC,kDAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8DAA8D;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAc;AACvC,+CAA+C,iCAAc,QAAQ;AACrE;AACA,yBAAyB,iCAAc;AACvC,2CAA2C,iCAAc;AACzD,+CAA+C,iCAAc,QAAQ;AACrE;AACA,yBAAyB,iCAAc;AACvC,2CAA2C,iCAAc;AACzD,+CAA+C,iCAAc,QAAQ;AACrE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAQ;AAChC;AACP;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAAO;AACjE,qDAAqD,4BAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8DAA8D;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oCAAsB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0BAA0B,mBAAU;AACpC,IAAI,gBAAO,IAAI,2CAAqB;AACpC,IAAI,gBAAO,IAAI,2BAAa;AAC5B;AACmC;;;;;;;ACn6BnC;AACA;AACA;AACA;AACoC;AACwB;AACiB;AAClD;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0BAA0B,4BAAU;AAC3C;AACA;AACA,iDAAiD,mCAAiB;AAClE;AACA,uDAAuD,qCAAgB,OAAO,oBAAI;AAClF,uDAAuD,qCAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACrGA;AACA;AACA;AACA;AACoD;AACwB;AACb;AACP;AACxB;AAChC,MAAM,eAAC,GAAG,KAAK;AACR,4BAA4B,4BAAU;AAC7C;AACA;AACA;AACA;AACA,mBAAmB,yCAAiC,uCAAuC,qBAAa;AACxG;AACA;AACA;AACA;AACA,yBAAyB,kBAAU,cAAc,eAAC;AAClD,4CAA4C,0BAAS,8BAA8B,yCAAyC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAAQ;AACnC;AACA;AACA;AACA,yCAAyC,qBAAqB,8BAAQ,kDAAkD,8BAAQ,iFAAiF;AACjN;AACA;AACA;AACA,oEAAoE,8BAAQ,kDAAkD,8BAAQ;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACiC;AACjC;AACA;AACA;AACA;AACA,4CAA4C,gBAAI;AAChD,oDAAoD,oCAAoC;AACxF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wCAAwC,gBAAI;AAC5C,oDAAoD,eAAe;AACnE;AACA;AACA;AACA,CAAC;AACD;AACA,uDAAuD,gBAAI;AAC3D,oDAAoD,sCAAsC;AAC1F;AACA;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClFA;AACA;AACA;AACA;AACA,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,oBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoD;AACW;AACpB;AACyC;AACZ;AACL;AACa;AACD;AACzB;AACO;AACe;AACkB;AAClB;AACvB;AACH;AACc;AACZ;AACiE;AACjD;AACZ;AAC2B;AAClB;AACI;AACZ;AAC2B;AACpF,MAAM,gBAAC,GAAG,KAAK;AACf;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAI;AAC7B;AACA;AACA,kCAAkC,0CAAmB;AACrD;AACA,0BAA0B,0CAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,0BAAK,KAAK,0BAAK;AAC7B,cAAc,0BAAK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB,IAAI,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD,qCAAqC,iCAAe;AACpD,qBAAqB,kBAAU,YAAY,gBAAC;AAC5C;AACA,sBAAsB,kBAAU,aAAa,gBAAC;AAC9C,mCAAmC,yCAAiC,QAAQ,qBAAa;AACzF,+CAA+C;AAC/C,oCAAoC;AACpC;AACA,SAAS;AACT,wBAAwB,kBAAU,QAAQ,gBAAC;AAC3C;AACA;AACA,qBAAqB,kBAAU,QAAQ,gBAAC;AACxC,qBAAqB,kBAAU,OAAO,gBAAC;AACvC,qBAAqB,kBAAU,OAAO,gBAAC;AACvC;AACA,yBAAyB,0BAAS,SAAS,oHAAoH;AAC/J;AACA,oBAAoB,mBAAW,qBAAqB,gBAAC;AACrD;AACA,oCAAoC,kBAAU,OAAO,gBAAC;AACtD,8BAA8B,sCAAe,sBAAsB,WAAE;AACrE;AACA;AACA,gCAAgC,kBAAU,OAAO,gBAAC;AAClD,0BAA0B,0BAAS,oBAAoB,gFAAgF;AACvI;AACA;AACA,yBAAyB,kBAAU,aAAa,gBAAC;AACjD;AACA,6BAA6B,0BAAS,oCAAoC,oCAAoC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAiC,gBAAgB,qBAAa;AACjG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAA2D;AAC3E;AACA;AACA,yBAAyB,wBAAM;AAC/B,4BAA4B,qBAAG;AAC/B;AACA,8CAA8C,oBAAY;AAC1D;AACA;AACA;AACA,gFAAgF,mBAAmB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wBAAwB,eAAe,MAAM,uCAAuC,4BAA4B,OAAO,0BAA0B;AAChN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uBAAU;AAC1E,IAAI,oBAAO,IAAI,kCAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAA2D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wBAAwB,eAAe,MAAM,gDAAgD,sCAAsC,OAAO,0BAA0B;AACnO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4BAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAO;AACrC,4BAA4B,4BAAO;AACnC;AACA;AACA;AACA;AACA,+CAA+C,4BAAO;AACtD;AACA,0CAA0C,4BAAO;AACjD;AACA,0CAA0C,4BAAO;AACjD;AACA,6CAA6C,4BAAO;AACpD;AACA,sCAAsC,4BAAO;AAC7C;AACA,+CAA+C,4BAAO;AACtD;AACA,mCAAmC,4BAAO;AAC1C;AACA;AACA;AACA;AACA,qDAAqD,iCAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAU,cAAc,gBAAC;AACnD;AACA;AACA,yEAAyE,uCAAmB;AAC5F;AACA;AACA;AACA;AACA,gCAAgC,uCAAkB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAK;AACpB;AACA;AACA,eAAe,0BAAK;AACpB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kDAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,iCAAyB,kBAAkB,qBAAa;AAC/E,8BAA8B;AAC9B;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,iCAAyB,kBAAkB,qBAAa;AAC/E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,qCAAgB;AAC3D;AACA;AACA;AACA;AACA,gBAAgB,+BAAuB;AACvC;AACA;AACA;AACA;AACA;AACA,cAAc,+BAAuB;AACrC;AACA,gBAAgB,sBAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,sCAAmB;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAc;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iCAAc;AACnC,mBAAmB,iCAAc;AACjC;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,4CAAqB,QAAQ,0CAAmB;AAChH;AACA;AACA,gHAAgH,0CAAmB;AACnI;AACA,8EAA8E,4CAAqB,QAAQ,0CAAmB;AAC9H,oEAAoE,4CAAqB,QAAQ,0CAAmB;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iCAAe;AACzC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAU;AACV,IAAI,yBAAO;AACX;AACA,uBAAU;AACV,IAAI,yBAAO;AACX;AACA,iBAAiB,uBAAU;AAC3B,IAAI,oBAAO,IAAI,2CAAqB;AACpC,IAAI,oBAAO,IAAI,0CAAqB;AACpC;AAC0B;AAC1B;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yBAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kDAAkD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B;;;;;AC94CA;AACA;AACA;AACA;AAC+D;AACpB;AAC4B;AACM;AACQ;AAC2B;AACnC;AAC7E;AACA;AACA,UAAU,iCAAc,KAAK,iCAAc,QAAQ,6BAA6B,+CAA+C,mBAAmB;AAClJ,gBAAgB,aAAa,wBAAQ;AACrC;AACA,qEAAqE;AACrE;AACA,IAAI,8CAAmB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA,mBAAmB,4BAAW;AAC9B;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qFAAqF,iCAAc,YAAY,IAAI,uDAAuD;AACtN,4CAA4C,uFAAuF,iCAAc,gBAAgB,IAAI,uDAAuD;AAC5N,4CAA4C,2FAA2F,iCAAc,SAAS,IAAI,oCAAoC;AACtM,4CAA4C,yFAAyF,iCAAc,QAAQ,IAAI,oCAAoC;AACnM,4CAA4C,kFAAkF,iCAAc,QAAQ,IAAI,mBAAmB;AAC3K,4CAA4C,oFAAoF,iCAAc,YAAY,IAAI,mBAAmB;AACjL;AACA;AACA;AACA;AACA,kCAAkC,wBAAQ;AAC1C,kCAAkC,wBAAQ;AAC1C,IAAI,4BAAW;AACf;AACA;AACA;AACA,8BAA8B,iCAAc,gBAAgB,iCAAc;AAC1E,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAc;AAC5C,KAAK,IAAI,mBAAmB;AAC5B;AACA;AACA;AACA,8BAA8B,iCAAc,oBAAoB,iCAAc;AAC9E,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAc;AAC5C,KAAK,IAAI,mBAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAc,gBAAgB,iCAAc;AAC1E,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA,8BAA8B,iCAAc;AAC5C,KAAK;AACL;AACA;AACA;AACA,8BAA8B,iCAAc,oBAAoB,iCAAc;AAC9E,oBAAoB;AACpB,KAAK;AACL;AACA;AACA;AACA,8BAA8B,iCAAc;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iCAAc,2CAA2C,iCAAc,IAAI,uCAAmB,WAAW,yBAAyB;AAC5I;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAkB;AAChE;AACA,KAAK;AACL,CAAC,IAAI,uDAAuD;;;AChJ5D;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoD;AACwB;AACT;AACY;AACG;AACT;AACV;AACS;AAChB;AACb;AACoB;AACZ;AAC+F;AAC3E;AACV;AACuB;AAC/B;AACsB;AAC3C;AAChC,MAAM,sBAAC,GAAG,KAAK;AACf,uFAAuF,4BAAU;AACjG,8BAA8B,QAAQ;AACtC,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D,qDAAqD,4BAAO;AAC5D,4DAA4D,4BAAO;AACnE,yBAAyB;AACzB;AACA,gDAAgD,4BAAO;AACvD;AACA,gDAAgD,4BAAO;AACvD;AACA,mCAAmC,sBAAsB;AACzD,qCAAqC,wBAAwB;AAC7D,yCAAyC,4BAA4B;AACrE;AACA;AACA;AACA,uBAAuB,0BAAK,iBAAiB,+BAAuB,KAAK,qBAAqB,2DAA2D,QAAQ,gCAAU,4BAA4B;AACvM,uBAAuB,kCAA0B;AACjD,2BAA2B,qBAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAa,WAAW,qBAAa,SAAS,qBAAa;AACxF,4BAA4B,iCAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAa,sBAAsB,qBAAa;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAU,kBAAkB,sBAAC;AACvD;AACA;AACA,2BAA2B,4BAAoB;AAC/C,yBAAyB,kBAAU,YAAY,sBAAC;AAChD,iDAAiD,0BAAS,aAAa,2CAA2C;AAClH;AACA,sBAAsB,kBAAU,WAAW,sBAAC;AAC5C,kDAAkD,0BAAS,aAAa,2CAA2C;AACnH;AACA,gCAAgC,kBAAU,YAAY,sBAAC;AACvD,yBAAyB,kBAAU,kBAAkB,sBAAC;AACtD;AACA,4CAA4C,wBAAQ;AACpD,uBAAuB,yCAAiC,WAAW,qBAAa;AAChF;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,WAAW,qBAAa;AACxE,8BAA8B;AAC9B;AACA;AACA,SAAS;AACT,6BAA6B,kBAAU,kBAAkB,sBAAC;AAC1D,+BAA+B,kBAAU,kBAAkB,sBAAC;AAC5D,gCAAgC,kBAAU,iBAAiB,sBAAC;AAC5D,4CAA4C,aAAa;AACzD,qDAAqD,cAAc;AACnE,sCAAsC,kBAAU,kBAAkB,sBAAC;AACnE;AACA;AACA,iCAAiC,4BAAU,0BAA0B,aAAa,wBAAQ,GAAG,4MAA4M,IAAI,GAAG,WAAW;AAC3T,+BAA+B,kBAAU,kBAAkB,sBAAC;AAC5D;AACA,0BAA0B,4BAAU,mBAAmB,aAAa,wBAAQ,GAAG,6JAA6J,IAAI,GAAG,YAAY;AAC/P,4BAA4B,kBAAU,kBAAkB,sBAAC;AACzD,sCAAsC,2BAAM;AAC5C,mBAAmB,wBAAQ;AAC3B;AACA;AACA,SAAS;AACT,sCAAsC,kBAAU,kBAAkB,sBAAC;AACnE,gDAAgD,2BAAM,0BAA0B,2CAA2C;AAC3H,6BAA6B,wBAAQ;AACrC;AACA;AACA,SAAS;AACT,wBAAwB,kBAAU,iBAAiB,sBAAC,KAAK,cAAc;AACvE,+CAA+C,WAAW;AAC1D;AACA,uBAAuB,kBAAU,YAAY,sBAAC;AAC9C;AACA,6BAA6B,kBAAU,YAAY,sBAAC;AACpD;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA,aAAa;AACb,SAAS;AACT,6BAA6B,sBAAc;AAC3C;AACA,uBAAuB,iCAAyB,YAAY,qBAAa;AACzE;AACA,gBAAgB,sBAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAc;AAC9B;AACA;AACA;AACA,wCAAwC,yBAAiB;AACzD,SAAS;AACT;AACA;AACA,0BAA0B,uCAAoB;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAyB,YAAY,qBAAa;AACzE;AACA,SAAS;AACT;AACA;AACA,uBAAuB,yCAAiC,YAAY,qBAAa;AACjF,gBAAgB,sBAAc;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA,oBAAoB,uBAAe;AACnC;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAe;AACnC,8BAA8B,uCAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAe;AAC3C;AACA;AACA,oDAAoD,sBAAc;AAClE,4BAA4B,uBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAe;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAU;AACtB;AACA;AACA,4BAA4B,UAAU,sCAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6DAA6D,QAAQ,iHAAiH;AACtL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,oBAAoB,6BAAO;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAS;AACjB;AACA;AACA,mCAAmC;AACnC;AACA;AACA,mCAAmC,8BAAQ;AAC3C;AACA;AACA,QAAQ,iBAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU,iCAAiC,wBAAQ,0CAA0C,EAAE,2BAA2B,wBAAQ;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oBAAoB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qGAAqG;AACzH;AACA;AACA;AACA,yEAAyE,aAAa;AACtF,8EAA8E,aAAa;AAC3F;AACA;AACA;AACA,0EAA0E,qBAAqB,6CAA6C;AAC5I;AACA;AACA,8EAA8E,UAAU,iDAAiD;AACzI;AACA;AACA,sFAAsF,6CAA6C;AACnI;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA,sDAAsD,uDAAuD;AAC7G;AACA;AACA;AACA,kDAAkD,mDAAmD;AACrG;AACA;AACA,yDAAyD,yDAAyD;AAClH;AACA;AACA,+DAA+D,mDAAmD;AAClH;AACA;AACA,2CAA2C,uDAAuD;AAClG;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,gDAAgD,6BAAU;AAC1D,IAAI,0BAAO,IAAI,cAAc;AAC7B,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,qCAAkB;AACjC;AACgC;;;ACpmBhC;AACA;AACA;AACA;AACA,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,uBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACyE;AACjB;AACkC;AACN;AACb;AACR;AACN;AAC8J;AACiH;AAC3P;AACnB;AACO;AACmB;AAC3B;AACzD,wDAAwD,6BAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,8BAA8B;AAC9B;AACA;AACA,wFAAwF,qBAAqB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAAO;AACjD,0CAA0C,4BAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mCAAc;AACrE,kDAAkD,4CAA4C;AAC9F,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,mFAAmF,uBAAuB;AAC1G;AACA,mFAAmF,oBAAoB;AACvG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,yBAAS,2BAA2B,yBAAS;AAC7D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gCAAa;AACvC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4BAA4B,UAAU,sCAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wCAAa,CAAC,2CAAoB;AACxE,sCAAsC,wCAAa,CAAC,2CAAoB;AACxE,2CAA2C,wCAAa,CAAC,gDAAyB;AAClF,8BAA8B,wCAAa,CAAC,mCAAY;AACxD,8BAA8B,wCAAa,CAAC,mCAAY;AACxD,aAAa;AACb,sBAAsB,2CAAqB;AAC3C,oBAAoB,yCAAmB;AACvC,wBAAwB,6CAAuB;AAC/C,oBAAoB,yCAAmB;AACvC,yBAAyB,8CAAwB;AACjD,6BAA6B,kDAA4B;AACzD,kBAAkB,uCAAa;AAC/B,gCAAgC,2CAAoB;AACpD,qCAAqC,oDAA6B;AAClE,qCAAqC,mDAA6B;AAClE;AACA,6CAA6C,mDAA6B;AAC1E,qDAAqD,wDAAiC;AACtF,6CAA6C,oDAA6B;AAC1E,kCAAkC,2CAAoB;AACtD,0CAA0C,2CAAoB;AAC9D,aAAa;AACb;AACA,mCAAmC,wCAAa,CAAC,wCAAiB;AAClE,uCAAuC,wCAAa,CAAC,4CAAqB;AAC1E;AACA;AACA;AACA;AACA,oBAAoB,0BAAU;AAC9B,IAAI,uBAAO,IAAI,2CAAqB;AACpC,IAAI,uBAAO,IAAI,qCAAkB;AACjC,IAAI,uBAAO,IAAI,kCAAa;AAC5B,IAAI,uBAAO,IAAI,cAAc;AAC7B,IAAI,uBAAO,IAAI,2CAAqB;AACpC;AAC6B;;;;;AC/K7B;AACA;AACA;AACA;AACA,IAAI,oCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,iCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoC;AACqB;AACyB;AACA;AACN;AACuB;AACT;AAChB;AACU;AACa;AAChB;AACkB;AACnG,gFAAgF,iBAAiB;AACjG;AACA,yEAAyE,yBAAyB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE,iCAAiC,6BAA6B;AAC9D,8CAA8C,mBAAmB;AACjE,mCAAmC,+BAA+B;AAClE,wCAAwC,6BAA6B;AACrE,+CAA+C,gCAAgC;AAC/E,iDAAiD,gCAAgC;AACjF,iDAAiD,kCAAkC;AACnF,mDAAmD,kCAAkC;AACrF,6CAA6C,OAAO,0BAAK,+CAA+C,2CAA2C,KAAK;AACxJ,mDAAmD,OAAO,0BAAK,QAAQ;AACvE,0CAA0C,OAAO,0BAAK,QAAQ;AAC9D,4CAA4C,SAAS,4BAA4B;AACjF,8CAA8C,SAAS,4BAA4B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAU;AAC1C,IAAI,iCAAO,IAAI,2CAAqB;AACpC,IAAI,iCAAO,IAAI,qCAAkB;AACjC,IAAI,iCAAO,IAAI,kCAAa;AAC5B,IAAI,iCAAO,IAAI,oDAAkB;AACjC,IAAI,iCAAO,IAAI,2CAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAwB;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8BAA8B;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU,sCAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oCAAU;AACxC,IAAI,iCAAO,IAAI,2CAAqB;AACpC,IAAI,iCAAO,IAAI,oDAAkB;AACjC;AACuC;AAChC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;;;;;;;AC7I1B;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACqE;AACR;AACL;AACO;AACiB;AACI;AACT;AACJ;AACvE,8DAA8D,4BAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4BAAO;AAC5D,6CAA6C,4BAAO;AACpD,gDAAgD,uDAAkC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oCAAoC,gCAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,uBAAuB,qCAAqB;AAC5C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAU;AACjC,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,cAAc;AAC7B,IAAI,0BAAO,IAAI,2CAAqB;AACpC;AACgC;;;;;ACvFhC;AACA;AACA;AACA;AACA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC6E;AACmE;AACnF;AACG;AACV;AACF;AACW;AACQ;AACjB;AACtD,gGAAgG,4BAAU;AAC1G;AACA;AACA;AACA;AACA,wCAAwC;AACxC,4BAA4B;AAC5B,6BAA6B;AAC7B;AACA,YAAY,wBAAQ,IAAI,+BAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAAK,iBAAiB,+BAAmB,KAAK,qBAAqB;AAC1F,4BAA4B,qCAAqB;AACjD,SAAS,IAAI,QAAQ,gCAAU,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oCAAe;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAAe;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,0BAAK,0DAA0D,wBAAwB;AAC9G,4BAA4B,qCAAqB;AACjD,4BAA4B,qCAAqB;AACjD,SAAS,IAAI,uEAAuE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAiB;AAChD;AACA,yDAAyD,SAAC,eAAe,qBAAqB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAU;AAChE,IAAI,sBAAO,IAAI,cAAc;AAC7B,IAAI,sBAAO,IAAI,8BAAW;AAC1B;AACmC;;;;;;;;;ACrLnC;AACA;AACA;AACA;AACA,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,uBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiE;AACL;AACsB;AACjB;AACa;AAC5B;AACP;AAC0B;AACe;AACR;AAC5E;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA,4CAA4C,wBAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wCAAwC,4BAAU;AACzD;AACA;AACA,sDAAsD,qCAAgB,GAAG,2DAA2D;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAAU;AAC9B,IAAI,uBAAO,IAAI,2CAAqB;AACpC;AAC6B;AAC7B;AACA;AACA;AACA,wDAAwD,mCAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,kCAAkC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,2CAA2C,qCAAkB;AAC7D;AACA;AACA;AACA,WAAW,kCAAc;AACzB;AACA,mBAAmB,qBAAG;AACtB;AACA,2BAA2B,qBAAG;AAC9B;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgB;AAChB,gCAAgB;AAChB;AACA;AACA,mBAAmB,gCAAa;AAChC,KAAK;AACL;AACA,qBAAqB,wBAAQ;AAC7B;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA;AACA,uBAAuB,gCAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AC/aD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI,oBAAoB,sCAAsC,qBAAqB,qCAAqC;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACxFA;AACA;AACA;AACA;AACgE;AACF;AAC0B;AACtC;AACf;AAC+B;AACP;AACK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,iIAAiI,iBAAiB;AAClJ;AACA;AACO;AACP,gCAAgC,iDAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2CAAqB;AAChD,gKAAgK,KAAK;AACrK;AACA;AACA;AACA;AACA;AACA,YAAY,6BAAO;AACnB;AACA;AACA;AACA,oBAAoB,kCAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAAY;AAC1C;AACA;AACA;AACA,6EAA6E,GAAG;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAAK;AACzC;AACA;AACA;AACA;AACA,wDAAwD,WAAW,6BAA6B,cAAc;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,WAAW,cAAc,wBAAwB,iBAAiB,aAAa;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iCAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,GAAG;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2BAAK;AAC1C;AACA;AACA,4DAA4D,IAAI,aAAa,eAAe;AAC5F;AACA;AACA;AACA,8CAA8C,iCAAc;AAC5D,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,OAAO;AAChC;AACA;AACA;AACA;AACA,8CAA8C,iCAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,mDAAmD,iCAAY;AAC/D;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,aAAa,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,UAAU,GAAG;AACpD;AACA;AACA;AACA;AACA;AACA,eAAe,8DAA8D,EAAE,UAAU;AACzF,eAAe,oBAAoB;AACnC,0BAA0B,eAAe,kBAAkB,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,eAAe;AACf;AACA;AACA;;;ACtYA;AACA;AACA;AACA;AACiF;AACjB;AACJ;AACF;AACA;AACR;AACJ;AACvC;AACP,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX,IAAI,uBAAO;AACX;AACA;AACA;AACA,+BAA+B,uBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0IAA0I,wBAAQ;AAClJ;AACA,YAAY,qBAAG;AACf,6IAA6I,wBAAQ;AACrJ;AACA,eAAe,wBAAQ,KAAK,wBAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB,WAAW,wBAAwB,UAAU;AAClE,6BAA6B,qCAAc;AAC3C;AACA;AACA,kCAAkC,qCAAc;AAChD;AACA;AACA,kCAAkC,qCAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oCAAoC,oCAAe;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iCAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qHAAqH;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAe;AAC3B;AACA,+BAA+B,uBAAW;AAC1C,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oCAAoC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC/S+D;AACD;AACN;AACK;AACtD,mCAAmC,4BAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD,2BAA2B,+BAAQ,IAAI,wCAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACzCA;AACA;AACA;AACA;AAC+D;AACpB;AACpC,yBAAyB,4BAAU;AAC1C;AACA;AACA,0BAA0B,kCAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACpCA;AACA;AACA;AACA;AACA,IAAI,2BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,wBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiE;AACvB;AACJ;AACwB;AACJ;AACK;AACL;AACG;AACF;AACP;AAC2B;AACvB;AAC6B;AACgD;AACzD;AACpB;AACN;AAC2D;AACa;AACvD;AACH;AACb;AACY;AACc;AAC0D;AACrC;AACF;AAC4C;AACrD;AACV;AACoC;AACJ;AACtB;AACQ;AACE;AACM;AACQ;AACvC;AACuC;AACN;AACrB;AACwD;AACzD;AACT;AACb;AACoB;AACA;AACuB;AACQ;AACf;AACtB;AACsB;AACwB;AACjD;AACK;AACO;AACd;AACuB;AACN;AAClB;AACqB;AACrB;AACE;AACgC;AACP;AACrB;AACG;AACoB;AACP;AACG;AACP;AACe;AACN;AACN;AACb;AACK;AACP;AACY;AACe;AACN;AAC0B;AAClD;AACL;AACA;AACuB;AAC7B;AACH;AAC1D;AACA;AACA;AACA;AACA,kCAAkC,4BAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mCAAiB;AACpD;AACA;AACA,6BAA6B,2BAAU;AACvC,IAAI,wBAAO,IAAI,0BAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,wBAAwB;AAC1H;AACA,iBAAiB;AACjB;AACA;AACA,4BAA4B,MAAM,8BAAQ,yBAAyB;AACnE;AACA;AACO;AACP;AACA,6BAA6B,UAAU,8BAAQ,gBAAgB;AAC/D;AACA;AACA,6BAA6B,UAAU,8BAAQ,mBAAmB;AAClE;AACA;AACA,6BAA6B,UAAU,8BAAQ,wBAAwB;AACvE;AACA;AACA;AACA,iBAAiB,8BAAQ;AACzB;AACA;AACA,iBAAiB,8BAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAU;AACzB;AACA;AACA,0CAA0C,qCAAgB;AAC1D;AACA;AACA,yCAAyC,4BAAO;AAChD,wCAAwC,4BAAO;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,gCAAgB;AACxC;AACA,wDAAwD,GAAG;AAC3D;AACA;AACA,8CAA8C,qBAAqB;AACnE;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAAU;AACrC,IAAI,wBAAO,IAAI,2CAAqB;AACpC;AACoC;AACpC,4EAA4E,yBAAyB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD;AACA,4BAA4B,iCAAyB,UAAU,qBAAa;AAC5E,qCAAqC,kDAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,iCAAyB,UAAU,qBAAa;AAC5E,qCAAqC,kDAAqB;AAC1D;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAkB,CAAC,gCAAgB;AAClD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,wCAAgB,kBAAkB,WAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,iCAAY;AAC3B;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8CAAmB;AAClF;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA,eAAe,gCAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA,4CAA4C,0BAA0B,+BAA+B,WAAE;AACvG;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gCAAY;AACtC,mBAAmB,0BAA0B,UAAU,WAAE;AACzD;AACA;AACA,8BAA8B,2BAAU;AACxC,IAAI,wBAAO,IAAI,qCAAkB;AACjC,IAAI,wBAAO,IAAI,+BAAe;AAC9B,IAAI,wBAAO,IAAI,kCAAiB;AAChC,IAAI,wBAAO,IAAI,yCAAoB;AACnC,IAAI,wBAAO,IAAI,8BAAW;AAC1B,IAAI,wBAAO,IAAI,oDAAkB;AACjC;AACuC;AACvC,+BAA+B,4BAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAG;AAC5D;AACA;AACA;AACA;AACA,6CAA6C,4BAAO;AACpD;AACA,yCAAyC,oBAAoB;AAC7D,kCAAkC,aAAa,gCAAgC,kBAAkB,+BAA+B,kBAAkB,+BAA+B,kBAAkB,+BAA+B,kBAAkB,+BAA+B,kBAAkB,mCAAmC,uBAAW,IAAI,kBAAkB,mCAAmC,uBAAW;AACvZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wBAAwB,GAAG,kCAAkC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,iCAAiC,2BAAU;AAC3C,IAAI,wBAAO,IAAI,8BAAW;AAC1B;AAC0C;AAC1C;AACA;AACA;AACA;AACA;AACA,6CAA6C,4BAAO;AACpD;AACA,kDAAkD,wHAAwH;AAC1K,SAAS;AACT;AACA;AACA,yBAAyB,6BAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2BAAU;AACnD,IAAI,wBAAO,IAAI,2CAAqB;AACpC,IAAI,wBAAO,IAAI,0BAAa;AAC5B,IAAI,wBAAO,IAAI,0CAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wCAAwC;AAC9G;AACA;AACA;AACA,gBAAgB,wBAAO,IAAI,4BAAW;AACtC;AACA;AACA,sCAAsC,2BAAU;AAChD,IAAI,wBAAO,IAAI,2CAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qBAAG,QAAQ,iFAAiF;AACrH,2BAA2B,IAAI,gDAA8B,gBAAgB,iCAAe,GAAG,mCAAmC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAwB;AACpC,qCAAqC,IAAI;AACzC;AACA,4BAA4B,kEAA4B;AACxD,yCAAyC,IAAI;AAC7C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oCAAY;AACrE;AACA;AACA,kCAAkC,wCAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAa,aAAa,uBAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sBAAc,CAAC,+CAAqB;AAC7D;AACA;AACA;AACA;AACA,4BAA4B,2BAAU;AACtC,IAAI,wBAAO,IAAI,0BAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAQ;AACvB;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAAU;AACzC,IAAI,wBAAO,IAAI,cAAc;AAC7B,IAAI,wBAAO,IAAI,oDAAkB;AACjC;AACA;AACA;AACA,iCAAiC,4BAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,eAAe;AACvD;AACA;AACA;AACA;AACA,mCAAmC,UAAU;AAC7C;AACA,kBAAkB,gCAAa;AAC/B;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA,yBAAyB,mBAAmB,GAAG;AAC/C;AACA;AACA,+BAA+B,2BAAU;AACzC,IAAI,wBAAO,IAAI,kCAAiB;AAChC,IAAI,wBAAO,IAAI,yCAAoB;AACnC,IAAI,wBAAO,IAAI,sCAAmB;AAClC,IAAI,wBAAO,IAAI,oCAAkB;AACjC,IAAI,wBAAO,IAAI,4BAAY;AAC3B,IAAI,wBAAO,IAAI,qCAAkB;AACjC;AACA;AACA;AACA;AACA;AACA,uCAAiB,CAAC,8BAAW;AAC7B,uCAAiB,CAAC,2CAAqB;AACvC,uCAAiB,CAAC,kEAAiC;AACnD,uCAAiB,CAAC,+DAA8B;AAChD,uCAAiB,CAAC,0CAAwB;AAC1C,uCAAiB,CAAC,0BAAa;AAC/B,uCAAiB,CAAC,kCAAiB;AACnC,uCAAiB,CAAC,6BAAc;AAChC,uCAAiB,CAAC,sCAAmB;AACrC,uCAAiB,CAAC,yCAAoB;AACtC,uCAAiB,CAAC,qCAAc,EAAE,aAAa;AAC/C,uCAAiB,CAAC,0CAAgB;AAClC,uCAAiB,CAAC,8CAAuB,EAAE,qDAAsB;AACjE,uCAAiB,CAAC,0BAAa,EAAE,YAAY;AAC7C,uCAAiB,CAAC,kDAAyB,EAAE,wBAAwB;AACrE,uCAAiB,CAAC,qCAAkB,EAAE,iBAAiB;AACvD,uCAAiB,CAAC,iCAAgB;AAClC,uCAAiB,CAAC,uCAAsB;AACxC,uCAAiB,CAAC,+BAAe,EAAE,sCAAsB;AACzD,uCAAiB,CAAC,wCAAoB,EAAE,+CAAmB;AAC3D,uCAAiB,CAAC,wCAAgB;AAClC,uCAAiB,CAAC,sDAAgC;AAClD,uCAAiB,CAAC,wCAAiB;AACnC,uCAAiB,CAAC,0CAAqB,EAAE,oBAAoB;AAC7D,uCAAiB,CAAC,gCAAY,EAAE,+BAAW;AAC3C,uCAAiB,CAAC,+BAAe;AACjC,uCAAiB,CAAC,oCAAkB;AACpC,uCAAiB,CAAC,qCAAkB,EAAE,2BAA2B;AACjE,uCAAiB,CAAC,sCAAmB;AACrC,uCAAiB,CAAC,mCAAc,EAAE,aAAa;AAC/C,uCAAiB,CAAC,yCAAiB,EAAE,uBAAuB;AAC5D,uCAAiB,CAAC,sCAAmB;AACrC,uCAAiB,CAAC,4BAAY,EAAE,8BAAW;AAC3C,uCAAiB,CAAC,8DAA2B;AAC7C;AACA;AACA;AACA;AACO;AACP;AACA,kCAAkC,iDAAiB;AACnD,mCAAmC,oDAA8B;AACjE;AACA;AACA,qCAAqC,oBAAoB;AACzD,0BAA0B,2CAAqB;AAC/C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAe;AACzD;AACA,iCAAiC,iCAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAiB;AAChD;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,gDAAgD;;;;;;;;;AC5vBjD;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8D;AACgC;AACb;AACM;AACnB;AAC8B;AAC3B;AACY;AACe;AACF;AACO;AACZ;AACK;AACT;AACM;AACd;AACiB;AACpB;AACe;AACJ;AACxB;AACO;AACS;AACC;AACwB;AACnB;AACE;AACmC;AAC7D;AACoC;AACA;AACJ;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6BAAqB,WAAW,gCAAU;AAC9C;AACA;AACA;AACA;AACA,8DAA8D,wCAAgB;AAC9E;AACA,0BAA0B;AAC1B,iDAAiD,iDAAuB;AACxE,kDAAkD,KAAK,iDAAuB;AAC9E,qCAAqC;AACrC,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAuB,wEAAwE,oCAAsB,mCAAmC;AAChK,QAAQ,mDAAyB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;AACA;AACA;AACA,6BAA6B,iCAAc,KAAK,iCAAc,mCAAmC,iCAAc;AAC/G;AACA,gCAAgC,iCAAc,mBAAmB,iCAAc;AAC/E;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAe;AAC7C;AACA;AACA;AACA,sBAAsB,gCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0BAA0B,4BAAY,gBAAgB,sBAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wCAAoB;AACvD;AACA;AACA,sBAAsB,iCAAY;AAClC;AACA,SAAS;AACT;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAU;AACjC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,oDAAkB;AACjC,IAAI,0BAAO,IAAI,+BAAe;AAC9B,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,2BAAa;AAC5B,IAAI,0BAAO,IAAI,oCAAkB;AACjC,IAAI,0BAAO,IAAI,kCAAa;AAC5B,IAAI,0BAAO,IAAI,yCAAoB;AACnC,IAAI,0BAAO,KAAK,0CAAqB;AACrC,IAAI,0BAAO,KAAK,mEAA6B;AAC7C,IAAI,0BAAO,KAAK,gDAAwB;AACxC;AACgC;AAChC;AACA;AACA,0BAA0B;AAC1B,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,2CAAqB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAAU;AAC7B,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,oDAAkB;AACjC,IAAI,0BAAO,IAAI,+BAAe;AAC9B,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,2BAAa;AAC5B,IAAI,0BAAO,IAAI,oCAAkB;AACjC,IAAI,0BAAO,IAAI,8CAAuB;AACtC,IAAI,0BAAO,IAAI,yCAAoB;AACnC,IAAI,0BAAO,KAAK,2CAAqB;AACrC,IAAI,0BAAO,KAAK,0CAAqB;AACrC,IAAI,0BAAO,KAAK,0BAAa;AAC7B,IAAI,0BAAO,KAAK,0CAAgB;AAChC,IAAI,0BAAO,KAAK,mEAA6B;AAC7C,IAAI,0BAAO,KAAK,gDAAwB;AACxC;AAC4B;AAC5B,gEAAgE,wCAAgB;AAChF;AACA,0BAA0B;AAC1B,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAAU;AAClC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,qCAAkB;AACjC,IAAI,0BAAO,IAAI,oDAAkB;AACjC,IAAI,0BAAO,IAAI,8CAAuB;AACtC,IAAI,0BAAO,IAAI,yCAAoB;AACnC,IAAI,0BAAO,IAAI,2CAAqB;AACpC,IAAI,0BAAO,IAAI,sCAAmB;AAClC,IAAI,0BAAO,IAAI,uCAAsB;AACrC,IAAI,0BAAO,KAAK,yCAAiB;AACjC,IAAI,0BAAO,KAAK,8DAA2B;AAC3C;AACiC;AACjC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC1UA,IAAI,+BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,4BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACoD;AACkB;AACR;AACqB;AACW;AACU;AACnC;AACkB;AACf;AAC2B;AAC9C;AACkD;AAChG;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,4BAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gCAAe;AACzC,0BAA0B,8BAAO,mBAAmB,QAAQ,4GAA4G;AACxK,oCAAoC,gCAAe;AACnD,6BAA6B,8BAAO;AACpC;AACA;AACA,SAAS;AACT,qCAAqC,gCAAe;AACpD,8BAA8B,gCAAe;AAC7C,qCAAqC,gCAAe;AACpD,8BAA8B,gCAAe;AAC7C,yBAAyB,8BAAO;AAChC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA,SAAS;AACT,yBAAyB,SAAC;AAC1B,YAAY,SAAC;AACb,gBAAgB,SAAC;AACjB,oBAAoB,SAAC;AACrB,oBAAoB,SAAC;AACrB,wBAAwB,SAAC;AACzB,wBAAwB,SAAC;AACzB,wBAAwB,SAAC;AACzB;AACA,oBAAoB,SAAC;AACrB;AACA;AACA,YAAY,SAAC;AACb,gBAAgB,SAAC;AACjB;AACA;AACA,+EAA+E,wCAAgB;AAC/F;AACA,SAAS,IAAI;AACb;AACA;AACA,yBAAyB,8BAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAe;AAC7C;AACA;AACA;AACA,wBAAwB,2BAAM,kCAAkC;AAChE,uBAAuB,8BAAO;AAC9B;AACA,sDAAsD,uBAAO,gBAAgB,uBAAO;AACpF,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,kCAAiB;AAC7B;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iEAAiE,mCAAoB,0BAA0B,sBAAM;AACrH,6CAA6C,oDAAuB,SAAS,QAAQ,4FAA4F;AACjL;AACA;AACA,aAAa;AACb,8BAA8B,+CAA+C;AAC7E,yDAAyD,wDAAoB;AAC7E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,gHAAgH;AAChH,aAAa;AACb;AACA,QAAQ,kCAAiB;AACzB;AACA,uLAAuL,yDAAyD;AAChP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,qBAAqB;AAClK;AACA;AACA;AACA,4GAA4G;AAC5G,SAAS;AACT;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D,8CAA8C,qBAAqB;AACnE,6CAA6C,MAAM;AACnD;AACA;AACA;AACA;AACA,8DAA8D,MAAM;AACpE,QAAQ,kCAAiB;AACzB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA,yBAAyB,+BAAU;AACnC,IAAI,4BAAO,IAAI,2CAAqB;AACpC;AACkC;AAClC;AACA,WAAW,0CAAmB;AAC9B,0BAA0B,iCAAe;AACzC;AACA;AACA;AACA,KAAK;AACL;;;AC/PO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7CA;AACA;AACA;AACA;AACA,IAAI,kCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,+BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC6F;AACQ;AACrB;AACX;AACE;AACS;AACmE;AACpB;AAC5D;AAC9C;AACkD;AACL;AACJ;AACW;AACiB;AACS;AACA;AAChB;AACtC;AACC;AAC9C,wEAAwE,4BAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,SAAC;AACpC,YAAY,SAAC;AACb;AACA;AACA;AACA,aAAa;AACb,YAAY,SAAC,+CAA+C;AAC5D;AACA,8CAA8C,6BAAU;AACxD;AACA,kDAAkD,4CAA4B,CAAC,yBAAS;AACxF;AACA,SAAS;AACT,qDAAqD,iDAAuB;AAC5E;AACA;AACA;AACA,SAAS;AACT,yBAAyB,SAAC,2CAA2C;AACrE,YAAY,SAAC,UAAU;AACvB,YAAY,SAAC,kCAAkC,GAAG,SAAC,SAAS,wBAAQ;AACpE;AACA,gDAAgD,2CAA6B;AAC7E,8CAA8C,UAAU;AACxD,uEAAuE,sBAAsB;AAC7F;AACA;AACA,SAAS;AACT,yBAAyB,0CAAmB;AAC5C,0BAA0B,0CAAmB;AAC7C,8BAA8B,uCAAgB;AAC9C;AACA;AACA,yBAAyB,4BAA4B,UAAU,iCAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0EAA0E;AAC1I,iBAAiB;AACjB;AACA;AACA,oBAAoB,4BAAW;AAC/B;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,qGAAqG,iDAAiB,EAAE,qCAAkB;AAC1I;AACA;AACA,0CAA0C,0CAAiB;AAC3D,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAY;AAC1C;AACA;AACA,SAAS;AACT,wEAAwE,0CAAiB;AACzF,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA,4DAA4D,OAAO;AACnE;AACA,+DAA+D,YAAY;AAC3E;AACA;AACA;AACA,wBAAwB,mCAAY,YAAY,4BAAS,0CAA0C,+BAAgB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,uBAAuB,iCAAY;AACnC;AACA,SAAS;AACT,sCAAsC,8BAAO;AAC7C;AACA,YAAY,kCAAiB;AAC7B;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAAW;AAC3C;AACA;AACA;AACA;AACA,8BAA8B,8BAAW;AACzC,qCAAqC,8BAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAAW;AAC5C;AACA;AACA;AACA;AACA;AACA,yEAAyE,iDAAiD;AAC1H;AACA;AACA,4BAA4B,kCAAU;AACtC,IAAI,+BAAO,IAAI,qCAAkB;AACjC,IAAI,+BAAO,IAAI,2CAAqB;AACpC;AACqC;AACrC,kCAAkC,4BAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAAyB;AACpE,6BAA6B,8BAAO,mBAAmB,gBAAgB,2QAA2Q;AAClV,yBAAyB,8BAAO,mBAAmB,YAAY,6JAA6J,iCAAiC;AAC7P,wBAAwB,8BAAO,mBAAmB,QAAQ,8FAA8F;AACxJ,yBAAyB,sCAAe;AACxC,0BAA0B,8BAAO,mBAAmB,YAAY,wJAAwJ;AACxN;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kGAAkG;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,0BAAS;AAC5G;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAAW;AACnB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9SA;AACA;AACA;AACA;AAC8C;AACqC;AAC5E,wCAAwC,wCAAa,uCAAuC,wHAAwH,EAAE,wBAAQ;AAC9N,kCAAkC,wCAAa,iCAAiC,+GAA+G,EAAE,wBAAQ;AACzM,8BAA8B,wCAAa,6BAA6B,mHAAmH,EAAE,wBAAQ;;;ACR5M;AACA;AACA;AACA;AACA,IAAI,8BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,2BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkE;AACuD;AACxD;AACU;AACwB;AAC9E;AACgD;AACrE,gEAAgE,4BAAU;AAC1E;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAe;AACzC,0BAA0B,sCAAe;AACzC,2BAA2B,uCAAgB;AAC3C,YAAY,yCAAuB,CAAC,sBAAsB;AAC1D,wEAAwE,yCAAuB,CAAC,yBAAyB;AACzH,SAAS;AACT,uBAAuB,oDAA6B;AACpD;AACA;AACA,wBAAwB,8BAAU;AAClC,IAAI,2BAAO,IAAI,2CAAqB;AACpC;AACiC;;;ACtCjC;AACA;AACA;AACA;AAC6D;AACmB;AACnB;AACX;AACjB;AAC2C;AACV;AACe;AACc;AACoB;AACpD;AACU;AACf;AACH;AACe;AACkC;AACxB;AACC;AACL;AACb;AACe;AACnC;AAC0D;AACX;AACnB;AACY;AACF;AACE;AACI;AACV;AACF;AAC2B;AACtG;AACA;AACA;AACA;AACA;AACO;AACP,iCAAiC,kBAAkB,0BAA0B;AAC7E,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oDAAkB;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oDAAkB;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oDAAkB;AACvE;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oDAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iCAAiC,kBAAkB,0BAA0B;AAC7E,+CAA+C,qBAAqB;AACpE;AACO;AACP,iCAAiC,kBAAkB,0BAA0B;AAC7E,eAAe,qBAAqB,eAAe;AACnD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,gCAAgB;AAC3B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,iCAAc;AACvC;AACA,eAAe,sCAAa;AAC5B;AACA,0BAA0B,iCAAe;AACzC;AACA,kBAAkB,gCAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,sBAAsB,4BAAY,gBAAgB,sBAAM;AACxD;AACA;AACA;AACA,kCAAkC,kBAAkB,KAAK,oCAAkB;AAC3E,2CAA2C,2BAA2B;AACtE;AACA;AACA;AACA,oCAAoC,iCAAc,mBAAmB,iCAAc;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oCAAkB;AACvE,uCAAuC,2BAA2B;AAClE;AACA,eAAe,4BAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iCAAc;AAChC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE;AACA,WAAW,eAAe,CAAC,kBAAkB,KAAK,0BAAa;AAC/D;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE,gHAAgH,2CAAqB;AACrI;AACA;AACA;AACA;AACA;AACO;AACP;AACA,8BAA8B,kBAAkB,KAAK,qCAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,kBAAkB,KAAK,qCAAc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,kBAAkB,KAAK,qCAAc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,kBAAkB,KAAK,qCAAc;AAC/D;AACA;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,0BAAa;AAC7D;AACA;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,0BAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,0BAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,0BAAa;AAC7D;AACA;AACA;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,0BAAa;AAC7D;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACO,SAAS,gCAAe;AAC/B,WAAW,eAAqB,CAAC,kBAAkB,KAAK,0BAAa,GAAG,kBAAkB,KAAK,mEAA6B;AAC5H;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE,yBAAyB,kBAAkB,KAAK,8CAAuB;AACvE,WAAW,SAAS;AACpB;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE,yBAAyB,kBAAkB,KAAK,8CAAuB;AACvE,yCAAyC,gCAAU;AACnD,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACO;AACP,yBAAyB,kBAAkB,KAAK,8CAAuB;AACvE,yCAAyC,gCAAU;AACnD,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA,gCAAgC,sCAA8B;AAC9D;AACA;AACA;AACA;AACA,+BAA+B,8BAAS;AACxC,2CAA2C,qCAAY;AACvD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,IAAI,sCAA8B;AAClC;AACA,kBAAkB,8BAAU;AAC5B;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mCAAmC,kBAAkB,KAAK,8CAAuB;AACjF;AACA;AACA;AACA;AACA;AACO;AACP,mCAAmC,kBAAkB,KAAK,8CAAuB;AACjF;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,wCAAgB;AACpB;AACA;AACA;AACA;AACO;AACP,WAAW,gCAAgB,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0BAA0B,kBAAkB,KAAK,mCAAc;AAC/D;AACA;AACA;AACA,2BAA2B,qBAAG;AAC9B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB,KAAK,oDAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA,2BAA2B;AAC3B;AACA,qBAAqB;AACrB,KAAK;AACL;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAoC;AAClE,yCAAyC,uDAA+C;AACxF,4BAA4B,0CAAkC;AAC9D,0BAA0B,wCAAgC;AAC1D,kCAAkC,gDAAwC;AAC1E,sBAAsB,oCAA4B;AAClD,6BAA6B,2CAAmC;AAChE,2BAA2B,yCAAiC;AAC5D,yBAAyB,uCAA+B;AACxD,mCAAmC,iDAAyC;AAC5E,yBAAyB,uCAA+B;AACxD,yCAAyC,uDAA+C;AACxF,2BAA2B,yCAAiC;AAC5D,yBAAyB,uCAA+B;AACxD,+BAA+B,6CAAqC;AACpE,uBAAuB,qCAA6B;AACpD,6BAA6B,2CAAmC;AAChE,oBAAoB,kCAA0B;AAC9C,uCAAuC,qDAA6C;AACpF,+BAA+B,6CAAqC;AACpE,gCAAgC,8CAAsC;AACtE,wBAAwB,sCAA8B;AACtD,iCAAiC,+CAAuC;AACxE,0BAA0B,wCAAgC;AAC1D,+BAA+B,6CAAqC;AACpE;AACA,mCAAmC,+CAAyB;AAC5D,sBAAsB,6BAAY;AAClC,kBAAkB,yBAAQ;AAC1B,kCAAkC,6CAAwB;AAC1D,mBAAmB,8BAAS;AAC5B,2BAA2B,uCAAiB;AAC5C,oBAAoB,4BAAU;AAC9B;AACA;AACA,oBAAoB,8BAAU;AAC9B,uBAAuB,mCAAa;AACpC;AACA;;;;;AC/dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA,oBAAoB,KAAmB;AACvC,SAAS;AACT;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAiC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA,0CAA0C,sCAAsC;AAChF,kBAAkB,WAAyB;AAC3C;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,sDAAsD,iBAA+B;AACrF;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,yBAAyB,OAAqB;AAC9C,oCAAoC;AACpC;AACA;AACA,yBAAyB,OAAqB;AAC9C;AACA,+BAA+B,iBAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA,qDAAqD;AACrD,iCAAiC,WAAyB,QAAQ,iBAA+B;AACjG,sCAAsC,WAAyB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yCAAyC;AAC1E;AACA;AACA,iCAAiC,2CAA2C,aAAa,0BAA0B;AACnH;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAyB,gHAAgH;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA,iDAAiD;AACjD;AACA;AACA,0BAA0B,WAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAyB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA;AACA;AACA;AACA,cAAc,QAAQ,YAAY,6BAA6B;AAC/D,cAAc,kDAAkD;AAChE,cAAc,uDAAuD;AACrE,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,kBAAkB,WAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAqB;AAC3C,uBAAuB,OAAqB;AAC5C,aAAa;AACb;AACA;AACA,kBAAkB,WAAyB,8DAA8D,iBAAiB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;;;AClhBA;AACA;AACA;AACA;AACsD;AACH;AACI;AACe;AACkC;AAChC;AACa;AACP;AACjB;AACC;AACO;AACE;AACyB;AACnB;AAC7E;AACA;AACA;AACO;AACP;AACA;AACA,IAAI,mCAAa;AACjB;AACA;AACA;AACA;AACO;AACP;AACA,2BAA2B,mCAAa;AACxC;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,kBAAkB;AAC7B,gCAAgC,kBAAkB,KAAK,0CAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,kBAAkB;AAC7B,gCAAgC,kBAAkB,KAAK,0CAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE;AACA,yEAAyE,WAAW;AACpF;AACA,yCAAyC,kBAAkB,KAAK,mEAA6B;AAC7F;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAmC;AACtD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oCAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mCAAmC,kBAAkB,KAAK,8CAAuB;AACjF;AACA;AACA,+CAA+C,SAAS;AACxD,wBAAwB,mBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB,KAAK,0CAAgB,GAAG,kBAAkB,KAAK,8CAAuB;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,+BAA+B,yCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB,CAAC,kBAAkB,KAAK,0CAAgB,GAAG,kBAAkB,KAAK,8CAAuB,eAAe,OAAO,sBAAsB,kBAAkB,KAAK,2CAAqB;AACpN,KAAK;AACL,WAAW,sCAA8B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,4BAA4B,kBAAkB,KAAK,0CAAgB;AACnE;AACA,2EAA2E,WAAW;AACtF;AACA;AACA,2DAA2D,wBAAwB;AACnF;AACA,WAAW,sCAA8B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,mBAAmB,gBAAgB,CAAC,kBAAkB,KAAK,0CAAgB,GAAG,kBAAkB,KAAK,8CAAuB,eAAe,OAAO,2BAA2B,kBAAkB,KAAK,2CAAqB;AACzN;AACA;AACA,2DAA2D,2BAA2B;AACtF;AACA,WAAW,sCAA8B;AACzC;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA,sCAAsC,uBAAK;AAC3C;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,KAAK,qCAAc;AACvE,iDAAiD,qBAAqB;AACtE,uBAAuB,uBAAK;AAC5B,aAAa;AACb,+DAA+D,uDAAuD;AACtH,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP,oCAAoC,kBAAkB,KAAK,gDAAwB;AACnF;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAqC;AACpE,4BAA4B,0CAAkC;AAC9D,2BAA2B,yCAAiC;AAC5D,sCAAsC,oDAA4C;AAClF,oBAAoB,kCAA0B;AAC9C,mBAAmB,iCAAyB;AAC5C,sBAAsB,mCAA4B;AAClD,+BAA+B,6CAAqC;AACpE,kCAAkC,gDAAwC;AAC1E,uBAAuB,qCAA6B;AACpD,qCAAqC,mDAA2C;AAChF,+BAA+B,6CAAqC;AACpE,+BAA+B,6CAAqC;AACpE,0BAA0B,wCAAgC;AAC1D,kCAAkC,gDAAwC;AAC1E,kCAAkC,gDAAwC;AAC1E,8BAA8B,4CAAoC;AAClE;AACA,0BAA0B,kCAA0B;AACpD,gCAAgC,wCAAgC;AAChE;AACA;;;;;ACtkBA;AACA;AACA;AACA;AACiE;AACQ;AACQ;AACM;AACd;AACzE;AACA,mCAAa;AACb,mCAAa;AACb,mCAAa;AACb,mCAAa;AACb;AACA;AACA,kCAAmB;AACnB,YAAY,4CAAmB;AAC/B,aAAa,qBAAqB;AAClC,gBAAgB,wBAAwB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oBAAS;AACtB;AACA,4IAA4I,wBAAU;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,KAA2C,GAAG,qBAAuB,GAAG,CAAM;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,0CAA0C,gCAAgC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuD;AACM;AAC3B;AAC2B;AACN;AACN;AACe;AACR;AACC;AACG;AACU;AACzB;AACQ;AACF;AACY;AACC;AAC3B;AACwB;AACM;AACK;AACvB;AACJ;AACE;AACG;AACD;AACyB;AACrB;AACiB;AACjB;AACa;AACP;AACN;AACU;AACe;AACd;AACL;AACC;AACH;AACI;AACJ;AAChB;AACoB;AACR;AACM;AACe;AACJ;AACM;AAClB;AACgB;AAC/B;AACgB;AACQ;AACA;AACd;AACG;AACW;AACZ;AACO;AACQ;AACH;AACZ;AACY;AACQ;AACd;AACF;AACQ;;AAExB;AACV;AAClC,+CAAe,0BAAM,EAAC;AACtB;AACsD;AACA;AACE;AACJ;AACI;AACM;AACF;AACF;AACN;AACM;AACN;AACA;AACJ;AACU;AACJ;AACY;AACd;AACM;AACF;AACY;AACV;AACR;AACU;AACM;AACd;AACE;AACL;AACG;AACE;AACY;AACjB;AACO;AACE;AACJ;AACE;AACE;AACN;AACF;AACY;AACV;AACE;AACE;AACA;AACY;AACV;AACM;AACV;AACE;AACJ;AACA;AACU;AACI;AACA;AACJ;AACV;AACM;AACA;AACV;AACQ;AACA;AACM;AACgB;AACxB;AACA;AACJ;AACM;AACE;AACJ;AACE;AACM;AACJ;AACA;AACN;AACF;AACM;AACgB;AACpB;AACE;AACY;AACX;AACO;AACZ;AACI;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9LpD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiH;AAC1B;AACL;AACmB;AACtC;AACyB;AACvB;AACkB;AAC2E;AAC1F;AACL;AACtB;AACwC;AAChB;AACI;AACN;AACN;AACkB;AACC;AACP;AACgC;AAC7B;AACvB;AACoG;AAC/C;AAClB;AAChD;AACpC,uCAAuC,qCAAY,uBAAuB,uBAAO,MAAM,wBAAQ;AAC/F,uCAAuC,qCAAY,uBAAuB,uBAAO,SAAS,wBAAQ;AAClG,sCAAsC,qCAAY,sBAAsB,uBAAO,QAAQ,wBAAQ;AAC/F,8DAA8D,4BAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,kCAAW;AACnB;AACA,SAAS;AACT;AACA;AACA,iCAAiC,gDAAwB,iBAAiB,4BAA4B;AACtG;AACA,eAAe,2CAAqB;AACpC;AACgC;AAChC,wCAAwC,4BAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAe;AACtC,gCAAgC,sCAAe;AAC/C,kCAAkC,sCAAe;AACjD;AACA;AACA;AACA,wEAAwE,QAAQ,6FAA6F;AAC7K,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,4DAA4D,sDAAmB,oBAAoB,sDAAsD;AACzJ;AACA;AACA,4DAA4D,sDAAmB,qBAAqB,sDAAsD;AAC1J;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAK,mBAAmB,wBAAQ;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qCAAc;AACtB,sCAAsC,8BAAW;AACjD;AACA,SAAS;AACT;AACA,oBAAoB;AACpB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB,wCAAwC,8BAAW;AACnD,SAAS;AACT;AACA,qBAAqB;AACrB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAK,mBAAmB,wBAAQ;AAC5E;AACA;AACA;AACA,sBAAsB,kBAAK,mBAAmB,wBAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAA2B;AAC1C;AACA;AACA;AACA;AACA,oBAAoB,iCAAe;AACnC;AACA;AACA,kCAAkC,0BAAS;AAC3C,sCAAsC,0BAAS;AAC/C,QAAQ,kCAAe;AACvB,kCAAkC,0BAAS;AAC3C,sCAAsC,0BAAS;AAC/C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,6CAA6C,0CAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0BAAS;AACtD,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,yCAAyC,6BAAM,qBAAqB,wBAAQ,iDAAiD,0BAAS,kFAAkF,0BAA0B;AAClP;AACA,SAAS;AACT;AACA;AACA;AACA,6CAA6C,8CAAoB,kBAAkB;AACnF,QAAQ,qBAAK;AACb,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAY,SAAS,qBAAK,iBAAiB;AAClE,uBAAuB,4BAAU,iBAAiB,0CAA0C;AAC5F,uBAAuB,4BAAU,kBAAkB,0CAA0C;AAC7F,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,6CAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAQ;AACrD,QAAQ,oCAAa;AACrB,QAAQ,qBAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wBAAQ;AACtE,oCAAoC,wBAAQ;AAC5C,0BAA0B,wBAAQ,yBAAyB,GAAG;AAC9D;AACA;AACA,kDAAkD,wBAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe,GAAG,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE;AACzF;AACA;AACA;AACA,4DAA4D,cAAc,GAAG,YAAY,QAAQ,2BAA2B,GAAG,mBAAmB,GAAG,2BAA2B,GAAG,mBAAmB;AACtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8BAAO;AACzC,sBAAsB,8BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB,qCAAqB;AAC3C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAQ;AAClC;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAQ,GAAG,4GAA4G,IAAI,GAAG,gBAAgB,EAAE;AAChL;AACA;AACA,gCAAgC,wBAAQ,gBAAgB,GAAG,eAAe,GAAG,eAAe,EAAE;AAC9F;AACA;AACA;AACA,4BAA4B,wBAAQ,mBAAmB,GAAG,eAAe,EAAE;AAC3E;AACA;AACA,4BAA4B,wBAAQ,mBAAmB,GAAG,eAAe,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAU;AACrC,6BAA6B,uCAAqB;AAClD,4BAA4B,uCAAqB;AACjD,kBAAkB,4CAAe,KAAK,wCAAe,0fAA0f,yCAAmB;AAClkB;AACA;AACA;AACA;AACA,eAAe,gCAAgB;AAC/B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChkBA;AACA;AACA;AACA;AACuD;AAC2B;AACnB;AAC4D;AACrD;AACL;AACkB;AACoK;AACnL;AACiC;AAChB;AACpC;AAC1C,sCAAsC,4BAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAAmB;AACrD,kCAAkC,0CAAmB;AACrD,iCAAiC,gDAAyB;AAC1D,qBAAqB,sCAAe;AACpC,+CAA+C,gDAAyB;AACxE,+CAA+C,gDAAyB;AACxE,sBAAsB,uCAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW,8BAAW;AAC/C,aAAa;AACb,uBAAuB,sCAAmB,CAAC,4BAAS,+CAA+C,gCAAiB,GAAG,4BAAS,0FAA0F,+BAAgB;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D,0CAA0C,yBAAyB;AACnE,8CAA8C,UAAU;AACxD,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA,4CAA4C,GAAG,EAAE,WAAW,IAAI,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,SAAS,IAAI,oBAAoB,EAAE,QAAQ;AACpJ;AACA;AACA;AACA;AACA,0BAA0B,8BAAO;AACjC;AACA;AACA,iBAAiB;AACjB,qDAAqD,mBAAmB,GAAG,2BAA2B,EAAE,MAAM,GAAG,SAAS,EAAE,mBAAmB,GAAG,0BAA0B;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,iCAAY;AACnC,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF,4CAA4C,YAAY;AACxD,2CAA2C,yHAAyH;AACpK,SAAS;AACT,uBAAuB,oDAA6B;AACpD,oCAAoC,8BAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAmB,CAAC,sCAAe;AACjE,8BAA8B,iCAAmB,CAAC,sCAAe;AACjE,aAAa;AACb,SAAS;AACT,uBAAuB,gCAAc;AACrC,uBAAuB,gCAAc;AACrC,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iCAAiC,gDAAyB;AAC1D,iCAAiC,gDAAyB;AAC1D;AACA,uBAAuB,0CAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAU,eAAe,4BAAS,4CAA4C,+BAAgB;AAC7H;AACA;AACA;AACA,0CAA0C,iCAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAqB;AAC3D;AACA,qBAAqB,SAAC;AACtB;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAC,gCAAgC,SAAS,sBAAsB;AACtF,YAAY,SAAC;AACb,YAAY,SAAC;AACb;AACA;AACA,6BAA6B,0CAAmB;AAChD,uBAAuB,4BAAU;AACjC;AACA,SAAS;AACT;AACA;AACA,+CAA+C,wBAAQ,6DAA6D,EAAE,EAAE,EAAE,4HAA4H,wBAAQ,iEAAiE,EAAE,EAAE,EAAE;AACrU;AACA;AACA,+CAA+C,wBAAQ,qCAAqC,EAAE,EAAE,EAAE,4HAA4H,wBAAQ,yCAAyC,EAAE,EAAE,EAAE;AACrR;AACA,6CAA6C,0BAAS;AACtD;AACA,SAAS;AACT,4BAA4B,6BAAM;AAClC,kCAAkC,0BAA0B;AAC5D,kCAAkC,6BAAM,gBAAgB,0BAAS,aAAa,uBAAO;AACrF;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA,SAAS;AACT,wCAAwC,0BAA0B;AAClE;AACA;;;;;ACzQA;AACA;AACA;AACA;AACqE;AACF;AACc;AAC4R;AACpT;AAClD,oCAAoC,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mFAAmF,kFAA+C,GAAG,qEAAkC,EAAE;AAC5N;AACA;AACA,mDAAmD,mFAAmF,+EAA4C,GAAG,kEAA+B,EAAE;AACtN;AACA;AACA;AACA,uDAAuD,gEAAgE,gEAA6B,EAAE;AACtJ;AACA;AACA,uDAAuD,gEAAgE,6DAA0B,EAAE;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,uFAAuF,4DAAyB,GAAG,uDAAoB,EAAE;AACpM;AACA;AACA,2DAA2D,uFAAuF,yDAAsB,GAAG,oDAAiB,EAAE;AAC9L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAsD,kFAA+C,GAAG,qEAAkC,EAAE;AAC/L;AACA;AACA;AACA,mDAAmD,sDAAsD,+EAA4C,GAAG,kEAA+B,EAAE;AACzL;AACA;AACA,mDAAmD,iCAAiC,uDAAoB,EAAE;AAC1G,mDAAmD,iCAAiC,oDAAiB,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB,2BAA2B,uBAAuB,wBAAwB,uBAAuB;AAC/J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,qBAAqB;AACrB,SAAS;AACT,uBAAuB,4CAA0B;AACjD,uBAAuB,4CAA0B;AACjD;AACA;;;;;AC7FA;AACA;AACA;AACA;AACmE;AACE;AACe;AACS;AACtF;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qCAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,0BAA0B,sCAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,4BAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAI;AAC5C;AACA;AACA;AACA,SAAS,IAAI,2CAA2C;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;ACjFA;AACA;AACA;AACA;AACA,IAAI,mCAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,gCAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC4F;AACwB;AACzD;AACM;AACH;AACgC;AACd;AACO;AAChF,oCAAoC,yCAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAU;AAClD,IAAI,gCAAO,IAAI,2CAAqB;AACpC;AACiD;AACjD,uCAAiB;AACjB;AACA;AACA;AACA;AACA,2CAA2C,4BAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAwB,KAAK,0BAAS,YAAY,0BAAS;AACnF,4BAA4B,sCAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,mCAAU;AAChF,IAAI,gCAAO,IAAI,wCAAoB;AACnC,IAAI,gCAAO,IAAI,kCAAiB;AAChC;AAC2C;;;;;;;;;;;;;AC9I3C;AACA;AACA;AACA;AACA,IAAI,4BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,yBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACoE;AACc;AACF;AACoG;AACtG;AACL;AACG;AACyC;AACL;AACY;AACI;AACR;AAC3D;AACO;AACL;AAC/D,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sCAAe;AAC9C;AACA,qBAAqB,sCAAe;AACpC;AACA,iCAAiC,sCAAe;AAChD,gCAAgC,8BAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAW;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT,kCAAkC,sCAAe;AACjD,gCAAgC,sCAAe;AAC/C,iCAAiC,sCAAe;AAChD,+BAA+B,8BAAO,cAAc,YAAY,sLAAsL;AACtP,4CAA4C,4CAAuB;AACnE,6BAA6B,8BAAO;AACpC;AACA;AACA,aAAa;AACb,mCAAmC,gDAAyB;AAC5D;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,iCAAY;AACnC,qCAAqC,uCAAgB;AACrD,6CAA6C,qCAAgB;AAC7D,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAAS;AACvC;AACA;AACA,8BAA8B,0BAAS;AACvC;AACA,4QAA4Q,uBAAS;AACrR;AACA;AACA,mCAAmC,iCAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gJAAgJ,+DAA+D,4BAA4B;AAC3O,gJAAgJ,+DAA+D,4BAA4B;AAC3O,gBAAgB,kCAAW;AAC3B;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAAS;AAC3C;AACA;AACA,kCAAkC,0BAAS;AAC3C,oDAAoD,oCAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,uBAAS;AACnC,6EAA6E,0CAAgB;AAC7F,gCAAgC,0CAAgB,qBAAqB,0BAAS,6CAA6C,0BAAS;AACpI,iCAAiC,0CAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2OAA2O,+DAA+D,4BAA4B;AACtU,2OAA2O,+DAA+D,4BAA4B;AACtU;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kCAAkC,4CAAY;AAC9C;AACA;AACA;AACA,oBAAoB,kCAAW;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,4CAAY;AAC9C;AACA;AACA;AACA,oBAAoB,kCAAW;AAC/B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAuB,CAAC,yDAAwB;AAC5D,YAAY,yCAAuB,CAAC,4DAAqB;AACzD;AACA;AACA;AACA,8BAA8B,4CAAY;AAC1C,wCAAwC,oDAAoB;AAC5D,aAAa;AACb;AACA;AACA,8BAA8B,4CAAY;AAC1C,wCAAwC,oDAAoB;AAC5D,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mCAAY;AAC1B;AACA;AACA;AACA;AACA,4GAA4G,wDAAwD;AACpK;AACA;AACA;AACA;AACA,sGAAsG,0BAAS;AAC/G;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB,4BAAU;AAChC,IAAI,yBAAO,IAAI,2BAA2B;AAC1C;AAC+B;AAC/B;AACA;AACA,2CAA2C,kDAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAY;AAC3B;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,iCAAiC,kDAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAS;AACxB;AACA;AACA,eAAe,0BAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAe;AACnD;AACA,uCAAuC,sCAAe;AACtD;AACA,mCAAmC,8BAAO;AAC1C,yBAAyB,sCAAe;AACxC;AACA;AACA,QAAQ,6BAAU;AAClB,QAAQ,6BAAU;AAClB;AACA;AACA;AACA;AACA;AACA,mCAAmC,6BAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAS;AACxB;AACA;AACA,eAAe,0BAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC3mBA;AACA;AACA;AACA;AAC8G;AAC5C;AACE;AACI;AACN;AACK;AACnB;AAC7C,0CAA0C,4BAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAAS,aAAa,uBAAO;AACnE;AACA;AACA;AACA;AACA,4CAA4C,WAAW;AACvD,gDAAgD,WAAW;AAC3D;AACA;AACA,gGAAgG,sBAAK,EAAE;AACvG;AACA;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA,qCAAqC,6BAAM;AAC3C;AACA,8BAA8B,wBAAQ;AACtC,8BAA8B,wBAAQ;AACtC;AACA,8BAA8B,wBAAQ;AACtC,8BAA8B,wBAAQ;AACtC;AACA;AACA,qBAAqB;AACrB;AACA,yCAAyC,6BAAM;AAC/C,8BAA8B,wBAAQ,qEAAqE,EAAE;AAC7G,8BAA8B,wBAAQ,qEAAqE,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yCAAyC,6BAAM,6BAA6B,wBAAQ;AACpF;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,uBAAuB,6CAA6B;AACpD;AACA;AACA;AACA,oBAAoB,cAAc,EAAE,sCAAsB;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,MAAM,EAAE,sCAAsB;AAC9C;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC1IA;AACA;AACA;AACA;AAC0F;AACxB;AACkB;AACR;AACS;AACkB;AAC5B;AAC3E,iBAAiB,gDAAwB,uBAAuB,4BAA4B;AACrF;AACP,IAAI,oCAAa;AACjB;AACA,mBAAmB,mCAAa;AAChC;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA,kCAAkC,qCAAc;AAChD;AACA;AACA;AACA;AACA,kHAAkH,qCAAc;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,yBAAyB,uCAAqB;AAC9C,wBAAwB,uCAAqB;AAC7C,mBAAmB,2CAAc,KAAK,wCAAe,2aAA2a,yCAAmB;AACnf;AACA;AACA;AACA;;;;;;;ACjGA;AACA;AACA;AACA;AACA,IAAI,4BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,yBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiF;AACZ;AACK;AACN;AACqB;AAC8C;AAChE;AACE;AACP;AACyB;AAChC;AACoB;AACL;AACT;AACG;AACF;AACI;AAC8B;AACA;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4BAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sCAAe;AAClD,qCAAqC,sCAAe;AACpD,6CAA6C,oCAAkB;AAC/D,mCAAmC,sCAAe;AAClD,qCAAqC,sCAAe;AACpD,6CAA6C,oCAAkB;AAC/D,sBAAsB,sCAAe;AACrC,qDAAqD,qCAAgB;AACrE;AACA,SAAS;AACT,gFAAgF;AAChF;AACA,WAAW;AACX,gFAAgF;AAChF;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,gFAAgF,0CAAmB;AACnG,2BAA2B,8BAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,8BAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,WAAW;AAC7E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAe;AAChF,yBAAyB,uCAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,4CAA4C;AAClH;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,2CAA2C,UAAU;AACrD;AACA;AACA,iDAAiD,kCAAgB,gEAAgE,uDAAoB;AACrJ;AACA,uCAAuC,WAAW;AAClD;AACA;AACA,wBAAwB,oCAAa;AACrC;AACA,4CAA4C,0BAA0B;AACtE;AACA,yEAAyE,0BAAS,aAAa,iDAAc,EAAE;AAC/G,uFAAuF,MAAM,kBAAkB,GAAG,QAAQ,mCAAmC,GAAG,SAAS,cAAc,GAAG,QAAQ;AAClM;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B,OAAO,iCAAe;AAC/G,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,0BAAS,aAAa,uBAAO;AACpG,sCAAsC,qCAAqB;AAC3D,sCAAsC,qCAAqB;AAC3D;AACA;AACA,6BAA6B;AAC7B,mCAAmC,SAAC,UAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,0CAAmB;AACrD,kCAAkC,0CAAmB;AACrD;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB,4BAAU;AAChC,IAAI,yBAAO,IAAI,yCAAiB;AAChC,IAAI,yBAAO,IAAI,sCAAmB;AAClC;AAC+B;AAC/B;AACA,4CAA4C,yBAAU;AACtD,4CAA4C,yBAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAAS;AACxC,+BAA+B,0BAAS;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAAS;AAC/C,sCAAsC,0BAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA,2CAA2C,+DAA+D;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H,wBAAQ;AAClI,+BAA+B,mDAAmD;AAClF;AACA,mBAAmB,6BAAW,yEAAyE,sEAAsE;AAC7K;AACA;;;AC3fA;AACA;AACA;AACA;AAC8D;AACqB;AACgF;AAClG;AACI;AAC9D,2BAA2B,4BAAU;AAC5C;AACA;AACA;AACA;AACA;AACA,yBAAyB,0CAAmB;AAC5C;AACA,6BAA6B,0CAAmB;AAChD,0CAA0C,gDAAyB;AACnE,4CAA4C,gDAAyB;AACrE,kCAAkC,uCAAgB;AAClD;AACA;AACA,2DAA2D,SAAC,4BAA4B,mDAAmD,iBAAiB;AAC5J;AACA;AACA,YAAY,kCAAW;AACvB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,uBAAuB,iCAAY;AACnC,uBAAuB,8BAAO;AAC9B;AACA;AACA,SAAS;AACT,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA,QAAQ,qBAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAAW;AACrC;AACA;AACA,0CAA0C,0BAAS;AACnD;AACA,gBAAgB,kCAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sCAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,IAAI;AACxD,uDAAuD,OAAO;AAC9D,mDAAmD,8BAAW;AAC9D;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC1GA;AACA;AACA;AACA;AACmD;AACA;AAC5C,4BAA4B,6BAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,mBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACyF;AACpB;AAC+D;AACpB;AAC/C;AACuB;AAChC;AACiB;AACM;AACV;AACZ;AACM;AACoB;AACT;AACgB;AACD;AACI;AACL;AACc;AACtG;AACA;AACA,sDAAsD,4BAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAM;AACvE,wBAAwB,0CAAmB;AAC3C;AACA,yBAAyB,8BAAO;AAChC,qBAAqB,8BAAO;AAC5B,wBAAwB,SAAC,wBAAwB,SAAS,6DAA6D;AACvH,4BAA4B,8BAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,8BAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAAY,qBAAqB,0BAAS;AACtF;AACA;AACA;AACA,sGAAsG,kBAAK;AAC3G,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,wCAAsB;AAC7C,uBAAuB,qCAAqB;AAC5C;AACA,SAAS;AACT,uBAAuB,4BAAU,uBAAuB,0DAA0D;AAClH,QAAQ,qCAAiB;AACzB;AACA,+CAA+C,cAAc,2GAA2G,qCAAiB;AACzL,SAAS;AACT,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kDAAwB;AACtD;AACA,oDAAoD,sBAAM;AAC1D;AACA;AACA;AACA,wOAAwO,sBAAM;AAC9O,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,qCAAqB,uBAAuB,qBAAS;AAC5E;AACA;AACA;AACA,SAAS,IAAI,gBAAgB;AAC7B;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,6BAA6B,aAAa;AAC1C,yBAAyB,yBAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAU;AAC7B,IAAI,mBAAO,IAAI,2CAAqB;AACpC,IAAI,mBAAO,IAAI,qCAAkB;AACjC,IAAI,mBAAO,IAAI,4BAAY;AAC3B;AAC4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAkB,QAAQ;AAC1B;AACA,4CAA4C,4BAAU;AACtD;AACA;AACA;AACA,yBAAyB,SAAC,qBAAqB,SAAS,iCAAiC;AACzF,YAAY,SAAC,gCAAgC;AAC7C,YAAY,SAAC,0BAA0B;AACvC;AACA;AACA;AACA,wBAAwB,sCAAe;AACvC;AACA;AACA,iFAAiF,oCAAsB,qBAAqB,YAAY,8CAA8C;AACtL,uBAAuB,uCAAqB;AAC5C,uBAAuB,8BAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,uCAAgB;AACvC;AACA,oEAAoE,mCAAoB;AACxF;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oCAAoC,8CAA8C;AAClF;AACA,kCAAkC,oDAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8BAAW;AAClD,qCAAqC,8BAAW;AAChD;AACA;AACA;AACA;AACA,8CAA8C,uCAAuC;AACrF;AACA;AACA,cAAc,sBAAU;AACxB,IAAI,mBAAO,IAAI,2CAAqB;AACpC;;;;;;;;;;;;;;;ACzOA;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACwH;AACzC;AACa;AACvB;AACyE;AAC1F;AACW;AACyB;AACuG;AAC1G;AACrF,uFAAuF,4BAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAAmB;AACrD,8BAA8B,8BAAO;AACrC;AACA;AACA,+CAA+C,gDAAyB,qBAAqB,mCAAY,KAAK,yCAAkB;AAChI,+CAA+C,+CAAwB,qBAAqB,kCAAW,KAAK,yCAAkB;AAC9H,qBAAqB;AACrB,SAAS;AACT,mCAAmC,wCAAiB;AACpD;AACA;AACA,iCAAiC,SAAC;AAClC,qBAAqB;AACrB,SAAS;AACT,uBAAuB,uCAAqB;AAC5C,uBAAuB,6CAA6B,mBAAmB,qBAAS;AAChF;AACA,SAAS;AACT,uBAAuB,qCAAqB,mBAAmB,qBAAS;AACxE;AACA,SAAS,IAAI,gBAAgB;AAC7B,uBAAuB,uCAAqB;AAC5C,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,0BAA0B,uCAAqB;AAC/C;AACA;AACA;AACA;AACA,0BAA0B,uCAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA,yCAAyC,gDAAyB;AAClE,wCAAwC,gDAAyB;AACjE,4CAA4C,gDAAyB;AACrE,2CAA2C,gDAAyB;AACpE,sBAAsB,8BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,wBAAQ;AAC7G,mGAAmG,wBAAQ;AAC3G;AACA;AACA;AACA;AACA,mCAAmC,6CAAiB;AACpD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB,8BAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sCAAsC,oCAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,gDAAgD,6BAAU;AAC1D,IAAI,0BAAO,IAAI,kCAAa;AAC5B;AACgC;;;;;;;ACvJhC;AACA;AACA;AACA;AACyF;AACL;AACnB;AACkB;AACE;AACN;AACtB;AACkB;AACb;AACb;AACjD,MAAM,6BAAQ;AACP,mCAAmC,4BAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8BAAO;AACrC;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA;AACA,uBAAuB,6BAAQ;AAC/B;AACA,4CAA4C,6BAAY,qBAAqB,0BAAS;AACtF;AACA;AACA;AACA,sGAAsG,kBAAK;AAC3G,aAAa;AACb;AACA,uBAAuB,6BAAQ;AAC/B;AACA;AACA,SAAS;AACT,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iCAAY;AAClC;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACO,2BAA2B,4BAAU;AAC5C,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,wBAAwB,SAAC;AACzB;AACA,kBAAkB,wBAAQ;AAC1B,kBAAkB,wBAAQ;AAC1B,SAAS,GAAG,gCAAU,CAAC,uBAAO;AAC9B,uBAAuB,qCAAqB,gBAAgB,qBAAS;AACrE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,gBAAgB,qBAAS;AACrE;AACA;AACA,SAAS;AACT,uBAAuB,qCAAqB,gBAAgB,qBAAS;AACrE,uCAAuC,0CAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAAe;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AC/IA;AACA;AACA;AACA;AACiE;AACjE;AACO;AACP;AACA,WAAW,kCAAW,GAAG,qCAAqC,QAAQ,IAAI;AAC1E;AACA,KAAK;AACL;;;;;;;;;;;ACXsE;AACtE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB,0CAAmB;AACxC;AACA;AACA;;;;;AC5BA;AACA;AACA;AACA;AACA,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,uBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8D;AACO;AAC6C;AAClD;AACW;AACA;AACZ;AACd;AACqD;AACT;AAC7F,wDAAwD,4BAAU;AAClE,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8JAA8J;AAC9J,+JAA+J;AAC/J,0DAA0D,4BAAO;AACjE,iCAAiC,0CAAmB;AACpD,oCAAoC,0CAAmB;AACvD,6BAA6B,aAAa;AAC1C,kCAAkC,0CAAmB,mDAAmD,QAAQ,kFAAkF;AAClM,8BAA8B,iCAAW,GAAG,uBAAuB,wBAAQ,SAAS,cAAc,YAAY,wJAAwJ,wBAAQ,SAAS;AACvR,8BAA8B,0CAAmB,kDAAkD,QAAQ,+EAA+E,wBAAQ,SAAS;AAC3M;AACA,uBAAuB,0CAAoB;AAC3C,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8FAA8F,oBAAoB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mCAAa,6CAA6C,oBAAoB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wBAAQ,oCAAoC,GAAG;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAAU;AAC9B,IAAI,uBAAO,IAAI,2CAAqB;AACpC,IAAI,uBAAO,IAAI,oCAAkB;AACjC;AAC6B;;;ACvK7B;AACA;AACA;AACA;AAC2D;AACO;AAC3D,+BAA+B,4BAAU;AAChD;AACA;AACA;AACA,gDAAgD,4BAAO;AACvD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3GA;AACA;AACA;AACA;AACA,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,uBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACsG;AACtB;AAC2E;AACxD;AACnG;AACA,0BAA0B;AAC1B;AACA;AACA,gCAAgC,sCAAe;AAC/C,iCAAiC,0CAAmB;AACpD,gDAAgD,8BAAO;AACvD,mCAAmC,8BAAO;AAC1C,gCAAgC,8BAAO;AACvC;AACA,wBAAwB,8BAAO;AAC/B,2CAA2C,8BAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,8BAAO;AAC7C,gCAAgC,8BAAO;AACvC,uCAAuC,8BAAO;AAC9C,qCAAqC,8BAAO;AAC5C,oCAAoC,8BAAO;AAC3C,oCAAoC,8BAAO;AAC3C,yBAAyB,8BAAO;AAChC,kCAAkC,8BAAO;AACzC,4BAA4B,8BAAO;AACnC,gCAAgC,8BAAO;AACvC,4BAA4B,8BAAO;AACnC,oCAAoC,8BAAO;AAC3C,6BAA6B,8BAAO;AACpC,oCAAoC,8BAAO;AAC3C,4CAA4C,8BAAO;AACnD,oCAAoC,8BAAO;AAC3C,mDAAmD,8BAAO;AAC1D,oDAAoD,8BAAO;AAC3D,oDAAoD,8BAAO;AAC3D,8BAA8B,kDAAkD,0CAAwB;AACxG,wBAAwB,sCAAe;AACvC;AACA;AACA;AACA,6BAA6B;AAC7B,mDAAmD,gCAAgC;AACnF;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAAU;AAC9B,IAAI,uBAAO,IAAI,0CAAqB;AACpC;AAC6B;AAC7B;AACA;AACA;AACA,iCAAiC,iCAAqB;AACtD,+BAA+B,sCAAY;AAC3C,0BAA0B,iCAAqB;AAC/C,gCAAgC,iCAAqB;AACrD,4BAA4B,oCAAU;AACtC,qBAAqB,oCAAU;AAC/B,8BAA8B,iCAAqB;AACnD,0BAA0B,iCAAqB;AAC/C,0BAA0B,iCAAqB;AAC/C,sBAAsB,iCAAqB;AAC3C,6BAA6B,iCAAqB;AAClD,sBAAsB,mCAAuB;AAC7C,uBAAuB,mCAAuB,0EAA0E,+CAA+C;AACvK,8BAA8B,iCAAqB;AACnD;AACA,uBAAuB,iCAAqB;AAC5C,kCAAkC,iCAAqB;AACvD,SAAS;AACT;AACA,qBAAqB,iCAAqB;AAC1C,8BAA8B,oCAAU;AACxC,8BAA8B,oCAAU;AACxC,6BAA6B,oCAAU;AACvC,SAAS;AACT,4BAA4B,iCAAqB;AACjD,sCAAsC,iCAAqB;AAC3D,0CAA0C,oCAAU;AACpD,yCAAyC,iCAAqB;AAC9D,0BAA0B,iCAAqB;AAC/C;AACA;;;AC/GA,IAAI,yBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,sBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AAC+D;AACE;AACK;AACb;AACW;AACyH;AACnG;AACrE;AACgD;AACI;AACH;AACD;AAC6C;AACpC;AACF;AACkB;AAC/B;AACyB;AACR;AACN;AACA;AACyD;AAChC;AACvC;AACN;AACO;AACY;AACyE;AACxD;AACS;AACA;AACT;AACpB;AACT;AACF;AACI;AAC/D,sDAAsD,gBAAgB;AACtE,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAC,0CAA0C,SAAS,wCAAwC;AACpH,YAAY,SAAC,mCAAmC,SAAS,yCAAyC;AAClG,YAAY,SAAC,mCAAmC,SAAS,yCAAyC;AAClG,YAAY,SAAC,oDAAoD,SAAS,wCAAwC;AAClH;AACA,0BAA0B,sCAAe;AACzC;AACA,gCAAgC,0BAAK;AACrC;AACA,qGAAqG,0CAAiB,EAAE,qCAAkB;AAC1I,+BAA+B,sCAAe;AAC9C,oDAAoD,sCAAe;AACnE,4CAA4C,8BAAO;AACnD;AACA;AACA,qCAAqC,sCAAe;AACpD,2BAA2B,8BAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0CAA0C;AACtF;AACA;AACA;AACA,4CAA4C,0CAA0C;AACtF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,+BAA+B,0BAAK;AACpC;AACA;AACA;AACA,uBAAuB,iCAAY;AACnC,oDAAoD,2CAA6B;AACjF;AACA,kEAAkE,iBAAiB;AACnF,uBAAuB,8BAAO;AAC9B;AACA,SAAS;AACT,0CAA0C,0CAAiB;AAC3D,uBAAuB,cAAc,CAAC,0CAAiB;AACvD,uBAAuB,cAAc,CAAC,0CAAiB,0DAA0D,QAAQ,yHAAyH;AAClP,uBAAuB,cAAc,CAAC,0CAAiB;AACvD,uBAAuB,cAAc,CAAC,0CAAiB;AACvD,uBAAuB,cAAc,CAAC,0CAAiB,kDAAkD,gBAAgB,sNAAsN;AAC/U,iFAAiF,iBAAiB;AAClG,uBAAuB,cAAc,CAAC,0CAAiB;AACvD,uBAAuB,cAAc,CAAC,0CAAiB;AACvD,uBAAuB,cAAc,CAAC,0CAAiB,6DAA6D,YAAY,8JAA8J;AAC9R,uBAAuB,cAAc,CAAC,0CAAiB,6DAA6D,YAAY,8JAA8J;AAC9R,kCAAkC,qCAAiB;AACnD;AACA,wDAAwD,yCAAuB,CAAC,oBAAoB;AACpG;AACA;AACA,qEAAqE,YAAY,mJAAmJ;AACpO;AACA,+BAA+B,UAAU;AACzC,qBAAqB,qCAAiB;AACtC;AACA;AACA,+CAA+C,cAAc;AAC7D,SAAS;AACT,uCAAuC,qCAAiB,sGAAsG,yCAAuB,CAAC,8DAA2B;AACjN,QAAQ,qCAAiB,qGAAqG,yCAAuB,CAAC,qBAAqB;AAC3K;AACA;AACA;AACA,gCAAgC,qCAAiB,+FAA+F,yCAAuB,CAAC,mBAAmB,WAAW,yBAAS;AAC/M,kCAAkC,8BAAO;AACzC;AACA;AACA;AACA,SAAS;AACT,kCAAkC,8BAAO;AACzC;AACA;AACA;AACA,SAAS;AACT,uBAAuB,gCAAc;AACrC;AACA,SAAS;AACT;AACA,uBAAuB,gCAAc;AACrC;AACA;AACA,8BAA8B,iDAAuB;AACrD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,qCAAiB,2DAA2D,yCAAuB,CAAC,oBAAoB,qTAAqT,QAAQ,mJAAmJ,OAAO,oCAAoC;AACxpB;AACA,uBAAuB,4BAAU,2BAA2B,YAAY;AACxE,uBAAuB,4BAAU,2BAA2B,YAAY;AACxE;AACA;AACA,uBAAuB,qCAAiB;AACxC;AACA,4DAA4D,yCAAuB,CAAC,gBAAgB;AACpG;AACA,SAAS;AACT,uBAAuB,oDAA6B;AACpD,QAAQ,qCAAiB,+DAA+D,yCAAuB,CAAC,uBAAuB;AACvI;AACA;AACA,SAAS;AACT,uBAAuB,0BAAK;AAC5B,uBAAuB,0BAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,uCAAgB;AACvC;AACA;AACA;AACA,0BAA0B,iCAAY;AACtC;AACA,SAAS;AACT,uBAAuB,iCAAY;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,uCAAgB;AACvC,2BAA2B,yCAAuB,CAAC,oBAAoB;AACvE,SAAS;AACT;AACA;AACA,2DAA2D,wCAAgB;AAC3E;AACA;AACA;AACA,8BAA8B,iDAAwB;AACtD;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA;AACA;AACA,0BAA0B;AAC1B,sBAAsB,OAAO,8BAAU;AACvC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mBAAmB;AAC5E;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B,IAAI,0DAA0D;AAC9I;AACA,YAAY,qCAAc;AAC1B;AACA;AACA,gBAAgB,sCAAmB;AACnC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+CAA+C,wBAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAAQ;AACjC;AACA;AACA;AACA,wDAAwD,sDAAmB,oBAAoB,+BAA+B;AAC9H;AACA;AACA,wDAAwD,sDAAmB,qBAAqB,+BAA+B;AAC/H;AACA;AACA,wDAAwD,sDAAmB,qBAAqB,+BAA+B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAiB;AACnD,kCAAkC,mCAAiB;AACnD,uCAAuC,kBAAK;AAC5C;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAW;AACnB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sDAAmB,oBAAoB,4CAA4C;AAC/I;AACA;AACA,4DAA4D,sDAAmB,qBAAqB,4CAA4C;AAChJ;AACA;AACA,4DAA4D,sDAAmB,qBAAqB,4CAA4C;AAChJ;AACA;AACA;AACA;AACA,mBAAmB,yBAAU;AAC7B,IAAI,sBAAO,IAAI,qCAAkB;AACjC,IAAI,sBAAO,IAAI,2CAAqB;AACpC,IAAI,sBAAO,IAAI,2CAAkB;AACjC,IAAI,sBAAO,IAAI,8DAA2B;AAC1C,IAAI,sBAAO,IAAI,uCAAsB;AACrC;AAC4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;;;;;;;;ACzgBa;;AAEb,WAAW,mBAAmB;AAC9B;;;;;;;;;ACHa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,kBAAkB,mBAAO,CAAC,KAA4B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA,6DAA6D,KAAK;AAClE;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACO;AACP;AACA;AACA,0EAA0E,WAAW;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACtHa;AACb;;;;;;;;ACDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;AC9E4E;AACpB;AAClD,wBAAwB,qFAAkB;AACjD,cAAc,UAAU,iBAAiB;AACzC;AACA,aAAa,yEAAS;AACtB,qBAAqB,yEAAS,GAAG,wDAAE;AACnC;AACA,iBAAiB,iFAAiB;AAClC,yBAAyB,yEAAS;AAClC;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,KAAK;AACL;AACA,aAAa,yEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,uBAAuB,qFAAkB;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;AC3DA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,kBAAkB,mBAAO,CAAC,KAAmC;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;ACXa;;AAEb,WAAW,iBAAiB;AAC5B;;;;;;;;;ACHa;;AAEb,WAAW,aAAa;AACxB;;;;;;;;ACHA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACnJD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACrCA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACzED;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;ACnGD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACoE;AACrB;AACZ;AAC4F;AAC/H;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB;AACxC;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gFAAkB,oBAAoB,iBAAiB,yCAAyC,uBAAuB;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB,GAAG,4BAA4B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAK;AACxB;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAK;AACxB;AACA;AACA;AACA,oDAAoD,0CAA0C;AAC9F;AACA;AACA;AACA;AACA;AACA,oDAAoD,0CAA0C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iEAAW;AAC9B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oGAA8B;AAChE,kCAAkC;AAClC,yCAAyC,2FAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wFAAkB;AAC3D;AACA;AACA;AACA,yCAAyC,wFAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oGAA8B;AAChE,kCAAkC;AAClC,yCAAyC,2FAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC/SA,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,mBAAmB,mBAAO,CAAC,KAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AAC6D;AACe;AACE;AACO;AACvB;AACT;AACC;AACY;AACkB;AACI;AACjF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,uCAAuC;AACpI;AACA;AACA,gBAAgB,kBAAK;AACrB;AACA;AACA;AACA;AACA,qCAAqC,kBAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,wCAAyB;AACpC,KAAK;AACL;AACA,qCAAqC,2BAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,gBAAgB,qBAAG;AACjC;AACA;AACA;AACA,YAAY,eAAe,eAAe,gDAAwB;AAClE,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA,qDAAqD,sCAAiB;AACtE;AACA;AACA;AACA;AACA,oBAAoB,+CAA+C;AACnE,oCAAoC,sCAAiB;AACrD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;ACpJD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC6F;AACjB;AACN;AACE;AACN;AACL;AACG;AACE;AACD;AACZ;AAChC;AACiG;AAC1C;AAC0B;AACd;AACH;AAC5C;AACC;AACsD;AAClB;AAC9E,+DAA+D,4BAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,sBAAsB;AACvH,+CAA+C,qCAAgB;AAC/D;AACA;AACA;AACA;AACA,oDAAoD,8CAAgB;AACpE;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gDAAuB,UAAU,QAAQ;AACvE;AACA,2BAA2B,0BAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,wCAAwC,uBAAO,2BAA2B,uBAAO,MAAM;AACvF,sCAAsC,qBAAG;AACzC,6CAA6C,uBAAO;AACpD,uCAAuC,gCAAwB;AAC/D;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA,kCAAkC,0BAAkB;AACpD;AACA;AACA;AACA;AACA,kDAAkD,sGAAsG;AACxJ,SAAS;AACT;AACA;AACA;AACA,8CAA8C,oBAAY,0EAA0E,EAAE;AACtI;AACA;AACA,8CAA8C,oBAAY;AAC1D;AACA;AACA,gBAAgB,oCAAiB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAc;AAC7B,eAAe,yCAAoB;AACnC,eAAe,gDAAwB;AACvC,eAAe,8DAA+B;AAC9C;AACwB;AACxB;AACA,aAAa,wCAAsB;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,wCAAsB;AAClC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oBAAY;AAC1B,cAAc,oBAAY;AAC1B;AACA,UAAU,4BAAoB;AAC9B,cAAc,oBAAY;AAC1B,cAAc,oBAAY;AAC1B,UAAU,4BAAoB;AAC9B,cAAc,oBAAY;AAC1B,cAAc,oBAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAY,0CAA0C,EAAE;AACtF;AACA;AACA,iCAAiC,kCAAc;AAC/C;AACA,iCAAiC,GAAG;AACpC;AACA;AACA;AACA,mBAAmB,kCAAc,iBAAiB,OAAO,GAAG,GAAG;AAC/D;AACA;AACA,6BAA6B,qCAAY;AACzC;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;AAC1B,iDAAoB;;;;;;;;;ACtXP;;AAEb,mBAAmB,mBAAO,CAAC,KAAe;AAC1C,gBAAgB,mBAAO,CAAC,KAAY;AACpC,cAAc,mBAAO,CAAC,KAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,KAAgB;AACzC;;AAEA,WAAW,yCAAyC;AACpD;AACA,WAAW,sDAAsD;AACjE;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,sCAAsC;AACjD;;AAEA,WAAW,aAAa;AACxB,sCAAsC,6BAA6B;AACnE,eAAe,sCAAsC;AACrD,eAAe,+BAA+B;AAC9C,eAAe,+BAA+B;;AAE9C,YAAY,uBAAuB;;AAEnC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;ACnEa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA,mCAAmC,KAAK,IAAI,EAAE;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA,4BAA4B,QAAQ,OAAO,EAAE,mCAAmC,YAAY,0CAA0C,cAAc;AACpJ;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAe;AACf;;;;;;;ACnDA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,SAAS;AACtB;AACA;AACA,2BAA2B,gBAAgB,QAAQ,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjCa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AAC0D;AACoB;AACO;AAC9E;AACP;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uGAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4EAAY;AAC1C,8BAA8B,4EAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4EAAY;AAC1C;AACA;AACA,sBAAsB,qGAAwB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AAC0F;AACnF,kCAAkC,0GAAe;;;;;;;;ACLxD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,UAAU,mBAAO,CAAC,KAAQ;AAC1B,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACjCA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AAC2D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAAO;AAC1C;AACA,qCAAqC,4BAAO;AAC5C;AACA,4CAA4C,4BAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACtEA;AACA;AACA;AACA;AACoE;AACb;AACyC;AACjC;AACD;AACO;AACV;AACO;AACD;AACtC;AACmB;AAC6C;AACV;AACjF,UAAU,KAAK;AACR,gCAAgC,4BAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAU;AAClB,gCAAgC,kBAAU;AAC1C,QAAQ,kBAAU;AAClB,wCAAwC,kBAAU;AAClD;AACA,wBAAwB,wBAAQ;AAChC;AACA,kCAAkC,kBAAU;AAC5C,wDAAwD,0BAAK;AAC7D,qEAAqE,4CAAqB,KAAK,0BAAK;AACpG;AACA,kDAAkD,4CAAqB,KAAK,0BAAK;AACjF,SAAS;AACT,uBAAuB,iCAAyB,wBAAwB,qBAAa;AACrF,uBAAuB,iCAAyB,0BAA0B,qBAAa;AACvF;AACA;AACA,SAAS;AACT;AACA;AACA,sDAAsD,0BAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAAK;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAAU;AACpC;AACA;AACA,6CAA6C,4BAAO;AACpD;AACA;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA,QAAQ,kBAAU;AAClB,4BAA4B,kBAAU,yBAAyB,0BAAS,eAAe,qCAAY,uBAAuB,uBAAO,QAAQ,wBAAQ;AACjJ;AACA,uBAAuB,iCAAyB,eAAe,qBAAa;AAC5E;AACA,SAAS;AACT;AACA;AACO,8BAA8B,4BAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA,+BAA+B,0BAAK,KAAK,yBAAI;AAC7C;AACA;AACA;AACA,+BAA+B,0BAAK,KAAK,yBAAI;AAC7C;AACA;AACA;AACA;AACA,+BAA+B,0BAAK,KAAK,yBAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4BAAU;AACtC;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA,mCAAmC,4BAAO;AAC1C;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA,QAAQ,kBAAU;AAClB;AACA,uBAAuB,iCAAyB,gBAAgB,qBAAa;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wDAAwB;AAClE,uBAAuB,kCAA0B;AACjD;AACA;AACA;AACA;AACA,kCAAkC,iCAAyB,yBAAyB,qBAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAAK,KAAK,yBAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD,sCAAsC,8BAA8B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAAU;AAC9B;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA,mCAAmC,4BAAO;AAC1C;AACA;AACA,2BAA2B,kBAAU;AACrC,2BAA2B,kBAAU;AACrC;AACA;AACA,2BAA2B,kBAAU;AACrC,2BAA2B,kBAAU;AACrC;AACA,sBAAsB,kBAAU;AAChC;AACA,uBAAuB,iCAAyB,eAAe,qBAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wDAAwB;AACnE,uBAAuB,kCAA0B;AACjD;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAyB,yBAAyB,qBAAa;AACjG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,2BAA2B,0BAAK,KAAK,yBAAI;AACzC,gCAAgC,0BAAK,KAAK,yBAAI;AAC9C,sEAAsE,QAAQ,MAAM,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,2BAA2B,4BAAU;AAC5C;AACA;AACA,6CAA6C,4BAAO;AACpD;AACA,uBAAuB,kBAAU;AACjC;AACA;AACA,uBAAuB,iCAAyB,eAAe,qBAAa;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,gCAAgC,oBAAM;AAC7C;AACA;AACA;AACA;AACA,uBAAuB,oCAAU,aAAa,qBAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AChWA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuE;AACK;AACb;AACoB;AAC7B;AACQ;AACX;AACM;AACE;AACuB;AACtB;AACrD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAmB;AAClC;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAa;AAC5B;AACiC;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAAa;AAC3C;AACA;AACA;AACA,6BAA6B,kCAAS,iDAAiD,sCAAiB;AACxG;AACA;AACA;AACA;AACA,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAa;AAC5B;AAC4C;AAC5C;AACA;AACA,YAAY,0BAA0B;AACtC,qBAAqB,yBAAI;AACzB,sBAAsB,0BAAK;AAC3B,qCAAqC,8CAAqB,mCAAmC,sCAAiB;AAC9G,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,2CAA2C,uBAAK;AAChD;AACA;AACA,2DAA2D,uBAAK;AAChE;AACA;AACA;AACA;AACA,eAAe,4BAAU;AACzB;AACA;AACA;AACA,yCAAyC,qBAAS;AAClD;AACA,4BAA4B,iCAAe;AAC3C;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA,oBAAoB,uBAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA,yBAAyB,uBAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8CAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uBAAuB,sCAAiB;AAC7C;AACA;;;;;;;;;ACtOa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sCAAsC;AACtF;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;AACA;;;AC5DA;AACA;AACA;AACA;AAC2D;AAC6B;AAClD;AACtC;AACA;AACA;AACA;AACO;AACP,4CAA4C,qCAAe;AAC3D;AACA,mBAAmB,yCAAmB;AACtC;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,+BAA+B,OAAO;AACtC,4BAA4B,OAAO;AACnC;AACA,yBAAyB,uBAAuB;AAChD,6BAA6B,uBAAuB;AACpD;AACA,2BAA2B,yCAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAY,KAAK,8BAAW,iCAAiC,8BAAW;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAmB;AACtC;AACA;;;ACjGA;AACA;AACA;AACA;AAC2D;AAC6B;AACxF;AACA;AACA;AACO;AACP,kCAAkC,qCAAe;AACjD;AACA;AACA;AACA,mBAAmB,yCAAmB;AACtC;AACA,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAmB;AAC1C;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA,6EAA6E;AAC7E,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kCAAY,KAAK,8BAAW,+BAA+B,8BAAW;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yCAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9JA;AACA;AACA;AACA;AACuH;AAC/D;AACN;AACN;AACP;AAC9B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8BAAW;AACvC;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA,gCAAgC,8BAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAQ;AAC/B;AACA,kBAAkB,4CAAqB;AACvC,mBAAmB,wBAAQ;AAC3B;AACA;AACA,eAAe,uBAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAkB;AAC9C,0BAA0B,0CAAmB;AAC7C,mBAAmB,8BAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzLA;AACA;AACA;AACA;AAC6D;AACP;AACkD;AACZ;AACpC;AACU;AACV;AACa;AACb;AACgB;AACjE;AACP,UAAU,yBAAyB;AACnC;AACA;AACA;AACA;AACA;AACA,IAAI,2BAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAgB;AAC3C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oCAAoC,kBAAM;AAC1C;AACA,sDAAsD,gDAAgD;AACtG,2BAA2B,2BAA2B,GAAG,+BAA+B,GAAG,+BAA+B;AAC1H,2CAA2C,WAAW,0BAAS,YAAY;AAC3E;AACA;AACA;AACA,iBAAiB,4BAAS,kCAAkC,+BAAgB;AAC5E;AACA;AACA,sDAAsD,gDAAgD;AACtG,2BAA2B,2BAA2B,GAAG,+BAA+B,GAAG,+BAA+B;AAC1H,6CAA6C,0BAAS;AACtD;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA,4DAA4D,0BAAS;AACrE,4DAA4D,0BAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAAY,CAAC,4BAAS,kCAAkC,+BAAgB;AAClG,4BAA4B,6BAAY;AACxC,4BAA4B,6BAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0CAAgB;AAC3C;AACA;AACA;AACA;AACA,eAAe,4BAAS,kCAAkC,+BAAgB;AAC1E,kCAAkC,kCAAe;AACjD,oBAAoB,kBAAkB;AACtC;AACA;AACA,uCAAuC,yCAAkB;AACzD;AACA;AACA,sCAAsC,yCAAkB;AACxD;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAAS;AAC9C,qCAAqC,0BAAS;AAC9C;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAAS;AAC9C,qCAAqC,0BAAS;AAC9C;AACA;AACA,2BAA2B,0CAAgB,KAAK,0BAAS,0GAA0G,0BAAS;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD,qDAAqD,sBAAsB,cAAc,8BAAW,oBAAoB,sBAAsB,cAAc,8BAAW;AACvK;AACA,qBAAqB,kCAAY;AACjC;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAAS,kCAAkC,+BAAgB;AAC1E;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kCAAe;AACjD;AACA;AACA,mBAAmB,0CAAgB,KAAK,0BAAS,YAAY,0BAAS;AACtE,4CAA4C,yCAAkB;AAC9D;AACA;AACA,KAAK;AACL;AACA;;;;;ACrPA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACjCA;AACA;AACA;AACA;AAC4E;AACK;AAC7B;AACI;AACZ;AAC+C;AACL;AACd;AACb;AACkK;AAC5K;AACoB;AACN;AACa;AACrE;AACP;AACA,6CAA6C,yBAAyB;AACtE,yCAAyC,kBAAkB;AAC3D;AACA;AACA,yCAAyC,yBAAM;AAC/C,uBAAuB,kCAAS;AAChC;AACA;AACA,uBAAuB,kCAAS;AAChC,oBAAoB,kDAAwB,KAAK,0BAAS,mCAAmC,0BAAS;AACtG,wBAAwB,sCAAY,KAAK,uBAAK,sFAAsF,uBAAK;AACzI;AACA;AACA;AACA,6DAA6D,qCAAe,gBAAgB,iCAAW;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,yBAAyB,gEAAqB;AAC9C,yBAAyB,mFAAwC;AACjE;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA,6FAA6F,kCAAY,KAAK,8BAAW,kCAAkC,8BAAW;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2BAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,kCAAS;AAC5B;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA,kFAAkF,kCAAY;AAC9F;AACA,uBAAuB,kCAAS;AAChC,SAAS;AACT;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA,gBAAgB,gEAAqB;AACrC,gBAAgB,+EAAoC;AACpD,gBAAgB,6DAAkB;AAClC,gBAAgB,sFAA2C;AAC3D,4CAA4C,sCAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,iCAAe;AACnC;AACA;AACA;AACA,yBAAyB,kDAAwB;AACjD;AACA,IAAI,2BAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0BAAS;AAC3C,kCAAkC,0BAAS;AAC3C,eAAe,kDAAwB;AACvC;;;;;;;;;AC9Na;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,UAAU,mBAAO,CAAC,KAA2B;AAC7C,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;AACA;AACA,IAAI,8DAA8D;AAClE;AACA,CAAC;;;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;AChED;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;ACvBD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,cAAc,mBAAO,CAAC,KAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0CAA0C,IAAI;AAC9C;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/DD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;AC/ND;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AAChB;AACP;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzCA;AACA,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;ACHA,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;ACnB4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B,sBAAsB,YAAY;AACvF;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAA0D;AACnF;AACA;AACA,WAAW,aAAa;AACxB,WAAW,mBAAmB;AAC9B,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB,kDAAkD,wEAAa;AACvG;AACA;AACA,SAAS,iFAAiB;AAC1B,gFAAgF,iCAAiC;AACjH;AACA;AACA,SAAS,iFAAiB,oBAAoB,iFAAiB;AAC/D,wBAAwB,iFAAiB;AACzC;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,qBAAqB,iFAAiB;AACtC;AACA;AACA,aAAa,iFAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa,aAAa;AAC1B;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA,SAAS,iFAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA,gDAAgD;AAChD,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA,aAAa,iFAAiB,qDAAqD,iFAAiB;AACpG;AACA,iBAAiB,iFAAiB;AAClC,iBAAiB,iFAAiB;AAClC;AACA;AACA,sBAAsB,iFAAiB;AACvC,iBAAiB,iFAAiB;AAClC;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAO;AACvB,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,0CAA0C;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA,YAAY,yEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB,kBAAkB;AAChE;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,qBAAqB;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACt9BA;AACA;AACA;AACA;AACme;AACpa;AACK;AACd;AACmB;AAC8C;AAChE;AACa;AAC1B;AACrB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AAC1C,qCAAqC,qCAAY;AACxD;AACA;AACA,gBAAgB,oDAA6B;AAC7C,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAY;AACpD,wCAAwC,oBAAY;AACpD,wCAAwC,oBAAY;AACpD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC,yBAAyB,6BAAQ;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,+CAA+C,qCAAY;AAClE;AACA;AACA,gBAAgB,8DAAuC;AACvD,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAK;AAC/B,qBAAqB,0EAA0C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO,kCAAkC,qCAAY;AACrD;AACA;AACA,gBAAgB,gDAAyB;AACzC,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA,gBAAgB,kDAA2B;AAC3C,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA,gBAAgB,kDAA2B;AAC3C,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,qCAAY;AACxD;AACA;AACA,gBAAgB,mDAA4B;AAC5C,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,gCAAgC,qCAAY;AACnD;AACA;AACA,gBAAgB,8CAAuB;AACvC,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,qCAAY;AACrD;AACA;AACA,gBAAgB,gDAAyB;AACzC,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,qCAAY;AACpD;AACA;AACA,gBAAgB,gDAAyB;AACzC,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,qCAAY;AACvD;AACA;AACA,gBAAgB,mDAA4B;AAC5C,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,qBAAa;AAC1C,aAAa;AACb,SAAS;AACT;AACA;AACA,2BAA2B,sCAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACO,0CAA0C,qCAAY;AAC7D;AACA;AACA,gBAAgB,yDAAkC;AAClD,mBAAmB,4DAAqC;AACxD;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA,cAAc,sCAAe,wFAAwF,sCAAoB;AACzI;AACA;AACO,0CAA0C,qCAAY;AAC7D;AACA;AACA,gBAAgB,yDAAkC;AAClD,mBAAmB,4DAAqC;AACxD;AACA,0BAA0B,0CAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA,cAAc,sCAAe,wFAAwF,sCAAoB;AACzI;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtZA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACa;AAC0B;AACxB;AAC2B;AACjC;AACV;AACkC;AACE;AACC;AACH;AACG;AACD;AAChD;AACmD;AACf;AACF;AAC5E,UAAU,KAAK;AACR;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,4BAAc,WAAW;AAChD,mBAAmB,qCAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uBAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAAU;AAC7B;AACA,gCAAgC,iCAAe;AAC/C;AACA,4GAA4G,8BAAc;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAU;AACxC,gBAAgB,4CAA4C;AAC5D;AACA,+BAA+B,kBAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAU;AACpD;AACA;AACA,iCAAiC,kBAAU;AAC3C;AACA,gCAAgC,iCAAyB;AACzD,4DAA4D,qBAAqB;AACjF;AACA;AACA,iBAAiB;AACjB,oCAAoC,kBAAU;AAC9C;AACA,uCAAuC,kBAAU;AACjD;AACA;AACA;AACA;AACA,uCAAuC,kBAAU;AACjD;AACA;AACA,+DAA+D,OAAO,GAAG,KAAK,2BAA2B,KAAK;AAC9G;AACA;AACA,YAAY,kCAAe;AAC3B,yBAAyB,kDAAkD;AAC3E,6CAA6C,kBAAU;AACvD;AACA,0BAA0B,kBAAU;AACpC,iCAAiC,8BAAQ,WAAW,GAAG,gBAAgB,IAAI,YAAY;AACvF;AACA,gCAAgC,iCAAyB;AACzD;AACA;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D,yBAAyB,QAAQ,gCAAiB;AAClD;AACA,iBAAiB;AACjB,uCAAuC,kBAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8BAAc,0CAA0C,8BAAc,4CAA4C,8BAAc;AAC5K,qCAAqC,iCAAgB;AACrD;AACA;AACA,2BAA2B,oBAAY;AACvC,+BAA+B,iCAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAW,sDAAsD,2BAAW;AAChG;AACA,iEAAiE,oBAAY;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI,4BAAU,QAAQ,0CAAiB,gDAAgD,oBAAY;AACtO;AACA;AACA,oFAAoF;AACpF;AACA;AACA,4BAA4B,iCAAY;AACxC;AACA;AACA,qDAAqD;AACrD;AACA;AACA,6DAA6D,oBAAY;AACzE;AACA;AACA;AACA;AACA,gCAAgC,iCAAY;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,oBAAY;AACvC,+BAA+B,oCAAiB;AAChD;AACA;AACA,2CAA2C,gDAAoB;AAC/D,gDAAgD,kCAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,aAAa,EAAE,gCAAiB;AAChC;AACA;AACA;AACA,eAAe,gDAAuB;AACtC,mBAAmB,qCAAc,gFAAgF,uBAAK,+GAA+G,yBAAQ;AAC7O,SAAS;AACT;AACA;AACA;AACA,eAAe,kDAAyB;AACxC,eAAe,mCAAc;AAC7B,eAAe,gDAAwB;AACvC;AACkC;;;;;ACrOlC;AACA;AACA;AACA;AAC8C;AACsB;AACyC;AAC3C;AAClE;AACA;AACA,sCAAsC,wBAAQ;AAC9C,kDAAkD,wBAAQ,uIAAuI,EAAE,KAAK,yDAAkC;AAC1O,kDAAkD,wBAAQ,uIAAuI,EAAE,KAAK,yDAAkC;AAC1O,6CAA6C,wBAAQ;AACrD,CAAC,8DAA8D;AACxD;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,8CAA8C,4BAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,sCAAoB;AAC5G;AACA;AACA;AACA,wFAAwF,sCAAoB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAoB;AACrC;AACA,iBAAiB,sCAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACO;AACP;AACA;;;ACjGA;AACA;AACA;AACA;AACqU;AAC7N;AACjB;AACQ;AACpC;AACc;AACJ;AACd;AAClC;AACyF;AACE;AAChH,uDAA0B,CAAC,sCAAe,KAAK,sCAAe;AAC9D,iDAAoB,CAAC,sBAAsB;AAC3C,iDAAoB,CAAC,gCAAgC;AACrD,iDAAoB,CAAC,mBAAmB;AACxC,iDAAoB,CAAC,qBAAqB;AAC1C,iDAAoB,CAAC,qBAAqB;AAC1C,iDAAoB,CAAC,sBAAsB;AAC3C,iDAAoB,CAAC,iBAAiB;AACtC,iDAAoB,CAAC,mBAAmB;AACxC,iDAAoB,CAAC,kBAAkB;AACvC,iDAAoB,CAAC,qBAAqB;AAC1C,iDAAoB,CAAC,2BAA2B;AAChD,iDAAoB,CAAC,2BAA2B;AAChD,2CAAwB,UAAU,yDAAwB;AAC1D,2CAAwB,UAAU,sBAAsB;AACxD;AACA,mDAA0B;AAC1B,uCAAuC,wCAAiB;AACxD;AACA,mGAAmG,wBAAwB,gCAAgC;AAC3J,6DAA6D,wBAAwB,gCAAgC;AACrH,6DAA6D,2BAA2B,gCAAgC;AACxH;AACA,CAAC;AACD,oDAAsB,cAAc,mBAAmB;AACvD,oDAAsB,cAAc,sBAAsB;AAC1D,oDAAsB,cAAc,sBAAsB;;;;;;;;ACzC1D;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;ACnHD;AACA;AACA;AACA;AACuD;AACQ;AACxD,sCAAsC,iFAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qBAAqB;AACnG;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAQ;AACjC;AACP,mBAAmB,eAAe,GAAG,+BAA+B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClFa;;AAEb,YAAY,mBAAO,CAAC,IAAY;AAChC,eAAe,mBAAO,CAAC,KAAe;;AAEtC;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB,WAAW,gBAAgB;AAC3B,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AAC0F;AACnF,sCAAsC,0GAAe;;;;;;;;ACL5D;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,qBAAqB,mBAAO,CAAC,KAAmB;AAChD,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,KAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;AChBa;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,WAAW,mBAAO,CAAC,KAAuB;AAC1C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC/Ka;;AAEb,YAAY,mBAAO,CAAC,IAAY;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AAC0F;AACnF,gCAAgC,0GAAe;;;;;;;;;ACLzC;AACb,WAAW,mBAAO,CAAC,KAAoB;AACvC,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,YAAY,mBAAO,CAAC,KAAwB;AAC5C,mBAAmB,mBAAO,CAAC,KAA6B;AACxD,oBAAoB,mBAAO,CAAC,KAA6B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACtBA,kBAAkB,mBAAO,CAAC,KAAe;AACzC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACrBa;AACb,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,eAAe,mBAAO,CAAC,KAAwB;AAC/C,WAAW,mBAAO,CAAC,KAA4B;AAC/C,0BAA0B,mBAAO,CAAC,KAAqC;AACvE,wBAAwB,mBAAO,CAAC,IAAkC;;AAElE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAoB;AACjC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;ACvBuC;AACO;AACX;AACsB;AAClB;AACqB;AACtD;AACA;AACP,8BAA8B;AAC9B,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW,GAAG,cAAc,GAAG,WAAW,EAAE,oBAAoB,WAAW,EAAE,cAAc,QAAQ;AAC5H;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6EAAsB;AACxD;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,yCAAyC,SAAS;AAClD,sDAAsD,qDAAqD;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,qCAAqC,6EAAsB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mCAAmC;AACnC,oCAAoC;AACpC,cAAc,6CAA6C,IAAI,IAAI,0BAA0B,IAAI;AACjG,gBAAgB,+DAA+D,IAAI;AACnF,uCAAuC;AACvC,2CAA2C;AAC3C,kBAAkB,uDAAQ,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ,GAAG,4BAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA,qEAAqE;AACrE;AACA;AACA,sEAAsE,8CAA8C;AACpH;AACA;AACA,qEAAqE;AACrE;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAe,mBAAmB,2DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAAK,gCAAgC,mDAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B,+BAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAG,KAAK,qDAAK;AACvC,4FAA4F,mDAAG;AAC/F,0BAA0B,mDAAG;AAC7B,0BAA0B,qDAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO,iCAAiC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,oBAAoB,+DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA,2BAA2B,4DAAQ;AACnC;AACA;AACA,wDAAwD,2DAAO;AAC/D;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,gBAAgB,+DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvjBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,wBAAwB,uCAAuC;AAC/D,wBAAwB,uCAAuC;AAC/D;AACA;AACA,gBAAgB,qBAAqB,mCAAmC,qBAAqB,EAAE,WAAW;AAC1G,eAAe,qBAAqB,wBAAwB,cAAc,oBAAoB,WAAW,YAAY;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,0CAA0C,MAAM,EAAE,oBAAoB,EAAE,YAAY,WAAW,KAAK;AACpG,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;AC1BA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;ACjBa;AACb,WAAW,mBAAO,CAAC,KAA4B;AAC/C,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,eAAe,mBAAO,CAAC,KAAwB;;AAE/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACfa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,IAAM;AAC3B,cAAc,mBAAO,CAAC,KAAO;AAC7B;AACA;AACA;AACA;AACA;AACA,MAAM,qBAAqB;AAC3B;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACyB;AACW;AACuC;AACjB;AACN;AACH;AAC0B;AACJ;AACnB;AACO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,wBAAwB,sEAAU;AACzC;AACA;AACA;AACA;AACA;AACA,wDAAwD,qDAAU,YAAY,sCAAK;AACnF,8BAA8B,qDAAU,uBAAuB,sCAAK;AACpE,6BAA6B,qDAAU,sBAAsB,sCAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,iGAAuB;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4DAAiB;AACxD,2BAA2B,sCAAK;AAChC;AACA;AACA;AACA;AACA;AACA,6CAA6C,uDAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4FAAgB;AAC3D;AACA;AACA;AACA;AACA,+IAA+I,4FAAgB;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAQ;AAC5B;AACA,wCAAwC,2EAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4FAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,oDAAS,qBAAqB,sCAAK;AACxG,+DAA+D,qDAAU,0BAA0B,sCAAK;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qDAAU,sBAAsB,sCAAK;AAC/G;AACA,0DAA0D,4FAAgB,CAAC,qDAAU,+BAA+B,sCAAK,+BAA+B,mDAAmD;AAC3M;AACA;AACA,wEAAwE,qDAAU,+BAA+B,sCAAK;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAU,iBAAiB,sCAAK,mBAAmB,qEAAqE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA,mGAAmG,gEAAgE,GAAG,EAAE;AACxK,gBAAgB,qDAAU,iBAAiB,sCAAK,mBAAmB,2FAA2F;AAC9J;AACA,oBAAoB,qDAAU,iBAAiB,sCAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,0BAA0B,4DAAK;AAC/B,8BAA8B,4DAAK;AACnC,oBAAoB,YAAY,QAAQ,kDAAkD;AAC1F;AACA;AACA,KAAK;AACL;AACA,kCAAkC,sEAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,4FAAgB,CAAC,qDAAU,iBAAiB,sCAAK,mBAAmB,qEAAqE,MAAM,iCAAiC;AACtO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA,mGAAmG,gEAAgE,GAAG,EAAE;AACxK,6BAA6B,sCAAK,mBAAmB,2FAA2F;AAChJ,4DAA4D,4FAAgB,CAAC,qDAAU,0BAA0B,iCAAiC;AAClJ;AACA;AACA,oBAAoB,qDAAU,OAAO,sCAAK;AAC1C;AACA;AACA;AACA;AACA;;;;;;;;ACzRA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;ACtID;AACA;AACA;AACA;AACwD;AACjD;AACP;AACA;AACA,yCAAyC,oEAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AAC8E;AACvE,yCAAyC,iGAAe;;;;;;;;;ACLlD;;AAEb;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACba;AACb,iBAAiB,mBAAO,CAAC,KAA2B;;AAEpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AAC2D;AACA;AACU;AAC9B;AACsD;AACpB;AAClE;AACP;AACA;AACA;AACA,WAAW,uDAAY;AACvB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,sFAAqB;AAC1C;AACA,iCAAiC,uDAAY,iHAAiH,GAAG;AACjK,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,SAAS;AACT;AACA;AACA,qBAAqB,sFAAqB;AAC1C,iCAAiC,uDAAY,iHAAiH,GAAG;AACjK,SAAS;AACT;AACA;AACA,qBAAqB,sFAAqB;AAC1C,iCAAiC,uDAAY,yCAAyC,GAAG,KAAK,GAAG;AACjG,SAAS;AACT;AACA;AACA,qBAAqB,sFAAqB;AAC1C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,sFAAqB;AAC1C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA,iCAAiC,uDAAY;AAC7C,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,qBAAqB;AACrB;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA,qCAAqC,uDAAY;AACjD,qBAAqB;AACrB;AACA;AACA,qCAAqC,uDAAY;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC,SAAS;AACT;AACA;AACA;AACA,qBAAqB,6EAAwB;AAC7C;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY,wDAAwD,GAAG;AACvF;AACA,SAAS;AACT;AACA;AACA;AACA,qBAAqB,6EAAwB;AAC7C;AACA,gBAAgB,uDAAY;AAC5B,gBAAgB,uDAAY;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,iCAAiC,uDAAY;AAC7C,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,iCAAiC,uDAAY;AAC7C;AACA,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,iCAAiC,uDAAY;AAC7C;AACA,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,iCAAiC,uDAAY;AAC7C;AACA,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,iCAAiC,uDAAY;AAC7C,SAAS;AACT;AACA;AACA,qBAAqB,6EAAwB;AAC7C,yBAAyB,uDAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAqB;AAChD;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA,8CAA8C,IAAI;AAClD;AACO;AACP;AACA,kDAAkD,IAAI;AACtD;AACA,8BAA8B,oFAAQ,IAAI,yGAAU;AACpD;;;;;;;;AChSA,iBAAiB,mBAAO,CAAC,KAAe;AACxC,cAAc,mBAAO,CAAC,KAAW;AACjC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACpHY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,sBAAsB,mBAAO,CAAC,IAAe;AAC7C,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,mBAAmB,mBAAO,CAAC,IAAY;AACvC,uBAAuB,mBAAO,CAAC,KAAgB;AAC/C,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,4BAA4B,mBAAO,CAAC,KAAqB;AACzD,cAAc,mBAAO,CAAC,KAAO;AAC7B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,KAAM;AAC3B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;AC3CA,YAAY,mBAAO,CAAC,KAAU;AAC9B,uBAAuB,mBAAO,CAAC,KAAqB;AACpD,cAAc,mBAAO,CAAC,KAAY;AAClC,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,eAAe,mBAAO,CAAC,KAAY;AACnC,aAAa,mBAAO,CAAC,KAAU;AAC/B,cAAc,mBAAO,CAAC,KAAY;;AAElC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;ACzCa;;AAEb,YAAY,mBAAO,CAAC,IAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN,2BAA2B;AAC3B,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;;;;;;;;ACtFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA;AACA;AACA;AACA,CAAC,iBAAiB,kBAAkB,kBAAkB;AACtD;;;;;;;ACRA,eAAe,mBAAO,CAAC,KAAmB;AAC1C,cAAc,mBAAO,CAAC,KAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACvBA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;ACvBD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3HA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC4D;AACM;AACmC;AAC5C;AAC6D;AAC7D;AAC0B;AACrB;AACT;AACwI;AACzG;AACxB;AACN;AACmB;AACG;AAC+B;AACjE;AAC+E;AACjC;AACL;AACmB;AACrC;AACpC;AACtB,gDAAgD,+FAAa;AACpE;AACA,sGAAsG,2EAAU;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gFAAe;AACjE;AACA;AACA;AACA;AACA,4GAA4G,UAAU;AACtH;AACA;AACA;AACA;AACA,kDAAkD,gFAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAK;AACtC;AACA,SAAS;AACT,yCAAyC,oEAAO;AAChD;AACA;AACA;AACA;AACA,uCAAuC,oEAAO;AAC9C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iFAA0B;AACrE;AACA;AACA;AACA,2CAA2C,iFAA0B;AACrE;AACA;AACA;AACA;AACA;AACA,mCAAmC,kEAAK;AACxC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2FAAuB;AACvF;AACA,2BAA2B,0EAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D,oBAAoB,kEAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+DAA+D;AACtH;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iBAAiB,qFAAmB;AACpC,gBAAgB,mFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yFAAsB;AAC7D;AACA;AACA;AACA,CAAC;AACD;AACA,eAAe,oGAAkB;AACjC,eAAe,oGAAwB;AACvC,eAAe,wHAA6B;AAC5C,eAAe,kHAA+B;AAC9C;AACqC;AAC9B,kCAAkC,gFAAY;AACrD;AACA;AACA;AACA,mBAAmB,wDAAY;AAC/B;AACA,0BAA0B,gGAAc,KAAK,qFAAiB,WAAW,qFAAiB;AAC1F;AACA,wBAAwB,qFAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,gGAAkB;AAC7D;AACA,YAAY,6DAAG,eAAe,wEAAQ;AACtC,kDAAkD,eAAe;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,EAAE,+EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iFAAa;AAC1C,6FAAqB;AACrB;AACA;AACA;AACA;AACA,gBAAgB,qFAAiB;AACjC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,WAAW,sEAAK;AAChB;AACA;AACA;AACA;AACA,YAAY,2FAAyB;AACrC;AACA;AACA,KAAK,yBAAyB,6EAAsB;AACpD;AACO,sCAAsC,kGAAa,qCAAqC,MAAM,kEAAK,0CAA0C,kEAAK,2CAA2C,kEAAK,4CAA4C,kEAAK,QAAQ,EAAE,wDAAY;AAChR,uGAA+B;AAC/B,YAAY,6BAA6B,gBAAgB,oGAAwB;AACjF,+EAA+E,qFAAiB;AAChG,CAAC;AACD,kGAA0B;AAC1B,4FAAoB;;;;;;;;;;;;;;;;;;AC1WpB;AACA;AACA;AACA;AAC+E;AACrC;AACH;AACyC;AACzC;AAChC;AACP;AACA;AACA,8CAA8C,uBAAuB,KAAK,wBAAwB;AAClG;AACA;AACA;AACA,2BAA2B,8DAAQ;AACnC;AACA,+BAA+B,8EAAiB,+BAA+B,gFAAmB;AAClG,oDAAoD,0DAAK,sEAAsE,6DAAc;AAC7I;AACA;AACA,2BAA2B,8DAAQ;AACnC,6BAA6B,8EAAiB;AAC9C;AACA;AACA,4DAA4D,gFAAmB;AAC/E;AACA,oDAAoD,0DAAK,kFAAkF,6DAAc;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yFAAsB;AACxC;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxGA;AACA;AACA;AACA;AAC8E;AACvE,8BAA8B,iGAAe;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK,KAAK,oCAAoC;AAC/F;AACA;AACA;AACA;AACA,6CAA6C,KAAK,KAAK,oCAAoC,KAAK,oBAAoB;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,yCAAyC,KAAK,KAAK,oBAAoB,KAAK,qBAAqB;AACjG;AACA;AACA;AACA,qCAAqC,KAAK,KAAK,oBAAoB,KAAK,qBAAqB;AAC7F;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;ACzF+F;AACvB;AACxE;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,kBAAkB;AAC/B;AACO;AACP;AACA;AACA,yBAAyB,wEAAQ;AACjC,yCAAyC,SAAS,gBAAgB;AAClE;AACA,6DAA6D,aAAa;AAC1E;AACA;AACA;AACA;AACA,QAAQ,0EAAU,YAAY,kBAAkB;AAChD;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB,QAAQ,4EAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA,aAAa,MAAM;AACnB;AACO;AACP;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA,QAAQ,sEAAM;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2EAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,WAAW,mBAAmB;AAC9B,aAAa,SAAS;AACtB;AACO;AACP,mCAAmC;AACnC,8BAA8B;AAC9B,yCAAyC,uCAAuC;AAChF;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF,QAAQ,4EAAY,eAAe,qCAAqC;AACxE;AACA;AACA,4CAA4C,8BAA8B;AAC1E;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa;AACb;AACO;AACP;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;AC1KA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACoE;AACG;AACb;AACuB;AACd;AACgC;AACP;AACC;AACS;AAC/F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,0BAA0B,mEAAQ;AAClC;AACA;AACA;AACA,uBAAuB,sBAAsB,GAAG,eAAe;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB,GAAG,mBAAmB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,+EAAmB;AAC1F;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,qBAAqB,0FAAiB;AACtC;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,uBAAuB,sBAAsB,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,uBAAuB,sBAAsB,GAAG,KAAK;AACrD;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,+EAAmB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C,gCAAgC,6EAAgB;AAChD;AACA,6BAA6B,8FAAmB;AAChD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sCAAsC,GAAG,KAAK;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAsC,GAAG,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0FAAe;AAC9B,eAAe,4GAAqB;AACpC;AACgC;AACzB,8BAA8B,0GAAe;AACpD,wGAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3PjB;AACA;AACA;AACA;AACyF;AACjB;AACb;AAC0B;AACtB;AACiB;AACpB;AACE;AACuB;AACT;AACC;AAC5B;AAC8B;AACxE,mCAAmC,8FAAa;AAChD;AACP,+BAA+B,2EAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yEAAY;AAChE;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,gDAAgD,4EAAO;AACvD;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAyD,+EAAuB,UAAU;AACrH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4FAAqB;AAC7C;AACA;AACA,6BAA6B,4FAAqB;AAClD;AACA;AACA,6BAA6B,4FAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qFAAmB;AACvC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,CAAC;AACM,8BAA8B,2EAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kFAAiB;AACrE;AACA,oDAAoD,oEAAO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mEAAmE;AACxM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,QAAQ,qFAAqF;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wFAAuB;AACvD;AACA,sKAAsK,+EAAuB,oJAAoJ,sEAAc;AAC/V,oDAAoD,yEAAc,4DAA4D,qFAAQ;AACtI;AACA;AACA;AACA;AACA;AACA,4JAA4J,sEAAc,uBAAuB,wFAAgB;AACjN,sEAAsE,qBAAqB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iPAAiP;AACtR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wEAAQ;AACtE;AACA;AACA;AACA,sDAAsD,2KAA2K,sEAAc,WAAW;AAC1P;AACA,uDAAuD;AACvD;AACA,wEAAwE,yEAAS;AACjF,sEAAsE,yEAAc,mEAAmE,qFAAQ;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yCAAyC,sOAAsO;AAC/Q;AACA;AACA;AACA;AACA,2BAA2B,yEAAc,4DAA4D,qFAAQ;AAC7G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,mDAAmD,yDAAyD,+EAAuB,UAAU;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC3TA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;AC7BA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACrND,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AAC0F;AACd;AACI;AAC1B;AACmB;AAC/B;AAC1C,qCAAqC,gFAAY;AACjD;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA,0BAA0B,oFAAiB;AAC3C;AACA,wBAAwB,oFAAiB;AACzC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2FAAc;AAC9B,mCAAmC,2FAAc;AACjD,kCAAkC,2FAAc;AAChD,mDAAmD,iEAAK;AACxD,oDAAoD,iEAAK;AACzD,iCAAiC,iEAAK;AACtC,8BAA8B,wFAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAAoB;;;;;;;;;;AChEpB;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;ACvBD,gBAAgB,mBAAO,CAAC,KAAc;AACtC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,iBAAiB,mBAAO,CAAC,IAAe;AACxC,gBAAgB,mBAAO,CAAC,KAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;ACxBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,aAAa,8BAA8B;AAC3C;AACA,kBAAe;AACf;;;;;;;;ACzBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C,eAAe,mBAAO,CAAC,IAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA,mCAAmC,KAAK,IAAI,EAAE;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA,4BAA4B,QAAQ,OAAO,EAAE,mCAAmC,YAAY,0CAA0C,cAAc;AACpJ;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAe;AACf;;;;;;;ACnDA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;AC/HD,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;;AAEA;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACiF;AACuB;AACxB;AACnB;AAC6B;AACL;AACnB;AAClE;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,qDAAqD,kFAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gCAAgC,gFAAe;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,+BAA+B,kFAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gCAAgC,6FAAwB,wCAAwC,QAAQ,+FAA+F;AACvM;AACA;AACA,4BAA4B,gFAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+EAAM,IAAI,oDAAoD;AAC1E;AACA;AACA;AACA;AACA,eAAe,iFAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kGAAgB,CAAC,sGAA2B;AAC/E,sCAAsC,yEAAiB;AACvD;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;ACxJA,cAAc,mBAAO,CAAC,KAAkB;AACxC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;;;;;;;ACVA,cAAc,mBAAO,CAAC,KAAmB;AACzC,QAAQ,+BAA+B,EAAE,mBAAO,CAAC,KAAuB;AACxE,QAAQ,8BAA8B,EAAE,mBAAO,CAAC,KAAgB;;AAEhE,qBAAqB,mBAAO,CAAC,KAA2B;AACxD,QAAQ,qBAAqB,EAAE,mBAAO,CAAC,KAAyB;AAChE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN,0EAA0E,eAAe;AACzF;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,8CAA8C,QAAQ;AACtD;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW,GAAG,WAAW,GAAG,WAAW;AAC7D;AACA,0BAA0B,0BAA0B;AACpD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAgE;AACjG,0BAA0B,WAAW;AACrC;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;;AAEA;;;;;;;;AC7TA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;AC3ED;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACkG;AACtD;AACQ;AACD;AACK;AACL;AACsC;AAC/B;AACtC;AACpB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA,kCAAkC,+DAAO;AACzC;AACA,kCAAkC,+DAAO;AACzC;AACA;AACA;AACA,+BAA+B,2EAAe;AAC9C;AACA;AACA,wCAAwC,0DAAU,CAAC,4DAAS;AAC5D;AACA;AACA,wCAAwC,0DAAU,CAAC,4DAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA;AACA,wCAAwC,0DAAU,UAAU,yDAAS;AACrE;AACA;AACA,wCAAwC,0DAAU,UAAU,yDAAS;AACrE;AACA;AACA;AACA,+BAA+B,2EAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA,IAAI,mEAAO;AACX;AACA;AACA;AACA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,mBAAmB,sEAAU;AACpC,kBAAkB;AAClB,gCAAgC;AAChC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yDAAM,UAAU,0CAAC;AACvE,kEAAkE,2EAAY;AAC9E,sEAAsE,0DAAU;AAChF,sEAAsE,0DAAU;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yDAAM,UAAU,0CAAC;AACrE,gEAAgE,2EAAY;AAC5E,oEAAoE,0DAAU;AAC9E,oEAAoE,0DAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+DAAO;AACtD;AACA,wDAAwD,+DAAO;AAC/D,8CAA8C,+DAAO;AACrD,+CAA+C,+DAAO;AACtD,8CAA8C,+DAAO;AACrD,4CAA4C,+DAAO;AACnD,iEAAiE,2EAAe;AAChF,uEAAuE,2EAAe;AACtF,+DAA+D,2EAAe;AAC9E,qEAAqE,2EAAe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAM,YAAY,0CAAC;AACrC;AACA,qDAAqD,uBAAuB;AAC5E;AACA,YAAY,sEAAW;AACvB;AACA;AACA,+CAA+C,0DAAU;AACzD;AACA,sDAAsD,0DAAU;AAChE;AACA,gDAAgD,0DAAU;AAC1D;AACA,gDAAgD,0DAAU;AAC1D;AACA,uBAAuB,uDAAO;AAC9B,gDAAgD,0DAAU,UAAU,yDAAS;AAC7E;AACA,yCAAyC,0DAAU,UAAU,yDAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,UAAU;AACnD;AACA;AACA,0CAA0C,UAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,sBAAsB,mEAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAW;AACxC;AACA;AACA,qCAAqC,UAAU,QAAQ,aAAa;AACpE;AACA,gCAAgC,2EAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAW;AACvB,4BAA4B;AAC5B;AACA;AACA;AACA,YAAY,0DAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0CAA0C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gEAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AChca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA,gDAAgD,QAAQ;AACxD,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACZA,YAAY,mBAAO,CAAC,KAAU;AAC9B,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,KAAe;AACxC,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,cAAc,mBAAO,CAAC,KAAW;AACjC,eAAe,mBAAO,CAAC,IAAY;AACnC,mBAAmB,mBAAO,CAAC,KAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,uEAAiB,KAAK,oEAAkB;AAChD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAiB,KAAK,oEAAkB;AAChD;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,+CAA+C;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,+BAA+B,MAAM;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;ACxDA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AAC0F;AACnF,2BAA2B,0GAAe;;;;;;;;;;;;;;;ACLjD;AACA;AACkC;AACuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA,yDAAyD,UAAU,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU;AAC3G;AACA,8DAA8D,0CAA0C;AACxG;AACA,0BAA0B,gBAAgB,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,uBAAuB;AACtC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,iBAAiB;AAChC,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA,eAAe,QAAQ;AACvB;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA,6CAA6C,oDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA,uBAAuB,oDAAQ;AAC/B;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,6CAA6C;AAC5D,eAAe,eAAe;AAC9B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oDAAQ;AACzD;AACA;AACA,gDAAgD,oDAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;;;;ACjuBrB;AACA;AACA;AACA;AACwC;AACiC;AACjB;AACN;AAClD;AACA;AACA;AACA;AACA,eAAe,uEAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAiB;AAC9B;AACA;AACA;AACA,oBAAoB,kEAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAoB;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAgB;AAC7B,YAAY,sEAAoB;AAChC;AACA;AACA;AACA,kBAAkB,sEAAoB;AACtC;AACA;AACA;AACA;AACA,WAAW,6EAAkB;AAC7B;AACA,oBAAoB,sEAAoB;AACxC;AACA;AACA,oBAAoB,sEAAoB;AACjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,aAAa,UAAU,SAAS,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAY;AAC/B;AACA;;;;;;;;AC1HA,gBAAgB,mBAAO,CAAC,KAAc;AACtC,gBAAgB,mBAAO,CAAC,KAAc;AACtC,eAAe,mBAAO,CAAC,KAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;;;;;;;;AC9BA,sBAAsB,mBAAO,CAAC,KAAoB;AAClD,SAAS,mBAAO,CAAC,KAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA,EAAE,yCAAW;AACb,EAAE,yCAAW;AACb,qBAAqB,yCAAW;AAChC;AACA;;AAEA;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AAC8D;AACO;AACF;AACnE;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2EAAoB;AAChC;AACA;AACA;AACA;AACA,QAAQ,2EAAoB;AAC5B;AACA;AACA;AACA;AACO,+BAA+B,2EAAU;AAChD;AACA;AACA;AACA,gEAAgE,oEAAO;AACvE;AACA,6CAA6C,oEAAO;AACpD;AACA,4CAA4C,oEAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpJA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,UAAU,mBAAO,CAAC,KAAO;AACzB,YAAY,mBAAO,CAAC,KAAS;AAC7B,YAAY,mBAAO,CAAC,KAAU;AAC9B,yBAAyB,mBAAO,CAAC,KAAuB;AACxD,8BAA8B,mBAAO,CAAC,KAA4B;AAClE,YAAY,mBAAO,CAAC,KAAU;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACkD;AACwB;AACzB;AACS;AACtC;AACmB;AACvC;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB,4BAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAAuB;AAC/C;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,yEAAyE;AACzE;AACA;AACA,wBAAwB,uBAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAAK,mCAAmC,8BAA8B,QAAQ,4FAA4F;AACzL;AACA;AACA,eAAe,0BAAK,6BAA6B,8BAA8B,QAAQ,4FAA4F;AACnL;AACA;AACA,eAAe,0BAAK,wCAAwC,iCAAiC,QAAQ,wEAAwE;AAC7K;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wBAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACzHA;AACA;AACA;AACA;AACsE;AACC;AACI;AACV;AACX;AACI;AACiB;AACtD;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA,6BAA6B,sBAAM,YAAY,SAAC;AAChD;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA,kCAAkC,sBAAM,eAAe,SAAC,uBAAuB,qBAAqB;AACpG,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,QAAQ,yBAAS;AACjB;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC,mDAAmD,KAAK;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,0BAA0B,sCAAsC;AAChE;AACA;AACA,2BAA2B,4BAAU;AACrC,wBAAwB,QAAQ;AAChC,wBAAwB,QAAQ;AAChC,wBAAwB,QAAQ,uFAAuF,0BAAK;AAC5H;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA,uBAAuB,SAAC,uBAAuB,yBAAyB;AACxE;AACA,2BAA2B,mDAAyB,uBAAuB,wDAAuB;AAClG;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B;AAC7B,iCAAiC;AACjC,wBAAwB;AACxB,4BAA4B;AAC5B,sBAAsB;AACtB,uBAAuB;AACvB,sBAAsB;AACtB,+BAA+B;AAC/B,yBAAyB;AACzB,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA,iCAAiC,sBAAsB;AACvD,+BAA+B,iCAAe;AAC9C;AACA;AACA,uBAAuB,sBAAM,YAAY,SAAC,kBAAkB,WAAW;AACvE;AACA;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA,kDAAkD,0BAAS;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT,4CAA4C,gCAAgC;AAC5E,gDAAgD,gCAAgC;AAChF;AACA,6CAA6C,uBAAI;AACjD,QAAQ,0BAAK;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B,gCAAgB;AAC5C,mBAAmB,qCAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD,UAAU,yCAAyC;AACnD,yBAAyB,qCAAqC;AAC9D,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/KA;AACA;AACA;AACA;AACqD;AACiB;AACf;AAChD;AACP,wCAAwC;AACxC;AACA;AACA;AACA;AACA,yBAAyB,qCAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAQ,sBAAsB;AAClE;AACA;AACA;AACA,sCAAsC,wBAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,8CAA8C;AACxH;AACA,qCAAqC,wBAAQ;AAC7C;AACA;AACA;AACA,eAAe,wBAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2CAA8B,wCAAwC,2CAA8B;AACvJ;AACA;AACA,mDAAmD,2CAA8B,uCAAuC,2CAA8B;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,2CAA8B,kDAAkD,2CAA8B;AACxM;AACA;AACA,+CAA+C,2CAA8B;AAC7E;AACA;AACA,+CAA+C,2CAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS,uCAAuC,QAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS;AAC/B;AACA;AACA;AACA,sBAAsB,sBAAS,uCAAuC,QAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS,uCAAuC,QAAQ;AAC9E;AACA;AACA;AACA;;;ACrMA;AACA;AACA;AACA;AACuD;AACL;AACC;AACF;AACM;AACvD;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,kBAAkB,wBAAQ,KAAK,wBAAQ;AACvC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAQ,SAAS,wBAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,kBAAkB,wBAAQ,KAAK,wBAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAQ,KAAK,wBAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa,0BAA0B,wBAAQ,KAAK,wBAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACO;AACP,wBAAwB;AACxB,qCAAqC;AACrC,uCAAuC;AACvC,wCAAwC;AACxC;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,oCAAoC,wBAAQ;AAC5C;AACA;AACA;AACA;AACA,uCAAuC,wBAAQ;AAC/C,0DAA0D,2CAA2C;AACrG;AACA;AACA;AACA;AACA,sBAAsB,sBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAM;AAClB,8EAA8E,wBAAQ,YAAY,oCAAoC;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAQ;AACjD,yCAAyC,wBAAQ;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8CAA8C;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS,uCAAuC,QAAQ;AAC9E;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,iCAAiC;AACjC,8BAA8B;AAC9B,wBAAwB;AACxB,sBAAsB;AACtB,oBAAoB;AACpB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,0BAAK,gCAAgC,6BAA6B;AACjF;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,0BAAK,6CAA6C,YAAY;AAC7E;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,0BAAK;AACpB;AACA,wCAAwC;AACxC;AACA;AACA;AACA,8BAA8B,uBAAU;AACxC;AACA;AACA,oCAAoC,wBAAQ,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClXA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACiD;AAC4B;AACtB;AACC;AACD;AAChD,yBAAyB,iCAAY;AAC5C,qCAAqC;AACrC,kEAAkE;AAClE;AACA;AACA;AACA,oCAAoC,wBAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,iCAAiC;AACjC,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kEAAkE;AAClE;AACA;AACA;AACA,kEAAkE,mFAAmF;AACrJ;AACA,oCAAoC,wBAAQ;AAC5C;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACzMA;AACA;AACA;AACA;AAC8D;AACL;AACa;AACD;AACa;AACI;AAChC;AACG;AAC0B;AACzB;AACH;AACiB;AAClB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB;AACrB,kBAAkB;AAClB,iCAAiC;AACjC,8BAA8B;AAC9B,wBAAwB;AACxB,sBAAsB;AACtB,oBAAoB;AACpB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAAS,kBAAkB,uBAAO;AAC9E;AACA;AACA;AACA,+CAA+C,0BAAS,kBAAkB,uBAAO;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wCAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wCAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iCAAmB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0FAA0F,0BAA0B;AACpH,aAAa;AACb;AACA,yFAAyF,0BAA0B;AACnH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wBAAwB;AACxB,6BAA6B,OAAO,0BAAK;AACzC,iCAAiC,OAAO,0BAAK;AAC7C,4BAA4B,OAAO,0BAAK;AACxC,sBAAsB,OAAO,0BAAK;AAClC,uBAAuB;AACvB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,qCAAqC;AACrC,qCAAqC;AACrC,2CAA2C;AAC3C,yBAAyB;AACzB,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC,6CAA6C,4BAAO;AACpD,8BAA8B,uBAAU;AACxC,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA,wGAAwG,2CAA8B,uBAAuB,2CAA8B;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yCAAoB;AAC3D;AACA,kCAAkC,iCAAmB;AACrD,mBAAmB,UAAU;AAC7B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS;AAC/B;AACA;AACA;AACA,kBAAkB,0BAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS;AAC/B;AACA;AACA;AACA,kBAAkB,0BAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAS,yCAAyC,QAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,6BAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,wBAAQ;AACtD;AACA;AACA;AACA,gBAAgB,4BAAU;AAC1B;AACA;AACA;AACA,oCAAoC,gCAAO;AAC3C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4BAAU;AACtB;AACA;AACA;AACA,qBAAqB,gDAAuB;AAC5C;AACA,0CAA0C,oCAAoC;AAC9E;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qFAAqF;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iGAAiG;AACrK,8EAA8E,2CAA8B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qGAAqG;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,2CAA8B;AAClH;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,kBAAkB;AAClB,iCAAiC;AACjC,8BAA8B;AAC9B,wBAAwB;AACxB,sBAAsB;AACtB,oBAAoB;AACpB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0BAAS,kBAAkB,uBAAO;AAC9E;AACA;AACA;AACA,+CAA+C,0BAAS,kBAAkB,uBAAO;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAAO;AAClC;AACA;AACA;AACA,yCAAyC,iCAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,0GAA0G;AAC1G;AACA;AACA,0CAA0C,uBAAU;AACpD;AACA;AACA;AACA,uCAAuC,yCAAoB;AAC3D;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAc;AAC3B,eAAe,0CAAe;AAC9B;AACA;AACA,eAAe,0CAAe;AAC9B;AACA;;;ACl1BA;AACA;AACA;AACA;AACiD;AACM;AAChD,uBAAuB,iCAAY;AAC1C,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,IAAI,oBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkG;AAC1B;AACkG;AACpG;AAC0B;AACU;AACrC;AAC4B;AAClC;AAC4D;AAChF;AACyC;AACwB;AACF;AAC1B;AACD;AACsB;AAC1B;AACd;AACoD;AAC1G,qBAAqB,yCAAe;AACpC;AACP;AACA;AACA;AACA;AACA,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAsB,CAAC,gCAAgB;AAC/E,kCAAkC,uCAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,YAAY,+BAAe;AAC3B;AACA;AACA,eAAe,wCAAkB,2DAA2D,iCAAY;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACO,uDAAuD,gCAAa;AACpE,2CAA2C,iCAAc;AACzD,8CAA8C,iCAAc;AAC5D,4CAA4C,gCAAa;AACzD,6CAA6C,gCAAa;AAC1D,uDAAuD,gCAAa;AACpE,qCAAqC,iCAAc,sCAAsC,iCAAc,KAAK,0CAAsB;AAClI,6CAA6C,gCAAa;AAC1D,yCAAyC,gCAAa;AACtD,wCAAwC,gCAAa;AACrD,6CAA6C,gCAAa;AAC1D,sCAAsC,gCAAa;AACnD,4CAA4C,gCAAa;AACzD,0CAA0C,gCAAa;AACvD,0CAA0C,gCAAa;AACvD,yCAAyC,gCAAa;AACtD,kCAAkC,gCAAa;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,mDAA4B;AAC3C;AACA;AACA,eAAe,kDAA2B;AAC1C;AACA;AACA;AACA;AACA,8CAA8C,2CAAqB;AACnE,2CAA2C,oCAAkB;AAC7D,4BAA4B,iCAAe;AAC3C;AACA;AACA,sCAAsC,oCAAoC,+DAA+D;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAa,WAAW,uCAAiB;AACrE;AACA;AACA,gBAAgB,oBAAU;AAC1B,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC,eAAe,2CAAqB;AACpC;AACyB;AACzB,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,iCAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAa,WAAW,uCAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAU;AAC/B,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC,eAAe,2CAAqB;AACpC;AAC8B;AAC9B,kDAAkD,KAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT,4DAA4D,kCAAkC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAa,WAAW,uCAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oBAAU;AAC3B,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC,eAAe,2CAAqB;AACpC;AAC0B;AAC1B,gCAAgC,4BAAU;AAC1C;AACA;AACA;AACA;AACA,6CAA6C,4BAAO;AACpD;AACA,uBAAuB,0BAAK,+CAA+C,+BAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,UAAU;AACtE;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAU;AAChC,eAAe,2CAAqB;AACpC,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC;AAC+B;AAC/B,oFAAoF,sBAAsB;AAC1G;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAU;AAC5C,eAAe,2CAAqB;AACpC,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC;AAC2C;AAC3C,wDAAwD,QAAQ;AAChE;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAU;AAC9B,eAAe,2CAAqB;AACpC,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC;AAC6B;AAC7B,kEAAkE,aAAa;AAC/E,sBAAsB;AACtB;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAU;AACnC,eAAe,2CAAqB;AACpC,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC;AACkC;AAClC,0FAA0F,yBAAyB;AACnH;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oBAAU;AAC/C,eAAe,2CAAqB;AACpC,eAAe,qCAAkB;AACjC;AACA,gBAAgB,2CAAqB;AACrC;AAC8C;AAC9C;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA,eAAe,iCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA,eAAe,sCAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,8CAA8C,2CAAqB;AACnE,4CAA4C,sCAAmB;AAC/D,2CAA2C,qCAAkB;AAC7D,8CAA8C,2CAAqB;AACnE;AACA;AACA;AACA;AACA,mBAAmB,qCAAkB;AACrC;AACA;AACA,mBAAmB,qCAAkB;AACrC;AACA;AACA;AACA;AACA,mBAAmB,qCAAkB;AACrC;AACA;AACA;AACA;AACA,mBAAmB,qCAAkB;AACrC;AACA;AACA,mBAAmB,qCAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6CAAuB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qCAAqC,6CAA6C;AAClF;AACA,SAAS;AACT,2DAA2D,kCAAkC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uCAAa,mBAAmB,uCAAiB;AAC1F;AACA;AACA,2BAA2B,6BAAO;AAClC;AACA;AACA,yBAAyB,oBAAU;AACnC,eAAe,qCAAkB;AACjC;AACA,eAAe,2CAAqB;AACpC;AACA,MAAM,iCAAqB,GAAG,wBAAQ,IAAI,wCAAuB;AACjE,iCAAqB;AACrB;AACA;AACA,WAAW,wBAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAQ;AACxB,gBAAgB,wBAAQ;AACxB;AACA;AACA,yBAAyB,wBAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA,iCAAiC,wBAAQ;AACzC,SAAS;AACT;AACA;AACA;AACA,iCAAiC,wBAAQ;AACzC,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,wBAAQ;AACxB,gBAAgB,wBAAQ;AACxB;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,wBAAQ;AACxB,gBAAgB,wBAAQ;AACxB,gBAAgB,wBAAQ;AACxB;AACA;AACA,yBAAyB,wBAAQ;AACjC;AACA,gCAAgC,wBAAQ;AACxC,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,wBAAQ;AACxB,gBAAgB,wBAAQ;AACxB;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA,iCAAiC,wBAAQ;AACzC,SAAS;AACT;AACA;AACA;AACA;AACA,iCAAiC,wBAAQ;AACzC;AACA;AACA,CAAC;;;;;;;;AC3gCD,gBAAgB,mBAAO,CAAC,IAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,GAAG;AAChB;AACA;AACA;AACA,oBAAoB,QAAQ,IAAI,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,wDAAwD;AACxD;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChK8E;AACvE,4BAA4B,iGAAe;;;;;;;;;;;;;;;ACDlD;AACA;AACA;AACA;AACgC;AACzB,sCAAsC;AAC7C;AACA;AACA;AACA;AACO,wDAAwD;AAC/D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4EAAiC;AACvE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;ACpHD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AClCa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACVA,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACsD;AACQ;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;;AC7DA;AACA;AACA;AACA;AACkE;AACA;AAC/C;AAC+D;AACtB;AACN;AACQ;AACc;AACf;AAC7D;AACA,QAAQ,4BAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,4BAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wBAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAiD;AACjF,6CAA6C,+BAAS;AACtD;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAAS;AAChD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kBAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAK;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4BAAW;AACrD,4CAA4C,wCAAsB;AAClE;AACA;AACA,CAAC;AACD,uDAA0B;;;;;;;;;;;;AClMnB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;;;;;;AC7BA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,iBAAiB,mBAAO,CAAC,IAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;AC7BwD;AACqB;AACC;AAChB;AACrB;AAClC,sBAAsB,iGAAe;AACrC;AACP,aAAa;AACb;AACO;AACP;AACA,aAAa,4DAAW;AACxB,aAAa,4DAAW;AACxB,aAAa,4DAAW;AACxB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oEAAO;AAC3D;AACA;AACA;AACA;AACA,eAAe,gFAAY;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2EAAiB;AACV;AACP;AACA;AACA;AACA;AACA;AACO,uBAAuB,2EAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC9Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB,2BAA2B;AAC7C,kBAAkB,2BAA2B;AAC7C,iBAAiB,0BAA0B;AAC3C,kBAAkB,2BAA2B;AAC7C;AACA;AACA,iBAAiB,qDAAqD;AACtE,kBAAkB,WAAW;AAC7B,gBAAgB,WAAW;AAC3B,eAAe;AACf,oBAAoB;AACpB;AACA;AACA,gBAAgB;AAChB;;;;;;;;ACzBa;AACb,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,cAAc,mBAAO,CAAC,KAA0B;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;ACba;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,iFAAiF,sCAAsC;;AAEvH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;ACnFA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;ACtJD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AAC5B;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AAC2D;AACJ;AACQ;AACc;AAC9B;AACN;AAClC;AACP;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,gEAAQ;AACvG;AACA,uBAAuB,gEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA,uBAAuB,gEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA,uBAAuB,gEAAQ;AAC/B;AACA;AACA;AACA,+FAA+F,gEAAQ;AACvG;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAQ;AACjD;AACA;AACA,+CAA+C,YAAY;AAC3D;AACA;AACA;AACA;AACA,2BAA2B,gEAAQ;AACnC;AACA;AACA;AACA,2BAA2B,gEAAQ;AACnC;AACA,iBAAiB,iFAA0B,UAAU,2EAAoB,WAAW,iFAA0B;AAC9G;AACA,2BAA2B,gEAAQ;AACnC;AACA,gBAAgB,iFAA0B,UAAU,iFAA0B;AAC9E;AACA;AACA;AACA,wBAAwB,iFAA0B,gBAAgB,2EAAoB;AACtF,mCAAmC,gEAAQ;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,gEAAQ;AACnG;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,gEAAQ;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,gEAAQ;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,4DAA4D,gEAAQ;AACpE;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA,2BAA2B,gEAAQ;AACnC;AACA;AACA;AACA,2BAA2B,gEAAQ;AACnC;AACA,iBAAiB,iFAA0B,UAAU,2EAAoB,WAAW,iFAA0B;AAC9G;AACA,2BAA2B,gEAAQ;AACnC;AACA,gBAAgB,iFAA0B,UAAU,iFAA0B;AAC9E;AACA;AACA;AACA,wBAAwB,iFAA0B,gBAAgB,2EAAoB;AACtF,mCAAmC,gEAAQ;AAC3C;AACA;AACA;AACA;AACA,mBAAmB,gEAAQ;AAC3B;AACA;AACA;AACA;AACA,kCAAkC,qFAA8B;AAChE;AACA,uBAAuB,0DAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAgB;AAC5B;AACA,uBAAuB,0DAAK;AAC5B;AACA,6BAA6B,gEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAK;AAChC;AACA;AACA;AACA,+BAA+B,0DAAK;AACpC;AACA;AACA;AACA,+BAA+B,0DAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0DAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0DAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,gEAAQ;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAQ;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAK;AACxB;AACA;AACA,0BAA0B,0DAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kGAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kGAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAiB,KAAK,0DAAK,4GAA4G,gEAAQ;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjsBA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtFD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACjED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACxBD;AACA;AACA;AACA;AAC8C;AACA;AACL;AACa;AACvB;AACxB;AACP;AACA;AACA;AACA;AACA,kBAAkB,qEAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qEAAW;AACrF,yDAAyD;AACzD;AACA,8GAA8G;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kDAAkD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA,6BAA6B,6EAAsB;AACnD;AACA;AACA,4BAA4B,MAAM;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gEAAO,CAAC,iDAAG,kBAAkB,iDAAG;AACzG;AACA;AACO;AACP;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,+BAA+B,EAAE,OAAO;AACnD;AACA,WAAW,+BAA+B;AAC1C;AACA;AACO;AACP,sCAAsC;AACtC;AACO;AACP;AACA;AACA;AACA,oCAAoC;AACpC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,MAAM;AAC5C;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,aAAa;AACb;;;;;;;;;ACrJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA,eAAe,QAAQ,wBAAwB,sBAAsB,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iDAAiD;AACjE;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW,MAAM,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,KAAK,MAAM,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,wGAAwG,+BAA+B,QAAQ,IAAI;AACnJ;AACA;AACA;AACA;AACA,gDAAgD,KAAK,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnBA,iBAAiB,mBAAO,CAAC,KAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AAC0F;AACnF,6BAA6B,0GAAe;;;;;;;;;;;;;ACLnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8E;AACE;AACI;AACQ;AACrF,sBAAsB,iGAAe;AAC5C,kEAAkE,2EAAU;AAC5E;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gFAAe;AAClE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wBAAwB,6EAAa;AACrC;AACA,sCAAsC,6FAA6B;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,6EAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mGAAqB;AACpC;AACA;AACkC;AAClC;AACO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;AC7Fa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;;;;;;;ACvBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;ACtID;AACA;AACA;AACA;AAC2B;AAC+D;AAC1F;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAG;AACjC;AACA;AACA;AACA,8CAA8C;AAC9C;AACP;AACA;AACA;AACA,yBAAyB;AACzB,6BAA6B;AAC7B;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC,6BAA6B,6BAAQ;AACrC,0BAA0B,sCAAiB,oCAAoC,6BAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB,sCAAiB,sBAAsB,sCAAiB;AACzE;AACA;AACA,qBAAqB,sCAAiB;AACtC,uDAAuD,sCAAiB;AACxE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA;AACA,0BAA0B,6BAAQ;AAClC;AACA,gBAAgB,sCAAiB,cAAc,sCAAiB;AAChE,0BAA0B,6BAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8BAA8B,6BAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,qBAAqB,sCAAiB;AACtC;AACA;AACA,qCAAqC,sCAAiB,iBAAiB,sCAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4CAA4C,2BAAM,GAAG,IAAI,iBAAiB,sCAAiB;AAC3F,SAAS;AACT;AACA;AACA;AACA,4FAA4F,0BAA0B;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,6DAA6D;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,4BAA4B;AACzG;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,wBAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gEAAgE,8BAA8B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,wBAAwB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAAM;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA,gEAAgE,4BAA4B;AAC5F;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP,8BAA8B;AAC9B;AACA;AACA,uDAAuD;AACvD,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kCAAa;AACjB;;;ACznBA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACkI;AACxE;AAC1D,qBAAqB,sCAAiB;AACtC;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACO;AACP;AACA;AACA;AACA;AACA,iFAAiF,uCAAuC;AACxH;AACA;AACA,sBAAsB,gCAAW;AACjC,qBAAqB,gCAAW;AAChC,sBAAsB,iCAAa;AACnC;AACA;AACA,aAAa;AACb;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,8BAA8B,IAAG;AACjC;AACA,qEAAqE,YAAY;AACjF;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,IAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA,4DAA4D;AAC5D;AACA,gCAAgC,6BAAQ;AACxC;AACA,4BAA4B,MAAM,2BAAM,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,0BAA0B,IAAG;AAC7B;AACA;AACA;AACA,gBAAgB,IAAG;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAG;AAC7C,4CAA4C;AAC5C;AACA,qEAAqE,YAAY;AACjF;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA,oBAAoB,2BAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,gCAAgC,6BAAQ;AACxC;AACA,4BAA4B,MAAM,2BAAM,mBAAmB,SAAS;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAG;AAC1C;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAAM;AACtB;AACA;AACA;AACA;AACA;AACA,sCAAiB,GAAG,kBAAkB;AACtC;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6DAA6D;AACvH,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9XA;AACA;AACA;AACiC;AACN;;;ACJ3B;AACA;AACA;AAC4B;;;;;;;;ACH5B;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChIY;AACb,oBAAoB,mBAAO,CAAC,IAAqC;;AAEjE;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACoE;AACC;AACrE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAe,oBAAoB,wEAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA,uBAAuB,uEAAc;AACrC;AACA;AACA;AACA;AACA;AACA,4BAA4B,oCAAoC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA,+BAA+B,mFAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB,OAAO,mBAAmB;AAChF;AACA;AACA;AACA,2BAA2B,kCAAkC,GAAG;AAChE,0CAA0C,UAAU;AACpD;AACA,uBAAuB,mFAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,uCAAuC,kCAAkC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrKA;AACA;AACyD;AACjB;AACG;AAC3C,eAAe,aAAa,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,YAAY,iFAAiB,OAAO,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA,YAAY,iFAAiB,OAAO,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA,6DAA6D,mCAAmC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC,gEAAgE,oCAAoC;AACpG;AACA;AACA;AACA,kCAAkC,iFAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA,yBAAyB,iFAAiB;AAC1C,iEAAiE,uCAAuC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA,0BAA0B,iFAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wEAAwE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iFAAiB;AACpC;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,iFAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA,6BAA6B,0DAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iFAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+CAA+C,sDAAS;AACxD;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAS;AAC7C;AACA;AACA,oCAAoC,sDAAS;AAC7C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,kDAAkD;AAClD;AACA;AACA,gDAAgD,0CAA0C;AAC1F;AACA;AACA,4CAA4C,2CAA2C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0BAA0B;AACvE;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA,kCAAkC,sDAAS;AAC3C;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA;AACA;AACA,qDAAqD,sDAAS,iBAAiB,sDAAS;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA,uBAAuB,0DAAW,sBAAsB,kDAAK;AAC7D,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B,oBAAoB,QAAQ;AAC5B;AACA;AACA,uBAAuB,0DAAW,sBAAsB,kDAAK;AAC7D,SAAS;AACT;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C,mBAAmB,uBAAuB;AAC1C,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,eAAe;AAClC,mBAAmB,eAAe;AAClC,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB,aAAa,iFAAiB;AACvE;AACA;AACA,oBAAoB,iFAAiB,aAAa,iFAAiB;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC,oBAAoB,eAAe;AACnC,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB,aAAa,iFAAiB;AACvE;AACA;AACA,oBAAoB,iFAAiB,aAAa,iFAAiB;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,aAAa;AACjC,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,aAAa;AACjC;AACA;AACA;AACA;AACA;AACA,2DAA2D,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,2BAA2B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,qCAAqC,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG;AAC7E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,YAAY;AACjE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oBAAoB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,EAAE;AACjE;AACA;AACA;AACA;AACA,mCAAmC,EAAE,2BAA2B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;AC/0EpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AAC0D;AACG;AAC7D;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAAuB;AAChC;AACA;AACA;AACA,WAAW,uBAAQ;AACnB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC9EA;AACA;AACA;AACA;AAC4E;AACE;AACzB;AACa;AACmC;AACvC;AAC0B;AAClC;AACkC;AACjF;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAAyB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,gBAAgB,qBAAG;AACjC,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA,YAAY,iCAAiC,eAAe,gDAAwB;AACpF;AACA;AACA;AACA,4BAA4B,+BAAe;AAC3C;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,IAAI,2BAAU,gBAAgB,qBAAG;AACjC,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA,YAAY,iCAAiC,eAAe,gDAAwB;AACpF;AACA;AACA,4BAA4B,+BAAe;AAC3C;AACA,iGAAiG,sCAAiB;AAClH;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,IAAI,2BAAU,gBAAgB,qBAAG;AACjC,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA,YAAY,sCAAsC,eAAe,gDAAwB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,uBAAK,cAAc,sCAAiB;AACxI;AACA;AACA;AACA;AACA,CAAC;AACD,gCAAgB;AAChB;AACA,IAAI,2BAAU,gBAAgB,qBAAG;AACjC,IAAI,2BAAU,CAAC,uBAAK;AACpB,+BAA+B,mCAAa;AAC5C;AACA;AACA;AACA,YAAY,sCAAsC,eAAe,gDAAwB;AACzF,oGAAoG,uBAAK,cAAc,sCAAiB;AACxI;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA,KAAK;AACL,CAAC;;;;;;;;AC/MD;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AAC0F;AACR;AACT;AAC/B;AACnC,wCAAwC,gFAAY;AAC3D;AACA;AACA;AACA,mBAAmB,uDAAY;AAC/B;AACA;AACA;AACA;AACA,wBAAwB,oFAAiB;AACzC;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6FAAkB;AACtG;AACA;AACA;AACA,4FAAoB;;;;;;;;;ACjCP;AACb,sBAAsB,mBAAO,CAAC,KAAuC;AACrE,aAAa,mBAAO,CAAC,KAAqB;AAC1C,eAAe,mBAAO,CAAC,KAAwB;AAC/C,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,aAAa,mBAAO,CAAC,KAA+B;AACpD,aAAa,mBAAO,CAAC,KAA2B;AAChD,gBAAgB,mBAAO,CAAC,KAAyB;AACjD,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtEA;AACA;AACA;AACA;AACO;AACA;AACP;AACA,4FAA4F,gEAAgE;AAC5J;AACA;AACA;AACA;AACA;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAuB;AACpC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,YAAY,mBAAO,CAAC,KAAyB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACTa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,mBAAmB;AACrC,oBAAoB,mBAAO,CAAC,KAAyB;AACrD,eAAe,mBAAO,CAAC,IAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,kBAAkB,mBAAO,CAAC,EAAe;AACzC,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,mDAAmD;AACnE,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gDAAgD,IAAI,UAAU;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,MAAM;AAClB;AACA,uCAAuC,mBAAmB;AAC1D,8BAA8B,4BAA4B,UAAU,EAAE;AACtE;AACA,mBAAmB;AACnB;AACA,YAAY,UAAU;AACtB,YAAY,kCAAkC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8CAA8C;AAC7F,iCAAiC;AACjC;AACA;AACA,SAAS;AACT,yCAAyC,GAAG,aAAa,mBAAmB;AAC5E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD,gEAAgE,yBAAyB,aAAa,MAAM,IAAI,wBAAwB,UAAU,KAAK,KAAK;AAC5J,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,kBAAe;AACf;;;;;;;;;;;;;;ACzHA;AACA;AACA;AACA;AACoC;AACqB;AACzD,wDAAwD,oEAAS,oBAAoB,KAAK,oEAAS,wBAAwB;AACpH;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ,kBAAkB,aAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,sCAAK;AACtB,0BAA0B,oEAAS;AACnC;AACA;;;;;;;;;;;;;;;AC7B6D;AAC7D;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,2EAAQ;AACR;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAiB;AAC9B;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACvBD;AACA;AACA;AACA;AACmE;AACP;AACN;AAC/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2EAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iEAAK;AAClD,6CAA6C,iEAAK;AAClD,sCAAsC,qBAAqB;AAC3D,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO,iEAAK,mBAAmB,uEAAQ,gDAAgD;AACjH,0BAA0B,OAAO,iEAAK,mBAAmB,uEAAQ,2CAA2C;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,OAAO,iEAAK,mBAAmB,uEAAQ,gDAAgD;AACrH,8BAA8B,OAAO,iEAAK,mBAAmB,uEAAQ,2CAA2C;AAChH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACjJa;AACb,sBAAsB,mBAAO,CAAC,KAAgC;;AAE9D;AACA;;AAEA;;AAEA;;;;;;;;ACRA,cAAc,mBAAO,CAAC,KAAS;AAC/B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACiE;AACN;AACY;AACJ;AACN;AACR;AACC;AACsC;AACC;AACG;AACG;AAC5F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAAO;AACvC;AACA,+BAA+B,iCAAe;AAC9C;AACA;AACA,YAAY,cAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2BAAO;AAC7B;AACA;AACA,0BAA0B,uBAAK,mCAAmC,8BAAc;AAChF;AACA;AACA,0BAA0B,8BAAc,oCAAoC,uBAAK;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAG;AAC7B,4BAA4B,8BAAc,SAAS,8BAAc,WAAW,8BAAc;AAC1F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+BAAY,kBAAkB,qBAAqB,YAAY,2BAAO;AACxF;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD,wBAAwB,uBAAK;AAC7B;AACA;AACA;AACA,gCAAgC,uBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C,gBAAgB,uBAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAc;AAC7B,eAAe,2CAAqB;AACpC;AACsB;AACf,iCAAiC,yCAAe;AACvD;AACA;AACA;AACA;AACA,6BAA6B,4BAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAc;AAC7B,eAAe,2CAAqB;AACpC;AACA,uCAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/LjB;AACA;AACA;AACA;AACkC;AACyB;AACG;AACN;AACjD;AACP;AACA;AACA;AACA,iBAAiB,8BAAQ;AACzB,4CAA4C,0BAAS,aAAa,uBAAO;AACzE,iBAAiB,8BAAQ;AACzB,uBAAuB,0BAAS,aAAa,uBAAO;AACpD,iBAAiB,8BAAQ;AACzB,uBAAuB,0BAAS,aAAa,uBAAO;AACpD,iBAAiB,8BAAQ;AACzB,uBAAuB,0BAAS,aAAa,uBAAO;AACpD;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;;;;;;ACzBrC;AACA;AACA;AACA;AACA,IAAI,wBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,qBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACwC;AAC3B;AACX;AACE;AACqB;AAChB;AACA;AAC3B;AACiB;AACoE;AAChF;AACwE;AAC5B;AACI;AACS;AACxB;AACK;AACF;AACW;AACgL;AACvL;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,2CAAiB;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC,aAAa;AAClD,oCAAoC,YAAY;AAChD,SAAS;AACT;AACA;AACA;AACA,QAAQ,6BAAO;AACf;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8BAAU;AAChC;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,KAAK;AACrD;AACA;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C,2DAA2D,uBAAuB;AAClF;AACA,gEAAgE,qBAAqB;AACrF;AACA;AACA;AACA,wCAAwC,kBAAU,iBAAiB,KAAK;AACxE;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAa;AACrB;AACA,YAAY,kCAAe;AAC3B;AACA,yDAAyD,4EAA4E;AACrI;AACA;AACA;AACA;AACA;AACA,+CAA+C,yDAAyD,GAAG,wBAAwB,IAAI,oBAAoB;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA,wDAAwD,OAAO;AAC/D,uDAAuD,MAAM;AAC7D,+CAA+C,eAAe;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAAc;AAC/B,gCAAgC,oBAAY;AAC5C;AACA,iBAAiB,8BAAc;AAC/B,gCAAgC,oBAAY;AAC5C;AACA,iBAAiB,8BAAc;AAC/B,gCAAgC,oBAAY;AAC5C;AACA,iBAAiB,8BAAc;AAC/B,gCAAgC,oBAAY;AAC5C;AACA;AACA,wBAAwB,oBAAY,kBAAkB,GAAG,IAAI,EAAE;AAC/D;AACA;AACA;AACA,2BAA2B,YAAY,IAAI,UAAU;AACrD;AACA;AACA;AACA;AACA,6FAA6F,+BAAc;AAC3G;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAe;AACjD,kDAAkD,4BAAO;AACzD;AACA,yBAAyB,8BAAc;AACvC,gCAAgC,mBAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8BAAc;AAC7C;AACA;AACA;AACA,oCAAoC,8BAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wCAAuB;AACvE,kDAAkD,4CAA2B;AAC7E,SAAS,GAAG;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAA+B;AACvC,8CAA8C,oCAAoC;AAClF;AACA;AACA;AACA,qBAAqB,kBAAU,YAAY,KAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAY,eAAe,GAAG,IAAI,GAAG;AACvD,kBAAkB,oBAAY,aAAa,GAAG,IAAI,GAAG;AACrD,0BAA0B,8BAAQ;AAClC;AACA,0CAA0C,YAAY,WAAW,8BAAc,6BAA6B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,cAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sBAAM;AAC7C,oDAAoD,wBAAU;AAC9D,IAAI,qBAAO,IAAI,kCAAa;AAC5B,IAAI,qBAAO,IAAI,mCAAc;AAC7B,IAAI,qBAAO,IAAI,4BAAY;AAC3B,IAAI,qBAAO,IAAI,2CAAqB;AACpC,IAAI,qBAAO,IAAI,qCAAkB;AACjC,IAAI,qBAAO,IAAI,0BAAa;AAC5B;AACkC;AAClC;AACA,qBAAqB,gCAAK,CAAC,4CAAqB,EAAE,wCAAiB;AACnE,uBAAuB,gCAAK,CAAC,8CAAuB,EAAE,0CAAmB;AACzE,oBAAoB,gCAAK,CAAC,2CAAoB,EAAE,uCAAgB;AAChE,oCAAoC,wCAAa,6CAA6C,iDAAiD,qCAAc,WAAW,qCAAc,EAAE,EAAE,oBAAY;AACtM,0CAA0C,wCAAa,mDAAmD,MAAM,sCAAW,0CAA0C,sCAAW,gEAAgE,EAAE,oBAAY;AAC9P,sCAAsC,wCAAa,+CAA+C,qDAAqD,qCAAc,WAAW,qCAAc,EAAE,EAAE,oBAAY;AAC9M,4CAA4C,wCAAa,qDAAqD,MAAM,sCAAW,4CAA4C,sCAAW,iEAAiE,sCAAW,qCAAqC,EAAE,oBAAY;AACrT,mCAAmC,wCAAa,4CAA4C,+CAA+C,qCAAc,WAAW,qCAAc,EAAE,EAAE,oBAAY;AAClM,yCAAyC,wCAAa,kDAAkD,MAAM,sCAAW,yCAAyC,sCAAW,+DAA+D,EAAE,oBAAY;AAC1P,yCAAyC,wCAAa,wCAAwC,MAAM,uCAAgB,SAAS,uCAAgB,UAAU,uCAAgB,WAAW,uCAAgB,EAAE,EAAE,oBAAY;;;ACpVlN;AACA;AACA;AACA;AACA,IAAI,kBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,eAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AAC8D;AACS;AACqF;AACxE;AACxB;AACN;AACmB;AACD;AAC9B;AAC8B;AACiC;AACN;AAClB;AACnB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,uBAAK;AAChG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,+CAA+C,uBAAK;AAC/E,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,wBAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAU;AAClD,IAAI,eAAO,IAAI,wBAAwB;AACvC,IAAI,eAAO,IAAI,qCAAkB;AACjC,IAAI,eAAO,IAAI,2CAAkB;AACjC,IAAI,eAAO,IAAI,2CAAqB;AACpC;AAC4B;AAC5B,qCAAqC,qCAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAsB;AAC9C;AACA,sBAAsB,qCAAY,2BAA2B,uBAAO,YAAY,oBAAY;AAC5F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAsB;AAC9C;AACA,sBAAsB,qCAAY,+BAA+B,uBAAO,UAAU,oBAAY;AAC9F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B,uBAAuB,oBAAY,GAAG,8DAA8D;AACpG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,aAAa;AACb;AACA,wBAAwB,sBAAM;AAC9B,uBAAuB,oBAAY,GAAG,kEAAkE;AACxG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,iDAAoB;AACpB,+CAA+C,gCAAa;AAC5D,sBAAsB,sCAAa;AACnC,kDAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;;;;;;;;AC/QD,iBAAiB,mBAAO,CAAC,KAAe;AACxC,iBAAiB,mBAAO,CAAC,IAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ,UAAU;AAC7B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;ACfA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACtFD,0BAA0B,mBAAO,CAAC,KAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,UAAU;;AAEZ;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,aAAa;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yEAAyE,eAAe;AACxF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,k/BAAk/B;;AAEl/B;AACA,wZAAwZ;AACxZ;AACA;AACA;;AAEA;AACA,+TAA+T;AAC/T;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,EAAE,iBAAiB,EAAE,MAAM;;AAEzD;AACA,6BAA6B,QAAQ;AACrC,sDAAsD;;AAEtD,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,mBAAmB;AAC9B,YAAY,oBAAoB;AAChC;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;;AAEA,GAAG;AACH,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yCAAyC;AACzC;;AAEA;AACA,yCAAyC;AACzC;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,eAAe,SAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;;;AAGA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA,mKAAmK;;AAEnK;AACA;;AAEA,oDAAoD;AACpD,oDAAoD;AACpD,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,kDAAkD;AAClD,kDAAkD;AAClD;AACA,mDAAmD;;AAEnD,mDAAmD;;AAEnD,kEAAkE;;AAElE,qEAAqE;;AAErE,wDAAwD;;AAExD,gDAAgD;;AAEhD,wCAAwC;;AAExC,0DAA0D;;AAE1D,0DAA0D;;AAE1D,wCAAwC;;AAExC,6CAA6C;;AAE7C,4DAA4D;;AAE5D,6CAA6C;;AAE7C,oCAAoC;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL,kDAAkD;;AAElD;AACA,IAAI;AACJ;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,mDAAmD;AACnD,4CAA4C,yDAAyD;AACrG;AACA;AACA;;AAEA,iDAAiD;AACjD;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,cAAc,SAAS;AACvB;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA,IAAI;;;AAGJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;;AAGA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB;;;AAGA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,UAAU;AACvB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;;AAEA;AACA;AACA,KAAK,WAAW;AAChB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,MAAM;AACnB,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB,cAAc,SAAS;AACvB;;;AAGA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;;;AAGtC,iFAAiF,4DAA4D;AAC7I;AACA;AACA;AACA;AACA;AACA,kTAAkT;AAClT;AACA;AACA;;AAEA,IAAI,uCAAuC,mFAAmF,mKAAmK,gHAAgH;AACjZ;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC;;AAExC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,yCAAyC;;;AAGzC;AACA;AACA;;;AAGA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;;;AAGA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,QAAQ;AACpB;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;;;AAGA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,aAAa,UAAU;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAwB,gBAAgB;AACxC;;AAEA;AACA,sEAAe,sDAAM,IAAC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;;;;;;;;ACvmDA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AClHY;AACb,YAAY,mBAAO,CAAC,KAAoB;AACxC,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;ACtBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,kBAAkB,mBAAO,CAAC,KAAY;AACtC,eAAe,mBAAO,CAAC,KAAS;AAChC;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,YAAY,iCAAiC;AAC7C;AACA;AACA,0CAA0C,KAAK,EAAE,iCAAiC;AAClF;AACA,mEAAmE,UAAU;AAC7E;AACA;AACA,wCAAwC,WAAW;AACnD;AACA,wCAAwC,WAAW,KAAK,WAAW,cAAc,WAAW;AAC5F;AACA,UAAU,WAAW;AACrB,8CAA8C,WAAW,cAAc,WAAW;AAClF,0CAA0C,WAAW,IAAI,uCAAuC;AAChG;AACA;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AAC+E;AACvB;AACI;AACV;AACH;AACN;AACQ;AACT;AAC4B;AAC7D;AACP;AACA,eAAe,4EAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iCAAiC,2FAAuB;AACxD,iBAAiB,oEAAO;AACxB,iBAAiB,6EAAuB;AACxC;AACA,kBAAkB,gEAAQ;AAC1B,eAAe,0DAAK;AACpB,mBAAmB,kEAAS;AAC5B,4BAA4B,wFAAkC;AAC9D,wBAAwB,oFAA8B;AACtD,mBAAmB,+EAAyB;AAC5C,aAAa,6DAAG;AAChB,eAAe,0DAAK;AACpB;AACA;;;;;;;;ACvCA,gBAAgB,mBAAO,CAAC,KAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,IAAI;AACJ,CAAC;;AAED;;;;;;;;;ACVA,WAAW,mBAAO,CAAC,IAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC4D;AACR;AACQ;AACmB;AACX;AACH;AACF;AACmB;AAC7B;AACM;AACW;AACX;AACqC;AAC9B;AAC3D;AACP;AACA;AACA,CAAC,0DAA0D;AACpD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,2EAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oEAAO;AAClD;AACA,0CAA0C,oEAAO;AACjD;AACA,6CAA6C,oEAAO;AACpD;AACA,2CAA2C,oEAAO;AAClD;AACA,yCAAyC,oEAAO;AAChD;AACA,2CAA2C,oEAAO;AAClD;AACA,0CAA0C,oEAAO;AACjD;AACA,sDAAsD,oEAAO;AAC7D;AACA,uDAAuD,oEAAO;AAC9D;AACA,oDAAoD,oEAAO;AAC3D;AACA,4DAA4D,oEAAO;AACnE;AACA,0EAA0E,kFAAiB;AAC3F,mDAAmD,6EAAgB;AACnE,8BAA8B,uEAAa;AAC3C;AACA;AACA;AACA;AACA,uBAAuB,kEAAK;AAC5B;AACA,wFAAwF,6EAAgB;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,0FAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,0FAAqB;AAC/C;AACA,SAAS;AACT;AACA,gBAAgB,2EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2EAAiB;AACrC;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA,4CAA4C,cAAc;AAC1D,SAAS;AACT;AACA,gBAAgB,2EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAa;AAC9C,kCAAkC,uEAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uEAAa;AAC/C;AACA;AACA,SAAS;AACT;AACA,gBAAgB,2EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAa;AAC9C,kCAAkC,uEAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uEAAa;AAC/C;AACA;AACA,SAAS;AACT;AACA,gBAAgB,2EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAa;AAC1C,8BAA8B,uEAAa;AAC3C;AACA;AACA,oBAAoB,8EAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,6EAAgB;AAC7F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAyB;AACxC,YAAY,+EAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAS;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4GAAqB;AACpC,eAAe,+EAAW;AAC1B;AACyB;AAClB;AACP;AACA,2CAA2C,gEAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,8BAA8B,gEAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,2EAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uEAAU;AACtD,0CAA0C,uEAAU;AACpD,qDAAqD,uEAAU;AAC/D,sDAAsD,uEAAU;AAChE,mDAAmD,uEAAU;AAC7D,gDAAgD,uEAAU;AAC1D,0CAA0C,uEAAU;AACpD,wCAAwC,uEAAU;AAClD,yCAAyC,uEAAU;AACnD,0CAA0C,uEAAU;AACpD,0CAA0C,uEAAU;AACpD,yCAAyC,uEAAU;AACnD,kDAAkD,oEAAO;AACzD;AACA;AACA,4CAA4C,+EAAY;AACxD,gDAAgD,+EAAY;AAC5D,0CAA0C,+EAAY;AACtD,0CAA0C,+EAAY;AACtD,uBAAuB,iFAAyB;AAChD;AACA;AACA,2BAA2B,yEAAiB;AAC5C;AACA;AACA;AACA;AACA,mBAAmB,4EAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAiB;AAC5C;AACA;AACA;AACA;AACA,4BAA4B,4EAAoB;AAChD;AACA,6BAA6B,qEAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gFAAwB;AACxD;AACA;AACA;AACA,YAAY,mFAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACznBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtID;AACA;AACA;AACA;AAC4E;AAC0C;AACtD;AACqB;AACpB;AACH;AACT;AACO;AACN;AAC0B;AACT;AACzB;AAC0B;AACY;AACC;AACG;AACsB;AACvG;AACP,aAAa,wHAAwB;AACrC,8BAA8B,+FAAa,6CAA6C,2DAAQ;AAChG,wBAAwB,+FAAa,uCAAuC,2DAAQ;AACpF,6BAA6B,+FAAa,4CAA4C,2DAAQ;AAC9F,uBAAuB,+FAAa,kCAAkC,2DAAQ;AAC9E,kCAAkC,+FAAa,kCAAkC,2DAAQ;AACzF,kCAAkC,+FAAa,8CAA8C,2DAAQ;AACrG,oBAAoB,+FAAa,sCAAsC,6BAA6B,2DAAQ,mFAAmF;AAC/L,oBAAoB,+FAAa,gCAAgC,2DAAQ;AACzE;AACO,uCAAuC,iFAAM;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAK;AACjB,iCAAiC,wEAAQ;AACzC,qCAAqC,wEAAQ;AAC7C,sCAAsC,wEAAQ;AAC9C;AACA;AACA,mBAAmB,kEAAK;AACxB;AACA;AACA,iCAAiC,wEAAQ;AACzC,qCAAqC,wEAAQ;AAC7C,sCAAsC,wEAAQ;AAC9C;AACA;AACA,mBAAmB,kEAAK,gDAAgD,kEAAK;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,2BAA2B,yEAAS;AACpC;AACA;AACA;AACA,aAAa;AACb,oBAAoB,qFAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kHAAkH,6DAA6D,UAAU,qFAAiB;AACjN,mBAAmB,yEAAS;AAC5B;AACA;AACA,2CAA2C,kEAAK,+EAA+E,kEAAK;AACpI,2BAA2B;AAC3B;AACA,4BAA4B,gFAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sFAAa;AAClD;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAY;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yEAAS;AACxC;AACA;AACA;AACA;AACA,gBAAgB,2FAAyB;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+EAAiB;AACnD;AACA,qHAAqH,2CAA2C;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6FAAgB;AAChB;AACA,IAAI,2EAAU,CAAC,6DAAG;AAClB,IAAI,2EAAU,CAAC,wEAAQ;AACvB,IAAI,2EAAU;AACd,IAAI,2EAAU;AACd,YAAY,qBAAqB,eAAe,oGAAwB;AACxE,mCAAmC,2FAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI,sPAAsP;AAC5X;AACA;AACA,4CAA4C,qFAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACjVA;AACA,mBAAmB,mBAAO,CAAC,KAAe;AAC1C,kBAAkB,mBAAO,CAAC,KAAsB;AAChD,eAAe,mBAAO,CAAC,KAAkB;AACzC,oBAAoB,mBAAO,CAAC,KAAwB;AACpD,cAAc,mBAAO,CAAC,KAAmB;AACzC,cAAc,mBAAO,CAAC,KAAmB;AACzC,cAAc,mBAAO,CAAC,KAAmB;AACzC,YAAY,mBAAO,CAAC,KAAiB;AACrC,aAAa,mBAAO,CAAC,KAAkB;AACvC,cAAc,mBAAO,CAAC,KAAmB;AACzC,cAAc,mBAAO,CAAC,KAAmB;AACzC,cAAc,mBAAO,CAAC,IAAmB;AACzC,mBAAmB,mBAAO,CAAC,KAAwB;AACnD,gBAAgB,mBAAO,CAAC,KAAqB;AAC7C,iBAAiB,mBAAO,CAAC,KAAsB;AAC/C,qBAAqB,mBAAO,CAAC,KAA2B;AACxD,qBAAqB,mBAAO,CAAC,KAA2B;AACxD,aAAa,mBAAO,CAAC,KAAkB;AACvC,cAAc,mBAAO,CAAC,KAAmB;AACzC,WAAW,mBAAO,CAAC,KAAgB;AACnC,WAAW,mBAAO,CAAC,KAAgB;AACnC,WAAW,mBAAO,CAAC,KAAgB;AACnC,YAAY,mBAAO,CAAC,KAAiB;AACrC,YAAY,mBAAO,CAAC,KAAiB;AACrC,YAAY,mBAAO,CAAC,KAAiB;AACrC,YAAY,mBAAO,CAAC,KAAiB;AACrC,eAAe,mBAAO,CAAC,KAAoB;AAC3C,mBAAmB,mBAAO,CAAC,KAAsB;AACjD,cAAc,mBAAO,CAAC,KAAiB;AACvC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,sBAAsB,mBAAO,CAAC,KAAyB;AACvD,sBAAsB,mBAAO,CAAC,KAAyB;AACvD,sBAAsB,mBAAO,CAAC,KAAyB;AACvD,mBAAmB,mBAAO,CAAC,KAAsB;AACjD,mBAAmB,mBAAO,CAAC,KAAgB;AAC3C,gBAAgB,mBAAO,CAAC,KAAkB;AAC1C,YAAY,mBAAO,CAAC,KAAc;AAClC,YAAY,mBAAO,CAAC,IAAc;AAClC,mBAAmB,mBAAO,CAAC,KAAqB;AAChD,sBAAsB,mBAAO,CAAC,KAAmB;AACjD,eAAe,mBAAO,CAAC,IAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxFA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACyG;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAa;AACxC;AACA,eAAe,qCAAkB;AACjC;AAC0B;;;;;;;;;;;;;ACjE1B;AACA;AACA;AACA;AACA,IAAI,4BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,yBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACyG;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAA8E;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gCAAa;AACxD,8CAA8C,4BAAU;AACxD,IAAI,yBAAO,IAAI,qCAAkB;AACjC;AAC+B;;;;;AC5F/B;AACA;AACA;AACA;AACoE;AACG;AACI;AACpE;AACP;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,kCAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uCAAY;AACjD;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACvDA;AACA;AACA;AACA;AACuE;AAChE;AACP;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA,IAAI,4BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,yBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AACwB;AACR;AACzB;AAC4D;AACZ;AACJ;AACS;AACnG,gCAAgC,uDAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wBAAQ,GAAG,sDAAsD,IAAI,GAAG,EAAE,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iCAAe;AACnD,uBAAuB,kBAAU,YAAY,KAAK;AAClD;AACA,qCAAqC,8BAAc;AACnD,SAAS;AACT,gCAAgC,0BAAS,iBAAiB,wBAAwB;AAClF,iCAAiC,0BAAS,iBAAiB,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4BAAU;AAChC,IAAI,yBAAO,IAAI,2CAAqB;AACpC,IAAI,yBAAO,IAAI,4BAAY;AAC3B,IAAI,yBAAO,IAAI,qCAAkB;AACjC;AAC+B;;;;;;;;;;;;;;;;;;;;;;;;;ACvF/B;AACA;AACA;AACA;AACA,IAAI,6BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,0BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACuD;AAC2C;AACpC;AACG;AACN;AACa;AACD;AACiC;AACd;AAChD;AACyD;AAC5F;AACP;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAAO;AACtC;AACA,wCAAwC,4BAAO;AAC/C;AACA,gCAAgC,iCAAe;AAC/C,sCAAsC,iCAAe;AACrD;AACA,yBAAyB,qBAAa;AACtC,uBAAuB,KAAK;AAC5B;AACA,6DAA6D,wCAAgB,IAAI,iBAAiB;AAClG,qBAAqB,KAAK;AAC1B,8BAA8B,8CAAoB;AAClD;AACA,SAAS;AACT,QAAQ,kBAAU;AAClB;AACA,uBAAuB,kBAAU,aAAa,KAAK;AACnD,sBAAsB,kBAAU,eAAe,KAAK,UAAU,0BAAS,eAAe,uBAAO;AAC7F,4BAA4B,oBAAY;AACxC,qBAAqB,kBAAU,eAAe,KAAK;AACnD,qBAAqB,kBAAU,aAAa,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC,gCAAgC,WAAW;AAC3C;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC;AACA;AACA,4BAA4B,cAAc;AAC1C,6BAA6B,gEAAgE;AAC7F,2BAA2B,2FAA2F;AACtH,+BAA+B,eAAe;AAC9C,4BAA4B,SAAS,aAAa,0CAA0C,yBAAyB,cAAc;AACnI,mCAAmC,yFAAyF;AAC5H,gCAAgC,kCAAc;AAC9C,kCAAkC,gCAAgC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF;AACA;AACA,YAAY,gBAAQ;AACpB;AACA;AACA;AACA,YAAY,qBAAa;AACzB;AACA,YAAY,gBAAQ;AACpB;AACA;AACA;AACA,QAAQ,qBAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAa;AACzC,aAAa,qBAAa;AAC1B;AACA,YAAY,gBAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAAU;AACjC,IAAI,0BAAO,IAAI,2CAAqB;AACpC;AACgC;AACzB;AACP;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA,8BAA8B,qCAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAiB;AACzC;AACA,mCAAmC,qBAAa;AAChD;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAa;AAChD;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,mCAAmC,qBAAa;AAChD;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA,sCAAsC,qBAAa;AACnD,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtYA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;;;ACRA;AACA;AACA;AACA;AAC0D;AACE;AACV;AACoB;AACH;AACL;AAC9D;AACO;AACP,QAAQ,0BAAS;AACjB,2BAA2B,QAAQ;AACnC;AACA,QAAQ,cAAG;AACX;AACA;AACA;AACA,iCAAiC,QAAQ,kDAAkD,QAAQ;AACnG;AACA;AACA;AACA,gCAAgC,uBAAO;AACvC,6BAA6B,yBAAO;AACpC,gCAAgC,yBAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC,kBAAkB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC,4BAA4B,KAAK;AACjC;AACA;AACA,8BAA8B,QAAQ;AACtC,4BAA4B,KAAK;AACjC;AACA;AACA;AACA;AACA;AACA,gCAAgC,KAAK;AACrC,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D,wCAAwC,+BAA+B,kBAAkB;AACzF;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,4BAA4B,uBAAO;AACnC,yBAAyB,yBAAO;AAChC,kCAAkC,yBAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;;;;;;;;;ACtGA;AACA;AACA;AACA;AACA,IAAI,8BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,2BAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACwE;AACO;AACjB;AACG;AACN;AACQ;AACI;AAClB;AACc;AACS;AACV;AACO;AAC/B;AAC4B;AACW;AACC;AACd;AAC7D;AACP,8BAA8B,MAAM;AACpC;AACA,4BAA4B,qCAAY,sBAAsB,uBAAO,eAAe,oBAAY;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sCAAsC,EAAE,EAAE,IAAI,oBAAoB,IAAI,WAAW,EAAE,+BAA+B,IAAI,aAAa,IAAI,IAAI,EAAE;AAC7I,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA,qBAAqB,sBAAM,YAAY,SAAC;AACxC,0BAA0B,sBAAM,OAAO,SAAC;AACxC,qBAAqB,sBAAM,YAAY,SAAC;AACxC,qBAAqB,sBAAM,OAAO,SAAC;AACnC,8BAA8B,sBAAM,OAAO,SAAC;AAC5C,qBAAqB,sBAAM,OAAO,SAAC;AACnC,sBAAsB,sBAAM,OAAO,SAAC;AACpC,8BAA8B,oCAAS,SAAS,6CAA6C;AAC7F;AACA,gCAAgC,sBAAM,OAAO,SAAC;AAC9C,+BAA+B,sBAAM,OAAO,SAAC;AAC7C,6BAA6B,sBAAM,QAAQ,SAAC;AAC5C,yBAAyB,sBAAM,QAAQ,SAAC,mBAAmB,0BAAS;AACpE,yBAAyB,oBAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,SAAS;AAC3C,oCAAoC,WAAW;AAC/C,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,qBAAqB,iCAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc,4CAA4C,cAAG,QAAQ,yCAAyC,GAAG,QAAQ;AAC1J,kCAAkC,cAAc,4CAA4C,cAAG,QAAQ,yCAAyC,GAAG,QAAQ;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc,4CAA4C,cAAG,QAAQ,yCAAyC,GAAG,QAAQ;AACzI,gBAAgB,cAAc,4CAA4C,cAAG,QAAQ,yCAAyC,GAAG,QAAQ;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0BAAS,kBAAkB,qCAAmB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAI;AAChB;AACA;AACA,YAAY,oBAAI;AAChB;AACA,YAAY,uBAAuB;AACnC;AACA,YAAY,oBAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oBAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAAU;AACzB,IAAI,2BAAO,IAAI,0BAAa;AAC5B,IAAI,2BAAO,IAAI,gCAAgB;AAC/B,IAAI,2BAAO,IAAI,kCAAa;AAC5B;AACwB;AACxB;AACA;AACA;;;;;ACjNA;AACA;AACA;AACA;AACA,IAAI,sBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,mBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACQ,CAAC;AACM;AACsC;AACtC;AACO;AACa;AAC/B;AACG;AACjC;AAC6E;AAC3C;AACb,CAAC;AACT;AACgD;AACS;AAClB;AAC2P;AAChQ;AACM;AACQ;AACL;AAC4B;AAC5C;AACe;AAClB;AAClE;AACA;AACA;AACA,wCAAa,qCAAqC,MAAM,6CAAsB,SAAS,6CAAsB,UAAU,6CAAsB,WAAW,6CAAsB,EAAE,EAAE,oBAAY;AAC9L,wCAAa,iCAAiC,MAAM,yCAAkB,SAAS,yCAAkB,UAAU,yCAAkB,WAAW,yCAAkB,EAAE,EAAE,oBAAY;AAC1K,sCAAsC,wCAAa,qCAAqC,MAAM,uCAAgB,SAAS,uCAAgB,UAAU,uCAAgB,WAAW,uCAAgB,EAAE,EAAE,oBAAY;AAC5M,wCAAa,6CAA6C,MAAM,mDAA6B,SAAS,mDAA6B,UAAU,mDAA6B,WAAW,mDAA6B,EAAE,EAAE,oBAAY;AAClO,wCAAa,iDAAiD,MAAM,wDAAiC,SAAS,wDAAiC,UAAU,wDAAiC,WAAW,wDAAiC,EAAE,EAAE,oBAAY;AAC/O,8CAA8C,wCAAa,6CAA6C,MAAM,oDAA6B,SAAS,oDAA6B,UAAU,oDAA6B,WAAW,oDAA6B,EAAE,EAAE,oBAAY;AACvR,wCAAa,8CAA8C,MAAM,8CAAuB,SAAS,8CAAuB,UAAU,8CAAuB,WAAW,8CAAuB,EAAE,EAAE,oBAAY;AAC3M,wCAAa,mDAAmD,MAAM,mDAA4B,SAAS,mDAA4B,UAAU,mDAA4B,WAAW,mDAA4B,EAAE,EAAE,oBAAY;AACpO,wCAAa,2CAA2C,MAAM,sCAAW,4CAA4C,sCAAW,6CAA6C,sCAAW,8CAA8C,sCAAW,qCAAqC,EAAE,oBAAY;AACpS;AACA;AACA;AACA,0CAA0C,uBAAuB,GAAG,kBAAkB,wDAAwB,CAAC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAa;AAC7B,uBAAuB,qBAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAiB;AACnD,uCAAuC,mCAAiB;AACxD;AACA;AACA;AACA,gCAAgC,iCAAY;AAC5C,gCAAgC,iCAAe;AAC/C,gCAAgC,qCAAgB;AAChD,+BAA+B,qCAAgB;AAC/C,8BAA8B,4BAAO;AACrC,8BAA8B,4BAAO;AACrC;AACA;AACA;AACA;AACA,qCAAqC,4BAAO;AAC5C;AACA,2BAA2B,qCAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAa;AAC3D;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,kBAAU,uBAAuB,KAAK;AACrE,4BAA4B,kBAAU,uBAAuB,KAAK;AAClE,kFAAkF,oBAAoB;AACtG;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA,yBAAyB,uBAAI;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oBAAY;AACtD;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA,oCAAoC,oBAAY,iBAAiB,IAAI,EAAE,GAAG,EAAE;AAC5E;AACA;AACA,oCAAoC,oBAAY,mBAAmB,IAAI,EAAE;AACzE;AACA;AACA,oCAAoC,oBAAY,iBAAiB,EAAE,GAAG,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD,iCAAiC,sBAAc,GAAG,GAAG,EAAE;AACvD,2BAA2B,oBAAY,wCAAwC,EAAE,SAAS,EAAE;AAC5F,iBAAiB;AACjB;AACA,SAAS;AACT,yBAAyB,uCAAa;AACtC;AACA,sCAAsC,2CAAoB;AAC1D,SAAS;AACT,2DAA2D,mBAAmB,wBAAwB,0CAA0B;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wCAAwC,uBAAc;AACtD,+CAA+C,uBAAc;AAC7D,oDAAoD,uBAAc;AAClE,qDAAqD,uBAAc;AACnE,8BAA8B,yCAAiC;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA,2CAA2C,uCAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gDAAuB;AACpE,gCAAgC,0CAAiB;AACjD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB,SAAS,SAAS;AACjF,aAAa,QAAQ,gCAAiB;AACtC;AACA;AACA,gCAAgC,2CAA2C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA,gBAAgB,uBAAM;AACtB;AACA;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA,gBAAgB,uBAAM;AACtB;AACA;AACA,gBAAgB,gBAAQ;AACxB,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA,gBAAgB,gBAAQ;AACxB,gBAAgB,gBAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mDAA2C,CAAC,qBAAa;AAC7F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mDAA2C,CAAC,qBAAa;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA,8DAA8D,qBAAa;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAa;AAC1D,uCAAuC,qBAAa;AACpD,uCAAuC,qBAAa;AACpD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAK;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAY;AAC5C,uCAAuC,oBAAY;AACnD,kCAAkC,sBAAU;AAC5C,IAAI,mBAAO,IAAI,+BAAe;AAC9B,IAAI,mBAAO,IAAI,qCAAkB;AACjC,IAAI,mBAAO,IAAI,kCAAa;AAC5B,IAAI,mBAAO,IAAI,2CAAqB;AACpC;AACyB;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,iCAAiC;AACjD,mBAAmB,qBAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACh2BA;AACA;AACA;AACA;AACA,IAAI,0BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,uBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACiE;AACG;AACc;AACe;AAC/B;AACI;AAC2C;AACjD;AACC;AACO;AACS;AAC2E;AACtF;AACV;AACN;AACmB;AACQ;AACV;AACZ;AACN;AACX;AAC2D;AACK;AACP;AAC9B;AACgB;AACtB;AACU;AACxB;AACmB;AACjB;AACoC;AACd;AAClB;AACsB;AACD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wCAAsB;AACxD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAK;AAC3D,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAiB;AAChD,8BAA8B,iCAAe;AAC7C;AACA,4CAA4C,4BAAO;AACnD;AACA;AACA,0DAA0D,gCAAY;AACtE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8BAA8B,uBAAc;AAC5C;AACA;AACA,8CAA8C,2BAAe,CAAC,yBAAS;AACvE,qEAAqE,aAAa;AAClF;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA;AACA,qCAAqC,uBAAc;AACnD,2CAA2C,uBAAc;AACzD,kCAAkC,uBAAc;AAChD,gCAAgC,iCAAY;AAC5C;AACA;AACA;AACA,aAAa;AACb,qDAAqD,MAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,4CAA4C,6BAAQ;AACpD;AACA;AACA,aAAa;AACb;AACA;AACA,kDAAkD,gCAAY;AAC9D,qBAAqB,4BAAoB,kCAAkC,gCAAY;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,2DAA2D,2BAAe,CAAC,yBAAS;AACpF,2CAA2C,kBAAkB;AAC7D,SAAS;AACT,qDAAqD,2BAAe,CAAC,yBAAS;AAC9E,2CAA2C,mBAAmB;AAC9D,SAAS;AACT,iEAAiE,cAAc;AAC/E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC,uBAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAAkB;AACpD;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,wBAAwB,4CAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAuB;AACvD;AACA,4BAA4B,uBAAK;AACjC;AACA;AACA;AACA;AACA,2CAA2C,uBAAK;AAChD,gCAAgC,uBAAK;AACrC;AACA,uBAAuB,kCAAa;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA,2BAA2B,0BAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAK;AAC9C,qCAAqC,6BAAQ;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iFAAiF,6BAAQ,oBAAoB,uBAAK;AAClH;AACA;AACA;AACA;AACA;AACA,oCAAoC,iDAAuB;AAC3D,wIAAwI,kCAAa,aAAa,uBAAK;AACvK;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,cAAc,aAAa;AAC3B;AACA,yBAAyB,mCAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA,+BAA+B,0BAAS;AACxC;AACA;AACA,wBAAwB,4CAAyB;AACjD;AACA;AACA,wBAAwB,oCAAiB;AACzC;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAI,CAAC,8BAAQ;AACvC;AACA,2BAA2B,6BAAO;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,2BAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kCAAe;AAC3B,wBAAwB,oBAAY,oCAAoC,EAAE,QAAQ,GAAG;AACrF,YAAY,sBAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,QAAQ,0BAAK;AACb;AACA;AACA,YAAY,0BAAK;AACjB;AACA,gBAAgB,6BAAO;AACvB;AACA,aAAa;AACb,uCAAuC,iBAAiB;AACxD,gBAAgB,6BAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qCAAqC;AAC9E,aAAa;AACb,SAAS;AACT,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAAU;AACpD,IAAI,uBAAO,IAAI,2CAAqB;AACpC,IAAI,uBAAO,IAAI,+BAAe;AAC9B,IAAI,uBAAO,IAAI,qCAAkB;AACjC,IAAI,uBAAO,IAAI,2CAAqB;AACpC,IAAI,uBAAO,IAAI,uBAAW;AAC1B,IAAI,uBAAO,IAAI,kCAAiB;AAChC;AAC6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,mCAAmC,qCAAY;AACtD;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,iCAAc,KAAK,0CAAiB,WAAW,0CAAiB,4BAA4B,uBAAc;AACpI;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA,uBAAuB,2KAA2K;AAClM;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB;AACA,uBAAuB,sCAAa;AACpC,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,uBAAc;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,iCAAc,KAAK,uBAAc,UAAU,0CAAiB;AAChF;AACA,SAAS;AACT;AACA;AACA,oBAAoB,iCAAc,KAAK,uBAAc,UAAU,0CAAiB,iBAAiB,uBAAc,2BAA2B,uBAAc;AACxJ;AACA,SAAS;AACT;AACA,oBAAoB,0CAA0B;AAC9C,mBAAmB,oBAAY;AAC/B;AACA;AACA,kBAAkB,uBAAc;AAChC,SAAS;AACT,oBAAoB,0CAA0B;AAC9C,mBAAmB,oBAAY;AAC/B;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,2BAA2B,uBAAc;AAC5F,SAAS;AACT,oBAAoB,0CAA0B;AAC9C,mBAAmB,oBAAY;AAC/B;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,2BAA2B,uBAAc;AAC5F,SAAS;AACT,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,0CAAiB,iBAAiB,uBAAc;AAC7G;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,oBAAoB,0CAA0B;AAC9C;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,2BAA2B,uBAAc;AAC5F,mBAAmB,oBAAY;AAC/B,SAAS;AACT,oBAAoB,0CAA0B;AAC9C;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,2BAA2B,uBAAc;AAC5F,mBAAmB,oBAAY;AAC/B,SAAS;AACT,CAAC;AACD;AACA,gCAAgB;AAChB,kDAAqB;AACrB;AACA,kBAAkB,uBAAc;AAChC;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,iCAAc,IAAI,uBAAc,sBAAsB,uBAAc;AACjI;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,uBAAc;AAC3E;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf,KAAK;AACL,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,uBAAc;AAC3E;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,uBAAc,UAAU,uBAAc;AAC3E;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf,KAAK;AACL;AACA,oBAAoB,0CAA0B;AAC9C;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,iBAAiB,uBAAc;AAClF,mBAAmB,oBAAY;AAC/B,SAAS;AACT,oBAAoB,0CAA0B;AAC9C;AACA;AACA,kBAAkB,iCAAc,KAAK,uBAAc,6BAA6B,uBAAc;AAC9F,mBAAmB,oBAAY;AAC/B,SAAS;AACT,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,uBAAc;AAChC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,uBAAc;AAChC;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA,eAAe;AACf;AACA,CAAC;AACD;AACA,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,0CAAiB,iBAAiB,iCAAc,8CAA8C,cAAc,QAAQ,uBAAc,sBAAsB,mBAAmB,+BAA+B,4CAAkB;AACjQ;AACA,sCAAsC,0BAAQ,UAAU,0BAA0B,IAAI,iBAAiB;AACvG,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,0CAAiB,iBAAiB,iCAAc,8CAA8C,mBAAmB,mBAAmB,uBAAc,sBAAsB,4CAAkB;AAC/N;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,0CAAiB,iBAAiB,iCAAc,8CAA8C,mBAAmB,mBAAmB,uBAAc,sBAAsB,4CAAkB;AAC/N;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,CAAC;AACD,iDAAoB,eAAe,qCAAY;AAC/C;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACn5BD,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC/BA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AC/DY;;AAEb,sBAAsB,mBAAO,CAAC,KAA0B;AACxD,uBAAuB,mBAAO,CAAC,KAAyB;;AAExD,qBAAqB,mBAAO,CAAC,IAAkB;;AAE/C,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC1BA,kBAAkB,mBAAO,CAAC,KAAgB;AAC1C,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,8BAA8B,mBAAO,CAAC,KAA4B;;AAElE;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACyC;AACN;AACnC;AACA;AACA;AACA;AACO,wBAAwB,qDAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7IA,aAAa,mBAAO,CAAC,KAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;ACjBa;;AAEb;AACA;AACA;;;;;;;;;ACJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAuB;AACjD;AACA,cAAc,qBAAqB;AACnC;AACA,mDAAmD,MAAM,OAAO,YAAY;AAC5E,KAAK;AACL,eAAe,YAAY,wBAAwB,SAAS,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,sDAAsD,KAAK,WAAW,IAAI,EAAE,WAAW;AACvF,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;ACvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,KAAS;AAChC,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,mBAAmB,wDAAwD,gBAAgB;AACrH,eAAe,UAAU,mBAAmB,wBAAwB,mBAAmB,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA,sDAAsD,YAAY,uBAAuB,WAAW;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA,aAAa;AACb;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,KAAK;AACL;AACA,kBAAe;AACf;;;;;;;;;;;;;;;;AC9EA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AAC8F;AACuB;AACI;AACzB;AACR;AACH;AACnB;AACT;AACzD,4EAA4E,2EAAU;AACtF;AACA;AACA;AACA;AACA;AACA,6BAA6B,qFAAe;AAC5C,8CAA8C,+FAAyB;AACvE,iCAAiC,+FAAyB,kCAAkC,kEAAK;AACjG,uBAAuB,sFAAgB;AACvC;AACA;AACA,sCAAsC,4GAAiC;AACvE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAY,CAAC,2EAAS,uDAAuD,8EAAgB;AAClH,mCAAmC,sEAAsE;AACzG;AACA;AACA;AACA,eAAe,mGAAwB;AACvC,eAAe,oGAAoB;AACnC;AACA,oIAA2B;AAC3B;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;AC1DD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mDAAmD;AACvE;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACO;AACP;AACA,2CAA2C,KAAK;AAChD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrJa;AACb,kBAAkB,mBAAO,CAAC,KAAoC;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;ACtJY;;AAEb,WAAW,mBAAmB;AAC9B;AACA;AACA;;;;;;;;ACLA,mBAAmB,mBAAO,CAAC,KAAiB;AAC5C,aAAa,mBAAO,CAAC,IAAW;AAChC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACqC;AACO;AACrC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,yBAAyB,+DAAU;AAC1C;AACA;AACA;AACA,4CAA4C,wDAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChU8E;AACvE,uBAAuB,iGAAe;;;;;;;;;;;;;ACD7C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;ACbP,gBAAgB,mBAAO,CAAC,KAAW;AACnC;AACA;;;;;;;;;ACFa;AACb,mBAAmB,mBAAO,CAAC,KAA2B;;AAEtD;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AAC4E;AACE;AAChB;AACT;AACO;AACF;AAC8B;AACR;AACI;AACC;AAC9E;AACP,iBAAiB,gCAAa;AAC9B,4BAA4B,gCAAa;AACzC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAAyB;AACrC;AACA;AACA;AACA;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,qBAAG;AAClB,IAAI,2BAAU,CAAC,6BAAQ;AACvB,IAAI,2BAAU;AACd,iDAAiD,gDAAwB;AACzE,mCAAmC,wCAAiB;AACpD;AACA,6HAA6H,6BAAQ;AACrI,yBAAyB,0CAAkC;AAC3D;AACA;AACA,SAAS,EAAE,sCAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACvDD;AACA;AACA;AACA;AACoF;AACd;AACX;AAC0B;AACV;AACjB;AACO;AACjE;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AAC1C,kCAAkC,4BAAU;AACnD;AACA;AACA,kDAAkD,4BAAO;AACzD;AACA;AACA;AACA;AACA,2DAA2D,mCAAiB;AAC5E,gCAAgC,uCAAY;AAC5C,kCAAkC,uCAAY;AAC9C;AACA;AACA;AACA,oCAAoC,4BAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,gCAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sCAAsC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gDAAuB,UAAU,oBAAoB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAAkC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa,0CAAkC,gBAAgB;AAC1F;AACA;AACA;AACA;AACA,2BAA2B,aAAa,0CAAkC,gBAAgB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,aAAa,0CAAkC;AAC/C;AACA;AACA,aAAa,0CAAkC;AAC/C;AACA;AACA,aAAa,0CAAkC;AAC/C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9PA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACU;AACiC;AACpC;AACL;AAC0B;AACP;AACT;AACrC;AAC2C;AAC+B;AACpD;AACV;AACgD;AACZ;AAC8B;AAC3B;AAChB;AACA;AACsB;AACvF,UAAU,KAAK;AACf,+BAA+B,qCAAY,yBAAyB,uBAAO,cAAc,oBAAY;AACrG,mCAAmC,qCAAY,6BAA6B,uBAAO,YAAY,oBAAY;AAC3G,uFAAuF,4BAAU;AACjG;AACA;AACA;AACA;AACA;AACA,qDAAqD,iCAAe;AACpE;AACA;AACA;AACA;AACA,mDAAmD,wCAAgB,GAAG,QAAQ;AAC9E,0BAA0B,OAAO;AACjC,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA,wBAAwB,kBAAU;AAClC;AACA,yBAAyB,kBAAU;AACnC,yBAAyB,kBAAU,yBAAyB,0BAAS;AACrE,0BAA0B,kBAAU;AACpC,qBAAqB,kBAAU,yBAAyB,0BAAS;AACjE,uBAAuB,iCAAyB;AAChD,YAAY,uBAAe;AAC3B;AACA,SAAS;AACT,uBAAuB,iCAAyB;AAChD,YAAY,uBAAe;AAC3B;AACA,SAAS;AACT;AACA,8BAA8B,8CAAoB;AAClD;AACA,SAAS;AACT;AACA;AACA,0BAA0B,kBAAU;AACpC,qBAAqB,kBAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sDAAsD,kBAAkB;AACxE,wDAAwD,wCAAwC;AAChG;AACA;AACA,uBAAuB,0BAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAU;AAC/B;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA,0BAA0B,kBAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAU,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAU,8BAA8B;AACpD;AACA;AACA;AACA,YAAY,kBAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,oBAAoB,SAAS,0BAA0B;AACzI;AACA;AACA,sFAAsF,wBAAwB,SAAS,8BAA8B;AACrJ;AACA;AACA;AACA;AACA,gBAAgB,kBAAU,CAAC,oBAAY,WAAW,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAAS;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oFAAoF,iCAAe;AACnG;AACA;AACA,oFAAoF,iCAAe;AACnG;AACA;AACA,sFAAsF,iCAAe;AACrG;AACA;AACA,sFAAsF,iCAAe;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0CAAsB,cAAc;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAkB;AACjC,eAAe,mCAAc;AAC7B,eAAe,gCAAgB;AAC/B,eAAe,kCAAiB;AAChC;AACgC;AAChC,wCAAa,4CAA4C,MAAM,8CAAuB,SAAS,8CAAuB,UAAU,8CAAuB,WAAW,8CAAuB,EAAE,EAAE,oBAAY;;;ACjUzM;AACA;AACA;AACA;AACA,IAAI,uBAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,oBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACuD;AACW;AAC0F;AACnF;AACf;AAC8B;AACzB;AACX;AACV;AAC4C;AACa;AAClC;AACjE,mGAAmG,4BAAU;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,0BAA0B,gBAAI,0DAA0D,oBAAoB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAU;AAClE,IAAI,oBAAO,IAAI,2CAAqB;AACpC,IAAI,oBAAO,IAAI,gDAAwB;AACvC;AACoC;AAC7B,0CAA0C,qCAAY;AAC7D;AACA;AACA;AACA,mBAAmB,oBAAY;AAC/B;AACA,0BAA0B,0CAAiB;AAC3C;AACA,wBAAwB,0CAAiB;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,0CAAkC;AAC3D,SAAS;AACT;AACA;AACA,uDAA0B;AAC1B,iDAAoB;AACpB;AACA,8BAA8B,sCAAa;AAC3C,kDAAqB;AACrB;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,OAAO,UAAU,OAAO;AAC7D;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf;AACA,CAAC;AACD,kDAAqB;AACrB;AACA,kBAAkB,iCAAc,KAAK,OAAO,UAAU,OAAO;AAC7D;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA,eAAe;AACf;AACA,CAAC;;;;;;;;AC9HD;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;ACpID;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,CACyB;AAC7B,CAAC,sBAAsB;;AAEvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,IAAI;AACxB;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wGAAwG,IAAI,wBAAwB,IAAI,uDAAuD,IAAI;AACnM,qEAAqE,IAAI;AACzE,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2CAA2C,YAAY;AACvD;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,qBAAqB,EAAE;AACvB,qBAAqB,EAAE;AACvB,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,wBAAwB,IAAI;AAC5B,wBAAwB,IAAI;AAC5B,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA,mBAAmB,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACjK;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB;AACpB,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAO;AACxC,gBAAgB,2BAAe,IAAW,OAAO,CAAC;AAClD;AACA,cAAc;AACd;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA,4BAA4B,EAAE,IAAI,EAAE;AACpC;AACA;AACA,qCAAqC,EAAE;AACvC,+BAA+B,EAAE;AACjC,iCAAiC,EAAE;AACnC,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,IAAI,EAAE;AACrC,4BAA4B,EAAE;AAC9B,mCAAmC,GAAG;AACtC,6BAA6B,EAAE;AAC/B,+BAA+B,EAAE,IAAI,EAAE;AACvC,8BAA8B,EAAE,IAAI,EAAE;AACtC,4BAA4B,EAAE;AAC9B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,aAAa;AACb;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,iBAAiB;AACrC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sBAAsB;AAC1D;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,mBAAmB;AACzC;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;ACvjLD;AACA;AACA;AACA;AACoC;AACmC;AACI;AACL;AACZ;AACN;AACrB;AACe;AAC9C,UAAU,sCAAK;AACR;AACP;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,sEAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAU;AACjC;AACA;AACA;AACA,oCAAoC,4FAAyB,uBAAuB,iGAAuB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,gBAAgB,qDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAa;AACrB;AACA;AACA;AACA,+BAA+B,kFAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAU;AAClB;AACA,YAAY,qDAAU;AACtB;AACA;AACA;AACA,QAAQ,qDAAU,+BAA+B,2DAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,mCAAmC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAM,8BAA8B,oEAAM;AACvE;AACA;;;;;;;;AC1HA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChHY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,KAAW;AACrC;AACA;AACA,gDAAgD,KAAK,UAAU,OAAO;AACtE;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;ACXA,oBAAoB,mBAAO,CAAC,KAAkB;AAC9C,eAAe,mBAAO,CAAC,KAAa;AACpC,kBAAkB,mBAAO,CAAC,KAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACpCA;AACA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;ACpED,oBAAoB,mBAAO,CAAC,IAAkB;AAC9C,gBAAgB,mBAAO,CAAC,KAAc;AACtC,oBAAoB,mBAAO,CAAC,KAAkB;;AAE9C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAkB;AAC/B;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,eAAe,mBAAO,CAAC,KAAwB;AAC/C,oBAAoB,mBAAO,CAAC,IAA6B;;AAEzD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;ACXa;AACb;;;;;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAyB;AACtC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb,kBAAkB,mBAAO,CAAC,KAA0B;AACpD,8BAA8B,mBAAO,CAAC,KAAsC;AAC5E,2BAA2B,mBAAO,CAAC,KAAqC;AACxE,eAAe,mBAAO,CAAC,KAAwB;AAC/C,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AC7KA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;ACxBY;AACb;AACA,yCAAyC;;AAEzC;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,IAAI;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;ACjHD;AACA;AACA;AACA;AACuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA,uBAAuB,uBAAW;AAClC;AACA;AACA;AACA,WAAW,uBAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAW;AAC1B;AACA;AACA;AACA;AACA;;;AC5LA;AACA;AACA;AACA;AACoE;AACpE;AACA;AACA;AACA;AACO;AACP;AACA,0BAA0B,0CAAU;AACpC;AACA,wBAAwB,0CAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kDAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAc;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,kDAAc;AAC9B;AACA,oBAAoB,6CAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3HA;AACA;AACA;AACA;AACwF;AACf;AACd;AACA;AACmB;AACjC;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,UAAU;AACrD,kCAAkC,wDAAwB;AAC1D;AACA;AACA;AACA;AACA,oCAAoC,2CAAiB;AACrD;AACA,qBAAqB,uBAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa,UAAU,yBAAyB;AAC5F;AACA;AACA;AACA;AACA;AACA,gDAAgD,gDAAY;AAC5D;AACA;AACA;AACA,wDAAwD,kDAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iCAAqB;AAChD;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAW;AACtC;AACA;AACA,2BAA2B,uBAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACrHa;;AAEb,YAAY,mBAAO,CAAC,IAAS;AAC7B,0BAA0B,mBAAO,CAAC,IAA+B;AACjE,mBAAmB,mBAAO,CAAC,IAAqB;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,KAAgB;AACtC,IAAI;AACJ;AACA,cAAc,mBAAO,CAAC,KAAiB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;;;;ACrIA;AACA;AACA;AACA;AACuF;AAChF;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,eAAe,uEAAkB,MAAM,0DAAK;AAC5C;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAyB;AACxC;;;;;;;;;ACzBa;AACb,UAAU,gCAAuC;;AAEjD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;ACXA;AACA;;;ACDP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;;;ACtBsD;AACtB;AACzB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,UAAU;AACjF,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,GAAG;AAC1B,aAAa;AACb;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,aAAa;AACb;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1G8E;AACtC;AACF;AACP;AACH;AACF;AACnB;AACP;AACA,mBAAmB,SAAS;AAC5B,iBAAiB,qBAAqB;AACtC,wBAAwB,gBAAgB;AACxC;AACA,kBAAkB,UAAU;AAC5B;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAA0B;AACvC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B;AAC/B,kBAAkB,mBAAO,CAAC,KAAuB;AACjD,eAAe,mBAAO,CAAC,KAAoB;AAC3C;AACA,gBAAgB,UAAU,OAAO,mDAAmD,KAAK;AACzF,eAAe,UAAU,OAAO,wBAAwB,SAAS,KAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY,iCAAiC;AAC7C;AACA,qDAAqD,KAAK;AAC1D;AACA,wBAAwB,mBAAmB;AAC3C,qCAAqC,KAAK,KAAK,aAAa;AAC5D;AACA;AACA,2DAA2D,KAAK,KAAK,aAAa,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B;AAC/B,kBAAe;AACf;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9KA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;;;ACxHD;AACA;AACA;AACA;AAC2D;AACI;AACG;AACT;AACE;AAClB;AACM;AACxC;AACP;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA,wCAAwC,6EAAc;AACtD,sCAAsC,0DAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iFAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA,wCAAwC,0DAAK;AAC7C,8BAA8B,iFAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iFAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sFAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAa;AACrD;AACA,2BAA2B,0DAAK;AAChC;AACA;AACA,eAAe,0DAAK;AACpB;AACA;AACA;AACA;AACA,wBAAwB,kFAA2B;AACnD;AACA;AACA;AACA;AACA,uBAAuB,gEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAQ;AAC1C,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0DAAK;AACrD;AACA;AACA,0CAA0C,iFAAc;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iFAAc;AAChD;AACA;AACA,mBAAmB,2EAAmB;AACtC;AACA;AACA,SAAS;AACT;AACA;;;;;;;;ACtNA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;AChEY;AACb,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wEAAwE;AAClE;AACP;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AAC9C;AACP;AACA,4BAA4B,KAAK,IAAI,QAAQ;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACA;AACmG;AACO;AACzC;AACU;AACN;AAC4E;AACpD;AACzB;AACJ;AACiD;AAChD;AACF;AACN;AACK;AACb;AACqD;AACtG;AACA;AACA;AACA,4GAA4G,2EAAU;AACtH;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uGAAiB;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAW;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAW;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yBAAyB,sFAAgB;AACzC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6EAAO;AACrC,uCAAuC,oEAAmB;AAC1D;AACA;AACA;AACA;AACA,8BAA8B,6EAAO;AACrC,4CAA4C,oEAAmB;AAC/D;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iFAAc,cAAc,0CAA0C;AAC/G,gCAAgC,4DAAQ;AACxC,sDAAsD,yEAAS,aAAa,sEAAO;AACnF;AACA;AACA,uBAAuB,+EAA0B,yBAAyB,6EAAO;AACjF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,kEAAK,mBAAmB,wEAAQ;AAC/D;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT,uBAAuB,+EAA0B,yBAAyB,6EAAO;AACjF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,yEAAS;AACxC;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA,+IAA+I,uEAAS;AACxJ,+IAA+I,uEAAS;AACxJ;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,qFAAe;AACvE;AACA,eAAe,6GAAqB;AACpC;AACuC;AACvC,yCAAyC,sEAAqB;AAC9D;AACA,qBAAqB,uDAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uDAAC;AACvB,YAAY,uDAAC,kBAAkB,OAAO,4DAAQ,8DAA8D;AAC5G,YAAY,uDAAC,yBAAyB,SAAS,mBAAmB;AAClE,gBAAgB,uDAAC,gBAAgB,SAAS,oFAAoF,GAAG,uDAAC,QAAQ,OAAO,4DAAQ,mFAAmF,6CAA6C,KAAK,uGAAoB;AAClT,gBAAgB,uDAAC,iBAAiB,SAAS,mEAAmE;AAC9G;AACA,YAAY,uDAAC,wBAAwB,OAAO,4DAAQ,qEAAqE;AACzH;AACA;AACA,2BAA2B,yFAAmB;AAC9C;AACA,2BAA2B,+DAAU,sBAAsB,6CAA6C;AACxG;AACA;AACA,YAAY,qEAAK;AACjB;AACA,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,qFAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAS;AACpC,sCAAsC,qFAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oCAAoC,qFAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,qFAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAS;AACpC,sCAAsC,qFAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oCAAoC,qFAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,uBAAuB,6EAAO;AAC9B;AACA;AACA;AACA;AACA,wCAAwC,4DAAQ,kBAAkB,GAAG;AACrE,6BAA6B,uDAAC,WAAW,OAAO,4DAAQ,0DAA0D;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,uDAAC;AACnC,oCAAoC,kBAAkB;AACtD;AACA,qCAAqC,wEAAW;AAChD,wCAAwC,uDAAC;AACzC,qCAAqC,uCAAuC;AAC5E,yBAAyB;AACzB,4BAA4B,6FAAU;AACtC;AACA;AACA;AACA;AACA,mCAAmC,6FAAU,CAAC,sEAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAK;AACjB,SAAS;AACT;AACA;;;;;;;;ACzXA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;;AChID;AACA;AACA;AACA;AACoC;AAC7B;AACP;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,aAAa,uDAAY,GAAG,yFAAyF;AACrH,cAAc,uDAAY,GAAG,wFAAwF;AACrH,YAAY,uDAAY,GAAG,oFAAoF;AAC/G,aAAa,uDAAY,GAAG,4FAA4F;AACxH;AACA,CAAC;AACD,aAAa,uDAAY,GAAG,yFAAyF;AACrH,cAAc,uDAAY,GAAG,wFAAwF;AACrH,YAAY,uDAAY,GAAG,oFAAoF;AAC/G,aAAa,uDAAY,GAAG,wFAAwF;AACpH;AACA,CAAC;AACD;AACA;AACA;AACO;AACP,aAAa,uDAAY,GAAG,6FAA6F;AACzH,cAAc,uDAAY,GAAG,4FAA4F;AACzH,YAAY,uDAAY,GAAG,+FAA+F;AAC1H,aAAa,uDAAY,GAAG,4FAA4F;AACxH;AACA,CAAC;AACD,aAAa,uDAAY,GAAG,6FAA6F;AACzH,cAAc,uDAAY,GAAG,4FAA4F;AACzH,YAAY,uDAAY,GAAG,wFAAwF;AACnH,aAAa,uDAAY,GAAG,gGAAgG;AAC5H;AACA,CAAC;AACD,aAAa,uDAAY,GAAG,6FAA6F;AACzH,cAAc,uDAAY,GAAG,4FAA4F;AACzH,YAAY,uDAAY,GAAG,wFAAwF;AACnH,aAAa,uDAAY,GAAG,4FAA4F;AACxH;AACA,CAAC;AACD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACvIa;;AAEb,qBAAqB,mBAAO,CAAC,GAAc;AAC3C,YAAY,mBAAO,CAAC,KAAS;AAC7B,cAAc,mBAAO,CAAC,KAAW;AACjC;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gEAAgE;AACrF,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA,oBAAoB,oBAAoB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/TA;AACA;AACA;AACA;AAC4E;AACmB;AACxB;AACT;AACT;AACa;AACkB;AACI;AACjF;AACP;AACA;AACA,gCAAgC,iCAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4CAAyB;AACrC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgB;AAChB;AACA,IAAI,2BAAU,CAAC,qBAAG;AAClB,IAAI,2BAAU;AACd,YAAY,mBAAmB,eAAe,gDAAwB;AACtE,+BAA+B,mCAAa;AAC5C;AACA,cAAc,kCAAe;AAC7B;AACA;AACA,4BAA4B,iCAAe;AAC3C,qDAAqD,sCAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,sCAAiB;AAChH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,CAAC;;;;;;;;;;;;;;;;;;;ACvGD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACyD;AACC;AACJ;AACR;AAC8C;AACC;AACS;AACtC;AACI;AAC7D,uBAAuB,yCAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAQ;AAClC;AACA;AACA,QAAQ,iCAAiB,CAAC,gCAAU;AACpC;AACA;AACA,+EAA+E;AAC/E;AACA;AACA,QAAQ,0BAAK;AACb,6BAA6B,mCAAmB;AAChD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yFAAyF;AAC3I;AACA,SAAS;AACT,8BAA8B,aAAa;AAC3C,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW,uBAAK,qBAAqB;AACvE;AACA,kCAAkC,aAAa;AAC/C,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAAe;AAC9B;AACyB;AACzB,uCAAiB;;;;;;;AC/GjB;AACA;AACA;AACA;AACuD;AACoC;AAC7D;AACwB;AACsB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0CAAoB;AAClD;AACA,mCAAmC,kCAAkC;AACrE,kCAAkC,KAAK,QAAQ,iDAAiD;AAChG;AACA;AACA;AACA,kCAAkC,KAAK,WAAW,6BAA6B;AAC/E;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAS,gBAAgB,KAAK;AAC1C;AACA;AACA;AACA,YAAY,iBAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS;AACpE;AACA;AACA;AACA;AACA,kCAAkC,wCAAsB;AACxD;AACA;AACA,CAAC;AACM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA;AACA,wBAAwB,uBAAK;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAK;AACpC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtQA;AACA;AACA;AACA;AACA,IAAI,2BAAU,IAAI,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,IAAI,wBAAO,IAAI,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACgH;AACf;AACZ;AACJ;AACqC;AACvC;AACN;AACxB;AACG;AACiB;AACvB;AACqC;AACa;AACN;AACY;AACd;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAe;AAC/C,mCAAmC,iCAAe;AAClD;AACA,sCAAsC,iCAAe;AACrD,4HAA4H,UAAU;AACtI,8HAA8H,2BAA2B;AACzJ,+CAA+C,qCAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA,gBAAgB,QAAQ;AACxB,mEAAmE,eAAe;AAClF,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA,2EAA2E,0CAAoB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0CAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qCAAgB;AAC9C;AACA;AACA;AACA,4CAA4C,gDAAuB,UAAU,gBAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,gCAAiB;AAChC,SAAS;AACT;AACA,iCAAiC,iCAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uCAAuC,cAAc;AACrD;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,iCAAiC,iCAAY;AAC7C;AACA,oCAAoC,iDAAuB;AAC3D;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAuB;AACnD;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,cAAc;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,cAAc;AACxD;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,gDAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,wCAAyB;AACpD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,SAAS;AACT,YAAY,oCAAiB,OAAO;AACpC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAAU;AACjC,IAAI,wBAAO,IAAI,gDAAwB;AACvC,IAAI,wBAAO,IAAI,8DAA+B;AAC9C,IAAI,wBAAO,IAAI,+BAAe;AAC9B,IAAI,wBAAO,IAAI,yCAAoB;AACnC,IAAI,wBAAO,IAAI,cAAc;AAC7B;AACgC;AAChC,uDAA0B;AAC1B,iDAAoB,uCAAuC,qCAAY;AACvE;AACA;AACA;AACA,0BAA0B,0CAAiB;AAC3C,mBAAmB,wBAAQ;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+CAA+C,qCAAkB;AACjE,4CAA4C,+BAAe;AAC3D,iDAAiD,yCAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wBAAQ;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,QAAQ,0JAA0J;AACjR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;ACvdD;AACA;AACA;AACA;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,eAAe,SAAI,IAAI,SAAI;AAC3B,oCAAoC;AACpC;AACkE;AACF;AACkB;AACE;AAC1C;AACsC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,2EAAU;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAY;AACnC,yBAAyB,uDAAY;AACrC,wBAAwB,uDAAY,8CAA8C,EAAE,kOAAkO,6EAAQ;AAC9T,+BAA+B,uDAAY,GAAG,uEAAuE;AACrH,8BAA8B,uDAAY;AAC1C,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wFAAc;AAC7B,eAAe,+FAAkB;AACjC;AAC0C;AAC1C,kGAA0B;;;;;;;;;;;;;;;;;;AC9G1B;AACA;AACA;AACA;AAC0F;AACxC;AACO;AAClD,yBAAyB,0GAAe;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA,eAAe,yEAAQ;AACvB,eAAe,6DAAG;AAClB,eAAe,yEAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,mBAAmB,yEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACxEa;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,aAAa,mBAAO,CAAC,KAAqB;AAC1C,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,iBAAiB,mBAAO,CAAC,KAA0B;AACnD,qBAAqB,mBAAO,CAAC,KAAsC;AACnE,kCAAkC,mBAAO,CAAC,KAA6C;AACvF,YAAY,mBAAO,CAAC,KAAoB;AACxC,aAAa,mBAAO,CAAC,KAA+B;AACpD,sBAAsB,mBAAO,CAAC,KAAgC;AAC9D,wBAAwB,8CAAwD;AAChF,cAAc,mBAAO,CAAC,KAAsB;;AAE5C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iBAAiB,IAAI;;AAE/C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAI,iDAAiD;AACrD;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AC5CD;AACA;AACA;AACA;AAC2D;AACP;AACG;AAChD;AACP,oBAAoB;AACpB,sBAAsB;AACtB;AACA,uCAAuC,oEAAO;AAC9C;AACA;AACA;AACA,4BAA4B,uEAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,yCAAyC;AACzC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wCAAwC,mDAAmD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,uEAAc;AACtC;AACA;AACA;AACA,0BAA0B,uEAAc;AACxC,wBAAwB,uEAAc;AACtC;AACA;AACA;AACA;AACA,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uIAAuI;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA,iGAAiG;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,WAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,uEAAc;AACxC,wBAAwB,uEAAc;AACtC;AACA;AACA,kBAAkB,oEAAI;AACtB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzhBA;AACA;AACA;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,KAAW;AACrE,GAAG,CACsB;AACzB,CAAC,4BAA4B;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;;;;AC9GD,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACiK;AAC/C;AACf;AACqB;AAChC;AACvC;AACS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,yEAAa;AACY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO,GAAG,iDAAiD;AACnE;AACA;AACA,QAAQ,uEAAO,GAAG,kDAAkD;AACpE;AACA;AACA,CAAC,CAAC,yEAAa;AACmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,aAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,iFAAiB,iBAAiB,+BAA+B;AACzE,aAAa,iFAAK,sBAAsB,iFAAK;AAC7C;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,mEAAO;AAC/B;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,YAAY,sEAAM;AAClB;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qBAAqB,2EAAW,WAAW;AAC/F;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAK,kBAAkB,qCAAqC;AAC5E;AACA,aAAa,iFAAK;AAClB,YAAY,sEAAM,kBAAkB,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAI;AACxB,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2EAAW,uBAAuB,iFAAK;AACpD;AACA;AACA,aAAa,2EAAW,wBAAwB,iFAAK;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAS;AACrB;AACA,gBAAgB,yEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAU;AAClD;AACA;AACA;AACA;AACA;AACA,wCAAwC,0EAAU;AAClD;AACA;AACA,qCAAqC,0EAAU;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,uBAAuB,8EAAkB;AACzC;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA,gCAAgC,iFAAK;AACrC;AACA;AACA;AACA,wBAAwB,8EAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iFAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAgB;AAC7C;AACA;AACA;AACA,oDAAoD,uEAAgB,UAAU,uEAAgB,CAAC,qFAAqB,eAAe,eAAe;AAClJ;AACA,aAAa,iFAAK;AAClB;AACA,wCAAwC;AACxC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,aAAa,iFAAK,uCAAuC,iFAAK;AAC9D;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB,wBAAwB,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK;AAC1B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAQ;AACxB;AACA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,yEAAa;AACjG;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAK,oCAAoC,iFAAK;AACnE;AACA;AACA;AACA;AACA,mDAAmD,iFAAK;AACxD,wBAAwB,sEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAS;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAU,kBAAkB,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAiB,wBAAwB,QAAQ,0EAAU,gBAAgB,0EAAU,SAAS;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,wBAAwB,gEAAI;AAC5B;AACA;AACA,mDAAmD,4CAA4C,iEAAiE;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B;AACA;AACA;AACA,kEAAkE,qBAAqB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa,iFAAK;AAClB;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,kDAAkD,2CAA2C;AAC7F;AACA;AACA;AACA;AACA,YAAY,iFAAK;AACjB;AACA;AACA,mDAAmD,kBAAkB;AACrE;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA,qDAAqD,oBAAoB;AACzE;AACA,YAAY,iFAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uDAAuD,iFAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA;AACA,gBAAgB,iFAAK;AACrB;AACA;AACA;AACA,gBAAgB,qEAAM;AACtB,iBAAiB,iFAAK;AACtB,gBAAgB,wEAAY;AAC5B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2EAAW;AAC3B,gBAAgB,wEAAY;AAC5B,gBAAgB,wEAAY;AAC5B,oDAAoD,kFAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAM;AACtB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uEAAO;AAC9B;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,yEAAa;AACjG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,0EAAU,IAAI;AACtB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,iFAAqB;AAC7B;AACA;AACA,CAAC,CAAC,qEAAS;AACM;AACjB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4EAAa,UAAU,uDAAuD;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iFAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;;;;;;;;ACz+BxB;AACb,QAAQ,mBAAO,CAAC,KAAqB;AACrC,iBAAiB,mBAAO,CAAC,KAA+B;AACxD,6BAA6B,mBAAO,CAAC,KAAyC;;AAE9E;AACA;AACA,IAAI,uFAAuF;AAC3F;AACA,CAAC;;;;;;;;;;ACTD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAqB;AAClC;AACA;AACA,CAAC;;;;;;;;;;ACxBD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,oGAAmB;AAChC;AACA;AACA,CAAC;;;;;;;;ACxBD,eAAe,mBAAO,CAAC,KAAa;AACpC,eAAe,mBAAO,CAAC,KAAY;AACnC,eAAe,mBAAO,CAAC,KAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;AC/Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,iBAAiB;AACjI,eAAe,mBAAO,CAAC,KAAQ;AAC/B,cAAc,mBAAO,CAAC,KAAiB;AACvC,iBAAiB,mBAAO,CAAC,KAAsB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,YAAY,wBAAwB;AACpC;AACA,sBAAsB;AACtB;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,OAAO;AAC9D,sCAAsC,OAAO;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,IAAI;AAC3C;AACA;AACA,qBAAqB;AACrB;;;;;;;;;AC1JA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACwD;AACxD,2EAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,KAAK,EAAE,EAIV,CAAC;AACN,aAAa,qGAAsB;AACnC;AACA;AACA,CAAC;;;;;;;;;ACvBY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,mBAAO,CAAC,KAAmB;AACrD,sBAAsB,mBAAO,CAAC,KAAe;AAC7C,gBAAgB,mBAAO,CAAC,KAAS;AACjC,oBAAoB,mBAAO,CAAC,KAAa;AACzC,mBAAmB,mBAAO,CAAC,KAAY;AACvC,uBAAuB,mBAAO,CAAC,KAAgB;AAC/C,wBAAwB,mBAAO,CAAC,KAAiB;AACjD,+BAA+B,mBAAO,CAAC,KAAwB;AAC/D,qBAAqB,mBAAO,CAAC,KAAc;AAC3C,4BAA4B,mBAAO,CAAC,KAAqB;AACzD,cAAc,mBAAO,CAAC,KAAO;AAC7B,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,gBAAgB,mBAAO,CAAC,KAAS;AACjC,aAAa,mBAAO,CAAC,KAAM;AAC3B,mBAAmB,mBAAO,CAAC,KAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;;;;;;;;AC3Ca;;AAEb,oBAAoB,mBAAO,CAAC,KAA0B;AACtD,kBAAkB,mBAAO,CAAC,KAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/index.js","webpack:///./node_modules/lodash/multiply.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/textModelSearch.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/fast-uri/lib/schemes.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/commands/surroundSelectionCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorTypeOperations.js","webpack:///./node_modules/core-js/internals/to-string.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarArrow.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/abstractScrollbar.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/horizontalScrollbar.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/verticalScrollbar.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollableElement.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/goToSymbol.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentationLineProcessor.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/const.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/scheme/scheme.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestInlineCompletions.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/systemverilog/systemverilog.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/textToHtmlTokenizer.js","webpack:///./node_modules/core-js/internals/object-is-prototype-of.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/core-js/internals/get-iterator-direct.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/richEditBrackets.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/patch.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/rust/rust.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/rangeMap.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/rowCache.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/listView.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/event.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/codiconsLibrary.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/codicons.js","webpack:///./node_modules/core-js/internals/object-create.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/inspectTokens/inspectTokens.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/browser/wordSelections.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/clipboard/common/clipboardService.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/limitLength.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/iframe.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/mouseEvent.js","webpack:///./node_modules/monaco-editor/esm/vs/nls.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/resize.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/util.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/eolCounter.js","webpack:///./node_modules/core-js/modules/esnext.iterator.for-each.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/equal.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/abap/abap.contribution.js","webpack:///./node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/naturalLanguage/korean.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/filters.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/size.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/point.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/path-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/rect.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/primitives/matrix.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/appearance.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/enum/enum.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/diagram-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/container.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/text-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/canvas.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/basic-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/path-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/image-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/native-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/tooltip.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/port.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/annotation.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/common.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/flow-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/connector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/preview.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node-base.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/elements/html-element.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/fixed-user-handle.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/constraints-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/grid.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/swim-lane-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/container-interaction.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/actions.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/tool.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/connector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/ruler/ruler.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/ruler/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/ruler/ruler.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/selector.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/dictionary/umlactivity-shapes.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/keyboard-commands.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/svg-renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/overview/overview.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/diagram-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/icon.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/core/containers/stack-panel.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/uml-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layoutinfo.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/node.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/dom-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/utility/base-util.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/rendering/canvas-renderer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/page-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/service.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/grid-lines.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/ruler-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-mapping.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/data-source.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/layout-base.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/connector-editing.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/event-handlers.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/layer.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/command-manager.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/scroller.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/quad.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/spatial-search/spatial-search.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/serialization-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram/custom-cursor.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/line-routing.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/diagram.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/print-settings.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/data-binding/data-binding.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/context-menu.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/bpmn.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/connector-bridging.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/snapping.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/undo-redo.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/objects/layout-animation.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/interaction/line-distribution.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/hierarchical-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/mind-map.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/radial-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/symmetrical-layout.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/complex-hierarchical-tree.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/flow-chart-model.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/matrix-model.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/layout/flowChart/flow-chart-layout.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/connectorProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/labelProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/nodeProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/portProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/load-utility/modelProperties.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/diagram/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/symbol-palette/symbol-palette.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/symbol-palette/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/overview/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/src/index.js","webpack:///./node_modules/@syncfusion/ej2-diagrams/index.js","webpack:///./node_modules/core-js/internals/symbol-constructor-detection.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/range.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/pixelRatio.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/fastDomNode.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/ltr.js","webpack:///./node_modules/@syncfusion/ej2-vue-charts/src/accumulation-chart/series.directive.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/elementSizeObserver.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInputToggles.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/id.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/subset.js","webpack:///./node_modules/moment/locale/ku-kmr.js","webpack:///./node_modules/math-intrinsics/max.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/positionToOffset.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/textEdit.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/contains.js","webpack:///./node_modules/gopd/gOPD.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/findInput.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/replaceAllCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/search.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/replacePattern.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findOptionsWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findState.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/history/browser/historyWidgetKeybindingHint.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/find/browser/findController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/zoneWidget/browser/zoneWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/peekView/browser/peekView.js","webpack:///./node_modules/lodash/mergeWith.js","webpack:///./node_modules/moment/locale/ar-ps.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/textChange.js","webpack:///./node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/core-js/internals/use-symbol-as-uid.js","webpack:///./node_modules/dunder-proto/get.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/metadata.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/codegen/code.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHints.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/code.js","webpack:///./node_modules/stacktrace-js/stacktrace.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/label/common/label.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/highlightedlabel/highlightedLabel.js","webpack:///./node_modules/@syncfusion/ej2-data/src/adaptors.js","webpack:///./node_modules/core-js/modules/esnext.iterator.reduce.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/equals.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/hotReload.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/utils.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/lodash/uniqWith.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/uuid.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplaceCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/core-js/internals/iterator-close.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/process.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/azcli/azcli.contribution.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/call-bind-apply-helpers/functionCall.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/wordDistance.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/globalPointerMoveMonitor.js","webpack:///./node_modules/core-js/internals/function-name.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/mdx/mdx.contribution.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/pla/pla.contribution.js","webpack:///./node_modules/core-js/internals/is-symbol.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/fixBrackets.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/provideInlineCompletions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/singleTextEdit.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsSource.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/suggestWidgetInlineCompletionProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/commands.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/hoverParticipant.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsAccessibleView.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletions.contribution.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitLength.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/draft7.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/lifecycle.js","webpack:///./node_modules/call-bind-apply-helpers/functionApply.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/iconRegistry.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/typescript/typescript.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/if.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/core.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64-vlq.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/getHover.js","webpack:///./node_modules/lodash/_baseIndexOfWith.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languageFeatureDebounce.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/resizable/resizable.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/utils.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/index.js","webpack:///./node_modules/core-js/internals/correct-prototype-getter.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/dataType.js","webpack:///./node_modules/lodash/pullAll.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/bicep/bicep.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/textModelDefaults.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/editorCommon.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/ghostTextWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/editorState/browser/keybindingCancellation.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/editorState/browser/editorState.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/monaco-editor/esm/vs/base/parts/storage/common/storage.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/storage/common/storage.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/trustedTypes.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkeys.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/abstractTree.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/network.js","webpack:///./node_modules/call-bind-apply-helpers/actualApply.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/arrays.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaState.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/code.js","webpack:///./node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionContextKeys.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/dashboard-layout/panels.directive.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/utils.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/error-stack-parser/error-stack-parser.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/markdownHoverParticipant.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/dom.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/linePart.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLineRenderer.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHintsContribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/outlineModel.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/hierarchicalKind.js","webpack:///./node_modules/side-channel-list/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/defaults.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/tcl/tcl.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/accessibility/browser/accessibleViewRegistry.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/position.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/redshift/redshift.contribution.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/encodedTokenAttributes.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/core-js/internals/error-stack-clear.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/characterPair.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/electricCharacter.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/indentRules.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/onEnter.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/languageBracketsConfiguration.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfigurationRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/hiddenRangeModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/folding.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/utils.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/commands.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffEditor.contribution.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/toggleHighContrast/toggleHighContrast.js","webpack:///./node_modules/core-js/internals/try-to-string.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/strings.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/boolSchema.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/uri.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/mapping-list.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/color.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextkey/common/scanner.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextkey/common/contextkey.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/keyword.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/properties.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_baseSum.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/stacktrace-gps/stacktrace-gps.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/iterator.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/properties.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/core-js/internals/to-length.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/path.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/foldingRanges.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/util.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/derived.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/cypher/cypher.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/wordHelper.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/foldingDecorations.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/php/php.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colorUtils.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/baseColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/miscColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/editorColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/minimapColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/chartsColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/inputColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/listColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/menuColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/quickpickColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colors/searchColors.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/colorRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesTree.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/peek/referencesController.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/common/quickAccess.js","webpack:///./node_modules/@syncfusion/ej2-vue-querybuilder/src/query-builder/columns.directive.js","webpack:///./node_modules/core-js/internals/iterator-create-proxy.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/monaco-editor/esm/vs/language/typescript/monaco.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/format/index.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/extensions/common/extensions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/format/browser/format.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/ucs2length.js","webpack:///./node_modules/monaco-editor/esm/vs/language/html/monaco.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/codiconsUtil.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","webpack:///./node_modules/core-js/internals/is-object.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/source-map.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/simplify.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverDelegate2.js","webpack:///./node_modules/core-js/internals/html.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/ini/ini.contribution.js","webpack:///./node_modules/@syncfusion/ej2-data/src/manager.js","webpack:///./node_modules/core-js/internals/iterator-map.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/identifiers.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/parse-options.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorDetector.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/hcl/hcl.contribution.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/position.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_basePullAll.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/hash.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/resources.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/solidity/solidity.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/editorAction.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/xml/xml.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/codegen/scope.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/beforeEditPositionMapper.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/stopwatch.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/dataType.js","webpack:///./node_modules/core-js/internals/inherit-if-required.js","webpack:///./node_modules/core-js/modules/esnext.iterator.every.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/items2020.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/parse.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/cursorUndo/browser/cursorUndo.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/vb/vb.contribution.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/linesDiffComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/editOperation.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/lexon/lexon.contribution.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/core-js/internals/global.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/if.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/iconLabels.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/embeddedCodeEditorWidget.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/moveCaretCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/caretOperations.js","webpack:///./node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/commandIds.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/ghostTextWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/inlineEditHintsWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/inlineEditController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/commands.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/hoverParticipant.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineEdit/browser/inlineEdit.contribution.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/major.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/viewportSemanticTokens.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/tabFocus.js","webpack:///./node_modules/core-js/internals/set-size.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/html-validate/node_modules/semver/classes/range.js","webpack:///./node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/draft7.js","webpack:///./node_modules/json-source-map/index.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/findinput/replaceInput.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/history/browser/contextScopedHistoryWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/browser/defaultStyles.js","webpack:///./node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","webpack:///./node_modules/core-js/internals/shared.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/java/java.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/domFontInfo.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/redis/redis.contribution.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/core-js/internals/length-of-array-like.js","webpack:///./node_modules/core-js/internals/iterators.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/vue3-youtube/dist/vue3-youtube.umd.min.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorColumnSelection.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/coreCommands.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/limitItems.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/postiats/postiats.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/workspace/common/workspace.js","webpack:///./node_modules/html-validate/node_modules/json-schema-traverse/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveCommands.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/action/common/actionCommonCategories.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollElement.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollModelProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollContribution.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/lt.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/clean.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/applicability.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/characterClassifier.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/to-comparators.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/markers/common/markers.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/sparseMultilineTokens.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensProviderStyling.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHintsHover.js","webpack:///./node_modules/@syncfusion/ej2-vue-navigations/src/accordion/items.directive.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/popup/popup.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/csp/csp.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/actions.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/map.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/config/fontInfo.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/range.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/autorun.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/promise.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observable.js","webpack:///./node_modules/core-js/internals/set-is-superset-of.js","webpack:///./node_modules/core-js/internals/an-object.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/color.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/rename/browser/renameWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/rename/browser/rename.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokenizationRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/notification/common/notification.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursorCommon.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/lrucache.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/touch.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/tokenization.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/common/themes.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/browser/iconsStyleSheet.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneThemeService.js","webpack:///./node_modules/es-define-property/index.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/serviceCollection.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBoxCustom.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBoxNative.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/selectBox/selectBox.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionViewItems.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/st/st.contribution.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/discriminator/index.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/indexTreeModel.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelDecorations.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/lodash/min.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/fast-deep-equal/index.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/restructuredtext/restructuredtext.contribution.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/core-js/internals/document-all.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/textModelPart.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/freemarker2/freemarker2.contribution.js","webpack:///./node_modules/browser-detect/dist/browser-detect.es5.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/tokenization/browser/tokenization.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/worker/simpleWorker.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/defaultWorkerFactory.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/mirrorTextModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/linkComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/supports/inplaceReplaceSupport.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/legacyLinesDiffComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/linesDiffComputers.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/defaultDocumentColorsComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/findSectionHeaders.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/editorSimpleWorker.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/editorWorkerService.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/compare-build.js","webpack:///./node_modules/core-js/internals/normalize-string-argument.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/items2020.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/tokenizer.js","webpack:///./node_modules/lodash/forOwn.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/apex/apex.contribution.js","webpack:///./node_modules/core-js/internals/uid.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/applicability.js","webpack:///./node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/discriminator/types.js","webpack:///./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/event.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/satisfies.js","webpack:///./node_modules/core-js/internals/is-array.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/base.js","webpack:///./node_modules/pinia/node_modules/vue-demi/lib/index.mjs","webpack:///./node_modules/pinia/dist/pinia.mjs","webpack:///./node_modules/core-js/internals/array-set-length.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/inlineCompletionsHintsWidget.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/scope.js","webpack:///./node_modules/fast-uri/lib/utils.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/length.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/logging.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/index.js","webpack:///./node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/diff.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/helpQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneHelpQuickAccess.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/labels.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetVariables.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetSession.js","webpack:///./node_modules/es-errors/uri.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/pascaligo/pascaligo.contribution.js","webpack:///./node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/pattern.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/index.js","webpack:///./node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/immutable-json-patch/lib/esm/jsonPointer.js","webpack:///./node_modules/immutable-json-patch/lib/esm/typeguards.js","webpack:///./node_modules/immutable-json-patch/lib/esm/utils.js","webpack:///./node_modules/immutable-json-patch/lib/esm/immutabilityHelpers.js","webpack:///./node_modules/immutable-json-patch/lib/esm/immutableJSONPatch.js","webpack:///./node_modules/immutable-json-patch/lib/esm/revertJSONPatch.js","webpack:///./node_modules/jsonrepair/lib/esm/utils/JSONRepairError.js","webpack:///./node_modules/jsonrepair/lib/esm/utils/stringUtils.js","webpack:///./node_modules/jsonrepair/lib/esm/regular/jsonrepair.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/_baseToNumber.js","webpack:///./node_modules/lodash-es/_arrayMap.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/_baseToString.js","webpack:///./node_modules/lodash-es/_createMathOperation.js","webpack:///./node_modules/lodash-es/add.js","webpack:///./node_modules/lodash-es/_trimmedEndIndex.js","webpack:///./node_modules/lodash-es/_baseTrim.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/toFinite.js","webpack:///./node_modules/lodash-es/toInteger.js","webpack:///./node_modules/lodash-es/after.js","webpack:///./node_modules/lodash-es/identity.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_metaMap.js","webpack:///./node_modules/lodash-es/_baseSetData.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_createCtor.js","webpack:///./node_modules/lodash-es/_createBind.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/lodash-es/_composeArgs.js","webpack:///./node_modules/lodash-es/_composeArgsRight.js","webpack:///./node_modules/lodash-es/_countHolders.js","webpack:///./node_modules/lodash-es/_baseLodash.js","webpack:///./node_modules/lodash-es/_LazyWrapper.js","webpack:///./node_modules/lodash-es/noop.js","webpack:///./node_modules/lodash-es/_getData.js","webpack:///./node_modules/lodash-es/_realNames.js","webpack:///./node_modules/lodash-es/_getFuncName.js","webpack:///./node_modules/lodash-es/_LodashWrapper.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_wrapperClone.js","webpack:///./node_modules/lodash-es/wrapperLodash.js","webpack:///./node_modules/lodash-es/_isLaziable.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_setData.js","webpack:///./node_modules/lodash-es/_getWrapDetails.js","webpack:///./node_modules/lodash-es/_insertWrapDetails.js","webpack:///./node_modules/lodash-es/constant.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_baseFindIndex.js","webpack:///./node_modules/lodash-es/_baseIsNaN.js","webpack:///./node_modules/lodash-es/_strictIndexOf.js","webpack:///./node_modules/lodash-es/_baseIndexOf.js","webpack:///./node_modules/lodash-es/_arrayIncludes.js","webpack:///./node_modules/lodash-es/_updateWrapDetails.js","webpack:///./node_modules/lodash-es/_setWrapToString.js","webpack:///./node_modules/lodash-es/_createRecurry.js","webpack:///./node_modules/lodash-es/_getHolder.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/_reorder.js","webpack:///./node_modules/lodash-es/_replaceHolders.js","webpack:///./node_modules/lodash-es/_createHybrid.js","webpack:///./node_modules/lodash-es/_createCurry.js","webpack:///./node_modules/lodash-es/_createPartial.js","webpack:///./node_modules/lodash-es/_mergeData.js","webpack:///./node_modules/lodash-es/_createWrap.js","webpack:///./node_modules/lodash-es/ary.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/assign.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///./node_modules/lodash-es/assignIn.js","webpack:///./node_modules/lodash-es/assignInWith.js","webpack:///./node_modules/lodash-es/assignWith.js","webpack:///./node_modules/lodash-es/_isKey.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/lodash-es/_memoizeCapped.js","webpack:///./node_modules/lodash-es/_stringToPath.js","webpack:///./node_modules/lodash-es/toString.js","webpack:///./node_modules/lodash-es/_castPath.js","webpack:///./node_modules/lodash-es/_toKey.js","webpack:///./node_modules/lodash-es/_baseGet.js","webpack:///./node_modules/lodash-es/get.js","webpack:///./node_modules/lodash-es/_baseAt.js","webpack:///./node_modules/lodash-es/_arrayPush.js","webpack:///./node_modules/lodash-es/_isFlattenable.js","webpack:///./node_modules/lodash-es/_baseFlatten.js","webpack:///./node_modules/lodash-es/flatten.js","webpack:///./node_modules/lodash-es/_flatRest.js","webpack:///./node_modules/lodash-es/at.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/lodash-es/isError.js","webpack:///./node_modules/lodash-es/attempt.js","webpack:///./node_modules/lodash-es/before.js","webpack:///./node_modules/lodash-es/bind.js","webpack:///./node_modules/lodash-es/bindAll.js","webpack:///./node_modules/lodash-es/bindKey.js","webpack:///./node_modules/lodash-es/_baseSlice.js","webpack:///./node_modules/lodash-es/_castSlice.js","webpack:///./node_modules/lodash-es/_hasUnicode.js","webpack:///./node_modules/lodash-es/_asciiToArray.js","webpack:///./node_modules/lodash-es/_unicodeToArray.js","webpack:///./node_modules/lodash-es/_stringToArray.js","webpack:///./node_modules/lodash-es/_createCaseFirst.js","webpack:///./node_modules/lodash-es/upperFirst.js","webpack:///./node_modules/lodash-es/capitalize.js","webpack:///./node_modules/lodash-es/_arrayReduce.js","webpack:///./node_modules/lodash-es/_basePropertyOf.js","webpack:///./node_modules/lodash-es/_deburrLetter.js","webpack:///./node_modules/lodash-es/deburr.js","webpack:///./node_modules/lodash-es/_asciiWords.js","webpack:///./node_modules/lodash-es/_hasUnicodeWord.js","webpack:///./node_modules/lodash-es/_unicodeWords.js","webpack:///./node_modules/lodash-es/words.js","webpack:///./node_modules/lodash-es/_createCompounder.js","webpack:///./node_modules/lodash-es/camelCase.js","webpack:///./node_modules/lodash-es/castArray.js","webpack:///./node_modules/lodash-es/_createRound.js","webpack:///./node_modules/lodash-es/ceil.js","webpack:///./node_modules/lodash-es/chain.js","webpack:///./node_modules/lodash-es/chunk.js","webpack:///./node_modules/lodash-es/_baseClamp.js","webpack:///./node_modules/lodash-es/clamp.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_baseAssign.js","webpack:///./node_modules/lodash-es/_baseAssignIn.js","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/lodash-es/_arrayFilter.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_copySymbols.js","webpack:///./node_modules/lodash-es/_getSymbolsIn.js","webpack:///./node_modules/lodash-es/_copySymbolsIn.js","webpack:///./node_modules/lodash-es/_baseGetAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_getAllKeysIn.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_initCloneArray.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/lodash-es/_cloneDataView.js","webpack:///./node_modules/lodash-es/_cloneRegExp.js","webpack:///./node_modules/lodash-es/_cloneSymbol.js","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_initCloneByTag.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/lodash-es/_baseIsMap.js","webpack:///./node_modules/lodash-es/isMap.js","webpack:///./node_modules/lodash-es/_baseIsSet.js","webpack:///./node_modules/lodash-es/isSet.js","webpack:///./node_modules/lodash-es/_baseClone.js","webpack:///./node_modules/lodash-es/clone.js","webpack:///./node_modules/lodash-es/cloneDeep.js","webpack:///./node_modules/lodash-es/cloneDeepWith.js","webpack:///./node_modules/lodash-es/cloneWith.js","webpack:///./node_modules/lodash-es/commit.js","webpack:///./node_modules/lodash-es/compact.js","webpack:///./node_modules/lodash-es/concat.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_arraySome.js","webpack:///./node_modules/lodash-es/_cacheHas.js","webpack:///./node_modules/lodash-es/_equalArrays.js","webpack:///./node_modules/lodash-es/_mapToArray.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/lodash-es/_baseIsEqual.js","webpack:///./node_modules/lodash-es/_baseIsMatch.js","webpack:///./node_modules/lodash-es/_isStrictComparable.js","webpack:///./node_modules/lodash-es/_getMatchData.js","webpack:///./node_modules/lodash-es/_matchesStrictComparable.js","webpack:///./node_modules/lodash-es/_baseMatches.js","webpack:///./node_modules/lodash-es/_baseHasIn.js","webpack:///./node_modules/lodash-es/_hasPath.js","webpack:///./node_modules/lodash-es/hasIn.js","webpack:///./node_modules/lodash-es/_baseMatchesProperty.js","webpack:///./node_modules/lodash-es/_baseProperty.js","webpack:///./node_modules/lodash-es/_basePropertyDeep.js","webpack:///./node_modules/lodash-es/property.js","webpack:///./node_modules/lodash-es/_baseIteratee.js","webpack:///./node_modules/lodash-es/cond.js","webpack:///./node_modules/lodash-es/_baseConformsTo.js","webpack:///./node_modules/lodash-es/_baseConforms.js","webpack:///./node_modules/lodash-es/conforms.js","webpack:///./node_modules/lodash-es/conformsTo.js","webpack:///./node_modules/lodash-es/_arrayAggregator.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_baseAggregator.js","webpack:///./node_modules/lodash-es/_createAggregator.js","webpack:///./node_modules/lodash-es/countBy.js","webpack:///./node_modules/lodash-es/create.js","webpack:///./node_modules/lodash-es/curry.js","webpack:///./node_modules/lodash-es/curryRight.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./node_modules/lodash-es/defaultTo.js","webpack:///./node_modules/lodash-es/defaults.js","webpack:///./node_modules/lodash-es/_assignMergeValue.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/lodash-es/_safeGet.js","webpack:///./node_modules/lodash-es/toPlainObject.js","webpack:///./node_modules/lodash-es/_baseMergeDeep.js","webpack:///./node_modules/lodash-es/_baseMerge.js","webpack:///./node_modules/lodash-es/_customDefaultsMerge.js","webpack:///./node_modules/lodash-es/mergeWith.js","webpack:///./node_modules/lodash-es/defaultsDeep.js","webpack:///./node_modules/lodash-es/_baseDelay.js","webpack:///./node_modules/lodash-es/defer.js","webpack:///./node_modules/lodash-es/delay.js","webpack:///./node_modules/lodash-es/_arrayIncludesWith.js","webpack:///./node_modules/lodash-es/_baseDifference.js","webpack:///./node_modules/lodash-es/difference.js","webpack:///./node_modules/lodash-es/last.js","webpack:///./node_modules/lodash-es/differenceBy.js","webpack:///./node_modules/lodash-es/differenceWith.js","webpack:///./node_modules/lodash-es/divide.js","webpack:///./node_modules/lodash-es/drop.js","webpack:///./node_modules/lodash-es/dropRight.js","webpack:///./node_modules/lodash-es/_baseWhile.js","webpack:///./node_modules/lodash-es/dropRightWhile.js","webpack:///./node_modules/lodash-es/dropWhile.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./node_modules/lodash-es/_arrayEachRight.js","webpack:///./node_modules/lodash-es/_baseForRight.js","webpack:///./node_modules/lodash-es/_baseForOwnRight.js","webpack:///./node_modules/lodash-es/_baseEachRight.js","webpack:///./node_modules/lodash-es/forEachRight.js","webpack:///./node_modules/lodash-es/endsWith.js","webpack:///./node_modules/lodash-es/_baseToPairs.js","webpack:///./node_modules/lodash-es/_setToPairs.js","webpack:///./node_modules/lodash-es/_createToPairs.js","webpack:///./node_modules/lodash-es/toPairs.js","webpack:///./node_modules/lodash-es/toPairsIn.js","webpack:///./node_modules/lodash-es/_escapeHtmlChar.js","webpack:///./node_modules/lodash-es/escape.js","webpack:///./node_modules/lodash-es/escapeRegExp.js","webpack:///./node_modules/lodash-es/_arrayEvery.js","webpack:///./node_modules/lodash-es/_baseEvery.js","webpack:///./node_modules/lodash-es/every.js","webpack:///./node_modules/lodash-es/toLength.js","webpack:///./node_modules/lodash-es/_baseFill.js","webpack:///./node_modules/lodash-es/fill.js","webpack:///./node_modules/lodash-es/_baseFilter.js","webpack:///./node_modules/lodash-es/filter.js","webpack:///./node_modules/lodash-es/_createFind.js","webpack:///./node_modules/lodash-es/findIndex.js","webpack:///./node_modules/lodash-es/find.js","webpack:///./node_modules/lodash-es/_baseFindKey.js","webpack:///./node_modules/lodash-es/findKey.js","webpack:///./node_modules/lodash-es/findLastIndex.js","webpack:///./node_modules/lodash-es/findLast.js","webpack:///./node_modules/lodash-es/findLastKey.js","webpack:///./node_modules/lodash-es/head.js","webpack:///./node_modules/lodash-es/_baseMap.js","webpack:///./node_modules/lodash-es/map.js","webpack:///./node_modules/lodash-es/flatMap.js","webpack:///./node_modules/lodash-es/flatMapDeep.js","webpack:///./node_modules/lodash-es/flatMapDepth.js","webpack:///./node_modules/lodash-es/flattenDeep.js","webpack:///./node_modules/lodash-es/flattenDepth.js","webpack:///./node_modules/lodash-es/flip.js","webpack:///./node_modules/lodash-es/floor.js","webpack:///./node_modules/lodash-es/_createFlow.js","webpack:///./node_modules/lodash-es/flow.js","webpack:///./node_modules/lodash-es/flowRight.js","webpack:///./node_modules/lodash-es/forIn.js","webpack:///./node_modules/lodash-es/forInRight.js","webpack:///./node_modules/lodash-es/forOwn.js","webpack:///./node_modules/lodash-es/forOwnRight.js","webpack:///./node_modules/lodash-es/fromPairs.js","webpack:///./node_modules/lodash-es/_baseFunctions.js","webpack:///./node_modules/lodash-es/functions.js","webpack:///./node_modules/lodash-es/functionsIn.js","webpack:///./node_modules/lodash-es/groupBy.js","webpack:///./node_modules/lodash-es/_baseGt.js","webpack:///./node_modules/lodash-es/_createRelationalOperation.js","webpack:///./node_modules/lodash-es/gt.js","webpack:///./node_modules/lodash-es/gte.js","webpack:///./node_modules/lodash-es/_baseHas.js","webpack:///./node_modules/lodash-es/has.js","webpack:///./node_modules/lodash-es/_baseInRange.js","webpack:///./node_modules/lodash-es/inRange.js","webpack:///./node_modules/lodash-es/isString.js","webpack:///./node_modules/lodash-es/_baseValues.js","webpack:///./node_modules/lodash-es/values.js","webpack:///./node_modules/lodash-es/includes.js","webpack:///./node_modules/lodash-es/indexOf.js","webpack:///./node_modules/lodash-es/initial.js","webpack:///./node_modules/lodash-es/_baseIntersection.js","webpack:///./node_modules/lodash-es/_castArrayLikeObject.js","webpack:///./node_modules/lodash-es/intersection.js","webpack:///./node_modules/lodash-es/intersectionBy.js","webpack:///./node_modules/lodash-es/intersectionWith.js","webpack:///./node_modules/lodash-es/_baseInverter.js","webpack:///./node_modules/lodash-es/_createInverter.js","webpack:///./node_modules/lodash-es/invert.js","webpack:///./node_modules/lodash-es/invertBy.js","webpack:///./node_modules/lodash-es/_parent.js","webpack:///./node_modules/lodash-es/_baseInvoke.js","webpack:///./node_modules/lodash-es/invoke.js","webpack:///./node_modules/lodash-es/invokeMap.js","webpack:///./node_modules/lodash-es/_baseIsArrayBuffer.js","webpack:///./node_modules/lodash-es/isArrayBuffer.js","webpack:///./node_modules/lodash-es/isBoolean.js","webpack:///./node_modules/lodash-es/_baseIsDate.js","webpack:///./node_modules/lodash-es/isDate.js","webpack:///./node_modules/lodash-es/isElement.js","webpack:///./node_modules/lodash-es/isEmpty.js","webpack:///./node_modules/lodash-es/isEqual.js","webpack:///./node_modules/lodash-es/isEqualWith.js","webpack:///./node_modules/lodash-es/isFinite.js","webpack:///./node_modules/lodash-es/isInteger.js","webpack:///./node_modules/lodash-es/isMatch.js","webpack:///./node_modules/lodash-es/isMatchWith.js","webpack:///./node_modules/lodash-es/isNumber.js","webpack:///./node_modules/lodash-es/isNaN.js","webpack:///./node_modules/lodash-es/_isMaskable.js","webpack:///./node_modules/lodash-es/isNative.js","webpack:///./node_modules/lodash-es/isNil.js","webpack:///./node_modules/lodash-es/isNull.js","webpack:///./node_modules/lodash-es/_baseIsRegExp.js","webpack:///./node_modules/lodash-es/isRegExp.js","webpack:///./node_modules/lodash-es/isSafeInteger.js","webpack:///./node_modules/lodash-es/isUndefined.js","webpack:///./node_modules/lodash-es/isWeakMap.js","webpack:///./node_modules/lodash-es/isWeakSet.js","webpack:///./node_modules/lodash-es/iteratee.js","webpack:///./node_modules/lodash-es/join.js","webpack:///./node_modules/lodash-es/kebabCase.js","webpack:///./node_modules/lodash-es/keyBy.js","webpack:///./node_modules/lodash-es/_strictLastIndexOf.js","webpack:///./node_modules/lodash-es/lastIndexOf.js","webpack:///./node_modules/lodash-es/lowerCase.js","webpack:///./node_modules/lodash-es/lowerFirst.js","webpack:///./node_modules/lodash-es/_baseLt.js","webpack:///./node_modules/lodash-es/lt.js","webpack:///./node_modules/lodash-es/lte.js","webpack:///./node_modules/lodash-es/mapKeys.js","webpack:///./node_modules/lodash-es/mapValues.js","webpack:///./node_modules/lodash-es/matches.js","webpack:///./node_modules/lodash-es/matchesProperty.js","webpack:///./node_modules/lodash-es/_baseExtremum.js","webpack:///./node_modules/lodash-es/max.js","webpack:///./node_modules/lodash-es/maxBy.js","webpack:///./node_modules/lodash-es/_baseSum.js","webpack:///./node_modules/lodash-es/_baseMean.js","webpack:///./node_modules/lodash-es/mean.js","webpack:///./node_modules/lodash-es/meanBy.js","webpack:///./node_modules/lodash-es/merge.js","webpack:///./node_modules/lodash-es/method.js","webpack:///./node_modules/lodash-es/methodOf.js","webpack:///./node_modules/lodash-es/min.js","webpack:///./node_modules/lodash-es/minBy.js","webpack:///./node_modules/lodash-es/mixin.js","webpack:///./node_modules/lodash-es/multiply.js","webpack:///./node_modules/lodash-es/negate.js","webpack:///./node_modules/lodash-es/_iteratorToArray.js","webpack:///./node_modules/lodash-es/toArray.js","webpack:///./node_modules/lodash-es/next.js","webpack:///./node_modules/lodash-es/_baseNth.js","webpack:///./node_modules/lodash-es/nth.js","webpack:///./node_modules/lodash-es/nthArg.js","webpack:///./node_modules/lodash-es/_baseUnset.js","webpack:///./node_modules/lodash-es/_customOmitClone.js","webpack:///./node_modules/lodash-es/omit.js","webpack:///./node_modules/lodash-es/_baseSet.js","webpack:///./node_modules/lodash-es/_basePickBy.js","webpack:///./node_modules/lodash-es/pickBy.js","webpack:///./node_modules/lodash-es/omitBy.js","webpack:///./node_modules/lodash-es/once.js","webpack:///./node_modules/lodash-es/_baseSortBy.js","webpack:///./node_modules/lodash-es/_compareAscending.js","webpack:///./node_modules/lodash-es/_compareMultiple.js","webpack:///./node_modules/lodash-es/_baseOrderBy.js","webpack:///./node_modules/lodash-es/orderBy.js","webpack:///./node_modules/lodash-es/_createOver.js","webpack:///./node_modules/lodash-es/over.js","webpack:///./node_modules/lodash-es/_castRest.js","webpack:///./node_modules/lodash-es/overArgs.js","webpack:///./node_modules/lodash-es/overEvery.js","webpack:///./node_modules/lodash-es/overSome.js","webpack:///./node_modules/lodash-es/_baseRepeat.js","webpack:///./node_modules/lodash-es/_asciiSize.js","webpack:///./node_modules/lodash-es/_unicodeSize.js","webpack:///./node_modules/lodash-es/_stringSize.js","webpack:///./node_modules/lodash-es/_createPadding.js","webpack:///./node_modules/lodash-es/pad.js","webpack:///./node_modules/lodash-es/padEnd.js","webpack:///./node_modules/lodash-es/padStart.js","webpack:///./node_modules/lodash-es/parseInt.js","webpack:///./node_modules/lodash-es/partial.js","webpack:///./node_modules/lodash-es/partialRight.js","webpack:///./node_modules/lodash-es/partition.js","webpack:///./node_modules/lodash-es/_basePick.js","webpack:///./node_modules/lodash-es/pick.js","webpack:///./node_modules/lodash-es/plant.js","webpack:///./node_modules/lodash-es/propertyOf.js","webpack:///./node_modules/lodash-es/_baseIndexOfWith.js","webpack:///./node_modules/lodash-es/_basePullAll.js","webpack:///./node_modules/lodash-es/pullAll.js","webpack:///./node_modules/lodash-es/pull.js","webpack:///./node_modules/lodash-es/pullAllBy.js","webpack:///./node_modules/lodash-es/pullAllWith.js","webpack:///./node_modules/lodash-es/_basePullAt.js","webpack:///./node_modules/lodash-es/pullAt.js","webpack:///./node_modules/lodash-es/_baseRandom.js","webpack:///./node_modules/lodash-es/random.js","webpack:///./node_modules/lodash-es/_baseRange.js","webpack:///./node_modules/lodash-es/_createRange.js","webpack:///./node_modules/lodash-es/range.js","webpack:///./node_modules/lodash-es/rangeRight.js","webpack:///./node_modules/lodash-es/rearg.js","webpack:///./node_modules/lodash-es/_baseReduce.js","webpack:///./node_modules/lodash-es/reduce.js","webpack:///./node_modules/lodash-es/_arrayReduceRight.js","webpack:///./node_modules/lodash-es/reduceRight.js","webpack:///./node_modules/lodash-es/reject.js","webpack:///./node_modules/lodash-es/remove.js","webpack:///./node_modules/lodash-es/repeat.js","webpack:///./node_modules/lodash-es/replace.js","webpack:///./node_modules/lodash-es/rest.js","webpack:///./node_modules/lodash-es/result.js","webpack:///./node_modules/lodash-es/reverse.js","webpack:///./node_modules/lodash-es/round.js","webpack:///./node_modules/lodash-es/_arraySample.js","webpack:///./node_modules/lodash-es/_baseSample.js","webpack:///./node_modules/lodash-es/sample.js","webpack:///./node_modules/lodash-es/_shuffleSelf.js","webpack:///./node_modules/lodash-es/_arraySampleSize.js","webpack:///./node_modules/lodash-es/_baseSampleSize.js","webpack:///./node_modules/lodash-es/sampleSize.js","webpack:///./node_modules/lodash-es/set.js","webpack:///./node_modules/lodash-es/setWith.js","webpack:///./node_modules/lodash-es/_arrayShuffle.js","webpack:///./node_modules/lodash-es/_baseShuffle.js","webpack:///./node_modules/lodash-es/shuffle.js","webpack:///./node_modules/lodash-es/size.js","webpack:///./node_modules/lodash-es/slice.js","webpack:///./node_modules/lodash-es/snakeCase.js","webpack:///./node_modules/lodash-es/_baseSome.js","webpack:///./node_modules/lodash-es/some.js","webpack:///./node_modules/lodash-es/sortBy.js","webpack:///./node_modules/lodash-es/_baseSortedIndexBy.js","webpack:///./node_modules/lodash-es/_baseSortedIndex.js","webpack:///./node_modules/lodash-es/sortedIndex.js","webpack:///./node_modules/lodash-es/sortedIndexBy.js","webpack:///./node_modules/lodash-es/sortedIndexOf.js","webpack:///./node_modules/lodash-es/sortedLastIndex.js","webpack:///./node_modules/lodash-es/sortedLastIndexBy.js","webpack:///./node_modules/lodash-es/sortedLastIndexOf.js","webpack:///./node_modules/lodash-es/_baseSortedUniq.js","webpack:///./node_modules/lodash-es/sortedUniq.js","webpack:///./node_modules/lodash-es/sortedUniqBy.js","webpack:///./node_modules/lodash-es/split.js","webpack:///./node_modules/lodash-es/spread.js","webpack:///./node_modules/lodash-es/startCase.js","webpack:///./node_modules/lodash-es/startsWith.js","webpack:///./node_modules/lodash-es/stubObject.js","webpack:///./node_modules/lodash-es/stubString.js","webpack:///./node_modules/lodash-es/stubTrue.js","webpack:///./node_modules/lodash-es/subtract.js","webpack:///./node_modules/lodash-es/sum.js","webpack:///./node_modules/lodash-es/sumBy.js","webpack:///./node_modules/lodash-es/tail.js","webpack:///./node_modules/lodash-es/take.js","webpack:///./node_modules/lodash-es/takeRight.js","webpack:///./node_modules/lodash-es/takeRightWhile.js","webpack:///./node_modules/lodash-es/takeWhile.js","webpack:///./node_modules/lodash-es/tap.js","webpack:///./node_modules/lodash-es/_customDefaultsAssignIn.js","webpack:///./node_modules/lodash-es/_escapeStringChar.js","webpack:///./node_modules/lodash-es/_reInterpolate.js","webpack:///./node_modules/lodash-es/_reEscape.js","webpack:///./node_modules/lodash-es/_reEvaluate.js","webpack:///./node_modules/lodash-es/templateSettings.js","webpack:///./node_modules/lodash-es/template.js","webpack:///./node_modules/lodash-es/throttle.js","webpack:///./node_modules/lodash-es/thru.js","webpack:///./node_modules/lodash-es/times.js","webpack:///./node_modules/lodash-es/toIterator.js","webpack:///./node_modules/lodash-es/_baseWrapperValue.js","webpack:///./node_modules/lodash-es/wrapperValue.js","webpack:///./node_modules/lodash-es/toLower.js","webpack:///./node_modules/lodash-es/toPath.js","webpack:///./node_modules/lodash-es/toSafeInteger.js","webpack:///./node_modules/lodash-es/toUpper.js","webpack:///./node_modules/lodash-es/transform.js","webpack:///./node_modules/lodash-es/_charsEndIndex.js","webpack:///./node_modules/lodash-es/_charsStartIndex.js","webpack:///./node_modules/lodash-es/trim.js","webpack:///./node_modules/lodash-es/trimEnd.js","webpack:///./node_modules/lodash-es/trimStart.js","webpack:///./node_modules/lodash-es/truncate.js","webpack:///./node_modules/lodash-es/unary.js","webpack:///./node_modules/lodash-es/_unescapeHtmlChar.js","webpack:///./node_modules/lodash-es/unescape.js","webpack:///./node_modules/lodash-es/_createSet.js","webpack:///./node_modules/lodash-es/_baseUniq.js","webpack:///./node_modules/lodash-es/union.js","webpack:///./node_modules/lodash-es/unionBy.js","webpack:///./node_modules/lodash-es/unionWith.js","webpack:///./node_modules/lodash-es/uniq.js","webpack:///./node_modules/lodash-es/uniqBy.js","webpack:///./node_modules/lodash-es/uniqWith.js","webpack:///./node_modules/lodash-es/uniqueId.js","webpack:///./node_modules/lodash-es/unset.js","webpack:///./node_modules/lodash-es/unzip.js","webpack:///./node_modules/lodash-es/unzipWith.js","webpack:///./node_modules/lodash-es/_baseUpdate.js","webpack:///./node_modules/lodash-es/update.js","webpack:///./node_modules/lodash-es/updateWith.js","webpack:///./node_modules/lodash-es/upperCase.js","webpack:///./node_modules/lodash-es/valuesIn.js","webpack:///./node_modules/lodash-es/without.js","webpack:///./node_modules/lodash-es/wrap.js","webpack:///./node_modules/lodash-es/wrapperAt.js","webpack:///./node_modules/lodash-es/wrapperChain.js","webpack:///./node_modules/lodash-es/wrapperReverse.js","webpack:///./node_modules/lodash-es/_baseXor.js","webpack:///./node_modules/lodash-es/xor.js","webpack:///./node_modules/lodash-es/xorBy.js","webpack:///./node_modules/lodash-es/xorWith.js","webpack:///./node_modules/lodash-es/zip.js","webpack:///./node_modules/lodash-es/_baseZipObject.js","webpack:///./node_modules/lodash-es/zipObject.js","webpack:///./node_modules/lodash-es/zipObjectDeep.js","webpack:///./node_modules/lodash-es/zipWith.js","webpack:///./node_modules/lodash-es/array.default.js","webpack:///./node_modules/lodash-es/collection.default.js","webpack:///./node_modules/lodash-es/date.default.js","webpack:///./node_modules/lodash-es/function.default.js","webpack:///./node_modules/lodash-es/lang.default.js","webpack:///./node_modules/lodash-es/math.default.js","webpack:///./node_modules/lodash-es/number.default.js","webpack:///./node_modules/lodash-es/object.default.js","webpack:///./node_modules/lodash-es/seq.default.js","webpack:///./node_modules/lodash-es/string.default.js","webpack:///./node_modules/lodash-es/util.default.js","webpack:///./node_modules/lodash-es/_lazyClone.js","webpack:///./node_modules/lodash-es/_lazyReverse.js","webpack:///./node_modules/lodash-es/_getView.js","webpack:///./node_modules/lodash-es/_lazyValue.js","webpack:///./node_modules/lodash-es/lodash.default.js","webpack:///./node_modules/lodash-es/lodash.js","webpack:///./node_modules/@jsonquerylang/jsonquery/lib/jsonquery.js","webpack:///./node_modules/@fortawesome/free-regular-svg-icons/index.mjs","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.mjs","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack:///./node_modules/@marijn/find-cluster-break/src/index.js","webpack:///./node_modules/@codemirror/state/dist/index.js","webpack:///./node_modules/style-mod/src/style-mod.js","webpack:///./node_modules/w3c-keyname/index.js","webpack:///./node_modules/@codemirror/view/dist/index.js","webpack:///./node_modules/@lezer/common/dist/index.js","webpack:///./node_modules/@lezer/highlight/dist/index.js","webpack:///./node_modules/@codemirror/language/dist/index.js","webpack:///./node_modules/@codemirror/commands/dist/index.js","webpack:///./node_modules/crelt/index.js","webpack:///./node_modules/@codemirror/lint/dist/index.js","webpack:///./node_modules/@lezer/lr/dist/index.js","webpack:///./node_modules/@lezer/json/dist/index.js","webpack:///./node_modules/@codemirror/lang-json/dist/index.js","webpack:///./node_modules/@codemirror/search/dist/index.js","webpack:///./node_modules/@codemirror/autocomplete/dist/index.js","webpack:///./node_modules/@replit/codemirror-indentation-markers/dist/index.js","webpack:///./node_modules/vanilla-jsoneditor/index.js","webpack:///./node_modules/json-editor-vue/node_modules/vue-demi/lib/index.mjs","webpack:///./node_modules/json-editor-vue/dist/json-editor-vue.mjs","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/python/python.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/cache.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/config/diffEditor.js","webpack:///./node_modules/call-bound/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/registrations.contribution.js","webpack:///./node_modules/core-js/internals/define-built-in.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/format/browser/formatActions.js","webpack:///./node_modules/lodash/round.js","webpack:///./node_modules/core-js/internals/classof.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/resolverService.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/ime.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/multipleOf.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/splice.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/list.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/listWidget.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/uri.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/razor/razor.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/uint.js","webpack:///./node_modules/core-js/modules/esnext.iterator.some.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/enum.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineCompletions/browser/ghostText.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/format/format.js","webpack:///./node_modules/@syncfusion/ej2-vue-grids/src/grid/columns.directive.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/editorContextKeys.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/swift/swift.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/keyword.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/core-js/internals/set-iterate.js","webpack:///./node_modules/core-js/internals/object-get-own-property-names.js","webpack:///./node_modules/@syncfusion/ej2-lists/src/common/list-base.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/rsort.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedo.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/discriminator/index.js","webpack:///./node_modules/core-js/modules/esnext.set.intersection.v2.js","webpack:///./node_modules/core-js/internals/has-own-property.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/rangeMapping.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/core-js/internals/define-global-property.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHintsLocations.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/fsharp/fsharp.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/dnd.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/keybindings.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/opener/browser/link.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/csharp/csharp.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/oneOf.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/julia/julia.contribution.js","webpack:///./node_modules/stackframe/stackframe.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/enum.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/tfIdf.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/pickerQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/commandsQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneCommandsQuickAccess.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/rcompare.js","webpack:///./node_modules/core-js/internals/iterate-simple.js","webpack:///./node_modules/core-js/internals/function-bind-native.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/vuex/dist/vuex.esm-bundler.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/es-errors/eval.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/graphql/graphql.contribution.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/textResourceConfiguration.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-consumer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/commands/shiftCommand.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/ruby/ruby.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/shell/shell.contribution.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/errors.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/dnd.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/not.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/standalone/standaloneEnums.js","webpack:///./node_modules/core-js/internals/object-get-prototype-of.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/buffer.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/performance.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/core/id.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/perl/perl.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/dart/dart.contribution.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/core-js/modules/esnext.set.difference.v2.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/indentation/common/indentation.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/indentation/browser/indentation.js","webpack:///./node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/progress/common/progress.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js","webpack:///./node_modules/core-js/modules/es.array.push.js","webpack:///./node_modules/core-js/internals/set-union.js","webpack:///./node_modules/core-js/internals/is-array-iterator-method.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/errorMessage.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/widget.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/names.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/lineDecorations.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/re.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/inc.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/standaloneStrings.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/link/goToDefinitionAtPosition.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/intersects.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverTypes.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/rangeUtil.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLine.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/log/common/log.js","webpack:///./node_modules/core-js/internals/export.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/anyOf.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetParser.js","webpack:///./node_modules/core-js/internals/indexed-object.js","webpack:///./node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/combineTextEditInfos.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actions/browser/menuEntryActionViewItem.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/diff/diffChange.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/diff/diff.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/codegen/code.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/functional.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/editorColorRegistry.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/fast-uri/index.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingsRegistry.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/constants.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/common/collision.js","webpack:///./node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/renderingContext.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/neq.js","webpack:///./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/core/index.js","webpack:///./node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/pascal/pascal.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/window.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/core-js/internals/to-object.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/scss/scss.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/countBadge/countBadge.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/resolve.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/syntaxRangeProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/coffee/coffee.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/languageConfiguration.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/required.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/observableInternal/debugName.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/unicodeTextModelHighlighter.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/eq.js","webpack:///./node_modules/monaco-editor/esm/vs/language/css/monaco.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/referencesModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlayHints/browser/inlayHintsController.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/marshalling.js","webpack:///./node_modules/core-js/internals/make-built-in.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorMoveOperations.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/toggle/toggle.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/protobuf/protobuf.contribution.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/array-set.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/core-js/internals/get-iterator-method.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/editorExtensions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/snippet/browser/snippetController2.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/utils.js","webpack:///./node_modules/lodash/divide.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/symbols.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-node.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/core.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/cpp/cpp.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/fuzzyScorer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoSymbolQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/wordPartOperations/browser/wordPartOperations.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/compare-loose.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/button/button.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/jsonschemas/common/jsonContributionRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/canIUse.js","webpack:///./node_modules/@syncfusion/ej2-layouts/src/splitter/splitter.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/splitter/splitter.component.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/completionModel.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/charWidthReader.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/fontMeasurements.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/core/ref.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/source-map-generator.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/minor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languageFeatures.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextView.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/heuristicSequenceOptimizations.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/guidesTextModelPart.js","webpack:///./node_modules/core-js/internals/object-set-prototype-of.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/allOf.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/mime.js","webpack:///./node_modules/core-js/internals/set-is-subset-of.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/accessibility/common/accessibility.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/mysql/mysql.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/editStack.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/stringBuilder.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/opener/common/opener.js","webpack:///./node_modules/core-js/modules/esnext.iterator.filter.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdown.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/dropdown/dropdownActionViewItem.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/subschema.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/metadata.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/modesRegistry.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitItems.js","webpack:///./node_modules/core-js/internals/dom-exception-constants.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/binary-search.js","webpack:///./node_modules/lodash/mean.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/sort.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/marked/marked.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/markdownRenderer.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/format/browser/formattingEdit.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/browser.js","webpack:///./node_modules/core-js/internals/get-method.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/longLinesHelper/browser/longLinesHelper.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybinding.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/commands/trimTrailingWhitespaceCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/browser/moveLinesCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/browser/sortLinesCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/prefixSumComputer.js","webpack:///./node_modules/lodash/_baseLt.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/core-js/internals/define-built-ins.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/defaultDocumentColorProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/sb/sb.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/sectionHeaders/browser/sectionHeaders.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/vue-json-viewer/vue-json-viewer.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/core-js/internals/to-property-key.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/gt.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/errors.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/twig/twig.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/ecl/ecl.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickAccess/standaloneGotoLineQuickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/lineTokens.js","webpack:///./node_modules/clipboard/dist/clipboard.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/core-js/internals/iterators-core.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/@syncfusion/ej2-vue-charts/src/chart/series.directive.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/indentation.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/action/common/action.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actions/common/actions.js","webpack:///./node_modules/es-errors/syntax.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/format/format.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/cmp.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/textLength.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/editorDom.js","webpack:///./node_modules/core-js/internals/weak-map-basic-detection.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/textModelBracketPairs.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/bracketPairsTree.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsImpl.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/indentationGuesser.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/intervalTree.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/rbTreeBase.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBuffer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/fixedArray.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/contiguousMultilineTokens.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/contiguousMultilineTokensBuilder.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/textModelTokens.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/contiguousTokensEditing.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/contiguousTokensStore.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/tokens/sparseTokensStore.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/tokenizationTextModelPart.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/textModel.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestModel.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/json-schema-traverse/index.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/themables.js","webpack:///./node_modules/stack-generator/stack-generator.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/runtime/uri.js","webpack:///./node_modules/math-intrinsics/floor.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/format/index.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/powershell/powershell.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/rules.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/aria/aria.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPickerWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/standaloneColorPickerActions.js","webpack:///./node_modules/@syncfusion/ej2-vue-grids/src/grid/aggregates.directive.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/commands/common/commands.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/contains.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/sparql/sparql.contribution.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/smallImmutableSet.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/textModelGuides.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js","webpack:///./node_modules/@syncfusion/ej2-buttons/src/button/button.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/inlineProgress/browser/inlineProgress.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/monaco-editor/esm/vs/language/json/monaco.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/pgsql/pgsql.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/ajv.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/quick-sort.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/html/html.contribution.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/core-js/internals/create-iter-result-object.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/cursorColumns.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/common/types.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/numbers.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/platform.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/uniq.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/ref_error.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","webpack:///./node_modules/lodash/set.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js","webpack:///./node_modules/state-local/lib/es/state-local.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/config/index.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/utils/curry.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/utils/isObject.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/validators/index.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/utils/compose.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/loader/index.js","webpack:///./node_modules/@monaco-editor/loader/lib/es/index.js","webpack:///./node_modules/@guolao/vue-monaco-editor/node_modules/vue-demi/lib/index.mjs","webpack:///./node_modules/@guolao/vue-monaco-editor/lib/es/index.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/lazy.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/core-js/internals/is-null-or-undefined.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/core-js/internals/set-is-disjoint-from.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/ast.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/mips/mips.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/model.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/runtime/equal.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/fast-uri/lib/scopedChars.js","webpack:///./node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/cameligo/cameligo.contribution.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/hover/hoverDelegateFactory.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/r/r.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/outside.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/async.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionCommands.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionContributions.js","webpack:///./node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/_.contribution.js","webpack:///./node_modules/core-js/modules/esnext.set.union.v2.js","webpack:///./node_modules/vue-loader/dist/exportHelper.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/postEditWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/commands/replaceCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/severity.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/config/editorOptions.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/ternarySearchTree.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/resizableContentWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/contentHoverWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverOperation.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/contentHoverComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/contentHoverTypes.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/contentHoverController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/marginHoverComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/marginHoverWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverController.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/editorBrowser.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/contentHoverStatusBar.js","webpack:///./node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/extensions.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/splitview/splitview.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDnd.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/treeViewsDndService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/registry/common/platform.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/max-satisfying.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/subschema.js","webpack:///./node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/allOf.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/clipboard/browser/clipboard.js","webpack:///./node_modules/@syncfusion/ej2-base/src/util.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/hijri-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/observer.js","webpack:///./node_modules/@syncfusion/ej2-base/src/internationalization.js","webpack:///./node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/ajax.js","webpack:///./node_modules/@syncfusion/ej2-base/src/fetch.js","webpack:///./node_modules/@syncfusion/ej2-base/src/browser.js","webpack:///./node_modules/@syncfusion/ej2-base/src/event-handler.js","webpack:///./node_modules/@syncfusion/ej2-base/src/dom.js","webpack:///./node_modules/@syncfusion/ej2-base/src/base.js","webpack:///./node_modules/@syncfusion/ej2-base/src/notify-property-change.js","webpack:///./node_modules/@syncfusion/ej2-base/src/animation.js","webpack:///./node_modules/@syncfusion/ej2-base/src/module-loader.js","webpack:///./node_modules/@syncfusion/ej2-base/src/child-property.js","webpack:///./node_modules/@syncfusion/ej2-base/src/validate-lic.js","webpack:///./node_modules/@syncfusion/ej2-base/src/component.js","webpack:///./node_modules/@syncfusion/ej2-base/src/draggable.js","webpack:///./node_modules/@syncfusion/ej2-base/src/droppable.js","webpack:///./node_modules/@syncfusion/ej2-base/src/keyboard.js","webpack:///./node_modules/@syncfusion/ej2-base/src/l10n.js","webpack:///./node_modules/@syncfusion/ej2-base/src/touch.js","webpack:///./node_modules/@syncfusion/ej2-base/src/template.js","webpack:///./node_modules/@syncfusion/ej2-base/src/template-engine.js","webpack:///./node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","webpack:///./node_modules/@syncfusion/ej2-base/src/index.js","webpack:///./node_modules/@syncfusion/ej2-base/index.js","webpack:///./node_modules/math-intrinsics/min.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/toolbar/toolbar.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actions/browser/toolbar.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/html-validate/dist/es/utils/natural-join.js","webpack:///./node_modules/html-validate/dist/es/meta-helper.js","webpack:///./node_modules/html-validate/dist/es/elements.js","webpack:///./node_modules/kleur/colors.mjs","webpack:///./node_modules/html-validate/node_modules/@sidvind/better-ajv-errors/lib/esm/index.mjs","webpack:///./node_modules/kleur/index.mjs","webpack:///./node_modules/@html-validate/stylish/dist/esm/browser.js","webpack:///./node_modules/html-validate/dist/es/core.js","webpack:///./node_modules/html-validate/dist/es/core-browser.js","webpack:///./node_modules/html-validate/dist/es/browser.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/keyCodes.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/bat/bat.contribution.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","webpack:///./node_modules/core-js/internals/set-intersection.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/util.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/wgsl/wgsl.contribution.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/es-errors/index.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/core-js/internals/function-call.js","webpack:///./node_modules/es-errors/type.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/anchorSelect/browser/anchorSelect.js","webpack:///./node_modules/lodash/transform.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/pattern.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/dataTransfer.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/core-js/internals/get-iterator.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/go/go.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js","webpack:///./node_modules/math-intrinsics/round.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/autoIndent.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/get-proto/Object.getPrototypeOf.js","webpack:///./node_modules/core-js/internals/object-keys.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/const.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/objects.js","webpack:///./node_modules/lodash/_baseToNumber.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js","webpack:///./node_modules/math-intrinsics/abs.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/lightBulbWidget.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/codegen/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorAtomicMoveOperations.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/side-channel-weakmap/index.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/scala/scala.contribution.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/offsetRange.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/core-js/modules/esnext.iterator.find.js","webpack:///./node_modules/core-js/internals/iterate.js","webpack:///./node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/common/quickInput.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeAction.js","webpack:///./node_modules/math-intrinsics/sign.js","webpack:///./node_modules/call-bind-apply-helpers/index.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js","webpack:///./node_modules/html-validate/node_modules/semver/classes/comparator.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/runtime/validation_error.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/core-js/internals/a-possible-prototype.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/markdownRenderer/browser/markdownRenderer.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/min-version.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actions/common/menuService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/referenceSearch/standaloneReferenceSearch.js","webpack:///./node_modules/@vue/reactivity/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","webpack:///./node_modules/vue/node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","webpack:///./node_modules/vue/dist/vue.esm-bundler.js","webpack:///./node_modules/lodash/_createRound.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/comment/browser/blockCommentCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/comment/browser/lineCommentCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/comment/browser/comment.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languageSelector.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/prerelease.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/multicursor/browser/multicursor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionKeybindingResolver.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionMenu.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actionWidget/browser/actionList.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/actionWidget/browser/actionWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/diffAlgorithm.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/navigator.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/history.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/inputbox/inputBox.js","webpack:///./node_modules/vue-router/dist/vue-router.mjs","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/contextmenu/browser/contextmenu.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/dependencies.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/math-intrinsics/pow.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorContributions.js","webpack:///./node_modules/core-js/internals/function-bind-context.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/compare.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/telemetry/common/telemetry.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/typespec/typespec.contribution.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/message/browser/messageController.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/markerDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/migrateOptions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/config/editorConfiguration.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewEventHandler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/viewPart.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/mouseTarget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/mouseHandler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/pointerHandler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/dynamicViewOverlay.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lineNumbers/lineNumbers.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/margin/margin.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/mouseCursor/mouseCursor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaHandler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/viewController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/viewLayer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/viewOverlays.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/viewUserInputEvents.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/blockDecorations/blockDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/contentWidgets/contentWidgets.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/currentLineHighlight/currentLineHighlight.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/decorations/decorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/editorScrollbar/editorScrollbar.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/glyphMargin/glyphMargin.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/indentGuides/indentGuides.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/domReadingContext.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/lines/viewLines.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/linesDecorations/linesDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/marginDecorations/marginDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/rgba.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/minimapTokensColorTracker.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharSheet.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharRenderer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapPreBaked.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimapCharRendererFactory.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/fonts.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/minimap/minimap.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/scrollDecoration/scrollDecoration.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/selections/selections.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewCursors/viewCursors.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/viewZones/viewZones.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/viewParts/whitespace/whitespace.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLinesViewportData.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/editorTheme.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewContext.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/modelLineProjectionData.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/view/domLineBreaksComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/codeEditorContributions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/monospaceLineBreaksComputer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/oneCursor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorCollection.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorContext.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewEvents.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModelEventDispatcher.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/linesLayout.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewLayout/viewLayout.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/modelLineProjection.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelLines.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/glyphLanesModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/viewModelImpl.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/validate/boolSchema.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/actionbar/actionbar.js","webpack:///./node_modules/jmespath/jmespath.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/ajv.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/language.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverActionIds.js","webpack:///./node_modules/core-js/internals/well-known-symbol.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/runtime/validation_error.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/monaco.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/editor.all.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/edcore.main.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/editor.main.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/editor.main.js?193d","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/sophia/sophia.contribution.js","webpack:///./node_modules/@syncfusion/ej2-vue-progressbar/src/progressbar/annotations.directive.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/coerce.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/extpath.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/cancellation.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/symbolNavigation.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/goToCommands.js","webpack:///./node_modules/core-js/internals/fails.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@syncfusion/ej2-vue-layouts/src/splitter/panesettings.directive.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/webWorker.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCommon.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchLexer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/colorizer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/abstractCodeEditorService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditorService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/layout/browser/layoutService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLayoutService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/undoRedo/common/undoRedoService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensStylingService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languageFeatureRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languageFeaturesService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/hoverService/hoverWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/contextview/contextview.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextViewService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/hoverService/updatableHoverWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/hoverService/hoverService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/configuration/common/configurationModels.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/keybindingResolver.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/abstractKeybindingService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/resolvedKeybindingItem.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/keybinding/common/usLayoutResolvedKeybinding.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languagesAssociations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languagesRegistry.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/languageService.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/menu/menu.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextMenuHandler.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextview/browser/contextMenuService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/editor/common/editor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/openerService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorationsService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/modelService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickAccess.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/linkedText.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputUtils.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInput.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/progressbar/progressbar.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputBox.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/comparers.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputTree.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputActions.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputController.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/quickinput/browser/quickInputService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/quickInput/standaloneQuickInputService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/accessibility/browser/accessibilityService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/clipboard/browser/clipboardService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/contextkey/browser/contextKeyService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/graph.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiationService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/markers/common/markerService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/configuration/common/configurations.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/log/common/logService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneServices.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/objectPool.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidgetImpl.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/colors.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/multiDiffEditor/multiDiffEditorWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/common/monarch/monarchCompile.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLanguages.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/editor.api.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/editor.api.js?6677","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/accessibleDiffViewer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/features/movedBlocksLinesFeature.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorDecorations.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorSash.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffProviderFactoryService.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffEditorViewModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/renderLines.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/utils/editorGutter.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/textModelText.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/features/gutterFeature.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/features/overviewRulerFeature.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/features/revertButtonsFeature.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/observable/common/platformObservableUtils.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/observableUtilities.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/components/diffEditorEditors.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/delegatingEditorImpl.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffEditorOptions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/diffEditorWidget.js","webpack:///./node_modules/es-errors/range.js","webpack:///./node_modules/core-js/internals/a-callable.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/types.js","webpack:///./node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/@syncfusion/ej2-vue-navigations/src/tab/items.directive.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/flow9/flow9.contribution.js","webpack:///./node_modules/core-js/internals/function-uncurry-this.js","webpack:///./node_modules/es-errors/ref.js","webpack:///./node_modules/es-object-atoms/index.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_createMathOperation.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/stacktrace-gps/node_modules/source-map/lib/base64.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/lineRange.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/links/browser/getLinks.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/links/browser/links.js","webpack:///./node_modules/side-channel-map/index.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/items.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/core-js/internals/math-trunc.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/enterAction.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/stableEditorScroll.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/markerDecorations.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorPickerModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorPickerWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/colorPicker/browser/colorHoverParticipant.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/names.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/pug/pug.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/utils.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/dynamicProgrammingDiffing.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/algorithms/myersDiffAlgorithm.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/linesSliceCharSequence.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/computeMovedLines.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/lineSequence.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/diff/defaultLinesDiffComputer/defaultLinesDiffComputer.js","webpack:///./node_modules/core-js/modules/esnext.iterator.map.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/elixir/elixir.contribution.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/powerquery/powerquery.contribution.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/instantiation.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/gtr.js","webpack:///./node_modules/lodash/_baseMean.js","webpack:///./node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverActions.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/markerHoverParticipant.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverAccessibleViews.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/hover/browser/hoverContribution.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/wordCharacterClassifier.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensStyling.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/instantiation/common/descriptors.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/core-js/internals/set-difference.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/textModelEvents.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/standalone/common/standaloneTheme.js","webpack:///./node_modules/core-js/internals/set-symmetric-difference.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/core-js/internals/get-set-record.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/msdax/msdax.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/glob.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/validation/limitNumber.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/core-js/internals/ordinary-to-primitive.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/index.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabel.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/config/editorZoom.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/workspace/common/workspaceTrust.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/core-js/internals/set-method-accept-set-like.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/config/editorConfigurationSchema.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/index.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/discriminator/types.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/min-satisfying.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/qsharp/qsharp.contribution.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/linkedList.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/brackets.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/configuration/common/configuration.js","webpack:///./node_modules/@syncfusion/ej2-buttons/src/common/common.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestMemory.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codeAction/browser/codeActionModel.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/lte.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/caretOperations/browser/transpose.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/sql/sql.contribution.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/not.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/applicator/items.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js","webpack:///./node_modules/html-validate/node_modules/semver/ranges/valid.js","webpack:///./node_modules/html-validate/node_modules/semver/classes/semver.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/sash/sash.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/thenElse.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/assert.js","webpack:///./node_modules/natural-compare-lite/index.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/codeEditorService.js","webpack:///./node_modules/@syncfusion/ej2-data/src/query.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/keyboardEvent.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/indentation/common/indentUtils.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/html-validate/node_modules/semver/internal/debug.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/list/listPaging.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/table/tableWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/objectTreeModel.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/objectTree.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/asyncDataTree.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/dataTree.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/list/browser/listService.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/scrollbar/scrollbarState.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/environment/common/environment.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/formattedTextRenderer.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/collections.js","webpack:///./node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/lodash/add.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dnd/browser/dragAndDropCommand.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/dnd/browser/dnd.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/decorators.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/themeService.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/compile/rules.js","webpack:///./node_modules/core-js/internals/set-clone.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/theme/common/theme.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorWordOperations.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/handlebars/handlebars.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/htmlContent.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/editorWorker.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/editorFeatures.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/hover/browser/hover.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/runtime/ucs2length.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/component-base.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/template.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/src/index.js","webpack:///./node_modules/@syncfusion/ej2-vue-base/index.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/core-js/internals/an-instance.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/indentRangeProvider.js","webpack:///./node_modules/@syncfusion/ej2-data/src/util.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/semanticTokensDto.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/getSemanticTokens.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js","webpack:///./node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/semanticTokens/common/semanticTokensConfig.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/markdown/markdown.contribution.js","webpack:///./node_modules/core-js/internals/to-integer-or-infinity.js","webpack:///./node_modules/vanilla-jsoneditor/node_modules/ajv/dist/vocabularies/core/ref.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/iconLabel/iconLabels.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/dnd/browser/dnd.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/m3/m3.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js","webpack:///./node_modules/core-js/internals/to-string-tag-support.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/valid.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/browser/markerNavigationService.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/severityIcon/browser/severityIcon.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/browser/gotoErrorWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/gotoError/browser/gotoError.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/lodash/subtract.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/dompurify/dompurify.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/validate/defaults.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/editorBaseApi.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/controller/textAreaInput.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggest.js","webpack:///./node_modules/html-validate/node_modules/semver/index.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/wordContextKey.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestAlternatives.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestCommitCharacters.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestOvertypingCapturer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestWidgetStatus.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/files/common/files.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/services/getIconClasses.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestController.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/get-proto/index.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/core/selection.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/limitProperties.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/validation/required.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/diffEditorBreadcrumbs/browser/contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/errors.js","webpack:///./node_modules/core-js/internals/set-helpers.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/math-intrinsics/isNaN.js","webpack:///./node_modules/lodash/max.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/scrollable.js","webpack:///./node_modules/monaco-editor/esm/vs/platform/dialogs/common/dialogs.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/idGenerator.js","webpack:///./node_modules/html-validate/node_modules/semver/functions/gte.js","webpack:///./node_modules/core-js/internals/is-callable.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/browser/provideSignatureHelp.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/browser/parameterHintsModel.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/css/css.contribution.js","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/keybindingLabel/keybindingLabel.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/ref_error.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/lua/lua.contribution.js","webpack:///./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/dockerfile/dockerfile.contribution.js","webpack:///./node_modules/core-js/internals/object-define-properties.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/viewModel/overviewZoneManager.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/liquid/liquid.contribution.js","webpack:///./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/concat23Trees.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/nodeReader.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/model/bracketPairsTextModelPart/bracketPairsTree/parser.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/languages/nullTokenize.js","webpack:///./node_modules/core-js/internals/a-set.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/env.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/const.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/time.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack:///./node_modules/@vue/devtools-api/lib/esm/index.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/objective-c/objective-c.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/arraysFind.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/common/cursor/cursorDeleteOperations.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/monaco-editor/esm/vs/base/browser/ui/tree/tree.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/widget/diffEditor/features/hideUnchangedRegionsFeature.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/monaco-editor/esm/vs/base/common/keybindingLabels.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelens.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codeLensCache.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelensWidget.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/codelens/browser/codelensController.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/browser/services/bulkEditService.js","webpack:///./node_modules/core-js/modules/esnext.iterator.constructor.js","webpack:///./node_modules/monaco-editor/esm/vs/editor/contrib/folding/browser/foldingModel.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/@syncfusion/ej2-notifications/src/toast/toast.js","webpack:///./node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/kotlin/kotlin.contribution.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/less/less.contribution.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/compile/resolve.js","webpack:///./node_modules/monaco-editor/esm/vs/basic-languages/clojure/clojure.contribution.js","webpack:///./node_modules/html-validate/node_modules/ajv/dist/vocabularies/applicator/index.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","var createMathOperation = require('./_createMathOperation');\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nmodule.exports = multiply;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { FindMatch, SearchData } from '../model.js';\nconst LIMIT_FIND_COUNT = 999;\nexport class SearchParams {\n constructor(searchString, isRegex, matchCase, wordSeparators) {\n this.searchString = searchString;\n this.isRegex = isRegex;\n this.matchCase = matchCase;\n this.wordSeparators = wordSeparators;\n }\n parseSearchRequest() {\n if (this.searchString === '') {\n return null;\n }\n // Try to create a RegExp out of the params\n let multiline;\n if (this.isRegex) {\n multiline = isMultilineRegexSource(this.searchString);\n }\n else {\n multiline = (this.searchString.indexOf('\\n') >= 0);\n }\n let regex = null;\n try {\n regex = strings.createRegExp(this.searchString, this.isRegex, {\n matchCase: this.matchCase,\n wholeWord: false,\n multiline: multiline,\n global: true,\n unicode: true\n });\n }\n catch (err) {\n return null;\n }\n if (!regex) {\n return null;\n }\n let canUseSimpleSearch = (!this.isRegex && !multiline);\n if (canUseSimpleSearch && this.searchString.toLowerCase() !== this.searchString.toUpperCase()) {\n // casing might make a difference\n canUseSimpleSearch = this.matchCase;\n }\n return new SearchData(regex, this.wordSeparators ? getMapForWordSeparators(this.wordSeparators, []) : null, canUseSimpleSearch ? this.searchString : null);\n }\n}\nexport function isMultilineRegexSource(searchString) {\n if (!searchString || searchString.length === 0) {\n return false;\n }\n for (let i = 0, len = searchString.length; i < len; i++) {\n const chCode = searchString.charCodeAt(i);\n if (chCode === 10 /* CharCode.LineFeed */) {\n return true;\n }\n if (chCode === 92 /* CharCode.Backslash */) {\n // move to next char\n i++;\n if (i >= len) {\n // string ends with a \\\n break;\n }\n const nextChCode = searchString.charCodeAt(i);\n if (nextChCode === 110 /* CharCode.n */ || nextChCode === 114 /* CharCode.r */ || nextChCode === 87 /* CharCode.W */) {\n return true;\n }\n }\n }\n return false;\n}\nexport function createFindMatch(range, rawMatches, captureMatches) {\n if (!captureMatches) {\n return new FindMatch(range, null);\n }\n const matches = [];\n for (let i = 0, len = rawMatches.length; i < len; i++) {\n matches[i] = rawMatches[i];\n }\n return new FindMatch(range, matches);\n}\nclass LineFeedCounter {\n constructor(text) {\n const lineFeedsOffsets = [];\n let lineFeedsOffsetsLen = 0;\n for (let i = 0, textLen = text.length; i < textLen; i++) {\n if (text.charCodeAt(i) === 10 /* CharCode.LineFeed */) {\n lineFeedsOffsets[lineFeedsOffsetsLen++] = i;\n }\n }\n this._lineFeedsOffsets = lineFeedsOffsets;\n }\n findLineFeedCountBeforeOffset(offset) {\n const lineFeedsOffsets = this._lineFeedsOffsets;\n let min = 0;\n let max = lineFeedsOffsets.length - 1;\n if (max === -1) {\n // no line feeds\n return 0;\n }\n if (offset <= lineFeedsOffsets[0]) {\n // before first line feed\n return 0;\n }\n while (min < max) {\n const mid = min + ((max - min) / 2 >> 0);\n if (lineFeedsOffsets[mid] >= offset) {\n max = mid - 1;\n }\n else {\n if (lineFeedsOffsets[mid + 1] >= offset) {\n // bingo!\n min = mid;\n max = mid;\n }\n else {\n min = mid + 1;\n }\n }\n }\n return min + 1;\n }\n}\nexport class TextModelSearch {\n static findMatches(model, searchParams, searchRange, captureMatches, limitResultCount) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return [];\n }\n if (searchData.regex.multiline) {\n return this._doFindMatchesMultiline(model, searchRange, new Searcher(searchData.wordSeparators, searchData.regex), captureMatches, limitResultCount);\n }\n return this._doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount);\n }\n /**\n * Multiline search always executes on the lines concatenated with \\n.\n * We must therefore compensate for the count of \\n in case the model is CRLF\n */\n static _getMultilineMatchRange(model, deltaOffset, text, lfCounter, matchIndex, match0) {\n let startOffset;\n let lineFeedCountBeforeMatch = 0;\n if (lfCounter) {\n lineFeedCountBeforeMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex);\n startOffset = deltaOffset + matchIndex + lineFeedCountBeforeMatch /* add as many \\r as there were \\n */;\n }\n else {\n startOffset = deltaOffset + matchIndex;\n }\n let endOffset;\n if (lfCounter) {\n const lineFeedCountBeforeEndOfMatch = lfCounter.findLineFeedCountBeforeOffset(matchIndex + match0.length);\n const lineFeedCountInMatch = lineFeedCountBeforeEndOfMatch - lineFeedCountBeforeMatch;\n endOffset = startOffset + match0.length + lineFeedCountInMatch /* add as many \\r as there were \\n */;\n }\n else {\n endOffset = startOffset + match0.length;\n }\n const startPosition = model.getPositionAt(startOffset);\n const endPosition = model.getPositionAt(endOffset);\n return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n }\n static _doFindMatchesMultiline(model, searchRange, searcher, captureMatches, limitResultCount) {\n const deltaOffset = model.getOffsetAt(searchRange.getStartPosition());\n // We always execute multiline search over the lines joined with \\n\n // This makes it that \\n will match the EOL for both CRLF and LF models\n // We compensate for offset errors in `_getMultilineMatchRange`\n const text = model.getValueInRange(searchRange, 1 /* EndOfLinePreference.LF */);\n const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n const result = [];\n let counter = 0;\n let m;\n searcher.reset(0);\n while ((m = searcher.next(text))) {\n result[counter++] = createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n if (counter >= limitResultCount) {\n return result;\n }\n }\n return result;\n }\n static _doFindMatchesLineByLine(model, searchRange, searchData, captureMatches, limitResultCount) {\n const result = [];\n let resultLen = 0;\n // Early case for a search range that starts & stops on the same line number\n if (searchRange.startLineNumber === searchRange.endLineNumber) {\n const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n // Collect results from first line\n const text = model.getLineContent(searchRange.startLineNumber).substring(searchRange.startColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.startLineNumber, searchRange.startColumn - 1, resultLen, result, captureMatches, limitResultCount);\n // Collect results from middle lines\n for (let lineNumber = searchRange.startLineNumber + 1; lineNumber < searchRange.endLineNumber && resultLen < limitResultCount; lineNumber++) {\n resultLen = this._findMatchesInLine(searchData, model.getLineContent(lineNumber), lineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n }\n // Collect results from last line\n if (resultLen < limitResultCount) {\n const text = model.getLineContent(searchRange.endLineNumber).substring(0, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, text, searchRange.endLineNumber, 0, resultLen, result, captureMatches, limitResultCount);\n }\n return result;\n }\n static _findMatchesInLine(searchData, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n const wordSeparators = searchData.wordSeparators;\n if (!captureMatches && searchData.simpleSearch) {\n const searchString = searchData.simpleSearch;\n const searchStringLen = searchString.length;\n const textLength = text.length;\n let lastMatchIndex = -searchStringLen;\n while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n }\n return resultLen;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n let m;\n // Reset regex to search from the beginning\n searcher.reset(0);\n do {\n m = searcher.next(text);\n if (m) {\n result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n static findNextMatch(model, searchParams, searchStart, captureMatches) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n if (searchData.regex.multiline) {\n return this._doFindNextMatchMultiline(model, searchStart, searcher, captureMatches);\n }\n return this._doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches);\n }\n static _doFindNextMatchMultiline(model, searchStart, searcher, captureMatches) {\n const searchTextStart = new Position(searchStart.lineNumber, 1);\n const deltaOffset = model.getOffsetAt(searchTextStart);\n const lineCount = model.getLineCount();\n // We always execute multiline search over the lines joined with \\n\n // This makes it that \\n will match the EOL for both CRLF and LF models\n // We compensate for offset errors in `_getMultilineMatchRange`\n const text = model.getValueInRange(new Range(searchTextStart.lineNumber, searchTextStart.column, lineCount, model.getLineMaxColumn(lineCount)), 1 /* EndOfLinePreference.LF */);\n const lfCounter = (model.getEOL() === '\\r\\n' ? new LineFeedCounter(text) : null);\n searcher.reset(searchStart.column - 1);\n const m = searcher.next(text);\n if (m) {\n return createFindMatch(this._getMultilineMatchRange(model, deltaOffset, text, lfCounter, m.index, m[0]), m, captureMatches);\n }\n if (searchStart.lineNumber !== 1 || searchStart.column !== 1) {\n // Try again from the top\n return this._doFindNextMatchMultiline(model, new Position(1, 1), searcher, captureMatches);\n }\n return null;\n }\n static _doFindNextMatchLineByLine(model, searchStart, searcher, captureMatches) {\n const lineCount = model.getLineCount();\n const startLineNumber = searchStart.lineNumber;\n // Look in first line\n const text = model.getLineContent(startLineNumber);\n const r = this._findFirstMatchInLine(searcher, text, startLineNumber, searchStart.column, captureMatches);\n if (r) {\n return r;\n }\n for (let i = 1; i <= lineCount; i++) {\n const lineIndex = (startLineNumber + i - 1) % lineCount;\n const text = model.getLineContent(lineIndex + 1);\n const r = this._findFirstMatchInLine(searcher, text, lineIndex + 1, 1, captureMatches);\n if (r) {\n return r;\n }\n }\n return null;\n }\n static _findFirstMatchInLine(searcher, text, lineNumber, fromColumn, captureMatches) {\n // Set regex to search from column\n searcher.reset(fromColumn - 1);\n const m = searcher.next(text);\n if (m) {\n return createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n }\n return null;\n }\n static findPreviousMatch(model, searchParams, searchStart, captureMatches) {\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n if (searchData.regex.multiline) {\n return this._doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches);\n }\n return this._doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches);\n }\n static _doFindPreviousMatchMultiline(model, searchStart, searcher, captureMatches) {\n const matches = this._doFindMatchesMultiline(model, new Range(1, 1, searchStart.lineNumber, searchStart.column), searcher, captureMatches, 10 * LIMIT_FIND_COUNT);\n if (matches.length > 0) {\n return matches[matches.length - 1];\n }\n const lineCount = model.getLineCount();\n if (searchStart.lineNumber !== lineCount || searchStart.column !== model.getLineMaxColumn(lineCount)) {\n // Try again with all content\n return this._doFindPreviousMatchMultiline(model, new Position(lineCount, model.getLineMaxColumn(lineCount)), searcher, captureMatches);\n }\n return null;\n }\n static _doFindPreviousMatchLineByLine(model, searchStart, searcher, captureMatches) {\n const lineCount = model.getLineCount();\n const startLineNumber = searchStart.lineNumber;\n // Look in first line\n const text = model.getLineContent(startLineNumber).substring(0, searchStart.column - 1);\n const r = this._findLastMatchInLine(searcher, text, startLineNumber, captureMatches);\n if (r) {\n return r;\n }\n for (let i = 1; i <= lineCount; i++) {\n const lineIndex = (lineCount + startLineNumber - i - 1) % lineCount;\n const text = model.getLineContent(lineIndex + 1);\n const r = this._findLastMatchInLine(searcher, text, lineIndex + 1, captureMatches);\n if (r) {\n return r;\n }\n }\n return null;\n }\n static _findLastMatchInLine(searcher, text, lineNumber, captureMatches) {\n let bestResult = null;\n let m;\n searcher.reset(0);\n while ((m = searcher.next(text))) {\n bestResult = createFindMatch(new Range(lineNumber, m.index + 1, lineNumber, m.index + 1 + m[0].length), m, captureMatches);\n }\n return bestResult;\n }\n}\nfunction leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n if (matchStartIndex === 0) {\n // Match starts at start of string\n return true;\n }\n const charBefore = text.charCodeAt(matchStartIndex - 1);\n if (wordSeparators.get(charBefore) !== 0 /* WordCharacterClass.Regular */) {\n // The character before the match is a word separator\n return true;\n }\n if (charBefore === 13 /* CharCode.CarriageReturn */ || charBefore === 10 /* CharCode.LineFeed */) {\n // The character before the match is line break or carriage return.\n return true;\n }\n if (matchLength > 0) {\n const firstCharInMatch = text.charCodeAt(matchStartIndex);\n if (wordSeparators.get(firstCharInMatch) !== 0 /* WordCharacterClass.Regular */) {\n // The first character inside the match is a word separator\n return true;\n }\n }\n return false;\n}\nfunction rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n if (matchStartIndex + matchLength === textLength) {\n // Match ends at end of string\n return true;\n }\n const charAfter = text.charCodeAt(matchStartIndex + matchLength);\n if (wordSeparators.get(charAfter) !== 0 /* WordCharacterClass.Regular */) {\n // The character after the match is a word separator\n return true;\n }\n if (charAfter === 13 /* CharCode.CarriageReturn */ || charAfter === 10 /* CharCode.LineFeed */) {\n // The character after the match is line break or carriage return.\n return true;\n }\n if (matchLength > 0) {\n const lastCharInMatch = text.charCodeAt(matchStartIndex + matchLength - 1);\n if (wordSeparators.get(lastCharInMatch) !== 0 /* WordCharacterClass.Regular */) {\n // The last character in the match is a word separator\n return true;\n }\n }\n return false;\n}\nexport function isValidMatch(wordSeparators, text, textLength, matchStartIndex, matchLength) {\n return (leftIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength)\n && rightIsWordBounday(wordSeparators, text, textLength, matchStartIndex, matchLength));\n}\nexport class Searcher {\n constructor(wordSeparators, searchRegex) {\n this._wordSeparators = wordSeparators;\n this._searchRegex = searchRegex;\n this._prevMatchStartIndex = -1;\n this._prevMatchLength = 0;\n }\n reset(lastIndex) {\n this._searchRegex.lastIndex = lastIndex;\n this._prevMatchStartIndex = -1;\n this._prevMatchLength = 0;\n }\n next(text) {\n const textLength = text.length;\n let m;\n do {\n if (this._prevMatchStartIndex + this._prevMatchLength === textLength) {\n // Reached the end of the line\n return null;\n }\n m = this._searchRegex.exec(text);\n if (!m) {\n return null;\n }\n const matchStartIndex = m.index;\n const matchLength = m[0].length;\n if (matchStartIndex === this._prevMatchStartIndex && matchLength === this._prevMatchLength) {\n if (matchLength === 0) {\n // the search result is an empty string and won't advance `regex.lastIndex`, so `regex.exec` will stuck here\n // we attempt to recover from that by advancing by two if surrogate pair found and by one otherwise\n if (strings.getNextCodePoint(text, textLength, this._searchRegex.lastIndex) > 0xFFFF) {\n this._searchRegex.lastIndex += 2;\n }\n else {\n this._searchRegex.lastIndex += 1;\n }\n continue;\n }\n // Exit early if the regex matches the same range twice\n return null;\n }\n this._prevMatchStartIndex = matchStartIndex;\n this._prevMatchLength = matchLength;\n if (!this._wordSeparators || isValidMatch(this._wordSeparators, text, textLength, matchStartIndex, matchLength)) {\n return m;\n }\n } while (m);\n return null;\n }\n}\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","'use strict'\n\nconst UUID_REG = /^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nfunction isSecure (wsComponents) {\n return typeof wsComponents.secure === 'boolean' ? wsComponents.secure : String(wsComponents.scheme).toLowerCase() === 'wss'\n}\n\nfunction httpParse (components) {\n if (!components.host) {\n components.error = components.error || 'HTTP URIs must have a host.'\n }\n\n return components\n}\n\nfunction httpSerialize (components) {\n const secure = String(components.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (components.port === (secure ? 443 : 80) || components.port === '') {\n components.port = undefined\n }\n\n // normalize the empty path\n if (!components.path) {\n components.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return components\n}\n\nfunction wsParse (wsComponents) {\n// indicate if the secure flag is set\n wsComponents.secure = isSecure(wsComponents)\n\n // construct resouce name\n wsComponents.resourceName = (wsComponents.path || '/') + (wsComponents.query ? '?' + wsComponents.query : '')\n wsComponents.path = undefined\n wsComponents.query = undefined\n\n return wsComponents\n}\n\nfunction wsSerialize (wsComponents) {\n// normalize the default port\n if (wsComponents.port === (isSecure(wsComponents) ? 443 : 80) || wsComponents.port === '') {\n wsComponents.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponents.secure === 'boolean') {\n wsComponents.scheme = (wsComponents.secure ? 'wss' : 'ws')\n wsComponents.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponents.resourceName) {\n const [path, query] = wsComponents.resourceName.split('?')\n wsComponents.path = (path && path !== '/' ? path : undefined)\n wsComponents.query = query\n wsComponents.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponents.fragment = undefined\n\n return wsComponents\n}\n\nfunction urnParse (urnComponents, options) {\n if (!urnComponents.path) {\n urnComponents.error = 'URN can not be parsed'\n return urnComponents\n }\n const matches = urnComponents.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n urnComponents.nid = matches[1].toLowerCase()\n urnComponents.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponents.nid}`\n const schemeHandler = SCHEMES[urnScheme]\n urnComponents.path = undefined\n\n if (schemeHandler) {\n urnComponents = schemeHandler.parse(urnComponents, options)\n }\n } else {\n urnComponents.error = urnComponents.error || 'URN can not be parsed.'\n }\n\n return urnComponents\n}\n\nfunction urnSerialize (urnComponents, options) {\n const scheme = options.scheme || urnComponents.scheme || 'urn'\n const nid = urnComponents.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = SCHEMES[urnScheme]\n\n if (schemeHandler) {\n urnComponents = schemeHandler.serialize(urnComponents, options)\n }\n\n const uriComponents = urnComponents\n const nss = urnComponents.nss\n uriComponents.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponents\n}\n\nfunction urnuuidParse (urnComponents, options) {\n const uuidComponents = urnComponents\n uuidComponents.uuid = uuidComponents.nss\n uuidComponents.nss = undefined\n\n if (!options.tolerant && (!uuidComponents.uuid || !UUID_REG.test(uuidComponents.uuid))) {\n uuidComponents.error = uuidComponents.error || 'UUID is not valid.'\n }\n\n return uuidComponents\n}\n\nfunction urnuuidSerialize (uuidComponents) {\n const urnComponents = uuidComponents\n // normalize UUID\n urnComponents.nss = (uuidComponents.uuid || '').toLowerCase()\n return urnComponents\n}\n\nconst http = {\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst https = {\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n}\n\nconst ws = {\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n}\n\nconst wss = {\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n}\n\nconst urn = {\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n}\n\nconst urnuuid = {\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n}\n\nconst SCHEMES = {\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n}\n\nmodule.exports = SCHEMES\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nexport class SurroundSelectionCommand {\n constructor(range, charBeforeSelection, charAfterSelection) {\n this._range = range;\n this._charBeforeSelection = charBeforeSelection;\n this._charAfterSelection = charAfterSelection;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(new Range(this._range.startLineNumber, this._range.startColumn, this._range.startLineNumber, this._range.startColumn), this._charBeforeSelection);\n builder.addTrackedEditOperation(new Range(this._range.endLineNumber, this._range.endColumn, this._range.endLineNumber, this._range.endColumn), this._charAfterSelection);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const firstOperationRange = inverseEditOperations[0].range;\n const secondOperationRange = inverseEditOperations[1].range;\n return new Selection(firstOperationRange.endLineNumber, firstOperationRange.endColumn, secondOperationRange.endLineNumber, secondOperationRange.endColumn - this._charAfterSelection.length);\n }\n}\n/**\n * A surround selection command that runs after composition finished.\n */\nexport class CompositionSurroundSelectionCommand {\n constructor(_position, _text, _charAfter) {\n this._position = _position;\n this._text = _text;\n this._charAfter = _charAfter;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(new Range(this._position.lineNumber, this._position.column, this._position.lineNumber, this._position.column), this._text + this._charAfter);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const opRange = inverseEditOperations[0].range;\n return new Selection(opRange.endLineNumber, opRange.startColumn, opRange.endLineNumber, opRange.endColumn - this._charAfter.length);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { ReplaceCommand, ReplaceCommandWithOffsetCursorState, ReplaceCommandWithoutChangingPosition, ReplaceCommandThatPreservesSelection } from '../commands/replaceCommand.js';\nimport { ShiftCommand } from '../commands/shiftCommand.js';\nimport { CompositionSurroundSelectionCommand, SurroundSelectionCommand } from '../commands/surroundSelectionCommand.js';\nimport { EditOperationResult, isQuote } from '../cursorCommon.js';\nimport { getMapForWordSeparators } from '../core/wordCharacterClassifier.js';\nimport { Range } from '../core/range.js';\nimport { Position } from '../core/position.js';\nimport { IndentAction } from '../languages/languageConfiguration.js';\nimport { getIndentationAtPosition } from '../languages/languageConfigurationRegistry.js';\nimport { createScopedLineTokens } from '../languages/supports.js';\nimport { getIndentActionForType, getIndentForEnter, getInheritIndentForLine } from '../languages/autoIndent.js';\nimport { getEnterAction } from '../languages/enterAction.js';\nexport class TypeOperations {\n static indent(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ShiftCommand(selections[i], {\n isUnshift: false,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n }, config.languageConfigurationService);\n }\n return commands;\n }\n static outdent(config, model, selections) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ShiftCommand(selections[i], {\n isUnshift: true,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n }, config.languageConfigurationService);\n }\n return commands;\n }\n static shiftIndent(config, indentation, count) {\n count = count || 1;\n return ShiftCommand.shiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n }\n static unshiftIndent(config, indentation, count) {\n count = count || 1;\n return ShiftCommand.unshiftIndent(indentation, indentation.length + count, config.tabSize, config.indentSize, config.insertSpaces);\n }\n static _distributedPaste(config, model, selections, text) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], text[i]);\n }\n return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _simplePaste(config, model, selections, text, pasteOnNewLine) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n const position = selection.getPosition();\n if (pasteOnNewLine && !selection.isEmpty()) {\n pasteOnNewLine = false;\n }\n if (pasteOnNewLine && text.indexOf('\\n') !== text.length - 1) {\n pasteOnNewLine = false;\n }\n if (pasteOnNewLine) {\n // Paste entire line at the beginning of line\n const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, 1);\n commands[i] = new ReplaceCommandThatPreservesSelection(typeSelection, text, selection, true);\n }\n else {\n commands[i] = new ReplaceCommand(selection, text);\n }\n }\n return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText) {\n if (pasteOnNewLine) {\n return null;\n }\n if (selections.length === 1) {\n return null;\n }\n if (multicursorText && multicursorText.length === selections.length) {\n return multicursorText;\n }\n if (config.multiCursorPaste === 'spread') {\n // Try to spread the pasted text in case the line count matches the cursor count\n // Remove trailing \\n if present\n if (text.charCodeAt(text.length - 1) === 10 /* CharCode.LineFeed */) {\n text = text.substr(0, text.length - 1);\n }\n // Remove trailing \\r if present\n if (text.charCodeAt(text.length - 1) === 13 /* CharCode.CarriageReturn */) {\n text = text.substr(0, text.length - 1);\n }\n const lines = strings.splitLines(text);\n if (lines.length === selections.length) {\n return lines;\n }\n }\n return null;\n }\n static paste(config, model, selections, text, pasteOnNewLine, multicursorText) {\n const distributedPaste = this._distributePasteToCursors(config, selections, text, pasteOnNewLine, multicursorText);\n if (distributedPaste) {\n selections = selections.sort(Range.compareRangesUsingStarts);\n return this._distributedPaste(config, model, selections, distributedPaste);\n }\n else {\n return this._simplePaste(config, model, selections, text, pasteOnNewLine);\n }\n }\n static _goodIndentForLine(config, model, lineNumber) {\n let action = null;\n let indentation = '';\n const expectedIndentAction = getInheritIndentForLine(config.autoIndent, model, lineNumber, false, config.languageConfigurationService);\n if (expectedIndentAction) {\n action = expectedIndentAction.action;\n indentation = expectedIndentAction.indentation;\n }\n else if (lineNumber > 1) {\n let lastLineNumber;\n for (lastLineNumber = lineNumber - 1; lastLineNumber >= 1; lastLineNumber--) {\n const lineText = model.getLineContent(lastLineNumber);\n const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineText);\n if (nonWhitespaceIdx >= 0) {\n break;\n }\n }\n if (lastLineNumber < 1) {\n // No previous line with content found\n return null;\n }\n const maxColumn = model.getLineMaxColumn(lastLineNumber);\n const expectedEnterAction = getEnterAction(config.autoIndent, model, new Range(lastLineNumber, maxColumn, lastLineNumber, maxColumn), config.languageConfigurationService);\n if (expectedEnterAction) {\n indentation = expectedEnterAction.indentation + expectedEnterAction.appendText;\n }\n }\n if (action) {\n if (action === IndentAction.Indent) {\n indentation = TypeOperations.shiftIndent(config, indentation);\n }\n if (action === IndentAction.Outdent) {\n indentation = TypeOperations.unshiftIndent(config, indentation);\n }\n indentation = config.normalizeIndentation(indentation);\n }\n if (!indentation) {\n return null;\n }\n return indentation;\n }\n static _replaceJumpToNextIndent(config, model, selection, insertsAutoWhitespace) {\n let typeText = '';\n const position = selection.getStartPosition();\n if (config.insertSpaces) {\n const visibleColumnFromColumn = config.visibleColumnFromColumn(model, position);\n const indentSize = config.indentSize;\n const spacesCnt = indentSize - (visibleColumnFromColumn % indentSize);\n for (let i = 0; i < spacesCnt; i++) {\n typeText += ' ';\n }\n }\n else {\n typeText = '\\t';\n }\n return new ReplaceCommand(selection, typeText, insertsAutoWhitespace);\n }\n static tab(config, model, selections) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (selection.isEmpty()) {\n const lineText = model.getLineContent(selection.startLineNumber);\n if (/^\\s*$/.test(lineText) && model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n let goodIndent = this._goodIndentForLine(config, model, selection.startLineNumber);\n goodIndent = goodIndent || '\\t';\n const possibleTypeText = config.normalizeIndentation(goodIndent);\n if (!lineText.startsWith(possibleTypeText)) {\n commands[i] = new ReplaceCommand(new Range(selection.startLineNumber, 1, selection.startLineNumber, lineText.length + 1), possibleTypeText, true);\n continue;\n }\n }\n commands[i] = this._replaceJumpToNextIndent(config, model, selection, true);\n }\n else {\n if (selection.startLineNumber === selection.endLineNumber) {\n const lineMaxColumn = model.getLineMaxColumn(selection.startLineNumber);\n if (selection.startColumn !== 1 || selection.endColumn !== lineMaxColumn) {\n // This is a single line selection that is not the entire line\n commands[i] = this._replaceJumpToNextIndent(config, model, selection, false);\n continue;\n }\n }\n commands[i] = new ShiftCommand(selection, {\n isUnshift: false,\n tabSize: config.tabSize,\n indentSize: config.indentSize,\n insertSpaces: config.insertSpaces,\n useTabStops: config.useTabStops,\n autoIndent: config.autoIndent\n }, config.languageConfigurationService);\n }\n }\n return commands;\n }\n static compositionType(prevEditOperationType, config, model, selections, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n const commands = selections.map(selection => this._compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta));\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),\n shouldPushStackElementAfter: false\n });\n }\n static _compositionType(model, selection, text, replacePrevCharCnt, replaceNextCharCnt, positionDelta) {\n if (!selection.isEmpty()) {\n // looks like https://github.com/microsoft/vscode/issues/2773\n // where a cursor operation occurred before a canceled composition\n // => ignore composition\n return null;\n }\n const pos = selection.getPosition();\n const startColumn = Math.max(1, pos.column - replacePrevCharCnt);\n const endColumn = Math.min(model.getLineMaxColumn(pos.lineNumber), pos.column + replaceNextCharCnt);\n const range = new Range(pos.lineNumber, startColumn, pos.lineNumber, endColumn);\n const oldText = model.getValueInRange(range);\n if (oldText === text && positionDelta === 0) {\n // => ignore composition that doesn't do anything\n return null;\n }\n return new ReplaceCommandWithOffsetCursorState(range, text, 0, positionDelta);\n }\n static _typeCommand(range, text, keepPosition) {\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, text, true);\n }\n else {\n return new ReplaceCommand(range, text, true);\n }\n }\n static _enter(config, model, keepPosition, range) {\n if (config.autoIndent === 0 /* EditorAutoIndentStrategy.None */) {\n return TypeOperations._typeCommand(range, '\\n', keepPosition);\n }\n if (!model.tokenization.isCheapToTokenize(range.getStartPosition().lineNumber) || config.autoIndent === 1 /* EditorAutoIndentStrategy.Keep */) {\n const lineText = model.getLineContent(range.startLineNumber);\n const indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n }\n const r = getEnterAction(config.autoIndent, model, range, config.languageConfigurationService);\n if (r) {\n if (r.indentAction === IndentAction.None) {\n // Nothing special\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n }\n else if (r.indentAction === IndentAction.Indent) {\n // Indent once\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(r.indentation + r.appendText), keepPosition);\n }\n else if (r.indentAction === IndentAction.IndentOutdent) {\n // Ultra special\n const normalIndent = config.normalizeIndentation(r.indentation);\n const increasedIndent = config.normalizeIndentation(r.indentation + r.appendText);\n const typeText = '\\n' + increasedIndent + '\\n' + normalIndent;\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, typeText, true);\n }\n else {\n return new ReplaceCommandWithOffsetCursorState(range, typeText, -1, increasedIndent.length - normalIndent.length, true);\n }\n }\n else if (r.indentAction === IndentAction.Outdent) {\n const actualIndentation = TypeOperations.unshiftIndent(config, r.indentation);\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(actualIndentation + r.appendText), keepPosition);\n }\n }\n const lineText = model.getLineContent(range.startLineNumber);\n const indentation = strings.getLeadingWhitespace(lineText).substring(0, range.startColumn - 1);\n if (config.autoIndent >= 4 /* EditorAutoIndentStrategy.Full */) {\n const ir = getIndentForEnter(config.autoIndent, model, range, {\n unshiftIndent: (indent) => {\n return TypeOperations.unshiftIndent(config, indent);\n },\n shiftIndent: (indent) => {\n return TypeOperations.shiftIndent(config, indent);\n },\n normalizeIndentation: (indent) => {\n return config.normalizeIndentation(indent);\n }\n }, config.languageConfigurationService);\n if (ir) {\n let oldEndViewColumn = config.visibleColumnFromColumn(model, range.getEndPosition());\n const oldEndColumn = range.endColumn;\n const newLineContent = model.getLineContent(range.endLineNumber);\n const firstNonWhitespace = strings.firstNonWhitespaceIndex(newLineContent);\n if (firstNonWhitespace >= 0) {\n range = range.setEndPosition(range.endLineNumber, Math.max(range.endColumn, firstNonWhitespace + 1));\n }\n else {\n range = range.setEndPosition(range.endLineNumber, model.getLineMaxColumn(range.endLineNumber));\n }\n if (keepPosition) {\n return new ReplaceCommandWithoutChangingPosition(range, '\\n' + config.normalizeIndentation(ir.afterEnter), true);\n }\n else {\n let offset = 0;\n if (oldEndColumn <= firstNonWhitespace + 1) {\n if (!config.insertSpaces) {\n oldEndViewColumn = Math.ceil(oldEndViewColumn / config.indentSize);\n }\n offset = Math.min(oldEndViewColumn + 1 - config.normalizeIndentation(ir.afterEnter).length - 1, 0);\n }\n return new ReplaceCommandWithOffsetCursorState(range, '\\n' + config.normalizeIndentation(ir.afterEnter), 0, offset, true);\n }\n }\n }\n return TypeOperations._typeCommand(range, '\\n' + config.normalizeIndentation(indentation), keepPosition);\n }\n static _isAutoIndentType(config, model, selections) {\n if (config.autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n return false;\n }\n for (let i = 0, len = selections.length; i < len; i++) {\n if (!model.tokenization.isCheapToTokenize(selections[i].getEndPosition().lineNumber)) {\n return false;\n }\n }\n return true;\n }\n static _runAutoIndentType(config, model, range, ch) {\n const currentIndentation = getIndentationAtPosition(model, range.startLineNumber, range.startColumn);\n const actualIndentation = getIndentActionForType(config.autoIndent, model, range, ch, {\n shiftIndent: (indentation) => {\n return TypeOperations.shiftIndent(config, indentation);\n },\n unshiftIndent: (indentation) => {\n return TypeOperations.unshiftIndent(config, indentation);\n },\n }, config.languageConfigurationService);\n if (actualIndentation === null) {\n return null;\n }\n if (actualIndentation !== config.normalizeIndentation(currentIndentation)) {\n const firstNonWhitespace = model.getLineFirstNonWhitespaceColumn(range.startLineNumber);\n if (firstNonWhitespace === 0) {\n return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) + ch, false);\n }\n else {\n return TypeOperations._typeCommand(new Range(range.startLineNumber, 1, range.endLineNumber, range.endColumn), config.normalizeIndentation(actualIndentation) +\n model.getLineContent(range.startLineNumber).substring(firstNonWhitespace - 1, range.startColumn - 1) + ch, false);\n }\n }\n return null;\n }\n static _isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch) {\n if (config.autoClosingOvertype === 'never') {\n return false;\n }\n if (!config.autoClosingPairs.autoClosingPairsCloseSingleChar.has(ch)) {\n return false;\n }\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (!selection.isEmpty()) {\n return false;\n }\n const position = selection.getPosition();\n const lineText = model.getLineContent(position.lineNumber);\n const afterCharacter = lineText.charAt(position.column - 1);\n if (afterCharacter !== ch) {\n return false;\n }\n // Do not over-type quotes after a backslash\n const chIsQuote = isQuote(ch);\n const beforeCharacter = position.column > 2 ? lineText.charCodeAt(position.column - 2) : 0 /* CharCode.Null */;\n if (beforeCharacter === 92 /* CharCode.Backslash */ && chIsQuote) {\n return false;\n }\n // Must over-type a closing character typed by the editor\n if (config.autoClosingOvertype === 'auto') {\n let found = false;\n for (let j = 0, lenJ = autoClosedCharacters.length; j < lenJ; j++) {\n const autoClosedCharacter = autoClosedCharacters[j];\n if (position.lineNumber === autoClosedCharacter.startLineNumber && position.column === autoClosedCharacter.startColumn) {\n found = true;\n break;\n }\n }\n if (!found) {\n return false;\n }\n }\n }\n return true;\n }\n static _runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n const position = selection.getPosition();\n const typeSelection = new Range(position.lineNumber, position.column, position.lineNumber, position.column + 1);\n commands[i] = new ReplaceCommand(typeSelection, ch);\n }\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, 4 /* EditOperationType.TypingOther */),\n shouldPushStackElementAfter: false\n });\n }\n static _isBeforeClosingBrace(config, lineAfter) {\n // If the start of lineAfter can be interpretted as both a starting or ending brace, default to returning false\n const nextChar = lineAfter.charAt(0);\n const potentialStartingBraces = config.autoClosingPairs.autoClosingPairsOpenByStart.get(nextChar) || [];\n const potentialClosingBraces = config.autoClosingPairs.autoClosingPairsCloseByStart.get(nextChar) || [];\n const isBeforeStartingBrace = potentialStartingBraces.some(x => lineAfter.startsWith(x.open));\n const isBeforeClosingBrace = potentialClosingBraces.some(x => lineAfter.startsWith(x.close));\n return !isBeforeStartingBrace && isBeforeClosingBrace;\n }\n /**\n * Determine if typing `ch` at all `positions` in the `model` results in an\n * auto closing open sequence being typed.\n *\n * Auto closing open sequences can consist of multiple characters, which\n * can lead to ambiguities. In such a case, the longest auto-closing open\n * sequence is returned.\n */\n static _findAutoClosingPairOpen(config, model, positions, ch) {\n const candidates = config.autoClosingPairs.autoClosingPairsOpenByEnd.get(ch);\n if (!candidates) {\n return null;\n }\n // Determine which auto-closing pair it is\n let result = null;\n for (const candidate of candidates) {\n if (result === null || candidate.open.length > result.open.length) {\n let candidateIsMatch = true;\n for (const position of positions) {\n const relevantText = model.getValueInRange(new Range(position.lineNumber, position.column - candidate.open.length + 1, position.lineNumber, position.column));\n if (relevantText + ch !== candidate.open) {\n candidateIsMatch = false;\n break;\n }\n }\n if (candidateIsMatch) {\n result = candidate;\n }\n }\n }\n return result;\n }\n /**\n * Find another auto-closing pair that is contained by the one passed in.\n *\n * e.g. when having [(,)] and [(*,*)] as auto-closing pairs\n * this method will find [(,)] as a containment pair for [(*,*)]\n */\n static _findContainedAutoClosingPair(config, pair) {\n if (pair.open.length <= 1) {\n return null;\n }\n const lastChar = pair.close.charAt(pair.close.length - 1);\n // get candidates with the same last character as close\n const candidates = config.autoClosingPairs.autoClosingPairsCloseByEnd.get(lastChar) || [];\n let result = null;\n for (const candidate of candidates) {\n if (candidate.open !== pair.open && pair.open.includes(candidate.open) && pair.close.endsWith(candidate.close)) {\n if (!result || candidate.open.length > result.open.length) {\n result = candidate;\n }\n }\n }\n return result;\n }\n static _getAutoClosingPairClose(config, model, selections, ch, chIsAlreadyTyped) {\n for (const selection of selections) {\n if (!selection.isEmpty()) {\n return null;\n }\n }\n // This method is called both when typing (regularly) and when composition ends\n // This means that we need to work with a text buffer where sometimes `ch` is not\n // there (it is being typed right now) or with a text buffer where `ch` has already been typed\n //\n // In order to avoid adding checks for `chIsAlreadyTyped` in all places, we will work\n // with two conceptual positions, the position before `ch` and the position after `ch`\n //\n const positions = selections.map((s) => {\n const position = s.getPosition();\n if (chIsAlreadyTyped) {\n return { lineNumber: position.lineNumber, beforeColumn: position.column - ch.length, afterColumn: position.column };\n }\n else {\n return { lineNumber: position.lineNumber, beforeColumn: position.column, afterColumn: position.column };\n }\n });\n // Find the longest auto-closing open pair in case of multiple ending in `ch`\n // e.g. when having [f\",\"] and [\",\"], it picks [f\",\"] if the character before is f\n const pair = this._findAutoClosingPairOpen(config, model, positions.map(p => new Position(p.lineNumber, p.beforeColumn)), ch);\n if (!pair) {\n return null;\n }\n let autoCloseConfig;\n let shouldAutoCloseBefore;\n const chIsQuote = isQuote(ch);\n if (chIsQuote) {\n autoCloseConfig = config.autoClosingQuotes;\n shouldAutoCloseBefore = config.shouldAutoCloseBefore.quote;\n }\n else {\n const pairIsForComments = config.blockCommentStartToken ? pair.open.includes(config.blockCommentStartToken) : false;\n if (pairIsForComments) {\n autoCloseConfig = config.autoClosingComments;\n shouldAutoCloseBefore = config.shouldAutoCloseBefore.comment;\n }\n else {\n autoCloseConfig = config.autoClosingBrackets;\n shouldAutoCloseBefore = config.shouldAutoCloseBefore.bracket;\n }\n }\n if (autoCloseConfig === 'never') {\n return null;\n }\n // Sometimes, it is possible to have two auto-closing pairs that have a containment relationship\n // e.g. when having [(,)] and [(*,*)]\n // - when typing (, the resulting state is (|)\n // - when typing *, the desired resulting state is (*|*), not (*|*))\n const containedPair = this._findContainedAutoClosingPair(config, pair);\n const containedPairClose = containedPair ? containedPair.close : '';\n let isContainedPairPresent = true;\n for (const position of positions) {\n const { lineNumber, beforeColumn, afterColumn } = position;\n const lineText = model.getLineContent(lineNumber);\n const lineBefore = lineText.substring(0, beforeColumn - 1);\n const lineAfter = lineText.substring(afterColumn - 1);\n if (!lineAfter.startsWith(containedPairClose)) {\n isContainedPairPresent = false;\n }\n // Only consider auto closing the pair if an allowed character follows or if another autoclosed pair closing brace follows\n if (lineAfter.length > 0) {\n const characterAfter = lineAfter.charAt(0);\n const isBeforeCloseBrace = TypeOperations._isBeforeClosingBrace(config, lineAfter);\n if (!isBeforeCloseBrace && !shouldAutoCloseBefore(characterAfter)) {\n return null;\n }\n }\n // Do not auto-close ' or \" after a word character\n if (pair.open.length === 1 && (ch === '\\'' || ch === '\"') && autoCloseConfig !== 'always') {\n const wordSeparators = getMapForWordSeparators(config.wordSeparators, []);\n if (lineBefore.length > 0) {\n const characterBefore = lineBefore.charCodeAt(lineBefore.length - 1);\n if (wordSeparators.get(characterBefore) === 0 /* WordCharacterClass.Regular */) {\n return null;\n }\n }\n }\n if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n // Do not force tokenization\n return null;\n }\n model.tokenization.forceTokenization(lineNumber);\n const lineTokens = model.tokenization.getLineTokens(lineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, beforeColumn - 1);\n if (!pair.shouldAutoClose(scopedLineTokens, beforeColumn - scopedLineTokens.firstCharOffset)) {\n return null;\n }\n // Typing for example a quote could either start a new string, in which case auto-closing is desirable\n // or it could end a previously started string, in which case auto-closing is not desirable\n //\n // In certain cases, it is really not possible to look at the previous token to determine\n // what would happen. That's why we do something really unusual, we pretend to type a different\n // character and ask the tokenizer what the outcome of doing that is: after typing a neutral\n // character, are we in a string (i.e. the quote would most likely end a string) or not?\n //\n const neutralCharacter = pair.findNeutralCharacter();\n if (neutralCharacter) {\n const tokenType = model.tokenization.getTokenTypeIfInsertingCharacter(lineNumber, beforeColumn, neutralCharacter);\n if (!pair.isOK(tokenType)) {\n return null;\n }\n }\n }\n if (isContainedPairPresent) {\n return pair.close.substring(0, pair.close.length - containedPairClose.length);\n }\n else {\n return pair.close;\n }\n }\n static _runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, chIsAlreadyTyped, autoClosingPairClose) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n commands[i] = new TypeWithAutoClosingCommand(selection, ch, !chIsAlreadyTyped, autoClosingPairClose);\n }\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false\n });\n }\n static _shouldSurroundChar(config, ch) {\n if (isQuote(ch)) {\n return (config.autoSurround === 'quotes' || config.autoSurround === 'languageDefined');\n }\n else {\n // Character is a bracket\n return (config.autoSurround === 'brackets' || config.autoSurround === 'languageDefined');\n }\n }\n static _isSurroundSelectionType(config, model, selections, ch) {\n if (!TypeOperations._shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n return false;\n }\n const isTypingAQuoteCharacter = isQuote(ch);\n for (const selection of selections) {\n if (selection.isEmpty()) {\n return false;\n }\n let selectionContainsOnlyWhitespace = true;\n for (let lineNumber = selection.startLineNumber; lineNumber <= selection.endLineNumber; lineNumber++) {\n const lineText = model.getLineContent(lineNumber);\n const startIndex = (lineNumber === selection.startLineNumber ? selection.startColumn - 1 : 0);\n const endIndex = (lineNumber === selection.endLineNumber ? selection.endColumn - 1 : lineText.length);\n const selectedText = lineText.substring(startIndex, endIndex);\n if (/[^ \\t]/.test(selectedText)) {\n // this selected text contains something other than whitespace\n selectionContainsOnlyWhitespace = false;\n break;\n }\n }\n if (selectionContainsOnlyWhitespace) {\n return false;\n }\n if (isTypingAQuoteCharacter && selection.startLineNumber === selection.endLineNumber && selection.startColumn + 1 === selection.endColumn) {\n const selectionText = model.getValueInRange(selection);\n if (isQuote(selectionText)) {\n // Typing a quote character on top of another quote character\n // => disable surround selection type\n return false;\n }\n }\n }\n return true;\n }\n static _runSurroundSelectionType(prevEditOperationType, config, model, selections, ch) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n const closeCharacter = config.surroundingPairs[ch];\n commands[i] = new SurroundSelectionCommand(selection, ch, closeCharacter);\n }\n return new EditOperationResult(0 /* EditOperationType.Other */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: true\n });\n }\n static _isTypeInterceptorElectricChar(config, model, selections) {\n if (selections.length === 1 && model.tokenization.isCheapToTokenize(selections[0].getEndPosition().lineNumber)) {\n return true;\n }\n return false;\n }\n static _typeInterceptorElectricChar(prevEditOperationType, config, model, selection, ch) {\n if (!config.electricChars.hasOwnProperty(ch) || !selection.isEmpty()) {\n return null;\n }\n const position = selection.getPosition();\n model.tokenization.forceTokenization(position.lineNumber);\n const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n let electricAction;\n try {\n electricAction = config.onElectricCharacter(ch, lineTokens, position.column);\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n if (!electricAction) {\n return null;\n }\n if (electricAction.matchOpenBracket) {\n const endColumn = (lineTokens.getLineContent() + ch).lastIndexOf(electricAction.matchOpenBracket) + 1;\n const match = model.bracketPairs.findMatchingBracketUp(electricAction.matchOpenBracket, {\n lineNumber: position.lineNumber,\n column: endColumn\n }, 500 /* give at most 500ms to compute */);\n if (match) {\n if (match.startLineNumber === position.lineNumber) {\n // matched something on the same line => no change in indentation\n return null;\n }\n const matchLine = model.getLineContent(match.startLineNumber);\n const matchLineIndentation = strings.getLeadingWhitespace(matchLine);\n const newIndentation = config.normalizeIndentation(matchLineIndentation);\n const lineText = model.getLineContent(position.lineNumber);\n const lineFirstNonBlankColumn = model.getLineFirstNonWhitespaceColumn(position.lineNumber) || position.column;\n const prefix = lineText.substring(lineFirstNonBlankColumn - 1, position.column - 1);\n const typeText = newIndentation + prefix + ch;\n const typeSelection = new Range(position.lineNumber, 1, position.lineNumber, position.column);\n const command = new ReplaceCommand(typeSelection, typeText);\n return new EditOperationResult(getTypingOperation(typeText, prevEditOperationType), [command], {\n shouldPushStackElementBefore: false,\n shouldPushStackElementAfter: true\n });\n }\n }\n return null;\n }\n /**\n * This is very similar with typing, but the character is already in the text buffer!\n */\n static compositionEndWithInterceptors(prevEditOperationType, config, model, compositions, selections, autoClosedCharacters) {\n if (!compositions) {\n // could not deduce what the composition did\n return null;\n }\n let insertedText = null;\n for (const composition of compositions) {\n if (insertedText === null) {\n insertedText = composition.insertedText;\n }\n else if (insertedText !== composition.insertedText) {\n // not all selections agree on what was typed\n return null;\n }\n }\n if (!insertedText || insertedText.length !== 1) {\n // we're only interested in the case where a single character was inserted\n return null;\n }\n const ch = insertedText;\n let hasDeletion = false;\n for (const composition of compositions) {\n if (composition.deletedText.length !== 0) {\n hasDeletion = true;\n break;\n }\n }\n if (hasDeletion) {\n // Check if this could have been a surround selection\n if (!TypeOperations._shouldSurroundChar(config, ch) || !config.surroundingPairs.hasOwnProperty(ch)) {\n return null;\n }\n const isTypingAQuoteCharacter = isQuote(ch);\n for (const composition of compositions) {\n if (composition.deletedSelectionStart !== 0 || composition.deletedSelectionEnd !== composition.deletedText.length) {\n // more text was deleted than was selected, so this could not have been a surround selection\n return null;\n }\n if (/^[ \\t]+$/.test(composition.deletedText)) {\n // deleted text was only whitespace\n return null;\n }\n if (isTypingAQuoteCharacter && isQuote(composition.deletedText)) {\n // deleted text was a quote\n return null;\n }\n }\n const positions = [];\n for (const selection of selections) {\n if (!selection.isEmpty()) {\n return null;\n }\n positions.push(selection.getPosition());\n }\n if (positions.length !== compositions.length) {\n return null;\n }\n const commands = [];\n for (let i = 0, len = positions.length; i < len; i++) {\n commands.push(new CompositionSurroundSelectionCommand(positions[i], compositions[i].deletedText, config.surroundingPairs[ch]));\n }\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false\n });\n }\n if (this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n // Unfortunately, the close character is at this point \"doubled\", so we need to delete it...\n const commands = selections.map(s => new ReplaceCommand(new Range(s.positionLineNumber, s.positionColumn, s.positionLineNumber, s.positionColumn + 1), '', false));\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false\n });\n }\n const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, true);\n if (autoClosingPairClose !== null) {\n return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, true, autoClosingPairClose);\n }\n return null;\n }\n static typeWithInterceptors(isDoingComposition, prevEditOperationType, config, model, selections, autoClosedCharacters, ch) {\n if (!isDoingComposition && ch === '\\n') {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = TypeOperations._enter(config, model, false, selections[i]);\n }\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false,\n });\n }\n if (!isDoingComposition && this._isAutoIndentType(config, model, selections)) {\n const commands = [];\n let autoIndentFails = false;\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = this._runAutoIndentType(config, model, selections[i], ch);\n if (!commands[i]) {\n autoIndentFails = true;\n break;\n }\n }\n if (!autoIndentFails) {\n return new EditOperationResult(4 /* EditOperationType.TypingOther */, commands, {\n shouldPushStackElementBefore: true,\n shouldPushStackElementAfter: false,\n });\n }\n }\n if (this._isAutoClosingOvertype(config, model, selections, autoClosedCharacters, ch)) {\n return this._runAutoClosingOvertype(prevEditOperationType, config, model, selections, ch);\n }\n if (!isDoingComposition) {\n const autoClosingPairClose = this._getAutoClosingPairClose(config, model, selections, ch, false);\n if (autoClosingPairClose) {\n return this._runAutoClosingOpenCharType(prevEditOperationType, config, model, selections, ch, false, autoClosingPairClose);\n }\n }\n if (!isDoingComposition && this._isSurroundSelectionType(config, model, selections, ch)) {\n return this._runSurroundSelectionType(prevEditOperationType, config, model, selections, ch);\n }\n // Electric characters make sense only when dealing with a single cursor,\n // as multiple cursors typing brackets for example would interfer with bracket matching\n if (!isDoingComposition && this._isTypeInterceptorElectricChar(config, model, selections)) {\n const r = this._typeInterceptorElectricChar(prevEditOperationType, config, model, selections[0], ch);\n if (r) {\n return r;\n }\n }\n // A simple character type\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], ch);\n }\n const opType = getTypingOperation(ch, prevEditOperationType);\n return new EditOperationResult(opType, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n shouldPushStackElementAfter: false\n });\n }\n static typeWithoutInterceptors(prevEditOperationType, config, model, selections, str) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new ReplaceCommand(selections[i], str);\n }\n const opType = getTypingOperation(str, prevEditOperationType);\n return new EditOperationResult(opType, commands, {\n shouldPushStackElementBefore: shouldPushStackElementBetween(prevEditOperationType, opType),\n shouldPushStackElementAfter: false\n });\n }\n static lineInsertBefore(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n let lineNumber = selections[i].positionLineNumber;\n if (lineNumber === 1) {\n commands[i] = new ReplaceCommandWithoutChangingPosition(new Range(1, 1, 1, 1), '\\n');\n }\n else {\n lineNumber--;\n const column = model.getLineMaxColumn(lineNumber);\n commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n }\n }\n return commands;\n }\n static lineInsertAfter(config, model, selections) {\n if (model === null || selections === null) {\n return [];\n }\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const lineNumber = selections[i].positionLineNumber;\n const column = model.getLineMaxColumn(lineNumber);\n commands[i] = this._enter(config, model, false, new Range(lineNumber, column, lineNumber, column));\n }\n return commands;\n }\n static lineBreakInsert(config, model, selections) {\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = this._enter(config, model, true, selections[i]);\n }\n return commands;\n }\n}\nexport class TypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState {\n constructor(selection, openCharacter, insertOpenCharacter, closeCharacter) {\n super(selection, (insertOpenCharacter ? openCharacter : '') + closeCharacter, 0, -closeCharacter.length);\n this._openCharacter = openCharacter;\n this._closeCharacter = closeCharacter;\n this.closeCharacterRange = null;\n this.enclosingRange = null;\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const range = inverseEditOperations[0].range;\n this.closeCharacterRange = new Range(range.startLineNumber, range.endColumn - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n this.enclosingRange = new Range(range.startLineNumber, range.endColumn - this._openCharacter.length - this._closeCharacter.length, range.endLineNumber, range.endColumn);\n return super.computeCursorState(model, helper);\n }\n}\nexport class CompositionOutcome {\n constructor(deletedText, deletedSelectionStart, deletedSelectionEnd, insertedText, insertedSelectionStart, insertedSelectionEnd) {\n this.deletedText = deletedText;\n this.deletedSelectionStart = deletedSelectionStart;\n this.deletedSelectionEnd = deletedSelectionEnd;\n this.insertedText = insertedText;\n this.insertedSelectionStart = insertedSelectionStart;\n this.insertedSelectionEnd = insertedSelectionEnd;\n }\n}\nfunction getTypingOperation(typedText, previousTypingOperation) {\n if (typedText === ' ') {\n return previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */\n || previousTypingOperation === 6 /* EditOperationType.TypingConsecutiveSpace */\n ? 6 /* EditOperationType.TypingConsecutiveSpace */\n : 5 /* EditOperationType.TypingFirstSpace */;\n }\n return 4 /* EditOperationType.TypingOther */;\n}\nfunction shouldPushStackElementBetween(previousTypingOperation, typingOperation) {\n if (isTypingOperation(previousTypingOperation) && !isTypingOperation(typingOperation)) {\n // Always set an undo stop before non-type operations\n return true;\n }\n if (previousTypingOperation === 5 /* EditOperationType.TypingFirstSpace */) {\n // `abc |d`: No undo stop\n // `abc |d`: Undo stop\n return false;\n }\n // Insert undo stop between different operation types\n return normalizeOperationType(previousTypingOperation) !== normalizeOperationType(typingOperation);\n}\nfunction normalizeOperationType(type) {\n return (type === 6 /* EditOperationType.TypingConsecutiveSpace */ || type === 5 /* EditOperationType.TypingFirstSpace */)\n ? 'space'\n : type;\n}\nfunction isTypingOperation(type) {\n return type === 4 /* EditOperationType.TypingOther */\n || type === 5 /* EditOperationType.TypingFirstSpace */\n || type === 6 /* EditOperationType.TypingConsecutiveSpace */;\n}\n","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { GlobalPointerMoveMonitor } from '../../globalPointerMoveMonitor.js';\nimport { Widget } from '../widget.js';\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport * as dom from '../../dom.js';\n/**\n * The arrow image size.\n */\nexport const ARROW_IMG_SIZE = 11;\nexport class ScrollbarArrow extends Widget {\n constructor(opts) {\n super();\n this._onActivate = opts.onActivate;\n this.bgDomNode = document.createElement('div');\n this.bgDomNode.className = 'arrow-background';\n this.bgDomNode.style.position = 'absolute';\n this.bgDomNode.style.width = opts.bgWidth + 'px';\n this.bgDomNode.style.height = opts.bgHeight + 'px';\n if (typeof opts.top !== 'undefined') {\n this.bgDomNode.style.top = '0px';\n }\n if (typeof opts.left !== 'undefined') {\n this.bgDomNode.style.left = '0px';\n }\n if (typeof opts.bottom !== 'undefined') {\n this.bgDomNode.style.bottom = '0px';\n }\n if (typeof opts.right !== 'undefined') {\n this.bgDomNode.style.right = '0px';\n }\n this.domNode = document.createElement('div');\n this.domNode.className = opts.className;\n this.domNode.classList.add(...ThemeIcon.asClassNameArray(opts.icon));\n this.domNode.style.position = 'absolute';\n this.domNode.style.width = ARROW_IMG_SIZE + 'px';\n this.domNode.style.height = ARROW_IMG_SIZE + 'px';\n if (typeof opts.top !== 'undefined') {\n this.domNode.style.top = opts.top + 'px';\n }\n if (typeof opts.left !== 'undefined') {\n this.domNode.style.left = opts.left + 'px';\n }\n if (typeof opts.bottom !== 'undefined') {\n this.domNode.style.bottom = opts.bottom + 'px';\n }\n if (typeof opts.right !== 'undefined') {\n this.domNode.style.right = opts.right + 'px';\n }\n this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n this._register(dom.addStandardDisposableListener(this.bgDomNode, dom.EventType.POINTER_DOWN, (e) => this._arrowPointerDown(e)));\n this._register(dom.addStandardDisposableListener(this.domNode, dom.EventType.POINTER_DOWN, (e) => this._arrowPointerDown(e)));\n this._pointerdownRepeatTimer = this._register(new dom.WindowIntervalTimer());\n this._pointerdownScheduleRepeatTimer = this._register(new TimeoutTimer());\n }\n _arrowPointerDown(e) {\n if (!e.target || !(e.target instanceof Element)) {\n return;\n }\n const scheduleRepeater = () => {\n this._pointerdownRepeatTimer.cancelAndSet(() => this._onActivate(), 1000 / 24, dom.getWindow(e));\n };\n this._onActivate();\n this._pointerdownRepeatTimer.cancel();\n this._pointerdownScheduleRepeatTimer.cancelAndSet(scheduleRepeater, 200);\n this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) => { }, () => {\n this._pointerdownRepeatTimer.cancel();\n this._pointerdownScheduleRepeatTimer.cancel();\n });\n e.preventDefault();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nexport class ScrollbarVisibilityController extends Disposable {\n constructor(visibility, visibleClassName, invisibleClassName) {\n super();\n this._visibility = visibility;\n this._visibleClassName = visibleClassName;\n this._invisibleClassName = invisibleClassName;\n this._domNode = null;\n this._isVisible = false;\n this._isNeeded = false;\n this._rawShouldBeVisible = false;\n this._shouldBeVisible = false;\n this._revealTimer = this._register(new TimeoutTimer());\n }\n setVisibility(visibility) {\n if (this._visibility !== visibility) {\n this._visibility = visibility;\n this._updateShouldBeVisible();\n }\n }\n // ----------------- Hide / Reveal\n setShouldBeVisible(rawShouldBeVisible) {\n this._rawShouldBeVisible = rawShouldBeVisible;\n this._updateShouldBeVisible();\n }\n _applyVisibilitySetting() {\n if (this._visibility === 2 /* ScrollbarVisibility.Hidden */) {\n return false;\n }\n if (this._visibility === 3 /* ScrollbarVisibility.Visible */) {\n return true;\n }\n return this._rawShouldBeVisible;\n }\n _updateShouldBeVisible() {\n const shouldBeVisible = this._applyVisibilitySetting();\n if (this._shouldBeVisible !== shouldBeVisible) {\n this._shouldBeVisible = shouldBeVisible;\n this.ensureVisibility();\n }\n }\n setIsNeeded(isNeeded) {\n if (this._isNeeded !== isNeeded) {\n this._isNeeded = isNeeded;\n this.ensureVisibility();\n }\n }\n setDomNode(domNode) {\n this._domNode = domNode;\n this._domNode.setClassName(this._invisibleClassName);\n // Now that the flags & the dom node are in a consistent state, ensure the Hidden/Visible configuration\n this.setShouldBeVisible(false);\n }\n ensureVisibility() {\n if (!this._isNeeded) {\n // Nothing to be rendered\n this._hide(false);\n return;\n }\n if (this._shouldBeVisible) {\n this._reveal();\n }\n else {\n this._hide(true);\n }\n }\n _reveal() {\n if (this._isVisible) {\n return;\n }\n this._isVisible = true;\n // The CSS animation doesn't play otherwise\n this._revealTimer.setIfNotSet(() => {\n var _a;\n (_a = this._domNode) === null || _a === void 0 ? void 0 : _a.setClassName(this._visibleClassName);\n }, 0);\n }\n _hide(withFadeAway) {\n var _a;\n this._revealTimer.cancel();\n if (!this._isVisible) {\n return;\n }\n this._isVisible = false;\n (_a = this._domNode) === null || _a === void 0 ? void 0 : _a.setClassName(this._invisibleClassName + (withFadeAway ? ' fade' : ''));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { GlobalPointerMoveMonitor } from '../../globalPointerMoveMonitor.js';\nimport { ScrollbarArrow } from './scrollbarArrow.js';\nimport { ScrollbarVisibilityController } from './scrollbarVisibilityController.js';\nimport { Widget } from '../widget.js';\nimport * as platform from '../../../common/platform.js';\n/**\n * The orthogonal distance to the slider at which dragging \"resets\". This implements \"snapping\"\n */\nconst POINTER_DRAG_RESET_DISTANCE = 140;\nexport class AbstractScrollbar extends Widget {\n constructor(opts) {\n super();\n this._lazyRender = opts.lazyRender;\n this._host = opts.host;\n this._scrollable = opts.scrollable;\n this._scrollByPage = opts.scrollByPage;\n this._scrollbarState = opts.scrollbarState;\n this._visibilityController = this._register(new ScrollbarVisibilityController(opts.visibility, 'visible scrollbar ' + opts.extraScrollbarClassName, 'invisible scrollbar ' + opts.extraScrollbarClassName));\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._pointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n this._shouldRender = true;\n this.domNode = createFastDomNode(document.createElement('div'));\n this.domNode.setAttribute('role', 'presentation');\n this.domNode.setAttribute('aria-hidden', 'true');\n this._visibilityController.setDomNode(this.domNode);\n this.domNode.setPosition('absolute');\n this._register(dom.addDisposableListener(this.domNode.domNode, dom.EventType.POINTER_DOWN, (e) => this._domNodePointerDown(e)));\n }\n // ----------------- creation\n /**\n * Creates the dom node for an arrow & adds it to the container\n */\n _createArrow(opts) {\n const arrow = this._register(new ScrollbarArrow(opts));\n this.domNode.domNode.appendChild(arrow.bgDomNode);\n this.domNode.domNode.appendChild(arrow.domNode);\n }\n /**\n * Creates the slider dom node, adds it to the container & hooks up the events\n */\n _createSlider(top, left, width, height) {\n this.slider = createFastDomNode(document.createElement('div'));\n this.slider.setClassName('slider');\n this.slider.setPosition('absolute');\n this.slider.setTop(top);\n this.slider.setLeft(left);\n if (typeof width === 'number') {\n this.slider.setWidth(width);\n }\n if (typeof height === 'number') {\n this.slider.setHeight(height);\n }\n this.slider.setLayerHinting(true);\n this.slider.setContain('strict');\n this.domNode.domNode.appendChild(this.slider.domNode);\n this._register(dom.addDisposableListener(this.slider.domNode, dom.EventType.POINTER_DOWN, (e) => {\n if (e.button === 0) {\n e.preventDefault();\n this._sliderPointerDown(e);\n }\n }));\n this.onclick(this.slider.domNode, e => {\n if (e.leftButton) {\n e.stopPropagation();\n }\n });\n }\n // ----------------- Update state\n _onElementSize(visibleSize) {\n if (this._scrollbarState.setVisibleSize(visibleSize)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n _onElementScrollSize(elementScrollSize) {\n if (this._scrollbarState.setScrollSize(elementScrollSize)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n _onElementScrollPosition(elementScrollPosition) {\n if (this._scrollbarState.setScrollPosition(elementScrollPosition)) {\n this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded());\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n return this._shouldRender;\n }\n // ----------------- rendering\n beginReveal() {\n this._visibilityController.setShouldBeVisible(true);\n }\n beginHide() {\n this._visibilityController.setShouldBeVisible(false);\n }\n render() {\n if (!this._shouldRender) {\n return;\n }\n this._shouldRender = false;\n this._renderDomNode(this._scrollbarState.getRectangleLargeSize(), this._scrollbarState.getRectangleSmallSize());\n this._updateSlider(this._scrollbarState.getSliderSize(), this._scrollbarState.getArrowSize() + this._scrollbarState.getSliderPosition());\n }\n // ----------------- DOM events\n _domNodePointerDown(e) {\n if (e.target !== this.domNode.domNode) {\n return;\n }\n this._onPointerDown(e);\n }\n delegatePointerDown(e) {\n const domTop = this.domNode.domNode.getClientRects()[0].top;\n const sliderStart = domTop + this._scrollbarState.getSliderPosition();\n const sliderStop = domTop + this._scrollbarState.getSliderPosition() + this._scrollbarState.getSliderSize();\n const pointerPos = this._sliderPointerPosition(e);\n if (sliderStart <= pointerPos && pointerPos <= sliderStop) {\n // Act as if it was a pointer down on the slider\n if (e.button === 0) {\n e.preventDefault();\n this._sliderPointerDown(e);\n }\n }\n else {\n // Act as if it was a pointer down on the scrollbar\n this._onPointerDown(e);\n }\n }\n _onPointerDown(e) {\n let offsetX;\n let offsetY;\n if (e.target === this.domNode.domNode && typeof e.offsetX === 'number' && typeof e.offsetY === 'number') {\n offsetX = e.offsetX;\n offsetY = e.offsetY;\n }\n else {\n const domNodePosition = dom.getDomNodePagePosition(this.domNode.domNode);\n offsetX = e.pageX - domNodePosition.left;\n offsetY = e.pageY - domNodePosition.top;\n }\n const offset = this._pointerDownRelativePosition(offsetX, offsetY);\n this._setDesiredScrollPositionNow(this._scrollByPage\n ? this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(offset)\n : this._scrollbarState.getDesiredScrollPositionFromOffset(offset));\n if (e.button === 0) {\n // left button\n e.preventDefault();\n this._sliderPointerDown(e);\n }\n }\n _sliderPointerDown(e) {\n if (!e.target || !(e.target instanceof Element)) {\n return;\n }\n const initialPointerPosition = this._sliderPointerPosition(e);\n const initialPointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(e);\n const initialScrollbarState = this._scrollbarState.clone();\n this.slider.toggleClassName('active', true);\n this._pointerMoveMonitor.startMonitoring(e.target, e.pointerId, e.buttons, (pointerMoveData) => {\n const pointerOrthogonalPosition = this._sliderOrthogonalPointerPosition(pointerMoveData);\n const pointerOrthogonalDelta = Math.abs(pointerOrthogonalPosition - initialPointerOrthogonalPosition);\n if (platform.isWindows && pointerOrthogonalDelta > POINTER_DRAG_RESET_DISTANCE) {\n // The pointer has wondered away from the scrollbar => reset dragging\n this._setDesiredScrollPositionNow(initialScrollbarState.getScrollPosition());\n return;\n }\n const pointerPosition = this._sliderPointerPosition(pointerMoveData);\n const pointerDelta = pointerPosition - initialPointerPosition;\n this._setDesiredScrollPositionNow(initialScrollbarState.getDesiredScrollPositionFromDelta(pointerDelta));\n }, () => {\n this.slider.toggleClassName('active', false);\n this._host.onDragEnd();\n });\n this._host.onDragStart();\n }\n _setDesiredScrollPositionNow(_desiredScrollPosition) {\n const desiredScrollPosition = {};\n this.writeScrollPosition(desiredScrollPosition, _desiredScrollPosition);\n this._scrollable.setScrollPositionNow(desiredScrollPosition);\n }\n updateScrollbarSize(scrollbarSize) {\n this._updateScrollbarSize(scrollbarSize);\n this._scrollbarState.setScrollbarSize(scrollbarSize);\n this._shouldRender = true;\n if (!this._lazyRender) {\n this.render();\n }\n }\n isNeeded() {\n return this._scrollbarState.isNeeded();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon } from '../../../common/codicons.js';\nexport class HorizontalScrollbar extends AbstractScrollbar {\n constructor(scrollable, options, host) {\n const scrollDimensions = scrollable.getScrollDimensions();\n const scrollPosition = scrollable.getCurrentScrollPosition();\n super({\n lazyRender: options.lazyRender,\n host: host,\n scrollbarState: new ScrollbarState((options.horizontalHasArrows ? options.arrowSize : 0), (options.horizontal === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.horizontalScrollbarSize), (options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize), scrollDimensions.width, scrollDimensions.scrollWidth, scrollPosition.scrollLeft),\n visibility: options.horizontal,\n extraScrollbarClassName: 'horizontal',\n scrollable: scrollable,\n scrollByPage: options.scrollByPage\n });\n if (options.horizontalHasArrows) {\n const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n const scrollbarDelta = (options.horizontalScrollbarSize - ARROW_IMG_SIZE) / 2;\n this._createArrow({\n className: 'scra',\n icon: Codicon.scrollbarButtonLeft,\n top: scrollbarDelta,\n left: arrowDelta,\n bottom: undefined,\n right: undefined,\n bgWidth: options.arrowSize,\n bgHeight: options.horizontalScrollbarSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 1, 0)),\n });\n this._createArrow({\n className: 'scra',\n icon: Codicon.scrollbarButtonRight,\n top: scrollbarDelta,\n left: undefined,\n bottom: undefined,\n right: arrowDelta,\n bgWidth: options.arrowSize,\n bgHeight: options.horizontalScrollbarSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, -1, 0)),\n });\n }\n this._createSlider(Math.floor((options.horizontalScrollbarSize - options.horizontalSliderSize) / 2), 0, undefined, options.horizontalSliderSize);\n }\n _updateSlider(sliderSize, sliderPosition) {\n this.slider.setWidth(sliderSize);\n this.slider.setLeft(sliderPosition);\n }\n _renderDomNode(largeSize, smallSize) {\n this.domNode.setWidth(largeSize);\n this.domNode.setHeight(smallSize);\n this.domNode.setLeft(0);\n this.domNode.setBottom(0);\n }\n onDidScroll(e) {\n this._shouldRender = this._onElementScrollSize(e.scrollWidth) || this._shouldRender;\n this._shouldRender = this._onElementScrollPosition(e.scrollLeft) || this._shouldRender;\n this._shouldRender = this._onElementSize(e.width) || this._shouldRender;\n return this._shouldRender;\n }\n _pointerDownRelativePosition(offsetX, offsetY) {\n return offsetX;\n }\n _sliderPointerPosition(e) {\n return e.pageX;\n }\n _sliderOrthogonalPointerPosition(e) {\n return e.pageY;\n }\n _updateScrollbarSize(size) {\n this.slider.setHeight(size);\n }\n writeScrollPosition(target, scrollPosition) {\n target.scrollLeft = scrollPosition;\n }\n updateOptions(options) {\n this.updateScrollbarSize(options.horizontal === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.horizontalScrollbarSize);\n this._scrollbarState.setOppositeScrollbarSize(options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize);\n this._visibilityController.setVisibility(options.horizontal);\n this._scrollByPage = options.scrollByPage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { AbstractScrollbar } from './abstractScrollbar.js';\nimport { ARROW_IMG_SIZE } from './scrollbarArrow.js';\nimport { ScrollbarState } from './scrollbarState.js';\nimport { Codicon } from '../../../common/codicons.js';\nexport class VerticalScrollbar extends AbstractScrollbar {\n constructor(scrollable, options, host) {\n const scrollDimensions = scrollable.getScrollDimensions();\n const scrollPosition = scrollable.getCurrentScrollPosition();\n super({\n lazyRender: options.lazyRender,\n host: host,\n scrollbarState: new ScrollbarState((options.verticalHasArrows ? options.arrowSize : 0), (options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize), \n // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n 0, scrollDimensions.height, scrollDimensions.scrollHeight, scrollPosition.scrollTop),\n visibility: options.vertical,\n extraScrollbarClassName: 'vertical',\n scrollable: scrollable,\n scrollByPage: options.scrollByPage\n });\n if (options.verticalHasArrows) {\n const arrowDelta = (options.arrowSize - ARROW_IMG_SIZE) / 2;\n const scrollbarDelta = (options.verticalScrollbarSize - ARROW_IMG_SIZE) / 2;\n this._createArrow({\n className: 'scra',\n icon: Codicon.scrollbarButtonUp,\n top: arrowDelta,\n left: scrollbarDelta,\n bottom: undefined,\n right: undefined,\n bgWidth: options.verticalScrollbarSize,\n bgHeight: options.arrowSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, 1)),\n });\n this._createArrow({\n className: 'scra',\n icon: Codicon.scrollbarButtonDown,\n top: undefined,\n left: scrollbarDelta,\n bottom: arrowDelta,\n right: undefined,\n bgWidth: options.verticalScrollbarSize,\n bgHeight: options.arrowSize,\n onActivate: () => this._host.onMouseWheel(new StandardWheelEvent(null, 0, -1)),\n });\n }\n this._createSlider(0, Math.floor((options.verticalScrollbarSize - options.verticalSliderSize) / 2), options.verticalSliderSize, undefined);\n }\n _updateSlider(sliderSize, sliderPosition) {\n this.slider.setHeight(sliderSize);\n this.slider.setTop(sliderPosition);\n }\n _renderDomNode(largeSize, smallSize) {\n this.domNode.setWidth(smallSize);\n this.domNode.setHeight(largeSize);\n this.domNode.setRight(0);\n this.domNode.setTop(0);\n }\n onDidScroll(e) {\n this._shouldRender = this._onElementScrollSize(e.scrollHeight) || this._shouldRender;\n this._shouldRender = this._onElementScrollPosition(e.scrollTop) || this._shouldRender;\n this._shouldRender = this._onElementSize(e.height) || this._shouldRender;\n return this._shouldRender;\n }\n _pointerDownRelativePosition(offsetX, offsetY) {\n return offsetY;\n }\n _sliderPointerPosition(e) {\n return e.pageY;\n }\n _sliderOrthogonalPointerPosition(e) {\n return e.pageX;\n }\n _updateScrollbarSize(size) {\n this.slider.setWidth(size);\n }\n writeScrollPosition(target, scrollPosition) {\n target.scrollTop = scrollPosition;\n }\n updateOptions(options) {\n this.updateScrollbarSize(options.vertical === 2 /* ScrollbarVisibility.Hidden */ ? 0 : options.verticalScrollbarSize);\n // give priority to vertical scroll bar over horizontal and let it scroll all the way to the bottom\n this._scrollbarState.setOppositeScrollbarSize(0);\n this._visibilityController.setVisibility(options.vertical);\n this._scrollByPage = options.scrollByPage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getZoomFactor, isChrome } from '../../browser.js';\nimport * as dom from '../../dom.js';\nimport { createFastDomNode } from '../../fastDomNode.js';\nimport { StandardWheelEvent } from '../../mouseEvent.js';\nimport { HorizontalScrollbar } from './horizontalScrollbar.js';\nimport { VerticalScrollbar } from './verticalScrollbar.js';\nimport { Widget } from '../widget.js';\nimport { TimeoutTimer } from '../../../common/async.js';\nimport { Emitter } from '../../../common/event.js';\nimport { dispose } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport './media/scrollbars.css';\nconst HIDE_TIMEOUT = 500;\nconst SCROLL_WHEEL_SENSITIVITY = 50;\nconst SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED = true;\nclass MouseWheelClassifierItem {\n constructor(timestamp, deltaX, deltaY) {\n this.timestamp = timestamp;\n this.deltaX = deltaX;\n this.deltaY = deltaY;\n this.score = 0;\n }\n}\nexport class MouseWheelClassifier {\n constructor() {\n this._capacity = 5;\n this._memory = [];\n this._front = -1;\n this._rear = -1;\n }\n isPhysicalMouseWheel() {\n if (this._front === -1 && this._rear === -1) {\n // no elements\n return false;\n }\n // 0.5 * last + 0.25 * 2nd last + 0.125 * 3rd last + ...\n let remainingInfluence = 1;\n let score = 0;\n let iteration = 1;\n let index = this._rear;\n do {\n const influence = (index === this._front ? remainingInfluence : Math.pow(2, -iteration));\n remainingInfluence -= influence;\n score += this._memory[index].score * influence;\n if (index === this._front) {\n break;\n }\n index = (this._capacity + index - 1) % this._capacity;\n iteration++;\n } while (true);\n return (score <= 0.5);\n }\n acceptStandardWheelEvent(e) {\n if (isChrome) {\n const targetWindow = dom.getWindow(e.browserEvent);\n const pageZoomFactor = getZoomFactor(targetWindow);\n // On Chrome, the incoming delta events are multiplied with the OS zoom factor.\n // The OS zoom factor can be reverse engineered by using the device pixel ratio and the configured zoom factor into account.\n this.accept(Date.now(), e.deltaX * pageZoomFactor, e.deltaY * pageZoomFactor);\n }\n else {\n this.accept(Date.now(), e.deltaX, e.deltaY);\n }\n }\n accept(timestamp, deltaX, deltaY) {\n let previousItem = null;\n const item = new MouseWheelClassifierItem(timestamp, deltaX, deltaY);\n if (this._front === -1 && this._rear === -1) {\n this._memory[0] = item;\n this._front = 0;\n this._rear = 0;\n }\n else {\n previousItem = this._memory[this._rear];\n this._rear = (this._rear + 1) % this._capacity;\n if (this._rear === this._front) {\n // Drop oldest\n this._front = (this._front + 1) % this._capacity;\n }\n this._memory[this._rear] = item;\n }\n item.score = this._computeScore(item, previousItem);\n }\n /**\n * A score between 0 and 1 for `item`.\n * - a score towards 0 indicates that the source appears to be a physical mouse wheel\n * - a score towards 1 indicates that the source appears to be a touchpad or magic mouse, etc.\n */\n _computeScore(item, previousItem) {\n if (Math.abs(item.deltaX) > 0 && Math.abs(item.deltaY) > 0) {\n // both axes exercised => definitely not a physical mouse wheel\n return 1;\n }\n let score = 0.5;\n if (!this._isAlmostInt(item.deltaX) || !this._isAlmostInt(item.deltaY)) {\n // non-integer deltas => indicator that this is not a physical mouse wheel\n score += 0.25;\n }\n // Non-accelerating scroll => indicator that this is a physical mouse wheel\n // These can be identified by seeing whether they are the module of one another.\n if (previousItem) {\n const absDeltaX = Math.abs(item.deltaX);\n const absDeltaY = Math.abs(item.deltaY);\n const absPreviousDeltaX = Math.abs(previousItem.deltaX);\n const absPreviousDeltaY = Math.abs(previousItem.deltaY);\n // Min 1 to avoid division by zero, module 1 will still be 0.\n const minDeltaX = Math.max(Math.min(absDeltaX, absPreviousDeltaX), 1);\n const minDeltaY = Math.max(Math.min(absDeltaY, absPreviousDeltaY), 1);\n const maxDeltaX = Math.max(absDeltaX, absPreviousDeltaX);\n const maxDeltaY = Math.max(absDeltaY, absPreviousDeltaY);\n const isSameModulo = (maxDeltaX % minDeltaX === 0 && maxDeltaY % minDeltaY === 0);\n if (isSameModulo) {\n score -= 0.5;\n }\n }\n return Math.min(Math.max(score, 0), 1);\n }\n _isAlmostInt(value) {\n const delta = Math.abs(Math.round(value) - value);\n return (delta < 0.01);\n }\n}\nMouseWheelClassifier.INSTANCE = new MouseWheelClassifier();\nexport class AbstractScrollableElement extends Widget {\n get options() {\n return this._options;\n }\n constructor(element, options, scrollable) {\n super();\n this._onScroll = this._register(new Emitter());\n this.onScroll = this._onScroll.event;\n this._onWillScroll = this._register(new Emitter());\n element.style.overflow = 'hidden';\n this._options = resolveOptions(options);\n this._scrollable = scrollable;\n this._register(this._scrollable.onScroll((e) => {\n this._onWillScroll.fire(e);\n this._onDidScroll(e);\n this._onScroll.fire(e);\n }));\n const scrollbarHost = {\n onMouseWheel: (mouseWheelEvent) => this._onMouseWheel(mouseWheelEvent),\n onDragStart: () => this._onDragStart(),\n onDragEnd: () => this._onDragEnd(),\n };\n this._verticalScrollbar = this._register(new VerticalScrollbar(this._scrollable, this._options, scrollbarHost));\n this._horizontalScrollbar = this._register(new HorizontalScrollbar(this._scrollable, this._options, scrollbarHost));\n this._domNode = document.createElement('div');\n this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n this._domNode.setAttribute('role', 'presentation');\n this._domNode.style.position = 'relative';\n this._domNode.style.overflow = 'hidden';\n this._domNode.appendChild(element);\n this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode);\n this._domNode.appendChild(this._verticalScrollbar.domNode.domNode);\n if (this._options.useShadows) {\n this._leftShadowDomNode = createFastDomNode(document.createElement('div'));\n this._leftShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._leftShadowDomNode.domNode);\n this._topShadowDomNode = createFastDomNode(document.createElement('div'));\n this._topShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._topShadowDomNode.domNode);\n this._topLeftShadowDomNode = createFastDomNode(document.createElement('div'));\n this._topLeftShadowDomNode.setClassName('shadow');\n this._domNode.appendChild(this._topLeftShadowDomNode.domNode);\n }\n else {\n this._leftShadowDomNode = null;\n this._topShadowDomNode = null;\n this._topLeftShadowDomNode = null;\n }\n this._listenOnDomNode = this._options.listenOnDomNode || this._domNode;\n this._mouseWheelToDispose = [];\n this._setListeningToMouseWheel(this._options.handleMouseWheel);\n this.onmouseover(this._listenOnDomNode, (e) => this._onMouseOver(e));\n this.onmouseleave(this._listenOnDomNode, (e) => this._onMouseLeave(e));\n this._hideTimeout = this._register(new TimeoutTimer());\n this._isDragging = false;\n this._mouseIsOver = false;\n this._shouldRender = true;\n this._revealOnScroll = true;\n }\n dispose() {\n this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n super.dispose();\n }\n /**\n * Get the generated 'scrollable' dom node\n */\n getDomNode() {\n return this._domNode;\n }\n getOverviewRulerLayoutInfo() {\n return {\n parent: this._domNode,\n insertBefore: this._verticalScrollbar.domNode.domNode,\n };\n }\n /**\n * Delegate a pointer down event to the vertical scrollbar.\n * This is to help with clicking somewhere else and having the scrollbar react.\n */\n delegateVerticalScrollbarPointerDown(browserEvent) {\n this._verticalScrollbar.delegatePointerDown(browserEvent);\n }\n getScrollDimensions() {\n return this._scrollable.getScrollDimensions();\n }\n setScrollDimensions(dimensions) {\n this._scrollable.setScrollDimensions(dimensions, false);\n }\n /**\n * Update the class name of the scrollable element.\n */\n updateClassName(newClassName) {\n this._options.className = newClassName;\n // Defaults are different on Macs\n if (platform.isMacintosh) {\n this._options.className += ' mac';\n }\n this._domNode.className = 'monaco-scrollable-element ' + this._options.className;\n }\n /**\n * Update configuration options for the scrollbar.\n */\n updateOptions(newOptions) {\n if (typeof newOptions.handleMouseWheel !== 'undefined') {\n this._options.handleMouseWheel = newOptions.handleMouseWheel;\n this._setListeningToMouseWheel(this._options.handleMouseWheel);\n }\n if (typeof newOptions.mouseWheelScrollSensitivity !== 'undefined') {\n this._options.mouseWheelScrollSensitivity = newOptions.mouseWheelScrollSensitivity;\n }\n if (typeof newOptions.fastScrollSensitivity !== 'undefined') {\n this._options.fastScrollSensitivity = newOptions.fastScrollSensitivity;\n }\n if (typeof newOptions.scrollPredominantAxis !== 'undefined') {\n this._options.scrollPredominantAxis = newOptions.scrollPredominantAxis;\n }\n if (typeof newOptions.horizontal !== 'undefined') {\n this._options.horizontal = newOptions.horizontal;\n }\n if (typeof newOptions.vertical !== 'undefined') {\n this._options.vertical = newOptions.vertical;\n }\n if (typeof newOptions.horizontalScrollbarSize !== 'undefined') {\n this._options.horizontalScrollbarSize = newOptions.horizontalScrollbarSize;\n }\n if (typeof newOptions.verticalScrollbarSize !== 'undefined') {\n this._options.verticalScrollbarSize = newOptions.verticalScrollbarSize;\n }\n if (typeof newOptions.scrollByPage !== 'undefined') {\n this._options.scrollByPage = newOptions.scrollByPage;\n }\n this._horizontalScrollbar.updateOptions(this._options);\n this._verticalScrollbar.updateOptions(this._options);\n if (!this._options.lazyRender) {\n this._render();\n }\n }\n delegateScrollFromMouseWheelEvent(browserEvent) {\n this._onMouseWheel(new StandardWheelEvent(browserEvent));\n }\n // -------------------- mouse wheel scrolling --------------------\n _setListeningToMouseWheel(shouldListen) {\n const isListening = (this._mouseWheelToDispose.length > 0);\n if (isListening === shouldListen) {\n // No change\n return;\n }\n // Stop listening (if necessary)\n this._mouseWheelToDispose = dispose(this._mouseWheelToDispose);\n // Start listening (if necessary)\n if (shouldListen) {\n const onMouseWheel = (browserEvent) => {\n this._onMouseWheel(new StandardWheelEvent(browserEvent));\n };\n this._mouseWheelToDispose.push(dom.addDisposableListener(this._listenOnDomNode, dom.EventType.MOUSE_WHEEL, onMouseWheel, { passive: false }));\n }\n }\n _onMouseWheel(e) {\n var _a;\n if ((_a = e.browserEvent) === null || _a === void 0 ? void 0 : _a.defaultPrevented) {\n return;\n }\n const classifier = MouseWheelClassifier.INSTANCE;\n if (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED) {\n classifier.acceptStandardWheelEvent(e);\n }\n // useful for creating unit tests:\n // console.log(`${Date.now()}, ${e.deltaY}, ${e.deltaX}`);\n let didScroll = false;\n if (e.deltaY || e.deltaX) {\n let deltaY = e.deltaY * this._options.mouseWheelScrollSensitivity;\n let deltaX = e.deltaX * this._options.mouseWheelScrollSensitivity;\n if (this._options.scrollPredominantAxis) {\n if (this._options.scrollYToX && deltaX + deltaY === 0) {\n // when configured to map Y to X and we both see\n // no dominant axis and X and Y are competing with\n // identical values into opposite directions, we\n // ignore the delta as we cannot make a decision then\n deltaX = deltaY = 0;\n }\n else if (Math.abs(deltaY) >= Math.abs(deltaX)) {\n deltaX = 0;\n }\n else {\n deltaY = 0;\n }\n }\n if (this._options.flipAxes) {\n [deltaY, deltaX] = [deltaX, deltaY];\n }\n // Convert vertical scrolling to horizontal if shift is held, this\n // is handled at a higher level on Mac\n const shiftConvert = !platform.isMacintosh && e.browserEvent && e.browserEvent.shiftKey;\n if ((this._options.scrollYToX || shiftConvert) && !deltaX) {\n deltaX = deltaY;\n deltaY = 0;\n }\n if (e.browserEvent && e.browserEvent.altKey) {\n // fastScrolling\n deltaX = deltaX * this._options.fastScrollSensitivity;\n deltaY = deltaY * this._options.fastScrollSensitivity;\n }\n const futureScrollPosition = this._scrollable.getFutureScrollPosition();\n let desiredScrollPosition = {};\n if (deltaY) {\n const deltaScrollTop = SCROLL_WHEEL_SENSITIVITY * deltaY;\n // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n const desiredScrollTop = futureScrollPosition.scrollTop - (deltaScrollTop < 0 ? Math.floor(deltaScrollTop) : Math.ceil(deltaScrollTop));\n this._verticalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollTop);\n }\n if (deltaX) {\n const deltaScrollLeft = SCROLL_WHEEL_SENSITIVITY * deltaX;\n // Here we convert values such as -0.3 to -1 or 0.3 to 1, otherwise low speed scrolling will never scroll\n const desiredScrollLeft = futureScrollPosition.scrollLeft - (deltaScrollLeft < 0 ? Math.floor(deltaScrollLeft) : Math.ceil(deltaScrollLeft));\n this._horizontalScrollbar.writeScrollPosition(desiredScrollPosition, desiredScrollLeft);\n }\n // Check that we are scrolling towards a location which is valid\n desiredScrollPosition = this._scrollable.validateScrollPosition(desiredScrollPosition);\n if (futureScrollPosition.scrollLeft !== desiredScrollPosition.scrollLeft || futureScrollPosition.scrollTop !== desiredScrollPosition.scrollTop) {\n const canPerformSmoothScroll = (SCROLL_WHEEL_SMOOTH_SCROLL_ENABLED\n && this._options.mouseWheelSmoothScroll\n && classifier.isPhysicalMouseWheel());\n if (canPerformSmoothScroll) {\n this._scrollable.setScrollPositionSmooth(desiredScrollPosition);\n }\n else {\n this._scrollable.setScrollPositionNow(desiredScrollPosition);\n }\n didScroll = true;\n }\n }\n let consumeMouseWheel = didScroll;\n if (!consumeMouseWheel && this._options.alwaysConsumeMouseWheel) {\n consumeMouseWheel = true;\n }\n if (!consumeMouseWheel && this._options.consumeMouseWheelIfScrollbarIsNeeded && (this._verticalScrollbar.isNeeded() || this._horizontalScrollbar.isNeeded())) {\n consumeMouseWheel = true;\n }\n if (consumeMouseWheel) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n _onDidScroll(e) {\n this._shouldRender = this._horizontalScrollbar.onDidScroll(e) || this._shouldRender;\n this._shouldRender = this._verticalScrollbar.onDidScroll(e) || this._shouldRender;\n if (this._options.useShadows) {\n this._shouldRender = true;\n }\n if (this._revealOnScroll) {\n this._reveal();\n }\n if (!this._options.lazyRender) {\n this._render();\n }\n }\n /**\n * Render / mutate the DOM now.\n * Should be used together with the ctor option `lazyRender`.\n */\n renderNow() {\n if (!this._options.lazyRender) {\n throw new Error('Please use `lazyRender` together with `renderNow`!');\n }\n this._render();\n }\n _render() {\n if (!this._shouldRender) {\n return;\n }\n this._shouldRender = false;\n this._horizontalScrollbar.render();\n this._verticalScrollbar.render();\n if (this._options.useShadows) {\n const scrollState = this._scrollable.getCurrentScrollPosition();\n const enableTop = scrollState.scrollTop > 0;\n const enableLeft = scrollState.scrollLeft > 0;\n const leftClassName = (enableLeft ? ' left' : '');\n const topClassName = (enableTop ? ' top' : '');\n const topLeftClassName = (enableLeft || enableTop ? ' top-left-corner' : '');\n this._leftShadowDomNode.setClassName(`shadow${leftClassName}`);\n this._topShadowDomNode.setClassName(`shadow${topClassName}`);\n this._topLeftShadowDomNode.setClassName(`shadow${topLeftClassName}${topClassName}${leftClassName}`);\n }\n }\n // -------------------- fade in / fade out --------------------\n _onDragStart() {\n this._isDragging = true;\n this._reveal();\n }\n _onDragEnd() {\n this._isDragging = false;\n this._hide();\n }\n _onMouseLeave(e) {\n this._mouseIsOver = false;\n this._hide();\n }\n _onMouseOver(e) {\n this._mouseIsOver = true;\n this._reveal();\n }\n _reveal() {\n this._verticalScrollbar.beginReveal();\n this._horizontalScrollbar.beginReveal();\n this._scheduleHide();\n }\n _hide() {\n if (!this._mouseIsOver && !this._isDragging) {\n this._verticalScrollbar.beginHide();\n this._horizontalScrollbar.beginHide();\n }\n }\n _scheduleHide() {\n if (!this._mouseIsOver && !this._isDragging) {\n this._hideTimeout.cancelAndSet(() => this._hide(), HIDE_TIMEOUT);\n }\n }\n}\nexport class ScrollableElement extends AbstractScrollableElement {\n constructor(element, options) {\n options = options || {};\n options.mouseWheelSmoothScroll = false;\n const scrollable = new Scrollable({\n forceIntegerValues: true,\n smoothScrollDuration: 0,\n scheduleAtNextAnimationFrame: (callback) => dom.scheduleAtNextAnimationFrame(dom.getWindow(element), callback)\n });\n super(element, options, scrollable);\n this._register(scrollable);\n }\n setScrollPosition(update) {\n this._scrollable.setScrollPositionNow(update);\n }\n}\nexport class SmoothScrollableElement extends AbstractScrollableElement {\n constructor(element, options, scrollable) {\n super(element, options, scrollable);\n }\n setScrollPosition(update) {\n if (update.reuseAnimation) {\n this._scrollable.setScrollPositionSmooth(update, update.reuseAnimation);\n }\n else {\n this._scrollable.setScrollPositionNow(update);\n }\n }\n getScrollPosition() {\n return this._scrollable.getCurrentScrollPosition();\n }\n}\nexport class DomScrollableElement extends AbstractScrollableElement {\n constructor(element, options) {\n options = options || {};\n options.mouseWheelSmoothScroll = false;\n const scrollable = new Scrollable({\n forceIntegerValues: false, // See https://github.com/microsoft/vscode/issues/139877\n smoothScrollDuration: 0,\n scheduleAtNextAnimationFrame: (callback) => dom.scheduleAtNextAnimationFrame(dom.getWindow(element), callback)\n });\n super(element, options, scrollable);\n this._register(scrollable);\n this._element = element;\n this._register(this.onScroll((e) => {\n if (e.scrollTopChanged) {\n this._element.scrollTop = e.scrollTop;\n }\n if (e.scrollLeftChanged) {\n this._element.scrollLeft = e.scrollLeft;\n }\n }));\n this.scanDomNode();\n }\n setScrollPosition(update) {\n this._scrollable.setScrollPositionNow(update);\n }\n getScrollPosition() {\n return this._scrollable.getCurrentScrollPosition();\n }\n scanDomNode() {\n // width, scrollLeft, scrollWidth, height, scrollTop, scrollHeight\n this.setScrollDimensions({\n width: this._element.clientWidth,\n scrollWidth: this._element.scrollWidth,\n height: this._element.clientHeight,\n scrollHeight: this._element.scrollHeight\n });\n this.setScrollPosition({\n scrollLeft: this._element.scrollLeft,\n scrollTop: this._element.scrollTop,\n });\n }\n}\nfunction resolveOptions(opts) {\n const result = {\n lazyRender: (typeof opts.lazyRender !== 'undefined' ? opts.lazyRender : false),\n className: (typeof opts.className !== 'undefined' ? opts.className : ''),\n useShadows: (typeof opts.useShadows !== 'undefined' ? opts.useShadows : true),\n handleMouseWheel: (typeof opts.handleMouseWheel !== 'undefined' ? opts.handleMouseWheel : true),\n flipAxes: (typeof opts.flipAxes !== 'undefined' ? opts.flipAxes : false),\n consumeMouseWheelIfScrollbarIsNeeded: (typeof opts.consumeMouseWheelIfScrollbarIsNeeded !== 'undefined' ? opts.consumeMouseWheelIfScrollbarIsNeeded : false),\n alwaysConsumeMouseWheel: (typeof opts.alwaysConsumeMouseWheel !== 'undefined' ? opts.alwaysConsumeMouseWheel : false),\n scrollYToX: (typeof opts.scrollYToX !== 'undefined' ? opts.scrollYToX : false),\n mouseWheelScrollSensitivity: (typeof opts.mouseWheelScrollSensitivity !== 'undefined' ? opts.mouseWheelScrollSensitivity : 1),\n fastScrollSensitivity: (typeof opts.fastScrollSensitivity !== 'undefined' ? opts.fastScrollSensitivity : 5),\n scrollPredominantAxis: (typeof opts.scrollPredominantAxis !== 'undefined' ? opts.scrollPredominantAxis : true),\n mouseWheelSmoothScroll: (typeof opts.mouseWheelSmoothScroll !== 'undefined' ? opts.mouseWheelSmoothScroll : true),\n arrowSize: (typeof opts.arrowSize !== 'undefined' ? opts.arrowSize : 11),\n listenOnDomNode: (typeof opts.listenOnDomNode !== 'undefined' ? opts.listenOnDomNode : null),\n horizontal: (typeof opts.horizontal !== 'undefined' ? opts.horizontal : 1 /* ScrollbarVisibility.Auto */),\n horizontalScrollbarSize: (typeof opts.horizontalScrollbarSize !== 'undefined' ? opts.horizontalScrollbarSize : 10),\n horizontalSliderSize: (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : 0),\n horizontalHasArrows: (typeof opts.horizontalHasArrows !== 'undefined' ? opts.horizontalHasArrows : false),\n vertical: (typeof opts.vertical !== 'undefined' ? opts.vertical : 1 /* ScrollbarVisibility.Auto */),\n verticalScrollbarSize: (typeof opts.verticalScrollbarSize !== 'undefined' ? opts.verticalScrollbarSize : 10),\n verticalHasArrows: (typeof opts.verticalHasArrows !== 'undefined' ? opts.verticalHasArrows : false),\n verticalSliderSize: (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : 0),\n scrollByPage: (typeof opts.scrollByPage !== 'undefined' ? opts.scrollByPage : false)\n };\n result.horizontalSliderSize = (typeof opts.horizontalSliderSize !== 'undefined' ? opts.horizontalSliderSize : result.horizontalScrollbarSize);\n result.verticalSliderSize = (typeof opts.verticalSliderSize !== 'undefined' ? opts.verticalSliderSize : result.verticalScrollbarSize);\n // Defaults are different on Macs\n if (platform.isMacintosh) {\n result.className += ' mac';\n }\n return result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { matchesSomeScheme, Schemas } from '../../../../base/common/network.js';\nimport { registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ReferencesModel } from './referencesModel.js';\nfunction shouldIncludeLocationLink(sourceModel, loc) {\n // Always allow the location if the request comes from a document with the same scheme.\n if (loc.uri.scheme === sourceModel.uri.scheme) {\n return true;\n }\n // Otherwise filter out locations from internal schemes\n if (matchesSomeScheme(loc.uri, Schemas.walkThroughSnippet, Schemas.vscodeChatCodeBlock, Schemas.vscodeChatCodeCompareBlock, Schemas.vscodeCopilotBackingChatCodeBlock)) {\n return false;\n }\n return true;\n}\nasync function getLocationLinks(model, position, registry, provide) {\n const provider = registry.ordered(model);\n // get results\n const promises = provider.map((provider) => {\n return Promise.resolve(provide(provider, model, position)).then(undefined, err => {\n onUnexpectedExternalError(err);\n return undefined;\n });\n });\n const values = await Promise.all(promises);\n return coalesce(values.flat()).filter(loc => shouldIncludeLocationLink(model, loc));\n}\nexport function getDefinitionsAtPosition(registry, model, position, token) {\n return getLocationLinks(model, position, registry, (provider, model, position) => {\n return provider.provideDefinition(model, position, token);\n });\n}\nexport function getDeclarationsAtPosition(registry, model, position, token) {\n return getLocationLinks(model, position, registry, (provider, model, position) => {\n return provider.provideDeclaration(model, position, token);\n });\n}\nexport function getImplementationsAtPosition(registry, model, position, token) {\n return getLocationLinks(model, position, registry, (provider, model, position) => {\n return provider.provideImplementation(model, position, token);\n });\n}\nexport function getTypeDefinitionsAtPosition(registry, model, position, token) {\n return getLocationLinks(model, position, registry, (provider, model, position) => {\n return provider.provideTypeDefinition(model, position, token);\n });\n}\nexport function getReferencesAtPosition(registry, model, position, compact, token) {\n return getLocationLinks(model, position, registry, async (provider, model, position) => {\n var _a, _b;\n const result = (_a = (await provider.provideReferences(model, position, { includeDeclaration: true }, token))) === null || _a === void 0 ? void 0 : _a.filter(ref => shouldIncludeLocationLink(model, ref));\n if (!compact || !result || result.length !== 2) {\n return result;\n }\n const resultWithoutDeclaration = (_b = (await provider.provideReferences(model, position, { includeDeclaration: false }, token))) === null || _b === void 0 ? void 0 : _b.filter(ref => shouldIncludeLocationLink(model, ref));\n if (resultWithoutDeclaration && resultWithoutDeclaration.length === 1) {\n return resultWithoutDeclaration;\n }\n return result;\n });\n}\n// -- API commands ----\nasync function _sortedAndDeduped(callback) {\n const rawLinks = await callback();\n const model = new ReferencesModel(rawLinks, '');\n const modelLinks = model.references.map(ref => ref.link);\n model.dispose();\n return modelLinks;\n}\nregisterModelAndPositionCommand('_executeDefinitionProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const promise = getDefinitionsAtPosition(languageFeaturesService.definitionProvider, model, position, CancellationToken.None);\n return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeTypeDefinitionProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const promise = getTypeDefinitionsAtPosition(languageFeaturesService.typeDefinitionProvider, model, position, CancellationToken.None);\n return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeDeclarationProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const promise = getDeclarationsAtPosition(languageFeaturesService.declarationProvider, model, position, CancellationToken.None);\n return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeReferenceProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const promise = getReferencesAtPosition(languageFeaturesService.referenceProvider, model, position, false, CancellationToken.None);\n return _sortedAndDeduped(() => promise);\n});\nregisterModelAndPositionCommand('_executeImplementationProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const promise = getImplementationsAtPosition(languageFeaturesService.implementationProvider, model, position, CancellationToken.None);\n return _sortedAndDeduped(() => promise);\n});\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { createScopedLineTokens } from '../supports.js';\nimport { LineTokens } from '../../tokens/lineTokens.js';\n/**\n * This class is a wrapper class around {@link IndentRulesSupport}.\n * It processes the lines by removing the language configuration brackets from the regex, string and comment tokens.\n * It then calls into the {@link IndentRulesSupport} to validate the indentation conditions.\n */\nexport class ProcessedIndentRulesSupport {\n constructor(model, indentRulesSupport, languageConfigurationService) {\n this._indentRulesSupport = indentRulesSupport;\n this._indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n }\n /**\n * Apply the new indentation and return whether the indentation level should be increased after the given line number\n */\n shouldIncrease(lineNumber, newIndentation) {\n const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n return this._indentRulesSupport.shouldIncrease(processedLine);\n }\n /**\n * Apply the new indentation and return whether the indentation level should be decreased after the given line number\n */\n shouldDecrease(lineNumber, newIndentation) {\n const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n return this._indentRulesSupport.shouldDecrease(processedLine);\n }\n /**\n * Apply the new indentation and return whether the indentation level should remain unchanged at the given line number\n */\n shouldIgnore(lineNumber, newIndentation) {\n const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n return this._indentRulesSupport.shouldIgnore(processedLine);\n }\n /**\n * Apply the new indentation and return whether the indentation level should increase on the line after the given line number\n */\n shouldIndentNextLine(lineNumber, newIndentation) {\n const processedLine = this._indentationLineProcessor.getProcessedLine(lineNumber, newIndentation);\n return this._indentRulesSupport.shouldIndentNextLine(processedLine);\n }\n}\n/**\n * This class fetches the processed text around a range which can be used for indentation evaluation.\n * It returns:\n * - The processed text before the given range and on the same start line\n * - The processed text after the given range and on the same end line\n * - The processed text on the previous line\n */\nexport class IndentationContextProcessor {\n constructor(model, languageConfigurationService) {\n this.model = model;\n this.indentationLineProcessor = new IndentationLineProcessor(model, languageConfigurationService);\n }\n /**\n * Returns the processed text, stripped from the language configuration brackets within the string, comment and regex tokens, around the given range\n */\n getProcessedTokenContextAroundRange(range) {\n const beforeRangeProcessedTokens = this._getProcessedTokensBeforeRange(range);\n const afterRangeProcessedTokens = this._getProcessedTokensAfterRange(range);\n const previousLineProcessedTokens = this._getProcessedPreviousLineTokens(range);\n return { beforeRangeProcessedTokens, afterRangeProcessedTokens, previousLineProcessedTokens };\n }\n _getProcessedTokensBeforeRange(range) {\n this.model.tokenization.forceTokenization(range.startLineNumber);\n const lineTokens = this.model.tokenization.getLineTokens(range.startLineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, range.startColumn - 1);\n let slicedTokens;\n if (isLanguageDifferentFromLineStart(this.model, range.getStartPosition())) {\n const columnIndexWithinScope = (range.startColumn - 1) - scopedLineTokens.firstCharOffset;\n const firstCharacterOffset = scopedLineTokens.firstCharOffset;\n const lastCharacterOffset = firstCharacterOffset + columnIndexWithinScope;\n slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n }\n else {\n const columnWithinLine = range.startColumn - 1;\n slicedTokens = lineTokens.sliceAndInflate(0, columnWithinLine, 0);\n }\n const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n return processedTokens;\n }\n _getProcessedTokensAfterRange(range) {\n const position = range.isEmpty() ? range.getStartPosition() : range.getEndPosition();\n this.model.tokenization.forceTokenization(position.lineNumber);\n const lineTokens = this.model.tokenization.getLineTokens(position.lineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n const columnIndexWithinScope = position.column - 1 - scopedLineTokens.firstCharOffset;\n const firstCharacterOffset = scopedLineTokens.firstCharOffset + columnIndexWithinScope;\n const lastCharacterOffset = scopedLineTokens.firstCharOffset + scopedLineTokens.getLineLength();\n const slicedTokens = lineTokens.sliceAndInflate(firstCharacterOffset, lastCharacterOffset, 0);\n const processedTokens = this.indentationLineProcessor.getProcessedTokens(slicedTokens);\n return processedTokens;\n }\n _getProcessedPreviousLineTokens(range) {\n const getScopedLineTokensAtEndColumnOfLine = (lineNumber) => {\n this.model.tokenization.forceTokenization(lineNumber);\n const lineTokens = this.model.tokenization.getLineTokens(lineNumber);\n const endColumnOfLine = this.model.getLineMaxColumn(lineNumber) - 1;\n const scopedLineTokensAtEndColumn = createScopedLineTokens(lineTokens, endColumnOfLine);\n return scopedLineTokensAtEndColumn;\n };\n this.model.tokenization.forceTokenization(range.startLineNumber);\n const lineTokens = this.model.tokenization.getLineTokens(range.startLineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, range.startColumn - 1);\n const emptyTokens = LineTokens.createEmpty('', scopedLineTokens.languageIdCodec);\n const previousLineNumber = range.startLineNumber - 1;\n const isFirstLine = previousLineNumber === 0;\n if (isFirstLine) {\n return emptyTokens;\n }\n const canScopeExtendOnPreviousLine = scopedLineTokens.firstCharOffset === 0;\n if (!canScopeExtendOnPreviousLine) {\n return emptyTokens;\n }\n const scopedLineTokensAtEndColumnOfPreviousLine = getScopedLineTokensAtEndColumnOfLine(previousLineNumber);\n const doesLanguageContinueOnPreviousLine = scopedLineTokens.languageId === scopedLineTokensAtEndColumnOfPreviousLine.languageId;\n if (!doesLanguageContinueOnPreviousLine) {\n return emptyTokens;\n }\n const previousSlicedLineTokens = scopedLineTokensAtEndColumnOfPreviousLine.toIViewLineTokens();\n const processedTokens = this.indentationLineProcessor.getProcessedTokens(previousSlicedLineTokens);\n return processedTokens;\n }\n}\n/**\n * This class performs the actual processing of the indentation lines.\n * The brackets of the language configuration are removed from the regex, string and comment tokens.\n */\nclass IndentationLineProcessor {\n constructor(model, languageConfigurationService) {\n this.model = model;\n this.languageConfigurationService = languageConfigurationService;\n }\n /**\n * Get the processed line for the given line number and potentially adjust the indentation level.\n * Remove the language configuration brackets from the regex, string and comment tokens.\n */\n getProcessedLine(lineNumber, newIndentation) {\n var _a, _b;\n const replaceIndentation = (line, newIndentation) => {\n const currentIndentation = strings.getLeadingWhitespace(line);\n const adjustedLine = newIndentation + line.substring(currentIndentation.length);\n return adjustedLine;\n };\n (_b = (_a = this.model.tokenization).forceTokenization) === null || _b === void 0 ? void 0 : _b.call(_a, lineNumber);\n const tokens = this.model.tokenization.getLineTokens(lineNumber);\n let processedLine = this.getProcessedTokens(tokens).getLineContent();\n if (newIndentation !== undefined) {\n processedLine = replaceIndentation(processedLine, newIndentation);\n }\n return processedLine;\n }\n /**\n * Process the line with the given tokens, remove the language configuration brackets from the regex, string and comment tokens.\n */\n getProcessedTokens(tokens) {\n const shouldRemoveBracketsFromTokenType = (tokenType) => {\n return tokenType === 2 /* StandardTokenType.String */\n || tokenType === 3 /* StandardTokenType.RegEx */\n || tokenType === 1 /* StandardTokenType.Comment */;\n };\n const languageId = tokens.getLanguageId(0);\n const bracketsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n const bracketsRegExp = bracketsConfiguration.getBracketRegExp({ global: true });\n const textAndMetadata = [];\n tokens.forEach((tokenIndex) => {\n const tokenType = tokens.getStandardTokenType(tokenIndex);\n let text = tokens.getTokenText(tokenIndex);\n if (shouldRemoveBracketsFromTokenType(tokenType)) {\n text = text.replace(bracketsRegExp, '');\n }\n const metadata = tokens.getMetadata(tokenIndex);\n textAndMetadata.push({ text, metadata });\n });\n const processedLineTokens = LineTokens.createFromTextAndMetadata(textAndMetadata, tokens.languageIdCodec);\n return processedLineTokens;\n }\n}\nexport function isLanguageDifferentFromLineStart(model, position) {\n model.tokenization.forceTokenization(position.lineNumber);\n const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n const scopedLineTokens = createScopedLineTokens(lineTokens, position.column - 1);\n const doesScopeStartAtOffsetZero = scopedLineTokens.firstCharOffset === 0;\n const isScopedLanguageEqualToFirstLanguageOnLine = lineTokens.getLanguageId(0) === scopedLineTokens.languageId;\n const languageIsDifferentFromLineStart = !doesScopeStartAtOffsetZero && !isScopedLanguageEqualToFirstLanguageOnLine;\n return languageIsDifferentFromLineStart;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: \"must be equal to constant\",\n params: ({ schemaCode }) => (0, codegen_1._) `{allowedValue: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schemaCode, schema } = cxt;\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data((0, codegen_1._) `!${(0, util_1.useFunc)(gen, equal_1.default)}(${data}, ${schemaCode})`);\n }\n else {\n cxt.fail((0, codegen_1._) `${schema} !== ${data}`);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=const.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { TabFocus } from '../../../browser/config/tabFocus.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nexport class ToggleTabFocusModeAction extends Action2 {\n constructor() {\n super({\n id: ToggleTabFocusModeAction.ID,\n title: nls.localize2({ key: 'toggle.tabMovesFocus', comment: ['Turn on/off use of tab key for moving focus around VS Code'] }, 'Toggle Tab Key Moves Focus'),\n precondition: undefined,\n keybinding: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 43 /* KeyCode.KeyM */,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 43 /* KeyCode.KeyM */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: nls.localize2('tabMovesFocusDescriptions', \"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.\"),\n },\n f1: true\n });\n }\n run() {\n const oldValue = TabFocus.getTabFocusMode();\n const newValue = !oldValue;\n TabFocus.setTabFocusMode(newValue);\n if (newValue) {\n alert(nls.localize('toggle.tabMovesFocus.on', \"Pressing Tab will now move focus to the next focusable element\"));\n }\n else {\n alert(nls.localize('toggle.tabMovesFocus.off', \"Pressing Tab will now insert the tab character\"));\n }\n }\n}\nToggleTabFocusModeAction.ID = 'editor.action.toggleTabFocusMode';\nregisterAction2(ToggleTabFocusModeAction);\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/scheme/scheme.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"scheme\",\n extensions: [\".scm\", \".ss\", \".sch\", \".rkt\"],\n aliases: [\"scheme\", \"Scheme\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/scheme/scheme\"], resolve, reject);\n });\n } else {\n return import(\"./scheme.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { FuzzyScore } from '../../../../base/common/filters.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { Disposable, RefCountedDisposable } from '../../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CompletionModel, LineContext } from './completionModel.js';\nimport { CompletionOptions, provideSuggestionItems, QuickSuggestionsOptions } from './suggest.js';\nimport { ISuggestMemoryService } from './suggestMemory.js';\nimport { SuggestModel } from './suggestModel.js';\nimport { WordDistance } from './wordDistance.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nclass SuggestInlineCompletion {\n constructor(range, insertText, filterText, additionalTextEdits, command, completion) {\n this.range = range;\n this.insertText = insertText;\n this.filterText = filterText;\n this.additionalTextEdits = additionalTextEdits;\n this.command = command;\n this.completion = completion;\n }\n}\nlet InlineCompletionResults = class InlineCompletionResults extends RefCountedDisposable {\n constructor(model, line, word, completionModel, completions, _suggestMemoryService) {\n super(completions.disposable);\n this.model = model;\n this.line = line;\n this.word = word;\n this.completionModel = completionModel;\n this._suggestMemoryService = _suggestMemoryService;\n }\n canBeReused(model, line, word) {\n return this.model === model // same model\n && this.line === line\n && this.word.word.length > 0\n && this.word.startColumn === word.startColumn && this.word.endColumn < word.endColumn // same word\n && this.completionModel.getIncompleteProvider().size === 0; // no incomplete results\n }\n get items() {\n var _a;\n const result = [];\n // Split items by preselected index. This ensures the memory-selected item shows first and that better/worst\n // ranked items are before/after\n const { items } = this.completionModel;\n const selectedIndex = this._suggestMemoryService.select(this.model, { lineNumber: this.line, column: this.word.endColumn + this.completionModel.lineContext.characterCountDelta }, items);\n const first = Iterable.slice(items, selectedIndex);\n const second = Iterable.slice(items, 0, selectedIndex);\n let resolveCount = 5;\n for (const item of Iterable.concat(first, second)) {\n if (item.score === FuzzyScore.Default) {\n // skip items that have no overlap\n continue;\n }\n const range = new Range(item.editStart.lineNumber, item.editStart.column, item.editInsertEnd.lineNumber, item.editInsertEnd.column + this.completionModel.lineContext.characterCountDelta // end PLUS character delta\n );\n const insertText = item.completion.insertTextRules && (item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */)\n ? { snippet: item.completion.insertText }\n : item.completion.insertText;\n result.push(new SuggestInlineCompletion(range, insertText, (_a = item.filterTextLow) !== null && _a !== void 0 ? _a : item.labelLow, item.completion.additionalTextEdits, item.completion.command, item));\n // resolve the first N suggestions eagerly\n if (resolveCount-- >= 0) {\n item.resolve(CancellationToken.None);\n }\n }\n return result;\n }\n};\nInlineCompletionResults = __decorate([\n __param(5, ISuggestMemoryService)\n], InlineCompletionResults);\nlet SuggestInlineCompletions = class SuggestInlineCompletions extends Disposable {\n constructor(_languageFeatureService, _clipboardService, _suggestMemoryService, _editorService) {\n super();\n this._languageFeatureService = _languageFeatureService;\n this._clipboardService = _clipboardService;\n this._suggestMemoryService = _suggestMemoryService;\n this._editorService = _editorService;\n this._store.add(_languageFeatureService.inlineCompletionsProvider.register('*', this));\n }\n async provideInlineCompletions(model, position, context, token) {\n var _a;\n if (context.selectedSuggestionInfo) {\n return;\n }\n let editor;\n for (const candidate of this._editorService.listCodeEditors()) {\n if (candidate.getModel() === model) {\n editor = candidate;\n break;\n }\n }\n if (!editor) {\n return;\n }\n const config = editor.getOption(89 /* EditorOption.quickSuggestions */);\n if (QuickSuggestionsOptions.isAllOff(config)) {\n // quick suggest is off (for this model/language)\n return;\n }\n model.tokenization.tokenizeIfCheap(position.lineNumber);\n const lineTokens = model.tokenization.getLineTokens(position.lineNumber);\n const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(position.column - 1 - 1, 0)));\n if (QuickSuggestionsOptions.valueFor(config, tokenType) !== 'inline') {\n // quick suggest is off (for this token)\n return undefined;\n }\n // We consider non-empty leading words and trigger characters. The latter only\n // when no word is being typed (word characters superseed trigger characters)\n let wordInfo = model.getWordAtPosition(position);\n let triggerCharacterInfo;\n if (!(wordInfo === null || wordInfo === void 0 ? void 0 : wordInfo.word)) {\n triggerCharacterInfo = this._getTriggerCharacterInfo(model, position);\n }\n if (!(wordInfo === null || wordInfo === void 0 ? void 0 : wordInfo.word) && !triggerCharacterInfo) {\n // not at word, not a trigger character\n return;\n }\n // ensure that we have word information and that we are at the end of a word\n // otherwise we stop because we don't want to do quick suggestions inside words\n if (!wordInfo) {\n wordInfo = model.getWordUntilPosition(position);\n }\n if (wordInfo.endColumn !== position.column) {\n return;\n }\n let result;\n const leadingLineContents = model.getValueInRange(new Range(position.lineNumber, 1, position.lineNumber, position.column));\n if (!triggerCharacterInfo && ((_a = this._lastResult) === null || _a === void 0 ? void 0 : _a.canBeReused(model, position.lineNumber, wordInfo))) {\n // reuse a previous result iff possible, only a refilter is needed\n // TODO@jrieken this can be improved further and only incomplete results can be updated\n // console.log(`REUSE with ${wordInfo.word}`);\n const newLineContext = new LineContext(leadingLineContents, position.column - this._lastResult.word.endColumn);\n this._lastResult.completionModel.lineContext = newLineContext;\n this._lastResult.acquire();\n result = this._lastResult;\n }\n else {\n // refesh model is required\n const completions = await provideSuggestionItems(this._languageFeatureService.completionProvider, model, position, new CompletionOptions(undefined, SuggestModel.createSuggestFilter(editor).itemKind, triggerCharacterInfo === null || triggerCharacterInfo === void 0 ? void 0 : triggerCharacterInfo.providers), triggerCharacterInfo && { triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */, triggerCharacter: triggerCharacterInfo.ch }, token);\n let clipboardText;\n if (completions.needsClipboard) {\n clipboardText = await this._clipboardService.readText();\n }\n const completionModel = new CompletionModel(completions.items, position.column, new LineContext(leadingLineContents, 0), WordDistance.None, editor.getOption(118 /* EditorOption.suggest */), editor.getOption(112 /* EditorOption.snippetSuggestions */), { boostFullMatch: false, firstMatchCanBeWeak: false }, clipboardText);\n result = new InlineCompletionResults(model, position.lineNumber, wordInfo, completionModel, completions, this._suggestMemoryService);\n }\n this._lastResult = result;\n return result;\n }\n handleItemDidShow(_completions, item) {\n item.completion.resolve(CancellationToken.None);\n }\n freeInlineCompletions(result) {\n result.release();\n }\n _getTriggerCharacterInfo(model, position) {\n var _a;\n const ch = model.getValueInRange(Range.fromPositions({ lineNumber: position.lineNumber, column: position.column - 1 }, position));\n const providers = new Set();\n for (const provider of this._languageFeatureService.completionProvider.all(model)) {\n if ((_a = provider.triggerCharacters) === null || _a === void 0 ? void 0 : _a.includes(ch)) {\n providers.add(provider);\n }\n }\n if (providers.size === 0) {\n return undefined;\n }\n return { providers, ch };\n }\n};\nSuggestInlineCompletions = __decorate([\n __param(0, ILanguageFeaturesService),\n __param(1, IClipboardService),\n __param(2, ISuggestMemoryService),\n __param(3, ICodeEditorService)\n], SuggestInlineCompletions);\nexport { SuggestInlineCompletions };\nregisterEditorFeature(SuggestInlineCompletions);\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/systemverilog/systemverilog.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"systemverilog\",\n extensions: [\".sv\", \".svh\"],\n aliases: [\"SV\", \"sv\", \"SystemVerilog\", \"systemverilog\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/systemverilog/systemverilog\"], resolve, reject);\n });\n } else {\n return import(\"./systemverilog.js\");\n }\n }\n});\nregisterLanguage({\n id: \"verilog\",\n extensions: [\".v\", \".vh\"],\n aliases: [\"V\", \"v\", \"Verilog\", \"verilog\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/systemverilog/systemverilog\"], resolve, reject);\n });\n } else {\n return import(\"./systemverilog.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { LineTokens } from '../tokens/lineTokens.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { NullState, nullTokenizeEncoded } from './nullTokenize.js';\nconst fallback = {\n getInitialState: () => NullState,\n tokenizeEncoded: (buffer, hasEOL, state) => nullTokenizeEncoded(0 /* LanguageId.Null */, state)\n};\nexport async function tokenizeToString(languageService, text, languageId) {\n if (!languageId) {\n return _tokenizeToString(text, languageService.languageIdCodec, fallback);\n }\n const tokenizationSupport = await TokenizationRegistry.getOrCreate(languageId);\n return _tokenizeToString(text, languageService.languageIdCodec, tokenizationSupport || fallback);\n}\nexport function tokenizeLineToHTML(text, viewLineTokens, colorMap, startOffset, endOffset, tabSize, useNbsp) {\n let result = `
`;\n let charIndex = startOffset;\n let tabsCharDelta = 0;\n let prevIsSpace = true;\n for (let tokenIndex = 0, tokenCount = viewLineTokens.getCount(); tokenIndex < tokenCount; tokenIndex++) {\n const tokenEndIndex = viewLineTokens.getEndOffset(tokenIndex);\n if (tokenEndIndex <= startOffset) {\n continue;\n }\n let partContent = '';\n for (; charIndex < tokenEndIndex && charIndex < endOffset; charIndex++) {\n const charCode = text.charCodeAt(charIndex);\n switch (charCode) {\n case 9 /* CharCode.Tab */: {\n let insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;\n tabsCharDelta += insertSpacesCount - 1;\n while (insertSpacesCount > 0) {\n if (useNbsp && prevIsSpace) {\n partContent += ' ';\n prevIsSpace = false;\n }\n else {\n partContent += ' ';\n prevIsSpace = true;\n }\n insertSpacesCount--;\n }\n break;\n }\n case 60 /* CharCode.LessThan */:\n partContent += '<';\n prevIsSpace = false;\n break;\n case 62 /* CharCode.GreaterThan */:\n partContent += '>';\n prevIsSpace = false;\n break;\n case 38 /* CharCode.Ampersand */:\n partContent += '&';\n prevIsSpace = false;\n break;\n case 0 /* CharCode.Null */:\n partContent += '�';\n prevIsSpace = false;\n break;\n case 65279 /* CharCode.UTF8_BOM */:\n case 8232 /* CharCode.LINE_SEPARATOR */:\n case 8233 /* CharCode.PARAGRAPH_SEPARATOR */:\n case 133 /* CharCode.NEXT_LINE */:\n partContent += '\\ufffd';\n prevIsSpace = false;\n break;\n case 13 /* CharCode.CarriageReturn */:\n // zero width space, because carriage return would introduce a line break\n partContent += '​';\n prevIsSpace = false;\n break;\n case 32 /* CharCode.Space */:\n if (useNbsp && prevIsSpace) {\n partContent += ' ';\n prevIsSpace = false;\n }\n else {\n partContent += ' ';\n prevIsSpace = true;\n }\n break;\n default:\n partContent += String.fromCharCode(charCode);\n prevIsSpace = false;\n }\n }\n result += `${partContent}`;\n if (tokenEndIndex > endOffset || charIndex >= endOffset) {\n break;\n }\n }\n result += `
`;\n return result;\n}\nexport function _tokenizeToString(text, languageIdCodec, tokenizationSupport) {\n let result = `
`;\n const lines = strings.splitLines(text);\n let currentState = tokenizationSupport.getInitialState();\n for (let i = 0, len = lines.length; i < len; i++) {\n const line = lines[i];\n if (i > 0) {\n result += `
`;\n }\n const tokenizationResult = tokenizationSupport.tokenizeEncoded(line, true, currentState);\n LineTokens.convertToEndOffset(tokenizationResult.tokens, line.length);\n const lineTokens = new LineTokens(tokenizationResult.tokens, line, languageIdCodec);\n const viewLineTokens = lineTokens.inflate();\n let startOffset = 0;\n for (let j = 0, lenJ = viewLineTokens.getCount(); j < lenJ; j++) {\n const type = viewLineTokens.getClassName(j);\n const endIndex = viewLineTokens.getEndOffset(j);\n result += `${strings.escape(line.substring(startOffset, endIndex))}`;\n startOffset = endIndex;\n }\n currentState = tokenizationResult.endState;\n }\n result += `
`;\n return result;\n}\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport * as stringBuilder from '../../core/stringBuilder.js';\nimport { Range } from '../../core/range.js';\n/**\n * Represents a grouping of colliding bracket pairs.\n *\n * Most of the times this contains a single bracket pair,\n * but sometimes this contains multiple bracket pairs in cases\n * where the same string appears as a closing bracket for multiple\n * bracket pairs, or the same string appears an opening bracket for\n * multiple bracket pairs.\n *\n * e.g. of a group containing a single pair:\n * open: ['{'], close: ['}']\n *\n * e.g. of a group containing multiple pairs:\n * open: ['if', 'for'], close: ['end', 'end']\n */\nexport class RichEditBracket {\n constructor(languageId, index, open, close, forwardRegex, reversedRegex) {\n this._richEditBracketBrand = undefined;\n this.languageId = languageId;\n this.index = index;\n this.open = open;\n this.close = close;\n this.forwardRegex = forwardRegex;\n this.reversedRegex = reversedRegex;\n this._openSet = RichEditBracket._toSet(this.open);\n this._closeSet = RichEditBracket._toSet(this.close);\n }\n /**\n * Check if the provided `text` is an open bracket in this group.\n */\n isOpen(text) {\n return this._openSet.has(text);\n }\n /**\n * Check if the provided `text` is a close bracket in this group.\n */\n isClose(text) {\n return this._closeSet.has(text);\n }\n static _toSet(arr) {\n const result = new Set();\n for (const element of arr) {\n result.add(element);\n }\n return result;\n }\n}\n/**\n * Groups together brackets that have equal open or close sequences.\n *\n * For example, if the following brackets are defined:\n * ['IF','END']\n * ['for','end']\n * ['{','}']\n *\n * Then the grouped brackets would be:\n * { open: ['if', 'for'], close: ['end', 'end'] }\n * { open: ['{'], close: ['}'] }\n *\n */\nfunction groupFuzzyBrackets(brackets) {\n const N = brackets.length;\n brackets = brackets.map(b => [b[0].toLowerCase(), b[1].toLowerCase()]);\n const group = [];\n for (let i = 0; i < N; i++) {\n group[i] = i;\n }\n const areOverlapping = (a, b) => {\n const [aOpen, aClose] = a;\n const [bOpen, bClose] = b;\n return (aOpen === bOpen || aOpen === bClose || aClose === bOpen || aClose === bClose);\n };\n const mergeGroups = (g1, g2) => {\n const newG = Math.min(g1, g2);\n const oldG = Math.max(g1, g2);\n for (let i = 0; i < N; i++) {\n if (group[i] === oldG) {\n group[i] = newG;\n }\n }\n };\n // group together brackets that have the same open or the same close sequence\n for (let i = 0; i < N; i++) {\n const a = brackets[i];\n for (let j = i + 1; j < N; j++) {\n const b = brackets[j];\n if (areOverlapping(a, b)) {\n mergeGroups(group[i], group[j]);\n }\n }\n }\n const result = [];\n for (let g = 0; g < N; g++) {\n const currentOpen = [];\n const currentClose = [];\n for (let i = 0; i < N; i++) {\n if (group[i] === g) {\n const [open, close] = brackets[i];\n currentOpen.push(open);\n currentClose.push(close);\n }\n }\n if (currentOpen.length > 0) {\n result.push({\n open: currentOpen,\n close: currentClose\n });\n }\n }\n return result;\n}\nexport class RichEditBrackets {\n constructor(languageId, _brackets) {\n this._richEditBracketsBrand = undefined;\n const brackets = groupFuzzyBrackets(_brackets);\n this.brackets = brackets.map((b, index) => {\n return new RichEditBracket(languageId, index, b.open, b.close, getRegexForBracketPair(b.open, b.close, brackets, index), getReversedRegexForBracketPair(b.open, b.close, brackets, index));\n });\n this.forwardRegex = getRegexForBrackets(this.brackets);\n this.reversedRegex = getReversedRegexForBrackets(this.brackets);\n this.textIsBracket = {};\n this.textIsOpenBracket = {};\n this.maxBracketLength = 0;\n for (const bracket of this.brackets) {\n for (const open of bracket.open) {\n this.textIsBracket[open] = bracket;\n this.textIsOpenBracket[open] = true;\n this.maxBracketLength = Math.max(this.maxBracketLength, open.length);\n }\n for (const close of bracket.close) {\n this.textIsBracket[close] = bracket;\n this.textIsOpenBracket[close] = false;\n this.maxBracketLength = Math.max(this.maxBracketLength, close.length);\n }\n }\n }\n}\nfunction collectSuperstrings(str, brackets, currentIndex, dest) {\n for (let i = 0, len = brackets.length; i < len; i++) {\n if (i === currentIndex) {\n continue;\n }\n const bracket = brackets[i];\n for (const open of bracket.open) {\n if (open.indexOf(str) >= 0) {\n dest.push(open);\n }\n }\n for (const close of bracket.close) {\n if (close.indexOf(str) >= 0) {\n dest.push(close);\n }\n }\n }\n}\nfunction lengthcmp(a, b) {\n return a.length - b.length;\n}\nfunction unique(arr) {\n if (arr.length <= 1) {\n return arr;\n }\n const result = [];\n const seen = new Set();\n for (const element of arr) {\n if (seen.has(element)) {\n continue;\n }\n result.push(element);\n seen.add(element);\n }\n return result;\n}\n/**\n * Create a regular expression that can be used to search forward in a piece of text\n * for a group of bracket pairs. But this regex must be built in a way in which\n * it is aware of the other bracket pairs defined for the language.\n *\n * For example, if a language contains the following bracket pairs:\n * ['begin', 'end']\n * ['if', 'end if']\n * The two bracket pairs do not collide because no open or close brackets are equal.\n * So the function getRegexForBracketPair is called twice, once with\n * the ['begin'], ['end'] group consisting of one bracket pair, and once with\n * the ['if'], ['end if'] group consiting of the other bracket pair.\n *\n * But there could be a situation where an occurrence of 'end if' is mistaken\n * for an occurrence of 'end'.\n *\n * Therefore, for the bracket pair ['begin', 'end'], the regex will also\n * target 'end if'. The regex will be something like:\n * /(\\bend if\\b)|(\\bend\\b)|(\\bif\\b)/\n *\n * The regex also searches for \"superstrings\" (other brackets that might be mistaken with the current bracket).\n *\n */\nfunction getRegexForBracketPair(open, close, brackets, currentIndex) {\n // search in all brackets for other brackets that are a superstring of these brackets\n let pieces = [];\n pieces = pieces.concat(open);\n pieces = pieces.concat(close);\n for (let i = 0, len = pieces.length; i < len; i++) {\n collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n }\n pieces = unique(pieces);\n pieces.sort(lengthcmp);\n pieces.reverse();\n return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * This function also has the fine details of `getRegexForBracketPair`. For the same example\n * given above, the regex produced here would look like:\n * /(\\bfi dne\\b)|(\\bdne\\b)|(\\bfi\\b)/\n */\nfunction getReversedRegexForBracketPair(open, close, brackets, currentIndex) {\n // search in all brackets for other brackets that are a superstring of these brackets\n let pieces = [];\n pieces = pieces.concat(open);\n pieces = pieces.concat(close);\n for (let i = 0, len = pieces.length; i < len; i++) {\n collectSuperstrings(pieces[i], brackets, currentIndex, pieces);\n }\n pieces = unique(pieces);\n pieces.sort(lengthcmp);\n pieces.reverse();\n return createBracketOrRegExp(pieces.map(toReversedString));\n}\n/**\n * Creates a regular expression that targets all bracket pairs.\n *\n * e.g. for the bracket pairs:\n * ['{','}']\n * ['begin,'end']\n * ['for','end']\n * the regex would look like:\n * /(\\{)|(\\})|(\\bbegin\\b)|(\\bend\\b)|(\\bfor\\b)/\n */\nfunction getRegexForBrackets(brackets) {\n let pieces = [];\n for (const bracket of brackets) {\n for (const open of bracket.open) {\n pieces.push(open);\n }\n for (const close of bracket.close) {\n pieces.push(close);\n }\n }\n pieces = unique(pieces);\n return createBracketOrRegExp(pieces);\n}\n/**\n * Matching a regular expression in JS can only be done \"forwards\". So JS offers natively only\n * methods to find the first match of a regex in a string. But sometimes, it is useful to\n * find the last match of a regex in a string. For such a situation, a nice solution is to\n * simply reverse the string and then search for a reversed regex.\n *\n * e.g. for the bracket pairs:\n * ['{','}']\n * ['begin,'end']\n * ['for','end']\n * the regex would look like:\n * /(\\{)|(\\})|(\\bnigeb\\b)|(\\bdne\\b)|(\\brof\\b)/\n */\nfunction getReversedRegexForBrackets(brackets) {\n let pieces = [];\n for (const bracket of brackets) {\n for (const open of bracket.open) {\n pieces.push(open);\n }\n for (const close of bracket.close) {\n pieces.push(close);\n }\n }\n pieces = unique(pieces);\n return createBracketOrRegExp(pieces.map(toReversedString));\n}\nfunction prepareBracketForRegExp(str) {\n // This bracket pair uses letters like e.g. \"begin\" - \"end\"\n const insertWordBoundaries = (/^[\\w ]+$/.test(str));\n str = strings.escapeRegExpCharacters(str);\n return (insertWordBoundaries ? `\\\\b${str}\\\\b` : str);\n}\nexport function createBracketOrRegExp(pieces, options) {\n const regexStr = `(${pieces.map(prepareBracketForRegExp).join(')|(')})`;\n return strings.createRegExp(regexStr, true, options);\n}\nconst toReversedString = (function () {\n function reverse(str) {\n // create a Uint16Array and then use a TextDecoder to create a string\n const arr = new Uint16Array(str.length);\n let offset = 0;\n for (let i = str.length - 1; i >= 0; i--) {\n arr[offset++] = str.charCodeAt(i);\n }\n return stringBuilder.getPlatformTextDecoder().decode(arr);\n }\n let lastInput = null;\n let lastOutput = null;\n return function toReversedString(str) {\n if (lastInput !== str) {\n lastInput = str;\n lastOutput = reverse(lastInput);\n }\n return lastOutput;\n };\n})();\nexport class BracketsUtils {\n static _findPrevBracketInText(reversedBracketRegex, lineNumber, reversedText, offset) {\n const m = reversedText.match(reversedBracketRegex);\n if (!m) {\n return null;\n }\n const matchOffset = reversedText.length - (m.index || 0);\n const matchLength = m[0].length;\n const absoluteMatchOffset = offset + matchOffset;\n return new Range(lineNumber, absoluteMatchOffset - matchLength + 1, lineNumber, absoluteMatchOffset + 1);\n }\n static findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, startOffset, endOffset) {\n // Because JS does not support backwards regex search, we search forwards in a reversed string with a reversed regex ;)\n const reversedLineText = toReversedString(lineText);\n const reversedSubstr = reversedLineText.substring(lineText.length - endOffset, lineText.length - startOffset);\n return this._findPrevBracketInText(reversedBracketRegex, lineNumber, reversedSubstr, startOffset);\n }\n static findNextBracketInText(bracketRegex, lineNumber, text, offset) {\n const m = text.match(bracketRegex);\n if (!m) {\n return null;\n }\n const matchOffset = m.index || 0;\n const matchLength = m[0].length;\n if (matchLength === 0) {\n return null;\n }\n const absoluteMatchOffset = offset + matchOffset;\n return new Range(lineNumber, absoluteMatchOffset + 1, lineNumber, absoluteMatchOffset + 1 + matchLength);\n }\n static findNextBracketInRange(bracketRegex, lineNumber, lineText, startOffset, endOffset) {\n const substr = lineText.substring(startOffset, endOffset);\n return this.findNextBracketInText(bracketRegex, lineNumber, substr, startOffset);\n }\n}\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/rust/rust.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"rust\",\n extensions: [\".rs\", \".rlib\"],\n aliases: [\"Rust\", \"rust\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/rust/rust\"], resolve, reject);\n });\n } else {\n return import(\"./rust.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/range.js';\n/**\n * Returns the intersection between a ranged group and a range.\n * Returns `[]` if the intersection is empty.\n */\nexport function groupIntersect(range, groups) {\n const result = [];\n for (const r of groups) {\n if (range.start >= r.range.end) {\n continue;\n }\n if (range.end < r.range.start) {\n break;\n }\n const intersection = Range.intersect(range, r.range);\n if (Range.isEmpty(intersection)) {\n continue;\n }\n result.push({\n range: intersection,\n size: r.size\n });\n }\n return result;\n}\n/**\n * Shifts a range by that `much`.\n */\nexport function shift({ start, end }, much) {\n return { start: start + much, end: end + much };\n}\n/**\n * Consolidates a collection of ranged groups.\n *\n * Consolidation is the process of merging consecutive ranged groups\n * that share the same `size`.\n */\nexport function consolidate(groups) {\n const result = [];\n let previousGroup = null;\n for (const group of groups) {\n const start = group.range.start;\n const end = group.range.end;\n const size = group.size;\n if (previousGroup && size === previousGroup.size) {\n previousGroup.range.end = end;\n continue;\n }\n previousGroup = { range: { start, end }, size };\n result.push(previousGroup);\n }\n return result;\n}\n/**\n * Concatenates several collections of ranged groups into a single\n * collection.\n */\nfunction concat(...groups) {\n return consolidate(groups.reduce((r, g) => r.concat(g), []));\n}\nexport class RangeMap {\n get paddingTop() {\n return this._paddingTop;\n }\n set paddingTop(paddingTop) {\n this._size = this._size + paddingTop - this._paddingTop;\n this._paddingTop = paddingTop;\n }\n constructor(topPadding) {\n this.groups = [];\n this._size = 0;\n this._paddingTop = 0;\n this._paddingTop = topPadding !== null && topPadding !== void 0 ? topPadding : 0;\n this._size = this._paddingTop;\n }\n splice(index, deleteCount, items = []) {\n const diff = items.length - deleteCount;\n const before = groupIntersect({ start: 0, end: index }, this.groups);\n const after = groupIntersect({ start: index + deleteCount, end: Number.POSITIVE_INFINITY }, this.groups)\n .map(g => ({ range: shift(g.range, diff), size: g.size }));\n const middle = items.map((item, i) => ({\n range: { start: index + i, end: index + i + 1 },\n size: item.size\n }));\n this.groups = concat(before, middle, after);\n this._size = this._paddingTop + this.groups.reduce((t, g) => t + (g.size * (g.range.end - g.range.start)), 0);\n }\n /**\n * Returns the number of items in the range map.\n */\n get count() {\n const len = this.groups.length;\n if (!len) {\n return 0;\n }\n return this.groups[len - 1].range.end;\n }\n /**\n * Returns the sum of the sizes of all items in the range map.\n */\n get size() {\n return this._size;\n }\n /**\n * Returns the index of the item at the given position.\n */\n indexAt(position) {\n if (position < 0) {\n return -1;\n }\n if (position < this._paddingTop) {\n return 0;\n }\n let index = 0;\n let size = this._paddingTop;\n for (const group of this.groups) {\n const count = group.range.end - group.range.start;\n const newSize = size + (count * group.size);\n if (position < newSize) {\n return index + Math.floor((position - size) / group.size);\n }\n index += count;\n size = newSize;\n }\n return index;\n }\n /**\n * Returns the index of the item right after the item at the\n * index of the given position.\n */\n indexAfter(position) {\n return Math.min(this.indexAt(position) + 1, this.count);\n }\n /**\n * Returns the start position of the item at the given index.\n */\n positionAt(index) {\n if (index < 0) {\n return -1;\n }\n let position = 0;\n let count = 0;\n for (const group of this.groups) {\n const groupCount = group.range.end - group.range.start;\n const newCount = count + groupCount;\n if (index < newCount) {\n return this._paddingTop + position + ((index - count) * group.size);\n }\n position += groupCount * group.size;\n count = newCount;\n }\n return -1;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $ } from '../../dom.js';\nfunction removeFromParent(element) {\n var _a;\n try {\n (_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(element);\n }\n catch (e) {\n // this will throw if this happens due to a blur event, nasty business\n }\n}\nexport class RowCache {\n constructor(renderers) {\n this.renderers = renderers;\n this.cache = new Map();\n this.transactionNodesPendingRemoval = new Set();\n this.inTransaction = false;\n }\n /**\n * Returns a row either by creating a new one or reusing\n * a previously released row which shares the same templateId.\n *\n * @returns A row and `isReusingConnectedDomNode` if the row's node is already in the dom in a stale position.\n */\n alloc(templateId) {\n let result = this.getTemplateCache(templateId).pop();\n let isStale = false;\n if (result) {\n isStale = this.transactionNodesPendingRemoval.has(result.domNode);\n if (isStale) {\n this.transactionNodesPendingRemoval.delete(result.domNode);\n }\n }\n else {\n const domNode = $('.monaco-list-row');\n const renderer = this.getRenderer(templateId);\n const templateData = renderer.renderTemplate(domNode);\n result = { domNode, templateId, templateData };\n }\n return { row: result, isReusingConnectedDomNode: isStale };\n }\n /**\n * Releases the row for eventual reuse.\n */\n release(row) {\n if (!row) {\n return;\n }\n this.releaseRow(row);\n }\n /**\n * Begin a set of changes that use the cache. This lets us skip work when a row is removed and then inserted again.\n */\n transact(makeChanges) {\n if (this.inTransaction) {\n throw new Error('Already in transaction');\n }\n this.inTransaction = true;\n try {\n makeChanges();\n }\n finally {\n for (const domNode of this.transactionNodesPendingRemoval) {\n this.doRemoveNode(domNode);\n }\n this.transactionNodesPendingRemoval.clear();\n this.inTransaction = false;\n }\n }\n releaseRow(row) {\n const { domNode, templateId } = row;\n if (domNode) {\n if (this.inTransaction) {\n this.transactionNodesPendingRemoval.add(domNode);\n }\n else {\n this.doRemoveNode(domNode);\n }\n }\n const cache = this.getTemplateCache(templateId);\n cache.push(row);\n }\n doRemoveNode(domNode) {\n domNode.classList.remove('scrolling');\n removeFromParent(domNode);\n }\n getTemplateCache(templateId) {\n let result = this.cache.get(templateId);\n if (!result) {\n result = [];\n this.cache.set(templateId, result);\n }\n return result;\n }\n dispose() {\n this.cache.forEach((cachedRows, templateId) => {\n for (const cachedRow of cachedRows) {\n const renderer = this.getRenderer(templateId);\n renderer.disposeTemplate(cachedRow.templateData);\n cachedRow.templateData = null;\n }\n });\n this.cache.clear();\n this.transactionNodesPendingRemoval.clear();\n }\n getRenderer(templateId) {\n const renderer = this.renderers.get(templateId);\n if (!renderer) {\n throw new Error(`No renderer found for ${templateId}`);\n }\n return renderer;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { DataTransfers } from '../../dnd.js';\nimport { $, addDisposableListener, animate, getContentHeight, getContentWidth, getTopLeftOffset, getWindow, isAncestor, isHTMLElement, scheduleAtNextAnimationFrame } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { SmoothScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { distinct, equals } from '../../../common/arrays.js';\nimport { Delayer, disposableTimeout } from '../../../common/async.js';\nimport { memoize } from '../../../common/decorators.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../common/lifecycle.js';\nimport { Range } from '../../../common/range.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport { RangeMap, shift } from './rangeMap.js';\nimport { RowCache } from './rowCache.js';\nimport { BugIndicatingError } from '../../../common/errors.js';\nimport { clamp } from '../../../common/numbers.js';\nconst StaticDND = {\n CurrentDragAndDropData: undefined\n};\nconst DefaultOptions = {\n useShadows: true,\n verticalScrollMode: 1 /* ScrollbarVisibility.Auto */,\n setRowLineHeight: true,\n setRowHeight: true,\n supportDynamicHeights: false,\n dnd: {\n getDragElements(e) { return [e]; },\n getDragURI() { return null; },\n onDragStart() { },\n onDragOver() { return false; },\n drop() { },\n dispose() { }\n },\n horizontalScrolling: false,\n transformOptimization: true,\n alwaysConsumeMouseWheel: true,\n};\nexport class ElementsDragAndDropData {\n constructor(elements) {\n this.elements = elements;\n }\n update() { }\n getData() {\n return this.elements;\n }\n}\nexport class ExternalElementsDragAndDropData {\n constructor(elements) {\n this.elements = elements;\n }\n update() { }\n getData() {\n return this.elements;\n }\n}\nexport class NativeDragAndDropData {\n constructor() {\n this.types = [];\n this.files = [];\n }\n update(dataTransfer) {\n if (dataTransfer.types) {\n this.types.splice(0, this.types.length, ...dataTransfer.types);\n }\n if (dataTransfer.files) {\n this.files.splice(0, this.files.length);\n for (let i = 0; i < dataTransfer.files.length; i++) {\n const file = dataTransfer.files.item(i);\n if (file && (file.size || file.type)) {\n this.files.push(file);\n }\n }\n }\n }\n getData() {\n return {\n types: this.types,\n files: this.files\n };\n }\n}\nfunction equalsDragFeedback(f1, f2) {\n if (Array.isArray(f1) && Array.isArray(f2)) {\n return equals(f1, f2);\n }\n return f1 === f2;\n}\nclass ListViewAccessibilityProvider {\n constructor(accessibilityProvider) {\n if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getSetSize) {\n this.getSetSize = accessibilityProvider.getSetSize.bind(accessibilityProvider);\n }\n else {\n this.getSetSize = (e, i, l) => l;\n }\n if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getPosInSet) {\n this.getPosInSet = accessibilityProvider.getPosInSet.bind(accessibilityProvider);\n }\n else {\n this.getPosInSet = (e, i) => i + 1;\n }\n if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.getRole) {\n this.getRole = accessibilityProvider.getRole.bind(accessibilityProvider);\n }\n else {\n this.getRole = _ => 'listitem';\n }\n if (accessibilityProvider === null || accessibilityProvider === void 0 ? void 0 : accessibilityProvider.isChecked) {\n this.isChecked = accessibilityProvider.isChecked.bind(accessibilityProvider);\n }\n else {\n this.isChecked = _ => undefined;\n }\n }\n}\n/**\n * The {@link ListView} is a virtual scrolling engine.\n *\n * Given that it only renders elements within its viewport, it can hold large\n * collections of elements and stay very performant. The performance bottleneck\n * usually lies within the user's rendering code for each element.\n *\n * @remarks It is a low-level widget, not meant to be used directly. Refer to the\n * List widget instead.\n */\nexport class ListView {\n get contentHeight() { return this.rangeMap.size; }\n get onDidScroll() { return this.scrollableElement.onScroll; }\n get scrollableElementDomNode() { return this.scrollableElement.getDomNode(); }\n get horizontalScrolling() { return this._horizontalScrolling; }\n set horizontalScrolling(value) {\n if (value === this._horizontalScrolling) {\n return;\n }\n if (value && this.supportDynamicHeights) {\n throw new Error('Horizontal scrolling and dynamic heights not supported simultaneously');\n }\n this._horizontalScrolling = value;\n this.domNode.classList.toggle('horizontal-scrolling', this._horizontalScrolling);\n if (this._horizontalScrolling) {\n for (const item of this.items) {\n this.measureItemWidth(item);\n }\n this.updateScrollWidth();\n this.scrollableElement.setScrollDimensions({ width: getContentWidth(this.domNode) });\n this.rowsContainer.style.width = `${Math.max(this.scrollWidth || 0, this.renderWidth)}px`;\n }\n else {\n this.scrollableElementWidthDelayer.cancel();\n this.scrollableElement.setScrollDimensions({ width: this.renderWidth, scrollWidth: this.renderWidth });\n this.rowsContainer.style.width = '';\n }\n }\n constructor(container, virtualDelegate, renderers, options = DefaultOptions) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;\n this.virtualDelegate = virtualDelegate;\n this.domId = `list_id_${++ListView.InstanceCount}`;\n this.renderers = new Map();\n this.renderWidth = 0;\n this._scrollHeight = 0;\n this.scrollableElementUpdateDisposable = null;\n this.scrollableElementWidthDelayer = new Delayer(50);\n this.splicing = false;\n this.dragOverAnimationStopDisposable = Disposable.None;\n this.dragOverMouseY = 0;\n this.canDrop = false;\n this.currentDragFeedbackDisposable = Disposable.None;\n this.onDragLeaveTimeout = Disposable.None;\n this.disposables = new DisposableStore();\n this._onDidChangeContentHeight = new Emitter();\n this._onDidChangeContentWidth = new Emitter();\n this.onDidChangeContentHeight = Event.latch(this._onDidChangeContentHeight.event, undefined, this.disposables);\n this._horizontalScrolling = false;\n if (options.horizontalScrolling && options.supportDynamicHeights) {\n throw new Error('Horizontal scrolling and dynamic heights not supported simultaneously');\n }\n this.items = [];\n this.itemId = 0;\n this.rangeMap = this.createRangeMap((_a = options.paddingTop) !== null && _a !== void 0 ? _a : 0);\n for (const renderer of renderers) {\n this.renderers.set(renderer.templateId, renderer);\n }\n this.cache = this.disposables.add(new RowCache(this.renderers));\n this.lastRenderTop = 0;\n this.lastRenderHeight = 0;\n this.domNode = document.createElement('div');\n this.domNode.className = 'monaco-list';\n this.domNode.classList.add(this.domId);\n this.domNode.tabIndex = 0;\n this.domNode.classList.toggle('mouse-support', typeof options.mouseSupport === 'boolean' ? options.mouseSupport : true);\n this._horizontalScrolling = (_b = options.horizontalScrolling) !== null && _b !== void 0 ? _b : DefaultOptions.horizontalScrolling;\n this.domNode.classList.toggle('horizontal-scrolling', this._horizontalScrolling);\n this.paddingBottom = typeof options.paddingBottom === 'undefined' ? 0 : options.paddingBottom;\n this.accessibilityProvider = new ListViewAccessibilityProvider(options.accessibilityProvider);\n this.rowsContainer = document.createElement('div');\n this.rowsContainer.className = 'monaco-list-rows';\n const transformOptimization = (_c = options.transformOptimization) !== null && _c !== void 0 ? _c : DefaultOptions.transformOptimization;\n if (transformOptimization) {\n this.rowsContainer.style.transform = 'translate3d(0px, 0px, 0px)';\n this.rowsContainer.style.overflow = 'hidden';\n this.rowsContainer.style.contain = 'strict';\n }\n this.disposables.add(Gesture.addTarget(this.rowsContainer));\n this.scrollable = this.disposables.add(new Scrollable({\n forceIntegerValues: true,\n smoothScrollDuration: ((_d = options.smoothScrolling) !== null && _d !== void 0 ? _d : false) ? 125 : 0,\n scheduleAtNextAnimationFrame: cb => scheduleAtNextAnimationFrame(getWindow(this.domNode), cb)\n }));\n this.scrollableElement = this.disposables.add(new SmoothScrollableElement(this.rowsContainer, {\n alwaysConsumeMouseWheel: (_e = options.alwaysConsumeMouseWheel) !== null && _e !== void 0 ? _e : DefaultOptions.alwaysConsumeMouseWheel,\n horizontal: 1 /* ScrollbarVisibility.Auto */,\n vertical: (_f = options.verticalScrollMode) !== null && _f !== void 0 ? _f : DefaultOptions.verticalScrollMode,\n useShadows: (_g = options.useShadows) !== null && _g !== void 0 ? _g : DefaultOptions.useShadows,\n mouseWheelScrollSensitivity: options.mouseWheelScrollSensitivity,\n fastScrollSensitivity: options.fastScrollSensitivity,\n scrollByPage: options.scrollByPage\n }, this.scrollable));\n this.domNode.appendChild(this.scrollableElement.getDomNode());\n container.appendChild(this.domNode);\n this.scrollableElement.onScroll(this.onScroll, this, this.disposables);\n this.disposables.add(addDisposableListener(this.rowsContainer, TouchEventType.Change, e => this.onTouchChange(e)));\n // Prevent the monaco-scrollable-element from scrolling\n // https://github.com/microsoft/vscode/issues/44181\n this.disposables.add(addDisposableListener(this.scrollableElement.getDomNode(), 'scroll', e => e.target.scrollTop = 0));\n this.disposables.add(addDisposableListener(this.domNode, 'dragover', e => this.onDragOver(this.toDragEvent(e))));\n this.disposables.add(addDisposableListener(this.domNode, 'drop', e => this.onDrop(this.toDragEvent(e))));\n this.disposables.add(addDisposableListener(this.domNode, 'dragleave', e => this.onDragLeave(this.toDragEvent(e))));\n this.disposables.add(addDisposableListener(this.domNode, 'dragend', e => this.onDragEnd(e)));\n this.setRowLineHeight = (_h = options.setRowLineHeight) !== null && _h !== void 0 ? _h : DefaultOptions.setRowLineHeight;\n this.setRowHeight = (_j = options.setRowHeight) !== null && _j !== void 0 ? _j : DefaultOptions.setRowHeight;\n this.supportDynamicHeights = (_k = options.supportDynamicHeights) !== null && _k !== void 0 ? _k : DefaultOptions.supportDynamicHeights;\n this.dnd = (_l = options.dnd) !== null && _l !== void 0 ? _l : this.disposables.add(DefaultOptions.dnd);\n this.layout((_m = options.initialSize) === null || _m === void 0 ? void 0 : _m.height, (_o = options.initialSize) === null || _o === void 0 ? void 0 : _o.width);\n }\n updateOptions(options) {\n if (options.paddingBottom !== undefined) {\n this.paddingBottom = options.paddingBottom;\n this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n }\n if (options.smoothScrolling !== undefined) {\n this.scrollable.setSmoothScrollDuration(options.smoothScrolling ? 125 : 0);\n }\n if (options.horizontalScrolling !== undefined) {\n this.horizontalScrolling = options.horizontalScrolling;\n }\n let scrollableOptions;\n if (options.scrollByPage !== undefined) {\n scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), scrollByPage: options.scrollByPage };\n }\n if (options.mouseWheelScrollSensitivity !== undefined) {\n scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), mouseWheelScrollSensitivity: options.mouseWheelScrollSensitivity };\n }\n if (options.fastScrollSensitivity !== undefined) {\n scrollableOptions = { ...(scrollableOptions !== null && scrollableOptions !== void 0 ? scrollableOptions : {}), fastScrollSensitivity: options.fastScrollSensitivity };\n }\n if (scrollableOptions) {\n this.scrollableElement.updateOptions(scrollableOptions);\n }\n if (options.paddingTop !== undefined && options.paddingTop !== this.rangeMap.paddingTop) {\n // trigger a rerender\n const lastRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n const offset = options.paddingTop - this.rangeMap.paddingTop;\n this.rangeMap.paddingTop = options.paddingTop;\n this.render(lastRenderRange, Math.max(0, this.lastRenderTop + offset), this.lastRenderHeight, undefined, undefined, true);\n this.setScrollTop(this.lastRenderTop);\n this.eventuallyUpdateScrollDimensions();\n if (this.supportDynamicHeights) {\n this._rerender(this.lastRenderTop, this.lastRenderHeight);\n }\n }\n }\n createRangeMap(paddingTop) {\n return new RangeMap(paddingTop);\n }\n splice(start, deleteCount, elements = []) {\n if (this.splicing) {\n throw new Error('Can\\'t run recursive splices.');\n }\n this.splicing = true;\n try {\n return this._splice(start, deleteCount, elements);\n }\n finally {\n this.splicing = false;\n this._onDidChangeContentHeight.fire(this.contentHeight);\n }\n }\n _splice(start, deleteCount, elements = []) {\n const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n const deleteRange = { start, end: start + deleteCount };\n const removeRange = Range.intersect(previousRenderRange, deleteRange);\n // try to reuse rows, avoid removing them from DOM\n const rowsToDispose = new Map();\n for (let i = removeRange.end - 1; i >= removeRange.start; i--) {\n const item = this.items[i];\n item.dragStartDisposable.dispose();\n item.checkedDisposable.dispose();\n if (item.row) {\n let rows = rowsToDispose.get(item.templateId);\n if (!rows) {\n rows = [];\n rowsToDispose.set(item.templateId, rows);\n }\n const renderer = this.renderers.get(item.templateId);\n if (renderer && renderer.disposeElement) {\n renderer.disposeElement(item.element, i, item.row.templateData, item.size);\n }\n rows.unshift(item.row);\n }\n item.row = null;\n item.stale = true;\n }\n const previousRestRange = { start: start + deleteCount, end: this.items.length };\n const previousRenderedRestRange = Range.intersect(previousRestRange, previousRenderRange);\n const previousUnrenderedRestRanges = Range.relativeComplement(previousRestRange, previousRenderRange);\n const inserted = elements.map(element => ({\n id: String(this.itemId++),\n element,\n templateId: this.virtualDelegate.getTemplateId(element),\n size: this.virtualDelegate.getHeight(element),\n width: undefined,\n hasDynamicHeight: !!this.virtualDelegate.hasDynamicHeight && this.virtualDelegate.hasDynamicHeight(element),\n lastDynamicHeightWidth: undefined,\n row: null,\n uri: undefined,\n dropTarget: false,\n dragStartDisposable: Disposable.None,\n checkedDisposable: Disposable.None,\n stale: false\n }));\n let deleted;\n // TODO@joao: improve this optimization to catch even more cases\n if (start === 0 && deleteCount >= this.items.length) {\n this.rangeMap = this.createRangeMap(this.rangeMap.paddingTop);\n this.rangeMap.splice(0, 0, inserted);\n deleted = this.items;\n this.items = inserted;\n }\n else {\n this.rangeMap.splice(start, deleteCount, inserted);\n deleted = this.items.splice(start, deleteCount, ...inserted);\n }\n const delta = elements.length - deleteCount;\n const renderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n const renderedRestRange = shift(previousRenderedRestRange, delta);\n const updateRange = Range.intersect(renderRange, renderedRestRange);\n for (let i = updateRange.start; i < updateRange.end; i++) {\n this.updateItemInDOM(this.items[i], i);\n }\n const removeRanges = Range.relativeComplement(renderedRestRange, renderRange);\n for (const range of removeRanges) {\n for (let i = range.start; i < range.end; i++) {\n this.removeItemFromDOM(i);\n }\n }\n const unrenderedRestRanges = previousUnrenderedRestRanges.map(r => shift(r, delta));\n const elementsRange = { start, end: start + elements.length };\n const insertRanges = [elementsRange, ...unrenderedRestRanges].map(r => Range.intersect(renderRange, r)).reverse();\n for (const range of insertRanges) {\n for (let i = range.end - 1; i >= range.start; i--) {\n const item = this.items[i];\n const rows = rowsToDispose.get(item.templateId);\n const row = rows === null || rows === void 0 ? void 0 : rows.pop();\n this.insertItemInDOM(i, row);\n }\n }\n for (const rows of rowsToDispose.values()) {\n for (const row of rows) {\n this.cache.release(row);\n }\n }\n this.eventuallyUpdateScrollDimensions();\n if (this.supportDynamicHeights) {\n this._rerender(this.scrollTop, this.renderHeight);\n }\n return deleted.map(i => i.element);\n }\n eventuallyUpdateScrollDimensions() {\n this._scrollHeight = this.contentHeight;\n this.rowsContainer.style.height = `${this._scrollHeight}px`;\n if (!this.scrollableElementUpdateDisposable) {\n this.scrollableElementUpdateDisposable = scheduleAtNextAnimationFrame(getWindow(this.domNode), () => {\n this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n this.updateScrollWidth();\n this.scrollableElementUpdateDisposable = null;\n });\n }\n }\n eventuallyUpdateScrollWidth() {\n if (!this.horizontalScrolling) {\n this.scrollableElementWidthDelayer.cancel();\n return;\n }\n this.scrollableElementWidthDelayer.trigger(() => this.updateScrollWidth());\n }\n updateScrollWidth() {\n if (!this.horizontalScrolling) {\n return;\n }\n let scrollWidth = 0;\n for (const item of this.items) {\n if (typeof item.width !== 'undefined') {\n scrollWidth = Math.max(scrollWidth, item.width);\n }\n }\n this.scrollWidth = scrollWidth;\n this.scrollableElement.setScrollDimensions({ scrollWidth: scrollWidth === 0 ? 0 : (scrollWidth + 10) });\n this._onDidChangeContentWidth.fire(this.scrollWidth);\n }\n rerender() {\n if (!this.supportDynamicHeights) {\n return;\n }\n for (const item of this.items) {\n item.lastDynamicHeightWidth = undefined;\n }\n this._rerender(this.lastRenderTop, this.lastRenderHeight);\n }\n get length() {\n return this.items.length;\n }\n get renderHeight() {\n const scrollDimensions = this.scrollableElement.getScrollDimensions();\n return scrollDimensions.height;\n }\n get firstVisibleIndex() {\n const range = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n return range.start;\n }\n element(index) {\n return this.items[index].element;\n }\n indexOf(element) {\n return this.items.findIndex(item => item.element === element);\n }\n domElement(index) {\n const row = this.items[index].row;\n return row && row.domNode;\n }\n elementHeight(index) {\n return this.items[index].size;\n }\n elementTop(index) {\n return this.rangeMap.positionAt(index);\n }\n indexAt(position) {\n return this.rangeMap.indexAt(position);\n }\n indexAfter(position) {\n return this.rangeMap.indexAfter(position);\n }\n layout(height, width) {\n const scrollDimensions = {\n height: typeof height === 'number' ? height : getContentHeight(this.domNode)\n };\n if (this.scrollableElementUpdateDisposable) {\n this.scrollableElementUpdateDisposable.dispose();\n this.scrollableElementUpdateDisposable = null;\n scrollDimensions.scrollHeight = this.scrollHeight;\n }\n this.scrollableElement.setScrollDimensions(scrollDimensions);\n if (typeof width !== 'undefined') {\n this.renderWidth = width;\n if (this.supportDynamicHeights) {\n this._rerender(this.scrollTop, this.renderHeight);\n }\n }\n if (this.horizontalScrolling) {\n this.scrollableElement.setScrollDimensions({\n width: typeof width === 'number' ? width : getContentWidth(this.domNode)\n });\n }\n }\n // Render\n render(previousRenderRange, renderTop, renderHeight, renderLeft, scrollWidth, updateItemsInDOM = false) {\n const renderRange = this.getRenderRange(renderTop, renderHeight);\n const rangesToInsert = Range.relativeComplement(renderRange, previousRenderRange).reverse();\n const rangesToRemove = Range.relativeComplement(previousRenderRange, renderRange);\n if (updateItemsInDOM) {\n const rangesToUpdate = Range.intersect(previousRenderRange, renderRange);\n for (let i = rangesToUpdate.start; i < rangesToUpdate.end; i++) {\n this.updateItemInDOM(this.items[i], i);\n }\n }\n this.cache.transact(() => {\n for (const range of rangesToRemove) {\n for (let i = range.start; i < range.end; i++) {\n this.removeItemFromDOM(i);\n }\n }\n for (const range of rangesToInsert) {\n for (let i = range.end - 1; i >= range.start; i--) {\n this.insertItemInDOM(i);\n }\n }\n });\n if (renderLeft !== undefined) {\n this.rowsContainer.style.left = `-${renderLeft}px`;\n }\n this.rowsContainer.style.top = `-${renderTop}px`;\n if (this.horizontalScrolling && scrollWidth !== undefined) {\n this.rowsContainer.style.width = `${Math.max(scrollWidth, this.renderWidth)}px`;\n }\n this.lastRenderTop = renderTop;\n this.lastRenderHeight = renderHeight;\n }\n // DOM operations\n insertItemInDOM(index, row) {\n var _a, _b, _c;\n const item = this.items[index];\n if (!item.row) {\n if (row) {\n item.row = row;\n item.stale = true;\n }\n else {\n const result = this.cache.alloc(item.templateId);\n item.row = result.row;\n item.stale || (item.stale = result.isReusingConnectedDomNode);\n }\n }\n const role = this.accessibilityProvider.getRole(item.element) || 'listitem';\n item.row.domNode.setAttribute('role', role);\n const checked = this.accessibilityProvider.isChecked(item.element);\n if (typeof checked === 'boolean') {\n item.row.domNode.setAttribute('aria-checked', String(!!checked));\n }\n else if (checked) {\n const update = (checked) => item.row.domNode.setAttribute('aria-checked', String(!!checked));\n update(checked.value);\n item.checkedDisposable = checked.onDidChange(() => update(checked.value));\n }\n if (item.stale || !item.row.domNode.parentElement) {\n const referenceNode = (_c = (_b = (_a = this.items.at(index + 1)) === null || _a === void 0 ? void 0 : _a.row) === null || _b === void 0 ? void 0 : _b.domNode) !== null && _c !== void 0 ? _c : null;\n if (item.row.domNode.parentElement !== this.rowsContainer || item.row.domNode.nextElementSibling !== referenceNode) {\n this.rowsContainer.insertBefore(item.row.domNode, referenceNode);\n }\n item.stale = false;\n }\n this.updateItemInDOM(item, index);\n const renderer = this.renderers.get(item.templateId);\n if (!renderer) {\n throw new Error(`No renderer found for template id ${item.templateId}`);\n }\n renderer === null || renderer === void 0 ? void 0 : renderer.renderElement(item.element, index, item.row.templateData, item.size);\n const uri = this.dnd.getDragURI(item.element);\n item.dragStartDisposable.dispose();\n item.row.domNode.draggable = !!uri;\n if (uri) {\n item.dragStartDisposable = addDisposableListener(item.row.domNode, 'dragstart', event => this.onDragStart(item.element, uri, event));\n }\n if (this.horizontalScrolling) {\n this.measureItemWidth(item);\n this.eventuallyUpdateScrollWidth();\n }\n }\n measureItemWidth(item) {\n if (!item.row || !item.row.domNode) {\n return;\n }\n item.row.domNode.style.width = 'fit-content';\n item.width = getContentWidth(item.row.domNode);\n const style = getWindow(item.row.domNode).getComputedStyle(item.row.domNode);\n if (style.paddingLeft) {\n item.width += parseFloat(style.paddingLeft);\n }\n if (style.paddingRight) {\n item.width += parseFloat(style.paddingRight);\n }\n item.row.domNode.style.width = '';\n }\n updateItemInDOM(item, index) {\n item.row.domNode.style.top = `${this.elementTop(index)}px`;\n if (this.setRowHeight) {\n item.row.domNode.style.height = `${item.size}px`;\n }\n if (this.setRowLineHeight) {\n item.row.domNode.style.lineHeight = `${item.size}px`;\n }\n item.row.domNode.setAttribute('data-index', `${index}`);\n item.row.domNode.setAttribute('data-last-element', index === this.length - 1 ? 'true' : 'false');\n item.row.domNode.setAttribute('data-parity', index % 2 === 0 ? 'even' : 'odd');\n item.row.domNode.setAttribute('aria-setsize', String(this.accessibilityProvider.getSetSize(item.element, index, this.length)));\n item.row.domNode.setAttribute('aria-posinset', String(this.accessibilityProvider.getPosInSet(item.element, index)));\n item.row.domNode.setAttribute('id', this.getElementDomId(index));\n item.row.domNode.classList.toggle('drop-target', item.dropTarget);\n }\n removeItemFromDOM(index) {\n const item = this.items[index];\n item.dragStartDisposable.dispose();\n item.checkedDisposable.dispose();\n if (item.row) {\n const renderer = this.renderers.get(item.templateId);\n if (renderer && renderer.disposeElement) {\n renderer.disposeElement(item.element, index, item.row.templateData, item.size);\n }\n this.cache.release(item.row);\n item.row = null;\n }\n if (this.horizontalScrolling) {\n this.eventuallyUpdateScrollWidth();\n }\n }\n getScrollTop() {\n const scrollPosition = this.scrollableElement.getScrollPosition();\n return scrollPosition.scrollTop;\n }\n setScrollTop(scrollTop, reuseAnimation) {\n if (this.scrollableElementUpdateDisposable) {\n this.scrollableElementUpdateDisposable.dispose();\n this.scrollableElementUpdateDisposable = null;\n this.scrollableElement.setScrollDimensions({ scrollHeight: this.scrollHeight });\n }\n this.scrollableElement.setScrollPosition({ scrollTop, reuseAnimation });\n }\n get scrollTop() {\n return this.getScrollTop();\n }\n set scrollTop(scrollTop) {\n this.setScrollTop(scrollTop);\n }\n get scrollHeight() {\n return this._scrollHeight + (this.horizontalScrolling ? 10 : 0) + this.paddingBottom;\n }\n // Events\n get onMouseClick() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'click')).event, e => this.toMouseEvent(e), this.disposables); }\n get onMouseDblClick() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'dblclick')).event, e => this.toMouseEvent(e), this.disposables); }\n get onMouseMiddleClick() { return Event.filter(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'auxclick')).event, e => this.toMouseEvent(e), this.disposables), e => e.browserEvent.button === 1, this.disposables); }\n get onMouseDown() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mousedown')).event, e => this.toMouseEvent(e), this.disposables); }\n get onMouseOver() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseover')).event, e => this.toMouseEvent(e), this.disposables); }\n get onMouseOut() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'mouseout')).event, e => this.toMouseEvent(e), this.disposables); }\n get onContextMenu() { return Event.any(Event.map(this.disposables.add(new DomEmitter(this.domNode, 'contextmenu')).event, e => this.toMouseEvent(e), this.disposables), Event.map(this.disposables.add(new DomEmitter(this.domNode, TouchEventType.Contextmenu)).event, e => this.toGestureEvent(e), this.disposables)); }\n get onTouchStart() { return Event.map(this.disposables.add(new DomEmitter(this.domNode, 'touchstart')).event, e => this.toTouchEvent(e), this.disposables); }\n get onTap() { return Event.map(this.disposables.add(new DomEmitter(this.rowsContainer, TouchEventType.Tap)).event, e => this.toGestureEvent(e), this.disposables); }\n toMouseEvent(browserEvent) {\n const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n const item = typeof index === 'undefined' ? undefined : this.items[index];\n const element = item && item.element;\n return { browserEvent, index, element };\n }\n toTouchEvent(browserEvent) {\n const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n const item = typeof index === 'undefined' ? undefined : this.items[index];\n const element = item && item.element;\n return { browserEvent, index, element };\n }\n toGestureEvent(browserEvent) {\n const index = this.getItemIndexFromEventTarget(browserEvent.initialTarget || null);\n const item = typeof index === 'undefined' ? undefined : this.items[index];\n const element = item && item.element;\n return { browserEvent, index, element };\n }\n toDragEvent(browserEvent) {\n const index = this.getItemIndexFromEventTarget(browserEvent.target || null);\n const item = typeof index === 'undefined' ? undefined : this.items[index];\n const element = item && item.element;\n const sector = this.getTargetSector(browserEvent, index);\n return { browserEvent, index, element, sector };\n }\n onScroll(e) {\n try {\n const previousRenderRange = this.getRenderRange(this.lastRenderTop, this.lastRenderHeight);\n this.render(previousRenderRange, e.scrollTop, e.height, e.scrollLeft, e.scrollWidth);\n if (this.supportDynamicHeights) {\n this._rerender(e.scrollTop, e.height, e.inSmoothScrolling);\n }\n }\n catch (err) {\n console.error('Got bad scroll event:', e);\n throw err;\n }\n }\n onTouchChange(event) {\n event.preventDefault();\n event.stopPropagation();\n this.scrollTop -= event.translationY;\n }\n // DND\n onDragStart(element, uri, event) {\n var _a, _b;\n if (!event.dataTransfer) {\n return;\n }\n const elements = this.dnd.getDragElements(element);\n event.dataTransfer.effectAllowed = 'copyMove';\n event.dataTransfer.setData(DataTransfers.TEXT, uri);\n if (event.dataTransfer.setDragImage) {\n let label;\n if (this.dnd.getDragLabel) {\n label = this.dnd.getDragLabel(elements, event);\n }\n if (typeof label === 'undefined') {\n label = String(elements.length);\n }\n const dragImage = $('.monaco-drag-image');\n dragImage.textContent = label;\n const getDragImageContainer = (e) => {\n while (e && !e.classList.contains('monaco-workbench')) {\n e = e.parentElement;\n }\n return e || this.domNode.ownerDocument;\n };\n const container = getDragImageContainer(this.domNode);\n container.appendChild(dragImage);\n event.dataTransfer.setDragImage(dragImage, -10, -10);\n setTimeout(() => container.removeChild(dragImage), 0);\n }\n this.domNode.classList.add('dragging');\n this.currentDragData = new ElementsDragAndDropData(elements);\n StaticDND.CurrentDragAndDropData = new ExternalElementsDragAndDropData(elements);\n (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, this.currentDragData, event);\n }\n onDragOver(event) {\n var _a, _b;\n event.browserEvent.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n this.onDragLeaveTimeout.dispose();\n if (StaticDND.CurrentDragAndDropData && StaticDND.CurrentDragAndDropData.getData() === 'vscode-ui') {\n return false;\n }\n this.setupDragAndDropScrollTopAnimation(event.browserEvent);\n if (!event.browserEvent.dataTransfer) {\n return false;\n }\n // Drag over from outside\n if (!this.currentDragData) {\n if (StaticDND.CurrentDragAndDropData) {\n // Drag over from another list\n this.currentDragData = StaticDND.CurrentDragAndDropData;\n }\n else {\n // Drag over from the desktop\n if (!event.browserEvent.dataTransfer.types) {\n return false;\n }\n this.currentDragData = new NativeDragAndDropData();\n }\n }\n const result = this.dnd.onDragOver(this.currentDragData, event.element, event.index, event.sector, event.browserEvent);\n this.canDrop = typeof result === 'boolean' ? result : result.accept;\n if (!this.canDrop) {\n this.currentDragFeedback = undefined;\n this.currentDragFeedbackDisposable.dispose();\n return false;\n }\n event.browserEvent.dataTransfer.dropEffect = (typeof result !== 'boolean' && ((_a = result.effect) === null || _a === void 0 ? void 0 : _a.type) === 0 /* ListDragOverEffectType.Copy */) ? 'copy' : 'move';\n let feedback;\n if (typeof result !== 'boolean' && result.feedback) {\n feedback = result.feedback;\n }\n else {\n if (typeof event.index === 'undefined') {\n feedback = [-1];\n }\n else {\n feedback = [event.index];\n }\n }\n // sanitize feedback list\n feedback = distinct(feedback).filter(i => i >= -1 && i < this.length).sort((a, b) => a - b);\n feedback = feedback[0] === -1 ? [-1] : feedback;\n let dragOverEffectPosition = typeof result !== 'boolean' && result.effect && result.effect.position ? result.effect.position : \"drop-target\" /* ListDragOverEffectPosition.Over */;\n if (equalsDragFeedback(this.currentDragFeedback, feedback) && this.currentDragFeedbackPosition === dragOverEffectPosition) {\n return true;\n }\n this.currentDragFeedback = feedback;\n this.currentDragFeedbackPosition = dragOverEffectPosition;\n this.currentDragFeedbackDisposable.dispose();\n if (feedback[0] === -1) { // entire list feedback\n this.domNode.classList.add(dragOverEffectPosition);\n this.rowsContainer.classList.add(dragOverEffectPosition);\n this.currentDragFeedbackDisposable = toDisposable(() => {\n this.domNode.classList.remove(dragOverEffectPosition);\n this.rowsContainer.classList.remove(dragOverEffectPosition);\n });\n }\n else {\n if (feedback.length > 1 && dragOverEffectPosition !== \"drop-target\" /* ListDragOverEffectPosition.Over */) {\n throw new Error('Can\\'t use multiple feedbacks with position different than \\'over\\'');\n }\n // Make sure there is no flicker when moving between two items\n // Always use the before feedback if possible\n if (dragOverEffectPosition === \"drop-target-after\" /* ListDragOverEffectPosition.After */) {\n if (feedback[0] < this.length - 1) {\n feedback[0] += 1;\n dragOverEffectPosition = \"drop-target-before\" /* ListDragOverEffectPosition.Before */;\n }\n }\n for (const index of feedback) {\n const item = this.items[index];\n item.dropTarget = true;\n (_b = item.row) === null || _b === void 0 ? void 0 : _b.domNode.classList.add(dragOverEffectPosition);\n }\n this.currentDragFeedbackDisposable = toDisposable(() => {\n var _a;\n for (const index of feedback) {\n const item = this.items[index];\n item.dropTarget = false;\n (_a = item.row) === null || _a === void 0 ? void 0 : _a.domNode.classList.remove(dragOverEffectPosition);\n }\n });\n }\n return true;\n }\n onDragLeave(event) {\n var _a, _b;\n this.onDragLeaveTimeout.dispose();\n this.onDragLeaveTimeout = disposableTimeout(() => this.clearDragOverFeedback(), 100, this.disposables);\n if (this.currentDragData) {\n (_b = (_a = this.dnd).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, this.currentDragData, event.element, event.index, event.browserEvent);\n }\n }\n onDrop(event) {\n if (!this.canDrop) {\n return;\n }\n const dragData = this.currentDragData;\n this.teardownDragAndDropScrollTopAnimation();\n this.clearDragOverFeedback();\n this.domNode.classList.remove('dragging');\n this.currentDragData = undefined;\n StaticDND.CurrentDragAndDropData = undefined;\n if (!dragData || !event.browserEvent.dataTransfer) {\n return;\n }\n event.browserEvent.preventDefault();\n dragData.update(event.browserEvent.dataTransfer);\n this.dnd.drop(dragData, event.element, event.index, event.sector, event.browserEvent);\n }\n onDragEnd(event) {\n var _a, _b;\n this.canDrop = false;\n this.teardownDragAndDropScrollTopAnimation();\n this.clearDragOverFeedback();\n this.domNode.classList.remove('dragging');\n this.currentDragData = undefined;\n StaticDND.CurrentDragAndDropData = undefined;\n (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n }\n clearDragOverFeedback() {\n this.currentDragFeedback = undefined;\n this.currentDragFeedbackPosition = undefined;\n this.currentDragFeedbackDisposable.dispose();\n this.currentDragFeedbackDisposable = Disposable.None;\n }\n // DND scroll top animation\n setupDragAndDropScrollTopAnimation(event) {\n if (!this.dragOverAnimationDisposable) {\n const viewTop = getTopLeftOffset(this.domNode).top;\n this.dragOverAnimationDisposable = animate(getWindow(this.domNode), this.animateDragAndDropScrollTop.bind(this, viewTop));\n }\n this.dragOverAnimationStopDisposable.dispose();\n this.dragOverAnimationStopDisposable = disposableTimeout(() => {\n if (this.dragOverAnimationDisposable) {\n this.dragOverAnimationDisposable.dispose();\n this.dragOverAnimationDisposable = undefined;\n }\n }, 1000, this.disposables);\n this.dragOverMouseY = event.pageY;\n }\n animateDragAndDropScrollTop(viewTop) {\n if (this.dragOverMouseY === undefined) {\n return;\n }\n const diff = this.dragOverMouseY - viewTop;\n const upperLimit = this.renderHeight - 35;\n if (diff < 35) {\n this.scrollTop += Math.max(-14, Math.floor(0.3 * (diff - 35)));\n }\n else if (diff > upperLimit) {\n this.scrollTop += Math.min(14, Math.floor(0.3 * (diff - upperLimit)));\n }\n }\n teardownDragAndDropScrollTopAnimation() {\n this.dragOverAnimationStopDisposable.dispose();\n if (this.dragOverAnimationDisposable) {\n this.dragOverAnimationDisposable.dispose();\n this.dragOverAnimationDisposable = undefined;\n }\n }\n // Util\n getTargetSector(browserEvent, targetIndex) {\n if (targetIndex === undefined) {\n return undefined;\n }\n const relativePosition = browserEvent.offsetY / this.items[targetIndex].size;\n const sector = Math.floor(relativePosition / 0.25);\n return clamp(sector, 0, 3);\n }\n getItemIndexFromEventTarget(target) {\n const scrollableElement = this.scrollableElement.getDomNode();\n let element = target;\n while (isHTMLElement(element) && element !== this.rowsContainer && scrollableElement.contains(element)) {\n const rawIndex = element.getAttribute('data-index');\n if (rawIndex) {\n const index = Number(rawIndex);\n if (!isNaN(index)) {\n return index;\n }\n }\n element = element.parentElement;\n }\n return undefined;\n }\n getRenderRange(renderTop, renderHeight) {\n return {\n start: this.rangeMap.indexAt(renderTop),\n end: this.rangeMap.indexAfter(renderTop + renderHeight - 1)\n };\n }\n /**\n * Given a stable rendered state, checks every rendered element whether it needs\n * to be probed for dynamic height. Adjusts scroll height and top if necessary.\n */\n _rerender(renderTop, renderHeight, inSmoothScrolling) {\n const previousRenderRange = this.getRenderRange(renderTop, renderHeight);\n // Let's remember the second element's position, this helps in scrolling up\n // and preserving a linear upwards scroll movement\n let anchorElementIndex;\n let anchorElementTopDelta;\n if (renderTop === this.elementTop(previousRenderRange.start)) {\n anchorElementIndex = previousRenderRange.start;\n anchorElementTopDelta = 0;\n }\n else if (previousRenderRange.end - previousRenderRange.start > 1) {\n anchorElementIndex = previousRenderRange.start + 1;\n anchorElementTopDelta = this.elementTop(anchorElementIndex) - renderTop;\n }\n let heightDiff = 0;\n while (true) {\n const renderRange = this.getRenderRange(renderTop, renderHeight);\n let didChange = false;\n for (let i = renderRange.start; i < renderRange.end; i++) {\n const diff = this.probeDynamicHeight(i);\n if (diff !== 0) {\n this.rangeMap.splice(i, 1, [this.items[i]]);\n }\n heightDiff += diff;\n didChange = didChange || diff !== 0;\n }\n if (!didChange) {\n if (heightDiff !== 0) {\n this.eventuallyUpdateScrollDimensions();\n }\n const unrenderRanges = Range.relativeComplement(previousRenderRange, renderRange);\n for (const range of unrenderRanges) {\n for (let i = range.start; i < range.end; i++) {\n if (this.items[i].row) {\n this.removeItemFromDOM(i);\n }\n }\n }\n const renderRanges = Range.relativeComplement(renderRange, previousRenderRange).reverse();\n for (const range of renderRanges) {\n for (let i = range.end - 1; i >= range.start; i--) {\n this.insertItemInDOM(i);\n }\n }\n for (let i = renderRange.start; i < renderRange.end; i++) {\n if (this.items[i].row) {\n this.updateItemInDOM(this.items[i], i);\n }\n }\n if (typeof anchorElementIndex === 'number') {\n // To compute a destination scroll top, we need to take into account the current smooth scrolling\n // animation, and then reuse it with a new target (to avoid prolonging the scroll)\n // See https://github.com/microsoft/vscode/issues/104144\n // See https://github.com/microsoft/vscode/pull/104284\n // See https://github.com/microsoft/vscode/issues/107704\n const deltaScrollTop = this.scrollable.getFutureScrollPosition().scrollTop - renderTop;\n const newScrollTop = this.elementTop(anchorElementIndex) - anchorElementTopDelta + deltaScrollTop;\n this.setScrollTop(newScrollTop, inSmoothScrolling);\n }\n this._onDidChangeContentHeight.fire(this.contentHeight);\n return;\n }\n }\n }\n probeDynamicHeight(index) {\n var _a, _b, _c;\n const item = this.items[index];\n if (!!this.virtualDelegate.getDynamicHeight) {\n const newSize = this.virtualDelegate.getDynamicHeight(item.element);\n if (newSize !== null) {\n const size = item.size;\n item.size = newSize;\n item.lastDynamicHeightWidth = this.renderWidth;\n return newSize - size;\n }\n }\n if (!item.hasDynamicHeight || item.lastDynamicHeightWidth === this.renderWidth) {\n return 0;\n }\n if (!!this.virtualDelegate.hasDynamicHeight && !this.virtualDelegate.hasDynamicHeight(item.element)) {\n return 0;\n }\n const size = item.size;\n if (item.row) {\n item.row.domNode.style.height = '';\n item.size = item.row.domNode.offsetHeight;\n if (item.size === 0 && !isAncestor(item.row.domNode, getWindow(item.row.domNode).document.body)) {\n console.warn('Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!');\n }\n item.lastDynamicHeightWidth = this.renderWidth;\n return item.size - size;\n }\n const { row } = this.cache.alloc(item.templateId);\n row.domNode.style.height = '';\n this.rowsContainer.appendChild(row.domNode);\n const renderer = this.renderers.get(item.templateId);\n if (!renderer) {\n throw new BugIndicatingError('Missing renderer for templateId: ' + item.templateId);\n }\n renderer.renderElement(item.element, index, row.templateData, undefined);\n item.size = row.domNode.offsetHeight;\n (_a = renderer.disposeElement) === null || _a === void 0 ? void 0 : _a.call(renderer, item.element, index, row.templateData, undefined);\n (_c = (_b = this.virtualDelegate).setDynamicHeight) === null || _c === void 0 ? void 0 : _c.call(_b, item.element, item.size);\n item.lastDynamicHeightWidth = this.renderWidth;\n this.rowsContainer.removeChild(row.domNode);\n this.cache.release(row);\n return item.size - size;\n }\n getElementDomId(index) {\n return `${this.domId}_${index}`;\n }\n // Dispose\n dispose() {\n var _a, _b;\n for (const item of this.items) {\n item.dragStartDisposable.dispose();\n item.checkedDisposable.dispose();\n if (item.row) {\n const renderer = this.renderers.get(item.row.templateId);\n if (renderer) {\n (_a = renderer.disposeElement) === null || _a === void 0 ? void 0 : _a.call(renderer, item.element, -1, item.row.templateData, undefined);\n renderer.disposeTemplate(item.row.templateData);\n }\n }\n }\n this.items = [];\n if (this.domNode && this.domNode.parentNode) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n (_b = this.dragOverAnimationDisposable) === null || _b === void 0 ? void 0 : _b.dispose();\n this.disposables.dispose();\n }\n}\nListView.InstanceCount = 0;\n__decorate([\n memoize\n], ListView.prototype, \"onMouseClick\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onMouseDblClick\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onMouseMiddleClick\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onMouseDown\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onMouseOver\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onMouseOut\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onContextMenu\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onTouchStart\", null);\n__decorate([\n memoize\n], ListView.prototype, \"onTap\", null);\n","import { onUnexpectedError } from './errors.js';\nimport { createSingleCallFunction } from './functional.js';\nimport { combinedDisposable, Disposable, DisposableStore, toDisposable } from './lifecycle.js';\nimport { LinkedList } from './linkedList.js';\nimport { StopWatch } from './stopwatch.js';\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever a listener is GC'ed without having been disposed. This is a LEAK.\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableListenerGCedWarning = false;\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever an emitter with listeners is disposed. That is a sign of code smell.\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableDisposeWithListenerWarning = false;\n// -----------------------------------------------------------------------------------------------------------------------\n// Uncomment the next line to print warnings whenever a snapshotted event is used repeatedly without cleanup.\n// See https://github.com/microsoft/vscode/issues/142851\n// -----------------------------------------------------------------------------------------------------------------------\nconst _enableSnapshotPotentialLeakWarning = false;\nexport var Event;\n(function (Event) {\n Event.None = () => Disposable.None;\n function _addLeakageTraceLogic(options) {\n if (_enableSnapshotPotentialLeakWarning) {\n const { onDidAddListener: origListenerDidAdd } = options;\n const stack = Stacktrace.create();\n let count = 0;\n options.onDidAddListener = () => {\n if (++count === 2) {\n console.warn('snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here');\n stack.print();\n }\n origListenerDidAdd === null || origListenerDidAdd === void 0 ? void 0 : origListenerDidAdd();\n };\n }\n }\n /**\n * Given an event, returns another event which debounces calls and defers the listeners to a later task via a shared\n * `setTimeout`. The event is converted into a signal (`Event`) to avoid additional object creation as a\n * result of merging events and to try prevent race conditions that could arise when using related deferred and\n * non-deferred events.\n *\n * This is useful for deferring non-critical work (eg. general UI updates) to ensure it does not block critical work\n * (eg. latency of keypress to text rendered).\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @param event The event source for the new event.\n * @param disposable A disposable store to add the new EventEmitter to.\n */\n function defer(event, disposable) {\n return debounce(event, () => void 0, 0, undefined, true, undefined, disposable);\n }\n Event.defer = defer;\n /**\n * Given an event, returns another event which only fires once.\n *\n * @param event The event source for the new event.\n */\n function once(event) {\n return (listener, thisArgs = null, disposables) => {\n // we need this, in case the event fires during the listener call\n let didFire = false;\n let result = undefined;\n result = event(e => {\n if (didFire) {\n return;\n }\n else if (result) {\n result.dispose();\n }\n else {\n didFire = true;\n }\n return listener.call(thisArgs, e);\n }, null, disposables);\n if (didFire) {\n result.dispose();\n }\n return result;\n };\n }\n Event.once = once;\n /**\n * Maps an event of one type into an event of another type using a mapping function, similar to how\n * `Array.prototype.map` works.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @param event The event source for the new event.\n * @param map The mapping function.\n * @param disposable A disposable store to add the new EventEmitter to.\n */\n function map(event, map, disposable) {\n return snapshot((listener, thisArgs = null, disposables) => event(i => listener.call(thisArgs, map(i)), null, disposables), disposable);\n }\n Event.map = map;\n /**\n * Wraps an event in another event that performs some function on the event object before firing.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @param event The event source for the new event.\n * @param each The function to perform on the event object.\n * @param disposable A disposable store to add the new EventEmitter to.\n */\n function forEach(event, each, disposable) {\n return snapshot((listener, thisArgs = null, disposables) => event(i => { each(i); listener.call(thisArgs, i); }, null, disposables), disposable);\n }\n Event.forEach = forEach;\n function filter(event, filter, disposable) {\n return snapshot((listener, thisArgs = null, disposables) => event(e => filter(e) && listener.call(thisArgs, e), null, disposables), disposable);\n }\n Event.filter = filter;\n /**\n * Given an event, returns the same event but typed as `Event`.\n */\n function signal(event) {\n return event;\n }\n Event.signal = signal;\n function any(...events) {\n return (listener, thisArgs = null, disposables) => {\n const disposable = combinedDisposable(...events.map(event => event(e => listener.call(thisArgs, e))));\n return addAndReturnDisposable(disposable, disposables);\n };\n }\n Event.any = any;\n /**\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n */\n function reduce(event, merge, initial, disposable) {\n let output = initial;\n return map(event, e => {\n output = merge(output, e);\n return output;\n }, disposable);\n }\n Event.reduce = reduce;\n function snapshot(event, disposable) {\n let listener;\n const options = {\n onWillAddFirstListener() {\n listener = event(emitter.fire, emitter);\n },\n onDidRemoveLastListener() {\n listener === null || listener === void 0 ? void 0 : listener.dispose();\n }\n };\n if (!disposable) {\n _addLeakageTraceLogic(options);\n }\n const emitter = new Emitter(options);\n disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);\n return emitter.event;\n }\n /**\n * Adds the IDisposable to the store if it's set, and returns it. Useful to\n * Event function implementation.\n */\n function addAndReturnDisposable(d, store) {\n if (store instanceof Array) {\n store.push(d);\n }\n else if (store) {\n store.add(d);\n }\n return d;\n }\n function debounce(event, merge, delay = 100, leading = false, flushOnListenerRemove = false, leakWarningThreshold, disposable) {\n let subscription;\n let output = undefined;\n let handle = undefined;\n let numDebouncedCalls = 0;\n let doFire;\n const options = {\n leakWarningThreshold,\n onWillAddFirstListener() {\n subscription = event(cur => {\n numDebouncedCalls++;\n output = merge(output, cur);\n if (leading && !handle) {\n emitter.fire(output);\n output = undefined;\n }\n doFire = () => {\n const _output = output;\n output = undefined;\n handle = undefined;\n if (!leading || numDebouncedCalls > 1) {\n emitter.fire(_output);\n }\n numDebouncedCalls = 0;\n };\n if (typeof delay === 'number') {\n clearTimeout(handle);\n handle = setTimeout(doFire, delay);\n }\n else {\n if (handle === undefined) {\n handle = 0;\n queueMicrotask(doFire);\n }\n }\n });\n },\n onWillRemoveListener() {\n if (flushOnListenerRemove && numDebouncedCalls > 0) {\n doFire === null || doFire === void 0 ? void 0 : doFire();\n }\n },\n onDidRemoveLastListener() {\n doFire = undefined;\n subscription.dispose();\n }\n };\n if (!disposable) {\n _addLeakageTraceLogic(options);\n }\n const emitter = new Emitter(options);\n disposable === null || disposable === void 0 ? void 0 : disposable.add(emitter);\n return emitter.event;\n }\n Event.debounce = debounce;\n /**\n * Debounces an event, firing after some delay (default=0) with an array of all event original objects.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n */\n function accumulate(event, delay = 0, disposable) {\n return Event.debounce(event, (last, e) => {\n if (!last) {\n return [e];\n }\n last.push(e);\n return last;\n }, delay, undefined, true, undefined, disposable);\n }\n Event.accumulate = accumulate;\n /**\n * Filters an event such that some condition is _not_ met more than once in a row, effectively ensuring duplicate\n * event objects from different sources do not fire the same event object.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @param event The event source for the new event.\n * @param equals The equality condition.\n * @param disposable A disposable store to add the new EventEmitter to.\n *\n * @example\n * ```\n * // Fire only one time when a single window is opened or focused\n * Event.latch(Event.any(onDidOpenWindow, onDidFocusWindow))\n * ```\n */\n function latch(event, equals = (a, b) => a === b, disposable) {\n let firstCall = true;\n let cache;\n return filter(event, value => {\n const shouldEmit = firstCall || !equals(value, cache);\n firstCall = false;\n cache = value;\n return shouldEmit;\n }, disposable);\n }\n Event.latch = latch;\n /**\n * Splits an event whose parameter is a union type into 2 separate events for each type in the union.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @example\n * ```\n * const event = new EventEmitter().event;\n * const [numberEvent, undefinedEvent] = Event.split(event, isUndefined);\n * ```\n *\n * @param event The event source for the new event.\n * @param isT A function that determines what event is of the first type.\n * @param disposable A disposable store to add the new EventEmitter to.\n */\n function split(event, isT, disposable) {\n return [\n Event.filter(event, isT, disposable),\n Event.filter(event, e => !isT(e), disposable),\n ];\n }\n Event.split = split;\n /**\n * Buffers an event until it has a listener attached.\n *\n * *NOTE* that this function returns an `Event` and it MUST be called with a `DisposableStore` whenever the returned\n * event is accessible to \"third parties\", e.g the event is a public property. Otherwise a leaked listener on the\n * returned event causes this utility to leak a listener on the original event.\n *\n * @param event The event source for the new event.\n * @param flushAfterTimeout Determines whether to flush the buffer after a timeout immediately or after a\n * `setTimeout` when the first event listener is added.\n * @param _buffer Internal: A source event array used for tests.\n *\n * @example\n * ```\n * // Start accumulating events, when the first listener is attached, flush\n * // the event after a timeout such that multiple listeners attached before\n * // the timeout would receive the event\n * this.onInstallExtension = Event.buffer(service.onInstallExtension, true);\n * ```\n */\n function buffer(event, flushAfterTimeout = false, _buffer = [], disposable) {\n let buffer = _buffer.slice();\n let listener = event(e => {\n if (buffer) {\n buffer.push(e);\n }\n else {\n emitter.fire(e);\n }\n });\n if (disposable) {\n disposable.add(listener);\n }\n const flush = () => {\n buffer === null || buffer === void 0 ? void 0 : buffer.forEach(e => emitter.fire(e));\n buffer = null;\n };\n const emitter = new Emitter({\n onWillAddFirstListener() {\n if (!listener) {\n listener = event(e => emitter.fire(e));\n if (disposable) {\n disposable.add(listener);\n }\n }\n },\n onDidAddFirstListener() {\n if (buffer) {\n if (flushAfterTimeout) {\n setTimeout(flush);\n }\n else {\n flush();\n }\n }\n },\n onDidRemoveLastListener() {\n if (listener) {\n listener.dispose();\n }\n listener = null;\n }\n });\n if (disposable) {\n disposable.add(emitter);\n }\n return emitter.event;\n }\n Event.buffer = buffer;\n /**\n * Wraps the event in an {@link IChainableEvent}, allowing a more functional programming style.\n *\n * @example\n * ```\n * // Normal\n * const onEnterPressNormal = Event.filter(\n * Event.map(onKeyPress.event, e => new StandardKeyboardEvent(e)),\n * e.keyCode === KeyCode.Enter\n * ).event;\n *\n * // Using chain\n * const onEnterPressChain = Event.chain(onKeyPress.event, $ => $\n * .map(e => new StandardKeyboardEvent(e))\n * .filter(e => e.keyCode === KeyCode.Enter)\n * );\n * ```\n */\n function chain(event, sythensize) {\n const fn = (listener, thisArgs, disposables) => {\n const cs = sythensize(new ChainableSynthesis());\n return event(function (value) {\n const result = cs.evaluate(value);\n if (result !== HaltChainable) {\n listener.call(thisArgs, result);\n }\n }, undefined, disposables);\n };\n return fn;\n }\n Event.chain = chain;\n const HaltChainable = Symbol('HaltChainable');\n class ChainableSynthesis {\n constructor() {\n this.steps = [];\n }\n map(fn) {\n this.steps.push(fn);\n return this;\n }\n forEach(fn) {\n this.steps.push(v => {\n fn(v);\n return v;\n });\n return this;\n }\n filter(fn) {\n this.steps.push(v => fn(v) ? v : HaltChainable);\n return this;\n }\n reduce(merge, initial) {\n let last = initial;\n this.steps.push(v => {\n last = merge(last, v);\n return last;\n });\n return this;\n }\n latch(equals = (a, b) => a === b) {\n let firstCall = true;\n let cache;\n this.steps.push(value => {\n const shouldEmit = firstCall || !equals(value, cache);\n firstCall = false;\n cache = value;\n return shouldEmit ? value : HaltChainable;\n });\n return this;\n }\n evaluate(value) {\n for (const step of this.steps) {\n value = step(value);\n if (value === HaltChainable) {\n break;\n }\n }\n return value;\n }\n }\n /**\n * Creates an {@link Event} from a node event emitter.\n */\n function fromNodeEventEmitter(emitter, eventName, map = id => id) {\n const fn = (...args) => result.fire(map(...args));\n const onFirstListenerAdd = () => emitter.on(eventName, fn);\n const onLastListenerRemove = () => emitter.removeListener(eventName, fn);\n const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n return result.event;\n }\n Event.fromNodeEventEmitter = fromNodeEventEmitter;\n /**\n * Creates an {@link Event} from a DOM event emitter.\n */\n function fromDOMEventEmitter(emitter, eventName, map = id => id) {\n const fn = (...args) => result.fire(map(...args));\n const onFirstListenerAdd = () => emitter.addEventListener(eventName, fn);\n const onLastListenerRemove = () => emitter.removeEventListener(eventName, fn);\n const result = new Emitter({ onWillAddFirstListener: onFirstListenerAdd, onDidRemoveLastListener: onLastListenerRemove });\n return result.event;\n }\n Event.fromDOMEventEmitter = fromDOMEventEmitter;\n /**\n * Creates a promise out of an event, using the {@link Event.once} helper.\n */\n function toPromise(event) {\n return new Promise(resolve => once(event)(resolve));\n }\n Event.toPromise = toPromise;\n /**\n * Creates an event out of a promise that fires once when the promise is\n * resolved with the result of the promise or `undefined`.\n */\n function fromPromise(promise) {\n const result = new Emitter();\n promise.then(res => {\n result.fire(res);\n }, () => {\n result.fire(undefined);\n }).finally(() => {\n result.dispose();\n });\n return result.event;\n }\n Event.fromPromise = fromPromise;\n function runAndSubscribe(event, handler, initial) {\n handler(initial);\n return event(e => handler(e));\n }\n Event.runAndSubscribe = runAndSubscribe;\n class EmitterObserver {\n constructor(_observable, store) {\n this._observable = _observable;\n this._counter = 0;\n this._hasChanged = false;\n const options = {\n onWillAddFirstListener: () => {\n _observable.addObserver(this);\n },\n onDidRemoveLastListener: () => {\n _observable.removeObserver(this);\n }\n };\n if (!store) {\n _addLeakageTraceLogic(options);\n }\n this.emitter = new Emitter(options);\n if (store) {\n store.add(this.emitter);\n }\n }\n beginUpdate(_observable) {\n // assert(_observable === this.obs);\n this._counter++;\n }\n handlePossibleChange(_observable) {\n // assert(_observable === this.obs);\n }\n handleChange(_observable, _change) {\n // assert(_observable === this.obs);\n this._hasChanged = true;\n }\n endUpdate(_observable) {\n // assert(_observable === this.obs);\n this._counter--;\n if (this._counter === 0) {\n this._observable.reportChanges();\n if (this._hasChanged) {\n this._hasChanged = false;\n this.emitter.fire(this._observable.get());\n }\n }\n }\n }\n /**\n * Creates an event emitter that is fired when the observable changes.\n * Each listeners subscribes to the emitter.\n */\n function fromObservable(obs, store) {\n const observer = new EmitterObserver(obs, store);\n return observer.emitter.event;\n }\n Event.fromObservable = fromObservable;\n /**\n * Each listener is attached to the observable directly.\n */\n function fromObservableLight(observable) {\n return (listener, thisArgs, disposables) => {\n let count = 0;\n let didChange = false;\n const observer = {\n beginUpdate() {\n count++;\n },\n endUpdate() {\n count--;\n if (count === 0) {\n observable.reportChanges();\n if (didChange) {\n didChange = false;\n listener.call(thisArgs);\n }\n }\n },\n handlePossibleChange() {\n // noop\n },\n handleChange() {\n didChange = true;\n }\n };\n observable.addObserver(observer);\n observable.reportChanges();\n const disposable = {\n dispose() {\n observable.removeObserver(observer);\n }\n };\n if (disposables instanceof DisposableStore) {\n disposables.add(disposable);\n }\n else if (Array.isArray(disposables)) {\n disposables.push(disposable);\n }\n return disposable;\n };\n }\n Event.fromObservableLight = fromObservableLight;\n})(Event || (Event = {}));\nexport class EventProfiling {\n constructor(name) {\n this.listenerCount = 0;\n this.invocationCount = 0;\n this.elapsedOverall = 0;\n this.durations = [];\n this.name = `${name}_${EventProfiling._idPool++}`;\n EventProfiling.all.add(this);\n }\n start(listenerCount) {\n this._stopWatch = new StopWatch();\n this.listenerCount = listenerCount;\n }\n stop() {\n if (this._stopWatch) {\n const elapsed = this._stopWatch.elapsed();\n this.durations.push(elapsed);\n this.elapsedOverall += elapsed;\n this.invocationCount += 1;\n this._stopWatch = undefined;\n }\n }\n}\nEventProfiling.all = new Set();\nEventProfiling._idPool = 0;\nlet _globalLeakWarningThreshold = -1;\nclass LeakageMonitor {\n constructor(_errorHandler, threshold, name = Math.random().toString(18).slice(2, 5)) {\n this._errorHandler = _errorHandler;\n this.threshold = threshold;\n this.name = name;\n this._warnCountdown = 0;\n }\n dispose() {\n var _a;\n (_a = this._stacks) === null || _a === void 0 ? void 0 : _a.clear();\n }\n check(stack, listenerCount) {\n const threshold = this.threshold;\n if (threshold <= 0 || listenerCount < threshold) {\n return undefined;\n }\n if (!this._stacks) {\n this._stacks = new Map();\n }\n const count = (this._stacks.get(stack.value) || 0);\n this._stacks.set(stack.value, count + 1);\n this._warnCountdown -= 1;\n if (this._warnCountdown <= 0) {\n // only warn on first exceed and then every time the limit\n // is exceeded by 50% again\n this._warnCountdown = threshold * 0.5;\n const [topStack, topCount] = this.getMostFrequentStack();\n const message = `[${this.name}] potential listener LEAK detected, having ${listenerCount} listeners already. MOST frequent listener (${topCount}):`;\n console.warn(message);\n console.warn(topStack);\n const error = new ListenerLeakError(message, topStack);\n this._errorHandler(error);\n }\n return () => {\n const count = (this._stacks.get(stack.value) || 0);\n this._stacks.set(stack.value, count - 1);\n };\n }\n getMostFrequentStack() {\n if (!this._stacks) {\n return undefined;\n }\n let topStack;\n let topCount = 0;\n for (const [stack, count] of this._stacks) {\n if (!topStack || topCount < count) {\n topStack = [stack, count];\n topCount = count;\n }\n }\n return topStack;\n }\n}\nclass Stacktrace {\n static create() {\n var _a;\n const err = new Error();\n return new Stacktrace((_a = err.stack) !== null && _a !== void 0 ? _a : '');\n }\n constructor(value) {\n this.value = value;\n }\n print() {\n console.warn(this.value.split('\\n').slice(2).join('\\n'));\n }\n}\n// error that is logged when going over the configured listener threshold\nexport class ListenerLeakError extends Error {\n constructor(message, stack) {\n super(message);\n this.name = 'ListenerLeakError';\n this.stack = stack;\n }\n}\n// SEVERE error that is logged when having gone way over the configured listener\n// threshold so that the emitter refuses to accept more listeners\nexport class ListenerRefusalError extends Error {\n constructor(message, stack) {\n super(message);\n this.name = 'ListenerRefusalError';\n this.stack = stack;\n }\n}\nclass UniqueContainer {\n constructor(value) {\n this.value = value;\n }\n}\nconst compactionThreshold = 2;\nconst forEachListener = (listeners, fn) => {\n if (listeners instanceof UniqueContainer) {\n fn(listeners);\n }\n else {\n for (let i = 0; i < listeners.length; i++) {\n const l = listeners[i];\n if (l) {\n fn(l);\n }\n }\n }\n};\nconst _listenerFinalizers = _enableListenerGCedWarning\n ? new FinalizationRegistry(heldValue => {\n if (typeof heldValue === 'string') {\n console.warn('[LEAKING LISTENER] GC\\'ed a listener that was NOT yet disposed. This is where is was created:');\n console.warn(heldValue);\n }\n })\n : undefined;\n/**\n * The Emitter can be used to expose an Event to the public\n * to fire it from the insides.\n * Sample:\n class Document {\n\n private readonly _onDidChange = new Emitter<(value:string)=>any>();\n\n public onDidChange = this._onDidChange.event;\n\n // getter-style\n // get onDidChange(): Event<(value:string)=>any> {\n // \treturn this._onDidChange.event;\n // }\n\n private _doIt() {\n //...\n this._onDidChange.fire(value);\n }\n }\n */\nexport class Emitter {\n constructor(options) {\n var _a, _b, _c, _d, _e, _f;\n this._size = 0;\n this._options = options;\n this._leakageMon = (_globalLeakWarningThreshold > 0 || ((_a = this._options) === null || _a === void 0 ? void 0 : _a.leakWarningThreshold))\n ? new LeakageMonitor((_b = options === null || options === void 0 ? void 0 : options.onListenerError) !== null && _b !== void 0 ? _b : onUnexpectedError, (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.leakWarningThreshold) !== null && _d !== void 0 ? _d : _globalLeakWarningThreshold) :\n undefined;\n this._perfMon = ((_e = this._options) === null || _e === void 0 ? void 0 : _e._profName) ? new EventProfiling(this._options._profName) : undefined;\n this._deliveryQueue = (_f = this._options) === null || _f === void 0 ? void 0 : _f.deliveryQueue;\n }\n dispose() {\n var _a, _b, _c, _d;\n if (!this._disposed) {\n this._disposed = true;\n // It is bad to have listeners at the time of disposing an emitter, it is worst to have listeners keep the emitter\n // alive via the reference that's embedded in their disposables. Therefore we loop over all remaining listeners and\n // unset their subscriptions/disposables. Looping and blaming remaining listeners is done on next tick because the\n // the following programming pattern is very popular:\n //\n // const someModel = this._disposables.add(new ModelObject()); // (1) create and register model\n // this._disposables.add(someModel.onDidChange(() => { ... }); // (2) subscribe and register model-event listener\n // ...later...\n // this._disposables.dispose(); disposes (1) then (2): don't warn after (1) but after the \"overall dispose\" is done\n if (((_a = this._deliveryQueue) === null || _a === void 0 ? void 0 : _a.current) === this) {\n this._deliveryQueue.reset();\n }\n if (this._listeners) {\n if (_enableDisposeWithListenerWarning) {\n const listeners = this._listeners;\n queueMicrotask(() => {\n forEachListener(listeners, l => { var _a; return (_a = l.stack) === null || _a === void 0 ? void 0 : _a.print(); });\n });\n }\n this._listeners = undefined;\n this._size = 0;\n }\n (_c = (_b = this._options) === null || _b === void 0 ? void 0 : _b.onDidRemoveLastListener) === null || _c === void 0 ? void 0 : _c.call(_b);\n (_d = this._leakageMon) === null || _d === void 0 ? void 0 : _d.dispose();\n }\n }\n /**\n * For the public to allow to subscribe\n * to events from this Emitter\n */\n get event() {\n var _a;\n (_a = this._event) !== null && _a !== void 0 ? _a : (this._event = (callback, thisArgs, disposables) => {\n var _a, _b, _c, _d, _e, _f, _g;\n if (this._leakageMon && this._size > this._leakageMon.threshold ** 2) {\n const message = `[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;\n console.warn(message);\n const tuple = (_a = this._leakageMon.getMostFrequentStack()) !== null && _a !== void 0 ? _a : ['UNKNOWN stack', -1];\n const error = new ListenerRefusalError(`${message}. HINT: Stack shows most frequent listener (${tuple[1]}-times)`, tuple[0]);\n const errorHandler = ((_b = this._options) === null || _b === void 0 ? void 0 : _b.onListenerError) || onUnexpectedError;\n errorHandler(error);\n return Disposable.None;\n }\n if (this._disposed) {\n // todo: should we warn if a listener is added to a disposed emitter? This happens often\n return Disposable.None;\n }\n if (thisArgs) {\n callback = callback.bind(thisArgs);\n }\n const contained = new UniqueContainer(callback);\n let removeMonitor;\n let stack;\n if (this._leakageMon && this._size >= Math.ceil(this._leakageMon.threshold * 0.2)) {\n // check and record this emitter for potential leakage\n contained.stack = Stacktrace.create();\n removeMonitor = this._leakageMon.check(contained.stack, this._size + 1);\n }\n if (_enableDisposeWithListenerWarning) {\n contained.stack = stack !== null && stack !== void 0 ? stack : Stacktrace.create();\n }\n if (!this._listeners) {\n (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onWillAddFirstListener) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this._listeners = contained;\n (_f = (_e = this._options) === null || _e === void 0 ? void 0 : _e.onDidAddFirstListener) === null || _f === void 0 ? void 0 : _f.call(_e, this);\n }\n else if (this._listeners instanceof UniqueContainer) {\n (_g = this._deliveryQueue) !== null && _g !== void 0 ? _g : (this._deliveryQueue = new EventDeliveryQueuePrivate());\n this._listeners = [this._listeners, contained];\n }\n else {\n this._listeners.push(contained);\n }\n this._size++;\n const result = toDisposable(() => {\n _listenerFinalizers === null || _listenerFinalizers === void 0 ? void 0 : _listenerFinalizers.unregister(result);\n removeMonitor === null || removeMonitor === void 0 ? void 0 : removeMonitor();\n this._removeListener(contained);\n });\n if (disposables instanceof DisposableStore) {\n disposables.add(result);\n }\n else if (Array.isArray(disposables)) {\n disposables.push(result);\n }\n if (_listenerFinalizers) {\n const stack = new Error().stack.split('\\n').slice(2).join('\\n').trim();\n _listenerFinalizers.register(result, stack, result);\n }\n return result;\n });\n return this._event;\n }\n _removeListener(listener) {\n var _a, _b, _c, _d;\n (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.onWillRemoveListener) === null || _b === void 0 ? void 0 : _b.call(_a, this);\n if (!this._listeners) {\n return; // expected if a listener gets disposed\n }\n if (this._size === 1) {\n this._listeners = undefined;\n (_d = (_c = this._options) === null || _c === void 0 ? void 0 : _c.onDidRemoveLastListener) === null || _d === void 0 ? void 0 : _d.call(_c, this);\n this._size = 0;\n return;\n }\n // size > 1 which requires that listeners be a list:\n const listeners = this._listeners;\n const index = listeners.indexOf(listener);\n if (index === -1) {\n console.log('disposed?', this._disposed);\n console.log('size?', this._size);\n console.log('arr?', JSON.stringify(this._listeners));\n throw new Error('Attempted to dispose unknown listener');\n }\n this._size--;\n listeners[index] = undefined;\n const adjustDeliveryQueue = this._deliveryQueue.current === this;\n if (this._size * compactionThreshold <= listeners.length) {\n let n = 0;\n for (let i = 0; i < listeners.length; i++) {\n if (listeners[i]) {\n listeners[n++] = listeners[i];\n }\n else if (adjustDeliveryQueue) {\n this._deliveryQueue.end--;\n if (n < this._deliveryQueue.i) {\n this._deliveryQueue.i--;\n }\n }\n }\n listeners.length = n;\n }\n }\n _deliver(listener, value) {\n var _a;\n if (!listener) {\n return;\n }\n const errorHandler = ((_a = this._options) === null || _a === void 0 ? void 0 : _a.onListenerError) || onUnexpectedError;\n if (!errorHandler) {\n listener.value(value);\n return;\n }\n try {\n listener.value(value);\n }\n catch (e) {\n errorHandler(e);\n }\n }\n /** Delivers items in the queue. Assumes the queue is ready to go. */\n _deliverQueue(dq) {\n const listeners = dq.current._listeners;\n while (dq.i < dq.end) {\n // important: dq.i is incremented before calling deliver() because it might reenter deliverQueue()\n this._deliver(listeners[dq.i++], dq.value);\n }\n dq.reset();\n }\n /**\n * To be kept private to fire an event to\n * subscribers\n */\n fire(event) {\n var _a, _b, _c, _d;\n if ((_a = this._deliveryQueue) === null || _a === void 0 ? void 0 : _a.current) {\n this._deliverQueue(this._deliveryQueue);\n (_b = this._perfMon) === null || _b === void 0 ? void 0 : _b.stop(); // last fire() will have starting perfmon, stop it before starting the next dispatch\n }\n (_c = this._perfMon) === null || _c === void 0 ? void 0 : _c.start(this._size);\n if (!this._listeners) {\n // no-op\n }\n else if (this._listeners instanceof UniqueContainer) {\n this._deliver(this._listeners, event);\n }\n else {\n const dq = this._deliveryQueue;\n dq.enqueue(this, event, this._listeners.length);\n this._deliverQueue(dq);\n }\n (_d = this._perfMon) === null || _d === void 0 ? void 0 : _d.stop();\n }\n hasListeners() {\n return this._size > 0;\n }\n}\nexport const createEventDeliveryQueue = () => new EventDeliveryQueuePrivate();\nclass EventDeliveryQueuePrivate {\n constructor() {\n /**\n * Index in current's listener list.\n */\n this.i = -1;\n /**\n * The last index in the listener's list to deliver.\n */\n this.end = 0;\n }\n enqueue(emitter, value, end) {\n this.i = 0;\n this.end = end;\n this.current = emitter;\n this.value = value;\n }\n reset() {\n this.i = this.end; // force any current emission loop to stop, mainly for during dispose\n this.current = undefined;\n this.value = undefined;\n }\n}\nexport class PauseableEmitter extends Emitter {\n constructor(options) {\n super(options);\n this._isPaused = 0;\n this._eventQueue = new LinkedList();\n this._mergeFn = options === null || options === void 0 ? void 0 : options.merge;\n }\n pause() {\n this._isPaused++;\n }\n resume() {\n if (this._isPaused !== 0 && --this._isPaused === 0) {\n if (this._mergeFn) {\n // use the merge function to create a single composite\n // event. make a copy in case firing pauses this emitter\n if (this._eventQueue.size > 0) {\n const events = Array.from(this._eventQueue);\n this._eventQueue.clear();\n super.fire(this._mergeFn(events));\n }\n }\n else {\n // no merging, fire each event individually and test\n // that this emitter isn't paused halfway through\n while (!this._isPaused && this._eventQueue.size !== 0) {\n super.fire(this._eventQueue.shift());\n }\n }\n }\n }\n fire(event) {\n if (this._size) {\n if (this._isPaused !== 0) {\n this._eventQueue.push(event);\n }\n else {\n super.fire(event);\n }\n }\n }\n}\nexport class DebounceEmitter extends PauseableEmitter {\n constructor(options) {\n var _a;\n super(options);\n this._delay = (_a = options.delay) !== null && _a !== void 0 ? _a : 100;\n }\n fire(event) {\n if (!this._handle) {\n this.pause();\n this._handle = setTimeout(() => {\n this._handle = undefined;\n this.resume();\n }, this._delay);\n }\n super.fire(event);\n }\n}\n/**\n * An emitter which queue all events and then process them at the\n * end of the event loop.\n */\nexport class MicrotaskEmitter extends Emitter {\n constructor(options) {\n super(options);\n this._queuedEvents = [];\n this._mergeFn = options === null || options === void 0 ? void 0 : options.merge;\n }\n fire(event) {\n if (!this.hasListeners()) {\n return;\n }\n this._queuedEvents.push(event);\n if (this._queuedEvents.length === 1) {\n queueMicrotask(() => {\n if (this._mergeFn) {\n super.fire(this._mergeFn(this._queuedEvents));\n }\n else {\n this._queuedEvents.forEach(e => super.fire(e));\n }\n this._queuedEvents = [];\n });\n }\n }\n}\n/**\n * An event emitter that multiplexes many events into a single event.\n *\n * @example Listen to the `onData` event of all `Thing`s, dynamically adding and removing `Thing`s\n * to the multiplexer as needed.\n *\n * ```typescript\n * const anythingDataMultiplexer = new EventMultiplexer<{ data: string }>();\n *\n * const thingListeners = DisposableMap();\n *\n * thingService.onDidAddThing(thing => {\n * thingListeners.set(thing, anythingDataMultiplexer.add(thing.onData);\n * });\n * thingService.onDidRemoveThing(thing => {\n * thingListeners.deleteAndDispose(thing);\n * });\n *\n * anythingDataMultiplexer.event(e => {\n * console.log('Something fired data ' + e.data)\n * });\n * ```\n */\nexport class EventMultiplexer {\n constructor() {\n this.hasListeners = false;\n this.events = [];\n this.emitter = new Emitter({\n onWillAddFirstListener: () => this.onFirstListenerAdd(),\n onDidRemoveLastListener: () => this.onLastListenerRemove()\n });\n }\n get event() {\n return this.emitter.event;\n }\n add(event) {\n const e = { event: event, listener: null };\n this.events.push(e);\n if (this.hasListeners) {\n this.hook(e);\n }\n const dispose = () => {\n if (this.hasListeners) {\n this.unhook(e);\n }\n const idx = this.events.indexOf(e);\n this.events.splice(idx, 1);\n };\n return toDisposable(createSingleCallFunction(dispose));\n }\n onFirstListenerAdd() {\n this.hasListeners = true;\n this.events.forEach(e => this.hook(e));\n }\n onLastListenerRemove() {\n this.hasListeners = false;\n this.events.forEach(e => this.unhook(e));\n }\n hook(e) {\n e.listener = e.event(r => this.emitter.fire(r));\n }\n unhook(e) {\n var _a;\n (_a = e.listener) === null || _a === void 0 ? void 0 : _a.dispose();\n e.listener = null;\n }\n dispose() {\n var _a;\n this.emitter.dispose();\n for (const e of this.events) {\n (_a = e.listener) === null || _a === void 0 ? void 0 : _a.dispose();\n }\n this.events = [];\n }\n}\n/**\n * The EventBufferer is useful in situations in which you want\n * to delay firing your events during some code.\n * You can wrap that code and be sure that the event will not\n * be fired during that wrap.\n *\n * ```\n * const emitter: Emitter;\n * const delayer = new EventDelayer();\n * const delayedEvent = delayer.wrapEvent(emitter.event);\n *\n * delayedEvent(console.log);\n *\n * delayer.bufferEvents(() => {\n * emitter.fire(); // event will not be fired yet\n * });\n *\n * // event will only be fired at this point\n * ```\n */\nexport class EventBufferer {\n constructor() {\n this.data = [];\n }\n wrapEvent(event, reduce, initial) {\n return (listener, thisArgs, disposables) => {\n return event(i => {\n var _a;\n const data = this.data[this.data.length - 1];\n // Non-reduce scenario\n if (!reduce) {\n // Buffering case\n if (data) {\n data.buffers.push(() => listener.call(thisArgs, i));\n }\n else {\n // Not buffering case\n listener.call(thisArgs, i);\n }\n return;\n }\n // Reduce scenario\n const reduceData = data;\n // Not buffering case\n if (!reduceData) {\n // TODO: Is there a way to cache this reduce call for all listeners?\n listener.call(thisArgs, reduce(initial, i));\n return;\n }\n // Buffering case\n (_a = reduceData.items) !== null && _a !== void 0 ? _a : (reduceData.items = []);\n reduceData.items.push(i);\n if (reduceData.buffers.length === 0) {\n // Include a single buffered function that will reduce all events when we're done buffering events\n data.buffers.push(() => {\n var _a;\n // cache the reduced result so that the value can be shared across all listeners\n (_a = reduceData.reducedResult) !== null && _a !== void 0 ? _a : (reduceData.reducedResult = initial\n ? reduceData.items.reduce(reduce, initial)\n : reduceData.items.reduce(reduce));\n listener.call(thisArgs, reduceData.reducedResult);\n });\n }\n }, undefined, disposables);\n };\n }\n bufferEvents(fn) {\n const data = { buffers: new Array() };\n this.data.push(data);\n const r = fn();\n this.data.pop();\n data.buffers.forEach(flush => flush());\n return r;\n }\n}\n/**\n * A Relay is an event forwarder which functions as a replugabble event pipe.\n * Once created, you can connect an input event to it and it will simply forward\n * events from that input event through its own `event` property. The `input`\n * can be changed at any point in time.\n */\nexport class Relay {\n constructor() {\n this.listening = false;\n this.inputEvent = Event.None;\n this.inputEventListener = Disposable.None;\n this.emitter = new Emitter({\n onDidAddFirstListener: () => {\n this.listening = true;\n this.inputEventListener = this.inputEvent(this.emitter.fire, this.emitter);\n },\n onDidRemoveLastListener: () => {\n this.listening = false;\n this.inputEventListener.dispose();\n }\n });\n this.event = this.emitter.event;\n }\n set input(event) {\n this.inputEvent = event;\n if (this.listening) {\n this.inputEventListener.dispose();\n this.inputEventListener = event(this.emitter.fire, this.emitter);\n }\n }\n dispose() {\n this.inputEventListener.dispose();\n this.emitter.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { register } from './codiconsUtil.js';\n// This file is automatically generated by (microsoft/vscode-codicons)/scripts/export-to-ts.js\n// Please don't edit it, as your changes will be overwritten.\n// Instead, add mappings to codiconsDerived in codicons.ts.\nexport const codiconsLibrary = {\n add: register('add', 0xea60),\n plus: register('plus', 0xea60),\n gistNew: register('gist-new', 0xea60),\n repoCreate: register('repo-create', 0xea60),\n lightbulb: register('lightbulb', 0xea61),\n lightBulb: register('light-bulb', 0xea61),\n repo: register('repo', 0xea62),\n repoDelete: register('repo-delete', 0xea62),\n gistFork: register('gist-fork', 0xea63),\n repoForked: register('repo-forked', 0xea63),\n gitPullRequest: register('git-pull-request', 0xea64),\n gitPullRequestAbandoned: register('git-pull-request-abandoned', 0xea64),\n recordKeys: register('record-keys', 0xea65),\n keyboard: register('keyboard', 0xea65),\n tag: register('tag', 0xea66),\n gitPullRequestLabel: register('git-pull-request-label', 0xea66),\n tagAdd: register('tag-add', 0xea66),\n tagRemove: register('tag-remove', 0xea66),\n person: register('person', 0xea67),\n personFollow: register('person-follow', 0xea67),\n personOutline: register('person-outline', 0xea67),\n personFilled: register('person-filled', 0xea67),\n gitBranch: register('git-branch', 0xea68),\n gitBranchCreate: register('git-branch-create', 0xea68),\n gitBranchDelete: register('git-branch-delete', 0xea68),\n sourceControl: register('source-control', 0xea68),\n mirror: register('mirror', 0xea69),\n mirrorPublic: register('mirror-public', 0xea69),\n star: register('star', 0xea6a),\n starAdd: register('star-add', 0xea6a),\n starDelete: register('star-delete', 0xea6a),\n starEmpty: register('star-empty', 0xea6a),\n comment: register('comment', 0xea6b),\n commentAdd: register('comment-add', 0xea6b),\n alert: register('alert', 0xea6c),\n warning: register('warning', 0xea6c),\n search: register('search', 0xea6d),\n searchSave: register('search-save', 0xea6d),\n logOut: register('log-out', 0xea6e),\n signOut: register('sign-out', 0xea6e),\n logIn: register('log-in', 0xea6f),\n signIn: register('sign-in', 0xea6f),\n eye: register('eye', 0xea70),\n eyeUnwatch: register('eye-unwatch', 0xea70),\n eyeWatch: register('eye-watch', 0xea70),\n circleFilled: register('circle-filled', 0xea71),\n primitiveDot: register('primitive-dot', 0xea71),\n closeDirty: register('close-dirty', 0xea71),\n debugBreakpoint: register('debug-breakpoint', 0xea71),\n debugBreakpointDisabled: register('debug-breakpoint-disabled', 0xea71),\n debugHint: register('debug-hint', 0xea71),\n terminalDecorationSuccess: register('terminal-decoration-success', 0xea71),\n primitiveSquare: register('primitive-square', 0xea72),\n edit: register('edit', 0xea73),\n pencil: register('pencil', 0xea73),\n info: register('info', 0xea74),\n issueOpened: register('issue-opened', 0xea74),\n gistPrivate: register('gist-private', 0xea75),\n gitForkPrivate: register('git-fork-private', 0xea75),\n lock: register('lock', 0xea75),\n mirrorPrivate: register('mirror-private', 0xea75),\n close: register('close', 0xea76),\n removeClose: register('remove-close', 0xea76),\n x: register('x', 0xea76),\n repoSync: register('repo-sync', 0xea77),\n sync: register('sync', 0xea77),\n clone: register('clone', 0xea78),\n desktopDownload: register('desktop-download', 0xea78),\n beaker: register('beaker', 0xea79),\n microscope: register('microscope', 0xea79),\n vm: register('vm', 0xea7a),\n deviceDesktop: register('device-desktop', 0xea7a),\n file: register('file', 0xea7b),\n fileText: register('file-text', 0xea7b),\n more: register('more', 0xea7c),\n ellipsis: register('ellipsis', 0xea7c),\n kebabHorizontal: register('kebab-horizontal', 0xea7c),\n mailReply: register('mail-reply', 0xea7d),\n reply: register('reply', 0xea7d),\n organization: register('organization', 0xea7e),\n organizationFilled: register('organization-filled', 0xea7e),\n organizationOutline: register('organization-outline', 0xea7e),\n newFile: register('new-file', 0xea7f),\n fileAdd: register('file-add', 0xea7f),\n newFolder: register('new-folder', 0xea80),\n fileDirectoryCreate: register('file-directory-create', 0xea80),\n trash: register('trash', 0xea81),\n trashcan: register('trashcan', 0xea81),\n history: register('history', 0xea82),\n clock: register('clock', 0xea82),\n folder: register('folder', 0xea83),\n fileDirectory: register('file-directory', 0xea83),\n symbolFolder: register('symbol-folder', 0xea83),\n logoGithub: register('logo-github', 0xea84),\n markGithub: register('mark-github', 0xea84),\n github: register('github', 0xea84),\n terminal: register('terminal', 0xea85),\n console: register('console', 0xea85),\n repl: register('repl', 0xea85),\n zap: register('zap', 0xea86),\n symbolEvent: register('symbol-event', 0xea86),\n error: register('error', 0xea87),\n stop: register('stop', 0xea87),\n variable: register('variable', 0xea88),\n symbolVariable: register('symbol-variable', 0xea88),\n array: register('array', 0xea8a),\n symbolArray: register('symbol-array', 0xea8a),\n symbolModule: register('symbol-module', 0xea8b),\n symbolPackage: register('symbol-package', 0xea8b),\n symbolNamespace: register('symbol-namespace', 0xea8b),\n symbolObject: register('symbol-object', 0xea8b),\n symbolMethod: register('symbol-method', 0xea8c),\n symbolFunction: register('symbol-function', 0xea8c),\n symbolConstructor: register('symbol-constructor', 0xea8c),\n symbolBoolean: register('symbol-boolean', 0xea8f),\n symbolNull: register('symbol-null', 0xea8f),\n symbolNumeric: register('symbol-numeric', 0xea90),\n symbolNumber: register('symbol-number', 0xea90),\n symbolStructure: register('symbol-structure', 0xea91),\n symbolStruct: register('symbol-struct', 0xea91),\n symbolParameter: register('symbol-parameter', 0xea92),\n symbolTypeParameter: register('symbol-type-parameter', 0xea92),\n symbolKey: register('symbol-key', 0xea93),\n symbolText: register('symbol-text', 0xea93),\n symbolReference: register('symbol-reference', 0xea94),\n goToFile: register('go-to-file', 0xea94),\n symbolEnum: register('symbol-enum', 0xea95),\n symbolValue: register('symbol-value', 0xea95),\n symbolRuler: register('symbol-ruler', 0xea96),\n symbolUnit: register('symbol-unit', 0xea96),\n activateBreakpoints: register('activate-breakpoints', 0xea97),\n archive: register('archive', 0xea98),\n arrowBoth: register('arrow-both', 0xea99),\n arrowDown: register('arrow-down', 0xea9a),\n arrowLeft: register('arrow-left', 0xea9b),\n arrowRight: register('arrow-right', 0xea9c),\n arrowSmallDown: register('arrow-small-down', 0xea9d),\n arrowSmallLeft: register('arrow-small-left', 0xea9e),\n arrowSmallRight: register('arrow-small-right', 0xea9f),\n arrowSmallUp: register('arrow-small-up', 0xeaa0),\n arrowUp: register('arrow-up', 0xeaa1),\n bell: register('bell', 0xeaa2),\n bold: register('bold', 0xeaa3),\n book: register('book', 0xeaa4),\n bookmark: register('bookmark', 0xeaa5),\n debugBreakpointConditionalUnverified: register('debug-breakpoint-conditional-unverified', 0xeaa6),\n debugBreakpointConditional: register('debug-breakpoint-conditional', 0xeaa7),\n debugBreakpointConditionalDisabled: register('debug-breakpoint-conditional-disabled', 0xeaa7),\n debugBreakpointDataUnverified: register('debug-breakpoint-data-unverified', 0xeaa8),\n debugBreakpointData: register('debug-breakpoint-data', 0xeaa9),\n debugBreakpointDataDisabled: register('debug-breakpoint-data-disabled', 0xeaa9),\n debugBreakpointLogUnverified: register('debug-breakpoint-log-unverified', 0xeaaa),\n debugBreakpointLog: register('debug-breakpoint-log', 0xeaab),\n debugBreakpointLogDisabled: register('debug-breakpoint-log-disabled', 0xeaab),\n briefcase: register('briefcase', 0xeaac),\n broadcast: register('broadcast', 0xeaad),\n browser: register('browser', 0xeaae),\n bug: register('bug', 0xeaaf),\n calendar: register('calendar', 0xeab0),\n caseSensitive: register('case-sensitive', 0xeab1),\n check: register('check', 0xeab2),\n checklist: register('checklist', 0xeab3),\n chevronDown: register('chevron-down', 0xeab4),\n chevronLeft: register('chevron-left', 0xeab5),\n chevronRight: register('chevron-right', 0xeab6),\n chevronUp: register('chevron-up', 0xeab7),\n chromeClose: register('chrome-close', 0xeab8),\n chromeMaximize: register('chrome-maximize', 0xeab9),\n chromeMinimize: register('chrome-minimize', 0xeaba),\n chromeRestore: register('chrome-restore', 0xeabb),\n circleOutline: register('circle-outline', 0xeabc),\n circle: register('circle', 0xeabc),\n debugBreakpointUnverified: register('debug-breakpoint-unverified', 0xeabc),\n terminalDecorationIncomplete: register('terminal-decoration-incomplete', 0xeabc),\n circleSlash: register('circle-slash', 0xeabd),\n circuitBoard: register('circuit-board', 0xeabe),\n clearAll: register('clear-all', 0xeabf),\n clippy: register('clippy', 0xeac0),\n closeAll: register('close-all', 0xeac1),\n cloudDownload: register('cloud-download', 0xeac2),\n cloudUpload: register('cloud-upload', 0xeac3),\n code: register('code', 0xeac4),\n collapseAll: register('collapse-all', 0xeac5),\n colorMode: register('color-mode', 0xeac6),\n commentDiscussion: register('comment-discussion', 0xeac7),\n creditCard: register('credit-card', 0xeac9),\n dash: register('dash', 0xeacc),\n dashboard: register('dashboard', 0xeacd),\n database: register('database', 0xeace),\n debugContinue: register('debug-continue', 0xeacf),\n debugDisconnect: register('debug-disconnect', 0xead0),\n debugPause: register('debug-pause', 0xead1),\n debugRestart: register('debug-restart', 0xead2),\n debugStart: register('debug-start', 0xead3),\n debugStepInto: register('debug-step-into', 0xead4),\n debugStepOut: register('debug-step-out', 0xead5),\n debugStepOver: register('debug-step-over', 0xead6),\n debugStop: register('debug-stop', 0xead7),\n debug: register('debug', 0xead8),\n deviceCameraVideo: register('device-camera-video', 0xead9),\n deviceCamera: register('device-camera', 0xeada),\n deviceMobile: register('device-mobile', 0xeadb),\n diffAdded: register('diff-added', 0xeadc),\n diffIgnored: register('diff-ignored', 0xeadd),\n diffModified: register('diff-modified', 0xeade),\n diffRemoved: register('diff-removed', 0xeadf),\n diffRenamed: register('diff-renamed', 0xeae0),\n diff: register('diff', 0xeae1),\n diffSidebyside: register('diff-sidebyside', 0xeae1),\n discard: register('discard', 0xeae2),\n editorLayout: register('editor-layout', 0xeae3),\n emptyWindow: register('empty-window', 0xeae4),\n exclude: register('exclude', 0xeae5),\n extensions: register('extensions', 0xeae6),\n eyeClosed: register('eye-closed', 0xeae7),\n fileBinary: register('file-binary', 0xeae8),\n fileCode: register('file-code', 0xeae9),\n fileMedia: register('file-media', 0xeaea),\n filePdf: register('file-pdf', 0xeaeb),\n fileSubmodule: register('file-submodule', 0xeaec),\n fileSymlinkDirectory: register('file-symlink-directory', 0xeaed),\n fileSymlinkFile: register('file-symlink-file', 0xeaee),\n fileZip: register('file-zip', 0xeaef),\n files: register('files', 0xeaf0),\n filter: register('filter', 0xeaf1),\n flame: register('flame', 0xeaf2),\n foldDown: register('fold-down', 0xeaf3),\n foldUp: register('fold-up', 0xeaf4),\n fold: register('fold', 0xeaf5),\n folderActive: register('folder-active', 0xeaf6),\n folderOpened: register('folder-opened', 0xeaf7),\n gear: register('gear', 0xeaf8),\n gift: register('gift', 0xeaf9),\n gistSecret: register('gist-secret', 0xeafa),\n gist: register('gist', 0xeafb),\n gitCommit: register('git-commit', 0xeafc),\n gitCompare: register('git-compare', 0xeafd),\n compareChanges: register('compare-changes', 0xeafd),\n gitMerge: register('git-merge', 0xeafe),\n githubAction: register('github-action', 0xeaff),\n githubAlt: register('github-alt', 0xeb00),\n globe: register('globe', 0xeb01),\n grabber: register('grabber', 0xeb02),\n graph: register('graph', 0xeb03),\n gripper: register('gripper', 0xeb04),\n heart: register('heart', 0xeb05),\n home: register('home', 0xeb06),\n horizontalRule: register('horizontal-rule', 0xeb07),\n hubot: register('hubot', 0xeb08),\n inbox: register('inbox', 0xeb09),\n issueReopened: register('issue-reopened', 0xeb0b),\n issues: register('issues', 0xeb0c),\n italic: register('italic', 0xeb0d),\n jersey: register('jersey', 0xeb0e),\n json: register('json', 0xeb0f),\n kebabVertical: register('kebab-vertical', 0xeb10),\n key: register('key', 0xeb11),\n law: register('law', 0xeb12),\n lightbulbAutofix: register('lightbulb-autofix', 0xeb13),\n linkExternal: register('link-external', 0xeb14),\n link: register('link', 0xeb15),\n listOrdered: register('list-ordered', 0xeb16),\n listUnordered: register('list-unordered', 0xeb17),\n liveShare: register('live-share', 0xeb18),\n loading: register('loading', 0xeb19),\n location: register('location', 0xeb1a),\n mailRead: register('mail-read', 0xeb1b),\n mail: register('mail', 0xeb1c),\n markdown: register('markdown', 0xeb1d),\n megaphone: register('megaphone', 0xeb1e),\n mention: register('mention', 0xeb1f),\n milestone: register('milestone', 0xeb20),\n gitPullRequestMilestone: register('git-pull-request-milestone', 0xeb20),\n mortarBoard: register('mortar-board', 0xeb21),\n move: register('move', 0xeb22),\n multipleWindows: register('multiple-windows', 0xeb23),\n mute: register('mute', 0xeb24),\n noNewline: register('no-newline', 0xeb25),\n note: register('note', 0xeb26),\n octoface: register('octoface', 0xeb27),\n openPreview: register('open-preview', 0xeb28),\n package: register('package', 0xeb29),\n paintcan: register('paintcan', 0xeb2a),\n pin: register('pin', 0xeb2b),\n play: register('play', 0xeb2c),\n run: register('run', 0xeb2c),\n plug: register('plug', 0xeb2d),\n preserveCase: register('preserve-case', 0xeb2e),\n preview: register('preview', 0xeb2f),\n project: register('project', 0xeb30),\n pulse: register('pulse', 0xeb31),\n question: register('question', 0xeb32),\n quote: register('quote', 0xeb33),\n radioTower: register('radio-tower', 0xeb34),\n reactions: register('reactions', 0xeb35),\n references: register('references', 0xeb36),\n refresh: register('refresh', 0xeb37),\n regex: register('regex', 0xeb38),\n remoteExplorer: register('remote-explorer', 0xeb39),\n remote: register('remote', 0xeb3a),\n remove: register('remove', 0xeb3b),\n replaceAll: register('replace-all', 0xeb3c),\n replace: register('replace', 0xeb3d),\n repoClone: register('repo-clone', 0xeb3e),\n repoForcePush: register('repo-force-push', 0xeb3f),\n repoPull: register('repo-pull', 0xeb40),\n repoPush: register('repo-push', 0xeb41),\n report: register('report', 0xeb42),\n requestChanges: register('request-changes', 0xeb43),\n rocket: register('rocket', 0xeb44),\n rootFolderOpened: register('root-folder-opened', 0xeb45),\n rootFolder: register('root-folder', 0xeb46),\n rss: register('rss', 0xeb47),\n ruby: register('ruby', 0xeb48),\n saveAll: register('save-all', 0xeb49),\n saveAs: register('save-as', 0xeb4a),\n save: register('save', 0xeb4b),\n screenFull: register('screen-full', 0xeb4c),\n screenNormal: register('screen-normal', 0xeb4d),\n searchStop: register('search-stop', 0xeb4e),\n server: register('server', 0xeb50),\n settingsGear: register('settings-gear', 0xeb51),\n settings: register('settings', 0xeb52),\n shield: register('shield', 0xeb53),\n smiley: register('smiley', 0xeb54),\n sortPrecedence: register('sort-precedence', 0xeb55),\n splitHorizontal: register('split-horizontal', 0xeb56),\n splitVertical: register('split-vertical', 0xeb57),\n squirrel: register('squirrel', 0xeb58),\n starFull: register('star-full', 0xeb59),\n starHalf: register('star-half', 0xeb5a),\n symbolClass: register('symbol-class', 0xeb5b),\n symbolColor: register('symbol-color', 0xeb5c),\n symbolConstant: register('symbol-constant', 0xeb5d),\n symbolEnumMember: register('symbol-enum-member', 0xeb5e),\n symbolField: register('symbol-field', 0xeb5f),\n symbolFile: register('symbol-file', 0xeb60),\n symbolInterface: register('symbol-interface', 0xeb61),\n symbolKeyword: register('symbol-keyword', 0xeb62),\n symbolMisc: register('symbol-misc', 0xeb63),\n symbolOperator: register('symbol-operator', 0xeb64),\n symbolProperty: register('symbol-property', 0xeb65),\n wrench: register('wrench', 0xeb65),\n wrenchSubaction: register('wrench-subaction', 0xeb65),\n symbolSnippet: register('symbol-snippet', 0xeb66),\n tasklist: register('tasklist', 0xeb67),\n telescope: register('telescope', 0xeb68),\n textSize: register('text-size', 0xeb69),\n threeBars: register('three-bars', 0xeb6a),\n thumbsdown: register('thumbsdown', 0xeb6b),\n thumbsup: register('thumbsup', 0xeb6c),\n tools: register('tools', 0xeb6d),\n triangleDown: register('triangle-down', 0xeb6e),\n triangleLeft: register('triangle-left', 0xeb6f),\n triangleRight: register('triangle-right', 0xeb70),\n triangleUp: register('triangle-up', 0xeb71),\n twitter: register('twitter', 0xeb72),\n unfold: register('unfold', 0xeb73),\n unlock: register('unlock', 0xeb74),\n unmute: register('unmute', 0xeb75),\n unverified: register('unverified', 0xeb76),\n verified: register('verified', 0xeb77),\n versions: register('versions', 0xeb78),\n vmActive: register('vm-active', 0xeb79),\n vmOutline: register('vm-outline', 0xeb7a),\n vmRunning: register('vm-running', 0xeb7b),\n watch: register('watch', 0xeb7c),\n whitespace: register('whitespace', 0xeb7d),\n wholeWord: register('whole-word', 0xeb7e),\n window: register('window', 0xeb7f),\n wordWrap: register('word-wrap', 0xeb80),\n zoomIn: register('zoom-in', 0xeb81),\n zoomOut: register('zoom-out', 0xeb82),\n listFilter: register('list-filter', 0xeb83),\n listFlat: register('list-flat', 0xeb84),\n listSelection: register('list-selection', 0xeb85),\n selection: register('selection', 0xeb85),\n listTree: register('list-tree', 0xeb86),\n debugBreakpointFunctionUnverified: register('debug-breakpoint-function-unverified', 0xeb87),\n debugBreakpointFunction: register('debug-breakpoint-function', 0xeb88),\n debugBreakpointFunctionDisabled: register('debug-breakpoint-function-disabled', 0xeb88),\n debugStackframeActive: register('debug-stackframe-active', 0xeb89),\n circleSmallFilled: register('circle-small-filled', 0xeb8a),\n debugStackframeDot: register('debug-stackframe-dot', 0xeb8a),\n terminalDecorationMark: register('terminal-decoration-mark', 0xeb8a),\n debugStackframe: register('debug-stackframe', 0xeb8b),\n debugStackframeFocused: register('debug-stackframe-focused', 0xeb8b),\n debugBreakpointUnsupported: register('debug-breakpoint-unsupported', 0xeb8c),\n symbolString: register('symbol-string', 0xeb8d),\n debugReverseContinue: register('debug-reverse-continue', 0xeb8e),\n debugStepBack: register('debug-step-back', 0xeb8f),\n debugRestartFrame: register('debug-restart-frame', 0xeb90),\n debugAlt: register('debug-alt', 0xeb91),\n callIncoming: register('call-incoming', 0xeb92),\n callOutgoing: register('call-outgoing', 0xeb93),\n menu: register('menu', 0xeb94),\n expandAll: register('expand-all', 0xeb95),\n feedback: register('feedback', 0xeb96),\n gitPullRequestReviewer: register('git-pull-request-reviewer', 0xeb96),\n groupByRefType: register('group-by-ref-type', 0xeb97),\n ungroupByRefType: register('ungroup-by-ref-type', 0xeb98),\n account: register('account', 0xeb99),\n gitPullRequestAssignee: register('git-pull-request-assignee', 0xeb99),\n bellDot: register('bell-dot', 0xeb9a),\n debugConsole: register('debug-console', 0xeb9b),\n library: register('library', 0xeb9c),\n output: register('output', 0xeb9d),\n runAll: register('run-all', 0xeb9e),\n syncIgnored: register('sync-ignored', 0xeb9f),\n pinned: register('pinned', 0xeba0),\n githubInverted: register('github-inverted', 0xeba1),\n serverProcess: register('server-process', 0xeba2),\n serverEnvironment: register('server-environment', 0xeba3),\n pass: register('pass', 0xeba4),\n issueClosed: register('issue-closed', 0xeba4),\n stopCircle: register('stop-circle', 0xeba5),\n playCircle: register('play-circle', 0xeba6),\n record: register('record', 0xeba7),\n debugAltSmall: register('debug-alt-small', 0xeba8),\n vmConnect: register('vm-connect', 0xeba9),\n cloud: register('cloud', 0xebaa),\n merge: register('merge', 0xebab),\n export: register('export', 0xebac),\n graphLeft: register('graph-left', 0xebad),\n magnet: register('magnet', 0xebae),\n notebook: register('notebook', 0xebaf),\n redo: register('redo', 0xebb0),\n checkAll: register('check-all', 0xebb1),\n pinnedDirty: register('pinned-dirty', 0xebb2),\n passFilled: register('pass-filled', 0xebb3),\n circleLargeFilled: register('circle-large-filled', 0xebb4),\n circleLarge: register('circle-large', 0xebb5),\n circleLargeOutline: register('circle-large-outline', 0xebb5),\n combine: register('combine', 0xebb6),\n gather: register('gather', 0xebb6),\n table: register('table', 0xebb7),\n variableGroup: register('variable-group', 0xebb8),\n typeHierarchy: register('type-hierarchy', 0xebb9),\n typeHierarchySub: register('type-hierarchy-sub', 0xebba),\n typeHierarchySuper: register('type-hierarchy-super', 0xebbb),\n gitPullRequestCreate: register('git-pull-request-create', 0xebbc),\n runAbove: register('run-above', 0xebbd),\n runBelow: register('run-below', 0xebbe),\n notebookTemplate: register('notebook-template', 0xebbf),\n debugRerun: register('debug-rerun', 0xebc0),\n workspaceTrusted: register('workspace-trusted', 0xebc1),\n workspaceUntrusted: register('workspace-untrusted', 0xebc2),\n workspaceUnknown: register('workspace-unknown', 0xebc3),\n terminalCmd: register('terminal-cmd', 0xebc4),\n terminalDebian: register('terminal-debian', 0xebc5),\n terminalLinux: register('terminal-linux', 0xebc6),\n terminalPowershell: register('terminal-powershell', 0xebc7),\n terminalTmux: register('terminal-tmux', 0xebc8),\n terminalUbuntu: register('terminal-ubuntu', 0xebc9),\n terminalBash: register('terminal-bash', 0xebca),\n arrowSwap: register('arrow-swap', 0xebcb),\n copy: register('copy', 0xebcc),\n personAdd: register('person-add', 0xebcd),\n filterFilled: register('filter-filled', 0xebce),\n wand: register('wand', 0xebcf),\n debugLineByLine: register('debug-line-by-line', 0xebd0),\n inspect: register('inspect', 0xebd1),\n layers: register('layers', 0xebd2),\n layersDot: register('layers-dot', 0xebd3),\n layersActive: register('layers-active', 0xebd4),\n compass: register('compass', 0xebd5),\n compassDot: register('compass-dot', 0xebd6),\n compassActive: register('compass-active', 0xebd7),\n azure: register('azure', 0xebd8),\n issueDraft: register('issue-draft', 0xebd9),\n gitPullRequestClosed: register('git-pull-request-closed', 0xebda),\n gitPullRequestDraft: register('git-pull-request-draft', 0xebdb),\n debugAll: register('debug-all', 0xebdc),\n debugCoverage: register('debug-coverage', 0xebdd),\n runErrors: register('run-errors', 0xebde),\n folderLibrary: register('folder-library', 0xebdf),\n debugContinueSmall: register('debug-continue-small', 0xebe0),\n beakerStop: register('beaker-stop', 0xebe1),\n graphLine: register('graph-line', 0xebe2),\n graphScatter: register('graph-scatter', 0xebe3),\n pieChart: register('pie-chart', 0xebe4),\n bracket: register('bracket', 0xeb0f),\n bracketDot: register('bracket-dot', 0xebe5),\n bracketError: register('bracket-error', 0xebe6),\n lockSmall: register('lock-small', 0xebe7),\n azureDevops: register('azure-devops', 0xebe8),\n verifiedFilled: register('verified-filled', 0xebe9),\n newline: register('newline', 0xebea),\n layout: register('layout', 0xebeb),\n layoutActivitybarLeft: register('layout-activitybar-left', 0xebec),\n layoutActivitybarRight: register('layout-activitybar-right', 0xebed),\n layoutPanelLeft: register('layout-panel-left', 0xebee),\n layoutPanelCenter: register('layout-panel-center', 0xebef),\n layoutPanelJustify: register('layout-panel-justify', 0xebf0),\n layoutPanelRight: register('layout-panel-right', 0xebf1),\n layoutPanel: register('layout-panel', 0xebf2),\n layoutSidebarLeft: register('layout-sidebar-left', 0xebf3),\n layoutSidebarRight: register('layout-sidebar-right', 0xebf4),\n layoutStatusbar: register('layout-statusbar', 0xebf5),\n layoutMenubar: register('layout-menubar', 0xebf6),\n layoutCentered: register('layout-centered', 0xebf7),\n target: register('target', 0xebf8),\n indent: register('indent', 0xebf9),\n recordSmall: register('record-small', 0xebfa),\n errorSmall: register('error-small', 0xebfb),\n terminalDecorationError: register('terminal-decoration-error', 0xebfb),\n arrowCircleDown: register('arrow-circle-down', 0xebfc),\n arrowCircleLeft: register('arrow-circle-left', 0xebfd),\n arrowCircleRight: register('arrow-circle-right', 0xebfe),\n arrowCircleUp: register('arrow-circle-up', 0xebff),\n layoutSidebarRightOff: register('layout-sidebar-right-off', 0xec00),\n layoutPanelOff: register('layout-panel-off', 0xec01),\n layoutSidebarLeftOff: register('layout-sidebar-left-off', 0xec02),\n blank: register('blank', 0xec03),\n heartFilled: register('heart-filled', 0xec04),\n map: register('map', 0xec05),\n mapHorizontal: register('map-horizontal', 0xec05),\n foldHorizontal: register('fold-horizontal', 0xec05),\n mapFilled: register('map-filled', 0xec06),\n mapHorizontalFilled: register('map-horizontal-filled', 0xec06),\n foldHorizontalFilled: register('fold-horizontal-filled', 0xec06),\n circleSmall: register('circle-small', 0xec07),\n bellSlash: register('bell-slash', 0xec08),\n bellSlashDot: register('bell-slash-dot', 0xec09),\n commentUnresolved: register('comment-unresolved', 0xec0a),\n gitPullRequestGoToChanges: register('git-pull-request-go-to-changes', 0xec0b),\n gitPullRequestNewChanges: register('git-pull-request-new-changes', 0xec0c),\n searchFuzzy: register('search-fuzzy', 0xec0d),\n commentDraft: register('comment-draft', 0xec0e),\n send: register('send', 0xec0f),\n sparkle: register('sparkle', 0xec10),\n insert: register('insert', 0xec11),\n mic: register('mic', 0xec12),\n thumbsdownFilled: register('thumbsdown-filled', 0xec13),\n thumbsupFilled: register('thumbsup-filled', 0xec14),\n coffee: register('coffee', 0xec15),\n snake: register('snake', 0xec16),\n game: register('game', 0xec17),\n vr: register('vr', 0xec18),\n chip: register('chip', 0xec19),\n piano: register('piano', 0xec1a),\n music: register('music', 0xec1b),\n micFilled: register('mic-filled', 0xec1c),\n repoFetch: register('repo-fetch', 0xec1d),\n copilot: register('copilot', 0xec1e),\n lightbulbSparkle: register('lightbulb-sparkle', 0xec1f),\n robot: register('robot', 0xec20),\n sparkleFilled: register('sparkle-filled', 0xec21),\n diffSingle: register('diff-single', 0xec22),\n diffMultiple: register('diff-multiple', 0xec23),\n surroundWith: register('surround-with', 0xec24),\n share: register('share', 0xec25),\n gitStash: register('git-stash', 0xec26),\n gitStashApply: register('git-stash-apply', 0xec27),\n gitStashPop: register('git-stash-pop', 0xec28),\n vscode: register('vscode', 0xec29),\n vscodeInsiders: register('vscode-insiders', 0xec2a),\n codeOss: register('code-oss', 0xec2b),\n runCoverage: register('run-coverage', 0xec2c),\n runAllCoverage: register('run-all-coverage', 0xec2d),\n coverage: register('coverage', 0xec2e),\n githubProject: register('github-project', 0xec2f),\n mapVertical: register('map-vertical', 0xec30),\n foldVertical: register('fold-vertical', 0xec30),\n mapVerticalFilled: register('map-vertical-filled', 0xec31),\n foldVerticalFilled: register('fold-vertical-filled', 0xec31),\n goToSearch: register('go-to-search', 0xec32),\n percentage: register('percentage', 0xec33),\n sortPercentage: register('sort-percentage', 0xec33),\n attach: register('attach', 0xec34),\n};\n","import { register } from './codiconsUtil.js';\nimport { codiconsLibrary } from './codiconsLibrary.js';\n/**\n * Derived icons, that could become separate icons.\n * These mappings should be moved into the mapping file in the vscode-codicons repo at some point.\n */\nexport const codiconsDerived = {\n dialogError: register('dialog-error', 'error'),\n dialogWarning: register('dialog-warning', 'warning'),\n dialogInfo: register('dialog-info', 'info'),\n dialogClose: register('dialog-close', 'close'),\n treeItemExpanded: register('tree-item-expanded', 'chevron-down'), // collapsed is done with rotation\n treeFilterOnTypeOn: register('tree-filter-on-type-on', 'list-filter'),\n treeFilterOnTypeOff: register('tree-filter-on-type-off', 'list-selection'),\n treeFilterClear: register('tree-filter-clear', 'close'),\n treeItemLoading: register('tree-item-loading', 'loading'),\n menuSelection: register('menu-selection', 'check'),\n menuSubmenu: register('menu-submenu', 'chevron-right'),\n menuBarMore: register('menubar-more', 'more'),\n scrollbarButtonLeft: register('scrollbar-button-left', 'triangle-left'),\n scrollbarButtonRight: register('scrollbar-button-right', 'triangle-right'),\n scrollbarButtonUp: register('scrollbar-button-up', 'triangle-up'),\n scrollbarButtonDown: register('scrollbar-button-down', 'triangle-down'),\n toolBarMore: register('toolbar-more', 'more'),\n quickInputBack: register('quick-input-back', 'arrow-left'),\n dropDownButton: register('drop-down-button', 0xeab4),\n symbolCustomColor: register('symbol-customcolor', 0xeb5c),\n exportIcon: register('export', 0xebac),\n workspaceUnspecified: register('workspace-unspecified', 0xebc3),\n newLine: register('newline', 0xebea),\n thumbsDownFilled: register('thumbsdown-filled', 0xec13),\n thumbsUpFilled: register('thumbsup-filled', 0xec14),\n gitFetch: register('git-fetch', 0xec1d),\n lightbulbSparkleAutofix: register('lightbulb-sparkle-autofix', 0xec1f),\n debugBreakpointPending: register('debug-breakpoint-pending', 0xebd9),\n};\n/**\n * The Codicon library is a set of default icons that are built-in in VS Code.\n *\n * In the product (outside of base) Codicons should only be used as defaults. In order to have all icons in VS Code\n * themeable, component should define new, UI component specific icons using `iconRegistry.registerIcon`.\n * In that call a Codicon can be named as default.\n */\nexport const Codicon = {\n ...codiconsLibrary,\n ...codiconsDerived\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InspectTokensController_1;\nimport './inspectTokens.css';\nimport { $, append, reset } from '../../../../base/browser/dom.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { TokenMetadata } from '../../../common/encodedTokenAttributes.js';\nimport { NullState, nullTokenize, nullTokenizeEncoded } from '../../../common/languages/nullTokenize.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { InspectTokensNLS } from '../../../common/standaloneStrings.js';\nlet InspectTokensController = InspectTokensController_1 = class InspectTokensController extends Disposable {\n static get(editor) {\n return editor.getContribution(InspectTokensController_1.ID);\n }\n constructor(editor, standaloneColorService, languageService) {\n super();\n this._editor = editor;\n this._languageService = languageService;\n this._widget = null;\n this._register(this._editor.onDidChangeModel((e) => this.stop()));\n this._register(this._editor.onDidChangeModelLanguage((e) => this.stop()));\n this._register(TokenizationRegistry.onDidChange((e) => this.stop()));\n this._register(this._editor.onKeyUp((e) => e.keyCode === 9 /* KeyCode.Escape */ && this.stop()));\n }\n dispose() {\n this.stop();\n super.dispose();\n }\n launch() {\n if (this._widget) {\n return;\n }\n if (!this._editor.hasModel()) {\n return;\n }\n this._widget = new InspectTokensWidget(this._editor, this._languageService);\n }\n stop() {\n if (this._widget) {\n this._widget.dispose();\n this._widget = null;\n }\n }\n};\nInspectTokensController.ID = 'editor.contrib.inspectTokens';\nInspectTokensController = InspectTokensController_1 = __decorate([\n __param(1, IStandaloneThemeService),\n __param(2, ILanguageService)\n], InspectTokensController);\nclass InspectTokens extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inspectTokens',\n label: InspectTokensNLS.inspectTokensAction,\n alias: 'Developer: Inspect Tokens',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n const controller = InspectTokensController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.launch();\n }\n}\nfunction renderTokenText(tokenText) {\n let result = '';\n for (let charIndex = 0, len = tokenText.length; charIndex < len; charIndex++) {\n const charCode = tokenText.charCodeAt(charIndex);\n switch (charCode) {\n case 9 /* CharCode.Tab */:\n result += '\\u2192'; // →\n break;\n case 32 /* CharCode.Space */:\n result += '\\u00B7'; // ·\n break;\n default:\n result += String.fromCharCode(charCode);\n }\n }\n return result;\n}\nfunction getSafeTokenizationSupport(languageIdCodec, languageId) {\n const tokenizationSupport = TokenizationRegistry.get(languageId);\n if (tokenizationSupport) {\n return tokenizationSupport;\n }\n const encodedLanguageId = languageIdCodec.encodeLanguageId(languageId);\n return {\n getInitialState: () => NullState,\n tokenize: (line, hasEOL, state) => nullTokenize(languageId, state),\n tokenizeEncoded: (line, hasEOL, state) => nullTokenizeEncoded(encodedLanguageId, state)\n };\n}\nclass InspectTokensWidget extends Disposable {\n constructor(editor, languageService) {\n super();\n // Editor.IContentWidget.allowEditorOverflow\n this.allowEditorOverflow = true;\n this._editor = editor;\n this._languageService = languageService;\n this._model = this._editor.getModel();\n this._domNode = document.createElement('div');\n this._domNode.className = 'tokens-inspect-widget';\n this._tokenizationSupport = getSafeTokenizationSupport(this._languageService.languageIdCodec, this._model.getLanguageId());\n this._compute(this._editor.getPosition());\n this._register(this._editor.onDidChangeCursorPosition((e) => this._compute(this._editor.getPosition())));\n this._editor.addContentWidget(this);\n }\n dispose() {\n this._editor.removeContentWidget(this);\n super.dispose();\n }\n getId() {\n return InspectTokensWidget._ID;\n }\n _compute(position) {\n const data = this._getTokensAtLine(position.lineNumber);\n let token1Index = 0;\n for (let i = data.tokens1.length - 1; i >= 0; i--) {\n const t = data.tokens1[i];\n if (position.column - 1 >= t.offset) {\n token1Index = i;\n break;\n }\n }\n let token2Index = 0;\n for (let i = (data.tokens2.length >>> 1); i >= 0; i--) {\n if (position.column - 1 >= data.tokens2[(i << 1)]) {\n token2Index = i;\n break;\n }\n }\n const lineContent = this._model.getLineContent(position.lineNumber);\n let tokenText = '';\n if (token1Index < data.tokens1.length) {\n const tokenStartIndex = data.tokens1[token1Index].offset;\n const tokenEndIndex = token1Index + 1 < data.tokens1.length ? data.tokens1[token1Index + 1].offset : lineContent.length;\n tokenText = lineContent.substring(tokenStartIndex, tokenEndIndex);\n }\n reset(this._domNode, $('h2.tm-token', undefined, renderTokenText(tokenText), $('span.tm-token-length', undefined, `${tokenText.length} ${tokenText.length === 1 ? 'char' : 'chars'}`)));\n append(this._domNode, $('hr.tokens-inspect-separator', { 'style': 'clear:both' }));\n const metadata = (token2Index << 1) + 1 < data.tokens2.length ? this._decodeMetadata(data.tokens2[(token2Index << 1) + 1]) : null;\n append(this._domNode, $('table.tm-metadata-table', undefined, $('tbody', undefined, $('tr', undefined, $('td.tm-metadata-key', undefined, 'language'), $('td.tm-metadata-value', undefined, `${metadata ? metadata.languageId : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'token type'), $('td.tm-metadata-value', undefined, `${metadata ? this._tokenTypeToString(metadata.tokenType) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'font style'), $('td.tm-metadata-value', undefined, `${metadata ? this._fontStyleToString(metadata.fontStyle) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'foreground'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.foreground) : '-?-'}`)), $('tr', undefined, $('td.tm-metadata-key', undefined, 'background'), $('td.tm-metadata-value', undefined, `${metadata ? Color.Format.CSS.formatHex(metadata.background) : '-?-'}`)))));\n append(this._domNode, $('hr.tokens-inspect-separator'));\n if (token1Index < data.tokens1.length) {\n append(this._domNode, $('span.tm-token-type', undefined, data.tokens1[token1Index].type));\n }\n this._editor.layoutContentWidget(this);\n }\n _decodeMetadata(metadata) {\n const colorMap = TokenizationRegistry.getColorMap();\n const languageId = TokenMetadata.getLanguageId(metadata);\n const tokenType = TokenMetadata.getTokenType(metadata);\n const fontStyle = TokenMetadata.getFontStyle(metadata);\n const foreground = TokenMetadata.getForeground(metadata);\n const background = TokenMetadata.getBackground(metadata);\n return {\n languageId: this._languageService.languageIdCodec.decodeLanguageId(languageId),\n tokenType: tokenType,\n fontStyle: fontStyle,\n foreground: colorMap[foreground],\n background: colorMap[background]\n };\n }\n _tokenTypeToString(tokenType) {\n switch (tokenType) {\n case 0 /* StandardTokenType.Other */: return 'Other';\n case 1 /* StandardTokenType.Comment */: return 'Comment';\n case 2 /* StandardTokenType.String */: return 'String';\n case 3 /* StandardTokenType.RegEx */: return 'RegEx';\n default: return '??';\n }\n }\n _fontStyleToString(fontStyle) {\n let r = '';\n if (fontStyle & 1 /* FontStyle.Italic */) {\n r += 'italic ';\n }\n if (fontStyle & 2 /* FontStyle.Bold */) {\n r += 'bold ';\n }\n if (fontStyle & 4 /* FontStyle.Underline */) {\n r += 'underline ';\n }\n if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n r += 'strikethrough ';\n }\n if (r.length === 0) {\n r = '---';\n }\n return r;\n }\n _getTokensAtLine(lineNumber) {\n const stateBeforeLine = this._getStateBeforeLine(lineNumber);\n const tokenizationResult1 = this._tokenizationSupport.tokenize(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n const tokenizationResult2 = this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(lineNumber), true, stateBeforeLine);\n return {\n startState: stateBeforeLine,\n tokens1: tokenizationResult1.tokens,\n tokens2: tokenizationResult2.tokens,\n endState: tokenizationResult1.endState\n };\n }\n _getStateBeforeLine(lineNumber) {\n let state = this._tokenizationSupport.getInitialState();\n for (let i = 1; i < lineNumber; i++) {\n const tokenizationResult = this._tokenizationSupport.tokenize(this._model.getLineContent(i), true, state);\n state = tokenizationResult.endState;\n }\n return state;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n position: this._editor.getPosition(),\n preference: [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n };\n }\n}\nInspectTokensWidget._ID = 'editor.contrib.inspectTokensWidget';\nregisterEditorContribution(InspectTokensController.ID, InspectTokensController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InspectTokens);\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isLowerAsciiLetter, isUpperAsciiLetter } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nexport class WordSelectionRangeProvider {\n constructor(selectSubwords = true) {\n this.selectSubwords = selectSubwords;\n }\n provideSelectionRanges(model, positions) {\n const result = [];\n for (const position of positions) {\n const bucket = [];\n result.push(bucket);\n if (this.selectSubwords) {\n this._addInWordRanges(bucket, model, position);\n }\n this._addWordRanges(bucket, model, position);\n this._addWhitespaceLine(bucket, model, position);\n bucket.push({ range: model.getFullModelRange() });\n }\n return result;\n }\n _addInWordRanges(bucket, model, pos) {\n const obj = model.getWordAtPosition(pos);\n if (!obj) {\n return;\n }\n const { word, startColumn } = obj;\n const offset = pos.column - startColumn;\n let start = offset;\n let end = offset;\n let lastCh = 0;\n // LEFT anchor (start)\n for (; start >= 0; start--) {\n const ch = word.charCodeAt(start);\n if ((start !== offset) && (ch === 95 /* CharCode.Underline */ || ch === 45 /* CharCode.Dash */)) {\n // foo-bar OR foo_bar\n break;\n }\n else if (isLowerAsciiLetter(ch) && isUpperAsciiLetter(lastCh)) {\n // fooBar\n break;\n }\n lastCh = ch;\n }\n start += 1;\n // RIGHT anchor (end)\n for (; end < word.length; end++) {\n const ch = word.charCodeAt(end);\n if (isUpperAsciiLetter(ch) && isLowerAsciiLetter(lastCh)) {\n // fooBar\n break;\n }\n else if (ch === 95 /* CharCode.Underline */ || ch === 45 /* CharCode.Dash */) {\n // foo-bar OR foo_bar\n break;\n }\n lastCh = ch;\n }\n if (start < end) {\n bucket.push({ range: new Range(pos.lineNumber, startColumn + start, pos.lineNumber, startColumn + end) });\n }\n }\n _addWordRanges(bucket, model, pos) {\n const word = model.getWordAtPosition(pos);\n if (word) {\n bucket.push({ range: new Range(pos.lineNumber, word.startColumn, pos.lineNumber, word.endColumn) });\n }\n }\n _addWhitespaceLine(bucket, model, pos) {\n if (model.getLineLength(pos.lineNumber) > 0\n && model.getLineFirstNonWhitespaceColumn(pos.lineNumber) === 0\n && model.getLineLastNonWhitespaceColumn(pos.lineNumber) === 0) {\n bucket.push({ range: new Range(pos.lineNumber, 1, pos.lineNumber, model.getLineMaxColumn(pos.lineNumber)) });\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SmartSelectController_1;\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { BracketSelectionRangeProvider } from './bracketSelections.js';\nimport { WordSelectionRangeProvider } from './wordSelections.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nclass SelectionRanges {\n constructor(index, ranges) {\n this.index = index;\n this.ranges = ranges;\n }\n mov(fwd) {\n const index = this.index + (fwd ? 1 : -1);\n if (index < 0 || index >= this.ranges.length) {\n return this;\n }\n const res = new SelectionRanges(index, this.ranges);\n if (res.ranges[index].equalsRange(this.ranges[this.index])) {\n // next range equals this range, retry with next-next\n return res.mov(fwd);\n }\n return res;\n }\n}\nlet SmartSelectController = SmartSelectController_1 = class SmartSelectController {\n static get(editor) {\n return editor.getContribution(SmartSelectController_1.ID);\n }\n constructor(_editor, _languageFeaturesService) {\n this._editor = _editor;\n this._languageFeaturesService = _languageFeaturesService;\n this._ignoreSelection = false;\n }\n dispose() {\n var _a;\n (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n }\n async run(forward) {\n if (!this._editor.hasModel()) {\n return;\n }\n const selections = this._editor.getSelections();\n const model = this._editor.getModel();\n if (!this._state) {\n await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider, model, selections.map(s => s.getPosition()), this._editor.getOption(113 /* EditorOption.smartSelect */), CancellationToken.None).then(ranges => {\n var _a;\n if (!arrays.isNonEmptyArray(ranges) || ranges.length !== selections.length) {\n // invalid result\n return;\n }\n if (!this._editor.hasModel() || !arrays.equals(this._editor.getSelections(), selections, (a, b) => a.equalsSelection(b))) {\n // invalid editor state\n return;\n }\n for (let i = 0; i < ranges.length; i++) {\n ranges[i] = ranges[i].filter(range => {\n // filter ranges inside the selection\n return range.containsPosition(selections[i].getStartPosition()) && range.containsPosition(selections[i].getEndPosition());\n });\n // prepend current selection\n ranges[i].unshift(selections[i]);\n }\n this._state = ranges.map(ranges => new SelectionRanges(0, ranges));\n // listen to caret move and forget about state\n (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n this._selectionListener = this._editor.onDidChangeCursorPosition(() => {\n var _a;\n if (!this._ignoreSelection) {\n (_a = this._selectionListener) === null || _a === void 0 ? void 0 : _a.dispose();\n this._state = undefined;\n }\n });\n });\n }\n if (!this._state) {\n // no state\n return;\n }\n this._state = this._state.map(state => state.mov(forward));\n const newSelections = this._state.map(state => Selection.fromPositions(state.ranges[state.index].getStartPosition(), state.ranges[state.index].getEndPosition()));\n this._ignoreSelection = true;\n try {\n this._editor.setSelections(newSelections);\n }\n finally {\n this._ignoreSelection = false;\n }\n }\n};\nSmartSelectController.ID = 'editor.contrib.smartSelectController';\nSmartSelectController = SmartSelectController_1 = __decorate([\n __param(1, ILanguageFeaturesService)\n], SmartSelectController);\nexport { SmartSelectController };\nclass AbstractSmartSelect extends EditorAction {\n constructor(forward, opts) {\n super(opts);\n this._forward = forward;\n }\n async run(_accessor, editor) {\n const controller = SmartSelectController.get(editor);\n if (controller) {\n await controller.run(this._forward);\n }\n }\n}\nclass GrowSelectionAction extends AbstractSmartSelect {\n constructor() {\n super(true, {\n id: 'editor.action.smartSelect.expand',\n label: nls.localize('smartSelect.expand', \"Expand Selection\"),\n alias: 'Expand Selection',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */,\n secondary: [256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */],\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '1_basic',\n title: nls.localize({ key: 'miSmartSelectGrow', comment: ['&& denotes a mnemonic'] }, \"&&Expand Selection\"),\n order: 2\n }\n });\n }\n}\n// renamed command id\nCommandsRegistry.registerCommandAlias('editor.action.smartSelect.grow', 'editor.action.smartSelect.expand');\nclass ShrinkSelectionAction extends AbstractSmartSelect {\n constructor() {\n super(false, {\n id: 'editor.action.smartSelect.shrink',\n label: nls.localize('smartSelect.shrink', \"Shrink Selection\"),\n alias: 'Shrink Selection',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */,\n secondary: [256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */],\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '1_basic',\n title: nls.localize({ key: 'miSmartSelectShrink', comment: ['&& denotes a mnemonic'] }, \"&&Shrink Selection\"),\n order: 3\n }\n });\n }\n}\nregisterEditorContribution(SmartSelectController.ID, SmartSelectController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(GrowSelectionAction);\nregisterEditorAction(ShrinkSelectionAction);\nexport async function provideSelectionRanges(registry, model, positions, options, token) {\n const providers = registry.all(model)\n .concat(new WordSelectionRangeProvider(options.selectSubwords)); // ALWAYS have word based selection range\n if (providers.length === 1) {\n // add word selection and bracket selection when no provider exists\n providers.unshift(new BracketSelectionRangeProvider());\n }\n const work = [];\n const allRawRanges = [];\n for (const provider of providers) {\n work.push(Promise.resolve(provider.provideSelectionRanges(model, positions, token)).then(allProviderRanges => {\n if (arrays.isNonEmptyArray(allProviderRanges) && allProviderRanges.length === positions.length) {\n for (let i = 0; i < positions.length; i++) {\n if (!allRawRanges[i]) {\n allRawRanges[i] = [];\n }\n for (const oneProviderRanges of allProviderRanges[i]) {\n if (Range.isIRange(oneProviderRanges.range) && Range.containsPosition(oneProviderRanges.range, positions[i])) {\n allRawRanges[i].push(Range.lift(oneProviderRanges.range));\n }\n }\n }\n }\n }, onUnexpectedExternalError));\n }\n await Promise.all(work);\n return allRawRanges.map(oneRawRanges => {\n if (oneRawRanges.length === 0) {\n return [];\n }\n // sort all by start/end position\n oneRawRanges.sort((a, b) => {\n if (Position.isBefore(a.getStartPosition(), b.getStartPosition())) {\n return 1;\n }\n else if (Position.isBefore(b.getStartPosition(), a.getStartPosition())) {\n return -1;\n }\n else if (Position.isBefore(a.getEndPosition(), b.getEndPosition())) {\n return -1;\n }\n else if (Position.isBefore(b.getEndPosition(), a.getEndPosition())) {\n return 1;\n }\n else {\n return 0;\n }\n });\n // remove ranges that don't contain the former range or that are equal to the\n // former range\n const oneRanges = [];\n let last;\n for (const range of oneRawRanges) {\n if (!last || (Range.containsRange(range, last) && !Range.equalsRange(range, last))) {\n oneRanges.push(range);\n last = range;\n }\n }\n if (!options.selectLeadingAndTrailingWhitespace) {\n return oneRanges;\n }\n // add ranges that expand trivia at line starts and ends whenever a range\n // wraps onto the a new line\n const oneRangesWithTrivia = [oneRanges[0]];\n for (let i = 1; i < oneRanges.length; i++) {\n const prev = oneRanges[i - 1];\n const cur = oneRanges[i];\n if (cur.startLineNumber !== prev.startLineNumber || cur.endLineNumber !== prev.endLineNumber) {\n // add line/block range without leading/failing whitespace\n const rangeNoWhitespace = new Range(prev.startLineNumber, model.getLineFirstNonWhitespaceColumn(prev.startLineNumber), prev.endLineNumber, model.getLineLastNonWhitespaceColumn(prev.endLineNumber));\n if (rangeNoWhitespace.containsRange(prev) && !rangeNoWhitespace.equalsRange(prev) && cur.containsRange(rangeNoWhitespace) && !cur.equalsRange(rangeNoWhitespace)) {\n oneRangesWithTrivia.push(rangeNoWhitespace);\n }\n // add line/block range\n const rangeFull = new Range(prev.startLineNumber, 1, prev.endLineNumber, model.getLineMaxColumn(prev.endLineNumber));\n if (rangeFull.containsRange(prev) && !rangeFull.equalsRange(rangeNoWhitespace) && cur.containsRange(rangeFull) && !cur.equalsRange(rangeFull)) {\n oneRangesWithTrivia.push(rangeFull);\n }\n }\n oneRangesWithTrivia.push(cur);\n }\n return oneRangesWithTrivia;\n });\n}\nCommandsRegistry.registerCommand('_executeSelectionRangeProvider', async function (accessor, ...args) {\n const [resource, positions] = args;\n assertType(URI.isUri(resource));\n const registry = accessor.get(ILanguageFeaturesService).selectionRangeProvider;\n const reference = await accessor.get(ITextModelService).createModelReference(resource);\n try {\n return provideSelectionRanges(registry, reference.object.textEditorModel, positions, { selectLeadingAndTrailingWhitespace: true, selectSubwords: true }, CancellationToken.None);\n }\n finally {\n reference.dispose();\n }\n});\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IClipboardService = createDecorator('clipboardService');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst items_1 = require(\"./items\");\nconst def = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => (0, items_1.validateTuple)(cxt, \"items\"),\n};\nexports.default = def;\n//# sourceMappingURL=prefixItems.js.map","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst sameOriginWindowChainCache = new WeakMap();\nfunction getParentWindowIfSameOrigin(w) {\n if (!w.parent || w.parent === w) {\n return null;\n }\n // Cannot really tell if we have access to the parent window unless we try to access something in it\n try {\n const location = w.location;\n const parentLocation = w.parent.location;\n if (location.origin !== 'null' && parentLocation.origin !== 'null' && location.origin !== parentLocation.origin) {\n return null;\n }\n }\n catch (e) {\n return null;\n }\n return w.parent;\n}\nexport class IframeUtils {\n /**\n * Returns a chain of embedded windows with the same origin (which can be accessed programmatically).\n * Having a chain of length 1 might mean that the current execution environment is running outside of an iframe or inside an iframe embedded in a window with a different origin.\n */\n static getSameOriginWindowChain(targetWindow) {\n let windowChainCache = sameOriginWindowChainCache.get(targetWindow);\n if (!windowChainCache) {\n windowChainCache = [];\n sameOriginWindowChainCache.set(targetWindow, windowChainCache);\n let w = targetWindow;\n let parent;\n do {\n parent = getParentWindowIfSameOrigin(w);\n if (parent) {\n windowChainCache.push({\n window: new WeakRef(w),\n iframeElement: w.frameElement || null\n });\n }\n else {\n windowChainCache.push({\n window: new WeakRef(w),\n iframeElement: null\n });\n }\n w = parent;\n } while (w);\n }\n return windowChainCache.slice(0);\n }\n /**\n * Returns the position of `childWindow` relative to `ancestorWindow`\n */\n static getPositionOfChildWindowRelativeToAncestorWindow(childWindow, ancestorWindow) {\n var _a, _b;\n if (!ancestorWindow || childWindow === ancestorWindow) {\n return {\n top: 0,\n left: 0\n };\n }\n let top = 0, left = 0;\n const windowChain = this.getSameOriginWindowChain(childWindow);\n for (const windowChainEl of windowChain) {\n const windowInChain = windowChainEl.window.deref();\n top += (_a = windowInChain === null || windowInChain === void 0 ? void 0 : windowInChain.scrollY) !== null && _a !== void 0 ? _a : 0;\n left += (_b = windowInChain === null || windowInChain === void 0 ? void 0 : windowInChain.scrollX) !== null && _b !== void 0 ? _b : 0;\n if (windowInChain === ancestorWindow) {\n break;\n }\n if (!windowChainEl.iframeElement) {\n break;\n }\n const boundingRect = windowChainEl.iframeElement.getBoundingClientRect();\n top += boundingRect.top;\n left += boundingRect.left;\n }\n return {\n top: top,\n left: left\n };\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { IframeUtils } from './iframe.js';\nimport * as platform from '../common/platform.js';\nexport class StandardMouseEvent {\n constructor(targetWindow, e) {\n this.timestamp = Date.now();\n this.browserEvent = e;\n this.leftButton = e.button === 0;\n this.middleButton = e.button === 1;\n this.rightButton = e.button === 2;\n this.buttons = e.buttons;\n this.target = e.target;\n this.detail = e.detail || 1;\n if (e.type === 'dblclick') {\n this.detail = 2;\n }\n this.ctrlKey = e.ctrlKey;\n this.shiftKey = e.shiftKey;\n this.altKey = e.altKey;\n this.metaKey = e.metaKey;\n if (typeof e.pageX === 'number') {\n this.posx = e.pageX;\n this.posy = e.pageY;\n }\n else {\n // Probably hit by MSGestureEvent\n this.posx = e.clientX + this.target.ownerDocument.body.scrollLeft + this.target.ownerDocument.documentElement.scrollLeft;\n this.posy = e.clientY + this.target.ownerDocument.body.scrollTop + this.target.ownerDocument.documentElement.scrollTop;\n }\n // Find the position of the iframe this code is executing in relative to the iframe where the event was captured.\n const iframeOffsets = IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(targetWindow, e.view);\n this.posx -= iframeOffsets.left;\n this.posy -= iframeOffsets.top;\n }\n preventDefault() {\n this.browserEvent.preventDefault();\n }\n stopPropagation() {\n this.browserEvent.stopPropagation();\n }\n}\nexport class StandardWheelEvent {\n constructor(e, deltaX = 0, deltaY = 0) {\n var _a;\n this.browserEvent = e || null;\n this.target = e ? (e.target || e.targetNode || e.srcElement) : null;\n this.deltaY = deltaY;\n this.deltaX = deltaX;\n let shouldFactorDPR = false;\n if (browser.isChrome) {\n // Chrome version >= 123 contains the fix to factor devicePixelRatio into the wheel event.\n // See https://chromium.googlesource.com/chromium/src.git/+/be51b448441ff0c9d1f17e0f25c4bf1ab3f11f61\n const chromeVersionMatch = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n const chromeMajorVersion = chromeVersionMatch ? parseInt(chromeVersionMatch[1]) : 123;\n shouldFactorDPR = chromeMajorVersion <= 122;\n }\n if (e) {\n // Old (deprecated) wheel events\n const e1 = e;\n const e2 = e;\n const devicePixelRatio = ((_a = e.view) === null || _a === void 0 ? void 0 : _a.devicePixelRatio) || 1;\n // vertical delta scroll\n if (typeof e1.wheelDeltaY !== 'undefined') {\n if (shouldFactorDPR) {\n // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n this.deltaY = e1.wheelDeltaY / (120 * devicePixelRatio);\n }\n else {\n this.deltaY = e1.wheelDeltaY / 120;\n }\n }\n else if (typeof e2.VERTICAL_AXIS !== 'undefined' && e2.axis === e2.VERTICAL_AXIS) {\n this.deltaY = -e2.detail / 3;\n }\n else if (e.type === 'wheel') {\n // Modern wheel event\n // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n const ev = e;\n if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n // the deltas are expressed in lines\n if (browser.isFirefox && !platform.isMacintosh) {\n this.deltaY = -e.deltaY / 3;\n }\n else {\n this.deltaY = -e.deltaY;\n }\n }\n else {\n this.deltaY = -e.deltaY / 40;\n }\n }\n // horizontal delta scroll\n if (typeof e1.wheelDeltaX !== 'undefined') {\n if (browser.isSafari && platform.isWindows) {\n this.deltaX = -(e1.wheelDeltaX / 120);\n }\n else if (shouldFactorDPR) {\n // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n this.deltaX = e1.wheelDeltaX / (120 * devicePixelRatio);\n }\n else {\n this.deltaX = e1.wheelDeltaX / 120;\n }\n }\n else if (typeof e2.HORIZONTAL_AXIS !== 'undefined' && e2.axis === e2.HORIZONTAL_AXIS) {\n this.deltaX = -e.detail / 3;\n }\n else if (e.type === 'wheel') {\n // Modern wheel event\n // https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent\n const ev = e;\n if (ev.deltaMode === ev.DOM_DELTA_LINE) {\n // the deltas are expressed in lines\n if (browser.isFirefox && !platform.isMacintosh) {\n this.deltaX = -e.deltaX / 3;\n }\n else {\n this.deltaX = -e.deltaX;\n }\n }\n else {\n this.deltaX = -e.deltaX / 40;\n }\n }\n // Assume a vertical scroll if nothing else worked\n if (this.deltaY === 0 && this.deltaX === 0 && e.wheelDelta) {\n if (shouldFactorDPR) {\n // Refs https://github.com/microsoft/vscode/issues/146403#issuecomment-1854538928\n this.deltaY = e.wheelDelta / (120 * devicePixelRatio);\n }\n else {\n this.deltaY = e.wheelDelta / 120;\n }\n }\n }\n }\n preventDefault() {\n var _a;\n (_a = this.browserEvent) === null || _a === void 0 ? void 0 : _a.preventDefault();\n }\n stopPropagation() {\n var _a;\n (_a = this.browserEvent) === null || _a === void 0 ? void 0 : _a.stopPropagation();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet isPseudo = (typeof document !== 'undefined' && document.location && document.location.hash.indexOf('pseudo=true') >= 0);\nconst DEFAULT_TAG = 'i-default';\nfunction _format(message, args) {\n let result;\n if (args.length === 0) {\n result = message;\n }\n else {\n result = message.replace(/\\{(\\d+)\\}/g, (match, rest) => {\n const index = rest[0];\n const arg = args[index];\n let result = match;\n if (typeof arg === 'string') {\n result = arg;\n }\n else if (typeof arg === 'number' || typeof arg === 'boolean' || arg === void 0 || arg === null) {\n result = String(arg);\n }\n return result;\n });\n }\n if (isPseudo) {\n // FF3B and FF3D is the Unicode zenkaku representation for [ and ]\n result = '\\uFF3B' + result.replace(/[aouei]/g, '$&$&') + '\\uFF3D';\n }\n return result;\n}\nfunction findLanguageForModule(config, name) {\n let result = config[name];\n if (result) {\n return result;\n }\n result = config['*'];\n if (result) {\n return result;\n }\n return null;\n}\nfunction endWithSlash(path) {\n if (path.charAt(path.length - 1) === '/') {\n return path;\n }\n return path + '/';\n}\nasync function getMessagesFromTranslationsService(translationServiceUrl, language, name) {\n const url = endWithSlash(translationServiceUrl) + endWithSlash(language) + 'vscode/' + endWithSlash(name);\n const res = await fetch(url);\n if (res.ok) {\n const messages = await res.json();\n return messages;\n }\n throw new Error(`${res.status} - ${res.statusText}`);\n}\nfunction createScopedLocalize(scope) {\n return function (idx, defaultValue) {\n const restArgs = Array.prototype.slice.call(arguments, 2);\n return _format(scope[idx], restArgs);\n };\n}\nfunction createScopedLocalize2(scope) {\n return (idx, defaultValue, ...args) => ({\n value: _format(scope[idx], args),\n original: _format(defaultValue, args)\n });\n}\n/**\n * @skipMangle\n */\nexport function localize(data, message, ...args) {\n return _format(message, args);\n}\n/**\n * @skipMangle\n */\nexport function localize2(data, message, ...args) {\n const original = _format(message, args);\n return {\n value: original,\n original\n };\n}\n/**\n * @skipMangle\n */\nexport function getConfiguredDefaultLocale(_) {\n // This returns undefined because this implementation isn't used and is overwritten by the loader\n // when loaded.\n return undefined;\n}\n/**\n * @skipMangle\n */\nexport function setPseudoTranslation(value) {\n isPseudo = value;\n}\n/**\n * Invoked in a built product at run-time\n * @skipMangle\n */\nexport function create(key, data) {\n var _a;\n return {\n localize: createScopedLocalize(data[key]),\n localize2: createScopedLocalize2(data[key]),\n getConfiguredDefaultLocale: (_a = data.getConfiguredDefaultLocale) !== null && _a !== void 0 ? _a : ((_) => undefined)\n };\n}\n/**\n * Invoked by the loader at run-time\n * @skipMangle\n */\nexport function load(name, req, load, config) {\n var _a;\n const pluginConfig = (_a = config['vs/nls']) !== null && _a !== void 0 ? _a : {};\n if (!name || name.length === 0) {\n // TODO: We need to give back the mangled names here\n return load({\n localize: localize,\n localize2: localize2,\n getConfiguredDefaultLocale: () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; }\n });\n }\n const language = pluginConfig.availableLanguages ? findLanguageForModule(pluginConfig.availableLanguages, name) : null;\n const useDefaultLanguage = language === null || language === DEFAULT_TAG;\n let suffix = '.nls';\n if (!useDefaultLanguage) {\n suffix = suffix + '.' + language;\n }\n const messagesLoaded = (messages) => {\n if (Array.isArray(messages)) {\n messages.localize = createScopedLocalize(messages);\n messages.localize2 = createScopedLocalize2(messages);\n }\n else {\n messages.localize = createScopedLocalize(messages[name]);\n messages.localize2 = createScopedLocalize2(messages[name]);\n }\n messages.getConfiguredDefaultLocale = () => { var _a; return (_a = pluginConfig.availableLanguages) === null || _a === void 0 ? void 0 : _a['*']; };\n load(messages);\n };\n if (typeof pluginConfig.loadBundle === 'function') {\n pluginConfig.loadBundle(name, language, (err, messages) => {\n // We have an error. Load the English default strings to not fail\n if (err) {\n req([name + '.nls'], messagesLoaded);\n }\n else {\n messagesLoaded(messages);\n }\n });\n }\n else if (pluginConfig.translationServiceUrl && !useDefaultLanguage) {\n (async () => {\n var _a;\n try {\n const messages = await getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, language, name);\n return messagesLoaded(messages);\n }\n catch (err) {\n // Language is already as generic as it gets, so require default messages\n if (!language.includes('-')) {\n console.error(err);\n return req([name + '.nls'], messagesLoaded);\n }\n try {\n // Since there is a dash, the language configured is a specific sub-language of the same generic language.\n // Since we were unable to load the specific language, try to load the generic language. Ex. we failed to find a\n // Swiss German (de-CH), so try to load the generic German (de) messages instead.\n const genericLanguage = language.split('-')[0];\n const messages = await getMessagesFromTranslationsService(pluginConfig.translationServiceUrl, genericLanguage, name);\n // We got some messages, so we configure the configuration to use the generic language for this session.\n (_a = pluginConfig.availableLanguages) !== null && _a !== void 0 ? _a : (pluginConfig.availableLanguages = {});\n pluginConfig.availableLanguages['*'] = genericLanguage;\n return messagesLoaded(messages);\n }\n catch (err) {\n console.error(err);\n return req([name + '.nls'], messagesLoaded);\n }\n }\n })();\n }\n else {\n req([name + suffix], messagesLoaded, (err) => {\n if (suffix === '.nls') {\n console.error('Failed trying to load default language strings', err);\n return;\n }\n console.error(`Failed to load message bundle for language ${language}. Falling back to the default language:`, err);\n req([name + '.nls'], messagesLoaded);\n });\n }\n}\n","/**\n * Resize library\n */\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\nvar RESIZE_HANDLER = 'e-resize-handle';\nvar FOCUSED_HANDLER = 'e-focused-handle';\nvar DIALOG_RESIZABLE = 'e-dlg-resizable';\nvar RESTRICT_LEFT = ['e-restrict-left'];\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\nvar targetElement;\nvar selectedHandler;\nvar originalWidth = 0;\nvar originalHeight = 0;\nvar originalX = 0;\nvar originalY = 0;\nvar originalMouseX = 0;\nvar originalMouseY = 0;\nvar minHeight;\nvar maxHeight;\nvar minWidth;\nvar maxWidth;\nvar containerElement;\nvar resizeStart = null;\nvar resize = null;\nvar resizeEnd = null;\nvar resizeWestWidth;\nvar setLeft = true;\nvar previousWidth = 0;\nvar setWidth = true;\n// eslint-disable-next-line\nvar proxy;\n/**\n *\n * @param {ResizeArgs} args - specifies the resize args\n * @returns {void}\n */\nexport function createResize(args) {\n resizeStart = args.resizeBegin;\n resize = args.resizing;\n resizeEnd = args.resizeComplete;\n targetElement = getDOMElement(args.element);\n containerElement = getDOMElement(args.boundary);\n var directions = args.direction.split(' ');\n for (var i = 0; i < directions.length; i++) {\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\n setBorderResizeElm(directions[i]);\n }\n else if (directions[i].trim() !== '') {\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\n targetElement.appendChild(resizeHandler);\n }\n }\n minHeight = args.minHeight;\n minWidth = args.minWidth;\n maxWidth = args.maxWidth;\n maxHeight = args.maxHeight;\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\n wireEvents(args.proxy);\n }\n else {\n wireEvents();\n }\n}\n/**\n *\n * @param {string} direction - specifies the string\n * @returns {void}\n */\nfunction setBorderResizeElm(direction) {\n calculateValues();\n var borderBottom = createElement('span', {\n attrs: {\n 'unselectable': 'on', 'contenteditable': 'false'\n }\n });\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\n if (direction === 'south') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.bottom = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'north') {\n borderBottom.style.height = '2px';\n borderBottom.style.width = '100%';\n borderBottom.style.top = '0px';\n borderBottom.style.left = '0px';\n }\n if (direction === 'east') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.right = '0px';\n borderBottom.style.top = '0px';\n }\n if (direction === 'west') {\n borderBottom.style.height = '100%';\n borderBottom.style.width = '2px';\n borderBottom.style.left = '0px';\n borderBottom.style.top = '0px';\n }\n targetElement.appendChild(borderBottom);\n}\n/**\n *\n * @param {string} element - specifies the element\n * @returns {HTMLElement} - returns the element\n */\nfunction getDOMElement(element) {\n var domElement;\n if (!isNOU(element)) {\n if (typeof (element) === 'string') {\n domElement = document.querySelector(element);\n }\n else {\n domElement = element;\n }\n }\n return domElement;\n}\n/**\n * Wires up the event handlers for the resizable elements.\n *\n * @param {any} [args] - Optional arguments that provide context for the event handlers.\n * @returns {void}\n */\nfunction wireEvents(args) {\n var context = args || this;\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < resizers.length; i++) {\n selectedHandler = resizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, context);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, context);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n selectedHandler = borderResizers[i];\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, context);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(selectedHandler, eventName, onTouchStart, context);\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {string} e - specifies the string\n * @returns {string} - returns the string\n */\nfunction getEventType(e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the mouse event\n * @returns {void}\n */\nfunction onMouseDown(e) {\n e.preventDefault();\n targetElement = e.target.parentElement;\n calculateValues();\n originalMouseX = e.pageX;\n originalMouseY = e.pageY;\n e.target.classList.add(FOCUSED_HANDLER);\n if (!isNOU(resizeStart)) {\n var proxy_1 = null || this;\n if (resizeStart(e, proxy_1) === true) {\n return;\n }\n }\n if (this.targetEle && targetElement && targetElement.querySelector('.' + DIALOG_RESIZABLE)) {\n containerElement = this.target === ('body' || 'document.body' || document.body) ? null : this.targetEle;\n maxWidth = this.targetEle.clientWidth;\n maxHeight = this.targetEle.clientHeight;\n }\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, 'mousemove', onMouseMove, this);\n EventHandler.add(document, 'mouseup', onMouseUp, this);\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\n setLeft = false;\n }\n else {\n setLeft = true;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseUp(e) {\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.remove(target, 'mousemove', onMouseMove);\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\n EventHandler.remove(target, eventName, onMouseMove);\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\n }\n if (!isNOU(resizeEnd)) {\n var proxy_2 = null || this;\n resizeEnd(e, proxy_2);\n }\n EventHandler.remove(document, 'mouseup', onMouseUp);\n EventHandler.remove(document, touchEndEvent, onMouseUp);\n}\n/* istanbul ignore next */\n/**\n * @returns {void}\n */\nfunction calculateValues() {\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\n originalX = targetElement.getBoundingClientRect().left;\n originalY = targetElement.getBoundingClientRect().top;\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onTouchStart(e) {\n targetElement = e.target.parentElement;\n calculateValues();\n var dialogResizeElement = targetElement.classList.contains('e-dialog');\n if ((e.target.classList.contains(RESIZE_HANDLER) || e.target.classList.contains('e-dialog-border-resize')) && dialogResizeElement) {\n e.target.classList.add(FOCUSED_HANDLER);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n originalMouseX = coordinates.pageX;\n originalMouseY = coordinates.pageY;\n if (!isNOU(resizeStart)) {\n var proxy_3 = null || this;\n if (resizeStart(e, proxy_3) === true) {\n return;\n }\n }\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n var target = (isNOU(containerElement)) ? document : containerElement;\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\n EventHandler.add(document, touchEndEvent, onMouseUp, this);\n}\n/* istanbul ignore next */\n/**\n *\n * @param {MouseEvent} e - specifies the event\n * @returns {void}\n */\nfunction onMouseMove(e) {\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\n selectedHandler = e.target;\n }\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\n }\n if (!isNOU(selectedHandler)) {\n var resizeTowards = '';\n for (var i = 0; i < elementClass.length; i++) {\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\n resizeTowards = elementClass[i];\n }\n }\n if (!isNOU(resize)) {\n var proxy_4 = null || this;\n resize(e, proxy_4);\n }\n switch (resizeTowards) {\n case 'south':\n resizeSouth(e);\n break;\n case 'north':\n resizeNorth(e);\n break;\n case 'west':\n resizeWest(e);\n break;\n case 'east':\n resizeEast(e);\n break;\n case 'south-east':\n resizeSouth(e);\n resizeEast(e);\n break;\n case 'south-west':\n resizeSouth(e);\n resizeWest(e);\n break;\n case 'north-east':\n resizeNorth(e);\n resizeEast(e);\n break;\n case 'north-west':\n resizeNorth(e);\n resizeWest(e);\n break;\n default: break;\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {HTMLElement} element - specifies the eleemnt\n * @returns {ClientRect} - returns the client\n */\nfunction getClientRectValues(element) {\n return element.getBoundingClientRect();\n}\n/**\n * @param {MouseEvent | TouchEvent} e - specifies the event\n * @returns {void}\n */\nfunction resizeSouth(e) {\n var documentHeight = document.documentElement.clientHeight;\n var calculateValue = false;\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var currentpageY = coordinates.pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\n calculateValue = true;\n }\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = containerRectValues.top;\n }\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\n return;\n }\n var targetTop = 0;\n if (calculateValue) {\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\n targetTop = targetRectValues.top;\n if ((calculatedHeight + targetTop) <= 30) {\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\n }\n }\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\n targetElement.style.height = targetRectValues.height +\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\n }\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\n targetElement.style.height = calculatedHeight + 'px';\n }\n }\n}\n/**\n * Resizes the element towards the north direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeNorth(e) {\n var calculateValue = false;\n var boundaryRectValues;\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\n if (!isNOU(containerElement)) {\n boundaryRectValues = getClientRectValues(containerElement);\n }\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageY > 0) {\n calculateValue = true;\n }\n else if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.top - boundaryRectValues.top) + targetRectValues.height +\n (boundaryRectValues.bottom - targetRectValues.bottom)) - borderValue) <= maxHeight) {\n calculateValue = true;\n }\n var currentHeight = originalHeight - (pageY - originalMouseY);\n if (calculateValue) {\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\n var containerTop = 0;\n if (!isNOU(containerElement)) {\n containerTop = boundaryRectValues.top;\n }\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\n top_1 = top_1 > 0 ? top_1 : 1;\n targetElement.style.height = currentHeight + 'px';\n targetElement.style.top = top_1 + 'px';\n }\n }\n}\n/**\n * Resizes the element towards the west direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeWest(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var rectValues;\n if (!isNOU(containerElement)) {\n rectValues = getClientRectValues(containerElement);\n }\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\n var targetRectValues = getClientRectValues(targetElement);\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\n /* eslint-disable */\n var left = isNOU(containerElement) ? 0 : rectValues.left;\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\n /* eslint-enable */\n if (isNOU(resizeWestWidth)) {\n if (!isNOU(containerElement)) {\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\n }\n else {\n resizeWestWidth = documentWidth;\n }\n }\n if (!isNOU(containerElement) &&\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && pageX >= 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\n if (setLeft) {\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = rectValues.left;\n }\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\n left_1 = (left_1 > 0) ? left_1 : 1;\n if (calculatedWidth !== previousWidth && setWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n if (setLeft) {\n targetElement.style.left = left_1 + 'px';\n if (left_1 === 1) {\n setWidth = false;\n }\n else {\n setWidth = true;\n }\n }\n }\n }\n previousWidth = calculatedWidth;\n}\n/**\n * Resizes the element towards the east direction.\n *\n * @param {MouseEvent | TouchEvent} e - The event object.\n * @returns {void}\n */\nfunction resizeEast(e) {\n var documentWidth = document.documentElement.clientWidth;\n var calculateValue = false;\n var containerRectValues;\n if (!isNOU(containerElement)) {\n containerRectValues = getClientRectValues(containerElement);\n }\n var coordinates = e.touches ? e.changedTouches[0] : e;\n var pageX = coordinates.pageX;\n var targetRectValues = getClientRectValues(targetElement);\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\n calculateValue = true;\n }\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\n calculateValue = true;\n }\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\n var containerLeft = 0;\n if (!isNOU(containerElement)) {\n containerLeft = containerRectValues.left;\n }\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\n calculateValue = false;\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\n return;\n }\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\n }\n if (calculateValue) {\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\n targetElement.style.width = calculatedWidth + 'px';\n }\n }\n}\n/* istanbul ignore next */\n/**\n *\n * @param {number} minimumHeight - specifies the number\n * @returns {void}\n */\nexport function setMinHeight(minimumHeight) {\n minHeight = minimumHeight;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxWidth(value) {\n maxWidth = value;\n}\n/**\n *\n * @param {number} value - specifies the number value\n * @returns {void}\n */\nexport function setMaxHeight(value) {\n maxHeight = value;\n}\n/**\n * @returns {void}\n */\nexport function removeResize() {\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\n for (var i = 0; i < handlers.length; i++) {\n detach(handlers[i]);\n }\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\n if (!isNOU(borderResizers)) {\n for (var i = 0; i < borderResizers.length; i++) {\n detach(borderResizers[i]);\n }\n }\n}\n/**\n * @returns {void}\n */\nexport function resizeDestroy() {\n targetElement = null;\n selectedHandler = null;\n containerElement = null;\n resizeWestWidth = null;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement, animationMode } from '@syncfusion/ej2-base';\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight, resizeDestroy } from '../common/resize';\nvar ButtonProps = /** @class */ (function (_super) {\n __extends(ButtonProps, _super);\n function ButtonProps() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], ButtonProps.prototype, \"isFlat\", void 0);\n __decorate([\n Property()\n ], ButtonProps.prototype, \"buttonModel\", void 0);\n __decorate([\n Property('Button')\n ], ButtonProps.prototype, \"type\", void 0);\n __decorate([\n Event()\n ], ButtonProps.prototype, \"click\", void 0);\n return ButtonProps;\n}(ChildProperty));\nexport { ButtonProps };\n/**\n * Configures the animation properties for both open and close the dialog.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Fade')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property(0)\n ], AnimationSettings.prototype, \"delay\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\nvar ROOT = 'e-dialog';\nvar RTL = 'e-rtl';\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\nvar DLG_HEADER = 'e-dlg-header';\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\nvar MODAL_DLG = 'e-dlg-modal';\nvar DLG_CONTENT = 'e-dlg-content';\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\nvar DLG_OVERLAY = 'e-dlg-overlay';\nvar DLG_TARGET = 'e-dlg-target';\nvar DLG_CONTAINER = 'e-dlg-container';\nvar SCROLL_DISABLED = 'e-scroll-disabled';\nvar DLG_PRIMARY_BUTTON = 'e-primary';\nvar ICON = 'e-icons';\nvar POPUP_ROOT = 'e-popup';\nvar DEVICE = 'e-device';\nvar FULLSCREEN = 'e-dlg-fullscreen';\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\nvar DLG_HIDE = 'e-popup-close';\nvar DLG_SHOW = 'e-popup-open';\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\nvar DLG_RESIZABLE = 'e-dlg-resizable';\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\nvar DLG_USER_ACTION_CLOSED = 'user action';\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\nvar DLG_ESCAPE_CLOSED = 'escape';\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\nvar DLG_DRAG = 'e-draggable';\n/**\n * Represents the dialog component that displays the information and get input from the user.\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Dialog = /** @class */ (function (_super) {\n __extends(Dialog, _super);\n /*\n * * Constructor for creating the widget\n *\n * @param\n * @param\n * @hidden\n */\n function Dialog(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n *Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.render = function () {\n this.initialize();\n this.initRender();\n this.wireEvents();\n if (this.width === '100%') {\n this.element.style.width = '';\n }\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n if (this.enableResize) {\n this.setResize();\n if (this.isModal) {\n this.isModelResize = true;\n }\n if (this.animationSettings.effect === 'None') {\n this.getMinHeight();\n }\n }\n this.renderComplete();\n };\n Dialog.prototype.initializeValue = function () {\n this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n };\n /**\n *Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.preRender = function () {\n var _this = this;\n this.initializeValue();\n this.headerContent = null;\n this.allowMaxHeight = true;\n this.preventVisibility = true;\n this.clonedEle = this.element.cloneNode(true);\n this.closeIconClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\n _this.hide(event);\n };\n this.dlgOverlayClickEventHandler = function (event) {\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\n event.preventFocus = false;\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\n if (!overlayClickEventArgs.preventFocus) {\n _this.focusContent();\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n };\n var localeText = { close: 'Close' };\n this.l10n = new L10n('dialog', localeText, this.locale);\n this.checkPositionData();\n if (isNullOrUndefined(this.target)) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.target = document.body;\n this.isProtectedOnChange = prevOnChange;\n }\n };\n Dialog.prototype.updatePersistData = function () {\n if (this.enablePersistence) {\n this.setProperties({ width: parseFloat(this.element.style.width), height: parseFloat(this.element.style.height),\n position: { X: parseFloat(this.dragObj.element.style.left), Y: parseFloat(this.dragObj.element.style.top) } }, true);\n }\n };\n Dialog.prototype.isNumberValue = function (value) {\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\n return isNumber;\n };\n Dialog.prototype.checkPositionData = function () {\n if (!isNullOrUndefined(this.position)) {\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.X);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.X = parseFloat(this.position.X);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\n var isNumber = this.isNumberValue(this.position.Y);\n if (isNumber) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n this.position.Y = parseFloat(this.position.Y);\n this.isProtectedOnChange = prevOnChange;\n }\n }\n }\n };\n Dialog.prototype.getEle = function (list, selector) {\n var element = undefined;\n for (var i = 0; i < list.length; i++) {\n if (list[i].classList.contains(selector)) {\n element = list[i];\n break;\n }\n }\n return element;\n };\n /* istanbul ignore next */\n Dialog.prototype.getMinHeight = function () {\n var computedHeaderHeight = '0px';\n var computedFooterHeight = '0px';\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\n }\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\n if (!isNullOrUndefined(footerEle)) {\n computedFooterHeight = getComputedStyle(footerEle).height;\n }\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\n return (headerHeight + 30 + footerHeight);\n };\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\n dialogObj.trigger('resizeStart', args);\n if (!args.cancel && this.isModelResize && !isNullOrUndefined(this.dlgContainer) && this.dlgContainer.classList.contains('e-dlg-' + this.position.X + '-' + this.position.Y)) {\n this.setPopupPosition();\n this.dlgContainer.classList.remove('e-dlg-' + this.position.X + '-' + this.position.Y);\n var targetType = this.getTargetContainer(this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n this.element.style.position = 'absolute';\n }\n else {\n this.element.style.position = 'relative';\n }\n }\n else {\n this.element.style.position = 'relative';\n }\n if (this.element.classList.contains(DLG_RESTRICT_LEFT_VALUE)) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n this.isModelResize = false;\n }\n return args.cancel;\n };\n Dialog.prototype.onResizing = function (args, dialogObj) {\n dialogObj.trigger('resizing', args);\n };\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\n dialogObj.trigger('resizeStop', args);\n this.updatePersistData();\n };\n Dialog.prototype.setResize = function () {\n if (this.enableResize) {\n this.element.classList.add(DLG_RESIZABLE);\n var computedHeight = getComputedStyle(this.element).minHeight;\n var computedWidth = getComputedStyle(this.element).minWidth;\n var direction = '';\n for (var i = 0; i < this.resizeHandles.length; i++) {\n if (this.resizeHandles[i] === 'All') {\n direction = 'south north east west north-east north-west south-east south-west';\n break;\n }\n else {\n var directionValue = '';\n switch (this.resizeHandles[i].toString()) {\n case 'SouthEast':\n directionValue = 'south-east';\n break;\n case 'SouthWest':\n directionValue = 'south-west';\n break;\n case 'NorthEast':\n directionValue = 'north-east';\n break;\n case 'NorthWest':\n directionValue = 'north-west';\n break;\n default:\n directionValue = this.resizeHandles[i].toString();\n break;\n }\n direction += directionValue.toLocaleLowerCase() + ' ';\n }\n }\n if (this.enableRtl && direction.trim() === 'south-east') {\n direction = 'south-west';\n }\n else if (this.enableRtl && direction.trim() === 'south-west') {\n direction = 'south-east';\n }\n if (this.isModal && this.enableRtl) {\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\n }\n else if (this.isModal && this.target === document.body) {\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\n }\n createResize({\n element: this.element,\n direction: direction,\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\n maxHeight: this.targetEle.clientHeight,\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\n maxWidth: this.targetEle.clientWidth,\n boundary: this.target === document.body ? null : this.targetEle,\n resizeBegin: this.onResizeStart.bind(this),\n resizeComplete: this.onResizeComplete.bind(this),\n resizing: this.onResizing.bind(this),\n proxy: this\n });\n this.wireWindowResizeEvent();\n }\n else {\n removeResize();\n this.unWireWindowResizeEvent();\n if (this.isModal) {\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n }\n else {\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\n }\n this.element.classList.remove(DLG_RESIZABLE);\n }\n };\n Dialog.prototype.getFocusElement = function (target) {\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\n var items = target.querySelectorAll(value);\n return { element: items[items.length - 1] };\n };\n /* istanbul ignore next */\n Dialog.prototype.keyDown = function (event) {\n var _this = this;\n if (event.keyCode === 9) {\n if (this.isModal) {\n var buttonObj = void 0;\n if (!isNullOrUndefined(this.btnObj)) {\n buttonObj = this.btnObj[this.btnObj.length - 1];\n }\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\n }\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\n buttonObj = this.getFocusElement(this.contentEle);\n }\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\n event.preventDefault();\n this.focusableElements(this.element).focus();\n }\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\n event.preventDefault();\n if (!isNullOrUndefined(buttonObj)) {\n buttonObj.element.focus();\n }\n }\n }\n }\n var element = document.activeElement;\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\n var isContentEdit = false;\n if (!isTagName) {\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\n }\n if (event.keyCode === 27 && this.closeOnEscape) {\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\n var query = document.querySelector('.e-popup-open:not(.e-dialog)');\n // 'document.querySelector' is used to find the elements rendered based on body\n if (!(!isNullOrUndefined(query) && !query.classList.contains('e-toolbar-pop') && !query.classList.contains('e-slider-tooltip'))) {\n this.hide(event);\n }\n }\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\n var buttonIndex_1;\n var firstPrimary = this.buttons.some(function (data, index) {\n buttonIndex_1 = index;\n var buttonModel = data.buttonModel;\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\n });\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\n setTimeout(function () {\n _this.buttons[buttonIndex_1].click.call(_this, event);\n });\n }\n }\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initialize = function () {\n if (!isNullOrUndefined(this.target)) {\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n }\n if (!this.isBlazorServerRender()) {\n addClass([this.element], ROOT);\n }\n if (Browser.isDevice) {\n addClass([this.element], DEVICE);\n }\n if (!this.isBlazorServerRender()) {\n this.setCSSClass();\n }\n this.setMaxHeight();\n };\n /**\n * Initialize the rendering\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.initRender = function () {\n var _this = this;\n this.initialRender = true;\n if (!this.isBlazorServerRender()) {\n attributes(this.element, { role: 'dialog' });\n }\n if (this.zIndex === 1000) {\n this.setzIndex(this.element, false);\n this.calculatezIndex = true;\n }\n else {\n this.calculatezIndex = false;\n }\n this.setTargetContent();\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\n this.setHeader();\n }\n this.renderCloseIcon();\n this.setContent();\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setFooterTemplate();\n }\n else if (!isNullOrUndefined(this.buttons[0]) && !isNullOrUndefined(this.buttons[0].buttonModel)) {\n this.setButton();\n }\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\n if (this.isModal) {\n this.setIsModal();\n }\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\n && !isNullOrUndefined(this.element.parentElement)) {\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\n }\n if (!isNullOrUndefined(this.targetEle)) {\n if (this.isModal) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n else {\n this.targetEle.appendChild(this.element);\n }\n }\n this.popupObj = new Popup(this.element, {\n height: this.height,\n width: this.width,\n zIndex: this.zIndex,\n relateTo: this.target,\n actionOnScroll: 'none',\n enableRtl: this.enableRtl,\n // eslint-disable-next-line\n open: function (event) {\n var eventArgs = {\n container: _this.isModal ? _this.dlgContainer : _this.element,\n element: _this.element,\n target: _this.target,\n preventFocus: false\n };\n if (_this.enableResize) {\n _this.resetResizeIcon();\n }\n _this.trigger('open', eventArgs, function (openEventArgs) {\n if (!openEventArgs.preventFocus) {\n _this.focusContent();\n }\n });\n },\n // eslint-disable-next-line\n close: function (event) {\n if (_this.isModal) {\n addClass([_this.dlgOverlay], 'e-fade');\n }\n _this.unBindEvent(_this.element);\n if (_this.isModal) {\n _this.dlgContainer.style.display = 'none';\n }\n _this.trigger('close', _this.closeArgs);\n var activeEle = document.activeElement;\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\n activeEle.blur();\n }\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\n _this.storeActiveElement.focus();\n }\n }\n });\n this.positionChange();\n this.setEnableRTL();\n if (!this.isBlazorServerRender()) {\n addClass([this.element], DLG_HIDE);\n if (this.isModal) {\n this.setOverlayZindex();\n }\n }\n if (this.visible) {\n this.show();\n if (this.isModal) {\n var targetType = this.getTargetContainer(this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n this.setPopupPosition();\n }\n }\n }\n }\n else {\n if (this.isModal) {\n this.dlgOverlay.style.display = 'none';\n }\n }\n this.initialRender = false;\n };\n Dialog.prototype.getTargetContainer = function (targetValue) {\n var targetElement = null;\n if (typeof targetValue === 'string') {\n if (targetValue.startsWith('#')) {\n targetElement = document.getElementById(targetValue.substring(1));\n }\n else if (targetValue.startsWith('.')) {\n var elements = document.getElementsByClassName(targetValue.substring(1));\n targetElement = elements.length > 0 ? elements[0] : null;\n }\n else {\n if (!(targetValue instanceof HTMLElement) && targetValue !== document.body) {\n targetElement = document.querySelector(targetValue);\n }\n }\n }\n else if (targetValue instanceof HTMLElement) {\n targetElement = targetValue;\n }\n return targetElement;\n };\n Dialog.prototype.resetResizeIcon = function () {\n var dialogConHeight = this.getMinHeight();\n if (this.targetEle.offsetHeight < dialogConHeight) {\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\n var resizeIcon = this.element.querySelector('.' + className);\n if (!isNullOrUndefined(resizeIcon)) {\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\n }\n }\n };\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\n var zIndex;\n if (isNullOrUndefined(zIndexValue)) {\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\n }\n else {\n zIndex = zIndexValue;\n }\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\n this.dlgContainer.style.zIndex = zIndex.toString();\n };\n Dialog.prototype.positionChange = function () {\n if (this.isModal) {\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\n this.setPopupPosition();\n }\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\n this.setPopupPosition();\n }\n else {\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\n }\n }\n else {\n this.setPopupPosition();\n }\n };\n Dialog.prototype.setPopupPosition = function () {\n this.popupObj.setProperties({\n position: {\n X: this.position.X, Y: this.position.Y\n }\n });\n };\n Dialog.prototype.setAllowDragging = function () {\n var _this = this;\n var handleContent = '.' + DLG_HEADER_CONTENT;\n if (!this.element.classList.contains(DLG_DRAG)) {\n this.dragObj = new Draggable(this.element, {\n clone: false,\n isDragScroll: true,\n abort: '.e-dlg-closeicon-btn',\n handle: handleContent,\n dragStart: function (event) {\n _this.trigger('dragStart', event, function (dragEventArgs) {\n if (isBlazor()) {\n dragEventArgs.bindEvents(event.dragElement);\n }\n });\n },\n dragStop: function (event) {\n if (_this.isModal) {\n _this.IsDragStop = true;\n if (!isNullOrUndefined(_this.position)) {\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\n }\n // Reset the dialog position after drag completion.\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n _this.element.style.position = 'absolute';\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n _this.trigger('dragStop', event);\n _this.isModelResize = false;\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\n _this.updatePersistData();\n },\n drag: function (event) {\n _this.trigger('drag', event);\n }\n });\n if (!isNullOrUndefined(this.targetEle)) {\n this.dragObj.dragArea = this.targetEle;\n }\n }\n };\n Dialog.prototype.setButton = function () {\n if (!this.isBlazorServerRender()) {\n this.buttonContent = [];\n this.btnObj = [];\n for (var i = 0; i < this.buttons.length; i++) {\n if (isNullOrUndefined(this.buttons[i].buttonModel)) {\n continue;\n }\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ?\n this.buttons[i].type.toLowerCase() : 'button';\n var btn = this.createElement('button', { className: this.cssClass, attrs: { type: buttonType } });\n this.buttonContent.push(btn.outerHTML);\n }\n this.setFooterTemplate();\n }\n var footerBtn;\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\n footerBtn = childNodes[i].querySelectorAll('button');\n }\n }\n for (var i = 0; i < this.buttons.length; i++) {\n if (isNullOrUndefined(this.buttons[i].buttonModel)) {\n continue;\n }\n if (!this.isBlazorServerRender()) {\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\n }\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\n if (typeof (this.buttons[i].click) === 'function') {\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\n }\n if (typeof (this.buttons[i].click) === 'object') {\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\n }\n }\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\n if (this.buttons[i].isFlat) {\n this.btnObj[i].element.classList.add('e-flat');\n }\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n }\n };\n Dialog.prototype.buttonClickHandler = function (index) {\n this.trigger('buttons[' + index + '].click', {});\n };\n Dialog.prototype.setContent = function () {\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\n if (this.headerEle) {\n attributes(this.element, { 'aria-describedby': this.element.id + '_title' + ' ' + this.element.id + '_dialog-content' });\n }\n else {\n attributes(this.element, { 'aria-describedby': this.element.id + '_dialog-content' });\n }\n if (this.innerContentElement) {\n this.contentEle.appendChild(this.innerContentElement);\n }\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\n if (typeof (this.content) === 'string' && !isBlazor()) {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n else if (this.content instanceof HTMLElement) {\n this.contentEle.appendChild(this.content);\n }\n else {\n this.setTemplate(this.content, this.contentEle, 'content');\n }\n }\n if (!isNullOrUndefined(this.headerContent)) {\n this.element.insertBefore(this.contentEle, this.element.children[1]);\n }\n else {\n this.element.insertBefore(this.contentEle, this.element.children[0]);\n }\n if (this.height === 'auto') {\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\n this.element.style.width = formatUnit(this.width);\n }\n this.setMaxHeight();\n }\n };\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\n var templateFn;\n var templateProps;\n if (toElement.classList.contains(DLG_HEADER)) {\n templateProps = this.element.id + 'header';\n }\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\n templateProps = this.element.id + 'footerTemplate';\n }\n else {\n templateProps = this.element.id + 'content';\n }\n var templateValue;\n if (!isNullOrUndefined(template.outerHTML)) {\n toElement.appendChild(template);\n }\n else if ((typeof template === 'string') || (typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\n if ((typeof template === 'string')) {\n template = this.sanitizeHelper(template);\n }\n if (this.isVue || typeof template !== 'string') {\n templateFn = compile(template);\n templateValue = template;\n }\n else {\n toElement.innerHTML = template;\n }\n }\n var fromElements = [];\n if (!isNullOrUndefined(templateFn)) {\n var isString = (isBlazor() &&\n !this.isStringTemplate && (templateValue).indexOf('
Blazor') === 0) ?\n this.isStringTemplate : true;\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\n var item = _a[_i];\n fromElements.push(item);\n }\n append([].slice.call(fromElements), toElement);\n }\n };\n /*\n * @returns {void}\n * @hidden\n * @value\n */\n Dialog.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(dialogItem, dialogItem, beforeEvent);\n this.trigger('beforeSanitizeHtml', dialogItem);\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\n value = dialogItem.helper(value);\n }\n else if (!dialogItem.cancel) {\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\n }\n }\n return value;\n };\n Dialog.prototype.setMaxHeight = function () {\n if (!this.allowMaxHeight) {\n return;\n }\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\n this.element.style.display = display;\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\n this.element.style.height = 'inherit';\n }\n };\n Dialog.prototype.setEnableRTL = function () {\n if (!this.isBlazorServerRender()) {\n if (this.enableRtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n }\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\n removeResize();\n this.setResize();\n }\n };\n Dialog.prototype.setTargetContent = function () {\n var _this = this;\n if (isNullOrUndefined(this.content) || this.content === '') {\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\n if (this.element.children.length > 0 || isContent) {\n this.innerContentElement = document.createDocumentFragment();\n [].slice.call(this.element.childNodes).forEach(function (el) {\n if (el.nodeType !== 8) {\n _this.innerContentElement.appendChild(el);\n }\n });\n }\n }\n };\n Dialog.prototype.setHeader = function () {\n if (this.headerEle) {\n this.headerEle.innerHTML = '';\n }\n else {\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\n }\n this.createHeaderContent();\n this.headerContent.appendChild(this.headerEle);\n this.setTemplate(this.header, this.headerEle, 'header');\n attributes(this.element, { 'aria-describedby': this.element.id + '_title' });\n attributes(this.element, { 'aria-labelledby': this.element.id + '_dialog-header' });\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n };\n Dialog.prototype.setFooterTemplate = function () {\n if (this.ftrTemplateContent) {\n this.ftrTemplateContent.innerHTML = '';\n }\n else {\n this.ftrTemplateContent = this.createElement('div', {\n className: DLG_FOOTER_CONTENT\n });\n }\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\n }\n else {\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\n }\n this.element.appendChild(this.ftrTemplateContent);\n };\n Dialog.prototype.createHeaderContent = function () {\n if (isNullOrUndefined(this.headerContent)) {\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\n }\n };\n Dialog.prototype.renderCloseIcon = function () {\n if (this.showCloseIcon) {\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\n this.closeIconTitle();\n if (!isNullOrUndefined(this.headerContent)) {\n prepend([this.closeIcon], this.headerContent);\n }\n else {\n this.createHeaderContent();\n prepend([this.closeIcon], this.headerContent);\n this.element.insertBefore(this.headerContent, this.element.children[0]);\n }\n this.closeIconBtnObj.appendTo(this.closeIcon);\n }\n };\n Dialog.prototype.closeIconTitle = function () {\n this.l10n.setLocale(this.locale);\n var closeIconTitle = this.l10n.getConstant('close');\n this.closeIcon.setAttribute('title', closeIconTitle);\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\n };\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\n if (oldCSSClass) {\n removeClass([this.element], oldCSSClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n removeClass([this.dlgContainer], oldCSSClass.split(' '));\n }\n }\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n addClass([this.dlgContainer], this.cssClass.split(' '));\n }\n }\n };\n Dialog.prototype.setIsModal = function () {\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\n this.setCSSClass();\n this.element.classList.remove(DLG_SHOW);\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\n this.dlgContainer.appendChild(this.element);\n addClass([this.element], MODAL_DLG);\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\n this.dlgContainer.appendChild(this.dlgOverlay);\n };\n Dialog.prototype.getValidFocusNode = function (items) {\n var node;\n for (var u = 0; u < items.length; u++) {\n node = items[u];\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\n return node;\n }\n else {\n node = null;\n }\n }\n return node;\n };\n Dialog.prototype.focusableElements = function (content) {\n if (!isNullOrUndefined(content)) {\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\n var items = content.querySelectorAll(value);\n return this.getValidFocusNode(items);\n }\n return null;\n };\n Dialog.prototype.getAutoFocusNode = function (container) {\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\n var value = '[autofocus]';\n var items = container.querySelectorAll(value);\n var validNode = this.getValidFocusNode(items);\n if (isBlazor()) {\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\n }\n if (!isNullOrUndefined(validNode)) {\n node = validNode;\n }\n else {\n validNode = this.focusableElements(this.contentEle);\n if (!isNullOrUndefined(validNode)) {\n return node = validNode;\n }\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\n }\n }\n return node;\n };\n Dialog.prototype.disableElement = function (element, t) {\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\n if (elementMatch) {\n for (; element; element = element.parentNode) {\n if (element instanceof Element && elementMatch.call(element, t)) {\n /* istanbul ignore next */\n return element;\n }\n }\n }\n return null;\n };\n Dialog.prototype.focusContent = function () {\n var element = this.getAutoFocusNode(this.element);\n var node = !isNullOrUndefined(element) ? element : this.element;\n var userAgent = Browser.userAgent;\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\n this.element.focus();\n }\n node.focus();\n this.unBindEvent(this.element);\n this.bindEvent(this.element);\n };\n Dialog.prototype.bindEvent = function (element) {\n EventHandler.add(element, 'keydown', this.keyDown, this);\n };\n Dialog.prototype.unBindEvent = function (element) {\n EventHandler.remove(element, 'keydown', this.keyDown);\n };\n Dialog.prototype.updateSanitizeContent = function () {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\n }\n };\n Dialog.prototype.isBlazorServerRender = function () {\n return isBlazor() && this.isServerRendered;\n };\n /**\n * Module required function\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getModuleName = function () {\n return 'dialog';\n };\n /**\n * Called internally if any of the property value changed\n *\n * @param {DialogModel} newProp - specifies the new property\n * @param {DialogModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!isNullOrUndefined(this.content) && this.content !== '') {\n if (this.isBlazorServerRender()) {\n this.contentEle = this.element.querySelector('.e-dlg-content');\n }\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\n if (!this.isBlazorServerRender()) {\n this.contentEle.innerHTML = '';\n }\n if (typeof (this.content) === 'function') {\n this.clearTemplate(['content']);\n detach(this.contentEle);\n this.contentEle = null;\n this.setContent();\n }\n else {\n if (typeof (this.content) === 'string') {\n this.updateSanitizeContent();\n }\n else {\n this.contentEle.appendChild(this.content);\n }\n }\n this.setMaxHeight();\n }\n else {\n this.setContent();\n }\n }\n else if (!isNullOrUndefined(this.contentEle)) {\n detach(this.contentEle);\n this.contentEle = null;\n }\n break;\n case 'header':\n if (this.header === '' || isNullOrUndefined(this.header)) {\n if (this.headerEle) {\n detach(this.headerEle);\n this.headerEle = null;\n }\n }\n else {\n this.setHeader();\n }\n break;\n case 'footerTemplate':\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\n if (!this.ftrTemplateContent) {\n return;\n }\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n this.buttons = [{}];\n }\n else {\n this.setFooterTemplate();\n this.buttons = [{}];\n }\n break;\n case 'showCloseIcon':\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\n detach(this.headerContent);\n this.headerContent = null;\n }\n else if (!this.showCloseIcon) {\n detach(this.closeIcon);\n }\n }\n else {\n this.renderCloseIcon();\n this.wireEvents();\n }\n break;\n case 'locale':\n if (this.showCloseIcon) {\n this.closeIconTitle();\n }\n break;\n case 'visible':\n if (this.visible) {\n this.show();\n }\n else {\n this.hide();\n }\n break;\n case 'isModal':\n this.updateIsModal();\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n this.updatePersistData();\n break;\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n this.updatePersistData();\n break;\n case 'zIndex':\n this.popupObj.zIndex = this.zIndex;\n if (this.isModal) {\n this.setOverlayZindex(this.zIndex);\n }\n if (this.element.style.zIndex !== this.zIndex.toString()) {\n this.calculatezIndex = false;\n }\n break;\n case 'cssClass':\n this.setCSSClass(oldProp.cssClass);\n break;\n case 'buttons': {\n this.unWireButtonEvents();\n this.destroyButtons();\n if (!isNullOrUndefined(this.ftrTemplateContent)) {\n detach(this.ftrTemplateContent);\n this.ftrTemplateContent = null;\n }\n this.footerTemplate = '';\n this.setButton();\n break;\n }\n case 'allowDragging':\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n else {\n this.dragObj.destroy();\n }\n break;\n case 'target':\n this.setTarget(newProp.target);\n break;\n case 'position':\n this.checkPositionData();\n if (this.isModal) {\n var positionX = this.position.X;\n var positionY = this.position.Y;\n if (!isNullOrUndefined(oldProp.position)) {\n if (!isNullOrUndefined(oldProp.position.X)) {\n positionX = oldProp.position.X;\n }\n if (!isNullOrUndefined(oldProp.position.Y)) {\n positionY = oldProp.position.Y;\n }\n }\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\n }\n }\n this.positionChange();\n this.updatePersistData();\n break;\n case 'enableRtl':\n this.setEnableRTL();\n break;\n case 'enableResize':\n this.setResize();\n this.isModelResize = this.enableResize && this.isModal;\n if (this.enableResize && this.dialogOpen) {\n this.resetResizeIcon();\n }\n break;\n case 'minHeight':\n if (this.minHeight !== '') {\n this.element.style.minHeight = formatUnit(this.minHeight);\n }\n break;\n }\n }\n };\n Dialog.prototype.setTarget = function (target) {\n this.popupObj.relateTo = target;\n this.target = target;\n this.targetEle = ((typeof this.target) === 'string') ?\n document.querySelector(this.target) : this.target;\n if (this.dragObj) {\n this.dragObj.dragArea = this.targetEle;\n }\n this.setMaxHeight();\n if (this.isModal) {\n this.updateIsModal();\n }\n if (this.enableResize) {\n this.setResize();\n }\n if (!isNullOrUndefined(this.targetEle)) {\n if (this.isModal && !isNullOrUndefined(this.dlgContainer)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n else if (!isNullOrUndefined(this.element)) {\n this.targetEle.appendChild(this.element);\n }\n }\n };\n Dialog.prototype.updateIsModal = function () {\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\n if (this.isModal) {\n if (isNullOrUndefined(this.dlgOverlay)) {\n this.setIsModal();\n this.element.style.top = '0px';\n this.element.style.left = '0px';\n if (!isNullOrUndefined(this.targetEle)) {\n this.targetEle.appendChild(this.dlgContainer);\n }\n }\n }\n else {\n removeClass([this.element], MODAL_DLG);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n detach(this.dlgOverlay);\n while (this.dlgContainer.firstChild) {\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\n }\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\n }\n if (this.visible) {\n this.show();\n }\n this.positionChange();\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\n var prevOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n var currentzIndex = getZindexPartial(zIndexElement);\n this.zIndex = currentzIndex > this.zIndex ? currentzIndex : this.zIndex;\n this.isProtectedOnChange = prevOnChange;\n if (setPopupZindex) {\n this.popupObj.zIndex = this.zIndex;\n }\n };\n Dialog.prototype.windowResizeHandler = function () {\n setMaxWidth(this.targetEle.clientWidth);\n setMaxHeight(this.targetEle.clientHeight);\n this.setMaxHeight();\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {void}\n * @private\n */\n Dialog.prototype.getPersistData = function () {\n return this.addOnPersist(['width', 'height', 'position']);\n };\n Dialog.prototype.removeAllChildren = function (element) {\n while (element.children[0]) {\n this.removeAllChildren(element.children[0]);\n element.removeChild(element.children[0]);\n }\n };\n /**\n * To destroy the widget\n *\n * @returns {void}\n */\n Dialog.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n if (this.isModal) {\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\n }\n this.unWireEvents();\n this.unWireButtonEvents();\n this.destroyButtons();\n if (!isNullOrUndefined(this.closeIconBtnObj)) {\n this.closeIconBtnObj.destroy();\n }\n if (!isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\n this.popupObj.destroy();\n }\n removeClass([this.element], classArray);\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\n removeClass([this.element], this.cssClass.split(' '));\n }\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\n detach(this.refElement);\n this.refElement = undefined;\n }\n if (this.isModal) {\n detach(this.dlgOverlay);\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\n detach(this.dlgContainer);\n }\n this.element.innerHTML = this.clonedEle.innerHTML;\n for (var i = 0; i < attrs.length; i++) {\n this.element.removeAttribute(attrs[i]);\n }\n this.ftrTemplateContent = null;\n this.headerContent = null;\n if (!this.isReact && !this.isVue && !isNullOrUndefined(this.contentEle)) {\n this.removeAllChildren(this.contentEle);\n }\n this.contentEle = null;\n resizeDestroy();\n _super.prototype.destroy.call(this);\n // eslint-disable-next-line\n if (this.isReact) {\n this.clearTemplate();\n }\n };\n Dialog.prototype.wireWindowResizeEvent = function () {\n this.boundWindowResizeHandler = this.windowResizeHandler.bind(this);\n window.addEventListener('resize', this.boundWindowResizeHandler);\n };\n Dialog.prototype.unWireWindowResizeEvent = function () {\n window.removeEventListener('resize', this.boundWindowResizeHandler);\n this.boundWindowResizeHandler = null;\n };\n /**\n * Binding event to the element while widget creation\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.wireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\n }\n if (this.isModal && this.dlgOverlay) {\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\n }\n };\n /**\n * Unbinding event to the element while widget destroy\n *\n * @returns {void}\n * @hidden\n */\n Dialog.prototype.unWireEvents = function () {\n if (this.showCloseIcon) {\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\n }\n if (this.isModal) {\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\n }\n };\n /**\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\n *\n * @returns {void}\n */\n Dialog.prototype.refreshPosition = function () {\n this.popupObj.refreshPosition();\n if (this.element.classList.contains(MODAL_DLG)) {\n this.positionChange();\n }\n };\n /**\n * Returns the current width and height of the Dialog\n *\n * @returns {DialogDimension}- returns the dialog element Dimension.\n * @public\n */\n Dialog.prototype.getDimension = function () {\n var dialogWidth = this.element.offsetWidth;\n var dialogHeight = this.element.offsetHeight;\n return { width: dialogWidth, height: dialogHeight };\n };\n /**\n * Opens the dialog if it is in hidden state.\n * To open the dialog with full screen width, set the parameter to true.\n *\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\n * @returns {void}\n */\n Dialog.prototype.show = function (isFullScreen) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\n if (!isNullOrUndefined(isFullScreen)) {\n this.fullScreen(isFullScreen);\n }\n var eventArgs_1 = isBlazor() ? {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n maxHeight: this.element.style.maxHeight\n } : {\n cancel: false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n target: this.target,\n maxHeight: this.element.style.maxHeight\n };\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\n if (!beforeOpenArgs.cancel) {\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\n _this.allowMaxHeight = false;\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\n }\n if (_this.enableResize && _this.boundWindowResizeHandler == null && !_this.initialRender) {\n _this.wireWindowResizeEvent();\n }\n _this.storeActiveElement = document.activeElement;\n _this.element.tabIndex = -1;\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\n _this.dlgOverlay.style.display = 'block';\n _this.dlgContainer.style.display = 'flex';\n removeClass([_this.dlgOverlay], 'e-fade');\n if (!isNullOrUndefined(_this.targetEle)) {\n if (_this.targetEle === document.body) {\n _this.dlgContainer.style.position = 'fixed';\n }\n else {\n _this.dlgContainer.style.position = 'absolute';\n }\n _this.dlgOverlay.style.position = 'absolute';\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl') {\n _this.element.style.position = 'absolute';\n }\n else {\n _this.element.style.position = 'relative';\n }\n }\n else {\n _this.element.style.position = 'relative';\n }\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n else {\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n var openAnimation = {\n name: (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? 'Zoom' + 'In' : _this.animationSettings.effect + 'In',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\n if (_this.calculatezIndex) {\n _this.setzIndex(zIndexElement, true);\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\n if (_this.isModal) {\n _this.setOverlayZindex(_this.zIndex);\n }\n }\n // eslint-disable-next-line\n (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? _this.popupObj.show(openAnimation) : ((_this.animationSettings.effect === 'None') ? _this.popupObj.show() : _this.popupObj.show(openAnimation));\n if (_this.isModal) {\n var targetType = _this.getTargetContainer(_this.target);\n if (targetType instanceof Element) {\n var computedStyle = window.getComputedStyle(targetType);\n if (computedStyle.getPropertyValue('direction') === 'rtl' && !_this.IsDragStop) {\n _this.setPopupPosition();\n }\n }\n }\n _this.dialogOpen = true;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = true;\n _this.preventVisibility = true;\n _this.isProtectedOnChange = prevOnChange;\n }\n });\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n /**\n * Closes the dialog if it is in visible state.\n *\n * @param { Event } event - specifies the event\n * @returns {void}\n */\n Dialog.prototype.hide = function (event) {\n var _this = this;\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n if (this.preventVisibility) {\n var eventArgs = isBlazor() ? {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event\n } : {\n cancel: false,\n isInteracted: event ? true : false,\n element: this.element,\n target: this.target,\n container: this.isModal ? this.dlgContainer : this.element,\n event: event,\n closedBy: this.dlgClosedBy\n };\n this.closeArgs = eventArgs;\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\n if (!beforeCloseArgs.cancel) {\n if (_this.enableResize) {\n _this.unWireWindowResizeEvent();\n }\n var closeAnimation = {\n name: (_this.animationSettings.effect === 'None' && animationMode === 'Enable') ? 'Zoom' + 'Out' : _this.animationSettings.effect + 'Out',\n duration: _this.animationSettings.duration,\n delay: _this.animationSettings.delay\n };\n if (_this.animationSettings.effect === 'None' && animationMode === 'Enable') {\n _this.popupObj.hide(closeAnimation);\n }\n else if (_this.animationSettings.effect === 'None') {\n _this.popupObj.hide();\n }\n else {\n _this.popupObj.hide(closeAnimation);\n }\n setTimeout(function () {\n if (_this.isModal) {\n if (!isNullOrUndefined(_this.targetEle) && _this.targetEle.classList.contains(DLG_TARGET) &&\n _this.targetEle.classList.contains(SCROLL_DISABLED)) {\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }\n if (document.body.classList.contains(DLG_TARGET) &&\n document.body.classList.contains(SCROLL_DISABLED)) {\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n }\n }, (_this.animationSettings.duration + _this.animationSettings.delay));\n _this.dialogOpen = false;\n var prevOnChange = _this.isProtectedOnChange;\n _this.isProtectedOnChange = true;\n _this.visible = false;\n _this.preventVisibility = false;\n _this.isProtectedOnChange = prevOnChange;\n }\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\n });\n }\n };\n /**\n * Specifies to view the Full screen Dialog.\n *\n * @param {boolean} args - specifies the arguments\n * @returns {boolean} - returns the boolean value\n * @private\n */\n Dialog.prototype.fullScreen = function (args) {\n /* eslint-disable */\n var top = this.element.offsetTop;\n var left = this.element.offsetLeft;\n /* eslint-enable */\n if (args) {\n if (!this.isModal) {\n this.element.style.top = document.scrollingElement.scrollTop + 'px';\n }\n addClass([this.element], FULLSCREEN);\n var display = this.element.style.display;\n this.element.style.display = 'none';\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\n this.element.style.display = display;\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\n this.dragObj.destroy();\n }\n }\n else {\n removeClass([this.element], FULLSCREEN);\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\n this.setAllowDragging();\n }\n }\n return args;\n };\n /**\n * Returns the dialog button instances.\n * Based on that, you can dynamically change the button states.\n *\n * @param { number } index - Index of the button.\n * @returns {Button} - returns the button element\n */\n Dialog.prototype.getButtons = function (index) {\n if (!isNullOrUndefined(index)) {\n return this.btnObj[index];\n }\n return this.btnObj;\n };\n Dialog.prototype.unWireButtonEvents = function () {\n if (this.buttons.length > 0 && this.footerTemplate === '' && this.ftrTemplateContent) {\n for (var i = 0; i < this.buttons.length; i++) {\n if (this.buttons[i].click && typeof (this.buttons[i].click) === 'function'\n && this.ftrTemplateContent.children[i]) {\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\n }\n }\n }\n };\n Dialog.prototype.destroyButtons = function () {\n if (!isNullOrUndefined(this.btnObj)) {\n for (var i = 0; i < this.btnObj.length; i++) {\n if (this.btnObj[i] && !this.btnObj[i].isDestroyed) {\n this.btnObj[i].destroy();\n }\n }\n }\n };\n __decorate([\n Property('')\n ], Dialog.prototype, \"content\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"showCloseIcon\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"isModal\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"enableResize\", void 0);\n __decorate([\n Property(['South-East'])\n ], Dialog.prototype, \"resizeHandles\", void 0);\n __decorate([\n Property('auto')\n ], Dialog.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"minHeight\", void 0);\n __decorate([\n Property('100%')\n ], Dialog.prototype, \"width\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"cssClass\", void 0);\n __decorate([\n Property(1000)\n ], Dialog.prototype, \"zIndex\", void 0);\n __decorate([\n Property(null)\n ], Dialog.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], Dialog.prototype, \"footerTemplate\", void 0);\n __decorate([\n Property(false)\n ], Dialog.prototype, \"allowDragging\", void 0);\n __decorate([\n Collection([{}], ButtonProps)\n ], Dialog.prototype, \"buttons\", void 0);\n __decorate([\n Property(true)\n ], Dialog.prototype, \"closeOnEscape\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], Dialog.prototype, \"animationSettings\", void 0);\n __decorate([\n Complex({ X: 'center', Y: 'center' }, PositionData)\n ], Dialog.prototype, \"position\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"dragStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"overlayClick\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Dialog.prototype, \"destroyed\", void 0);\n Dialog = __decorate([\n NotifyPropertyChanges\n ], Dialog);\n return Dialog;\n}(Component));\nexport { Dialog };\n/**\n * Base for creating Alert and Confirmation Dialog through util method.\n */\n// eslint-disable-next-line\nexport var DialogUtility;\n(function (DialogUtility) {\n /**\n * An alert dialog box is used to display warning like messages to the users.\n * ```\n * Eg : DialogUtility.alert('Alert message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {AlertDialogArgs} args - specifies the string\n * @returns {Dialog} - returns the dialog element.\n */\n function alert(args) {\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\n document.body.appendChild(dialogElement);\n var alertDialogObj;\n var okButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n alertDialogObj = createDialog({ content: args,\n position: { X: 'center', Y: 'top' },\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\n buttons: okButtonModel }, dialogElement);\n }\n else {\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\n }\n alertDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(alertDialogObj);\n }\n alertDialogObj.destroy();\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\n alertDialogObj.element.parentElement.remove();\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n alertDialogObj.element.remove();\n }\n };\n return alertDialogObj;\n }\n DialogUtility.alert = alert;\n /**\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\n * ```\n * Eg : DialogUtility.confirm('Confirm dialog message');\n *\n * ```\n */\n /* istanbul ignore next */\n /**\n *\n * @param {ConfirmDialogArgs} args - specifies the args\n * @returns {Dialog} - returns te element\n */\n function confirm(args) {\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\n document.body.appendChild(dialogElement);\n var confirmDialogObj;\n var okCancelButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }, {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n }];\n if (typeof (args) === 'string') {\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\n }, dialogElement);\n }\n else {\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\n }\n confirmDialogObj.close = function () {\n if (args && args.close) {\n args.close.apply(confirmDialogObj);\n }\n confirmDialogObj.destroy();\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\n confirmDialogObj.element.parentElement.remove();\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\n }\n else {\n confirmDialogObj.element.remove();\n }\n };\n return confirmDialogObj;\n }\n DialogUtility.confirm = confirm;\n // eslint-disable-next-line\n function createDialog(options, element) {\n var dialogObject = new Dialog(options);\n dialogObject.appendTo(element);\n return dialogObject;\n }\n // eslint-disable-next-line\n function alertOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setAlertButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function confirmOptions(option) {\n var options = {};\n options.buttons = [];\n options = formOptions(options, option);\n options = setConfirmButtonModel(options, option);\n return options;\n }\n // eslint-disable-next-line\n function formOptions(options, option) {\n options.header = !isNullOrUndefined(option.title) ? option.title : null;\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\n { effect: 'Fade', duration: 400, delay: 0 };\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\n options.width = !isNullOrUndefined(option.width) ? option.width : 'auto';\n options.height = !isNullOrUndefined(option.height) ? option.height : 'auto';\n return options;\n }\n // eslint-disable-next-line\n function setAlertButtonModel(options, option) {\n var alertButtonModel = [{\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n }];\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\n }\n else {\n options.buttons = alertButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function setConfirmButtonModel(options, option) {\n var okButtonModel = {\n buttonModel: { isPrimary: true, content: 'OK' },\n click: function () {\n this.hide();\n }\n };\n var cancelButtonModel = {\n buttonModel: { content: 'Cancel' },\n click: function () {\n this.hide();\n }\n };\n if (!isNullOrUndefined(option.okButton)) {\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\n }\n else {\n options.buttons[0] = okButtonModel;\n }\n if (!isNullOrUndefined(option.cancelButton)) {\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\n }\n else {\n options.buttons[1] = cancelButtonModel;\n }\n return options;\n }\n // eslint-disable-next-line\n function formButtonModel(buttonModel, option, buttonPropModel) {\n var buttonProps = buttonPropModel;\n if (!isNullOrUndefined(option.text)) {\n buttonProps.buttonModel.content = option.text;\n }\n if (!isNullOrUndefined(option.icon)) {\n buttonProps.buttonModel.iconCss = option.icon;\n }\n if (!isNullOrUndefined(option.cssClass)) {\n buttonProps.buttonModel.cssClass = option.cssClass;\n }\n if (!isNullOrUndefined(option.click)) {\n buttonProps.click = option.click;\n }\n if (!isNullOrUndefined(option.isFlat)) {\n buttonProps.isFlat = option.isFlat;\n }\n return buttonProps;\n }\n})(DialogUtility || (DialogUtility = {}));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || !!aPath.match(urlRegexp);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = mappingA.source - mappingB.source;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return mappingA.name - mappingB.name;\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function countEOL(text) {\n let eolCount = 0;\n let firstLineLength = 0;\n let lastLineStart = 0;\n let eol = 0 /* StringEOL.Unknown */;\n for (let i = 0, len = text.length; i < len; i++) {\n const chr = text.charCodeAt(i);\n if (chr === 13 /* CharCode.CarriageReturn */) {\n if (eolCount === 0) {\n firstLineLength = i;\n }\n eolCount++;\n if (i + 1 < len && text.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n // \\r\\n... case\n eol |= 2 /* StringEOL.CRLF */;\n i++; // skip \\n\n }\n else {\n // \\r... case\n eol |= 3 /* StringEOL.Invalid */;\n }\n lastLineStart = i + 1;\n }\n else if (chr === 10 /* CharCode.LineFeed */) {\n // \\n... case\n eol |= 1 /* StringEOL.LF */;\n if (eolCount === 0) {\n firstLineLength = i;\n }\n eolCount++;\n lastLineStart = i + 1;\n }\n }\n if (eolCount === 0) {\n firstLineLength = text.length;\n }\n return [eolCount, firstLineLength, text.length - lastLineStart, eol];\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n anObject(this);\n aCallable(fn);\n var record = getIteratorDirect(this);\n var counter = 0;\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/abap/abap.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"abap\",\n extensions: [\".abap\"],\n aliases: [\"abap\", \"ABAP\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/abap/abap\"], resolve, reject);\n });\n } else {\n return import(\"./abap.js\");\n }\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// allow-any-unicode-comment-file\n/**\n * Gets alternative Korean characters for the character code. This will return the ascii\n * character code(s) that a Hangul character may have been input with using a qwerty layout.\n *\n * This only aims to cover modern (not archaic) Hangul syllables.\n *\n * @param code The character code to get alternate characters for\n */\nexport function getKoreanAltChars(code) {\n const result = disassembleKorean(code);\n if (result && result.length > 0) {\n return new Uint32Array(result);\n }\n return undefined;\n}\nlet codeBufferLength = 0;\nconst codeBuffer = new Uint32Array(10);\nfunction disassembleKorean(code) {\n codeBufferLength = 0;\n // Initial consonants (초성)\n getCodesFromArray(code, modernConsonants, 4352 /* HangulRangeStartCode.InitialConsonant */);\n if (codeBufferLength > 0) {\n return codeBuffer.subarray(0, codeBufferLength);\n }\n // Vowels (중성)\n getCodesFromArray(code, modernVowels, 4449 /* HangulRangeStartCode.Vowel */);\n if (codeBufferLength > 0) {\n return codeBuffer.subarray(0, codeBufferLength);\n }\n // Final consonants (종성)\n getCodesFromArray(code, modernFinalConsonants, 4520 /* HangulRangeStartCode.FinalConsonant */);\n if (codeBufferLength > 0) {\n return codeBuffer.subarray(0, codeBufferLength);\n }\n // Hangul Compatibility Jamo\n getCodesFromArray(code, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n if (codeBufferLength) {\n return codeBuffer.subarray(0, codeBufferLength);\n }\n // Hangul Syllables\n if (code >= 0xAC00 && code <= 0xD7A3) {\n const hangulIndex = code - 0xAC00;\n const vowelAndFinalConsonantProduct = hangulIndex % 588;\n // 0-based starting at 0x1100\n const initialConsonantIndex = Math.floor(hangulIndex / 588);\n // 0-based starting at 0x1161\n const vowelIndex = Math.floor(vowelAndFinalConsonantProduct / 28);\n // 0-based starting at 0x11A8\n // Subtract 1 as the standard algorithm uses the 0 index to represent no\n // final consonant\n const finalConsonantIndex = vowelAndFinalConsonantProduct % 28 - 1;\n if (initialConsonantIndex < modernConsonants.length) {\n getCodesFromArray(initialConsonantIndex, modernConsonants, 0);\n }\n else if (4352 /* HangulRangeStartCode.InitialConsonant */ + initialConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n getCodesFromArray(4352 /* HangulRangeStartCode.InitialConsonant */ + initialConsonantIndex, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n }\n if (vowelIndex < modernVowels.length) {\n getCodesFromArray(vowelIndex, modernVowels, 0);\n }\n else if (4449 /* HangulRangeStartCode.Vowel */ + vowelIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n getCodesFromArray(4449 /* HangulRangeStartCode.Vowel */ + vowelIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n }\n if (finalConsonantIndex >= 0) {\n if (finalConsonantIndex < modernFinalConsonants.length) {\n getCodesFromArray(finalConsonantIndex, modernFinalConsonants, 0);\n }\n else if (4520 /* HangulRangeStartCode.FinalConsonant */ + finalConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */ < compatibilityJamo.length) {\n getCodesFromArray(4520 /* HangulRangeStartCode.FinalConsonant */ + finalConsonantIndex - 12593 /* HangulRangeStartCode.CompatibilityJamo */, compatibilityJamo, 12593 /* HangulRangeStartCode.CompatibilityJamo */);\n }\n }\n if (codeBufferLength > 0) {\n return codeBuffer.subarray(0, codeBufferLength);\n }\n }\n return undefined;\n}\nfunction getCodesFromArray(code, array, arrayStartIndex) {\n // Verify the code is within the array's range\n if (code >= arrayStartIndex && code < arrayStartIndex + array.length) {\n addCodesToBuffer(array[code - arrayStartIndex]);\n }\n}\nfunction addCodesToBuffer(codes) {\n // NUL is ignored, this is used for archaic characters to avoid using a Map\n // for the data\n if (codes === 0 /* AsciiCode.NUL */) {\n return;\n }\n // Number stored in format: OptionalThirdCode << 16 | OptionalSecondCode << 8 | Code\n codeBuffer[codeBufferLength++] = codes & 0xFF;\n if (codes >> 8) {\n codeBuffer[codeBufferLength++] = (codes >> 8) & 0xFF;\n }\n if (codes >> 16) {\n codeBuffer[codeBufferLength++] = (codes >> 16) & 0xFF;\n }\n}\n/**\n * Hangul Jamo - Modern consonants #1\n *\n * Range U+1100..U+1112\n *\n * | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+110x | ᄀ | ᄁ | ᄂ | ᄃ | ᄄ | ᄅ | ᄆ | ᄇ | ᄈ | ᄉ | ᄊ | ᄋ | ᄌ | ᄍ | ᄎ | ᄏ |\n * | U+111x | ᄐ | ᄑ | ᄒ |\n */\nconst modernConsonants = new Uint8Array([\n 114 /* AsciiCode.r */, // ㄱ\n 82 /* AsciiCode.R */, // ㄲ\n 115 /* AsciiCode.s */, // ㄴ\n 101 /* AsciiCode.e */, // ㄷ\n 69 /* AsciiCode.E */, // ㄸ\n 102 /* AsciiCode.f */, // ㄹ\n 97 /* AsciiCode.a */, // ㅁ\n 113 /* AsciiCode.q */, // ㅂ\n 81 /* AsciiCode.Q */, // ㅃ\n 116 /* AsciiCode.t */, // ㅅ\n 84 /* AsciiCode.T */, // ㅆ\n 100 /* AsciiCode.d */, // ㅇ\n 119 /* AsciiCode.w */, // ㅈ\n 87 /* AsciiCode.W */, // ㅉ\n 99 /* AsciiCode.c */, // ㅊ\n 122 /* AsciiCode.z */, // ㅋ\n 120 /* AsciiCode.x */, // ㅌ\n 118 /* AsciiCode.v */, // ㅍ\n 103 /* AsciiCode.g */, // ㅎ\n]);\n/**\n * Hangul Jamo - Modern Vowels\n *\n * Range U+1161..U+1175\n *\n * | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+116x | | ᅡ | ᅢ | ᅣ | ᅤ | ᅥ | ᅦ | ᅧ | ᅨ | ᅩ | ᅪ | ᅫ | ᅬ | ᅭ | ᅮ | ᅯ |\n * | U+117x | ᅰ | ᅱ | ᅲ | ᅳ | ᅴ | ᅵ |\n */\nconst modernVowels = new Uint16Array([\n 107 /* AsciiCode.k */, // -> ㅏ\n 111 /* AsciiCode.o */, // -> ㅐ\n 105 /* AsciiCode.i */, // -> ㅑ\n 79 /* AsciiCode.O */, // -> ㅒ\n 106 /* AsciiCode.j */, // -> ㅓ\n 112 /* AsciiCode.p */, // -> ㅔ\n 117 /* AsciiCode.u */, // -> ㅕ\n 80 /* AsciiCode.P */, // -> ㅖ\n 104 /* AsciiCode.h */, // -> ㅗ\n 27496 /* AsciiCodeCombo.hk */, // -> ㅘ\n 28520 /* AsciiCodeCombo.ho */, // -> ㅙ\n 27752 /* AsciiCodeCombo.hl */, // -> ㅚ\n 121 /* AsciiCode.y */, // -> ㅛ\n 110 /* AsciiCode.n */, // -> ㅜ\n 27246 /* AsciiCodeCombo.nj */, // -> ㅝ\n 28782 /* AsciiCodeCombo.np */, // -> ㅞ\n 27758 /* AsciiCodeCombo.nl */, // -> ㅟ\n 98 /* AsciiCode.b */, // -> ㅠ\n 109 /* AsciiCode.m */, // -> ㅡ\n 27757 /* AsciiCodeCombo.ml */, // -> ㅢ\n 108 /* AsciiCode.l */, // -> ㅣ\n]);\n/**\n * Hangul Jamo - Modern Consonants #2\n *\n * Range U+11A8..U+11C2\n *\n * | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+11Ax | | | | | | | | | ᆨ | ᆩ | ᆪ | ᆫ | ᆬ | ᆭ | ᆮ | ᆯ |\n * | U+11Bx | ᆰ | ᆱ | ᆲ | ᆳ | ᆴ | ᆵ | ᆶ | ᆷ | ᆸ | ᆹ | ᆺ | ᆻ | ᆼ | ᆽ | ᆾ | ᆿ |\n * | U+11Cx | ᇀ | ᇁ | ᇂ |\n */\nconst modernFinalConsonants = new Uint16Array([\n 114 /* AsciiCode.r */, // ㄱ\n 82 /* AsciiCode.R */, // ㄲ\n 29810 /* AsciiCodeCombo.rt */, // ㄳ\n 115 /* AsciiCode.s */, // ㄴ\n 30579 /* AsciiCodeCombo.sw */, // ㄵ\n 26483 /* AsciiCodeCombo.sg */, // ㄶ\n 101 /* AsciiCode.e */, // ㄷ\n 102 /* AsciiCode.f */, // ㄹ\n 29286 /* AsciiCodeCombo.fr */, // ㄺ\n 24934 /* AsciiCodeCombo.fa */, // ㄻ\n 29030 /* AsciiCodeCombo.fq */, // ㄼ\n 29798 /* AsciiCodeCombo.ft */, // ㄽ\n 30822 /* AsciiCodeCombo.fx */, // ㄾ\n 30310 /* AsciiCodeCombo.fv */, // ㄿ\n 26470 /* AsciiCodeCombo.fg */, // ㅀ\n 97 /* AsciiCode.a */, // ㅁ\n 113 /* AsciiCode.q */, // ㅂ\n 29809 /* AsciiCodeCombo.qt */, // ㅄ\n 116 /* AsciiCode.t */, // ㅅ\n 84 /* AsciiCode.T */, // ㅆ\n 100 /* AsciiCode.d */, // ㅇ\n 119 /* AsciiCode.w */, // ㅈ\n 99 /* AsciiCode.c */, // ㅊ\n 122 /* AsciiCode.z */, // ㅋ\n 120 /* AsciiCode.x */, // ㅌ\n 118 /* AsciiCode.v */, // ㅍ\n 103 /* AsciiCode.g */, // ㅎ\n]);\n/**\n * Hangul Compatibility Jamo\n *\n * Range U+3131..U+318F\n *\n * This includes range includes archaic jamo which we don't consider, these are\n * given the NUL character code in order to be ignored.\n *\n * | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |\n * |--------|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n * | U+313x | | ㄱ | ㄲ | ㄳ | ㄴ | ㄵ | ㄶ | ㄷ | ㄸ | ㄹ | ㄺ | ㄻ | ㄼ | ㄽ | ㄾ | ㄿ |\n * | U+314x | ㅀ | ㅁ | ㅂ | ㅃ | ㅄ | ㅅ | ㅆ | ㅇ | ㅈ | ㅉ | ㅊ | ㅋ | ㅌ | ㅍ | ㅎ | ㅏ |\n * | U+315x | ㅐ | ㅑ | ㅒ | ㅓ | ㅔ | ㅕ | ㅖ | ㅗ | ㅘ | ㅙ | ㅚ | ㅛ | ㅜ | ㅝ | ㅞ | ㅟ |\n * | U+316x | ㅠ | ㅡ | ㅢ | ㅣ | HF | ㅥ | ㅦ | ㅧ | ㅨ | ㅩ | ㅪ | ㅫ | ㅬ | ㅭ | ㅮ | ㅯ |\n * | U+317x | ㅰ | ㅱ | ㅲ | ㅳ | ㅴ | ㅵ | ㅶ | ㅷ | ㅸ | ㅹ | ㅺ | ㅻ | ㅼ | ㅽ | ㅾ | ㅿ |\n * | U+318x | ㆀ | ㆁ | ㆂ | ㆃ | ㆄ | ㆅ | ㆆ | ㆇ | ㆈ | ㆉ | ㆊ | ㆋ | ㆌ | ㆍ | ㆎ |\n */\nconst compatibilityJamo = new Uint16Array([\n 114 /* AsciiCode.r */, // ㄱ\n 82 /* AsciiCode.R */, // ㄲ\n 29810 /* AsciiCodeCombo.rt */, // ㄳ\n 115 /* AsciiCode.s */, // ㄴ\n 30579 /* AsciiCodeCombo.sw */, // ㄵ\n 26483 /* AsciiCodeCombo.sg */, // ㄶ\n 101 /* AsciiCode.e */, // ㄷ\n 69 /* AsciiCode.E */, // ㄸ\n 102 /* AsciiCode.f */, // ㄹ\n 29286 /* AsciiCodeCombo.fr */, // ㄺ\n 24934 /* AsciiCodeCombo.fa */, // ㄻ\n 29030 /* AsciiCodeCombo.fq */, // ㄼ\n 29798 /* AsciiCodeCombo.ft */, // ㄽ\n 30822 /* AsciiCodeCombo.fx */, // ㄾ\n 30310 /* AsciiCodeCombo.fv */, // ㄿ\n 26470 /* AsciiCodeCombo.fg */, // ㅀ\n 97 /* AsciiCode.a */, // ㅁ\n 113 /* AsciiCode.q */, // ㅂ\n 81 /* AsciiCode.Q */, // ㅃ\n 29809 /* AsciiCodeCombo.qt */, // ㅄ\n 116 /* AsciiCode.t */, // ㅅ\n 84 /* AsciiCode.T */, // ㅆ\n 100 /* AsciiCode.d */, // ㅇ\n 119 /* AsciiCode.w */, // ㅈ\n 87 /* AsciiCode.W */, // ㅉ\n 99 /* AsciiCode.c */, // ㅊ\n 122 /* AsciiCode.z */, // ㅋ\n 120 /* AsciiCode.x */, // ㅌ\n 118 /* AsciiCode.v */, // ㅍ\n 103 /* AsciiCode.g */, // ㅎ\n 107 /* AsciiCode.k */, // ㅏ\n 111 /* AsciiCode.o */, // ㅐ\n 105 /* AsciiCode.i */, // ㅑ\n 79 /* AsciiCode.O */, // ㅒ\n 106 /* AsciiCode.j */, // ㅓ\n 112 /* AsciiCode.p */, // ㅔ\n 117 /* AsciiCode.u */, // ㅕ\n 80 /* AsciiCode.P */, // ㅖ\n 104 /* AsciiCode.h */, // ㅗ\n 27496 /* AsciiCodeCombo.hk */, // ㅘ\n 28520 /* AsciiCodeCombo.ho */, // ㅙ\n 27752 /* AsciiCodeCombo.hl */, // ㅚ\n 121 /* AsciiCode.y */, // ㅛ\n 110 /* AsciiCode.n */, // ㅜ\n 27246 /* AsciiCodeCombo.nj */, // ㅝ\n 28782 /* AsciiCodeCombo.np */, // ㅞ\n 27758 /* AsciiCodeCombo.nl */, // ㅟ\n 98 /* AsciiCode.b */, // ㅠ\n 109 /* AsciiCode.m */, // ㅡ\n 27757 /* AsciiCodeCombo.ml */, // ㅢ\n 108 /* AsciiCode.l */, // ㅣ\n // HF: Hangul Filler (everything after this is archaic)\n // ㅥ\n // ㅦ\n // ㅧ\n // ㅨ\n // ㅩ\n // ㅪ\n // ㅫ\n // ㅬ\n // ㅮ\n // ㅯ\n // ㅰ\n // ㅱ\n // ㅲ\n // ㅳ\n // ㅴ\n // ㅵ\n // ㅶ\n // ㅷ\n // ㅸ\n // ㅹ\n // ㅺ\n // ㅻ\n // ㅼ\n // ㅽ\n // ㅾ\n // ㅿ\n // ㆀ\n // ㆁ\n // ㆂ\n // ㆃ\n // ㆄ\n // ㆅ\n // ㆆ\n // ㆇ\n // ㆈ\n // ㆉ\n // ㆊ\n // ㆋ\n // ㆌ\n // ㆍ\n // ㆎ\n]);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LRUCache } from './map.js';\nimport { getKoreanAltChars } from './naturalLanguage/korean.js';\nimport * as strings from './strings.js';\n// Combined filters\n/**\n * @returns A filter which combines the provided set\n * of filters with an or. The *first* filters that\n * matches defined the return value of the returned\n * filter.\n */\nexport function or(...filter) {\n return function (word, wordToMatchAgainst) {\n for (let i = 0, len = filter.length; i < len; i++) {\n const match = filter[i](word, wordToMatchAgainst);\n if (match) {\n return match;\n }\n }\n return null;\n };\n}\n// Prefix\nexport const matchesStrictPrefix = _matchesPrefix.bind(undefined, false);\nexport const matchesPrefix = _matchesPrefix.bind(undefined, true);\nfunction _matchesPrefix(ignoreCase, word, wordToMatchAgainst) {\n if (!wordToMatchAgainst || wordToMatchAgainst.length < word.length) {\n return null;\n }\n let matches;\n if (ignoreCase) {\n matches = strings.startsWithIgnoreCase(wordToMatchAgainst, word);\n }\n else {\n matches = wordToMatchAgainst.indexOf(word) === 0;\n }\n if (!matches) {\n return null;\n }\n return word.length > 0 ? [{ start: 0, end: word.length }] : [];\n}\n// Contiguous Substring\nexport function matchesContiguousSubString(word, wordToMatchAgainst) {\n const index = wordToMatchAgainst.toLowerCase().indexOf(word.toLowerCase());\n if (index === -1) {\n return null;\n }\n return [{ start: index, end: index + word.length }];\n}\n// Substring\nexport function matchesSubString(word, wordToMatchAgainst) {\n return _matchesSubString(word.toLowerCase(), wordToMatchAgainst.toLowerCase(), 0, 0);\n}\nfunction _matchesSubString(word, wordToMatchAgainst, i, j) {\n if (i === word.length) {\n return [];\n }\n else if (j === wordToMatchAgainst.length) {\n return null;\n }\n else {\n if (word[i] === wordToMatchAgainst[j]) {\n let result = null;\n if (result = _matchesSubString(word, wordToMatchAgainst, i + 1, j + 1)) {\n return join({ start: j, end: j + 1 }, result);\n }\n return null;\n }\n return _matchesSubString(word, wordToMatchAgainst, i, j + 1);\n }\n}\n// CamelCase\nfunction isLower(code) {\n return 97 /* CharCode.a */ <= code && code <= 122 /* CharCode.z */;\n}\nexport function isUpper(code) {\n return 65 /* CharCode.A */ <= code && code <= 90 /* CharCode.Z */;\n}\nfunction isNumber(code) {\n return 48 /* CharCode.Digit0 */ <= code && code <= 57 /* CharCode.Digit9 */;\n}\nfunction isWhitespace(code) {\n return (code === 32 /* CharCode.Space */\n || code === 9 /* CharCode.Tab */\n || code === 10 /* CharCode.LineFeed */\n || code === 13 /* CharCode.CarriageReturn */);\n}\nconst wordSeparators = new Set();\n// These are chosen as natural word separators based on writen text.\n// It is a subset of the word separators used by the monaco editor.\n'()[]{}<>`\\'\"-/;:,.?!'\n .split('')\n .forEach(s => wordSeparators.add(s.charCodeAt(0)));\nfunction isWordSeparator(code) {\n return isWhitespace(code) || wordSeparators.has(code);\n}\nfunction charactersMatch(codeA, codeB) {\n return (codeA === codeB) || (isWordSeparator(codeA) && isWordSeparator(codeB));\n}\nconst alternateCharsCache = new Map();\n/**\n * Gets alternative codes to the character code passed in. This comes in the\n * form of an array of character codes, all of which must match _in order_ to\n * successfully match.\n *\n * @param code The character code to check.\n */\nfunction getAlternateCodes(code) {\n if (alternateCharsCache.has(code)) {\n return alternateCharsCache.get(code);\n }\n // NOTE: This function is written in such a way that it can be extended in\n // the future, but right now the return type takes into account it's only\n // supported by a single \"alt codes provider\".\n // `ArrayLike>` is a more appropriate type if changed.\n let result;\n const codes = getKoreanAltChars(code);\n if (codes) {\n result = codes;\n }\n alternateCharsCache.set(code, result);\n return result;\n}\nfunction isAlphanumeric(code) {\n return isLower(code) || isUpper(code) || isNumber(code);\n}\nfunction join(head, tail) {\n if (tail.length === 0) {\n tail = [head];\n }\n else if (head.end === tail[0].start) {\n tail[0].start = head.start;\n }\n else {\n tail.unshift(head);\n }\n return tail;\n}\nfunction nextAnchor(camelCaseWord, start) {\n for (let i = start; i < camelCaseWord.length; i++) {\n const c = camelCaseWord.charCodeAt(i);\n if (isUpper(c) || isNumber(c) || (i > 0 && !isAlphanumeric(camelCaseWord.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return camelCaseWord.length;\n}\nfunction _matchesCamelCase(word, camelCaseWord, i, j) {\n if (i === word.length) {\n return [];\n }\n else if (j === camelCaseWord.length) {\n return null;\n }\n else if (word[i] !== camelCaseWord[j].toLowerCase()) {\n return null;\n }\n else {\n let result = null;\n let nextUpperIndex = j + 1;\n result = _matchesCamelCase(word, camelCaseWord, i + 1, j + 1);\n while (!result && (nextUpperIndex = nextAnchor(camelCaseWord, nextUpperIndex)) < camelCaseWord.length) {\n result = _matchesCamelCase(word, camelCaseWord, i + 1, nextUpperIndex);\n nextUpperIndex++;\n }\n return result === null ? null : join({ start: j, end: j + 1 }, result);\n }\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camelCaseWords.\nfunction analyzeCamelCaseWord(word) {\n let upper = 0, lower = 0, alpha = 0, numeric = 0, code = 0;\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n if (isUpper(code)) {\n upper++;\n }\n if (isLower(code)) {\n lower++;\n }\n if (isAlphanumeric(code)) {\n alpha++;\n }\n if (isNumber(code)) {\n numeric++;\n }\n }\n const upperPercent = upper / word.length;\n const lowerPercent = lower / word.length;\n const alphaPercent = alpha / word.length;\n const numericPercent = numeric / word.length;\n return { upperPercent, lowerPercent, alphaPercent, numericPercent };\n}\nfunction isUpperCaseWord(analysis) {\n const { upperPercent, lowerPercent } = analysis;\n return lowerPercent === 0 && upperPercent > 0.6;\n}\nfunction isCamelCaseWord(analysis) {\n const { upperPercent, lowerPercent, alphaPercent, numericPercent } = analysis;\n return lowerPercent > 0.2 && upperPercent < 0.8 && alphaPercent > 0.6 && numericPercent < 0.2;\n}\n// Heuristic to avoid computing camel case matcher for words that don't\n// look like camel case patterns.\nfunction isCamelCasePattern(word) {\n let upper = 0, lower = 0, code = 0, whitespace = 0;\n for (let i = 0; i < word.length; i++) {\n code = word.charCodeAt(i);\n if (isUpper(code)) {\n upper++;\n }\n if (isLower(code)) {\n lower++;\n }\n if (isWhitespace(code)) {\n whitespace++;\n }\n }\n if ((upper === 0 || lower === 0) && whitespace === 0) {\n return word.length <= 30;\n }\n else {\n return upper <= 5;\n }\n}\nexport function matchesCamelCase(word, camelCaseWord) {\n if (!camelCaseWord) {\n return null;\n }\n camelCaseWord = camelCaseWord.trim();\n if (camelCaseWord.length === 0) {\n return null;\n }\n if (!isCamelCasePattern(word)) {\n return null;\n }\n // TODO: Consider removing this check\n if (camelCaseWord.length > 60) {\n camelCaseWord = camelCaseWord.substring(0, 60);\n }\n const analysis = analyzeCamelCaseWord(camelCaseWord);\n if (!isCamelCaseWord(analysis)) {\n if (!isUpperCaseWord(analysis)) {\n return null;\n }\n camelCaseWord = camelCaseWord.toLowerCase();\n }\n let result = null;\n let i = 0;\n word = word.toLowerCase();\n while (i < camelCaseWord.length && (result = _matchesCamelCase(word, camelCaseWord, 0, i)) === null) {\n i = nextAnchor(camelCaseWord, i + 1);\n }\n return result;\n}\n// Matches beginning of words supporting non-ASCII languages\n// If `contiguous` is true then matches word with beginnings of the words in the target. E.g. \"pul\" will match \"Git: Pull\"\n// Otherwise also matches sub string of the word with beginnings of the words in the target. E.g. \"gp\" or \"g p\" will match \"Git: Pull\"\n// Useful in cases where the target is words (e.g. command labels)\nexport function matchesWords(word, target, contiguous = false) {\n if (!target || target.length === 0) {\n return null;\n }\n let result = null;\n let targetIndex = 0;\n word = word.toLowerCase();\n target = target.toLowerCase();\n while (targetIndex < target.length) {\n result = _matchesWords(word, target, 0, targetIndex, contiguous);\n if (result !== null) {\n break;\n }\n targetIndex = nextWord(target, targetIndex + 1);\n }\n return result;\n}\nfunction _matchesWords(word, target, wordIndex, targetIndex, contiguous) {\n let targetIndexOffset = 0;\n if (wordIndex === word.length) {\n return [];\n }\n else if (targetIndex === target.length) {\n return null;\n }\n else if (!charactersMatch(word.charCodeAt(wordIndex), target.charCodeAt(targetIndex))) {\n // Verify alternate characters before exiting\n const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n if (!altChars) {\n return null;\n }\n for (let k = 0; k < altChars.length; k++) {\n if (!charactersMatch(altChars[k], target.charCodeAt(targetIndex + k))) {\n return null;\n }\n }\n targetIndexOffset += altChars.length - 1;\n }\n let result = null;\n let nextWordIndex = targetIndex + targetIndexOffset + 1;\n result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n if (!contiguous) {\n while (!result && (nextWordIndex = nextWord(target, nextWordIndex)) < target.length) {\n result = _matchesWords(word, target, wordIndex + 1, nextWordIndex, contiguous);\n nextWordIndex++;\n }\n }\n if (!result) {\n return null;\n }\n // If the characters don't exactly match, then they must be word separators (see charactersMatch(...)).\n // We don't want to include this in the matches but we don't want to throw the target out all together so we return `result`.\n if (word.charCodeAt(wordIndex) !== target.charCodeAt(targetIndex)) {\n // Verify alternate characters before exiting\n const altChars = getAlternateCodes(word.charCodeAt(wordIndex));\n if (!altChars) {\n return result;\n }\n for (let k = 0; k < altChars.length; k++) {\n if (altChars[k] !== target.charCodeAt(targetIndex + k)) {\n return result;\n }\n }\n }\n return join({ start: targetIndex, end: targetIndex + targetIndexOffset + 1 }, result);\n}\nfunction nextWord(word, start) {\n for (let i = start; i < word.length; i++) {\n if (isWordSeparator(word.charCodeAt(i)) ||\n (i > 0 && isWordSeparator(word.charCodeAt(i - 1)))) {\n return i;\n }\n }\n return word.length;\n}\n// Fuzzy\nconst fuzzyContiguousFilter = or(matchesPrefix, matchesCamelCase, matchesContiguousSubString);\nconst fuzzySeparateFilter = or(matchesPrefix, matchesCamelCase, matchesSubString);\nconst fuzzyRegExpCache = new LRUCache(10000); // bounded to 10000 elements\nexport function matchesFuzzy(word, wordToMatchAgainst, enableSeparateSubstringMatching = false) {\n if (typeof word !== 'string' || typeof wordToMatchAgainst !== 'string') {\n return null; // return early for invalid input\n }\n // Form RegExp for wildcard matches\n let regexp = fuzzyRegExpCache.get(word);\n if (!regexp) {\n regexp = new RegExp(strings.convertSimple2RegExpPattern(word), 'i');\n fuzzyRegExpCache.set(word, regexp);\n }\n // RegExp Filter\n const match = regexp.exec(wordToMatchAgainst);\n if (match) {\n return [{ start: match.index, end: match.index + match[0].length }];\n }\n // Default Filter\n return enableSeparateSubstringMatching ? fuzzySeparateFilter(word, wordToMatchAgainst) : fuzzyContiguousFilter(word, wordToMatchAgainst);\n}\n/**\n * Match pattern against word in a fuzzy way. As in IntelliSense and faster and more\n * powerful than `matchesFuzzy`\n */\nexport function matchesFuzzy2(pattern, word) {\n const score = fuzzyScore(pattern, pattern.toLowerCase(), 0, word, word.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n return score ? createMatches(score) : null;\n}\nexport function anyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos) {\n const max = Math.min(13, pattern.length);\n for (; patternPos < max; patternPos++) {\n const result = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, { firstMatchCanBeWeak: true, boostFullMatch: true });\n if (result) {\n return result;\n }\n }\n return [0, wordPos];\n}\n//#region --- fuzzyScore ---\nexport function createMatches(score) {\n if (typeof score === 'undefined') {\n return [];\n }\n const res = [];\n const wordPos = score[1];\n for (let i = score.length - 1; i > 1; i--) {\n const pos = score[i] + wordPos;\n const last = res[res.length - 1];\n if (last && last.end === pos) {\n last.end = pos + 1;\n }\n else {\n res.push({ start: pos, end: pos + 1 });\n }\n }\n return res;\n}\nconst _maxLen = 128;\nfunction initTable() {\n const table = [];\n const row = [];\n for (let i = 0; i <= _maxLen; i++) {\n row[i] = 0;\n }\n for (let i = 0; i <= _maxLen; i++) {\n table.push(row.slice(0));\n }\n return table;\n}\nfunction initArr(maxLen) {\n const row = [];\n for (let i = 0; i <= maxLen; i++) {\n row[i] = 0;\n }\n return row;\n}\nconst _minWordMatchPos = initArr(2 * _maxLen); // min word position for a certain pattern position\nconst _maxWordMatchPos = initArr(2 * _maxLen); // max word position for a certain pattern position\nconst _diag = initTable(); // the length of a contiguous diagonal match\nconst _table = initTable();\nconst _arrows = initTable();\nconst _debug = false;\nfunction printTable(table, pattern, patternLen, word, wordLen) {\n function pad(s, n, pad = ' ') {\n while (s.length < n) {\n s = pad + s;\n }\n return s;\n }\n let ret = ` | |${word.split('').map(c => pad(c, 3)).join('|')}\\n`;\n for (let i = 0; i <= patternLen; i++) {\n if (i === 0) {\n ret += ' |';\n }\n else {\n ret += `${pattern[i - 1]}|`;\n }\n ret += table[i].slice(0, wordLen + 1).map(n => pad(n.toString(), 3)).join('|') + '\\n';\n }\n return ret;\n}\nfunction printTables(pattern, patternStart, word, wordStart) {\n pattern = pattern.substr(patternStart);\n word = word.substr(wordStart);\n console.log(printTable(_table, pattern, pattern.length, word, word.length));\n console.log(printTable(_arrows, pattern, pattern.length, word, word.length));\n console.log(printTable(_diag, pattern, pattern.length, word, word.length));\n}\nfunction isSeparatorAtPos(value, index) {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.codePointAt(index);\n switch (code) {\n case 95 /* CharCode.Underline */:\n case 45 /* CharCode.Dash */:\n case 46 /* CharCode.Period */:\n case 32 /* CharCode.Space */:\n case 47 /* CharCode.Slash */:\n case 92 /* CharCode.Backslash */:\n case 39 /* CharCode.SingleQuote */:\n case 34 /* CharCode.DoubleQuote */:\n case 58 /* CharCode.Colon */:\n case 36 /* CharCode.DollarSign */:\n case 60 /* CharCode.LessThan */:\n case 62 /* CharCode.GreaterThan */:\n case 40 /* CharCode.OpenParen */:\n case 41 /* CharCode.CloseParen */:\n case 91 /* CharCode.OpenSquareBracket */:\n case 93 /* CharCode.CloseSquareBracket */:\n case 123 /* CharCode.OpenCurlyBrace */:\n case 125 /* CharCode.CloseCurlyBrace */:\n return true;\n case undefined:\n return false;\n default:\n if (strings.isEmojiImprecise(code)) {\n return true;\n }\n return false;\n }\n}\nfunction isWhitespaceAtPos(value, index) {\n if (index < 0 || index >= value.length) {\n return false;\n }\n const code = value.charCodeAt(index);\n switch (code) {\n case 32 /* CharCode.Space */:\n case 9 /* CharCode.Tab */:\n return true;\n default:\n return false;\n }\n}\nfunction isUpperCaseAtPos(pos, word, wordLow) {\n return word[pos] !== wordLow[pos];\n}\nexport function isPatternInWord(patternLow, patternPos, patternLen, wordLow, wordPos, wordLen, fillMinWordPosArr = false) {\n while (patternPos < patternLen && wordPos < wordLen) {\n if (patternLow[patternPos] === wordLow[wordPos]) {\n if (fillMinWordPosArr) {\n // Remember the min word position for each pattern position\n _minWordMatchPos[patternPos] = wordPos;\n }\n patternPos += 1;\n }\n wordPos += 1;\n }\n return patternPos === patternLen; // pattern must be exhausted\n}\nexport var FuzzyScore;\n(function (FuzzyScore) {\n /**\n * No matches and value `-100`\n */\n FuzzyScore.Default = ([-100, 0]);\n function isDefault(score) {\n return !score || (score.length === 2 && score[0] === -100 && score[1] === 0);\n }\n FuzzyScore.isDefault = isDefault;\n})(FuzzyScore || (FuzzyScore = {}));\nexport class FuzzyScoreOptions {\n constructor(firstMatchCanBeWeak, boostFullMatch) {\n this.firstMatchCanBeWeak = firstMatchCanBeWeak;\n this.boostFullMatch = boostFullMatch;\n }\n}\nFuzzyScoreOptions.default = { boostFullMatch: true, firstMatchCanBeWeak: false };\nexport function fuzzyScore(pattern, patternLow, patternStart, word, wordLow, wordStart, options = FuzzyScoreOptions.default) {\n const patternLen = pattern.length > _maxLen ? _maxLen : pattern.length;\n const wordLen = word.length > _maxLen ? _maxLen : word.length;\n if (patternStart >= patternLen || wordStart >= wordLen || (patternLen - patternStart) > (wordLen - wordStart)) {\n return undefined;\n }\n // Run a simple check if the characters of pattern occur\n // (in order) at all in word. If that isn't the case we\n // stop because no match will be possible\n if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen, true)) {\n return undefined;\n }\n // Find the max matching word position for each pattern position\n // NOTE: the min matching word position was filled in above, in the `isPatternInWord` call\n _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow);\n let row = 1;\n let column = 1;\n let patternPos = patternStart;\n let wordPos = wordStart;\n const hasStrongFirstMatch = [false];\n // There will be a match, fill in tables\n for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) {\n // Reduce search space to possible matching word positions and to possible access from next row\n const minWordMatchPos = _minWordMatchPos[patternPos];\n const maxWordMatchPos = _maxWordMatchPos[patternPos];\n const nextMaxWordMatchPos = (patternPos + 1 < patternLen ? _maxWordMatchPos[patternPos + 1] : wordLen);\n for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) {\n let score = Number.MIN_SAFE_INTEGER;\n let canComeDiag = false;\n if (wordPos <= maxWordMatchPos) {\n score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, _diag[row - 1][column - 1] === 0, hasStrongFirstMatch);\n }\n let diagScore = 0;\n if (score !== Number.MAX_SAFE_INTEGER) {\n canComeDiag = true;\n diagScore = score + _table[row - 1][column - 1];\n }\n const canComeLeft = wordPos > minWordMatchPos;\n const leftScore = canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0; // penalty for a gap start\n const canComeLeftLeft = wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0;\n const leftLeftScore = canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0; // penalty for a gap start\n if (canComeLeftLeft && (!canComeLeft || leftLeftScore >= leftScore) && (!canComeDiag || leftLeftScore >= diagScore)) {\n // always prefer choosing left left to jump over a diagonal because that means a match is earlier in the word\n _table[row][column] = leftLeftScore;\n _arrows[row][column] = 3 /* Arrow.LeftLeft */;\n _diag[row][column] = 0;\n }\n else if (canComeLeft && (!canComeDiag || leftScore >= diagScore)) {\n // always prefer choosing left since that means a match is earlier in the word\n _table[row][column] = leftScore;\n _arrows[row][column] = 2 /* Arrow.Left */;\n _diag[row][column] = 0;\n }\n else if (canComeDiag) {\n _table[row][column] = diagScore;\n _arrows[row][column] = 1 /* Arrow.Diag */;\n _diag[row][column] = _diag[row - 1][column - 1] + 1;\n }\n else {\n throw new Error(`not possible`);\n }\n }\n }\n if (_debug) {\n printTables(pattern, patternStart, word, wordStart);\n }\n if (!hasStrongFirstMatch[0] && !options.firstMatchCanBeWeak) {\n return undefined;\n }\n row--;\n column--;\n const result = [_table[row][column], wordStart];\n let backwardsDiagLength = 0;\n let maxMatchColumn = 0;\n while (row >= 1) {\n // Find the column where we go diagonally up\n let diagColumn = column;\n do {\n const arrow = _arrows[row][diagColumn];\n if (arrow === 3 /* Arrow.LeftLeft */) {\n diagColumn = diagColumn - 2;\n }\n else if (arrow === 2 /* Arrow.Left */) {\n diagColumn = diagColumn - 1;\n }\n else {\n // found the diagonal\n break;\n }\n } while (diagColumn >= 1);\n // Overturn the \"forwards\" decision if keeping the \"backwards\" diagonal would give a better match\n if (backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters\n && patternLow[patternStart + row - 1] === wordLow[wordStart + column - 1] // only if we can do a contiguous match diagonally\n && !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) // only if the forwards chose diagonal is not an uppercase\n && backwardsDiagLength + 1 > _diag[row][diagColumn] // only if our contiguous match would be longer than the \"forwards\" contiguous match\n ) {\n diagColumn = column;\n }\n if (diagColumn === column) {\n // this is a contiguous match\n backwardsDiagLength++;\n }\n else {\n backwardsDiagLength = 1;\n }\n if (!maxMatchColumn) {\n // remember the last matched column\n maxMatchColumn = diagColumn;\n }\n row--;\n column = diagColumn - 1;\n result.push(column);\n }\n if (wordLen - wordStart === patternLen && options.boostFullMatch) {\n // the word matches the pattern with all characters!\n // giving the score a total match boost (to come up ahead other words)\n result[0] += 2;\n }\n // Add 1 penalty for each skipped character in the word\n const skippedCharsCount = maxMatchColumn - patternLen;\n result[0] -= skippedCharsCount;\n return result;\n}\nfunction _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow) {\n let patternPos = patternLen - 1;\n let wordPos = wordLen - 1;\n while (patternPos >= patternStart && wordPos >= wordStart) {\n if (patternLow[patternPos] === wordLow[wordPos]) {\n _maxWordMatchPos[patternPos] = wordPos;\n patternPos--;\n }\n wordPos--;\n }\n}\nfunction _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos, wordLen, wordStart, newMatchStart, outFirstMatchStrong) {\n if (patternLow[patternPos] !== wordLow[wordPos]) {\n return Number.MIN_SAFE_INTEGER;\n }\n let score = 1;\n let isGapLocation = false;\n if (wordPos === (patternPos - patternStart)) {\n // common prefix: `foobar <-> foobaz`\n // ^^^^^\n score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n }\n else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) {\n // hitting upper-case: `foo <-> forOthers`\n // ^^ ^\n score = pattern[patternPos] === word[wordPos] ? 7 : 5;\n isGapLocation = true;\n }\n else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) {\n // hitting a separator: `. <-> foo.bar`\n // ^\n score = 5;\n }\n else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) {\n // post separator: `foo <-> bar_foo`\n // ^^^\n score = 5;\n isGapLocation = true;\n }\n if (score > 1 && patternPos === patternStart) {\n outFirstMatchStrong[0] = true;\n }\n if (!isGapLocation) {\n isGapLocation = isUpperCaseAtPos(wordPos, word, wordLow) || isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1);\n }\n //\n if (patternPos === patternStart) { // first character in pattern\n if (wordPos > wordStart) {\n // the first pattern character would match a word character that is not at the word start\n // so introduce a penalty to account for the gap preceding this match\n score -= isGapLocation ? 3 : 5;\n }\n }\n else {\n if (newMatchStart) {\n // this would be the beginning of a new match (i.e. there would be a gap before this location)\n score += isGapLocation ? 2 : 0;\n }\n else {\n // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a preferred gap location\n score += isGapLocation ? 0 : 1;\n }\n }\n if (wordPos + 1 === wordLen) {\n // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word\n // so pretend there is a gap after the last character in the word to normalize things\n score -= isGapLocation ? 3 : 5;\n }\n return score;\n}\n//#endregion\n//#region --- graceful ---\nexport function fuzzyScoreGracefulAggressive(pattern, lowPattern, patternPos, word, lowWord, wordPos, options) {\n return fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, true, options);\n}\nfunction fuzzyScoreWithPermutations(pattern, lowPattern, patternPos, word, lowWord, wordPos, aggressive, options) {\n let top = fuzzyScore(pattern, lowPattern, patternPos, word, lowWord, wordPos, options);\n if (top && !aggressive) {\n // when using the original pattern yield a result we`\n // return it unless we are aggressive and try to find\n // a better alignment, e.g. `cno` -> `^co^ns^ole` or `^c^o^nsole`.\n return top;\n }\n if (pattern.length >= 3) {\n // When the pattern is long enough then try a few (max 7)\n // permutations of the pattern to find a better match. The\n // permutations only swap neighbouring characters, e.g\n // `cnoso` becomes `conso`, `cnsoo`, `cnoos`.\n const tries = Math.min(7, pattern.length - 1);\n for (let movingPatternPos = patternPos + 1; movingPatternPos < tries; movingPatternPos++) {\n const newPattern = nextTypoPermutation(pattern, movingPatternPos);\n if (newPattern) {\n const candidate = fuzzyScore(newPattern, newPattern.toLowerCase(), patternPos, word, lowWord, wordPos, options);\n if (candidate) {\n candidate[0] -= 3; // permutation penalty\n if (!top || candidate[0] > top[0]) {\n top = candidate;\n }\n }\n }\n }\n }\n return top;\n}\nfunction nextTypoPermutation(pattern, patternPos) {\n if (patternPos + 1 >= pattern.length) {\n return undefined;\n }\n const swap1 = pattern[patternPos];\n const swap2 = pattern[patternPos + 1];\n if (swap1 === swap2) {\n return undefined;\n }\n return pattern.slice(0, patternPos)\n + swap2\n + swap1\n + pattern.slice(patternPos + 2);\n}\n//#endregion\n","/**\n * Size defines and processes the size(width/height) of the objects\n */\nvar Size = /** @class */ (function () {\n function Size(width, height) {\n this.width = width;\n this.height = height;\n }\n /**\n * isEmpty method \\\n *\n * @returns { boolean } isEmpty method .\\\n *\n * @private\n */\n Size.prototype.isEmpty = function () {\n return this.height === 0 && this.width === 0;\n };\n // public static get empty(): Size {\n // return new Size();\n // }\n // public get isEmpty(): boolean {\n // return this.equals(Size.empty);\n // }\n // public equals(size2: Size): boolean {\n // return this.width === size2.width && this.height === size2.height;\n // }\n // public union(size: Size): void {\n // size.width = Math.max(size.width, this.width);\n // size.height = Math.max(size.height, this.height);\n // }\n /**\n * clone method \\\n *\n * @returns { Size } clone method .\\\n *\n * @private\n */\n Size.prototype.clone = function () {\n return new Size(this.width, this.height);\n };\n return Size;\n}());\nexport { Size };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines and processes coordinates\n */\nvar Point = /** @class */ (function (_super) {\n __extends(Point, _super);\n function Point() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {PointModel} point1 - provide the point1 value.\n * @param {PointModel} point2 - provide the point1 value.\n *\n * @private\n */\n Point.equals = function (point1, point2) {\n if (point1 === point2) {\n return true;\n }\n if (!point1 || !point2) {\n return false;\n }\n return !point1 || !point2 || point1.x === point2.x && point1.y === point2.y;\n };\n /**\n * isEmptyPoint method \\\n *\n * @returns { boolean } isEmptyPoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Point.isEmptyPoint = function (point) {\n if (point.x && point.y) {\n return false;\n }\n return true;\n };\n // public add(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x + point2.x, y: point1.y + point2.y };\n // }\n // public subtract(point1: PointModel, point2: PointModel): PointModel {\n // return { x: point1.x - point2.x, y: point1.y - point2.y };\n // }\n // public multiply(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.x, y: point1.y * point2.y\n // };\n // }\n // public crossProduct(point1: PointModel, point2: PointModel): PointModel {\n // return {\n // x: point1.x * point2.y, y: point2.x * point1.y\n // };\n // }\n // public offset(offsetX: number, offsetY: number): void {\n // this.x += offsetX;\n // this.y += offsetY;\n // }\n // public rotate(angle: number): PointModel {\n // let c: number = Math.cos(angle);\n // let s: number = Math.sin(angle);\n // return {\n // x: c * this.x - s * this.y, y: s * this.x + c * this.y\n // };\n // }\n // public distance(point2: PointModel): number {\n // return Math.sqrt(Math.pow(this.x - point2.x, 2) + Math.pow(this.y - point2.y, 2));\n // }\n /**\n * transform method \\\n *\n * @returns { PointModel } transform method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} angle - provide the points value.\n * @param {number} length - provide the points value.\n *\n * @private\n */\n Point.transform = function (point, angle, length) {\n var pt = { x: 0, y: 0 };\n pt.x = Math.round((point.x + length * Math.cos(angle * Math.PI / 180)) * 100) / 100;\n pt.y = Math.round((point.y + length * Math.sin(angle * Math.PI / 180)) * 100) / 100;\n return pt;\n };\n /**\n * findLength method \\\n *\n * @returns { number } findLength method .\\\n * @param {PointModel} s - provide the points value.\n * @param {PointModel} e - provide the points value.\n *\n * @private\n */\n Point.findLength = function (s, e) {\n var length = Math.sqrt(Math.pow((s.x - e.x), 2) + Math.pow((s.y - e.y), 2));\n return length;\n };\n /**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {PointModel} point1 - provide the points value.\n * @param {PointModel} point2 - provide the points value.\n *\n * @private\n */\n Point.findAngle = function (point1, point2) {\n var angle = Math.atan2(point2.y - point1.y, point2.x - point1.x);\n angle = (180 * angle / Math.PI);\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n };\n /**\n * distancePoints method \\\n *\n * @returns { number } distancePoints method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.distancePoints = function (pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n };\n /**\n * getLengthFromListOfPoints method \\\n *\n * @returns { number } getLengthFromListOfPoints method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Point.getLengthFromListOfPoints = function (points) {\n var length = 0;\n for (var j = 0; j < points.length - 1; j++) {\n length += this.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n }\n return length;\n };\n /**\n * adjustPoint method \\\n *\n * @returns { PointModel } adjustPoint method .\\\n * @param {PointModel} source - provide the points value.\n * @param {PointModel} target - provide the points value.\n * @param {boolean} isStart - provide the isStart value.\n * @param {number} length - provide the length value.\n *\n * @private\n */\n Point.adjustPoint = function (source, target, isStart, length) {\n var pt = isStart ? { x: source.x, y: source.y } : { x: target.x, y: target.y };\n var angle;\n if (source.x === target.x) {\n if (source.y < target.y && isStart || source.y > target.y && !isStart) {\n pt.y += length;\n }\n else {\n pt.y -= length;\n }\n }\n else if (source.y === target.y) {\n if (source.x < target.x && isStart || source.x > target.x && !isStart) {\n pt.x += length;\n }\n else {\n pt.x -= length;\n }\n }\n else {\n if (isStart) {\n angle = this.findAngle(source, target);\n pt = this.transform(source, angle, length);\n }\n else {\n angle = this.findAngle(target, source);\n pt = this.transform(target, angle, length);\n }\n }\n return pt;\n };\n /**\n * direction method \\\n *\n * @returns { string } direction method .\\\n * @param {PointModel} pt1 - provide the points value.\n * @param {PointModel} pt2 - provide the points value.\n *\n * @private\n */\n Point.direction = function (pt1, pt2) {\n if (Math.abs(pt2.x - pt1.x) > Math.abs(pt2.y - pt1.y)) {\n return pt1.x < pt2.x ? 'Right' : 'Left';\n }\n else {\n return pt1.y < pt2.y ? 'Bottom' : 'Top';\n }\n };\n //Move these methods to util\n //public CompareTo(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnYAxis(point: PointModel): number {\n // let result: number = this.X.CompareTo(point.X);\n // return result != 0 ? result : this.Y.CompareTo(point.Y);\n //}\n //public CompareOnXAxis(point: PointModel): number {\n // let result: number = this.Y.CompareTo(point.Y);\n // return result != 0 ? result : this.X.CompareTo(point.X);\n //}\n // public round(): void {\n // this.x = Math.round(this.x);\n // this.y = Math.round(this.y);\n // }\n /**\n * getClassName method \\\n *\n * @returns { string } getClassName method .\\\n *\n * @private\n */\n Point.prototype.getClassName = function () {\n return 'Point';\n };\n __decorate([\n Property(0)\n ], Point.prototype, \"x\", void 0);\n __decorate([\n Property(0)\n ], Point.prototype, \"y\", void 0);\n return Point;\n}(ChildProperty));\nexport { Point };\n","/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * processPathData method \\\n *\n * @returns {Object[]} processPathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function processPathData(data) {\n var collection = [];\n var j;\n var arrayCollection = parsePathData(data);\n if (arrayCollection.length > 0) {\n for (var i = 0; i < arrayCollection.length; i++) {\n var ob = arrayCollection[parseInt(i.toString(), 10)];\n var char = '';\n char = ob[0];\n switch (char.toLowerCase()) {\n case 'm':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n if (char === 'm') {\n char = 'l';\n }\n else if (char === 'M') {\n char = 'L';\n }\n }\n break;\n case 'l':\n case 't':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)], y: ob[j + 1] });\n j = j + 1;\n }\n break;\n case 'h':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'v':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, y: ob[parseInt(j.toString(), 10)] });\n }\n break;\n case 'z':\n collection.push({ command: char });\n break;\n case 'c':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x2: ob[j + 2],\n y2: ob[j + 3], x: ob[j + 4], y: ob[j + 5]\n });\n j = j + 5;\n }\n break;\n case 's':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x2: ob[parseInt(j.toString(), 10)], y2: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'q':\n for (j = 1; j < ob.length; j++) {\n collection.push({ command: char, x1: ob[parseInt(j.toString(), 10)], y1: ob[j + 1], x: ob[j + 2], y: ob[j + 3] });\n j = j + 3;\n }\n break;\n case 'a':\n for (j = 1; j < ob.length; j++) {\n collection.push({\n command: char, r1: ob[parseInt(j.toString(), 10)], r2: ob[j + 1], angle: ob[j + 2], largeArc: ob[j + 3],\n sweep: ob[j + 4], x: ob[j + 5], y: ob[j + 6]\n });\n j = j + 6;\n }\n break;\n }\n }\n }\n return collection;\n}\n/**\n * parsePathData method \\\n *\n * @returns {Object[]} parsePathData method .\\\n * @param { string } data - provide the data value.\n * @private\n */\nexport function parsePathData(data) {\n var tokenizer = /([a-z]+)|([+-]?(?:\\d+\\.?\\d*|\\.\\d+))/gi;\n var current = [];\n var commands = [];\n var match = {};\n tokenizer.lastIndex = 0;\n var isExponential = false;\n match = tokenizer.exec(data);\n while (match) {\n if (match[1] === 'e') {\n //let s1: string = '';\n isExponential = true;\n }\n else if (match[1]) {\n if (match[1].toLowerCase() === 'zm') {\n if (current.length) {\n commands.push(current);\n }\n commands.push(['Z']);\n current = [match[1].substring(1, 2)];\n }\n else {\n if (current.length) {\n commands.push(current);\n }\n current = [match[1]];\n }\n isExponential = false;\n }\n else {\n if (!current.length) {\n current = [];\n }\n if (!isExponential) {\n current.push(Number(match[2]));\n }\n isExponential = false;\n }\n match = tokenizer.exec(data);\n }\n if (current.length) {\n commands.push(current);\n }\n return commands;\n}\n/**\n * getRectanglePath method \\\n *\n * @returns {string} getRectanglePath method .\\\n * @param { number } cornerRadius - provide the data value.\n * @param { number } height - provide the height value.\n * @param { number } width - provide the width value.\n * @private\n */\nexport function getRectanglePath(cornerRadius, height, width) {\n var x = 0;\n var y = 0;\n var path = '';\n var points = [{ x: x + cornerRadius, y: y }, { x: x + width - cornerRadius, y: y },\n { x: x + width, y: y + cornerRadius }, { x: x + width, y: y + height - cornerRadius },\n { x: x + width - cornerRadius, y: y + height }, { x: x + cornerRadius, y: y + height },\n { x: x, y: y + height - cornerRadius }, { x: x, y: y + cornerRadius }\n ];\n var corners = [{ x: x + width, y: y }, { x: x + width, y: y + height }, { x: x, y: y + height }, { x: x, y: y }];\n var corner = 0;\n var point2;\n var next;\n path = 'M' + points[0].x + ' ' + points[0].y;\n var i;\n for (i = 0; i < points.length; i = i + 2) {\n point2 = points[i + 1];\n path += 'L' + point2.x + ' ' + point2.y;\n next = points[i + 2] || points[0];\n path += 'Q' + corners[parseInt(corner.toString(), 10)].x + ' ' + corners[parseInt(corner.toString(), 10)].y + ' ' + next.x + ' ' + next.y;\n corner++;\n }\n return path;\n}\n/**\n * getPolygonPath method \\\n *\n * @returns {string} getPolygonPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getPolygonPath(collection) {\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n path += 'Z';\n return path;\n}\n/**\n * getFreeHandPath method \\\n *\n * @returns {string} getFreeHandPath method .\\\n * @param { PointModel[] } collection - provide the data value.\n * @private\n */\nexport function getFreeHandPath(collection) {\n var k;\n for (k = 0; k < collection.length; k++) {\n collection[parseInt(k.toString(), 10)].x = Math.round(collection[parseInt(k.toString(), 10)].x);\n collection[parseInt(k.toString(), 10)].y = Math.round(collection[parseInt(k.toString(), 10)].y);\n }\n var path = '';\n var seg;\n path = 'M' + collection[0].x + ' ' + collection[0].y;\n var i;\n for (i = 1; i < collection.length; i++) {\n seg = collection[parseInt(i.toString(), 10)];\n path += 'L' + seg.x + ' ' + seg.y;\n }\n return path;\n}\n/* eslint-disable */\n/**\n * pathSegmentCollection method \\\n *\n * @returns {string} pathSegmentCollection method .\\\n * @param { Object[]} collection - provide the collection value.\n * @private\n */\nexport function pathSegmentCollection(collection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var initx;\n var inity;\n var segments = [];\n for (x = 0, y = 0, i = 0, length = collection.length; i < length; ++i) {\n var obj = collection[i];\n var seg = obj;\n var char = '';\n char = seg.command;\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n var prev = segments[segments.length - 1];\n switch (char) {\n case 'M':\n segments.push({ command: 'M', x: x, y: y });\n break;\n case 'L':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y });\n break;\n case 'H':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x, y: y0 });\n break;\n case 'V':\n segments.push({ command: 'L', x0: x0, y0: y0, x: x0, y: y });\n break;\n case 'C':\n segments.push({ command: 'C', x0: x0, y0: y0, x1: x1, y1: y1, x2: x2, y2: y2, x: x, y: y });\n break;\n case 'S':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'C' || prev.command === 'S') {\n ctrl = { x: prev.x2, y: prev.y2 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'C', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x2: x2, y2: y2, x: x, y: y });\n }\n break;\n case 'Q':\n //ctx.quadraticCurveTo(x1, y1, x, y);\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: x1, y1: y1, x: x, y: y });\n break;\n case 'T':\n if (prev) {\n var ctrl = void 0;\n if (prev.command === 'Q') {\n ctrl = { x: prev.x1, y: prev.y1 };\n }\n else {\n ctrl = { x: x0, y: y0 };\n }\n var cpt2 = { x: 2 * x0 - ctrl.x, y: 2 * y0 - ctrl.y };\n segments.push({ command: 'Q', x0: x0, y0: y0, x1: cpt2.x, y1: cpt2.y, x: x, y: y });\n }\n break;\n case 'A':\n var newSeg = seg;\n newSeg.command = 'A';\n segments.push(newSeg);\n break;\n case 'Z':\n case 'z':\n segments.push({ command: 'Z' });\n x = x0;\n y = y0;\n break;\n }\n if (char === 'M' || char === 'm') {\n initx = x;\n inity = y;\n }\n x0 = x;\n y0 = y;\n }\n return segments;\n}\n/**\n * transformPath method \\\n *\n * @returns {string} transformPath method .\\\n * @param { Object[]} arr - provide the collection value.\n * @param { number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @param { boolean} s - provide the collection value.\n * @param {number} bX - provide the collection value.\n * @param { number} bY - provide the collection value.\n * @param { number} iX - provide the collection value.\n * @param { number} iY - provide the collection value.\n * @private\n */\nexport function transformPath(arr, sX, sY, s, bX, bY, iX, iY) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var newSeg;\n for (x = 0, y = 0, i = 0, length = arr.length; i < length; ++i) {\n var obj = arr[i];\n var seg = obj;\n var char = seg.command;\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if (s) {\n if (x !== undefined) {\n x = scalePathData(x, sX, bX, iX);\n }\n if (y !== undefined) {\n y = scalePathData(y, sY, bY, iY);\n }\n if (x1 !== undefined) {\n x1 = scalePathData(x1, sX, bX, iX);\n }\n if (y1 !== undefined) {\n y1 = scalePathData(y1, sY, bY, iY);\n }\n if (x2 !== undefined) {\n x2 = scalePathData(x2, sX, bX, iX);\n }\n if (y2 !== undefined) {\n y2 = scalePathData(y2, sY, bY, iY);\n }\n }\n else {\n if (x !== undefined) {\n x = Number((x + sX).toFixed(2));\n }\n if (y !== undefined) {\n y = Number((y + sY).toFixed(2));\n }\n if (x1 !== undefined) {\n x1 = Number((x1 + sX).toFixed(2));\n }\n if (y1 !== undefined) {\n y1 = Number((y1 + sY).toFixed(2));\n }\n if (x2 !== undefined) {\n x2 = Number((x2 + sX).toFixed(2));\n }\n if (y2 !== undefined) {\n y2 = Number((y2 + sY).toFixed(2));\n }\n }\n var scaledPath = { x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2, r1: seg.r1, r2: seg.r2 };\n newSeg = updatedSegment(seg, char, scaledPath, s, sX, sY);\n if (newSeg) {\n arr[i] = newSeg;\n }\n // Record the start of a subpath\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n var pathData = getPathString(arr);\n return pathData;\n}\n/**\n * updatedSegment method \\\n *\n * @returns {string} updatedSegment method .\\\n * @param { PathSegment} segment - provide the collection value.\n * @param { PathSegment} char - provide the collection value.\n * @param { number} obj - provide the collection value.\n * @param { boolean} isScale - provide the collection value.\n * @param {number} sX - provide the collection value.\n * @param { number} sY - provide the collection value.\n * @private\n */\nexport function updatedSegment(segment, char, obj, isScale, sX, sY) {\n switch (char) {\n case 'M':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'L':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'H':\n segment.x = obj.x;\n break;\n case 'V':\n segment.y = obj.y;\n break;\n case 'C':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'S':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x2 = obj.x2;\n segment.y2 = obj.y2;\n break;\n case 'Q':\n segment.x = obj.x;\n segment.y = obj.y;\n segment.x1 = obj.x1;\n segment.y1 = obj.y1;\n break;\n case 'T':\n segment.x = obj.x;\n segment.y = obj.y;\n break;\n case 'A':\n var r1 = obj.r1;\n var r2 = obj.r2;\n if (isScale) {\n obj.r1 = r1 = (r1 * sX);\n obj.r2 = r2 = (r2 * sY);\n }\n segment.x = obj.x;\n segment.y = obj.y;\n segment.r1 = obj.r1;\n segment.r2 = obj.r2;\n break;\n case 'z':\n case 'Z':\n segment = { command: 'Z' };\n break;\n }\n return segment;\n}\n/* eslint-enable */\n/**\n * scalePathData method \\\n *\n * @returns {string} scalePathData method .\\\n * @param { number} val - provide the val value.\n * @param { number} scaleFactor - provide the scaleFactor value.\n * @param { number} oldOffset - provide the oldOffset value.\n * @param { number} newOffset - provide the newOffset value.\n * @private\n */\nexport function scalePathData(val, scaleFactor, oldOffset, newOffset) {\n if (val !== oldOffset) {\n if (newOffset !== oldOffset) {\n val = (((val * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)))\n + (newOffset - Number(oldOffset)));\n }\n else {\n val = ((Number(val) * scaleFactor) - (Number(oldOffset) * scaleFactor - Number(oldOffset)));\n }\n }\n else {\n if (newOffset !== oldOffset) {\n val = newOffset;\n }\n }\n return Number(val.toFixed(2));\n}\n/**\n * splitArrayCollection method \\\n *\n * @returns {Object[]} splitArrayCollection method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function splitArrayCollection(arrayCollection) {\n var x0;\n var y0;\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n for (x = 0, y = 0, i = 0, length = arrayCollection.length; i < length; ++i) {\n var path = arrayCollection[parseInt(i.toString(), 10)];\n var seg = path;\n var char = seg.command;\n if (/[MLHVCSQTA]/.test(char)) {\n if ('x' in seg) {\n seg.x = x = seg.x;\n }\n if ('y' in seg) {\n seg.y = y = seg.y;\n }\n }\n else {\n if ('x1' in seg) {\n seg.x1 = x1 = x + seg.x1;\n }\n if ('x2' in seg) {\n seg.x2 = x2 = x + seg.x2;\n }\n if ('y1' in seg) {\n seg.y1 = y1 = y + seg.y1;\n }\n if ('y2' in seg) {\n seg.y2 = y2 = y + seg.y2;\n }\n if ('x' in seg) {\n seg.x = x += seg.x;\n }\n if ('y' in seg) {\n seg.y = y += seg.y;\n }\n var newSeg = void 0;\n switch (char) {\n case 'm':\n case 'M':\n newSeg = { command: 'M', x: x, y: y };\n break;\n case 'l':\n case 'L':\n newSeg = { command: 'L', x: x, y: y };\n break;\n case 'h':\n case 'H':\n newSeg = { command: 'H', x: x };\n break;\n case 'v':\n case 'V':\n newSeg = { command: 'V', y: y };\n break;\n case 'c':\n case 'C':\n newSeg = { command: 'C', x: x, y: y, x1: x1, y1: y1, x2: x2, y2: y2 };\n break;\n case 's':\n case 'S':\n newSeg = { command: 'S', x: x, y: y, x2: x2, y2: y2 };\n break;\n case 'q':\n case 'Q':\n newSeg = { command: 'Q', x: x, y: y, x1: x1, y1: y1 };\n break;\n case 't':\n case 'T':\n newSeg = { command: 'T', x: x, y: y };\n break;\n case 'a':\n case 'A':\n newSeg = { command: 'A', x: x, y: y };\n newSeg.r1 = seg.r1;\n newSeg.r2 = seg.r2;\n newSeg.angle = seg.angle;\n newSeg.largeArc = seg.largeArc;\n newSeg.sweep = seg.sweep;\n break;\n case 'z':\n case 'Z':\n newSeg = { command: 'Z' };\n x = x0;\n y = y0;\n newSeg = arrayCollection[parseInt(i.toString(), 10)];\n break;\n }\n if (newSeg) {\n arrayCollection[parseInt(i.toString(), 10)] = newSeg;\n }\n }\n if (char === 'M' || char === 'm') {\n x0 = x;\n y0 = y;\n }\n }\n return arrayCollection;\n}\n/**\n * getPathString method \\\n *\n * @returns {string} getPathString method .\\\n * @param { Object[]} arrayCollection - provide the val value.\n * @private\n */\nexport function getPathString(arrayCollection) {\n var getNewString = '';\n var i;\n for (i = 0; i < arrayCollection.length; i++) {\n if (i === 0) {\n getNewString += getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n else {\n getNewString += ' ' + getString(arrayCollection[parseInt(i.toString(), 10)]);\n }\n }\n return getNewString;\n}\n/* eslint-disable */\n/**\n * getString method \\\n *\n * @returns {string} getString method .\\\n * @param { PathSegment} arrayCollection - provide the val value.\n * @private\n */\nexport function getString(obj) {\n var string = '';\n switch (obj.command) {\n case 'Z':\n case 'z':\n string = obj.command;\n break;\n case 'M':\n case 'm':\n case 'L':\n case 'l':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'C':\n case 'c':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'Q':\n case 'q':\n string = obj.command + ' ' + obj.x1 + ' ' + obj.y1 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'A':\n case 'a':\n var cmd = obj.command;\n var ang = obj.angle;\n var l = (obj.largeArc ? '1' : '0');\n var s = (obj.sweep ? '1' : '0');\n string = cmd + ' ' + obj.r1 + ' ' + obj.r2 + ' ' + ang + ' ' + l + ' ' + s + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'H':\n case 'h':\n string = obj.command + ' ' + obj.x;\n break;\n case 'V':\n case 'v':\n string = obj.command + ' ' + obj.y;\n break;\n case 'S':\n case 's':\n string = obj.command + ' ' + obj.x2 + ' ' + obj.y2 + ' ' + obj.x + ' ' + obj.y;\n break;\n case 'T':\n case 't':\n string = obj.command + ' ' + obj.x + ' ' + obj.y;\n }\n return string;\n}\n","/**\n * Rect defines and processes rectangular regions\n */\nvar Rect = /** @class */ (function () {\n function Rect(x, y, width, height) {\n /**\n * Sets the x-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.x = Number.MAX_VALUE;\n /**\n * Sets the y-coordinate of the starting point of a rectangular region\n *\n * @default 0\n */\n this.y = Number.MAX_VALUE;\n /**\n * Sets the width of a rectangular region\n *\n * @default 0\n */\n this.width = 0;\n /**\n * Sets the height of a rectangular region\n *\n * @default 0\n */\n this.height = 0;\n if (x === undefined || y === undefined) {\n x = y = Number.MAX_VALUE;\n width = height = 0;\n }\n else {\n if (width === undefined) {\n width = 0;\n }\n if (height === undefined) {\n height = 0;\n }\n }\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n Object.defineProperty(Rect.prototype, \"left\", {\n // eslint-disable-next-line jsdoc/require-returns\n /** @private */\n get: function () {\n return this.x;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"right\", {\n /**\n * right method \\\n *\n * @returns { Rect } right method .\\\n *\n * @private\n */\n get: function () {\n return this.x + this.width;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"top\", {\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n *\n * @private\n */\n get: function () {\n return this.y;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottom\", {\n /**\n * bottom method \\\n *\n * @returns { Rect } bottom method .\\\n *\n * @private\n */\n get: function () {\n return this.y + this.height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topLeft\", {\n /**\n * topLeft method \\\n *\n * @returns { Rect } topLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topRight\", {\n /**\n * topRight method \\\n *\n * @returns { Rect } topRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomLeft\", {\n /**\n * bottomLeft method \\\n *\n * @returns { Rect } bottomLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomRight\", {\n /**\n * bottomRight method \\\n *\n * @returns { Rect } bottomRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleLeft\", {\n /**\n * middleLeft method \\\n *\n * @returns { Rect } middleLeft method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.left, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"middleRight\", {\n /**\n * middleRight method \\\n *\n * @returns { Rect } middleRight method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.right, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"topCenter\", {\n /**\n * topCenter method \\\n *\n * @returns { Rect } topCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.top };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"bottomCenter\", {\n /**\n * bottomCenter method \\\n *\n * @returns { Rect } bottomCenter method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.bottom };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Rect.prototype, \"center\", {\n /**\n * center method \\\n *\n * @returns { PointModel } center method .\\\n *\n * @private\n */\n get: function () {\n return { x: this.x + this.width / 2, y: this.y + this.height / 2 };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * equals method \\\n *\n * @returns { boolean } equals method .\\\n * @param {Rect} rect1 - provide the rect1 value.\n * @param {Rect} rect2 - provide the rect2 value.\n *\n * @private\n */\n Rect.prototype.equals = function (rect1, rect2) {\n return rect1.x === rect2.x && rect1.y === rect2.y && rect1.width === rect2.width && rect1.height === rect2.height;\n };\n /**\n * uniteRect method \\\n *\n * @returns { Rect } uniteRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.uniteRect = function (rect) {\n var right = Math.max(isNaN(this.right) || this.x === Number.MAX_VALUE ? rect.right : this.right, rect.right);\n var bottom = Math.max(isNaN(this.bottom) || this.y === Number.MAX_VALUE ? rect.bottom : this.bottom, rect.bottom);\n this.x = Math.min(this.left, rect.left);\n this.y = Math.min(this.top, rect.top);\n this.width = right - this.x;\n this.height = bottom - this.y;\n return this;\n };\n /**\n * unitePoint method \\\n *\n * @returns { void } unitePoint method .\\\n * @param {PointModel} point - provide the points value.\n *\n * @private\n */\n Rect.prototype.unitePoint = function (point) {\n if (this.x === Number.MAX_VALUE) {\n this.x = point.x;\n this.y = point.y;\n return;\n }\n var x = Math.min(this.left, point.x);\n var y = Math.min(this.top, point.y);\n var right = Math.max(this.right, point.x);\n var bottom = Math.max(this.bottom, point.y);\n this.x = x;\n this.y = y;\n this.width = right - this.x;\n this.height = bottom - this.y;\n };\n // public intersection(rect: Rect): Rect {\n // if (this.intersects(rect)) {\n // let left: number = Math.max(this.left, rect.left);\n // let top: number = Math.max(this.top, rect.top);\n // let right: number = Math.min(this.right, rect.right);\n // let bottom: number = Math.min(this.bottom, rect.bottom);\n // return new Rect(left, top, right - left, bottom - top);\n // }\n // return Rect.empty;\n // }\n /**\n * Inflate method \\\n *\n * @returns { Rect } Inflate method .\\\n * @param {number} padding - provide the points value.\n *\n * @private\n */\n Rect.prototype.Inflate = function (padding) {\n this.x -= padding;\n this.y -= padding;\n this.width += padding * 2;\n this.height += padding * 2;\n return this;\n };\n //public Inflate(size: Size): Rect {\n // this.x -= size.Width;\n // this.y -= size.Height;\n // this.width += size.Width * 2;\n // this.height += size.Height * 2;\n // return this;\n //}\n // public inflate(width: number, height: number): void {\n // this.x -= width;\n // this.y -= height;\n // this.width += width * 2;\n // this.height += height * 2;\n // }\n /**\n * intersects method \\\n *\n * @returns { boolean } intersects method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.intersects = function (rect) {\n if (this.right < rect.left || this.left > rect.right || this.top > rect.bottom || this.bottom < rect.top) {\n return false;\n }\n return true;\n };\n /**\n * containsRect method \\\n *\n * @returns { boolean } containsRect method .\\\n * @param {Rect} rect - provide the points value.\n *\n * @private\n */\n Rect.prototype.containsRect = function (rect) {\n return this.left <= rect.left && this.right >= rect.right && this.top <= rect.top && this.bottom >= rect.bottom;\n };\n /**\n * containsPoint method \\\n *\n * @returns { boolean } containsPoint method .\\\n * @param {PointModel} point - provide the points value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\n Rect.prototype.containsPoint = function (point, padding) {\n if (padding === void 0) { padding = 0; }\n return this.left - padding <= point.x && this.right + padding >= point.x\n && this.top - padding <= point.y && this.bottom + padding >= point.y;\n };\n // public toPoints(): PointModel[] {\n // let points: PointModel[] = [];\n // points.push(this.topLeft);\n // points.push(this.topRight);\n // points.push(this.bottomLeft);\n // points.push(this.bottomRight);\n // return points;\n // }\n /**\n * toBounds method \\\n *\n * @returns { Rect } toBounds method .\\\n * @param {PointModel[]} points - provide the points value.\n *\n * @private\n */\n Rect.toBounds = function (points) {\n var rect = new Rect();\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var pt = points_1[_i];\n rect.unitePoint(pt);\n }\n return rect;\n };\n /** @private */\n Rect.empty = new Rect(Number.MAX_VALUE, Number.MIN_VALUE, 0, 0);\n return Rect;\n}());\nexport { Rect };\n","/**\n * Matrix module is used to transform points based on offsets, angle\n */\n/** @private */\nexport var MatrixTypes;\n(function (MatrixTypes) {\n MatrixTypes[MatrixTypes[\"Identity\"] = 0] = \"Identity\";\n MatrixTypes[MatrixTypes[\"Translation\"] = 1] = \"Translation\";\n MatrixTypes[MatrixTypes[\"Scaling\"] = 2] = \"Scaling\";\n MatrixTypes[MatrixTypes[\"Unknown\"] = 4] = \"Unknown\";\n})(MatrixTypes || (MatrixTypes = {}));\n/** @private */\nvar Matrix = /** @class */ (function () {\n function Matrix(m11, m12, m21, m22, offsetX, offsetY, type) {\n this.m11 = m11;\n this.m12 = m12;\n this.m21 = m21;\n this.m22 = m22;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n // if (type === undefined) {\n // this.type = MatrixTypes.Unknown;\n // } else {\n // this.type = type;\n // }\n this.type = type;\n }\n return Matrix;\n}());\nexport { Matrix };\n/**\n * Will identify the matrix .\\\n *\n * @returns {Matrix} Will identify the matrix .\n * @private\n */\nexport function identityMatrix() {\n return new Matrix(1, 0, 0, 1, 0, 0, MatrixTypes.Identity);\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} point - provide the points value.\n * @private\n */\nexport function transformPointByMatrix(matrix, point) {\n var pt = multiplyPoint(matrix, point.x, point.y);\n return { x: Math.round(pt.x * 100) / 100, y: Math.round(pt.y * 100) / 100 };\n}\n/**\n * Will transform the points by matrix .\\\n *\n * @returns {PointModel[]} Will transform the points by matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} points - provide the points value.\n * @private\n */\nexport function transformPointsByMatrix(matrix, points) {\n var transformedPoints = [];\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n transformedPoints.push(transformPointByMatrix(matrix, point));\n }\n return transformedPoints;\n}\n/**\n * Will rotate the matrix .\\\n *\n * @returns {void} Will rotate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} angle - provide the angle value.\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function rotateMatrix(matrix, angle, centerX, centerY) {\n angle %= 360.0;\n multiplyMatrix(matrix, createRotationRadians(angle * 0.017453292519943295, centerX ? centerX : 0, centerY ? centerY : 0));\n}\n/**\n * Will scale the matrix .\\\n *\n * @returns {void} Will scale the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} scaleX - provide the scaleXvalue.\n * @param {number} scaleY - provide the scaleY value .\n * @param {number} centerX - provide the centerX value .\n * @param {number} centerY - provide the centerY value .\n * @private\n */\nexport function scaleMatrix(matrix, scaleX, scaleY, centerX, centerY) {\n if (centerX === void 0) { centerX = 0; }\n if (centerY === void 0) { centerY = 0; }\n multiplyMatrix(matrix, createScaling(scaleX, scaleY, centerX, centerY));\n}\n/**\n * Will translate the matrix .\\\n *\n * @returns {void} Will translate the matrix .\n *\n * @param {Matrix} matrix - provide the matrix value .\n * @param {number} offsetX - provide the offset x value.\n * @param {number} offsetY - provide the offset y value .\n * @private\n */\nexport function translateMatrix(matrix, offsetX, offsetY) {\n //Removed identity and unknown matrix type checking\n matrix.offsetX += offsetX;\n matrix.offsetY += offsetY;\n matrix.type |= MatrixTypes.Translation;\n}\n/**\n * Will create scaling value .\\\n *\n * @returns {Matrix} Will create scaling value . .\n *\n * @param {Matrix} scaleX - provide the scale x value .\n * @param {number} scaleY - provide the scale y value.\n * @param {number} centerX - provide the centerX x value .\n * @param {number} centerY - provide the centerX y value .\n * @private\n */\nfunction createScaling(scaleX, scaleY, centerX, centerY) {\n var result = identityMatrix();\n result.type = !(centerX || centerY) ? MatrixTypes.Scaling : MatrixTypes.Scaling | MatrixTypes.Translation;\n setMatrix(result, scaleX, 0.0, 0.0, scaleY, centerX - scaleX * centerX, centerY - scaleY * centerY);\n return result;\n}\n/**\n * Will create the rotation radians.\\\n *\n * @returns {Matrix} Will create the rotation radians .\n *\n * @param {Matrix} angle - provide the angle .\n * @param {number} centerX - provide the x value .\n * @param {number} centerY - provide the y value .\n * @private\n */\nfunction createRotationRadians(angle, centerX, centerY) {\n var result = identityMatrix();\n var num = Math.sin(angle);\n var num2 = Math.cos(angle);\n var offsetX = centerX * (1.0 - num2) + centerY * num;\n var offsetY = centerY * (1.0 - num2) - centerX * num;\n result.type = MatrixTypes.Unknown;\n setMatrix(result, num2, num, -num, num2, offsetX, offsetY);\n return result;\n}\n/**\n * Multiply the point .\\\n *\n * @returns {void} Multiply the point .\n *\n * @param {Matrix} matrix - Provide the matrix .\n * @param {number} x - provide the x value .\n * @param {number} y - provide the y value .\n * @private\n */\nfunction multiplyPoint(matrix, x, y) {\n switch (matrix.type) {\n //Removed identity and translation and scaling matrix type checking\n case MatrixTypes.Translation | MatrixTypes.Scaling:\n x *= matrix.m11;\n x += matrix.offsetX;\n y *= matrix.m22;\n y += matrix.offsetY;\n break;\n default:\n // eslint-disable-next-line no-case-declarations\n var num = y * matrix.m21 + matrix.offsetX;\n // eslint-disable-next-line no-case-declarations\n var num2 = x * matrix.m12 + matrix.offsetY;\n x *= matrix.m11;\n x += num;\n y *= matrix.m22;\n y += num2;\n break;\n }\n return { x: x, y: y };\n}\n/**\n * Will multiply the matrix .\\\n *\n * @returns {void} Will multiply the matrix .\n *\n * @param {Matrix} matrix1 - Provide the matrix 1 value .\n * @param {Matrix} matrix2 - Provide the matrix 2 value .\n * @private\n */\nexport function multiplyMatrix(matrix1, matrix2) {\n var type = matrix1.type;\n var type2 = matrix2.type;\n //Removed identity matrix type checking\n if (type === MatrixTypes.Identity) {\n assignMatrix(matrix1, matrix2);\n matrix1.type = matrix2.type;\n return;\n }\n //Removed translation matrix type checking\n if (type !== MatrixTypes.Translation) {\n var num = type << 4 | type2;\n //Removed num 34,35,36\n switch (num) {\n case 50:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX *= matrix2.m11;\n matrix1.offsetY *= matrix2.m22;\n return;\n case 51:\n matrix1.m11 *= matrix2.m11;\n matrix1.m22 *= matrix2.m22;\n matrix1.offsetX = matrix2.m11 * matrix1.offsetX + matrix2.offsetX;\n matrix1.offsetY = matrix2.m22 * matrix1.offsetY + matrix2.offsetY;\n return;\n case 52: break;\n default:\n switch (num) {\n case 66:\n case 67:\n case 68: break;\n default: return;\n }\n break;\n }\n var result = identityMatrix();\n var m11New = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21;\n var m12New = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22;\n var m21New = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21;\n var m22New = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22;\n var offsetX_1 = matrix1.offsetX * matrix2.m11 + matrix1.offsetY * matrix2.m21 + matrix2.offsetX;\n var offsetY_1 = matrix1.offsetX * matrix2.m12 + matrix1.offsetY * matrix2.m22 + matrix2.offsetY;\n setMatrix(result, m11New, m12New, m21New, m22New, offsetX_1, offsetY_1);\n if (result.m21 || result.m12) {\n result.type = MatrixTypes.Unknown;\n }\n else {\n if (result.m11 && result.m11 !== 1.0 || result.m22 && result.m22 !== 1.0) {\n result.type = MatrixTypes.Scaling;\n }\n if (result.offsetX || result.offsetY) {\n result.type |= MatrixTypes.Translation;\n }\n if ((result.type & (MatrixTypes.Translation | MatrixTypes.Scaling)) === MatrixTypes.Identity) {\n result.type = MatrixTypes.Identity;\n }\n result.type = MatrixTypes.Scaling | MatrixTypes.Translation;\n }\n assignMatrix(matrix1, result);\n matrix1.type = result.type;\n return;\n }\n var offsetX = matrix1.offsetX;\n var offsetY = matrix1.offsetY;\n matrix1.offsetX = offsetX * matrix2.m11 + offsetY * matrix2.m21 + matrix2.offsetX;\n matrix1.offsetY = offsetX * matrix2.m12 + offsetY * matrix2.m22 + matrix2.offsetY;\n if (type2 === MatrixTypes.Unknown) {\n matrix1.type = MatrixTypes.Unknown;\n return;\n }\n matrix1.type = (MatrixTypes.Translation | MatrixTypes.Scaling);\n}\n/**\n * set the matrix .\\\n *\n * @returns {void} set the matrix .\n *\n * @param {Matrix} mat - Provide the matrix 1 value .\n * @param {number} m11 - Provide the matrix m11 value .\n * @param {number} m12 - Provide the matrix m11 value .\n * @param {number} m21 - Provide the matrix m11 value .\n * @param {number} m22 - Provide the matrix m11 value .\n * @param {number} x - Provide the matrix m11 value .\n * @param {number} y - Provide the matrix m11 value .\n * @private\n */\nfunction setMatrix(mat, m11, m12, m21, m22, x, y) {\n mat.m11 = m11;\n mat.m12 = m12;\n mat.m21 = m21;\n mat.m22 = m22;\n mat.offsetX = x;\n mat.offsetY = y;\n}\n/**\n * Assign the matrix .\\\n *\n * @returns {void} Assign the matrix .\n *\n * @param {Matrix} matrix1 - Provide the element type as string .\n * @param {Matrix} matrix2 - Provide the element type as string .\n * @private\n */\nfunction assignMatrix(matrix1, matrix2) {\n matrix1.m11 = matrix2.m11;\n matrix1.m12 = matrix2.m12;\n matrix1.m21 = matrix2.m21;\n matrix1.m22 = matrix2.m22;\n matrix1.offsetX = matrix2.offsetX;\n matrix1.offsetY = matrix2.offsetY;\n matrix1.type = matrix2.type;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Property, ChildProperty, Collection, ComplexFactory } from '@syncfusion/ej2-base';\n/** @private */\n// eslint-disable-next-line prefer-const\nvar getGradientType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Linear':\n return LinearGradient;\n case 'Radial':\n return RadialGradient;\n default:\n return LinearGradient;\n }\n }\n return LinearGradient;\n};\n/**\n * Layout Model module defines the styles and types to arrange objects in containers\n */\nvar Thickness = /** @class */ (function () {\n function Thickness(left, right, top, bottom) {\n this.left = left;\n this.right = right;\n this.top = top;\n this.bottom = bottom;\n }\n return Thickness;\n}());\nexport { Thickness };\n/**\n * Defines the space to be left between an object and its immediate parent\n */\nvar Margin = /** @class */ (function (_super) {\n __extends(Margin, _super);\n function Margin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Margin.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"right\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"top\", void 0);\n __decorate([\n Property(0)\n ], Margin.prototype, \"bottom\", void 0);\n return Margin;\n}(ChildProperty));\nexport { Margin };\n/**\n * Defines the Shadow appearance of the objects\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{ id: 'node2', width: 100, height: 100,\n * constraints: NodeConstraints.Default | NodeConstraints.Shadow,\n * shadow: { angle: 45, distance: 5, opacity: 0.7, color: 'grey'}\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Shadow = /** @class */ (function (_super) {\n __extends(Shadow, _super);\n function Shadow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(45)\n ], Shadow.prototype, \"angle\", void 0);\n __decorate([\n Property(5)\n ], Shadow.prototype, \"distance\", void 0);\n __decorate([\n Property(0.7)\n ], Shadow.prototype, \"opacity\", void 0);\n __decorate([\n Property('lightgrey')\n ], Shadow.prototype, \"color\", void 0);\n return Shadow;\n}(ChildProperty));\nexport { Shadow };\n/**\n * Defines the different colors and the region of color transitions\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Stop = /** @class */ (function (_super) {\n __extends(Stop, _super);\n function Stop() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class Stop\n */\n Stop.prototype.getClassName = function () {\n return 'Stop';\n };\n __decorate([\n Property('')\n ], Stop.prototype, \"color\", void 0);\n __decorate([\n Property(0)\n ], Stop.prototype, \"offset\", void 0);\n __decorate([\n Property(1)\n ], Stop.prototype, \"opacity\", void 0);\n return Stop;\n}(ChildProperty));\nexport { Stop };\n/**\n * Paints the node with a smooth transition from one color to another color\n */\nvar Gradient = /** @class */ (function (_super) {\n __extends(Gradient, _super);\n function Gradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Stop)\n ], Gradient.prototype, \"stops\", void 0);\n __decorate([\n Property('None')\n ], Gradient.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Gradient.prototype, \"id\", void 0);\n return Gradient;\n}(ChildProperty));\nexport { Gradient };\n/**\n * Defines the linear gradient of styles\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: LinearGradientModel = { x1: 0, x2: 50, y1: 0, y2: 50, stops: stopscol, type: 'Linear' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n/**\n * Paints the node with linear color transitions\n */\nvar DiagramGradient = /** @class */ (function (_super) {\n __extends(DiagramGradient, _super);\n function DiagramGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"y2\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], DiagramGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], DiagramGradient.prototype, \"r\", void 0);\n return DiagramGradient;\n}(Gradient));\nexport { DiagramGradient };\n/**\n * Paints the node with linear color transitions\n */\nvar LinearGradient = /** @class */ (function (_super) {\n __extends(LinearGradient, _super);\n function LinearGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"x2\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y1\", void 0);\n __decorate([\n Property(0)\n ], LinearGradient.prototype, \"y2\", void 0);\n return LinearGradient;\n}(Gradient));\nexport { LinearGradient };\n/**\n * A focal point defines the beginning of the gradient, and a circle defines the end point of the gradient\n * ```html\n *
\n * ```\n * ```typescript\n * let stopscol: StopModel[] = [];\n * let stops1: StopModel = { color: 'white', offset: 0, opacity: 0.7 };\n * stopscol.push(stops1);\n * let stops2: StopModel = { color: 'red', offset: 0, opacity: 0.3 };\n * stopscol.push(stops2);\n * let gradient: RadialGradientModel = { cx: 50, cy: 50, fx: 50, fy: 50, stops: stopscol, type: 'Radial' };\n * let nodes: NodeModel[] = [{ id: 'node1', width: 100, height: 100,\n * style: { gradient: gradient }\n * }];\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: nodes,\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar RadialGradient = /** @class */ (function (_super) {\n __extends(RadialGradient, _super);\n function RadialGradient() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"cy\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fx\", void 0);\n __decorate([\n Property(0)\n ], RadialGradient.prototype, \"fy\", void 0);\n __decorate([\n Property(50)\n ], RadialGradient.prototype, \"r\", void 0);\n return RadialGradient;\n}(Gradient));\nexport { RadialGradient };\n/**\n * Defines the style of shape/path\n */\nvar ShapeStyle = /** @class */ (function (_super) {\n __extends(ShapeStyle, _super);\n function ShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], ShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], ShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('')\n ], ShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n Property(1)\n ], ShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], ShapeStyle.prototype, \"gradient\", void 0);\n return ShapeStyle;\n}(ChildProperty));\nexport { ShapeStyle };\n/**\n * Defines the stroke style of a path\n */\nvar StrokeStyle = /** @class */ (function (_super) {\n __extends(StrokeStyle, _super);\n function StrokeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('transparent')\n ], StrokeStyle.prototype, \"fill\", void 0);\n return StrokeStyle;\n}(ShapeStyle));\nexport { StrokeStyle };\n/**\n * Defines the appearance of text\n * ```html\n *
\n * ```\n * ```typescript\n * let style: TextStyleModel = { strokeColor: 'black', opacity: 0.5, whiteSpace:'CollapseSpace', strokeWidth: 1 };\n * let node: NodeModel;\n * node = {\n * ...\n * id: 'node', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations : [{\n * content: 'text', style: style }];\n * ...\n * };\n * let diagram: Diagram = new Diagram({\n * ...\n * nodes: [node],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar TextStyle = /** @class */ (function (_super) {\n __extends(TextStyle, _super);\n function TextStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('black')\n ], TextStyle.prototype, \"color\", void 0);\n __decorate([\n Property('Arial')\n ], TextStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property(12)\n ], TextStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"italic\", void 0);\n __decorate([\n Property(false)\n ], TextStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], TextStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], TextStyle.prototype, \"textWrapping\", void 0);\n __decorate([\n Property('Center')\n ], TextStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], TextStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('Wrap')\n ], TextStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property('transparent')\n ], TextStyle.prototype, \"fill\", void 0);\n return TextStyle;\n}(ShapeStyle));\nexport { TextStyle };\n/**\n * Defines the style of shape/path\n */\nvar DiagramShapeStyle = /** @class */ (function (_super) {\n __extends(DiagramShapeStyle, _super);\n function DiagramShapeStyle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('white')\n ], DiagramShapeStyle.prototype, \"fill\", void 0);\n __decorate([\n Property('Wrap')\n ], DiagramShapeStyle.prototype, \"textOverflow\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"strokeWidth\", void 0);\n __decorate([\n ComplexFactory(getGradientType)\n ], DiagramShapeStyle.prototype, \"gradient\", void 0);\n __decorate([\n Property(1)\n ], DiagramShapeStyle.prototype, \"opacity\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"italic\", void 0);\n __decorate([\n Property('')\n ], DiagramShapeStyle.prototype, \"strokeDashArray\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"color\", void 0);\n __decorate([\n Property(12)\n ], DiagramShapeStyle.prototype, \"fontSize\", void 0);\n __decorate([\n Property('Arial')\n ], DiagramShapeStyle.prototype, \"fontFamily\", void 0);\n __decorate([\n Property('CollapseSpace')\n ], DiagramShapeStyle.prototype, \"whiteSpace\", void 0);\n __decorate([\n Property('Center')\n ], DiagramShapeStyle.prototype, \"textAlign\", void 0);\n __decorate([\n Property('None')\n ], DiagramShapeStyle.prototype, \"textDecoration\", void 0);\n __decorate([\n Property(false)\n ], DiagramShapeStyle.prototype, \"bold\", void 0);\n __decorate([\n Property('black')\n ], DiagramShapeStyle.prototype, \"strokeColor\", void 0);\n __decorate([\n Property('WrapWithOverflow')\n ], DiagramShapeStyle.prototype, \"textWrapping\", void 0);\n return DiagramShapeStyle;\n}(ChildProperty));\nexport { DiagramShapeStyle };\n","/**\n * enum module defines the public enumerations\n */\n/**\n * @private\n */\nexport var BlazorAction;\n(function (BlazorAction) {\n /** Return the layout value is true when doLayout is called */\n BlazorAction[BlazorAction[\"Default\"] = 0] = \"Default\";\n /** Need to return the layout value when doLayout is called */\n BlazorAction[BlazorAction[\"expandNode\"] = 2] = \"expandNode\";\n /** Enabled during the mouse interaction */\n BlazorAction[BlazorAction[\"interaction\"] = 4] = \"interaction\";\n /** Enable when the group action start in history */\n BlazorAction[BlazorAction[\"GroupingInProgress\"] = 8] = \"GroupingInProgress\";\n /** Enable when the group action start to clone another group node */\n BlazorAction[BlazorAction[\"GroupClipboardInProcess\"] = 16] = \"GroupClipboardInProcess\";\n /** Enable when the clear the object to prevent the server update */\n BlazorAction[BlazorAction[\"ClearObject\"] = 32] = \"ClearObject\";\n})(BlazorAction || (BlazorAction = {}));\n/**\n * Constraints to define when a port has to be visible\n * Visible - Always shows the port\n * Hidden - Always hides the port\n * Hover - Shows the port when the mouse hovers over a node\n * Connect - Shows the port when a connection end point is dragged over a node\n * Default - By default the ports will be visible when a node is hovered and being tried to connect\n *\n * @aspNumberEnum\n */\nexport var PortVisibility;\n(function (PortVisibility) {\n /** Always shows the port */\n PortVisibility[PortVisibility[\"Visible\"] = 1] = \"Visible\";\n /** Always hides the port */\n PortVisibility[PortVisibility[\"Hidden\"] = 2] = \"Hidden\";\n /** Shows the port when the mouse hovers over a node */\n PortVisibility[PortVisibility[\"Hover\"] = 4] = \"Hover\";\n /** Shows the port when a connection end point is dragged over a node */\n PortVisibility[PortVisibility[\"Connect\"] = 8] = \"Connect\";\n})(PortVisibility || (PortVisibility = {}));\n/**\n * Defines the constraints to Enables / Disables some features of Snapping.\n * None - Snapping does not happen\n * ShowHorizontalLines - Displays only the horizontal gridlines in diagram.\n * ShowVerticalLines - Displays only the Vertical gridlines in diagram.\n * ShowLines - Display both Horizontal and Vertical gridlines.\n * SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToVerticalLines - Enables the object to snap only with horizontal gridlines.\n * SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines.\n * snapToObject - Enables the object to snap with the other objects in the diagram.\n *\n * @IgnoreSingular\n * @aspNumberEnum\n */\nexport var SnapConstraints;\n(function (SnapConstraints) {\n /** None - Snapping does not happen */\n SnapConstraints[SnapConstraints[\"None\"] = 0] = \"None\";\n /** ShowHorizontalLines - Displays only the horizontal gridlines in diagram. */\n SnapConstraints[SnapConstraints[\"ShowHorizontalLines\"] = 1] = \"ShowHorizontalLines\";\n /** ShowVerticalLines - Displays only the Vertical gridlines in diagram */\n SnapConstraints[SnapConstraints[\"ShowVerticalLines\"] = 2] = \"ShowVerticalLines\";\n /** ShowLines - Display both Horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"ShowLines\"] = 3] = \"ShowLines\";\n /** SnapToHorizontalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToHorizontalLines\"] = 4] = \"SnapToHorizontalLines\";\n /** SnapToVerticalLines - Enables the object to snap only with horizontal gridlines */\n SnapConstraints[SnapConstraints[\"SnapToVerticalLines\"] = 8] = \"SnapToVerticalLines\";\n /** SnapToLines - Enables the object to snap with both horizontal and Vertical gridlines */\n SnapConstraints[SnapConstraints[\"SnapToLines\"] = 12] = \"SnapToLines\";\n /** SnapToObject - Enables the object to snap with the other objects in the diagram. */\n SnapConstraints[SnapConstraints[\"SnapToObject\"] = 16] = \"SnapToObject\";\n /** Shows gridlines and enables snapping */\n SnapConstraints[SnapConstraints[\"All\"] = 31] = \"All\";\n})(SnapConstraints || (SnapConstraints = {}));\n/**\n * Defines the visibility of the selector handles\n * None - Hides all the selector elements\n * ConnectorSourceThumb - Shows/hides the source thumb of the connector\n * ConnectorTargetThumb - Shows/hides the target thumb of the connector\n * ResizeSouthEast - Shows/hides the bottom right resize handle of the selector\n * ResizeSouthWest - Shows/hides the bottom left resize handle of the selector\n * ResizeNorthEast - Shows/hides the top right resize handle of the selector\n * ResizeNorthWest - Shows/hides the top left resize handle of the selector\n * ResizeEast - Shows/hides the middle right resize handle of the selector\n * ResizeWest - Shows/hides the middle left resize handle of the selector\n * ResizeSouth - Shows/hides the bottom center resize handle of the selector\n * ResizeNorth - Shows/hides the top center resize handle of the selector\n * Rotate - Shows/hides the rotate handle of the selector\n * UserHandles - Shows/hides the user handles of the selector\n * Resize - Shows/hides all resize handles of the selector\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var SelectorConstraints;\n(function (SelectorConstraints) {\n /** Hides all the selector elements */\n SelectorConstraints[SelectorConstraints[\"None\"] = 1] = \"None\";\n /** Shows/hides the source thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorSourceThumb\"] = 2] = \"ConnectorSourceThumb\";\n /** Shows/hides the target thumb of the connector */\n SelectorConstraints[SelectorConstraints[\"ConnectorTargetThumb\"] = 4] = \"ConnectorTargetThumb\";\n /** Shows/hides the bottom right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthEast\"] = 8] = \"ResizeSouthEast\";\n /** Shows/hides the bottom left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouthWest\"] = 16] = \"ResizeSouthWest\";\n /** Shows/hides the top right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthEast\"] = 32] = \"ResizeNorthEast\";\n /** Shows/hides the top left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorthWest\"] = 64] = \"ResizeNorthWest\";\n /** Shows/hides the middle right resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeEast\"] = 128] = \"ResizeEast\";\n /** Shows/hides the middle left resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeWest\"] = 256] = \"ResizeWest\";\n /** Shows/hides the bottom center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeSouth\"] = 512] = \"ResizeSouth\";\n /** Shows/hides the top center resize handle of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeNorth\"] = 1024] = \"ResizeNorth\";\n /** Shows/hides the rotate handle of the selector */\n SelectorConstraints[SelectorConstraints[\"Rotate\"] = 2048] = \"Rotate\";\n /** Shows/hides the user handles of the selector */\n SelectorConstraints[SelectorConstraints[\"UserHandle\"] = 4096] = \"UserHandle\";\n /** Shows/hides the default tooltip of nodes and connectors */\n SelectorConstraints[SelectorConstraints[\"ToolTip\"] = 8192] = \"ToolTip\";\n /** Shows/hides all resize handles of the selector */\n SelectorConstraints[SelectorConstraints[\"ResizeAll\"] = 2046] = \"ResizeAll\";\n /** Shows all handles of the selector */\n SelectorConstraints[SelectorConstraints[\"All\"] = 16382] = \"All\";\n})(SelectorConstraints || (SelectorConstraints = {}));\n/**\n * Defines the connection point of the connectors in the layout\n * SamePoint - Connectors will connect with same point in the layout\n * DifferentPoint - Connectors will connect with different points in the layout\n */\nexport var ConnectionPointOrigin;\n(function (ConnectionPointOrigin) {\n /** SamePoint - Connectors will connect with same point in the layout */\n ConnectionPointOrigin[\"SamePoint\"] = \"SamePoint\";\n /** DifferentPoint - Connectors will connect with different points in the layout */\n ConnectionPointOrigin[\"DifferentPoint\"] = \"DifferentPoint\";\n})(ConnectionPointOrigin || (ConnectionPointOrigin = {}));\n/**\n * Defines the child nodes need to arranged in linear manner in layout\n * Linear - Child nodes will be arranged in linear manner\n * Nonlinear - Child nodes will be arranged in not linear manner\n */\nexport var ChildArrangement;\n(function (ChildArrangement) {\n /** Linear - Child nodes will be arranged in linear manner */\n ChildArrangement[\"Linear\"] = \"Linear\";\n /** Nonlinear - Child nodes will be arranged in not linear manner */\n ChildArrangement[\"Nonlinear\"] = \"Nonlinear\";\n})(ChildArrangement || (ChildArrangement = {}));\n/**\n * Defines the constraints to enable/disable certain features of connector.\n * * None - Interaction of the connectors cannot be done.\n * * Select - Selects the connector.\n * * Delete - Delete the connector.\n * * Drag - Drag the connector.\n * * DragSourceEnd - Drag the source end of the connector.\n * * DragTargetEnd - Drag the target end of the connector.\n * * DragSegmentThump - Drag the segment thumb of the connector.\n * * AllowDrop - Allow to drop a node.\n * * Bridging - Creates bridge on intersection of two connectors.\n * * BridgeObstacle -\n * * InheritBridging - Creates bridge on intersection of two connectors.\n * * PointerEvents - Sets the pointer events.\n * * Tooltip - Displays a tooltip for the connectors.\n * * InheritToolTip - Displays a tooltip for the connectors.\n * * Interaction - Features of the connector used for interaction.\n * * ReadOnly - Enables ReadOnly\n * * InheritSegmentThumbShape - Enables or disables to inherit the value of segmentThumbShape\n * * InheritSegmentThumbSize - Enables or disables to inherit the value of segmentThumbSize\n * * Default - Default features of the connector.\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var ConnectorConstraints;\n(function (ConnectorConstraints) {\n /** Disable all connector Constraints. */\n ConnectorConstraints[ConnectorConstraints[\"None\"] = 1] = \"None\";\n /** Enables connector to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables connector to be Deleted. */\n ConnectorConstraints[ConnectorConstraints[\"Delete\"] = 4] = \"Delete\";\n /** Enables connector to be Dragged. */\n ConnectorConstraints[ConnectorConstraints[\"Drag\"] = 8] = \"Drag\";\n /** Enables connectors source end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragSourceEnd\"] = 16] = \"DragSourceEnd\";\n /** Enables connectors target end to be selected. */\n ConnectorConstraints[ConnectorConstraints[\"DragTargetEnd\"] = 32] = \"DragTargetEnd\";\n /** Enables control point and end point of every segment in a connector for editing. */\n ConnectorConstraints[ConnectorConstraints[\"DragSegmentThumb\"] = 64] = \"DragSegmentThumb\";\n /** Enables AllowDrop constraints to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"AllowDrop\"] = 128] = \"AllowDrop\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"Bridging\"] = 256] = \"Bridging\";\n /** Enables or Disables Bridge Obstacles with overlapping of connectors. */\n ConnectorConstraints[ConnectorConstraints[\"BridgeObstacle\"] = 512] = \"BridgeObstacle\";\n /** Enables bridging to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritBridging\"] = 1024] = \"InheritBridging\";\n /** Used to set the pointer events. */\n ConnectorConstraints[ConnectorConstraints[\"PointerEvents\"] = 2048] = \"PointerEvents\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"Tooltip\"] = 4096] = \"Tooltip\";\n /** Enables or disables tool tip for the connectors */\n ConnectorConstraints[ConnectorConstraints[\"InheritTooltip\"] = 8192] = \"InheritTooltip\";\n /** Enables Interaction. */\n ConnectorConstraints[ConnectorConstraints[\"Interaction\"] = 4218] = \"Interaction\";\n /** Enables ReadOnly */\n ConnectorConstraints[ConnectorConstraints[\"ReadOnly\"] = 16384] = \"ReadOnly\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"LineRouting\"] = 32768] = \"LineRouting\";\n /** Enables or disables routing to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"InheritLineRouting\"] = 65536] = \"InheritLineRouting\";\n /** Enables or disables near node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByNode\"] = 131072] = \"ConnectToNearByNode\";\n /** Enables or disables near port padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByPort\"] = 262144] = \"ConnectToNearByPort\";\n /** Enables or disables Enables or disables near port and node padding to the connector. */\n ConnectorConstraints[ConnectorConstraints[\"ConnectToNearByElement\"] = 393216] = \"ConnectToNearByElement\";\n /**Enables or disables to inherit the value of segmentThumbShape */\n ConnectorConstraints[ConnectorConstraints[\"InheritSegmentThumbShape\"] = 524288] = \"InheritSegmentThumbShape\";\n /**Enables or disables to inherit the value of segmentThumbSize */\n ConnectorConstraints[ConnectorConstraints[\"InheritSegmentThumbSize\"] = 1048576] = \"InheritSegmentThumbSize\";\n /** Enables all constraints. */\n ConnectorConstraints[ConnectorConstraints[\"Default\"] = 2043454] = \"Default\";\n})(ConnectorConstraints || (ConnectorConstraints = {}));\n/**\n * Enables/Disables the annotation constraints\n * ReadOnly - Enables/Disables the ReadOnly Constraints\n * InheritReadOnly - Enables/Disables the InheritReadOnly Constraints\n * Select -Enables/Disable select support for the annotation\n * Drag - Enables/Disable drag support for the annotation\n * Resize - Enables/Disable resize support for the annotation\n * Rotate - Enables/Disable rotate support for the annotation\n * Interaction - Enables annotation to inherit the interaction option\n * None - Disable all annotation constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var AnnotationConstraints;\n(function (AnnotationConstraints) {\n /** Enables/Disables the ReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"ReadOnly\"] = 2] = \"ReadOnly\";\n /** Enables/Disables the InheritReadOnly Constraints */\n AnnotationConstraints[AnnotationConstraints[\"InheritReadOnly\"] = 4] = \"InheritReadOnly\";\n /** Enables/Disable select support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Select\"] = 8] = \"Select\";\n /** Enables/Disable drag support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Drag\"] = 16] = \"Drag\";\n /** Enables/Disable resize support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Resize\"] = 32] = \"Resize\";\n /** Enables/Disable rotate support for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Rotate\"] = 64] = \"Rotate\";\n /** Enables or disables tool tip for the annotation */\n AnnotationConstraints[AnnotationConstraints[\"Tooltip\"] = 128] = \"Tooltip\";\n /** Enables annotation to inherit the interaction option */\n AnnotationConstraints[AnnotationConstraints[\"Interaction\"] = 120] = \"Interaction\";\n /** Disable all annotation Constraints */\n AnnotationConstraints[AnnotationConstraints[\"None\"] = 0] = \"None\";\n})(AnnotationConstraints || (AnnotationConstraints = {}));\n/**\n * Enables/Disables certain features of node\n * None - Disable all node Constraints\n * Select - Enables node to be selected\n * Drag - Enables node to be Dragged\n * Rotate - Enables node to be Rotate\n * Shadow - Enables node to display shadow\n * PointerEvents - Enables node to provide pointer option\n * Delete - Enables node to delete\n * InConnect - Enables node to provide in connect option\n * OutConnect - Enables node to provide out connect option\n * Individual - Enables node to provide individual resize option\n * Expandable - Enables node to provide Expandable option\n * AllowDrop - Enables node to provide allow to drop option\n * Inherit - Enables node to inherit the interaction option\n * ResizeNorthEast - Enable ResizeNorthEast of the node\n * ResizeEast - Enable ResizeEast of the node\n * ResizeSouthEast - Enable ResizeSouthEast of the node\n * ResizeSouth - Enable ResizeSouthWest of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeSouth - Enable ResizeSouth of the node\n * ResizeSouthWest - Enable ResizeSouthWest of the node\n * ResizeWest - Enable ResizeWest of the node\n * ResizeNorth - Enable ResizeNorth of the node\n * Resize - Enables the Aspect ratio fo the node\n * AspectRatio - Enables the Aspect ratio fo the node\n * Tooltip - Enables or disables tool tip for the Nodes\n * InheritTooltip - Enables or disables tool tip for the Nodes\n * ReadOnly - Enables the ReadOnly support for Annotation\n * Default - Enables all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var NodeConstraints;\n(function (NodeConstraints) {\n /** Disable all node Constraints. */\n NodeConstraints[NodeConstraints[\"None\"] = 0] = \"None\";\n /** Enables node to be selected. */\n NodeConstraints[NodeConstraints[\"Select\"] = 2] = \"Select\";\n /** Enables node to be Dragged. */\n NodeConstraints[NodeConstraints[\"Drag\"] = 4] = \"Drag\";\n /** Enables node to be Rotate. */\n NodeConstraints[NodeConstraints[\"Rotate\"] = 8] = \"Rotate\";\n /** Enables node to display shadow. */\n NodeConstraints[NodeConstraints[\"Shadow\"] = 16] = \"Shadow\";\n /** Enables node to provide pointer option */\n NodeConstraints[NodeConstraints[\"PointerEvents\"] = 32] = \"PointerEvents\";\n /** Enables node to delete */\n NodeConstraints[NodeConstraints[\"Delete\"] = 64] = \"Delete\";\n /** Enables node to provide in connect option */\n NodeConstraints[NodeConstraints[\"InConnect\"] = 128] = \"InConnect\";\n /** Enables node to provide out connect option */\n NodeConstraints[NodeConstraints[\"OutConnect\"] = 256] = \"OutConnect\";\n /** Enables node to provide individual resize option */\n NodeConstraints[NodeConstraints[\"Individual\"] = 512] = \"Individual\";\n /** Enables node to provide Expandable option */\n NodeConstraints[NodeConstraints[\"Expandable\"] = 1024] = \"Expandable\";\n /** Enables node to provide allow to drop option */\n NodeConstraints[NodeConstraints[\"AllowDrop\"] = 2048] = \"AllowDrop\";\n /** Enables node to inherit the interaction option */\n NodeConstraints[NodeConstraints[\"Inherit\"] = 78] = \"Inherit\";\n /** Enable ResizeNorthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthEast\"] = 4096] = \"ResizeNorthEast\";\n /** Enable ResizeEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeEast\"] = 8192] = \"ResizeEast\";\n /** Enable ResizeSouthEast of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthEast\"] = 16384] = \"ResizeSouthEast\";\n /** Enable ResizeSouth of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouth\"] = 32768] = \"ResizeSouth\";\n /** Enable ResizeSouthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeSouthWest\"] = 65536] = \"ResizeSouthWest\";\n /** Enable ResizeWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeWest\"] = 131072] = \"ResizeWest\";\n /** Enable ResizeNorthWest of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorthWest\"] = 262144] = \"ResizeNorthWest\";\n /** Enable ResizeNorth of the node */\n NodeConstraints[NodeConstraints[\"ResizeNorth\"] = 524288] = \"ResizeNorth\";\n /** Enable Resize of the node */\n NodeConstraints[NodeConstraints[\"Resize\"] = 1044480] = \"Resize\";\n /** Enables the Aspect ratio fo the node */\n NodeConstraints[NodeConstraints[\"AspectRatio\"] = 1048576] = \"AspectRatio\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"Tooltip\"] = 2097152] = \"Tooltip\";\n /** Enables or disables tool tip for the Nodes */\n NodeConstraints[NodeConstraints[\"InheritTooltip\"] = 4194304] = \"InheritTooltip\";\n /** Enables the ReadOnly support for Annotation */\n NodeConstraints[NodeConstraints[\"ReadOnly\"] = 8388608] = \"ReadOnly\";\n /** hide all resize support for node */\n NodeConstraints[NodeConstraints[\"HideThumbs\"] = 16777216] = \"HideThumbs\";\n /** Enables or disables child in parent for the swimLane node */\n NodeConstraints[NodeConstraints[\"AllowMovingOutsideLane\"] = 33554432] = \"AllowMovingOutsideLane\";\n /** Enables all constraints */\n NodeConstraints[NodeConstraints[\"Default\"] = 5240814] = \"Default\";\n})(NodeConstraints || (NodeConstraints = {}));\n/** Enables/Disables The element actions\n * None - Diables all element actions are none\n * ElementIsPort - Enable element action is port\n * ElementIsGroup - Enable element action as Group\n *\n * @private\n */\nexport var ElementAction;\n(function (ElementAction) {\n /** Disables all element actions are none */\n ElementAction[ElementAction[\"None\"] = 0] = \"None\";\n /** Enable the element action is Port */\n ElementAction[ElementAction[\"ElementIsPort\"] = 2] = \"ElementIsPort\";\n /** Enable the element action as Group */\n ElementAction[ElementAction[\"ElementIsGroup\"] = 4] = \"ElementIsGroup\";\n /** Enable the element action if swimlaneHeader is rendered */\n ElementAction[ElementAction[\"HorizontalLaneHeader\"] = 8] = \"HorizontalLaneHeader\";\n})(ElementAction || (ElementAction = {}));\n/** Enables/Disables the handles of the selector\n * Rotate - Enable Rotate Thumb\n * ConnectorSource - Enable Connector source point\n * ConnectorTarget - Enable Connector target point\n * ResizeNorthEast - Enable ResizeNorthEast Resize\n * ResizeEast - Enable ResizeEast Resize\n * ResizeSouthEast - Enable ResizeSouthEast Resize\n * ResizeSouth - Enable ResizeSouth Resize\n * ResizeSouthWest - Enable ResizeSouthWest Resize\n * ResizeWest - Enable ResizeWest Resize\n * ResizeNorthWest - Enable ResizeNorthWest Resize\n * ResizeNorth - Enable ResizeNorth Resize\n * Default - Enables all constraints\n *\n * @private\n */\nexport var ThumbsConstraints;\n(function (ThumbsConstraints) {\n /** Enable Rotate Thumb */\n ThumbsConstraints[ThumbsConstraints[\"Rotate\"] = 2] = \"Rotate\";\n /** Enable Connector source point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorSource\"] = 4] = \"ConnectorSource\";\n /** Enable Connector target point */\n ThumbsConstraints[ThumbsConstraints[\"ConnectorTarget\"] = 8] = \"ConnectorTarget\";\n /** Enable ResizeNorthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthEast\"] = 16] = \"ResizeNorthEast\";\n /** Enable ResizeEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeEast\"] = 32] = \"ResizeEast\";\n /** Enable ResizeSouthEast Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthEast\"] = 64] = \"ResizeSouthEast\";\n /** Enable ResizeSouth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouth\"] = 128] = \"ResizeSouth\";\n /** Enable ResizeSouthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeSouthWest\"] = 256] = \"ResizeSouthWest\";\n /** Enable ResizeWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeWest\"] = 512] = \"ResizeWest\";\n /** Enable ResizeNorthWest Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorthWest\"] = 1024] = \"ResizeNorthWest\";\n /** Enable ResizeNorth Resize */\n ThumbsConstraints[ThumbsConstraints[\"ResizeNorth\"] = 2048] = \"ResizeNorth\";\n /** Enables all constraints */\n ThumbsConstraints[ThumbsConstraints[\"Default\"] = 4094] = \"Default\";\n})(ThumbsConstraints || (ThumbsConstraints = {}));\n/**\n * Enables/Disables certain features of diagram\n * None - Disable DiagramConstraints constraints\n * Bridging - Enables/Disable Bridging support for connector\n * UndoRedo - Enables/Disable the Undo/Redo support\n * Tooltip - Enables/Disable Tooltip support\n * UserInteraction - Enables/Disable UserInteraction support for the diagram\n * ApiUpdate - Enables/Disable ApiUpdate support for the diagram\n * PageEditable - Enables/Disable PageEditable support for the diagram\n * Zoom - Enables/Disable Zoom support for the diagram\n * PanX - Enables/Disable PanX support for the diagram\n * PanY - Enables/Disable PanY support for the diagram\n * Pan - Enables/Disable Pan support the diagram\n * ZoomTextEdit - Enables/Disables zooming the text box while editing the text\n * Virtualization - Enables/Disable Virtualization support the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramConstraints;\n(function (DiagramConstraints) {\n /** Disable DiagramConstraints constraints */\n DiagramConstraints[DiagramConstraints[\"None\"] = 1] = \"None\";\n /** Enables/Disable Bridging support for connector */\n DiagramConstraints[DiagramConstraints[\"Bridging\"] = 2] = \"Bridging\";\n /** Enables/Disable the Undo/Redo support */\n DiagramConstraints[DiagramConstraints[\"UndoRedo\"] = 4] = \"UndoRedo\";\n /** Enables/Disable Tooltip support */\n DiagramConstraints[DiagramConstraints[\"Tooltip\"] = 8] = \"Tooltip\";\n /** Enables/Disable UserInteraction support for the diagram */\n DiagramConstraints[DiagramConstraints[\"UserInteraction\"] = 16] = \"UserInteraction\";\n /** Enables/Disable ApiUpdate support for the diagram */\n DiagramConstraints[DiagramConstraints[\"ApiUpdate\"] = 32] = \"ApiUpdate\";\n /** Enables/Disable PageEditable support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PageEditable\"] = 48] = \"PageEditable\";\n /** Enables/Disable Zoom support for the diagram */\n DiagramConstraints[DiagramConstraints[\"Zoom\"] = 64] = \"Zoom\";\n /** Enables/Disable PanX support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanX\"] = 128] = \"PanX\";\n /** Enables/Disable PanY support for the diagram */\n DiagramConstraints[DiagramConstraints[\"PanY\"] = 256] = \"PanY\";\n /** Enables/Disable Pan support the diagram */\n DiagramConstraints[DiagramConstraints[\"Pan\"] = 384] = \"Pan\";\n /** Enables/Disables zooming the text box while editing the text */\n DiagramConstraints[DiagramConstraints[\"ZoomTextEdit\"] = 512] = \"ZoomTextEdit\";\n /** Enables/Disable Virtualization support the diagram */\n DiagramConstraints[DiagramConstraints[\"Virtualization\"] = 1024] = \"Virtualization\";\n /** Enables/ Disable the line routing */\n DiagramConstraints[DiagramConstraints[\"LineRouting\"] = 2048] = \"LineRouting\";\n /** Enables/Disable all constraints */\n DiagramConstraints[DiagramConstraints[\"Default\"] = 500] = \"Default\";\n})(DiagramConstraints || (DiagramConstraints = {}));\n/**\n * Activates the diagram tools\n * None - Enables/Disable single select support for the diagram\n * SingleSelect - Enables/Disable single select support for the diagram\n * MultipleSelect - Enables/Disable MultipleSelect select support for the diagram\n * ZoomPan - Enables/Disable ZoomPan support for the diagram\n * DrawOnce - Enables/Disable continuousDraw support for the diagram\n * ContinuousDraw - Enables/Disable continuousDraw support for the diagram\n * Default - Enables/Disable all constraints\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var DiagramTools;\n(function (DiagramTools) {\n /** Disable all constraints */\n DiagramTools[DiagramTools[\"None\"] = 0] = \"None\";\n /** Enables/Disable single select support for the diagram */\n DiagramTools[DiagramTools[\"SingleSelect\"] = 1] = \"SingleSelect\";\n /** Enables/Disable MultipleSelect select support for the diagram */\n DiagramTools[DiagramTools[\"MultipleSelect\"] = 2] = \"MultipleSelect\";\n /** Enables/Disable ZoomPan support for the diagram */\n DiagramTools[DiagramTools[\"ZoomPan\"] = 4] = \"ZoomPan\";\n /** Enables/Disable DrawOnce support for the diagram */\n DiagramTools[DiagramTools[\"DrawOnce\"] = 8] = \"DrawOnce\";\n /** Enables/Disable continuousDraw support for the diagram */\n DiagramTools[DiagramTools[\"ContinuousDraw\"] = 16] = \"ContinuousDraw\";\n /** Enables/Disable all constraints */\n DiagramTools[DiagramTools[\"Default\"] = 3] = \"Default\";\n})(DiagramTools || (DiagramTools = {}));\n/**\n * Defines the container/canvas transform\n * Self - Sets the transform type as Self\n * Parent - Sets the transform type as Parent\n */\nexport var Transform;\n(function (Transform) {\n /** Self - Sets the transform type as Self */\n Transform[Transform[\"Self\"] = 1] = \"Self\";\n /** Parent - Sets the transform type as Parent */\n Transform[Transform[\"Parent\"] = 2] = \"Parent\";\n})(Transform || (Transform = {}));\n/**\n * Defines the rendering mode for diagram\n * Canvas - Sets the rendering mode type as Canvas\n * Svg - Sets the rendering mode type as Svg\n */\nexport var RenderMode;\n(function (RenderMode) {\n /** Canvas - Sets the rendering mode type as Canvas */\n RenderMode[RenderMode[\"Canvas\"] = 0] = \"Canvas\";\n /** Svg - Sets the rendering mode type as Svg */\n RenderMode[RenderMode[\"Svg\"] = 1] = \"Svg\";\n})(RenderMode || (RenderMode = {}));\n/**\n * Sets a combination of key modifiers, on recognition of which the command will be executed.They are\n * * None - no modifiers are pressed\n * * Control - ctrl key\n * * Meta - meta key im mac\n * * Alt - alt key\n * * Shift - shift key\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var KeyModifiers;\n(function (KeyModifiers) {\n /** No modifiers are pressed */\n KeyModifiers[KeyModifiers[\"None\"] = 0] = \"None\";\n /** The CTRL key */\n KeyModifiers[KeyModifiers[\"Control\"] = 1] = \"Control\";\n /** The Meta key pressed in Mac */\n KeyModifiers[KeyModifiers[\"Meta\"] = 1] = \"Meta\";\n /** The ALT key */\n KeyModifiers[KeyModifiers[\"Alt\"] = 2] = \"Alt\";\n /** The Shift key */\n KeyModifiers[KeyModifiers[\"Shift\"] = 4] = \"Shift\";\n})(KeyModifiers || (KeyModifiers = {}));\n/**\n * Sets the key value, on recognition of which the command will be executed. They are\n * * none - no key\n * * Number0 = The 0 key\n * * Number1 = The 1 key\n * * Number2 = The 2 key\n * * Number3 = The 3 key\n * * Number4 = The 4 key\n * * Number5 = The 5 key\n * * Number6 = The 6 key\n * * Number7 = The 7 key\n * * Number8 = The 8 key\n * * Number9 = The 9 key\n * * Number0 = The 0 key\n * * BackSpace = The BackSpace key\n * * F1 = The f1 key\n * * F2 = The f2 key\n * * F3 = The f3 key\n * * F4 = The f4 key\n * * F5 = The f5 key\n * * F6 = The f6 key\n * * F7 = The f7 key\n * * F8 = The f8 key\n * * F9 = The f9 key\n * * F10 = The f10 key\n * * F11 = The f11 key\n * * F12 = The f12 key\n * * A = The a key\n * * B = The b key\n * * C = The c key\n * * D = The d key\n * * E = The e key\n * * F = The f key\n * * G = The g key\n * * H = The h key\n * * I = The i key\n * * J = The j key\n * * K = The k key\n * * L = The l key\n * * M = The m key\n * * N = The n key\n * * O = The o key\n * * P = The p key\n * * Q = The q key\n * * R = The r key\n * * S = The s key\n * * T = The t key\n * * U = The u key\n * * V = The v key\n * * W = The w key\n * * X = The x key\n * * Y = The y key\n * * Z = The z key\n * * Left = The left key\n * * Right = The right key\n * * Top = The top key\n * * Bottom = The bottom key\n * * Escape = The Escape key\n * * Tab = The tab key\n * * Delete = The delete key\n * * Enter = The enter key\n * * The Space key\n * * The page up key\n * * The page down key\n * * The end key\n * * The home key\n * * The Minus\n * * The Plus\n * * The Star\n * * The Open Square Bracket\n * * The close Square Bracket\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var Keys;\n(function (Keys) {\n /** No key pressed */\n Keys[Keys[\"None\"] = null] = \"None\";\n /** The 0 key */\n Keys[Keys[\"Number0\"] = 0] = \"Number0\";\n /** The 1 key */\n Keys[Keys[\"Number1\"] = 1] = \"Number1\";\n /** The 2 key */\n Keys[Keys[\"Number2\"] = 2] = \"Number2\";\n /** The 3 key */\n Keys[Keys[\"Number3\"] = 3] = \"Number3\";\n /** The 4 key */\n Keys[Keys[\"Number4\"] = 4] = \"Number4\";\n /** The 5 key */\n Keys[Keys[\"Number5\"] = 5] = \"Number5\";\n /** The 6 key */\n Keys[Keys[\"Number6\"] = 6] = \"Number6\";\n /** The 7 key */\n Keys[Keys[\"Number7\"] = 7] = \"Number7\";\n /** The 8 key */\n Keys[Keys[\"Number8\"] = 8] = \"Number8\";\n /** The 9 key */\n Keys[Keys[\"Number9\"] = 9] = \"Number9\";\n /** The A key */\n Keys[Keys[\"A\"] = 65] = \"A\";\n /** The B key */\n Keys[Keys[\"B\"] = 66] = \"B\";\n /** The C key */\n Keys[Keys[\"C\"] = 67] = \"C\";\n /** The D key */\n Keys[Keys[\"D\"] = 68] = \"D\";\n /** The E key */\n Keys[Keys[\"E\"] = 69] = \"E\";\n /** The F key */\n Keys[Keys[\"F\"] = 70] = \"F\";\n /** The G key */\n Keys[Keys[\"G\"] = 71] = \"G\";\n /** The H key */\n Keys[Keys[\"H\"] = 72] = \"H\";\n /** The I key */\n Keys[Keys[\"I\"] = 73] = \"I\";\n /** The J key */\n Keys[Keys[\"J\"] = 74] = \"J\";\n /** The K key */\n Keys[Keys[\"K\"] = 75] = \"K\";\n /** The L key */\n Keys[Keys[\"L\"] = 76] = \"L\";\n /** The M key */\n Keys[Keys[\"M\"] = 77] = \"M\";\n /** The N key */\n Keys[Keys[\"N\"] = 78] = \"N\";\n /** The O key */\n Keys[Keys[\"O\"] = 79] = \"O\";\n /** The P key */\n Keys[Keys[\"P\"] = 80] = \"P\";\n /** The Q key */\n Keys[Keys[\"Q\"] = 81] = \"Q\";\n /** The R key */\n Keys[Keys[\"R\"] = 82] = \"R\";\n /** The S key */\n Keys[Keys[\"S\"] = 83] = \"S\";\n /** The T key */\n Keys[Keys[\"T\"] = 84] = \"T\";\n /** The U key */\n Keys[Keys[\"U\"] = 85] = \"U\";\n /** The V key */\n Keys[Keys[\"V\"] = 86] = \"V\";\n /** The W key */\n Keys[Keys[\"W\"] = 87] = \"W\";\n /** The X key */\n Keys[Keys[\"X\"] = 88] = \"X\";\n /** The Y key */\n Keys[Keys[\"Y\"] = 89] = \"Y\";\n /** The Z key */\n Keys[Keys[\"Z\"] = 90] = \"Z\";\n /** The left arrow key */\n Keys[Keys[\"Left\"] = 37] = \"Left\";\n /** The up arrow key */\n Keys[Keys[\"Up\"] = 38] = \"Up\";\n /** The right arrow key */\n Keys[Keys[\"Right\"] = 39] = \"Right\";\n /** The down arrow key */\n Keys[Keys[\"Down\"] = 40] = \"Down\";\n /** The Escape key */\n Keys[Keys[\"Escape\"] = 27] = \"Escape\";\n /** The Space key */\n Keys[Keys[\"Space\"] = 32] = \"Space\";\n /** The page up key */\n Keys[Keys[\"PageUp\"] = 33] = \"PageUp\";\n /** The Space key */\n Keys[Keys[\"PageDown\"] = 34] = \"PageDown\";\n /** The Space key */\n Keys[Keys[\"End\"] = 35] = \"End\";\n /** The Space key */\n Keys[Keys[\"Home\"] = 36] = \"Home\";\n /** The delete key */\n Keys[Keys[\"Delete\"] = 46] = \"Delete\";\n /** The tab key */\n Keys[Keys[\"Tab\"] = 9] = \"Tab\";\n /** The enter key */\n Keys[Keys[\"Enter\"] = 13] = \"Enter\";\n /** The BackSpace key */\n Keys[Keys[\"BackSpace\"] = 8] = \"BackSpace\";\n /** The F1 key */\n Keys[Keys[\"F1\"] = 112] = \"F1\";\n /** The F2 key */\n Keys[Keys[\"F2\"] = 113] = \"F2\";\n /** The F3 key */\n Keys[Keys[\"F3\"] = 114] = \"F3\";\n /** The F4 key */\n Keys[Keys[\"F4\"] = 115] = \"F4\";\n /** The F5 key */\n Keys[Keys[\"F5\"] = 116] = \"F5\";\n /** The F6 key */\n Keys[Keys[\"F6\"] = 117] = \"F6\";\n /** The F7 key */\n Keys[Keys[\"F7\"] = 118] = \"F7\";\n /** The F8 key */\n Keys[Keys[\"F8\"] = 119] = \"F8\";\n /** The F9 key */\n Keys[Keys[\"F9\"] = 120] = \"F9\";\n /** The F10 key */\n Keys[Keys[\"F10\"] = 121] = \"F10\";\n /** The F111 key */\n Keys[Keys[\"F11\"] = 122] = \"F11\";\n /** The F12 key */\n Keys[Keys[\"F12\"] = 123] = \"F12\";\n /** The Star */\n Keys[Keys[\"Star\"] = 56] = \"Star\";\n /** The Plus */\n Keys[Keys[\"Plus\"] = 187] = \"Plus\";\n /** The Minus */\n Keys[Keys[\"Minus\"] = 189] = \"Minus\";\n /** The Open Square bracket */\n Keys[Keys[\"BracketLeft\"] = 219] = \"BracketLeft\";\n /** The close Square bracket */\n Keys[Keys[\"BracketRight\"] = 221] = \"BracketRight\";\n})(Keys || (Keys = {}));\n/**\n * Enables/Disables certain actions of diagram\n * * Render - Indicates the diagram is in render state.\n * * PublicMethod - Indicates the diagram public method is in action.\n * * ToolAction - Indicates the diagram Tool is in action.\n * * UndoRedo - Indicates the diagram undo/redo is in action.\n * * TextEdit - Indicates the text editing is in progress.\n * * Group - Indicates the group is in progress.\n * * Clear - Indicates diagram have clear all.\n * * PreventClearSelection - prevents diagram from clear selection\n */\nexport var DiagramAction;\n(function (DiagramAction) {\n /** Indicates the diagram is in render state.r */\n DiagramAction[DiagramAction[\"Render\"] = 2] = \"Render\";\n /** Indicates the diagram public method is in action. */\n DiagramAction[DiagramAction[\"PublicMethod\"] = 4] = \"PublicMethod\";\n /** Indicates the diagram Tool is in action. */\n DiagramAction[DiagramAction[\"ToolAction\"] = 8] = \"ToolAction\";\n /** Indicates the diagram undo/redo is in action. */\n DiagramAction[DiagramAction[\"UndoRedo\"] = 16] = \"UndoRedo\";\n /** Indicates the text editing is in progress. */\n DiagramAction[DiagramAction[\"TextEdit\"] = 32] = \"TextEdit\";\n /** Indicates the group is in progress. */\n DiagramAction[DiagramAction[\"Group\"] = 64] = \"Group\";\n /** Indicates diagram have clear all. */\n DiagramAction[DiagramAction[\"Clear\"] = 128] = \"Clear\";\n /** prevents diagram from clear selection. */\n DiagramAction[DiagramAction[\"PreventClearSelection\"] = 256] = \"PreventClearSelection\";\n /** Indicates whether drag or rotate tool has been activated */\n DiagramAction[DiagramAction[\"Interactions\"] = 512] = \"Interactions\";\n /** Use to prevent the history during some action in diagram */\n DiagramAction[DiagramAction[\"PreventHistory\"] = 1024] = \"PreventHistory\";\n /** Use to prevent the icon while expand a node in diagram */\n DiagramAction[DiagramAction[\"PreventIconsUpdate\"] = 2048] = \"PreventIconsUpdate\";\n /** Use to prevent the collection change event while dragging lane from palette and over it in diagram */\n DiagramAction[DiagramAction[\"PreventCollectionChangeOnDragOver\"] = 4096] = \"PreventCollectionChangeOnDragOver\";\n /** Use to prevent the z order on dragging the diagram elements */\n DiagramAction[DiagramAction[\"PreventZIndexOnDragging\"] = 8192] = \"PreventZIndexOnDragging\";\n /** Indicates whether group dragging has been activated */\n DiagramAction[DiagramAction[\"isGroupDragging\"] = 16384] = \"isGroupDragging\";\n /** Indicates whether drag is initiated by mouse */\n DiagramAction[DiagramAction[\"DragUsingMouse\"] = 32768] = \"DragUsingMouse\";\n /** Indicates whether decorator property is changed or not */\n DiagramAction[DiagramAction[\"DecoratorPropertyChange\"] = 65536] = \"DecoratorPropertyChange\";\n /** Avoid dropping of child nodes into the swim lane */\n DiagramAction[DiagramAction[\"PreventLaneContainerUpdate\"] = 131072] = \"PreventLaneContainerUpdate\";\n})(DiagramAction || (DiagramAction = {}));\n/**\n * Defines the Selector type to be drawn\n * None - Draws Normal selector with resize handles\n * Symbol - Draws only the rectangle for the selector\n */\nexport var RendererAction;\n(function (RendererAction) {\n /** None - Draws Normal selector with resize handles */\n RendererAction[RendererAction[\"None\"] = 2] = \"None\";\n /** DrawSelectorBorder - Draws only the Border for the selector */\n RendererAction[RendererAction[\"DrawSelectorBorder\"] = 4] = \"DrawSelectorBorder\";\n /** PreventRenderSelector - Avoid the render of selector during interaction */\n RendererAction[RendererAction[\"PreventRenderSelector\"] = 8] = \"PreventRenderSelector\";\n})(RendererAction || (RendererAction = {}));\nexport var RealAction;\n(function (RealAction) {\n RealAction[RealAction[\"None\"] = 0] = \"None\";\n RealAction[RealAction[\"PreventDrag\"] = 2] = \"PreventDrag\";\n RealAction[RealAction[\"PreventScale\"] = 4] = \"PreventScale\";\n RealAction[RealAction[\"PreventDataInit\"] = 8] = \"PreventDataInit\";\n /** Indicates when the diagram is scrolled horizontal using scroll bar */\n RealAction[RealAction[\"hScrollbarMoved\"] = 16] = \"hScrollbarMoved\";\n /** Indicates when the diagram is scrolled vertical using scroll bar */\n RealAction[RealAction[\"vScrollbarMoved\"] = 32] = \"vScrollbarMoved\";\n /** Indicates whether animation happens or not */\n RealAction[RealAction[\"AnimationClick\"] = 64] = \"AnimationClick\";\n /** Enable the group action */\n RealAction[RealAction[\"EnableGroupAction\"] = 128] = \"EnableGroupAction\";\n /** Indicate action in Progress */\n RealAction[RealAction[\"PanInProgress\"] = 256] = \"PanInProgress\";\n /** Indicate overview action */\n RealAction[RealAction[\"OverViewAction\"] = 512] = \"OverViewAction\";\n})(RealAction || (RealAction = {}));\n/** @private */\nexport var ScrollActions;\n(function (ScrollActions) {\n ScrollActions[ScrollActions[\"None\"] = 0] = \"None\";\n /** Indicates when the scroll properties are changed using property change */\n ScrollActions[ScrollActions[\"PropertyChange\"] = 1024] = \"PropertyChange\";\n /** Indicates when the scroll properties are changed using interaction */\n ScrollActions[ScrollActions[\"Interaction\"] = 2048] = \"Interaction\";\n})(ScrollActions || (ScrollActions = {}));\n/** @private */\nexport var NoOfSegments;\n(function (NoOfSegments) {\n NoOfSegments[NoOfSegments[\"Zero\"] = 0] = \"Zero\";\n NoOfSegments[NoOfSegments[\"One\"] = 1] = \"One\";\n NoOfSegments[NoOfSegments[\"Two\"] = 2] = \"Two\";\n NoOfSegments[NoOfSegments[\"Three\"] = 3] = \"Three\";\n NoOfSegments[NoOfSegments[\"Four\"] = 4] = \"Four\";\n NoOfSegments[NoOfSegments[\"Five\"] = 5] = \"Five\";\n})(NoOfSegments || (NoOfSegments = {}));\n/**\n * events of diagram\n *\n * @private\n */\nexport var DiagramEvent;\n(function (DiagramEvent) {\n DiagramEvent[DiagramEvent[\"collectionChange\"] = 0] = \"collectionChange\";\n DiagramEvent[DiagramEvent[\"rotateChange\"] = 1] = \"rotateChange\";\n DiagramEvent[DiagramEvent[\"positionChange\"] = 2] = \"positionChange\";\n DiagramEvent[DiagramEvent[\"propertyChange\"] = 3] = \"propertyChange\";\n DiagramEvent[DiagramEvent[\"selectionChange\"] = 4] = \"selectionChange\";\n DiagramEvent[DiagramEvent[\"sizeChange\"] = 5] = \"sizeChange\";\n DiagramEvent[DiagramEvent[\"drop\"] = 6] = \"drop\";\n DiagramEvent[DiagramEvent[\"sourcePointChange\"] = 7] = \"sourcePointChange\";\n DiagramEvent[DiagramEvent[\"targetPointChange\"] = 8] = \"targetPointChange\";\n DiagramEvent[DiagramEvent[\"connectionChange\"] = 9] = \"connectionChange\";\n DiagramEvent[DiagramEvent[\"animationComplete\"] = 10] = \"animationComplete\";\n DiagramEvent[DiagramEvent[\"click\"] = 11] = \"click\";\n DiagramEvent[DiagramEvent[\"doubleClick\"] = 12] = \"doubleClick\";\n DiagramEvent[DiagramEvent[\"scrollChange\"] = 13] = \"scrollChange\";\n DiagramEvent[DiagramEvent[\"dragEnter\"] = 14] = \"dragEnter\";\n DiagramEvent[DiagramEvent[\"dragLeave\"] = 15] = \"dragLeave\";\n DiagramEvent[DiagramEvent[\"dragOver\"] = 16] = \"dragOver\";\n DiagramEvent[DiagramEvent[\"textEdit\"] = 17] = \"textEdit\";\n DiagramEvent[DiagramEvent[\"paletteSelectionChange\"] = 18] = \"paletteSelectionChange\";\n DiagramEvent[DiagramEvent[\"historyChange\"] = 19] = \"historyChange\";\n DiagramEvent[DiagramEvent[\"mouseEnter\"] = 20] = \"mouseEnter\";\n DiagramEvent[DiagramEvent[\"mouseLeave\"] = 21] = \"mouseLeave\";\n DiagramEvent[DiagramEvent[\"mouseOver\"] = 22] = \"mouseOver\";\n DiagramEvent[DiagramEvent[\"expandStateChange\"] = 23] = \"expandStateChange\";\n DiagramEvent[DiagramEvent[\"segmentCollectionChange\"] = 24] = \"segmentCollectionChange\";\n DiagramEvent[DiagramEvent[\"commandExecute\"] = 25] = \"commandExecute\";\n DiagramEvent[DiagramEvent[\"historyStateChange\"] = 26] = \"historyStateChange\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseDown\"] = 27] = \"onUserHandleMouseDown\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseUp\"] = 28] = \"onUserHandleMouseUp\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseEnter\"] = 29] = \"onUserHandleMouseEnter\";\n DiagramEvent[DiagramEvent[\"onUserHandleMouseLeave\"] = 30] = \"onUserHandleMouseLeave\";\n DiagramEvent[DiagramEvent[\"onImageLoad\"] = 31] = \"onImageLoad\";\n DiagramEvent[DiagramEvent[\"onDoBindingInit\"] = 32] = \"onDoBindingInit\";\n DiagramEvent[DiagramEvent[\"keyUp\"] = 33] = \"keyUp\";\n DiagramEvent[DiagramEvent[\"keyDown\"] = 34] = \"keyDown\";\n DiagramEvent[DiagramEvent[\"fixedUserHandleClick\"] = 35] = \"fixedUserHandleClick\";\n DiagramEvent[DiagramEvent[\"elementDraw\"] = 36] = \"elementDraw\";\n DiagramEvent[DiagramEvent[\"mouseWheel\"] = 37] = \"mouseWheel\";\n DiagramEvent[DiagramEvent[\"segmentChange\"] = 38] = \"segmentChange\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseDown\"] = 39] = \"onFixedUserHandleMouseDown\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseUp\"] = 40] = \"onFixedUserHandleMouseUp\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseEnter\"] = 41] = \"onFixedUserHandleMouseEnter\";\n DiagramEvent[DiagramEvent[\"onFixedUserHandleMouseLeave\"] = 42] = \"onFixedUserHandleMouseLeave\";\n DiagramEvent[DiagramEvent[\"loaded\"] = 43] = \"loaded\";\n})(DiagramEvent || (DiagramEvent = {}));\n/** Enables/Disables certain features of port connection\n *\n * @aspNumberEnum\n * @IgnoreSingular\n */\nexport var PortConstraints;\n(function (PortConstraints) {\n /** Disable all constraints */\n PortConstraints[PortConstraints[\"None\"] = 1] = \"None\";\n /** Enables connections with connector */\n PortConstraints[PortConstraints[\"Drag\"] = 2] = \"Drag\";\n /** Enables to create the connection when mouse hover on the port */\n PortConstraints[PortConstraints[\"Draw\"] = 4] = \"Draw\";\n /** Enables to only connect the target end of connector */\n PortConstraints[PortConstraints[\"InConnect\"] = 8] = \"InConnect\";\n /** Enables to only connect the source end of connector */\n PortConstraints[PortConstraints[\"OutConnect\"] = 16] = \"OutConnect\";\n /**Enables or disables the Tooltip for the ports*/\n PortConstraints[PortConstraints[\"ToolTip\"] = 32] = \"ToolTip\";\n /** Enables or disables the Tooltip for the ports */\n PortConstraints[PortConstraints[\"InheritTooltip\"] = 64] = \"InheritTooltip\";\n /** Enables all constraints */\n PortConstraints[PortConstraints[\"Default\"] = 24] = \"Default\";\n})(PortConstraints || (PortConstraints = {}));\n/**\n * Defines the context menu click\n * contextMenuClick - Sets the context menu click as contextMenuClick\n */\nexport var contextMenuClick = \n/** contextMenuClick - Sets the context menu click as contextMenuClick */\n'contextMenuClick';\n/**\n * Defines the context menu open\n * contextMenuOpen - Sets the context menu open as contextMenuOpen\n */\nexport var contextMenuOpen = \n/** contextMenuOpen - Sets the context menu open as contextMenuOpen */\n'contextMenuOpen';\n/**\n * Defines the context menu Before Item Render\n * contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender\n */\nexport var contextMenuBeforeItemRender = \n/** contextMenuBeforeItemRender - Sets the context menu open as contextMenuBeforeItemRender */\n'contextMenuBeforeItemRender';\n/**\n * Defines the visibility of the control points in the Bezier connector\n */\nexport var ControlPointsVisibility;\n(function (ControlPointsVisibility) {\n /** None - Hides all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"None\"] = 1] = \"None\";\n /** Source - Shows the source control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Source\"] = 2] = \"Source\";\n /** Target - Shows the target control point*/\n ControlPointsVisibility[ControlPointsVisibility[\"Target\"] = 4] = \"Target\";\n /** Intermediate - Shows the intermediate control points*/\n ControlPointsVisibility[ControlPointsVisibility[\"Intermediate\"] = 8] = \"Intermediate\";\n /** All - Shows all the control points of the Bezier connector*/\n ControlPointsVisibility[ControlPointsVisibility[\"All\"] = 14] = \"All\";\n})(ControlPointsVisibility || (ControlPointsVisibility = {}));\nexport var BezierSmoothness;\n(function (BezierSmoothness) {\n /** Disable all smoothness Constraints. */\n BezierSmoothness[BezierSmoothness[\"None\"] = 0] = \"None\";\n /** Enables the SymmetricAngle for a bezier segment to the angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricAngle\"] = 2] = \"SymmetricAngle\";\n /** Enables the SymmetricDistance for bezier segment to the distance between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"SymmetricDistance\"] = 4] = \"SymmetricDistance\";\n /** Enables the symmetric for bezier segment to the distance and angle between the control point as same. */\n BezierSmoothness[BezierSmoothness[\"Default\"] = 6] = \"Default\";\n})(BezierSmoothness || (BezierSmoothness = {}));\n","import { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { getBounds } from '../../utility/base-util';\n/**\n * DiagramElement module defines the basic unit of diagram\n */\nvar DiagramElement = /** @class */ (function () {\n function DiagramElement() {\n /**\n * Sets/Gets the reference point of the element\n * ```html\n *
\n * ```\n * ```typescript\n * let stackPanel: StackPanel = new StackPanel();\n * stackPanel.offsetX = 300; stackPanel.offsetY = 200;\n * stackPanel.width = 100; stackPanel.height = 100;\n * stackPanel.style.fill = 'red';\n * stackPanel.pivot = { x: 0.5, y: 0.5 };\n * let diagram: Diagram = new Diagram({\n * ...\n * basicElements: [stackPanel],\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\n this.pivot = { x: 0.5, y: 0.5 };\n /**\n * Sets or gets whether the content of the element needs to be measured\n */\n this.isDirt = true;\n /**\n * set to true during print and eport\n */\n /** @private */\n this.isExport = false;\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleValue = { x: 0, y: 0 };\n /**\n * set scaling value for print and export\n */\n /** @private */\n this.exportScaleOffset = { x: 0, y: 0 };\n /**\n * Check whether style need to be apply or not\n */\n /** @private */\n this.canApplyStyle = true;\n /**\n * Sets or gets whether the content of the element to be visible\n */\n this.visible = true;\n /**\n * Sets/Gets the x-coordinate of the element\n */\n this.offsetX = 0;\n /**\n * Sets/Gets the y-coordinate of the element\n */\n this.offsetY = 0;\n /**\n * Set the corner of the element\n */\n this.cornerRadius = 0;\n /**\n * Sets/Gets the minimum height of the element\n */\n this.minHeight = undefined;\n /**\n * Sets/Gets the minimum width of the element\n */\n this.minWidth = undefined;\n /**\n * Sets/Gets the maximum width of the element\n */\n this.maxWidth = undefined;\n /**\n * Sets/Gets the maximum height of the element\n */\n this.maxHeight = undefined;\n /**\n * Sets/Gets the width of the element\n */\n this.width = undefined;\n /**\n * Sets/Gets the height of the element\n */\n this.height = undefined;\n /**\n * Sets/Gets the rotate angle of the element\n */\n this.rotateAngle = 0;\n /**\n * Sets/Gets the margin of the element\n */\n this.margin = { left: 0, right: 0, top: 0, bottom: 0 };\n /**\n * Sets/Gets the allowed direction for connections to the port\n */\n this.connectionDirection = 'Auto';\n /**\n * Sets/Gets how the element has to be horizontally arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Left - Aligns the diagram element at the left of its immediate parent\n * * Right - Aligns the diagram element at the right of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.horizontalAlignment = 'Auto';\n /**\n * Sets/Gets how the element has to be vertically arranged with respect to its immediate parent\n * * Stretch - Stretches the diagram element throughout its immediate parent\n * * Top - Aligns the diagram element at the top of its immediate parent\n * * Bottom - Aligns the diagram element at the bottom of its immediate parent\n * * Center - Aligns the diagram element at the center of its immediate parent\n * * Auto - Aligns the diagram element based on the characteristics of its immediate parent\n */\n this.verticalAlignment = 'Auto';\n /**\n * Sets/Gets the mirror image of diagram element in both horizontal and vertical directions\n * * FlipHorizontal - Translate the diagram element throughout its immediate parent\n * * FlipVertical - Rotate the diagram element throughout its immediate parent\n */\n this.flip = 'None';\n /**\n * Sets/Gets the element that is to be flipped in assigned flip direction along with the node\n */\n this.flipMode = 'All';\n /**\n * Sets whether the element has to be aligned with respect to a point/with respect to its immediate parent\n * * Point - Diagram elements will be aligned with respect to a point\n * * Object - Diagram elements will be aligned with respect to its immediate parent\n */\n this.relativeMode = 'Point';\n /**\n * Sets whether the element has to be transformed based on its parent or not\n * * Self - Sets the transform type as Self\n * * Parent - Sets the transform type as Parent\n */\n this.transform = Transform.Self | Transform.Parent;\n /**\n * Sets the style of the element\n */\n this.style = { fill: 'white', strokeColor: 'black', opacity: 1, strokeWidth: 1 };\n /**\n * Gets the minimum size that is required by the element\n */\n this.desiredSize = new Size();\n /**\n * Gets the size that the element will be rendered\n */\n this.actualSize = new Size();\n /**\n * Gets the rotate angle that is set to the immediate parent of the element\n */\n this.parentTransform = 0;\n /** @private */\n this.preventContainer = false;\n /**\n * Gets/Set the boolean value for the element\n */\n this.isSvgRender = false;\n /**\n * Gets/Sets the boundary of the element\n */\n this.bounds = new Rect(0, 0, 0, 0);\n /**\n * Defines the appearance of the shadow of the element\n */\n this.shadow = null;\n /**\n * Defines the description of the diagram element\n */\n this.description = '';\n /**\n * Defines whether the element has to be measured or not\n */\n this.staticSize = false;\n /**\n * Defines the shape of the diagram element\n */\n this.shapeType = '';\n /**\n * check whether the element is rect or not\n */\n this.isRectElement = false;\n /** @private */\n this.isCalculateDesiredSize = true;\n /**\n * Set the offset values for container in flipping\n */\n /** @private */\n this.flipOffset = { x: 0, y: 0 };\n /**\n * Defines whether the element is group or port\n */\n /** @private */\n this.elementActions = ElementAction.None;\n /** @private */\n this.inversedAlignment = true;\n //private variables\n this.position = undefined;\n this.unitMode = undefined;\n /** @private */\n this.float = false;\n this.floatingBounds = undefined;\n }\n // public constructor() {\n // this.id = randomId();\n // }\n /**\n * Sets the offset of the element with respect to its parent \\\n *\n * @returns { void }Sets the offset of the element with respect to its parent\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {UnitMode} mode - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.setOffsetWithRespectToBounds = function (x, y, mode) {\n this.unitMode = mode;\n this.position = { x: x, y: y };\n };\n /**\n * Gets the position of the element with respect to its parent \\\n *\n * @returns { PointModel } Gets the position of the element with respect to its parent\\\n * @param {Size} size - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.getAbsolutePosition = function (size) {\n if (this.position !== undefined) {\n if (this.unitMode === 'Absolute') {\n return this.position;\n }\n else {\n return {\n x: this.position.x * size.width, y: this.position.y * size.height\n };\n }\n }\n return undefined;\n };\n Object.defineProperty(DiagramElement.prototype, \"outerBounds\", {\n get: function () {\n return this.floatingBounds || this.bounds;\n },\n /**\n * used to set the outer bounds value \\\n *\n * @returns { void } used to set the outer bounds value.\\\n * @param {Rect} bounds - provide the id value.\n *\n * @private\n */\n set: function (bounds) {\n this.floatingBounds = bounds;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the minimum space that the element requires \\\n *\n * @returns { void } Measures the minimum space that the element requires.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} obj - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n DiagramElement.prototype.measure = function (availableSize, obj, callback) {\n var width = this.width !== undefined ? this.width : (availableSize.width || 0) - this.margin.left - this.margin.right;\n var height = this.height !== undefined ? this.height : (availableSize.height || 0) - this.margin.top - this.margin.bottom;\n if (this.id) {\n if (height === 0 && (this.elementActions & ElementAction.HorizontalLaneHeader)) {\n height = this.actualSize.height;\n }\n }\n this.desiredSize = new Size(width, height);\n if (this.isCalculateDesiredSize) {\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n }\n return this.desiredSize;\n };\n /**\n * Arranges the element \\\n *\n * @returns { PointModel } Arranges the element\\\n * @param {Size} desiredSize - provide the x value.\n *\n * @private\n */\n DiagramElement.prototype.arrange = function (desiredSize) {\n this.actualSize = desiredSize;\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Updates the bounds of the element \\\n *\n * @returns { void } Updates the bounds of the element\\\n *\n * @private\n */\n DiagramElement.prototype.updateBounds = function () {\n this.bounds = getBounds(this);\n };\n /**\n * Validates the size of the element with respect to its minimum and maximum size \\\n *\n * @returns { Size } Validates the size of the element with respect to its minimum and maximum size.\\\n * @param {Size} desiredSize - provide the id value.\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramElement.prototype.validateDesiredSize = function (desiredSize, availableSize) {\n //Empty canvas\n if (this.isRectElement && !this.width && !this.minWidth && !this.maxWidth) {\n desiredSize.width = 50;\n }\n if (this.isRectElement && !this.height && !this.minHeight && !this.maxHeight) {\n desiredSize.height = 50;\n }\n if (desiredSize === undefined || this.width !== undefined &&\n this.height !== undefined) {\n desiredSize = desiredSize || new Size();\n desiredSize.width = this.width === undefined ? (availableSize.width || 0)\n - this.margin.left - this.margin.right : this.width;\n desiredSize.height = this.height === undefined ? (availableSize.height || 0)\n - this.margin.top - this.margin.bottom : this.height;\n }\n //Considering min values\n if (this.minWidth !== undefined) {\n desiredSize.width = Math.max(desiredSize.width, this.minWidth);\n }\n if (this.minHeight !== undefined) {\n desiredSize.height = Math.max(desiredSize.height, this.minHeight);\n }\n //Considering max values\n if (this.maxWidth !== undefined && this.maxWidth !== 0) {\n desiredSize.width = Math.min(desiredSize.width, this.maxWidth);\n }\n if (this.maxHeight !== undefined && this.maxHeight !== 0) {\n desiredSize.height = Math.min(desiredSize.height, this.maxHeight);\n }\n return desiredSize;\n };\n return DiagramElement;\n}());\nexport { DiagramElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { ElementAction } from '../../enum/enum';\nimport { Thickness } from '../appearance';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { rotatePoint, getOffset } from '../../utility/base-util';\n/**\n * Container module is used to group related objects\n */\nvar Container = /** @class */ (function (_super) {\n __extends(Container, _super);\n function Container() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the space between the container and its immediate children\n */\n _this.padding = new Thickness(0, 0, 0, 0);\n //private members\n _this.desiredBounds = undefined;\n /** @private */\n _this.measureChildren = true;\n /** @private */\n _this.prevRotateAngle = 0;\n return _this;\n }\n /**\n * returns whether the container has child elements or not\n */\n Container.prototype.hasChildren = function () {\n if (this.children !== undefined && this.children.length > 0) {\n return true;\n }\n return false;\n };\n /**\n * Measures the minimum space that the container requires\n *\n * @param {Size} availableSize\n * @param {string} id\n * @param {Function} callback\n */\n Container.prototype.measure = function (availableSize, id, callback) {\n // measure the element and find the desired size\n this.desiredBounds = undefined;\n var desired = undefined;\n var child;\n var center = { x: 0, y: 0 };\n var y;\n var x;\n var childBounds;\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n if (child.horizontalAlignment === 'Stretch' && !availableSize.width) {\n availableSize.width = child.bounds.width;\n }\n if (child.verticalAlignment === 'Stretch' && !availableSize.height) {\n availableSize.height = child.bounds.height;\n }\n var force = child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch';\n if (this.measureChildren || force || (child instanceof Container && child.measureChildren !== undefined)) {\n child.measure(availableSize, id, callback);\n }\n childBounds = this.GetChildrenBounds(child);\n if (child.horizontalAlignment !== 'Stretch' && child.verticalAlignment !== 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = childBounds;\n }\n else {\n this.desiredBounds.uniteRect(childBounds);\n }\n }\n else if (this.actualSize && !this.actualSize.width && !this.actualSize.height &&\n !child.preventContainer && child.horizontalAlignment === 'Stretch' && child.verticalAlignment === 'Stretch') {\n if (this.desiredBounds === undefined) {\n this.desiredBounds = child.bounds;\n }\n else {\n this.desiredBounds.uniteRect(child.bounds);\n }\n }\n }\n if (this.desiredBounds !== undefined && this.rotateAngle !== 0) {\n var offsetPt = {\n x: this.desiredBounds.x + this.desiredBounds.width * this.pivot.x,\n y: this.desiredBounds.y + this.desiredBounds.height * this.pivot.y\n };\n var newPoint = rotatePoint(this.rotateAngle, undefined, undefined, offsetPt);\n this.desiredBounds.x = newPoint.x - this.desiredBounds.width * this.pivot.x;\n this.desiredBounds.y = newPoint.y - this.desiredBounds.height * this.pivot.y;\n }\n /**\n * Adding padding to the group bounds during initial rendering and for the group selection\n */\n if (this.desiredBounds !== undefined) {\n this.desiredBounds.width += this.padding.left + this.padding.right;\n this.desiredBounds.height += this.padding.top + this.padding.bottom;\n this.desiredBounds.x -= this.padding.left;\n this.desiredBounds.y -= this.padding.top;\n }\n if (this.desiredBounds) {\n desired = new Size(this.desiredBounds.width, this.desiredBounds.height);\n }\n }\n desired = this.validateDesiredSize(desired, availableSize);\n this.stretchChildren(desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the container and its children\n *\n * @param {Size} desiredSize - provide the desiredSize value\n */\n Container.prototype.arrange = function (desiredSize) {\n var child;\n var bounds;\n var childBounds = this.desiredBounds;\n if (childBounds) {\n var x = this.offsetX;\n var y = this.offsetY;\n this.offsetX = childBounds.x + childBounds.width * this.pivot.x;\n this.offsetY = childBounds.y + childBounds.height * this.pivot.y;\n // container has rotateAngle\n if (this.hasChildren()) {\n //Measuring the children\n for (var i = 0; i < this.children.length; i++) {\n child = this.children[parseInt(i.toString(), 10)];\n var arrange = false;\n if (child.horizontalAlignment === 'Stretch') {\n child.offsetX = this.offsetX;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip && (this.elementActions & ElementAction.ElementIsGroup)) {\n child.parentTransform = (this.flip === 'Horizontal' || this.flip === 'Vertical') ?\n -child.parentTransform : child.parentTransform;\n }\n arrange = true;\n }\n if (child.verticalAlignment === 'Stretch') {\n child.offsetY = this.offsetY;\n child.parentTransform = this.parentTransform + this.rotateAngle;\n arrange = true;\n }\n if (arrange || this.measureChildren || (child instanceof Container && child.measureChildren !== undefined)) {\n child.arrange(child.desiredSize);\n }\n //EJ2-839298 - Connector draw cursor is not enabled while hover the group node port\n if (i === 0) {\n this.outerBounds = child.outerBounds;\n }\n else {\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.prevRotateAngle = this.rotateAngle;\n return desiredSize;\n };\n //protected methods\n /**\n * Stretches the child elements based on the size of the container\n *\n * @param {Size} size - provide the size value\n */\n Container.prototype.stretchChildren = function (size) {\n if (this.hasChildren()) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.horizontalAlignment === 'Stretch' || child.desiredSize.width === undefined) {\n child.desiredSize.width = size.width - child.margin.left - child.margin.right;\n }\n if (child.verticalAlignment === 'Stretch' || child.desiredSize.height === undefined) {\n child.desiredSize.height = size.height - child.margin.top - child.margin.bottom;\n }\n if (child instanceof Container) {\n child.stretchChildren(child.desiredSize);\n }\n }\n }\n };\n /**\n * Considers the padding of the element when measuring its desired size\n * @param {Size} size - provide the size value\n */\n Container.prototype.applyPadding = function (size) {\n size.width += this.padding.left + this.padding.right;\n size.height += this.padding.top + this.padding.bottom;\n };\n /**\n * Finds the offset of the child element with respect to the container\n *\n * @param {DiagramElement} child - provide the child value\n * @param {PointModel} center - provide the center value\n */\n Container.prototype.findChildOffsetFromCenter = function (child, center) {\n var topLeft = { x: center.x - child.desiredSize.width / 2, y: center.y - child.desiredSize.height / 2 };\n var offset = getOffset(topLeft, child);\n //Rotate based on child rotate angle\n offset = rotatePoint(child.rotateAngle, center.x, center.y, offset);\n //Rotate based on parent pivot\n offset = rotatePoint(this.rotateAngle + this.parentTransform, this.offsetX, this.offsetY, offset);\n child.offsetX = offset.x;\n child.offsetY = offset.y;\n };\n //private methods - check its need\n Container.prototype.GetChildrenBounds = function (child) {\n var childBounds;\n var childSize = child.desiredSize.clone();\n var diffAngle = child.rotateAngle - this.rotateAngle;\n var refPoint = { x: child.offsetX, y: child.offsetY };\n var left = refPoint.x - childSize.width * child.pivot.x;\n var top = refPoint.y - childSize.height * child.pivot.y;\n var right = left + childSize.width;\n var bottom = top + childSize.height;\n var topLeft = { x: left, y: top };\n var topRight = { x: right, y: top };\n var bottomLeft = { x: left, y: bottom };\n var bottomRight = { x: right, y: bottom };\n topLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topLeft);\n topRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, topRight);\n bottomLeft = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomLeft);\n bottomRight = rotatePoint(child.rotateAngle, child.offsetX, child.offsetY, bottomRight);\n if (this.rotateAngle !== 0) {\n topLeft = rotatePoint(-this.rotateAngle, undefined, undefined, topLeft);\n topRight = rotatePoint(-this.rotateAngle, undefined, undefined, topRight);\n bottomLeft = rotatePoint(-this.rotateAngle, undefined, undefined, bottomLeft);\n bottomRight = rotatePoint(-this.rotateAngle, undefined, undefined, bottomRight);\n }\n return Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n };\n return Container;\n}(DiagramElement));\nexport { Container };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureText } from './../../utility/dom-util';\n/**\n * TextElement is used to display text/annotations\n */\nvar TextElement = /** @class */ (function (_super) {\n __extends(TextElement, _super);\n /**\n * set the id for each element\n */\n function TextElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.textContent = '';\n /** @private */\n _this.canMeasure = true;\n /**Gets or sets the reference mode for annotation rotation. */\n /** @private */\n _this.rotationReference = 'Parent';\n /** @private */\n _this.isLaneOrientation = false;\n /** @private */\n _this.canConsiderBounds = true;\n /** @private */\n _this.annotationVisibility = 'Visible';\n /**\n * sets the hyperlink color to blue\n */\n _this.hyperlink = {\n color: 'blue'\n };\n /** @private */\n _this.doWrap = true;\n _this.textNodes = [];\n /**\n * Defines the appearance of the text element\n */\n _this.style = {\n color: 'black', fill: 'transparent', strokeColor: 'black',\n strokeWidth: 1, fontFamily: 'Arial', fontSize: 12, whiteSpace: 'CollapseSpace',\n textWrapping: 'WrapWithOverflow', textAlign: 'Center', italic: false, bold: false,\n textDecoration: 'None', strokeDashArray: '', opacity: 5, gradient: null,\n textOverflow: 'Wrap'\n };\n _this.style.fill = 'transparent';\n _this.style.strokeColor = 'transparent';\n return _this;\n }\n Object.defineProperty(TextElement.prototype, \"content\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textContent;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.textContent !== value) {\n this.textContent = value;\n this.isDirt = true;\n this.doWrap = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"childNodes\", {\n /**\n * gets the content for the text element \\\n *\n * @returns { string | SVGElement } gets the content for the text element.\\\n *\n * @private\n */\n get: function () {\n return this.textNodes;\n },\n /**\n * sets the content for the text element \\\n *\n * @returns { void } sets the content for the text element.\\\n * @param {SubTextElement[]} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textNodes = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TextElement.prototype, \"wrapBounds\", {\n /**\n * gets the wrapBounds for the text \\\n *\n * @returns { string | SVGElement } gets the wrapBounds for the text.\\\n *\n * @private\n */\n get: function () {\n return this.textWrapBounds;\n },\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n * @param {TextBounds} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.textWrapBounds = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * sets the wrapBounds for the text \\\n *\n * @returns { void } sets the wrapBounds for the text.\\\n *\n * @private\n */\n TextElement.prototype.refreshTextElement = function () {\n this.isDirt = true;\n };\n /**\n *Measures the minimum size that is required for the text element\\\n *\n * @returns { Size } Measures the minimum size that is required for the text element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.measure = function (availableSize) {\n var size;\n if (this.isDirt && this.canMeasure) {\n size = measureText(this, this.style, this.content, this.isLaneOrientation ?\n availableSize.height : (this.width || availableSize.width));\n }\n else {\n size = this.desiredSize;\n }\n if (this.width === undefined || this.height === undefined) {\n this.desiredSize = new Size(size.width, size.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the text element\\\n *\n * @returns { Size } Arranges the text element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n TextElement.prototype.arrange = function (desiredSize) {\n if (desiredSize.width !== this.actualSize.width || desiredSize.height !== this.actualSize.height || this.isDirt) {\n this.doWrap = true;\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n return TextElement;\n}(DiagramElement));\nexport { TextElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\nimport { Transform, ElementAction } from '../../enum/enum';\nimport { Size } from '../../primitives/size';\nimport { Rect } from '../../primitives/rect';\nimport { TextElement } from '../elements/text-element';\n/**\n * Canvas module is used to define a plane(canvas) and to arrange the children based on margin\n */\nvar Canvas = /** @class */ (function (_super) {\n __extends(Canvas, _super);\n function Canvas() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Not applicable for canvas\n *\n * @private\n */\n _this.measureChildren = undefined;\n return _this;\n }\n /**\n * Measures the minimum space that the canvas requires \\\n *\n * @returns { Size } Measures the minimum space that the canvas requires .\\\n * @param {string} id - provide the id value.\n * @param {Function} callback - provide the Connector value.\n *\n * @private\n */\n Canvas.prototype.measure = function (availableSize, id, callback) {\n var desired = undefined;\n var desiredBounds = undefined;\n if (this.hasChildren()) {\n //Measuring the children\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child instanceof TextElement) {\n if (child.canMeasure) {\n availableSize.width = availableSize.width || this.maxWidth || this.minWidth;\n child.measure(availableSize);\n }\n }\n else if (!(child instanceof TextElement)) {\n child.measure(availableSize, id, callback);\n }\n var childSize = child.desiredSize.clone();\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n var right = childSize.width + child.margin.right;\n var bottom = childSize.height + child.margin.bottom;\n var childBounds = new Rect(child.margin.left, child.margin.top, right, bottom);\n if (child.float) {\n var position = child.getAbsolutePosition(childSize);\n if (position !== undefined) {\n continue;\n }\n }\n if ((!(child instanceof TextElement)) || (child instanceof TextElement && child.canConsiderBounds)) {\n if (desiredBounds === undefined) {\n desiredBounds = childBounds;\n }\n else {\n desiredBounds.uniteRect(childBounds);\n }\n }\n }\n if (desiredBounds) {\n var leftMargin = 0;\n var topMargin = 0;\n leftMargin = Math.max(desiredBounds.left, 0);\n topMargin = Math.max(desiredBounds.top, 0);\n desired = new Size(desiredBounds.width + leftMargin, desiredBounds.height + topMargin);\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n _super.prototype.stretchChildren.call(this, desired);\n //Considering padding values\n desired.width += this.padding.left + this.padding.right;\n desired.height += this.padding.top + this.padding.bottom;\n this.desiredSize = desired;\n return desired;\n };\n /**\n * Arranges the child elements of the canvas\n */\n Canvas.prototype.arrange = function (desiredSize, isStack) {\n this.outerBounds = new Rect();\n if (this.hasChildren()) {\n //let y: number;\n //let x: number;\n var y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n var x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if ((child.transform & Transform.Parent) !== 0) {\n child.parentTransform = this.parentTransform + this.rotateAngle;\n if (this.flip !== 'None' || this.elementActions & ElementAction.ElementIsGroup) {\n // EJ2-911095 - Restrict negative rotate angle for the non flipped text\n child.parentTransform = ((this.flip === 'Horizontal' || this.flip === 'Vertical') && (!(child instanceof TextElement && (this.flipMode === 'Port' || this.flipMode === 'Label' || this.flipMode === 'PortAndLabel' || this.flipMode === 'None')))) ?\n -child.parentTransform : child.parentTransform;\n }\n var childSize = child.desiredSize.clone();\n var topLeft = void 0;\n var center = { x: 0, y: 0 };\n var childX = x;\n var childY = y;\n if (child.relativeMode === 'Point') {\n var position = child.getAbsolutePosition(desiredSize);\n if (position !== undefined) {\n childX += position.x;\n childY += position.y;\n }\n }\n if (child.relativeMode === 'Object') {\n topLeft = this.alignChildBasedOnParent(child, childSize, desiredSize, childX, childY);\n // 896059: Update the flip position of the node to get the docking point of node and connector\n child.flip = this.flip;\n }\n else {\n topLeft = this.alignChildBasedOnaPoint(child, childX, childY);\n }\n center = { x: topLeft.x + childSize.width / 2, y: topLeft.y + childSize.height / 2 };\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n }\n if (isStack && (child.horizontalAlignment === 'Stretch' || child.verticalAlignment === 'Stretch')) {\n child.arrange(desiredSize);\n }\n else {\n if (child instanceof TextElement && child.canMeasure) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n else if (!(child instanceof TextElement)) {\n child.arrange(child.desiredSize);\n this.outerBounds.uniteRect(child.outerBounds);\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n this.outerBounds.uniteRect(this.bounds);\n return desiredSize;\n };\n //Aligns the child element based on its parent\n Canvas.prototype.alignChildBasedOnParent = function (child, childSize, parentSize, x, y) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x += child.margin.left;\n break;\n case 'Right':\n x += parentSize.width - childSize.width - child.margin.right;\n break;\n case 'Stretch':\n case 'Center':\n x += parentSize.width / 2 - childSize.width / 2;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y += child.margin.top;\n break;\n case 'Bottom':\n y += parentSize.height - childSize.height - child.margin.bottom;\n break;\n case 'Stretch':\n case 'Center':\n y += parentSize.height / 2 - childSize.height / 2;\n break;\n }\n return { x: x, y: y };\n };\n //Aligns the child elements based on a point\n Canvas.prototype.alignChildBasedOnaPoint = function (child, x, y) {\n x += child.margin.left - child.margin.right;\n y += child.margin.top - child.margin.bottom;\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n x = child.inversedAlignment ? x : (x - child.desiredSize.width);\n break;\n case 'Stretch':\n case 'Center':\n x -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n x = child.inversedAlignment ? (x - child.desiredSize.width) : x;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n y = child.inversedAlignment ? y : (y - child.desiredSize.height);\n break;\n case 'Stretch':\n case 'Center':\n y -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n y = child.inversedAlignment ? (y - child.desiredSize.height) : y;\n break;\n }\n return { x: x, y: y };\n };\n return Canvas;\n}(Container));\nexport { Canvas };\n","/**\n * BasicShapeDictionary defines the shape of the built-in basic shapes \\\n *\n * @returns { string } BasicShapeDictionary defines the shape of the built-in basic shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getBasicShape(shape) {\n return basicShapes[shape.toString()];\n}\n// eslint-disable-next-line prefer-const\nvar basicShapes = {\n //Rectangle,\n 'Rectangle': 'M0,0 L50,0 L50,50 L0,50 z',\n //Ellipse,\n 'Ellipse': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n //Hexagon,\n 'Hexagon': 'M30,0 L60,0 L90,30 L60,60 L30,60 L0,30 L30,0 z',\n //Parallelogram,\n 'Parallelogram': 'M30,0 L60,0 L45,30 L15,30 z',\n //Triangle,\n 'Triangle': 'M45,0 L90,45 L0,45 L45,0 z',\n //Plus,\n 'Plus': 'M696.6084,158.2656 L674.8074,158.2656 L674.8074,136.4656 L658.4084,136.4656 L658.4084,158.2656 L636.6084,158.2656' +\n 'L636.6084,174.6646 L658.4084,174.6646 L658.4084,196.4656 L674.8074,196.4656 L674.8074,174.6646 L696.6084,174.6646' +\n 'L696.6084,158.2656 z',\n //Star,\n 'Star': 'M540.3643,137.9336 L546.7973,159.7016 L570.3633,159.7296 L550.7723,171.9366 L558.9053,194.9966 L540.3643,179.4996' +\n 'L521.8223,194.9966 L529.9553,171.9366 L510.3633,159.7296 L533.9313,159.7016 L540.3643,137.9336 z',\n //Pentagon,\n 'Pentagon': 'M30,0 L60,30 L50,70 L10,70 L0,30 L30,0 z',\n //Heptagon,\n 'Heptagon': 'M223.7783,195.7134 L207.1303,174.8364 L213.0713,148.8034 L237.1303,137.2174 L261.1883,148.8034 L267.1303,174.8364' +\n 'L250.4813,195.7134 L223.7783,195.7134 z',\n //Octagon,\n 'Octagon': 'M98.7319,196.4653 L81.1579,178.8923 L81.1579,154.0393 L98.7319,136.4653 L123.5849,136.4653' +\n 'L141.1579,154.0393 L141.1579,178.8923 L123.5849,196.4653 L98.7319,196.4653 z',\n //Trapezoid,\n 'Trapezoid': 'M127.2842,291.4492 L95.0322,291.4492 L81.1582,256.3152 L141.1582,256.3152 L127.2842,291.4492 z',\n //Decagon,\n 'Decagon': 'M657.3379,302.4141 L642.3369,291.5161 L636.6089,273.8821 L642.3369,256.2481 L657.3379,245.3511 L675.8789,245.3511' +\n 'L690.8789,256.2481 L696.6089,273.8821' +\n 'L690.8789,291.5161 L675.8789,302.4141 L657.3379,302.4141 z',\n //RightTriangle,\n 'RightTriangle': 'M836.293,292.9238 L776.293,292.9238 L776.293,254.8408 L836.293,292.9238 z',\n //Cylinder,\n 'Cylinder': 'M 542.802,362.009C 542.802,368.452 525.341,373.676 503.802,373.676C 482.263,373.676 464.802,368.452 464.802,362.009' +\n 'L 464.802,466.484C 464.802,472.928 482.263,478.151 503.802,478.151' +\n 'C 525.341,478.151 542.802,472.928 542.802,466.484L 542.802,362.016C 542.802,368.459 525.341,373.534 503.802,373.534' +\n 'C 482.263,373.534 464.802,368.31 464.802,361.867' +\n 'L 464.802,362.016C 464.802,355.572 482.263,350.349 503.802,350.349C 525.341,350.349 542.802,355.572 542.802,362.016',\n //Diamond,\n 'Diamond': 'M397.784,287.875 L369.5,316.159 L341.216,287.875 L369.5,259.591 L397.784,287.875 z'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { Rect } from '../../primitives/rect';\nimport { measurePath, findSegmentPoints, translatePoints } from './../../utility/dom-util';\nimport { processPathData, splitArrayCollection, transformPath, getPathString } from '../../utility/path-util';\n/**\n * PathElement takes care of how to align the path based on offsetX and offsetY\n */\nvar PathElement = /** @class */ (function (_super) {\n __extends(PathElement, _super);\n /**\n * set the id for each element\n */\n function PathElement() {\n var _this = _super.call(this) || this;\n /**\n * Gets or sets the geometry of the path element\n */\n _this.pathData = '';\n /**\n * Gets/Sets whether the path has to be transformed to fit the given x,y, width, height\n */\n _this.transformPath = true;\n /**\n * Gets/Sets the equivalent path, that will have the origin as 0,0\n */\n _this.absolutePath = '';\n /** @private */\n _this.canMeasurePath = false;\n //Private variables\n /** @private */\n _this.absoluteBounds = new Rect();\n return _this;\n }\n Object.defineProperty(PathElement.prototype, \"data\", {\n /**\n * Gets the geometry of the path element\\\n *\n * @returns { string | SVGElement } Gets the geometry of the path element.\\\n *\n * @private\n */\n get: function () {\n return this.pathData;\n },\n /**\n * Sets the geometry of the path element \\\n *\n * @returns { void } Sets the geometry of the path element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n if (this.pathData !== value) {\n this.pathData = value;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * getPoints methods \\\n *\n * @returns { PointModel[] } Sets the geometry of the path element.\\\n *\n * @private\n */\n PathElement.prototype.getPoints = function () {\n var _this = this;\n if (!this.pointTimer) {\n this.pointTimer = setTimeout(function () {\n _this.points = null;\n _this.pointTimer = null;\n }, 200);\n }\n this.points = this.points || findSegmentPoints(this);\n return translatePoints(this, this.points);\n };\n /**\n * Measures the minimum space that is required to render the element \\\n *\n * @returns { Size } Measures the minimum space that is required to render the element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.measure = function (availableSize) {\n //Performance issue - Avoiding measuring the connector path\n if (this.staticSize && this.width !== undefined && this.height !== undefined) {\n this.absoluteBounds = new Rect(this.offsetX - this.width * this.pivot.x, this.offsetY - this.height * this.pivot.y, this.width, this.height);\n }\n else if (this.isDirt && (this.transformPath || (this.width === undefined || this.height === undefined))\n && (!this.absoluteBounds || this.absoluteBounds.height === 0) || this.canMeasurePath) {\n //Measure the element only whent the path data is changed/ size is not specified\n this.absoluteBounds = measurePath(this.data ? this.data : '');\n }\n if (this.width === undefined) {\n this.desiredSize = new Size(this.absoluteBounds.width, this.height || this.absoluteBounds.height);\n }\n else if (this.height === undefined) {\n this.desiredSize = new Size(this.width || this.absoluteBounds.width, this.absoluteBounds.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n this.canMeasurePath = false;\n return this.desiredSize;\n };\n /**\n * Arranges the path element \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.arrange = function (desiredSize) {\n if (this.isDirt || this.actualSize.width !== desiredSize.width || this.actualSize.height !== desiredSize.height) {\n this.isDirt = true;\n this.absolutePath = this.updatePath(this.data, this.absoluteBounds, desiredSize);\n if (!this.staticSize) {\n this.points = null;\n }\n }\n this.actualSize = this.desiredSize;\n this.updateBounds();\n this.isDirt = false;\n return this.actualSize;\n };\n /**\n * Translates the path to 0,0 and scales the path based on the actual size \\\n *\n * @returns { Size } Arranges the path element.\\\n * @param {string} pathData - provide the id value.\n * @param {Rect} bounds - provide the id value.\n * @param {Size} actualSize - provide the id value.\n *\n * @private\n */\n PathElement.prototype.updatePath = function (pathData, bounds, actualSize) {\n var isScale = false;\n var newPathString = '';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n if (actualSize.width !== bounds.width || actualSize.height !== bounds.height) {\n scaleX = actualSize.width / Number(bounds.width ? bounds.width : 1);\n scaleY = actualSize.height / Number(bounds.height ? bounds.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(pathData);\n arrayCollection = splitArrayCollection(arrayCollection);\n if ((isScale || this.isDirt) && this.transformPath) {\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bounds.x, bounds.y, 0, 0);\n }\n else {\n newPathString = getPathString(arrayCollection);\n }\n isScale = false;\n return newPathString;\n };\n return PathElement;\n}(DiagramElement));\nexport { PathElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureImage } from './../../utility/dom-util';\n/**\n * ImageElement defines a basic image elements\n */\nvar ImageElement = /** @class */ (function (_super) {\n __extends(ImageElement, _super);\n /**\n * set the id for each element\n */\n function ImageElement() {\n var _this = _super.call(this) || this;\n /**\n * sets or gets the image source\n */\n _this.imageSource = '';\n /**\n * sets scaling factor of the image\n */\n _this.imageScale = 'None';\n /**\n * sets the alignment of the image\n */\n _this.imageAlign = 'None';\n /**\n * Sets how to stretch the image\n */\n _this.stretch = 'Stretch';\n return _this;\n }\n Object.defineProperty(ImageElement.prototype, \"source\", {\n /**\n * Gets the source for the image element\n */\n /**\n * Gets the source for the image element \\\n *\n * @returns { void }Gets the source for the image element.\\\n *\n * @private\n */\n get: function () {\n return this.imageSource;\n },\n /**\n * Sets the source for the image element \\\n *\n * @returns { void }Sets the source for the image element.\\\n * @param {string} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.imageSource = value;\n this.isDirt = true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures minimum space that is required to render the image \\\n *\n * @returns { Size }Measures minimum space that is required to render the image.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Object} id - provide the id value.\n * @param {Function} callback - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.measure = function (availableSize, id, callback) {\n if (this.isDirt && (this.stretch !== 'Stretch' || this.width === undefined && this.height === undefined)) {\n this.contentSize = measureImage(this.source, this.contentSize, id, callback);\n this.isDirt = false;\n }\n if (this.width !== undefined && this.height !== undefined) {\n this.desiredSize = new Size(this.width, this.height);\n this.contentSize = this.desiredSize;\n }\n else {\n this.desiredSize = this.contentSize;\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n * Arranges the image\n * @param {Size} desiredSize\n */\n /**\n * Arranges the image \\\n *\n * @returns { Size }Arranges the image.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n ImageElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return ImageElement;\n}(DiagramElement));\nexport { ImageElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Size } from '../../primitives/size';\nimport { DiagramElement } from './diagram-element';\nimport { measureNativeContent, getContent, measureNativeSvg } from './../../utility/dom-util';\n/**\n * NativeElement defines the basic native elements\n */\nvar DiagramNativeElement = /** @class */ (function (_super) {\n __extends(DiagramNativeElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void } set the id for each element.\\\n * @param {string} nodeId - provide the id value.\n * @param {string} diagramId - provide the id value.\n *\n * @private\n */\n function DiagramNativeElement(nodeId, diagramId) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * set the node id\n */\n _this.nodeId = '';\n /**\n * set the diagram id\n */\n _this.diagramId = '';\n /**\n * sets scaling factor of the Native Element\n */\n _this.scale = 'Stretch';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n return _this;\n }\n Object.defineProperty(DiagramNativeElement.prototype, \"content\", {\n /**\n * get the id for each element \\\n *\n * @returns { string | SVGElement } get the id for each element.\\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * sets the geometry of the native element \\\n *\n * @returns { void } sets the geometry of the native element.\\\n * @param {string | SVGElement} value - provide the id value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n this.template = getContent(this, false);\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *Measures minimum space that is required to render the Native Element \\\n *\n * @returns { Size }Measures minimum space that is required to render the Native Element.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n DiagramNativeElement.prototype.measure = function (availableSize) {\n if (this.isDirt) {\n var rect = measureNativeContent(this.template);\n this.contentSize = new Size();\n this.contentSize.width = rect.width;\n this.contentSize.height = rect.height;\n var x = rect.x;\n var y = rect.y;\n this.templatePosition = { x: x, y: y };\n this.isDirt = false;\n }\n if (this.width === undefined || this.height === undefined) {\n var getAvailableSize = measureNativeSvg(this.template);\n this.desiredSize = new Size(getAvailableSize.width, getAvailableSize.height);\n }\n else {\n this.desiredSize = new Size(this.width, this.height);\n }\n this.desiredSize = this.validateDesiredSize(this.desiredSize, availableSize);\n return this.desiredSize;\n };\n /**\n *Arranges the Native Element \\\n *\n * @returns { Size }Arranges the Native Element.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n DiagramNativeElement.prototype.arrange = function (desiredSize) {\n this.actualSize = new Size(this.desiredSize.width, this.desiredSize.height);\n this.updateBounds();\n return this.actualSize;\n };\n return DiagramNativeElement;\n}(DiagramElement));\nexport { DiagramNativeElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n/**\n * Defines the tooltip that should be shown when the mouse hovers over node.\n * An object that defines the description, appearance and alignments of tooltip\n */\nvar DiagramTooltip = /** @class */ (function (_super) {\n __extends(DiagramTooltip, _super);\n function DiagramTooltip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DiagramTooltip.prototype, \"content\", void 0);\n __decorate([\n Property('TopLeft')\n ], DiagramTooltip.prototype, \"position\", void 0);\n __decorate([\n Property('Mouse')\n ], DiagramTooltip.prototype, \"relativeMode\", void 0);\n __decorate([\n Property(true)\n ], DiagramTooltip.prototype, \"showTipPointer\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], DiagramTooltip.prototype, \"height\", void 0);\n __decorate([\n Property('Auto')\n ], DiagramTooltip.prototype, \"openOn\", void 0);\n __decorate([\n Property()\n ], DiagramTooltip.prototype, \"animation\", void 0);\n __decorate([\n Property(false)\n ], DiagramTooltip.prototype, \"isSticky\", void 0);\n return DiagramTooltip;\n}(ChildProperty));\nexport { DiagramTooltip };\n/**\n * initTooltip method \\\n *\n * @returns { Tooltip } initTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\nexport function initTooltip(diagram) {\n var tooltipOption = new Tooltip;\n tooltipOption = updateTooltipContent(diagram.tooltip, tooltipOption);\n var tooltip = new Tooltip(tooltipOption);\n tooltip.beforeCollision = beforeCollision;\n tooltip.beforeOpen = beforeOpen;\n tooltip.cssClass = 'e-diagram-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + diagram.element.id);\n tooltip.close();\n return tooltip;\n}\n/**\n * beforeOpen method \\\n *\n * @returns { void } beforeOpen method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeOpen(args) {\n if ((this.content === '' || this.content === undefined)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * beforeCollision method \\\n *\n * @returns { void } beforeCollision method .\\\n * @param {TooltipEventArgs} args - provide the points value.\n *\n * @private\n */\nfunction beforeCollision(args) {\n if ((args.collidedPosition && args.collidedPosition !== this.position)) {\n args.element.style.display = 'none';\n }\n}\n/**\n * updateTooltip method \\\n *\n * @returns { Tooltip } updateTooltip method .\\\n * @param {Diagram} diagram - provide the points value.\n * @param {NodeModel | ConnectorModel} node - provide the points value.\n *\n * @private\n */\nexport function updateTooltip(diagram, node) {\n //let tooltip: DiagramTooltipModel;\n var tooltipObject = diagram.tooltipObject;\n var tooltip = node ? node.tooltip : diagram.tooltip;\n updateTooltipContent(tooltip, tooltipObject);\n return tooltipObject;\n}\n/**\n * updateTooltipContent method \\\n *\n * @returns { Tooltip } updateTooltipContent method .\\\n * @param {DiagramTooltipModel} tooltip - provide the points value.\n * @param {Tooltip} tooltipObject - provide the points value.\n *\n * @private\n */\nfunction updateTooltipContent(tooltip, tooltipObject) {\n if (tooltip.content) {\n tooltipObject.content = tooltip.content;\n //Task 834121: Content-Security-Policy support for diagram\n if (typeof tooltip.content === 'string') {\n var contentTemp = function () {\n return tooltip.content;\n };\n tooltipObject.content = initializeCSPTemplate(contentTemp);\n }\n tooltipObject.position = tooltip.position;\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n }\n else {\n tooltipObject.close();\n }\n return tooltipObject;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { PortConstraints, PortVisibility } from '../enum/enum';\nimport { DiagramTooltip } from './tooltip';\n/**\n * Defines the behavior of connection ports\n */\nvar Port = /** @class */ (function (_super) {\n __extends(Port, _super);\n // tslint:disable-next-line:no-any\n function Port(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.inEdges = [];\n _this.outEdges = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Port.prototype, \"id\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Port.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Port.prototype, \"margin\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"width\", void 0);\n __decorate([\n Property(12)\n ], Port.prototype, \"height\", void 0);\n __decorate([\n Complex({}, ShapeStyle)\n ], Port.prototype, \"style\", void 0);\n __decorate([\n Property('Square')\n ], Port.prototype, \"shape\", void 0);\n __decorate([\n Property('Auto')\n ], Port.prototype, \"connectionDirection\", void 0);\n __decorate([\n Property(PortVisibility.Connect)\n ], Port.prototype, \"visibility\", void 0);\n __decorate([\n Property('')\n ], Port.prototype, \"pathData\", void 0);\n __decorate([\n Property(PortConstraints.Default)\n ], Port.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"outEdges\", void 0);\n __decorate([\n Property()\n ], Port.prototype, \"inEdges\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Port.prototype, \"tooltip\", void 0);\n return Port;\n}(ChildProperty));\nexport { Port };\n/**\n * Defines the behavior of a port, that sticks to a point\n */\nvar PointPort = /** @class */ (function (_super) {\n __extends(PointPort, _super);\n function PointPort(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n PointPort.prototype.getClassName = function () {\n return 'PointPort';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], PointPort.prototype, \"offset\", void 0);\n return PointPort;\n}(Port));\nexport { PointPort };\n/**\n * Defines the behavior of a port, that sticks to a point\n */\nvar PathPort = /** @class */ (function (_super) {\n __extends(PathPort, _super);\n function PathPort(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n PathPort.prototype.getClassName = function () {\n return 'PathPort';\n };\n __decorate([\n Property(0.5)\n ], PathPort.prototype, \"offset\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PathPort.prototype, \"displacement\", void 0);\n __decorate([\n Property('Center')\n ], PathPort.prototype, \"alignment\", void 0);\n return PathPort;\n}(Port));\nexport { PathPort };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { TextStyle, Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { AnnotationConstraints } from '../enum/enum';\nimport { randomId } from '../utility/base-util';\nimport { DiagramTooltip } from './tooltip';\n/**\n * Defines the hyperlink for the annotations in the nodes/connectors\n */\nvar Hyperlink = /** @class */ (function (_super) {\n __extends(Hyperlink, _super);\n function Hyperlink() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('blue')\n ], Hyperlink.prototype, \"color\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], Hyperlink.prototype, \"link\", void 0);\n __decorate([\n Property('None')\n ], Hyperlink.prototype, \"textDecoration\", void 0);\n __decorate([\n Property('NewTab')\n ], Hyperlink.prototype, \"hyperlinkOpenState\", void 0);\n return Hyperlink;\n}(ChildProperty));\nexport { Hyperlink };\n/**\n * Defines the textual description of nodes/connectors\n */\nvar Annotation = /** @class */ (function (_super) {\n __extends(Annotation, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Annotation(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n if (!defaultValue.id) {\n if (parent.parentObj && parent.parentObj.propName && parent.parentObj.propName === 'phases') {\n _this.id = parent.parentObj.id;\n }\n else {\n _this.id = randomId();\n }\n }\n return _this;\n }\n __decorate([\n Property('')\n ], Annotation.prototype, \"content\", void 0);\n __decorate([\n Property(undefined)\n ], Annotation.prototype, \"template\", void 0);\n __decorate([\n Property('String')\n ], Annotation.prototype, \"annotationType\", void 0);\n __decorate([\n Property(true)\n ], Annotation.prototype, \"visibility\", void 0);\n __decorate([\n Property(AnnotationConstraints.InheritReadOnly)\n ], Annotation.prototype, \"constraints\", void 0);\n __decorate([\n Complex(undefined, Hyperlink)\n ], Annotation.prototype, \"hyperlink\", void 0);\n __decorate([\n Property('')\n ], Annotation.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Annotation.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property('Parent')\n ], Annotation.prototype, \"rotationReference\", void 0);\n __decorate([\n Complex({ strokeWidth: 0, strokeColor: 'transparent', fill: 'transparent' }, TextStyle)\n ], Annotation.prototype, \"style\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], Annotation.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Annotation.prototype, \"margin\", void 0);\n __decorate([\n Complex({ top: undefined, bottom: undefined, left: undefined, right: undefined }, Margin)\n ], Annotation.prototype, \"dragLimit\", void 0);\n __decorate([\n Property('Shape')\n ], Annotation.prototype, \"type\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Annotation.prototype, \"tooltip\", void 0);\n __decorate([\n Property()\n ], Annotation.prototype, \"addInfo\", void 0);\n return Annotation;\n}(ChildProperty));\nexport { Annotation };\n/**\n * Defines the textual description of nodes/connectors with respect to bounds\n */\nvar ShapeAnnotation = /** @class */ (function (_super) {\n __extends(ShapeAnnotation, _super);\n /* eslint-disable */\n function ShapeAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n // eslint-disable-next-line valid-jsdoc\n /**\n * @private\n * Returns the module of class ShapeAnnotation\n */\n ShapeAnnotation.prototype.getClassName = function () {\n return 'ShapeAnnotation';\n };\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], ShapeAnnotation.prototype, \"offset\", void 0);\n return ShapeAnnotation;\n}(Annotation));\nexport { ShapeAnnotation };\n/**\n * Defines the connector annotation\n */\nvar PathAnnotation = /** @class */ (function (_super) {\n __extends(PathAnnotation, _super);\n /* eslint-disable */\n function PathAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /* eslint-enable */\n /**\n * Returns the module of class PathAnnotation.\n *\n * @returns {string} Returns the module of class PathAnnotation.\n * @private\n */\n PathAnnotation.prototype.getClassName = function () {\n return 'PathAnnotation';\n };\n __decorate([\n Property(0.5)\n ], PathAnnotation.prototype, \"offset\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], PathAnnotation.prototype, \"displacement\", void 0);\n __decorate([\n Property('Center')\n ], PathAnnotation.prototype, \"alignment\", void 0);\n __decorate([\n Property(false)\n ], PathAnnotation.prototype, \"segmentAngle\", void 0);\n return PathAnnotation;\n}(Annotation));\nexport { PathAnnotation };\n","/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {PortShapes} shape - provide the element value.\n *\n * @private\n */\nexport function getPortShape(shape) {\n return portShapes[shape.toString()];\n}\n/**\n *ShapeDictionary defines the shape of the default nodes and ports \\\n *\n * @returns { string } ShapeDictionary defines the shape of the default nodes and ports.\\\n * @param {DecoratorShapes} shape - provide the element value.\n * @param {DecoratorModel} decorator - provide the element value.\n *\n * @private\n */\nexport function getDecoratorShape(shape, decorator) {\n if (shape === 'Custom') {\n return decorator.pathData;\n }\n return decoratorShapes[\"\" + shape];\n}\nexport function getSegmentThumbShapeHorizontal(shapes) {\n return segmentThumbShapeHorizontal[\"\" + shapes];\n}\nexport function getSegmentThumbShapeVertical(shapes) {\n return segmentThumbShapeVertical[\"\" + shapes];\n}\n/**\n *sets the path data for different icon shapes \\\n *\n * @returns { string } sets the path data for different icon shapes\\\n * @param {IconShapeModel} icon - provide the element value.\n *\n * @private\n */\nexport function getIconShape(icon) {\n var data;\n switch (icon.shape) {\n case 'Minus':\n data = 'M0,50 L100,50';\n break;\n case 'Plus':\n data = 'M0,-50 L0,50 M-50,0 L50,0';\n break;\n case 'ArrowUp':\n data = 'M0,100 L50,0 L100,100 Z';\n break;\n case 'ArrowDown':\n data = 'M0,0 L50,100 L100,0 Z';\n break;\n case 'Path':\n data = icon.pathData;\n break;\n }\n return data;\n}\n// eslint-disable-next-line prefer-const\nvar portShapes = {\n 'X': 'M14,14 L106,106 M106,14 L14,106',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z'\n};\n// eslint-disable-next-line prefer-const\nvar decoratorShapes = {\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Fletch': 'M14.8,10c0,0-3.5,6,0.2,12c0,0-2.5-6-10.9-6C4.1,16,11.3,16,14.8,10z',\n 'OpenFetch': 'M6,17c-0.6,0-1-0.4-1-1s0.4-1,1-1c10.9,0,11-5,11-5' +\n 'c0-0.6,0.4-1,1-1s1,0.4,1,1C19,10.3,18.9,17,6,17C6,17,6,17,6,17z ' +\n 'M18,23c-0.5,0-1-0.4-1-1c0-0.2-0.3-5-11-5c-0.6,0-1-0.5-1-1s0.4-1,1-1c0,0,0,0,0,0' +\n 'c12.9,0,13,6.7,13,7 C19,22.6,18.6,23,18,23z',\n 'IndentedArrow': 'M17,10c0,0-4.5,5.5,0,12L5,16L17,10z',\n 'OutdentedArrow': 'M14.6,10c0,0,5.4,6,0,12L5,16L14.6,10z',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M12,23l-7-7l7-7l6.9,7L12,23z',\n 'Circle': 'M0,50 A50,50,0 1 1 100,50 A50,50,0 1 1 0,50 Z'\n};\nvar segmentThumbShapeHorizontal = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z ',\n 'OpenArrow': 'M15.9,23 L5,16 L15.9,9 L17,10.7 L8.7,16 L17,21.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M19,10 L19,22 L13,16Z M12,10 L12,22 L6,16Z',\n 'Arrow': 'M15,10 L15,22 L5,16Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\nvar segmentThumbShapeVertical = {\n 'Square': 'M0,0 L10,0 L10,10 L0,10 z',\n 'Rhombus': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Rectangle': 'M0,0 L15,0 L15,10 L0,10 z',\n 'OpenArrow': 'M23,15.9 L16,5 L9,15.9 L10.7,17 L16,8.7 L21,17.3Z',\n 'Fletch': 'M9.82,0 C9.82,0,6.61,5,10,10 C10,10,7.71,5,0,5 C0,5,6.61,5,9.82,0 Z ',\n 'OpenFetch': 'M0.71,5.71 C0.29,5.71,0,5.43,0,5 C0,4.57,0.29,4.29,0.71,4.29 C8.5,4.29,8.57,0.71,8.57,0.71 C8.57,0.29,8.86,0,9.29,0 C9.719999999999999,0,10,0.29,10,0.71 C10,0.93,9.93,5.71,0.71,5.71 C0.71,5.71,0.71,5.71,0.71,5.71 Z M9.29,10 C8.93,10,8.57,9.71,8.57,9.29 C8.57,9.14,8.36,5.71,0.71,5.71 C0.29,5.71,0,5.36,0,5 C0,4.64,0.29,4.29,0.71,4.29 C0.71,4.29,0.71,4.29,0.71,4.29 C9.93,4.29,10,9.07,10,9.29 C10,9.71,9.71,10,9.29,10 Z ',\n 'IndentedArrow': 'M10,0 C10,0,6.25,4.58,10,10 L0,5 L10,0 Z ',\n 'OutdentedArrow': 'M8,0 C8,0,12.5,5,8,10 L0,5 L8,0 Z ',\n 'DoubleArrow': 'M10,19 L22,19 L16,13Z M10,12 L22,12 L16,6Z',\n 'Arrow': 'M10,15 L22,15 L16,5Z',\n 'Diamond': 'M10,5 L5,10 L0,5 L5,0 L10,5 Z ',\n 'Circle': 'M10,5 C10,7.76,7.76,10,5,10 C2.24,10,0,7.76,0,5 C0,2.24,2.24,0,5,0 C7.76,0,10,2.24,10,5 Z ',\n 'Ellipse': 'M15,5 C15,7.76,11.64,10,7.5,10 C3.36,10,0,7.76,0,5 C0,2.24,3.36,0,7.5,0 C11.64,0,15,2.24,15,5 Z '\n};\n","/**\n * FlowShapeDictionary defines the shape of the built-in flow shapes \\\n *\n * @returns { string } FlowShapeDictionary defines the shape of the built-in flow shapes .\\\n * @param {string} shape - provide the element value.\n *\n * @private\n */\nexport function getFlowShape(shape) {\n return flowShapes[shape.toString()];\n}\n/* eslint-disable */\nvar flowShapes = {\n // Process,\n 'Process': 'M419.511,76.687L359.511,76.687L359.511,43.086L419.511,43.086z',\n // Decision,\n 'Decision': 'M 253.005,115.687L 200.567,146.071L 148.097,115.687L 200.534,85.304L 253.005,115.687 Z',\n // Document,\n 'Document': 'M 60 31.9 c 0 0 -11 -7.7 -30 0 s -30 0 -30 0 V 0 h 60 V 31.9 Z',\n // PreDefinedProcess,\n 'PreDefinedProcess': 'M 0,0 L 50,0 L 50,50 L 0,50 Z M 8.334,0 L 8.334,50 M 41.667,0 L 41.667,50',\n // Terminator,\n 'Terminator': 'M 269.711,29.33C 269.71,44.061 257.77,56 243.04,56L 158.058,56C 143.33,56 131.39,44.061 131.39,29.33L 131.39,29.33' +\n 'C 131.391,14.6057 143.33,2.669 158.058,2.669L 243.044,2.669C 257.772,2.669 269.711,14.6057 269.711,29.333 Z',\n // PaperTap,\n 'PaperTap': 'M0.0009,17.2042 L0.0009,47.165 C0.001,47.165 14.403,53.5455 25.00,47.165 C35.599,40.7852 44.403,43.5087 50.00,47.165' +\n 'L50.001,17.2042 M50.001,32.7987 L50.001,2.8405 C50.001,2.8405 35.599,-3.5427 25.001,2.8405' +\n 'C14.403,9.2237 5.599,6.494 0.0009,2.8405 L0.0009,32.7987',\n // DirectData,\n 'DirectData': 'M 132.62 0 L 17.38 0 C 7.78 0 0 13.43 0 30 C 0 46.57 7.78 60 17.38 60 L 132.62 60 M 132.62 0' +\n 'C 123.02 0 115.24 13.43 115.24 30 C 115.24 46.57 123.02 60 132.62 60 C 142.22 60 150 46.57 150 30 C 150 13.43 142.22 0 132.62 0 z ',\n // SequentialData,\n 'SequentialData': 'M0.0029,24.999 C0.0029,11.1922 10.433,0.0021 23.295,0.0021 C36.159,0.00216 46.585,11.1922 46.585,24.999' +\n 'C46.585,38.8057 36.159,49.9979 23.295,49.9979 C10.433,49.9979 0.0029,38.8057 0.0029,24.999 z M23.294,49.999 L50.002,49.999',\n // Sort,\n 'Sort': 'M50.001,24.9971 L25.001,49.9971 L0.00097,24.9971 L25.001,-0.00286865 L50.001,24.9971 z' +\n ' M0.000976562,24.9971 L50.001,24.9971',\n // MultiDocument,\n 'MultiDocument': 'M43.6826,40 C44.8746,40.6183 45.8586,41.3502 46.8366,42.1122 L46.8366,4.74487 L3.09857,4.74487 L3.09857,10.9544' +\n ' M46.837,35.143 C48.027,35.765 49.025,36.604 50.003,37.369 L50.003,0.002 L6.264,0.002 L6.264,4.744 M43.682,47.113 L43.682,10.765' +\n ' L0.0025,10.7652 L0.0025,47.1132 C0.0025,47.1132 12.5846,53.6101 21.8426,47.1132 C31.1006,40.6163 38.792,43.393 43.6826,47.1132 z',\n // Collate,\n 'Collate': 'M50.001,0.0028 L25.001,25.0029 L0.00097,0.0028 L50.001,0.002 z M0.0009,50.002 L25.001,25.002' +\n 'L50.001,50.002 L0.0009,50.0029 z',\n // SummingJunction,\n 'SummingJunction': 'M7.3252,42.6768 L42.6772,7.3247 M42.6768,42.6768 L7.3248,7.3247 M0.0009,25.001 ' +\n 'C0.0009,11.193 11.197,0.0009 25.001,0.0009' +\n ' C38.809,0.0009 50.001,11.193 50.001,25.001 C50.001,38.809 38.809,50.001 25.001,50.001 C11.197,50.00 0.0009,38.809 0.0009,25.00 z',\n // Or,\n 'Or': 'M 0 50 L 100 50 M 50 100 L 50 0.0 M 0 50 C 0 22.384 22.392 0 50 0 C 77.616 0 100 22.384 100 50' +\n ' C 100 77.616 77.616 100 50 100 C 22.392 100 0 77.616 0 50 Z',\n // InternalStorage,\n 'InternalStorage': 'M 0 3.81946A 2.5,3.81946 0 0,1 2.5,0L 47.5 0A 2.5,3.81946 0 0,1 50,3.81946' +\n 'L 50 45.836A 2.5,3.819446 0 0,1 47.5,49.652778' +\n 'L 2.5 49.652778A 2.5,3.819446 0 0,1 0,45.8336L 0 3.819446ZM 0 11.45834L 50 11.4583334M 12.5 0L 12.5 49.652778',\n // Extract,\n 'Extract': 'M0,35 L30,0 L60,35 Z',\n // ManualOperation,\n 'ManualOperation': 'M46.4,28.8 L14.8,28.8 L0,0 L60,0 Z',\n // Merge,\n 'Merge': 'M60,0 L30,35 L0,0 Z',\n // OffPageReference,\n 'OffPageReference': 'M60,33.3 L30.1,39 L0,33.3 L0,0 L60,0 Z',\n // SequentialAccessStorage,\n 'SequentialAccessStorage': 'M 60 30 C 60 13.4 46.6 0 30 0 S 0 13.4 0 30 s 13.4 30 30 30 h 28.6 v -6.5 h -9.9' +\n 'C 55.5 48 60 39.5 60 30 Z',\n // Annotation,\n 'Annotation': 'M49.9984,50.0029 L-0.00271199,50.0029 L-0.00271199,0.00286865 L49.9984,0.00286865',\n // Annotation2,\n 'Annotation2': 'M49.9977,50.0029 L25.416,50.0029 L25.416,0.00286865 L49.9977,0.00286865 M25.4166,25.0029 L-0.00227869,25.0029',\n // Data,\n 'Data': 'M 10 0 L 40 0 L 30 40 L 0 40 Z',\n // Card,\n 'Card': 'M275,60 L400,60 L400,110 L260,110 L260,75 Z',\n // Delay,\n 'Delay': 'M0,0 L12.029,0 C14.212999,0 16,1.7869979 16,3.9709952 C16,6.1549926 14.212999,7.9409904 12.029,7.9409904 L0,7.9409904 z',\n // Preparation,\n 'Preparation': 'M 1048.17 572 C 1051.06 568.86 1055.17 567.05 1059.5 567 L 1094.51 567'\n + ' C 1098.84 567.05 1102.95 568.86 1105.84 572' +\n ' L 1126.43 595 C 1127.01 596.28 1127.01 597.72 1126.43 599 L 1105.84 622 C 1102.95 625.14 1098.84 626.95 1094.51 627' +\n ' L 1059.5 627 C 1055.17 626.95 1051.06 625.14 1048.17 622 L 1027.58 599 C 1027 597.72 1027 596.28 1027.58 595 L 1048.17 572 Z',\n // Display,\n 'Display': 'M47.8809,19.2914 L32.7968,-0.00594145 L11.3902,-0.00594145 C7.93166,-0.00594145 0.00124586,11.187 0.00124586,24.9968' +\n 'C0.00124586,38.8032 7.93166,49.9962 11.3902,49.9962 L32.7968,49.99 L47.615,31.038 C47.615,31.0388 52.798,24.9968 47.880,19.2914 z',\n // ManualInput,\n 'ManualInput': 'M 912 732 L 1006.85 707 C 1008.2 707 1009.5 707.53 1010.46 708.46 C 1011.41 709.4 1011.95 710.67 1011.95 712' +\n ' L 1011.95 762C 1012 764.41 1010.28 766.52 1007.87 767 L 917.1 767 C 915.75 767 914.45 766.47 913.49 765.54' +\n ' C 912.54 764.6 912 763.33 912 762 L 912 732 Z',\n // LoopLimit,\n 'LoopLimit': 'M 8 9 L 27 9 L 33 15 L 33 26 C 33 27 33 27 32 27 L 4 27 C 3 27 2 27 2 26 L 2 15 L 8 9 Z',\n // StoredData\n 'StoredData': 'M 5.55 0L 50 0A 1.5,30 0 0,1 50,0A 5.555,25 0 0,0 50,50A 1.5,30 0 0,1 50,50L 5.555 50A 5.55,25 0 0,1 5.555,0Z',\n};\n/* eslint-enable */\n","/* eslint-disable jsdoc/require-returns-check */\nimport { Point } from './../primitives/point';\nimport { Rect } from './../primitives/rect';\nimport { getPoints, intersect3 } from './diagram-util';\nimport { NoOfSegments } from '../enum/enum';\nimport { StraightSegment, BezierSegment, OrthogonalSegment } from './../objects/connector';\nimport { PathElement } from './../core/elements/path-element';\nimport { cornersPointsBeforeRotation, rotatePoint } from './base-util';\n/**\n * Connector modules are used to dock and update the connectors\n */\n/**\n * intermeditatePoints method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @param {PointModel} layoutOrientation - provide the angle value.\n * @param {PointModel} lineDistribution - provide the angle value.\n * @private\n */\nexport function findConnectorPoints(element, layoutOrientation, lineDistribution) {\n //const intermeditatePoints: PointModel[];\n var sourcePoint;\n if (element.type === 'Straight' || !element.sourceWrapper) {\n sourcePoint = getSourcePoint(element);\n }\n else {\n sourcePoint = element.sourceWrapper.corners.center;\n }\n // eslint-disable-next-line\n var intermeditatePoints = terminateConnection(element, sourcePoint, element.targetPoint, layoutOrientation, lineDistribution);\n setLineEndPoint(element, intermeditatePoints[0], false);\n setLineEndPoint(element, intermeditatePoints[intermeditatePoints.length - 1], true);\n return intermeditatePoints;\n}\n/**\n * getSourcePoint method\\\n *\n * @returns { PointModel } getFunction method .\\\n * @param {PointModel} element - provide the angle value.\n * @private\n */\nfunction getSourcePoint(element) {\n var srcPoint;\n if (element.sourcePortWrapper) {\n var srcPort = element.sourcePortWrapper;\n //const srcNode: DiagramElement = element.sourceWrapper;\n var pt = { x: srcPort.offsetX, y: srcPort.offsetY };\n //const direction: string = getPortDirection(pt, cornersPointsBeforeRotation(srcNode), srcNode.bounds, false);\n srcPoint = pt;\n }\n else if (element.sourceID && element.sourceWrapper) {\n if (element.targetWrapper) {\n var sPoint = element.sourceWrapper.corners.center;\n var tPoint = element.targetWrapper.corners.center;\n srcPoint = getIntersection(element, element.sourceWrapper, sPoint, tPoint, false);\n }\n else {\n srcPoint = element.sourcePoint;\n }\n }\n else {\n srcPoint = element.sourcePoint;\n }\n return srcPoint;\n}\n/**\n * getDirection method \\\n *\n * @returns { void } getDirection method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n *\n * @private\n */\nfunction getDirection(source, target, layoutOrientation) {\n if (layoutOrientation === 'LeftToRight') {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if (layoutOrientation === 'RightToLeft') {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else if (layoutOrientation === 'TopToBottom') {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if (layoutOrientation === 'BottomToTop') {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n}\n/**\n * terminateConnection method \\\n *\n * @returns { PointModel[] } terminateConnection method .\\\n * @param {Connector} element - provide the element value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n * @param {LayoutOrientation} layoutOrientation - provide the layoutOrientation value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n *\n * @private\n */\nfunction terminateConnection(element, srcPoint, tarPoint, layoutOrientation, lineDistribution) {\n var sourceNode = element.sourceWrapper;\n var targetNode = element.targetWrapper;\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var srcCorner;\n var tarCorner;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var intermeditatePoints = [];\n var segPoint;\n var srcDir;\n var tarDir;\n var minSpace = findMargin(element);\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCorner, point: srcPoint, direction: srcDir, margin: sourceMargin };\n var target = { corners: tarCorner, point: tarPoint, direction: tarDir, margin: targetMargin };\n var sourceCorners;\n var targetCorners;\n if (sourceNode !== undefined && targetNode !== undefined) {\n sourceCorners = cornersPointsBeforeRotation(sourceNode);\n targetCorners = cornersPointsBeforeRotation(targetNode);\n source.corners = sourceNode.corners;\n target.corners = targetNode.corners;\n }\n if (sourcePort !== undefined) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n if (sourcePort.connectionDirection === 'Left' || sourcePort.connectionDirection === 'Top' || sourcePort.connectionDirection === 'Bottom' || sourcePort.connectionDirection === 'Right') {\n source.direction = sourcePort.connectionDirection;\n }\n else {\n source.direction = getPortDirection(port, sourceCorners, sourceNode.bounds, false);\n }\n }\n if (targetPort !== undefined) {\n var tarPortPt = { x: targetPort.offsetX, y: targetPort.offsetY };\n if (targetPort.connectionDirection === 'Left' || targetPort.connectionDirection === 'Right' || targetPort.connectionDirection === 'Bottom' || targetPort.connectionDirection === 'Top') {\n target.direction = targetPort.connectionDirection;\n }\n else {\n target.direction = getPortDirection(tarPortPt, targetCorners, targetNode.bounds, false);\n }\n }\n if (element.type === 'Bezier') {\n if (!element.isBezierEditing) {\n if (element.segments.length > 0) {\n var i = element.segments.length - 1;\n while (i >= 0) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (seg.isInternalSegment) {\n element.segments.pop();\n }\n i--;\n }\n }\n }\n }\n if (sourceNode !== undefined && targetNode !== undefined) {\n if (source.direction === undefined || target.direction === undefined) {\n if (layoutOrientation) {\n getDirection(source, target, layoutOrientation);\n }\n else {\n if (source.corners.top > target.corners.bottom &&\n Math.abs(source.corners.top - target.corners.bottom) > minSpace) {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n else if (source.corners.bottom < target.corners.top &&\n Math.abs(source.corners.bottom - target.corners.top) > minSpace) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else if ((source.corners.right < target.corners.left &&\n Math.abs(source.corners.right - target.corners.left) > minSpace) ||\n ((source.corners.right + minSpace < target.corners.left) ||\n (target.corners.right >= source.corners.left - minSpace && source.corners.left > target.corners.left))) {\n source.direction = source.direction ? source.direction : 'Right';\n target.direction = target.direction ? target.direction : 'Left';\n }\n else if ((source.corners.left > target.corners.right &&\n Math.abs(source.corners.left - target.corners.right) > (source.margin.left + source.margin.right)) ||\n ((target.corners.right + minSpace < source.corners.left ||\n (source.corners.right >= target.corners.left - minSpace\n && source.corners.left < target.corners.left)))) {\n source.direction = source.direction ? source.direction : 'Left';\n target.direction = target.direction ? target.direction : 'Right';\n }\n else {\n if (sourceNode.id !== targetNode.id && (!sourceCorners.equals(sourceCorners, targetCorners)) &&\n targetCorners.containsPoint(sourceCorners.topCenter, source.margin.top)) {\n source.direction = source.direction ? source.direction : 'Bottom';\n target.direction = target.direction ? target.direction : 'Top';\n }\n else {\n source.direction = source.direction ? source.direction : 'Top';\n target.direction = target.direction ? target.direction : 'Bottom';\n }\n }\n }\n }\n return defaultOrthoConnection(element, source.direction, target.direction, source.point, target.point, lineDistribution);\n }\n //It will be called only when there is only one end node\n checkLastSegmentasTerminal(element);\n if (element.sourceWrapper || element.targetWrapper) {\n connectToOneEnd(element, source, target);\n }\n if (element.type === 'Straight' || element.type === 'Bezier') {\n intermeditatePoints = intermeditatePointsForStraight(element, source, target);\n }\n else {\n if (element.type === 'Orthogonal' && element.segments && element.segments.length > 0 &&\n element.segments[0].length !== null &&\n element.segments[0].direction !== null) {\n intermeditatePoints = findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort);\n }\n else {\n var extra = void 0;\n if (!source.direction) {\n source.direction = (target.direction) ? ((element.targetPortWrapper !== undefined) ? target.direction : getOppositeDirection(target.direction)) :\n Point.direction(source.point, target.point);\n }\n else {\n extra = adjustSegmentLength(sourceNode.bounds, source, 20);\n }\n element.segments[0].points = intermeditatePoints = orthoConnection3Segment(element, source, target, extra);\n }\n }\n return intermeditatePoints;\n}\n/**\n * updateSegmentPoints method \\\n *\n * @returns { PointModel[] } updateSegmentPoints method .\\\n * @param {End} source - provide the source value.\n * @param {OrthogonalSegment} segment - provide the segment value.\n *\n * @private\n */\nfunction updateSegmentPoints(source, segment) {\n //let segPoint: PointModel; //let angle: number; //let extra: number;\n source.direction = segment.direction;\n segment.points = [];\n segment.points.push(source.point);\n var extra = (segment.direction === 'Left' || segment.direction === 'Top') ? -(segment.length) : segment.length;\n var angle = (segment.direction === 'Left' || segment.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n segment.points.push(segPoint);\n return segPoint;\n}\n/**\n * pointToPoint method \\\n *\n * @returns { void } pointToPoint method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPoint(element, source, target) {\n var point;\n var direction;\n var portdirection;\n source.corners = (element.sourceWrapper) ? element.sourceWrapper.corners : undefined;\n if (element.sourcePortWrapper) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n if (source.corners && (source.direction === 'Bottom' || source.direction === 'Top')) {\n if (target.point.x > source.corners.left && target.point.x < source.corners.right) {\n direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else if (source.corners && (source.direction === 'Left' || source.direction === 'Right')) {\n if (target.point.y > source.corners.top && target.point.y < source.corners.bottom) {\n direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n }\n if (element.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_1;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.center.y) &&\n (target.point.y >= source.corners.top && target.point.y <= source.corners.center.y)) {\n source.direction = 'Top';\n length_1 = source.point.y - source.corners.top + 20;\n }\n else if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y > source.corners.center.y\n && source.point.y <= source.corners.bottom) &&\n (target.point.y > source.corners.center.y && target.point.y <= source.corners.bottom)) {\n source.direction = 'Bottom';\n length_1 = source.corners.bottom - source.point.y + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.center.x) &&\n (target.point.x >= source.corners.left && target.point.x <= source.corners.center.x)) {\n source.direction = 'Left';\n length_1 = source.point.x - source.corners.left + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x <= source.corners.right\n && source.point.x > source.corners.center.x) &&\n (target.point.x <= source.corners.right && target.point.x < source.corners.center.x)) {\n source.direction = 'Right';\n length_1 = source.corners.right - source.point.x + 20;\n }\n if (source.direction && length_1) {\n point = orthoConnection3Segment(element, source, target, length_1, true);\n }\n }\n else {\n source.direction = (direction) ? direction : findSourceDirection(source.direction, source.point, target.point);\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * pointToNode method \\\n *\n * @returns { void } pointToNode method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToNode(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n findDirection(element.targetWrapper, source, target, element);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (source.direction === target.direction && (source.direction === 'Left' || source.direction === 'Right')) {\n source.direction = direction;\n point = orthoConnection3Segment(element, source, target, element.targetWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n findDirection(element.targetWrapper, source, target, element);\n point = orthoConnection3Segment(element, source, target);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n return point;\n}\n/**\n * addPoints method \\\n *\n * @returns { void } addPoints method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction addPoints(element, source, target) {\n target.corners = element.targetWrapper.corners;\n var direction;\n var length;\n if (source.direction !== 'Left' && source.direction !== 'Right') {\n if (target.corners.center.y === source.point.y &&\n (!(target.corners.left <= source.point.x && source.point.x <= target.corners.right))) {\n direction = 'Top';\n length = target.corners.height / 2 + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Bottom') ||\n (target.corners.center.y > source.point.y && source.point.y >= target.corners.top)) {\n direction = 'Top';\n length = (source.point.y - target.corners.top) + 20;\n }\n else if ((target.corners.center.y === source.point.y &&\n element.segments[element.segments.length - 2].direction === 'Top') ||\n (target.corners.center.y < source.point.y && source.point.y <= target.corners.bottom)) {\n direction = 'Bottom';\n length = (target.corners.bottom - source.point.y) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.top <= source.point.y && source.point.y <= source.corners.bottom) {\n direction = source.direction;\n length = (source.point.y > target.point.y) ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n }\n else {\n if (target.corners.center.x === source.point.x &&\n (!(target.corners.top < source.point.y && source.point.y <= target.corners.bottom))) {\n direction = 'Left';\n length = target.corners.width / 2 + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Right')\n || (target.corners.center.x > source.point.x && source.point.x >= target.corners.left)) {\n direction = 'Left';\n length = (source.point.x - target.corners.left) + 20;\n }\n else if ((target.corners.center.x === source.point.x &&\n element.segments[element.segments.length - 2].direction === 'Left') ||\n (target.corners.center.x <= source.point.x && source.point.x <= target.corners.right)) {\n direction = 'Right';\n length = (target.corners.right - source.point.x) + 20;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n source.corners.left <= source.point.x && source.point.x <= source.corners.right) {\n direction = source.direction;\n length = (source.point.x > target.point.x) ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n }\n var extra = (direction === 'Left' || direction === 'Top') ? -(length) : length;\n var angle = (direction === 'Left' || direction === 'Right') ? 0 : 90;\n var refPoint = source.point;\n source.point = addLineSegment(source.point, extra, angle);\n source.direction = Point.direction(source.point, target.point);\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n (source.corners.center.x === target.corners.center.x || source.corners.center.y === target.corners.center.y)) {\n source.direction = target.direction;\n }\n var point = orthoConnection3Segment(element, source, target);\n point.splice(0, 0, refPoint);\n return point;\n}\n/**\n * findSegmentDirection method \\\n *\n * @returns { void } findSegmentDirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Direction} portDir - provide the target value.\n *\n * @private\n */\nfunction findSegmentDirection(element, source, target, portDir) {\n var update = false;\n switch (target.direction) {\n case 'Left':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Right' &&\n source.point.x > target.point.x && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)\n || (((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) &&\n source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (portDir === 'Right') ? ((source.point.y > target.point.y) ? 'Top' : 'Bottom') :\n (source.point.x < target.point.x ? 'Right' : 'Left');\n update = true;\n }\n else if (source.point.x > target.point.x && (source.point.y > target.point.y || source.point.y < target.point.y)\n && (!(target.corners.top > source.point.y && target.corners.bottom < source.point.y))) {\n source.direction = 'Left';\n }\n else if ((source.point.x < target.point.x && source.point.y > target.point.y) ||\n (source.point.x > target.point.x && (source.point.y <= target.point.y)\n && ((target.corners.top < source.point.y && target.corners.center.y >= source.point.y)))) {\n source.direction = 'Top';\n }\n else if ((source.point.x < target.point.x && source.point.y < target.point.y) ||\n (source.point.x > target.point.x && (source.point.y > target.point.y)\n && ((target.corners.bottom < source.point.y && target.corners.center.y > source.point.y)))) {\n source.direction = 'Bottom';\n }\n else if (source.point.y === target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Right':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n ((portDir === 'Bottom' && source.point.y > target.point.y) ||\n (portDir === 'Top' && source.point.y < target.point.y)) && source.point.x > target.point.x &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n update = true;\n }\n else if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n portDir === 'Left' && source.point.x < target.point.x && (source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom)) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n update = true;\n }\n else if (source.point.x < target.point.x && target.corners.top <= source.point.y\n && target.corners.bottom >= source.point.y && source.point.y === target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Bottom';\n }\n else if (source.point.x < target.point.x && (source.point.y > target.point.y ||\n source.point.y < target.point.y)) {\n source.direction = 'Right';\n }\n else if (source.point.y === target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n break;\n case 'Top':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && (portDir === 'Bottom' &&\n source.point.y > target.point.y && source.point.x >= source.corners.left &&\n source.point.x <= source.corners.right) || (((portDir === 'Right' && source.point.x > target.point.x) ||\n (portDir === 'Left' && target.point.y > source.point.y && target.point.x > source.point.x)) &&\n (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom))) {\n source.direction = (portDir === 'Bottom') ? ((source.point.x > target.point.x) ? 'Left' : 'Right') :\n (source.point.y < target.point.y) ? 'Bottom' : 'Top';\n update = true;\n }\n else if (source.point.x === target.point.x && source.point.y < target.point.y) {\n source.direction = 'Bottom';\n }\n else if (source.point.y > target.point.y && source.point.x > target.corners.left &&\n source.point.x < target.corners.right) {\n source.direction = 'Left';\n }\n else if (source.point.y >= target.point.y) {\n source.direction = 'Top';\n }\n else if (source.point.y < target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n break;\n case 'Bottom':\n if (element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined && ((((portDir === 'Right') ||\n (portDir === 'Left' && target.point.x > source.point.x)) && (source.point.y > target.point.y) &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) ||\n (((portDir === 'Top' && source.point.y < target.point.y)) &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n if (portDir === 'Right' || portDir === 'Left') {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n else {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n update = true;\n }\n else if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.right > source.point.x) {\n if (source.point.y < target.point.y && source.point.x > target.corners.left &&\n target.corners.center.x >= source.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y < target.point.y && source.point.x < target.corners.right &&\n target.corners.center.x < source.point.x) {\n source.direction = 'Right';\n }\n }\n else if (source.point.y > target.point.y && source.point.x > target.point.x) {\n source.direction = 'Left';\n }\n else if (source.point.y > target.point.y && source.point.x < target.point.x) {\n source.direction = 'Right';\n }\n else if (source.point.y <= target.point.y && (source.point.x > target.point.x || target.point.x > source.point.x)) {\n source.direction = 'Bottom';\n }\n break;\n }\n return update;\n}\n/**\n * pointToPort method \\\n *\n * @returns { void } pointToPort method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction pointToPort(element, source, target) {\n var point;\n target.corners = element.targetWrapper.corners;\n var portdirection;\n var length;\n if (element.sourcePortWrapper !== undefined) {\n var port = { x: element.sourcePortWrapper.offsetX, y: element.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(element.sourceWrapper), element.sourceWrapper.bounds, false);\n }\n var update = findSegmentDirection(element, source, target, portdirection);\n // EJ2-65063 - Added below condition !selectedSegmentIndex to prevent the connector segment to split from two points into four points\n if ((!element.selectedSegmentIndex) && element.sourcePortWrapper !== undefined && element.targetPortWrapper !== undefined &&\n target.direction === getOppositeDirection(portdirection) &&\n ((((target.direction === 'Left' && source.point.x > target.point.x) || (target.direction === 'Right' &&\n source.point.x < target.point.x)) && source.point.y >= source.corners.top &&\n source.point.y <= source.corners.bottom) || (target.direction === 'Bottom' && source.point.y < target.point.y &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right)))) {\n point = addPoints(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && source.direction === target.direction) {\n point = orthoConnection3Segment(element, source, target);\n }\n else if ((!element.selectedSegmentIndex) && (((target.direction === 'Left' && source.point.x > target.point.x) ||\n (target.direction === 'Right' && source.point.x < target.point.x)) && (source.direction === 'Top' || source.direction === 'Bottom')\n && ((source.point.y <= target.point.y) &&\n ((target.corners.top <= source.point.y && target.corners.bottom >= source.point.y)))) ||\n ((target.direction === 'Top' && source.point.y > target.point.y) ||\n (target.direction === 'Bottom' && source.point.y < target.point.y) &&\n ((target.corners.left <= source.point.x && target.corners.right >= source.point.x)))) {\n // EJ2-69304 - Return the 2 segment points if allowNodeOverlap is set as true.\n if (!element.selectedSegmentIndex) {\n point = addPoints(element, source, target);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n else {\n if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined\n && element.targetPortWrapper !== undefined && ((source.direction === 'Left' || source.direction === 'Right')\n && (source.point.y >= source.corners.top && source.point.y <= source.corners.bottom)\n && (target.direction === 'Top' || target.direction === 'Bottom') &&\n (target.corners.center.x === source.corners.center.x))) {\n source.direction = (target.direction === 'Top') ? 'Bottom' : 'Top';\n length = (target.direction === 'Top') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if ((!element.selectedSegmentIndex) && element.sourceWrapper !== undefined && element.targetWrapper !== undefined\n && element.targetPortWrapper !== undefined && ((source.direction === 'Top' || source.direction === 'Bottom') &&\n (source.point.x >= source.corners.left && source.point.x <= source.corners.right) &&\n (target.direction === 'Left' || target.direction === 'Right') && (target.corners.center.y === source.corners.center.y))) {\n source.direction = (target.direction === 'Left') ? 'Right' : 'Left';\n length = (target.direction === 'Left') ? (source.corners.right - source.point.x + 20) :\n (source.point.x - source.corners.left + 20);\n point = orthoConnection3Segment(element, source, target, length);\n }\n else if (update) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n length = (source.direction === 'Left') ? (source.point.x - source.corners.left + 20) :\n (source.corners.right - source.point.x + 20);\n }\n else {\n length = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n }\n point = orthoConnection3Segment(element, source, target, length);\n }\n else {\n point = orthoConnection2Segment(source, target);\n }\n }\n return point;\n}\n/**\n * findPointToPointOrtho method \\\n *\n * @returns { void } findPointToPointOrtho method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the source value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n * @param {DiagramElement} targetNode - provide the target value.\n * @param {DiagramElement} sourcePort - provide the sourcePort value.\n * @param {DiagramElement} targetPort - provide the targetPort value.\n *\n * @private\n */\nfunction findPointToPointOrtho(element, source, target, sourceNode, targetNode, sourcePort, targetPort) {\n var j;\n var point;\n var intermeditatePoints = [];\n var direction;\n var port; //let seg: OrthogonalSegment;\n checkLastSegmentasTerminal(element);\n var removeSegment;\n if (element.segments.length > 0) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n if (i === 0 && element.sourcePortWrapper !== undefined) {\n port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n direction = getPortDirection(port, cornersPointsBeforeRotation(sourceNode), sourceNode.bounds, false);\n if (seg.direction === getOppositeDirection(direction)) {\n seg.direction = direction;\n }\n }\n if (i > 0 && element.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(element, i, source);\n }\n else {\n var lastSegment = element.segments[i - 1];\n source.point = (seg.direction) ? updateSegmentPoints(source, seg) :\n lastSegment.points[lastSegment.points.length - 1];\n }\n if (i === element.segments.length - 1) {\n if (!targetPort && !targetNode) {\n point = pointToPoint(element, source, target);\n }\n else if (element.targetWrapper && element.targetPortWrapper === undefined) {\n checkSourcePointInTarget(element, source);\n point = pointToNode(element, source, target);\n }\n else {\n point = pointToPort(element, source, target);\n }\n if (point) {\n checkPreviousSegment(point, element, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n else {\n removeSegment = i;\n }\n }\n }\n if (sourcePort && i === 0) {\n var sourcePoint = checkPortdirection(element, sourcePort, sourceNode);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n if (removeSegment !== undefined) {\n if (removeSegment === element.segments.length - 1) {\n element.segments[removeSegment - 1].direction = null;\n element.segments[removeSegment - 1].length = null;\n }\n element.segments.splice(removeSegment, 1);\n }\n intermeditatePoints = returnIntermeditatePoints(element, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * checkPortdirection method \\\n *\n * @returns { PointModel } checkPortdirection method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} sourcePort - provide the target value.\n * @param {DiagramElement} sourceNode - provide the target value.\n *\n * @private\n */\nfunction checkPortdirection(element, sourcePort, sourceNode) {\n var port = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n var point;\n var bounds = cornersPointsBeforeRotation(sourceNode);\n var direction = getPortDirection(port, bounds, sourceNode.bounds, false);\n var seg = element.segments[0];\n if (seg.direction !== direction) {\n pointsFromNodeToPoint(seg, direction, bounds, seg.points[0], seg.points[seg.points.length - 1], false);\n point = seg.points[seg.points.length - 1];\n seg.direction = Point.direction(seg.points[seg.points.length - 2], seg.points[seg.points.length - 1]);\n }\n return point;\n}\n/**\n * checkPreviousSegment method \\\n *\n * @returns { PointModel } checkPreviousSegment method .\\\n * @param {Connector} tPoints - provide the element value.\n * @param {DiagramElement} connector - provide the target value.\n * @param {DiagramElement} source - provide the target value.\n *\n * @private\n */\nfunction checkPreviousSegment(tPoints, connector, source) {\n var actualSegment = connector.segments[connector.segments.length - 2];\n var actualLastPoint = actualSegment.points[actualSegment.points.length - 1];\n var direction;\n if (((actualSegment.direction === 'Top' || actualSegment.direction === 'Bottom') && (actualLastPoint.x === tPoints[1].x)) ||\n ((actualSegment.direction === 'Left' || actualSegment.direction === 'Right') && (actualLastPoint.y === tPoints[1].y))) {\n actualSegment.points[actualSegment.points.length - 1] = tPoints[1];\n direction = Point.direction(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n if (connector.sourceWrapper !== undefined && connector.sourcePortWrapper === undefined &&\n direction === getOppositeDirection(actualSegment.direction)) {\n if (actualSegment.direction === 'Left' || actualSegment.direction === 'Right') {\n actualSegment.points[0].x = (actualSegment.direction === 'Right') ?\n actualSegment.points[0].x - connector.sourceWrapper.corners.width :\n actualSegment.points[0].x + connector.sourceWrapper.corners.width;\n }\n else {\n actualSegment.points[0].y = (actualSegment.direction === 'Bottom') ?\n actualSegment.points[0].y - connector.sourceWrapper.corners.height :\n actualSegment.points[0].y + connector.sourceWrapper.corners.height;\n }\n }\n actualSegment.direction = direction;\n actualSegment.length = Point.distancePoints(actualSegment.points[0], actualSegment.points[actualSegment.points.length - 1]);\n tPoints.splice(0, 1);\n }\n}\n/**\n * connectToOneEnd method \\\n *\n * @returns { void } connectToOneEnd method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n *\n * @private\n */\nfunction connectToOneEnd(element, source, target) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var node = element.sourceWrapper;\n var fixedPoint = source.point;\n var nodeMargin = { left: 0, right: 0, top: 0, bottom: 0 };\n var nodeConnectingPoint = { x: 0, y: 0 };\n var refPoint;\n var nodeDirection = 'Top';\n if (!node) {\n node = element.targetWrapper;\n nodeMargin = target.margin;\n }\n else {\n fixedPoint = target.point;\n nodeMargin = source.margin;\n }\n if (element.type === 'Orthogonal') {\n if ((element.segments && element.segments.length > 0) && element.sourceWrapper &&\n element.segments[0].direction) {\n source.direction = element.segments[0].direction;\n nodeConnectingPoint = findPoint(node.corners, source.direction);\n refPoint = findPoint(node.corners, getOppositeDirection(source.direction));\n nodeConnectingPoint = getIntersection(element, node, nodeConnectingPoint, refPoint, false);\n }\n else {\n var source_1 = { corners: null, direction: null, point: fixedPoint, margin: nodeMargin };\n var target_1 = { corners: null, direction: null, point: null, margin: null };\n findDirection(node, source_1, target_1, element);\n nodeConnectingPoint = target_1.point;\n nodeDirection = target_1.direction;\n }\n }\n else {\n var segmentPoint = void 0;\n if (element.segments && element.segments.length > 1) {\n if (node === element.sourceWrapper) {\n segmentPoint = element.segments[0].point;\n }\n else {\n segmentPoint = element.segments[element.segments.length - 2].point;\n }\n }\n nodeConnectingPoint = getIntersection(element, node, node.bounds.center, (element.segments && element.segments.length > 1) ? segmentPoint : fixedPoint, node === element.targetWrapper);\n }\n if (node === element.sourceWrapper) {\n source.direction = source.direction || nodeDirection;\n source.point = nodeConnectingPoint;\n if (element.sourcePortWrapper) {\n source.point = { x: sourcePort.offsetX, y: sourcePort.offsetY };\n if (element.sourcePadding) {\n source.point = addPaddingToConnector(element, source, target, false);\n }\n }\n }\n else {\n target.direction = target.direction || nodeDirection;\n target.point = nodeConnectingPoint;\n if (element.targetPortWrapper) {\n target.point = { x: targetPort.offsetX, y: targetPort.offsetY };\n if (element.targetPadding) {\n target.point = addPaddingToConnector(element, source, target, true);\n }\n }\n }\n}\n/**\n * addPaddingToConnector method \\\n *\n * @returns { void } addPaddingToConnector method .\\\n * @param {Connector} element - provide the element value.\n * @param {DiagramElement} source - provide the target value.\n * @param {DiagramElement} target - provide the target value.\n * @param {DiagramElement} isTarget - provide the target value.\n *\n * @private\n */\nfunction addPaddingToConnector(element, source, target, isTarget) {\n var sourcePort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var padding = (isTarget) ? element.targetPadding : element.sourcePadding;\n var paddingPort = (isTarget) ? targetPort : sourcePort;\n var rect = new Rect(paddingPort.bounds.x - padding, paddingPort.bounds.y - padding, paddingPort.actualSize.width + 2 * padding, paddingPort.actualSize.height + 2 * padding);\n var segmentPoints = [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft];\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: source.point.x, y1: source.point.y, x2: target.point.x, y2: target.point.y };\n var point = (isTarget) ? target.point : source.point;\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || point;\n}\n/**\n * checkSourceAndTargetIntersect method \\\n *\n * @returns { void } checkSourceAndTargetIntersect method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {DiagramElement} targetWrapper - provide the targetWrapper value.\n * @param {Connector} connector - provide the Connector value.\n *\n * @private\n */\nfunction checkSourceAndTargetIntersect(sourceWrapper, targetWrapper, connector) {\n var sourceSegment = createSegmentsCollection(sourceWrapper, connector.sourcePadding);\n var targetSegment = createSegmentsCollection(targetWrapper, connector.targetPadding);\n for (var i = 0; i < sourceSegment.length - 1; i++) {\n var srcSegment = sourceSegment[parseInt(i.toString(), 10)];\n for (var j = 0; j < targetSegment.length - 1; j++) {\n var tarSegmet = targetSegment[parseInt(j.toString(), 10)];\n if (intersect3(srcSegment, tarSegmet).enabled) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * createSegmentsCollection method \\\n *\n * @returns { Segment[] } createSegmentsCollection method .\\\n * @param {DiagramElement} sourceWrapper - provide the sourceWrapper value.\n * @param {number} padding - provide the padding value.\n *\n * @private\n */\nfunction createSegmentsCollection(sourceWrapper, padding) {\n var segments = [];\n var points = getPoints(sourceWrapper, sourceWrapper.corners, padding);\n points.push(points[0]);\n for (var i = 0; i < points.length - 1; i++) {\n segments.push(createLineSegment(points[parseInt(i.toString(), 10)], points[i + 1]));\n }\n return segments;\n}\n/**\n * createLineSegment method \\\n *\n * @returns { Segment } createLineSegment method .\\\n * @param {PointModel} sPt - provide the sourceWrapper value.\n * @param {PointModel} tPt - provide the padding value.\n *\n * @private\n */\nfunction createLineSegment(sPt, tPt) {\n var line = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return line;\n}\n/**\n * swapBounds method \\\n *\n * @returns { Corners } swapBounds method .\\\n * @param {PointModel} object - provide the sourceWrapper value.\n * @param {PointModel} bounds - provide the padding value.\n * @param {Rect} outerBounds - provide the padding value.\n *\n * @private\n */\nexport function swapBounds(object, bounds, outerBounds) {\n var rectBounds;\n var rotateAngle = object.rotateAngle + object.parentTransform;\n if (rotateAngle) {\n if (rotateAngle < 45) {\n return bounds;\n }\n else if (rotateAngle <= 135) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.middleLeft, topRight: bounds.topLeft,\n middleLeft: bounds.bottomCenter, center: outerBounds.center, middleRight: bounds.topCenter,\n bottomLeft: bounds.bottomRight, bottomCenter: bounds.middleRight, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 225) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.bottomLeft, topCenter: bounds.bottomCenter, topRight: bounds.bottomRight,\n middleLeft: bounds.middleRight, center: outerBounds.center, middleRight: bounds.middleLeft,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.topCenter, bottomRight: bounds.topRight,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top,\n bottom: outerBounds.bottom\n };\n }\n else if (rotateAngle <= 315) {\n rectBounds = {\n width: bounds.width, height: bounds.height,\n topLeft: bounds.topRight, topCenter: bounds.middleRight, topRight: bounds.bottomRight,\n middleLeft: bounds.topCenter, center: outerBounds.center, middleRight: bounds.bottomCenter,\n bottomLeft: bounds.topLeft, bottomCenter: bounds.middleLeft, bottomRight: bounds.bottomLeft,\n left: outerBounds.left, right: outerBounds.right, top: outerBounds.top, bottom: outerBounds.bottom\n };\n }\n else {\n return bounds;\n }\n return rectBounds;\n }\n return bounds;\n}\n/**\n * defaultOrthoConnection method \\\n *\n * @returns { PointModel[] } defaultOrthoConnection method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Direction} srcDir - provide the srcDir value.\n * @param {Direction} tarDir - provide the srcDir value.\n * @param {PointModel} sPt - provide the sPt value.\n * @param {PointModel} tPt - provide the tPt value.\n * @param {Rect} lineDistribution - provide the padding value.\n *\n * @private\n */\n/* tslint:disable */\n// eslint-disable-next-line\nfunction defaultOrthoConnection(ele, srcDir, tarDir, sPt, tPt, lineDistribution) {\n var sourceEle = ele.sourceWrapper;\n var targetEle = ele.targetWrapper;\n var srcPort = ele.sourcePortWrapper;\n var tarPort = ele.targetPortWrapper;\n var intermeditatePoints = [];\n var refPoint;\n var srcCor = sourceEle.corners;\n // eslint-disable-next-line\n var tarCor = targetEle.corners;\n var point = tarCor.center; //const i: number;\n var sourceMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var targetMargin = { left: 5, right: 5, bottom: 5, top: 5 };\n var source = { corners: srcCor, point: sPt, direction: srcDir, margin: sourceMargin };\n // eslint-disable-next-line\n var target = { corners: tarCor, point: tPt, direction: tarDir, margin: targetMargin };\n var srcBounds = swapBounds(sourceEle, srcCor, ele.sourceWrapper.bounds);\n var tarBounds = swapBounds(targetEle, tarCor, ele.targetWrapper.bounds);\n var isInterSect = false;\n if (ele.sourceWrapper && ele.targetWrapper) {\n isInterSect = checkSourceAndTargetIntersect(ele.sourceWrapper, ele.targetWrapper, ele);\n }\n if (srcPort !== undefined) {\n source.point = { x: srcPort.offsetX, y: srcPort.offsetY };\n switch (source.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n source.point.y = source.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n source.point.x = source.point.x;\n break;\n }\n if (ele.sourcePadding && !isInterSect) {\n if (tarPort) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n }\n source.point = addPaddingToConnector(ele, source, target, false);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n if (ele.segments && ele.segments.length > 0 && ele.segments[0].direction) {\n source.direction = ele.segments[0].direction;\n }\n source.point = findPoint(srcBounds, source.direction);\n refPoint = findPoint(srcBounds, getOppositeDirection(source.direction));\n source.point = getIntersection(ele, sourceEle, source.point, refPoint, false);\n }\n else {\n source.point = sourceEle.corners.center;\n }\n }\n if (tarPort !== undefined) {\n target.point = {\n x: tarPort.offsetX,\n y: tarPort.offsetY\n };\n switch (target.direction) {\n case 'Bottom':\n case 'Top':\n // eslint-disable-next-line\n target.point.y = target.point.y;\n break;\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n target.point.x = target.point.x;\n break;\n }\n if (ele.targetPadding && !isInterSect) {\n target.point = addPaddingToConnector(ele, source, target, true);\n }\n }\n else {\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n target.point = findPoint(tarBounds, target.direction);\n refPoint = findPoint(tarBounds, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, targetEle, target.point, refPoint, true);\n }\n else {\n target.point = targetEle.corners.center;\n }\n }\n if (ele.type !== 'Orthogonal') {\n var segment = void 0;\n var first = void 0;\n if (ele.type === 'Bezier') {\n //EJ2-67651 - Bezier segment points are static when we move the connector's source or target node.\n if ((ele.bezierSettings.allowSegmentsReset || (ele.segments.length === 0 ||\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n return intermeditatePoints;\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n }\n else {\n checkLastSegmentasTerminal(ele);\n }\n if (ele.sourcePortWrapper === undefined) {\n source.point = source.corners.center;\n if (ele.segments && ele.segments.length > 0) {\n first = ele.segments[0];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var tarPoint = (segment !== undefined) ? segment.point : target.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[0].vector1.angle && ele.segments[0].vector1.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n tarPoint = Point.transform(source.point, ele.segments[0].vector1.angle, value / 2);\n }\n source.point = isInterSect ? ele.sourceWrapper.bounds.center : getIntersection(ele, sourceEle, source.point, tarPoint, false);\n }\n if (ele.targetPortWrapper === undefined) {\n target.point = target.corners.center;\n if (ele.segments && ele.segments.length > 1) {\n first = ele.segments[ele.segments.length - 2];\n segment = (!Point.isEmptyPoint(first.point)) ? first : undefined;\n }\n var srcPoint = (segment) ? segment.point : source.point;\n if (ele.type === 'Bezier' && ele.segments.length > 0 &&\n ele.segments[ele.segments.length - 1].vector2.angle &&\n ele.segments[ele.segments.length - 1].vector2.distance) {\n var value = Math.max(source.corners.width, source.corners.height);\n srcPoint = Point.transform(target.point, ele.segments[0].vector2.angle, value / 2);\n }\n target.point = isInterSect ? ele.targetWrapper.bounds.center : getIntersection(ele, targetEle, srcPoint, target.point, true);\n }\n intermeditatePoints = intermeditatePointsForStraight(ele, source, target);\n }\n else {\n if (ele.type === 'Orthogonal' && (ele.segments && ele.segments.length > 0) &&\n ele.segments[0].direction !== null) {\n intermeditatePoints = findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle);\n }\n else {\n if (!ele.segments[0]) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n // eslint-disable-next-line\n ele.segments[0].points = intermeditatePoints = findOrthoSegments(ele, source, target, undefined, lineDistribution);\n }\n }\n return intermeditatePoints;\n}\n/**\n * intermeditatePointsForStraight method \\\n *\n * @returns { PointModel[] } intermeditatePointsForStraight method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n *\n * @private\n */\nfunction intermeditatePointsForStraight(element, source, target) {\n var intermeditatePoints = [];\n if (element.segments && element.segments.length > 0) {\n var i = void 0;\n var segPoint = [];\n var srcPoint = source.point;\n for (i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n segPoint = [];\n segPoint.push(srcPoint);\n if (i !== element.segments.length - 1) {\n segPoint.push(seg.point);\n srcPoint = seg.point;\n }\n else {\n segPoint.push(target.point);\n }\n element.segments[parseInt(i.toString(), 10)].points = segPoint;\n if (element.segments.length > 1 && Point.equals(seg.points[0], seg.points[1])) {\n (element.segments).splice(i, 1);\n }\n if (seg) {\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findSourceDirection method \\\n *\n * @returns { PointModel[] } findSourceDirection method .\\\n * @param {Direction} dir - provide the dir value.\n * @param {PointModel} srcPoint - provide the srcPoint value.\n * @param {PointModel} tarPoint - provide the tarPoint value.\n *\n * @private\n */\nfunction findSourceDirection(dir, srcPoint, tarPoint) {\n var direction = (dir === 'Top' || dir === 'Bottom') ?\n ((tarPoint.x > srcPoint.x) ? 'Right' : 'Left') :\n ((tarPoint.y > srcPoint.y) ? 'Bottom' : 'Top');\n return direction;\n}\n/**\n * checkLastSegmentasTerminal method \\\n *\n * @returns { void } checkLastSegmentasTerminal method .\\\n * @param {Connector} ele - provide the Connector value.\n *\n * @private\n */\nfunction checkLastSegmentasTerminal(ele) {\n if (ele.type === 'Straight' || ele.type === 'Bezier') {\n if ((ele.segments.length === 0 || (ele.segments.length > 0 &&\n (!Point.isEmptyPoint(ele.segments[ele.segments.length - 1].point))))) {\n //let segment: BezierSegmentModel | StraightSegmentModel;\n if (ele.type === 'Bezier') {\n var segment = new BezierSegment(ele, 'segments', { type: 'Bezier', isInternalSegment: true }, true);\n (ele.segments).push(segment);\n }\n else {\n var segment = new StraightSegment(ele, 'segments', { type: 'Straight' }, true);\n (ele.segments).push(segment);\n }\n }\n }\n else {\n if (ele.segments.length > 0) {\n var isInvalid = false;\n var i = 0;\n while (i < ele.segments.length) {\n var seg = ele.segments[parseInt(i.toString(), 10)];\n if (isInvalid ||\n (seg && !(seg instanceof OrthogonalSegment || seg instanceof StraightSegment || seg instanceof BezierSegment))) {\n ele.segments.splice(i, 1);\n isInvalid = true;\n }\n else {\n i++;\n }\n }\n }\n if (ele.segments.length === 0 || ele.segments[ele.segments.length - 1].direction) {\n var segment = new OrthogonalSegment(ele, 'segments', { type: 'Orthogonal' }, true);\n ele.segments.push(segment);\n }\n }\n}\n/**\n * checkConsectiveSegmentAsSame method \\\n *\n * @returns { number } checkConsectiveSegmentAsSame method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {Connector} i - provide the Connector value.\n * @param {Connector} source - provide the Connector value.\n *\n * @private\n */\nfunction checkConsectiveSegmentAsSame(ele, i, source) {\n var seg = ele.segments[parseInt(i.toString(), 10)];\n var extra = (seg.direction === 'Left' || seg.direction === 'Top') ? -(seg.length) : seg.length;\n var angle = (seg.direction === 'Left' || seg.direction === 'Right') ? 0 : 90;\n var segPoint = addLineSegment(source.point, extra, angle);\n ele.segments[i - 1].length += seg.length;\n ele.segments[i - 1].points[1] = source.point = segPoint;\n ele.segments.splice(i, 1);\n i--;\n return i;\n}\n/**\n * nodeOrPortToNode method \\\n *\n * @returns { PointModel[] } nodeOrPortToNode method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n * @param {End} target - provide the Connector value.\n *\n * @private\n */\nfunction nodeOrPortToNode(ele, source, target) {\n var point;\n var portdirection;\n if (ele.sourcePortWrapper) {\n var port = { x: ele.sourcePortWrapper.offsetX, y: ele.sourcePortWrapper.offsetY };\n portdirection = getPortDirection(port, cornersPointsBeforeRotation(ele.sourceWrapper), ele.sourceWrapper.bounds, false);\n }\n findDirection(ele.targetWrapper, source, target, ele);\n var direction = findSourceDirection(target.direction, source.point, target.point);\n if (ele.sourcePortWrapper !== undefined && source.direction === target.direction &&\n ((source.direction === 'Top' || source.direction === 'Bottom') && (source.corners.center.x === target.corners.center.x)\n || (source.direction === 'Left' || source.direction === 'Right') && (source.corners.center.y === target.corners.center.y))) {\n source.direction = direction;\n point = (direction === 'Top' || direction === 'Bottom') ?\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.height / 2 + 20) :\n orthoConnection3Segment(ele, source, target, ele.sourceWrapper.width / 2 + 20);\n var source1 = source;\n source1.point = point[1];\n if (direction === 'Left' || direction === 'Right') {\n target.direction = direction;\n target.point = (direction === 'Left') ? target.corners.middleLeft : target.corners.middleRight;\n }\n else {\n findDirection(ele.targetWrapper, source, target, ele);\n }\n point = orthoConnection3Segment(ele, source, target);\n }\n else if (target.point.x >= source.corners.left && target.point.x <= source.corners.right &&\n source.point.y >= source.corners.top && source.point.y <= source.corners.bottom) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var length_2 = (source.direction === 'Top') ? (source.point.y - source.corners.top + 20) :\n (source.corners.bottom - source.point.y + 20);\n point = orthoConnection3Segment(ele, source, target, length_2);\n }\n else if (ele.sourcePortWrapper && portdirection === getOppositeDirection(direction)) {\n var length_3;\n if ((portdirection === 'Left' || portdirection === 'Right') && (source.point.y >= source.corners.top\n && source.point.y <= source.corners.bottom)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n length_3 = source.corners.height / 2 + 20;\n }\n else if ((portdirection === 'Top' || portdirection === 'Bottom') && (source.point.x >= source.corners.left\n && source.point.x <= source.corners.right)) {\n source.direction = (target.point.x > source.point.x) ? 'Right' : 'Left';\n length_3 = source.corners.width / 2 + 20;\n }\n if (source.direction && length_3) {\n point = orthoConnection3Segment(ele, source, target, length_3, true);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n else if (ele.sourcePortWrapper && portdirection === target.direction && (portdirection === 'Top' || portdirection === 'Bottom') &&\n (source.corners.center.x === target.corners.center.x)) {\n source.direction = (target.point.y > source.point.y) ? 'Bottom' : 'Top';\n var len = (source.direction === 'Bottom') ? (source.corners.bottom - source.point.y + 20) :\n (source.point.y - source.corners.top + 20);\n point = orthoConnection3Segment(ele, source, target, len);\n }\n else { //901771- Connector routing is not proper while setting the segment direction as \"Left\"\n if (source.direction === target.direction) {\n if (((source.direction === 'Left' || source.direction === 'Right') &&\n target.point.y > source.corners.top - 20 && target.point.y < source.corners.bottom + 20) ||\n ((source.direction === 'Top' || source.direction === 'Bottom') &&\n target.point.x > source.corners.left - 20 && target.point.x < source.corners.right + 20)) {\n var prevdirection = source.direction;\n source.direction = direction;\n point = orthoConnection4Segment(source, target, prevdirection, point, 20, false);\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n else {\n source.direction = direction;\n point = orthoConnection2Segment(source, target);\n }\n }\n return point;\n}\n/**\n * checkSourcePointInTarget method \\\n *\n * @returns { void } checkSourcePointInTarget method .\\\n * @param {Connector} ele - provide the Connector value.\n * @param {End} source - provide the Connector value.\n *\n * @private\n */\nfunction checkSourcePointInTarget(ele, source) {\n if (ele.targetWrapper !== undefined && ele.targetPortWrapper === undefined) {\n var padding = 1;\n if (cornersPointsBeforeRotation(ele.targetWrapper).containsPoint(source.point, padding)) {\n var target = ele.targetWrapper;\n var segment = ele.segments[ele.segments.length - 2];\n var lastPoint = segment.points[segment.points.length - 1];\n var direction = getOppositeDirection(segment.direction);\n if (direction === 'Bottom') {\n if (lastPoint.y < target.corners.bottom + padding) {\n segment.points[segment.points.length - 1].y = target.corners.bottom + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Top') {\n if (lastPoint.y > target.corners.top - padding) {\n segment.points[segment.points.length - 1].y = target.corners.top - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Left') {\n if (lastPoint.x > target.corners.left - padding) {\n segment.points[segment.points.length - 1].x = target.corners.left - 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n else if (direction === 'Right') {\n if (lastPoint.x < target.corners.right + padding) {\n segment.points[segment.points.length - 1].x = target.corners.right + 20;\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n }\n }\n source.point = segment.points[segment.points.length - 1];\n }\n }\n}\n/**\n * findIntermeditatePoints method \\\n *\n * @returns { void } findIntermeditatePoints method .\\\n * @param {Connector} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {DiagramElement} srcPort - provide the srcPort value.\n * @param {DiagramElement} tarPort - provide the tarPort value.\n * @param {DiagramElement} sourceEle - provide the sourceEle value.\n * @param {DiagramElement} targetEle - provide the targetEle value.\n * @private\n */\nfunction findIntermeditatePoints(ele, source, target, srcPort, tarPort, sourceEle, targetEle) {\n var point;\n var intermeditatePoints = [];\n var seg;\n var j;\n var removeSegment;\n checkLastSegmentasTerminal(ele);\n for (var i = 0; i < ele.segments.length; i++) {\n seg = ele.segments[parseInt(i.toString(), 10)];\n if (srcPort && source.direction === getOppositeDirection(seg.direction)) {\n seg.direction = source.direction;\n }\n if (i > 0 && ele.segments[i - 1].direction === seg.direction) {\n i = checkConsectiveSegmentAsSame(ele, i, source);\n }\n else {\n if (seg.direction) {\n source.point = updateSegmentPoints(source, ele.segments[parseInt(i.toString(), 10)]);\n }\n else {\n var segment = ele.segments[i - 1];\n if (segment && segment.points && segment.points.length > 0) {\n source.point = segment.points[segment.points.length - 1];\n }\n }\n }\n if (i === ele.segments.length - 1) {\n checkSourcePointInTarget(ele, source);\n if (tarPort === undefined) {\n point = nodeOrPortToNode(ele, source, target);\n }\n else {\n point = pointToPort(ele, source, target);\n }\n checkPreviousSegment(point, ele, source);\n seg.points = [];\n if (point.length >= 2) {\n for (j = 0; j < point.length; j++) {\n if (!ele.selectedSegmentIndex) {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n else {\n // EJ2-65063 - If point length is greater then 2 means then empty the last segment points and set it as two points instead of four points\n if (j === point.length - 1 && point.length > 2 && ele.segments.length > 2) {\n // EJ2-69304 - Change the point calculation to work for all port combination\n var point2 = { x: point[parseInt(j.toString(), 10)].x, y: source.point.y };\n // EJ2 - 65063 - Empty the segment points\n seg.points = [];\n // EJ2-69304 - Calculate the point for segment and manually push the point in segment point calculation\n seg.points.push(point2);\n seg.points.push(point[parseInt(j.toString(), 10)]);\n var segment = ele.segments[i - 1];\n //EJ2 - Orthogonal connector gets broken when dragging segment thumb\n if (ele.segments.length < 4) {\n segment.points.pop();\n }\n // Bug 834713: Orthogonal connector routing is not proper, When allowNodeOverlap is Set to true.\n segment.points = segment.points.concat(seg.points);\n }\n else {\n seg.points.push(point[parseInt(j.toString(), 10)]);\n }\n }\n }\n }\n else {\n removeSegment = i;\n }\n }\n // EJ2-65063 - Added below condition !selectedSegmentIndex to restrict the connector segment to remove from its collection.\n if (removeSegment !== undefined && !ele.selectedSegmentIndex) {\n if (removeSegment === ele.segments.length - 1) {\n ele.segments[removeSegment - 1].direction = null;\n ele.segments[removeSegment - 1].length = null;\n }\n ele.segments.splice(removeSegment, 1);\n }\n if (srcPort && i === 0) {\n var sourcePoint = checkPortdirection(ele, srcPort, sourceEle);\n if (sourcePoint) {\n source.point = sourcePoint;\n }\n }\n }\n return returnIntermeditatePoints(ele, intermeditatePoints);\n}\n/**\n * returnIntermeditatePoints method \\\n *\n * @returns { PointModel[] } returnIntermeditatePoints method .\\\n * @param {Connector} element - provide the ele value.\n * @param {PointModel[]} intermeditatePoints - provide the source value.\n * @private\n */\nfunction returnIntermeditatePoints(element, intermeditatePoints) {\n for (var i = 0; i < element.segments.length; i++) {\n var seg = element.segments[parseInt(i.toString(), 10)];\n for (var j = 0; j < seg.points.length; j++) {\n if (j > 0 || i === 0) {\n intermeditatePoints.push(seg.points[parseInt(j.toString(), 10)]);\n }\n }\n }\n return intermeditatePoints;\n}\n/**\n * findDirection method \\\n *\n * @returns { void } findDirection method .\\\n * @param {DiagramElement} node - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the source value.\n * @param {Connector} ele - provide the source value.\n * @private\n */\nfunction findDirection(node, source, target, ele) {\n var nodeDirection;\n var nodeConnectingPoint = { x: 0, y: 0 };\n var nodeCorners = swapBounds(node, node.corners, node.bounds);\n var nodeMargin = source.margin;\n var fixedPoint = source.point;\n if (nodeCorners.bottomCenter.y + nodeMargin.bottom < fixedPoint.y) {\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n else if (nodeCorners.topCenter.y - nodeMargin.top > fixedPoint.y) {\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n }\n else if (nodeCorners.middleLeft.x - nodeMargin.left > fixedPoint.x) {\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n else if (nodeCorners.middleRight.x + nodeMargin.right < fixedPoint.x) {\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n else {\n var top_1 = Math.abs(fixedPoint.y - nodeCorners.topCenter.y);\n var right = Math.abs(fixedPoint.x - nodeCorners.middleRight.x);\n var bottom = Math.abs(fixedPoint.y - nodeCorners.bottomCenter.y);\n var left = Math.abs(fixedPoint.x - nodeCorners.middleLeft.x);\n var shortes = Number.MAX_VALUE;\n shortes = top_1;\n nodeDirection = 'Top';\n nodeConnectingPoint = nodeCorners.topCenter;\n if (shortes > right) {\n shortes = right;\n nodeDirection = 'Right';\n nodeConnectingPoint = nodeCorners.middleRight;\n }\n if (shortes > bottom) {\n shortes = bottom;\n nodeDirection = 'Bottom';\n nodeConnectingPoint = nodeCorners.bottomCenter;\n }\n if (shortes > left) {\n //shortes = left;\n nodeDirection = 'Left';\n nodeConnectingPoint = nodeCorners.middleLeft;\n }\n }\n target.point = nodeConnectingPoint;\n target.direction = nodeDirection;\n var refPoint = findPoint(nodeCorners, getOppositeDirection(target.direction));\n target.point = getIntersection(ele, node, target.point, refPoint, node === ele.targetWrapper);\n}\n/**\n * findOrthoSegments method \\\n *\n * @returns { PointModel[] } findOrthoSegments method .\\\n * @param {DiagramElement} ele - provide the ele value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {Connector} extra - provide the extra value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction findOrthoSegments(ele, source, target, extra, lineDistribution) {\n var swap = false;\n var intermeditatePoints = [];\n var seg;\n swap = getSwapping(source.direction, target.direction);\n if (swap) {\n swapPoints(source, target);\n }\n if (source.direction === 'Right' && target.direction === 'Left') {\n seg = getRightToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Right') {\n seg = getRightToRightSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Right' && target.direction === 'Top') {\n seg = getRightToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Right' && target.direction === 'Bottom') {\n seg = getRightToBottomSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Top') {\n seg = getBottomToTopSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Bottom') {\n /**\n * EJ2-56920-Option to adjust the distance between source node and target node.\n */\n var margin = findMargin(ele);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n seg = getBottomToBottomSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Bottom' && target.direction === 'Left') {\n seg = getBottomToLeftSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Left' && target.direction === 'Left') {\n seg = getLeftToLeftSegmentCount(ele, source, target);\n }\n else if (source.direction === 'Left' && target.direction === 'Top') {\n seg = getLeftToTopSegmentCount(ele, source, target, swap);\n }\n else if (source.direction === 'Top' && target.direction === 'Top') {\n seg = getTopToTopSegmentCount(ele, source, target);\n }\n if (swap) {\n swapPoints(source, target);\n }\n intermeditatePoints = addOrthoSegments(ele, seg, source, target, extra, lineDistribution);\n if (ele.type === 'Bezier') {\n convertPointToBezierSegment(ele, seg, intermeditatePoints);\n }\n return intermeditatePoints;\n}\n/**\n * Returns the margin of source node and the target node\n *\n * @returns { number } - findMargin method .\\\n * @param { Connector } element - provide the element value\n * @private\n */\nexport function findMargin(element) {\n var margin;\n if (element.connectorSpacing >= 13) {\n margin = 13;\n }\n else if (element.connectorSpacing <= 1) {\n margin = 1;\n }\n else {\n margin = element.connectorSpacing;\n }\n return margin;\n}\n/**\n * findAngle method \\\n *\n * @returns { number } findAngle method .\\\n * @param {DiagramElement} s - provide the s value.\n * @param {End} e - provide the e value.\n * @private\n */\nexport function findAngle(s, e) {\n var r = { x: e.x, y: s.y };\n //const sr: number = Point.findLength(s, r);\n var re = Point.findLength(r, e);\n var es = Point.findLength(e, s);\n var ang = Math.asin(re / es);\n ang = ang * 180 / Math.PI;\n if (s.x < e.x) {\n if (s.y > e.y) {\n ang = 360 - ang;\n }\n }\n else {\n if (s.y < e.y) {\n ang = 180 - ang;\n }\n else {\n ang = 180 + ang;\n }\n }\n return ang;\n}\n/**\n * findPoint method \\\n *\n * @returns { number } findPoint method .\\\n * @param {Corners} cor - provide the cor value.\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function findPoint(cor, direction) {\n var point;\n switch (direction) {\n case 'Left':\n point = cor.middleLeft;\n break;\n case 'Top':\n point = cor.topCenter;\n break;\n case 'Right':\n point = cor.middleRight;\n break;\n case 'Bottom':\n point = cor.bottomCenter;\n break;\n }\n return point;\n}\n/**\n * pointsFromNodeToPoint method \\\n *\n * @returns { number } pointsFromNodeToPoint method .\\\n * @param {OrthogonalSegment} seg - provide the seg value.\n * @param {string} direction - provide the direction value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {PointModel} point - provide the point value.\n * @param {PointModel} endPoint - provide the endPoint value.\n * @param {boolean} isTarget - provide the isTarget value.\n * @private\n */\nfunction pointsFromNodeToPoint(seg, direction, bounds, point, endPoint, isTarget) {\n var minSpace = 13;\n var x;\n var points = [];\n var y;\n points.push(point);\n //let straight: boolean;\n var straight = (point.y === endPoint.y && (direction === 'Left' && endPoint.x < point.x ||\n direction === 'Right' && endPoint.x > point.x)) ||\n (point.x === endPoint.x && (direction === 'Top' && endPoint.y < point.y ||\n direction === 'Bottom' && endPoint.y > point.y));\n if (!straight) {\n if (direction === 'Top' || direction === 'Bottom') {\n if (direction === 'Top' && endPoint.y < point.y && endPoint.y > point.y - minSpace ||\n direction === 'Bottom' && endPoint.y > point.y && endPoint.y < point.y + minSpace) {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: y });\n points.push({ x: point.x + (endPoint.x - point.x) / 2, y: endPoint.y });\n }\n else if (Math.abs(point.x - endPoint.x) > minSpace &&\n (direction === 'Top' && endPoint.y < point.y || direction === 'Bottom' && endPoint.y > point.y)) {\n //twosegments\n points.push({ x: point.x, y: endPoint.y });\n }\n else {\n y = direction === 'Top' ? bounds.top - minSpace : bounds.bottom + minSpace;\n x = (endPoint.x < point.x) ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: point.x, y: y });\n points.push({ x: endPoint.x, y: y });\n }\n }\n else {\n if (direction === 'Left' && endPoint.x < point.x && endPoint.x > point.x - minSpace || direction === 'right' &&\n endPoint.x > point.x && endPoint.x < point.x + minSpace) {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: point.y + (endPoint.y - point.y) / 2 });\n points.push({ x: endPoint.x, y: point.y + (endPoint.y - point.y) / 2 });\n }\n else if (Math.abs(point.y - endPoint.y) > minSpace &&\n (direction === 'Left' && endPoint.x < point.x || direction === 'Right' && endPoint.x > point.x)) {\n points.push({ x: endPoint.x, y: point.y });\n //twosegments\n }\n else {\n x = direction === 'Left' ? bounds.left - minSpace : bounds.right + minSpace;\n points.push({ x: x, y: point.y });\n points.push({ x: x, y: endPoint.y });\n }\n }\n if (isTarget) {\n points.push(seg.points[0]);\n points.reverse();\n }\n seg.points = points;\n }\n}\n/**\n * addLineSegment method \\\n *\n * @returns { PointModel } addLineSegment method .\\\n * @param {PointModel} point - provide the seg value.\n * @param {number} extra - provide the direction value.\n * @param {number} angle - provide the bounds value.\n * @private\n */\nfunction addLineSegment(point, extra, angle) {\n var segEnd = Point.transform(point, angle, extra);\n return segEnd;\n}\n/**\n * getIntersection method \\\n *\n * @returns { PointModel } getIntersection method .\\\n * @param {PointModel} ele - provide the ele value.\n * @param {number} bounds - provide the bounds value.\n * @param {number} sPt - provide the sPt value.\n * @param {number} tPt - provide the tPt value.\n * @param {number} isTar - provide the isTar value.\n * @private\n */\nexport function getIntersection(ele, bounds, sPt, tPt, isTar) {\n sPt = { x: sPt.x, y: sPt.y };\n tPt = { x: tPt.x, y: tPt.y };\n //const angle: number = Point.findAngle(tPt, sPt); ///let child: PathElement;// let intersection: PointModel;\n var wrapper = isTar ? ele.targetWrapper : ele.sourceWrapper;\n var padding = (isTar ? ele.targetPadding : ele.sourcePadding);\n var rect;\n var segmentPoints;\n var point = isTar || (ele.type === 'Orthogonal' || ele.type === 'Bezier') ? sPt : tPt;\n //const sourcePoint: PointModel = Point.transform(sPt, angle, Math.max(wrapper.actualSize.height / 2, wrapper.actualSize.width / 2));\n var child = wrapper;\n var sPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt);\n var tPt1 = rotatePoint(-wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, tPt);\n if (ele.type === 'Orthogonal' || ele.type === 'Bezier') {\n var constValue = 5;\n if (sPt1.x === tPt1.x) {\n if (sPt1.y < tPt1.y) {\n sPt1.y -= constValue;\n }\n else {\n sPt1.y += constValue;\n }\n }\n if (sPt1.y === tPt1.y) {\n if (sPt1.x < tPt1.x) {\n sPt1.x -= constValue;\n }\n else {\n sPt1.x += constValue;\n }\n }\n sPt = rotatePoint(wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY, sPt1);\n }\n else {\n //const angle: number = isTar ? Point.findAngle(sPt, tPt) : Point.findAngle(tPt, sPt);\n if (isTar) {\n var angle = Point.findAngle(sPt, tPt);\n tPt = Point.transform({ x: tPt.x, y: tPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n else {\n var angle = Point.findAngle(tPt, sPt);\n sPt = Point.transform({ x: sPt.x, y: sPt.y }, angle, Math.max(wrapper.actualSize.width, wrapper.actualSize.height));\n }\n }\n if ((ele.sourcePadding || ele.targetPadding)) {\n rect = new Rect(wrapper.bounds.x - padding, wrapper.bounds.y - padding, wrapper.actualSize.width + 2 * padding, wrapper.actualSize.height + 2 * padding);\n }\n if (wrapper instanceof PathElement && wrapper.data) {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : child.getPoints();\n if (((child.data.split('m').length - 1) + (child.data.split('M').length - 1)) === 1) {\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n }\n else {\n segmentPoints = rect ? [rect.topLeft, rect.topRight, rect.bottomRight, rect.bottomLeft] : getPoints(wrapper, wrapper.corners);\n segmentPoints[segmentPoints.length] = segmentPoints[0];\n }\n //const length: number = segmentPoints.length;\n var thisSegment = { x1: sPt.x, y1: sPt.y, x2: tPt.x, y2: tPt.y };\n return getIntersectionPoints(thisSegment, segmentPoints, true, point) || sPt;\n}\n/**\n * setLineEndPoint method \\\n *\n * @returns { PointModel } setLineEndPoint method .\\\n * @param {PointModel} element - provide the ele value.\n * @param {number} point - provide the bounds value.\n * @param {number} isTarget - provide the sPt value.\n * @private\n */\nfunction setLineEndPoint(element, point, isTarget) {\n point.x = Math.round(point.x * 100) / 100;\n point.y = Math.round(point.y * 100) / 100;\n if (isTarget) {\n element.targetPoint = point;\n }\n else {\n element.sourcePoint = point;\n }\n return point;\n}\n/**\n * getIntersectionPoints method \\\n *\n * @returns { PointModel } getIntersectionPoints method .\\\n * @param {Segment} thisSegment - provide the ele value.\n * @param {Object[]} pts - provide the bounds value.\n * @param {boolean} minimal - provide the sPt value.\n * @param {PointModel} point - provide the sPt value.\n * @private\n */\nexport function getIntersectionPoints(thisSegment, pts, minimal, point) {\n var length = pts.length;\n var min;\n var segment = {\n x1: pts[0].x, y1: pts[0].y, x2: pts[1].x,\n y2: pts[1].y\n };\n var intersection = intersectSegment(thisSegment, segment);\n if (intersection) {\n // if (!minimal) { return intersection; } //commented because minimal is always true\n min = Point.distancePoints(intersection, point);\n }\n if (isNaN(min) || min > 0) {\n for (var i = 1; i < length - 1; i++) {\n segment = {\n x1: pts[parseInt(i.toString(), 10)].x, y1: pts[parseInt(i.toString(), 10)].y,\n x2: pts[i + 1].x, y2: pts[i + 1].y\n };\n var intersect = intersectSegment(thisSegment, segment);\n if (intersect) {\n // if (!minimal) { return intersect; }//commented because minimal is always true\n var dist = Point.distancePoints(intersect, point);\n if (isNaN(min) || min > dist) {\n min = dist;\n intersection = intersect;\n }\n if (min >= 0 && min <= 1) {\n break;\n }\n }\n }\n }\n return intersection;\n}\n/**\n * intersectSegment method \\\n *\n * @returns { PointModel } intersectSegment method .\\\n * @param {Segment} segment1 - provide the ele value.\n * @param {Segment} segment2 - provide the bounds value.\n * @private\n */\nfunction intersectSegment(segment1, segment2) {\n var x1 = segment1.x1;\n var y1 = segment1.y1;\n var x2 = segment1.x2;\n var y2 = segment1.y2;\n var x3 = segment2.x1;\n var y3 = segment2.y1;\n var x4 = segment2.x2;\n var y4 = segment2.y2;\n var a1;\n var a2;\n var b1;\n var b2;\n var c1;\n var c2;\n var x;\n var y;\n var r1;\n var r2;\n var r3;\n var r4;\n var offset;\n var num;\n // eslint-disable-next-line\n a1 = y2 - y1;\n b1 = x1 - x2;\n c1 = (x2 * y1) - (x1 * y2);\n // eslint-disable-next-line\n r3 = ((a1 * x3) + (b1 * y3) + c1);\n r4 = ((a1 * x4) + (b1 * y4) + c1);\n if ((r3 !== 0) && (r4 !== 0) && sameSign(r3, r4)) {\n return null;\n }\n // eslint-disable-next-line\n a2 = y4 - y3;\n b2 = x3 - x4;\n c2 = (x4 * y3) - (x3 * y4);\n // eslint-disable-next-line\n r1 = (a2 * x1) + (b2 * y1) + c2;\n r2 = (a2 * x2) + (b2 * y2) + c2;\n if ((r1 !== 0) && (r2 !== 0) && (sameSign(r1, r2))) {\n return null;\n }\n var denom = (a1 * b2) - (a2 * b1);\n if (denom === 0) {\n return null;\n }\n if (denom < 0) {\n offset = -denom / 2;\n }\n else {\n offset = denom / 2;\n }\n offset = 0;\n num = (b1 * c2) - (b2 * c1);\n if (num < 0) {\n x = (num - offset) / denom;\n }\n else {\n x = (num + offset) / denom;\n }\n num = (a2 * c1) - (a1 * c2);\n if (num < 0) {\n y = (num - offset) / denom;\n }\n else {\n y = (num + offset) / denom;\n }\n return { x: x, y: y };\n}\n/**\n * sameSign method \\\n *\n * @returns { boolean } sameSign method .\\\n * @param {Connector} a - provide the Connector value.\n * @param {End} b - provide the source End value.\n * @private\n */\nfunction sameSign(a, b) {\n return ((a * b) >= 0);\n}\n/**\n * getRightToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToLeftSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} source - provide the source End value.\n * @param {End} target - provide the target End value.\n * @param {boolean} swap - provide the swap value.\n * @private\n */\nfunction getRightToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n //let targetPort: DiagramElement = element.targetPortWrapper;\n var pts;\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n //let diffX: number = Math.round(Math.abs(source.point.x - target.point.x));\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var left = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n if (swap) {\n //let point: PointModel;\n var point = left;\n left = right;\n right = point;\n }\n if (!(source.corners.bottom + margin < target.corners.top - margin ||\n source.corners.top - margin > target.corners.bottom + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.left - source.corners.right <= margin * 2 && target.corners.left - source.corners.right >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffY === 0 && (source.corners.right < target.corners.left\n || (swap && source.corners.right < target.corners.left))) {\n pts = NoOfSegments.One;\n }\n else if (source.point.x + source.margin.right < target.point.x - target.margin.left) {\n pts = NoOfSegments.Three;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(left) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom <= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.top >= target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY <= target.corners.top) ||\n (srcPort === undefined && source.corners.right <= target.corners.top)) {\n pts = NoOfSegments.Five;\n }\n else if ((srcPort !== undefined && srcPort.offsetY >= target.corners.bottom) ||\n (srcPort === undefined && source.corners.right >= target.corners.bottom)) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getRightToRightSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToRightSegmentCount method .\\\n * @param {Connector} element - provide the Connector value.\n * @param {End} sourceObj - provide the source End value.\n * @param {End} targetObj - provide the target End value.\n * @private\n */\nfunction getRightToRightSegmentCount(element, sourceObj, targetObj) {\n var sourcePort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var pts;\n var diffX = sourceObj.point.x - targetObj.point.x;\n var diffY = sourceObj.point.y - targetObj.point.y;\n var margin = findMargin(element);\n targetObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n sourceObj.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (sourceObj.corners.right >= targetObj.corners.right) {\n if ((sourcePort !== undefined && (sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top ||\n sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom)) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y < targetObj.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY > targetObj.corners.bottom + targetObj.margin.bottom\n && sourceObj.corners.top > targetObj.corners.bottom) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if ((sourcePort !== undefined && sourcePort.offsetY < targetObj.corners.top - targetObj.margin.top\n && sourceObj.corners.bottom > targetObj.corners.top) ||\n (sourcePort === undefined && sourceObj.corners.middleRight.y > targetObj.corners.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left ||\n targetObj.corners.right < sourceObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && sourceObj.corners.bottom < tarPort.offsetY - targetObj.margin.top) ||\n (tarPort === undefined && sourceObj.corners.bottom < targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && sourceObj.corners.top > tarPort.offsetY + targetObj.margin.right) ||\n (tarPort === undefined && sourceObj.corners.top > targetObj.corners.middleRight.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && ((sourcePort !== undefined && sourcePort.offsetX < targetObj.corners.left &&\n sourcePort.offsetX !== tarPort.offsetX && (Math.abs(sourceObj.corners.right - targetObj.corners.left) <= 20)) ||\n (sourcePort === undefined && sourceObj.corners.right < targetObj.corners.left &&\n sourceObj.corners.center.x !== targetObj.corners.center.x && sourceObj.corners.center.y !== targetObj.corners.center.y)))) {\n pts = NoOfSegments.Three;\n }\n else if (sourceObj.corners.right < targetObj.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToTopSegmentCount(element, source, target, swap) {\n var tarPort = element.targetPortWrapper;\n var srcPort = element.sourcePortWrapper;\n var right = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n var pts;\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n var point = right;\n right = top;\n top = point;\n }\n if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.bottom < target.corners.top - target.margin.top)) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined && Math.abs(source.corners.right - target.corners.left) <= 5 &&\n Math.abs(srcPort.offsetY - target.corners.top) <= 5) {\n pts = NoOfSegments.Two;\n }\n else if (tarPort !== undefined && source.corners.right < target.corners.left\n && Math.abs(tarPort.offsetX - source.corners.topCenter.x) >= 25\n && source.corners.middleRight.y + source.margin.right < tarPort.offsetY) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(right))) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getRightToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getRightToTopSegmentCount method .\\\n * @param {Connector} element - provide the element value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getRightToBottomSegmentCount(element, source, target, swap) {\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var pts;\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let right: PointModel = { x: Math.max(source.point.x, source.corners.right), y: source.point.y };\n //let bottom: PointModel = { x: target.point.x, y: Math.max(target.point.y, target.corners.bottom) };\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleRight.y > target.corners.bottom + target.margin.bottom)) {\n if (source.corners.top > target.corners.bottom) {\n if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right + source.margin.right < target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.bottomCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (srcPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(srcPort.offsetY - target.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.right < target.corners.left) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToTopSegmentCount method .\\\n * @param {Connector} element - provide the connector value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToTopSegmentCount(element, source, target) {\n var pts;\n var diffX = source.point.x - target.point.x;\n //const diffY: number = source.point.y - target.point.y;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let top: PointModel = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n var margin = findMargin(element);\n if (!(source.corners.right + margin < target.corners.left - margin ||\n source.corners.left - margin > target.corners.right + margin)) {\n if (element.type !== 'Bezier') {\n margin = 0;\n }\n else if (target.corners.top - source.corners.bottom <= margin * 2 && target.corners.top - source.corners.bottom >= 5) {\n margin = 0;\n }\n }\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n if (diffX === 0 && source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.One;\n }\n else if (source.corners.bottom + source.margin.bottom < target.corners.top - target.margin.top) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right + source.margin.right < target.corners.left - target.margin.left) {\n pts = NoOfSegments.Five;\n }\n else if (source.corners.left - source.margin.left > target.corners.right + target.margin.right) {\n pts = NoOfSegments.Five;\n }\n else {\n pts = NoOfSegments.Five;\n }\n return pts;\n}\n/**\n * getBottomToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getBottomToLeftSegmentCount(element, source, target, swap) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n //let bottom: PointModel = { x: source.point.x, y: Math.max(source.point.y, source.corners.bottom) };\n //let left: PointModel = { x: Math.min(target.point.x, target.corners.left), y: target.point.y };\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (swap) {\n //let port: DiagramElement;\n var port = srcPort;\n srcPort = tarPort;\n tarPort = port;\n }\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.bottomLeft.x - target.margin.left)) {\n if (source.corners.right < target.corners.left) {\n if ((tarPort !== undefined && source.corners.bottom + source.margin.bottom < tarPort.offsetY) ||\n (tarPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.top > tarPort.offsetY) ||\n (tarPort === undefined && source.corners.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (tarPort !== undefined &&\n Math.abs(source.corners.right - target.corners.left) <= 25 &&\n Math.abs(tarPort.offsetY - source.corners.bottom) <= 25) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getBottomToBottomSegmentCount method \\\n *\n * @returns { NoOfSegments } getBottomToBottomSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getBottomToBottomSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var tarPort = element.targetPortWrapper;\n var difX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(target.point.y - target.point.y));\n var pts;\n if (source.corners.bottom < target.corners.bottom) {\n if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomCenter.x < target.corners.left - target.margin.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.bottomCenter.x > target.corners.right + target.margin.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((tarPort !== undefined && source.corners.right + source.margin.right < tarPort.offsetX) ||\n (tarPort === undefined &&\n source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (difX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getLeftToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} swap - provide the swap value.\n * @private\n */\nfunction getLeftToTopSegmentCount(element, source, target, swap) {\n var pts;\n var sourcePort = element.sourcePortWrapper;\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var tarPort = element.targetPortWrapper;\n var left = { x: Math.min(source.point.x, source.corners.left), y: source.point.y };\n var top = { x: target.point.x, y: Math.min(target.point.y, target.corners.top) };\n if (swap) {\n //let port: DiagramElement;\n var port = sourcePort;\n sourcePort = tarPort;\n tarPort = port;\n var point = left;\n left = top;\n top = point;\n }\n if ((sourcePort !== undefined && sourcePort.offsetY < target.corners.top - target.margin.top) ||\n (sourcePort === undefined && (source.corners.bottom < target.corners.top - target.margin.top ||\n source.corners.middleLeft.y < target.corners.top - target.margin.top))) {\n if (source.corners.bottom < target.corners.top) {\n if ((tarPort !== undefined && source.corners.left - source.margin.left > tarPort.offsetX) ||\n (tarPort === undefined && source.corners.left - source.margin.left > target.corners.topCenter.x)) {\n pts = NoOfSegments.Two;\n }\n else {\n pts = NoOfSegments.Four;\n }\n }\n else if ((tarPort !== undefined && source.corners.right < tarPort.offsetX) ||\n (tarPort === undefined && source.corners.right < target.corners.topCenter.x)) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Two;\n }\n }\n else if (sourcePort !== undefined &&\n Math.abs(source.corners.left - target.corners.right) <= 25 &&\n Math.abs(sourcePort.offsetY - target.corners.top) <= 25) {\n pts = NoOfSegments.Two;\n }\n else if (element.sourceWrapper !== element.targetWrapper &&\n (cornersPointsBeforeRotation(element.sourceWrapper).containsPoint(top) ||\n cornersPointsBeforeRotation(element.targetWrapper).containsPoint(left))) {\n pts = NoOfSegments.Two;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Four;\n }\n else {\n pts = NoOfSegments.Four;\n }\n return pts;\n}\n/**\n * getLeftToLeftSegmentCount method \\\n *\n * @returns { NoOfSegments } getLeftToLeftSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getLeftToLeftSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var margin = findMargin(element);\n source.margin = { left: margin, right: margin, top: margin, bottom: margin };\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var pts;\n if (source.corners.left < target.corners.left) {\n if ((targetPort !== undefined && source.corners.bottom + source.margin.bottom < targetPort.offsetY) ||\n (targetPort === undefined && source.corners.bottom + source.margin.bottom < target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.top - source.margin.top > targetPort.offsetY) ||\n (targetPort === undefined && source.corners.top - source.margin.top > target.corners.middleLeft.y)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.right < target.corners.left ||\n target.corners.right < source.corners.left) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetY < target.corners.top - target.margin.top) ||\n (srcPort === undefined && source.corners.middleLeft.y < target.corners.top)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetY > target.corners.bottom + target.margin.bottom) ||\n (srcPort === undefined && source.corners.middleLeft.y > target.corners.bottom + target.margin.bottom)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.left > target.corners.right) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * getTopToTopSegmentCount method \\\n *\n * @returns { NoOfSegments } getTopToTopSegmentCount method .\\\n * @param {End} element - provide the element value.\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction getTopToTopSegmentCount(element, source, target) {\n var srcPort = element.sourcePortWrapper;\n var targetPort = element.targetPortWrapper;\n var diffX = Math.round(Math.abs(source.point.x - target.point.x));\n var diffY = Math.round(Math.abs(source.point.y - target.point.y));\n var margin = findMargin(element);\n target.margin = { left: margin, right: margin, top: margin, bottom: margin };\n source.margin = { top: margin, bottom: margin, left: margin, right: margin };\n var pts;\n if (source.corners.top < target.corners.top) {\n if ((targetPort !== undefined && source.corners.left - source.margin.left > targetPort.offsetX) ||\n (targetPort === undefined && source.corners.left > target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if ((targetPort !== undefined && source.corners.right + source.margin.right < targetPort.offsetX) ||\n (targetPort === undefined && source.corners.right < target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.bottom < target.corners.top) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n }\n else if ((srcPort !== undefined && srcPort.offsetX > target.corners.right + target.margin.right) ||\n (srcPort === undefined && source.corners.left > target.corners.right)) {\n pts = NoOfSegments.Three;\n }\n else if ((srcPort !== undefined && srcPort.offsetX < target.corners.left - target.margin.left) ||\n (srcPort === undefined && source.corners.bottomRight.x < target.corners.left)) {\n pts = NoOfSegments.Three;\n }\n else if (source.corners.top > target.corners.bottom) {\n pts = NoOfSegments.Five;\n }\n else if (diffX === 0 || diffY === 0) {\n pts = NoOfSegments.One;\n }\n else {\n pts = NoOfSegments.Three;\n }\n return pts;\n}\n/**\n * addOrthoSegments method \\\n *\n * @returns { PointModel[] } addOrthoSegments method .\\\n * @param {Connector} element - provide the element value.\n * @param {NoOfSegments} seg - provide the seg value.\n * @param {End} sourceEnd - provide the source value.\n * @param {End} targetEnd - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {boolean} lineDistribution - provide the lineDistribution value.\n * @private\n */\nfunction addOrthoSegments(element, seg, sourceEnd, targetEnd, segLength, lineDistribution) {\n var src = element.sourceWrapper;\n var tar = element.targetWrapper;\n //let tarPort: DiagramElement = element.targetPortWrapper;\n var intermeditatePoints;\n var srcCorner = src.corners;\n var tarCorner = tar.corners;\n var value;\n var extra = 20;\n var source = { corners: sourceEnd.corners, point: sourceEnd.point, direction: sourceEnd.direction, margin: sourceEnd.margin };\n var target = { corners: targetEnd.corners, point: targetEnd.point, direction: targetEnd.direction, margin: targetEnd.margin };\n if (source.direction !== target.direction || seg === NoOfSegments.Five) {\n if (source.direction === getOppositeDirection(target.direction) || seg === NoOfSegments.Three) {\n switch (source.direction) {\n case 'Left':\n if (srcCorner.middleLeft.x > tarCorner.middleRight.x) {\n value = (srcCorner.middleLeft.x - tarCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Right':\n if (srcCorner.middleRight.x < tarCorner.middleLeft.x) {\n value = (tarCorner.middleLeft.x - srcCorner.middleRight.x) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Top':\n if (srcCorner.topCenter.y > tarCorner.bottomCenter.y) {\n value = (srcCorner.topCenter.y - tarCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n case 'Bottom':\n if (srcCorner.bottomCenter.y < tarCorner.topCenter.y) {\n value = (tarCorner.topCenter.y - srcCorner.bottomCenter.y) / 2;\n extra = !lineDistribution ? Math.min(extra, value) : value;\n }\n break;\n }\n }\n }\n extra = adjustSegmentLength(srcCorner, source, extra);\n var isBezier = element.type === 'Bezier';\n if (segLength) {\n extra = Math.max(extra, segLength);\n }\n if (seg === NoOfSegments.One) {\n intermeditatePoints = [source.point, target.point];\n }\n if (seg === NoOfSegments.Two) {\n intermeditatePoints = orthoConnection2Segment(source, target);\n }\n if (seg === NoOfSegments.Three) {\n intermeditatePoints = orthoConnection3Segment(element, source, target, extra, undefined, isBezier);\n }\n if (seg === NoOfSegments.Four) {\n var prevDir = undefined;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, extra, isBezier);\n }\n if (seg === NoOfSegments.Five) {\n intermeditatePoints = orthoConnection5Segment(source, target, extra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * adjustSegmentLength method \\\n *\n * @returns { PointModel[] } adjustSegmentLength method .\\\n * @param {Rect | Corners} bounds - provide the element value.\n * @param {End} source - provide the seg value.\n * @param {number} extra - provide the source value.\n * @private\n */\nfunction adjustSegmentLength(bounds, source, extra) {\n switch (source.direction) {\n case 'Left':\n if (source.point.x > bounds.left) {\n extra = (source.point.x - bounds.left) > extra ? ((source.point.x - bounds.left) + extra) : extra;\n }\n break;\n case 'Right':\n if (source.point.x < bounds.right) {\n extra = (bounds.right - source.point.x) > extra ? ((bounds.right - source.point.x) + extra) : extra;\n }\n break;\n case 'Top':\n if (source.point.y > bounds.top) {\n extra = (source.point.y - bounds.top) > extra ? ((source.point.y - bounds.top) + extra) : extra;\n }\n break;\n case 'Bottom':\n if (source.point.y < bounds.bottom) {\n extra = (bounds.bottom - source.point.y) > extra ? ((bounds.bottom - source.point.y) + extra) : extra;\n }\n break;\n }\n return extra;\n}\n/**\n * orthoConnection2Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Rect | Corners} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nexport function orthoConnection2Segment(source, target) {\n var intermeditatePoints;\n switch (source.direction) {\n case 'Left':\n case 'Right':\n // eslint-disable-next-line\n var point1 = { x: target.point.x, y: source.point.y };\n intermeditatePoints = (Point.equals(source.point, point1) || Point.equals(target.point, point1)) ?\n [source.point, target.point] : [source.point, point1, target.point];\n break;\n case 'Top':\n case 'Bottom':\n // eslint-disable-next-line no-case-declarations\n var point2 = { x: source.point.x, y: target.point.y };\n intermeditatePoints = (Point.equals(source.point, point2) || Point.equals(target.point, point2)) ?\n [source.point, target.point] : [source.point, point2, target.point];\n break;\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection3Segment method \\\n *\n * @returns { PointModel[] } orthoConnection2Segment method .\\\n * @param {Connector} element - provide the source value.\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {number} extra - provide the target value.\n * @param {boolean} allow - provide the target value.\n * @param {boolean} isBezier - provide the isBezier boolean value.\n * @private\n */\nfunction orthoConnection3Segment(element, source, target, extra, allow, isBezier) {\n if (isBezier === void 0) { isBezier = false; }\n if (!extra) {\n extra = 20;\n }\n if (isBezier) {\n if (source.direction !== target.direction) {\n if (source.direction === 'Left' || source.direction === 'Right') {\n extra = Math.floor(Math.abs(source.point.x - target.point.x) * 0.5);\n }\n else {\n extra = Math.floor(Math.abs(source.point.y - target.point.y) * 0.5);\n }\n }\n }\n var srcPort = element.sourcePortWrapper;\n var intermeditatePoints;\n var segmentValue;\n var next;\n var diffx = target.point.x - source.point.x;\n var diffy = target.point.y - source.point.y;\n var temp;\n if (!allow && (Math.abs(diffx) < 0.001 || Math.abs(diffy) < 0.001)) {\n if (target.direction === undefined) {\n intermeditatePoints = [source.point, target.point];\n return intermeditatePoints;\n }\n }\n if (element.targetWrapper === undefined && Math.abs(diffx) <= 31 && Math.abs(diffy) <= 31) {\n if ((source.direction === 'Left' || source.direction === 'Right')) {\n if (Math.abs(diffy) < 12) {\n source.direction = (source.point.y > target.point.y) ? 'Top' : 'Bottom';\n }\n }\n else {\n if (Math.abs(diffx) < 12) {\n source.direction = (source.point.x > target.point.x) ? 'Left' : 'Right';\n }\n }\n if (Math.abs(diffx) > 12 || Math.abs(diffy) > 12) {\n return orthoConnection2Segment(source, target);\n }\n else {\n extra += 5;\n }\n }\n if (source.direction === 'Left' || source.direction === 'Right') {\n if (source.direction === 'Right') {\n if (target.direction !== undefined && target.direction === 'Right') {\n extra = Math.max(source.point.x, target.point.x) - source.point.x + extra;\n }\n if (source.point.x > target.point.x && srcPort === undefined) {\n extra = -extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Left') {\n extra = source.point.x - Math.min(source.point.x, target.point.x) + extra;\n }\n if (source.point.x > target.point.x || srcPort !== undefined || source.direction === 'Left') {\n extra = -extra;\n }\n }\n temp = target.point.y - source.point.y;\n segmentValue = addLineSegment(source.point, extra, 0);\n temp = target.point.y - segmentValue.y;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.y - segmentValue.y, 90);\n }\n }\n else if (source.direction === 'Top' || source.direction === 'Bottom') {\n if (source.direction === 'Bottom') {\n if (target.direction !== undefined && target.direction === 'Bottom') {\n extra = Math.max(source.point.y, target.point.y) - source.point.y + extra;\n }\n }\n else {\n if (target.direction !== undefined && target.direction === 'Top') {\n extra = source.point.y - Math.min(source.point.y, target.point.y) + extra;\n }\n if (source.point.y > target.point.y || (srcPort !== undefined) || source.direction === 'Top') {\n extra = -extra;\n }\n }\n temp = target.point.x - source.point.x;\n if (source.direction === 'Top') {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n else {\n segmentValue = addLineSegment(source.point, extra, 90);\n }\n temp = target.point.x - segmentValue.x;\n if (temp !== 0) {\n next = addLineSegment(segmentValue, target.point.x - segmentValue.x, 0);\n }\n }\n if (temp === 0) {\n return intermeditatePoints = [\n source.point,\n target.point\n ];\n }\n intermeditatePoints = [\n source.point,\n segmentValue,\n next,\n target.point\n ];\n return intermeditatePoints;\n}\n/**\n * orthoConnection5Segment method \\\n *\n * @returns { PointModel[] } orthoConnection5Segment method .\\\n * @param {Connector} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {End} extra - provide the extra value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction orthoConnection5Segment(source, target, extra, isBezier) {\n if (extra === void 0) { extra = 20; }\n if (isBezier === void 0) { isBezier = false; }\n if (isBezier) {\n extra = 20;\n }\n var intermeditatePoints;\n var length = extra;\n var sLeft = source.corners.left - source.margin.left;\n var sRight = source.corners.right + source.margin.right;\n var sBottom = source.corners.bottom + source.margin.bottom;\n var sTop = source.corners.top - source.margin.top;\n var tLeft = target.corners.left - target.margin.left;\n var tRight = target.corners.right + target.margin.right;\n var tBottom = target.corners.bottom + target.margin.bottom;\n var tTop = target.corners.top - target.margin.top;\n var segmentValue;\n switch (source.direction) {\n case 'Left':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sLeft > tLeft && sLeft <= tRight && extra >= 20) {\n length = source.point.x - target.corners.left + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.left > target.corners.left && source.corners.left - target.corners.right >= 20) {\n length = (source.corners.left - target.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 180);\n break;\n case 'Top':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sTop > tTop && sTop <= tBottom && extra >= 20) {\n length = source.point.y - target.corners.top + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.top > target.corners.top && source.corners.top - target.corners.bottom >= 20) {\n length = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 270);\n break;\n case 'Right':\n if ((sTop > tTop && sTop < tBottom || sBottom < tBottom && sBottom > tTop) &&\n sRight < tRight && sRight >= tLeft && extra >= 20) {\n length = target.corners.right - source.point.x + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.right < target.corners.right && target.corners.left - source.corners.right >= 20) {\n length = (target.corners.left - source.corners.right) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 0);\n break;\n case 'Bottom':\n if ((sLeft > tLeft && sLeft < tRight || sRight < tRight && sRight > tLeft) &&\n sBottom < tBottom && sBottom >= tTop && extra >= 20) {\n length = target.corners.bottom - source.point.y + length;\n }\n if (isBezier && source.direction === target.direction) {\n if (source.corners.bottom < target.corners.bottom && target.corners.top - source.corners.bottom >= 20) {\n length = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n segmentValue = addLineSegment(source.point, length, 90);\n break;\n }\n intermeditatePoints = [\n source.point,\n segmentValue\n ];\n var newExtra = undefined;\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n var prevDir = source.direction;\n source.direction = segmentValue.x > target.point.x ? 'Left' : 'Right';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.x - target.point.x) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n else {\n var prevDir = source.direction;\n source.direction = segmentValue.y > target.point.y ? 'Top' : 'Bottom';\n source.point = segmentValue;\n newExtra = isBezier ? Math.abs(segmentValue.y - target.point.y) * 0.5 : newExtra;\n intermeditatePoints = orthoConnection4Segment(source, target, prevDir, intermeditatePoints, newExtra, isBezier);\n }\n return intermeditatePoints;\n}\n/**\n * orthoConnection4Segment method \\\n *\n * @returns { PointModel[] } orthoConnection4Segment method .\\\n * @param {End} source - provide the target value.\n * @param {End} target - provide the target value.\n * @param {string} prevDir - provide the target value.\n * @param {PointModel[]} interPt - provide the target value.\n * @param {number} e - provide the target value.\n * @param {boolean} isBezier - provide the target value.\n * @private\n */\nfunction orthoConnection4Segment(source, target, prevDir, interPt, e, isBezier) {\n if (e === void 0) { e = 20; }\n if (isBezier === void 0) { isBezier = false; }\n var segmentValue;\n if (prevDir === undefined) {\n source.margin = { left: 2, right: 2, top: 2, bottom: 2 };\n target.margin = { left: 0, right: 5, top: 0, bottom: 5 };\n if (isBezier) {\n source.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n target.margin = { left: 10, right: 10, top: 10, bottom: 10 };\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, e);\n if (source.corners.left - target.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.left) + Math.floor(source.corners.left - target.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, e, prevDir);\n if (target.corners.left - source.corners.right >= 5) {\n e = Math.abs(source.point.x - source.corners.right) + Math.floor(target.corners.left - source.corners.right) * 0.5;\n }\n }\n else if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, e);\n if (source.corners.top - target.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.top) + Math.floor(source.corners.top - target.corners.bottom) * 0.5;\n }\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, e, prevDir);\n if (target.corners.top - source.corners.bottom >= 5) {\n e = Math.abs(source.point.y - source.corners.bottom) + Math.floor(target.corners.top - source.corners.bottom) * 0.5;\n }\n }\n }\n }\n else {\n if (source.direction === 'Bottom') {\n if (isBezier) {\n if (target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.bottom - source.point.y) + 25;\n }\n }\n else {\n if (target.corners.top > source.corners.bottom && target.corners.top - source.corners.bottom < 20) {\n e = (target.corners.top - source.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Top') {\n if (isBezier) {\n if (source.corners.top - target.corners.bottom < 20) {\n e = (source.point.y - target.corners.top) + 25;\n }\n }\n else {\n if (target.corners.bottom < source.corners.top && source.corners.top - target.corners.bottom < 20) {\n e = (source.corners.top - target.corners.bottom) / 2;\n }\n }\n }\n else if (source.direction === 'Right') {\n if (isBezier) {\n if (target.corners.left - source.corners.right < 20) {\n e = (target.corners.right - source.point.x) + 25;\n }\n }\n else {\n if (target.corners.left > source.corners.right && target.corners.left - source.corners.right < 20) {\n e = (target.corners.left - source.corners.right) / 2;\n }\n }\n }\n else if (source.direction === 'Left') {\n if (isBezier) {\n if (source.corners.left - target.corners.right < 20) {\n e = (source.point.x - target.corners.left) + 25;\n }\n }\n else {\n if (target.corners.right < source.corners.left && source.corners.left - target.corners.right < 20) {\n e = (source.corners.left - target.corners.right) / 2;\n }\n }\n }\n if (prevDir === target.direction && isBezier) {\n if ((target.direction === 'Bottom' && source.point.y > target.point.y) ||\n (target.direction === 'Top' && source.point.y < target.point.y)) {\n if (source.direction === 'Left') {\n e = getLeftLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Right') {\n e = getRightLength(source, target, 20, prevDir);\n }\n }\n else if ((target.direction === 'Right' && source.point.x > target.point.x) ||\n (target.direction === 'Left' && source.point.x < target.point.x)) {\n if (source.direction === 'Top') {\n e = getTopLength(source, target, prevDir, 20);\n }\n else if (source.direction === 'Bottom') {\n e = getBottomLength(source, target, 20, prevDir);\n }\n }\n }\n }\n switch (source.direction) {\n case 'Left':\n e = isBezier ? e : getLeftLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 180);\n break;\n case 'Right':\n e = isBezier ? e : getRightLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 0);\n break;\n case 'Top':\n e = isBezier ? e : getTopLength(source, target, prevDir, e);\n segmentValue = addLineSegment(source.point, e, 270);\n break;\n case 'Bottom':\n e = isBezier ? e : getBottomLength(source, target, e, prevDir);\n segmentValue = addLineSegment(source.point, e, 90);\n }\n if (interPt !== undefined) {\n interPt.push(segmentValue);\n }\n else {\n interPt = [\n source.point,\n segmentValue\n ];\n }\n if (source.direction === 'Top' || source.direction === 'Bottom') {\n getOrtho3Seg(segmentValue, 'horizontal', source, target, interPt, isBezier);\n }\n else if (source.direction === 'Right' || source.direction === 'Left') {\n getOrtho3Seg(segmentValue, 'vertical', source, target, interPt, isBezier);\n }\n return interPt;\n}\n/**\n * getOrtho3Seg method \\\n *\n * @returns { void } getOrtho3Seg method .\\\n * @param {PointModel} sPt - provide the sPt value.\n * @param {string} orientation - provide the orientation value.\n * @param {End} src - provide the src value.\n * @param {End} tar - provide the tar value.\n * @param {PointModel[]} points - provide the points value.\n * @param {boolean} isBezier - provide the isBezier value.\n * @private\n */\nfunction getOrtho3Seg(sPt, orientation, src, tar, points, isBezier) {\n var point1;\n var point2;\n var point3;\n if (orientation === 'horizontal') {\n src.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n tar.margin = { left: 0, right: 10, top: 0, bottom: 10 };\n }\n else if (orientation === 'vertical') {\n src.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n tar.margin = { left: 10, right: 0, top: 10, bottom: 0 };\n }\n var extra = 20;\n if (orientation === 'horizontal') {\n switch (tar.direction) {\n case 'Left':\n if (src.corners.right + src.margin.right < tar.corners.left - tar.margin.left &&\n (tar.corners.left - src.margin.right - src.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(tar.corners.left - src.corners.right) / 2;\n extra = src.corners.right - sPt.x + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.left - src.corners.right) / 2, 20);\n extra = src.corners.right - sPt.x + gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.min(tar.corners.left, sPt.x) - sPt.x - 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.min(tar.corners.left, src.corners.left) - sPt.x - 20;\n }\n else {\n extra = tar.corners.left - sPt.x - 20;\n }\n }\n break;\n case 'Right':\n if (src.corners.left - src.margin.left > tar.corners.right + tar.margin.right &&\n (src.corners.left - src.margin.right - tar.corners.right > extra || (src.corners.top - src.margin.top <= tar.point.y &&\n src.corners.bottom + src.margin.bottom >= tar.point.y))) {\n if (isBezier && (src.direction === 'Top' || src.direction === 'Bottom')) {\n var gap = Math.abs(src.corners.left - tar.corners.right) / 2;\n extra = src.corners.left - sPt.x - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.left - tar.corners.right) / 2, 20);\n extra = src.corners.left - sPt.x - gap;\n }\n }\n else {\n if ((src.direction === 'Top' && sPt.y > tar.point.y) || (src.direction === 'Bottom' && sPt.y < tar.point.y)) {\n extra = Math.max(tar.corners.right, sPt.x) - sPt.x + 20;\n }\n else if (sPt.x >= src.corners.left - src.margin.left && sPt.x <= src.corners.right + src.margin.right) {\n extra = Math.max(tar.corners.right, src.corners.right) - sPt.x + 20;\n }\n else {\n extra = tar.corners.right - sPt.x + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 0);\n point2 = addLineSegment(point1, tar.point.y - sPt.y, 90);\n point3 = tar.point;\n }\n else if (orientation === 'vertical') {\n switch (tar.direction) {\n case 'Top':\n if (src.corners.bottom + src.margin.bottom < tar.corners.top - tar.margin.top &&\n (tar.corners.top - src.margin.top - src.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(tar.corners.top - src.corners.bottom) / 2;\n extra = src.corners.bottom - sPt.y + gap;\n }\n else {\n var gap = Math.min(Math.abs(tar.corners.top - src.corners.bottom) / 2, 20);\n extra = src.corners.bottom - sPt.y + gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.min(tar.corners.top, sPt.y) - sPt.y - 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.min(tar.corners.top, src.corners.top) - sPt.y - 20;\n }\n else {\n extra = tar.corners.top - sPt.y - 20;\n }\n }\n break;\n case 'Bottom':\n if (src.corners.top - src.margin.top > tar.corners.bottom + tar.margin.bottom &&\n (src.corners.top - src.margin.top - tar.corners.bottom > extra || (src.corners.left - src.margin.left <= tar.point.x &&\n src.corners.right + src.margin.right >= tar.point.x))) {\n if (isBezier && (src.direction === 'Right' || src.direction === 'Left')) {\n var gap = Math.abs(src.corners.top - tar.corners.bottom) / 2;\n extra = src.corners.top - sPt.y - gap;\n }\n else {\n var gap = Math.min(Math.abs(src.corners.top - tar.corners.bottom) / 2, 20);\n extra = src.corners.top - sPt.y - gap;\n }\n }\n else {\n if ((src.direction === 'Left' && sPt.x > tar.point.x) || (src.direction === 'Right' && sPt.x < tar.point.x)) {\n extra = Math.max(tar.corners.bottom, sPt.y) - sPt.y + 20;\n }\n else if (sPt.y >= src.corners.top - src.margin.top && sPt.y <= src.corners.bottom + src.margin.bottom) {\n extra = Math.max(tar.corners.bottom, src.corners.bottom) - sPt.y + 20;\n }\n else {\n extra = tar.corners.bottom - sPt.y + 20;\n }\n }\n break;\n }\n point1 = addLineSegment(sPt, extra, 90);\n point2 = addLineSegment(point1, tar.point.x - sPt.x, 0);\n point3 = tar.point;\n }\n points.push(point1);\n points.push(point2);\n points.push(point3);\n}\n/**\n * getTopLength method \\\n *\n * @returns { number } getTopLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} preDir - provide the orientation value.\n * @param {number} length - provide the src value.\n * @private\n */\nfunction getTopLength(source, target, preDir, length) {\n if (source.corners.top - source.margin.top > target.corners.top + target.margin.top &&\n source.corners.top - source.margin.top <= target.corners.bottom + target.margin.bottom) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n length += source.corners.top - target.corners.top;\n }\n length += source.point.y - source.corners.top;\n }\n else {\n if ((preDir !== undefined && preDir !== 'Left') && target.direction === 'Right' && source.point.x < target.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((preDir !== undefined && preDir !== 'Right') && target.direction === 'Left'\n && target.point.x < source.point.x) {\n length += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n length += source.point.y - source.corners.top;\n }\n }\n return length;\n}\n/**\n * getLeftLength method \\\n *\n * @returns { number } getLeftLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the sPt value.\n * @param {string} prevDir - provide the orientation value.\n * @param {number} segLength - provide the src value.\n * @private\n */\nfunction getLeftLength(source, target, prevDir, segLength) {\n if (source.corners.left - source.margin.left > target.corners.left - target.margin.left &&\n source.corners.left - source.margin.left <= target.corners.right + target.margin.right) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n segLength += source.corners.left - target.corners.left;\n }\n segLength += source.point.x - source.corners.left;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') &&\n target.direction === 'Top' && target.point.y < source.point.y) {\n segLength += Math.abs(source.point.x - target.corners.right);\n }\n else {\n segLength += source.point.x - source.corners.left;\n }\n }\n return segLength;\n}\n/**\n * getRightLength method \\\n *\n * @returns { number } getRightLength method .\\\n * @param {End} source - provide the sPt value.\n * @param {End} target - provide the orientation value.\n * @param {number} length - provide the src value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getRightLength(source, target, length, prevDir) {\n if (source.corners.right + source.margin.right < target.corners.right + target.margin.right &&\n source.corners.right + source.margin.right >= target.corners.left - target.margin.left) {\n if (target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n else if (target.direction === 'Top' && source.point.y > target.point.y) {\n length += target.corners.right - source.corners.right;\n }\n length += source.corners.right - source.point.x;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Top') && target.direction === 'Bottom' && source.point.y < target.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else if ((prevDir !== undefined && prevDir !== 'Bottom') && target.direction === 'Top' && target.point.y < source.point.y) {\n length += Math.abs(source.point.x - target.corners.right);\n }\n else {\n length += source.corners.right - source.point.x;\n }\n }\n return length;\n}\n/**\n * getBottomLength method \\\n *\n * @returns { number } getBottomLength method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @param {number} segLength - provide the segLength value.\n * @param {string} prevDir - provide the src value.\n * @private\n */\nfunction getBottomLength(source, target, segLength, prevDir) {\n if (source.corners.bottom + source.margin.bottom < target.corners.bottom + target.margin.bottom &&\n source.corners.bottom + source.margin.bottom >= target.corners.top - target.margin.top) {\n if (target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n else if (target.direction === 'Left' && source.point.x > target.point.x) {\n segLength += target.corners.bottom - source.corners.bottom;\n }\n segLength += source.corners.bottom - source.point.y;\n }\n else {\n if ((prevDir !== undefined && prevDir !== 'Left') &&\n target.direction === 'Right' && source.point.x < target.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else if ((prevDir !== undefined && prevDir !== 'Right') &&\n target.direction === 'Left' && target.point.x < source.point.x) {\n segLength += Math.abs(source.point.y - target.corners.bottom);\n }\n else {\n segLength += source.corners.bottom - source.point.y;\n }\n }\n return segLength;\n}\nfunction convertPointToBezierSegment(element, segCount, pts) {\n if (element.type === 'Bezier') {\n if (element.segments.length === 0) {\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (segCount === NoOfSegments.One) {\n var distance = Math.min(20, Point.findLength(start, end) * 0.5);\n var vector1 = { angle: findAngle(start, end), distance: distance };\n var vector2 = { angle: findAngle(end, start), distance: distance };\n var dir = Point.direction(start, end);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Two) {\n var mid = pts[1];\n var vector1 = { angle: findAngle(start, mid), distance: Point.findLength(start, mid) * 0.5 };\n var vector2 = { angle: findAngle(end, mid), distance: Point.findLength(end, mid) * 0.5 };\n var dir = Point.direction(start, mid);\n var ori = dir === 'Left' || dir === 'Right' ? 'Horizontal' : 'Vertical';\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, orientation: ori }, true);\n (element.segments).push(segment);\n }\n else if (segCount === NoOfSegments.Three) {\n var mid1 = pts[1];\n var mid2 = pts[pts.length - 2];\n var mid = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(mid, mid1), distance: Point.findLength(mid, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: mid, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(mid, mid2), distance: Point.findLength(mid, mid2) * 0.5 };\n var vector4 = { angle: findAngle(end, mid2), distance: Point.findLength(end, mid2) * 0.5 };\n var dir2 = Point.direction(mid, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, orientation: ori2 }, true);\n (element.segments).push(segment2);\n }\n else if (segCount === NoOfSegments.Four) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(end, mid3), distance: Point.findLength(end, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, orientation: ori3 }, true);\n (element.segments).push(segment3);\n }\n else if (segCount === NoOfSegments.Five) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var mid3 = pts[3];\n var mid4 = pts[4];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n var vector1 = { angle: findAngle(start, mid1), distance: Point.findLength(start, mid1) * 0.5 };\n var vector2 = { angle: findAngle(center1, mid1), distance: Point.findLength(center1, mid1) * 0.5 };\n var dir1 = Point.direction(start, mid1);\n var ori1 = dir1 === 'Left' || dir1 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment1 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector1, vector2: vector2, point: center1, orientation: ori1 }, true);\n (element.segments).push(segment1);\n var vector3 = { angle: findAngle(center1, mid2), distance: Point.findLength(center1, mid2) * 0.5 };\n var vector4 = { angle: findAngle(center2, mid2), distance: Point.findLength(center2, mid2) * 0.5 };\n var dir2 = Point.direction(center1, mid2);\n var ori2 = dir2 === 'Left' || dir2 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment2 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector3, vector2: vector4, point: center2, orientation: ori2 }, true);\n (element.segments).push(segment2);\n var vector5 = { angle: findAngle(center2, mid3), distance: Point.findLength(center2, mid3) * 0.5 };\n var vector6 = { angle: findAngle(center3, mid3), distance: Point.findLength(center3, mid3) * 0.5 };\n var dir3 = Point.direction(center2, mid3);\n var ori3 = dir3 === 'Left' || dir3 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment3 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector5, vector2: vector6, point: center3, orientation: ori3 }, true);\n (element.segments).push(segment3);\n var vector7 = { angle: findAngle(center3, mid4), distance: Point.findLength(center3, mid4) * 0.5 };\n var vector8 = { angle: findAngle(end, mid4), distance: Point.findLength(end, mid4) * 0.5 };\n var dir4 = Point.direction(center3, mid4);\n var ori4 = dir4 === 'Left' || dir4 === 'Right' ? 'Horizontal' : 'Vertical';\n var segment4 = new BezierSegment(element, 'segments', { type: 'Bezier', isInternalSegment: true, vector1: vector7, vector2: vector8, orientation: ori4 }, true);\n (element.segments).push(segment4);\n }\n else {\n var segment = new BezierSegment(element, 'segments', { type: 'Bezier' }, true);\n (element.segments).push(segment);\n }\n }\n else {\n for (var i = 0; i < element.segments.length; i++) {\n if (element.bezierSettings.allowSegmentsReset) {\n element.segments[parseInt(i.toString(), 10)].isInternalSegment = true;\n }\n }\n }\n }\n}\n/**\n * getSwapping method \\\n *\n * @returns { boolean } getSwapping method .\\\n * @param {string} srcDir - provide the source value.\n * @param {string} tarDir - provide the target value.\n * @private\n */\nfunction getSwapping(srcDir, tarDir) {\n var swap = false;\n switch (srcDir) {\n case 'Left':\n switch (tarDir) {\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Top':\n switch (tarDir) {\n case 'Left':\n case 'Right':\n case 'Bottom':\n swap = true;\n break;\n }\n break;\n case 'Bottom':\n switch (tarDir) {\n case 'Right':\n swap = true;\n break;\n }\n break;\n }\n return swap;\n}\n/**\n * swapPoints method \\\n *\n * @returns { void } swapPoints method .\\\n * @param {End} source - provide the source value.\n * @param {End} target - provide the target value.\n * @private\n */\nfunction swapPoints(source, target) {\n var direction = source.direction;\n source.direction = target.direction;\n target.direction = direction;\n var point = source.point;\n source.point = target.point;\n target.point = point;\n var corner = source.corners;\n source.corners = target.corners;\n target.corners = corner;\n}\n/**\n * getPortDirection method \\\n *\n * @returns { boolean } getPortDirection method .\\\n * @param {PointModel} point - provide the point value.\n * @param {Corners} corner - provide the corner value.\n * @param {Rect} bounds - provide the bounds value.\n * @param {boolean} closeEdge - provide the closeEdge value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getPortDirection(point, corner, bounds, closeEdge) {\n var direction;\n var boundsValue = corner === undefined ? bounds : corner;\n var one = boundsValue.topLeft;\n var two = boundsValue.topRight;\n var three = boundsValue.bottomRight;\n var four = boundsValue.bottomLeft;\n var center = boundsValue.center;\n var angle = findAngle(center, point);\n var fourty5 = findAngle(center, three);\n var one35 = findAngle(center, four);\n var two25 = findAngle(center, one);\n var three15 = findAngle(center, two);\n if (angle > two25 && angle < three15) {\n direction = 'Top';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - one.x) < Math.abs(point.x - two.x)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Left');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(two.x - bounds.width, two.y, width, height), point, 'Right');\n // }\n // }\n }\n else if (angle >= fourty5 && angle < one35) {\n direction = 'Bottom';\n // if (bounds.width < bounds.height && closeEdge) {\n // let height: number = (bounds.height - bounds.width) / 2;\n // let width: number = bounds.width;\n // if (Math.abs(point.x - four.x) < Math.abs(point.x - three.x)) {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Left');\n // } else {\n // let value: Rect = new Rect(three.x - bounds.width, three.y - bounds.height / 4, bounds.width, bounds.height / 4);\n // direction = checkCloseEdge(direction, value, point, 'Right');\n // }\n // }\n }\n else if (angle >= one35 && angle <= two25) {\n direction = 'Left';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - one.y) < Math.abs(point.y - four.y)) {\n // direction = checkCloseEdge(direction, new Rect(one.x, one.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction, new Rect(four.x, four.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else if (angle >= three15 || angle < fourty5) {\n direction = 'Right';\n // if (bounds.width > bounds.height && closeEdge) {\n // let width: number = (bounds.width - bounds.height) / 2;\n // let height: number = bounds.height;\n // if (Math.abs(point.y - two.y) < Math.abs(point.y - three.y)) {\n // direction = checkCloseEdge(direction, new Rect(two.x - width, two.y, width, height), point, 'Top');\n // } else {\n // direction = checkCloseEdge(direction,\n //new Rect(three.x - width, three.y - height, width, height), point, 'Bottom');\n // }\n // }\n }\n else {\n direction = 'Right';\n }\n return direction;\n}\n// function checkCloseEdge(direction: string, threshold: Rect, port: PointModel, nearest: string): string {\n// if (threshold) {\n// switch (direction) {\n// case 'Bottom':\n// case 'Top':\n// let left: number = Math.abs(threshold.left - port.x);\n// let right: number = Math.abs(threshold.right - port.x);\n// let ver: number = direction === 'Top' ? Math.abs(threshold.top - port.y) : Math.abs(threshold.bottom - port.y);\n// if (left < right) {\n// if (left < ver) {\n// return 'Left';\n// }\n// } else {\n// if (right < ver) {\n// return 'Right';\n// }\n// }\n// break;\n// case 'Left':\n// case 'Right':\n// let top: number = Math.abs(threshold.top - port.y);\n// let bottom: number = Math.abs(threshold.bottom - port.y);\n// let hor: number = direction === 'Left' ? Math.abs(threshold.left - port.x) : Math.abs(threshold.right - port.x);\n// if (top < bottom) {\n// if (top < hor) {\n// return 'Top';\n// }\n// } else {\n// if (bottom < hor) {\n// return 'Bottom';\n// }\n// }\n// break;\n// }\n// }\n//Meant for dock port\n// return direction;\n// }\n/**\n * getOuterBounds method \\\n *\n * @returns { Rect } getOuterBounds method .\\\n * @param {Connector} obj - provide the point value.\n * @private\n */\nexport function getOuterBounds(obj) {\n //let outerBounds: Rect;\n var outerBounds = obj.wrapper.children[0].bounds;\n if (obj.sourceDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[1].bounds);\n }\n if (obj.targetDecorator.shape !== 'None') {\n outerBounds.uniteRect(obj.wrapper.children[2].bounds);\n }\n return outerBounds;\n}\n/**\n * getOppositeDirection method \\\n *\n * @returns { string } getOppositeDirection method .\\\n * @param {string} direction - provide the direction value.\n * @private\n */\nexport function getOppositeDirection(direction) {\n switch (direction) {\n case 'Top':\n return 'Bottom';\n case 'Bottom':\n return 'Top';\n case 'Left':\n return 'Right';\n case 'Right':\n return 'Left';\n }\n return 'auto';\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * customize the size of the individual palette items.\n */\nvar SymbolSize = /** @class */ (function (_super) {\n __extends(SymbolSize, _super);\n function SymbolSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolSize.prototype, \"height\", void 0);\n return SymbolSize;\n}(ChildProperty));\nexport { SymbolSize };\n/**\n * Defines the size and description of a symbol\n */\nvar SymbolPaletteInfo = /** @class */ (function (_super) {\n __extends(SymbolPaletteInfo, _super);\n function SymbolPaletteInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"fit\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"description\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"template\", void 0);\n __decorate([\n Property()\n ], SymbolPaletteInfo.prototype, \"tooltip\", void 0);\n return SymbolPaletteInfo;\n}(ChildProperty));\nexport { SymbolPaletteInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from './tooltip';\nimport { SymbolPaletteInfo } from './preview';\n/**\n * Defines the common behavior of nodes, connectors and groups\n */\nvar NodeBase = /** @class */ (function (_super) {\n __extends(NodeBase, _super);\n function NodeBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], NodeBase.prototype, \"id\", void 0);\n __decorate([\n Property(Number.MIN_VALUE)\n ], NodeBase.prototype, \"zIndex\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeBase.prototype, \"margin\", void 0);\n __decorate([\n Property(true)\n ], NodeBase.prototype, \"visible\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], NodeBase.prototype, \"tooltip\", void 0);\n __decorate([\n Property(false)\n ], NodeBase.prototype, \"excludeFromLayout\", void 0);\n __decorate([\n Property()\n ], NodeBase.prototype, \"addInfo\", void 0);\n __decorate([\n Property('None')\n ], NodeBase.prototype, \"flip\", void 0);\n __decorate([\n Property('All')\n ], NodeBase.prototype, \"flipMode\", void 0);\n __decorate([\n Complex({}, SymbolPaletteInfo)\n ], NodeBase.prototype, \"symbolInfo\", void 0);\n return NodeBase;\n}(ChildProperty));\nexport { NodeBase };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { DiagramElement } from './diagram-element';\nimport { getContent } from '../../utility/dom-util';\nimport { templateCompiler } from '../../utility/base-util';\n/**\n * HTMLElement defines the basic html elements\n */\nvar DiagramHtmlElement = /** @class */ (function (_super) {\n __extends(DiagramHtmlElement, _super);\n /**\n * set the id for each element \\\n *\n * @returns { void }set the id for each element\\\n * @param {string} nodeId - provide the x value.\n * @param {string} diagramId - provide the y value.\n * @param {string} annotationId - provide the id value.\n * @param {string} nodeTemplate - provide the id value.\n *\n * @private\n */\n function DiagramHtmlElement(nodeId, diagramId, annotationId, nodeTemplate) {\n var _this = _super.call(this) || this;\n _this.data = '';\n /**\n * Gets the node id for the element\n */\n _this.nodeId = '';\n /**\n * defines the id of the annotation on rendering template on label.\n * @private\n */\n _this.annotationId = '';\n /**\n * Gets the diagram id for the html element\n */\n _this.diagramId = '';\n _this.diagramId = diagramId;\n _this.nodeId = nodeId;\n _this.annotationId = annotationId;\n _this.templateFn = templateCompiler(nodeTemplate);\n return _this;\n }\n /**\n * getNodeTemplate method \\\n *\n * @returns { Function } getNodeTemplate method .\\\n *\n * @private\n */\n DiagramHtmlElement.prototype.getNodeTemplate = function () {\n return this.templateFn;\n };\n Object.defineProperty(DiagramHtmlElement.prototype, \"content\", {\n /**\n * Gets or sets the geometry of the html element \\\n *\n * @returns { string | HTMLElement } Gets or sets the geometry of the html element \\\n *\n * @private\n */\n get: function () {\n return this.data;\n },\n /**\n * Gets or sets the value of the html element \\\n *\n * @returns { void }Gets or sets the value of the html element\\\n * @param {string | HTMLElement} value - provide the value value.\n *\n * @private\n */\n set: function (value) {\n this.data = value;\n if (!this.canReset) {\n this.canReset = true;\n if (!this.isTemplate) {\n this.template = getContent(this, true);\n }\n this.canReset = false;\n this.isDirt = true;\n }\n },\n enumerable: true,\n configurable: true\n });\n return DiagramHtmlElement;\n}(DiagramElement));\nexport { DiagramHtmlElement };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { DiagramTooltip } from '../objects/tooltip';\n/**\n * Specifies the behavior of fixedUserHandles\n */\n/** @private */\nvar FixedUserHandle = /** @class */ (function (_super) {\n __extends(FixedUserHandle, _super);\n function FixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"id\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"fill\", void 0);\n __decorate([\n Property('black')\n ], FixedUserHandle.prototype, \"iconStrokeColor\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"iconStrokeWidth\", void 0);\n __decorate([\n Property(true)\n ], FixedUserHandle.prototype, \"visibility\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], FixedUserHandle.prototype, \"height\", void 0);\n __decorate([\n Property('transparent')\n ], FixedUserHandle.prototype, \"handleStrokeColor\", void 0);\n __decorate([\n Property(1)\n ], FixedUserHandle.prototype, \"handleStrokeWidth\", void 0);\n __decorate([\n Property('')\n ], FixedUserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property(0)\n ], FixedUserHandle.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], FixedUserHandle.prototype, \"padding\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], FixedUserHandle.prototype, \"tooltip\", void 0);\n return FixedUserHandle;\n}(ChildProperty));\nexport { FixedUserHandle };\n/**\n * Defines the node Fixed User Handle\n */\nvar NodeFixedUserHandle = /** @class */ (function (_super) {\n __extends(NodeFixedUserHandle, _super);\n function NodeFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], NodeFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], NodeFixedUserHandle.prototype, \"margin\", void 0);\n return NodeFixedUserHandle;\n}(FixedUserHandle));\nexport { NodeFixedUserHandle };\n/**\n * Defines the connector Fixed User Handle\n */\nvar ConnectorFixedUserHandle = /** @class */ (function (_super) {\n __extends(ConnectorFixedUserHandle, _super);\n function ConnectorFixedUserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0.5)\n ], ConnectorFixedUserHandle.prototype, \"offset\", void 0);\n __decorate([\n Property('Center')\n ], ConnectorFixedUserHandle.prototype, \"alignment\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], ConnectorFixedUserHandle.prototype, \"displacement\", void 0);\n return ConnectorFixedUserHandle;\n}(FixedUserHandle));\nexport { ConnectorFixedUserHandle };\n","import { Node } from './../objects/node';\nimport { NodeConstraints, ConnectorConstraints, DiagramConstraints, DiagramTools, DiagramAction, RendererAction } from '../enum/enum';\nimport { AnnotationConstraints, PortConstraints } from '../enum/enum';\nimport { Connector } from './../objects/connector';\nimport { Selector } from './../objects/node';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { PathPort, PointPort } from '../objects/port';\n/**\n * constraints-util module contains the common constraints \\\n *\n * @returns { number } constraints-util module contains the common constraints .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Provide the DiagramElement value.\n * @private\n */\nexport function canSelect(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Select;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Select;\n }\n else {\n state = node.constraints & NodeConstraints.Select;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check whether we can move the objects ot not\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel | PathAnnotationModel | ShapeAnnotationModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canMove(node) {\n if (node) {\n var state = 0;\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n state = node.constraints & AnnotationConstraints.Drag;\n }\n else if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Drag;\n }\n else if (node instanceof Selector) {\n state = 1;\n }\n else {\n state = node.constraints & NodeConstraints.Drag;\n }\n return state;\n }\n return 1;\n}\n/**\n * Used to check the canEnablePointerEvents\\\n *\n * @returns { number } Used to check whether we can move the objects ot not .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @param {Diagram} diagram - Used to check whether we can move the objects ot not.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canEnablePointerEvents(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.PointerEvents;\n }\n else {\n state = node.constraints & NodeConstraints.PointerEvents;\n }\n return state;\n}\n/**\n * Used to check the canDelete of the element \\\n *\n * @returns { number } Used to check the canDelete of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - Used to check whether we can move the objects ot not.\n * @private\n */\nexport function canDelete(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.Delete;\n }\n else {\n state = node.constraints & NodeConstraints.Delete;\n }\n return state;\n}\n/**\n * Used to check the bridging of the element \\\n *\n * @returns { number } Used to check the bridging of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canBridge(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.Bridging) {\n state = connector.constraints & ConnectorConstraints.Bridging;\n }\n else if (connector.constraints & ConnectorConstraints.InheritBridging) {\n state = diagram.constraints & DiagramConstraints.Bridging;\n }\n else {\n state = 0;\n }\n return state;\n}\n/**\n * Used to check the routing of the element \\\n *\n * @returns { number } Used to check the routing of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @param {ConnectorModel | NodeModel} diagram - provide the diagram value.\n * @private\n */\nexport function canEnableRouting(connector, diagram) {\n var state = 0;\n if (connector.constraints & ConnectorConstraints.LineRouting) {\n state = connector.constraints & ConnectorConstraints.LineRouting;\n }\n else if (connector.constraints & ConnectorConstraints.InheritLineRouting) {\n state = diagram.constraints & DiagramConstraints.LineRouting;\n }\n return state;\n}\n/**\n * Used to check the source end dragof the element \\\n *\n * @returns { number } Used to check the source end dragof the element. \\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSourceEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragSourceEnd;\n}\n/**\n * Used to check the target end drag of the element \\\n *\n * @returns { number } Used to check the target end drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragTargetEnd(connector) {\n return connector.constraints & ConnectorConstraints.DragTargetEnd;\n}\n/**\n * Used to check the segment drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {ConnectorModel | NodeModel} connector - provide the connector value.\n * @private\n */\nexport function canDragSegmentThumb(connector) {\n return connector.constraints & ConnectorConstraints.DragSegmentThumb;\n}\n/**\n * Used to check the routing drag of the element \\\n *\n * @returns { number } Used to check the segment drag of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the connector value.\n * @private\n */\nexport function canRotate(node) {\n if ((node instanceof ShapeAnnotation) || (node instanceof PathAnnotation)) {\n return node.constraints & AnnotationConstraints.Rotate;\n }\n else {\n return node.constraints & NodeConstraints.Rotate;\n }\n}\n/**\n * Used to check shadown constraints of the element \\\n *\n * @returns { number } Used to check shadown constraints of the element .\\\n *\n * @param {NodeModel} node - provide the connector value.\n * @private\n */\nexport function canShadow(node) {\n return node.constraints & NodeConstraints.Shadow;\n}\n/**\n * Used to check canInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canInConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.InConnect)) {\n return node.constraints & NodeConstraints.InConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortInConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the PointPortModel value.\n * @private\n */\nexport function canPortInConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.InConnect)) {\n return port.constraints & PortConstraints.InConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function canOutConnect(node) {\n if ((node instanceof Node) && (node.constraints & NodeConstraints.OutConnect)) {\n return node.constraints & NodeConstraints.OutConnect;\n }\n return 0;\n}\n/**\n * Used to check canPortOutConnect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel} port - provide the node value.\n * @private\n */\nexport function canPortOutConnect(port) {\n if (port && port.constraints) {\n if (!(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n return port.constraints & PortConstraints.OutConnect;\n }\n }\n return 0;\n}\n/**\n * Used to check canResize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} node - provide the node value.\n * @param {NodeModel | ShapeAnnotationModel | PathAnnotationModel} direction - provide the node value.\n * @private\n */\nexport function canResize(node, direction) {\n var returnValue = 0;\n if (node instanceof ShapeAnnotation || node instanceof PathAnnotation) {\n returnValue = node.constraints & AnnotationConstraints.Resize;\n }\n else if (node) {\n if (direction === 'SouthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthEast;\n }\n else if (direction === 'East') {\n returnValue = node.constraints & NodeConstraints.ResizeEast;\n }\n else if (direction === 'NorthEast') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthEast;\n }\n else if (direction === 'South') {\n returnValue = node.constraints & NodeConstraints.ResizeSouth;\n }\n else if (direction === 'North') {\n returnValue = node.constraints & NodeConstraints.ResizeNorth;\n }\n else if (direction === 'SouthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeSouthWest;\n }\n else if (direction === 'West') {\n returnValue = node.constraints & NodeConstraints.ResizeWest;\n }\n else if (direction === 'NorthWest') {\n returnValue = node.constraints & NodeConstraints.ResizeNorthWest;\n }\n }\n return returnValue;\n}\n/**\n * Used to check canAllowDrop constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @private\n */\nexport function canAllowDrop(node) {\n var state = 0;\n if (node instanceof Connector) {\n state = node.constraints & ConnectorConstraints.AllowDrop;\n }\n else {\n state = node.constraints & NodeConstraints.AllowDrop;\n }\n return state;\n}\n/**\n * Used to check canVitualize constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canVitualize(diagram) {\n return diagram.constraints & DiagramConstraints.Virtualization;\n}\n/**\n * Used to check canEnableToolTip constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {ConnectorModel | NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canEnableToolTip(node, diagram) {\n var state = 0;\n if (node instanceof Connector) {\n if (node.constraints & ConnectorConstraints.Tooltip) {\n state = node.constraints & ConnectorConstraints.Tooltip;\n }\n else if (node.constraints & ConnectorConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else if (node instanceof PointPort || node instanceof PathPort) {\n if (node.constraints & PortConstraints.ToolTip) {\n state = node.constraints & PortConstraints.ToolTip;\n }\n else if (node.constraints & PortConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n else if (node instanceof ShapeAnnotation || node instanceof PathAnnotation) {\n if (node.constraints & AnnotationConstraints.Tooltip) {\n state = node.constraints & AnnotationConstraints.Tooltip;\n }\n }\n else {\n if (node.constraints & NodeConstraints.Tooltip) {\n state = node.constraints & NodeConstraints.Tooltip;\n }\n else if (node.constraints & NodeConstraints.InheritTooltip) {\n state = diagram.constraints & DiagramConstraints.Tooltip;\n }\n }\n return state;\n}\n/**\n * Used to check canSingleSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canSingleSelect(model) {\n return model.tool & DiagramTools.SingleSelect;\n}\n/**\n * Used to check canMultiSelect constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canMultiSelect(model) {\n return model.tool & DiagramTools.MultipleSelect;\n}\n/**\n * Used to check canZoomPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoomPan(model) {\n return model.tool & DiagramTools.ZoomPan;\n}\n/**\n * Used to check canContinuousDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canContinuousDraw(model) {\n return model.tool & DiagramTools.ContinuousDraw;\n}\n/**\n * Used to check canDrawOnce constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canDrawOnce(model) {\n return model.tool & DiagramTools.DrawOnce;\n}\n/**\n * Used to check defaultTool constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function defaultTool(model) {\n return (model.tool & DiagramTools.SingleSelect) || (model.tool & DiagramTools.MultipleSelect);\n}\n/**\n * Used to check canZoom constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canZoom(model) {\n return model.constraints & DiagramConstraints.Zoom;\n}\n/**\n * Used to check canPan constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPan(model) {\n return model.constraints & DiagramConstraints.Pan;\n}\n/**\n * Used to check canUserInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canUserInteract(model) {\n return model.constraints & DiagramConstraints.UserInteraction;\n}\n/**\n * Used to check canApiInteract constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canApiInteract(model) {\n return model.constraints & DiagramConstraints.ApiUpdate;\n}\n/**\n * Used to check canPanX constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanX(model) {\n return ((model.constraints & DiagramConstraints.PanX));\n}\n/**\n * Used to check canPanY constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPanY(model) {\n return ((model.constraints & DiagramConstraints.PanY));\n}\n/**\n * Used to check canZoomTextEdit constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\nexport function canZoomTextEdit(diagram) {\n return ((diagram.constraints & DiagramConstraints.ZoomTextEdit));\n}\n/**\n * Used to check canPageEditable constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} model - provide the Diagram value.\n * @private\n */\nexport function canPageEditable(model) {\n return canApiInteract(model) || (model.diagramActions & DiagramAction.ToolAction);\n}\n/**\n * Used to check enableReadOnly constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {Diagram} annotation - provide the annotation value.\n * @param {Diagram} node - provide the node value.\n * @private\n */\nexport function enableReadOnly(annotation, node) {\n var enumValue = 0;\n enumValue = (node instanceof Connector) ? ConnectorConstraints.ReadOnly : NodeConstraints.ReadOnly;\n if (node.shape.type === 'Text') {\n return node.constraints & NodeConstraints.ReadOnly;\n }\n else if (node.constraints & enumValue) {\n if (annotation.constraints & AnnotationConstraints.InheritReadOnly) {\n return 1;\n }\n else {\n return 0;\n }\n }\n else if (annotation.constraints & AnnotationConstraints.ReadOnly) {\n return 1;\n }\n return 0;\n}\n/**\n * Used to check canDraw constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDraw(port, diagram) {\n return port.constraints & PortConstraints.Draw;\n}\n/**\n * Used to check canDrag constraints of the element \\\n *\n * @returns { number } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} port - provide the Diagram value.\n * @param {Diagram} diagram - provide the Diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function canDrag(port, diagram) {\n return port.constraints & PortConstraints.Drag;\n}\n/**\n * Used to check canPreventClearSelection constraints of the element \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {PointPortModel | NodeModel} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function canPreventClearSelection(diagramActions) {\n if (diagramActions & DiagramAction.PreventClearSelection) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check canDrawThumbs \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function canDrawThumbs(rendererActions) {\n if (!(rendererActions & RendererAction.DrawSelectorBorder)) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Used to check avoidDrawSelector \\\n *\n * @returns { boolean } Used to check canInConnect constraints of the element .\\\n *\n * @param {RendererAction} rendererActions - provide the RendererAction value.\n * @private\n */\nexport function avoidDrawSelector(rendererActions) {\n if ((rendererActions & RendererAction.PreventRenderSelector)) {\n return true;\n }\n else {\n return false;\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/* eslint-disable no-self-assign */\nimport { DiagramElement } from '../elements/diagram-element';\nimport { Canvas } from './canvas';\nimport { Container } from './container';\nimport { Size } from '../../primitives/size';\nimport { randomId } from '../../utility/base-util';\nimport { TextElement } from '../elements/text-element';\n/**\n * Grid panel is used to arrange the children in a table like structure\n */\nvar GridPanel = /** @class */ (function (_super) {\n __extends(GridPanel, _super);\n function GridPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.childTable = [];\n _this.cellStyle = {};\n _this.desiredRowHeight = [];\n _this.desiredCellWidth = [];\n return _this;\n }\n /**\n * rowDefinitions method \\\n *\n * @returns { RowDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.rowDefinitions = function () {\n return this.rowDefns;\n };\n /**\n * columnDefinitions method \\\n *\n * @returns { ColumnDefinition[] } columnDefinitions method .\\\n *\n * @private\n */\n GridPanel.prototype.columnDefinitions = function () {\n return this.colDefns;\n };\n GridPanel.prototype.addObject = function (obj, rowId, columnId, rowSpan, columnSpan) {\n //check if exists\n if (this.rows.length >= rowId) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n if (row.cells.length > columnId) {\n columnSpan = columnSpan || 1;\n rowSpan = rowSpan || 1;\n var cell = row.cells[parseInt(columnId.toString(), 10)];\n cell.columnSpan = Math.max(columnSpan, cell.columnSpan);\n cell.rowSpan = Math.max(rowSpan, cell.rowSpan);\n var object = new GridCellItem();\n object = obj;\n object.rowId = rowId;\n object.columnId = columnId;\n object.columnSpan = columnSpan;\n this.childTable[object.id] = object;\n this.addObjectToCell(object, cell);\n }\n }\n };\n // public setCellStyle(rowId: number, columnId: number, cellStyle: ShapeStyleModel): void {\n // if (this.rows.length > rowId) {\n // let row: GridRow = this.rows[rowId];\n // if (row.cells.length > columnId) {\n // let cell: GridCell = row.cells[columnId];\n // cell.style = cellStyle;\n // }\n // }\n // }\n // public getRowId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowId;\n // }\n // public getColumnId(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnId;\n // }\n // public getRowSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).rowSpan;\n // }\n // public getColumnSpan(obj: DiagramElement): number {\n // return (this.childTable[obj.id] as GridCellItem).columnSpan;\n // }\n GridPanel.prototype.addObjectToCell = function (obj, cell) {\n if (!cell.children) {\n cell.children = [];\n }\n // obj.minWidth = cell.desiredCellWidth; obj.minHeight = cell.desiredCellHeight;\n obj.style.strokeColor = 'black';\n obj.style.strokeWidth = 1;\n //Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Removed below code in which the fill set as white.\n // obj.style.fill = 'white';\n cell.children.push(obj);\n };\n /**\n * updateProperties method \\\n *\n * @returns { void } updateProperties method .\\\n * @param {number} offsetX - provide the Connector value.\n * @param {number} offsetY - provide the Connector value.\n * @param {number} width - provide the Connector value.\n * @param {number} height - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateProperties = function (offsetX, offsetY, width, height) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.width = width;\n this.height = height;\n };\n /**\n * setDefinitions method \\\n *\n * @returns { void } setDefinitions method .\\\n * @param {RowDefinition[]} rows - provide the rows value.\n * @param {ColumnDefinition[]} columns - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.setDefinitions = function (rows, columns) {\n this.rowDefns = rows;\n this.colDefns = columns;\n this.children = [];\n this.rows = this.rows || [];\n for (var i = 0; i < rows.length; i++) {\n var rowDefn = rows[parseInt(i.toString(), 10)];\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n //replace this 100 with a proper property\n defaultCell.width = this.width;\n var columns_1 = this.colDefns;\n if (columns_1 === undefined || columns_1.length < 1) {\n columns_1 = [defaultCell];\n }\n this.addCellInRow(columns_1, rowDefn, row);\n this.rows.push(row);\n }\n };\n /**\n * addCellInRow method \\\n *\n * @returns { void } addCellInRow method .\\\n * @param {ColumnDefinition[]} columns - provide the rows value.\n * @param {RowDefinition} rowDefn - provide the Connector value.\n * @param {GridRow} row - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.addCellInRow = function (columns, rowDefn, row) {\n for (var j = 0; j < columns.length; j++) {\n var colDefn = columns[parseInt(j.toString(), 10)];\n var cell = new GridCell();\n cell.children = [];\n this.cellStyle.fill = 'none';\n this.cellStyle.strokeColor = 'none';\n cell.id = randomId();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n row.cells.push(cell);\n this.children.push(cell);\n }\n };\n /**\n * calculateSize method \\\n *\n * @returns { void } calculateSize method .\\\n *\n * @private\n */\n GridPanel.prototype.calculateSize = function () {\n var rows = this.rows || [];\n var calculateHeight = 0;\n var calculateWidth = 0;\n for (var i = 0; i < rows.length; i++) {\n var row = this.rows[parseInt(i.toString(), 10)];\n calculateWidth = 0;\n for (var j = 0; j < row.cells.length; j++) {\n calculateWidth += row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (j === row.cells.length - 1) {\n if (this.width && this.width !== calculateWidth) {\n row.cells[parseInt(j.toString(), 10)].desiredCellWidth += (this.width - calculateWidth);\n row.cells[parseInt(j.toString(), 10)].minWidth = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n if (row.cells[parseInt(j.toString(), 10)].children && row.cells[parseInt(j.toString(), 10)].children.length) {\n row.cells[parseInt(j.toString(), 10)].children[0].width =\n row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n this.colDefns[parseInt(j.toString(), 10)].width = row.cells[parseInt(j.toString(), 10)].desiredCellWidth;\n }\n calculateHeight += row.cells[parseInt(j.toString(), 10)].desiredCellHeight;\n if (i === rows.length - 1) {\n if (this.height && this.height !== calculateHeight) {\n var height = (this.height - calculateHeight);\n if (height > 0) {\n for (var k = 0; k < row.cells.length; k++) {\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight += height;\n row.cells[parseInt(k.toString(), 10)].minHeight =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n if (row.cells[parseInt(k.toString(), 10)].children\n && row.cells[parseInt(k.toString(), 10)].children.length) {\n row.cells[parseInt(k.toString(), 10)].children[0].height =\n row.cells[parseInt(k.toString(), 10)].desiredCellHeight;\n }\n }\n this.rowDefns[parseInt(i.toString(), 10)].height += height;\n }\n }\n }\n }\n }\n }\n };\n /**\n * updateRowHeight method \\\n *\n * @returns { void } updateRowHeight method .\\\n * @param {number} rowId - provide the rows value.\n * @param {number} height - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateRowHeight = function (rowId, height, isConsiderChild, padding) {\n var row = this.rows[parseInt(rowId.toString(), 10)];\n this.rowDefns[parseInt(rowId.toString(), 10)].height = height;\n if (this.height !== undefined) {\n this.height += height - row.cells[0].desiredCellHeight;\n }\n for (var i = 0; i < row.cells.length; i++) {\n row.cells[parseInt(i.toString(), 10)].desiredCellHeight = row.cells[parseInt(i.toString(), 10)].minHeight = height;\n if (row.cells[parseInt(i.toString(), 10)].children && row.cells[parseInt(i.toString(), 10)].children.length) {\n row.cells[parseInt(i.toString(), 10)].children[0].height = height;\n this.setTextRefresh(row.cells[parseInt(i.toString(), 10)].children[0]);\n }\n }\n this.desiredRowHeight[parseInt(rowId.toString(), 10)] = height;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minHeight = (padding !== undefined) ? this.calculateCellHeightBasedOnChildren(rowId, padding) :\n this.calculateCellHeight(rowId);\n if (minHeight > height) {\n this.updateRowHeight(rowId, minHeight, false);\n }\n }\n };\n GridPanel.prototype.setTextRefresh = function (canvas) {\n if (canvas.children && canvas.children.length) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var children = canvas.children;\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof TextElement) {\n children[parseInt(i.toString(), 10)].refreshTextElement();\n }\n if (children[parseInt(i.toString(), 10)] instanceof Canvas) {\n this.setTextRefresh(children[parseInt(i.toString(), 10)]);\n }\n }\n }\n };\n /**\n * updateColumnWidth method \\\n *\n * @returns { void } updateColumnWidth method .\\\n * @param {number} colId - provide the rows value.\n * @param {number} width - provide the Connector value.\n * @param {boolean} isConsiderChild - provide the Connector value.\n * @param {number} padding - provide the Connector value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnWidth = function (colId, width, isConsiderChild, padding) {\n this.colDefns[parseInt(colId.toString(), 10)].width = width;\n if (this.width !== undefined) {\n this.width += width - this.rows[this.rows.length - 1].cells[parseInt(colId.toString(), 10)].desiredCellWidth;\n }\n for (var i = 0; i < this.rows.length; i++) {\n this.setTextRefresh(this.rows[parseInt(i.toString(), 10)].cells[0]);\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].desiredCellWidth =\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].minWidth = width;\n if (this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children\n && this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children.length) {\n this.rows[parseInt(i.toString(), 10)].cells[parseInt(colId.toString(), 10)].children[0].width = width;\n }\n }\n this.desiredCellWidth[parseInt(colId.toString(), 10)] = width;\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n if (isConsiderChild) {\n var minWidth = (padding !== undefined) ? this.calculateCellWidthBasedOnChildren(colId, padding) :\n this.calculateCellWidth(colId);\n if (minWidth > width) {\n this.updateColumnWidth(colId, minWidth, false);\n }\n }\n };\n GridPanel.prototype.calculateCellWidth = function (colIndex) {\n var maxWidth;\n var width;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n if (cell.columnSpan === 1) {\n width = (cell.outerBounds.width > cell.bounds.width &&\n (cell.children.length === 0 || cell.children[0].maxWidth === undefined)) ? cell.outerBounds.width : cell.bounds.width;\n if (maxWidth) {\n maxWidth = (maxWidth < width) ? width : maxWidth;\n }\n else {\n maxWidth = width;\n }\n }\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeight = function (rowIndex) {\n var maxHeight;\n var height;\n var cell;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n height = (cell.outerBounds.height > cell.bounds.height) ? cell.outerBounds.height : cell.bounds.height;\n if (maxHeight) {\n maxHeight = (maxHeight < height) ? height : maxHeight;\n }\n else {\n maxHeight = height;\n }\n }\n return maxHeight;\n };\n GridPanel.prototype.calculateCellSizeBasedOnChildren = function (cell, option, padding, maxSize) {\n var maxBounds;\n var canvas = (cell && cell.children.length > 0) ? cell.children[0] : undefined;\n if (canvas && cell.columnSpan === 1) {\n maxBounds = (option === 'Width') ? canvas.bounds.right : canvas.bounds.bottom;\n if (!maxSize) {\n maxSize = (option === 'Width') ? canvas.bounds.width : canvas.bounds.height;\n }\n for (var j = 0; j < canvas.children.length; j++) {\n var children = canvas.children[parseInt(j.toString(), 10)];\n if (children instanceof Canvas) {\n if (children.id.indexOf('header') === -1) {\n var bounds = ((option === 'Width') ? children.bounds.right : children.bounds.bottom) + padding;\n if (bounds > maxBounds) {\n var size = (bounds - maxBounds) + ((option === 'Width') ? canvas.bounds.width : canvas.bounds.height);\n if (maxSize) {\n maxSize = (maxSize < size) ? size : maxSize;\n }\n }\n }\n }\n }\n }\n return maxSize;\n };\n GridPanel.prototype.calculateCellWidthBasedOnChildren = function (colIndex, padding) {\n var maxWidth; //let width: number; let maxBounds: number; let canvas: Canvas;\n var cell;\n for (var i = 0; i < this.rows.length; i++) {\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(colIndex.toString(), 10)];\n maxWidth = this.calculateCellSizeBasedOnChildren(cell, 'Width', padding, maxWidth);\n }\n return maxWidth;\n };\n GridPanel.prototype.calculateCellHeightBasedOnChildren = function (rowIndex, padding) {\n var maxHeight;\n var cell;\n // let maxBounds: number; let canvas: Canvas;\n var row = this.rows[parseInt(rowIndex.toString(), 10)];\n for (var i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n maxHeight = this.calculateCellSizeBasedOnChildren(cell, 'Height', padding, maxHeight);\n }\n return maxHeight;\n };\n /**\n * addRow method \\\n *\n * @returns { void } addRow method .\\\n * @param {number} rowId - provide the rowId value.\n * @param {number} rowDefn - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addRow = function (rowId, rowDefn, isMeasure) {\n if (this.rowDefns.length > 0) {\n this.rowDefns.splice(rowId, 0, rowDefn);\n }\n else {\n this.rowDefns.push(rowDefn);\n }\n var row = new GridRow();\n row.cells = [];\n var defaultCell = new ColumnDefinition();\n defaultCell.width = this.width;\n var columns = this.colDefns;\n this.addCellInRow(columns, rowDefn, row);\n if (rowId > this.rows.length - 1) {\n this.rows.push(row);\n }\n else {\n this.rows.splice(rowId, 0, row);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * addColumn method \\\n *\n * @returns { void } addColumn method .\\\n * @param {number} columnId - provide the rowId value.\n * @param {number} column - provide the rowDefn value.\n * @param {boolean} isMeasure - provide the isMeasure value.\n *\n * @private\n */\n GridPanel.prototype.addColumn = function (columnId, column, isMeasure) {\n var row;\n var rowDefn;\n var colDefn;\n var cell;\n var rows = this.rows;\n if (this.colDefns.length > 0) {\n this.colDefns.splice(columnId, 0, column);\n }\n else {\n this.colDefns.push(column);\n }\n if (this.width !== undefined) {\n this.width += column.width;\n }\n for (var i = 0; i < rows.length; i++) {\n row = rows[parseInt(i.toString(), 10)];\n rowDefn = this.rowDefns[parseInt(i.toString(), 10)];\n colDefn = column;\n cell = new GridCell();\n cell.style = this.cellStyle;\n cell.desiredCellWidth = cell.minWidth = colDefn.width;\n cell.desiredCellHeight = cell.minHeight = rowDefn.height;\n cell.children = [];\n if (columnId > row.cells.length - 1) {\n row.cells.push(cell);\n }\n else {\n row.cells.splice(columnId, 0, cell);\n }\n this.children.push(cell);\n }\n if (isMeasure) {\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n }\n };\n /**\n * removeRow method \\\n *\n * @returns { void } removeRow method .\\\n * @param {number} rowId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeRow = function (rowId) {\n var cell;\n var element;\n var rows = this.rows;\n var removeRow = rows[parseInt(rowId.toString(), 10)];\n this.height -= this.rowDefns[parseInt(rowId.toString(), 10)].height;\n for (var i = 0; i < removeRow.cells.length; i++) {\n cell = removeRow.cells[parseInt(i.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n }\n this.rows.splice(rowId, 1);\n this.rowDefns.splice(rowId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * removeColumn method \\\n *\n * @returns { void } removeColumn method .\\\n * @param {number} columnId - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.removeColumn = function (columnId) {\n var cell;\n var element;\n var rows = this.rows;\n this.width -= this.colDefns[parseInt(columnId.toString(), 10)].width;\n for (var i = 0; i < rows.length; i++) {\n cell = rows[parseInt(i.toString(), 10)].cells[parseInt(columnId.toString(), 10)];\n this.children.splice(this.children.indexOf(cell), 1);\n element = document.getElementById(cell.id + '_groupElement');\n if (element && element.parentElement) {\n element.parentElement.removeChild(element);\n }\n rows[parseInt(i.toString(), 10)].cells.splice(columnId, 1);\n }\n this.colDefns.splice(columnId, 1);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateRowIndex method \\\n *\n * @returns { void } updateRowIndex method .\\\n * @param {number} currentIndex - provide the rowId value.\n * @param {number} newIndex - provide the rowId value.\n *\n * @private\n */\n GridPanel.prototype.updateRowIndex = function (currentIndex, newIndex) {\n //const rows: GridRow[] = this.rows;\n var temp = this.rows[parseInt(currentIndex.toString(), 10)];\n this.rows.splice(currentIndex, 1);\n this.rows.splice(newIndex, 0, temp);\n var tempRow = this.rowDefns[parseInt(currentIndex.toString(), 10)];\n this.rowDefns.splice(currentIndex, 1);\n this.rowDefns.splice(newIndex, 0, tempRow);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * updateColumnIndex method \\\n *\n * @returns { void } updateColumnIndex method .\\\n * @param {number} startRowIndex - provide the startRowIndex value.\n * @param {number} currentIndex - provide the currentIndex value.\n * @param {number} newIndex - provide the newIndex value.\n *\n * @private\n */\n GridPanel.prototype.updateColumnIndex = function (startRowIndex, currentIndex, newIndex) {\n var temp;\n var cell;\n for (var i = startRowIndex; i < this.rows.length; i++) {\n temp = this.rows[parseInt(i.toString(), 10)];\n cell = this.rows[parseInt(i.toString(), 10)].cells[parseInt(currentIndex.toString(), 10)];\n temp.cells.splice(currentIndex, 1);\n temp.cells.splice(newIndex, 0, cell);\n }\n var tempCol = this.colDefns[parseInt(currentIndex.toString(), 10)];\n this.colDefns.splice(currentIndex, 1);\n this.colDefns.splice(newIndex, 0, tempCol);\n var tempSize = this.desiredCellWidth[parseInt(currentIndex.toString(), 10)];\n this.desiredCellWidth.splice(currentIndex, 1);\n this.desiredCellWidth.splice(newIndex, 0, tempSize);\n this.measure(new Size(this.width, this.height));\n this.arrange(this.desiredSize);\n };\n /**\n * measure method \\\n *\n * @returns { Size } measure method .\\\n * @param {Size} availableSize - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.measure = function (availableSize) {\n var desired = undefined;\n if (this.rows !== undefined && this.rows.length > 0) {\n var i = 0;\n var j = 0;\n desired = new Size(0, 0);\n this.calculateSize();\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var size = cell.measure(new Size(cell.desiredCellWidth, cell.desiredCellHeight));\n if (cell.rowSpan === 1) {\n if (j === 0 || this.desiredRowHeight[parseInt(i.toString(), 10)] === undefined) {\n this.desiredRowHeight[parseInt(i.toString(), 10)] = size.height;\n }\n else {\n this.desiredRowHeight[parseInt(i.toString(), 10)] =\n Math.max(size.height, this.desiredRowHeight[parseInt(i.toString(), 10)]);\n }\n }\n if (cell.columnSpan === 1) {\n if (i === 0 || this.desiredCellWidth[parseInt(j.toString(), 10)] === undefined) {\n this.desiredCellWidth[parseInt(j.toString(), 10)] = size.width;\n }\n else {\n this.desiredCellWidth[parseInt(j.toString(), 10)] =\n Math.max(size.width, this.desiredCellWidth[parseInt(j.toString(), 10)]);\n }\n if (i === this.rows.length - 1) {\n desired.width += this.desiredCellWidth[parseInt(j.toString(), 10)];\n }\n }\n j++;\n }\n desired.height += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n //to-do update definitions\n i = j = 0;\n var rowIndex = 0;\n for (var _d = 0, _e = this.rows; _d < _e.length; _d++) {\n var row = _e[_d];\n j = 0;\n var cellIndex = 0;\n for (var _f = 0, _g = row.cells; _f < _g.length; _f++) {\n var cell = _g[_f];\n if (cell.columnSpan !== 1) {\n cell.desiredSize.width = 0;\n for (var start = 0; start < cell.columnSpan; start++) {\n if ((start + j) < row.cells.length) {\n cell.desiredSize.width += this.desiredCellWidth[start + j];\n cell.minWidth = cell.desiredSize.width;\n cell.measure(cell.desiredSize);\n }\n }\n j++;\n }\n else {\n cell.desiredSize.width = this.desiredCellWidth[parseInt(cellIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n if (cell.rowSpan !== 1) {\n cell.desiredSize.height = 0;\n for (var start = 0; start < cell.rowSpan; start++) {\n if ((start + rowIndex) < this.rows.length) {\n cell.desiredSize.height += this.desiredRowHeight[start + rowIndex];\n cell.minHeight = cell.desiredSize.height;\n cell.measure(cell.desiredSize);\n }\n }\n }\n else {\n cell.desiredSize.height = this.desiredRowHeight[parseInt(rowIndex.toString(), 10)];\n cell.measure(cell.desiredSize);\n }\n i++;\n cellIndex++;\n }\n rowIndex++;\n }\n }\n if (desired === undefined) {\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n }\n _super.prototype.stretchChildren.call(this, desired);\n this.desiredSize = desired;\n return desired;\n };\n /**\n * arrange method \\\n *\n * @returns { Size } arrange method .\\\n * @param {Size} desiredSize - provide the startRowIndex value.\n * @param {boolean} isChange - provide the startRowIndex value.\n *\n * @private\n */\n GridPanel.prototype.arrange = function (desiredSize, isChange) {\n var j = 0;\n var i = 0;\n if (this.rows !== undefined && this.rows.length > 0) {\n var x = this.offsetX - desiredSize.width * this.pivot.x;\n var y = this.offsetY - desiredSize.height * this.pivot.y;\n var cellX = x;\n for (var _i = 0, _a = this.rows; _i < _a.length; _i++) {\n var row = _a[_i];\n cellX = x;\n j = 0;\n for (var _b = 0, _c = row.cells; _b < _c.length; _b++) {\n var cell = _c[_b];\n var cellWidth = Math.max(this.desiredCellWidth[parseInt(j.toString(), 10)], cell.desiredSize.width);\n var cellHeight = Math.max(this.desiredRowHeight[parseInt(i.toString(), 10)], cell.desiredSize.height);\n cell.offsetX = cellX + cellWidth * cell.pivot.x;\n cell.offsetY = y + cellHeight * cell.pivot.y;\n cellX += this.desiredCellWidth[parseInt(j.toString(), 10)];\n cell.arrange(new Size(cellWidth, cellHeight));\n j++;\n }\n y += this.desiredRowHeight[parseInt(i.toString(), 10)];\n i++;\n }\n if (isChange) {\n // Need to remove the unwanted the child elements in the grid\n // Used for row span and column span.\n var cell = void 0;\n var row = void 0;\n var k = void 0;\n var z = void 0;\n var removeCell = void 0;\n for (i = 0; i < this.rows.length; i++) {\n row = this.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.columnSpan > 1) {\n // remove a child element when a column span is greater than 1\n this.children.splice((this.children.indexOf(cell)) + 1, cell.columnSpan - 1);\n }\n if (cell.rowSpan > 1) {\n for (k = i, z = 0; ((k + cell.rowSpan - 1) < this.rows.length && z < cell.rowSpan - 1); k++, z++) {\n removeCell = this.rows[k + 1].cells[parseInt(j.toString(), 10)];\n // remove a child element when a row span is greater than 1\n this.children.splice(this.children.indexOf(removeCell), 1);\n }\n }\n }\n }\n }\n }\n this.actualSize = desiredSize;\n this.updateBounds();\n return desiredSize;\n };\n return GridPanel;\n}(Container));\nexport { GridPanel };\n/**\n * Defines the behavior of the RowDefinition of node\n */\nvar RowDefinition = /** @class */ (function () {\n function RowDefinition() {\n /** returns the height of node */\n this.height = undefined;\n }\n return RowDefinition;\n}());\nexport { RowDefinition };\n/**\n * Defines the behavior of the ColumnDefinition of node\n */\nvar ColumnDefinition = /** @class */ (function () {\n function ColumnDefinition() {\n /** returns the width of node */\n this.width = undefined;\n }\n return ColumnDefinition;\n}());\nexport { ColumnDefinition };\n/** @private */\nvar GridRow = /** @class */ (function () {\n function GridRow() {\n this.cells = null;\n }\n return GridRow;\n}());\nexport { GridRow };\n/** @private */\nvar GridCell = /** @class */ (function (_super) {\n __extends(GridCell, _super);\n function GridCell() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columnSpan = 1;\n _this.rowSpan = 1;\n return _this;\n }\n return GridCell;\n}(Canvas));\nexport { GridCell };\nvar GridCellItem = /** @class */ (function (_super) {\n __extends(GridCellItem, _super);\n function GridCellItem() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.rowId = 0;\n _this.columnId = 0;\n _this.rowSpan = 1;\n _this.columnSpan = 1;\n return _this;\n }\n return GridCellItem;\n}(DiagramElement));\n","import { Node } from '../objects/node';\nimport { GridPanel, RowDefinition, ColumnDefinition } from '../core/containers/grid';\nimport { Lane, Phase } from '../objects/node';\nimport { DiagramAction, NodeConstraints, DiagramConstraints, DiagramEvent, ElementAction } from '../enum/enum';\nimport { cloneObject, randomId } from './../utility/base-util';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { Canvas } from '../core/containers/canvas';\nimport { Rect } from '../primitives/rect';\nimport { checkParentAsContainer, findBounds, removeChildInContainer } from '../interaction/container-interaction';\nimport { canSelect } from './constraints-util';\n/**\n * SwimLane modules are used to rendering and interaction.\n */\n/** @private */\n/**\n * initSwimLane method \\\n *\n * @returns {void} initSwimLane method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param { Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @private\n */\nexport function initSwimLane(grid, diagram, node) {\n if (!node.width && node.shape.phases.length === 0) {\n node.width = 100;\n }\n var row = [];\n var columns = [];\n var index = 0;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n if (shape.header && shape.hasHeader) {\n createRow(row, shape.header.height);\n }\n initGridRow(row, orientation, node);\n initGridColumns(columns, orientation, node);\n grid.setDefinitions(row, columns);\n if (shape.header && shape.hasHeader) {\n headerDefine(grid, diagram, node);\n index++;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n for (var k = 0; k < shape.phases.length; k++) {\n if (shape.phases[parseInt(k.toString(), 10)].id === '') {\n shape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, diagram, node, index, orientation, k);\n }\n index++;\n }\n if (shape.lanes.length > 0) {\n for (var k = 0; k < shape.lanes.length; k++) {\n if (shape.lanes[parseInt(k.toString(), 10)].id === '') {\n shape.lanes[parseInt(k.toString(), 10)].id = randomId();\n }\n laneCollection(grid, diagram, node, index, k, orientation);\n index++;\n }\n }\n}\n/**\n * addObjectToGrid method \\\n *\n * @returns {Container} addObjectToGrid method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @param { GridPanel} grid - provide the grid value.\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} object - provide the object value.\n * @param {boolean} isHeader - provide the isHeader value.\n * @param {boolean} isPhase - provide the isPhase value.\n * @param {boolean} isLane - provide the isLane value.\n * @param {string} canvas - provide the canvas value.\n * @private\n */\nexport function addObjectToGrid(diagram, grid, parent, object, isHeader, isPhase, isLane, canvas) {\n var node = new Node(diagram, 'nodes', object, true);\n node.parentId = parent.id;\n node.isHeader = (isHeader) ? true : false;\n node.isPhase = (isPhase) ? true : false;\n node.isLane = (isLane) ? true : false;\n var id = (isPhase) ? 'PhaseHeaderParent' : 'LaneHeaderParent';\n if (canvas) {\n node[\"\" + id] = canvas;\n }\n node.constraints &= ~(NodeConstraints.InConnect | NodeConstraints.OutConnect);\n node.constraints |= NodeConstraints.HideThumbs;\n diagram.initObject(node);\n diagram.nodes.push(node);\n if (node.wrapper.children.length > 0) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child instanceof DiagramElement) {\n child.isCalculateDesiredSize = false;\n }\n if (child instanceof TextElement) {\n child.canConsiderBounds = false;\n if (!isHeader && (parent.shape.orientation === 'Vertical' && isPhase) ||\n (parent.shape.orientation !== 'Vertical' && isLane)) {\n child.isLaneOrientation = true;\n child.refreshTextElement();\n }\n }\n }\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n return node.wrapper;\n}\n/**\n * headerDefine method \\\n *\n * @returns {void} headerDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @private\n */\nexport function headerDefine(grid, diagram, object) {\n var maxWidth = 0;\n var columns = grid.columnDefinitions();\n var shape = object.shape;\n for (var i = 0; i < columns.length; i++) {\n maxWidth += columns[parseInt(i.toString(), 10)].width;\n }\n shape.header.id = shape.header.id || randomId();\n var node = {\n id: object.id + shape.header.id,\n annotations: [cloneObject(shape.header.annotation)],\n style: shape.header.style ? shape.header.style : undefined,\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: 0, columnIndex: 0,\n maxWidth: maxWidth,\n container: { type: 'Canvas', orientation: 'Horizontal' }\n };\n if (!canSelect(object)) {\n node.constraints &= ~NodeConstraints.Select;\n }\n var wrapper = addObjectToGrid(diagram, grid, object, node, true);\n grid.addObject(wrapper, 0, 0, 1, grid.columnDefinitions().length);\n}\n/**\n * phaseDefine method \\\n *\n * @returns {void} phaseDefine method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @private\n */\nexport function phaseDefine(grid, diagram, object, indexValue, orientation, phaseIndex) {\n var rowValue = 0;\n var colValue = 0;\n var maxWidth;\n var shape = object.shape;\n if (orientation) {\n colValue = phaseIndex;\n rowValue = indexValue;\n maxWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n }\n else {\n rowValue = shape.header && shape.hasHeader ? phaseIndex + 1 : phaseIndex;\n }\n var phaseObject = {\n annotations: [cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)].header.annotation)],\n maxWidth: maxWidth,\n id: object.id + shape.phases[parseInt(phaseIndex.toString(), 10)].id + '_header',\n addInfo: shape.phases[parseInt(phaseIndex.toString(), 10)].addInfo,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.phases[parseInt(phaseIndex.toString(), 10)].style,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n phaseObject.annotations[0].rotateAngle = orientation ? 0 : 270;\n if (!canSelect(object)) {\n phaseObject.constraints &= ~NodeConstraints.Select;\n }\n shape.phases[parseInt(phaseIndex.toString(), 10)].header.id = phaseObject.id;\n var wrapper = addObjectToGrid(diagram, grid, object, phaseObject, false, true, false, shape.phases[parseInt(phaseIndex.toString(), 10)].id);\n grid.addObject(wrapper, rowValue, colValue);\n}\n/**\n * laneCollection method \\\n *\n * @returns {void} laneCollection method .\\\n * @param { GridPanel} grid - provide the grid value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} object - provide the object value.\n * @param {number} indexValue - provide the indexValue value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @param {boolean} orientation - provide the orientation value.\n * @private\n */\nexport function laneCollection(grid, diagram, object, indexValue, laneIndex, orientation) {\n var laneNode;\n var parentWrapper;\n var gridCell;\n var canvas;\n var childWrapper;\n var shape = object.shape;\n var value = shape.phases.length || 1;\n var isHeader = (shape.header && shape.hasHeader) ? 1 : 0;\n var rowValue = orientation ? indexValue : isHeader;\n var phaseCount = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n for (var l = 0; l < value; l++) {\n var colValue = orientation ? l : laneIndex + phaseCount;\n gridCell = grid.rows[parseInt(rowValue.toString(), 10)].cells[parseInt(colValue.toString(), 10)];\n canvas = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + l,\n rowIndex: rowValue, columnIndex: colValue,\n width: gridCell.minWidth, height: gridCell.minHeight,\n offsetX: object.offsetX, offsetY: object.offsetY,\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].style,\n addInfo: shape.lanes[parseInt(laneIndex.toString(), 10)].addInfo,\n constraints: NodeConstraints.Default | NodeConstraints.ReadOnly | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n if (!canSelect(object)) {\n canvas.constraints &= ~NodeConstraints.Select;\n }\n parentWrapper = addObjectToGrid(diagram, grid, object, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n if (l === 0) {\n laneNode = {\n id: object.id + shape.lanes[parseInt(laneIndex.toString(), 10)].id + '_' + l + '_header',\n style: shape.lanes[parseInt(laneIndex.toString(), 10)].header.style,\n annotations: [cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)].header.annotation)],\n offsetX: object.offsetX, offsetY: object.offsetY,\n rowIndex: rowValue, columnIndex: colValue,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n laneNode.annotations[0].rotateAngle = orientation ? 270 : 0;\n shape.lanes[parseInt(laneIndex.toString(), 10)].header.id = laneNode.id;\n // eslint-disable-next-line\n (orientation) ? laneNode.width = shape.lanes[laneIndex].header.width :\n laneNode.height = shape.lanes[parseInt(laneIndex.toString(), 10)].header.height;\n if (!canSelect(object)) {\n laneNode.constraints &= ~NodeConstraints.Select;\n }\n childWrapper = addObjectToGrid(diagram, grid, object, laneNode, false, false, true, shape.lanes[parseInt(laneIndex.toString(), 10)].id);\n if (orientation) {\n childWrapper.children[0].elementActions = childWrapper.children[0].elementActions | ElementAction.HorizontalLaneHeader;\n }\n parentWrapper.children.push(childWrapper);\n }\n grid.addObject(parentWrapper, rowValue, colValue);\n if (!orientation) {\n rowValue++;\n }\n colValue = orientation ? l : laneIndex + 1;\n }\n}\n/**\n * createRow method \\\n *\n * @returns {void} createRow method .\\\n * @param { RowDefinition[]} row - provide the row value.\n * @param {number} height - provide the height value.\n * @private\n */\nexport function createRow(row, height) {\n var rows = new RowDefinition();\n rows.height = height;\n row.push(rows);\n}\n/**\n * createColumn method \\\n *\n * @returns {void} createColumn method .\\\n * @param {number} width - provide the width value.\n * @private\n */\nexport function createColumn(width) {\n var cols = new ColumnDefinition();\n cols.width = width;\n return cols;\n}\n/**\n * initGridRow method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {RowDefinition[]} row - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridRow(row, orientation, object) {\n var totalHeight = 0;\n var height;\n var shape = object.shape;\n if (row.length > 0) {\n for (var i = 0; i < row.length; i++) {\n totalHeight += row[parseInt(i.toString(), 10)].height;\n }\n }\n if (orientation) {\n if (shape.phases.length > 0 && shape.phaseSize) {\n totalHeight += shape.phaseSize;\n createRow(row, shape.phaseSize);\n }\n if (shape.lanes.length > 0) {\n for (var i = 0; i < shape.lanes.length; i++) {\n height = shape.lanes[parseInt(i.toString(), 10)].height;\n totalHeight += height;\n if (i === shape.lanes.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n }\n else {\n if (shape.phases.length > 0) {\n var phaseHeight = 0;\n for (var i = 0; i < shape.phases.length; i++) {\n var phaseOffset = shape.phases[parseInt(i.toString(), 10)].offset;\n if (i === 0) {\n phaseHeight += phaseOffset;\n }\n else {\n phaseOffset -= phaseHeight;\n phaseHeight += phaseOffset;\n }\n height = phaseOffset;\n totalHeight += height;\n if (i === shape.phases.length - 1 && totalHeight < object.height) {\n height += object.height - totalHeight;\n }\n createRow(row, height);\n }\n }\n else {\n createRow(row, object.height);\n }\n }\n}\n/**\n * initGridColumns method \\\n *\n * @returns {void} initGridRow method .\\\n * @param {ColumnDefinition[]} columns - provide the row value.\n * @param {boolean} orientation - provide the row value.\n * @param {NodeModel} object - provide the row value.\n * @private\n */\nexport function initGridColumns(columns, orientation, object) {\n var totalWidth = 0;\n var shape = object.shape;\n var phaseOffset;\n var cols;\n var k;\n var j;\n var value;\n if (shape.phases.length > 0 && shape.orientation === 'Horizontal') {\n for (j = 0; j < shape.phases.length; j++) {\n phaseOffset = shape.phases[parseInt(j.toString(), 10)].offset;\n if (j === 0) {\n totalWidth += phaseOffset;\n }\n else {\n phaseOffset -= totalWidth;\n totalWidth += phaseOffset;\n }\n cols = createColumn(phaseOffset);\n if (j === shape.phases.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n }\n else if (!orientation) {\n value = (shape.phaseSize && shape.phases.length > 0) ? shape.lanes.length\n + 1 : shape.lanes.length;\n if (shape.phaseSize && shape.phases.length > 0) {\n totalWidth += shape.phaseSize;\n cols = createColumn(shape.phaseSize);\n columns.push(cols);\n }\n for (k = 0; k < shape.lanes.length; k++) {\n totalWidth += shape.lanes[parseInt(k.toString(), 10)].width;\n cols = createColumn(shape.lanes[parseInt(k.toString(), 10)].width);\n if (k === shape.lanes.length - 1 && totalWidth < object.width) {\n cols.width += object.width - totalWidth;\n }\n columns.push(cols);\n }\n if ((shape.phases.length === 0 && shape.lanes.length === 0)) {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n }\n else {\n cols = createColumn(object.width);\n columns.push(cols);\n }\n}\n/**\n * getConnectors method \\\n *\n * @returns {void} getConnectors method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {GridPanel} grid - provide the row value.\n * @param {number} rowIndex - provide the row value.\n * @param {boolean} isRowUpdate - provide the row value.\n * @private\n */\nexport function getConnectors(diagram, grid, rowIndex, isRowUpdate) {\n var connectors = [];\n var conn = 0;\n var childNode;\n var node;\n var k;\n var i;\n var j;\n var canvas;\n var row;\n var length = grid.rowDefinitions().length;\n var edges;\n for (var i_1 = 0; i_1 < length; i_1++) {\n row = grid.rows[parseInt(i_1.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n canvas = row.cells[parseInt(j.toString(), 10)].children[0];\n if (canvas && canvas.children && canvas.children.length) {\n for (k = 1; k < canvas.children.length; k++) {\n childNode = canvas.children[parseInt(k.toString(), 10)];\n node = diagram.getObject(childNode.id);\n if (node && (node.inEdges.length > 0 || node.outEdges.length > 0)) {\n edges = node.inEdges.concat(node.outEdges);\n for (conn = 0; conn < edges.length; conn++) {\n if (connectors.indexOf(edges[parseInt(conn.toString(), 10)]) === -1) {\n connectors.push(edges[parseInt(conn.toString(), 10)]);\n }\n }\n }\n }\n }\n }\n }\n return connectors;\n}\n/**\n * swimLaneMeasureAndArrange method \\\n *\n * @returns {void} swimLaneMeasureAndArrange method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function swimLaneMeasureAndArrange(obj) {\n var canvas = obj.wrapper;\n canvas.measure(new Size(obj.width, obj.height));\n if (canvas.children[0] instanceof GridPanel) {\n var grid = canvas.children[0];\n var isMeasure = false;\n if (grid.width && grid.width < grid.desiredSize.width) {\n isMeasure = true;\n grid.width = grid.desiredSize.width;\n }\n if (grid.height && grid.height < grid.desiredSize.height) {\n isMeasure = true;\n grid.height = grid.desiredSize.height;\n }\n if (isMeasure) {\n grid.measure(new Size(grid.width, grid.height));\n }\n }\n canvas.arrange(canvas.desiredSize);\n}\n/**\n * ChangeLaneIndex method \\\n *\n * @returns {void} ChangeLaneIndex method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @param {number} startRowIndex - provide the row value.\n * @private\n */\nexport function ChangeLaneIndex(diagram, obj, startRowIndex) {\n var container = obj.wrapper.children[0];\n var i;\n var j;\n var k;\n var l;\n var object;\n var subChild;\n var row;\n var cell;\n var child;\n for (i = startRowIndex; i < container.rows.length; i++) {\n row = container.rows[parseInt(i.toString(), 10)];\n for (j = 0; j < row.cells.length; j++) {\n cell = row.cells[parseInt(j.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (k = 0; k < cell.children.length; k++) {\n child = cell.children[parseInt(k.toString(), 10)];\n object = diagram.nameTable[child.id];\n if (object.isLane && child.children.length > 1) {\n // 912905: Multi-selecting and deleting swimlane objects causes the diagram to break\n for (l = 1; l < child.children.length; l++) {\n subChild = diagram.nameTable[child.children[parseInt(l.toString(), 10)].id];\n if (subChild && subChild.isLane) {\n subChild.rowIndex = i;\n subChild.columnIndex = j;\n }\n }\n }\n object.rowIndex = i;\n object.columnIndex = j;\n }\n }\n }\n }\n}\n/**\n * arrangeChildNodesInSwimLane method \\\n *\n * @returns {void} arrangeChildNodesInSwimLane method .\\\n * @param {Diagram} diagram - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function arrangeChildNodesInSwimLane(diagram, obj) {\n var grid = obj.wrapper.children[0];\n var shape = obj.shape;\n var padding = shape.padding;\n var lanes = shape.lanes;\n var top = grid.bounds.y;\n var rowvalue;\n var columnValue;\n var phaseCount = (shape.phaseSize > 0) ? shape.phases.length : 0;\n var node;\n var canvas;\n var cell;\n var i;\n var j;\n var k;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var col = orientation ? shape.phases.length || 1 : lanes.length + 1;\n var row = orientation ? ((shape.header && shape.hasHeader) ? 1 : 0) +\n (shape.phases.length > 0 ? 1 : 0) + (shape.lanes.length)\n : (shape.header && shape.hasHeader ? 1 : 0) + shape.phases.length;\n if (phaseCount === 0 && !orientation && shape.lanes.length) {\n row += 1;\n }\n if (orientation) {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0) + (phaseCount > 0 ? 1 : 0);\n columnValue = 0;\n }\n else {\n rowvalue = (shape.header && shape.hasHeader ? 1 : 0);\n columnValue = phaseCount > 0 ? 1 : 0;\n }\n if (lanes.length > 0) {\n top += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n for (i = 0; i < lanes.length; i++) {\n for (j = 0; j < lanes[parseInt(i.toString(), 10)].children.length; j++) {\n node = lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)];\n node.offsetX = lanes[parseInt(i.toString(), 10)].width;\n node.offsetY = lanes[parseInt(i.toString(), 10)].height;\n diagram.initObject(node);\n diagram.nodes.push(node);\n canvas = node.wrapper;\n if (orientation) {\n for (k = columnValue; k < col; k++) {\n cell = grid.rows[parseInt(rowvalue.toString(), 10)].cells[parseInt(k.toString(), 10)];\n if (canvas.margin.left < (cell.bounds.right - grid.bounds.x)) {\n node.parentId = cell.children[0].id;\n if (k > columnValue) {\n canvas.margin.left = canvas.margin.left - (cell.bounds.left - grid.bounds.left);\n }\n else {\n if ((cell.children[0].children[1].actualSize.width + padding) >= canvas.margin.left) {\n canvas.margin.left = cell.children[0].children[1].actualSize.width + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n else {\n for (var k_1 = rowvalue; k_1 < row; k_1++) {\n cell = grid.rows[parseInt(k_1.toString(), 10)].cells[parseInt(columnValue.toString(), 10)];\n if (canvas.margin.top < (cell.bounds.bottom - top)) {\n node.parentId = cell.children[0].id;\n if (k_1 > rowvalue) {\n canvas.margin.top = canvas.margin.top - (cell.bounds.top - top);\n }\n else {\n if ((cell.children[0].children[1].actualSize.height + padding) >= canvas.margin.top) {\n canvas.margin.top = cell.children[0].children[1].actualSize.height + padding;\n }\n }\n if (canvas.margin.left < padding) {\n canvas.margin.left = padding;\n }\n if (canvas.margin.top < padding) {\n canvas.margin.top = padding;\n }\n addChildToLane(canvas, node, diagram);\n break;\n }\n }\n }\n }\n // eslint-disable-next-line\n orientation ? rowvalue++ : columnValue++;\n }\n }\n grid.measure(new Size(obj.width, obj.height));\n grid.arrange(grid.desiredSize);\n updateChildOuterBounds(grid, obj);\n obj.width = obj.wrapper.width = grid.width;\n obj.height = obj.wrapper.height = grid.height;\n updateHeaderMaxWidth(diagram, obj);\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(grid.desiredSize);\n checkLaneChildrenOffset(obj);\n checkPhaseOffset(obj, diagram);\n checkLaneSize(obj);\n}\n/**\n * addChildToLane method \\\n *\n * @returns {void} addChildToLane method .\\\n * @param {Container} canvas - provide the row value.\n * @param {NodeModel} node - provide the row value.\n * @param {Diagram} diagram - provide the row value.\n * @private\n */\nfunction addChildToLane(canvas, node, diagram) {\n canvas.measure(new Size(node.width, node.height));\n canvas.arrange(canvas.desiredSize);\n var parent = diagram.getObject(node.parentId);\n diagram.addChild(parent, node.id);\n}\n/**\n * updateChildOuterBounds method \\\n *\n * @returns {void} updateChildOuterBounds method .\\\n * @param {GridPanel} grid - provide the row value.\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function updateChildOuterBounds(grid, obj) {\n var columnDefinitions = grid.columnDefinitions();\n var rowDefinitions = grid.rowDefinitions();\n var i;\n var k;\n var j;\n var cell;\n var child;\n var row;\n var rowIndex = findStartLaneIndex(obj);\n if (obj.shape.orientation === 'Vertical') {\n if (rowIndex === 0) {\n rowIndex = (obj.shape.header && obj.shape.hasHeader) ? 1 : 0;\n }\n }\n var padding = obj.shape.padding;\n for (i = 0; i < columnDefinitions.length; i++) {\n grid.updateColumnWidth(i, columnDefinitions[parseInt(i.toString(), 10)].width, true, padding);\n }\n for (i = rowIndex; i < rowDefinitions.length; i++) {\n grid.updateRowHeight(i, rowDefinitions[parseInt(i.toString(), 10)].height, true, padding);\n }\n for (k = 0; k < rowDefinitions.length; k++) {\n row = grid.rows[parseInt(k.toString(), 10)];\n for (i = 0; i < columnDefinitions.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell.children && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n if (child.maxWidth) {\n child.maxWidth = cell.actualSize.width;\n }\n if (child.maxHeight) {\n child.maxHeight = cell.actualSize.height;\n }\n }\n }\n }\n }\n}\n/**\n * checkLaneSize method \\\n *\n * @returns {void} checkLaneSize method .\\\n * @param {NodeModel} obj - provide the row value.\n * @private\n */\nexport function checkLaneSize(obj) {\n if (obj.shape.type === 'SwimLane' && !obj.shape.isLane && !obj.shape.isPhase) {\n // 910832 - Lane height updating to negative values wrongly during resizing\n var lane = void 0;\n var i = void 0;\n var j = void 0;\n var k = void 0;\n var size = void 0; //let laneCount: number = 0;\n var lanes = obj.shape.lanes;\n var laneIndex = findStartLaneIndex(obj);\n var rows = obj.wrapper.children[0].rowDefinitions();\n var columns = obj.wrapper.children[0].columnDefinitions();\n var widthSize = void 0;\n var heightSize = void 0;\n for (i = 0; i < lanes.length; i++, laneIndex++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (obj.shape.orientation === 'Horizontal') {\n size = rows[parseInt(laneIndex.toString(), 10)].height;\n if (lane.height !== size) {\n lane.height = size;\n }\n for (j = 0; j < columns.length; j++) {\n widthSize = columns[parseInt(j.toString(), 10)].width;\n if (lane.width !== widthSize) {\n lane.width = widthSize;\n }\n }\n }\n else {\n size = columns[parseInt(laneIndex.toString(), 10)].width;\n if (lane.width !== size) {\n lane.width = size;\n }\n for (k = 0; k < rows.length; k++) {\n heightSize = rows[parseInt(k.toString(), 10)].height;\n if (lane.height !== heightSize) {\n lane.height = heightSize;\n }\n }\n }\n }\n }\n}\n/**\n * checkPhaseOffset method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {NodeModel} obj - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function checkPhaseOffset(obj, diagram) {\n var shape = obj.shape;\n var phases = shape.phases;\n var i;\n var offset;\n var phaseRow;\n var phase;\n var gridRowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n var grid = obj.wrapper.children[0];\n var top = grid.bounds.y + ((shape.header && shape.hasHeader) ? shape.header.height : 0);\n if (obj.shape.type === 'SwimLane') {\n obj = diagram.getObject(obj.id) || obj;\n if (phases.length > 0) {\n grid = obj.wrapper.children[0];\n if (shape.orientation === 'Horizontal') {\n phaseRow = (shape.header && shape.hasHeader) ? grid.rows[1] : grid.rows[0];\n for (i = 0; i < phases.length; i++) {\n phase = phaseRow.cells[parseInt(i.toString(), 10)].children[0];\n offset = phase.bounds.right - grid.bounds.x;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n else {\n for (i = 0; i < phases.length; i++) {\n phase = grid.rows[gridRowIndex + i].cells[0].children[0];\n offset = phase.bounds.bottom - top;\n if (phases[parseInt(i.toString(), 10)].offset !== offset) {\n phases[parseInt(i.toString(), 10)].offset = offset;\n }\n diagram.nameTable[phase.id].maxWidth = phase.maxWidth;\n }\n }\n }\n }\n}\n/**\n * updateConnectorsProperties method \\\n *\n * @returns {void} checkPhaseOffset method .\\\n * @param {string[]} connectors - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @private\n */\nexport function updateConnectorsProperties(connectors, diagram) {\n if (connectors && connectors.length > 0) {\n var edges = void 0;\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting)) {\n diagram.lineRoutingModule.renderVirtualRegion(diagram, true);\n }\n for (var i = 0; i < connectors.length; i++) {\n edges = diagram.getObject(connectors[parseInt(i.toString(), 10)]);\n if (diagram.lineRoutingModule && (diagram.constraints & DiagramConstraints.LineRouting) && edges.type === 'Orthogonal') {\n diagram.lineRoutingModule.refreshConnectorSegments(diagram, edges, true);\n }\n else {\n diagram.connectorPropertyChange(edges, {}, {\n sourceID: edges.sourceID, targetID: edges.targetID\n });\n }\n }\n }\n}\n/**\n * laneInterChanged method \\\n *\n * @returns {void} laneInterChanged method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the obj value.\n * @param {NodeModel} target - provide the target value.\n * @param {PointModel} position - provide the position value.\n * @private\n */\nexport function laneInterChanged(diagram, obj, target, position) {\n var index;\n var undoElement;\n var entry;\n var redoElement;\n var sourceIndex;\n var targetIndex;\n var temp;\n var sourceLaneIndex;\n var targetLaneIndex;\n var rowIndex;\n var swimLane = (diagram.getObject(obj.parentId));\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var lanes = shape.lanes;\n var connectors = getConnectors(diagram, grid, obj.rowIndex, true);\n if ((shape.orientation === 'Horizontal' && obj.rowIndex !== target.rowIndex) ||\n (shape.orientation === 'Vertical' && obj.columnIndex !== target.columnIndex)) {\n if (shape.orientation === 'Horizontal') {\n sourceIndex = obj.rowIndex;\n targetIndex = target.rowIndex;\n index = ((shape.header && shape.hasHeader) ? 1 : 0) + (shape.phases.length && shape.phaseSize ? 1 : 0);\n sourceLaneIndex = obj.rowIndex - index;\n targetLaneIndex = target.rowIndex - index;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetY > position.y) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetY < position.y) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n grid.updateRowIndex(sourceIndex, targetIndex);\n }\n }\n }\n else {\n sourceIndex = obj.columnIndex;\n targetIndex = target.columnIndex;\n index = (shape.phases.length && shape.phaseSize) ? 1 : 0;\n sourceLaneIndex = obj.columnIndex - index;\n targetLaneIndex = target.columnIndex - index;\n rowIndex = (shape.header && shape.hasHeader) ? 1 : 0;\n if (lanes[parseInt(sourceLaneIndex.toString(), 10)].canMove) {\n if (sourceLaneIndex < targetLaneIndex) {\n if (position && target.wrapper.offsetX > position.x) {\n targetIndex += (targetLaneIndex > 0) ? -1 : 1;\n targetLaneIndex += (targetLaneIndex > 0) ? -1 : 1;\n }\n }\n else {\n if (position && target.wrapper.offsetX < position.x) {\n targetIndex += 1;\n targetLaneIndex += 1;\n }\n }\n if (sourceIndex !== targetIndex) {\n if ((shape.phaseSize === 0 || shape.phases.length === 0) && (targetIndex === 0 || sourceIndex === 0)) {\n if (shape.header && shape.hasHeader) {\n var changeHeaderIndex = (targetIndex === 0) ? sourceIndex : targetIndex;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[parseInt(changeHeaderIndex.toString(), 10)].columnSpan = grid.rows[0].cells[0].columnSpan;\n grid.rows[0].cells[0].children = [];\n }\n }\n grid.updateColumnIndex(0, sourceIndex, targetIndex);\n }\n }\n }\n if (sourceIndex !== targetIndex) {\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n if (temp.canMove) {\n undoElement = {\n target: cloneObject(target), source: cloneObject(obj)\n };\n temp = lanes[parseInt(sourceLaneIndex.toString(), 10)];\n lanes.splice(sourceLaneIndex, 1);\n lanes.splice(targetLaneIndex, 0, temp);\n redoElement = {\n target: cloneObject(undoElement.source), source: cloneObject(undoElement.target)\n };\n entry = {\n type: 'LanePositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.commandHandler.addHistoryEntry(entry);\n }\n ChangeLaneIndex(diagram, swimLane, 0);\n updateConnectorsProperties(connectors, diagram);\n updateSwimLaneChildPosition(lanes, diagram);\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n diagram.updateDiagramElementQuad();\n}\n/**\n * updateSwimLaneObject method \\\n *\n * @returns {void} updateSwimLaneObject method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} obj - provide the obj value.\n * @param {NodeModel} swimLane - provide the target value.\n * @param {NodeModel} helperObject - provide the position value.\n * @private\n */\nexport function updateSwimLaneObject(diagram, obj, swimLane, helperObject) {\n var parentNode = diagram.getObject(swimLane.id);\n var shape = parentNode.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var lanes = shape.lanes;\n var phases = shape.phases;\n var helperWidth = helperObject.wrapper.actualSize.width;\n var helperHeight = helperObject.wrapper.actualSize.height;\n var objWidth = obj.wrapper.actualSize.width;\n var objHeight = obj.wrapper.actualSize.height;\n var i;\n var j;\n // 910832 - Lane height updating to negative values wrongly during resizing\n if (parentNode.shape.type === 'SwimLane') {\n if (shape.orientation === 'Horizontal') {\n if (obj.isPhase) {\n phases[obj.columnIndex].offset = obj.wrapper.width;\n for (i = 0; i < lanes.length; i++) {\n lanes[parseInt(i.toString(), 10)].width = obj.wrapper.width;\n }\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? index + 1 : index;\n lanes[(obj.rowIndex - index)].height = obj.wrapper.height;\n }\n }\n else {\n if (obj.isPhase) {\n phases[(obj.rowIndex - index)].offset = obj.wrapper.height;\n for (j = 0; j < lanes.length; j++) {\n lanes[parseInt(j.toString(), 10)].height = obj.wrapper.height;\n }\n }\n else {\n index = (shape.phaseSize && shape.phases.length > 0) ? 1 : 0;\n lanes[(obj.columnIndex - index)].width = obj.wrapper.width;\n }\n }\n }\n}\n/**\n * findLaneIndex method \\\n *\n * @returns {number} findLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @param {NodeModel} laneObj - provide the obj value.\n * @private\n */\nexport function findLaneIndex(swimLane, laneObj) {\n var laneIndex;\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n index += shape.phases.length > 0 ? 1 : 0;\n laneIndex = laneObj.rowIndex - index;\n }\n else {\n laneIndex = laneObj.columnIndex - (shape.phaseSize && shape.phases.length > 0 ? 1 : 0);\n }\n return laneIndex;\n}\n/**\n * findPhaseIndex method \\\n *\n * @returns {number} findPhaseIndex method .\\\n * @param {NodeModel} phase - provide the diagram value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findPhaseIndex(phase, swimLane) {\n var shape = swimLane.shape;\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n var phaseIndex = (shape.orientation === 'Horizontal') ? phase.columnIndex : phase.rowIndex - index;\n return phaseIndex;\n}\n/**\n * findStartLaneIndex method \\\n *\n * @returns {number} findStartLaneIndex method .\\\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function findStartLaneIndex(swimLane) {\n var index = 0;\n var shape = swimLane.shape;\n if (shape.orientation === 'Horizontal') {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n }\n if (shape.phases.length > 0 && shape.phaseSize) {\n index += 1;\n }\n return index;\n}\n/**\n * updatePhaseMaxWidth method \\\n *\n * @returns {void} updatePhaseMaxWidth method .\\\n * @param {NodeModel} parent - provide the obj value.\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} wrapper - provide the obj value.\n * @param {number} columnIndex - provide the obj value.\n * @private\n */\nexport function updatePhaseMaxWidth(parent, diagram, wrapper, columnIndex) {\n var shape = parent.shape;\n if (shape.phases.length > 0) {\n var node = diagram.nameTable[shape.phases[parseInt(columnIndex.toString(), 10)].header.id];\n if (node && node.maxWidth < wrapper.outerBounds.width) {\n node.maxWidth = wrapper.outerBounds.width;\n node.wrapper.maxWidth = wrapper.outerBounds.width;\n }\n }\n}\n/**\n * updateHeaderMaxWidth method \\\n *\n * @returns {void} updateHeaderMaxWidth method .\\\n * @param {NodeModel} diagram - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @private\n */\nexport function updateHeaderMaxWidth(diagram, swimLane) {\n if (swimLane.shape.header && swimLane.shape.hasHeader) {\n var grid = swimLane.wrapper.children[0];\n var id = grid.rows[0].cells[0].children[0].id;\n var headerNode = diagram.nameTable[\"\" + id];\n if (headerNode && headerNode.isHeader && (headerNode.maxWidth < swimLane.width || headerNode.wrapper.maxWidth < swimLane.width)) {\n headerNode.maxWidth = swimLane.width;\n headerNode.wrapper.maxWidth = swimLane.width;\n }\n }\n}\n/**\n * addLane method \\\n *\n * @returns {void} addLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} parent - provide the obj value.\n * @param {LaneModel} lane - provide the obj value.\n * @param {number} count - provide the obj value.\n * @private\n */\nexport function addLane(diagram, parent, lane, count) {\n var args;\n var swimLane = diagram.nameTable[parent.id];\n if (swimLane.shape.type === 'SwimLane') {\n diagram.protectPropertyChange(true);\n var grid = swimLane.wrapper.children[0];\n var bounds = grid.bounds;\n var shape = swimLane.shape;\n var redoObj = void 0;\n var orientation_1 = false;\n var entry = void 0;\n var index = void 0;\n var children = void 0;\n var j = void 0;\n var i = void 0;\n var c = void 0;\n var cell = void 0;\n var child = void 0;\n var point = void 0;\n var laneObj = new Lane(shape, 'lanes', lane, true);\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n if (shape.orientation === 'Horizontal') {\n orientation_1 = true;\n index = shape.phases.length > 0 ? index + 1 : index;\n }\n var connectors = getConnectors(diagram, grid, 0, true);\n var laneIndex = (count !== undefined) ? count : shape.lanes.length;\n index += laneIndex;\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = lane.height;\n grid.addRow(index, rowDef, false);\n swimLane.height = (swimLane.height !== undefined) ? swimLane.height + lane.height : swimLane.height;\n swimLane.wrapper.height = grid.height = swimLane.height;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = lane.width;\n grid.addColumn(laneIndex + 1, colDef, false);\n if (swimLane.width) {\n swimLane.width += lane.width;\n swimLane.wrapper.width = grid.width = swimLane.width;\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n grid.rows[0].cells[0].columnSpan += 1;\n }\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n laneObj.id = (laneObj.id === '') ? randomId() : laneObj.id;\n }\n if (count !== undefined) {\n shape.lanes.splice(count, 0, laneObj);\n }\n else {\n shape.lanes.push(laneObj);\n }\n args = {\n element: laneObj, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Addition', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n laneCollection(grid, diagram, swimLane, index, laneIndex, orientation_1);\n redoObj = (shape.orientation === 'Horizontal') ?\n diagram.nameTable[grid.rows[parseInt(index.toString(), 10)].cells[0].children[0].id] :\n ((shape.header && shape.hasHeader) ?\n diagram.nameTable[grid.rows[1].cells[parseInt(index.toString(), 10)].children[0].id] :\n diagram.nameTable[grid.rows[0].cells[parseInt(index.toString(), 10)].children[0].id]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n entry = {\n type: 'LaneCollectionChanged', changeType: 'Insert', undoObject: cloneObject(laneObj),\n redoObject: cloneObject(redoObj), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n var startRowIndex = (shape.orientation === 'Horizontal') ?\n index : ((shape.header && shape.hasHeader) ? 1 : 0);\n ChangeLaneIndex(diagram, swimLane, startRowIndex);\n swimLaneMeasureAndArrange(swimLane);\n updateHeaderMaxWidth(diagram, swimLane);\n children = lane.children;\n var childAdded = false;\n if (children && children.length > 0) {\n for (j = 0; j < children.length; j++) {\n childAdded = false;\n child = children[parseInt(j.toString(), 10)];\n point = { x: child.wrapper.offsetX, y: child.wrapper.offsetY };\n var padding = { left: 0, right: 0, top: 0, bottom: 0 };\n if (shape.orientation === 'Horizontal') {\n padding.bottom = bounds.y - grid.bounds.y;\n //839579 - swimlane delete Lane and perform undo redo issue\n cell = grid.rows[parseInt(index.toString(), 10)].cells[parseInt(j.toString(), 10)];\n for (i = 0; i < grid.rows[parseInt(index.toString(), 10)].cells.length; i++) {\n addChildNodeToNewLane(diagram, grid.rows[parseInt(index.toString(), 10)].cells[parseInt(i.toString(), 10)], point, child, padding);\n }\n }\n else {\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n // To iterate the lane and check whether the child node is inside the vertical lane. If so then we cut the loop.\n // eslint-disable-next-line no-labels\n childAddBreak: for (var r = 0; r <= grid.rows.length; r++) {\n for (c = 0; c < grid.rows[parseInt(r.toString(), 10)].cells.length; c++) {\n //Padding to compensate the original position of swimlane before drag.\n padding.right = bounds.x - grid.bounds.x;\n cell = grid.rows[parseInt(r.toString(), 10)].cells[parseInt(c.toString(), 10)];\n childAdded = addChildNodeToNewLane(diagram, cell, point, child, padding);\n if (childAdded) {\n // eslint-disable-next-line no-labels\n break childAddBreak;\n }\n }\n }\n }\n }\n }\n updateConnectorsProperties(connectors, diagram);\n diagram.drag(swimLane, bounds.x - grid.bounds.x, bounds.y - grid.bounds.y);\n }\n diagram.protectPropertyChange(false);\n }\n}\n/**\n * addChildNodeToNewLane method \\\n *\n * @returns {void} addChildNodeToNewLane method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} cell - provide the cell value.\n * @param {PointModel} point - provide the point value.\n * @param {NodeModel} child - provide the child value.\n * @param {MarginModel | number} padding - provide the padding value.\n * @private\n */\nfunction addChildNodeToNewLane(diagram, cell, point, child, padding) {\n var childAdded = false;\n if (cell.children && cell.children.length > 0) {\n var canvas = cell.children[0];\n var parent_1 = diagram.nameTable[canvas.id];\n if (containsChildPoint(canvas.bounds, point, padding)) {\n diagram.addChild(parent_1, child);\n childAdded = true;\n }\n }\n return childAdded;\n}\n/**\n * containsChildPoint method \\\n *\n * @returns {boolean} containsChildPoint method .\\\n * @param {Rect} bounds - provide the bounds value.\n * @param {PointModel} point - provide the point value.\n * @param {MarginModel} padding - provide the padding value.\n * @private\n */\nfunction containsChildPoint(bounds, point, padding) {\n var leftPadding = padding.left || 0;\n var rightPadding = padding.right || 0;\n var topPadding = padding.top || 0;\n var bottomPadding = padding.bottom || 0;\n return bounds.left - leftPadding <= point.x && bounds.right + rightPadding >= point.x\n && bounds.top - topPadding <= point.y && bounds.bottom + bottomPadding >= point.y;\n}\n/**\n * addPhase method \\\n *\n * @returns {void} addPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {PhaseModel} newPhase - provide the point value.\n * @private\n */\nexport function addPhase(diagram, parent, newPhase) {\n if (parent.shape.type === 'SwimLane') {\n var gridRowIndex = void 0;\n var gridColIndex = void 0;\n var phaseNode = void 0;\n var phase = void 0;\n var previousPhase = void 0;\n var nextPhase = void 0;\n var phaseIndex = void 0;\n var i = void 0;\n var x = parent.wrapper.bounds.x;\n var y = parent.wrapper.bounds.y;\n var shape = parent.shape;\n var padding = shape.padding;\n var phasesCollection = shape.phases;\n var width = void 0;\n var grid = parent.wrapper.children[0];\n var orientation_2 = shape.orientation === 'Horizontal' ? true : false;\n gridRowIndex = (shape.header && shape.hasHeader) ? 0 : -1;\n if (shape.phases.length > 0) {\n gridRowIndex += 1;\n gridColIndex = 0;\n }\n var laneHeaderSize = (orientation_2) ? shape.lanes[0].header.width : shape.lanes[0].header.height;\n if (newPhase.offset > laneHeaderSize) {\n for (i = 0; i < phasesCollection.length; i++) {\n phase = phasesCollection[parseInt(i.toString(), 10)];\n previousPhase = (i > 0) ? phasesCollection[i - 1] : phase;\n if (phase.offset > newPhase.offset) {\n width = (i > 0) ? newPhase.offset - previousPhase.offset : newPhase.offset;\n if (orientation_2) {\n var nextCol = grid.columnDefinitions()[parseInt(i.toString(), 10)];\n nextCol.width -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n nextPhase.maxWidth = nextPhase.wrapper.maxWidth = nextCol.width;\n grid.updateColumnWidth(i, nextCol.width, false);\n var addPhase_1 = new ColumnDefinition();\n addPhase_1.width = width;\n phaseIndex = i;\n grid.addColumn(i, addPhase_1, false);\n break;\n }\n else {\n var nextRow = grid.rowDefinitions()[i + gridRowIndex];\n nextRow.height -= width;\n nextPhase = diagram.nameTable[shape.phases[parseInt(i.toString(), 10)].header.id];\n grid.updateRowHeight(i + gridRowIndex, nextRow.height, false);\n var addPhase_2 = new RowDefinition();\n addPhase_2.height = width;\n phaseIndex = i;\n grid.addRow(i + gridRowIndex, addPhase_2, false);\n break;\n }\n }\n }\n if (diagram.diagramActions & DiagramAction.UndoRedo && phaseIndex === undefined) {\n var entry = diagram.historyManager.currentEntry.next;\n if (entry.isLastPhase) {\n phaseIndex = phasesCollection.length;\n addLastPhase(phaseIndex, parent, entry, grid, orientation_2, newPhase);\n }\n }\n //897967: Exception throws while perform addPhase with offset higher than existing phases offset\n if (phaseIndex >= 0) {\n var phaseObj = new Phase((parent.shape), 'phases', newPhase, true);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n phaseObj.id += randomId();\n }\n shape.phases.splice(phaseIndex, 0, phaseObj);\n phaseDefine(grid, diagram, parent, gridRowIndex, orientation_2, phaseIndex);\n if (orientation_2) {\n phaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[parseInt(phaseIndex.toString(), 10)].children[0].id];\n if (phaseIndex === 0 && shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n var fristRow = grid.rows[0];\n for (var i_2 = 0; i_2 < fristRow.cells.length; i_2++) {\n fristRow.cells[parseInt(i_2.toString(), 10)].minWidth = undefined;\n if (i_2 === 0) {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = grid.rows[0].cells.length;\n }\n else {\n fristRow.cells[parseInt(i_2.toString(), 10)].columnSpan = 1;\n }\n }\n }\n addHorizontalPhase(diagram, parent, grid, phaseIndex, orientation_2);\n var col = grid.columnDefinitions();\n grid.updateColumnWidth(phaseIndex, col[parseInt(phaseIndex.toString(), 10)].width, true, padding);\n phaseNode.maxWidth = phaseNode.wrapper.maxWidth = col[parseInt(phaseIndex.toString(), 10)].width;\n if (col.length > phaseIndex + 1) {\n var nextPhaseNode = diagram.nameTable[grid.rows[parseInt(gridRowIndex.toString(), 10)].cells[phaseIndex + 1].children[0].id];\n grid.updateColumnWidth(phaseIndex + 1, col[phaseIndex + 1].width, true, padding);\n nextPhaseNode.maxWidth = nextPhaseNode.wrapper.maxWidth = col[phaseIndex + 1].width;\n }\n parent.width = parent.wrapper.width = parent.wrapper.children[0].width = grid.width;\n }\n else {\n phaseNode = diagram.nameTable[grid.rows[gridRowIndex + phaseIndex].cells[0].children[0].id];\n var row = grid.rowDefinitions();\n var size = row[gridRowIndex + phaseIndex].height;\n addVerticalPhase(diagram, parent, grid, gridRowIndex + phaseIndex, orientation_2);\n grid.updateRowHeight(gridRowIndex + phaseIndex, size, true, padding);\n if (row.length > gridRowIndex + phaseIndex + 1) {\n size = row[gridRowIndex + phaseIndex + 1].height;\n grid.updateRowHeight(gridRowIndex + phaseIndex + 1, size, true, padding);\n }\n parent.height = parent.wrapper.height = parent.wrapper.children[0].height = grid.actualSize.height;\n }\n swimLaneMeasureAndArrange(parent);\n parent.width = parent.wrapper.actualSize.width;\n updateHeaderMaxWidth(diagram, parent);\n diagram.drag(parent, x - parent.wrapper.bounds.x, y - parent.wrapper.bounds.y);\n checkPhaseOffset(parent, diagram);\n //911372-Lane Selector not updated after adding new phase at runtime\n diagram.commandHandler.select(phaseNode);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Insert', undoObject: cloneObject(phaseObj),\n redoObject: cloneObject(phaseNode), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n diagram.updateDiagramObject(parent);\n }\n }\n }\n}\n/**\n * addLastPhase method \\\n *\n * @returns {void} addLastPhase method .\\\n * @param {number} phaseIndex - provide the diagram value.\n * @param {NodeModel} parent - provide the cell value.\n * @param {HistoryEntry} entry - provide the point value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {PhaseModel} newPhase - provide the newPhase value.\n * @private\n */\nexport function addLastPhase(phaseIndex, parent, entry, grid, orientation, newPhase) {\n var shape = parent.shape;\n var prevPhase = shape.phases[phaseIndex - 2];\n var prevOffset = entry.previousPhase.offset;\n if (orientation) {\n var nextCol = grid.columnDefinitions()[phaseIndex - 1];\n var addPhase_3 = new ColumnDefinition();\n if (phaseIndex > 1) {\n addPhase_3.width = (nextCol.width) - (prevOffset - prevPhase.offset);\n nextCol.width = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_3.width = nextCol.width - prevOffset;\n nextCol.width = prevOffset;\n }\n grid.updateColumnWidth(phaseIndex - 1, nextCol.width, false);\n grid.addColumn(phaseIndex, addPhase_3, false);\n }\n else {\n var nextCol = grid.rowDefinitions()[parseInt(phaseIndex.toString(), 10)];\n var addPhase_4 = new RowDefinition();\n if (phaseIndex > 1) {\n addPhase_4.height = entry.undoObject.offset - prevOffset;\n nextCol.height = prevOffset - prevPhase.offset;\n }\n else {\n addPhase_4.height = nextCol.height - prevOffset;\n nextCol.height = prevOffset;\n }\n grid.updateRowHeight(phaseIndex, nextCol.height, false);\n grid.addRow(1 + phaseIndex, addPhase_4, false);\n }\n}\n/**\n * addHorizontalPhase method \\\n *\n * @returns {void} addHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} index - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addHorizontalPhase(diagram, node, grid, index, orientation) {\n var shape = node.shape;\n var nextCell;\n var i;\n var prevCell;\n var gridCell;\n var row;\n var laneIndex = findStartLaneIndex(node);\n if (shape.header && shape.hasHeader) {\n grid.rows[0].cells[0].columnSpan = grid.rows[0].cells.length;\n }\n for (i = laneIndex; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n prevCell = row.cells[index - 1];\n gridCell = row.cells[parseInt(index.toString(), 10)];\n nextCell = row.cells[index + 1];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, i, index);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addVerticalPhase method \\\n *\n * @returns {void} addVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the cell value.\n * @param {GridPanel} grid - provide the point value.\n * @param {number} rowIndex - provide the point value.\n * @param {boolean} orientation - provide the point value.\n * @private\n */\nexport function addVerticalPhase(diagram, node, grid, rowIndex, orientation) {\n var prevCell;\n var gridCell;\n var nextCell;\n var row = grid.rows[parseInt(rowIndex.toString(), 10)];\n var nextRow = grid.rows[rowIndex + 1];\n var prevRow = grid.rows[rowIndex - 1];\n for (var i = 1; i < row.cells.length; i++) {\n gridCell = row.cells[parseInt(i.toString(), 10)];\n nextCell = (nextRow) ? nextRow.cells[parseInt(i.toString(), 10)] : undefined;\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, i);\n }\n ChangeLaneIndex(diagram, node, 1);\n}\n/**\n * addSwimlanePhases method \\\n *\n * @returns {void} addSwimlanePhases method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {GridPanel} prevCell - provide the prevCell value.\n * @param {number} gridCell - provide the gridCell value.\n * @param {boolean} nextCell - provide the nextCell value.\n * @param {boolean} rowIndex - provide the rowIndex value.\n * @param {boolean} columnIndex - provide the columnIndex value.\n * @private\n */\nfunction addSwimlanePhases(diagram, node, prevCell, gridCell, nextCell, rowIndex, columnIndex) {\n var x;\n var y;\n var shape = node.shape;\n var orientation = shape.orientation === 'Horizontal' ? true : false;\n var grid = node.wrapper.children[0];\n var width = gridCell.desiredCellWidth;\n var height = gridCell.desiredCellHeight;\n //const col: number = (orientation) ? rowIndex : columnIndex;\n //let parentWrapper: Container;\n var j;\n var i = (orientation) ? rowIndex : columnIndex;\n if (prevCell) {\n x = orientation ? prevCell.bounds.x + prevCell.bounds.width : prevCell.bounds.x;\n y = orientation ? prevCell.bounds.y : prevCell.bounds.y + prevCell.bounds.height;\n }\n else {\n x = grid.bounds.x;\n y = nextCell.bounds.y;\n }\n var rect = new Rect(x, y, width, height);\n var canvas = {\n id: node.id + ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).id + randomId()[0],\n rowIndex: rowIndex, columnIndex: columnIndex,\n width: gridCell.minWidth, height: gridCell.minHeight,\n style: ((orientation) ? shape.lanes[i - 2] : shape.lanes[i - 1]).style,\n constraints: NodeConstraints.Default | NodeConstraints.AllowDrop,\n container: { type: 'Canvas', orientation: orientation ? 'Horizontal' : 'Vertical' }\n };\n var parentWrapper = addObjectToGrid(diagram, grid, node, canvas, false, false, true);\n parentWrapper.children[0].isCalculateDesiredSize = false;\n grid.addObject(parentWrapper, rowIndex, columnIndex);\n if (nextCell && nextCell.children && nextCell.children.length) {\n for (j = 0; j < nextCell.children.length; j++) {\n if (orientation) {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].columnIndex += 1;\n }\n else {\n diagram.nameTable[nextCell.children[parseInt(j.toString(), 10)].id].rowIndex += 1;\n }\n }\n }\n arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell);\n}\n/**\n * arrangeChildInGrid method \\\n *\n * @returns {void} arrangeChildInGrid method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridCell} nextCell - provide the nextCell value.\n * @param {GridPanel} gridCell - provide the gridCell value.\n * @param {Rect} rect - provide the rect value.\n * @param {Container} parentWrapper - provide the parentWrapper value.\n * @param {boolean} orientation - provide the orientation value.\n * @param {GridCell} prevCell - provide the prevCell value.\n * @private\n */\nexport function arrangeChildInGrid(diagram, nextCell, gridCell, rect, parentWrapper, orientation, prevCell) {\n var child;\n var point;\n var childNode;\n var parent = diagram.nameTable[parentWrapper.id];\n var changeCell = (!nextCell) ? prevCell : nextCell;\n var swimLane = diagram.nameTable[parent.parentId];\n var padding = swimLane.shape.padding;\n if (changeCell.children && changeCell.children[0].children.length > 1) {\n for (var j = 1; j < changeCell.children[0].children.length; j++) {\n child = changeCell.children[0].children[parseInt(j.toString(), 10)];\n childNode = diagram.nameTable[child.id];\n point = (orientation) ? { x: child.bounds.x, y: child.bounds.center.y } :\n { x: child.bounds.center.x, y: child.bounds.top };\n if (rect.containsPoint(point)) {\n gridCell.children[0].children.push(child);\n changeCell.children[0].children.splice(j, 1);\n j--;\n diagram.deleteChild(childNode, undefined, true);\n if (!childNode.isLane) {\n childNode.parentId = parentWrapper.id;\n }\n if (!parent.children) {\n parent.children = [];\n }\n if (!nextCell) {\n if (orientation) {\n childNode.margin.left = childNode.wrapper.bounds.x - changeCell.children[0].bounds.right;\n }\n else {\n childNode.margin.top = childNode.wrapper.bounds.y - changeCell.children[0].bounds.bottom;\n }\n }\n parent.children.push(child.id);\n childNode.zIndex = parent.zIndex + 1;\n diagram.removeElements(childNode);\n }\n else if (nextCell) {\n if (orientation) {\n childNode.margin.left -= gridCell.desiredCellWidth;\n if (padding > childNode.margin.left) {\n childNode.margin.left = padding;\n }\n }\n else {\n childNode.margin.top -= gridCell.desiredCellHeight;\n if (padding > childNode.margin.top) {\n childNode.margin.top = padding;\n }\n }\n }\n }\n }\n}\n/**\n * swimLaneSelection method \\\n *\n * @returns {void} swimLaneSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the node value.\n * @param {string} corner - provide the corner value.\n * @private\n */\nexport function swimLaneSelection(diagram, node, corner) {\n if (node.shape.type === 'SwimLane' && (corner === 'ResizeSouth' || corner === 'ResizeEast')) {\n var shape = node.shape;\n var wrapper = node.wrapper.children[0];\n var child = void 0;\n var index = void 0;\n if (corner === 'ResizeSouth') {\n if (shape.orientation === 'Vertical') {\n child = wrapper.rows[wrapper.rows.length - 1].cells[0];\n }\n else {\n index = wrapper.rows.length - 1;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n }\n else {\n index = (shape.header && shape.hasHeader) ? 1 : 0;\n child = wrapper.rows[parseInt(index.toString(), 10)].cells[wrapper.rows[parseInt(index.toString(), 10)].cells.length - 1];\n }\n diagram.commandHandler.select(diagram.nameTable[child.children[0].id]);\n }\n}\n/**\n * pasteSwimLane method \\\n *\n * @returns {void} pasteSwimLane method .\\\n * @param {Diagram} swimLane - provide the diagram value.\n * @param {NodeModel} diagram - provide the diagram value.\n * @param {string} clipboardData - provide the clipboardData value.\n * @param {string} laneNode - provide the laneNode value.\n * @param {string} isLane - provide the isLane value.\n * @param {string} isUndo - provide the isUndo value.\n * @private\n */\nexport function pasteSwimLane(swimLane, diagram, clipboardData, laneNode, isLane, isUndo) {\n var i;\n var j;\n var lane;\n var phase;\n var node;\n var ranId = randomId();\n var cloneLane;\n var childX;\n var childY;\n var shape = swimLane.shape; //let lanes: LaneModel[];\n var phases = shape.phases;\n var nodeX = swimLane.offsetX - swimLane.wrapper.actualSize.width / 2;\n var nodeY = swimLane.offsetY - swimLane.wrapper.actualSize.height / 2;\n if (shape.orientation === 'Vertical') {\n nodeY += (shape.header && shape.hasHeader) ? shape.header.height : 0;\n }\n if (!isUndo) {\n if (!isLane) {\n swimLane.id += ranId;\n if (shape && shape.header && shape.hasHeader) {\n shape.header.id += ranId;\n }\n else {\n shape.header = undefined;\n }\n }\n for (i = 0; phases && i < phases.length; i++) {\n phase = phases[parseInt(i.toString(), 10)];\n phase.id += ranId;\n }\n }\n var lanes = (isLane) ? [clipboardData.childTable[laneNode.id]] : shape.lanes;\n for (i = 0; lanes && i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (!isUndo) {\n lane.id += ranId;\n }\n for (j = 0; lane.children && j < lane.children.length; j++) {\n node = lane.children[parseInt(j.toString(), 10)];\n childX = node.wrapper.offsetX - node.width / 2;\n childY = node.wrapper.offsetY - node.height / 2;\n node.zIndex = Number.MIN_VALUE;\n node.inEdges = node.outEdges = [];\n if (isUndo || (clipboardData && (clipboardData.pasteIndex === 1 || clipboardData.pasteIndex === 0))) {\n if (shape.orientation === 'Vertical') {\n node.margin.top = childY - nodeY;\n }\n else {\n node.margin.left = childX - nodeX;\n }\n }\n if (!isUndo) {\n node.id += ranId;\n }\n }\n }\n if (!isUndo) {\n if (isLane) {\n var newShape = {\n lanes: lanes,\n phases: phases, phaseSize: shape.phaseSize,\n type: 'SwimLane', orientation: shape.orientation,\n header: { annotation: { content: 'Title' }, height: 50 }\n };\n cloneLane = { shape: newShape };\n if (shape.orientation === 'Horizontal') {\n cloneLane.width = swimLane.wrapper.actualSize.width;\n cloneLane.height = laneNode.wrapper.actualSize.height + shape.header.height + shape.phaseSize;\n cloneLane.offsetX = swimLane.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = laneNode.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n else {\n cloneLane.width = laneNode.wrapper.actualSize.width;\n cloneLane.height = swimLane.wrapper.actualSize.height;\n cloneLane.offsetX = laneNode.wrapper.offsetX + (clipboardData.pasteIndex * 10);\n cloneLane.offsetY = swimLane.wrapper.offsetY + (clipboardData.pasteIndex * 10);\n }\n swimLane = cloneLane;\n }\n if (clipboardData.pasteIndex !== 0) {\n swimLane.offsetX += 10;\n swimLane.offsetY += 10;\n }\n swimLane.zIndex = Number.MIN_VALUE;\n swimLane = diagram.add(swimLane);\n if (!isLane) {\n for (var _i = 0, _a = Object.keys(clipboardData.childTable); _i < _a.length; _i++) {\n var i_3 = _a[_i];\n var connector = clipboardData.childTable[\"\" + i_3];\n connector.id += ranId;\n connector.sourceID += ranId;\n connector.targetID += ranId;\n connector.zIndex = Number.MIN_VALUE;\n diagram.add(connector);\n }\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n diagram.select([swimLane]);\n }\n return swimLane;\n}\n/**\n * gridSelection method \\\n *\n * @returns {void} gridSelection method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {SelectorModel} selectorModel - provide the selectorModel value.\n * @param {string} id - provide the id value.\n * @param {boolean} isSymbolDrag - provide the isSymbolDrag value.\n * @private\n */\nexport function gridSelection(diagram, selectorModel, id, isSymbolDrag) {\n var canvas;\n var node = selectorModel.nodes[0];\n if (isSymbolDrag || checkParentAsContainer(diagram, node, true)) {\n var targetnode = void 0;\n var bounds = void 0;\n var swimLaneId = void 0;\n var element = new DiagramElement();\n if (id) {\n swimLaneId = (diagram.nameTable[\"\" + id].parentId);\n targetnode = node = diagram.nameTable[\"\" + id];\n }\n var wrapper = !id ? node.wrapper : targetnode.wrapper;\n var parentNode = diagram.nameTable[swimLaneId || node.parentId];\n if (parentNode && parentNode.container.type === 'Grid') {\n canvas = new Canvas();\n canvas.children = [];\n if (isSymbolDrag || !(node.isHeader)) {\n if ((parentNode.container.orientation === 'Horizontal' && node.isPhase) ||\n (parentNode.container.orientation === 'Vertical' &&\n (node.rowIndex > 0 && node.columnIndex > 0 || node.isLane))) {\n bounds = findBounds(parentNode, (targetnode) ? targetnode.columnIndex : node.columnIndex, (parentNode.shape.header && parentNode.shape.hasHeader) ? true : false);\n canvas.offsetX = bounds.center.x;\n canvas.offsetY = bounds.center.y;\n element.width = bounds.width;\n element.height = bounds.height;\n }\n else {\n canvas.offsetX = parentNode.offsetX;\n canvas.offsetY = wrapper.offsetY;\n element.width = parentNode.wrapper.actualSize.width;\n element.height = wrapper.actualSize.height;\n }\n }\n canvas.children.push(element);\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n }\n }\n return canvas;\n}\n/**\n * removeLaneChildNode method \\\n *\n * @returns {void} removeLaneChildNode method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} swimLaneNode - provide the diagram value.\n * @param {NodeModel} currentObj - provide the currentObj value.\n * @param {NodeModel} isChildNode - provide the isChildNode value.\n * @param {number} laneIndex - provide the laneIndex value.\n * @private\n */\nexport function removeLaneChildNode(diagram, swimLaneNode, currentObj, isChildNode, laneIndex) {\n laneIndex = (laneIndex !== undefined) ? laneIndex : findLaneIndex(swimLaneNode, currentObj);\n var preventHistory = false;\n var lanenode = swimLaneNode.shape.lanes[parseInt(laneIndex.toString(), 10)];\n for (var j = lanenode.children.length - 1; j >= 0; j--) {\n if (isChildNode) {\n if (isChildNode.id === lanenode.children[parseInt(j.toString(), 10)].id) {\n lanenode.children.splice(j, 1);\n }\n }\n else {\n diagram.removeDependentConnector(lanenode.children[parseInt(j.toString(), 10)]);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n preventHistory = true;\n }\n diagram.remove(lanenode.children[parseInt(j.toString(), 10)]);\n lanenode.children.splice(j, 1);\n if (preventHistory) {\n diagram.diagramActions = diagram.diagramActions & ~DiagramAction.UndoRedo;\n }\n }\n }\n}\n/**\n * getGridChildren method \\\n *\n * @returns {DiagramElement} getGridChildren method .\\\n * @param {Diagram} obj - provide the obj value.\n * @private\n */\nexport function getGridChildren(obj) {\n var children = obj.children[0];\n return children;\n}\n/**\n * removeSwimLane method \\\n *\n * @returns {void} removeSwimLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} obj - provide the obj value.\n * @private\n */\nexport function removeSwimLane(diagram, obj) {\n var rows = obj.wrapper.children[0].rows;\n //let preventHistory: boolean = false;\n var node;\n var i;\n var j;\n var k;\n var child;\n var removeNode;\n for (i = 0; i < rows.length; i++) {\n for (j = 0; j < rows[parseInt(i.toString(), 10)].cells.length; j++) {\n child = getGridChildren(rows[parseInt(i.toString(), 10)].cells[parseInt(j.toString(), 10)]);\n if (child && child.children) {\n for (k = child.children.length - 1; k >= 0; k--) {\n if (child.children[parseInt(k.toString(), 10)].children) {\n removeNode = diagram.nameTable[child.children[parseInt(k.toString(), 10)].id];\n if (removeNode) {\n if (removeNode.isLane) {\n deleteNode(diagram, removeNode);\n }\n else {\n diagram.removeDependentConnector(removeNode);\n diagram.diagramActions |= DiagramAction.PreventHistory;\n if ((removeNode.constraints & NodeConstraints.Delete)) {\n diagram.remove(removeNode);\n }\n else {\n removeChildInContainer(diagram, removeNode, {}, false);\n }\n diagram.diagramActions &= ~DiagramAction.PreventHistory;\n }\n }\n }\n }\n }\n if (child) {\n node = diagram.nameTable[child.id];\n if (node) {\n deleteNode(diagram, node);\n }\n }\n }\n }\n}\n/**\n * deleteNode method \\\n *\n * @returns {void} deleteNode method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} node - provide the obj value.\n * @private\n */\nfunction deleteNode(diagram, node) {\n if (node) {\n diagram.nodes.splice(diagram.nodes.indexOf(node), 1);\n diagram.removeFromAQuad(node);\n diagram.removeObjectsFromLayer(node);\n delete diagram.nameTable[node.id];\n diagram.removeElements(node);\n }\n}\n/**\n * removeLane method \\\n *\n * @returns {void} removeLane method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} lane - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {LaneModel} lanes - provide the obj value.\n * @private\n */\nexport function removeLane(diagram, lane, swimLane, lanes) {\n var args;\n if (swimLane.shape.type === 'SwimLane') {\n var shape = swimLane.shape;\n var laneIndex = void 0;\n if (shape.lanes.length === 1) {\n diagram.remove(swimLane);\n }\n else {\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var row = void 0;\n var i = void 0;\n var cell = void 0;\n var j = void 0;\n var child = void 0;\n var grid = swimLane.wrapper.children[0];\n laneIndex = (lanes) ? (shape.lanes.indexOf(lanes)) : findLaneIndex(swimLane, lane);\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changing', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n if (!args.cancel) {\n var removableLane = shape.lanes[parseInt(laneIndex.toString(), 10)];\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n //Here we are removing the children from lane and re-adding it to the lane after getting it from diagram nodes collection.\n //Because the wrapper of nodes are not updated properly after undo operation.\n var removableLaneChild = removableLane.children;\n removableLane.children = [];\n for (var i_4 = 0; i_4 < removableLaneChild.length; i_4++) {\n var child_1 = diagram.getObject(removableLaneChild[parseInt(i_4.toString(), 10)].id);\n if (child_1) {\n removableLane.children.push(child_1);\n }\n }\n var undoObj = cloneObject(shape.lanes[parseInt(laneIndex.toString(), 10)]);\n removeLaneChildNode(diagram, swimLane, lane, undefined, laneIndex);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LaneCollectionChanged', changeType: 'Remove', undoObject: undoObj,\n redoObject: cloneObject(lane), category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n }\n shape.lanes.splice(laneIndex, 1);\n var index = (lane) ? (shape.orientation === 'Horizontal' ? lane.rowIndex : lane.columnIndex) :\n (findStartLaneIndex(swimLane) + laneIndex);\n if (shape.orientation === 'Horizontal') {\n row = grid.rows[parseInt(index.toString(), 10)];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeRow(index);\n }\n else {\n swimLane.width = (swimLane.width !== undefined) ?\n swimLane.width - grid.rows[0].cells[parseInt(index.toString(), 10)].actualSize.width : swimLane.width;\n for (i = 0; i < grid.rows.length; i++) {\n cell = grid.rows[parseInt(i.toString(), 10)].cells[parseInt(index.toString(), 10)];\n if (cell && cell.children.length > 0) {\n for (j = 0; j < cell.children.length; j++) {\n child = cell.children[parseInt(j.toString(), 10)];\n removeChildren(diagram, child);\n }\n }\n }\n grid.removeColumn(index);\n }\n args = {\n element: lane, cause: diagram.diagramActions, diagramAction: diagram.getDiagramAction(diagram.diagramActions), state: 'Changed', type: 'Removal', cancel: false, laneIndex: laneIndex\n };\n diagram.triggerEvent(DiagramEvent.collectionChange, args);\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Vertical') {\n index = 0;\n }\n ChangeLaneIndex(diagram, swimLane, index);\n diagram.drag(swimLane, x - swimLane.wrapper.bounds.x, y - swimLane.wrapper.bounds.y);\n diagram.updateDiagramObject(swimLane);\n }\n }\n }\n}\n/**\n * removeChildren method \\\n *\n * @returns {void} removeChildren method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {Canvas} canvas - provide the obj value.\n * @private\n */\nexport function removeChildren(diagram, canvas) {\n var i;\n var node;\n if (canvas instanceof Canvas) {\n if (canvas.children.length > 0) {\n for (i = 0; i < canvas.children.length; i++) {\n if (canvas.children[parseInt(i.toString(), 10)] instanceof Canvas) {\n removeChildren(diagram, canvas.children[parseInt(i.toString(), 10)]);\n }\n }\n }\n node = diagram.getObject(canvas.id);\n deleteNode(diagram, node);\n }\n}\n/**\n * removePhase method \\\n *\n * @returns {void} removePhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {NodeModel} swimLane - provide the obj value.\n * @param {PhaseModel} swimLanePhases - provide the obj value.\n * @private\n */\nexport function removePhase(diagram, phase, swimLane, swimLanePhases) {\n diagram.protectPropertyChange(true);\n var x = swimLane.wrapper.bounds.x;\n var y = swimLane.wrapper.bounds.y;\n var isLastPhase = false;\n var previousPhase;\n var shape = swimLane.shape;\n var grid = swimLane.wrapper.children[0];\n var phaseIndex = swimLanePhases ? shape.phases.indexOf(swimLanePhases) : findPhaseIndex(phase, swimLane);\n var phaseLength = shape.phases.length;\n if (shape.phases.length > 1) {\n if (phaseIndex === phaseLength - 1) {\n isLastPhase = true;\n previousPhase = cloneObject(shape.phases[phaseIndex - 1]);\n }\n var undoObj = cloneObject(shape.phases[parseInt(phaseIndex.toString(), 10)]);\n shape.phases.splice(phaseIndex, 1);\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PhaseCollectionChanged', changeType: 'Remove', undoObject: undoObj, previousPhase: previousPhase,\n redoObject: cloneObject(phase), category: 'Internal', isLastPhase: isLastPhase\n };\n diagram.addHistoryEntry(entry);\n }\n if (shape.orientation === 'Horizontal') {\n removeHorizontalPhase(diagram, grid, phase, phaseIndex);\n }\n else {\n removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n //878835- selecting swimlane phase after deleting first phase wihtout header throws error\n ChangeLaneIndex(diagram, swimLane, swimLane.isHeader ? 1 : 0);\n checkPhaseOffset(swimLane, diagram);\n diagram.protectPropertyChange(false);\n diagram.updateDiagramObject(swimLane);\n }\n}\n/**\n * removeHorizontalPhase method \\\n *\n * @returns {void} removeHorizontalPhase method .\\\n * @param {Diagram} diagram - provide the obj value.\n * @param {GridPanel} grid - provide the obj value.\n * @param {NodeModel} phase - provide the obj value.\n * @param {number} phaseIndex - provide the obj value.\n * @private\n */\nexport function removeHorizontalPhase(diagram, grid, phase, phaseIndex) {\n var row;\n var cell;\n var prevCell;\n var actualChild; //let prevChild: Canvas;\n var prevCanvas;\n var width;\n phaseIndex = (phaseIndex !== undefined) ? phaseIndex : phase.columnIndex;\n var i;\n var j;\n var k;\n var child;\n var node;\n var object;\n for (i = 0; i < grid.rows.length; i++) {\n row = grid.rows[parseInt(i.toString(), 10)];\n if (row.cells.length > 1) {\n cell = row.cells[parseInt(phaseIndex.toString(), 10)];\n prevCell = (row.cells.length - 1 === phaseIndex) ? row.cells[phaseIndex - 1] :\n row.cells[phaseIndex + 1];\n prevCanvas = prevCell.children[0];\n if (cell.children.length > 0) {\n actualChild = cell.children[0];\n node = diagram.nameTable[actualChild.id];\n if (prevCell.children.length === 0 && cell.children.length > 0) {\n prevCell.children = cell.children;\n prevCell.columnSpan = cell.columnSpan - 1;\n }\n else {\n for (j = 0; j < actualChild.children.length; j++) {\n child = actualChild.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n if (!object.isLane) {\n object.parentId = prevCanvas.id;\n }\n if ((row.cells.length - 1 === phaseIndex)) {\n object.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n child.margin.left = object.wrapper.bounds.x - prevCanvas.bounds.x;\n }\n prevCanvas.children.push(child);\n if (diagram.nameTable[prevCanvas.id]) {\n var parentNode = diagram.nameTable[prevCanvas.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n parentNode.children.push(child.id);\n }\n actualChild.children.splice(j, 1);\n j--;\n if (node && node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n if ((row.cells.length - 1 !== phaseIndex)) {\n for (k = 0; k < prevCanvas.children.length; k++) {\n var prevChild = prevCanvas.children[parseInt(k.toString(), 10)];\n if (prevChild instanceof Canvas) {\n var prevNode = diagram.nameTable[prevChild.id];\n prevNode.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n prevChild.margin.left = prevNode.wrapper.bounds.x - actualChild.bounds.x;\n }\n }\n }\n }\n if (node && node.isPhase) {\n var object_1 = diagram.nameTable[prevCanvas.id];\n if (object_1) {\n prevCanvas.maxWidth = object_1.wrapper.maxWidth = object_1.wrapper.maxWidth += node.wrapper.maxWidth;\n }\n }\n deleteNode(diagram, node);\n }\n }\n }\n }\n var prevWidth = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n grid.removeColumn(phaseIndex);\n if ((phaseIndex < grid.columnDefinitions().length)) {\n width = grid.columnDefinitions()[parseInt(phaseIndex.toString(), 10)].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex, width, true);\n }\n else {\n width = grid.columnDefinitions()[phaseIndex - 1].width;\n width += prevWidth;\n grid.updateColumnWidth(phaseIndex - 1, width, true);\n }\n}\n/**\n * removeVerticalPhase method \\\n *\n * @returns {void} removeVerticalPhase method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {GridPanel} grid - provide the grid value.\n * @param {NodeModel} phase - provide the phase value.\n * @param {number} phaseIndex - provide the phaseIndex value.\n * @param {number} swimLane - provide the swimLane value.\n * @private\n */\nexport function removeVerticalPhase(diagram, grid, phase, phaseIndex, swimLane) {\n var cell;\n var height;\n var i;\n var j;\n var k;\n var prevCell;\n var prevChild;\n var shape = swimLane.shape;\n var child;\n var object;\n var phaseRowIndex = (phaseIndex !== undefined) ? ((shape.header) ? phaseIndex + 1 : phaseIndex) : phase.rowIndex;\n var row = grid.rows[parseInt(phaseRowIndex.toString(), 10)];\n var top = swimLane.wrapper.bounds.y;\n var phaseCount = shape.phases.length;\n if (shape.header !== undefined && shape.hasHeader) {\n top += grid.rowDefinitions()[0].height;\n }\n var prevRow = (phaseIndex === phaseCount) ? grid.rows[phaseRowIndex - 1] : grid.rows[phaseRowIndex + 1];\n for (i = 0; i < row.cells.length; i++) {\n cell = row.cells[parseInt(i.toString(), 10)];\n prevCell = prevRow.cells[parseInt(i.toString(), 10)];\n prevChild = prevCell.children[0];\n if (cell.children.length > 0) {\n var children = cell.children[0];\n var node = diagram.nameTable[children.id];\n if (phaseIndex < phaseCount) {\n for (k = 0; k < prevChild.children.length; k++) {\n child = prevChild.children[parseInt(k.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : children.bounds.y);\n }\n }\n }\n for (j = 0; j < children.children.length; j++) {\n child = children.children[parseInt(j.toString(), 10)];\n if (child instanceof Canvas) {\n object = diagram.nameTable[child.id];\n object.parentId = prevChild.id;\n if (phaseIndex === phaseCount) {\n object.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n child.margin.top = object.wrapper.bounds.y - (phaseIndex === 0 ? top : prevChild.bounds.y);\n }\n prevChild.children.push(child);\n children.children.splice(j, 1);\n j--;\n if (node.children && node.children.indexOf(object.id) !== -1) {\n node.children.splice(node.children.indexOf(object.id), 1);\n }\n }\n }\n deleteNode(diagram, node);\n }\n }\n var prevHeight = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n grid.removeRow(phaseRowIndex);\n if ((phaseRowIndex < grid.rowDefinitions().length)) {\n height = grid.rowDefinitions()[parseInt(phaseRowIndex.toString(), 10)].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex, height, true);\n }\n else {\n height = grid.rowDefinitions()[phaseRowIndex - 1].height;\n height += prevHeight;\n grid.updateRowHeight(phaseRowIndex - 1, height, true);\n }\n}\n/**\n * considerSwimLanePadding method \\\n *\n * @returns {void} considerSwimLanePadding method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} node - provide the grid value.\n * @param {number} padding - provide the phase value.\n * @private\n */\nexport function considerSwimLanePadding(diagram, node, padding) {\n var lane = diagram.nameTable[node.parentId];\n if (lane && lane.isLane) {\n var swimLane = diagram.nameTable[lane.parentId];\n var grid = swimLane.wrapper.children[0];\n //let x: number = swimLane.wrapper.bounds.x; let y: number = swimLane.wrapper.bounds.y;\n grid.updateColumnWidth(lane.columnIndex, grid.columnDefinitions()[lane.columnIndex].width, true, padding);\n grid.updateRowHeight(lane.rowIndex, grid.rowDefinitions()[lane.rowIndex].height, true, padding);\n var canvas = lane.wrapper;\n var laneHeader = void 0;\n var isConsiderHeader = false;\n if (node.margin.left < padding) {\n node.margin.left = padding;\n }\n if (node.margin.top < padding) {\n node.margin.top = padding;\n }\n for (var i = 0; i < canvas.children.length; i++) {\n var child = canvas.children[parseInt(i.toString(), 10)];\n if (child instanceof Canvas) {\n var childNode = diagram.nameTable[child.id];\n if (childNode.isLane) {\n laneHeader = childNode.wrapper;\n isConsiderHeader = true;\n break;\n }\n }\n }\n if (laneHeader) {\n if (swimLane.shape.orientation === 'Horizontal') {\n if (node.margin.left < padding + laneHeader.actualSize.width) {\n node.margin.left = padding + laneHeader.actualSize.width;\n }\n }\n else {\n if (node.margin.top < padding + laneHeader.actualSize.height) {\n node.margin.top = padding + laneHeader.actualSize.height;\n }\n }\n }\n swimLane.wrapper.measure(new Size(swimLane.width, swimLane.height));\n swimLane.wrapper.arrange(swimLane.wrapper.desiredSize);\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n diagram.nodePropertyChange(node, {}, { margin: { left: node.margin.left, top: node.margin.top } });\n //EJ2-68372- Text-Annotation in event node is not positioned properly while drag the swimlane\n // if (diagram.bpmnModule && node.shape.type === 'Bpmn' && (node.shape as BpmnShapeModel).annotations && (node.shape as BpmnShapeModel).annotations.length > 0) {\n // diagram.nodePropertyChange(node as Node, {} as Node, { margin: { left: node.margin.left, top: node.margin.top } } as Node);\n // }\n grid.measure(new Size(grid.width, grid.height));\n grid.arrange(grid.desiredSize);\n swimLane.width = swimLane.wrapper.width = swimLane.wrapper.children[0].actualSize.width;\n swimLane.height = swimLane.wrapper.height = swimLane.wrapper.children[0].actualSize.height;\n }\n}\n/**\n * checkLaneChildrenOffset method \\\n *\n * @returns {void} checkLaneChildrenOffset method .\\\n * @param {NodeModel} swimLane - provide the diagram value.\n * @private\n */\nexport function checkLaneChildrenOffset(swimLane) {\n if (swimLane.shape.type === 'SwimLane') {\n var lanes = swimLane.shape.lanes;\n var lane = void 0;\n var child = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n child = lane.children[parseInt(j.toString(), 10)];\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n }\n }\n }\n}\n/**\n * findLane method \\\n *\n * @returns {LaneModel} findLane method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function findLane(laneNode, diagram) {\n var lane;\n if (laneNode.isLane) {\n var swimLane = diagram.getObject(laneNode.parentId);\n if (swimLane && swimLane.shape.type === 'SwimLane' && laneNode.isLane) {\n var laneIndex = findLaneIndex(swimLane, laneNode);\n lane = swimLane.shape.lanes[parseInt(laneIndex.toString(), 10)];\n }\n }\n return lane;\n}\n/**\n * canLaneInterchange method \\\n *\n * @returns {boolean} canLaneInterchange method .\\\n * @param {Node} laneNode - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function canLaneInterchange(laneNode, diagram) {\n if (laneNode.isLane) {\n var lane = findLane(laneNode, diagram);\n var eventHandler = 'eventHandler';\n var resize = diagram[\"\" + eventHandler].action;\n var canResize = resize.includes('Resize');\n if (canResize || lane.canMove) {\n return true;\n }\n }\n return false;\n}\n/**\n * updateSwimLaneChildPosition method \\\n *\n * @returns {void} updateSwimLaneChildPosition method .\\\n * @param {Lane[]} lanes - provide the laneNode value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateSwimLaneChildPosition(lanes, diagram) {\n var lane;\n var node;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n for (var j = 0; j < lane.children.length; j++) {\n node = diagram.nameTable[lane.children[parseInt(j.toString(), 10)].id];\n node.offsetX = node.wrapper.offsetX;\n node.offsetY = node.wrapper.offsetY;\n }\n }\n}\n","import { isBlazor } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { Diagram } from '../diagram';\nimport { Selector } from '../objects/node';\nimport { Size } from '../primitives/size';\nimport { cloneObject } from './../utility/base-util';\nimport { getObjectType } from './../utility/diagram-util';\nimport { Rect } from '../primitives/rect';\nimport { getAdornerLayerSvg } from '../utility/dom-util';\nimport { swimLaneMeasureAndArrange, checkLaneSize, checkPhaseOffset, canLaneInterchange } from '../utility/swim-lane-util';\nimport { updatePhaseMaxWidth, updateHeaderMaxWidth, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { considerSwimLanePadding } from '../utility/swim-lane-util';\nimport { DiagramAction, DiagramConstraints, NodeConstraints } from '../enum/enum';\nimport { getDiagramElement } from '../utility/dom-util';\n/**\n * Interaction for Container\n */\n//#region canvas Container interaction\n/**\n * updateCanvasBounds method\\\n *\n * @returns { void } updateCanvasBounds method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function updateCanvasBounds(diagram, obj, position, isBoundsUpdate) {\n var container;\n var connectorList = [];\n var groupAction = false;\n if (checkParentAsContainer(diagram, obj, true)) {\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((isBoundsUpdate || (wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y)))) {\n var parentWrapper = void 0;\n var y = wrapper.bounds.y;\n var x = wrapper.bounds.x;\n var parent_1 = diagram.nameTable[container.parentId] || container;\n var shape = parent_1.shape;\n if (shape.type === 'SwimLane') {\n groupAction = updateLaneBoundsAfterAddChild(container, parent_1, obj, diagram, true);\n }\n else {\n var parent_2 = diagram.nameTable[container.parentId] || container;\n var shape_1 = parent_2.shape;\n parentWrapper = parent_2.wrapper;\n if (wrapper.actualSize.width < wrapper.outerBounds.width &&\n (!(wrapper.bounds.x > wrapper.outerBounds.x))) {\n if (container.rowIndex !== undefined) {\n //const columnIndex:number = parent.columns.length - 1;\n parentWrapper.updateColumnWidth(container.columnIndex, wrapper.outerBounds.width, true);\n if (shape_1.orientation === 'Horizontal' && shape_1.phaseSize) {\n updatePhaseMaxWidth(parent_2, diagram, wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, parent_2);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, (1 + ((wrapper.outerBounds.width - wrapper.actualSize.width) / wrapper.actualSize.width)), 1, ((wrapper.outerBounds.x < wrapper.bounds.x) ? { x: 1, y: 0.5 } : { x: 0, y: 0.5 }));\n }\n }\n if (wrapper.actualSize.height < wrapper.outerBounds.height &&\n (!(wrapper.bounds.y > wrapper.outerBounds.y))) {\n if (container.rowIndex !== undefined) {\n parentWrapper.updateRowHeight(container.rowIndex, wrapper.outerBounds.height, true);\n diagram.drag(parent_2, x - wrapper.bounds.x, y - wrapper.bounds.y);\n }\n else {\n diagram.scale(container, 1, (1 + ((wrapper.outerBounds.height - wrapper.actualSize.height) / wrapper.actualSize.height)), ((wrapper.outerBounds.y < wrapper.bounds.y) ? { x: 0.5, y: 1 } : { x: 0.5, y: 0 }));\n }\n }\n }\n }\n diagram.select([obj]);\n updateConnectorsProperties(connectorList, diagram);\n }\n diagram.protectPropertyChange(false);\n }\n return groupAction;\n}\n/**\n * removeChildInContainer method\\\n *\n * @returns { void } removeChildInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {boolean} isBoundsUpdate - provide the isBoundsUpdate value.\n * @private\n */\nexport function removeChildInContainer(diagram, obj, position, isBoundsUpdate) {\n var container; //let connectorList: string[] = [];\n if (checkParentAsContainer(diagram, obj, true)) {\n var isProtectedOnChange = 'isProtectedOnChange';\n var propertyChangeValue = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(true);\n container = diagram.nameTable[obj.parentId];\n var wrapper = container.wrapper;\n if (container && container.container.type === 'Canvas') {\n if ((!isBoundsUpdate && (!(wrapper.bounds.x <= position.x && wrapper.bounds.right >= position.x &&\n (wrapper.bounds.y <= position.y && wrapper.bounds.bottom >= position.y))))) {\n if (!(obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n var undoObj = cloneObject(obj);\n diagram.clearSelection();\n removeChildrenInLane(diagram, obj);\n obj.parentId = '';\n //EJ2-65676 - Exception throws on updating node annotation after drag and drop from swimlane to diagram canvas.\n obj.parentObj = diagram;\n obj.propName = 'nodes';\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(obj)\n };\n diagram.addHistoryEntry(entry);\n if (diagram.commandHandler.isContainer) {\n diagram.commandHandler.isContainer = false;\n diagram.endGroupAction();\n }\n moveSwinLaneChild(obj, diagram);\n }\n }\n }\n diagram.protectPropertyChange(propertyChangeValue);\n }\n}\n/**\n * findBounds method\\\n *\n * @returns { NodeModel | ConnectorModel } findBounds method .\\\n * @param {NodeModel} obj - provide the diagram value.\n * @param {number} columnIndex - provide the isVertical value.\n * @param {boolean} isHeader - provide the isVertical value.\n * @private\n */\nexport function findBounds(obj, columnIndex, isHeader) {\n var rect = new Rect();\n var rows = (obj.shape.type === 'SwimLane') ?\n obj.wrapper.children[0].rows : obj.wrapper.rows;\n for (var i = ((isHeader) ? 1 : 0); i < rows.length; i++) {\n rect.uniteRect(rows[parseInt(i.toString(), 10)].cells[parseInt(columnIndex.toString(), 10)].bounds);\n }\n return rect;\n}\n/**\n * createHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } createHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function createHelper(diagram, obj) {\n var newObj;\n var cloneObject = {};\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(obj) === Node) {\n newObj = new Node(diagram, 'nodes', cloneObject, true);\n newObj.id = obj.id;\n diagram.initObject(newObj);\n }\n diagram.updateDiagramObject(newObj);\n return newObj;\n}\n/**\n * renderContainerHelper method\\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @private\n */\nexport function renderContainerHelper(diagram, obj) {\n diagram.enableServerDataBinding(false);\n var object;\n var container;\n var nodes;\n if (!isBlazor()) {\n if (diagram.selectedObject.helperObject) {\n nodes = diagram.selectedObject.helperObject;\n }\n else if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n if (obj instanceof Selector && obj.nodes.length + obj.connectors.length === 1) {\n object = (obj.nodes.length > 0) ? obj.nodes[0] : obj.connectors[0];\n container = diagram.selectedItems.wrapper.children[0];\n }\n else {\n object = obj;\n //Removed isBlazor code\n container = diagram.selectedItems.wrapper;\n }\n diagram.selectedObject.actualObject = object;\n if ((!diagram.currentSymbol) && (((object.isLane && canLaneInterchange(object, diagram) &&\n checkParentAsContainer(diagram, object))\n || ((!object.isLane) && checkParentAsContainer(diagram, object))) ||\n ((diagram.constraints & DiagramConstraints.LineRouting) && diagram.selectedItems.nodes.length > 0))) {\n var node = {\n id: 'helper',\n rotateAngle: container.rotateAngle,\n offsetX: container.offsetX, offsetY: container.offsetY,\n minWidth: container.minWidth, minHeight: container.minHeight,\n maxWidth: container.maxWidth, maxHeight: container.maxHeight,\n width: container.actualSize.width,\n height: container.actualSize.height,\n style: { strokeDashArray: '2 2', fill: 'transparent', strokeColor: '#7D7D7D', strokeWidth: 2 }\n };\n nodes = createHelper(diagram, node);\n diagram.selectedObject.helperObject = nodes;\n }\n }\n }\n diagram.enableServerDataBinding(true);\n return nodes;\n}\n/**\n * checkParentAsContainer method\\\n *\n * @returns { void } checkParentAsContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel | ConnectorModel} obj - provide the isVertical value.\n * @param {boolean} isChild - provide the isChild value.\n * @private\n */\nexport function checkParentAsContainer(diagram, obj, isChild) {\n var parentNode = (isChild) ? diagram.nameTable[obj.parentId] :\n (diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container) {\n return true;\n }\n return false;\n}\n/**\n * checkChildNodeInContainer method\\\n *\n * @returns { void } checkChildNodeInContainer method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {NodeModel} obj - provide the isVertical value.\n * @private\n */\nexport function checkChildNodeInContainer(diagram, obj) {\n var parentNode = diagram.nameTable[obj.parentId];\n obj.laneMargin = { left: obj.margin.left, right: obj.margin.right, top: obj.margin.top, bottom: obj.margin.bottom };\n if (parentNode.container.type === 'Canvas') {\n obj.margin.left = (obj.offsetX - parentNode.wrapper.bounds.x - (obj.width / 2));\n obj.margin.top = (obj.offsetY - parentNode.wrapper.bounds.y - (obj.height / 2));\n }\n diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY,\n margin: {\n left: obj.margin.left,\n right: obj.margin.right, top: obj.margin.top,\n bottom: obj.margin.bottom\n }, rotateAngle: obj.rotateAngle\n });\n if (!parentNode.isLane) {\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n}\nfunction removeChildrenInLane(diagram, node) {\n if (node.parentId && node.parentId !== '') {\n var prevParentNode = diagram.nameTable[node.parentId];\n if (prevParentNode.isLane && prevParentNode.parentId) {\n var swimlane = diagram.nameTable[prevParentNode.parentId];\n var canvasId = (prevParentNode.id.slice(swimlane.id.length));\n var prevParentId = canvasId.substring(0, canvasId.length - 1);\n var lanes = swimlane.shape.lanes;\n var lane = void 0;\n for (var i = 0; i < lanes.length; i++) {\n lane = lanes[parseInt(i.toString(), 10)];\n if (prevParentId === lane.id) {\n for (var j = 0; j < lane.children.length; j++) {\n if (lane.children[parseInt(j.toString(), 10)].id === node.id) {\n lane.children.splice(j, 1);\n j--;\n }\n }\n }\n }\n }\n diagram.deleteChild(node);\n }\n}\n/**\n * addChildToContainer method\\\n *\n * @returns { void } addChildToContainer method .\\\n * @param {DiagramElement} diagram - provide the element value.\n * @param {boolean} parent - provide the isVertical value.\n * @param {PointModel} node - provide the node value.\n * @param {Diagram} isUndo - provide the isUndo value.\n * @param {boolean} historyAction - provide the historyAction value.\n * @private\n */\nexport function addChildToContainer(diagram, parent, node, isUndo, historyAction) {\n if (!diagram.currentSymbol) {\n diagram.protectPropertyChange(true);\n var swimlane = diagram.nameTable[parent.parentId];\n node = diagram.getObject(node.id) || node;\n var child = (diagram.nodes.indexOf(node) !== -1) ? node.id : node;\n if (parent.container.type === 'Canvas' && !historyAction) {\n var left = (node.wrapper.offsetX - node.wrapper.actualSize.width / 2) -\n (parent.wrapper.offsetX - parent.wrapper.actualSize.width / 2);\n var top_1 = (node.wrapper.offsetY - node.wrapper.actualSize.height / 2) -\n (parent.wrapper.offsetY - parent.wrapper.actualSize.height / 2);\n node.margin.left = left;\n node.margin.top = top_1;\n }\n else if (swimlane) {\n var swimLaneBounds = swimlane.wrapper.bounds;\n var parentBounds = parent.wrapper.bounds;\n if (swimlane.shape.orientation === 'Horizontal') {\n node.margin.left -= parentBounds.x - swimLaneBounds.x;\n }\n else {\n var laneHeaderId = parent.parentId + swimlane.shape.lanes[0].id + '_0_header';\n node.margin.top -= parentBounds.y - swimLaneBounds.y - diagram.nameTable[\"\" + laneHeaderId].wrapper.bounds.height;\n }\n }\n var container = diagram.nameTable[parent.id];\n if (!container.children) {\n container.children = [];\n }\n if (container.children.indexOf(node.id) === -1) {\n removeChildrenInLane(diagram, node);\n if (diagram.getObject(node.id)) {\n diagram.removeElements(node);\n }\n var undoObj = cloneObject(node);\n diagram.addChild(container, child);\n node = diagram.getObject(node.id);\n if (container.isLane && container.parentId) {\n swimlane = diagram.nameTable[container.parentId];\n var lanes = swimlane.shape.lanes;\n var canvasId = (container.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (container.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n // eslint-disable-next-line\n if (!(node.parentObj instanceof Diagram)) {\n // eslint-disable-next-line\n node.parentObj = lanes[parseInt(i.toString(), 10)];\n }\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-prototype-builtins\n if (!diagram.nameTable.hasOwnProperty(node.id)) {\n lanes[parseInt(i.toString(), 10)].children.push(node);\n }\n }\n }\n }\n diagram.updateDiagramObject(node);\n moveSwinLaneChild(node, diagram);\n if (!container.parentId) {\n diagram.updateDiagramObject(container);\n }\n else if (!isUndo) {\n updateLaneBoundsAfterAddChild(container, swimlane, node, diagram);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'ChildCollectionChanged', category: 'Internal',\n undoObject: undoObj, redoObject: cloneObject(node), historyAction: historyAction ? 'AddNodeToLane' : undefined\n };\n diagram.addHistoryEntry(entry);\n }\n }\n diagram.protectPropertyChange(false);\n }\n}\nfunction moveSwinLaneChild(node, diagram) {\n var sourceNode = getDiagramElement(node.id + '_groupElement', diagram.element.id);\n var targetId = (node.parentId) ? node.parentId + '_groupElement' : diagram.element.id + '_diagramLayer';\n var targetNode = getDiagramElement(targetId, diagram.element.id);\n if (sourceNode && targetNode) {\n targetNode.appendChild(sourceNode);\n }\n}\nexport function updateLaneBoundsAfterAddChild(container, swimLane, node, diagram, isBoundsUpdate) {\n var undoObject = cloneObject(container);\n var isUpdateRow;\n var isGroupAction = false;\n var padding = swimLane.shape.padding;\n var containerBounds = container.wrapper.bounds;\n var containerOuterBounds = container.wrapper.outerBounds;\n var nodeBounds = node.wrapper.bounds;\n if (swimLane && swimLane.shape.type === 'SwimLane' &&\n (containerBounds.right < nodeBounds.right + padding ||\n containerBounds.bottom < nodeBounds.bottom + padding)) {\n var grid = swimLane.wrapper.children[0];\n var x = grid.bounds.x;\n var y = grid.bounds.y;\n var size = void 0;\n if (containerBounds.right < nodeBounds.right + padding &&\n containerOuterBounds.x <= containerBounds.x) {\n size = nodeBounds.right - containerBounds.right;\n isUpdateRow = false;\n grid.updateColumnWidth(container.columnIndex, containerBounds.width + size, true, padding);\n }\n if (containerBounds.bottom < nodeBounds.bottom + padding &&\n containerOuterBounds.y <= containerBounds.y) {\n size = nodeBounds.bottom - containerBounds.bottom;\n isUpdateRow = true;\n grid.updateRowHeight(container.rowIndex, containerBounds.height + size, true, padding);\n }\n if (!(diagram.diagramActions & DiagramAction.UndoRedo)) {\n if (isBoundsUpdate) {\n diagram.startGroupAction();\n isGroupAction = true;\n }\n if (isUpdateRow !== undefined) {\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObject, redoObject: cloneObject(container)\n };\n diagram.addHistoryEntry(entry);\n }\n }\n swimLane.width = swimLane.wrapper.width = grid.width;\n swimLane.height = swimLane.wrapper.height = grid.height;\n swimLaneMeasureAndArrange(swimLane);\n if (swimLane.shape.orientation === 'Horizontal') {\n updatePhaseMaxWidth(swimLane, diagram, container.wrapper, container.columnIndex);\n }\n updateHeaderMaxWidth(diagram, swimLane);\n diagram.drag(swimLane, x - grid.bounds.x, y - grid.bounds.y);\n checkPhaseOffset(swimLane, diagram);\n checkLaneSize(swimLane);\n }\n considerSwimLanePadding(diagram, node, padding);\n diagram.updateDiagramElementQuad();\n return isGroupAction;\n}\n//#endregion\n//# reginon stack panel interaction\n/**\n * renderStackHighlighter method\\\n *\n * @returns { void } renderStackHighlighter method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} isVertical - provide the isVertical value.\n * @param {PointModel} position - provide the position value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {boolean} isUml - provide the isUml value.\n * @param {boolean} isSwimlane - provide the isSwimlane value.\n * @private\n */\nexport function renderStackHighlighter(element, isVertical, position, diagram, isUml, isSwimlane) {\n var adornerSvg = getAdornerLayerSvg(diagram.element.id);\n diagram.diagramRenderer.renderStackHighlighter(element, adornerSvg, diagram.scroller.transform, isVertical, position, isUml, isSwimlane);\n}\n/**\n * moveChildInStack method\\\n *\n * @returns { void } moveChildInStack method .\\\n * @param {Node} sourceNode - provide the sourceNode value.\n * @param {Node} target - provide the target value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Actions} action - provide the action value.\n * @private\n */\nexport function moveChildInStack(sourceNode, target, diagram, action) {\n var obj = sourceNode;\n var parent = diagram.nameTable[obj.parentId];\n var sourceParent = diagram.nameTable[obj.parentId];\n if (target && sourceParent && sourceParent.container && sourceParent.container.type === 'Stack' &&\n target.container && target.container.type === 'Stack' && (sourceParent.id !== target.parentId)) {\n var value = sourceParent.wrapper.children.indexOf(obj.wrapper);\n if (value > -1) {\n diagram.nameTable[obj.id].parentId = target.id;\n sourceParent.wrapper.children.splice(value, 1);\n }\n }\n if (target && target.parentId && obj.parentId && action === 'Drag' &&\n sourceParent.container && sourceParent.container.type === 'Stack') {\n var targetIndex = parent.wrapper.children.indexOf(target.wrapper);\n var sourceIndex = parent.wrapper.children.indexOf(obj.wrapper);\n var undoElement = {\n targetIndex: targetIndex, target: target,\n sourceIndex: sourceIndex, source: sourceNode\n };\n parent.wrapper.children.splice(sourceIndex, 1);\n parent.wrapper.children.splice(targetIndex, 0, obj.wrapper);\n var redoElement = {\n targetIndex: sourceIndex, target: target,\n sourceIndex: targetIndex, source: sourceNode\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: redoElement,\n undoObject: undoElement, category: 'Internal'\n };\n diagram.commandHandler.addHistoryEntry(entry);\n }\n}\n//#end region\n//# region Swimlane rendering\n//#end region\n","import { Connector } from '../objects/connector';\nimport { Node } from '../objects/node';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getUserHandlePosition, checkPortRestriction, canShowControlPoints } from '../utility/diagram-util';\nimport { canMove, canDragSourceEnd, canDragTargetEnd, canContinuousDraw, canDragSegmentThumb, canSingleSelect, canMultiSelect } from '../utility/constraints-util';\nimport { canZoomPan, defaultTool, canDrawOnce, canDrag, canDraw, canSelect, canRotate } from '../utility/constraints-util';\nimport { canShowCorner, canResizeCorner } from '../utility/diagram-util';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { PortConstraints, DiagramTools, PortVisibility, ThumbsConstraints } from '../enum/enum';\nimport { Selector } from '../objects/node';\nimport { PathPort, PointPort } from './../objects/port';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { checkParentAsContainer } from '../interaction/container-interaction';\n/**\n * Finds the action to be taken for the object under mouse\n *\n */\n/* tslint:disable */\n/**\n * findToolToActivate method\\\n *\n * @returns {Actions} findToolToActivate method .\\\n * @param {Object} obj - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @param {NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - provide the options value.\n * @private\n */\nexport function findToolToActivate(obj, wrapper, position, diagram, touchStart, touchMove, target) {\n //let conn: Connector = diagram.selectedItems.connectors[0] as Connector;\n if (touchMove && touchMove.length > 1 && touchStart && touchStart.length > 1) {\n return 'PinchZoom';\n }\n if (diagram.currentSymbol) {\n return 'Drag';\n }\n var eventHandler = 'eventHandler';\n if (diagram[\"\" + eventHandler].action === 'PortDraw') {\n diagram.tool &= ~DiagramTools.DrawOnce;\n }\n //Drawing Tools\n if ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && diagram.drawingObject) {\n return 'Draw';\n }\n if (hasSelection(diagram)) {\n var handle = diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj_1 = _a[_i];\n if (obj_1.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj_1, diagram.scroller.transform);\n if (contains(position, paddedBounds, obj_1.size / (2 * diagram.scroller.transform.scale))) {\n return obj_1.name;\n }\n }\n }\n }\n }\n if (hasSelection(diagram)) {\n var element = (diagram.selectedItems.annotation) ?\n diagram.selectedItems.wrapper.children[0] : diagram.selectedItems.wrapper;\n var selectorBnds = element.bounds;\n var handle = diagram.selectedItems;\n var paddedBounds = new Rect(selectorBnds.x, selectorBnds.y, selectorBnds.width, selectorBnds.height);\n if (hasSingleConnection(diagram) && !diagram.selectedItems.annotation) {\n var conn = diagram.selectedItems.connectors[0];\n var sourcePaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var targetPaddingValue = (diagram.selectedItems.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (canShowCorner(handle.constraints, 'ResizeAll')) {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn) && contains(position, conn.sourcePoint, sourcePaddingValue)) {\n return 'ConnectorSourceEnd';\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn) && contains(position, conn.targetPoint, targetPaddingValue)) {\n return 'ConnectorTargetEnd';\n }\n var action = checkForConnectorSegment(conn, handle, position, diagram);\n if (action !== 'OrthoThumb') {\n if ((canShowCorner(handle.constraints, 'ConnectorSourceThumb'))\n && canDragSourceEnd(conn)) {\n if (action) {\n return action;\n }\n }\n if ((canShowCorner(handle.constraints, 'ConnectorTargetThumb'))\n && canDragTargetEnd(conn)) {\n if (action) {\n return action;\n }\n }\n }\n else {\n return action;\n }\n }\n }\n else {\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var tenRotate = 10 / diagram.scroller.currentZoom;\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n //check for resizing tool\n var x = element.offsetX - element.pivot.x * element.actualSize.width;\n var y = element.offsetY - element.pivot.y * element.actualSize.height;\n var rotateThumb = {\n x: x + ((element.pivot.x === 0.5 ? element.pivot.x * 2 : element.pivot.x) * element.actualSize.width / 2),\n y: y - 30 / diagram.scroller.currentZoom\n };\n rotateThumb = transformPointByMatrix(matrix, rotateThumb);\n var labelSelection = diagram.selectedItems.annotation ? true : false;\n var labelRotate = (labelSelection && (canRotate(diagram.selectedItems.annotation))) ? true : false;\n if (canShowCorner(handle.constraints, 'Rotate') && contains(position, rotateThumb, tenRotate) &&\n (diagram.selectedItems.thumbsConstraints & ThumbsConstraints.Rotate)) {\n if (labelSelection && labelRotate) {\n return 'LabelRotate';\n }\n else if (!labelSelection) {\n return 'Rotate';\n }\n }\n paddedBounds.Inflate(ten);\n if (paddedBounds.containsPoint(position)) {\n var action = checkResizeHandles(diagram, element, position, matrix, x, y);\n if (action) {\n return action;\n }\n }\n }\n }\n //Panning\n if (canZoomPan(diagram) && !obj) {\n return 'Pan';\n }\n //826364 - Drawing Tool is not activated on hovering the ports while both ZoomPan and single select constraints enabled\n if ((target instanceof PointPort || target instanceof PathPort)\n && (!canZoomPan(diagram) || (canSingleSelect(diagram) || canMultiSelect(diagram)))) {\n var action = findPortToolToActivate(diagram, target);\n if (action !== 'None') {\n return action;\n }\n }\n if ((target instanceof ShapeAnnotation || target instanceof PathAnnotation) && (!canZoomPan(diagram) && (canSelect(target)))) {\n if (isSelected(diagram, target, undefined, wrapper) && canMove(target)) {\n return 'LabelDrag';\n }\n return 'LabelSelect';\n }\n if (obj !== null) {\n if (obj instanceof Node || obj instanceof Connector) {\n if (wrapper && wrapper.id) {\n var id = wrapper.id.split(obj.id)[1];\n if (id && id.match('^_icon')) {\n return 'LayoutAnimation';\n }\n }\n if (wrapper && wrapper.id) {\n var userid = void 0;\n for (var i = 0; i < obj.fixedUserHandles.length; i++) {\n userid = obj.fixedUserHandles[parseInt(i.toString(), 10)].id;\n if (wrapper.id && (wrapper.id.indexOf(userid) > -1)) {\n return 'FixedUserHandle';\n }\n }\n }\n if (wrapper instanceof TextElement && wrapper.hyperlink.link) {\n return 'Hyperlink';\n }\n if (canMove(obj) && isSelected(diagram, obj, false) && diagram.selectedItems.annotation === undefined) {\n if ((obj instanceof Connector && !(contains(position, obj.sourcePoint, obj.hitPadding) ||\n contains(position, obj.targetPoint, obj.hitPadding))) ||\n !(obj instanceof Connector)) {\n return 'Drag';\n }\n }\n else if (obj && canZoomPan(diagram) && !defaultTool(diagram)) {\n return 'Pan';\n }\n else if (diagram.selectedItems.nodes.length && diagram.selectedItems.nodes[0].isLane &&\n diagram.selectedItems.wrapper && diagram.selectedItems.wrapper.bounds.containsPoint(position)) {\n return 'Drag';\n }\n else {\n return 'Select';\n }\n }\n else {\n return 'Select';\n }\n }\n return 'Select';\n}\n/* tslint:enable */\nfunction checkResizeHandles(diagram, element, position, matrix, x, y) {\n var action;\n if ((diagram.selectedItems.nodes.length === 1 && diagram.selectedItems.connectors.length === 0)\n && diagram.selectedItems.nodes[0].container) {\n action = checkResizeHandleForContainer(diagram, element, position, x, y);\n }\n if (!action && (!diagram.selectedItems.nodes[0] || (!diagram.selectedItems.nodes[0].isPhase &&\n !diagram.selectedItems.nodes[0].isLane && diagram.selectedItems.nodes[0].shape.type !== 'SwimLane'))) {\n action = checkForResizeHandles(diagram, element, position, matrix, x, y);\n }\n if (action) {\n return action;\n }\n return null;\n}\n/**\n * checkForConnectorSegment method\\\n *\n * @returns {Actions} checkForConnectorSegment method .\\\n * @param {Connector} conn - provide the options value.\n * @param {SelectorModel} handle - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nfunction checkForConnectorSegment(conn, handle, position, diagram) {\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value\n //Added below code for drag the bezier control thumb while increasing handle size (Changing cursor from pointer to drag cursor)\n var targetPaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n var sourcePaddingValue = (handle.handleSize / 2) / diagram.scrollSettings.currentZoom;\n if (conn.type === 'Bezier' && diagram.connectorEditingToolModule) {\n for (var i = 0; i < conn.segments.length; i++) {\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n // EJ2-67447 - Bezier segment control points are clickable after hiding it with controlPointsVisibility property.\n // The below condition is used to check the control points visibility of the connector.\n if (contains(position, !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, sourcePaddingValue) && ((i === 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Source')) || (i !== 0 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierSourceThumb';\n }\n if (contains(position, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, targetPaddingValue) && ((i === conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Target')) || (i !== conn.segments.length - 1 && canShowControlPoints(conn.bezierSettings.controlPointsVisibility, 'Intermediate')))) {\n return 'BezierTargetThumb';\n }\n }\n }\n if (diagram.connectorEditingToolModule && canDragSegmentThumb(conn)) {\n if (conn.type === 'Straight' || conn.type === 'Bezier') {\n for (var i = 0; i < conn.segments.length; i++) {\n //let segment: StraightSegmentModel | BezierSegmentModel;\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (contains(position, segment.point, 10)) {\n return 'SegmentEnd';\n }\n }\n }\n else {\n for (var i = 0; i < conn.segments.length; i++) {\n var segPoint = { x: 0, y: 0 };\n var segment = (conn.segments)[parseInt(i.toString(), 10)];\n if (segment.allowDrag) {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var length_1 = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n if (length_1 >= 50) {\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n //Bug 857928: Issue in connector selection while enabling segment thumb.\n //Instead of setting static value 30, we have set the hit padding of connector.\n var padding = conn.hitPadding ? conn.hitPadding : 10;\n if (contains(position, segPoint, padding)) {\n return 'OrthoThumb';\n }\n }\n }\n }\n }\n }\n }\n else if (canDragSegmentThumb(conn)) {\n console.warn('[WARNING] :: Module \"ConnectorEditing\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n}\n/**\n * findPortToolToActivate method\\\n *\n * @returns {boolean} findPortToolToActivate method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {NodeModel | PointPortModel} target - provide the options value.\n * @param {ITouches[] | TouchList} touchStart - provide the options value.\n * @param {ITouches[] | TouchList} touchMove - provide the options value.\n * @private\n */\nexport function findPortToolToActivate(diagram, target, \n// eslint-disable-next-line\ntouchStart, touchMove) {\n if (canDrag(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if ((target.constraints & PortConstraints.Drag)) {\n return 'PortDrag';\n }\n }\n else if (canDraw(target, diagram) && (checkPortRestriction(target, PortVisibility.Hover)\n || (checkPortRestriction(target, PortVisibility.Visible)))) {\n if (target.constraints & PortConstraints.Draw) {\n diagram.drawingObject = {};\n var connector = { type: 'Orthogonal', sourcePortID: target.id };\n diagram.drawingObject = connector;\n diagram.tool |= DiagramTools.DrawOnce;\n diagram.currentDrawingObject = connector;\n return 'PortDraw';\n }\n }\n return 'None';\n}\n/**\n * Resize handle for container and also object.\n * @param {Diagram} diagram - provide the options value.\n * @param {DiagramElement} element - provide the options value.\n * @param {PointModel} position - provide the options value.\n * @param {number} x - provide the options value.\n * @param {number} y - provide the options value.\n * @returns {Actions} Resize handle for container and also object.\\\n *\n * @private\n */\nfunction checkResizeHandleForContainer(diagram, element, position, x, y) {\n var ten = 10 / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var width = element.actualSize.width;\n var height = element.actualSize.height;\n // 910600: Update cursor type in swimlane based on the values\n var left = new Rect(x, y, element.style.strokeWidth, height);\n var right = new Rect(x + width, y, element.style.strokeWidth, height);\n var top = new Rect(x, y, width, element.style.strokeWidth);\n var bottom = new Rect(x, y + height, width, element.style.strokeWidth);\n var container = checkParentAsContainer(diagram, diagram.selectedItems.nodes[0], true) ?\n diagram.nameTable[diagram.selectedItems.nodes[0].parentId] : diagram.selectedItems.nodes[0];\n // 924599: Resize Cursor Not Enabled for Phase with Width Less Than 40\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) &&\n right.containsPoint(position, ten)) {\n return 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) &&\n bottom.containsPoint(position, ten)) {\n return 'ResizeSouth';\n }\n if (container.container.type !== 'Grid') {\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n left.containsPoint(position, ten)) {\n return 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n top.containsPoint(position, ten)) {\n return 'ResizeNorth';\n }\n }\n return null;\n}\nfunction checkForResizeHandles(diagram, element, position, matrix, x, y) {\n var forty = 40 / diagram.scroller.currentZoom;\n var ten = (diagram.selectedItems.handleSize / 2) / diagram.scroller.currentZoom;\n var selectedItems = diagram.selectedItems;\n var labelSelection = (selectedItems.annotation) ? true : false;\n if (element.actualSize.width >= forty && element.actualSize.height >= forty) {\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthEast' : 'ResizeSouthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouthWest' : 'ResizeSouthWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthEast', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthEast' : 'ResizeNorthEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorthWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorthWest' : 'ResizeNorthWest';\n }\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeEast', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeEast' : 'ResizeEast';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeWest', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x, y: y + element.actualSize.height / 2 }), ten)) {\n return (labelSelection) ? 'LabelResizeWest' : 'ResizeWest';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeSouth', selectedItems.thumbsConstraints, selectedItems) && contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y + element.actualSize.height }), ten)) {\n return (labelSelection) ? 'LabelResizeSouth' : 'ResizeSouth';\n }\n if (canResizeCorner(selectedItems.constraints, 'ResizeNorth', selectedItems.thumbsConstraints, selectedItems) &&\n contains(position, transformPointByMatrix(matrix, { x: x + element.actualSize.width / 2, y: y }), ten)) {\n return (labelSelection) ? 'LabelResizeNorth' : 'ResizeNorth';\n }\n return null;\n}\n/**\n * contains method\\\n *\n * @returns {boolean} contains method .\\\n * @param {PointModel} mousePosition - provide the options value.\n * @param {PointModel} corner - provide the corner value.\n * @param {number} padding - provide the padding value.\n * @private\n */\nexport function contains(mousePosition, corner, padding) {\n if (mousePosition.x >= corner.x - padding && mousePosition.x <= corner.x + padding) {\n if (mousePosition.y >= corner.y - padding && mousePosition.y <= corner.y + padding) {\n return true;\n }\n }\n return false;\n}\n/**\n * hasSelection method\\\n *\n * @returns {boolean} hasSelection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSelection(diagram) {\n if (diagram.selectedItems.nodes.length > 0 || diagram.selectedItems.connectors.length > 0) {\n return true;\n }\n return false;\n}\n/**\n * hasSingleConnection method\\\n *\n * @returns {boolean} hasSingleConnection method .\\\n * @param {Diagram} diagram - provide the options value.\n * @private\n */\nexport function hasSingleConnection(diagram) {\n if (diagram.selectedItems.connectors.length === 1 && !diagram.selectedItems.nodes.length) {\n return true;\n }\n return false;\n}\n/**\n * isSelected method\\\n *\n * @returns {boolean} isSelected method .\\\n * @param {Diagram} diagram - provide the options value.\n * @param {Object} element - provide the options value.\n * @param {boolean} firstLevel - provide the options value.\n * @param {DiagramElement} wrapper - provide the options value.\n * @private\n */\nexport function isSelected(diagram, element, firstLevel, wrapper) {\n if (firstLevel === void 0) { firstLevel = true; }\n if (element instanceof Selector) {\n return true;\n }\n if (element instanceof Node) {\n while (element) {\n if (diagram.selectedItems.nodes.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n if (!firstLevel) {\n element = diagram.nameTable[element.parentId];\n }\n else {\n break;\n }\n }\n }\n else if (element instanceof Connector) {\n if (diagram.selectedItems.connectors.indexOf(element) !== -1 && diagram.selectedItems.annotation === undefined) {\n return true;\n }\n }\n else if (element instanceof ShapeAnnotation || element instanceof PathAnnotation) {\n if (diagram.selectedItems.annotation && diagram.selectedItems.wrapper.children[0].id === wrapper.id) {\n return true;\n }\n }\n return false;\n}\n/**\n * getCursor method\\\n *\n * @returns {boolean} getCursor method .\\\n * @param {Actions} cursor - provide the options value.\n * @param {number} angle - provide the options value.\n * @private\n */\nexport function getCursor(cursor, angle) {\n //to avoid angles less than 0 & angles greater than 360\n angle += 360;\n angle %= 360;\n if (cursor.indexOf('Resize') === -1) {\n return cursors[\"\" + cursor];\n }\n else {\n var dir = cursors[\"\" + cursor];\n if ((angle >= 0 && angle < 25) || (angle >= 160 && angle <= 205) || (angle >= 340 && angle <= 360)) {\n return dir;\n }\n else if ((angle >= 25 && angle <= 70) || (angle >= 205 && angle <= 250)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'ne-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'n-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'nw-resize';\n }\n else {\n return 'e-resize';\n }\n }\n else if ((angle >= 70 && angle <= 115) || (angle >= 250 && angle <= 295)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'e-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'ne-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'n-resize';\n }\n else {\n return 'nw-resize';\n }\n }\n else if ((angle >= 115 && angle <= 155) || (angle >= 295 && angle <= 340)) {\n if (dir === 'n-resize' || dir === 's-resize') {\n return 'nw-resize';\n }\n else if (dir === 'nw-resize' || dir === 'se-resize') {\n return 'e-resize';\n }\n else if (dir === 'e-resize' || dir === 'w-resize') {\n return 'ne-resize';\n }\n }\n else {\n return 'n-resize';\n }\n }\n return cursors[\"\" + cursor];\n}\nvar cursors = {\n 'None': 'default',\n 'Rotate': 'crosshair',\n 'Select': 'default',\n 'Drag': 'move',\n 'ResizeWest': 'w-resize',\n 'ResizeEast': 'e-resize',\n 'ResizeSouth': 's-resize',\n 'ResizeNorth': 'n-resize',\n 'Draw': 'crosshair',\n 'PortDraw': 'crosshair',\n 'ResizeNorthEast': 'ne-resize',\n 'ResizeNorthWest': 'nw-resize',\n 'ResizeSouthEast': 'se-resize',\n 'ResizeSouthWest': 'sw-resize',\n 'ConnectorSourceEnd': 'move',\n 'ConnectorTargetEnd': 'move',\n 'BezierSourceThumb': 'move',\n 'BezierTargetThumb': 'move',\n 'OrthoThumb': 'move',\n 'SegmentEnd': 'move',\n 'Pan': 'grab',\n 'Hyperlink': 'pointer',\n 'PortDrag': 'pointer',\n 'LabelSelect': 'pointer',\n 'LabelDrag': 'move',\n 'LabelRotate': 'crosshair',\n 'LabelResizeWest': 'w-resize',\n 'LabelResizeEast': 'e-resize',\n 'LabelResizeSouth': 's-resize',\n 'LabelResizeNorth': 'n-resize',\n 'LabelResizeNorthEast': 'ne-resize',\n 'LabelResizeNorthWest': 'nw-resize',\n 'LabelResizeSouthEast': 'se-resize',\n 'LabelResizeSouthWest': 'sw-resize'\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Node } from '../objects/node';\nimport { Connector, BezierSegment, StraightSegment } from '../objects/connector';\nimport { Point } from '../primitives/point';\nimport { BpmnSubEvent } from '../objects/node';\nimport { PointPort } from '../objects/port';\nimport { rotatePoint, cloneObject, randomId } from '../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { getFreeHandPath, getPolygonPath } from '../utility/path-util';\nimport { canOutConnect, canInConnect, canAllowDrop, canPortInConnect, canPortOutConnect, canMove } from '../utility/constraints-util';\nimport { transformPointByMatrix, rotateMatrix, identityMatrix } from '../primitives/matrix';\nimport { NodeConstraints, DiagramEvent, PortConstraints } from './../enum/enum';\nimport { TextElement } from '../core/elements/text-element';\nimport { contains } from './actions';\nimport { Selector } from '../objects/node';\nimport { getInOutConnectPorts, cloneBlazorObject, checkPort } from '../utility/diagram-util';\nimport { initializeCSPTemplate, isBlazor } from '@syncfusion/ej2-base';\nimport { findAngle } from '../utility/connector';\n/**\n * Defines the interactive tools\n */\nvar ToolBase = /** @class */ (function () {\n /**\n * Initializes the tool\n *\n * @param {CommandHandler} command Command that is corresponding to the current action\n * @param protectChange\n */\n function ToolBase(command, protectChange) {\n if (protectChange === void 0) { protectChange = false; }\n /**\n * Command that is corresponding to the current action\n */\n this.commandHandler = null;\n // protected deepDiffer: DeepDiffMapper = new DeepDiffMapper();\n /**\n * Sets/Gets whether the interaction is being done\n */\n this.inAction = false;\n /**\n * Sets/Gets the protect change\n */\n this.isProtectChange = false;\n /**\n * Sets/Gets the current element that is under mouse\n */\n this.currentElement = null;\n /** @private */\n this.blocked = false;\n this.isTooltipVisible = false;\n /** @private */\n this.childTable = {};\n /**\n * Sets/Gets the previous object when mouse down\n */\n this.undoElement = { nodes: [], connectors: [] };\n this.checkProperty = true;\n this.undoParentElement = { nodes: [], connectors: [] };\n this.commandHandler = command;\n this.isProtectChange = protectChange;\n }\n ToolBase.prototype.startAction = function (currentElement) {\n this.currentElement = currentElement;\n this.inAction = true;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseDown = function (args) {\n this.currentElement = args.source;\n this.startPosition = this.currentPosition = this.prevPosition = args.position;\n this.isTooltipVisible = true;\n this.startAction(args.source);\n this.checkProperty = true;\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = args.source;\n };\n ToolBase.prototype.checkPropertyValue = function () {\n if (this.checkProperty) {\n this.commandHandler.startTransaction(this.isProtectChange);\n }\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseMove = function (args) {\n this.currentPosition = args.position;\n if (this.inAction) {\n this.commandHandler.startTransaction(this.isProtectChange);\n this.checkProperty = false;\n }\n //this.currentElement = currentElement;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.currentPosition = args.position;\n // this.currentElement = currentElement;\n this.isTooltipVisible = false;\n this.commandHandler.endTransaction(this.isProtectChange);\n this.endAction();\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.mouseDownElement = null;\n };\n ToolBase.prototype.endAction = function () {\n if (!this.isTooltipVisible) {\n this.commandHandler.closeTooltip();\n }\n this.commandHandler = null;\n this.currentElement = null;\n this.currentPosition = null;\n this.inAction = false;\n this.blocked = false;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseWheel = function (args) {\n this.currentPosition = args.position;\n };\n /**\n * @param args\n * @private\n */\n ToolBase.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ToolBase.prototype.updateSize = function (shape, startPoint, endPoint, corner, initialBounds, angle) {\n shape = this.commandHandler.renderContainerHelper(shape) || shape;\n var horizontalsnap = { snapped: false, offset: 0, left: false, right: false };\n var verticalsnap = { snapped: false, offset: 0, top: false, bottom: false };\n var difx = this.currentPosition.x - this.startPosition.x;\n var dify = this.currentPosition.y - this.startPosition.y;\n var snapEnabled = (!(shape instanceof TextElement)) && this.commandHandler.snappingModule\n && this.commandHandler.snappingModule.canSnap();\n var snapLine = snapEnabled ? this.commandHandler.snappingModule.getLayer() : null;\n var rotateAngle = (shape instanceof TextElement) ? angle : shape.rotateAngle;\n var matrix;\n matrix = identityMatrix();\n rotateMatrix(matrix, -rotateAngle, 0, 0);\n var x = shape.offsetX;\n var y = shape.offsetY;\n var w = shape.width;\n var h = shape.height;\n x = x - w * shape.pivot.x;\n y = y - h * shape.pivot.y;\n var deltaWidth = 0;\n var deltaHeight = 0;\n var diff;\n var width = (shape instanceof TextElement) ? shape.actualSize.width : shape.width;\n var height = (shape instanceof TextElement) ? shape.actualSize.height : shape.height;\n switch (corner) {\n case 'ResizeWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n deltaHeight = 1;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width - difx) / width;\n break;\n case 'ResizeEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = 0;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = 1;\n break;\n case 'ResizeNorth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouth':\n deltaWidth = 1;\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n case 'ResizeNorthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n difx;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) :\n dify;\n deltaWidth = (initialBounds.width + difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeNorthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapTop(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height - dify) / height;\n break;\n case 'ResizeSouthEast':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = !snapEnabled ? dify : this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n difx = !snapEnabled ? difx : this.commandHandler.snappingModule.snapRight(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds);\n deltaHeight = (initialBounds.height + dify) / height;\n deltaWidth = (initialBounds.width + difx) / width;\n break;\n case 'ResizeSouthWest':\n diff = transformPointByMatrix(matrix, ({ x: difx, y: dify }));\n difx = diff.x;\n dify = diff.y;\n dify = snapEnabled ? this.commandHandler.snappingModule.snapBottom(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : dify;\n difx = snapEnabled ? this.commandHandler.snappingModule.snapLeft(horizontalsnap, verticalsnap, snapLine, difx, dify, shape, endPoint === startPoint, initialBounds) : difx;\n deltaWidth = (initialBounds.width - difx) / width;\n deltaHeight = (initialBounds.height + dify) / height;\n break;\n }\n return { width: deltaWidth, height: deltaHeight };\n };\n ToolBase.prototype.getPivot = function (corner) {\n switch (corner) {\n case 'ResizeWest':\n return { x: 1, y: 0.5 };\n case 'ResizeEast':\n return { x: 0, y: 0.5 };\n case 'ResizeNorth':\n return { x: 0.5, y: 1 };\n case 'ResizeSouth':\n return { x: 0.5, y: 0 };\n case 'ResizeNorthEast':\n return { x: 0, y: 1 };\n case 'ResizeNorthWest':\n return { x: 1, y: 1 };\n case 'ResizeSouthEast':\n return { x: 0, y: 0 };\n case 'ResizeSouthWest':\n return { x: 1, y: 0 };\n }\n return { x: 0.5, y: 0.5 };\n };\n //method to get node shape name\n ToolBase.prototype.getShapeType = function () {\n var shape;\n // eslint-disable-next-line no-constant-condition\n if (this.commandHandler.diagram.drawingObject.shape.type === 'Image' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'HTML' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'Native' ||\n this.commandHandler.diagram.drawingObject.shape.type === 'Path') {\n shape = this.commandHandler.diagram.drawingObject.shape.type;\n }\n else {\n shape = this.commandHandler.diagram.drawingObject.shape.shape;\n }\n return shape;\n };\n //EJ2-52203-Method to trigger ElementDraw Event when we draw node or connector with the drawing Tool\n ToolBase.prototype.triggerElementDrawEvent = function (source, state, objectType, elementType, isMouseDownAction) {\n var arg = {\n source: source, state: state, objectType: objectType, cancel: false, elementType: elementType\n };\n this.commandHandler.triggerEvent(DiagramEvent.elementDraw, arg);\n if (isMouseDownAction && arg.cancel) {\n {\n this.commandHandler.diagram.resetTool();\n this.inAction = false;\n }\n }\n };\n return ToolBase;\n}());\nexport { ToolBase };\n/**\n * Helps to select the objects\n */\nvar SelectTool = /** @class */ (function (_super) {\n __extends(SelectTool, _super);\n function SelectTool(commandHandler, protectChange, action) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.action = action;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n //draw selected region\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n if (this.mouseDownElement && !canMove(this.mouseDownElement)) {\n this.commandHandler.clearObjectSelection(this.mouseDownElement);\n }\n else {\n this.commandHandler.clearSelectedItems();\n this.commandHandler.drawSelectionRectangle(rect.x, rect.y, rect.width, rect.height);\n }\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n //rubber band selection\n if (!this.commandHandler.isUserHandle(this.currentPosition)) {\n if (Point.equals(this.currentPosition, this.prevPosition) === false && this.inAction) {\n var region = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.doRubberBandSelection(region);\n }\n else {\n //single selection\n var arrayNodes = this.commandHandler.getSelectedObject();\n if (!this.commandHandler.hasSelection() || !args.info || !args.info.ctrlKey) {\n this.commandHandler.clearSelection(args.source === null ? true : false);\n if (this.action === 'LabelSelect') {\n this.commandHandler.labelSelect(args.source, args.sourceWrapper);\n }\n else if (args.source) {\n this.commandHandler.selectObjects([args.source], false, arrayNodes);\n }\n }\n else {\n //handling multiple selection\n if (args && args.source) {\n if (!this.commandHandler.isSelected(args.source)) {\n this.commandHandler.selectObjects([args.source], true);\n }\n else {\n if (args.clickCount === 1) {\n this.commandHandler.unSelect(args.source);\n // this.commandHandler.updateBlazorSelector();\n }\n }\n }\n }\n }\n }\n this.inAction = false;\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n SelectTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return SelectTool;\n}(ToolBase));\nexport { SelectTool };\nvar FixedUserHandleTool = /** @class */ (function (_super) {\n __extends(FixedUserHandleTool, _super);\n function FixedUserHandleTool() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param args\n * @private\n */\n FixedUserHandleTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var val = args.source;\n var fixedUserHandle;\n var iconId = args.sourceWrapper.id;\n for (var i = 0; i < val.fixedUserHandles.length; i++) {\n if (iconId.indexOf(val.fixedUserHandles[parseInt(i.toString(), 10)].id) > -1) {\n fixedUserHandle = val.fixedUserHandles[parseInt(i.toString(), 10)];\n }\n }\n var arg = {\n fixedUserHandle: fixedUserHandle,\n element: args.source\n };\n var trigger = DiagramEvent.fixedUserHandleClick;\n this.commandHandler.triggerEvent(trigger, arg);\n _super.prototype.mouseUp.call(this, args);\n };\n return FixedUserHandleTool;\n}(ToolBase));\nexport { FixedUserHandleTool };\n/**\n * Helps to edit the selected connectors\n */\nvar ConnectTool = /** @class */ (function (_super) {\n __extends(ConnectTool, _super);\n function ConnectTool(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.isConnected = false;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var oldValue, connectors, i, segment, segmentpoint1, segmentpoint2;\n return __generator(this, function (_a) {\n this.inAction = true;\n this.undoElement = undefined;\n if (!(this instanceof ConnectorDrawingTool)) {\n this.undoElement = cloneObject(args.source);\n }\n _super.prototype.mouseDown.call(this, args);\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n this.oldConnector = cloneObject(connectors);\n }\n // Sets the selected segment\n if (this.endPoint === 'BezierSourceThumb' || this.endPoint === 'BezierTargetThumb') {\n for (i = 0; i < connectors.segments.length; i++) {\n segment = connectors.segments[parseInt(i.toString(), 10)];\n segmentpoint1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n segmentpoint2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n //(EJ2-70650)-Unable to drag bezier control thumb, when we increase handleSize value\n //Added below code for drag the bezier control thumb while increasing handle size(For hitPadding)\n if (this.currentElement.handleSize !== connectors.hitPadding) {\n connectors.hitPadding = this.currentElement.handleSize;\n }\n if (contains(this.currentPosition, segmentpoint1, connectors.hitPadding) ||\n contains(this.currentPosition, segmentpoint2, connectors.hitPadding)) {\n this.selectedSegment = segment;\n }\n }\n }\n this.currentPosition = args.position;\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var connector, nodeEndId, portEndId, arg, oldValues, connector, targetPortName, targetNodeNode, target, arg, trigger, obj, entry, obj, entry, connector;\n return __generator(this, function (_a) {\n if (!isBlazor() && this.isConnected && args.source.connectors) {\n connector = args.source.connectors[0];\n nodeEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n portEndId = this.endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n arg = {\n connector: cloneBlazorObject(connector),\n oldValue: { nodeId: this.oldConnector[\"\" + nodeEndId], portId: this.oldConnector[\"\" + portEndId] },\n newValue: { nodeId: connector[\"\" + nodeEndId], portId: connector[\"\" + portEndId] }, cancel: false,\n state: 'Changed', connectorEnd: this.endPoint\n };\n //875655- ConnectionChange Event not triggered in Changed state for port change in same node\n if (connector[\"\" + nodeEndId] !== this.oldConnector[\"\" + nodeEndId] || connector[\"\" + portEndId] !== this.oldConnector[\"\" + portEndId]) {\n this.commandHandler.triggerEvent(DiagramEvent.connectionChange, arg);\n this.isConnected = false;\n }\n }\n this.checkPropertyValue();\n this.commandHandler.updateSelector();\n this.commandHandler.removeSnap();\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n args.source.connectors.length &&\n ((!Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint) ||\n (args.source.connectors[0].sourceID !== this.undoElement.connectors[0].sourceID)))) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n ((!Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint))\n || (args.source.connectors[0].targetID !== this.undoElement.connectors[0].targetID))))) {\n oldValues = void 0;\n connector = void 0;\n if (args.source && args.source.connectors) {\n oldValues = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n targetPortName = void 0;\n targetNodeNode = void 0;\n if (args.target) {\n target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortName = target.id : targetNodeNode = target.id;\n }\n arg = {\n connector: connector, state: 'Completed', targetNode: targetNodeNode,\n oldValue: oldValues, newValue: oldValues, cancel: false, targetPort: targetPortName\n };\n trigger = this.endPoint === 'ConnectorSourceEnd' ? DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n this.commandHandler.removeTerminalSegment(connector, true);\n if (this.undoElement && args.source) {\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'ConnectionChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement),\n category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n else if (!(this instanceof ConnectorDrawingTool) &&\n (this.endPoint === 'BezierTargetThumb' || this.endPoint === 'BezierSourceThumb')) {\n if (this.undoElement && args.source) {\n obj = cloneObject(args.source);\n entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n // this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n //(EJ2-66201) - Exception occurs when mouse-hover on ports in node\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n }\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var tempArgs;\n if ((!(this instanceof ConnectorDrawingTool)) && ((this.endPoint === 'ConnectorSourceEnd' &&\n Point.equals(args.source.connectors[0].sourcePoint, this.undoElement.connectors[0].sourcePoint)) ||\n (this.endPoint === 'ConnectorTargetEnd' &&\n Point.equals(args.source.connectors[0].targetPoint, this.undoElement.connectors[0].targetPoint)))) {\n var oldValue = void 0;\n var connectors = void 0;\n if (args.source && args.source.connectors) {\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connectors = args.source.connectors[0];\n }\n var targetPort = void 0;\n var targetNode = void 0;\n if (args.target) {\n targetNode = args.target.id;\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort || target instanceof BpmnSubEvent) ? targetPort = target.id : targetNode = target.id;\n }\n var arg = {\n connector: connectors, state: 'Start', targetNode: targetNode,\n oldValue: oldValue, newValue: oldValue, cancel: false, targetPort: targetPort\n };\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffX = this.currentPosition.x - this.prevPosition.x;\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var newValue = void 0;\n var oldValue = void 0;\n var inPort = void 0;\n var outPort = void 0;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n if (args.source && args.source.connectors) {\n newValue = { x: this.currentPosition.x, y: this.currentPosition.y };\n oldValue = { x: this.prevPosition.x, y: this.prevPosition.y };\n connector = args.source.connectors[0];\n }\n var targetPortId = void 0;\n var targetNodeId = void 0;\n if (args.target) {\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (target instanceof PointPort) ? targetPortId = target.id : targetNodeId = target.id;\n }\n var arg = {\n connector: connector, state: 'Progress', targetNode: targetNodeId,\n oldValue: oldValue, newValue: newValue, cancel: false, targetPort: targetPortId\n };\n if (!(this instanceof ConnectorDrawingTool)) {\n var trigger = this.endPoint === 'ConnectorSourceEnd' ?\n DiagramEvent.sourcePointChange : DiagramEvent.targetPointChange;\n this.commandHandler.triggerEvent(trigger, arg);\n }\n if (args.target) {\n inPort = getInOutConnectPorts(args.target, true);\n outPort = getInOutConnectPorts(args.target, false);\n }\n if (!arg.cancel && this.inAction && this.endPoint !== undefined && diffX !== 0 || diffY !== 0) {\n // EJ2-65331 - The condition checks whether the cancel argument is true or false\n if (!arg.cancel) {\n this.blocked = !this.commandHandler.dragConnectorEnds(this.endPoint, args.source, this.currentPosition, this.selectedSegment, args.target, targetPortId);\n this.commandHandler.updateSelector();\n }\n if (args.target && ((this.endPoint === 'ConnectorSourceEnd' && (canOutConnect(args.target) || canPortOutConnect(outPort)))\n || (this.endPoint === 'ConnectorTargetEnd' && (canInConnect(args.target) || canPortInConnect(inPort))))) {\n if (this.commandHandler.canDisconnect(this.endPoint, args, targetPortId, targetNodeId)) {\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.isConnected = true;\n }\n var target = this.commandHandler.findTarget(args.targetWrapper, args.target, this.endPoint === 'ConnectorSourceEnd', true);\n if (target instanceof Node) {\n if ((canInConnect(target) && this.endPoint === 'ConnectorTargetEnd')\n || (canOutConnect(target) && this.endPoint === 'ConnectorSourceEnd')) {\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n this.isConnected = true;\n }\n }\n else {\n var isConnect = this.checkConnect(target);\n if (isConnect) {\n this.isConnected = true;\n tempArgs = this.commandHandler.connect(this.endPoint, args, this.canCancel);\n }\n }\n }\n else if (this.endPoint.indexOf('Bezier') === -1) {\n this.isConnected = true;\n tempArgs = this.commandHandler.disConnect(args.source, this.endPoint, this.canCancel);\n this.commandHandler.updateSelector();\n }\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_1 = this.getTooltipContent(args.position);\n var contentTemp = function () {\n return content_1;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ConnectTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n if (tempArgs) {\n this.tempArgs = tempArgs;\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ConnectTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ConnectTool.prototype.getTooltipContent = function (position) {\n return 'X:' + Math.round(position.x) + ' ' + 'Y:' + Math.round(position.y);\n };\n ConnectTool.prototype.checkConnect = function (target) {\n if (canPortInConnect(target) && this.endPoint === 'ConnectorTargetEnd') {\n return true;\n }\n else if (canPortOutConnect(target) && this.endPoint === 'ConnectorSourceEnd') {\n return true;\n }\n else if (!(target.constraints & PortConstraints.None) && !canPortInConnect(target) && !canPortOutConnect(target)\n && (target.constraints === undefined || (target.constraints & (PortConstraints.Default & ~(PortConstraints.InConnect | PortConstraints.OutConnect))) > 0)) {\n return true;\n }\n return false;\n };\n /** @private */\n ConnectTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.prevPosition = null;\n this.endPoint = null;\n };\n return ConnectTool;\n}(ToolBase));\nexport { ConnectTool };\n/**\n * Drags the selected objects\n */\nvar MoveTool = /** @class */ (function (_super) {\n __extends(MoveTool, _super);\n function MoveTool(commandHandler, objType) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.currentTarget = null;\n _this.isStartAction = false;\n _this.canCancel = false;\n _this.canTrigger = false;\n _this.objectType = objType;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseDown = function (args) {\n if (args.source instanceof Node || args.source instanceof Connector) {\n var arrayNodes = this.commandHandler.getSelectedObject();\n this.commandHandler.selectObjects([args.source], args.info && args.info.ctrlKey, arrayNodes);\n var selectedObject = { nodes: [], connectors: [] };\n if (args.source instanceof Node) {\n selectedObject.nodes.push(cloneObject(args.source));\n }\n else {\n selectedObject.connectors.push(cloneObject(args.source));\n }\n this.undoElement = cloneObject(selectedObject);\n }\n else {\n this.undoElement = cloneObject(args.source);\n }\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n if (this.objectType === 'Port') {\n this.portId = args.sourceWrapper.id;\n }\n this.commandHandler.insertBlazorConnector(args.source);\n _super.prototype.mouseDown.call(this, args);\n this.initialOffset = { x: 0, y: 0 };\n };\n /* tslint:disable */\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n MoveTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var oldValues, newValues, obj, historyAdded, object, redoObject, wrapper, arg, canAddHistory, entry, entry_1, snappedPoint, canSplit, i, i, arg, nodes, isEndGroup, temp, i, i, entry;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n historyAdded = false;\n redoObject = { nodes: [], connectors: [] };\n if (this.objectType !== 'Port') {\n if (args.source instanceof Node || args.source instanceof Connector) {\n if (args.source instanceof Node) {\n redoObject.nodes.push(cloneObject(args.source));\n }\n else {\n redoObject.connectors.push(cloneObject(args.source));\n }\n obj = cloneObject(redoObject);\n wrapper = args.source.wrapper;\n obj.offsetX = wrapper.offsetX;\n obj.offsetY = wrapper.offsetY;\n }\n else {\n obj = cloneObject(args.source);\n }\n object = this.commandHandler.renderContainerHelper(args.source) || args.source || this.commandHandler.renderContainerHelper(args.source);\n if ((object.id === 'helper') || (object.id !== 'helper')) {\n //EJ2-71257 - Position change event completed state is not fired on selecting the node first and then dragging the node while changing node width at progress state.\n // If object is instanceof selector then checked the length of selected objects is 1 or not.\n if ((((object instanceof Selector && ((Math.round(object.width) === Math.round(this.undoElement.width) && Math.round(object.height) === Math.round(this.undoElement.height)) || (object.selectedObjects && object.selectedObjects.length === 1))) || !(object instanceof Selector)) && (object.offsetX !== this.undoElement.offsetX || object.offsetY !== this.undoElement.offsetY ||\n object.sourcePoint !== this.undoElement.sourcePoint\n // eslint-disable-next-line max-len\n || object.targetPoint !== this.undoElement.targetPoint)) || this.isSelectionHasConnector(object)) {\n if (args.source) {\n newValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n oldValues = { offsetX: args.source.wrapper.offsetX, offsetY: args.source.wrapper.offsetY };\n }\n arg = {\n source: args.source, state: 'Completed', oldValue: this.intialValue, newValue: newValues,\n target: this.currentTarget, targetPosition: this.currentPosition, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: cloneBlazorObject(this.intialValue), newValue: cloneBlazorObject(newValues),\n target: cloneBlazorObject(this.currentTarget), targetPosition: cloneBlazorObject(this.currentPosition),\n allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n canAddHistory = true;\n //EJ2-69852): Position Change event trigger for clicking second time in swimlane header issue\n if (object.id === 'helper') {\n if (this.canTrigger) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n canAddHistory = true;\n }\n else {\n canAddHistory = false;\n }\n }\n else {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n }\n if (!isPreventHistory && canAddHistory) {\n this.commandHandler.startGroupAction();\n historyAdded = true;\n entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_1 = {\n type: 'SizeChanged', category: 'Internal',\n undoObject: this.undoParentElement, redoObject: this.commandHandler.getSubProcess(args.source)\n };\n this.commandHandler.addHistoryEntry(entry_1);\n }\n this.commandHandler.addHistoryEntry(entry);\n }\n }\n }\n snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, 0, 0);\n this.commandHandler.removeSnap();\n this.commandHandler.removeHighlighter();\n if (args.source && this.currentTarget && canAllowDrop(this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget)) {\n canSplit = true;\n this.commandHandler.drop(this.currentElement, this.currentTarget, this.currentPosition);\n if (this.currentTarget && this.currentTarget instanceof Connector) {\n if (this.commandHandler.diagram.enableConnectorSplit === true) {\n //EJ2-894577- Restricting the connector splitting if any one edge is already connected to the node\n if (this.currentElement && this.currentElement instanceof Node) {\n if (this.currentElement.children !== undefined) {\n for (i = 0; i < this.currentElement.children.length; i++) {\n if (this.currentElement.children[parseInt(i.toString(), 10)] === this.currentTarget.sourceID ||\n this.currentElement.children[parseInt(i.toString(), 10)] === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n }\n else {\n if (this.currentElement.id === this.currentTarget.sourceID || this.currentElement.id === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n if (canSplit) {\n this.commandHandler.connectorSplit(this.currentElement, this.currentTarget);\n }\n }\n else if (this.currentElement instanceof Selector && !(this.commandHandler.PreventConnectorSplit)) {\n if (this.currentElement.nodes[0].children) {\n for (i = 0; i < this.currentElement.nodes[0].children.length; i++) {\n if (this.currentElement.nodes[0].children[parseInt(i.toString(), 10)] === this.currentTarget.sourceID ||\n this.currentElement.nodes[0].children[parseInt(i.toString(), 10)] === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n }\n else {\n if ((this.currentElement.nodes[0]).id === this.currentTarget.sourceID ||\n (this.currentElement.nodes[0]).id === this.currentTarget.targetID) {\n canSplit = false;\n }\n }\n if (canSplit) {\n this.commandHandler.connectorSplit(this.currentElement.nodes[0], this.currentTarget);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n arg = {\n element: args.source, target: this.currentTarget, position: this.currentPosition, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.drop, arg);\n if (!arg.cancel && args.source && this.commandHandler.isParentAsContainer(this.currentTarget) && !this.commandHandler.isTargetSubProcess(this.currentTarget)) {\n nodes = (args.source instanceof Selector) ? args.source.nodes : [args.source];\n isEndGroup = false;\n temp = void 0;\n for (i = 0; i < nodes.length; i++) {\n if (nodes[0].parentId === nodes[parseInt(i.toString(), 10)].parentId) {\n temp = true;\n }\n else {\n temp = false;\n break;\n }\n }\n // 902192: Diagram node resized wrongly while dragging and drop on multiple selected nodes in another lane Issue Fix\n if (this.commandHandler.diagram.selectedItems.nodes.length !== nodes.length) {\n nodes = this.commandHandler.diagram.selectedItems.nodes;\n }\n for (i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container && temp) {\n isEndGroup = true;\n this.commandHandler.updateLaneChildrenZindex(nodes[parseInt(i.toString(), 10)], this.currentTarget);\n this.commandHandler.dropChildToContainer(this.currentTarget, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (historyAdded && this.commandHandler.isContainer && isEndGroup) {\n this.commandHandler.endGroupAction();\n }\n }\n }\n if (args.source && this.currentTarget) {\n this.commandHandler.dropAnnotation(args.source, this.currentTarget);\n }\n this.commandHandler.updateSelector();\n if (historyAdded && !this.commandHandler.isContainer) {\n this.commandHandler.endGroupAction();\n }\n }\n else {\n redoObject.nodes.push(cloneObject(args.source));\n args.portId = this.portId;\n obj = cloneObject(redoObject);\n entry = {\n type: 'PortPositionChanged', objectId: this.portId,\n redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n //EJ2-59309-While drag the connected node the connector endPointChange event does not get trigger\n MoveTool.prototype.connectorEndPointChangeEvent = function (arg, snappedPoint) {\n var selectedElement = arg.source;\n if (selectedElement instanceof Selector && selectedElement.nodes.length > 0) {\n for (var i = 0; i < selectedElement.nodes.length; i++) {\n var node = selectedElement.nodes[parseInt(i.toString(), 10)];\n if (node && node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.inEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'targetPointChange');\n }\n }\n if (node && node.outEdges.length > 0) {\n for (var j = 0; j < node.outEdges.length; j++) {\n var connector = this.commandHandler.diagram.getObject(node.outEdges[parseInt(j.toString(), 10)]);\n this.triggerEndPointEvent(connector, arg, snappedPoint, 'sourcePointChange');\n }\n }\n }\n }\n };\n MoveTool.prototype.triggerEndPointEvent = function (connector, arg, snappedPoint, eventName) {\n var args = {\n connector: connector, state: arg.state, targetNode: connector.targetID, targetPort: connector.targetPortID,\n sourceNode: connector.sourceID, sourcePort: connector.sourcePortID, oldValue: { x: connector.targetPoint.x, y: connector.targetPoint.y },\n newValue: { x: connector.targetPoint.x + (snappedPoint ? snappedPoint.x : 0), y: connector.targetPoint.y + (snappedPoint ? snappedPoint.y : 0) }, cancel: arg.cancel\n };\n this.commandHandler.triggerEvent((eventName === 'targetPointChange') ? DiagramEvent.targetPointChange : DiagramEvent.sourcePointChange, args);\n };\n MoveTool.prototype.isSelectionHasConnector = function (args) {\n if (args.nodes && args.connectors && args.nodes.length > 0 && args.connectors.length > 0 &&\n (args.width !== this.undoElement.width || args.height !== this.undoElement.height)) {\n return true;\n }\n return false;\n };\n // private getBlazorPositionChangeEventArgs(args: IDraggingEventArgs | IBlazorDraggingEventArgs, target: IElement): any {\n // args = {\n // source: cloneBlazorObject(args.source), state: args.state, oldValue: args.oldValue, newValue: args.newValue,\n // target: getObjectType(target) === Connector ? { connector: cloneBlazorObject(target) }\n // : { node: cloneBlazorObject(target) },\n // targetPosition: this.currentPosition, allowDrop: true, cancel: false\n // };\n // return args as IBlazorDraggingEventArgs;\n // }\n /* tslint:disable */\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var isSame = false;\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) ||\n args.source;\n if (object instanceof Node || object instanceof Connector) {\n if (object instanceof Node) {\n if (object.offsetX === this.undoElement.nodes[0].offsetX &&\n object.offsetY === this.undoElement.nodes[0].offsetY) {\n isSame = true;\n }\n }\n else {\n if (Point.equals(object.sourcePoint, this.undoElement.connectors[0].sourcePoint) &&\n Point.equals(object.targetPoint, this.undoElement.connectors[0].targetPoint)) {\n isSame = true;\n }\n }\n }\n else {\n if (object.wrapper.offsetX === this.undoElement.wrapper.offsetX &&\n object.wrapper.offsetY === this.undoElement.wrapper.offsetY) {\n isSame = true;\n }\n }\n var oldValues;\n if (object) {\n oldValues = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n }\n var arg = {\n source: object, state: 'Start', oldValue: oldValues, newValue: oldValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n arg = {\n source: cloneBlazorObject(object), state: 'Start', oldValue: cloneBlazorObject(oldValues),\n newValue: cloneBlazorObject(oldValues),\n target: args.target, targetPosition: args.position, allowDrop: arg.allowDrop, cancel: arg.cancel\n };\n //(EJ2-277624)-In the positionChange event, during the completed state, old and new values remain identical.\n if (!this.isStartAction) {\n this.intialValue = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n }\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg);\n this.connectorEndPointChangeEvent(arg);\n this.isStartAction = true;\n }\n this.currentPosition = args.position;\n if (this.objectType !== 'Port') {\n var x = this.currentPosition.x - this.prevPosition.x;\n var y = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.initialOffset.x + (this.currentPosition.x - this.prevPosition.x);\n var diffY = this.initialOffset.y + (this.currentPosition.y - this.prevPosition.y);\n this.commandHandler.dragOverElement(args, this.currentPosition);\n this.commandHandler.disConnect(args.source);\n this.commandHandler.removeSnap();\n var oldValues_1;\n var newValues = void 0;\n var snappedPoint = this.commandHandler.snapPoint(this.prevPosition, this.currentPosition, diffX, diffY);\n this.initialOffset.x = diffX - snappedPoint.x;\n this.initialOffset.y = diffY - snappedPoint.y;\n if (object) {\n oldValues_1 = { offsetX: object.wrapper.offsetX, offsetY: object.wrapper.offsetY };\n newValues = {\n offsetX: object.wrapper.offsetX + snappedPoint.x,\n offsetY: object.wrapper.offsetY + snappedPoint.y\n };\n }\n if (this.currentTarget && args.target !== this.currentTarget) {\n this.commandHandler.removeChildFromBPmn(args.source, args.target, this.currentTarget);\n }\n this.currentTarget = args.target;\n var arg_1 = {\n source: object, state: 'Progress', oldValue: oldValues_1, newValue: newValues,\n target: args.target, targetPosition: args.position, allowDrop: true, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.positionChange, arg_1);\n this.canTrigger = true;\n this.connectorEndPointChangeEvent(arg_1, snappedPoint);\n if (!arg_1.cancel && !this.canCancel) {\n this.blocked = !this.commandHandler.dragSelectedObjects(snappedPoint.x, snappedPoint.y);\n var blocked = !(this.commandHandler.mouseOver(this.currentElement, this.currentTarget, this.currentPosition));\n this.blocked = this.blocked || blocked;\n }\n this.commandHandler.removeStackHighlighter();\n this.commandHandler.renderStackHighlighter(args);\n if (this.currentTarget && (args.source !== this.currentTarget) &&\n this.commandHandler.isDroppable(args.source, this.currentTarget) && args.source.id !== 'helper') {\n var object_1 = (args.source instanceof Selector) ? args.source.nodes[0] : args.source;\n if ((!this.commandHandler.isParentAsContainer(object_1, true))\n && (object_1.shape.type !== 'SwimLane' && !object_1.shape.isPhase)) {\n if (this.currentTarget.isLane) {\n this.commandHandler.renderStackHighlighter(args, this.currentTarget);\n }\n else {\n this.commandHandler.drawHighlighter(this.currentTarget);\n }\n }\n }\n else {\n this.commandHandler.removeHighlighter();\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_2 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_2;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'MoveTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n }\n else {\n var matrix = identityMatrix();\n var node = args.source;\n rotateMatrix(matrix, -node.rotateAngle || -node.wrapper.rotateAngle, node.offsetX || node.wrapper.offsetX, node.offsetY || node.wrapper.offsetY);\n var prevPosition = transformPointByMatrix(matrix, { x: this.prevPosition.x, y: this.prevPosition.y });\n var position = transformPointByMatrix(matrix, { x: args.position.x, y: args.position.y });\n this.commandHandler.portDrag(args.source, args.sourceWrapper, position.x - prevPosition.x, position.y - prevPosition.y);\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n MoveTool.prototype.getTooltipContent = function (node) {\n return 'X:' + Math.round(node.wrapper.bounds.x) + ' ' + 'Y:' + Math.round(node.wrapper.bounds.y);\n };\n /**\n * @param args\n * @private\n */\n MoveTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n MoveTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n this.currentTarget = null;\n this.prevPosition = null;\n };\n return MoveTool;\n}(ToolBase));\nexport { MoveTool };\n/**\n * Rotates the selected objects\n */\nvar RotateTool = /** @class */ (function (_super) {\n __extends(RotateTool, _super);\n function RotateTool(commandHandler) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.rotateStart = false;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseDown = function (args) {\n this.undoElement = cloneObject(args.source);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var objects = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], objects);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var object, oldValue, arg, obj, entry;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.rotateAngle !== object.wrapper.rotateAngle) {\n oldValue = { rotateAngle: object.wrapper.rotateAngle };\n arg = {\n source: args.source, state: 'Completed', oldValue: oldValue,\n newValue: oldValue, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg);\n obj = void 0;\n obj = cloneObject(args.source);\n entry = {\n type: 'RotationChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.commandHandler.addHistoryEntry(entry);\n this.commandHandler.updateSelector();\n this.rotateStart = false;\n }\n // this.commandHandler.updateBlazorSelector();\n this.canCancel = undefined;\n this.tempArgs = undefined;\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.rotateAngle === object.wrapper.rotateAngle && !this.rotateStart) {\n var oldValue_1 = { rotateAngle: object.wrapper.rotateAngle };\n var arg_2 = {\n source: args.source, state: 'Start', oldValue: oldValue_1, newValue: oldValue_1, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg_2);\n this.rotateStart = true;\n }\n this.currentPosition = args.position;\n var refPoint = { x: object.wrapper.offsetX, y: object.wrapper.offsetY };\n var angle = Point.findAngle(refPoint, this.currentPosition) + 90;\n var snapAngle = this.commandHandler.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n angle = (angle + 360) % 360;\n var oldValue = { rotateAngle: object.wrapper.rotateAngle };\n var newValue = { rotateAngle: angle };\n var arg = {\n source: args.source, state: 'Progress', oldValue: oldValue,\n newValue: newValue, cancel: false\n };\n var arg1 = {\n source: cloneBlazorObject(args.source), state: 'Progress', oldValue: cloneBlazorObject(oldValue),\n newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n this.commandHandler.triggerEvent(DiagramEvent.rotateChange, arg1);\n if (!arg1.cancel) {\n this.blocked = !(this.commandHandler.rotateSelectedItems(angle - object.wrapper.rotateAngle));\n }\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_3 = this.getTooltipContent(args.source);\n var contentTemp = function () {\n return content_3;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'RotateTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n return !this.blocked;\n };\n RotateTool.prototype.getTooltipContent = function (node) {\n return Math.round((node.rotateAngle % 360)).toString() + '\\xB0';\n };\n /**\n * @param args\n * @private\n */\n RotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /** @private */\n RotateTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return RotateTool;\n}(ToolBase));\nexport { RotateTool };\n/**\n * Scales the selected objects\n */\nvar ResizeTool = /** @class */ (function (_super) {\n __extends(ResizeTool, _super);\n function ResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n /** @private */\n _this.resizeStart = false;\n /** @private */\n _this.initialBounds = new Rect();\n _this.canCancel = false;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseDown = function (args) {\n var oldValues;\n this.undoElement = cloneObject(args.source);\n this.undoParentElement = this.commandHandler.getSubProcess(args.source);\n _super.prototype.mouseDown.call(this, args);\n if (this.undoElement.nodes[0] && this.undoElement.nodes[0].children) {\n var elements = [];\n var nodes = this.commandHandler.getAllDescendants(this.undoElement.nodes[0], elements);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n this.childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n this.commandHandler.checkSelection(args.source, this.corner);\n _super.prototype.mouseDown.call(this, args);\n this.initialBounds.x = args.source.wrapper.offsetX;\n this.initialBounds.y = args.source.wrapper.offsetY;\n this.initialBounds.height = args.source.wrapper.actualSize.height;\n this.initialBounds.width = args.source.wrapper.actualSize.width;\n };\n /**\n * @param args\n * @param isPreventHistory\n * @param args\n * @param isPreventHistory\n * @private\n */\n ResizeTool.prototype.mouseUp = function (args, isPreventHistory) {\n return __awaiter(this, void 0, void 0, function () {\n var object, deltaValues, oldValue, arg, obj, entry, entry_2;\n return __generator(this, function (_a) {\n this.checkPropertyValue();\n this.commandHandler.removeSnap();\n this.commandHandler.updateSelector();\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if ((this.undoElement.offsetX !== object.wrapper.offsetX || this.undoElement.offsetY !== object.wrapper.offsetY ||\n this.undoElement.width !== object.wrapper.bounds.width || this.undoElement.height !== object.wrapper.bounds.height)) {\n deltaValues = this.updateSize(args.source, this.currentPosition, this.prevPosition, this.corner, this.initialBounds);\n this.blocked = this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.currentPosition, this.prevPosition, object);\n oldValue = {\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n arg = {\n source: cloneBlazorObject(args.source), state: 'Completed',\n oldValue: this.startValues, newValue: oldValue, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n obj = cloneObject(args.source);\n entry = {\n type: 'SizeChanged', redoObject: cloneObject(obj), undoObject: cloneObject(this.undoElement), category: 'Internal',\n childTable: this.childTable\n };\n this.resizeStart = false;\n if (!isPreventHistory) {\n this.commandHandler.startGroupAction();\n this.commandHandler.addHistoryEntry(entry);\n if (obj.nodes[0] && obj.nodes[0].processId) {\n entry_2 = {\n type: 'SizeChanged', redoObject: this.commandHandler.getSubProcess(args.source),\n undoObject: this.undoParentElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry_2);\n }\n this.commandHandler.endGroupAction();\n }\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/, !this.blocked];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var object;\n object = this.commandHandler.renderContainerHelper(args.source) || args.source;\n if (this.undoElement.offsetX === object.wrapper.offsetX && this.undoElement.offsetY === object.wrapper.offsetY && !this.resizeStart) {\n var oldValue = {\n width: args.source.wrapper.actualSize.width, height: args.source.wrapper.actualSize.height\n };\n //EJ2-866122 - Need to enhance the sizeChange Event\n this.startValues = oldValue;\n var arg = {\n source: args.source, state: 'Start', oldValue: oldValue, newValue: this.currentElement, cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg);\n this.resizeStart = true;\n }\n this.currentPosition = args.position;\n var x = this.currentPosition.x - this.startPosition.x;\n var y = this.currentPosition.y - this.startPosition.y;\n var changes = { x: x, y: y };\n changes = rotatePoint(-this.currentElement.wrapper.rotateAngle, undefined, undefined, changes);\n var sx = (this.currentElement.wrapper.actualSize.width + changes.x) / this.currentElement.wrapper.actualSize.width;\n var sy = (this.currentElement.wrapper.actualSize.height + changes.y) / this.currentElement.wrapper.actualSize.height;\n changes = this.getChanges(changes);\n this.commandHandler.removeSnap();\n var deltaValues = this.updateSize(args.source, this.startPosition, this.currentPosition, this.corner, this.initialBounds);\n this.blocked = !(this.scaleObjects(deltaValues.width, deltaValues.height, this.corner, this.startPosition, this.currentPosition, object));\n if (this.commandHandler.canEnableDefaultTooltip()) {\n var content_4 = this.getTooltipContent(args.source);\n //Task 834121: Content-Security-Policy support for diagram\n var contentTemp = function () {\n return content_4;\n };\n this.commandHandler.showTooltip(args.source, args.position, initializeCSPTemplate(contentTemp), 'ResizeTool', this.isTooltipVisible);\n this.isTooltipVisible = false;\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n ResizeTool.prototype.getTooltipContent = function (node) {\n return 'W:' + Math.round(node.wrapper.bounds.width) + ' ' + 'H:' + Math.round(node.wrapper.bounds.height);\n };\n ResizeTool.prototype.getChanges = function (change) {\n switch (this.corner) {\n case 'ResizeEast':\n return { x: change.x, y: 0 };\n case 'ResizeSouthEast':\n return change;\n case 'ResizeSouth':\n return { x: 0, y: change.y };\n case 'ResizeNorth':\n return { x: 0, y: -change.y };\n case 'ResizeNorthEast':\n return { x: change.x, y: -change.y };\n case 'ResizeNorthWest':\n return { x: -change.x, y: -change.y };\n case 'ResizeWest':\n return { x: -change.x, y: 0 };\n case 'ResizeSouthWest':\n return { x: -change.x, y: change.y };\n }\n return change;\n };\n /**\n * Updates the size with delta width and delta height using scaling.\n */\n /**\n * Aspect ratio used to resize the width or height based on resizing the height or width\n *\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n * @param deltaWidth\n * @param deltaHeight\n * @param corner\n * @param startPoint\n * @param endPoint\n * @param source\n */\n ResizeTool.prototype.scaleObjects = function (deltaWidth, deltaHeight, corner, startPoint, endPoint, source) {\n if (source instanceof Selector && source.nodes.length === 1 && source.nodes[0].constraints & NodeConstraints.AspectRatio) {\n if (corner === 'ResizeWest' || corner === 'ResizeEast' || corner === 'ResizeNorth' || corner === 'ResizeSouth') {\n if (!(deltaHeight === 1 && deltaWidth === 1)) {\n deltaHeight = deltaWidth = Math.max(deltaHeight === 1 ? 0 : deltaHeight, deltaWidth === 1 ? 0 : deltaWidth);\n }\n }\n else {\n deltaHeight = deltaWidth = Math.max(deltaHeight, deltaWidth);\n }\n }\n var oldValue = {\n width: source.width, height: source.height\n };\n this.blocked = this.commandHandler.scaleSelectedItems(deltaWidth, deltaHeight, this.getPivot(this.corner));\n var newValue = {\n width: source.width, height: source.height\n };\n var arg;\n arg = { source: source, state: 'Progress', oldValue: oldValue, newValue: newValue, cancel: false };\n var arg1;\n arg1 = {\n source: cloneBlazorObject(source), state: 'Progress',\n oldValue: cloneBlazorObject(oldValue), newValue: cloneBlazorObject(newValue), cancel: arg.cancel\n };\n this.commandHandler.triggerEvent(DiagramEvent.sizeChange, arg1);\n if (arg1.cancel || this.canCancel) {\n this.commandHandler.scaleSelectedItems(1 / deltaWidth, 1 / deltaHeight, this.getPivot(this.corner));\n }\n return this.blocked;\n };\n return ResizeTool;\n}(ToolBase));\nexport { ResizeTool };\n/**\n * Draws a node that is defined by the user\n */\nvar NodeDrawingTool = /** @class */ (function (_super) {\n __extends(NodeDrawingTool, _super);\n function NodeDrawingTool(commandHandler, sourceObject) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var checkBoundaryConstraints;\n var node = {\n offsetX: this.currentPosition.x, width: 3, height: 3,\n offsetY: this.currentPosition.y\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (checkBoundaryConstraints) {\n this.commandHandler.updateNodeDimension(this.drawingObject, rect);\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var checkBoundaryConstraints;\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, rect);\n if (this.drawingObject && this.drawingObject instanceof Node) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false);\n this.drawingObject = null;\n }\n // this.commandHandler.updateBlazorSelector();\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n NodeDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n NodeDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return NodeDrawingTool;\n}(ToolBase));\nexport { NodeDrawingTool };\n/**\n * Draws a connector that is defined by the user\n */\nvar ConnectorDrawingTool = /** @class */ (function (_super) {\n __extends(ConnectorDrawingTool, _super);\n function ConnectorDrawingTool(commandHandler, endPoint, sourceObject) {\n var _this = _super.call(this, commandHandler, endPoint) || this;\n _this.sourceObject = sourceObject;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseDown = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setFocus();\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n return [2 /*return*/];\n });\n });\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseMove = function (args) {\n this.commandHandler.enableServerDataBinding(false);\n if (this.inAction) {\n var connector = {\n sourcePoint: this.currentPosition, targetPoint: this.currentPosition\n };\n if (!this.drawingObject) {\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n args.source = this.drawingObject;\n this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false);\n //Bug 874781: Port Draw Connection is not proper with group node.\n if (args.actualObject && (args.actualObject.parentId || args.actualObject.children) && this.drawingObject.sourceID === '') {\n this.setTarget(args);\n }\n if (((args.target && args.target instanceof Node) || (args.actualObject && args.sourceWrapper && checkPort(args.actualObject, args.sourceWrapper)))\n && (this.endPoint !== 'ConnectorTargetEnd' || (canInConnect(args.target)))) {\n this.commandHandler.connect(this.endPoint, args);\n }\n this.endPoint = 'ConnectorTargetEnd';\n }\n if (!this.inAction) {\n this.commandHandler.updateSelector();\n //EJ2-899368 : Highlighters for Connector Element Draw with userhandle updated wrongly\n if (args.source && !args.source.isLane && args.sourceWrapper) {\n this.commandHandler.renderHighlighter(args, true);\n }\n }\n _super.prototype.mouseMove.call(this, args);\n this.commandHandler.enableServerDataBinding(true);\n return !this.blocked;\n };\n // Sets the target while drawing connector from the group node port or its children port.\n ConnectorDrawingTool.prototype.setTarget = function (args) {\n if (args.target) {\n if (!args.sourceWrapper.id.includes(args.target.id)) {\n if (args.target.parentId && args.sourceWrapper.id.includes(args.target.parentId)) {\n args.target = this.commandHandler.diagram.nameTable[args.target.parentId];\n }\n }\n }\n else {\n if (!args.sourceWrapper.id.includes(args.actualObject.id)) {\n if (args.actualObject.parentId && args.sourceWrapper.id.includes(args.actualObject.parentId)) {\n args.target = this.commandHandler.diagram.nameTable[args.actualObject.parentId];\n }\n }\n else {\n args.target = args.actualObject;\n }\n }\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseUp = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.commandHandler.enableServerDataBinding(false);\n this.checkPropertyValue();\n if (this.drawingObject && this.drawingObject instanceof Connector) {\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n this.drawingObject = null;\n }\n // this.commandHandler.updateBlazorSelector();\n this.inAction = false;\n this.commandHandler.enableServerDataBinding(true);\n _super.prototype.mouseUp.call(this, args);\n return [2 /*return*/];\n });\n });\n };\n /** @private */\n ConnectorDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n /**\n * @param args\n * @private\n */\n ConnectorDrawingTool.prototype.mouseLeave = function (args) {\n if (this.inAction) {\n this.mouseUp(args);\n }\n };\n return ConnectorDrawingTool;\n}(ConnectTool));\nexport { ConnectorDrawingTool };\nvar TextDrawingTool = /** @class */ (function (_super) {\n __extends(TextDrawingTool, _super);\n function TextDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.commandHandler.clearSelection();\n var node = {\n shape: { type: 'Text' },\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y\n };\n if (!args.source) {\n this.drawingNode = this.commandHandler.drawObject(node);\n }\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (!this.drawingNode) {\n var node = {\n shape: { type: 'Text' }, offsetX: this.currentPosition.x, width: 30, height: 30,\n // EJ2-42640-Text size is different if Text Node is created over another diagram commited by sivakumar sekar\n // commanded style property and added it after the object is drawn\n // style: { strokeDashArray: '2 2', fill: 'transparent' },\n offsetY: this.currentPosition.y\n };\n this.drawingNode = this.commandHandler.drawObject(node);\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n else {\n this.drawingNode.style.strokeColor = 'black';\n this.drawingNode.style.strokeDashArray = '2 2';\n this.drawingNode.style.fill = 'transparent';\n }\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var rect = Rect.toBounds([this.prevPosition, this.currentPosition]);\n this.commandHandler.updateNodeDimension(this.drawingNode, rect);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n TextDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n if (this.drawingNode) {\n this.drawingNode.style.strokeColor = 'none';\n this.drawingNode.style.fill = 'none';\n }\n else {\n this.drawingNode = args.source;\n }\n if (this.drawingNode && (this.drawingNode instanceof Node)) {\n this.commandHandler.addText(this.drawingNode, this.currentPosition);\n }\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n TextDrawingTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n return TextDrawingTool;\n}(ToolBase));\nexport { TextDrawingTool };\n/**\n * Pans the diagram control on drag\n */\nvar ZoomPanTool = /** @class */ (function (_super) {\n __extends(ZoomPanTool, _super);\n function ZoomPanTool(commandHandler, zoom) {\n var _this = _super.call(this, commandHandler) || this;\n _this.zooming = zoom;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.commandHandler.setBlazorDiagramProps(true);\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (!this.zooming && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var difX = this.currentPosition.x - this.prevPosition.x;\n var difY = this.currentPosition.y - this.prevPosition.y;\n this.commandHandler.scroll(difX, difY, this.currentPosition);\n }\n else if (args.moveTouches && args.moveTouches.length && args.moveTouches.length >= 2) {\n var startTouch0 = args.startTouches[0];\n var startTouch1 = args.startTouches[1];\n var moveTouch0 = args.moveTouches[0];\n var moveTouch1 = args.moveTouches[1];\n var scale = this.getDistance(moveTouch0, moveTouch1) / this.getDistance(startTouch0, startTouch1);\n var focusPoint = args.position;\n this.commandHandler.zoom(scale, 0, 0, focusPoint);\n this.updateTouch(startTouch0, moveTouch0);\n this.updateTouch(startTouch1, moveTouch1);\n }\n }\n this.commandHandler.dataBinding();\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n ZoomPanTool.prototype.mouseUp = function (args) {\n this.commandHandler.setBlazorDiagramProps(false);\n this.checkPropertyValue();\n this.commandHandler.updatePanState(false);\n _super.prototype.mouseUp.call(this, args);\n this.inAction = false;\n };\n /** @private */\n ZoomPanTool.prototype.endAction = function () {\n _super.prototype.endAction.call(this);\n };\n ZoomPanTool.prototype.getDistance = function (touch1, touch2) {\n var x = touch2.pageX - touch1.pageX;\n var y = touch2.pageY - touch1.pageY;\n return Math.sqrt((x * x) + (y * y));\n };\n ZoomPanTool.prototype.updateTouch = function (startTouch, moveTouch) {\n startTouch.pageX = moveTouch.pageX;\n startTouch.pageY = moveTouch.pageY;\n };\n return ZoomPanTool;\n}(ToolBase));\nexport { ZoomPanTool };\n/**\n * Animate the layout during expand and collapse\n */\nvar ExpandTool = /** @class */ (function (_super) {\n __extends(ExpandTool, _super);\n function ExpandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n ExpandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.commandHandler.initExpand(args);\n _super.prototype.mouseUp.call(this, args);\n };\n return ExpandTool;\n}(ToolBase));\nexport { ExpandTool };\n/**\n * Opens the annotation hypeLink at mouse up\n */\nvar LabelTool = /** @class */ (function (_super) {\n __extends(LabelTool, _super);\n function LabelTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tab = '_blank';\n var windowOption = '';\n var windowHeight = window.innerHeight;\n var windowWidth = window.innerWidth;\n var screenTop = window.screenTop;\n var screenLeft = window.screenLeft;\n if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'CurrentTab') {\n tab = '_self';\n }\n else if (args.sourceWrapper.hyperlink.hyperlinkOpenState === 'NewWindow') {\n windowOption = 'height=' + windowHeight + ',width=' + windowWidth + ',top=' + screenTop + ',left=' + screenLeft;\n }\n var win = window.open(args.sourceWrapper.hyperlink.link, tab, windowOption);\n win.focus();\n _super.prototype.mouseUp.call(this, args);\n };\n return LabelTool;\n}(ToolBase));\nexport { LabelTool };\n/**\n * Draws a Polygon shape node dynamically using polygon Tool\n */\nvar PolygonDrawingTool = /** @class */ (function (_super) {\n __extends(PolygonDrawingTool, _super);\n function PolygonDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n // 916722: Apply custom style to polygon shape by removing the default style during polygon drawing.\n shape: {\n type: 'Basic',\n shape: 'Polygon',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Node', this.getShapeType(), true);\n this.drawingObject = this.commandHandler.drawObject(node);\n }\n else {\n var pt = void 0;\n var obj = this.drawingObject.shape;\n pt = obj.points[obj.points.length - 1];\n pt = { x: pt.x, y: pt.y };\n this.drawingObject.shape.points.push(pt);\n }\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n obj.points[obj.points.length - 1].x = this.currentPosition.x;\n obj.points[obj.points.length - 1].y = this.currentPosition.y;\n this.drawingObject.wrapper.children[0].data = getPolygonPath(this.drawingObject.shape.points);\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Node', this.getShapeType(), false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n return true;\n };\n /**\n * @param args\n * @param dblClickArgs\n * @param args\n * @param dblClickArgs\n * @private\n */\n PolygonDrawingTool.prototype.mouseUp = function (args, dblClickArgs) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.inAction = false;\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Polygon Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Node', this.getShapeType(), false);\n }\n this.endAction();\n };\n /**\n * @param args\n * @private\n */\n PolygonDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /** @private */\n PolygonDrawingTool.prototype.endAction = function () {\n this.inAction = false;\n this.drawingObject = null;\n };\n return PolygonDrawingTool;\n}(ToolBase));\nexport { PolygonDrawingTool };\n/**\n * Draws a PolyLine Connector dynamically using PolyLine Drawing Tool\n */\nvar PolyLineDrawingTool = /** @class */ (function (_super) {\n __extends(PolyLineDrawingTool, _super);\n function PolyLineDrawingTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject;\n obj.targetPoint = this.currentPosition;\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Progress', 'Connector', this.drawingObject.type, false);\n this.commandHandler.updateConnectorPoints(obj);\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n if (!this.drawingObject) {\n var connector = {\n id: 'Connector',\n type: 'Straight',\n sourcePoint: this.currentPosition,\n targetPoint: this.currentPosition\n };\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n if (this.inAction) {\n this.drawingObject = this.commandHandler.drawObject(connector);\n }\n }\n else {\n var drawObject = this.drawingObject;\n var segment = void 0;\n segment = new StraightSegment(drawObject, 'segments', { type: 'Straight' }, true);\n segment.point = this.currentPosition;\n drawObject.segments[drawObject.segments.length - 1] = segment;\n }\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseWheel = function (args) {\n _super.prototype.mouseWheel.call(this, args);\n this.mouseMove(args);\n };\n /**\n * @param args\n * @private\n */\n PolyLineDrawingTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n if (this.drawingObject) {\n var drawObject = this.drawingObject;\n drawObject.segments[drawObject.segments.length - 1].point = { x: 0, y: 0 };\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Polyline Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n }\n }\n this.endAction();\n };\n /** @private */\n PolyLineDrawingTool.prototype.endAction = function () {\n this.drawingObject = null;\n this.inAction = false;\n };\n return PolyLineDrawingTool;\n}(ToolBase));\nexport { PolyLineDrawingTool };\nvar LabelDragTool = /** @class */ (function (_super) {\n __extends(LabelDragTool, _super);\n function LabelDragTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n this.annotationId = args.sourceWrapper.id;\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n var difx = this.currentPosition.x - this.prevPosition.x;\n var dify = this.currentPosition.y - this.prevPosition.y;\n var node = args.source;\n if (node instanceof Node) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, 0, 0);\n var diff = transformPointByMatrix(matrix, { x: difx, y: dify });\n difx = diff.x;\n dify = diff.y;\n }\n if (this.inAction) {\n this.commandHandler.labelDrag(args.source, args.sourceWrapper, difx, dify);\n this.commandHandler.updateSelector();\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoValue = args.source;\n this.inAction = false;\n var entryValue = {\n type: 'AnnotationPropertyChanged',\n objectId: this.annotationId, undoObject: cloneObject(this.undoElement),\n category: 'Internal', redoObject: cloneObject(redoValue)\n };\n this.commandHandler.addHistoryEntry(entryValue);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelDragTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelDragTool;\n}(ToolBase));\nexport { LabelDragTool };\nvar LabelResizeTool = /** @class */ (function (_super) {\n __extends(LabelResizeTool, _super);\n function LabelResizeTool(commandHandler, corner) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.corner = corner;\n return _this;\n }\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.annotationId = args.source.wrapper.children[0].id;\n this.undoElement = cloneObject(object);\n var annotation = args.source.wrapper.children[0];\n this.initialBounds = {\n x: annotation.offsetX,\n y: annotation.offsetY,\n width: annotation.actualSize.width,\n height: annotation.actualSize.height\n };\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n this.resizeObject(args);\n }\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var redoObject = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.inAction = false;\n var entry = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoObject), undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n /**\n * @param args\n * @private\n */\n LabelResizeTool.prototype.resizeObject = function (args) {\n var object;\n object = (args.source.nodes.length) ? args.source.nodes[0] : args.source.connectors[0];\n var textElement = args.source.wrapper.children[0];\n var deltaWidth;\n var deltaHeight;\n var center = { x: textElement.offsetX, y: textElement.offsetY };\n var rotateAngle = textElement.rotateAngle;\n rotateAngle += (object instanceof Node) ? object.rotateAngle : 0;\n rotateAngle = (rotateAngle + 360) % 360;\n var trans = identityMatrix();\n rotateMatrix(trans, rotateAngle, center.x, center.y);\n var corner = this.corner.slice(5);\n var pivot = this.updateSize(textElement, this.startPosition, this.currentPosition, corner, this.initialBounds, rotateAngle);\n var x = textElement.offsetX - textElement.actualSize.width * textElement.pivot.x;\n var y = textElement.offsetY - textElement.actualSize.height * textElement.pivot.y;\n var pivotPoint = this.getPivot(corner);\n pivotPoint = { x: x + textElement.actualSize.width * pivotPoint.x, y: y + textElement.actualSize.height * pivotPoint.y };\n var point = transformPointByMatrix(trans, pivotPoint);\n pivot.x = point.x;\n pivot.y = point.y;\n deltaWidth = pivot.width;\n deltaHeight = pivot.height;\n deltaWidth = (deltaWidth < 0) ? 1 : deltaWidth;\n deltaHeight = (deltaHeight < 0) ? 1 : deltaHeight;\n this.commandHandler.labelResize(object, args.source.annotation, deltaWidth, deltaHeight, pivot, args.source);\n this.commandHandler.updateSelector();\n };\n return LabelResizeTool;\n}(ToolBase));\nexport { LabelResizeTool };\nvar LabelRotateTool = /** @class */ (function (_super) {\n __extends(LabelRotateTool, _super);\n function LabelRotateTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseDown = function (args) {\n this.inAction = true;\n this.annotationId = args.source.wrapper.children[0].id;\n var object = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n this.undoElement = cloneObject(object);\n _super.prototype.mouseDown.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (args.source) {\n if (this.inAction) {\n var object = args.source.nodes[0] ? args.source.nodes[0] :\n args.source.connectors[0];\n var annotation = void 0;\n annotation = (args.source.annotation);\n this.commandHandler.labelRotate(object, annotation, this.currentPosition, args.source);\n this.commandHandler.updateSelector();\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n this.inAction = false;\n var redoEntry = (args.source.nodes.length) ?\n args.source.nodes[0] : args.source.connectors[0];\n var entryObject = {\n type: 'AnnotationPropertyChanged', objectId: this.annotationId,\n redoObject: cloneObject(redoEntry),\n undoObject: cloneObject(this.undoElement), category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entryObject);\n _super.prototype.mouseUp.call(this, args);\n };\n /**\n * @param args\n * @private\n */\n LabelRotateTool.prototype.mouseLeave = function (args) {\n this.mouseUp(args);\n };\n return LabelRotateTool;\n}(ToolBase));\nexport { LabelRotateTool };\n/**\n * EJ2-33302 - Freehand drawing support in diagram control.\n */\nvar FreeHandTool = /** @class */ (function (_super) {\n __extends(FreeHandTool, _super);\n function FreeHandTool(commandHandler) {\n return _super.call(this, commandHandler, true) || this;\n }\n /**\n * mouseMove - Collect the points using current mouse position and convert it into pathData.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n if (this.inAction) {\n var obj = this.drawingObject.shape;\n var pt = this.currentPosition;\n obj.points.push(pt);\n this.drawingObject.wrapper.children[0].data = getFreeHandPath(this.drawingObject.shape.points);\n obj.data = getFreeHandPath(obj.points);\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(args.source, 'Progress', 'Connector', this.drawingObject.type, false);\n if (this.inAction && Point.equals(this.currentPosition, this.prevPosition) === false) {\n var region = Rect.toBounds(this.drawingObject.shape.points);\n this.commandHandler.updateNodeDimension(this.drawingObject, region);\n }\n }\n return true;\n };\n /**\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseDown = function (args) {\n _super.prototype.mouseDown.call(this, args);\n this.inAction = true;\n this.startPoint = { x: this.startPosition.x, y: this.startPosition.y };\n var node = {\n offsetX: this.currentPosition.x,\n offsetY: this.currentPosition.y,\n width: 5, height: 5,\n style: { strokeColor: 'black', strokeWidth: 1, fill: 'transparent' },\n shape: {\n type: 'Path',\n points: [{ x: this.startPoint.x, y: this.startPoint.y }, { x: this.currentPosition.x, y: this.currentPosition.y }]\n }\n };\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(args.source, 'Start', 'Connector', this.commandHandler.diagram.drawingObject.type, true);\n this.drawingObject = this.commandHandler.drawObject(node);\n };\n /**\n * mouseUp - Remove the drawn object. Reduce and smoothen the collected points and create\n * a bezier connector using the smoothened points.\n * @param args\n * @private\n */\n FreeHandTool.prototype.mouseUp = function (args) {\n this.checkPropertyValue();\n var tolerance = 10;\n var smoothValue = 0.5;\n if (this.inAction) {\n this.inAction = false;\n var obj = this.drawingObject.shape;\n var points = obj.points;\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n var prevId = this.drawingObject.id;\n var prevObj = this.commandHandler.diagram.nameTable[\"\" + prevId];\n this.commandHandler.diagram.remove(prevObj);\n points = this.pointReduction(points, tolerance);\n //EJ2-69816 - Added below code to set the allow segment reset as false to avoid the unwanted segment reset.\n var newObj = {\n id: 'newConnector' + randomId(), type: 'Bezier',\n sourcePoint: { x: points[0].x, y: points[0].y }, targetPoint: { x: points[points.length - 1].x, y: points[points.length - 1].y },\n //EJ2-873504[BUG]- Source and target decorator for free hand connector is not rendered.\n segments: [], bezierSettings: { allowSegmentsReset: false }\n };\n this.drawingObject = this.commandHandler.drawObject(newObj);\n this.drawingObject = this.bezierCurveSmoothness(points, smoothValue, this.drawingObject, obj);\n this.commandHandler.updateConnectorPoints(this.drawingObject);\n this.commandHandler.addObjectToDiagram(this.drawingObject);\n // 920152: elementDraw event not triggered for Freehand Drawing tool\n this.triggerElementDrawEvent(this.drawingObject, 'Completed', 'Connector', this.drawingObject.type, false);\n //(EJ2-70838)- Added code to resolve style property not added dynamically for freehand connector\n // Added code to resolve style property not added dynamically for freehand connector\n _super.prototype.mouseUp.call(this, args);\n }\n };\n /**\n * Reduce the collected points based on tolerance value.\n * @param points\n * @param tolerance\n * @returns points\n */\n FreeHandTool.prototype.pointReduction = function (points, tolerance) {\n if (points === null || points.length < 3) {\n return points;\n }\n var firstPoint = 0;\n var lastPoint = points.length - 1;\n var pointIndex = [];\n pointIndex.push(firstPoint);\n pointIndex.push(lastPoint);\n while (points[parseInt(firstPoint.toString(), 10)] === (points[parseInt(lastPoint.toString(), 10)])) {\n lastPoint--;\n }\n this.reduction(points, firstPoint, lastPoint, tolerance, pointIndex);\n var returnedPoints = [];\n pointIndex.sort(function (a, b) { return a - b; });\n pointIndex.forEach(function (element) {\n returnedPoints.push(points[parseInt(element.toString(), 10)]);\n });\n return returnedPoints;\n };\n FreeHandTool.prototype.reduction = function (points, firstPoint, lastPoint, tolerance, pointIndex) {\n var maxDistance = 0;\n var largestPointIndex = 0;\n for (var i = firstPoint; i < lastPoint; i++) {\n var distance = this.perpendicularDistance(points[parseInt(firstPoint.toString(), 10)], points[parseInt(lastPoint.toString(), 10)], points[parseInt(i.toString(), 10)]);\n if (distance > maxDistance) {\n maxDistance = distance;\n largestPointIndex = i;\n }\n }\n if (maxDistance > tolerance && largestPointIndex !== 0) {\n pointIndex.push(largestPointIndex);\n this.reduction(points, firstPoint, largestPointIndex, tolerance, pointIndex);\n this.reduction(points, largestPointIndex, lastPoint, tolerance, pointIndex);\n }\n };\n /**\n * Calculate the perpendicular distance of each point with first and last points\n * @param point1\n * @param point2\n * @param point3\n * @returns\n */\n FreeHandTool.prototype.perpendicularDistance = function (point1, point2, point3) {\n var area = Math.abs(.5 * ((point1.x * point2.y - point2.x * point1.y) +\n (point2.x * point3.y - point3.x * point2.y) + (point3.x * point1.y - point1.x * point3.y)));\n var base = Math.sqrt(Math.pow(point1.x - point2.x, 2) + Math.pow(point1.y - point2.y, 2));\n var height = area / base * 2;\n return height;\n };\n /**\n * Smoothen the bezier curve based on the points and smoothValue.\n * @param points\n * @param smoothValue\n * @param drawingObject\n * @param obj\n * @returns drawingObject\n */\n FreeHandTool.prototype.bezierCurveSmoothness = function (points, smoothValue, drawingObject, obj) {\n if (points.length < 3) {\n return drawingObject;\n }\n for (var i = 0; i < points.length - 1; i++) {\n var pointx1 = points[parseInt(i.toString(), 10)].x;\n var pointy1 = points[parseInt(i.toString(), 10)].y;\n var pointx2 = points[i + 1].x;\n var pointy2 = points[i + 1].y;\n var pointx0 = void 0;\n var pointy0 = void 0;\n if (i === 0) {\n var previousPoint = points[parseInt(i.toString(), 10)];\n pointx0 = previousPoint.x;\n pointy0 = previousPoint.y;\n }\n else {\n pointx0 = points[i - 1].x;\n pointy0 = points[i - 1].y;\n }\n var pointx3 = void 0;\n var pointy3 = void 0;\n if (i === points.length - 2) {\n var nextPoint = points[i + 1];\n pointx3 = nextPoint.x;\n pointy3 = nextPoint.y;\n }\n else {\n pointx3 = points[i + 2].x;\n pointy3 = points[i + 2].y;\n }\n var xc1 = (pointx0 + pointx1) / 2.0;\n var yc1 = (pointy0 + pointy1) / 2.0;\n var xc2 = (pointx1 + pointx2) / 2.0;\n var yc2 = (pointy1 + pointy2) / 2.0;\n var xc3 = (pointx2 + pointx3) / 2.0;\n var yc3 = (pointy2 + pointy3) / 2.0;\n var point0 = {};\n var point1 = {};\n var point2 = {};\n var point3 = {};\n point0.x = pointx0;\n point0.y = pointy0;\n point1.x = pointx1;\n point1.y = pointy1;\n point2.x = pointx2;\n point2.y = pointy2;\n point3.x = pointx3;\n point3.y = pointy3;\n var len1 = Point.findLength(point0, point1);\n var len2 = Point.findLength(point1, point2);\n var len3 = Point.findLength(point2, point3);\n var k1 = len1 / (len1 + len2);\n var k2 = len2 / (len2 + len3);\n var xm1 = xc1 + (xc2 - xc1) * k1;\n var ym1 = yc1 + (yc2 - yc1) * k1;\n var xm2 = xc2 + (xc3 - xc2) * k2;\n var ym2 = yc2 + (yc3 - yc2) * k2;\n var Controlpointx1 = xm1 + (xc2 - xm1) * smoothValue + pointx1 - xm1;\n var Controlpointy1 = ym1 + (yc2 - ym1) * smoothValue + pointy1 - ym1;\n var Controlpointx2 = xm2 + (xc2 - xm2) * smoothValue + pointx2 - xm2;\n var Controlpointy2 = ym2 + (yc2 - ym2) * smoothValue + pointy2 - ym2;\n var segment = new BezierSegment(obj, 'segments', { type: 'Bezier' }, true);\n var cnPt1 = { x: Controlpointx1, y: Controlpointy1 };\n var cnPt2 = { x: Controlpointx2, y: Controlpointy2 };\n var segSourcePoint = { x: pointx1, y: pointy1 };\n var segTargetPoint = { x: pointx2, y: pointy2 };\n segment.type = 'Bezier';\n drawingObject.segments[parseInt(i.toString(), 10)] = segment;\n if (i === 0) {\n cnPt1 = { x: pointx1, y: pointy1 };\n }\n if (i === points.length - 2) {\n cnPt2 = { x: pointx2, y: pointy2 };\n }\n drawingObject.segments[parseInt(i.toString(), 10)].vector1 = { angle: findAngle(segSourcePoint, cnPt1), distance: Point.findLength(segSourcePoint, cnPt1) };\n drawingObject.segments[parseInt(i.toString(), 10)].vector2 = { angle: findAngle(segTargetPoint, cnPt2), distance: Point.findLength(segTargetPoint, cnPt2) };\n drawingObject.segments[parseInt(i.toString(), 10)].point = segTargetPoint;\n }\n return drawingObject;\n };\n return FreeHandTool;\n}(ToolBase));\nexport { FreeHandTool };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, CollectionFactory, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, StrokeStyle } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { TextElement } from '../core/elements/text-element';\nimport { Transform, ConnectorConstraints, ControlPointsVisibility, PortVisibility, ElementAction } from '../enum/enum';\nimport { PortConstraints, BezierSmoothness } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { findAngle, findConnectorPoints, getOuterBounds } from '../utility/connector';\nimport { getAnnotationPosition, alignLabelOnSegments, updateConnector, checkPortRestriction, updatePortEdges, getPortsPosition, getPathOffset } from '../utility/diagram-util';\nimport { setUMLActivityDefaults, initFixedUserHandlesSymbol } from '../utility/diagram-util';\nimport { findDistance, findPath, updatePathElement, setConnectorDefaults } from '../utility/diagram-util';\nimport { randomId, getFunction } from './../utility/base-util';\nimport { flipConnector } from './../utility/diagram-util';\nimport { PathElement } from '../core/elements/path-element';\nimport { PathAnnotation } from './annotation';\nimport { Canvas } from '../core/containers/canvas';\nimport { getDecoratorShape, getPortShape } from './dictionary/common';\nimport { DiagramAction } from '../enum/enum';\nimport { NodeBase } from './node-base';\nimport { DiagramTooltip } from './tooltip';\nimport { identityMatrix, rotateMatrix, scaleMatrix, transformPointsByMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getTemplateContent, getContent } from '../utility/dom-util';\nimport { SymbolSize } from './preview';\nimport { ConnectorFixedUserHandle } from './fixed-user-handle';\nimport { ResizeTool } from '../interaction/tool';\nimport { PathPort } from './port';\nvar getConnectorType = function (obj) {\n //Removed isBlazor code\n if (obj) {\n switch (obj.type) {\n case 'Bpmn':\n return BpmnFlow;\n case 'UmlActivity':\n return ActivityFlow;\n case 'UmlClassifier':\n return RelationShip;\n default:\n return ConnectorShape;\n }\n }\n return ConnectorShape;\n};\nvar getSegmentType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Straight':\n return StraightSegment;\n case 'Bezier':\n return BezierSegment;\n case 'Orthogonal':\n return OrthogonalSegment;\n default:\n return StraightSegment;\n }\n }\n return undefined;\n};\n/**\n * Decorators are used to decorate the end points of the connector with some predefined path geometry\n */\nvar Decorator = /** @class */ (function (_super) {\n __extends(Decorator, _super);\n function Decorator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(10)\n ], Decorator.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], Decorator.prototype, \"height\", void 0);\n __decorate([\n Property('Arrow')\n ], Decorator.prototype, \"shape\", void 0);\n __decorate([\n Complex({ fill: 'black', strokeColor: 'black', strokeWidth: 1 }, ShapeStyle)\n ], Decorator.prototype, \"style\", void 0);\n __decorate([\n Complex({ x: 0, y: 0.5 }, Point)\n ], Decorator.prototype, \"pivot\", void 0);\n __decorate([\n Property('')\n ], Decorator.prototype, \"pathData\", void 0);\n return Decorator;\n}(ChildProperty));\nexport { Decorator };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar Vector = /** @class */ (function (_super) {\n __extends(Vector, _super);\n function Vector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Vector.prototype, \"angle\", void 0);\n __decorate([\n Property(0)\n ], Vector.prototype, \"distance\", void 0);\n return Vector;\n}(ChildProperty));\nexport { Vector };\n/**\n * Describes the length and angle between the control point and the start point of bezier segment\n */\nvar BezierSettings = /** @class */ (function (_super) {\n __extends(BezierSettings, _super);\n function BezierSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(ControlPointsVisibility.All)\n ], BezierSettings.prototype, \"controlPointsVisibility\", void 0);\n __decorate([\n Property('FreeForm')\n ], BezierSettings.prototype, \"segmentEditOrientation\", void 0);\n __decorate([\n Property(BezierSmoothness.Default)\n ], BezierSettings.prototype, \"smoothness\", void 0);\n __decorate([\n Property(true)\n ], BezierSettings.prototype, \"allowSegmentsReset\", void 0);\n return BezierSettings;\n}(ChildProperty));\nexport { BezierSettings };\n/**\n * Sets the type of the connector\n */\nvar ConnectorShape = /** @class */ (function (_super) {\n __extends(ConnectorShape, _super);\n function ConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], ConnectorShape.prototype, \"type\", void 0);\n return ConnectorShape;\n}(ChildProperty));\nexport { ConnectorShape };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar ActivityFlow = /** @class */ (function (_super) {\n __extends(ActivityFlow, _super);\n function ActivityFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Object')\n ], ActivityFlow.prototype, \"flow\", void 0);\n __decorate([\n Property(30)\n ], ActivityFlow.prototype, \"exceptionFlowHeight\", void 0);\n return ActivityFlow;\n}(ConnectorShape));\nexport { ActivityFlow };\n/**\n * Sets the type of the flow in a BPMN Process\n */\nvar BpmnFlow = /** @class */ (function (_super) {\n __extends(BpmnFlow, _super);\n function BpmnFlow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Sequence')\n ], BpmnFlow.prototype, \"flow\", void 0);\n __decorate([\n Property('Normal')\n ], BpmnFlow.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"message\", void 0);\n __decorate([\n Property('Default')\n ], BpmnFlow.prototype, \"association\", void 0);\n return BpmnFlow;\n}(ConnectorShape));\nexport { BpmnFlow };\n/**\n * Defines the behavior of connector segments\n */\nvar ConnectorSegment = /** @class */ (function (_super) {\n __extends(ConnectorSegment, _super);\n // tslint:disable-next-line:no-any\n function ConnectorSegment(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n _this.points = [];\n return _this;\n }\n __decorate([\n Property('Straight')\n ], ConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], ConnectorSegment.prototype, \"allowDrag\", void 0);\n return ConnectorSegment;\n}(ChildProperty));\nexport { ConnectorSegment };\n/**\n * Defines the behavior of straight segments\n */\nvar StraightSegment = /** @class */ (function (_super) {\n __extends(StraightSegment, _super);\n function StraightSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class StraightSegment\n *\n * @private\n */\n StraightSegment.prototype.getClassName = function () {\n return 'StraightSegment';\n };\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], StraightSegment.prototype, \"point\", void 0);\n return StraightSegment;\n}(ConnectorSegment));\nexport { StraightSegment };\n/**\n * Defines the behavior of bezier segments\n */\nvar BezierSegment = /** @class */ (function (_super) {\n __extends(BezierSegment, _super);\n function BezierSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the name of class BezierSegment\n */\n BezierSegment.prototype.getClassName = function () {\n return 'BezierSegment';\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.getPoints = function (segments, start) {\n var points = [];\n if (points.length > 0 || start != null) {\n var st = points.length > 0 ? points[points.length - 1] : start;\n var bezier = this.bezireToPoly(st, segments);\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line prefer-spread\n points.push.apply(points, bezier);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.bezireToPoly = function (start, segment) {\n var points = [];\n if (segment) {\n var bezSeg = segment;\n var pt0 = start;\n var pt1 = bezSeg.bezierPoint1;\n var pt2 = bezSeg.bezierPoint2;\n var pt3 = { x: bezSeg.points[1].x, y: bezSeg.points[1].y };\n this.flattenCubicBezier(points, pt0, pt1, pt2, pt3, 10);\n }\n return points;\n };\n /**\n * @private\n * Returns the total points of the bezier curve\n */\n BezierSegment.prototype.flattenCubicBezier = function (points, ptStart, ptCtrl1, ptCtrl2, ptEnd, tolerance) {\n var max = ((Point.findLength(ptStart, ptCtrl1) + Point.findLength(ptCtrl1, ptCtrl2)\n + Point.findLength(ptCtrl2, ptEnd)) / tolerance);\n var i;\n for (i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * ptStart.x +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.x +\n 3 * t * t * (1 - t) * ptCtrl2.x +\n t * t * t * ptEnd.x;\n var y = (1 - t) * (1 - t) * (1 - t) * ptStart.y +\n 3 * t * (1 - t) * (1 - t) * ptCtrl1.y +\n 3 * t * t * (1 - t) * ptCtrl2.y +\n t * t * t * ptEnd.y;\n points.push({ x: x, y: y });\n }\n };\n __decorate([\n Property('Horizontal')\n ], BezierSegment.prototype, \"orientation\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], BezierSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], BezierSegment.prototype, \"vector2\", void 0);\n return BezierSegment;\n}(StraightSegment));\nexport { BezierSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar OrthogonalSegment = /** @class */ (function (_super) {\n __extends(OrthogonalSegment, _super);\n function OrthogonalSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the module of class OrthogonalSegment\n *\n * @private\n */\n OrthogonalSegment.prototype.getClassName = function () {\n return 'OrthogonalSegment';\n };\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], OrthogonalSegment.prototype, \"direction\", void 0);\n return OrthogonalSegment;\n}(ConnectorSegment));\nexport { OrthogonalSegment };\n/**\n * Defines the behavior of orthogonal segments\n */\nvar DiagramConnectorSegment = /** @class */ (function (_super) {\n __extends(DiagramConnectorSegment, _super);\n function DiagramConnectorSegment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @private\n * Returns the module of class OrthogonalSegment\n */\n DiagramConnectorSegment.prototype.getClassName = function () {\n return 'DiagramConnectorSegment';\n };\n __decorate([\n Property('Straight')\n ], DiagramConnectorSegment.prototype, \"type\", void 0);\n __decorate([\n Property(true)\n ], DiagramConnectorSegment.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point1\", void 0);\n __decorate([\n Complex({ x: 0, y: 0 }, Point)\n ], DiagramConnectorSegment.prototype, \"point2\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector1\", void 0);\n __decorate([\n Complex({ angle: 0, distance: 0 }, Vector)\n ], DiagramConnectorSegment.prototype, \"vector2\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"length\", void 0);\n __decorate([\n Property(null)\n ], DiagramConnectorSegment.prototype, \"direction\", void 0);\n return DiagramConnectorSegment;\n}(ChildProperty));\nexport { DiagramConnectorSegment };\n/**\n * Get the direction of the control points while the bezier is connected to the node\n */\nexport function getDirection(bounds, points, excludeBounds) {\n var center = bounds.center;\n var direction;\n var part = excludeBounds ? 45 : (180 / (2 + 2 / (bounds.height / bounds.width)));\n var fourty5 = part;\n var one35 = (180 - part);\n var two25 = one35 + (2 * part);\n var three15 = 360 - part;\n var angle = findAngle(points, center);\n if (angle > fourty5 && angle < one35) {\n return direction = 'top';\n }\n else if (angle > one35 && angle < two25) {\n return direction = 'right';\n }\n else if (angle > two25 && angle < three15) {\n return direction = 'bottom';\n }\n else {\n return direction = 'left';\n }\n}\nexport function isEmptyVector(element) {\n if (!element.distance && !element.angle) {\n return true;\n }\n return false;\n}\n/**\n * Get the bezier points if control points are not given.\n */\nexport function getBezierPoints(sourcePoint, targetPoint, direction) {\n var distance = 60;\n var value = { x: 0, y: 0 };\n if (!direction) {\n if (Math.abs(targetPoint.x - sourcePoint.x) > Math.abs(targetPoint.y - sourcePoint.y)) {\n direction = sourcePoint.x < targetPoint.x ? 'right' : 'left';\n }\n else {\n direction = sourcePoint.y < targetPoint.y ? 'bottom' : 'top';\n }\n }\n switch (direction) {\n case 'bottom':\n case 'top':\n distance = Math.min(Math.abs(sourcePoint.y - targetPoint.y) * 0.45, distance);\n value = { x: sourcePoint.x, y: sourcePoint.y + (direction === 'bottom' ? distance : -distance) };\n break;\n case 'right':\n case 'left':\n distance = Math.min(Math.abs(sourcePoint.x - targetPoint.x) * 0.45, distance);\n value = { x: sourcePoint.x + (direction === 'right' ? distance : -distance), y: sourcePoint.y };\n break;\n }\n return value;\n}\n/**\n * Get the bezier curve bounds.\n */\nexport function getBezierBounds(startPoint, controlPoint1, controlPoint2, endPoint, connector) {\n var minx = 0;\n var miny = 0;\n var maxx = 0;\n var maxy = 0;\n var tolerancevalue = 3;\n var max = Number((connector.distance(controlPoint1, startPoint) +\n connector.distance(controlPoint2, controlPoint1) +\n connector.distance(endPoint, controlPoint2)) / tolerancevalue);\n if (max !== 0) {\n for (var i = 0; i <= max; i++) {\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.x +\n 3 * t * t * (1 - t) * controlPoint2.x +\n t * t * t * endPoint.x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * controlPoint1.y +\n 3 * t * t * (1 - t) * controlPoint2.y +\n t * t * t * endPoint.y;\n if (i === 0) {\n minx = maxx = x;\n miny = maxy = y;\n }\n else {\n minx = Math.min(x, minx);\n miny = Math.min(y, miny);\n maxx = Math.max(x, maxx);\n maxy = Math.max(y, maxy);\n }\n }\n }\n return {\n x: minx, y: miny, width: maxx - minx, height: maxy - miny,\n left: minx, top: miny, right: (minx + (maxx - minx)), bottom: (miny + (maxy - miny)),\n center: { x: (minx + (maxx - minx)) / 2, y: (miny + (maxy - miny)) / 2 }\n };\n}\n/**\n * Get the intermediate bezier curve for point over connector\n */\nexport function bezierPoints(connector, startPoint, point1, point2, endPoint, i, max) {\n var pt = { x: 0, y: 0 };\n var t = i / max;\n var x = (1 - t) * (1 - t) * (1 - t) * startPoint.x +\n 3 * t * (1 - t) * (1 - t) * point1.x +\n 3 * t * t * (1 - t) * point2.x +\n t * t * t * endPoint.x;\n pt.x = x;\n var y = (1 - t) * (1 - t) * (1 - t) * startPoint.y +\n 3 * t * (1 - t) * (1 - t) * point1.y +\n 3 * t * t * (1 - t) * point2.y +\n t * t * t * endPoint.y;\n pt.y = y;\n return pt;\n}\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar MultiplicityLabel = /** @class */ (function (_super) {\n __extends(MultiplicityLabel, _super);\n function MultiplicityLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], MultiplicityLabel.prototype, \"optional\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"lowerBounds\", void 0);\n __decorate([\n Property(undefined)\n ], MultiplicityLabel.prototype, \"upperBounds\", void 0);\n return MultiplicityLabel;\n}(ChildProperty));\nexport { MultiplicityLabel };\n/**\n * Defines the behavior of the UMLActivity Classifier multiplicity connection defaults\n */\nvar ClassifierMultiplicity = /** @class */ (function (_super) {\n __extends(ClassifierMultiplicity, _super);\n function ClassifierMultiplicity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('OneToOne')\n ], ClassifierMultiplicity.prototype, \"type\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"target\", void 0);\n __decorate([\n Complex({}, MultiplicityLabel)\n ], ClassifierMultiplicity.prototype, \"source\", void 0);\n return ClassifierMultiplicity;\n}(ChildProperty));\nexport { ClassifierMultiplicity };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar RelationShip = /** @class */ (function (_super) {\n __extends(RelationShip, _super);\n function RelationShip() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('UmlClassifier')\n ], RelationShip.prototype, \"type\", void 0);\n __decorate([\n Property('Aggregation')\n ], RelationShip.prototype, \"relationship\", void 0);\n __decorate([\n Property('Directional')\n ], RelationShip.prototype, \"associationType\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], RelationShip.prototype, \"multiplicity\", void 0);\n return RelationShip;\n}(ConnectorShape));\nexport { RelationShip };\n/**\n * Connector shape for blazor\n */\nvar DiagramConnectorShape = /** @class */ (function (_super) {\n __extends(DiagramConnectorShape, _super);\n function DiagramConnectorShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], DiagramConnectorShape.prototype, \"type\", void 0);\n __decorate([\n Property('Directional')\n ], DiagramConnectorShape.prototype, \"associationType\", void 0);\n __decorate([\n Property('Aggregation')\n ], DiagramConnectorShape.prototype, \"relationship\", void 0);\n __decorate([\n Complex({}, ClassifierMultiplicity)\n ], DiagramConnectorShape.prototype, \"multiplicity\", void 0);\n __decorate([\n Property('Sequence')\n ], DiagramConnectorShape.prototype, \"bpmnFlow\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"message\", void 0);\n __decorate([\n Property('Normal')\n ], DiagramConnectorShape.prototype, \"sequence\", void 0);\n __decorate([\n Property('Default')\n ], DiagramConnectorShape.prototype, \"association\", void 0);\n __decorate([\n Property('Object')\n ], DiagramConnectorShape.prototype, \"umlActivityFlow\", void 0);\n __decorate([\n Property(30)\n ], DiagramConnectorShape.prototype, \"exceptionFlowHeight\", void 0);\n return DiagramConnectorShape;\n}(ChildProperty));\nexport { DiagramConnectorShape };\n/**\n * Connectors are used to create links between nodes\n */\nvar Connector = /** @class */ (function (_super) {\n __extends(Connector, _super);\n // tslint:disable-next-line:no-any\n function Connector(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.bridges = [];\n /** @private */\n _this.status = 'None';\n /** @private */\n _this.outEdges = [];\n /** @private */\n _this.inEdges = [];\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (defaultValue && defaultValue.shape && defaultValue.shape.type !== 'None') {\n setConnectorDefaults(defaultValue, _this);\n }\n return _this;\n }\n /* tslint:disable */\n Connector.prototype.setPortID = function (diagram, isTarget) {\n if (this.targetID && this.sourceID) {\n var targetNode = diagram.nameTable[this.targetID];\n var sourceNode = diagram.nameTable[this.sourceID];\n var ports = isTarget ? (targetNode && targetNode.ports) : (sourceNode && sourceNode.ports);\n var port = void 0;\n for (var i = 0; ports && i < ports.length; i++) {\n port = ports[parseInt(i.toString(), 10)];\n if (this.targetPortID === port.id && isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.InConnect)) {\n this.targetPortID = '';\n }\n }\n else if (this.sourcePortID === port.id && !isTarget) {\n if ((port.constraints & PortConstraints.None) || !(port.constraints & PortConstraints.OutConnect)) {\n this.sourcePortID = '';\n }\n }\n }\n }\n };\n /* tslint:enable */\n /** @private */\n // tslint:disable-next-line:no-any\n Connector.prototype.init = function (diagram) {\n if (!this.id) {\n this.id = randomId();\n }\n if (this.sourcePortID) {\n this.setPortID(diagram);\n }\n if (this.targetPortID) {\n this.setPortID(diagram, true);\n }\n var bpmnElement;\n var container = new Canvas();\n var segment = new PathElement();\n segment.id = this.id + '_path';\n var srcDecorator = new PathElement();\n var targetDecorator = new PathElement();\n segment = this.getSegmentElement(this, segment);\n //let bounds: Rect;\n var points = [];\n points = this.type === 'Bezier' ? this.intermediatePoints : this.getConnectorPoints(this.type);\n points = this.clipDecorators(this, points);\n var bounds = Rect.toBounds(points);\n container.width = bounds.width;\n container.height = bounds.height;\n container.offsetX = bounds.x + container.pivot.x * bounds.width;\n container.offsetY = bounds.y + container.pivot.y * bounds.height;\n switch (this.shape.type) {\n case 'Bpmn':\n // eslint-disable-next-line no-case-declarations\n var flow = this.shape.flow;\n switch (flow) {\n case 'Sequence':\n bpmnElement = this.getBpmnSequenceFlow();\n break;\n case 'Association':\n bpmnElement = new PathElement();\n bpmnElement.visible = false;\n this.getBpmnAssociationFlow();\n break;\n case 'Message':\n bpmnElement = this.getBpmnMessageFlow();\n segment = this.getSegmentElement(this, segment);\n this.updateShapePosition(this, bpmnElement);\n break;\n }\n break;\n case 'UmlActivity':\n // eslint-disable-next-line no-case-declarations\n var activityFlow = this.shape.flow;\n switch (activityFlow) {\n case 'Object':\n this.getUMLObjectFlow();\n break;\n case 'Exception':\n this.getUMLExceptionFlow(segment);\n break;\n }\n break;\n case 'UmlClassifier':\n this.getConnectorRelation();\n break;\n }\n var anglePoints = this.intermediatePoints;\n if (this.type === 'Bezier') {\n var firstSegment = this.segments[0];\n var lastSegment = this.segments[this.segments.length - 1];\n anglePoints = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n var accessContent = 'getDescription';\n var getDescription = diagram[\"\" + accessContent];\n //const strokeWidth: number = this.sourceWrapper ? this.sourceWrapper.style.strokeWidth / 2 / 2 : 0;\n srcDecorator = this.getDecoratorElement(points[0], anglePoints[1], this.sourceDecorator, true, getDescription);\n targetDecorator = this.getDecoratorElement(points[points.length - 1], anglePoints[anglePoints.length - 2], this.targetDecorator, false, getDescription);\n srcDecorator.id = this.id + '_srcDec';\n targetDecorator.id = this.id + '_tarDec';\n segment.style = this.style;\n /* tslint:disable:no-string-literal */\n segment.style['fill'] = 'transparent';\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(this, diagram);\n segment.description = wrapperContent ? wrapperContent : this.id;\n }\n container.style.strokeColor = 'transparent';\n container.style.fill = 'transparent';\n container.style.strokeWidth = 0;\n container.children = [segment, srcDecorator, targetDecorator];\n container.id = this.id;\n if (bpmnElement !== undefined) {\n container.children.push(bpmnElement);\n }\n container.offsetX = segment.offsetX;\n container.offsetY = segment.offsetY;\n container.width = segment.width;\n container.height = segment.height;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n container.children.push(this.getAnnotationElement(this.annotations[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, getDescription, diagram.element.id, diagram.annotationTemplate));\n }\n for (var i = 0; this.fixedUserHandles !== undefined, i < this.fixedUserHandles.length; i++) {\n container.children.push(this.getFixedUserHandle(this.fixedUserHandles[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, diagram.fixedUserHandleTemplate, diagram.element.id));\n }\n // Feature 826644: Support to add ports to the connector.\n this.initPorts(getDescription, container, bounds);\n this.wrapper = container;\n return container;\n };\n /** @private */\n Connector.prototype.initPorts = function (accessibilityContent, container, bounds) {\n for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) {\n container.children.push(this.initPort(this.ports[parseInt(i.toString(), 10)], this.intermediatePoints, bounds, accessibilityContent));\n }\n };\n // Feature 826644: Support to add ports to the connector. Added below method to init the connector port.\n /** @private */\n Connector.prototype.initPort = function (ports, points, bounds, accessibilityContent) {\n var portWrapper = new PathElement();\n portWrapper.height = ports.height;\n portWrapper.width = ports.width;\n portWrapper.margin = ports.margin;\n var pathdata = (ports.shape === 'Custom') ? ports.pathData : getPortShape(ports.shape);\n portWrapper.data = pathdata;\n portWrapper.horizontalAlignment = ports.horizontalAlignment;\n portWrapper.verticalAlignment = ports.verticalAlignment;\n // eslint-disable-next-line prefer-const\n portWrapper = this.initPortWrapper(ports, points, bounds, portWrapper, this);\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(portWrapper, this);\n }\n portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id;\n portWrapper.elementActions = portWrapper.elementActions | ElementAction.ElementIsPort;\n portWrapper.isPathPort = true;\n return portWrapper;\n };\n // Feature 826644: Support to add ports to the connector. Added below method to init the connector portwrapper.\n /** @private */\n Connector.prototype.initPortWrapper = function (ports, points, bounds, portContent, Connector) {\n ports.id = ports.id || randomId();\n // Creates port element\n var pivotPoint = { x: 0, y: 0 };\n var getPointloop = getPortsPosition(points, ports, bounds);\n var newPoint = getPointloop.point;\n portContent.id = this.id + '_' + (ports.id);\n var style = ports.style;\n portContent.style = {\n fill: style.fill, strokeColor: style.strokeColor, gradient: null,\n opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth\n };\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) };\n pivotPoint.x = bounds.width * offsetPoint.x;\n pivotPoint.y = bounds.height * offsetPoint.y;\n var align = alignLabelOnSegments(ports, getPointloop.angle, points);\n var hAlign = align.hAlign;\n var vAlign = align.vAlign;\n var horizor;\n var verzor;\n if (hAlign === 'left') {\n horizor = 'Left';\n pivotPoint.x += ports.displacement.x;\n }\n else if (hAlign === 'right') {\n horizor = 'Right';\n pivotPoint.x -= ports.displacement.x;\n }\n else if (hAlign === 'center') {\n horizor = 'Center';\n }\n if (vAlign === 'top') {\n verzor = 'Top';\n pivotPoint.y += ports.displacement.y;\n }\n else if (vAlign === 'bottom') {\n verzor = 'Bottom';\n pivotPoint.y -= ports.displacement.y;\n }\n else if (vAlign === 'center') {\n verzor = 'Center';\n }\n portContent.horizontalAlignment = horizor;\n portContent.verticalAlignment = verzor;\n if (Connector && Connector.flipMode !== 'Label' && Connector.flipMode !== 'None') {\n portContent = updatePortEdges(portContent, this.flip, ports);\n }\n else {\n portContent = updatePortEdges(portContent, 'None', ports);\n }\n portContent.float = true;\n portContent.connectionDirection = ports.connectionDirection;\n portContent.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute');\n portContent.relativeMode = 'Point';\n portContent.visible = checkPortRestriction(ports, PortVisibility.Visible) &&\n !checkPortRestriction(ports, PortVisibility.Hover) && !checkPortRestriction(ports, PortVisibility.Connect) ? true : false;\n portContent.elementActions = portContent.elementActions | ElementAction.ElementIsPort;\n return portContent;\n };\n Connector.prototype.getConnectorRelation = function () {\n var shape = this.shape;\n if (shape.relationship === 'Association') {\n this.segments[0].type = 'Straight';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Inheritance') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n else if (shape.relationship === 'Composition') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Aggregation') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'Diamond';\n this.targetDecorator.shape = 'None';\n }\n else if (shape.relationship === 'Dependency') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'OpenArrow';\n }\n else if (shape.relationship === 'Realization') {\n this.segments[0].type = 'Orthogonal';\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'Arrow';\n }\n if (shape.associationType === 'BiDirectional') {\n this.sourceDecorator.shape = 'None';\n this.targetDecorator.shape = 'None';\n }\n var text1 = '';\n //let lower: MultiplicityLabelModel;\n //let upper: MultiplicityLabelModel;\n var sourceText = '';\n var targetText = '';\n var text = '';\n if (shape.multiplicity.source) {\n shape.multiplicity.source.lowerBounds = shape.multiplicity.source.lowerBounds;\n shape.multiplicity.source.upperBounds = shape.multiplicity.source.upperBounds;\n }\n if (shape.multiplicity.target) {\n shape.multiplicity.target.lowerBounds = shape.multiplicity.target.lowerBounds;\n shape.multiplicity.target.upperBounds = shape.multiplicity.target.upperBounds;\n }\n var lower = shape.multiplicity.source;\n var upper = shape.multiplicity.target;\n text = lower.upperBounds ? lower.lowerBounds + '...' + lower.upperBounds : lower.lowerBounds;\n text1 = upper.upperBounds ? upper.lowerBounds + '...' + upper.upperBounds : upper.lowerBounds;\n if (shape.multiplicity.type === 'ManyToOne') {\n shape.multiplicity.target.optional = false;\n sourceText = text ? text : '*';\n targetText = '1';\n }\n if (shape.multiplicity.type === 'OneToMany') {\n shape.multiplicity.source.optional = false;\n targetText = text1 ? text1 : '*';\n sourceText = '1';\n }\n //831806 -Added ManyToMany relationship for UML class connector annotation label\n if (shape.multiplicity.type === 'ManyToMany') {\n sourceText = text ? text : '*';\n targetText = text1 ? text1 : '*';\n }\n if (shape.multiplicity.type === 'OneToOne') {\n shape.multiplicity.target.optional = false;\n shape.multiplicity.source.optional = false;\n sourceText = '1';\n targetText = '1';\n }\n this.annotations = [\n {\n id: this.id + 'sourcelabel', content: sourceText, offset: 0, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n },\n {\n id: this.id + 'targetlabel', content: targetText, offset: 1, alignment: 'Before',\n margin: { right: 5, bottom: 5 }\n }\n ];\n };\n Connector.prototype.getBpmnSequenceFlow = function () {\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData;\n if ((this.shape.sequence) === 'Normal' && this.type !== 'Bezier') {\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Default') {\n segment = this.getSegmentElement(this, segment);\n var anglePoints = this.intermediatePoints;\n pathseq = updatePathElement(anglePoints, this);\n this.targetDecorator.shape = 'Arrow';\n }\n if ((this.shape.sequence) === 'Conditional') {\n this.targetDecorator.shape = 'Arrow';\n this.sourceDecorator.shape = 'Diamond';\n pathseq.id = this.id + this.shape.type;\n }\n return pathseq;\n };\n /** @private */\n Connector.prototype.getUMLObjectFlow = function () {\n if (this.annotations) {\n for (var i = 0; i < this.annotations.length; i++) {\n this.annotations[parseInt(i.toString(), 10)].content = '[' + this.annotations[parseInt(i.toString(), 10)].content + ']';\n }\n }\n };\n /** @private */\n Connector.prototype.getUMLExceptionFlow = function (segment) {\n this.type = 'Straight';\n var height = (this.shape.exceptionFlowHeight) / 2;\n var midPt = { x: (this.targetPoint.x + this.sourcePoint.x) / 2, y: (this.targetPoint.y + this.sourcePoint.y) / 2 };\n var xDist = midPt.x - this.sourcePoint.x;\n var yDist = midPt.y - this.sourcePoint.y;\n var dist = Math.sqrt(xDist * xDist + yDist * yDist);\n var fractionOfTotal = (height) / dist;\n var midPt2 = { x: midPt.x - xDist * fractionOfTotal, y: midPt.y - yDist * fractionOfTotal };\n var midPt1 = { x: midPt.x + xDist * fractionOfTotal, y: midPt.y + yDist * fractionOfTotal };\n var matrix = identityMatrix();\n rotateMatrix(matrix, 315, midPt.x, midPt.y);\n this.segments = [];\n var segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt1) }, true);\n (this.segments).push(segments);\n segments = new StraightSegment(this, 'segments', { type: 'Straight', point: transformPointByMatrix(matrix, midPt2) }, true);\n (this.segments).push(segments);\n segment = this.getSegmentElement(this, segment);\n };\n Connector.prototype.getBpmnAssociationFlow = function () {\n if ((this.shape.association) === 'Default') {\n this.targetDecorator.shape = 'None';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'Directional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n if ((this.shape.association) === 'BiDirectional') {\n this.targetDecorator.shape = 'OpenArrow';\n this.sourceDecorator.shape = 'OpenArrow';\n this.style.strokeDashArray = '2 2';\n }\n };\n // 882378 - Added below code to provide template support for fixedUserHandles in connectors\n /** @private */\n Connector.prototype.getFixedUserHandle = function (fixedUserHandle, points, bounds, fixedUserHandleTemplate, diagramId) {\n var fixedUserHandleContainer;\n if (fixedUserHandle.pathData === '' && fixedUserHandleTemplate) {\n fixedUserHandleContainer = new DiagramHtmlElement(this.id, diagramId, undefined, fixedUserHandleTemplate);\n fixedUserHandleContainer.isTemplate = true;\n fixedUserHandleContainer.template = getContent(fixedUserHandleContainer, true, fixedUserHandle);\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n }\n else {\n fixedUserHandleContainer = new Canvas();\n var children = [];\n fixedUserHandleContainer.children = children;\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n var symbolIcon = initFixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n }\n fixedUserHandleContainer.float = true;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n this.updateAnnotation(fixedUserHandle, points, bounds, fixedUserHandleContainer);\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n return fixedUserHandleContainer;\n };\n Connector.prototype.getBpmnMessageFlow = function () {\n var segmentMessage = new PathElement();\n this.targetDecorator.shape = 'Arrow';\n this.targetDecorator.width = 10;\n this.targetDecorator.height = 10;\n this.sourceDecorator.shape = 'Circle';\n this.sourceDecorator.style.fill = 'white';\n this.targetDecorator.style.fill = 'white';\n if (((this.shape.message) === 'InitiatingMessage') ||\n ((this.shape.message) === 'NonInitiatingMessage')) {\n segmentMessage.id = this.id + '_' + (this.shape.message);\n segmentMessage.width = 25;\n segmentMessage.height = 15;\n segmentMessage.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n segmentMessage.horizontalAlignment = 'Center';\n segmentMessage.verticalAlignment = 'Center';\n segmentMessage.transform = Transform.Self;\n segmentMessage.style.fill = (this.shape.message) === 'NonInitiatingMessage' ? 'lightgrey' : 'white';\n }\n return segmentMessage;\n };\n /** @private */\n Connector.prototype.distance = function (pt1, pt2) {\n return findDistance(pt1, pt2);\n };\n /** @private */\n Connector.prototype.findPath = function (sourcePt, targetPt) {\n return findPath(sourcePt, targetPt);\n };\n /** @private */\n Connector.prototype.getAnnotationElement = function (annotation, points, bounds, getDescription, diagramId, annotationTemplate) {\n annotation.id = annotation.id || randomId();\n var textele;\n //Removed isBlazor code\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n textele = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n textele.templateFn = baseTemplateCompiler(annotation.template);\n textele.isTemplate = true;\n }\n //908155-Annotation template update wrongly while do interaction for connector\n if (annotation.height === undefined && annotation.annotationType === 'String' && (annotation.template || annotation.content === '')) {\n annotation.height = bounds.height;\n }\n textele = getTemplateContent(textele, annotation, annotationTemplate, diagram);\n }\n else {\n textele = new TextElement();\n //876030 - Adding hyperlink for connectors\n var link = annotation.hyperlink.link ? annotation.hyperlink : undefined;\n textele.style = annotation.style;\n textele.style.color = link ? link.color || textele.hyperlink.color : annotation.style.color;\n textele.hyperlink.link = annotation.hyperlink.link || undefined;\n textele.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined;\n textele.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined;\n textele.content = link ? link.content ||\n textele.hyperlink.link : annotation.content;\n }\n textele.constraints = annotation.constraints;\n textele.visible = annotation.visibility;\n textele.annotationVisibility = textele.visible ? 'Visible' : 'Collapsed';\n textele.rotateAngle = annotation.rotateAngle;\n textele.horizontalAlignment = annotation.horizontalAlignment;\n textele.verticalAlignment = annotation.verticalAlignment;\n textele.width = annotation.width;\n textele.height = annotation.height;\n if (bounds.width !== undefined && !annotation.template) {\n textele.width = (annotation.width || bounds.width) - annotation.margin.left - annotation.margin.right;\n }\n textele.margin = annotation.margin;\n textele.id = this.id + '_' + annotation.id;\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var description = getFunction(getDescription);\n if (description) {\n wrapperContent = description(annotation, this);\n }\n textele.description = wrapperContent ? wrapperContent : textele.id;\n this.updateAnnotation(annotation, points, bounds, textele);\n return textele;\n };\n /** @private */\n Connector.prototype.updateAnnotation = function (annotation, points, bounds, textElement, canRefresh) {\n //let getPointloop: SegmentInfo;\n //let align: Alignment; let hAlign: string;\n var pivotPoint = { x: 0, y: 0 };\n //Bug 881512: Wrapping of the connector annotation at run time not working properly.\n //To refresh the annotation at run time while moving connector end points or while moving nodes connected with connector.\n if ((textElement instanceof TextElement) && (!canRefresh)) {\n textElement.refreshTextElement();\n }\n textElement.width = (annotation.width || bounds.width);\n var getPointloop = getAnnotationPosition(points, annotation, bounds);\n var newPoint = getPointloop.point;\n if (annotation instanceof PathAnnotation && annotation.segmentAngle) {\n textElement.rotateAngle = annotation.rotateAngle + getPointloop.angle;\n textElement.rotateAngle = (textElement.rotateAngle + 360) % 360;\n }\n if (bounds.width === 0) {\n bounds.width = this.style.strokeWidth;\n }\n if (bounds.height === 0) {\n bounds.height = this.style.strokeWidth;\n }\n var offsetPoint = { x: ((newPoint.x - bounds.x) / bounds.width), y: ((newPoint.y - bounds.y) / bounds.height) };\n pivotPoint.x = bounds.width * offsetPoint.x;\n pivotPoint.y = bounds.height * offsetPoint.y;\n var align = alignLabelOnSegments(annotation, getPointloop.angle, points);\n var hAlign = align.hAlign;\n var vAlign = align.vAlign;\n var horizor;\n var verzor;\n if (hAlign === 'left') {\n horizor = 'Left';\n pivotPoint.x += annotation.displacement.x;\n }\n else if (hAlign === 'right') {\n horizor = 'Right';\n pivotPoint.x -= annotation.displacement.x;\n }\n else if (hAlign === 'center') {\n horizor = 'Center';\n }\n if (vAlign === 'top') {\n verzor = 'Top';\n pivotPoint.y += annotation.displacement.y;\n }\n else if (vAlign === 'bottom') {\n verzor = 'Bottom';\n pivotPoint.y -= annotation.displacement.y;\n }\n else if (vAlign === 'center') {\n verzor = 'Center';\n }\n textElement.horizontalAlignment = horizor;\n textElement.verticalAlignment = verzor;\n textElement.setOffsetWithRespectToBounds(pivotPoint.x, pivotPoint.y, 'Absolute');\n textElement.relativeMode = 'Point';\n };\n /** @private */\n Connector.prototype.getConnectorPoints = function (type, points, layoutOrientation, lineDistribution) {\n //const width: number = Math.abs(this.sourcePoint.x - this.targetPoint.x);\n //const height: number = Math.abs(this.sourcePoint.y - this.targetPoint.y);\n points = findConnectorPoints(this, layoutOrientation, lineDistribution);\n var newPoints = points.slice(0);\n if (newPoints && newPoints.length > 0) {\n this.sourcePoint = newPoints[0];\n this.targetPoint = newPoints[newPoints.length - 1];\n }\n return newPoints;\n };\n /** @private */\n Connector.prototype.clipDecorator = function (connector, points, isSource, diagramAction) {\n var point = { x: 0, y: 0 };\n var start = { x: 0, y: 0 };\n var end = { x: 0, y: 0 };\n var length = points.length;\n start = !isSource ? points[length - 1] : points[0];\n end = !isSource ? points[length - 2] : points[1];\n var len = Point.distancePoints(start, end);\n len = (len === 0) ? 1 : len;\n var strokeWidth = 1;\n var node = isSource ? connector.sourceWrapper : connector.targetWrapper;\n if (node) {\n strokeWidth = node.style.strokeWidth;\n if (diagramAction && ((diagramAction) & DiagramAction.DecoratorPropertyChange)) {\n strokeWidth = 1;\n }\n }\n var width = strokeWidth - 1;\n point.x = (Math.round(start.x + width * (end.x - start.x) / len));\n point.y = (Math.round(start.y + width * (end.y - start.y) / len));\n if ((isSource && connector.sourceDecorator.shape !== 'None') ||\n (!isSource && connector.targetDecorator.shape !== 'None')) {\n point = Point.adjustPoint(point, end, true, (diagramAction & DiagramAction.DecoratorPropertyChange) ? 0 : (strokeWidth / 2));\n }\n return point;\n };\n /** @private */\n Connector.prototype.clipDecorators = function (connector, pts, diagramAction) {\n if (connector.sourceDecorator.shape !== 'None') {\n pts[0] = this.clipDecorator(connector, pts, true, diagramAction);\n }\n if (connector.targetDecorator.shape !== 'None') {\n pts[pts.length - 1] = this.clipDecorator(connector, pts, false, diagramAction);\n }\n return pts;\n };\n /** @private */\n Connector.prototype.updateSegmentElement = function (connector, points, element, diagramActions) {\n var bounds = new Rect();\n //let point: PointModel[];\n var segmentPath = this.getSegmentPath(connector, points, diagramActions);\n if (connector.type === 'Bezier') {\n if (this.segments.length > 0) {\n for (var i = 0; i < this.segments.length; i++) {\n var segment = this.segments[parseInt(i.toString(), 10)];\n var connectorSegment = connector.segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n var point1 = !Point.isEmptyPoint(segment.point1) ? connectorSegment.point1 : connectorSegment.bezierPoint1;\n // eslint-disable-next-line max-len\n var point2 = !Point.isEmptyPoint(segment.point2) ? connectorSegment.point2 : connectorSegment.bezierPoint2;\n bounds.uniteRect(getBezierBounds(segment.points[0], point1, point2, segment.points[1], connector));\n }\n }\n }\n else {\n bounds = Rect.toBounds(points);\n }\n element.width = bounds.width;\n element.height = bounds.height;\n element.offsetX = bounds.x + element.width / 2;\n element.offsetY = bounds.y + element.height / 2;\n element.data = segmentPath;\n if (connector.wrapper) {\n connector.wrapper.offsetX = element.offsetX;\n connector.wrapper.offsetY = element.offsetY;\n connector.wrapper.width = bounds.width;\n connector.wrapper.height = bounds.height;\n }\n return element;\n };\n /** @private */\n Connector.prototype.getSegmentElement = function (connector, segmentElement, layoutOrientation, diagramActions, isFlip) {\n if (isFlip === void 0) { isFlip = true; }\n //let bounds: Rect; let segmentPath: string;\n var points = [];\n if (isFlip) {\n flipConnector(connector);\n }\n points = this.getConnectorPoints(connector.type, undefined, layoutOrientation);\n this.intermediatePoints = points;\n segmentElement.staticSize = true;\n segmentElement = this.updateSegmentElement(connector, points, segmentElement, diagramActions);\n return segmentElement;\n };\n /** @private */\n Connector.prototype.getDecoratorElement = function (offsetPoint, adjacentPoint, decorator, isSource, getDescription) {\n var decEle = new PathElement();\n var getPath;\n var angle;\n decEle.transform = Transform.Self;\n this.updateDecoratorElement(decEle, offsetPoint, adjacentPoint, decorator);\n if (getDescription !== undefined) {\n // tslint:disable-next-line:no-any\n var wrapperContent = getDescription(decorator, this);\n decEle.description = wrapperContent ? wrapperContent :\n ('Specifies the ' + isSource ? 'source' : 'target' + 'port element of the connector');\n }\n return decEle;\n };\n Connector.prototype.bridgePath = function (connector, path, pointIndex) {\n var pathData = path;\n if (connector.bridges.length > 0) {\n if (connector.type === 'Straight' && connector.segments.length < 2) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (!bridge.rendered) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n else if (connector.type === 'Orthogonal' || (connector.type === 'Straight' && connector.segments.length > 1)) {\n for (var n = 0; n < connector.bridges.length; n++) {\n var bridge = connector.bridges[parseInt(n.toString(), 10)];\n if (bridge.segmentPointIndex === pointIndex) {\n if (!bridge.rendered) {\n if (bridge.segmentPointIndex === pointIndex) {\n pathData += ' L' + bridge.startPoint.x + ' ' + bridge.startPoint.y;\n pathData += bridge.path;\n bridge.rendered = true;\n }\n }\n }\n }\n }\n }\n return pathData;\n };\n /** @private */\n Connector.prototype.updateDecoratorElement = function (element, pt, adjacentPoint, decorator) {\n //let getPath: string;// let angle: number;\n element.offsetX = pt.x;\n element.offsetY = pt.y;\n var angle = Point.findAngle(pt, adjacentPoint);\n var getPath = getDecoratorShape(decorator.shape, decorator);\n var size = new Size(decorator.width, decorator.height);\n element.pivot.x = decorator.pivot.x;\n element.pivot.y = decorator.pivot.y;\n element.style = decorator.style;\n element.rotateAngle = angle;\n element.data = getPath;\n element.canMeasurePath = true;\n element.width = size.width;\n element.height = size.height;\n };\n /** @private */\n Connector.prototype.getSegmentPath = function (connector, points, diagramAction) {\n var path = '';\n var getPt;\n var end;\n var st;\n var pts = [];\n var j = 0;\n while (j < points.length) {\n pts.push({ x: points[parseInt(j.toString(), 10)].x, y: points[parseInt(j.toString(), 10)].y });\n j++;\n }\n for (var m = 0; m < connector.bridges.length; m++) {\n var bridge = connector.bridges[parseInt(m.toString(), 10)];\n bridge.rendered = false;\n }\n pts = this.clipDecorators(connector, pts, diagramAction);\n if (this.cornerRadius > 0 && this.type !== 'Bezier') {\n for (var j_1 = 0; j_1 < pts.length - 1; j_1++) {\n getPt = pts[parseInt(j_1.toString(), 10)];\n if (j_1 === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n var segLength = Point.distancePoints(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1]);\n if (segLength > 0) {\n if (j_1 < pts.length - 2) {\n if (segLength < this.cornerRadius * 2) {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, segLength / 2);\n }\n else {\n end = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], false, this.cornerRadius);\n }\n }\n else {\n end = pts[j_1 + 1];\n }\n if (j_1 > 0) {\n if (segLength < this.cornerRadius * 2) {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, segLength / 2);\n if (j_1 < pts.length - 2) {\n end = null;\n }\n }\n else {\n st = Point.adjustPoint(pts[parseInt(j_1.toString(), 10)], pts[j_1 + 1], true, this.cornerRadius);\n }\n }\n if (st) {\n path += 'Q' + getPt.x + ' ' + getPt.y + ' ' + st.x + ' ' + st.y;\n }\n if (end) {\n if (connector.bridges.length > 0) {\n path = this.bridgePath(connector, path, j_1);\n if (connector.type === 'Orthogonal') {\n path = this.bridgePath(connector, path, j_1 + 1);\n }\n }\n path += ' L' + end.x + ' ' + end.y;\n }\n }\n }\n }\n else {\n if (this.type === 'Bezier') {\n var isrezise = void 0;\n var isDrawing = void 0;\n if (this.parentObj.element) {\n var action = this.parentObj.element.ej2_instances[0]['eventHandler'].action;\n isrezise = (this.parentObj.element.ej2_instances[0]['eventHandler']).tool instanceof ResizeTool;\n isDrawing = action.includes('PortDraw') || action.includes('Drag');\n }\n var direction = void 0;\n var segments = this.segments;\n for (var j_2 = 0; j_2 < segments.length; j_2++) {\n if (pts.length > 2) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = { x: 0, y: 0 };\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = { x: 0, y: 0 };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point1) &&\n !segments[parseInt(j_2.toString(), 10)].vector1.angle && !segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n if ((connector.sourceID || this.sourcePortID) && this.sourceWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.sourceWrapper.bounds, pts[parseInt(j_2.toString(), 10)], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = getBezierPoints(pts[parseInt(j_2.toString(), 10)], pts[j_2 + 1], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector1.angle\n || segments[parseInt(j_2.toString(), 10)].vector1.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1\n = Point.transform(pts[parseInt(j_2.toString(), 10)], segments[parseInt(j_2.toString(), 10)].vector1.angle, segments[parseInt(j_2.toString(), 10)].vector1.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint1 = {\n x: segments[parseInt(j_2.toString(), 10)].point1.x || segments[parseInt(j_2.toString(), 10)].bezierPoint1.x,\n y: segments[parseInt(j_2.toString(), 10)].point1.y || segments[parseInt(j_2.toString(), 10)].bezierPoint1.y\n };\n }\n if (Point.isEmptyPoint(segments[parseInt(j_2.toString(), 10)].point2) &&\n !segments[parseInt(j_2.toString(), 10)].vector2.angle && !segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n if ((connector.targetID || this.targetPortID) && this.targetWrapper && !isDrawing && !isrezise) {\n direction = getDirection(this.targetWrapper.bounds, pts[j_2 + 1], true);\n }\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = getBezierPoints(pts[j_2 + 1], pts[parseInt(j_2.toString(), 10)], direction);\n }\n else if (segments[parseInt(j_2.toString(), 10)].vector2.angle\n || segments[parseInt(j_2.toString(), 10)].vector2.distance) {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2\n = Point.transform(pts[j_2 + 1], segments[parseInt(j_2.toString(), 10)].vector2.angle, segments[parseInt(j_2.toString(), 10)].vector2.distance);\n }\n else {\n segments[parseInt(j_2.toString(), 10)].bezierPoint2 = {\n x: segments[parseInt(j_2.toString(), 10)].point2.x || segments[parseInt(j_2.toString(), 10)].bezierPoint2.x,\n y: segments[parseInt(j_2.toString(), 10)].point2.y || segments[parseInt(j_2.toString(), 10)].bezierPoint2.y\n };\n }\n }\n pts.splice(1, 0, { x: segments[0].bezierPoint1.x, y: segments[0].bezierPoint1.y });\n pts.splice(pts.length - 1, 0, {\n x: segments[segments.length - 1].bezierPoint2.x, y: segments[segments.length - 1].bezierPoint2.y\n });\n pts = this.clipDecorators(connector, pts, diagramAction);\n for (var j_3 = 0; j_3 < segments.length; j_3++) {\n if (j_3 === 0) {\n path = 'M' + pts[0].x + ' ' + pts[0].y;\n }\n var lastPoint = (j_3 === segments.length - 1) ? pts[pts.length - 1].x + ' ' + pts[pts.length - 1].y :\n segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].x + ' ' + segments[parseInt(j_3.toString(), 10)].points[segments[parseInt(j_3.toString(), 10)].points.length - 1].y;\n path += 'C' +\n segments[parseInt(j_3.toString(), 10)].bezierPoint1.x + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint1.y + ' ' + segments[parseInt(j_3.toString(), 10)].bezierPoint2.x + ' '\n + segments[parseInt(j_3.toString(), 10)].bezierPoint2.y + ' ' + lastPoint;\n }\n }\n else {\n for (var k = 0; k < pts.length; k++) {\n getPt = pts[parseInt(k.toString(), 10)];\n if (k === 0) {\n path = 'M' + getPt.x + ' ' + getPt.y;\n }\n if (k > 0) {\n path = this.bridgePath(connector, path, k);\n path += ' ' + 'L' + getPt.x + ' ' + getPt.y;\n }\n }\n }\n }\n return path;\n };\n /** @private */\n Connector.prototype.updateShapeElement = function (connector) {\n var element;\n switch (connector.shape.type) {\n case 'Bpmn':\n if (connector.wrapper.children[3] instanceof PathElement) {\n element = connector.wrapper.children[3];\n }\n if (connector.shape.flow === 'Message') {\n this.updateShapePosition(connector, element);\n }\n break;\n case 'UmlActivity':\n if (connector.shape.flow === 'Exception') {\n this.getUMLExceptionFlow(connector.wrapper.children[0]);\n }\n break;\n }\n };\n /** @private */\n Connector.prototype.updateShapePosition = function (connector, element) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n var length = 0;\n var anglePoints = this.intermediatePoints;\n //Bug 860251: Bpmn message flow and sequence flow connector child path is not rendered properly.\n //To get the path offset of message flow.\n var offset = getPathOffset(anglePoints, element, segmentOffset);\n element.offsetX = offset.x;\n element.offsetY = offset.y;\n };\n /** @hidden */\n Connector.prototype.scale = function (sw, sh, width, height, refObject) {\n var tx = 0;\n var ty = 0;\n if (this.wrapper && this.wrapper.outerBounds) {\n var outerBounds = getOuterBounds(this);\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added the absolute command to change the connector height to positive if it is in negative value.\n var connWidth = Math.abs((this.wrapper.bounds.width || this.style.strokeWidth || 1) - 2);\n var connHeight = Math.abs((this.wrapper.bounds.height || this.style.strokeWidth || 1) - 2);\n tx = (outerBounds.width - connWidth);\n ty = (outerBounds.height - connHeight);\n sw = Math.abs((width - (Math.max(tx, ty))) / connWidth);\n sh = Math.abs((height - (Math.max(tx, ty))) / connHeight);\n tx = ty = Math.min(tx, ty);\n }\n sw = sh = Math.min(sw, sh);\n var matrix = identityMatrix();\n refObject = refObject || this.wrapper;\n rotateMatrix(matrix, -refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n scaleMatrix(matrix, sw, sh, refObject.offsetX, refObject.offsetY);\n rotateMatrix(matrix, refObject.rotateAngle, refObject.offsetX, refObject.offsetY);\n var points = transformPointsByMatrix(matrix, this.intermediatePoints);\n this.sourcePoint = points[0];\n this.targetPoint = points[points.length - 1];\n points = this.intermediatePoints = findConnectorPoints(this);\n updateConnector(this, points);\n return { x: tx, y: ty };\n };\n /**\n * @private\n * Returns the name of class Connector\n */\n Connector.prototype.getClassName = function () {\n return 'Connector';\n };\n __decorate([\n ComplexFactory(getConnectorType)\n ], Connector.prototype, \"shape\", void 0);\n __decorate([\n Property(ConnectorConstraints.Default)\n ], Connector.prototype, \"constraints\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"bridgeSpace\", void 0);\n __decorate([\n Collection([], PathAnnotation)\n ], Connector.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"sourcePoint\", void 0);\n __decorate([\n Complex({}, Point)\n ], Connector.prototype, \"targetPoint\", void 0);\n __decorate([\n Collection([], ConnectorFixedUserHandle)\n ], Connector.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n CollectionFactory(getSegmentType)\n ], Connector.prototype, \"segments\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetID\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"hitPadding\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"connectionPadding\", void 0);\n __decorate([\n Property('Straight')\n ], Connector.prototype, \"type\", void 0);\n __decorate([\n Property('Circle')\n ], Connector.prototype, \"segmentThumbShape\", void 0);\n __decorate([\n Property(10)\n ], Connector.prototype, \"segmentThumbSize\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ shape: 'None' }, Decorator)\n ], Connector.prototype, \"sourceDecorator\", void 0);\n __decorate([\n Complex({ shape: 'Arrow' }, Decorator)\n ], Connector.prototype, \"targetDecorator\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Connector.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"sourcePortID\", void 0);\n __decorate([\n Property('')\n ], Connector.prototype, \"targetPortID\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"sourcePadding\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Connector.prototype, \"dragSize\", void 0);\n __decorate([\n Property(0)\n ], Connector.prototype, \"targetPadding\", void 0);\n __decorate([\n Property(13)\n ], Connector.prototype, \"connectorSpacing\", void 0);\n __decorate([\n Complex({ strokeWidth: 1, strokeColor: 'black' }, StrokeStyle)\n ], Connector.prototype, \"style\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"maxSegmentThumb\", void 0);\n __decorate([\n Property(false)\n ], Connector.prototype, \"allowNodeOverlap\", void 0);\n __decorate([\n Complex({}, BezierSettings)\n ], Connector.prototype, \"bezierSettings\", void 0);\n __decorate([\n Collection([], PathPort)\n ], Connector.prototype, \"ports\", void 0);\n __decorate([\n Property(null)\n ], Connector.prototype, \"wrapper\", void 0);\n return Connector;\n}(NodeBase));\nexport { Connector };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property } from '@syncfusion/ej2-base';\nimport { createSvgElement, createHtmlElement, setAttributeSvg } from '../diagram/utility/dom-util';\nimport { Size } from '../diagram/primitives/size';\nimport { getFunction } from '../diagram/utility/base-util';\n/**\n * Represents the Ruler component that measures the Diagram objects, indicate positions, and align Diagram elements.\n * ```html\n *
Show Ruler
\n * ```\n * ```typescript\n * \n * ```\n */\nvar Ruler = /** @class */ (function (_super) {\n __extends(Ruler, _super);\n /**\n * Constructor for creating the Ruler Component\n *\n * @param {RulerModel} options The ruler model.\n * @param {string | HTMLElement} element The ruler element.\n */\n function Ruler(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.offset = 0;\n /** @private */\n _this.scale = 1;\n return _this;\n }\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Ruler.prototype.preRender = function () {\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n Ruler.prototype.render = function () {\n this.updateRulerGeometry();\n this.renderComplete();\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Ruler.prototype.getModuleName = function () {\n return 'Ruler';\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Ruler.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.element.classList.remove('e-ruler');\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Ruler.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Refreshes the ruler when the Ruler properties are updated\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param {RulerModel} newProp - provide the newProp value.\n * @param {RulerModel} oldProp - provide the oldProp value.\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'length':\n case 'interval':\n case 'segmentWidth':\n case 'tickAlignment':\n case 'markerColor':\n case 'thickness':\n this.updateRuler();\n break;\n }\n }\n };\n Ruler.prototype.updateRulerGeometry = function () {\n this.element.style.textAlign = 'left';\n this.renderRulerSpace();\n this.updateRuler();\n };\n Ruler.prototype.renderRulerSpace = function () {\n var rulerGeometry = this.getRulerGeometry();\n var div = document.getElementById(this.element.id + '_ruler_space');\n if (!div) {\n div = createHtmlElement('div', {\n 'id': this.element.id + '_ruler_space',\n 'style': 'height:' + rulerGeometry.height + 'px;width:' + rulerGeometry.width + 'px;cssFloat:' + 'left;'\n });\n this.element.appendChild(div);\n }\n return div;\n };\n Ruler.prototype.updateRuler = function () {\n var rulerSize = this.getRulerSize();\n var rulerGeometry = this.getRulerGeometry();\n var length = 0;\n var offset = 0;\n var availableSize = new Size();\n var svg = this.getRulerSVG(rulerGeometry);\n if (svg) {\n length = this.length;\n availableSize.height = rulerSize;\n offset = this.offset;\n if (length && length !== Infinity) {\n var unitLength = length + this.segmentWidth;\n var unitOffset = offset;\n this.updateSegments(unitOffset, (unitLength + Math.abs(unitOffset)), svg, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegments = function (start, end, svg, rulerSize) {\n var run = start;\n var trans = { trans: 0 };\n while (run < end) {\n var rulerSegment = this.getNewSegment(run, svg);\n if (rulerSegment) {\n svg.appendChild(rulerSegment.segment);\n run = this.updateSegment(start, end, rulerSegment, run, trans, rulerSize);\n }\n }\n };\n Ruler.prototype.updateSegment = function (start, end, rulerSegment, run, trans, rulerSize) {\n var segWidth = this.updateSegmentWidth(this.scale);\n if (run === start) {\n this.startValue = Math.floor(start / segWidth) * segWidth / this.scale;\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n this.defStartValue = run = this.startValue * this.scale;\n if (this.orientation === 'Horizontal') {\n this.hRulerOffset = start - run;\n }\n else {\n this.vRulerOffset = start - run;\n }\n }\n else {\n this.startValue = (run / this.scale);\n this.startValue = (this.startValue % 1) !== 0 ? Number((this.startValue).toFixed(1)) : this.startValue;\n rulerSegment.label.textContent = this.startValue.toString();\n }\n this.updateTickLabel(rulerSegment, rulerSize);\n var translate = (this.orientation === 'Horizontal') ? ((trans.trans + 0.5) + ',0.5') : ('0.5,' + (trans.trans + 0.5));\n rulerSegment.segment.setAttribute('transform', 'translate(' + translate + ')');\n trans.trans += segWidth;\n run += segWidth;\n return run;\n };\n Ruler.prototype.updateTickLabel = function (rulerSegment, rulerSize) {\n var bBox = rulerSegment.segment.lastChild.getBBox();\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var x = isHorizontal ? 2 : 0;\n var y = isHorizontal ? (isRightOrBottom ? (rulerSize / 2 + (11 / 2) - (11 / 2)) :\n (rulerSize / 2 + (11 / 2))) : bBox.height;\n var translate = isRightOrBottom ? (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height)) :\n (-(bBox.width + 2) + ',' + ((rulerSize / 2) - bBox.height / 2));\n var attr = isHorizontal ? { 'x': x, 'y': y } :\n { 'x': x, 'y': y, 'transform': 'rotate(270)' + 'translate(' + translate + ')' };\n setAttributeSvg(rulerSegment.segment.lastChild, attr);\n };\n Ruler.prototype.getNewSegment = function (run, svg) {\n var segment = this.createNewTicks(run, svg);\n var label = this.createTickLabel(svg, segment);\n return { segment: segment, label: label };\n };\n Ruler.prototype.createNewTicks = function (run, svg) {\n var tick;\n var tickInterval;\n var segmentWidth = this.updateSegmentWidth(this.scale);\n //let g: SVGElement;\n var attr = { 'class': 'e-ruler-segment' };\n var g = createSvgElement('g', attr);\n for (var i = 0; i < this.interval; i++) {\n tickInterval = segmentWidth / this.interval;\n tick = this.createTick(svg, tickInterval, i + 1, run);\n g.appendChild(tick);\n }\n return g;\n };\n Ruler.prototype.getLinePoint = function (svg, tickInterval, length) {\n var segmentWidth = this.updateSegmentWidth(this.scale);\n var rulerSize = this.getRulerSize();\n tickInterval = tickInterval * (length - 1);\n length = ((tickInterval % segmentWidth) === 0) ? rulerSize : rulerSize * 0.3;\n return length;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n Ruler.prototype.createTick = function (svg, tickInterval, length, run) {\n var ruler;\n //let line: SVGElement;\n var linePoint = this.getLinePoint(svg, tickInterval, length);\n var rulerSize = this.getRulerSize();\n //let args: IArrangeTickOptions;\n //let attr: Object;\n var isHorizontal = (this.orientation === 'Horizontal') ? true : false;\n var isRightOrBottom = (this.tickAlignment === 'RightOrBottom') ? true : false;\n var arrangeTick = getFunction(this.arrangeTick);\n // eslint-disable-next-line\n var args = { ruler: ruler, tickLength: linePoint, tickInterval: ((this.segmentWidth / this.interval) * (length - 1)) };\n if (arrangeTick) {\n arrangeTick(args);\n }\n linePoint = args.tickLength;\n var point = tickInterval * (length - 1);\n var x1 = isHorizontal ? point : (isRightOrBottom ? rulerSize : 0);\n var x2 = isHorizontal ? point : (isRightOrBottom ? (rulerSize - linePoint) : (rulerSize - (rulerSize - linePoint)));\n var y1 = isHorizontal ? (isRightOrBottom ? rulerSize : (rulerSize - (rulerSize - linePoint))) : point;\n var y2 = isHorizontal ? (isRightOrBottom ? (rulerSize - linePoint) : 0) : point;\n var attr = { 'x1': x1, 'y1': y1, 'x2': x2, 'y2': y2, 'stroke-width': '1', 'stroke': 'black' };\n var line = createSvgElement('line', attr);\n line.setAttribute('class', 'e-ruler-tick');\n return line;\n };\n Ruler.prototype.createTickLabel = function (svg, segment) {\n var text;\n if (segment) {\n var attr = { 'class': 'e-ruler-tick-label' };\n text = createSvgElement('text', attr);\n segment.appendChild(text);\n }\n return text;\n };\n /**\n * @private\n * @param {number} scale\n */\n /**\n * updateSegmentWidth method\\\n *\n * @returns {number} updateSegmentWidth method .\\\n * @param {string} scale - provide the scale value.\n *\n * @private\n */\n Ruler.prototype.updateSegmentWidth = function (scale) {\n if (this.segmentWidth !== 100) {\n return this.segmentWidth;\n }\n var five = 25;\n var multiples = 1;\n var div;\n //let scaleRound: number;\n var fifty = 100;\n var scaleRound = Math.pow(2, Math.round(Math.log(scale) / Math.log(2)));\n div = fifty;\n div = (fifty / scaleRound);\n while (div > 100) {\n multiples /= 10;\n div /= 10;\n }\n while (div < 25) {\n multiples *= 10;\n div *= 10;\n }\n if (div >= five && div % five !== 0) {\n div = Math.round(div / five) * five;\n }\n return div * scale / multiples;\n };\n Ruler.prototype.createMarkerLine = function (rulerSvg, rulerObj, attr) {\n var line;\n if (rulerObj) {\n line = rulerSvg.getElementById(rulerObj.id + '_marker');\n if (line) {\n line.parentNode.removeChild(line);\n }\n line = createSvgElement('line', attr);\n }\n return line;\n };\n /**\n * updateSegmentWidth method\\\n *\n * @returns {void} updateSegmentWidth method .\\\n * @param {HTMLElement} rulerObj - Defines the ruler Object\n * @param {PointModel} currentPoint - Defines the current point for ruler Object\n * @param {number} offset - Defines the offset ruler Object\n *\n * @private\n */\n Ruler.prototype.drawRulerMarker = function (rulerObj, currentPoint, offset) {\n var rulerSvg;\n var rulerSize;\n var scale;\n var diff;\n var i;\n var attr;\n var line;\n var isHorizontal = this.orientation === 'Horizontal' ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rulerSvgElements = rulerObj.getElementsByTagName('svg');\n for (i = 0; i < rulerSvgElements.length; i++) {\n if (rulerSvgElements[parseInt(i.toString(), 10)]) {\n rulerSvg = rulerSvgElements[parseInt(i.toString(), 10)];\n }\n break;\n }\n if (rulerSvg) {\n rulerSize = this.getRulerSize();\n attr = {\n 'id': rulerObj.id + '_marker', 'x1': 0, 'y1': 0, 'x2': (isHorizontal ? 0 : rulerSize),\n 'y2': (isHorizontal ? rulerSize : 0), 'stroke': this.markerColor, 'stroke-width': 1.5,\n 'class': 'e-d-ruler-marker'\n };\n line = this.createMarkerLine(rulerSvg, rulerObj, attr);\n scale = this.scale;\n diff = this.offset - this.defStartValue;\n var point = isHorizontal ? currentPoint.x : currentPoint.y;\n var move = (point * scale) + offset + diff;\n line.setAttribute('transform', 'translate(' + (isHorizontal ? ((move + 0.5) + ' 0.5') : ('0.5 ' + (move + 0.5))) + ')');\n rulerSvg.appendChild(line);\n }\n };\n Ruler.prototype.getRulerGeometry = function () {\n return new Size(this.element ? this.element.getBoundingClientRect().width : 0, this.element ? this.element.getBoundingClientRect().height : 0);\n };\n Ruler.prototype.getRulerSize = function () {\n return this.thickness;\n };\n Ruler.prototype.getRulerSVG = function (rulerGeometry) {\n var rulerSpace;\n var rulerSize = this.getRulerSize();\n var svg;\n if (this.element) {\n rulerSpace = document.getElementById(this.element.id + '_ruler_space');\n if (rulerSpace) {\n var attr = {\n 'id': this.element.id + '_Ruler_svg',\n width: this.orientation === 'Horizontal' ? (rulerGeometry.width + 200) : rulerSize + 'px',\n height: this.orientation === 'Horizontal' ? rulerSize : (rulerGeometry.height + 200) + 'px',\n style: 'position:inherit;'\n };\n svg = createSvgElement('svg', attr);\n if (rulerSpace.childNodes.length > 0) {\n for (var i = rulerSpace.childNodes.length - 1; i >= 0; i--) {\n rulerSpace.childNodes[parseInt(i.toString(), 10)].parentNode.removeChild(rulerSpace.childNodes[parseInt(i.toString(), 10)]);\n }\n }\n rulerSpace.appendChild(svg);\n }\n }\n return svg;\n };\n /**\n * Method to bind events for the ruler \\\n *\n * @returns {void} Method to bind events for the ruler .\\\n * @private\n */\n Ruler.prototype.wireEvents = function () {\n //wire Events\n };\n /**\n * Method to unbind events for the ruler \\\n *\n * @returns {void} Method to unbind events for the ruler .\\\n * @private\n */\n Ruler.prototype.unWireEvents = function () {\n //unWire Events\n };\n __decorate([\n Property(5)\n ], Ruler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], Ruler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], Ruler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], Ruler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], Ruler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], Ruler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], Ruler.prototype, \"arrangeTick\", void 0);\n __decorate([\n Property(400)\n ], Ruler.prototype, \"length\", void 0);\n return Ruler;\n}(Component));\nexport { Ruler };\n","/**\n * Exported Ruler files\n */\nexport * from './ruler';\n","import { createHtmlElement, removeElement } from '../utility/dom-util';\nimport { Ruler } from '../../ruler/index';\nimport { Size } from '../primitives/size';\nimport { getFunction } from '../utility/base-util';\n/**\n * defines the helper methods for the ruler\n */\n/**\n * renderOverlapElement method \\\n *\n * @returns {void} renderOverlapElement method .\\\n * @param { Diagram} diagram - provide the content value.\n * @private\n */\nexport function renderOverlapElement(diagram) {\n var rulerSize = getRulerSize(diagram);\n var attributes = {\n 'id': diagram.element.id + '_overlapRuler',\n style: 'height:' + rulerSize.height + 'px;width:' + rulerSize.width + 'px;position:absolute;left:0;top:0',\n class: 'e-ruler-overlap'\n };\n var overlap = createHtmlElement('div', attributes);\n diagram.element.insertBefore(overlap, diagram.element.firstChild);\n}\n/**\n * renderRuler method \\\n *\n * @returns {void} renderRuler method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nexport function renderRuler(diagram, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var margin = isHorizontal ? ('margin-left:' + rulerSize.width + 'px;') : ('margin-top:' + rulerSize.height + 'px;');\n if (!div) {\n var style = 'height:' + (isHorizontal ? rulerSize.height : (rulerGeometry.height + 100)) + 'px;overflow:hidden;width:' +\n (isHorizontal ? (rulerGeometry.width + 100) : rulerSize.width) + 'px;position:absolute;font-size:11px;' + margin;\n var attributes = {\n 'id': diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'),\n style: style\n };\n div = createHtmlElement('div', attributes);\n }\n diagram.element.insertBefore(div, diagram.element.firstChild);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n var ruler = new Ruler(diagramRuler);\n ruler.orientation = isHorizontal ? 'Horizontal' : 'Vertical';\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + diagramRuler.segmentWidth;\n ruler.appendTo('#' + diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler = ruler : diagram.vRuler = ruler;\n var rulerObj = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n // eslint-disable-next-line\n isHorizontal ? diagram.hRuler.element = rulerObj : diagram.vRuler.element = rulerObj;\n}\n/**\n * updateRuler method \\\n *\n * @returns {void} updateRuler method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateRuler(diagram) {\n var hOffset = -diagram.scroller.horizontalOffset;\n var vOffset = -diagram.scroller.verticalOffset;\n if (diagram && diagram.rulerSettings.showRulers) {\n diagram.hRuler.length = 0;\n diagram.vRuler.length = 0;\n if (hOffset !== undefined && diagram.hRuler.element) {\n updateRulerDimension(diagram, diagram.hRuler, hOffset, true);\n }\n if (vOffset !== undefined && diagram.vRuler.element) {\n updateRulerDimension(diagram, diagram.vRuler, vOffset, false);\n }\n }\n else {\n removeRulerElements(diagram);\n }\n}\n/**\n * removeRulerElements method \\\n *\n * @returns {void} removeRulerElements method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function removeRulerElements(diagram) {\n removeElement(diagram.element.id + '_hRuler');\n removeElement(diagram.element.id + '_vRuler');\n removeElement(diagram.element.id + '_overlapRuler');\n}\n/**\n * getRulerSize method \\\n *\n * @returns {void} getRulerSize method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerSize(diagram) {\n var top = 0;\n var left = 0;\n if (diagram.rulerSettings.showRulers) {\n top = diagram.rulerSettings.horizontalRuler.thickness;\n left = diagram.rulerSettings.verticalRuler.thickness;\n }\n return new Size(left, top);\n}\n/**\n * getRulerGeometry method \\\n *\n * @returns {void} getRulerGeometry method .\\\n * @param { Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getRulerGeometry(diagram) {\n var rulerSize = getRulerSize(diagram);\n var height = diagram.scroller.viewPortHeight;\n var width = diagram.scroller.viewPortWidth;\n if (width < diagram.element.clientWidth - rulerSize.width) {\n width = diagram.element.clientWidth - rulerSize.width;\n }\n if (height < diagram.element.clientHeight - rulerSize.height) {\n height = diagram.element.clientHeight - rulerSize.height;\n }\n if (diagram.hRuler && diagram.hRuler.length) {\n width = diagram.hRuler.length;\n }\n if (diagram.vRuler && diagram.vRuler.length) {\n height = diagram.vRuler.length;\n }\n return new Size(width, height);\n}\n/**\n * removeRulerMarkers method \\\n *\n * @returns {void} removeRulerMarkers method .\\\n * @private\n */\nexport function removeRulerMarkers() {\n var markers = document.getElementsByClassName('e-d-ruler-marker');\n var marker;\n var i;\n if (markers && markers.length > 0) {\n for (i = markers.length - 1; i >= 0; i--) {\n marker = markers[parseInt(i.toString(), 10)];\n if (marker) {\n marker.parentNode.removeChild(marker);\n }\n }\n }\n}\n/**\n * drawRulerMarkers method \\\n *\n * @returns {void} drawRulerMarkers method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { PointModel} currentPoint - provide the content value.\n * @private\n */\nexport function drawRulerMarkers(diagram, currentPoint) {\n if (diagram.rulerSettings.showRulers) {\n diagram.hRuler.drawRulerMarker(diagram.hRuler.element, currentPoint, diagram.scroller.horizontalOffset);\n diagram.vRuler.drawRulerMarker(diagram.vRuler.element, currentPoint, diagram.scroller.verticalOffset);\n }\n}\n/**\n * updateRulerDimension method \\\n *\n * @returns {void} updateRulerDimension method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Ruler} ruler - provide the content value.\n * @param { number} offset - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDimension(diagram, ruler, offset, isHorizontal) {\n var rulerSize = getRulerSize(diagram);\n var rulerGeometry = getRulerGeometry(diagram);\n var diagramRuler = isHorizontal ? diagram.rulerSettings.horizontalRuler : diagram.rulerSettings.verticalRuler;\n updateRulerDiv(diagram, rulerGeometry, isHorizontal);\n updateRulerSpace(diagram, rulerGeometry, isHorizontal);\n ruler.offset = offset;\n ruler.scale = diagram.scroller.currentZoom;\n ruler.length = (isHorizontal ? rulerGeometry.width : rulerGeometry.height) + 100;\n ruler.arrangeTick = getFunction(diagramRuler.arrangeTick);\n ruler.dataBind();\n var rulerObj = isHorizontal ? diagram.hRuler.element : diagram.vRuler.element;\n if (isHorizontal) {\n rulerObj.style.marginLeft = (rulerSize.width - ruler.hRulerOffset) + 'px';\n }\n else {\n rulerObj.style.marginTop = (rulerSize.height - ruler.vRulerOffset) + 'px';\n }\n}\n/**\n * updateRulerSpace method \\\n *\n * @returns {void} updateRulerSpace method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerSpace(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler_ruler_space' : '_vRuler_ruler_space'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + (ruler.segmentWidth * 2)) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + (ruler.segmentWidth * 2))) + 'px';\n }\n}\n/**\n * updateRulerDiv method \\\n *\n * @returns {void} updateRulerDiv method .\\\n * @param { Diagram} diagram - provide the content value.\n * @param { Size} rulerGeometry - provide the content value.\n * @param { boolean} isHorizontal - provide the content value.\n * @private\n */\nfunction updateRulerDiv(diagram, rulerGeometry, isHorizontal) {\n var div = document.getElementById(diagram.element.id + (isHorizontal ? '_hRuler' : '_vRuler'));\n var ruler = isHorizontal ? diagram.hRuler : diagram.vRuler;\n if (div && diagram && rulerGeometry) {\n div.style.width = (isHorizontal ? (rulerGeometry.width + ruler.segmentWidth) : ruler.thickness) + 'px';\n div.style.height = (isHorizontal ? ruler.thickness : (rulerGeometry.height + ruler.segmentWidth)) + 'px';\n // eslint-disable-next-line\n div = document.getElementById(diagram.element.id + '_overlapRuler');\n if (div) {\n // eslint-disable-next-line\n isHorizontal ? (div.style.height = ruler.thickness + 'px') : (div.style.width = ruler.thickness + 'px');\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { DiagramTooltip } from '../objects/tooltip';\n/**\n * A collection of frequently used commands that will be added around the selector\n * ```html\n *
\n * ```\n * ```typescript\n * let nodes: NodeModel[] = [{\n * id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,\n * annotations: [{ content: 'Default Shape' }]\n * },\n * {\n * id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,\n * shape: {\n * type: 'Basic', shape: 'Ellipse'\n * },\n * annotations: [{ content: 'Path Element' }]\n * }\n * ];\n * let connectors: ConnectorModel[] = [{\n * id: 'connector1',\n * type: 'Straight',\n * sourcePoint: { x: 100, y: 300 },\n * targetPoint: { x: 200, y: 400 },\n * }];\n * let handle: UserHandleModel[] = [\n * { name: 'handle', margin: { top: 0, bottom: 0, left: 0, right: 0 }, offset: 0,\n * pathData: 'M 376.892,225.284L 371.279,211.95L 376.892,198.617L 350.225,211.95L 376.892,225.284 Z',\n * side: 'Top', horizontalAlignment: 'Center', verticalAlignment: 'Center',\n * pathColor: 'yellow' }];\n * let diagram: Diagram = new Diagram({\n * ...\n * connectors: connectors, nodes: nodes,\n * selectedItems: { constraints: SelectorConstraints.All, userHandles: handle },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n * @default {}\n */\nvar UserHandle = /** @class */ (function (_super) {\n __extends(UserHandle, _super);\n function UserHandle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class UserHandle\n *\n * @returns {string} Returns the name of class UserHandle\n * @private\n */\n UserHandle.prototype.getClassName = function () {\n return 'UserHandle';\n };\n __decorate([\n Property('')\n ], UserHandle.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"source\", void 0);\n __decorate([\n Property('#000000')\n ], UserHandle.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('Top')\n ], UserHandle.prototype, \"side\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0.5)\n ], UserHandle.prototype, \"borderWidth\", void 0);\n __decorate([\n Property(25)\n ], UserHandle.prototype, \"size\", void 0);\n __decorate([\n Property('white')\n ], UserHandle.prototype, \"pathColor\", void 0);\n __decorate([\n Property(10)\n ], UserHandle.prototype, \"displacement\", void 0);\n __decorate([\n Property(true)\n ], UserHandle.prototype, \"visible\", void 0);\n __decorate([\n Property(0)\n ], UserHandle.prototype, \"offset\", void 0);\n __decorate([\n Complex({}, Margin)\n ], UserHandle.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], UserHandle.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableNodes\", void 0);\n __decorate([\n Property(false)\n ], UserHandle.prototype, \"disableConnectors\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], UserHandle.prototype, \"tooltip\", void 0);\n __decorate([\n Property('')\n ], UserHandle.prototype, \"template\", void 0);\n return UserHandle;\n}(ChildProperty));\nexport { UserHandle };\n","/**\n * UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes \\\n *\n * @returns { string } UMLActivityShapeDictionary defines the shape of the built-in uml activity shapes .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getUMLActivityShape(shape) {\n return umlActivityShapes[shape.toString()];\n}\n/* eslint-disable */\nvar umlActivityShapes = {\n // Action,\n 'Action': 'M 90 82.895 C 90 86.819 86.776 90 82.8 90 H 7.2 C 3.224 90 0 86.819 0 82.895' +\n ' V 7.105 C 0 3.181 3.224 0 7.2 0 h 75.6 C 86.776 0 90 3.181 90 7.105 V 82.895 Z',\n // Decision,\n 'Decision': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // MergeNode,\n 'MergeNode': 'M10,19.707L0.293,10L10,0.293L19.707,10L10,19.707z',\n // InitialNode,\n 'InitialNode': 'M10,19.5c-5.238,0-9.5-4.262-9.5-9.5S4.762,0.5,10,0.5s9.5,4.262,9.5,9.5S15.238,19.5,10,19.5z',\n // ForkNode,\n 'ForkNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // JoinNode,\n 'JoinNode': 'm0.75,0.75l636.00002,0l0,290l-636.00002,0l0,-290z',\n // TimeEvent,\n 'TimeEvent': 'M50.001,0.00286865 L25.001,25.0029 L0.000976562,0.00286865 L50.001,0.00286865 z' +\n ' M0.000976562,50.0029 L25.001,25.0029 L50.001,50.0029 L0.000976562,50.0029 z',\n // AcceptingEvent,\n 'AcceptingEvent': 'M17.8336 32.164 L29.64 24 L17.32 16 L48.1664 16 L48.5 32 Z',\n // SendSignal,\n 'SendSignal': 'M48.164 31.8336 L56 23.832 L47.836 16 L16.168 16 L16.1668 31.8336 Z',\n // ReceiveSignal,\n 'ReceiveSignal': 'M48.1664 31.8336 L39.836 24 L47.836 16 L16.168 16 L16.168 31.836 Z',\n // StructuredNode,\n 'StructuredNode': 'M0,0 L50,0 L50,50 L0,50 z',\n // Note,\n 'Note': 'M20 12 L4 12 L4 22 L22 22 L22 14 L20 14 L20 12 L22 14 Z'\n};\n/* eslint-enable */\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty, Collection } from '@syncfusion/ej2-base';\n/**\n * Defines the combination of keys and modifier keys\n */\nvar KeyGesture = /** @class */ (function (_super) {\n __extends(KeyGesture, _super);\n function KeyGesture() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], KeyGesture.prototype, \"key\", void 0);\n __decorate([\n Property()\n ], KeyGesture.prototype, \"keyModifiers\", void 0);\n return KeyGesture;\n}(ChildProperty));\nexport { KeyGesture };\n/**\n * Defines a command and a key gesture to define when the command should be executed\n */\nvar Command = /** @class */ (function (_super) {\n __extends(Command, _super);\n function Command() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n *\n * Returns the name of class Command\n *\n * @returns {string} Returns the name of class Command\n * @private\n */\n Command.prototype.getClassName = function () {\n return 'Command';\n };\n __decorate([\n Property('')\n ], Command.prototype, \"name\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"canExecute\", void 0);\n __decorate([\n Property()\n ], Command.prototype, \"execute\", void 0);\n __decorate([\n Complex({}, KeyGesture)\n ], Command.prototype, \"gesture\", void 0);\n __decorate([\n Property('')\n ], Command.prototype, \"parameter\", void 0);\n return Command;\n}(ChildProperty));\nexport { Command };\n/**\n * Defines the collection of commands and the corresponding key gestures\n *\n */\nvar CommandManager = /** @class */ (function (_super) {\n __extends(CommandManager, _super);\n function CommandManager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Collection([], Command)\n ], CommandManager.prototype, \"commands\", void 0);\n return CommandManager;\n}(ChildProperty));\nexport { CommandManager };\n/**\n * Defines the behavior of the context menu items\n */\nvar ContextMenuSettings = /** @class */ (function (_super) {\n __extends(ContextMenuSettings, _super);\n function ContextMenuSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"show\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"showCustomMenuOnly\", void 0);\n __decorate([\n Property()\n ], ContextMenuSettings.prototype, \"items\", void 0);\n return ContextMenuSettings;\n}(ChildProperty));\nexport { ContextMenuSettings };\n","import { Point } from './../primitives/point';\nimport { Size } from './../primitives/size';\nimport { pathSegmentCollection, processPathData } from './../utility/path-util';\nimport { setAttributeSvg, setChildPosition } from './../utility/dom-util';\nimport { overFlow, wordBreakToString, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { CanvasRenderer } from './../rendering/canvas-renderer';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { createSvgElement, createHtmlElement, getBackgroundLayerSvg } from '../utility/dom-util';\nimport { removeGradient, checkBrowserInfo } from '../utility/diagram-util';\n/**\n * SVG Renderer\n */\n/** @private */\nvar SvgRenderer = /** @class */ (function () {\n function SvgRenderer() {\n }\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @param { boolean} parentSvg - Provide the parent SVG values .\n * @private\n */\n SvgRenderer.prototype.renderShadow = function (options, canvas, collection, parentSvg) {\n if (collection === void 0) { collection = null; }\n var pointModel = { x: 0, y: 0 };\n var point = Point.transform(pointModel, options.shadow.angle, options.shadow.distance);\n //const tX: number = options.x + point.x; const tY: number = options.y + point.y;\n //let pivotX: number = tX + options.width * options.pivotX;\n //let pivotY: number = tY + options.height * options.pivotY;\n var type;\n var shadowElement;\n if (parentSvg) {\n shadowElement = parentSvg.getElementById(canvas.id + '_shadow');\n }\n if (!shadowElement) {\n type = collection ? 'path' : 'rect';\n shadowElement = document.createElementNS('http://www.w3.org/2000/svg', type);\n canvas.appendChild(shadowElement);\n }\n var attr = {\n 'id': canvas.id + '_shadow', 'fill': options.shadow.color, 'stroke': options.shadow.color,\n 'opacity': options.shadow.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' +\n 'translate(' + (options.x + point.x) + ',' + (options.y + point.y) + ')'\n };\n if (parentSvg) {\n var svgContainer = parentSvg.getElementById(canvas.id);\n if (svgContainer) {\n svgContainer.insertBefore(shadowElement, svgContainer.firstChild);\n }\n }\n setAttributeSvg(shadowElement, attr);\n if (!collection) {\n setAttributeSvg(shadowElement, { 'width': options.width, 'height': options.height });\n }\n else if (collection) {\n this.renderPath(shadowElement, options, collection);\n }\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n return dashes;\n };\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} onlyRect - Provide the boolean attribute for the shawdow rendering .\n * @param { boolean} isSelector - Provide the selector possobilities .\n * @param { SVGSVGElement} parentSvg - Provide the parent svg element .\n * @param { Object} ariaLabel - Provide the Arial label attributes .\n * @param { boolean} isCircularHandle - Provide the boolean attribute for the circular handle .\n * @param { number} enableSelector - Provide the selector possobilities .\n * @private\n */\n SvgRenderer.prototype.drawRectangle = function (svg, options, diagramId, onlyRect, isSelector, parentSvg, ariaLabel, isCircularHandle, enableSelector) {\n if (options.shadow && !onlyRect) {\n this.renderShadow(options, svg, undefined, parentSvg);\n }\n var id;\n if (options.id === svg.id) {\n id = options.id + '_container';\n }\n else {\n id = options.id;\n }\n var rect;\n if (parentSvg) {\n rect = parentSvg.getElementById(id);\n }\n if (!rect || isSelector) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n svg.appendChild(rect);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var attr;\n // EJ2-65895 - Added below code to calculate the transform to render the circular handle\n if (isCircularHandle) {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n var classval = options.class || '';\n if (!enableSelector) {\n if (classval.includes('e-diagram-resize-handle') || classval.includes('e-diagram-endpoint-handle') || classval.includes('e-diagram-bezier-control-handle')) {\n classval += ' e-disabled';\n }\n }\n if (options.class) {\n attr['class'] = classval;\n }\n var poiterEvents = 'pointer-events';\n if (!ariaLabel) {\n attr[\"\" + poiterEvents] = 'none';\n }\n setAttributeSvg(rect, attr);\n this.setSvgStyle(rect, options, diagramId);\n };\n /**\n * Update the diagram selection region \\\n *\n * @returns {void} Update the diagram selection region .\\\n *\n * @param { SVGElement} gElement - Provide the element type.\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @private\n */\n SvgRenderer.prototype.updateSelectionRegion = function (gElement, options) {\n var rect;\n rect = gElement.parentNode.getElementById(options.id);\n var attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width * options.pivotX) + ',' + (options.y + options.height * options.pivotY) + ')',\n class: 'e-diagram-selected-region'\n };\n if (!rect) {\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n gElement.appendChild(rect);\n }\n this.setSvgStyle(rect, options);\n setAttributeSvg(rect, attr);\n };\n /**\n * Create the g element for the diagram \\\n *\n * @returns {SVGGElement} Create the g element for the diagram .\\\n *\n * @param { SVGElement} elementType - Provide the element type.\n * @param { Object} attribute - Provide the attributes for the g element.\n * @private\n */\n SvgRenderer.prototype.createGElement = function (elementType, attribute) {\n var gElement = createSvgElement(elementType, attribute);\n return gElement;\n };\n /**\n * Draw the line for the diagram\\\n *\n * @returns {void} Draw the line for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { LineAttributes} options - Provide the line element attributes .\n * @private\n */\n SvgRenderer.prototype.drawLine = function (gElement, options) {\n var line = document.createElementNS('http://www.w3.org/2000/svg', 'line');\n this.setSvgStyle(line, options);\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n //const kk: string = '';\n var attr = {\n 'id': options.id,\n 'x1': options.startPoint.x + options.x,\n 'y1': options.startPoint.y + options.y,\n 'x2': options.endPoint.x + options.x,\n 'y2': options.endPoint.y + options.y,\n 'stroke': options.stroke,\n 'stroke-width': options.strokeWidth.toString(), 'opacity': options.opacity.toString(),\n 'transform': 'rotate(' + options.angle + ' ' + pivotX + ' ' + pivotY + ')',\n 'visibility': options.visible ? 'visible' : 'hidden'\n };\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(line, attr);\n gElement.appendChild(line);\n };\n /**\n * Draw the circle for the diagram\\\n *\n * @returns {void} Draw the circle for the diagram .\\\n *\n * @param { SVGElement} gElement - Provide the g element .\n * @param { CircleAttributes} options - Provide the circle element attributes .\n * @param {string} enableSelector - Provide the selector constraints string .\n * @param {Object} ariaLabel - Provide arial label value .\n * @private\n */\n SvgRenderer.prototype.drawCircle = function (gElement, options, enableSelector, ariaLabel) {\n var circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n this.setSvgStyle(circle, options);\n var classval = options.class || '';\n if (!enableSelector) {\n classval += ' e-disabled';\n }\n var attr = {\n 'id': options.id,\n 'cx': options.centerX,\n 'cy': options.centerY,\n 'r': options.radius,\n 'visibility': options.visible ? 'visible' : 'hidden',\n 'class': classval\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n circle.style.display = options.visible ? 'block' : 'none';\n setAttributeSvg(circle, attr);\n gElement.appendChild(circle);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @param {string} diagramId - Provide the diagram id .\n * @param {boolean} isSelector - Provide selector boolean value .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide arial label value .\n * @param {number} scale - Provide the scale value .\n * @private\n */\n SvgRenderer.prototype.drawPath = function (svg, options, diagramId, isSelector, parentSvg, ariaLabel, scale) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var x = Math.floor((Math.random() * 10) + 1);\n //const id: string = svg.id + '_shape' + x.toString();\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, svg, collection, parentSvg);\n }\n var shadowElement;\n if (parentSvg && !options.shadow) {\n shadowElement = parentSvg.getElementById(options.id + '_groupElement_shadow');\n if (shadowElement) {\n shadowElement.parentNode.removeChild(shadowElement);\n }\n }\n var path;\n if (parentSvg) {\n path = parentSvg.getElementById(options.id);\n }\n if (!path || isSelector) {\n path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n svg.appendChild(path);\n }\n this.renderPath(path, options, collection);\n var attr = {};\n if (scale) {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + '),scale(' + scale + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n else {\n attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n }\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n if (options.class) {\n attr['class'] = options.class;\n }\n setAttributeSvg(path, attr);\n this.setSvgStyle(path, options, diagramId);\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} svg - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n SvgRenderer.prototype.renderPath = function (svg, options, collection) {\n var x1;\n var y1;\n var x2;\n var y2;\n var x;\n var y;\n var length;\n var i;\n var segments = collection;\n var d = '';\n for (x = 0, y = 0, i = 0, length = segments.length; i < length; ++i) {\n var obj = segments[parseInt(i.toString(), 10)];\n var segment = obj;\n var char = segment.command;\n if ('x1' in segment) {\n x1 = segment.x1;\n }\n if ('x2' in segment) {\n x2 = segment.x2;\n }\n if ('y1' in segment) {\n y1 = segment.y1;\n }\n if ('y2' in segment) {\n y2 = segment.y2;\n }\n if ('x' in segment) {\n x = segment.x;\n }\n if ('y' in segment) {\n y = segment.y;\n }\n switch (char) {\n case 'M':\n d = d + 'M' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'L':\n d = d + 'L' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'C':\n d = d + 'C' + x1.toString() + ',' + y1.toString() + ',' + x2.toString() + ',' + y2.toString() + ',';\n d += x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Q':\n d = d + 'Q' + x1.toString() + ',' + y1.toString() + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'A':\n d = d + 'A' + segment.r1.toString() + ',' + segment.r2.toString() + ',' + segment.angle.toString() + ',';\n d += segment.largeArc.toString() + ',' + segment.sweep + ',' + x.toString() + ',' + y.toString() + ' ';\n break;\n case 'Z':\n case 'z':\n d = d + 'Z' + ' ';\n break;\n }\n }\n svg.setAttribute('d', d);\n };\n SvgRenderer.prototype.setSvgFontStyle = function (text, options) {\n text.style.fontStyle = options.italic ? 'italic' : 'normal';\n text.style.fontWeight = options.bold ? 'bold' : 'normal';\n text.style.fontSize = options.fontSize.toString() + 'px';\n text.style.fontFamily = options.fontFamily;\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n SvgRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content !== undefined) {\n var textNode = void 0;\n var childNodes = void 0;\n var wrapBounds = void 0;\n var position = void 0;\n var child = void 0;\n var tspanElement = void 0;\n var offsetX = 0;\n var offsetY = 0;\n var i = 0;\n var text = void 0;\n var nodeContent = void 0;\n if (parentSvg) {\n text = parentSvg.getElementById(options.id + '_text');\n }\n if (text) {\n if (options.doWrap) {\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n }\n }\n else {\n options.doWrap = true;\n text = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n if (options.whiteSpace === 'pre-wrap') {\n text.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n }\n if (parentNode) {\n nodeContent = document.getElementById(parentNode.id + '_content_groupElement');\n }\n if (nodeContent && parentNode && parentNode.children && parentNode.children[0] instanceof DiagramNativeElement) {\n var textTag = this.createGElement('g', { id: ariaLabel + '_groupElement' });\n nodeContent.appendChild(textTag);\n textTag.appendChild(text);\n }\n else {\n canvas.appendChild(text);\n }\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n var childNodesHeight = 0;\n if (options.doWrap || options.textOverflow !== 'Wrap') {\n //(EJ2-70658)- Node annotation disappear, while giving same id for annotation in two different diagrams\n //Added the below code for removing the extra span element that added when we double click the text annotation node\n while (text.firstChild) {\n text.removeChild(text.firstChild);\n }\n this.setSvgStyle(text, options, diagramId);\n this.setSvgFontStyle(text, options);\n textNode = document.createTextNode(options.content);\n childNodes = options.childNodes;\n wrapBounds = options.wrapBounds;\n position = this.svgLabelAlign(options, wrapBounds, childNodes);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n childNodes[0].text = overFlow(options.content, options);\n }\n for (i = 0; i < childNodes.length; i++) {\n tspanElement = document.createElementNS('http://www.w3.org/2000/svg', 'tspan');\n textNode = document.createTextNode(childNodes[parseInt(i.toString(), 10)].text);\n child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n if (options.textAlign === 'justify' || options.textAlign === 'left') {\n offsetX = 0;\n }\n else {\n offsetX = position.x + child.x - wrapBounds.x;\n }\n offsetY = position.y + child.dy * (i) + ((options.fontSize) * 0.8);\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'WrapWithOverflow' || options.textWrapping === 'Wrap') && parentNode) {\n var size = (options.isHorizontalLane) ? parentNode.actualSize.width : parentNode.actualSize.height;\n if (offsetY < size) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > size) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n textNode.data = child.text;\n }\n }\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n this.alignText(text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes);\n childNodesHeight += child.dy;\n }\n else {\n break;\n }\n }\n else {\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n this.alignText(text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes);\n }\n }\n }\n if (childNodesHeight && options.isHorizontalLane) {\n pivotX = options.parentOffsetX + options.pivotX;\n pivotY = options.parentOffsetY + options.pivotY;\n options.y = options.parentOffsetY - childNodesHeight * options.pivotY + 0.5;\n }\n if (options.textDecoration && options.textDecoration === 'LineThrough') {\n options.textDecoration = wordBreakToString(options.textDecoration);\n }\n var attr = {\n 'id': options.id + '_text', 'fill': options.color, 'visibility': options.visible ? 'visible' : 'hidden',\n 'text-decoration': options.textDecoration, 'transform': 'rotate(' + options.angle + ','\n + (pivotX) + ',' + (pivotY) + ')'\n + 'translate(' + (options.x) + ',' + (options.y) + ')', 'opacity': options.opacity\n };\n if (ariaLabel) {\n // BLAZ-24062: Adding 'aria-label' without role attribute it causes violation in accessibility test\n attr['role'] = 'img';\n attr['aria-label'] = ariaLabel;\n }\n setAttributeSvg(text, attr);\n }\n };\n SvgRenderer.prototype.alignText = function (text, tspanElement, child, textNode, offsetX, offsetY, i, options, childNodes) {\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n if (options.textAlign !== 'justify') {\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options);\n }\n else {\n if (i !== childNodes.length - 1) {\n var textlength = options.width;\n var adjustlen = 'spacing';\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options, textlength, adjustlen);\n }\n else {\n this.setText(text, tspanElement, child, textNode, offsetX, offsetY, options);\n }\n }\n };\n SvgRenderer.prototype.setText = function (text, tspanElement, child, textNode, offsetX, offsetY, options, textlength, adjustlen) {\n if (options.textAlign !== 'justify') {\n setAttributeSvg(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString() });\n }\n else {\n setAttributeSvg(tspanElement, { 'x': offsetX.toString(), 'y': offsetY.toString(), 'textLength': textlength ? textlength : 0, 'lengthAdjust': adjustlen ? adjustlen : 'spacing' });\n }\n text.setAttribute('fill', child.text);\n tspanElement.appendChild(textNode);\n text.appendChild(tspanElement);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n SvgRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n ///const id: string = obj.id + '_image';\n var image;\n if (parentSvg) {\n image = parentSvg.getElementById(obj.id + 'image');\n }\n if (!image) {\n image = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n canvas.appendChild(image);\n }\n var imageObj = new Image();\n imageObj.src = obj.source;\n var scale = obj.scale !== 'None' ? obj.scale : '';\n //Removed isBlazor code\n var imgAlign = obj.alignment;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale !== 'Stretch') {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': obj.id + 'image', 'x': obj.x.toString(), 'y': obj.y.toString(), 'transform': 'rotate(' + obj.angle + ','\n + (obj.x + obj.width * obj.pivotX) + ',' + (obj.y + obj.height * obj.pivotY) + ')',\n 'width': obj.width.toString(), 'visibility': obj.visible ? 'visible' : 'hidden',\n 'height': obj.height.toString(), 'preserveAspectRatio': aspectRatio,\n //832073 - Opacity when set to Zero for image node is not working - opacity value of 1 is already set as default\n 'opacity': obj.opacity.toString()\n };\n setAttributeSvg(image, attr);\n image.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n };\n /**\n * Draw the HTML element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramHtmlElement} element - Provide the element .\n * @param {HTMLElement} canvas - Provide the canvas element .\n * @param {Transforms} transform - Provide the transform value .\n * @param {boolean} value - Provide the pointer event value .\n * @param {number} indexValue - Provide the index value .\n * @private\n */\n SvgRenderer.prototype.drawHTMLContent = function (element, canvas, transform, value, indexValue) {\n var htmlElement;\n var parentHtmlElement;\n if (canvas) {\n //869698- drag performance is slow when dealing with 1000 plus HTML shapes and Overview feature\n htmlElement = canvas.querySelector('#' + element.id + '_html_element');\n }\n if (!htmlElement) {\n parentHtmlElement = canvas.querySelector(('#' + element.id + '_html_element')) ||\n canvas.querySelector(('#' + element.nodeId + '_html_element'));\n if (!parentHtmlElement) {\n var attr_1 = {\n 'id': element.nodeId + '_html_element',\n 'class': 'foreign-object'\n };\n parentHtmlElement = createHtmlElement('div', attr_1);\n }\n var attr = {\n 'id': element.id + '_html_element',\n 'class': 'foreign-object'\n };\n htmlElement = createHtmlElement('div', attr);\n var diagram = document.getElementById(element.diagramId).ej2_instances[0];\n var isOverviewLayer = false;\n if (canvas.parentNode && canvas.parentNode.parentNode && canvas.parentNode.parentNode.parentNode && canvas.parentNode.parentNode.parentNode.classList.contains('e-overview')) {\n isOverviewLayer = true;\n }\n if (isOverviewLayer) {\n //893685: HTML node with node Template not shown in Overview in React.\n if (diagram.isReact) {\n diagram.renderReactTemplates(function () {\n htmlElement.appendChild(element.template.cloneNode(true));\n });\n }\n else {\n htmlElement.appendChild(element.template.cloneNode(true));\n }\n }\n else {\n //Bug 852259: User handle template not working properly after saving and loading the diagram.\n // After serialization the template will be in string format, so we need to convert it to element.\n if (typeof element.template === 'string') {\n var temp = document.createElement('div');\n temp.innerHTML = element.template;\n element.template = temp;\n var handle = diagram.selectedItems.userHandles.filter(function (x) {\n return x.name === (element.id.split('_shape')[0]) && x.template !== '';\n });\n handle[0].template = element.template;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n // 883335-Exception Throws When Loading Data Without Defining Node Template at Application Level\n if (element.isTemplate && element.template) {\n htmlElement.appendChild(element.template);\n }\n else if (element.template) {\n htmlElement.appendChild(element.template.cloneNode(true));\n }\n }\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(htmlElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n parentHtmlElement.appendChild(htmlElement);\n canvas.appendChild(parentHtmlElement);\n }\n var point = cornersPointsBeforeRotation(element).topLeft;\n htmlElement.setAttribute('style', 'height:' + (element.actualSize.height) + 'px; width:' + (element.actualSize.width) +\n 'px;left:' + point.x + 'px; top:' + point.y + 'px;' +\n 'position:absolute;transform:rotate(' + (element.rotateAngle + element.parentTransform) + 'deg);' +\n 'pointer-events:' + (value ? 'all' : 'none')\n + ';visibility:' + ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n };\n /**\n * Draw the native element for the diagram\\\n *\n * @returns {void} Draw the native element for the diagram.\n * @param {DiagramNativeElement} element - Provide the node element .\n * @param {HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawNativeContent = function (element, canvas, height, width, parentSvg) {\n var nativeElement;\n var clipPath;\n if (parentSvg) {\n nativeElement = parentSvg.getElementById(element.id + '_native_element');\n clipPath = parentSvg.getElementById(element.id + '_clip');\n }\n if (!nativeElement) {\n nativeElement = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n nativeElement.setAttribute('id', element.id + '_native_element');\n nativeElement.appendChild(element.template.cloneNode(true));\n var svgContentTag = this.createGElement('g', { id: element.id + '_inner_native_element' });\n svgContentTag.appendChild(nativeElement);\n canvas.appendChild(svgContentTag);\n }\n if (clipPath) {\n nativeElement.removeChild(clipPath);\n }\n nativeElement.setAttribute('style', 'visibility:' +\n ((element.visible) ? 'visible' : 'hidden') + ';opacity:' + element.style.opacity + ';');\n this.setNativTransform(element, nativeElement, height, width);\n if (element.scale === 'Slice') {\n this.drawClipPath(element, nativeElement, height, width, parentSvg);\n }\n setAttributeSvg(nativeElement, element.description ? { 'role': 'img', 'aria-label': element.description } : {});\n };\n SvgRenderer.prototype.setNativTransform = function (element, nativeElement, height, width) {\n //let angle: number;\n var contentWidth = element.contentSize.width !== 0 ? element.contentSize.width : 1;\n var contentHeight = element.contentSize.height !== 0 ? element.contentSize.height : 1;\n var x = element.templatePosition.x * width / contentWidth;\n var y = element.templatePosition.y * height / contentHeight;\n nativeElement.setAttribute('transform', 'rotate(' + element.parentTransform + ',' + element.offsetX + ',' + element.offsetY +\n ') translate(' + (element.offsetX - x - width * element.pivot.x) + ',' + (element.offsetY - y - height * element.pivot.y) +\n ') scale(' + (width / contentWidth) + ',' + (height / contentHeight) + ')');\n };\n /**\n *used to crop the given native element into a rectangle of the given size .\\\n *\n * @returns {SVGElement} used to crop the given native element into a rectangle of the given size.\n * @param {DiagramNativeElement} node - Provide the node element .\n * @param {SVGElement} group - Provide the SVG element .\n * @param {number} height - Provide the height for the shape .\n * @param {number} width - Provide the width for the shape .\n * @param {SVGSVGElement} parentSvg - Provide the parent svg for the shape .\n * @private\n */\n SvgRenderer.prototype.drawClipPath = function (node, group, height, width, parentSvg) {\n var contentWidth = node.contentSize.width;\n var contentHeight = node.contentSize.height;\n //let actualWidth: number = node.actualSize.width;\n //let actualHeight: number = node.actualSize.height;\n var clipWidth = node.width / (width / contentWidth);\n var clipHeight = node.height / (height / contentHeight);\n var x = node.templatePosition.x + (node.width >= node.height ? 0 : (contentWidth - clipWidth) / 2);\n var y = node.templatePosition.y + (node.height >= node.width ? 0 : (contentHeight - clipHeight) / 2);\n var clipPath = parentSvg.getElementById(node.id + '_clip');\n clipPath = document.createElementNS('http://www.w3.org/2000/svg', 'clipPath');\n clipPath.setAttribute('id', node.id + '_clip');\n group.appendChild(clipPath);\n var rect = parentSvg.getElementById(node.id + '_clip_rect');\n rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\n clipPath.appendChild(rect);\n var attr = {\n 'id': node.id + '_clip_rect', 'width': clipWidth.toString(), 'height': clipHeight.toString(),\n 'x': x.toString(), 'y': y.toString()\n };\n setAttributeSvg(rect, attr);\n if (checkBrowserInfo()) {\n group.setAttribute('clip-path', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + node.id + '_clip)');\n }\n else {\n group.setAttribute('clip-path', 'url(#' + node.id + '_clip)');\n }\n return group;\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} svg - Provide the SVG element .\n * @param {string} diagramId - Provide the diagram id .\n * @private\n */\n SvgRenderer.prototype.renderGradient = function (options, svg, diagramId) {\n var max;\n var min;\n var grd;\n var svgContainer = getBackgroundLayerSvg(diagramId);\n var defs = svgContainer.getElementById(diagramId + 'gradient_pattern');\n if (!defs) {\n defs = createSvgElement('defs', { id: diagramId + 'gradient_pattern' });\n svgContainer.insertBefore(defs, svgContainer.firstChild);\n }\n var radial;\n var linear; //let stop: StopModel; let offset: number;\n removeGradient(svg.id);\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = !max ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = !min ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n linear = options.gradient;\n linear.id = svg.id + '_linear';\n grd = this.createLinearGradient(linear);\n defs.appendChild(grd);\n }\n else {\n radial = options.gradient;\n radial.id = svg.id + '_radial';\n grd = this.createRadialGradient(radial);\n defs.appendChild(grd);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n var stopElement = document.createElementNS('http://www.w3.org/2000/svg', 'stop');\n setAttributeSvg(stopElement, { 'offset': offset.toString(), 'style': 'stop-color:' + stop_1.color });\n grd.appendChild(stopElement);\n }\n }\n return grd;\n };\n /**\n * Draw the Linear gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the Linear gradient for the diagram.\n * @param {LinearGradientModel} linear - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createLinearGradient = function (linear) {\n var lineargradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient');\n var attr = {\n 'id': linear.id, 'x1': linear.x1 + '%', 'y1': linear.y1 + '%', 'x2': linear.x2 + '%', 'y2': linear.y2 + '%'\n };\n setAttributeSvg(lineargradient, attr);\n return lineargradient;\n };\n /**\n * Draw the radial gradient for the diagram .\\\n *\n * @returns {SVGElement} Draw the radial gradient for the diagram.\n * @param {RadialGradientModel} radial - Provide the objects for the gradient element .\n * @private\n */\n SvgRenderer.prototype.createRadialGradient = function (radial) {\n var radialgradient = document.createElementNS('http://www.w3.org/2000/svg', 'radialGradient');\n var attr = {\n 'id': radial.id, 'cx': radial.cx + '%', 'cy': radial.cy + '%', 'r': radial.r + '%', 'fx': radial.fx + '%', 'fy': radial.fy + '%'\n };\n setAttributeSvg(radialgradient, attr);\n return radialgradient;\n };\n /**\n * Set the SVG style for the SVG elements in the diagram.\\\n *\n * @returns {void}\n * @param {SVGElement} svg - Provide the canvas element .\n * @param {StyleAttributes} style - Provide the canvas element .\n * @param {string} diagramId - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.setSvgStyle = function (svg, style, diagramId) {\n if (style.canApplyStyle || style.canApplyStyle === undefined) {\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n var dashArray = [];\n var fill = void 0;\n if (style.dashArray) {\n var canvasRenderer = new CanvasRenderer();\n dashArray = canvasRenderer.parseDashArray(style.dashArray);\n }\n if (style.gradient && style.gradient.type !== 'None' && diagramId) {\n var grd = this.renderGradient(style, svg, diagramId);\n if (checkBrowserInfo()) {\n fill = 'url(' + location.protocol + '//' + location.host + location.pathname + '#' + grd.id + ')';\n }\n else {\n fill = 'url(#' + grd.id + ')';\n }\n }\n else {\n fill = style.fill;\n }\n if (style.stroke) {\n svg.setAttribute('stroke', style.stroke);\n }\n if (style.strokeWidth !== undefined && style.strokeWidth !== null) {\n svg.setAttribute('stroke-width', style.strokeWidth.toString());\n }\n if (dashArray) {\n svg.setAttribute('stroke-dasharray', dashArray.toString() || 'none');\n }\n if (fill) {\n svg.setAttribute('fill', fill);\n }\n }\n };\n //end region\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBound - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n SvgRenderer.prototype.svgLabelAlign = function (text, wrapBound, childNodes) {\n var bounds = new Size(wrapBound.width, childNodes.length * (text.fontSize * 1.2));\n var pos = { x: 0, y: 0 };\n var x = 0;\n var y = 1.2;\n var offsetX = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointX = offsetX;\n var pointY = offsety;\n if (text.textAlign === 'left' || text.textAlign === 'justify') {\n pointX = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBound.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointX = 0;\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else {\n pointX = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointX = (text.width * 1);\n }\n pos.x = x + pointX + (wrapBound ? wrapBound.x : 0);\n pos.y = y + pointY - bounds.height / 2;\n return pos;\n };\n return SvgRenderer;\n}());\nexport { SvgRenderer };\n","import { PathElement } from '../core/elements/path-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { Container } from '../core/containers/container';\nimport { rotateMatrix, identityMatrix, transformPointByMatrix } from '../primitives/matrix';\nimport { Size } from '../primitives/size';\nimport { wordBreakToString, whiteSpaceToString, textAlignToString, randomId, rotatePoint } from '../utility/base-util';\nimport { getUserHandlePosition, canShowCorner, getInterval, getSpaceValue, canShowControlPoints } from '../utility/diagram-util';\nimport { getDiagramElement, getAdornerLayer, getGridLayer, getHTMLLayer, updatePath } from '../utility/dom-util';\nimport { measurePath, getBackgroundLayerSvg, getBackgroundImageLayer, setAttributeSvg } from '../utility/dom-util';\nimport { SnapConstraints, RendererAction, ConnectorConstraints } from '../enum/enum';\nimport { ThumbsConstraints, SelectorConstraints, ElementAction } from '../enum/enum';\nimport { SvgRenderer } from './svg-renderer';\nimport { CanvasRenderer } from './canvas-renderer';\nimport { processPathData, splitArrayCollection, transformPath } from '../utility/path-util';\nimport { isDiagramChild } from '../utility/diagram-util';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { Point } from '../primitives/point';\nimport { canDrawThumbs, avoidDrawSelector } from '../utility/constraints-util';\nimport { Diagram } from '../diagram';\nimport { getSegmentThumbShapeHorizontal, getSegmentThumbShapeVertical } from '../objects/dictionary/common';\n/**\n * Renderer module is used to render basic diagram elements\n */\n/** @private */\nvar DiagramRenderer = /** @class */ (function () {\n function DiagramRenderer(name, svgRender, isSvgMode) {\n /** @private */\n this.renderer = null;\n /** @private */\n this.isSvgMode = true;\n /** @private */\n this.touchMove = undefined;\n this.transform = { x: 0, y: 0 };\n this.diagramId = name;\n this.element = getDiagramElement(this.diagramId);\n this.svgRenderer = svgRender;\n this.isSvgMode = isSvgMode;\n this.renderer = isSvgMode ? new SvgRenderer() : new CanvasRenderer();\n }\n /**\n * Method used to set the cur \\\n *\n * @param {HTMLElement} canvas - Provide the canvas .\n * @param {string} cursor - Provide the element .\n * @returns {void } Method used to set the layer .\\\n * @private\n */\n DiagramRenderer.prototype.setCursor = function (canvas, cursor) {\n canvas.style.cursor = cursor;\n };\n /**\n * Method used to set the layer \\\n *\n * @returns {void } Method used to set the layer .\\\n *\n * @private\n */\n DiagramRenderer.prototype.setLayers = function () {\n this.iconSvgLayer = this.element.getElementsByClassName('e-ports-expand-layer')[0];\n this.adornerSvgLayer = this.element.getElementsByClassName('e-adorner-layer')[0];\n this.nativeSvgLayer = this.element.getElementsByClassName('e-native-layer')[0];\n this.diagramSvgLayer = this.element.getElementsByClassName('e-diagram-layer')[0];\n };\n DiagramRenderer.prototype.getAdornerLayer = function () {\n var adornerLayer = getAdornerLayer(this.diagramId);\n return adornerLayer;\n };\n DiagramRenderer.prototype.getParentSvg = function (element, targetElement, canvas) {\n if (this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1 || element.id.split('_nodeport').length > 1 ||\n (element.elementActions & ElementAction.ElementIsPort)) {\n return this.iconSvgLayer;\n }\n if (targetElement && targetElement === 'selector') {\n return this.adornerSvgLayer;\n }\n else if (element instanceof DiagramNativeElement) {\n return this.nativeSvgLayer;\n }\n else {\n return this.diagramSvgLayer;\n }\n }\n return canvas;\n };\n DiagramRenderer.prototype.getParentElement = function (element, defaultParent, svgElement, indexValue) {\n var layerGElement = defaultParent;\n if (svgElement && this.diagramId && element && element.id) {\n if (element.id.split('_icon_content').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramExpander');\n defaultParent = null;\n }\n else if (element.id.split('_nodeport').length > 1) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n }\n else if (element instanceof DiagramNativeElement) {\n layerGElement = svgElement.getElementById(this.diagramId + '_nativeLayer');\n defaultParent = null;\n }\n else if (element.elementActions & ElementAction.ElementIsPort) {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramPorts');\n defaultParent = null;\n }\n else {\n layerGElement = svgElement.getElementById(this.diagramId + '_diagramLayer');\n }\n var groupElement = this.getGroupElement(element, defaultParent || layerGElement, indexValue);\n layerGElement = groupElement.g;\n if (groupElement.svg) {\n svgElement = groupElement.svg;\n }\n }\n return { g: layerGElement, svg: svgElement };\n };\n DiagramRenderer.prototype.getGroupElement = function (element, canvas, indexValue) {\n var gElement;\n var parentSvg = this.getParentSvg(element);\n var svgElement;\n if (canvas && parentSvg) {\n if (parentSvg) {\n gElement = parentSvg.getElementById(element.id + '_groupElement');\n if (!gElement && parentSvg !== this.nativeSvgLayer) { //code added\n var nativeSvg = this.nativeSvgLayer;\n gElement = nativeSvg.getElementById(element.id + '_groupElement');\n svgElement = nativeSvg;\n }\n }\n if (!gElement) {\n gElement = this.svgRenderer.createGElement('g', { id: element.id + '_groupElement' });\n if (indexValue !== undefined && canvas.childNodes.length > indexValue) {\n canvas.insertBefore(gElement, canvas.childNodes[parseInt(indexValue.toString(), 10)]);\n }\n else {\n canvas.appendChild(gElement);\n }\n }\n }\n return { g: gElement, svg: svgElement };\n };\n /**\n * Method used to render the diagram element \\\n *\n * @returns {void } Method used to render the diagram element .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas value.\n * @param {HTMLElement } htmlLayer - Provide the HTMLElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {SVGSVGElement} parentSvg - Provide the SVGSVGElement value.\n * @param {boolean } createParent - Provide the boolean value.\n * @param {boolean } fromPalette - Provide the boolean value.\n * @param {number } indexValue - Provide the indexValue value.\n * @param {boolean } isPreviewNode - Provide the isPreviewNode value.\n * @param {object } centerPoint - Provide the centerPoint value.\n * @param {object} portCenterPoint - Provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderElement = function (element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint) {\n var isElement = true;\n if (element instanceof Container) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isElement = false;\n element.id = element.id ? element.id : randomId();\n this.renderContainer(element, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint);\n }\n else if (element instanceof ImageElement) {\n this.renderImageElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof PathElement) {\n this.renderPathElement(element, canvas, transform, parentSvg, fromPalette, isPreviewNode, portCenterPoint);\n }\n else if (element instanceof TextElement) {\n this.renderTextElement(element, canvas, transform, parentSvg, fromPalette, centerPoint);\n }\n else if (element instanceof DiagramNativeElement) {\n this.renderNativeElement(element, canvas, transform, parentSvg, fromPalette);\n }\n else if (element instanceof DiagramHtmlElement) {\n this.renderHTMLElement(element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue);\n }\n else {\n this.renderRect(element, canvas, transform, parentSvg, isPreviewNode);\n }\n };\n /**\n * Method used to draw the selection rectangle for the node \\\n *\n * @returns {void } Method used to draw the selection rectangle for the node .\\\n *\n * @param {number} x - Provide the DiagramElement value.\n * @param {number } y - Provide the SVGElement value.\n * @param {number } w - Provide the Transforms value.\n * @param {number } h - Provide the Transforms value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the Transforms value.\n * @param {number } t - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.drawSelectionRectangle = function (x, y, w, h, canvas, t) {\n x = (x + t.tx) * t.scale;\n y = (y + t.ty) * t.scale;\n var options = {\n width: w * t.scale, height: h * t.scale,\n x: x + 0.5, y: y + 0.5, fill: 'transparent', stroke: 'gray', angle: 0,\n pivotX: 0.5, pivotY: 0.5, strokeWidth: 1,\n dashArray: '6 3', opacity: 1,\n visible: true, id: canvas.id + '_selected_region'\n };\n var adornerLayer = this.getAdornerLayer();\n this.svgRenderer.updateSelectionRegion(adornerLayer, options);\n };\n /**\n * Method used to render the highlighter \\\n *\n * @returns {void } Method used to render the highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @private\n */\n DiagramRenderer.prototype.renderHighlighter = function (element, canvas, transform) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 4,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: canvas.id + '_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, canvas);\n };\n /**\n * Method used to render the node selection rectangle \\\n *\n * @returns {void } Method used to render the node selection rectangle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {number } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionRectangle = function (element, canvas, transform, isFirst) {\n var width = element.actualSize.width || 2;\n var height = element.actualSize.height || 2;\n var x = element.offsetX - width * element.pivot.x;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n y = (y + transform.ty) * transform.scale;\n var options = {\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#00cc00', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: isFirst ? 2 : 1,\n dashArray: '', opacity: 1, cornerRadius: 0,\n visible: true, id: element.id + '_highlighter', class: isFirst ? 'e-diagram-first-selection-indicator e-diagram-selection-indicator' : 'e-diagram-selection-indicator'\n };\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n };\n /**\n * Method used to render the selection line for connector \\\n *\n * @returns {void } Method used to render the selection line for connector .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } isFirst - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderSelectionLine = function (element, canvas, transform, isFirst) {\n var options = this.getBaseAttributes(element, transform);\n options.data = element.absolutePath;\n options.id = options.id + '_highlighter';\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (transform) {\n options.x = options.x * transform.scale;\n options.y = options.y * transform.scale;\n }\n options.stroke = '#00cc00';\n options.strokeWidth = isFirst ? 2 : 1;\n options.class = isFirst ? 'e-diagram-first-selection-indicator e-diagram-selection-indicator' : 'e-diagram-selection-indicator';\n var parentSvg = this.getParentSvg(element, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel, transform.scale);\n };\n /**\n * Method used to render the stack highlighter \\\n *\n * @returns {void } Method used to render the stack highlighter .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {SVGElement } canvas - Provide the SVGElement value.\n * @param {Transforms } transform - Provide the Transforms value.\n * @param {boolean} isVertical - Provide the Boolean value.\n * @param {PointModel } position - Provide the PointModel value.\n * @param {boolean } isUml - Provide the boolean value.\n * @param {boolean } isSwimlane - Provide the boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderStackHighlighter = function (element, canvas, transform, isVertical, position, isUml, isSwimlane) {\n var width = element.actualSize.width || 2;\n var x = element.offsetX - width * element.pivot.x;\n var height = element.actualSize.height || 2;\n var y = element.offsetY - height * element.pivot.y;\n x = (x + transform.tx) * transform.scale;\n var data;\n var bounds = element.bounds;\n var newPathString = '';\n y = (y + transform.ty) * transform.scale;\n if (!isVertical) {\n var d = height * transform.scale;\n data = 'M 10 -10 L 0 0 Z M -10 -10 L 0 0 Z M 0 0 L 0 ' + (d) + ' Z M 0 ' + (d) +\n ' L -10 ' + (d + 10) + ' Z L 10 ' + (d + 10) + ' Z';\n if (position.x >= element.offsetX) {\n //879085- swimlane helper guides not rendered properly when zoomed\n x += width * transform.scale;\n }\n }\n else {\n if (isUml) {\n var d = width * transform.scale;\n data = 'M 0 0 L ' + (d + 2) + ' 0 Z';\n var scaleX = -bounds.x;\n var scaleY = -bounds.y;\n var arrayCollection = [];\n scaleX = element.actualSize.width / Number(bounds.width ? bounds.width : 1) * transform.scale;\n scaleY = element.actualSize.height / Number(bounds.height ? bounds.height : 1) * transform.scale;\n var umlData = 'M7,4 L8,4 8,7 11,7 11,8 8,8 8,11 7,11 7,8 4,8 4,7 7,7 z M7.5,0.99999994' +\n 'C3.9160004,1 1,3.9160004 0.99999994,7.5 1,11.084 3.9160004,14 7.5,14 11.084,14 14,11.084 14,7.5 14,' +\n '3.9160004 11.084,1 7.5,0.99999994 z M7.5,0 C11.636002,0 15,3.3639984 15,7.5 15,11.636002 11.636002,15 7.5,' +\n '15 3.3640003,15 0,11.636002 0,7.5 0,3.3639984 3.3640003,0 7.5,0 z';\n arrayCollection = processPathData(umlData);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX + d + 2, scaleY - 8, false, bounds.x, bounds.y, 0, 0);\n if (position.y >= element.offsetY) {\n y += height;\n }\n }\n else {\n if (isSwimlane) {\n if (position.y >= element.offsetY) {\n //879085- swimlane helper guides not rendered properly when zoomed\n y += height * transform.scale;\n }\n }\n var d = width * transform.scale;\n data = 'M -10 -10 L 0 0 Z M -10 10 L 0 0 Z M 0 0 L ' + (d) + ' 0 Z M ' + (d) + ' 0 L ' +\n (d + 10) + ' 10 Z L ' + (d + 10) + ' -10 Z';\n }\n }\n var options = {\n data: data + newPathString,\n width: width * transform.scale, height: height * transform.scale,\n x: x, y: y, fill: 'transparent', stroke: '#8CC63F', angle: element.rotateAngle,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: 1,\n dashArray: '', opacity: 1,\n visible: true, id: canvas.id + '_stack_highlighter', class: 'e-diagram-highlighter'\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to draw the line \\\n *\n * @returns {void } Method used to draw the line .\\\n *\n * @param {SVGElement} canvas - Provide the SVGElement value.\n * @param {LineAttributes } options - Provide the LineAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawLine = function (canvas, options) {\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to draw the path \\\n *\n * @returns {void } Method used to draw the path .\\\n *\n * @param {SVGElement} canvas - Provide the canvas value.\n * @param {PathAttributes } options - Provide the PathAttributes value.\n * @private\n */\n DiagramRenderer.prototype.drawPath = function (canvas, options) {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n };\n /**\n * Method used to render the resize handle \\\n *\n * @returns {void } Method used to render the resize handle .\\\n *\n * @param {DiagramElement} element - Provide the DiagramElement value.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { number} currentZoom - Provide the currentZoom value.\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value .\n * @param { Transforms } transform - Provide the transform value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @param { number } enableNode - Provide the enableNode value.\n * @param { boolean } nodeConstraints - Provide the nodeConstraints value.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value.\n * @param { number } handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderResizeHandle = function (element, canvas, constraints, currentZoom, selectorConstraints, transform, canMask, enableNode, nodeConstraints, isSwimlane, handleSize) {\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n var height = element.actualSize.height;\n var width = element.actualSize.width;\n if (!isSwimlane &&\n (constraints & ThumbsConstraints.Rotate && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions)))) {\n this.renderPivotLine(element, canvas, transform, selectorConstraints, canMask);\n this.renderRotateThumb(element, canvas, transform, selectorConstraints, canMask);\n }\n else {\n if (this.touchMove) {\n var rotateThumb = document.getElementById('rotateThumb');\n if (rotateThumb) {\n rotateThumb.setAttribute('visibility', 'hidden');\n }\n }\n }\n this.renderBorder(element, canvas, transform, enableNode, nodeConstraints, isSwimlane);\n var nodeWidth = element.actualSize.width * currentZoom;\n var nodeHeight = element.actualSize.height * currentZoom;\n if (!nodeConstraints && canDrawThumbs(this.rendererActions) && (!avoidDrawSelector(this.rendererActions))) {\n //Bug 860033: Bpmn text annotation path size not rendered properly while dragging.\n //Added below condition to prevent the resize thumbs for bpmn text annotation.\n if (!element.isTextAnnotation) {\n if (nodeWidth >= 40 && nodeHeight >= 40) {\n //Hide corners when the size is less than 40\n if (selectorConstraints & SelectorConstraints.ResizeNorthWest) {\n this.renderCircularHandle('resizeNorthWest', element, left, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthWest'), constraints & ThumbsConstraints.ResizeNorthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top left side direction' }, undefined, 'e-diagram-resize-handle e-northwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorthEast) {\n this.renderCircularHandle('resizeNorthEast', element, left + width, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorthEast'), constraints & ThumbsConstraints.ResizeNorthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top right side direction' }, undefined, 'e-diagram-resize-handle e-northeast', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthWest) {\n this.renderCircularHandle('resizeSouthWest', element, left, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthWest'), constraints & ThumbsConstraints.ResizeSouthWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom left side direction' }, undefined, 'e-diagram-resize-handle e-southwest', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouthEast) {\n this.renderCircularHandle('resizeSouthEast', element, left + width, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouthEast'), constraints & ThumbsConstraints.ResizeSouthEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom right side direction' }, undefined, 'e-diagram-resize-handle e-southeast', handleSize);\n }\n }\n if (selectorConstraints & SelectorConstraints.ResizeNorth) {\n this.renderCircularHandle('resizeNorth', element, left + width / 2, top, canvas, canShowCorner(selectorConstraints, 'ResizeNorth'), constraints & ThumbsConstraints.ResizeNorth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on top side direction' }, undefined, 'e-diagram-resize-handle e-north', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeSouth) {\n this.renderCircularHandle('resizeSouth', element, left + width / 2, top + height, canvas, canShowCorner(selectorConstraints, 'ResizeSouth'), constraints & ThumbsConstraints.ResizeSouth, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on bottom side direction' }, undefined, 'e-diagram-resize-handle e-south', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeWest) {\n this.renderCircularHandle('resizeWest', element, left, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeWest'), constraints & ThumbsConstraints.ResizeWest, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on left side direction' }, undefined, 'e-diagram-resize-handle e-west', handleSize);\n }\n if (selectorConstraints & SelectorConstraints.ResizeEast) {\n this.renderCircularHandle('resizeEast', element, left + width, top + height / 2, canvas, canShowCorner(selectorConstraints, 'ResizeEast'), constraints & ThumbsConstraints.ResizeEast, transform, undefined, canMask, { 'aria-label': 'Thumb to resize the selected object on right side direction' }, undefined, 'e-diagram-resize-handle e-east', handleSize);\n }\n }\n }\n };\n /**\n * Method used to render the end point of the handle \\\n *\n * @returns {void } Method used to render the end point of the handle .\\\n *\n * @param {ConnectorModel} selector - Provide the ConnectorModel.\n * @param {HTMLCanvasElement | SVGElement } canvas - Provide the element.\n * @param { ThumbsConstraints } constraints - Provide the constraints value .\n * @param { SelectorConstraints} selectorConstraints - Provide the selectorConstraints value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { boolean } connectedSource - Provide the connectedSource boolean value.\n * @param { boolean } connectedTarget - Provide the connectedTarget boolean value.\n * @param { boolean } isSegmentEditing - Provide the isSegmentEditing boolean value.\n * @param { boolean } canShowBezierPoints - Provide the canShowBezierPoints boolean value.\n * @param {number} handleSize - Provide the handleSize value.\n * @private\n */\n DiagramRenderer.prototype.renderEndPointHandle = function (selector, canvas, constraints, selectorConstraints, transform, connectedSource, connectedTarget, isSegmentEditing, canShowBezierPoints, handleSize) {\n var sourcePoint = selector.sourcePoint;\n var targetPoint = selector.targetPoint;\n var wrapper = selector.wrapper;\n var i;\n var segment;\n this.renderCircularHandle('connectorSourceThumb', wrapper, sourcePoint.x, sourcePoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-endpoint-handle e-sourceend', handleSize);\n this.renderCircularHandle('connectorTargetThumb', wrapper, targetPoint.x, targetPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, connectedTarget, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-endpoint-handle e-targetend', handleSize);\n if (isSegmentEditing) {\n if ((selector.type === 'Straight') && selector.segments.length > 0) {\n for (i = 0; i < selector.segments.length - 1; i++) {\n segment = selector.segments[parseInt(i.toString(), 10)];\n var className = 'e-diagram-straight-segment-handle';\n this.renderCircularHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, constraints & ThumbsConstraints.ConnectorSource, transform, connectedSource, null, null, i, className, handleSize);\n }\n } //824805-Support to modify bezier connector segment thumb shape and style\n else if ((selector.type === 'Bezier') && selector.segments.length > 0) {\n for (i = 0; i < selector.segments.length - 1; i++) {\n segment = selector.segments[parseInt(i.toString(), 10)];\n var className = 'e-diagram-bezier-segment-handle';\n this.renderBezierHandle(('segementThumb_' + (i + 1)), wrapper, segment.point.x, segment.point.y, canvas, true, selector, transform, connectedSource, null, i, className, handleSize);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!selector.maxSegmentThumb) {\n for (i = 0; i < selector.segments.length; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is non zero then we have ignore the rendering of\n // first and last segment thumb\n var start = selector.segments.length <= selector.maxSegmentThumb ? 0 : 1;\n var end = selector.segments.length <= selector.maxSegmentThumb\n ? selector.segments.length : selector.segments.length - 1;\n // (EJ2-57115) - If maxSegmentThumb is greater than or equal to 3 means then set start as second segment(1) and end as last before segment\n if (selector.maxSegmentThumb >= 3 && selector.segments.length === 3) {\n start = 1;\n end = selector.segments.length - 1;\n }\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set start as 2\n start = selector.segments.length > selector.maxSegmentThumb + 2 ? 2 : start;\n // (EJ2-57115) - If segments length is greater than maxSegmentThumb + 2 means then set end as last before segment\n end = selector.segments.length > selector.maxSegmentThumb + 2 ? selector.segments.length - 2 : end;\n if (selector.segments.length === 1 && selector.segments[0].points.length <= 2) {\n start = 1;\n end = selector.segments.length;\n }\n for (i = start; i < end; i++) {\n var seg = selector.segments[parseInt(i.toString(), 10)];\n this.renderOrthogonalThumbs('orthoThumb_' + (i + 1), wrapper, seg, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), transform, selector);\n }\n }\n }\n }\n if (selector.type === 'Bezier' && canShowBezierPoints) {\n var segmentCount = selector.segments.length - 1;\n var controlPointsVisibility = selector.bezierSettings != null\n ? selector.bezierSettings.controlPointsVisibility : null;\n for (i = 0; i <= segmentCount; i++) {\n var segment_1 = selector.segments[parseInt(i.toString(), 10)];\n var bezierPoint = !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1\n : segment_1.bezierPoint1;\n if (controlPointsVisibility != null && (i === 0 && canShowControlPoints(controlPointsVisibility, 'Source'))\n || (i !== 0 && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_1', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorSourceThumb'), constraints & ThumbsConstraints.ConnectorSource, transform, undefined, undefined, { 'aria-label': 'Thumb to move the source point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-source', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorSourceThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_1', wrapper, canvas, segment_1.points[0], !Point.isEmptyPoint(segment_1.point1) ? segment_1.point1 : segment_1.bezierPoint1, transform);\n }\n }\n bezierPoint = !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2;\n if (controlPointsVisibility != null && (i === segmentCount && canShowControlPoints(controlPointsVisibility, 'Target'))\n || (i !== segmentCount && canShowControlPoints(controlPointsVisibility, 'Intermediate'))) {\n this.renderCircularHandle('bezierPoint_' + (i + 1) + '_2', wrapper, bezierPoint.x, bezierPoint.y, canvas, canShowCorner(selectorConstraints, 'ConnectorTargetThumb'), constraints & ThumbsConstraints.ConnectorTarget, transform, undefined, undefined, { 'aria-label': 'Thumb to move the target point of the connector' }, undefined, 'e-diagram-bezier-control-handle e-target', handleSize);\n if (canShowCorner(selectorConstraints, 'ConnectorTargetThumb')) {\n this.renderBezierLine('bezierLine_' + (i + 1) + '_2', wrapper, canvas, segment_1.points[1], !Point.isEmptyPoint(segment_1.point2) ? segment_1.point2 : segment_1.bezierPoint2, transform);\n }\n }\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { OrthogonalSegment } segment - Provide the segment value .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { boolean } visibility - Provide the visibility value .\n * @param { Transforms } t - Provide the Transforms value.\n * @param { ConnectorModel } connector - Provide the connector value.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumbs = function (id, selector, segment, canvas, visibility, t, connector) {\n var orientation;\n var visible;\n var length;\n var j = 0;\n var direction;\n // (EJ2-57115) - Added below code to check if maxSegmentThumb is zero or not\n if (!connector.maxSegmentThumb) {\n for (j = 0; j < segment.points.length - 1; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n //850501-Added below code to check the direction of the segments\n direction = Point.direction(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t, connector, direction);\n }\n }\n else {\n // (EJ2-57115) - Added below code to check if maxSegmentThumb greater then 3 means then we have ignore the rendering of\n // first and last segment thumb\n // Set the start value as 1 if segment points is greater than 3\n var start = segment.points.length < 3 ? 0 : 1;\n // set the end value as segment.points.length - 2 if segment points is greater then 3\n var end = segment.points.length < 3 ? segment.points.length - 1 : segment.points.length - 2;\n start = connector.segments.length === 1 ? start : 0;\n end = connector.segments.length === 1 ? end : segment.points.length - 1;\n for (j = start; j < end; j++) {\n length = Point.distancePoints(segment.points[parseInt(j.toString(), 10)], segment.points[j + 1]);\n orientation = (segment.points[parseInt(j.toString(), 10)].y.toFixed(2) === segment.points[j + 1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n visible = (length >= 50 && segment.allowDrag) ? true : false;\n this.renderOrthogonalThumb((id + '_' + (j + 1)), selector, (((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2)), (((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2)), canvas, visible, orientation, t, connector, direction);\n }\n }\n };\n /**\n * Method used to render the orthogonal thumb \\\n *\n * @returns {void } Method used to render the orthogonal thumb .\\\n *\n * @param {string} id - Provide the id for the element.\n * @param {DiagramElement } selector - Provide the selector element.\n * @param { Transforms } x - Provide the x value .\n * @param { Transforms } y - Provide the y value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible boolean value.\n * @param { string } orientation - Provide the orientation value.\n * @param { Transforms } t - Provide the Transforms value.\n * @param { ConnectorModel } connector - Provide the connector value.\n * @param { string } direction - Provide the direction of the segment.\n * @private\n */\n DiagramRenderer.prototype.renderOrthogonalThumb = function (id, selector, x, y, canvas, visible, orientation, t, connector, direction) {\n var path;\n var segmentThumbAngle = 0;\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n //824805-Support to modify connector segment thumb shape and style based on constraints\n var inheritsegmentThumbShape = (connector.constraints & ConnectorConstraints.InheritSegmentThumbShape);\n var segmentThumbShape = inheritsegmentThumbShape ? diagram.segmentThumbShape : connector.segmentThumbShape;\n //850501-Added below code to modify connector segment thumb size based on constraints\n var inheritSegmentThumbSize = (connector.constraints & ConnectorConstraints.InheritSegmentThumbSize);\n var segmentThumbSize = inheritSegmentThumbSize ? diagram.segmentThumbSize : connector.segmentThumbSize;\n if (orientation === 'horizontal') {\n path = getSegmentThumbShapeHorizontal(segmentThumbShape);\n }\n else {\n path = getSegmentThumbShapeVertical(segmentThumbShape);\n }\n //850501-Added the below code to change the angles of the segmentThumbShape(arrows) based on the direction\n if (segmentThumbShape === 'Arrow' || segmentThumbShape === 'DoubleArrow' || segmentThumbShape === 'OpenArrow') {\n switch (direction) {\n case 'Bottom':\n case 'Right':\n segmentThumbAngle = 180;\n break;\n default:\n segmentThumbAngle = 0;\n }\n }\n else if (segmentThumbShape === 'Fletch' || segmentThumbShape === 'OpenFetch' || segmentThumbShape === 'IndentedArrow' || segmentThumbShape === 'OutdentedArrow') {\n switch (direction) {\n case 'Bottom':\n segmentThumbAngle = -90;\n break;\n case 'Top':\n segmentThumbAngle = 90;\n break;\n case 'Right':\n segmentThumbAngle = 180;\n break;\n default:\n segmentThumbAngle = 0;\n }\n }\n var options = {\n x: ((x + t.tx) * t.scale) - segmentThumbSize / 2, y: ((y + t.ty) * t.scale) - segmentThumbSize / 2, angle: segmentThumbAngle,\n fill: '#e2e2e2', stroke: 'black', strokeWidth: 1, dashArray: '', data: path,\n width: segmentThumbSize, height: segmentThumbSize, pivotX: 0.5, pivotY: 0.5, opacity: 1, visible: visible, id: id,\n class: 'e-diagram-ortho-segment-handle'\n };\n //850501-Added the below code to adjust size for the segment thumb shape based on the size given\n var absoluteBounds = measurePath(options.data);\n var desiredSize = new Size(options.width, options.height);\n var pathElement = new PathElement();\n options.data = pathElement.updatePath(options.data, absoluteBounds, desiredSize);\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var thumb = document.getElementById(id);\n if (thumb) {\n this.updateSegmentPosition(thumb, options);\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n }\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId);\n }\n };\n /**\n * Method used to render the pivot line line\\\n *\n * @returns {void } Method used to render the pivot line line .\\\n *\n * @param {DiagramElement} element - Provide the diagram element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selector constraints value.\n * @param { boolean } canMask - Provide the canMask boolean value.\n * @private\n */\n DiagramRenderer.prototype.renderPivotLine = function (element, canvas, transform, selectorConstraints, canMask) {\n var wrapper = element;\n var dashArray = '2,3';\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var options = this.getBaseAttributes(wrapper, transform);\n options.fill = 'None';\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.visible = visible;\n var scale = transform.scale;\n options.x *= scale;\n options.y *= scale;\n options.width *= scale;\n options.height *= scale;\n options.id = 'pivotLine';\n options.class = 'e-diagram-pivot-line';\n var startPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: -20 };\n var endPoint = { x: wrapper.actualSize.width * wrapper.pivot.x * scale, y: 0 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the bezier line for the connector \\\n *\n * @returns {void } Method used to render the bezier line for the connector .\\\n *\n * @param {string} id - Provide the id value for the bezier line.\n * @param { DiagramElement } wrapper - Provide the wrapper for the element.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element .\n * @param { PointModel } start - Provide the pointmodel value.\n * @param { PointModel } end - Provide the pointmodel value.\n * @param { Transforms } transform - Provide the itransform value .\n * @private\n */\n DiagramRenderer.prototype.renderBezierLine = function (id, wrapper, canvas, start, end, transform) {\n var dashArray = '3,3';\n var options = this.getBaseAttributes(wrapper, transform);\n options.id = id;\n options.stroke = 'black';\n options.strokeWidth = 1;\n options.dashArray = dashArray;\n options.fill = 'None';\n options.class = 'e-diagram-bezier-control-line';\n options.x = 0;\n options.y = 0;\n var scale = transform.scale;\n var x1 = (start.x + transform.tx) * scale;\n var y1 = (start.y + transform.ty) * scale;\n var x2 = (end.x + transform.tx) * scale;\n var y2 = (end.y + transform.ty) * scale;\n var startPoint = { x: x1, y: y1 };\n var endPoint = { x: x2, y: y2 };\n options.startPoint = startPoint;\n options.endPoint = endPoint;\n this.svgRenderer.drawLine(canvas, options);\n };\n /**\n * Method used to render the circular handle for the node element \\\n *\n * @returns {void } Method used to render the circular handle for the node element .\\\n *\n * @param {string} id - Provide the id value.\n * @param { DiagramElement } selector - Provide the selector element value.\n * @param { number } cx - Provide cx value .\n * @param { number } cy - Provide cx value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible property for the handle .\n * @param { number } enableSelector - Provide the value for the enableSelector .\n * @param { Transforms } t - Provide the transform value .\n * @param { boolean } connected - Provide the connected boolean value .\n * @param { boolean } canMask - Provide the canMask boolean value .\n * @param { Object } ariaLabel - Provide the label properties .\n * @param { number } count - Provide the count value .\n * @param { string } className - Provide the class name for this element .\n * @param { number } handleSize - Provide the handle size value .\n *\n * @private\n */\n // Feature (EJ2-44346) Provide support to increase the size of the resize thumb\n DiagramRenderer.prototype.renderCircularHandle = function (id, selector, cx, cy, canvas, visible, enableSelector, t, connected, canMask, ariaLabel, count, className, handleSize) {\n var wrapper = selector;\n var newPoint = { x: cx, y: cy };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = this.getBaseAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n if (count !== undefined) {\n options.id = 'segmentEnd_' + count;\n options.fill = '#e2e2e2';\n }\n else {\n options.fill = connected ? '#8CC63F' : 'white';\n }\n options.cornerRadius = handleSize / 2;\n options.angle = selector.rotateAngle;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.width = handleSize;\n options.height = handleSize;\n // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5\n options.x = (newPoint.x + t.tx) * t.scale;\n options.y = (newPoint.y + t.ty) * t.scale;\n options.x = options.x - options.width / 2;\n options.y = options.y - options.height / 2;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var handle = document.getElementById(id);\n if (handle) {\n this.updateResizeHandle(handle, options);\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector);\n }\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, true, true, parentSvg, ariaLabel, true, enableSelector);\n }\n };\n DiagramRenderer.prototype.updateResizeHandle = function (handle, options) {\n var attr = {\n 'id': options.id, 'x': options.x.toString(), 'y': options.y.toString(), 'width': options.width.toString(),\n 'height': options.height.toString(), 'visibility': options.visible ? 'visible' : 'hidden',\n 'transform': 'rotate(' + options.angle + ','\n + (options.x + options.width / 2) + ',' + (options.y + options.height / 2) + ')',\n 'rx': options.cornerRadius || 0, 'ry': options.cornerRadius || 0, 'opacity': options.opacity\n };\n setAttributeSvg(handle, attr);\n };\n //824805-Support to modify bezier connector segmentThumbShape\n /**\n * Method used to render the segment thumb shape for Bezier connector \\\n *\n * @returns {void } Method used to render the segment thumb shape for Bezier connector .\\\n *\n * @param {string} id - Provide the id value.\n * @param { DiagramElement } selector - Provide the selector element value.\n * @param { number } cx - Provide cx value .\n * @param { number } cy - Provide cx value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element.\n * @param { boolean } visible - Provide the visible property for the handle .\n * @param { ConnectorModel } connector - Provide the value for the connector .\n * @param { Transforms } t - Provide the transform value .\n * @param { boolean } connected - Provide the connected boolean value .\n * @param { boolean } canMask - Provide the canMask boolean value .\n * @param { number } count - Provide the count value .\n * @param { string } className - Provide the class name for this element .\n * @param { number } handleSize - Provide the handle size value .\n *\n * @private\n */\n DiagramRenderer.prototype.renderBezierHandle = function (id, selector, cx, cy, canvas, visible, connector, t, connected, canMask, count, className, handleSize) {\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n var wrapper = selector;\n var newPoint = { x: cx, y: cy };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var inheritsegmentThumbShape = (connector.constraints & ConnectorConstraints.InheritSegmentThumbShape);\n var segmentThumbShape = inheritsegmentThumbShape ? diagram.segmentThumbShape : connector.segmentThumbShape;\n //850501-Added below code to modify connector segment thumb size based on constraints\n var inheritSegmentThumbSize = (connector.constraints & ConnectorConstraints.InheritSegmentThumbSize);\n var segmentThumbSize = inheritSegmentThumbSize ? diagram.segmentThumbSize : connector.segmentThumbSize;\n var path = getSegmentThumbShapeVertical(segmentThumbShape);\n var options = this.getBaseAttributes(wrapper);\n options.stroke = 'black';\n options.strokeWidth = 1;\n if (count !== undefined) {\n options.id = 'segmentEnd_' + count;\n options.fill = '#e2e2e2';\n }\n else {\n options.fill = connected ? '#8CC63F' : 'white';\n }\n options.angle = selector.rotateAngle;\n options.id = id;\n options.visible = visible;\n options.class = className;\n options.width = segmentThumbSize;\n options.height = segmentThumbSize;\n // EJ2-65895 - Added below code to calculate the rect x and y if node pivot is not equal to 0.5\n options.data = path;\n options.x = ((newPoint.x + t.tx) * t.scale);\n options.y = ((newPoint.y + t.ty) * t.scale);\n options.x = options.x - options.width / 2;\n options.y = options.y - options.height / 2;\n if (connected) {\n options.class += ' e-connected';\n }\n if (canMask) {\n options.visible = false;\n }\n //850501-Added the below code to adjust size for the segment thumb shape based on the size given\n var absoluteBounds = measurePath(options.data);\n var desiredSize = new Size(options.width, options.height);\n var pathElement = new PathElement();\n options.data = pathElement.updatePath(options.data, absoluteBounds, desiredSize);\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var handle = document.getElementById(id);\n if (handle) {\n this.updateSegmentPosition(handle, options);\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, parentSvg);\n }\n }\n else {\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, parentSvg);\n }\n };\n DiagramRenderer.prototype.updateSegmentPosition = function (handle, options) {\n var attr = {\n 'id': options.id, 'transform': 'rotate(' + options.angle + ',' + (options.x + options.width * options.pivotX) + ','\n + (options.y + options.height * options.pivotY) + ')' + 'translate(' + (options.x) + ',' + (options.y) + ')',\n 'visibility': options.visible ? 'visible' : 'hidden', 'opacity': options.opacity\n };\n setAttributeSvg(handle, attr);\n };\n /**\n * Method used to render border for the node element \\\n *\n * @returns {void } Method used to render border for the node element .\\\n *\n * @param {SelectorModel} selector - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { number } enableNode - Provide enableNode boolean value.\n * @param { boolean } isBorderTickness - Provide the thickness value for the node.\n * @param { boolean } isSwimlane - Provide the isSwimlane boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderBorder = function (selector, canvas, transform, enableNode, isBorderTickness, isSwimlane) {\n var wrapper = selector;\n var options = this.getBaseAttributes(wrapper, transform);\n options.x *= transform.scale;\n options.y *= transform.scale;\n options.width *= transform.scale;\n options.height *= transform.scale;\n options.fill = 'transparent';\n options.stroke = '#097F7F';\n options.strokeWidth = 1.2;\n options.gradient = null;\n options.dashArray = '6,3';\n options.class = 'e-diagram-selector';\n if (isSwimlane) {\n options.class += ' e-diagram-lane';\n }\n options.id = 'borderRect';\n options.id = (this.rendererActions & RendererAction.DrawSelectorBorder) ? 'borderRect_symbol' : 'borderRect';\n if (!enableNode) {\n options.class += ' e-disabled';\n }\n if (isBorderTickness) {\n options.class += ' e-thick-border';\n }\n options.cornerRadius = 0;\n var parentSvg = this.getParentSvg(selector, 'selector');\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId, undefined, true, parentSvg);\n };\n /**\n * Method used to render user handle for the node element\\\n *\n * @returns {void } Method used to render user handle for the node element .\\\n *\n * @param {SelectorModel} selectorItem - Provide the selector model instance.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value.\n * @param { HTMLElement } diagramUserHandlelayer - Provide the HTMLElement value.\n * @param { Actions } currentAction - Provide the currentAction value.\n * @param { boolean } inAction - Provide the inAction value.\n * @private\n */\n DiagramRenderer.prototype.renderUserHandler = function (selectorItem, canvas, transform, diagramUserHandlelayer, currentAction, inAction) {\n var wrapper = selectorItem.wrapper;\n var canDraw;\n for (var _i = 0, _a = selectorItem.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n canDraw = true;\n //879279 : Userhandle should be removed on dragging the node/connector in mousemove action\n if ((obj.disableConnectors && selectorItem.connectors.length > 0) ||\n (obj.disableNodes && selectorItem.nodes.length > 0) ||\n (currentAction === 'Drag' && inAction)) {\n canDraw = false;\n }\n var div = document.getElementById(obj.name + '_template_hiddenUserHandle');\n if (div) {\n obj.template = (div.childNodes[0]).cloneNode(true);\n }\n //const newPoint: PointModel;\n var newPoint = getUserHandlePosition(selectorItem, obj, transform);\n newPoint.x = (newPoint.x + transform.tx) * transform.scale;\n newPoint.y = (newPoint.y + transform.ty) * transform.scale;\n if (obj.visible) {\n obj.visible = (selectorItem.constraints & SelectorConstraints.UserHandle) ? true : false;\n }\n if (canDraw) {\n if (obj.pathData) {\n var data = obj.pathData ? obj.pathData : obj.content;\n var option = this.getBaseAttributes(wrapper);\n option.id = obj.name + '_userhandle';\n option.fill = obj.backgroundColor;\n option.stroke = obj.borderColor;\n option.strokeWidth = obj.borderWidth;\n option.centerX = newPoint.x;\n option.centerY = newPoint.y;\n option.radius = obj.size * 0.5;\n option.class = 'e-diagram-userhandle-circle';\n option.angle = 0;\n option.visible = obj.visible;\n option.opacity = 1;\n this.svgRenderer.drawCircle(canvas, option, 1, { 'aria-label': obj.name + 'user handle' });\n var pathPading = 5;\n var arrayCollection = [];\n arrayCollection = processPathData(data);\n arrayCollection = splitArrayCollection(arrayCollection);\n var pathSize = measurePath(data);\n //requiredSize/contentSize\n var scaleX = (obj.size - 0.45 * obj.size) / pathSize.width;\n var scaleY = (obj.size - 0.45 * obj.size) / pathSize.height;\n var newData = transformPath(arrayCollection, scaleX, scaleY, true, pathSize.x, pathSize.y, 0, 0);\n pathSize = measurePath(newData);\n var options = {\n x: newPoint.x - pathSize.width / 2,\n y: newPoint.y - pathSize.height / 2, angle: 0, id: '',\n class: 'e-diagram-userhandle-path', fill: obj.pathColor,\n stroke: obj.backgroundColor, strokeWidth: 0.5, dashArray: '', data: newData,\n width: obj.size - pathPading, height: obj.size - pathPading, pivotX: 0, pivotY: 0, opacity: 1, visible: obj.visible\n };\n this.svgRenderer.drawPath(canvas, options, this.diagramId, undefined, undefined, { 'aria-label': obj.name + 'user handle' });\n }\n else if (obj.content) {\n //const handleContent: DiagramNativeElement;\n var handleContent = new DiagramNativeElement(obj.name, this.diagramId);\n handleContent.content = obj.content;\n handleContent.offsetX = newPoint.x;\n handleContent.offsetY = newPoint.y;\n handleContent.id = obj.name + '_shape';\n handleContent.horizontalAlignment = 'Center';\n handleContent.verticalAlignment = 'Center';\n handleContent.visible = obj.visible;\n handleContent.setOffsetWithRespectToBounds(newPoint.x, newPoint.y, 'Fraction');\n handleContent.relativeMode = 'Object';\n handleContent.description = obj.name || 'User handle';\n handleContent.measure(new Size(obj.size, obj.size));\n handleContent.arrange(handleContent.desiredSize);\n this.svgRenderer.drawNativeContent(handleContent, canvas, obj.size, obj.size, this.adornerSvgLayer);\n }\n else if (obj.source) {\n var element = new ImageElement();\n var options = this.getBaseAttributes(element, transform);\n options.width = obj.size;\n options.height = obj.size;\n options.x = newPoint.x - (obj.size / 2);\n options.y = newPoint.y - (obj.size / 2);\n options.sourceWidth = obj.size;\n options.sourceHeight = obj.size;\n options.alignment = element.imageAlign;\n options.source = obj.source;\n options.scale = element.imageScale;\n options.visible = obj.visible;\n options.description = obj.name || 'User handle';\n options.id = obj.name + '_';\n this.renderer.drawImage(canvas, options, this.adornerSvgLayer, false);\n }\n else {\n //const templateContent: DiagramHtmlElement;\n var templateContent = new DiagramHtmlElement(obj.name, this.diagramId);\n templateContent.offsetX = newPoint.x;\n templateContent.offsetY = newPoint.y;\n templateContent.id = obj.name + '_shape';\n templateContent.visible = obj.visible;\n templateContent.relativeMode = 'Object';\n templateContent.template = obj.template;\n templateContent.measure(new Size(obj.size, obj.size));\n templateContent.arrange(templateContent.desiredSize);\n this.svgRenderer.drawHTMLContent(templateContent, diagramUserHandlelayer, undefined, true, undefined);\n }\n }\n }\n };\n /**\n * Method used to render rotate thumb of the diagramnode element \\\n *\n * @returns {void } Method used to render rotate thumb of the diagramnode element .\\\n *\n * @param {DiagramElement} wrapper - Provide the wrapper element value.\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SelectorConstraints } selectorConstraints - Provide the selectorConstraints value.\n * @param { boolean } canMask - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRotateThumb = function (wrapper, canvas, transform, selectorConstraints, canMask) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var element = new PathElement();\n var newPoint;\n var size = new Size();\n size.width = 18;\n size.height = 16;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var visible = (selectorConstraints & SelectorConstraints.Rotate) ? true : false;\n if (canMask) {\n visible = false;\n }\n var data = 'M 16.856144362449648 10.238890446662904 L 18.000144362449646 3.437890446662903' +\n 'L 15.811144362449646 4.254890446662903 C 14.837144362449646 2.5608904466629028 13.329144362449647 ' +\n ' 1.2598904466629026 11.485144362449645 0.5588904466629026 C 9.375144362449646 - 0.24510955333709716 7.071144362449646 ' +\n ' - 0.18010955333709716 5.010144362449646 0.7438904466629028 C 2.942144362449646 1.6678904466629028 1.365144362449646' +\n ' 3.341890446662903 0.558144362449646 5.452890446662903 C - 0.244855637550354 7.567890446662903 - 0.17985563755035394' +\n ' 9.866890446662904 0.7431443624496461 11.930890446662904 C 1.6681443624496461 13.994890446662904 3.343144362449646' +\n ' 15.575890446662903 5.457144362449647 16.380890446662903 C 6.426144362449647 16.7518904466629 7.450144362449647' +\n ' 16.9348904466629 8.470144362449647 16.9348904466629 C 9.815144362449647 16.9348904466629 11.155144362449647 ' +\n '16.6178904466629 12.367144362449647 15.986890446662901 L 11.351144362449647 14.024890446662901 C 9.767144362449647' +\n ' 14.8468904466629 7.906144362449647 14.953890446662902 6.237144362449647 14.3178904466629 C 4.677144362449647' +\n ' 13.7218904466629 3.444144362449647 12.5558904466629 2.758144362449647 11.028890446662901 C 2.078144362449646 ' +\n '9.501890446662903 2.031144362449646 7.802890446662903 2.622144362449646 6.243890446662903 C 3.216144362449646' +\n ' 4.6798904466629025 4.387144362449646 3.442890446662903 5.914144362449646 2.760890446662903 C 7.437144362449646 ' +\n '2.078890446662903 9.137144362449646 2.0298904466629026 10.700144362449645 2.6258904466629027 C 11.946144362449646 ' +\n '3.100890446662903 12.971144362449646 3.9538904466629026 13.686144362449646 5.049890446662903 L 11.540144362449645 ' +\n '5.850890446662903 L 16.856144362449648 10.238890446662904 Z';\n var pivotX = left + wrapper.pivot.x * wrapper.actualSize.width;\n var pivotY = top;\n pivotX = (pivotX + transform.tx) * transform.scale;\n pivotY = (pivotY + transform.ty) * transform.scale;\n newPoint = { x: pivotX - size.width * 0.5, y: pivotY - 30 - size.height * 0.5 };\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, (transform.tx + wrapper.offsetX) * transform.scale, (transform.ty + wrapper.offsetY) * transform.scale);\n newPoint = transformPointByMatrix(matrix, newPoint);\n }\n var options = {\n x: newPoint.x,\n y: newPoint.y,\n angle: wrapper.rotateAngle + wrapper.parentTransform,\n fill: '#231f20', stroke: 'black', strokeWidth: 0.5, dashArray: '', data: data,\n width: 20, height: 20, pivotX: 0, pivotY: 0, opacity: 1, visible: visible, id: wrapper.id, class: 'e-diagram-rotate-handle'\n };\n options.id = 'rotateThumb';\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to update the element if it is already rendered during touch move interaction\n if (this.touchMove) {\n var thumb = document.getElementById('rotateThumb');\n if (thumb) {\n this.updateSegmentPosition(thumb, options);\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' });\n }\n }\n else {\n this.svgRenderer.drawPath(canvas, options, this.diagramId, true, undefined, { 'aria-label': 'Thumb to rotate the selected object' });\n }\n };\n /**\n * Method used to render the path element for the diagram \\\n *\n * @returns {void } Method used to render the path element for the diagram .\\\n *\n * @param {PathElement} element - Provide the path element of the diagram .\n * @param { HTMLCanvasElement | SVGElement } canvas - Provide the canvas element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the parent SVG element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderPathElement = function (element, canvas, transform, parentSvg, fromPalette, isPreviewNode, portCenterPoint) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.data = element.absolutePath;\n options.data = element.absolutePath;\n // Feature 826644: Support to add ports to the connector. Added below condition to position port based on its alignment and offset.\n if (element.isPathPort && portCenterPoint) {\n options.x = portCenterPoint[element.id] ? portCenterPoint[element.id].cx : options.x;\n options.y = portCenterPoint[element.id] ? portCenterPoint[element.id].cy : options.y;\n element.bounds.x = options.x;\n element.bounds.y = options.y;\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram = void 0;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n if (diagram.eventHandler.currentAction !== 'PortDrag') {\n element.offsetX = options.x + (element.width / 2);\n element.offsetY = options.y + (element.height / 2);\n }\n }\n }\n var ariaLabel = element.description ? element.description : element.id;\n if (!this.isSvgMode) {\n options.x = element.flipOffset.x ? element.flipOffset.x : options.x;\n options.y = element.flipOffset.y ? element.flipOffset.y : options.y;\n }\n if (element.isExport) {\n var pathBounds = element.absoluteBounds;\n //Bug 857388: Connector with bridging is not properly exported.\n //Below we save the arc values of bridge and use it in renderPath method.\n var collection = processPathData(options.data);\n // Get r1 and r2 values for 'A' commands\n var arc = this.findAndStoreArcValues(collection);\n options.arc = arc;\n options.data = updatePath(element, pathBounds, undefined, options);\n }\n this.renderer.drawPath(canvas, options, this.diagramId, undefined, parentSvg, ariaLabel);\n };\n // Function to filter 'A' commands and extract r1 and r2 values\n DiagramRenderer.prototype.findAndStoreArcValues = function (arr) {\n var rValues = [];\n arr.forEach(function (obj) {\n if (obj.command === 'A') {\n // Store r1 and r2 values in an object\n var rObj = { r1: obj.r1 / 2, r2: obj.r2 / 2 };\n rValues.push(rObj);\n }\n });\n // Return array of r1 and r2 values\n return rValues;\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } gridSvg - Provide the SVG grid element value.\n * @param { Transforms } t - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.renderSvgGridlines = function (snapSettings, gridSvg, t, rulerSettings, hRuler, vRuler) {\n var pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');\n defs.setAttribute('id', this.diagramId + '_grid_pattern_defn');\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines ||\n snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n pattern.setAttribute('id', this.diagramId + '_pattern');\n }\n var hWidth = 0;\n var hHeight = 0;\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isRulerGrid = false;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler && vRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(t.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(t.scale);\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n isRulerGrid = true;\n }\n else {\n for (var i = 0; i < verticalLineIntervals.length; i = i + 1) {\n hWidth += verticalLineIntervals[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < horizontalLineIntervals.length; i = i + 1) {\n hHeight += horizontalLineIntervals[parseInt(i.toString(), 10)];\n }\n scale = this.scaleSnapInterval(snapSettings, t.scale);\n }\n hWidth = isRulerGrid ? vSegmentwidth : hWidth * scale;\n hHeight = isRulerGrid ? hSegmentwidth : hHeight * scale;\n var attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: hWidth,\n height: hHeight, patternUnits: 'userSpaceOnUse'\n };\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n defs.appendChild(pattern);\n gridSvg.appendChild(defs);\n };\n DiagramRenderer.prototype.horizontalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var hLine;\n if (snapSettings.constraints & SnapConstraints.ShowHorizontalLines) {\n if (snapSettings.horizontalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.horizontalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, vRuler, hHeight, isLine);\n }\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var spaceY = 0;\n hLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.horizontalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)], 'stroke': snapSettings.horizontalGridlines.lineColor,\n 'd': 'M0,' + (d) + ' L' + hWidth + ',' + (d) + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, true);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n DiagramRenderer.prototype.renderDotGrid = function (i, pattern, snapSettings, spacey, d, scale, isHorizontal) {\n var intervals = !isHorizontal ?\n snapSettings.horizontalGridlines.dotIntervals : snapSettings.verticalGridlines.dotIntervals;\n intervals = getInterval(intervals, false);\n var r;\n var hLine;\n //const doubleRadius: boolean;\n var dy;\n var attr;\n for (var j = 1; j < intervals.length; j = j + 2) {\n r = j === intervals.length - 1 ? intervals[0] : intervals[j - 1];\n hLine = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\n dy = spacey;\n dy = dy * scale;\n attr = {\n 'cx': isHorizontal ? dy : d, 'cy': isHorizontal ? d : dy, 'fill': snapSettings.horizontalGridlines.lineColor, 'r': r\n };\n setAttributeSvg(hLine, attr);\n pattern.appendChild(hLine);\n spacey += intervals[parseInt(j.toString(), 10)] + intervals[j - 1];\n }\n };\n DiagramRenderer.prototype.verticalSvgGridlines = function (pattern, hWidth, hHeight, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, intervals) {\n var space = 0;\n var dashArray = [];\n var vLine;\n if (snapSettings.constraints & SnapConstraints.ShowVerticalLines) {\n if (snapSettings.verticalGridlines.lineDashArray) {\n dashArray = this.renderer.parseDashArray(snapSettings.verticalGridlines.lineDashArray);\n }\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && hRuler) {\n intervals = this.updateLineIntervals(intervals, rulerSettings, hRuler, hWidth, isLine);\n }\n var spaceY = 0;\n intervals = getInterval(intervals, isLine);\n for (var i = 0; i < intervals.length; i = i + 2) {\n space = getSpaceValue(intervals, isLine, i, space);\n var d = isLine ? space + intervals[parseInt(i.toString(), 10)] / 2 : space;\n d = isRulerGrid ? d : d * scale;\n vLine = document.createElementNS('http://www.w3.org/2000/svg', isLine ? 'path' : 'circle');\n var attr = void 0;\n if (isLine) {\n if (dashArray.toString() === '') {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor\n };\n }\n else {\n attr = {\n 'stroke-width': intervals[parseInt(i.toString(), 10)],\n 'class': intervals[parseInt(i.toString(), 10)] === 1.25 ? 'e-diagram-thick-grid' : 'e-diagram-thin-grid',\n 'stroke': snapSettings.verticalGridlines.lineColor,\n 'd': 'M' + (d) + ',0 L' + (d) + ',' + hHeight + ' Z',\n 'dashArray': dashArray.toString()\n };\n }\n setAttributeSvg(vLine, attr);\n pattern.appendChild(vLine);\n space += intervals[i + 1] + intervals[parseInt(i.toString(), 10)];\n }\n else {\n this.renderDotGrid(i, pattern, snapSettings, spaceY, d, scale, false);\n space += intervals[parseInt(i.toString(), 10)];\n }\n }\n }\n };\n /**\n * Method used to update the grid line for the diagram \\\n *\n * @returns {void } Method used to update the grid line for the diagram .\\\n *\n * @param {SnapSettingsModel} snapSettings - Provide the snapsetting value of the diagram .\n * @param { SVGSVGElement } svgGrid - Provide the SVG grid element value.\n * @param { Transforms } transform - Provide the transform value .\n * @param { RulerSettingsModel } rulerSettings - Provide the ruler setting property .\n * @param { RulerModel } hRuler - Provide the horizontal ruler property value .\n * @param { RulerModel } vRuler - Provide the vertical ruler property value .\n * @private\n */\n DiagramRenderer.prototype.updateGrid = function (snapSettings, svgGrid, transform, rulerSettings, hRuler, vRuler) {\n var grid = svgGrid.getElementById(this.diagramId + '_grid_rect');\n //let i: number;\n var isRulerGrid = false;\n if (grid) {\n var pattern = svgGrid.getElementById(this.diagramId + '_pattern');\n if (pattern) {\n pattern.parentNode.removeChild(pattern);\n }\n var hSegmentwidth = 0;\n var vSegmentwidth = 0;\n var scale = 1;\n var isLine = snapSettings.gridType === 'Lines';\n var verticalLineIntervals = isLine ?\n snapSettings.verticalGridlines.lineIntervals : snapSettings.verticalGridlines.dotIntervals;\n var horizontalLineIntervals = isLine ?\n snapSettings.horizontalGridlines.lineIntervals : snapSettings.horizontalGridlines.dotIntervals;\n if (rulerSettings.showRulers && rulerSettings.dynamicGrid && vRuler && hRuler) {\n hSegmentwidth = vRuler.updateSegmentWidth(transform.scale);\n vSegmentwidth = hRuler.updateSegmentWidth(transform.scale);\n isRulerGrid = true;\n snapSettings.horizontalGridlines.scaledIntervals = [hSegmentwidth / hRuler.interval];\n snapSettings.verticalGridlines.scaledIntervals = [vSegmentwidth / vRuler.interval];\n }\n else {\n scale = this.scaleSnapInterval(snapSettings, transform.scale);\n }\n var height = 0;\n for (var j = 0; j < horizontalLineIntervals.length; j = j + 1) {\n height += horizontalLineIntervals[parseInt(j.toString(), 10)];\n }\n var width = 0;\n for (var j = 0; j < verticalLineIntervals.length; j = j + 1) {\n width += verticalLineIntervals[parseInt(j.toString(), 10)];\n }\n var attr = {\n x: -transform.tx * transform.scale,\n y: -transform.ty * transform.scale\n };\n setAttributeSvg(grid, attr);\n width = isRulerGrid ? vSegmentwidth : width * scale;\n height = isRulerGrid ? hSegmentwidth : height * scale;\n attr = {\n id: this.diagramId + '_pattern', x: 0, y: 0, width: width,\n height: height, patternUnits: 'userSpaceOnUse'\n };\n pattern = document.createElementNS('http://www.w3.org/2000/svg', 'pattern');\n setAttributeSvg(pattern, attr);\n this.horizontalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, vRuler, isRulerGrid, isLine, horizontalLineIntervals);\n this.verticalSvgGridlines(pattern, width, height, scale, snapSettings, rulerSettings, hRuler, isRulerGrid, isLine, verticalLineIntervals);\n var defs = svgGrid.getElementById(this.diagramId + '_grid_pattern_defn');\n if (defs) {\n defs.appendChild(pattern);\n }\n }\n };\n DiagramRenderer.prototype.updateLineIntervals = function (intervals, rulerSettings, ruler, segmentWidth, isLine) {\n var newInterval = [];\n var tickInterval = segmentWidth / ruler.interval;\n var interval = isLine ? ruler.interval : ruler.interval + 1;\n for (var i = 0; i < interval * 2; i++) {\n if (i % 2 === 0) {\n newInterval[parseInt(i.toString(), 10)] = isLine ? ((i === 0) ? 1.25 : 0.25) : 0;\n }\n else {\n newInterval[parseInt(i.toString(), 10)] = isLine ? (tickInterval - newInterval[i - 1]) : tickInterval;\n }\n }\n return newInterval;\n };\n DiagramRenderer.prototype.scaleSnapInterval = function (snapSettings, scale) {\n if (scale >= 2) {\n while (scale >= 2) {\n scale /= 2;\n }\n }\n else if (scale <= 0.5) {\n while (scale <= 0.5) {\n scale *= 2;\n }\n }\n var i;\n snapSettings.horizontalGridlines.scaledIntervals = snapSettings.horizontalGridlines.snapIntervals;\n snapSettings.verticalGridlines.scaledIntervals = snapSettings.verticalGridlines.snapIntervals;\n if (scale !== 1) {\n var gridlines = snapSettings.horizontalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n gridlines = snapSettings.verticalGridlines;\n gridlines.scaledIntervals = [];\n for (i = 0; i < gridlines.snapIntervals.length; i++) {\n gridlines.scaledIntervals[parseInt(i.toString(), 10)] = gridlines.snapIntervals[parseInt(i.toString(), 10)] * scale;\n }\n }\n return scale;\n };\n /**\n * Method used to render the text element \\\n *\n * @returns {void }Method used to render the text element .\\\n *\n * @param {TextElement} element - Provide the text element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { object } centerPoint - Provide the center point value .\n * @private\n */\n DiagramRenderer.prototype.renderTextElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette, centerPoint) {\n var options = this.getBaseAttributes(element, transform);\n if (centerPoint) {\n //Bug 827039: Bezier annotation content alignment is not working properly.\n // Removed -2 cx-2 and cy-2 from the below two line to resolve the alignment issue.\n options.x = centerPoint[element.id] ? centerPoint[element.id].cx : options.x;\n options.y = centerPoint[element.id] ? centerPoint[element.id].cy : options.y;\n // (EJ2-56874) - Set the calculated x and y position to the bezier connector annotation's(text element) bounds x,y position\n element.bounds.x = options.x;\n element.bounds.y = options.y;\n // (EJ2-58802) - Calculate the center point x and y with the element export scale value if element is in export mode\n if (element.isExport) {\n options.x = options.x * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n options.y = options.y * Math.min(element.exportScaleValue.x || element.exportScaleValue.y);\n }\n }\n options.cornerRadius = 0;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textWrapping = element.style.textWrapping;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.wrapBounds = element.wrapBounds;\n options.childNodes = element.childNodes;\n options.isHorizontalLane = element.isLaneOrientation;\n options.id = element.id ? element.id : randomId();\n if (element.isLaneOrientation) {\n options.parentOffsetX = this.groupElement.offsetX;\n options.parentOffsetY = this.groupElement.offsetY;\n options.parentWidth = this.groupElement.actualSize.width;\n options.parentHeight = this.groupElement.actualSize.height;\n }\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = element.style.fill;\n var ariaLabel = element.description ? element.description : element.content ? element.content : element.id;\n if ((element.style.textWrapping === 'Wrap' || element.style.textWrapping === 'WrapWithOverflow') &&\n this.groupElement && options.height > this.groupElement.actualSize.height &&\n (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis')) {\n options.y = options.y + (options.height - this.groupElement.actualSize.height) / 2;\n }\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n this.renderer.drawText(canvas, options, parentSvg, ariaLabel, this.diagramId, (element.isExport && Math.min(element.exportScaleValue.x || element.exportScaleValue.y)), this.groupElement);\n if (this.isSvgMode) {\n element.doWrap = false;\n }\n };\n DiagramRenderer.prototype.renderNativeElement = function (element, canvas, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n transform, parentSvg, fromPalette) {\n var templateWidth;\n var templateHeight;\n var nativeSvg = this.getParentSvg(element, undefined, canvas) || parentSvg;\n var nativeLayer = this.getParentElement(element, canvas, nativeSvg).g || canvas;\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n switch (element.scale) {\n case 'None':\n templateWidth = element.contentSize.width;\n templateHeight = element.contentSize.height;\n break;\n case 'Stretch':\n templateWidth = element.actualSize.width;\n templateHeight = element.actualSize.height;\n break;\n case 'Meet':\n if (element.actualSize.width <= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n case 'Slice':\n if (element.actualSize.width >= element.actualSize.height) {\n templateWidth = templateHeight = element.actualSize.width;\n }\n else {\n templateWidth = templateHeight = element.actualSize.height;\n }\n break;\n }\n if (this.svgRenderer) {\n this.svgRenderer.drawNativeContent(element, nativeLayer, templateHeight, templateWidth, nativeSvg);\n }\n };\n DiagramRenderer.prototype.renderHTMLElement = function (element, canvas, htmlLayer, transform, parentSvg, fromPalette, indexValue) {\n var options = this.getBaseAttributes(element, transform);\n options.fill = 'transparent';\n options.cornerRadius = element.cornerRadius;\n options.stroke = 'transparent';\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n if (this.svgRenderer) {\n this.svgRenderer.drawHTMLContent(element, htmlLayer.children[0], transform, isDiagramChild(htmlLayer), indexValue);\n }\n };\n /**\n * Method used to render the image element \\\n *\n * @returns {void }Method used to render the image element .\\\n *\n * @param {ImageElement} element - Provide the image element .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderImageElement = function (element, canvas, transform, parentSvg, fromPalette) {\n var options = this.getBaseAttributes(element, transform);\n options.cornerRadius = 0;\n this.renderer.drawRectangle(canvas, options, this.diagramId, undefined, undefined, parentSvg);\n // let sx: number; let sy: number;\n var imageWidth;\n var imageHeight;\n var sourceWidth;\n var sourceHeight;\n var contentWidth = element.contentSize.width;\n var contentHeight = element.contentSize.height;\n var widthRatio = options.width / contentWidth;\n var heightRatio = options.height / contentHeight;\n var ratio;\n if (element.stretch === 'Stretch') {\n // 909174: Image node is not exported properly Issue Fix\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n }\n else {\n switch (element.stretch) {\n case 'Meet':\n ratio = Math.min(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n options.x += Math.abs(options.width - imageWidth) / 2;\n options.y += Math.abs(options.height - imageHeight) / 2;\n break;\n case 'Slice':\n ratio = Math.max(widthRatio, heightRatio);\n imageWidth = contentWidth * ratio;\n imageHeight = contentHeight * ratio;\n sourceWidth = options.width / imageWidth * contentWidth;\n sourceHeight = options.height / imageHeight * contentHeight;\n break;\n case 'None':\n imageWidth = contentWidth;\n imageHeight = contentHeight;\n break;\n }\n }\n options.width = imageWidth;\n options.height = imageHeight;\n //Commented for code coverage\n //(options as ImageAttributes).sourceX = sx;\n //(options as ImageAttributes).sourceY = sy;\n options.sourceWidth = sourceWidth;\n options.sourceHeight = sourceHeight;\n options.source = element.source;\n options.alignment = element.imageAlign;\n options.scale = element.imageScale;\n options.description = element.description ? element.description : element.id;\n this.renderer.drawImage(canvas, options, parentSvg, fromPalette);\n };\n /**\n * Method used to render the container \\\n *\n * @returns {void} Method used to render the container .\\\n *\n * @param {Container} group - Provide the container .\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the canvas element .\n * @param { HTMLElement } htmlLayer - Provide the html layer element .\n * @param { Transforms } transform - Provide the transform value .\n * @param { SVGSVGElement } parentSvg - Provide the SVG layer element .\n * @param { boolean } createParent - Provide the boolean value .\n * @param { boolean } fromPalette - Provide the boolean value .\n * @param { number } indexValue - Provide the indexValue value .\n * @param { boolean } isPreviewNode - Provide the boolean value .\n * @param { object } centerPoint - Provide the centerPoint value .\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.renderContainer = function (group, canvas, htmlLayer, transform, parentSvg, createParent, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint) {\n var svgParent = { svg: parentSvg, g: canvas };\n var diagramElement = document.getElementById(this.diagramId);\n var instance = 'ej2_instances';\n var diagram;\n if (diagramElement) {\n diagram = diagramElement[\"\" + instance][0];\n }\n if (this.diagramId) {\n parentSvg = this.getParentSvg(group) || parentSvg;\n if (this.isSvgMode) {\n //const groupElement: HTMLCanvasElement | SVGElement;\n // eslint-disable-next-line max-len\n var groupElement = this.getParentElement(group, canvas, parentSvg, indexValue).g || canvas;\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children)) || parentSvg;\n var svgNativeParent = this.getParentElement(this.hasNativeParent(group.children), groupElement, parentSvg, indexValue);\n svgParent.svg = svgNativeParent.svg || parentSvg;\n svgParent.g = svgNativeParent.g || groupElement;\n if (createParent) {\n if (parentSvg) {\n if (!parentSvg.getElementById(svgParent.g.id)) {\n canvas.appendChild(svgParent.g);\n }\n }\n canvas = svgParent.g;\n }\n else {\n canvas = svgParent.g;\n }\n }\n }\n this.renderRect(group, canvas, transform, parentSvg);\n this.groupElement = group;\n if (group.hasChildren()) {\n var parentG = void 0;\n var svgParent_1;\n for (var _i = 0, _a = group.children; _i < _a.length; _i++) {\n var child = _a[_i];\n parentSvg = this.getParentSvg(this.hasNativeParent(group.children) || child) || parentSvg;\n if (this.isSvgMode) {\n svgParent_1 = this.getParentElement(this.hasNativeParent(group.children) || child, canvas, parentSvg);\n parentG = svgParent_1.g || canvas;\n if (svgParent_1.svg) {\n parentSvg = svgParent_1.svg;\n }\n }\n if (!this.isSvgMode) {\n child.flip = group.flip;\n }\n this.renderElement(child, parentG || canvas, htmlLayer, transform, parentSvg, true, fromPalette, indexValue, isPreviewNode, centerPoint, portCenterPoint);\n if (child instanceof TextElement && parentG && !(group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n //EJ2-826617 - for BPMN node label\n if (child instanceof TextElement && parentG && (group.elementActions & ElementAction.ElementIsGroup)) {\n this.renderFlipElement(child, parentG, child.flip);\n }\n if ((child.elementActions & ElementAction.ElementIsPort) && parentG) {\n //EJ2-826617 - for BPMN node port\n if (parentG.id.includes('bpmn')) {\n this.renderFlipElement(group, parentG, child.flip);\n child.flip = 'None';\n }\n else {\n this.renderFlipElement(group, parentG, child.flip);\n }\n }\n //EJ2-826617 - for BPMN node child rendering\n if (!(child instanceof TextElement) &&\n (group.elementActions & ElementAction.ElementIsGroup) && !(child.elementActions & ElementAction.ElementIsPort)\n && parentG) {\n // EJ2-907739-Flipping the group node does not rotate the child nodes\n if (child.flip === 'None') {\n this.renderFlipElement(child, parentG || canvas, group.flip);\n }\n }\n }\n var selectedNode = void 0;\n if (diagram && diagram.selectedItems && diagram.selectedItems.nodes\n && diagram.selectedItems.nodes.length > 0) {\n selectedNode = diagram.selectedItems.nodes[0];\n }\n var innerNodeContent = void 0;\n var innerLabelContent = void 0;\n var isNodeSelected = false;\n var Node_1;\n if (diagram && diagram.selectedItems) {\n Node_1 = diagram.getObject(group.id);\n }\n if (group.flip !== 'None') {\n selectedNode = Node_1;\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n // Below code to set selected node value\n if (group.flip === 'None') {\n selectedNode = Node_1;\n }\n if (selectedNode && selectedNode.flipMode) {\n isNodeSelected = true;\n }\n if (!(group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' && selectedNode.flipMode !== 'PortAndLabel' && selectedNode.flipMode !== 'LabelText' && selectedNode.flipMode !== 'PortAndLabelText' && selectedNode.flipMode !== 'LabelAndLabelText' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n //EJ2-826617 - Flip and flip mode option for BPMN node\n if ((group.elementActions & ElementAction.ElementIsGroup) && diagram instanceof Diagram && diagram.nameTable[group.id] && diagram.nameTable[group.id].propName !== 'connectors') {\n if (isNodeSelected && selectedNode) {\n if (group.children && group.children[0] instanceof DiagramNativeElement) {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_inner_native_element');\n }\n else {\n innerNodeContent = document.getElementById(selectedNode.id + '_content_groupElement');\n }\n //Below code to check and flip the node.\n if (!(group.children[0] instanceof DiagramNativeElement) && selectedNode.shape.type !== 'Text' && selectedNode.flipMode !== 'None' && selectedNode.flipMode !== 'Label' && selectedNode.flipMode !== 'All' && selectedNode.flipMode !== 'PortAndLabel' && selectedNode.flipMode !== 'LabelText' && selectedNode.flipMode !== 'PortAndLabelText' && selectedNode.flipMode !== 'LabelAndLabelText' || (group.children[0] instanceof DiagramNativeElement && selectedNode.flipMode === 'Port')) {\n this.renderFlipElement(group, innerNodeContent, selectedNode.flip);\n return;\n }\n //Below code to check and flip the node except for flip mode Port.\n else if (group.children[0] instanceof DiagramNativeElement && (selectedNode.flipMode === 'All' || selectedNode.flipMode === 'Label') || (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (selectedNode.shape.type === 'Image' && selectedNode.flipMode === 'Label')) {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n if (group.flip !== 'None' && selectedNode.flipMode === 'None') {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the text element in the node.\n else if (group.flip !== 'None' && (selectedNode.flipMode === 'Label' || selectedNode.flipMode === 'PortAndLabel' || selectedNode.flipMode === 'LabelText' || selectedNode.flipMode === 'PortAndLabelText' || selectedNode.flipMode === 'LabelAndLabelText') || (group.children[0] instanceof DiagramNativeElement && group.flip !== 'None' && selectedNode && (selectedNode.flipMode === 'None' || selectedNode.flipMode === 'All'))) {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n return;\n }\n }\n }\n //Below code to check and flip for flip mode all in the node.\n else if (group.flip !== 'None' && selectedNode.flipMode === 'All') {\n for (var i = 0; i < selectedNode.wrapper.children.length; i++) {\n if (selectedNode.wrapper.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n innerLabelContent = document.getElementById(selectedNode.wrapper.children[parseInt(i.toString(), 10)].id + '_groupElement');\n this.renderFlipTextElement(group, innerLabelContent, selectedNode.wrapper.children[parseInt(i.toString(), 10)], group.flip, selectedNode.flipMode);\n }\n }\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n //Below code to check and flip the element for None in the node.\n else {\n this.renderFlipElement(group, innerNodeContent, group.flip);\n }\n }\n }\n }\n };\n /**\n * Method used to flip the text element \\\n *\n * @returns {void} Method used to flip the text element.\\\n *\n * @param {DiagramElement} element - Provide the node element.\n * @param { HTMLCanvasElement | SVGElement} canvas - Provide the text canvas element.\n * @param { DiagramElement } textElement - Provide the text element.\n * @param { FlipDirection } flip - Provide the node flip direction.\n * @param { FlipMode } flipMode - Provide the node flipMode.\n */\n DiagramRenderer.prototype.renderFlipTextElement = function (element, canvas, textElement, flip, flipMode) {\n var attr = {};\n var scaleX = 1;\n var scaleY = 1;\n var posX = 0;\n var posY = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (flip !== 'None') {\n // Fetch annotation offset\n var textPos = textElement.getAbsolutePosition(textElement.desiredSize);\n if (textPos) {\n // Inverting and translating Annotation\n if (flipMode === 'All' || flipMode === 'LabelAndLabelText') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = element.bounds.center.x;\n offsetX = -element.bounds.center.x;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = element.bounds.center.y;\n offsetY = -element.bounds.center.y;\n scaleY = -1;\n }\n if (flip === 'Horizontal' || flip === 'Vertical') {\n var angle = Math.sin(element.rotateAngle * Math.PI / 180);\n //918299 - Issue with Polygon Shape Node Rotation After Grouping and Flipping\n if (textPos.y) {\n offsetX += -element.desiredSize.height * angle * (-2 * textPos.y / textElement.desiredSize.height + 1);\n }\n if (textPos.x) {\n offsetY += element.desiredSize.width * angle * (-2 * textPos.x / textElement.desiredSize.width + 1);\n }\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n // Inverting Annotation without flipping position\n else if (flipMode === 'LabelText' || flipMode === 'PortAndLabelText') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = textElement.offsetX;\n offsetX = -textElement.offsetX;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = textElement.offsetY;\n offsetY = -textElement.offsetY;\n scaleY = -1;\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n // Translating Annotation\n else if (flipMode === 'PortAndLabel' || flipMode === 'Label') {\n var labelPosX = 0;\n var labelPosY = 0;\n var labelPos = this.flipLabel(element, textElement, textPos, flip);\n labelPosX = labelPos.x - textElement.offsetX;\n labelPosY = labelPos.y - textElement.offsetY;\n attr = { 'transform': 'translate(' + labelPosX + ',' + labelPosY + ')' };\n }\n }\n }\n else {\n attr = {\n 'transform': 'translate(' + 0 + ',' + 0 + ')'\n };\n }\n this.setFlipAttributes(element, canvas, attr, scaleX, scaleY);\n };\n DiagramRenderer.prototype.renderFlipElement = function (element, canvas, flip) {\n var attr = {};\n var scaleX = 1;\n var scaleY = 1;\n var posX = 0;\n var posY = 0;\n var offsetX = 0;\n var offsetY = 0;\n if (flip !== 'None') {\n if (flip === 'Horizontal' || flip === 'Both') {\n posX = element.bounds.center.x;\n offsetX = -element.bounds.center.x;\n scaleX = -1;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n posY = element.bounds.center.y;\n offsetY = -element.bounds.center.y;\n scaleY = -1;\n }\n attr = {\n 'transform': 'translate(' + posX + ',' + posY + ') scale(' + scaleX + ','\n + scaleY + ') translate(' + offsetX + ',' + offsetY + ')'\n };\n }\n else {\n attr = {\n 'transform': 'translate(' + 0 + ',' + 0 + ')'\n };\n }\n this.setFlipAttributes(element, canvas, attr, scaleX, scaleY);\n };\n DiagramRenderer.prototype.setFlipAttributes = function (element, canvas, attr, scaleX, scaleY) {\n if (attr) {\n if (element && element.children &&\n element.children.length && (element.children[0] instanceof DiagramHtmlElement)) {\n var id = canvas.id.split('_preview');\n var layer = document.getElementById(id[0] + '_html_div') ||\n (getHTMLLayer(this.diagramId).children[0]);\n canvas = layer.querySelector(('#' + element.id + '_content_html_element'));\n if (canvas) {\n canvas.style.transform =\n 'scale(' + scaleX + ',' + scaleY + ')' + 'rotate(' + (element.rotateAngle + element.parentTransform) + 'deg)';\n }\n }\n else {\n setAttributeSvg(canvas, attr);\n }\n }\n };\n /**\n * Calculates Flipped Position of textElement considering annotation offset\n *\n * @returns {PointModel} - flipped point of textElement current point\n *\n * @param {NodeModel} element - Provide node wrapper element containing the text element.\n * @param {TextElement} textElement - Provide the textElememt to flip.\n * @param {PointModel} labelPos - Provide the annotation offset.\n * @param {FlipDirection} flip - Provide the node flip direction.\n */\n DiagramRenderer.prototype.flipLabel = function (element, textElement, labelPos, flip) {\n var flippedOffset;\n if (flip !== 'None') {\n var flippedOffsetX = void 0;\n var flippedOffsetY = void 0;\n // Node's topLeft Position\n var topLeft = {\n x: element.offsetX - element.desiredSize.width / 2,\n y: element.offsetY - element.desiredSize.height / 2\n };\n flippedOffsetX = topLeft.x + (element.desiredSize.width * ((labelPos.x / textElement.desiredSize.width)));\n flippedOffsetY = topLeft.y + (element.desiredSize.height * ((labelPos.y / textElement.desiredSize.height)));\n if (flip === 'Both' || flip === 'Horizontal') {\n flippedOffsetX = topLeft.x + (element.desiredSize.width * (1 - (labelPos.x / textElement.desiredSize.width)));\n }\n if (flip === 'Vertical' || flip === 'Both') {\n flippedOffsetY = topLeft.y + (element.desiredSize.height * (1 - (labelPos.y / textElement.desiredSize.height)));\n }\n // Flipped Position\n flippedOffset = { x: flippedOffsetX, y: flippedOffsetY };\n // FlippedPoint after rotating with node offset as its pivot\n flippedOffset = rotatePoint(element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY, flippedOffset);\n }\n return flippedOffset;\n };\n /**\n * Method used to check the native parent \\\n *\n * @returns {void} Method used to check the native parent .\\\n *\n * @param { DiagramElement[]} children - Provide the diagram element .\n * @param { number} count - Provide the count value .\n * @private\n */\n DiagramRenderer.prototype.hasNativeParent = function (children, count) {\n if (children && children.length > 0 && (count || 0 < 3)) {\n var child = children[0];\n if (child instanceof DiagramNativeElement) {\n return child;\n }\n else if (child.children && child.children.length) {\n this.hasNativeParent(child.children, count++ || 0);\n }\n }\n return undefined;\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} element - Provide the SVG elements .\n * @param { RectAttributes} canvas - Provide the Canvas element .\n * @param { RectAttributes} transform - Provide transform value for the node .\n * @param { RectAttributes} parentSvg -provide the parent SVG .\n * @param { RectAttributes} isPreviewNode - Provide the preview boolean value .\n * @private\n */\n DiagramRenderer.prototype.renderRect = function (element, canvas, transform, parentSvg, isPreviewNode) {\n var options = this.getBaseAttributes(element, transform, isPreviewNode);\n options.cornerRadius = element.cornerRadius || 0;\n if (element.isExport) {\n options.cornerRadius *= element.exportScaleValue.x;\n }\n var ariaLabel = element.description ? element.description : element.id;\n this.renderer.drawRectangle(canvas, options, this.diagramId, element.isExport, undefined, parentSvg, ariaLabel);\n };\n /**\n * Method used the draw the reactangle for the diagram \\\n *\n * @returns {void} Method used the draw the reactangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG elements .\n * @param { RectAttributes} options - Provide the attributes to draw the rectangle .\n * @private\n */\n DiagramRenderer.prototype.drawRect = function (canvas, options) {\n options.cornerRadius = 0;\n this.svgRenderer.drawRectangle(canvas, options, this.diagramId);\n };\n /**\n * Will get the base attributes for all the elements \\\n *\n * @returns {BaseAttributes} Will get the base attributes for all the elements .\\\n *\n * @param { DiagramElement} element - Provide the diagram elements .\n * @param { Transforms} transform - Provide the transform value for the elements .\n * @param { boolean} isPreviewNode - Provide the preview boolean value.\n * @private\n */\n DiagramRenderer.prototype.getBaseAttributes = function (element, transform, isPreviewNode) {\n var options = {\n width: element.actualSize.width, height: element.actualSize.height,\n //EJ2-840163-Draw highlighter not rendered properly while hovering ports\n x: element.offsetX - element.actualSize.width * element.pivot.x,\n y: element.offsetY - element.actualSize.height * element.pivot.y,\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray || '', opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n canApplyStyle: element.canApplyStyle, shapeType: element.shapeType\n };\n if (element.rotationReference === 'Page') {\n options.angle = element.rotateAngle;\n }\n if (isPreviewNode) {\n options.x = options.x - .5;\n options.y = options.y - .5;\n }\n if (element.isExport) {\n options.width *= element.exportScaleValue.x;\n options.height *= element.exportScaleValue.y;\n options.x *= element.exportScaleValue.x;\n options.y *= element.exportScaleValue.y;\n options.strokeWidth *= element.exportScaleValue.x;\n }\n if (element.flip) {\n options.flip = element.flip;\n }\n if (transform) {\n options.x += transform.tx;\n options.y += transform.ty;\n }\n return options;\n };\n /**\n * Will render the SVG background image \\\n *\n * @returns {void} Will render the SVG background image .\\\n *\n * @param { Transforms} background - Provide the transforms values .\n * @param { boolean} diagramElement - Provide element for the daigram.\n * @param { boolean} x - Provide the rendering mode of the daigram.\n * @param { boolean} y - Provide the rendering mode of the daigram.\n * @param { boolean} width - Provide the rendering mode of the daigram.\n * @param { boolean} height - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.renderSvgBackGroundImage = function (background, diagramElement, x, y, width, height) {\n if (background.source) {\n var backgroundLayer = getBackgroundLayerSvg(diagramElement.id);\n var target = backgroundLayer.getElementById(diagramElement.id + '_image');\n if (!target) {\n var bgimageLayer = getBackgroundImageLayer(diagramElement.id);\n target = document.createElementNS('http://www.w3.org/2000/svg', 'image');\n target.setAttribute('id', diagramElement.id + '_image');\n bgimageLayer.appendChild(target);\n }\n var imageObj = new Image();\n imageObj.src = background.source;\n target.setAttributeNS('http://www.w3.org/1999/xlink', 'xlink:href', imageObj.src.toString());\n var scale = background.scale !== 'None' ? background.scale : '';\n var imgAlign = background.align;\n var aspectRatio = imgAlign.charAt(0).toLowerCase() + imgAlign.slice(1);\n if (scale) {\n aspectRatio += ' ' + scale.charAt(0).toLowerCase() + scale.slice(1);\n }\n var attr = {\n 'id': diagramElement.id + '_image', 'x': x, 'y': y,\n 'width': width, 'height': height,\n 'preserveAspectRatio': aspectRatio\n };\n setAttributeSvg(target, attr);\n }\n };\n /**\n * Method used to transform the layer \\\n *\n * @returns {boolean} Method used to transform the layer .\\\n * @param { Transforms} transform - Provide the transforms values .\n * @param { boolean} svgMode - Provide the rendering mode of the daigram.\n * @private\n */\n DiagramRenderer.prototype.transformLayers = function (transform, svgMode) {\n var tx = transform.tx * transform.scale;\n var ty = transform.ty * transform.scale;\n var domTable = 'domTable';\n if (tx !== this.transform.x || ty !== this.transform.y || (tx === 0 || ty === 0)) {\n //diagram layer\n if (svgMode) {\n if (!window[\"\" + domTable][this.diagramId + '_diagramLayer']) {\n window[\"\" + domTable][this.diagramId + '_diagramLayer'] =\n this.diagramSvgLayer.getElementById(this.diagramId + '_diagramLayer');\n }\n var diagramLayer = window[\"\" + domTable][this.diagramId + '_diagramLayer'];\n diagramLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n }\n //background\n //gridline\n var gridLayer = getGridLayer(this.diagramId);\n gridLayer.setAttribute('transform', 'translate(' + (transform.tx * transform.scale) + ','\n + (transform.ty * transform.scale) + ')');\n //portslayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramPorts']) {\n window[\"\" + domTable][this.diagramId + '_diagramPorts'] = this.iconSvgLayer.getElementById(this.diagramId + '_diagramPorts');\n }\n var portsLayer = window[\"\" + domTable][this.diagramId + '_diagramPorts'];\n portsLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //expandlayer\n if (!window[\"\" + domTable][this.diagramId + '_diagramExpander']) {\n window[\"\" + domTable][this.diagramId + '_diagramExpander'] =\n this.iconSvgLayer.getElementById(this.diagramId + '_diagramExpander');\n }\n var expandLayer = window[\"\" + domTable][this.diagramId + '_diagramExpander'];\n expandLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //nativelayer\n if (!window[\"\" + domTable][this.diagramId + '_nativeLayer']) {\n window[\"\" + domTable][this.diagramId + '_nativeLayer'] = this.nativeSvgLayer.getElementById(this.diagramId + '_nativeLayer');\n }\n var nativeLayer = window[\"\" + domTable][this.diagramId + '_nativeLayer'];\n nativeLayer.setAttribute('transform', 'translate('\n + (transform.tx * transform.scale) + ',' + (transform.ty * transform.scale) + '),scale('\n + transform.scale + ')');\n //htmlLayer\n var htmlLayer = getHTMLLayer(this.diagramId).children[0];\n htmlLayer.style.transform = 'translate('\n + (transform.tx * transform.scale) + 'px,' + (transform.ty * transform.scale) + 'px)scale('\n + transform.scale + ')';\n this.transform = { x: transform.tx * transform.scale, y: transform.ty * transform.scale };\n return true;\n }\n return false;\n };\n /**\n * Method used to update the nodes in the diagram \\\n *\n * @returns {void} Method used to update the nodes in the diagram .\\\n * @param { HTMLCanvasElement} element - Provide the diagram element .\n * @param { HTMLCanvasElement} diagramElementsLayer - Provide the diagram layer element .\n * @param { HTMLCanvasElement} htmlLayer -Provide the html element .\n * @param { HTMLCanvasElement} transform - Provide the transform value .\n * @param { HTMLCanvasElement} insertIndex - Provide the index value.\n * @param { object} centerPoint - Provide the center point value.\n * @param {object} portCenterPoint - provide the portCenterPoint value.\n * @private\n */\n DiagramRenderer.prototype.updateNode = function (element, diagramElementsLayer, htmlLayer, transform, insertIndex, centerPoint, portCenterPoint) {\n this.renderElement(element, diagramElementsLayer, htmlLayer, transform, this.getParentSvg(element), undefined, undefined, insertIndex, null, centerPoint, portCenterPoint);\n };\n return DiagramRenderer;\n}());\nexport { DiagramRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { RealAction } from '../diagram/enum/enum';\nimport { DiagramRenderer } from '../diagram/rendering/renderer';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Component, Property, Browser, EventHandler, Event, isBlazor } from '@syncfusion/ej2-base';\nimport { setAttributeHtml, setAttributeSvg, createHtmlElement, getHTMLLayer } from '../diagram/utility/dom-util';\nimport { createSvgElement, getNativeLayer, hasClass } from '../diagram/utility/dom-util';\nimport { Rect } from '../diagram/primitives/rect';\nimport { Size } from '../diagram/primitives/size';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\n/**\n * Overview control allows you to see a preview or an overall view of the entire content of a Diagram.\n * This helps you to look at the overall picture of a large Diagram\n * To navigate, pan, or zoom, on a particular position of the page.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * let overview: Overview;\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * let options: OverviewModel = {};\n * options.sourceID = 'diagram';\n * options.width = '250px';\n * options.height = '500px';\n * overview = new Overview(options);\n * overview.appendTo('#overview');\n * ```\n */\nvar Overview = /** @class */ (function (_super) {\n __extends(Overview, _super);\n function Overview(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.mode = 'Canvas';\n /** @private */\n _this.id = 'overview';\n _this.actionName = '';\n _this.startPoint = null;\n _this.currentPoint = null;\n _this.prevPoint = null;\n _this.scale = null;\n _this.inAction = false;\n _this.viewPortRatio = 1;\n _this.horizontalOffset = 0;\n _this.verticalOffset = 0;\n _this.model = {};\n _this.event = true;\n _this.overviewid = 88123;\n _this.model = { width: _this.width, height: _this.height };\n return _this;\n }\n /**\n * Updates the overview control when the objects are changed\n *\n * @param {OverviewModel} newProp - Lists the new values of the changed properties\n * @param {OverviewModel} oldProp - Lists the old values of the changed properties\n */\n Overview.prototype.onPropertyChanged = function (newProp, oldProp) {\n //let objectArray: Object[] = [];\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'sourceID':\n this.setParent(newProp.sourceID);\n break;\n case 'width':\n case 'height':\n this.renderCanvas();\n this.setParent(this.sourceID);\n break;\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n Overview.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n Overview.prototype.preRender = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-overview').length;\n this.element.id = 'overview_' + this.overviewid + '_' + collection;\n }\n //EJ2-64637 - Diagram element in the overview disappears on window resize.\n this.id = this.element.id ? this.element.id : this.id;\n this.element.style.background = 'transparent';\n this.unWireEvents();\n this.wireEvents();\n };\n Overview.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.renderCanvas();\n this.setParent(this.sourceID);\n this.renderComplete();\n };\n // eslint-disable-next-line @typescript-eslint/ban-types\n Overview.prototype.getSizeValue = function (real) {\n var text;\n if (real.toString().indexOf('px') > 0 || real.toString().indexOf('%') > 0) {\n text = real.toString();\n }\n else {\n text = real.toString() + 'px';\n }\n return text;\n };\n Overview.prototype.renderCanvas = function (options) {\n var canvas = document.getElementById(this.element.id + '_canvas');\n if (!canvas) {\n canvas = createHtmlElement('div', {});\n this.element.appendChild(canvas);\n }\n var attribute = {\n 'id': this.element.id + '_canvas', 'class': 'drawing',\n 'style': 'position:relative; height:' + this.getSizeValue(this.model.height) + '; width:' +\n this.getSizeValue(this.model.width) +\n ';style:-ms-touch-action: none;touch-action: none;'\n };\n setAttributeHtml(canvas, attribute);\n this.element.setAttribute('tabindex', String(-1));\n this.element.style.overflow = 'hidden';\n this.element.style.height = String(this.model.height);\n this.element.style.width = String(this.model.width);\n this.canvas = canvas;\n };\n Overview.prototype.setParent = function (id) {\n var element = document.getElementById(id);\n var instance = 'ej2_instances';\n if (this.parent) {\n var oldparent = this.parent;\n this.parent = null;\n oldparent.setOverview(null, this.element.id);\n this.removeDocument(this);\n }\n this.parent = this.getDiagram(element, instance);\n if (this.parent) {\n this.parent.setOverview(this);\n }\n };\n Overview.prototype.getDiagram = function (element, instance) {\n var diagram;\n var n = element[\"\" + instance].length;\n for (var i = 0; i < n; i++) {\n if (hasClass(element[\"\" + instance][parseInt(i.toString(), 10)].element, 'e-diagram')) {\n diagram = element[\"\" + instance][parseInt(i.toString(), 10)];\n break;\n }\n }\n return diagram;\n };\n Overview.prototype.unWireEvents = function () {\n var start = Browser.touchStartEvent;\n var move = Browser.touchMoveEvent;\n //const evnt: EventHandler;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stop = Browser.touchEndEvent;\n EventHandler.remove(this.element, start, this.mouseDown);\n EventHandler.remove(this.element, move, this.mouseMove);\n EventHandler.remove(this.element, stop, this.mouseUp);\n EventHandler.remove(this.element, cancel, this.documentMouseUp);\n EventHandler.remove(window, 'resize', this.windowResize);\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.remove(container, 'scroll', this.scrolled);\n }\n };\n Overview.prototype.wireEvents = function () {\n var start = Browser.touchStartEvent;\n var stop = Browser.touchEndEvent;\n var move = Browser.touchMoveEvent;\n var cancel = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n //const isIE11Pointer: Boolean = Browser.isPointer;\n // const wheelEvent: string = Browser.info.name === 'mozilla' ?\n // (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.element, start, this.mouseDown, this);\n EventHandler.add(this.element, move, this.mouseMove, this);\n EventHandler.add(this.element, stop, this.mouseUp, this);\n EventHandler.add(this.element, cancel, this.documentMouseUp, this);\n // eslint-disable\n EventHandler.add(window, 'resize', this.windowResize, this);\n // eslint-enable\n var container = document.getElementById(this.sourceID + 'content');\n if (container) {\n EventHandler.add(container, 'scroll', this.scrolled, this);\n }\n };\n /**\n * renderDocument method\\\n *\n * @returns { void } renderDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.renderDocument = function (view) {\n view.canvas = this.canvas;\n var g = document.getElementById(this.canvas.id + '_svg');\n if (g) {\n g.parentNode.removeChild(g);\n }\n var attr = {\n id: this.canvas.id + '_svg',\n version: '1.1',\n 'class': 'overview_svg'\n };\n var svg = createSvgElement('svg', attr);\n this.svg = svg;\n view.svg = svg;\n view.canvas.appendChild(svg);\n var ovw = document.getElementById(this.element.id);\n var element = ovw;\n var eWidth = element.clientWidth || element.offsetWidth;\n var eHeight = element.clientHeight || element.offsetHeight;\n var bRect = element.getBoundingClientRect();\n // Check for the window resize\n var screenX = (window.screenX < 0) ? window.screenX * -1 : window.screenX;\n var screenY = (window.screenY < 0) ? window.screenY * -1 : window.screenY;\n if (eWidth === 0) {\n var widthValue = Math.floor(((window.innerWidth - screenX) - Math.floor(bRect.left)));\n eWidth = widthValue > 0 ? widthValue : Math.floor(window.innerWidth);\n }\n if (eHeight === 0) {\n var heightValue = Math.floor(((window.innerHeight - screenY) - Math.floor(bRect.top)));\n eHeight = heightValue > 0 ? heightValue : Math.floor(window.innerHeight);\n }\n if (eWidth > 0) {\n svg.setAttribute('width', String(eWidth));\n this.model.height = eHeight;\n }\n if (eHeight > 0) {\n svg.setAttribute('height', String(eHeight));\n this.model.width = eWidth;\n }\n //let attributes: Object;\n if (!view.diagramLayerDiv) {\n view.diagramLayerDiv = createHtmlElement('div', {});\n //const container: HTMLElement = document.getElementById(this.element.id);\n view.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagramLayer', this.model.width, this.model.height);\n view.diagramLayer.setAttribute('style', 'position:absolute; left:0px; top:0px ');\n view.diagramLayerDiv.appendChild(view.diagramLayer);\n view.canvas.appendChild(view.diagramLayerDiv);\n }\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + this.model.width + 'px; height:' + this.model.height + 'px;position:absolute;top:0px;left:0px'\n };\n setAttributeHtml(view.diagramLayerDiv, attributes);\n this.renderHtmlLayer(view.canvas);\n this.renderNativeLayer(view.canvas, view);\n this.addOverviewRectPanel(view);\n };\n /**\n * removeDocument method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.removeDocument = function (view) {\n var svg = document.getElementById(this.canvas.id + '_svg');\n this.canvas.removeChild(svg);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n this.canvas.removeChild(htmlLayer);\n var diagramLayer = document.getElementById(this.element.id + '_diagramLayer_div');\n this.canvas.removeChild(diagramLayer);\n view.diagramLayerDiv = null;\n view.diagramLayer = null;\n var domTable = 'domTable';\n window[\"\" + domTable][this.id + 'html_layer'] = null;\n };\n Overview.prototype.renderHtmlLayer = function (canvas) {\n var htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer', 'class': 'e-html-layer',\n 'style': 'pointer-events:none;position:absolute;top:0px;left:0px;'\n });\n var options = {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;'\n };\n var htmlDiv = createHtmlElement('div', options);\n htmlLayer.appendChild(htmlDiv);\n canvas.appendChild(htmlLayer);\n return htmlLayer;\n };\n Overview.prototype.renderNativeLayer = function (canvas, view) {\n if (!document.getElementById(this.element.id + '_nativeLayer_svg')) {\n var nativeLayerSvg = this.parent.createSvg(this.element.id + '_nativeLayer_svg', this.model.width, this.model.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer' });\n nativeLayerSvg.appendChild(nativeLayer);\n view.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer' });\n }\n };\n Overview.prototype.addOverviewRectPanel = function (view) {\n var svg = document.getElementById(this.canvas.id + '_overviewsvg');\n if (svg) {\n svg.parentNode.removeChild(svg);\n }\n var attr = ({\n id: this.canvas.id + '_overviewsvg',\n class: 'overviewsvg',\n version: '1.1',\n 'style': 'position:absolute;left:0px;top:0px; aria-label:Specifies overview',\n width: this.model.width,\n height: this.model.height\n });\n svg = createSvgElement('svg', attr);\n view.canvas.appendChild(svg);\n var ovw = createSvgElement('g', { 'id': this.element.id + '_overviewlayer', 'style': 'pointer-events:none' });\n svg.appendChild(ovw);\n var rect = createSvgElement('rect', {\n 'fill': 'transparent', 'width': '100%', 'height': '100%', 'class': 'overviewbackrect',\n 'id': this.canvas.id + 'overviewbackrect'\n });\n rect.setAttribute('style', ' pointer-events: none; ');\n ovw.appendChild(rect);\n //const svgDocument: SVGElement = (ovw);\n var g = createSvgElement('g', { 'id': this.canvas.id + 'overviewhandle', 'style': 'pointer-events:all' });\n ovw.appendChild(g);\n var innerrect = createSvgElement('rect', { 'id': this.canvas.id + 'overviewrect', 'fill': 'transparent' });\n g.appendChild(innerrect);\n this.renderOverviewCorner('left', g);\n this.renderOverviewCorner('right', g);\n this.renderOverviewCorner('top', g);\n this.renderOverviewCorner('bottom', g);\n this.renderOverviewCorner('topleft', g);\n this.renderOverviewCorner('topright', g);\n this.renderOverviewCorner('bottomleft', g);\n this.renderOverviewCorner('bottomright', g);\n };\n Overview.prototype.renderOverviewCorner = function (name, parent) {\n var svg = this.svg;\n var shape;\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n shape = 'rect';\n }\n else {\n shape = 'circle';\n }\n var innerrect = createSvgElement(shape, { 'id': this.canvas.id + 'visible' + name, 'class': 'overview-resizer' });\n parent.appendChild(innerrect);\n var transrect = createSvgElement(shape, {\n 'id': this.canvas.id + name, 'class': 'overviewresizer', 'fill': 'transparent'\n });\n parent.appendChild(transrect);\n };\n Overview.prototype.updateOverviewRectangle = function () {\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n var size = new Size();\n size.width = 0;\n size.height = 0;\n var x = 0;\n var y = 0;\n var w;\n var h;\n switch (this.resizeDirection) {\n case 'left':\n size.width -= difx;\n size.height -= difx / this.viewPortRatio;\n x = difx;\n y = difx / this.viewPortRatio;\n y /= 2;\n break;\n case 'right':\n size.width += difx;\n size.height += difx / this.viewPortRatio;\n y = difx / this.viewPortRatio;\n y /= -2;\n break;\n case 'top':\n size.height -= dify;\n size.width -= dify * this.viewPortRatio;\n y = dify;\n x = dify * this.viewPortRatio;\n x /= 2;\n break;\n case 'bottom':\n size.height += dify;\n size.width += dify * this.viewPortRatio;\n x = dify * this.viewPortRatio;\n x /= -2;\n break;\n case 'topleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width -= difx;\n size.height -= dify;\n x = difx;\n y = dify;\n break;\n case 'topright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -(difx / this.viewPortRatio);\n }\n y = dify;\n size.width += difx;\n size.height -= dify;\n break;\n case 'bottomleft':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = -dify * this.viewPortRatio;\n }\n else {\n dify = -difx / this.viewPortRatio;\n }\n x = difx;\n size.width -= difx;\n size.height += dify;\n break;\n case 'bottomright':\n if (Math.abs(dify) > Math.abs(difx)) {\n difx = dify * this.viewPortRatio;\n }\n else {\n dify = difx / this.viewPortRatio;\n }\n size.width += difx;\n size.height += dify;\n break;\n }\n this.updateHelper(x, y, size, w, h);\n };\n Overview.prototype.updateHelper = function (difx, dify, size, width, height) {\n var x;\n var y;\n var bounds;\n var svg = this.element.getElementsByTagName('svg')[2];\n var rect = svg.getElementById('helper');\n if (size) {\n bounds = rect.getBBox();\n x = bounds.x + difx;\n y = bounds.y + dify;\n width = bounds.width + size.width;\n height = bounds.height + size.height;\n }\n else {\n var difx_1;\n if (this.currentPoint.x > this.startPoint.x) {\n difx_1 = this.currentPoint.x - this.prevPoint.x;\n }\n else {\n difx_1 = this.prevPoint.x - this.currentPoint.x;\n }\n var dify_1;\n if (this.currentPoint.y > this.startPoint.y) {\n dify_1 = this.currentPoint.y - this.prevPoint.y;\n }\n else {\n dify_1 = this.prevPoint.y - this.currentPoint.y;\n }\n var w = void 0;\n var h = void 0;\n if (Math.abs(dify_1) > Math.abs(difx_1)) {\n difx_1 = this.viewPortRatio * dify_1;\n h = true;\n w = false;\n }\n else {\n dify_1 = difx_1 / this.viewPortRatio;\n w = true;\n h = false;\n }\n bounds = rect.getBBox();\n x = ((this.startPoint.x > this.currentPoint.x) ?\n bounds.x - difx_1 : bounds.x);\n y = ((this.startPoint.y > this.currentPoint.y) ? bounds.y - dify_1 : bounds.y);\n width = bounds.width + difx_1;\n height = bounds.height + dify_1;\n }\n setAttributeSvg(this.helper, {\n 'id': this.helper.id, 'x': x, 'y': y,\n 'width': Math.max(0, width), 'height': Math.max(0, height)\n });\n };\n Overview.prototype.updateOverviewrect = function (x, y, width, height) {\n var rect = document.getElementById(this.canvas.id + 'overviewrect');\n var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) };\n setAttributeHtml(rect, attr);\n this.updateOverviewCorner('top', x + 8, y + 1, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('bottom', x + 8, y + height + 3, Math.max(0, width - 16), 2);\n this.updateOverviewCorner('left', x - 2, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('right', x + width, y + 11, 2, Math.max(0, height - 16));\n this.updateOverviewCorner('topleft', x, y + 3, 5, 5);\n this.updateOverviewCorner('topright', x + width, y + 3, 5, 5);\n this.updateOverviewCorner('bottomleft', x, y + height + 3, 5, 5);\n this.updateOverviewCorner('bottomright', x + width, y + height + 3, 5, 5);\n };\n Overview.prototype.updateOverviewCorner = function (name, x, y, width, height) {\n var attr;\n var transattr;\n var rectname = 'visible' + name;\n var rect = document.getElementById(this.canvas.id + rectname);\n if (name === 'top' || name === 'bottom' || name === 'right' || name === 'left') {\n attr = { x: x, y: y, width: width, height: height, fill: '#ED1C24' };\n transattr = { x: x - 2, y: y - 2, width: width === 2 ? 4 : width, height: height === 2 ? 4 : height };\n }\n else {\n attr = { cx: x, cy: y, 'r': 4, fill: '#ED1C24' };\n transattr = { cx: x, cy: y, 'r': 6, fill: 'transparent' };\n }\n setAttributeHtml(rect, attr);\n var transrect = document.getElementById(this.canvas.id + name);\n setAttributeHtml(transrect, transattr);\n };\n Overview.prototype.translateOverviewRectangle = function () {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var difx = this.currentPoint.x - this.prevPoint.x;\n var dify = this.currentPoint.y - this.prevPoint.y;\n //const viewPort: Rect;\n //let zoom: number = Math.min(this.parent.scroller.viewPortWidth / offwidth, this.parent.scroller.viewPortHeight / offheight);\n var svg = this.element.getElementsByClassName('overviewsvg')[0];\n var panel = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = panel.getBBox();\n var x = bounds.x + difx;\n var y = bounds.y + dify;\n var width = bounds.width;\n var height = bounds.height;\n this.updateOverviewrect(x, y, width, height);\n this.updateParentView(this.parent.scroller.currentZoom, x, y, width, height, null);\n };\n Overview.prototype.renderOverviewRect = function (x, y, width, height) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //const viewPort: Rect;\n var viewwidth = (width / offwidth) * this.contentWidth;\n var viewheight = (height / offheight) * this.contentHeight;\n var zoom = Math.max(this.parent.scroller.viewPortWidth / viewwidth, this.parent.scroller.viewPortHeight / viewheight);\n if (zoom >= 0.25 && zoom <= 30) {\n var point = { x: 0, y: 0 };\n this.updateParentView(zoom, x, y, width, height, point);\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n if (this.helper) {\n var panel = this.element.getElementsByTagName('rect')[10];\n var svgRect = panel.getBBox();\n bounds.x = svgRect.x;\n bounds.y = svgRect.y;\n }\n //Bug 884239: Overview rectangle not updated properly while double-clicking the overview canvas.\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n this.actionName === 'pan' ? this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height) :\n this.updateOverviewrect(bounds.x, bounds.y, bounds.width, bounds.height);\n }\n };\n Overview.prototype.scrollOverviewRect = function (hoffset, voffset, currentZoom, scaled) {\n if (!(this.actionName) || scaled) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scale = Math.min(this.contentWidth / offwidth, this.contentHeight / offheight);\n var bounds = new Rect();\n var x = bounds.x = (hoffset / currentZoom) / scale;\n var y = bounds.y = (voffset / currentZoom) / scale;\n //const viewPort: Rect;\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Added below code to consider ruler size and scrollbar size while calculating the width and height for the overview rectangle.\n var rulerSize = 0;\n if (this.parent.rulerSettings.showRulers) {\n rulerSize = 25;\n }\n var container = document.getElementById(this.parent.element.id + 'content');\n var wScrollBar = 0;\n var hScrollBar = 0;\n if (container) {\n wScrollBar = container.offsetWidth - container.clientWidth;\n hScrollBar = container.offsetHeight - container.clientHeight;\n }\n var width = bounds.width = ((this.parent.scroller.viewPortWidth - rulerSize - wScrollBar) / currentZoom) / scale;\n var height = bounds.height = ((this.parent.scroller.viewPortHeight - rulerSize - hScrollBar) / currentZoom) / scale;\n //const ratio: number = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n if (scaled) {\n var rect = new Rect();\n rect.x = x;\n rect.y = y;\n rect.width = width;\n rect.height = height;\n return rect;\n }\n this.updateOverviewrect(-x, -y, width, height);\n }\n return null;\n };\n Overview.prototype.updateParentView = function (zoom, x, y, width, height, focusPoint) {\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n var scalex = this.contentWidth / offwidth;\n var scaley = this.contentHeight / offheight;\n var hoffset = x * scalex * zoom;\n var voffset = y * scaley * zoom;\n var delx;\n var dely;\n var bounds = this.parent.scroller.getPageBounds();\n if (zoom !== 1 || this.actionName === 'pan') {\n delx = -hoffset - this.parent.scroller.horizontalOffset;\n dely = -voffset - this.parent.scroller.verticalOffset;\n }\n this.parent.setBlazorDiagramProps(true);\n this.parent.realActions |= RealAction.OverViewAction;\n var canOverview = true;\n if (this.actionName === 'scale' || this.actionName === 'draw') {\n this.parent.scroller.zoom(zoom / this.parent.scroller.currentZoom, delx, dely, focusPoint);\n }\n else {\n if (!isBlazor()) {\n this.parent.pan(delx, dely, focusPoint, canOverview);\n }\n else {\n this.parent.scroller.zoom(1, delx, dely, focusPoint);\n }\n }\n };\n Overview.prototype.updateHtmlLayer = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n var bounds = this.parent.scroller.getPageBounds(true);\n var width = bounds.width;\n var height = bounds.height;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n var h = Math.max(height, this.parent.scroller.viewPortHeight / this.parent.scroller.currentZoom);\n var scale = Math.min(Number(this.model.width) / w, Number(this.model.height) / h);\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + this.parent.scroller.transform.tx + 'px,'\n + (this.parent.scroller.transform.ty) + 'px)';\n };\n /** @private */\n /**\n * updateView method\\\n *\n * @returns { void } removeDocument method .\\\n * @param {Overview} view - provide the angle value.\n * @private\n */\n Overview.prototype.updateView = function (view) {\n //let width: number; let height: number;\n var bounds = this.parent.scroller.getPageBounds();\n // Bug 851571: Overview with html node is not updated properly when we zoom-out the diagram.\n // Below transformWidth calculation is removed.\n var width = bounds.width;\n var height = bounds.height;\n var offwidth = Number(this.model.width);\n var offheight = Number(this.model.height);\n //let scale: number;\n var w = Math.max(width, this.parent.scroller.viewPortWidth);\n // Bug 851571: Overview with html node is not updated properly when we zoom-out the diagram.\n // Removed viewPortHeight/ currentZoom for height calculation.\n var h = Math.max(height, this.parent.scroller.viewPortHeight);\n this.contentWidth = w = Math.max(w, (offwidth / offheight) * h);\n this.contentHeight = h = Math.max(h, (offheight / offwidth) * w);\n var scale = Math.min(offwidth / w, offheight / h);\n var htmlLayer = document.getElementById(this.element.id + '_htmlLayer');\n htmlLayer.style.webkitTransform = 'scale(' + scale + ') translate(' + -bounds.x + 'px,' + (-bounds.y) + 'px)';\n htmlLayer.style.transform = 'scale(' + scale + ') translate(' + ((-(bounds.x))) + 'px,'\n + (((-bounds.y))) + 'px)';\n var ovw = document.getElementById(this.element.id + '_overviewlayer');\n ovw.setAttribute('transform', 'translate(' + (-bounds.x * scale) + ',' + (-bounds.y * scale) + ')');\n this.horizontalOffset = bounds.x * scale;\n this.verticalOffset = bounds.y * scale;\n var canvas = document.getElementById(this.element.id + '_diagramLayer');\n var nativeLayer = getNativeLayer(this.element.id);\n var context = canvas.getContext('2d');\n var widthratio = (Number(this.model.width) / this.contentWidth);\n var heightratio = (Number(this.model.height) / this.contentHeight);\n widthratio = Math.min(widthratio, heightratio);\n var transform = this.parent.scroller.transform;\n var tx = transform.tx;\n var ty = transform.ty;\n nativeLayer.setAttribute('transform', 'translate('\n + (tx * widthratio) + ',' + (ty * heightratio) + '),scale('\n + widthratio + ')');\n context.setTransform(widthratio, 0, 0, widthratio, 0, 0);\n context.fillStyle = 'red';\n this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom);\n };\n // region - Event Handlers\n Overview.prototype.scrolled = function (evt) {\n if (this.event) {\n var bounds = this.scrollOverviewRect(this.parent.scroller.horizontalOffset, this.parent.scroller.verticalOffset, this.parent.scroller.currentZoom, true);\n this.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height);\n // EJ2-67416 - Added below code to update the overview rect if the diagram and overview is scrolled.\n this.updateView(this);\n }\n };\n Overview.prototype.updateCursor = function (evt) {\n if (hasClass(evt.target, ('overviewresizer'))) {\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.canvas.style.cursor = 'w-resize';\n break;\n case this.canvas.id + 'right':\n this.canvas.style.cursor = 'e-resize';\n break;\n case this.canvas.id + 'top':\n this.canvas.style.cursor = 'n-resize';\n break;\n case this.canvas.id + 'bottom':\n this.canvas.style.cursor = 's-resize';\n break;\n case this.canvas.id + 'topleft':\n this.canvas.style.cursor = 'nw-resize';\n break;\n case this.canvas.id + 'topright':\n this.canvas.style.cursor = 'ne-resize';\n break;\n case this.canvas.id + 'bottomleft':\n this.canvas.style.cursor = 'sw-resize';\n break;\n case this.canvas.id + 'bottomright':\n this.canvas.style.cursor = 'se-resize';\n break;\n }\n }\n else {\n this.canvas.style.cursor = 'default';\n }\n };\n Overview.prototype.mouseMove = function (evt) {\n this.event = false;\n this.updateCursor(evt);\n this.currentPoint = this.mousePosition(evt);\n if (this.actionName) {\n switch (this.actionName) {\n case 'draw':\n if (!this.inAction && (this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n this.initHelper();\n this.inAction = true;\n }\n if (this.inAction) {\n this.updateHelper();\n }\n break;\n case 'scale':\n if (!this.inAction) {\n this.initHelper();\n this.inAction = true;\n }\n this.updateOverviewRectangle();\n break;\n case 'pan':\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y === this.currentPoint.y) || this.inAction) {\n this.inAction = true;\n this.translateOverviewRectangle();\n }\n break;\n }\n }\n this.prevPoint = this.currentPoint;\n };\n Overview.prototype.documentMouseUp = function (evt) {\n this.inAction = false;\n this.actionName = '';\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n var element = document.getElementById(_this.element.id);\n var bRect = element.getBoundingClientRect();\n _this.model.width = bRect.width > 0 ? bRect.width : _this.model.width;\n _this.model.height = bRect.height > 0 ? bRect.height : _this.model.height;\n _this.renderCanvas();\n _this.setParent(_this.sourceID);\n }, 10);\n return false;\n };\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {PointerEvent | TouchEvent} evt - provide the angle value.\n * @private\n */\n Overview.prototype.mouseDown = function (evt) {\n if (evt.target.id === this.canvas.id + '_overviewsvg') {\n this.actionName = 'draw';\n }\n if (evt.target.id === this.canvas.id + 'overviewrect') {\n this.actionName = 'pan';\n }\n if (hasClass(evt.target, 'overviewresizer')) {\n this.actionName = 'scale';\n switch (evt.target.id) {\n case this.canvas.id + 'left':\n this.resizeDirection = 'left';\n break;\n case this.canvas.id + 'right':\n this.resizeDirection = 'right';\n break;\n case this.canvas.id + 'top':\n this.resizeDirection = 'top';\n break;\n case this.canvas.id + 'bottom':\n this.resizeDirection = 'bottom';\n break;\n case this.canvas.id + 'topleft':\n this.resizeDirection = 'topleft';\n break;\n case this.canvas.id + 'topright':\n this.resizeDirection = 'topright';\n break;\n case this.canvas.id + 'bottomleft':\n this.resizeDirection = 'bottomleft';\n break;\n case this.canvas.id + 'bottomright':\n this.resizeDirection = 'bottomright';\n break;\n }\n }\n this.startPoint = this.prevPoint = this.mousePosition(evt);\n this.viewPortRatio = this.parent.scroller.viewPortWidth / this.parent.scroller.viewPortHeight;\n var overViewHandle = document.getElementById(this.canvas.id + 'overviewhandle');\n overViewHandle.style.pointerEvents = 'none';\n };\n Overview.prototype.mouseUp = function (evt) {\n this.currentPoint = this.mousePosition(evt);\n //let offwidth: number = Number(this.model.width);\n //let offheight: number = Number(this.model.height);\n if (this.actionName) {\n if ((this.startPoint.x !== this.currentPoint.x || this.startPoint.y !== this.currentPoint.y)) {\n if (this.actionName === 'pan') {\n //let i: number = 0;\n }\n else {\n if (this.helper) {\n var bounds = (this.element.getElementsByTagName('rect')[10]).getBBox();\n this.resizeDirection = this.resizeDirection || '';\n var x = bounds.x;\n var y = bounds.y;\n var width = bounds.width;\n var height = bounds.height;\n var adjust = this.resizeDirection === 'topleft' || this.resizeDirection === 'topright' ||\n this.resizeDirection === 'bottomleft' || this.resizeDirection === 'bottomright';\n this.renderOverviewRect(x, y, width, height);\n }\n }\n }\n else {\n if (evt.target.id === this.canvas.id + '_overviewsvg' || evt.target.id === 'helper') {\n var svg = this.element.getElementsByTagName('svg')[2];\n var g = svg.getElementById(this.canvas.id\n + 'overviewrect');\n var bounds = g.getBBox();\n var width = bounds.width;\n var height = bounds.height;\n this.inAction = true;\n this.actionName = 'pan';\n this.renderOverviewRect(this.currentPoint.x - width / 2, this.currentPoint.y - height / 2, width, height);\n this.inAction = false;\n }\n }\n }\n if (this.helper) {\n this.helper.parentNode.removeChild(this.helper);\n this.helper = null;\n }\n this.actionName = '';\n this.startPoint = null;\n this.currentPoint = null;\n this.prevPoint = null;\n this.helper = null;\n this.viewPortRatio = 1;\n this.resizeDirection = '';\n this.inAction = false;\n this.event = true;\n document.getElementById(this.canvas.id + 'overviewhandle').style.pointerEvents = 'all';\n };\n Overview.prototype.initHelper = function () {\n var g = this.element.getElementsByTagName('svg')[2];\n //const scale: number = this.parent.scroller.currentZoom;\n var x = this.startPoint.x;\n var y = this.startPoint.y;\n var width = 1;\n var height = 1;\n if (this.actionName === 'scale') {\n var rect = g.\n getElementById(this.canvas.id + 'overviewrect');\n var bounds = rect.getBBox();\n x = bounds.x;\n y = bounds.y;\n width = bounds.width;\n height = bounds.height;\n }\n var selectionRect = createSvgElement('rect', {\n 'id': 'helper', x: x, y: y, width: width, height: height,\n 'fill': 'transparent', 'stroke': 'gray', 'stroke-dasharray': '2 2', 'shape-rendering': 'crispEdges'\n });\n var overviewLayer = g.getElementById(this.element.id + '_overviewlayer');\n overviewLayer.appendChild(selectionRect);\n this.helper = selectionRect;\n };\n Overview.prototype.mousePosition = function (evt) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (evt.type.indexOf('touch') !== -1) {\n touchArg = evt;\n var pageX = touchArg.changedTouches[0].clientX;\n var pageY = touchArg.changedTouches[0].clientY;\n offsetX = pageX - this.element.offsetLeft;\n offsetY = pageY - this.element.offsetTop;\n }\n else {\n offsetX = evt.clientX;\n offsetY = evt.clientY;\n }\n var boundingRect = this.element.getBoundingClientRect();\n offsetX = offsetX - boundingRect.left;\n offsetY = offsetY - boundingRect.top;\n return { x: offsetX + this.horizontalOffset, y: offsetY + this.verticalOffset };\n };\n // end region - Event handlers\n /**\n *To destroy the overview\n *\n * @returns {void} To destroy the overview\n */\n Overview.prototype.destroy = function () {\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-overview');\n var content = document.getElementById(this.element.id + '_canvas');\n if (content) {\n this.element.removeChild(content);\n }\n }\n this.parent.views.splice(this.parent.views.indexOf(this.element.id), 1);\n this.diagramLayerDiv = null;\n this.canvas = null;\n this.parent = null;\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Overview.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Overview';\n };\n __decorate([\n Property('100%')\n ], Overview.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], Overview.prototype, \"height\", void 0);\n __decorate([\n Property('')\n ], Overview.prototype, \"sourceID\", void 0);\n __decorate([\n Event()\n ], Overview.prototype, \"created\", void 0);\n return Overview;\n}(Component));\nexport { Overview };\n","import { Size } from './../primitives/size';\nimport { Rect } from './../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Container } from './../core/containers/container';\nimport { StrokeStyle, Stop } from './../core/appearance';\nimport { Point } from './../primitives/point';\nimport { ConnectorConstraints, NodeConstraints, PortConstraints, DiagramConstraints, DiagramTools, Transform, BlazorAction, ControlPointsVisibility, DiagramEvent } from './../enum/enum';\nimport { SelectorConstraints, ThumbsConstraints } from './../enum/enum';\nimport { PathElement } from './../core/elements/path-element';\nimport { DiagramNativeElement } from './../core/elements/native-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { PathAnnotation, ShapeAnnotation } from './../objects/annotation';\nimport { Node, FlowShape, BasicShape, Native, Html, UmlActivityShape, BpmnGateway, BpmnDataObject, BpmnEvent, BpmnSubEvent, BpmnActivity, BpmnAnnotation, MethodArguments, UmlClassAttribute, UmlClassMethod, UmlClass, UmlInterface, UmlEnumerationMember, UmlEnumeration, Lane, Phase, ChildContainer, SwimLane, Path, Image, Text, BpmnShape, UmlClassifierShape, Header } from './../objects/node';\nimport { Connector, bezierPoints, BezierSegment, StraightSegment, OrthogonalSegment } from './../objects/connector';\nimport { getBasicShape } from './../objects/dictionary/basic-shapes';\nimport { getFlowShape } from './../objects/dictionary/flow-shapes';\nimport { Diagram } from './../diagram';\nimport { findAngle } from './connector';\nimport { getContent, removeElement, hasClass, getDiagramElement } from './dom-util';\nimport { getBounds, cloneObject, rotatePoint, getFunction } from './base-util';\nimport { getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { getRulerSize } from '../ruler/ruler';\nimport { canResize } from './constraints-util';\nimport { UserHandle } from '../interaction/selector';\nimport { getUMLActivityShape } from '../objects/dictionary/umlactivity-shapes';\nimport { Canvas } from '../core/containers/canvas';\nimport { PointPort } from '../objects/port';\nimport { Command } from '../diagram/keyboard-commands';\nimport { pasteSwimLane } from './swim-lane-util';\nimport { isBlazor, Browser, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { ConnectorFixedUserHandle } from '../objects/fixed-user-handle';\nimport { Overview } from '../../overview/overview';\n/**\n * completeRegion method\\\n *\n * @returns { void } completeRegion method .\\\n * @param {Rect} region - provide the region value.\n * @param {(NodeModel | ConnectorModel)[]} selectedObjects - provide the selectedObjects value.\n * @private\n */\nexport function completeRegion(region, selectedObjects) {\n var collection = [];\n for (var i = 0; i < selectedObjects.length; i++) {\n var obj = selectedObjects[parseInt(i.toString(), 10)];\n if (region.containsRect(obj.wrapper.bounds)) {\n collection.push(obj);\n }\n }\n return collection;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { boolean } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the nodes value.\n * @param {string} name - provide the orientation value.\n * @private\n */\nexport function findNodeByName(nodes, name) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === name) {\n return true;\n }\n }\n return false;\n}\n/**\n * findNodeByName method \\\n *\n * @returns { string } findNodeByName method .\\\n * @param {(NodeModel | ConnectorModel)[]} drawingObject - provide the drawingObject value.\n * @private\n */\nexport function findObjectType(drawingObject) {\n var type;\n if (drawingObject) {\n if (drawingObject.type) {\n type = 'Connector';\n }\n else if (drawingObject.shape && !drawingObject.type) {\n type = 'Node';\n }\n }\n return type;\n}\n/**\n * setSwimLaneDefaults method \\\n *\n * @returns { void } setSwimLaneDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setSwimLaneDefaults(child, node) {\n if (node instanceof Node) {\n if (!child.shape.header) {\n node.shape.hasHeader = false;\n }\n }\n}\n/**\n * getSpaceValue method \\\n *\n * @returns { number } getSpaceValue method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @param {number} i - provide the i value.\n * @param {number} space - provide the space value.\n * @private\n */\nexport function getSpaceValue(intervals, isLine, i, space) {\n space = !isLine ? ((intervals[i - 1] !== undefined) ? intervals[i - 1] + space : 0) : space;\n return space;\n}\n/**\n * getInterval method \\\n *\n * @returns { number[] } getInterval method .\\\n * @param {number[]} intervals - provide the intervals value.\n * @param {boolean} isLine - provide the isLine value.\n * @private\n */\nexport function getInterval(intervals, isLine) {\n var newInterval = [];\n if (!isLine) {\n for (var k = 0; k < intervals.length; k++) {\n newInterval.push(intervals[parseInt(k.toString(), 10)]);\n }\n newInterval.push(intervals[newInterval.length - 2]);\n newInterval.push(intervals[newInterval.length - 2]);\n }\n else {\n newInterval = intervals;\n }\n return newInterval;\n}\n/**\n * setPortsEdges method \\\n *\n * @returns { Node } setPortsEdges method .\\\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function setPortsEdges(node) {\n for (var k = 0; k < node.ports.length; k++) {\n node.ports[parseInt(k.toString(), 10)].inEdges = [];\n node.ports[parseInt(k.toString(), 10)].outEdges = [];\n }\n return node;\n}\n/**\n * setUMLActivityDefaults method \\\n *\n * @returns { void } setUMLActivityDefaults method .\\\n * @param {NodeModel | ConnectorModel} child - provide the child value.\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setUMLActivityDefaults(child, node) {\n if (node instanceof Node) {\n var shape = child.shape.shape;\n switch (shape) {\n case 'JoinNode':\n if (!child.width) {\n node.width = 20;\n }\n if (!child.height) {\n node.height = 90;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'ForkNode':\n if (!child.width) {\n node.width = 90;\n }\n if (!child.height) {\n node.height = 20;\n }\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'InitialNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n case 'FinalNode':\n if (!child.style || !child.style.fill) {\n node.style.fill = 'black';\n }\n break;\n }\n }\n else {\n var flow = child.shape.flow;\n switch (flow) {\n case 'Object':\n if (!child.style || !child.style.strokeDashArray) {\n node.style.strokeDashArray = '8 4';\n }\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n break;\n case 'Control':\n if (!child.style || !child.style.strokeWidth) {\n node.style.strokeWidth = 2;\n }\n if (!child.targetDecorator || !child.targetDecorator.shape) {\n node.targetDecorator.shape = 'OpenArrow';\n }\n if (!child.sourceDecorator || !child.sourceDecorator.shape) {\n node.sourceDecorator.shape = 'None';\n }\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * setConnectorDefaults method \\\n *\n * @returns { void } setConnectorDefaults method .\\\n * @param {ConnectorModel} child - provide the child value.\n * @param {ConnectorModel} node - provide the node value.\n * @private\n */\nexport function setConnectorDefaults(child, node) {\n switch ((child.shape).type) {\n case 'Bpmn':\n var bpmnFlow = child.shape.flow;\n switch (bpmnFlow) {\n case 'Sequence':\n if ((((child.shape.sequence) === 'Normal' && child.type !== 'Bezier')) ||\n ((child.shape.sequence) === 'Default') || ((child.shape.sequence) === 'Conditional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style\n && child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.sequence) === 'Conditional' && node.sourceDecorator) {\n if (node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 20;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.width) || 10;\n }\n }\n break;\n case 'Association':\n if (((child.shape.association) === 'Default') ||\n ((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'black';\n }\n if ((child.shape.association) === 'BiDirectional') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n node.sourceDecorator.width = (child.sourceDecorator && child.sourceDecorator.width) || 5;\n node.sourceDecorator.height = (child.sourceDecorator && child.sourceDecorator.height) || 10;\n }\n }\n }\n break;\n case 'Message':\n if (node.style && !node.style.strokeDashArray) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n break;\n }\n break;\n case 'UmlActivity':\n var flow = child.shape.flow;\n switch (flow) {\n case 'Exception':\n if (((child.shape.association) === 'Directional') ||\n ((child.shape.association) === 'BiDirectional')) {\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '2 2';\n }\n break;\n }\n break;\n case 'UmlClassifier':\n var hasRelation = false;\n if (child.shape.relationship === 'Association') {\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Inheritance') {\n if (node.targetDecorator && node.targetDecorator.style) {\n node.targetDecorator.style.fill = (child.targetDecorator && child.targetDecorator.style &&\n child.targetDecorator.style.fill) || 'white';\n }\n if (node.style) {\n hasRelation = true;\n node.style.strokeDashArray = (child.style && child.style.strokeDashArray) || '4 4';\n }\n }\n else if (child.shape.relationship === 'Composition') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'black';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Aggregation' ||\n child.shape.relationship === undefined) {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n else if (child.shape.relationship === 'Dependency') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n node.style.strokeDashArray = '4 4';\n }\n else if (child.shape.relationship === 'Realization') {\n if (node.sourceDecorator && node.sourceDecorator.style) {\n node.sourceDecorator.style.fill = (child.sourceDecorator && child.sourceDecorator.style &&\n child.sourceDecorator.style.fill) || 'white';\n }\n hasRelation = true;\n }\n if (hasRelation) {\n node.style.strokeWidth = (child.style && child.style.strokeWidth) || 2;\n }\n break;\n }\n}\n/* eslint-enable */\n/**\n * findNearestPoint method \\\n *\n * @returns { PointModel } findNearestPoint method .\\\n * @param {PointModel} reference - provide the reference value.\n * @param {PointModel} start - provide the start value.\n * @param {PointModel} end - provide the end value.\n * @private\n */\nexport function findNearestPoint(reference, start, end) {\n var shortestPoint;\n var shortest = Point.findLength(start, reference);\n var shortest1 = Point.findLength(end, reference);\n if (shortest > shortest1) {\n shortestPoint = end;\n }\n else {\n shortestPoint = start;\n }\n var angleBWStAndEnd = Point.findAngle(start, end);\n var angleBWStAndRef = Point.findAngle(shortestPoint, reference);\n var r = Point.findLength(shortestPoint, reference);\n var vaAngle = angleBWStAndRef + ((angleBWStAndEnd - angleBWStAndRef) * 2);\n return {\n x: (shortestPoint.x + r * Math.cos(vaAngle * Math.PI / 180)),\n y: (shortestPoint.y + r * Math.sin(vaAngle * Math.PI / 180))\n };\n}\n/**\n * pointsForBezier method \\\n *\n * @returns { PointModel[] } pointsForBezier method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @private\n */\nfunction pointsForBezier(connector) {\n var points = [];\n if (connector.type === 'Bezier') {\n var k = 0;\n for (var i = 0; i < connector.segments.length; i++) {\n var tolerance = 1.5;\n var segment = connector.segments[parseInt(i.toString(), 10)];\n //const pt: PointModel = { x: 0, y: 0 };\n var point1 = !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1;\n var point2 = !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2;\n var max = Number((connector.distance(point1, segment.points[0]) +\n connector.distance(point2, point1) +\n connector.distance(segment.points[1], point2)) / tolerance);\n for (var j = 0; j < max - 1; j = j + 10) {\n points[parseInt(k.toString(), 10)] =\n bezierPoints(connector, segment.points[0], !Point.isEmptyPoint(segment.point1) ? segment.point1 : segment.bezierPoint1, !Point.isEmptyPoint(segment.point2) ? segment.point2 : segment.bezierPoint2, segment.points[1], j, max);\n k++;\n }\n }\n }\n return points;\n}\n/**\n * isDiagramChild method \\\n *\n * @returns { boolean } isDiagramChild method .\\\n * @param {HTMLElement} htmlLayer - provide the htmlLayer value.\n * @private\n */\nexport function isDiagramChild(htmlLayer) {\n var element = htmlLayer.parentElement;\n do {\n if (hasClass(element, 'e-diagram')) {\n return true;\n }\n element = element.parentElement;\n } while (element);\n return false;\n}\n/**\n * groupHasType method \\\n *\n * @returns { boolean } groupHasType method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {Shapes} type - provide the type value.\n * @param {{}} nameTable - provide the nameTable value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function groupHasType(node, type, nameTable) {\n var contains = false;\n if (node && node.children && node.children.length > 0) {\n var child = void 0;\n var i = 0;\n for (; i < node.children.length; i++) {\n child = nameTable[node.children[parseInt(i.toString(), 10)]];\n if (child.shape.type === type) {\n return true;\n }\n return groupHasType(child, type, nameTable);\n }\n }\n return contains;\n}\n/**\n * groupHasType method \\\n *\n * @returns { void } groupHasType method .\\\n * @param {NodeModel | ConnectorModel} actualNode - provide the actualNode value.\n * @param { NodeModel | ConnectorModel} plainValue - provide the plainValue value.\n * @param {object} defaultValue - provide the defaultValue value.\n * @param {NodeModel | ConnectorModel} property - provide the property value.\n * @param {string} oldKey - provide the oldKey value.\n * @private\n */\nexport function updateDefaultValues(actualNode, plainValue, \n// eslint-disable-next-line @typescript-eslint/ban-types\ndefaultValue, property, oldKey) {\n if (defaultValue && ((actualNode instanceof Connector) || actualNode\n && ((actualNode.shape && actualNode.shape.type !== 'SwimLane') || actualNode.shape === undefined))) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj = void 0;\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'shape' && keyObj.type) {\n actualNode.shape = { type: keyObj.type };\n }\n if (keyObj) {\n if (Array.isArray(keyObj) && keyObj.length && keyObj.length > 0 && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n if (actualNode[\"\" + key].length > 0) {\n for (var i = 0; i <= actualNode[\"\" + key].length; i++) {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else {\n updateDefaultValues(actualNode[\"\" + key], plainValue ? plainValue[\"\" + key] : undefined, defaultValue[\"\" + key], (key === 'annotations' || key === 'ports') ? actualNode : undefined, key);\n }\n }\n else if (keyObj instanceof Object && plainValue && (oldKey !== 'annotations' && oldKey !== 'ports')) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else if ((oldKey !== 'annotations' && oldKey !== 'ports')\n && (plainValue && !plainValue[\"\" + key]) || (!plainValue && actualNode\n && (actualNode[\"\" + key] || actualNode[\"\" + key] !== undefined))) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n else {\n var createObject = void 0;\n if (oldKey === 'annotations' || oldKey === 'ports') {\n if (oldKey === 'annotations') {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n if (!actualNode[\"\" + key]) {\n if (getObjectType(property) === Connector) {\n createObject = new PathAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n else {\n createObject = new ShapeAnnotation(property, 'annotations', defaultValue[\"\" + key]);\n property.annotations.push(createObject);\n }\n }\n }\n else {\n if (actualNode[\"\" + key]) {\n updateDefaultValues(actualNode[\"\" + key], plainValue[\"\" + key], defaultValue[\"\" + key]);\n }\n else {\n createObject = new PointPort(property, 'ports', defaultValue[\"\" + key]);\n property.ports.push(createObject);\n }\n }\n }\n }\n }\n }\n }\n}\n/* tslint:disable:no-string-literal */\n/**\n * updateLayoutValue method \\\n *\n * @returns { void } updateLayoutValue method .\\\n * @param {TreeInfo} actualNode - provide the actualNode value.\n * @param { object} defaultValue - provide the defaultValue value.\n * @param {INode[]} nodes - provide the nodes value.\n * @param {INode} node - provide the node value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function updateLayoutValue(actualNode, defaultValue, nodes, node) {\n // eslint-disable-next-line @typescript-eslint/ban-types\n var keyObj;\n var assistantKey = 'Role';\n if (defaultValue) {\n for (var _i = 0, _a = Object.keys(defaultValue); _i < _a.length; _i++) {\n var key = _a[_i];\n keyObj = defaultValue[\"\" + key];\n if (key === 'getAssistantDetails') {\n //Removed isBlazor code\n if (node.data[\"\" + assistantKey] === defaultValue[\"\" + key]['root']) {\n var assitants = defaultValue[\"\" + key]['assistants'];\n for (var i = 0; i < assitants.length; i++) {\n for (var j = 0; j < nodes.length; j++) {\n if (nodes[parseInt(j.toString(), 10)].data[\"\" + assistantKey] === assitants[parseInt(i.toString(), 10)]) {\n actualNode.assistants.push(nodes[parseInt(j.toString(), 10)].id);\n actualNode.children.splice(0, 1);\n }\n }\n }\n }\n }\n else if (keyObj) {\n actualNode[\"\" + key] = defaultValue[\"\" + key];\n }\n }\n }\n if (!actualNode.hasSubTree && defaultValue.canEnableSubTree) {\n actualNode.orientation = node.layoutInfo.orientation;\n actualNode.type = node.layoutInfo.type;\n if (node.layoutInfo.offset !== actualNode.offset && (node.layoutInfo.offset) !== undefined) {\n actualNode.offset = node.layoutInfo.offset;\n }\n }\n node.layoutInfo.hasSubTree = actualNode.hasSubTree;\n}\n/* tslint:enable:no-string-literal */\n/**\n * isPointOverConnector method \\\n *\n * @returns { boolean } isPointOverConnector method .\\\n * @param {ConnectorModel} connector - provide the connector value.\n * @param { PointModel} reference - provide the reference value.\n * @private\n */\nexport function isPointOverConnector(connector, reference) {\n //let intermediatePoints: PointModel[];\n var intermediatePoints = connector.type === 'Bezier' ? pointsForBezier(connector) :\n connector.intermediatePoints;\n for (var i = 0; i < intermediatePoints.length - 1; i++) {\n var start = intermediatePoints[parseInt(i.toString(), 10)];\n var end = intermediatePoints[i + 1];\n var rect = Rect.toBounds([start, end]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(reference)) {\n var intersectinPt = findNearestPoint(reference, start, end);\n var segment1 = { x1: start.x, x2: end.x, y1: start.y, y2: end.y };\n var segment2 = { x1: reference.x, x2: intersectinPt.x, y1: reference.y, y2: intersectinPt.y };\n var intersectDetails = intersect3(segment1, segment2);\n if (intersectDetails.enabled) {\n var distance = Point.findLength(reference, intersectDetails.intersectPt);\n if (Math.abs(distance) < connector.hitPadding) {\n return true;\n }\n }\n else {\n var rect_1 = Rect.toBounds([reference, reference]);\n rect_1.Inflate(3);\n if (rect_1.containsPoint(start) || rect_1.containsPoint(end)) {\n return true;\n }\n }\n if (Point.equals(reference, intersectinPt)) {\n return true;\n }\n }\n }\n if (connector.annotations.length > 0 || connector.ports.length > 0) {\n var container = connector.wrapper.children;\n for (var i = 3; i < container.length; i++) {\n var textElement = container[parseInt(i.toString(), 10)];\n if (textElement.bounds.containsPoint(reference)) {\n return true;\n }\n }\n }\n return false;\n}\n/**\n * intersect3 method \\\n *\n * @returns { Intersection } intersect3 method .\\\n * @param {ConnectorModel} lineUtil1 - provide the lineUtil1 value.\n * @param { PointModel} lineUtil2 - provide the lineUtil2 value.\n * @private\n */\nexport function intersect3(lineUtil1, lineUtil2) {\n var point = { x: 0, y: 0 };\n var l1 = lineUtil1;\n var l2 = lineUtil2;\n var d = (l2.y2 - l2.y1) * (l1.x2 - l1.x1) - (l2.x2 - l2.x1) * (l1.y2 - l1.y1);\n var na = (l2.x2 - l2.x1) * (l1.y1 - l2.y1) - (l2.y2 - l2.y1) * (l1.x1 - l2.x1);\n var nb = (l1.x2 - l1.x1) * (l1.y1 - l2.y1) - (l1.y2 - l1.y1) * (l1.x1 - l2.x1);\n /*( EJ2-42102 - Connector segments not update properly ) by sivakumar sekar - condition added to avoid bridging for\n overlapping segments in the connectors and to validate whether the connector is intersecting over the other */\n if (d === 0 || ((lineUtil1.x1 === lineUtil2.x1 || lineUtil1.y1 === lineUtil2.y1) &&\n (lineUtil1.x2 === lineUtil2.x2 || lineUtil1.y2 === lineUtil2.y2) && ((na === 0 || nb === 0) && d > 0))) {\n return { enabled: false, intersectPt: point };\n }\n var ua = na / d;\n var ub = nb / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n point.x = l1.x1 + (ua * (l1.x2 - l1.x1));\n point.y = l1.y1 + (ua * (l1.y2 - l1.y1));\n return { enabled: true, intersectPt: point };\n }\n return { enabled: false, intersectPt: point };\n}\n/**\n * intersect2 method \\\n *\n * @returns { PointModel } intersect2 method .\\\n * @param {PointModel} start1 - provide the start1 value.\n * @param { PointModel} end1 - provide the end1 value.\n * @param { PointModel} start2 - provide the start2 value.\n * @param { PointModel} end2 - provide the end2 value.\n * @private\n */\nexport function intersect2(start1, end1, start2, end2) {\n var point = { x: 0, y: 0 };\n var lineUtil1 = getLineSegment(start1.x, start1.y, end1.x, end1.y);\n var lineUtil2 = getLineSegment(start2.x, start2.y, end2.x, end2.y);\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n return line3.intersectPt;\n }\n else {\n return point;\n }\n}\n/**\n * getLineSegment method \\\n *\n * @returns { Segment } getLineSegment method .\\\n * @param {number} x1 - provide the x1 value.\n * @param { number} y1 - provide the y1 value.\n * @param { number} x2 - provide the x2 value.\n * @param { number} y2 - provide the y2 value.\n * @private\n */\nexport function getLineSegment(x1, y1, x2, y2) {\n return { 'x1': Number(x1) || 0, 'y1': Number(y1) || 0, 'x2': Number(x2) || 0, 'y2': Number(y2) || 0 };\n}\n/**\n * getPoints method \\\n *\n * @returns { PointModel[] } getPoints method .\\\n * @param {number} element - provide the element value.\n * @param { number} corners - provide the corners value.\n * @param { number} padding - provide the padding value.\n * @private\n */\nexport function getPoints(element, corners, padding) {\n var line = [];\n padding = padding || 0;\n var left = { x: corners.topLeft.x - padding, y: corners.topLeft.y };\n var right = { x: corners.topRight.x + padding, y: corners.topRight.y };\n var top = { x: corners.bottomRight.x, y: corners.bottomRight.y - padding };\n var bottom = { x: corners.bottomLeft.x, y: corners.bottomLeft.y + padding };\n line.push(left);\n line.push(right);\n line.push(top);\n line.push(bottom);\n return line;\n}\n/**\n * getTooltipOffset method \\\n *\n * @returns { PointModel[] } getTooltipOffset method .\\\n * @param {number} diagram - provide the diagram value.\n * @param { number} mousePosition - provide the mousePosition value.\n * @param { NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { string} type - provide the type value.\n * @private\n */\nexport function getTooltipOffset(diagram, mousePosition, node, type) {\n //let offset: PointModel;\n var inheritTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.InheritTooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.InheritTooltip)\n : (node.constraints & PortConstraints.InheritTooltip);\n var objectTooltip = (node instanceof Node) ? (node.constraints & NodeConstraints.Tooltip)\n : (node instanceof Connector) ? (node.constraints & ConnectorConstraints.Tooltip)\n : (node.constraints & PortConstraints.ToolTip);\n var isMouseBased = ((!inheritTooltip && objectTooltip ? node.tooltip.relativeMode\n : diagram.tooltip.relativeMode) === 'Mouse') ? true : false;\n if (type === 'Mouse') {\n isMouseBased = true;\n }\n else if (type === 'Object') {\n isMouseBased = false;\n }\n var offset = tooltipOffset(node, mousePosition, diagram, isMouseBased);\n var rulerSize = getRulerSize(diagram);\n return { x: offset.x + rulerSize.width, y: offset.y + rulerSize.height };\n}\n/**\n * tooltipOffset method \\\n *\n * @returns { PointModel } tooltipOffset method .\\\n * @param {NodeModel | ConnectorModel | PointPortModel} node - provide the node value.\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { Diagram } diagram - provide the diagram value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @private\n */\nfunction tooltipOffset(node, mousePosition, diagram, isMouseBased) {\n var point = {};\n //let scale: number = diagram.scroller.transform.scale;\n var element = document.getElementById(diagram.element.id);\n var bounds;\n //EJ2-62120-Tooltip support for ports\n if (node instanceof Node || node instanceof Connector) {\n bounds = node.wrapper.bounds;\n }\n else {\n var objects = diagram.findObjectsUnderMouse(mousePosition);\n var obj = diagram.findObjectUnderMouse(objects, 'Select', false);\n var portElement = diagram.findElementUnderMouse(obj, mousePosition, diagram);\n bounds = portElement.bounds;\n }\n var rect = element.getBoundingClientRect();\n /* eslint-enable */\n //let horizontalOffset: number = diagram.scroller.horizontalOffset;\n //let verticalOffset: number = diagram.scroller.verticalOffset;\n switch (diagram.tooltipObject.position) {\n case 'BottomCenter':\n point = offsetPoint(mousePosition, bounds.bottomCenter, diagram, isMouseBased, (rect.width / 2), rect.height);\n break;\n case 'BottomLeft':\n case 'LeftBottom':\n point = offsetPoint(mousePosition, bounds.bottomLeft, diagram, isMouseBased, 0, rect.height);\n break;\n case 'BottomRight':\n case 'RightBottom':\n point = offsetPoint(mousePosition, bounds.bottomRight, diagram, isMouseBased, rect.width, rect.height);\n break;\n case 'LeftCenter':\n point = offsetPoint(mousePosition, bounds.middleLeft, diagram, isMouseBased, 0, (rect.height / 2));\n break;\n case 'LeftTop':\n case 'TopLeft':\n point = offsetPoint(mousePosition, bounds.topLeft, diagram, isMouseBased, 0, 0);\n break;\n case 'RightCenter':\n point = offsetPoint(mousePosition, bounds.middleRight, diagram, isMouseBased, rect.width, (rect.height / 2));\n break;\n case 'RightTop':\n case 'TopRight':\n point = offsetPoint(mousePosition, bounds.topRight, diagram, isMouseBased, rect.width, 0);\n break;\n case 'TopCenter':\n point = offsetPoint(mousePosition, bounds.topCenter, diagram, isMouseBased, (rect.width / 2), 0);\n break;\n }\n return point;\n}\n/**\n * offsetPoint method \\\n *\n * @returns { PointModel } offsetPoint method .\\\n * @param { PointModel} mousePosition - provide the mousePosition value.\n * @param { PointModel } bound - provide the diagram value.\n * @param { Diagram} diagram - provide the isMouseBased value.\n * @param { boolean} isMouseBased - provide the isMouseBased value.\n * @param { number} x - provide the isMouseBased value.\n * @param { number} y - provide the isMouseBased value.\n * @private\n */\nfunction offsetPoint(mousePosition, bound, diagram, isMouseBased, x, y) {\n var point = {};\n var scale = diagram.scroller.transform.scale;\n var horizontalOffset = diagram.scroller.horizontalOffset;\n var verticalOffset = diagram.scroller.verticalOffset;\n point.x = (isMouseBased ? mousePosition.x : bound.x) * scale + horizontalOffset - x;\n point.y = (isMouseBased ? mousePosition.y : bound.y) * scale + verticalOffset - y;\n return point;\n}\n/**\n * Gets the fixed user handles symbol \\\n *\n * @returns { DiagramElement } Gets the fixed user handles symbol .\\\n * @param {ConnectorFixedUserHandleModel | NodeFixedUserHandleModel} options - provide the options value.\n * @param { Canvas} fixedUserHandleContainer - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function initFixedUserHandlesSymbol(options, fixedUserHandleContainer) {\n //let fixedUserHandleContent: PathElement | DiagramNativeElement;\n var fixedUserHandleContent = new PathElement();\n fixedUserHandleContent.data = options.pathData;\n fixedUserHandleContent.height =\n options.height > 10 ? options.height - (options.padding.bottom + options.padding.top) : options.height;\n fixedUserHandleContent.width =\n options.width > 10 ? options.width - (options.padding.left + options.padding.right) : options.width;\n //Bug 912616: Not able to hide the fixedUserHandle in diagram\n fixedUserHandleContent.visible = options.visibility;\n fixedUserHandleContent.id = fixedUserHandleContainer.id + '_shape';\n fixedUserHandleContent.inversedAlignment = false;\n fixedUserHandleContent.horizontalAlignment = 'Center';\n fixedUserHandleContent.verticalAlignment = 'Center';\n fixedUserHandleContent.style = {\n fill: options.iconStrokeColor, strokeColor: options.iconStrokeColor,\n strokeWidth: options.iconStrokeWidth\n };\n fixedUserHandleContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n fixedUserHandleContent.relativeMode = 'Object';\n fixedUserHandleContent.description = fixedUserHandleContainer.description || '';\n return fixedUserHandleContent;\n}\n/**\n * sort method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } sort method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the options value.\n * @param { DistributeOptions} option - provide the fixedUserHandleContainer value.\n * @private\n */\nexport function sort(objects, option) {\n var i = 0;\n var j = 0;\n var temp;\n for (i = 0; i < objects.length; i++) {\n var b = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n for (j = i + 1; j < objects.length; j++) {\n var bounds = getBounds(objects[parseInt(j.toString(), 10)].wrapper);\n if (option === 'Top' || option === 'Bottom' || option === 'BottomToTop' || option === 'Middle') {\n if (b.center.y > bounds.center.y) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n if (b.center.x > bounds.center.x) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n return objects;\n}\n/**\n * getAnnotationPosition method \\\n *\n * @returns {SegmentInfo } getAnnotationPosition method .\\\n * @param {PointModel[]} pts - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @param { Rect } bound - provide the bound value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getAnnotationPosition(pts, annotation, bound) {\n //let angle: number;\n //let getloop: SegmentInfo;\n //let point: PointModel;\n var getloop = getOffsetOfConnector(pts, annotation);\n var angle = Point.findAngle(pts[getloop.index], pts[getloop.index + 1]);\n var alignednumber = getAlignedPosition(annotation);\n var point = Point.transform(getloop.point, angle + 45, alignednumber);\n getloop.point = point;\n getloop.angle = angle;\n return getloop;\n}\n/**\n * getPortsPosition method \\\n *\n * @returns {SegmentInfo } getPortsPosition method .\\\n * @param {PointModel[]} pts - provide the pts value.\n * @param { Port} ports - provide the ports value.\n * @param { Rect } bound - provide the bound value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function getPortsPosition(pts, ports, bound) {\n var getloop = getOffsetOfPorts(pts, ports);\n var angle = Point.findAngle(pts[getloop.index], pts[getloop.index + 1]);\n var alignednumber = getAlignedPositionForPorts(ports);\n var point = Point.transform(getloop.point, angle + 45, alignednumber);\n getloop.point = point;\n getloop.angle = angle;\n return getloop;\n}\n/**\n * getOffsetOfPorts method \\\n *\n * @returns {SegmentInfo } getOffsetOfPorts method .\\\n * @param {PointModel[]} points - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} ports - provide the ports value.\n * @private\n */\nexport function getOffsetOfPorts(points, ports) {\n // eslint-disable-next-line\n var distance = 0;\n var offset = ports.offset;\n var point;\n var angle;\n var pointDistance = [];\n var prevLength;\n var kCount;\n for (var j = 0; j < points.length - 1; j++) {\n distance += Point.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n pointDistance.push(distance);\n }\n var offsetLength = offset * distance;\n for (var k = 0; k < pointDistance.length; k++) {\n if (pointDistance[parseInt(k.toString(), 10)] >= offsetLength) {\n angle = Point.findAngle(points[parseInt(k.toString(), 10)], points[k + 1]);\n point = Point.transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0));\n kCount = k;\n return { point: point, index: kCount };\n }\n prevLength = pointDistance[parseInt(k.toString(), 10)];\n }\n return { point: point, index: kCount };\n}\n/**\n * getAlignedPosition method . To get the port alignment position \\\n *\n * @returns {number } getAlignedPosition method .\\\n * @param {PointModel[]} ports - provide the annotation value.\n * @private\n */\nexport function getAlignedPositionForPorts(ports) {\n var constant = 0;\n var state = 0;\n switch (ports.alignment) {\n case 'Center':\n state = 0;\n break;\n case 'Before':\n state = -((0) / 2 + constant);\n break;\n case 'After':\n state = ((0) / 2 + constant);\n break;\n }\n return state;\n}\n/**\n * getOffsetOfConnector method \\\n *\n * @returns {SegmentInfo } getOffsetOfConnector method .\\\n * @param {PointModel[]} points - provide the pts value.\n * @param { PathAnnotation | ConnectorFixedUserHandle} annotation - provide the annotation value.\n * @private\n */\nexport function getOffsetOfConnector(points, annotation) {\n // eslint-disable-next-line\n var length = 0;\n var offset = annotation.offset;\n var point;\n var angle;\n var lengths = [];\n var prevLength;\n var kCount;\n for (var j = 0; j < points.length - 1; j++) {\n length += Point.distancePoints(points[parseInt(j.toString(), 10)], points[j + 1]);\n lengths.push(length);\n }\n var offsetLength = offset * length;\n for (var k = 0; k < lengths.length; k++) {\n if (lengths[parseInt(k.toString(), 10)] >= offsetLength) {\n angle = Point.findAngle(points[parseInt(k.toString(), 10)], points[k + 1]);\n point = Point.transform(points[parseInt(k.toString(), 10)], angle, offsetLength - (prevLength || 0));\n kCount = k;\n return { point: point, index: kCount };\n }\n prevLength = lengths[parseInt(k.toString(), 10)];\n }\n return { point: point, index: kCount };\n}\n/**\n * getAlignedPosition method \\\n *\n * @returns {number } getAlignedPosition method .\\\n * @param {PointModel[]} annotation - provide the annotation value.\n * @private\n */\nexport function getAlignedPosition(annotation) {\n var cnst;\n if ((annotation instanceof ConnectorFixedUserHandle)) {\n cnst = 0;\n }\n else {\n cnst = annotation.content === undefined ? 10 : 0;\n }\n var state = 0;\n switch (annotation.alignment) {\n case 'Center':\n state = 0;\n break;\n case 'Before':\n state = -((0) / 2 + cnst);\n break;\n case 'After':\n state = ((0) / 2 + cnst);\n break;\n }\n return state;\n}\n/**\n * alignLabelOnSegments method \\\n *\n * @returns {Alignment } alignLabelOnSegments method .\\\n * @param {PathAnnotation | ConnectorFixedUserHandle} obj - provide the obj value.\n * @param { number } ang - provide the ang value.\n * @param { PointModel[] } pts - provide the pts value.\n * @private\n */\nexport function alignLabelOnSegments(obj, ang, pts) {\n //let angle: number = ang % 360;\n ang %= 360;\n var fourty5 = 45;\n var one35 = 135;\n var two25 = 225;\n var three15 = 315;\n var vAlign;\n var hAlign;\n switch (obj.alignment) {\n case 'Before':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'bottom';\n hAlign = (obj.offset === 0.5) ? 'center' : 'left';\n }\n break;\n case 'After':\n if (ang >= fourty5 && ang <= one35) {\n hAlign = 'left';\n vAlign = obj.offset === 0.5 ? 'center' : 'top';\n }\n else if (ang >= two25 && ang <= three15) {\n hAlign = 'right';\n vAlign = obj.offset === 0.5 ? 'center' : 'bottom';\n }\n else if (ang > fourty5 && ang < two25) {\n vAlign = 'bottom';\n hAlign = obj.offset === 0.5 ? 'center' : 'right';\n }\n else {\n vAlign = 'top';\n hAlign = obj.offset === 0.5 ? 'center' : 'left';\n }\n break;\n case 'Center':\n hAlign = !isNullOrUndefined(obj.horizontalAlignment) ? obj.horizontalAlignment.toLowerCase() : 'center';\n vAlign = !isNullOrUndefined(obj.verticalAlignment) ? obj.verticalAlignment.toLowerCase() : 'center';\n break;\n }\n if (obj.offset === 0 || obj.offset === 1) {\n //let direction: string;\n var direction = getBezierDirection(pts[0], pts[1]);\n switch (direction) {\n case 'left':\n hAlign = obj.offset === 0 ? 'right' : 'left';\n break;\n case 'right':\n hAlign = obj.offset === 0 ? 'left' : 'right';\n break;\n case 'bottom':\n vAlign = obj.offset === 0 ? 'top' : 'bottom';\n break;\n case 'top':\n vAlign = obj.offset === 0 ? 'bottom' : 'top';\n break;\n }\n }\n return { hAlign: hAlign, vAlign: vAlign };\n}\n/**\n * getBezierDirection method \\\n *\n * @returns {string } getBezierDirection method .\\\n * @param {PointModel} src - provide the src value.\n * @param { PointModel } tar - provide the tar value.\n * @private\n */\nexport function getBezierDirection(src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'right' : 'left';\n }\n else {\n return src.y < tar.y ? 'bottom' : 'top';\n }\n}\n/**\n * removeChildNodes method \\\n *\n * @returns {void } removeChildNodes method .\\\n * @param {NodeModel} node - provide the node value.\n * @param { Diagram } diagram - provide the diagram value.\n * @private\n */\nexport function removeChildNodes(node, diagram) {\n if (node instanceof Node && node.children) {\n for (var i = 0; i < node.children.length; i++) {\n if (diagram.nameTable[node.children[parseInt(i.toString(), 10)]].children) {\n removeChildNodes(node, diagram);\n }\n diagram.removeFromAQuad(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n diagram.removeObjectsFromLayer(diagram.nameTable[node.children[parseInt(i.toString(), 10)]]);\n delete diagram.nameTable[node.children[parseInt(i.toString(), 10)]];\n }\n }\n}\n/**\n * getChild method \\\n *\n * @returns {string[] } getChild method .\\\n * @param {Canvas} child - provide the child value.\n * @param { string[] } children - provide the children value.\n * @private\n */\nexport function getChild(child, children) {\n if (child && child.children && child.children.length > 0) {\n for (var j = 0; j < child.children.length; j++) {\n var subChild = child.children[parseInt(j.toString(), 10)];\n if (subChild instanceof Canvas) {\n getChild(subChild, children);\n }\n }\n }\n if (children.indexOf(child.id) === -1) {\n children.push(child.id);\n }\n return children;\n}\n/**\n * getSwimLaneChildren method \\\n *\n * @returns {string[] } getSwimLaneChildren method .\\\n * @param {NodeModel[]} nodes - provide the nodes value.\n * @private\n */\nfunction getSwimLaneChildren(nodes) {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n }\n }\n return children;\n}\n/**\n * removeUnnecessaryNodes method \\\n *\n * @returns {void } removeUnnecessaryNodes method .\\\n * @param {string[]} children - provide the children value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nfunction removeUnnecessaryNodes(children, diagram) {\n var nodes = diagram.nodes;\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (children.indexOf(nodes[parseInt(i.toString(), 10)].id) !== -1) {\n nodes.splice(i, 1);\n i--;\n }\n }\n }\n}\n/**\n * serialize method \\\n *\n * @returns {string } serialize method .\\\n * @param {Diagram} model - provide the model value.\n * @private\n */\nexport function serialize(model) {\n var removeNodes = getSwimLaneChildren(model.nodes);\n var clonedObject = cloneObject(model, model.getCustomProperty);\n clonedObject.selectedItems.nodes = [];\n clonedObject.selectedItems.connectors = [];\n clonedObject.selectedItems.wrapper = null;\n if (model.serializationSettings.preventDefaults) {\n clonedObject = preventDefaults(clonedObject, model);\n }\n removeUnnecessaryNodes(removeNodes, clonedObject);\n return JSON.stringify(clonedObject);\n}\n/**\n * preventDefaults method \\\n *\n * @returns {string } preventDefaults method .\\\n * @param {Object} clonedObject - provide the clonedObject value.\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {boolean} isNodeShape - provide the isNodeShape value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventDefaults(clonedObject, model, defaultObject, isNodeShape) {\n defaultObject = getConstructor(model, defaultObject);\n var properties = [];\n properties = properties.concat(Object.keys(clonedObject));\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (model instanceof Node) {\n isNodeShape = (property === 'shape') ? true : false;\n }\n if (clonedObject[\"\" + property] instanceof Array) {\n preventArrayDefaults(clonedObject, defaultObject, model, property);\n }\n else if ((clonedObject[\"\" + property] instanceof Object) && defaultObject && defaultObject[\"\" + property]) {\n if (property !== 'wrapper') {\n clonedObject[\"\" + property] = preventDefaults(clonedObject[\"\" + property], model[\"\" + property], defaultObject[\"\" + property], isNodeShape);\n }\n }\n else if ((defaultObject && clonedObject[\"\" + property] === defaultObject[\"\" + property]) || clonedObject[\"\" + property] === undefined) {\n if (!(isNodeShape && property === 'type') && !(model instanceof SwimLane && property === 'orientation')) {\n delete clonedObject[\"\" + property];\n }\n }\n if (JSON.stringify(clonedObject[\"\" + property]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property]) === '{}' ||\n clonedObject[\"\" + property] === undefined) {\n delete clonedObject[\"\" + property];\n }\n }\n defaultObject = undefined;\n properties = undefined;\n return clonedObject;\n}\n/**\n * preventArrayDefaults method \\\n *\n * @returns {void } preventArrayDefaults method .\\\n * @param {object} clonedObject - provide the clonedObject value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @param {object} model - provide the model value.\n * @param {string} property - provide the property value.\n * @private\n */\n// eslint-disable-next-line\nfunction preventArrayDefaults(clonedObject, defaultObject, model, property) {\n if (clonedObject[\"\" + property].length === 0) {\n delete clonedObject[\"\" + property];\n // eslint-disable-next-line\n }\n else if (clonedObject[property].every(function (element) { return typeof element === 'number'; })) {\n var i = void 0;\n var isSameArray = true;\n for (i = 0; i < clonedObject[\"\" + property].length; i++) {\n if (isSameArray && clonedObject[\"\" + property][parseInt(i.toString(), 10)] === defaultObject[\"\" + property][parseInt(i.toString(), 10)]) {\n isSameArray = true;\n }\n else {\n isSameArray = false;\n }\n }\n if (isSameArray) {\n delete clonedObject[\"\" + property];\n }\n }\n else {\n var i = void 0;\n // Bug 826717: Unable to select swimlane child nodes after serializing the diagram when we enable preventDefault property.\n // Removed the codition to delete the layers from clonedObject.\n if (clonedObject[\"\" + property] && property !== 'layers') {\n for (i = clonedObject[\"\" + property].length - 1; i >= 0; i--) {\n if (property === 'nodes' || property === 'connectors') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)].wrapper = null;\n }\n if (property !== 'dataManager') {\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] = preventDefaults(clonedObject[\"\" + property][parseInt(i.toString(), 10)], model[\"\" + property][parseInt(i.toString(), 10)], (defaultObject[\"\" + property] !== undefined ? defaultObject[\"\" + property][parseInt(i.toString(), 10)] : []));\n if (JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '[]' ||\n JSON.stringify(clonedObject[\"\" + property][parseInt(i.toString(), 10)]) === '{}' ||\n clonedObject[\"\" + property][parseInt(i.toString(), 10)] === undefined) {\n clonedObject[\"\" + property].splice(i, 1);\n }\n }\n }\n }\n }\n clonedObject = undefined;\n}\n/* eslint-disable */\n/**\n * getConstructor method \\\n *\n * @returns {object } getConstructor method .\\\n * @param {object} model - provide the model value.\n * @param {object} defaultObject - provide the defaultObject value.\n * @private\n */\n/* tslint:disable */\nfunction getConstructor(model, defaultObject) {\n var obj = [];\n var constructor;\n var getClassName = 'getClassName';\n if (model[getClassName]) {\n //EJ2-59327 - Memory leak occurs in saveDiagram method \n var parent_1 = new Diagram();\n switch (model[getClassName]()) {\n case 'Diagram':\n constructor = parent_1;\n break;\n case 'Node':\n constructor = new Node(parent_1, '', obj);\n break;\n case 'Path':\n constructor = new Path(parent_1, '', obj);\n break;\n case 'Native':\n constructor = new Native(parent_1, '', obj);\n break;\n case 'Html':\n constructor = new Html(parent_1, '', obj);\n break;\n case 'Image':\n constructor = new Image(parent_1, '', obj);\n break;\n case 'Text':\n constructor = new Text(parent_1, '', obj);\n break;\n case 'BasicShape':\n constructor = new BasicShape(parent_1, '', obj);\n break;\n case 'FlowShape':\n constructor = new FlowShape(parent_1, '', obj);\n break;\n case 'BpmnShape':\n constructor = new BpmnShape(parent_1, '', obj);\n break;\n case 'UmlActivityShape':\n constructor = new UmlActivityShape(parent_1, '', obj);\n break;\n case 'UmlClassifierShape':\n constructor = new UmlClassifierShape(parent_1, '', obj);\n break;\n case 'SwimLane':\n constructor = new SwimLane(parent_1, '', obj);\n if (model.header) {\n constructor.header = new Header(parent_1, '', obj);\n constructor.header.style.fill = '';\n }\n break;\n case 'ShapeAnnotation':\n constructor = new ShapeAnnotation(parent_1, '', obj);\n break;\n case 'PointPort':\n constructor = new PointPort(parent_1, '', obj);\n break;\n case 'BpmnGateway':\n constructor = new BpmnGateway(parent_1, '', obj);\n break;\n case 'BpmnDataObject':\n constructor = new BpmnDataObject(parent_1, '', obj);\n break;\n case 'BpmnEvent':\n constructor = new BpmnEvent(parent_1, '', obj);\n break;\n case 'BpmnSubEvent':\n constructor = new BpmnSubEvent(parent_1, '', obj);\n break;\n case 'BpmnActivity':\n constructor = new BpmnActivity(parent_1, '', obj);\n break;\n case 'BpmnAnnotation':\n constructor = new BpmnAnnotation(parent_1, '', obj);\n break;\n case 'MethodArguments':\n constructor = new MethodArguments(parent_1, '', obj);\n break;\n case 'UmlClassAttribute':\n constructor = new UmlClassAttribute(parent_1, '', obj);\n break;\n case 'UmlClassMethod':\n constructor = new UmlClassMethod(parent_1, '', obj);\n break;\n case 'UmlClass':\n constructor = new UmlClass(parent_1, '', obj);\n break;\n case 'UmlInterface':\n constructor = new UmlInterface(parent_1, '', obj);\n break;\n case 'UmlEnumerationMember':\n constructor = new UmlEnumerationMember(parent_1, '', obj);\n break;\n case 'UmlEnumeration':\n constructor = new UmlEnumeration(parent_1, '', obj);\n break;\n case 'Lane':\n constructor = new Lane(parent_1, '', obj);\n break;\n case 'Phase':\n constructor = new Phase(parent_1, '', obj);\n break;\n case 'ChildContainer':\n constructor = new ChildContainer();\n break;\n case 'Connector':\n constructor = new Connector(parent_1, '', obj);\n break;\n case 'StraightSegment':\n constructor = new StraightSegment(parent_1, '', obj);\n break;\n case 'BezierSegment':\n constructor = new BezierSegment(parent_1, '', obj);\n break;\n case 'OrthogonalSegment':\n constructor = new OrthogonalSegment(parent_1, '', obj);\n break;\n case 'PathAnnotation':\n constructor = new PathAnnotation(parent_1, '', obj);\n break;\n case 'Stop':\n constructor = new Stop(parent_1, '', obj);\n break;\n case 'Point':\n if (!defaultObject) {\n constructor = new Point(parent_1, '', obj);\n }\n else {\n constructor = defaultObject;\n }\n break;\n case 'UserHandle':\n constructor = new UserHandle(parent_1, '', obj);\n break;\n case 'Command':\n constructor = new Command(parent_1, '', obj);\n break;\n }\n }\n else {\n constructor = defaultObject;\n }\n parent = undefined;\n defaultObject = undefined;\n return constructor;\n}\n/* eslint-enable */\n/* eslint-disable */\n/** @private */\nexport function deserialize(model, diagram) {\n diagram.enableServerDataBinding(false);\n var blazorAction = diagram.blazorActions;\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.clear();\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n diagram.protectPropertyChange(true);\n var map = diagram.dataSourceSettings.doBinding;\n var nodeTemp = diagram.setNodeTemplate;\n var getDescription = diagram.getDescription;\n var getCustomProperty = diagram.getCustomProperty;\n var commands = {};\n for (var _i = 0, _a = diagram.commandManager.commands; _i < _a.length; _i++) {\n var command = _a[_i];\n commands[command.name] = { execute: command.execute, canExecute: command.canExecute };\n }\n var arrangeTickHorizontal = diagram.rulerSettings.horizontalRuler.arrangeTick;\n var arrangeTickVertical = diagram.rulerSettings.verticalRuler.arrangeTick;\n var getLayoutInfo = diagram.layout.getLayoutInfo;\n var getBranch = diagram.layout.getBranch;\n var nodeDefaults = diagram.getNodeDefaults;\n var connectorDefaults = diagram.getConnectorDefaults;\n var dataObj;\n if (!(model instanceof Object)) {\n dataObj = JSON.parse(model);\n }\n else {\n dataObj = model;\n }\n dataObj = upgrade(dataObj);\n diagram.contextMenuSettings = dataObj.contextMenuSettings || {};\n diagram.constraints = dataObj.constraints || DiagramConstraints.Default;\n diagram.tool = dataObj.tool || DiagramTools.Default;\n diagram.bridgeDirection = dataObj.bridgeDirection || 'Top';\n diagram.pageSettings = dataObj.pageSettings || {};\n diagram.drawingObject = dataObj.drawingObject || undefined;\n diagram.tooltip = dataObj.tooltip || {};\n diagram.addInfo = dataObj.addInfo || undefined;\n diagram.getDescription = getDescription;\n diagram.scrollSettings = dataObj.scrollSettings || {};\n diagram.commandManager = dataObj.commandManager || {};\n /**\n * EJ2-62846-Exception occurs after save and load when layers are undefined.\n */\n if (dataObj.layers && dataObj.layers.length > 0) {\n sortLayerObjects(dataObj);\n }\n diagram.layers = dataObj.layers || [];\n diagram.rulerSettings.horizontalRuler.arrangeTick = arrangeTickHorizontal;\n diagram.rulerSettings.verticalRuler.arrangeTick = arrangeTickVertical;\n for (var _b = 0, _c = diagram.commandManager.commands; _b < _c.length; _b++) {\n var cmd = _c[_b];\n if (commands[cmd.name]) {\n cmd.execute = commands[cmd.name].execute;\n cmd.canExecute = commands[cmd.name].canExecute;\n }\n }\n diagram.backgroundColor = dataObj.backgroundColor || 'transparent';\n diagram.basicElements = dataObj.basicElements || [];\n // EJ2-66465 - Added below code to empty the segment collection if connector type is bezier\n if (dataObj.connectors) {\n for (var i = 0; i < dataObj.connectors.length; i++) {\n // EJ2-69816 - Added below code to empty the segment collection if connector type is bezier and allowSegmentsReset is true\n if (dataObj.connectors[i].type === 'Bezier' && dataObj.connectors[i].segments.length > 0 && dataObj.connectors[i].bezierSettings && dataObj.connectors[i].bezierSettings.allowSegmentsReset) {\n dataObj.connectors[i].segments = [];\n }\n }\n }\n diagram.connectors = dataObj.connectors || [];\n diagram.dataSourceSettings = dataObj.dataSourceSettings || {};\n diagram.dataSourceSettings.doBinding = map;\n diagram.height = dataObj.height || '100%';\n diagram.setNodeTemplate = nodeTemp;\n diagram.getConnectorDefaults = connectorDefaults;\n diagram.getNodeDefaults = nodeDefaults;\n diagram.getCustomProperty = getCustomProperty;\n diagram.mode = dataObj.mode || 'SVG';\n if (dataObj.nodes) {\n for (var i = 0; i < dataObj.nodes.length; i++) {\n if (dataObj.nodes[i].shape && dataObj.nodes[i].shape.type === 'SwimLane') {\n if (dataObj.nodes[i].wrapper == null) {\n {\n dataObj.nodes[i].wrapper = {\n actualSize: { width: dataObj.nodes[i].width, height: dataObj.nodes[i].height },\n offsetX: dataObj.nodes[i].offsetX, offsetY: dataObj.nodes[i].offsetY\n };\n }\n }\n pasteSwimLane(dataObj.nodes[i], undefined, undefined, undefined, undefined, true);\n }\n }\n }\n diagram.nodes = dataObj.nodes || [];\n diagram.rulerSettings = dataObj.rulerSettings || {};\n diagram.snapSettings = dataObj.snapSettings || {};\n diagram.width = dataObj.width || '100%';\n diagram.layout = dataObj.layout || {};\n if (dataObj.layout && dataObj.layout.type !== \"None\") {\n diagram.canLayout = false;\n }\n diagram.layout.getLayoutInfo = getFunction(getLayoutInfo);\n diagram.layout.getBranch = getFunction(getBranch);\n diagram.diagramActions = 0;\n diagram.isLoading = true;\n diagram.protectPropertyChange(false);\n var key = 'refresh';\n var component;\n for (var i = 0; i < diagram.views.length; i++) {\n component = diagram.views[diagram.views[i]];\n diagram.blazorActions = diagram.addConstraints(blazorAction, BlazorAction.ClearObject);\n component.refresh();\n // Bug 849892: The Overview does not update properly When loading the diagram with the loadDiagram API.\n // For this -> EJ2-69580 issue the overview refresh got prevented which leads to this Bug 849892, so added below condition to reset \n // the overview.\n if (component instanceof Overview) {\n component.onPropertyChanged({ sourceID: component.sourceID }, {});\n }\n diagram.blazorActions = diagram.removeConstraints(blazorAction, BlazorAction.ClearObject);\n if (component instanceof Diagram) {\n diagram.element.classList.add('e-diagram');\n }\n }\n //881117 - Event to notify after diagram elements are loaded.  \n var args = { name: 'loaded', diagram: diagram };\n diagram.triggerEvent(DiagramEvent.loaded, args);\n if (dataObj.selectedItems) {\n dataObj.selectedItems.nodes = [];\n dataObj.selectedItems.connectors = [];\n //EJ2-61674 Exception occurs when we move the node after save and load\n dataObj.selectedItems.selectedObjects = [];\n }\n diagram.selectedItems = dataObj.selectedItems;\n diagram.enableServerDataBinding(true);\n diagram.canLayout = true;\n diagram.swimlaneChildTable = {};\n diagram.swimlaneZIndexTable = {};\n return dataObj;\n}\n/**\n * EJ2-61537 - Connectors not connected to the node after save and load\n * when we add nodes and connectors at runtime.\n * */\n/**\n* Sort the nodes and connectors in the layers.\n*\n* @param {Diagram} dataObj - provide the model value.\n* @private\n* */\nfunction sortLayerObjects(dataObj) {\n var i, j, k;\n var layers = [];\n for (i = 0; i < dataObj.layers.length; i++) {\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.nodes) {\n for (k = 0; k < dataObj.nodes.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.nodes[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n for (j = 0; j < dataObj.layers[i].objects.length; j++) {\n if (dataObj.connectors) {\n for (k = 0; k < dataObj.connectors.length; k++) {\n if (dataObj.layers[i].objects[j] === dataObj.connectors[k].id) {\n layers.push(dataObj.layers[i].objects[j]);\n }\n }\n }\n }\n dataObj.layers[i].objects = layers;\n layers = [];\n }\n}\n/* eslint-enable */\n/**\n * upgrade method \\\n *\n * @returns {Diagram } upgrade method .\\\n * @param {Diagram} dataObj - provide the model value.\n * @private\n */\nexport function upgrade(dataObj) {\n if (dataObj && (dataObj.version === undefined || (dataObj.version < 17.1)) && dataObj.nodes) {\n var nodes = dataObj.nodes;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node && node.ports && node.ports.length > 0) {\n for (var _a = 0, _b = node.ports; _a < _b.length; _a++) {\n var port = _b[_a];\n if (port && port.constraints && port.constraints === PortConstraints.None) {\n port.constraints = PortConstraints.Default;\n }\n }\n }\n }\n }\n return dataObj;\n}\n/**\n * updateStyle method \\\n *\n * @returns {void } updateStyle method .\\\n * @param {TextStyleModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @private\n */\nexport function updateStyle(changedObject, target) {\n //since text style model is the super set of shape style model, we used text style model\n var style = target.style;\n var textElement = target;\n target.canApplyStyle = true;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'fill':\n style.fill = changedObject.fill;\n if (style instanceof StrokeStyle) {\n /* tslint:disable:no-string-literal */\n style['fill'] = 'transparent';\n }\n break;\n case 'textOverflow':\n style.textOverflow = changedObject.textOverflow;\n break;\n case 'opacity':\n style.opacity = changedObject.opacity;\n break;\n case 'strokeColor':\n style.strokeColor = changedObject.strokeColor;\n break;\n case 'strokeDashArray':\n style.strokeDashArray = changedObject.strokeDashArray;\n break;\n case 'strokeWidth':\n style.strokeWidth = changedObject.strokeWidth;\n break;\n case 'bold':\n style.bold = changedObject.bold;\n break;\n case 'color':\n style.color = changedObject.color;\n break;\n case 'textWrapping':\n style.textWrapping = changedObject.textWrapping;\n break;\n case 'fontFamily':\n style.fontFamily = changedObject.fontFamily;\n break;\n case 'fontSize':\n style.fontSize = changedObject.fontSize;\n break;\n case 'italic':\n style.italic = changedObject.italic;\n break;\n case 'textAlign':\n style.textAlign = changedObject.textAlign;\n break;\n case 'whiteSpace':\n style.whiteSpace = changedObject.whiteSpace;\n break;\n case 'textDecoration':\n style.textDecoration = changedObject.textDecoration;\n break;\n case 'gradient':\n if (style.gradient) {\n updateGradient(changedObject.gradient, style.gradient);\n break;\n }\n }\n }\n if (target instanceof TextElement) {\n textElement.refreshTextElement();\n }\n}\n/**\n * updateGradient method \\\n *\n * @returns {void } updateGradient method .\\\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} changedGradient - provide the changedGradient value.\n * @param {GradientModel | LinearGradientModel | RadialGradientModel} targetGradient - provide the targetGradient value.\n * @private\n */\nfunction updateGradient(changedGradient, targetGradient) {\n for (var _i = 0, _a = Object.keys(changedGradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n targetGradient.type = changedGradient.type;\n break;\n case 'x1':\n targetGradient.x1 = changedGradient.x1;\n break;\n case 'x2':\n targetGradient.x2 = changedGradient.x2;\n break;\n case 'y1':\n targetGradient.y1 = changedGradient.y1;\n break;\n case 'y2':\n targetGradient.y2 = changedGradient.y2;\n break;\n case 'cx':\n targetGradient.cx = changedGradient.cx;\n break;\n case 'cy':\n targetGradient.cy = changedGradient.cy;\n break;\n case 'fx':\n targetGradient.fx = changedGradient.fx;\n break;\n case 'fy':\n targetGradient.fy = changedGradient.fy;\n break;\n case 'r':\n targetGradient.r = changedGradient.r;\n break;\n case 'stops':\n targetGradient.stops = changedGradient.stops;\n break;\n }\n }\n}\n/* eslint-disable */\n/**\n * updateHyperlink method \\\n *\n * @returns {void } updateHyperlink method .\\\n * @param {HyperlinkModel} changedObject - provide the changedObject value.\n * @param {DiagramElement} target - provide the target value.\n * @param {AnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @private\n */\nexport function updateHyperlink(changedObject, target, actualAnnotation) {\n var textElement = target;\n var hyperlink = textElement.hyperlink;\n for (var _i = 0, _a = Object.keys(changedObject); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'color':\n textElement.style.color = hyperlink.color = changedObject.color;\n break;\n case 'content':\n textElement.content = hyperlink.content = changedObject.content || hyperlink.link;\n break;\n case 'link':\n var labelStyle = actualAnnotation.style;\n textElement.style.color = changedObject.link ? hyperlink.color : labelStyle.color;\n textElement.style.textDecoration = changedObject.link ? hyperlink.textDecoration : actualAnnotation.style.textDecoration;\n textElement.content = changedObject.link ? hyperlink.content || changedObject.link : actualAnnotation.content;\n hyperlink.link = changedObject.link;\n break;\n case 'textDecoration':\n textElement.style.textDecoration = hyperlink.textDecoration = changedObject.textDecoration;\n break;\n case 'hyperlinkOpenState':\n hyperlink.hyperlinkOpenState = changedObject.hyperlinkOpenState;\n break;\n }\n }\n}\n/* eslint-enable */\n/**\n * updateShapeContent method \\\n *\n * @returns {void } updateShapeContent method .\\\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShapeContent(content, actualObject, diagram) {\n content.width = actualObject.width;\n content.height = actualObject.height;\n content.minHeight = actualObject.minHeight;\n content.maxHeight = actualObject.maxHeight;\n content.minWidth = actualObject.minWidth;\n content.maxWidth = actualObject.maxWidth;\n content.horizontalAlignment = actualObject.wrapper.children[0].horizontalAlignment;\n content.verticalAlignment = actualObject.wrapper.children[0].verticalAlignment;\n content.relativeMode = actualObject.wrapper.children[0].relativeMode;\n content.visible = actualObject.wrapper.children[0].visible;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.id = actualObject.wrapper.children[0].id;\n content.style = actualObject.style;\n //let view: View;\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(0, 1);\n actualObject.wrapper.children.splice(0, 0, content);\n}\n/* eslint-disable */\n/**\n * updateShape method \\\n *\n * @returns {void } updateShape method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Node} oldObject - provide the oldObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function updateShape(node, actualObject, oldObject, diagram) {\n var content = new DiagramElement();\n var i;\n //let textStyle: TextStyleModel; let nodeStyle: TextStyleModel;\n switch (node.shape.type) {\n case 'Path':\n var pathContent = new PathElement();\n pathContent.data = actualObject.shape.data;\n content = pathContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = actualObject.shape.source;\n imageContent.imageAlign = actualObject.shape.align;\n imageContent.imageScale = actualObject.shape.scale;\n content = imageContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Text':\n //issue\n var textContent = new TextElement();\n // (textContent as TextElement).content = (node.shape as TextModel).content;\n content = textContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Basic':\n var element = (actualObject.shape.shape === 'Rectangle') ? new DiagramElement() : new PathElement();\n if ((!isBlazor() && actualObject.shape.shape === 'Polygon')) {\n element.data = getPolygonPath(actualObject.shape.points);\n }\n else {\n element.data = getBasicShape(actualObject.shape.shape);\n }\n if ((!isBlazor() && actualObject.shape.shape === 'Rectangle')) {\n element.cornerRadius = actualObject.shape.cornerRadius;\n }\n //EJ2-70880 - Node disappeared after changing shape and type dynamically.\n content = element;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Flow':\n /* eslint-disable */\n var flowShapeElement = new PathElement();\n var shape = actualObject.shape.shape;\n flowShapeElement.data = getFlowShape(shape);\n content = flowShapeElement;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(node.id, diagram.element.id);\n nativeContent.content = actualObject.shape.content;\n nativeContent.scale = actualObject.shape.scale;\n content = nativeContent;\n updateShapeContent(content, actualObject, diagram);\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(actualObject.id, diagram.element.id);\n htmlContent.content = actualObject.shape.content;\n content = htmlContent;\n updateShapeContent(content, actualObject, diagram);\n }\n if (node.shape.type === undefined || node.shape.type === oldObject.shape.type) {\n updateContent(node, actualObject, diagram, oldObject);\n }\n else {\n content.width = actualObject.wrapper.children[0].width;\n content.height = actualObject.wrapper.children[0].height;\n if (actualObject.shape instanceof Text) {\n content.margin = actualObject.shape.margin;\n }\n content.style = actualObject.style;\n actualObject.wrapper.children[0] = content;\n }\n}\n/* eslint-enable */\n/**\n * updateContent method \\\n *\n * @returns {void } updateContent method .\\\n * @param {Node} newValues - provide the newValues value.\n * @param {Node} actualObject - provide the actualObject value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Node} oldObject - provide the oldObject value.\n * @private\n */\nexport function updateContent(newValues, actualObject, diagram, oldObject) {\n if (Object.keys(newValues.shape).length > 0) {\n if (actualObject.shape.type === 'Path' && newValues.shape.data !== undefined) {\n actualObject.wrapper.children[0].data = newValues.shape.data;\n }\n else if (actualObject.shape.type === 'Text' && newValues.shape.content !== undefined) {\n actualObject.wrapper.children[0].content = newValues.shape.content;\n }\n else if (actualObject.shape.type === 'Image' && newValues.shape.source !== undefined) {\n actualObject.wrapper.children[0].source = newValues.shape.source;\n }\n else if (actualObject.shape.type === 'Native') {\n var nativeElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n nativeElement = getDiagramElement(actualObject.wrapper.children[0].id + '_native_element', diagram.views[parseInt(i.toString(), 10)]);\n if (newValues.shape.content !== undefined && nativeElement) {\n nativeElement.removeChild(nativeElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n nativeElement.appendChild(getContent(actualObject.wrapper.children[0], false));\n }\n }\n actualObject.wrapper.children[0].scale = newValues.shape.scale ?\n newValues.shape.scale : actualObject.wrapper.children[0].scale;\n }\n else if (actualObject.shape.type === 'HTML') {\n var htmlElement = void 0;\n for (var i = 0; i < diagram.views.length; i++) {\n htmlElement = getDiagramElement(actualObject.wrapper.children[0].id + '_html_element', diagram.views[parseInt(i.toString(), 10)]);\n if (htmlElement) {\n htmlElement.removeChild(htmlElement.children[0]);\n actualObject.wrapper.children[0].content = newValues.shape.content;\n htmlElement.appendChild(getContent(actualObject.wrapper.children[0], true));\n }\n }\n }\n else if (actualObject.shape.type === 'Flow' && (newValues.shape.shape !== undefined)) {\n actualObject.shape.shape = newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var flowshapedata = getFlowShape(shapes.toString());\n actualObject.wrapper.children[0].data = flowshapedata;\n }\n else if (actualObject.shape.type === 'UmlActivity' &&\n (!isBlazor() && newValues.shape.shape !== undefined)) {\n updateUmlActivityNode(actualObject, newValues);\n }\n else if (newValues.shape.cornerRadius !== undefined) {\n actualObject.wrapper.children[0].cornerRadius = newValues.shape.cornerRadius;\n }\n else if (actualObject.shape.type === 'Basic' && (oldObject && oldObject.shape.shape === 'Rectangle')) {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape(actualObject.shape.shape);\n basicshape.data = basicshapedata;\n var content = basicshape;\n updateShapeContent(content, actualObject, diagram);\n }\n else if (newValues.shape.shape !== undefined) {\n actualObject.shape.shape = newValues.shape.shape;\n var shapes = actualObject.shape.shape;\n var basicShapeData = getBasicShape(shapes.toString());\n actualObject.wrapper.children[0].data = basicShapeData;\n }\n }\n actualObject.wrapper.children[0].canMeasurePath = true;\n}\n/**\n * updateUmlActivityNode method \\\n *\n * @returns {void } updateUmlActivityNode method .\\\n * @param {Node} actualObject - provide the newValues value.\n * @param {Node} newValues - provide the actualObject value.\n * @private\n */\nexport function updateUmlActivityNode(actualObject, newValues) {\n if (!isBlazor()) {\n actualObject.shape.shape = newValues.shape.shape;\n }\n else {\n actualObject.shape.umlActivityShape = newValues.shape.umlActivityShape;\n }\n var shapes = !isBlazor() ? actualObject.shape.shape :\n actualObject.shape.umlActivityShape;\n var umlActivityShapeData = getUMLActivityShape(shapes.toString());\n if ((!isBlazor() && actualObject.shape.shape === 'InitialNode')) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && (actualObject.shape.shape === 'ForkNode' ||\n actualObject.shape.shape === 'JoinNode'))) {\n actualObject.wrapper.children[0].style.fill = 'black';\n }\n else if ((!isBlazor() && actualObject.shape.shape === 'FinalNode')) {\n if (actualObject instanceof Node) {\n actualObject.wrapper = getUMLFinalNode(actualObject);\n }\n }\n if (umlActivityShapeData) {\n actualObject.wrapper.children[0].data = umlActivityShapeData;\n }\n}\n/**\n * getUMLFinalNode method \\\n *\n * @returns {Canvas } getUMLFinalNode method .\\\n * @param {Node} node - provide the newValues value.\n * @private\n */\nexport function getUMLFinalNode(node) {\n var finalNodeShape = new Canvas();\n finalNodeShape.style.fill = 'transparent';\n //childNode0\n var pathData = 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25' +\n ' C 50 38.79 38.78 50 25 50';\n var innerFinalNode = new PathElement();\n innerFinalNode.data = pathData;\n innerFinalNode.id = node.id + '_0_finalNode';\n innerFinalNode.horizontalAlignment = 'Center';\n innerFinalNode.verticalAlignment = 'Center';\n innerFinalNode.relativeMode = 'Object';\n innerFinalNode.style.strokeColor = node.style.strokeColor;\n innerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //childNode1\n var outerFinalNode = new PathElement();\n outerFinalNode.data = pathData;\n outerFinalNode.id = node.id + '_1_finalNode';\n outerFinalNode.horizontalAlignment = 'Center';\n outerFinalNode.verticalAlignment = 'Center';\n outerFinalNode.relativeMode = 'Object';\n outerFinalNode.style.fill = node.style.fill;\n outerFinalNode.style.strokeColor = node.style.strokeColor;\n outerFinalNode.style.strokeWidth = node.style.strokeWidth;\n //append child and set style\n finalNodeShape.children = [innerFinalNode, outerFinalNode];\n finalNodeShape.children[0].width = node.width;\n finalNodeShape.children[0].height = node.height;\n finalNodeShape.children[1].height = node.height / 1.5;\n finalNodeShape.children[1].width = node.width / 1.5;\n finalNodeShape.style.strokeWidth = 0;\n finalNodeShape.style.strokeColor = 'transparent';\n return finalNodeShape;\n}\n/**\n * getUMLActivityShapes method \\\n *\n * @returns {DiagramElement } getUMLActivityShapes method .\\\n * @param {PathElement} umlActivityShape - provide the umlActivityShape value.\n * @param {DiagramElement} content - provide the content value.\n * @param {Node} node - provide the node value.\n * @private\n */\nexport function getUMLActivityShapes(umlActivityShape, content, node) {\n var shape = node.shape.shape;\n var umlActivityShapeData = getUMLActivityShape(shape);\n umlActivityShape.data = umlActivityShapeData;\n content = umlActivityShape;\n switch (shape) {\n case 'StructuredNode':\n if (node.annotations) {\n for (var i = 0; i < node.annotations.length; i++) {\n node.annotations[parseInt(i.toString(), 10)].content = '<<' + node.annotations[parseInt(i.toString(), 10)].content + '>>';\n }\n }\n content = umlActivityShape;\n break;\n case 'FinalNode':\n content = getUMLFinalNode(node);\n break;\n }\n return content;\n}\n/**\n * removeGradient method \\\n *\n * @returns {void } removeGradient method .\\\n * @param {string} svgId - provide the umlActivityShape value.\n * @private\n */\nexport function removeGradient(svgId) {\n removeElement(svgId + '_linear');\n removeElement(svgId + '_radial');\n}\n/**\n * removeItem method \\\n *\n * @returns {void } removeItem method .\\\n * @param {string[]} array - provide the umlActivityShape value.\n * @param {string} item - provide the umlActivityShape value.\n * @private\n */\nexport function removeItem(array, item) {\n var index = array.indexOf(item);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n/**\n * updateConnector method \\\n *\n * @returns {void } updateConnector method .\\\n * @param {Connector} connector - provide the connector value.\n * @param {PointModel[]} points - provide the points value.\n * @param {DiagramAction} diagramActions - provide the diagramActions value.\n * @private\n */\nexport function updateConnector(connector, points, diagramActions) {\n var anglePoint; //let srcDecorator: DecoratorModel;\n //let targetPoint: PointModel;\n connector.intermediatePoints = points;\n connector.updateSegmentElement(connector, points, connector.wrapper.children[0], diagramActions);\n var srcDecorator = connector.sourceDecorator;\n if (connector.type === 'Bezier') {\n var firstSegment = connector.segments[0];\n var lastSegment = connector.segments[connector.segments.length - 1];\n anglePoint = [!Point.isEmptyPoint(lastSegment.point2) ? lastSegment.point2 : lastSegment.bezierPoint2,\n !Point.isEmptyPoint(firstSegment.point1) ? firstSegment.point1 : firstSegment.bezierPoint1];\n }\n else {\n anglePoint = connector.intermediatePoints;\n }\n points = connector.clipDecorators(connector, points, diagramActions);\n var element = connector.wrapper.children[0];\n element.canMeasurePath = true;\n element = connector.wrapper.children[1];\n connector.updateDecoratorElement(element, points[0], anglePoint[1], srcDecorator);\n //const targetPoint: PointModel = connector.targetPoint;\n var tarDecorator = connector.targetDecorator;\n element = connector.wrapper.children[2];\n connector.updateDecoratorElement(element, points[points.length - 1], anglePoint[anglePoint.length - 2], tarDecorator);\n connector.updateShapeElement(connector);\n}\n/**\n * getUserHandlePosition method \\\n *\n * @returns {PointModel } getUserHandlePosition method .\\\n * @param {SelectorModel} selectorItem - provide the connector value.\n * @param {UserHandleModel} handle - provide the handle value.\n * @param {Transforms} transform - provide the transform value.\n * @private\n */\nexport function getUserHandlePosition(selectorItem, handle, transform) {\n var wrapper = selectorItem.wrapper;\n //let positionPoints: PointModel;\n var bounds = wrapper.bounds;\n var offset = handle.offset;\n var size = handle.size / transform.scale;\n var margin = handle.margin;\n var point;\n var left = wrapper.offsetX - wrapper.actualSize.width * wrapper.pivot.x;\n var top = wrapper.offsetY - wrapper.actualSize.height * wrapper.pivot.y;\n point = { x: 0, y: 0 };\n if (selectorItem.nodes.length > 0) {\n switch (handle.side) {\n case 'Top':\n point.x += left + offset * wrapper.actualSize.width;\n point.y += top - (size);\n break;\n case 'Bottom':\n point.x += left + offset * wrapper.actualSize.width;\n point.y += top + wrapper.actualSize.height + (size);\n break;\n case 'Left':\n point.x += left - (size);\n point.y += top + offset * wrapper.actualSize.height;\n break;\n case 'Right':\n point.x += left + wrapper.actualSize.width + (size);\n point.y += top + offset * wrapper.actualSize.height;\n break;\n }\n point.x += ((margin.left - margin.right) / transform.scale) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += ((margin.top - margin.bottom) / transform.scale) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n }\n else if (selectorItem.connectors.length > 0) {\n var connector = selectorItem.connectors[0];\n var annotation = { offset: offset };\n var connectorOffset = getOffsetOfConnector(connector.intermediatePoints, annotation);\n var index = connectorOffset.index;\n point = connectorOffset.point;\n var getPointloop = getAnnotationPosition(connector.intermediatePoints, annotation, bounds);\n //const points: PointModel[] = connector.intermediatePoints;\n //const offsetLength: number;\n var angle = getPointloop.angle;\n var matrix = identityMatrix();\n rotateMatrix(matrix, -angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n point.x += (margin.left - margin.right) +\n (size / 2) * (handle.horizontalAlignment === 'Center' ? 0 : (handle.horizontalAlignment === 'Right' ? -1 : 1));\n point.y += (margin.top - margin.bottom) +\n (size / 2) * (handle.verticalAlignment === 'Center' ? 0 : (handle.verticalAlignment === 'Top' ? -1 : 1));\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, connector.intermediatePoints[parseInt(index.toString(), 10)].x, connector.intermediatePoints[parseInt(index.toString(), 10)].y);\n point = transformPointByMatrix(matrix, point);\n }\n if (wrapper.rotateAngle !== 0 || wrapper.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, wrapper.rotateAngle + wrapper.parentTransform, wrapper.offsetX, wrapper.offsetY);\n point = transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * canResizeCorner method \\\n *\n * @returns {SelectorConstraints } canResizeCorner method .\\\n * @param {string} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the selectorConstraints value.\n * @param {ThumbsConstraints} thumbsConstraints - provide the thumbsConstraints value.\n * @param {Selector} selectedItems - provide the selectedItems value.\n * @private\n */\nexport function canResizeCorner(selectorConstraints, action, thumbsConstraints, selectedItems) {\n if (selectedItems.annotation) {\n if (canResize(selectedItems.annotation)) {\n return true;\n }\n }\n else if ((SelectorConstraints[\"\" + action] & selectorConstraints) && (ThumbsConstraints[\"\" + action] & thumbsConstraints)) {\n return true;\n }\n return false;\n}\n/**\n * canShowCorner method \\\n *\n * @returns {boolean } canShowCorner method .\\\n * @param {SelectorConstraints} selectorConstraints - provide the selectorConstraints value.\n * @param {string} action - provide the thumbsConstraints value.\n * @private\n */\nexport function canShowCorner(selectorConstraints, action) {\n if (SelectorConstraints[\"\" + action] & selectorConstraints) {\n return true;\n }\n return false;\n}\n/**\n * canShowControlPoints method \\\n *\n * @returns {boolean } canShowControlPoints method .\\\n * @param {ControlPointsVisibility} bezierControlPoints - provide the bezierControlPoints value.\n * @param {string} action - provide the value.\n * @private\n */\nexport function canShowControlPoints(bezierControlPoints, action) {\n if (ControlPointsVisibility[\"\" + action] & bezierControlPoints) {\n return true;\n }\n return false;\n}\n/**\n * checkPortRestriction method \\\n *\n * @returns {number } checkPortRestriction method .\\\n * @param {PointPortModel} port - provide the port value.\n * @param {PortVisibility} portVisibility - provide the portVisibility value.\n * @private\n */\nexport function checkPortRestriction(port, portVisibility) {\n return port.visibility & portVisibility;\n}\n/**\n * findAnnotation method \\\n *\n * @returns {ShapeAnnotationModel | PathAnnotationModel | TextModel } findAnnotation method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findAnnotation(node, id) {\n var annotation;\n if (node.shape.type === 'Text') {\n annotation = (node.shape);\n }\n else {\n var annotationId = id.split('_');\n id = annotationId[annotationId.length - 1];\n for (var i = 0; i < node.annotations.length; i++) {\n if (id === node.annotations[parseInt(i.toString(), 10)].id) {\n annotation = node.annotations[parseInt(i.toString(), 10)];\n }\n }\n }\n return annotation;\n}\n/**\n * findPort method \\\n *\n * @returns {PointPortModel} findPort method .\\\n * @param { NodeModel | ConnectorModel} node - provide the port value.\n * @param {string} id - provide the portVisibility value.\n * @private\n */\nexport function findPort(node, id) {\n var port;\n if (id) {\n var portId = id.split('_');\n id = portId[portId.length - 1];\n }\n if (node) {\n node = node;\n for (var i = 0; i < node.ports.length; i++) {\n if (id === node.ports[parseInt(i.toString(), 10)].id) {\n return node.ports[parseInt(i.toString(), 10)];\n }\n }\n }\n return port;\n}\n/**\n * getInOutConnectPorts method \\\n *\n * @returns {PointPortModel} getInOutConnectPorts method .\\\n * @param { NodeModel} node - provide the port value.\n * @param {boolean} isInConnect - provide the portVisibility value.\n * @private\n */\nexport function getInOutConnectPorts(node, isInConnect) {\n var port = {};\n var i = 0;\n if (node.ports) {\n var ports = node.ports;\n for (i = 0; i < ports.length; i++) {\n if (isInConnect) {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.InConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n else {\n if ((ports[parseInt(i.toString(), 10)].constraints & PortConstraints.OutConnect)) {\n port = ports[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n return port;\n}\n/**\n * findObjectIndex method \\\n *\n * @returns {PointPortModel} findObjectIndex method .\\\n * @param { NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the string value.\n * @param {boolean} annotation - provide the boolean value.\n * @private\n */\nexport function findObjectIndex(node, id, annotation) {\n //let index: number;\n var collection = (annotation) ? node.annotations : node.ports;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id === id) {\n return (i).toString();\n }\n }\n return '-1';\n}\n/**\n * findPortIndex method \\\n *\n * @returns {PointPortModel} findPortIndex method .\\\n * @param { NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the string value.\n * @param {boolean} port - provide the boolean value.\n * @private\n */\nexport function findPortIndex(node, id, port) {\n //let index: number;\n var collection = node.ports;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id === id) {\n return (i).toString();\n }\n }\n return '-1';\n}\n/**\n * getObjectFromCollection method \\\n *\n * @returns {boolean} getObjectFromCollection method .\\\n * @param { (NodeModel | ConnectorModel)[] } obj - provide the node value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function getObjectFromCollection(obj, id) {\n var i;\n for (i = 0; i < obj.length; i++) {\n if (id === obj[parseInt(i.toString(), 10)].id) {\n return true;\n }\n }\n return false;\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { DiagramElement } element - provide the element value.\n * @param {number} sw - provide the string value.\n * @param {number} sh - provide the string value.\n * @param {DiagramElement} refObject - provide the refObject value.\n * @private\n */\nexport function scaleElement(element, sw, sh, refObject) {\n if (element.width !== undefined && element.height !== undefined) {\n element.width *= sw;\n element.height *= sh;\n }\n if (element instanceof Container) {\n var matrix = identityMatrix();\n var width = refObject.width || refObject.actualSize.width;\n var height = refObject.height || refObject.actualSize.height;\n if (width !== undefined && height !== undefined) {\n var x = refObject.offsetX - width * refObject.pivot.x;\n var y = refObject.offsetY - height * refObject.pivot.y;\n var refPoint = {\n x: x + width * refObject.pivot.x,\n y: y + height * refObject.pivot.y\n };\n refPoint = rotatePoint(refObject.rotateAngle, refObject.offsetX, refObject.offsetY, refPoint);\n rotateMatrix(matrix, -refObject.rotateAngle, refPoint.x, refPoint.y);\n scaleMatrix(matrix, sw, sh, refPoint.x, refPoint.y);\n rotateMatrix(matrix, refObject.rotateAngle, refPoint.x, refPoint.y);\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.width !== undefined && child.height !== undefined) {\n var newPosition = transformPointByMatrix(matrix, { x: child.offsetX, y: child.offsetY });\n child.offsetX = newPosition.x;\n child.offsetY = newPosition.y;\n scaleElement(child, sw, sh, refObject);\n }\n }\n }\n }\n}\n/**\n * scaleElement method \\\n *\n * @returns {void} scaleElement method .\\\n * @param { Node } obj - provide the obj value.\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {DiagramElement} nameTable - provide the refObject value.\n * @param {DiagramElement} drop - provide the drop value.\n * @param {DiagramElement} diagram - provide the diagram value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function arrangeChild(obj, x, y, nameTable, drop, diagram) {\n var child = obj.children;\n var node;\n for (var i = 0; i < child.length; i++) {\n node = nameTable[child[parseInt(i.toString(), 10)]];\n if (node) {\n if (node.children) {\n arrangeChild(node, x, y, nameTable, drop, diagram);\n }\n else {\n node.offsetX -= x;\n node.offsetY -= y;\n if (!drop) {\n //let content: DiagramElement;\n //let container: Container;\n nameTable[node.id] = node;\n var container = node.initContainer();\n if (!container.children) {\n container.children = [];\n }\n var content = node.init(diagram);\n container.children.push(content);\n container.measure(new Size(node.width, node.height));\n container.arrange(container.desiredSize);\n }\n }\n }\n }\n}\n/**\n * insertObject method \\\n *\n * @returns {void} insertObject method .\\\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { string } key - provide the obj value.\n * @param { Object[]} collection - provide the x value.\n * @private\n */\nexport function insertObject(obj, key, collection) {\n if (collection.length === 0) {\n collection.push(obj);\n }\n else if (collection.length === 1) {\n if (collection[0][\"\" + key] > obj[\"\" + key]) {\n collection.splice(0, 0, obj);\n }\n else {\n collection.push(obj);\n }\n }\n else if (collection.length > 1) {\n var low = 0;\n var high = collection.length - 1;\n var mid = Math.floor((low + high) / 2);\n while (mid !== low) {\n if (collection[parseInt(mid.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n low = mid;\n mid = Math.floor((low + high) / 2);\n }\n else if (collection[parseInt(mid.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n high = mid;\n mid = Math.floor((low + high) / 2);\n }\n else {\n break;\n }\n }\n if (collection[parseInt(high.toString(), 10)][\"\" + key] < obj[\"\" + key]) {\n collection.push(obj);\n }\n else if (collection[parseInt(low.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(low, 0, obj);\n }\n else if ((collection[parseInt(low.toString(), 10)][\"\" + key] < obj[\"\" + key]) && collection[parseInt(high.toString(), 10)][\"\" + key] > obj[\"\" + key]) {\n collection.splice(high, 0, obj);\n }\n }\n}\n/**\n * getElement method \\\n *\n * @returns {Object} getElement method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nexport function getElement(element) {\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n // eslint-disable-next-line\n var node = {};\n var nodes = diagramElement[\"\" + instance][0].nodes;\n if (nodes === undefined) {\n nodes = getPaletteSymbols(diagramElement[\"\" + instance][0]);\n }\n var length = 'length';\n for (var i = 0; nodes && i < nodes[\"\" + length]; i++) {\n if (nodes[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(nodes[parseInt(i.toString(), 10)], element);\n }\n }\n var connectors = diagramElement[\"\" + instance][0].connectors;\n for (var i = 0; connectors && i < connectors[\"\" + length]; i++) {\n if (connectors[parseInt(i.toString(), 10)].id === element.nodeId) {\n return getAnnotation(connectors[parseInt(i.toString(), 10)], element);\n }\n }\n // eslint-disable-next-line\n var enterObject = diagramElement[instance][0].enterObject;\n if (enterObject && (enterObject['id'] === element.nodeId || enterObject['children'])) {\n if (enterObject['children'] && groupHasType(enterObject, 'HTML', diagramElement[\"\" + instance][0].enterTable)) {\n return diagramElement[\"\" + instance][0].enterTable[element.nodeId];\n }\n else {\n return enterObject;\n }\n }\n return null;\n}\n/**\n * getAnnotation method \\\n *\n * @returns {Object} getAnnotation method .\\\n * @param { Object } obj - provide the obj value.\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the obj value.\n * @private\n */\nfunction getAnnotation(obj, element) {\n var annotations = obj.annotations;\n var length = 'length';\n var j;\n for (j = 0; annotations && j < annotations[\"\" + length]; j++) {\n if (element.annotationId\n && annotations[parseInt(j.toString(), 10)].id === element.annotationId) {\n return annotations[parseInt(j.toString(), 10)];\n }\n }\n return obj;\n}\n/**\n * getPaletteSymbols method \\\n *\n * @returns {NodeModel[]} getPaletteSymbols method .\\\n * @param { Object } symbolPalette - provide the symbolPalette value.\n * @private\n */\nfunction getPaletteSymbols(symbolPalette) {\n var nodes = [];\n for (var i = 0; i < symbolPalette.palettes.length; i++) {\n var symbols = symbolPalette.palettes[parseInt(i.toString(), 10)].symbols;\n for (var j = 0; j < symbols.length; j++) {\n if (symbols[parseInt(j.toString(), 10)] instanceof Node) {\n nodes.push(symbols[parseInt(j.toString(), 10)]);\n }\n }\n }\n return nodes;\n}\n/**\n * getCollectionChangeEventArguements method \\\n *\n * @returns {IBlazorCollectionChangeEventArgs} getCollectionChangeEventArguements method .\\\n * @param { IBlazorCollectionChangeEventArgs } args1 - provide the args1 value.\n * @param { NodeModel | ConnectorModel } obj - provide the obj value.\n * @param { EventState } state - provide the state value.\n * @param { ChangeType } type - provide the type value.\n * @private\n */\nexport function getCollectionChangeEventArguements(args1, obj, state, type) {\n //Removed isBlazor code\n return args1;\n}\n/**\n * getDropEventArguements method \\\n *\n * @returns {IBlazorDropEventArgs} getDropEventArguements method .\\\n * @param { MouseEventArgs } args - provide the args1 value.\n * @param { IBlazorDropEventArgs } arg - provide the obj value.\n * @private\n */\nexport function getDropEventArguements(args, arg) {\n //Removed isBlazor code\n return arg;\n}\n/**\n * getPoint method \\\n *\n * @returns {PointModel} getPoint method .\\\n * @param { number } x - provide the x value.\n * @param { number } y - provide the y value.\n * @param { number } w - provide the w value.\n * @param { number } h - provide the y value.\n * @param { number } angle - provide the y value.\n * @param { number } offsetX - provide the y value.\n * @param { number } offsetY - provide the y value.\n * @param { PointModel } cornerPoint - provide the y value.\n * @private\n */\nexport function getPoint(x, y, w, h, angle, offsetX, offsetY, cornerPoint) {\n var pivot = { x: 0, y: 0 };\n var trans = identityMatrix();\n rotateMatrix(trans, angle, offsetX, offsetY);\n switch (cornerPoint.x) {\n case 0:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x, y: y + h }));\n break;\n }\n break;\n case 0.5:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w / 2, y: y + h }));\n break;\n }\n break;\n case 1:\n switch (cornerPoint.y) {\n case 0:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y }));\n break;\n case 0.5:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h / 2 }));\n break;\n case 1:\n pivot = transformPointByMatrix(trans, ({ x: x + w, y: y + h }));\n break;\n }\n break;\n }\n return { x: pivot.x, y: pivot.y };\n}\n/* eslint-disable */\n/**\n * Get the object as Node | Connector \\\n *\n * @returns {Object} Get the object as Node | Connector .\\\n * @param { number } obj - provide the x value.\n * @private\n */\nexport var getObjectType = function (obj) {\n if (obj) {\n if (obj.sourceID !== undefined || obj.sourcePoint !== undefined ||\n obj.targetID !== undefined || obj.targetPoint !== undefined ||\n obj.type !== undefined) {\n obj = Connector;\n }\n else {\n obj = Node;\n }\n }\n return obj;\n};\n/** @private */\nexport var flipConnector = function (connector) {\n if (!connector.sourceID && !connector.targetID) {\n var source = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n var target = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n if (connector.flip === 'Horizontal') {\n connector.sourcePoint.x = target.x;\n connector.targetPoint.x = source.x;\n }\n else if (connector.flip === 'Vertical') {\n connector.sourcePoint.y = target.y;\n connector.targetPoint.y = source.y;\n }\n else if (connector.flip === 'Both') {\n connector.sourcePoint = target;\n connector.targetPoint = source;\n }\n }\n};\n/** @private */\nexport var updatePortEdges = function (portContent, flip, port) {\n var offsetX = port.offset.x;\n var offsetY = port.offset.y;\n if (flip === 'Horizontal') {\n offsetX = 1 - port.offset.x;\n offsetY = port.offset.y;\n }\n else if (flip === 'Vertical') {\n offsetX = port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n else if (flip === 'Both') {\n offsetX = 1 - port.offset.x;\n offsetY = 1 - port.offset.y;\n }\n portContent.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n return portContent;\n};\n/** @private */\nexport var alignElement = function (element, offsetX, offsetY, diagram, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n // 923507: Ports rotating opposite to the node rotation after Group and Flip actions\n if (!(child instanceof PathElement)) {\n child.flip = flip;\n }\n var childX = ((offsetX - child.offsetX) + offsetX);\n var childY = ((offsetY - child.offsetY) + offsetY);\n if (flip === 'Horizontal' || flip === 'Both') {\n child.offsetX = childX;\n child.flipOffset.x = childX - child.desiredSize.width / 2;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.offsetY = childY;\n child.flipOffset.y = childY - child.desiredSize.height / 2;\n }\n if (child instanceof Canvas || child instanceof Container) {\n alignElement(child, offsetX, offsetY, diagram, flip);\n }\n child.measure(new Size(child.bounds.width, child.bounds.height));\n child.arrange(child.desiredSize);\n var node = diagram.nameTable[child.id];\n if (node) {\n diagram.updateConnectorEdges(node);\n }\n }\n }\n};\n/** @private */\nexport var cloneSelectedObjects = function (diagram) {\n var nodes = diagram.selectedItems.nodes;\n var connectors = diagram.selectedItems.connectors;\n var isProtectedOnChange = 'isProtectedOnChange';\n var isEnableServerDatabind = diagram.allowServerDataBinding;\n var isProtectedOnChangeValue = diagram[isProtectedOnChange];\n diagram.protectPropertyChange(true);\n diagram.allowServerDataBinding = false;\n diagram.selectedItems.nodes = [];\n diagram.selectedItems.connectors = [];\n diagram.allowServerDataBinding = isEnableServerDatabind;\n diagram.protectPropertyChange(isProtectedOnChangeValue);\n var clonedSelectedItems = cloneObject(diagram.selectedItems);\n for (var i = 0; i < nodes.length; i++) {\n diagram.selectedItems.nodes.push(diagram.nameTable[nodes[i].id]);\n }\n for (var i = 0; i < connectors.length; i++) {\n diagram.selectedItems.connectors.push(diagram.nameTable[connectors[i].id]);\n }\n return clonedSelectedItems;\n};\n/** @private */\nexport var updatePathElement = function (anglePoints, connector) {\n var pathElement = new PathElement();\n var pathseqData;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n pathseqData = findPath(anglePoints[j], anglePoints[j + 1]);\n pathElement.data = pathseqData[0];\n pathElement.id = connector.id + '_' + (connector.shape.sequence);\n //Bug 860251: Bpmn message flow and sequence flow connector child path is not rendered properly.\n //To get the offset of default sequence path.\n var pathOffset = getPathOffset(anglePoints, connector);\n pathElement.offsetX = pathOffset.x;\n pathElement.offsetY = pathOffset.y;\n pathElement.rotateAngle = 45;\n pathElement.transform = Transform.Self;\n break;\n }\n return pathElement;\n};\n/** @private */\nexport var getPathOffset = function (anglePoints, connector, segmentOffset) {\n var offsetDistance = 10; // Distance from the source point\n var angle;\n var pt;\n var totalLength = 0;\n // Calculate total length of the path\n for (var i_1 = 0; i_1 < anglePoints.length - 1; i_1++) {\n totalLength += findDistance(anglePoints[parseInt(i_1.toString(), 10)], anglePoints[i_1 + 1]);\n }\n var targetLength;\n if (segmentOffset) {\n targetLength = totalLength * segmentOffset;\n }\n else {\n targetLength = (totalLength / 2) > 30 ? offsetDistance : (totalLength / 2);\n }\n // Find the segment where the position lies\n var accumulatedLength = 0;\n for (var i = 0; i < anglePoints.length - 1; i++) {\n var segmentLength = findDistance(anglePoints[parseInt(i.toString(), 10)], anglePoints[i + 1]);\n if (accumulatedLength + segmentLength >= targetLength) {\n var remainingLength = targetLength - accumulatedLength;\n angle = findAngle(anglePoints[i], anglePoints[i + 1]);\n pt = Point.transform(anglePoints[i], angle, remainingLength);\n break;\n }\n accumulatedLength += segmentLength;\n }\n return pt;\n};\n/** @private */\nexport var checkPort = function (node, element) {\n if (node instanceof Node || node instanceof Connector) {\n for (var i = 0; i < node.ports.length; i++) {\n if (node.ports[i].id === element.id.split('_').splice(1).join('_')) {\n return true;\n }\n }\n }\n return false;\n};\n/** @private */\nexport var findPath = function (sourcePoint, targetPoint) {\n var beginningpoint = { x: sourcePoint.x, y: sourcePoint.y };\n var distance = findDistance(sourcePoint, targetPoint);\n distance = Math.min(10, distance / 2);\n var angle = findAngle(sourcePoint, targetPoint);\n var transferpt = Point.transform({ x: beginningpoint.x, y: beginningpoint.y }, angle, distance);\n var startpoint = Point.transform({ x: transferpt.x, y: transferpt.y }, angle, -11);\n var endpoint = Point.transform({ x: startpoint.x, y: startpoint.y }, angle, 11 * 2);\n var path = 'M' + startpoint.x + ' ' + startpoint.y + ' L' + endpoint.x + ' ' + endpoint.y;\n return [path, transferpt];\n};\n/** @private */\nexport var getConnectorDirection = function (src, tar) {\n if (Math.abs(tar.x - src.x) > Math.abs(tar.y - src.y)) {\n return src.x < tar.x ? 'Right' : 'Left';\n }\n else {\n return src.y < tar.y ? 'Bottom' : 'Top';\n }\n};\n/** @private */\nexport var findDistance = function (point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\n/* eslint-enable */\n/**\n * cloneBlazorObject method \\\n *\n * @returns {Object} cloneBlazorObject method .\\\n * @param { object } args - provide the args value.\n * @private\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function cloneBlazorObject(args) {\n //Removed isBlazor code\n return args;\n}\n/**\n * checkBrowserInfo method \\\n *\n * @returns {Object} checkBrowserInfo method .\\\n * @private\n */\nexport function checkBrowserInfo() {\n if ((navigator.platform.indexOf('Mac') >= 0 || navigator.platform.indexOf('iPad') >= 0\n || navigator.platform.indexOf('iPhone') >= 0 || navigator.platform.indexOf('MacIntel') >= 0)\n && (Browser.info.name === 'safari' || Browser.info.name === 'webkit')) {\n return true;\n }\n return false;\n}\n/**\n * canMeasureDecoratorPath method \\\n *\n * @returns {boolean} canMeasureDecoratorPath method .\\\n * @param { string[] } objects - provide the args value.\n * @private\n */\nexport function canMeasureDecoratorPath(objects) {\n if (objects.indexOf('shape') !== -1 || objects.indexOf('pathData') !== -1 ||\n objects.indexOf('width') !== -1 || objects.indexOf('height') !== -1) {\n return true;\n }\n return false;\n}\n/**\n * getPreviewSize method \\\n *\n * @returns {Size} getPreviewSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the args value.\n * @param { Node } clonedObject - provide the args value.\n * @param { DiagramElement } wrapper - provide the args value.\n * @private\n */\nexport function getPreviewSize(sourceElement, clonedObject, wrapper) {\n //let previewWidth: number;\n //let previewHeight: number;\n var previewWidth = getSymbolSize(sourceElement, clonedObject, wrapper, 'width');\n var previewHeight = getSymbolSize(sourceElement, clonedObject, wrapper, 'height');\n return new Size(previewWidth, previewHeight);\n}\n/**\n * getSymbolSize method \\\n *\n * @returns {number} getSymbolSize method .\\\n * @param { SymbolPaletteModel } sourceElement - provide the sourceElement value.\n * @param { Node } clonedObject - provide the clonedObject value.\n * @param { DiagramElement } wrapper - provide the wrapper value.\n * @param { string } size - provide the size value.\n * @private\n */\nexport function getSymbolSize(sourceElement, clonedObject, wrapper, size) {\n var previewSize = 0;\n if (clonedObject.previewSize[\"\" + size] !== undefined) {\n previewSize = clonedObject.previewSize[\"\" + size];\n }\n else if (sourceElement.symbolPreview[\"\" + size] !== undefined) {\n previewSize = sourceElement.symbolPreview[\"\" + size];\n }\n else {\n previewSize = clonedObject[\"\" + size] || wrapper.actualSize[\"\" + size];\n }\n return previewSize;\n}\n/**\n * findParent method \\\n *\n * @returns {string} findParent method .\\\n * @param { Node } node - provide the clonedObject value.\n * @param { Diagram } diagram - provide the diagram element.\n * @param { string } parent - provide the parent id.\n * @private\n */\nexport function findParentInSwimlane(node, diagram, parent) {\n if (node && node.parentId) {\n node = diagram.nameTable[node.parentId];\n if (node.parentId) {\n parent = findParentInSwimlane(node, diagram, parent);\n }\n else {\n parent = node.id;\n }\n }\n return parent;\n}\n/**\n * selectionHasConnector method \\\n *\n * @returns {boolean} selectionHasConnector method .\\\n * @param { Diagram } diagram - provide the diagram element.\n * @param { selector } selector - provide the selector element.\n * @private\n */\nexport function selectionHasConnector(diagram, selector) {\n if (diagram.selectedItems.connectors.length > 1 && diagram.selectedItems.nodes.length === 0 && selector.rotateAngle !== 0) {\n return true;\n }\n return false;\n}\n/**\n * To Get connector style based on the arrow type\n * @param {FlowChartData} data - provide the flow chart data.\n * @returns {ArrowStyle} - Connector style\n */\nexport function getConnectorArrowType(data) {\n if (data.arrowType && data.arrowType.trim() !== '') {\n switch (data.arrowType) {\n case 'single-line-arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n case 'double-line-arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 2 };\n case 'dotted-arrow':\n return { targetDecorator: 'Arrow', strokeDashArray: '2,2' };\n case 'single-line':\n return { targetDecorator: 'None', strokeWidth: 1 };\n case 'double-line':\n return { targetDecorator: 'None', strokeWidth: 2 };\n case 'dotted':\n return { targetDecorator: 'None', strokeDashArray: '2,2' };\n case 'wiggly-arrow':\n return { targetDecorator: 'None', strokeWidth: 1, opacity: 0 };\n default:\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n }\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\nimport { Point } from '../primitives/point';\n/**\n * Defines the behavior of default IconShapes\n */\nvar IconShape = /** @class */ (function (_super) {\n __extends(IconShape, _super);\n function IconShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], IconShape.prototype, \"shape\", void 0);\n __decorate([\n Property('white')\n ], IconShape.prototype, \"fill\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], IconShape.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"width\", void 0);\n __decorate([\n Property(10)\n ], IconShape.prototype, \"height\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 1 }, Point)\n ], IconShape.prototype, \"offset\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"borderColor\", void 0);\n __decorate([\n Property(1)\n ], IconShape.prototype, \"borderWidth\", void 0);\n __decorate([\n Complex({}, Margin)\n ], IconShape.prototype, \"margin\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"pathData\", void 0);\n __decorate([\n Property('')\n ], IconShape.prototype, \"content\", void 0);\n __decorate([\n Property(0)\n ], IconShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Complex({ left: 2, right: 2, top: 2, bottom: 2 }, Margin)\n ], IconShape.prototype, \"padding\", void 0);\n __decorate([\n Property('#1a1a1a')\n ], IconShape.prototype, \"iconColor\", void 0);\n return IconShape;\n}(ChildProperty));\nexport { IconShape };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Container } from './container';\nimport { rotateSize } from '../../utility/base-util';\n/**\n * StackPanel module is used to arrange its children in a line\n */\nvar StackPanel = /** @class */ (function (_super) {\n __extends(StackPanel, _super);\n function StackPanel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Gets/Sets the orientation of the stack panel\n */\n _this.orientation = 'Vertical';\n /**\n * Not applicable for canvas\n * to avoid the child size updation with respect to parent ser true\n *\n * @private\n */\n _this.measureChildren = undefined;\n /**\n * Sets or gets whether the padding of the element needs to be measured\n *\n * @private\n */\n _this.considerPadding = true;\n return _this;\n }\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measure = function (availableSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.updateHorizontalStack : this.updateVerticalStack;\n this.desiredSize = this.measureStackPanel(availableSize, updateSize);\n return this.desiredSize;\n };\n /**\n * Arranges the child elements of the stack panel \\\n *\n * @returns { Size } Arranges the child elements of the stack panel.\\\n * @param {Size} desiredSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.arrange = function (desiredSize) {\n var updateSize = this.orientation === 'Horizontal' ? this.arrangeHorizontalStack : this.arrangeVerticalStack;\n this.actualSize = this.arrangeStackPanel(desiredSize, updateSize);\n this.updateBounds();\n return this.actualSize;\n };\n /**\n * Measures the minimum space that the panel needs \\\n *\n * @returns { Size } Measures the minimum space that the panel needs.\\\n * @param {Size} availableSize - provide the id value.\n * @param {Function} updateSize - provide the id value.\n *\n * @private\n */\n StackPanel.prototype.measureStackPanel = function (availableSize, updateSize) {\n var desired = undefined;\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.parentTransform = this.rotateAngle + this.parentTransform;\n //Measure children\n if (this.measureChildren) {\n child.measure(child.desiredSize);\n }\n else {\n child.measure(availableSize);\n }\n var childSize = child.desiredSize.clone();\n //Consider Child's margin\n this.applyChildMargin(child, childSize);\n //Consider children's rotation\n if (child.rotateAngle !== 0) {\n childSize = rotateSize(childSize, child.rotateAngle);\n }\n //Measure stack panel\n if (desired === undefined) {\n desired = childSize;\n }\n else {\n if (!child.preventContainer) {\n updateSize(childSize, desired);\n }\n }\n }\n }\n desired = _super.prototype.validateDesiredSize.call(this, desired, availableSize);\n this.stretchChildren(desired);\n //Considering padding values\n if (this.considerPadding) {\n this.applyPadding(desired);\n }\n return desired;\n };\n StackPanel.prototype.arrangeStackPanel = function (desiredSize, updatePosition) {\n if (this.children !== undefined && this.children.length > 0) {\n var x = void 0;\n var y = void 0;\n x = this.offsetX - desiredSize.width * this.pivot.x + this.padding.left;\n y = this.offsetY - desiredSize.height * this.pivot.y + this.padding.top;\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var childSize = child.desiredSize.clone();\n var rotatedSize = childSize;\n if (this.orientation === 'Vertical') {\n y += child.margin.top;\n }\n else {\n x += child.margin.left;\n }\n if (child.rotateAngle !== 0) {\n rotatedSize = rotateSize(childSize, child.rotateAngle);\n }\n var center = updatePosition(x, y, child, this, desiredSize, rotatedSize);\n _super.prototype.findChildOffsetFromCenter.call(this, child, center);\n child.arrange(childSize, true);\n if (this.orientation === 'Vertical') {\n y += rotatedSize.height + child.margin.bottom;\n }\n else {\n x += rotatedSize.width + child.margin.right;\n }\n }\n }\n return desiredSize;\n };\n StackPanel.prototype.updateHorizontalStack = function (child, parent) {\n parent.height = Math.max(child.height, parent.height);\n parent.width += child.width;\n };\n StackPanel.prototype.updateVerticalStack = function (child, parent) {\n parent.width = Math.max(child.width, parent.width);\n parent.height += child.height;\n };\n StackPanel.prototype.arrangeHorizontalStack = function (x, y, child, parent, parenBounds, childBounds) {\n var centerY = 0;\n if (child.verticalAlignment === 'Top') {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n else if (child.verticalAlignment === 'Bottom') {\n var parentBottom = parent.offsetY + parenBounds.height * (1 - parent.pivot.y);\n centerY = parentBottom - parent.padding.bottom - child.margin.bottom - childBounds.height / 2;\n }\n else {\n centerY = parent.offsetY - parenBounds.height * parent.pivot.y + parenBounds.height / 2;\n if (child.margin.top) {\n centerY = y + child.margin.top + childBounds.height / 2;\n }\n }\n return { x: x + childBounds.width / 2, y: centerY };\n };\n StackPanel.prototype.arrangeVerticalStack = function (x, y, child, parent, parentSize, childSize) {\n var centerX = 0;\n if (child.horizontalAlignment === 'Left') {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n else if (child.horizontalAlignment === 'Right') {\n var parentRight = parent.offsetX + parentSize.width * (1 - parent.pivot.x);\n centerX = parentRight - parent.padding.right - child.margin.right - childSize.width / 2;\n }\n else {\n centerX = parent.offsetX - parentSize.width * parent.pivot.x + parentSize.width / 2;\n if (child.margin.left) {\n centerX = x + child.margin.left + childSize.width / 2;\n }\n }\n return { x: centerX, y: y + childSize.height / 2 };\n };\n StackPanel.prototype.stretchChildren = function (size) {\n if (this.children !== undefined && this.children.length > 0) {\n for (var _i = 0, _a = this.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (this.orientation === 'Vertical') {\n if (child.horizontalAlignment === 'Stretch') {\n child.desiredSize.width = size.width - (child.margin.left + child.margin.right);\n }\n }\n else {\n if (child.verticalAlignment === 'Stretch') {\n child.desiredSize.height = size.height - (child.margin.top + child.margin.bottom);\n }\n }\n }\n }\n };\n StackPanel.prototype.applyChildMargin = function (child, size) {\n size.height += child.margin.top + child.margin.bottom;\n size.width += child.margin.left + child.margin.right;\n };\n return StackPanel;\n}(Container));\nexport { StackPanel };\n","import { NodeConstraints, AnnotationConstraints } from '../enum/enum';\nimport { Node } from '../objects/node';\nimport { randomId } from './../utility/base-util';\n/**\n * These utility methods help to process the data and to convert it to desired dimensions\n */\n/**\n * getULMClassifierShapes method \\\n *\n * @returns {DiagramElement} getULMClassifierShapes method .\\\n * @param { DiagramElement} content - provide the content value.\n * @param {NodeModel} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\nexport function getULMClassifierShapes(content, node, diagram) {\n var classifier;\n var textWrap = 'NoWrap';\n if (node.shape.classifier === 'Class') {\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Enumeration') {\n classifier = node.shape.enumerationShape;\n }\n else if (node.shape.classifier === 'Interface') {\n classifier = node.shape.interfaceShape;\n }\n //let attributeText: string = '';\n node.container = { type: 'Stack', orientation: 'Vertical' };\n node.constraints = (NodeConstraints.Default | NodeConstraints.HideThumbs) &\n ~(NodeConstraints.Rotate | NodeConstraints.Resize);\n node.style = {\n fill: node.style.fill, strokeColor: node.style.strokeColor,\n strokeWidth: 1.5\n };\n node.children = [];\n if (node.maxWidth) {\n textWrap = 'Wrap';\n }\n var newObj = new Node(diagram, 'nodes', {\n id: node.id + '_umlClass_header',\n annotations: [\n {\n id: 'name', content: classifier.name,\n offset: { x: 0.5, y: 0.65 }, margin: { left: 10, right: 10 },\n style: {\n bold: true, fontSize: 14, color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }\n }, {\n content: '<<' + node.shape.classifier + '>>', margin: { left: 10, right: 10 },\n id: 'class', style: {\n fontSize: classifier.style.fontSize,\n color: classifier.style.color, fill: classifier.style.fill,\n textWrapping: textWrap\n }, offset: { x: 0.5, y: 0.3 }, constraints: AnnotationConstraints.ReadOnly\n }\n ],\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n verticalAlignment: 'Stretch',\n horizontalAlignment: 'Stretch',\n style: { fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor }\n }, true);\n diagram.initObject(newObj);\n diagram.nodes.push(newObj);\n diagram.UpdateBlazorDiagramModel(newObj, 'Node');\n node.children.push(newObj.id);\n getClassNodes(node, diagram, classifier, textWrap);\n getClassMembers(node, diagram, classifier, textWrap);\n /* eslint-disable */\n node.offsetX = node.offsetX;\n node.offsetY = node.offsetY;\n node.style.fill = node.style.fill;\n node.borderColor = node.borderColor;\n diagram.initObject(node);\n /* eslint-enable */\n return content;\n}\n/**\n * getClassNodes method \\\n *\n * @returns {void} getClassNodes method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassNodes(node, diagram, classifier, textWrap) {\n if (node.shape.classifier === 'Enumeration') {\n var member = classifier.members;\n if (member && member.length) {\n addSeparator(node, diagram);\n var memberText = '';\n for (var i = 0; i < member.length; i++) {\n var members = member[parseInt(i.toString(), 10)];\n if (members.name !== '') {\n memberText += members.name;\n }\n if (i !== member.length) {\n var style = getStyle(node, members);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMember',\n annotations: [\n {\n id: 'name', content: memberText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor, textWrapping: textWrap\n },\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n memberText = '';\n if (members.isSeparator && (i !== member.length - 1)) {\n addSeparator(node, diagram, members.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (members.isSeparator && (i === member.length - 1)) {\n members.isSeparator = false;\n }\n }\n }\n }\n }\n else {\n var attributes = classifier.attributes;\n if (attributes.length) {\n var attributeText = '';\n addSeparator(node, diagram);\n for (var i = 0; i < attributes.length; i++) {\n var text = void 0;\n var attribute = attributes[parseInt(i.toString(), 10)];\n if (attribute.scope && (attribute).scope === 'Public') {\n text = ' +';\n }\n else if (attribute.scope && attribute.scope === 'Private') {\n text = '-';\n }\n else if (attribute.scope && attribute.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (attribute.name !== '') {\n if (text) {\n attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type;\n }\n }\n if (i !== attributes.length) {\n var style = getStyle(node, attribute);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlProperty', style: { fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor },\n annotations: [\n {\n id: 'name', content: attributeText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n attributeText = '';\n if (attribute.isSeparator && (i !== attributes.length - 1)) {\n addSeparator(node, diagram, attribute.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (attribute.isSeparator && (i === attributes.length - 1)) {\n attribute.isSeparator = false;\n }\n }\n }\n }\n }\n}\n/**\n * getClassNodesChild method - This method is utilized to dynamically add members to a UML node at runtime. \\\n *\n * @returns {void} getClassNodesChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassNodesChild(node, diagram, classifier, textWrap) {\n if (node.shape.classifier === 'Enumeration') {\n var member = classifier.members;\n var memberText = '';\n // if there is no members in existing array, then the separator need to be added for new member\n if (member.length === 1) {\n var newIndex = member.length;\n addSeparatorChild(node, diagram, newIndex);\n }\n var count = 0;\n // Need to indentify the index value for newly added member\n for (var i = 0; i < member.length - 1; i++) {\n if (member[parseInt(i.toString(), 10)].isSeparator === true) {\n count++;\n }\n }\n var index = member.length + count + 1;\n //Iterate through an array of members and create each member as a child node to the UML node\n for (var i = 0; i < member.length; i++) {\n var members = member[member.length - 1];\n if (members.name !== '') {\n memberText += members.name;\n }\n if (i !== member.length) {\n var style = getStyle(node, members);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMember',\n annotations: [\n {\n id: 'name', content: memberText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor, textWrapping: textWrap\n },\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n memberText = '';\n }\n break;\n }\n }\n}\n/**\n * getClassAttributesChild method - This method is utilized to dynamically add attributes to a UML node at runtime.\\\n *\n * @returns {void} getClassAttributesChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassAttributesChild(node, diagram, classifier, textWrap) {\n if (classifier.attributes && classifier.attributes.length) {\n var attributes = classifier.attributes;\n var attributeText = '';\n var text = void 0;\n // if there is no attributes in existing array, then the separator need to be added for new attribute\n if (attributes.length === 1) {\n var newIndex = attributes.length;\n addSeparatorChild(node, diagram, newIndex);\n }\n var count = 0;\n // Need to indentify the index value for newly added attribute\n for (var i = 0; i < attributes.length - 1; i++) {\n if (attributes[parseInt(i.toString(), 10)].isSeparator === true) {\n count++;\n }\n }\n var index = attributes.length + count + 1;\n //Iterate through an array of attributes and create each attribute as a child node to the UML node\n for (var i = 0; i < attributes.length; i++) {\n var attribute = attributes[attributes.length - 1];\n if (attribute.scope && (attribute).scope === 'Public') {\n text = ' +';\n }\n else if (attribute.scope && attribute.scope === 'Private') {\n text = '-';\n }\n else if (attribute.scope && attribute.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (attribute.name !== '') {\n if (text) {\n attributeText += text + ' ' + attribute.name + ' ' + ': ' + attribute.type;\n }\n }\n if (i !== attributes.length) {\n var style = getStyle(node, attribute);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlProperty', style: {\n fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor\n },\n annotations: [\n {\n id: 'name', content: attributeText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ], verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n attributeText = '';\n }\n break;\n }\n }\n}\n/**\n * getClassMembers method \\\n *\n * @returns {void} getClassMembers method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassMembers(node, diagram, classifier, textWrap) {\n if (classifier.methods && classifier.methods.length) {\n var methods = classifier.methods;\n addSeparator(node, diagram);\n var argumentText = '';\n var methodText = '';\n var text = void 0;\n for (var i = 0; i < methods.length; i++) {\n var method = methods[parseInt(i.toString(), 10)];\n if (method.scope && method.scope === 'Public') {\n text = ' +';\n }\n else if (method.scope && method.scope === 'Private') {\n text = '-';\n }\n else if (method.scope && method.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (method.parameters) {\n for (var j = 0; j < method.parameters.length; j++) {\n if (method.parameters[parseInt(j.toString(), 10)].type) {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type;\n }\n else {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name;\n }\n if (j !== method.parameters.length - 1) {\n argumentText += ',';\n }\n }\n }\n if (method.name !== '') {\n if (text) {\n methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type;\n }\n //893885: Parameter Name in UMLClass with multiple Methods are updated wrongly\n //clear the value stored in parameter variable after each method initiaization\n argumentText = '';\n }\n if (i !== methods.length) {\n var style = getStyle(node, method);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n annotations: [\n {\n id: 'name', content: methodText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ],\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor\n }, minHeight: 25,\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize)\n }, true);\n diagram.initObject(temp);\n diagram.nodes.push(temp);\n diagram.UpdateBlazorDiagramModel(temp, 'Node');\n node.children.push(temp.id);\n methodText = '';\n if (method.isSeparator && (i !== methods.length - 1)) {\n addSeparator(node, diagram, method.separatorStyle);\n }\n //isSeperator boolean set as false whether it is set as true for last element\n if (method.isSeparator && (i === methods.length - 1)) {\n method.isSeparator = false;\n }\n }\n }\n }\n}\n/**\n * getClassMembersChild method - This method is utilized to dynamically add methods to a UML node at runtime. \\\n *\n * @returns {void} getClassMembersChild method .\\\n * @param { Node} node - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {UmlClassModel} classifier - provide the classifier value.\n * @param {TextWrap} textWrap - provide the textWrap value.\n * @private\n */\nexport function getClassMembersChild(node, diagram, classifier, textWrap) {\n if (classifier.methods && classifier.methods.length) {\n var methods = classifier.methods;\n var argumentText = '';\n var methodText = '';\n var text = void 0;\n var initialIndex = 1;\n var index = void 0;\n var attributeCount = 0;\n var methodCount = 0;\n var shapeModel = node.shape;\n var isClass = shapeModel.classifier === 'Class';\n var isInterface = shapeModel.classifier === 'Interface';\n var umlShape = isClass ? shapeModel.classShape : shapeModel.interfaceShape;\n // Need to indentify the index value for newly added method\n if (methods.length === 1) {\n if (umlShape.attributes.length > 0) {\n attributeCount = umlShape.attributes.filter(function (attr) { return attr.isSeparator; }).length;\n initialIndex = 1 + 1 + umlShape.attributes.length + attributeCount;\n index = initialIndex + 1;\n addSeparatorChild(node, diagram, initialIndex);\n }\n else {\n index = initialIndex + 1;\n }\n }\n // To determine the index value for adding methods, it is essential to take into account the existing attributes\n else {\n attributeCount = umlShape.attributes.filter(function (attr) { return attr.isSeparator; }).length;\n methodCount = umlShape.methods.filter(function (method) { return method.isSeparator; }).length;\n initialIndex = 1 + 1 + umlShape.attributes.length + attributeCount + umlShape.methods.length + methodCount;\n index = initialIndex + 1;\n }\n //Iterate through an array of methods and create each method as a child node to the UML node\n for (var i = 0; i < methods.length; i++) {\n var method = methods[methods.length - 1];\n if (method.scope && method.scope === 'Public') {\n text = ' +';\n }\n else if (method.scope && method.scope === 'Private') {\n text = '-';\n }\n else if (method.scope && method.scope === 'Protected') {\n text = '#';\n }\n else {\n text = '~';\n }\n if (method.parameters) {\n for (var j = 0; j < method.parameters.length; j++) {\n if (method.parameters[parseInt(j.toString(), 10)].type) {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name + ':' + method.parameters[parseInt(j.toString(), 10)].type;\n }\n else {\n argumentText += method.parameters[parseInt(j.toString(), 10)].name;\n }\n if (j !== method.parameters.length - 1) {\n argumentText += ',';\n }\n }\n }\n if (method.name !== '') {\n if (text) {\n methodText += text + ' ' + method.name + '(' + argumentText + ')' + ' ' + ':' + ' ' + method.type;\n }\n }\n if (i !== methods.length) {\n var style = getStyle(node, method);\n var temp = new Node(diagram, 'nodes', {\n id: randomId() + '_umlMethods', verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n annotations: [\n {\n id: 'name', content: methodText, offset: { x: 0, y: 0.5 },\n style: {\n bold: true, fontSize: style.fontSize, color: style.color, fill: style.fill,\n textWrapping: textWrap, italic: style.italic, fontFamily: style.fontFamily,\n whiteSpace: style.whiteSpace, textAlign: style.textAlign,\n textDecoration: style.textDecoration, textOverflow: style.textOverflow\n },\n margin: { left: 14, right: 5 }, horizontalAlignment: 'Left'\n }\n ],\n style: {\n fill: node.style.fill, strokeColor: (node.style.strokeColor === 'black') ?\n '#ffffff00' : node.style.strokeColor\n }, minHeight: 25,\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize)\n }, true);\n temp.parentId = node.id;\n temp.umlIndex = index;\n diagram.add(temp);\n methodText = '';\n }\n break;\n }\n }\n}\n/**\n * addSeparator method \\\n *\n * @returns {void} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {SeperatorStyle} SeperatorStyle - provide the Seperator color.\n * @private\n */\nexport function addSeparator(stack, diagram, SeperatorStyle) {\n var lineObject = new Node(diagram, 'nodes', {\n id: randomId() + '_path', height: 1, constraints: NodeConstraints.Default & ~(NodeConstraints.Select),\n verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: {\n strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor,\n fill: SeperatorStyle ? SeperatorStyle.fill : 'white'\n }\n }, true);\n diagram.initObject(lineObject);\n diagram.nodes.push(lineObject);\n stack.children.push(lineObject.id);\n}\n/**\n * addSeparatorChild method -This method is designed to add a separator for the newly added child type to the UML node. \\\n *\n * @returns {void} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {Diagram} diagram - provide the diagram value.\n * @param {number} newIndex - provide the index value.\n * @private\n */\nexport function addSeparatorChild(stack, diagram, newIndex) {\n var lineObject = new Node(diagram, 'nodes', {\n id: randomId() + '_path', height: 1, constraints: NodeConstraints.Default & ~(NodeConstraints.Select),\n verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n style: { strokeColor: (stack.style.strokeColor === 'black') ? '#ffffff00' : stack.style.strokeColor, fill: 'white' }\n }, true);\n lineObject.parentId = stack.id;\n lineObject.umlIndex = newIndex;\n diagram.add(lineObject);\n}\n/**\n * getStyle method \\\n *\n * @returns {TextStyleModel} addSeparator method .\\\n * @param { Node} stack - provide the stack value.\n * @param {UmlClassModel} node - provide the node value.\n * @private\n */\nexport function getStyle(stack, node) {\n var newStyle = {};\n var style = node.style;\n newStyle.fill = (style.fill !== 'transparent') ? style.fill : stack.style.fill;\n newStyle.color = style.color;\n newStyle.fontFamily = (style.fontFamily !== 'Arial') ? style.fontFamily : stack.style.fontFamily;\n newStyle.italic = style.italic;\n newStyle.bold = style.bold;\n newStyle.whiteSpace = style.whiteSpace;\n newStyle.textAlign = style.textAlign;\n newStyle.textWrapping = style.textWrapping;\n newStyle.textDecoration = style.textDecoration;\n newStyle.textOverflow = style.textOverflow;\n // newStyle.margin = style.mar\n newStyle.fontSize = (style.fontSize !== 12) ? style.fontSize : stack.style.fontSize;\n newStyle.strokeColor = (style.strokeColor !== 'black') ? style.strokeColor : stack.style.strokeColor;\n newStyle.strokeWidth = (style.strokeWidth !== 1) ? style.strokeWidth : stack.style.strokeWidth;\n return newStyle;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar LayoutInfo = /** @class */ (function (_super) {\n __extends(LayoutInfo, _super);\n function LayoutInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Horizontal')\n ], LayoutInfo.prototype, \"orientation\", void 0);\n __decorate([\n Property('Center')\n ], LayoutInfo.prototype, \"type\", void 0);\n __decorate([\n Property(undefined)\n ], LayoutInfo.prototype, \"offset\", void 0);\n __decorate([\n Property(false)\n ], LayoutInfo.prototype, \"enableRouting\", void 0);\n __decorate([\n Property([])\n ], LayoutInfo.prototype, \"children\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"assistants\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"level\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"hasSubTree\", void 0);\n __decorate([\n Property('')\n ], LayoutInfo.prototype, \"rows\", void 0);\n return LayoutInfo;\n}(ChildProperty));\nexport { LayoutInfo };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable max-len */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable no-case-declarations */\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nimport { Property, Complex, Collection, ChildProperty, ComplexFactory, isBlazor, compile as baseTemplateCompiler } from '@syncfusion/ej2-base';\nimport { ShapeStyle, Margin, TextStyle, Shadow } from '../core/appearance';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { ElementAction } from '../enum/enum';\nimport { Container } from '../core/containers/container';\nimport { Canvas } from '../core/containers/canvas';\nimport { getBasicShape } from './dictionary/basic-shapes';\nimport { DiagramElement } from '../core/elements/diagram-element';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { ImageElement } from '../core/elements/image-element';\nimport { DiagramNativeElement } from '../core/elements/native-element';\nimport { PointPort } from './port';\nimport { SelectorConstraints } from '../enum/enum';\nimport { Annotation, ShapeAnnotation } from './annotation';\nimport { getPortShape, getIconShape } from './dictionary/common';\nimport { getFlowShape } from './dictionary/flow-shapes';\nimport { NodeConstraints } from '../enum/enum';\nimport { checkPortRestriction, setUMLActivityDefaults, getUMLActivityShapes } from './../utility/diagram-util';\nimport { updatePortEdges, initFixedUserHandlesSymbol } from './../utility/diagram-util';\nimport { setSwimLaneDefaults, setPortsEdges } from './../utility/diagram-util';\nimport { randomId, getFunction, cloneObject } from './../utility/base-util';\nimport { NodeBase } from './node-base';\nimport { canShadow } from './../utility/constraints-util';\nimport { PortVisibility } from '../enum/enum';\nimport { IconShape } from './icon';\nimport { measurePath, getContent, getTemplateContent } from './../utility/dom-util';\nimport { getFreeHandPath, getPolygonPath } from './../utility/path-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { StackPanel } from '../core/containers/stack-panel';\nimport { GridPanel } from '../core/containers/grid';\nimport { getULMClassifierShapes } from '../utility/uml-util';\nimport { initSwimLane } from './../utility/swim-lane-util';\nimport { Connector } from './connector';\nimport { UserHandle } from '../interaction/selector';\nimport { LayoutInfo } from '../diagram/layoutinfo';\nimport { SymbolSize } from './preview';\nimport { NodeFixedUserHandle } from './fixed-user-handle';\nvar getShapeType = function (obj) {\n if (obj) {\n //Removed isBlazor code\n switch (obj.type) {\n case 'Basic':\n return BasicShape;\n case 'Flow':\n return FlowShape;\n case 'Path':\n return Path;\n case 'Image':\n return Image;\n case 'Text':\n return Text;\n case 'Bpmn':\n return BpmnShape;\n case 'Native':\n return Native;\n case 'HTML':\n return Html;\n case 'UmlActivity':\n return UmlActivityShape;\n case 'UmlClassifier':\n return UmlClassifierShape;\n case 'SwimLane':\n return SwimLane;\n default:\n return BasicShape;\n }\n }\n return BasicShape;\n};\n/**\n * Defines the behavior of default shape\n */\nvar Shape = /** @class */ (function (_super) {\n __extends(Shape, _super);\n function Shape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Basic')\n ], Shape.prototype, \"type\", void 0);\n return Shape;\n}(ChildProperty));\nexport { Shape };\n/**\n * Defines the behavior of path shape\n */\nvar Path = /** @class */ (function (_super) {\n __extends(Path, _super);\n function Path() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * getClassName method \\\n *\n * @returns { string } toBounds method .\\\n *\n * @private\n */\n Path.prototype.getClassName = function () {\n return 'Path';\n };\n __decorate([\n Property('Path')\n ], Path.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Path.prototype, \"data\", void 0);\n return Path;\n}(Shape));\nexport { Path };\n/**\n * Defines the behavior of Native shape\n */\nvar Native = /** @class */ (function (_super) {\n __extends(Native, _super);\n function Native() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Native\n *\n * @private\n */\n Native.prototype.getClassName = function () {\n return 'Native';\n };\n __decorate([\n Property('Native')\n ], Native.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Native.prototype, \"content\", void 0);\n __decorate([\n Property('Stretch')\n ], Native.prototype, \"scale\", void 0);\n return Native;\n}(Shape));\nexport { Native };\n/**\n * Defines the behavior of html shape\n */\nvar Html = /** @class */ (function (_super) {\n __extends(Html, _super);\n function Html() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Html\n *\n * @private\n */\n Html.prototype.getClassName = function () {\n return 'Html';\n };\n __decorate([\n Property('HTML')\n ], Html.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Html.prototype, \"content\", void 0);\n return Html;\n}(Shape));\nexport { Html };\n/**\n * Defines the behavior of image shape\n */\nvar Image = /** @class */ (function (_super) {\n __extends(Image, _super);\n function Image() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Image\n *\n * @private\n */\n Image.prototype.getClassName = function () {\n return 'Image';\n };\n __decorate([\n Property('Image')\n ], Image.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Image.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Image.prototype, \"align\", void 0);\n return Image;\n}(Shape));\nexport { Image };\n/**\n * Defines the behavior of the text shape\n */\nvar Text = /** @class */ (function (_super) {\n __extends(Text, _super);\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Text\n *\n * @private\n */\n Text.prototype.getClassName = function () {\n return 'Text';\n };\n __decorate([\n Property('Text')\n ], Text.prototype, \"type\", void 0);\n __decorate([\n Property('')\n ], Text.prototype, \"content\", void 0);\n __decorate([\n Complex({}, Margin)\n ], Text.prototype, \"margin\", void 0);\n return Text;\n}(Shape));\nexport { Text };\n/**\n * Defines the behavior of the basic shape\n */\nvar BasicShape = /** @class */ (function (_super) {\n __extends(BasicShape, _super);\n function BasicShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BasicShape\n *\n * @private\n *\n */\n BasicShape.prototype.getClassName = function () {\n return 'BasicShape';\n };\n __decorate([\n Property('Basic')\n ], BasicShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], BasicShape.prototype, \"shape\", void 0);\n __decorate([\n Property(0)\n ], BasicShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], BasicShape.prototype, \"points\", void 0);\n return BasicShape;\n}(Shape));\nexport { BasicShape };\n/**\n * Defines the behavior of the flow shape\n */\nvar FlowShape = /** @class */ (function (_super) {\n __extends(FlowShape, _super);\n function FlowShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class FlowShape\n *\n * @private\n */\n FlowShape.prototype.getClassName = function () {\n return 'FlowShape';\n };\n __decorate([\n Property('Flow')\n ], FlowShape.prototype, \"type\", void 0);\n __decorate([\n Property('Terminator')\n ], FlowShape.prototype, \"shape\", void 0);\n return FlowShape;\n}(Shape));\nexport { FlowShape };\n/**\n * Defines the behavior of the bpmn gateway shape\n */\nvar BpmnGateway = /** @class */ (function (_super) {\n __extends(BpmnGateway, _super);\n function BpmnGateway() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnGateway\n *\n * @private\n */\n BpmnGateway.prototype.getClassName = function () {\n return 'BpmnGateway';\n };\n __decorate([\n Property('None')\n ], BpmnGateway.prototype, \"type\", void 0);\n return BpmnGateway;\n}(ChildProperty));\nexport { BpmnGateway };\n/**\n * Defines the behavior of the bpmn data object\n */\nvar BpmnDataObject = /** @class */ (function (_super) {\n __extends(BpmnDataObject, _super);\n function BpmnDataObject() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnDataObject\n *\n * @private\n */\n BpmnDataObject.prototype.getClassName = function () {\n return 'BpmnDataObject';\n };\n __decorate([\n Property('None')\n ], BpmnDataObject.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnDataObject.prototype, \"collection\", void 0);\n return BpmnDataObject;\n}(ChildProperty));\nexport { BpmnDataObject };\n/**\n * Defines the behavior of the bpmn task shape\n */\nvar BpmnTask = /** @class */ (function (_super) {\n __extends(BpmnTask, _super);\n function BpmnTask() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"type\", void 0);\n __decorate([\n Property('None')\n ], BpmnTask.prototype, \"loop\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"call\", void 0);\n __decorate([\n Property(false)\n ], BpmnTask.prototype, \"compensation\", void 0);\n return BpmnTask;\n}(ChildProperty));\nexport { BpmnTask };\n/**\n * Defines the behavior of the bpmn Event shape\n */\nvar BpmnEvent = /** @class */ (function (_super) {\n __extends(BpmnEvent, _super);\n function BpmnEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnEvent\n *\n * @private\n */\n BpmnEvent.prototype.getClassName = function () {\n return 'BpmnEvent';\n };\n __decorate([\n Property('Start')\n ], BpmnEvent.prototype, \"event\", void 0);\n __decorate([\n Property('None')\n ], BpmnEvent.prototype, \"trigger\", void 0);\n return BpmnEvent;\n}(ChildProperty));\nexport { BpmnEvent };\n/**\n * Defines the behavior of the bpmn sub event\n */\nvar BpmnSubEvent = /** @class */ (function (_super) {\n __extends(BpmnSubEvent, _super);\n function BpmnSubEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnSubEvent\n *\n * @private\n */\n BpmnSubEvent.prototype.getClassName = function () {\n return 'BpmnSubEvent';\n };\n __decorate([\n Property('None')\n ], BpmnSubEvent.prototype, \"trigger\", void 0);\n __decorate([\n Property('Start')\n ], BpmnSubEvent.prototype, \"event\", void 0);\n __decorate([\n Property('')\n ], BpmnSubEvent.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Point)\n ], BpmnSubEvent.prototype, \"offset\", void 0);\n __decorate([\n Collection([], ShapeAnnotation)\n ], BpmnSubEvent.prototype, \"annotations\", void 0);\n __decorate([\n Collection([], PointPort)\n ], BpmnSubEvent.prototype, \"ports\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], BpmnSubEvent.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], BpmnSubEvent.prototype, \"margin\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Center')\n ], BpmnSubEvent.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubEvent.prototype, \"visible\", void 0);\n return BpmnSubEvent;\n}(ChildProperty));\nexport { BpmnSubEvent };\n/**\n * Defines the behavior of the BpmnTransactionSubProcess\n */\nvar BpmnTransactionSubProcess = /** @class */ (function (_super) {\n __extends(BpmnTransactionSubProcess, _super);\n function BpmnTransactionSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ id: 'success', event: 'End', offset: { x: 1, y: 0.5 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"success\", void 0);\n __decorate([\n Complex({ id: 'failure', event: 'Intermediate', trigger: 'Error', offset: { x: 0.25, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"failure\", void 0);\n __decorate([\n Complex({ id: 'cancel', event: 'Intermediate', trigger: 'Cancel', offset: { x: 0.75, y: 1 } }, BpmnSubEvent)\n ], BpmnTransactionSubProcess.prototype, \"cancel\", void 0);\n return BpmnTransactionSubProcess;\n}(ChildProperty));\nexport { BpmnTransactionSubProcess };\n/**\n * Defines the behavior of the BPMNSubProcess\n */\nvar BpmnSubProcess = /** @class */ (function (_super) {\n __extends(BpmnSubProcess, _super);\n function BpmnSubProcess() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"type\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"adhoc\", void 0);\n __decorate([\n Property('Default')\n ], BpmnSubProcess.prototype, \"boundary\", void 0);\n __decorate([\n Property(false)\n ], BpmnSubProcess.prototype, \"compensation\", void 0);\n __decorate([\n Property('None')\n ], BpmnSubProcess.prototype, \"loop\", void 0);\n __decorate([\n Property(true)\n ], BpmnSubProcess.prototype, \"collapsed\", void 0);\n __decorate([\n Collection([], BpmnSubEvent)\n ], BpmnSubProcess.prototype, \"events\", void 0);\n __decorate([\n Complex({}, BpmnTransactionSubProcess)\n ], BpmnSubProcess.prototype, \"transaction\", void 0);\n __decorate([\n Property(undefined)\n ], BpmnSubProcess.prototype, \"processes\", void 0);\n return BpmnSubProcess;\n}(ChildProperty));\nexport { BpmnSubProcess };\n/**\n * Defines the behavior of the bpmn activity shape\n */\nvar BpmnActivity = /** @class */ (function (_super) {\n __extends(BpmnActivity, _super);\n function BpmnActivity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnActivity\n *\n * @private\n */\n BpmnActivity.prototype.getClassName = function () {\n return 'BpmnActivity';\n };\n __decorate([\n Property('Task')\n ], BpmnActivity.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnTask)\n ], BpmnActivity.prototype, \"task\", void 0);\n __decorate([\n Complex({}, BpmnSubProcess)\n ], BpmnActivity.prototype, \"subProcess\", void 0);\n return BpmnActivity;\n}(ChildProperty));\nexport { BpmnActivity };\n/**\n * Defines the behavior of the bpmn annotation\n\n */\nvar BpmnAnnotation = /** @class */ (function (_super) {\n __extends(BpmnAnnotation, _super);\n // tslint:disable-next-line:no-any\n function BpmnAnnotation(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n /**\n * @private\n * Returns the name of class BpmnAnnotation\n */\n BpmnAnnotation.prototype.getClassName = function () {\n return 'BpmnAnnotation';\n };\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], BpmnAnnotation.prototype, \"id\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"angle\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], BpmnAnnotation.prototype, \"width\", void 0);\n __decorate([\n Property(0)\n ], BpmnAnnotation.prototype, \"length\", void 0);\n return BpmnAnnotation;\n}(ChildProperty));\nexport { BpmnAnnotation };\nvar BpmnTextAnnotation = /** @class */ (function (_super) {\n __extends(BpmnTextAnnotation, _super);\n function BpmnTextAnnotation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], BpmnTextAnnotation.prototype, \"textAnnotationTarget\", void 0);\n __decorate([\n Property('Auto')\n ], BpmnTextAnnotation.prototype, \"textAnnotationDirection\", void 0);\n return BpmnTextAnnotation;\n}(ChildProperty));\nexport { BpmnTextAnnotation };\n/**\n * Defines the behavior of the bpmn shape\n */\nvar BpmnShape = /** @class */ (function (_super) {\n __extends(BpmnShape, _super);\n function BpmnShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class BpmnShape\n *\n * @private\n */\n BpmnShape.prototype.getClassName = function () {\n return 'BpmnShape';\n };\n __decorate([\n Property('Bpmn')\n ], BpmnShape.prototype, \"type\", void 0);\n __decorate([\n Property('Event')\n ], BpmnShape.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], BpmnShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], BpmnShape.prototype, \"gateway\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], BpmnShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], BpmnShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], BpmnShape.prototype, \"annotation\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], BpmnShape.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, BpmnTextAnnotation)\n ], BpmnShape.prototype, \"textAnnotation\", void 0);\n return BpmnShape;\n}(Shape));\nexport { BpmnShape };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlActivityShape = /** @class */ (function (_super) {\n __extends(UmlActivityShape, _super);\n function UmlActivityShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlActivityShape\n *\n * @private\n */\n UmlActivityShape.prototype.getClassName = function () {\n return 'UmlActivityShape';\n };\n __decorate([\n Property('UmlActivity')\n ], UmlActivityShape.prototype, \"type\", void 0);\n __decorate([\n Property('Action')\n ], UmlActivityShape.prototype, \"shape\", void 0);\n return UmlActivityShape;\n}(Shape));\nexport { UmlActivityShape };\n/**\n * Defines the behavior of the uml class method\n */\nvar MethodArguments = /** @class */ (function (_super) {\n __extends(MethodArguments, _super);\n function MethodArguments() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class MethodArguments\n *\n * @private\n */\n MethodArguments.prototype.getClassName = function () {\n return 'MethodArguments';\n };\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], MethodArguments.prototype, \"type\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], MethodArguments.prototype, \"style\", void 0);\n return MethodArguments;\n}(ChildProperty));\nexport { MethodArguments };\n/**\n * Defines the behavior of the uml class attributes\n */\nvar UmlClassAttribute = /** @class */ (function (_super) {\n __extends(UmlClassAttribute, _super);\n function UmlClassAttribute() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassAttribute\n *\n * @private\n */\n UmlClassAttribute.prototype.getClassName = function () {\n return 'UmlClassAttribute';\n };\n __decorate([\n Property('Public')\n ], UmlClassAttribute.prototype, \"scope\", void 0);\n __decorate([\n Property(false)\n ], UmlClassAttribute.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlClassAttribute.prototype, \"separatorStyle\", void 0);\n return UmlClassAttribute;\n}(MethodArguments));\nexport { UmlClassAttribute };\n/**\n * Defines the behavior of the uml class method\n */\nvar UmlClassMethod = /** @class */ (function (_super) {\n __extends(UmlClassMethod, _super);\n function UmlClassMethod() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassMethod\n *\n * @private\n */\n UmlClassMethod.prototype.getClassName = function () {\n return 'UmlClassMethod';\n };\n __decorate([\n Collection([], MethodArguments)\n ], UmlClassMethod.prototype, \"parameters\", void 0);\n return UmlClassMethod;\n}(UmlClassAttribute));\nexport { UmlClassMethod };\n/**\n * Defines the behavior of the uml class shapes\n */\nvar UmlClass = /** @class */ (function (_super) {\n __extends(UmlClass, _super);\n function UmlClass() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClass\n *\n * @private\n */\n UmlClass.prototype.getClassName = function () {\n return 'UmlClass';\n };\n __decorate([\n Property('')\n ], UmlClass.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlClassAttribute)\n ], UmlClass.prototype, \"attributes\", void 0);\n __decorate([\n Collection([], UmlClassMethod)\n ], UmlClass.prototype, \"methods\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlClass.prototype, \"style\", void 0);\n return UmlClass;\n}(ChildProperty));\nexport { UmlClass };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlInterface = /** @class */ (function (_super) {\n __extends(UmlInterface, _super);\n function UmlInterface() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlInterface\n *\n * @private\n */\n UmlInterface.prototype.getClassName = function () {\n return 'UmlInterface';\n };\n __decorate([\n Property(false)\n ], UmlInterface.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlInterface.prototype, \"separatorStyle\", void 0);\n return UmlInterface;\n}(UmlClass));\nexport { UmlInterface };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumerationMember = /** @class */ (function (_super) {\n __extends(UmlEnumerationMember, _super);\n function UmlEnumerationMember() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumerationMember\n *\n * @private\n */\n UmlEnumerationMember.prototype.getClassName = function () {\n return 'UmlEnumerationMember';\n };\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], UmlEnumerationMember.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], UmlEnumerationMember.prototype, \"isSeparator\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], UmlEnumerationMember.prototype, \"separatorStyle\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumerationMember.prototype, \"style\", void 0);\n return UmlEnumerationMember;\n}(ChildProperty));\nexport { UmlEnumerationMember };\n/**\n * Defines the behavior of the uml interface shapes\n */\nvar UmlEnumeration = /** @class */ (function (_super) {\n __extends(UmlEnumeration, _super);\n function UmlEnumeration() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlEnumeration\n *\n * @private\n */\n UmlEnumeration.prototype.getClassName = function () {\n return 'UmlEnumeration';\n };\n __decorate([\n Property('')\n ], UmlEnumeration.prototype, \"name\", void 0);\n __decorate([\n Collection([], UmlEnumerationMember)\n ], UmlEnumeration.prototype, \"members\", void 0);\n __decorate([\n Complex({}, TextStyle)\n ], UmlEnumeration.prototype, \"style\", void 0);\n return UmlEnumeration;\n}(ChildProperty));\nexport { UmlEnumeration };\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar UmlClassifierShape = /** @class */ (function (_super) {\n __extends(UmlClassifierShape, _super);\n function UmlClassifierShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n UmlClassifierShape.prototype.getClassName = function () {\n return 'UmlClassifierShape';\n };\n __decorate([\n Property('UmlClassifier')\n ], UmlClassifierShape.prototype, \"type\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], UmlClassifierShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], UmlClassifierShape.prototype, \"interfaceShape\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], UmlClassifierShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], UmlClassifierShape.prototype, \"classifier\", void 0);\n return UmlClassifierShape;\n}(Shape));\nexport { UmlClassifierShape };\n/* tslint:disable */\n/**\n * Defines the behavior of the UMLActivity shape\n */\nvar DiagramShape = /** @class */ (function (_super) {\n __extends(DiagramShape, _super);\n function DiagramShape() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class UmlClassifierShape\n *\n * @private\n */\n DiagramShape.prototype.getClassName = function () {\n return 'DiagramShape';\n };\n __decorate([\n Property('Basic')\n ], DiagramShape.prototype, \"type\", void 0);\n __decorate([\n Property('Rectangle')\n ], DiagramShape.prototype, \"basicShape\", void 0);\n __decorate([\n Property('Terminator')\n ], DiagramShape.prototype, \"flowShape\", void 0);\n __decorate([\n Property('Event')\n ], DiagramShape.prototype, \"bpmnShape\", void 0);\n __decorate([\n Property('Action')\n ], DiagramShape.prototype, \"umlActivityShape\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"data\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"textContent\", void 0);\n __decorate([\n Property('Stretch')\n ], DiagramShape.prototype, \"scale\", void 0);\n __decorate([\n Property('')\n ], DiagramShape.prototype, \"source\", void 0);\n __decorate([\n Property('None')\n ], DiagramShape.prototype, \"align\", void 0);\n __decorate([\n Complex({}, Margin)\n ], DiagramShape.prototype, \"margin\", void 0);\n __decorate([\n Property(0)\n ], DiagramShape.prototype, \"cornerRadius\", void 0);\n __decorate([\n Collection([], Point)\n ], DiagramShape.prototype, \"points\", void 0);\n __decorate([\n Complex({}, BpmnDataObject)\n ], DiagramShape.prototype, \"dataObject\", void 0);\n __decorate([\n Complex({}, BpmnEvent)\n ], DiagramShape.prototype, \"event\", void 0);\n __decorate([\n Complex({}, BpmnGateway)\n ], DiagramShape.prototype, \"gateway\", void 0);\n __decorate([\n Collection([], BpmnAnnotation)\n ], DiagramShape.prototype, \"annotations\", void 0);\n __decorate([\n Complex({}, BpmnActivity)\n ], DiagramShape.prototype, \"activity\", void 0);\n __decorate([\n Complex({}, BpmnAnnotation)\n ], DiagramShape.prototype, \"annotation\", void 0);\n __decorate([\n Complex({}, UmlEnumeration)\n ], DiagramShape.prototype, \"enumerationShape\", void 0);\n __decorate([\n Property('Class')\n ], DiagramShape.prototype, \"classifier\", void 0);\n __decorate([\n Complex({}, UmlClass)\n ], DiagramShape.prototype, \"classShape\", void 0);\n __decorate([\n Complex({}, UmlInterface)\n ], DiagramShape.prototype, \"interfaceShape\", void 0);\n return DiagramShape;\n}(ChildProperty));\nexport { DiagramShape };\n/* tslint:enable */\n/**\n * Defines the behavior of nodes\n */\nvar Node = /** @class */ (function (_super) {\n __extends(Node, _super);\n function Node(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.isCanvasUpdate = false;\n /** @private */\n _this.status = 'None';\n /** @private */\n _this.parentId = '';\n /** @private */\n _this.processId = '';\n /** @private */\n _this.umlIndex = -1;\n /** @private */\n _this.outEdges = [];\n /** @private */\n _this.inEdges = [];\n /** @private */\n _this.isHeader = false;\n /** @private */\n _this.isLane = false;\n /** @private */\n _this.isPhase = false;\n var nodeDefault;\n if (_this.children && _this.children.length > 0) {\n nodeDefault = defaultValue;\n if (!nodeDefault.style || !nodeDefault.style.fill) {\n _this.style.fill = 'transparent';\n }\n if (!nodeDefault.style || !nodeDefault.style.strokeColor) {\n _this.style.strokeColor = 'transparent';\n }\n }\n if (_this.shape && _this.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(defaultValue, _this);\n }\n if (_this.shape && _this.shape.type === 'SwimLane') {\n setSwimLaneDefaults(defaultValue, _this);\n }\n if (_this.ports && _this.ports.length) {\n setPortsEdges(_this);\n }\n return _this;\n }\n Object.defineProperty(Node.prototype, \"actualSize\", {\n /** @private */\n get: function () {\n if (this.wrapper !== null) {\n return this.wrapper.actualSize;\n }\n else {\n return new Size(this.width || 0, this.height || 0);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Allows to initialize the UI of a node\n */\n /** @private */\n /* tslint:disable */\n // tslint:disable-next-line:no-any\n Node.prototype.init = function (diagram) {\n var content;\n if (this.shape.type !== 'SwimLane') {\n content = new DiagramElement();\n }\n else {\n content = new GridPanel();\n }\n var textStyle;\n var changedProperties = 'changedProperties';\n var oldProperties = 'oldProperties';\n this.shape[\"\" + changedProperties] = {};\n this.shape[\"\" + oldProperties] = {};\n switch (this.shape.type) {\n case 'Path':\n if ((!isBlazor() && (this.type === 'Freehand'))) {\n var path = new PathElement();\n path.data = getFreeHandPath(this.shape.points);\n content = path;\n }\n else {\n var pathContent = new PathElement();\n pathContent.data = this.shape.data;\n content = pathContent;\n }\n break;\n case 'Image':\n var imageContent = new ImageElement();\n imageContent.source = this.shape.source;\n imageContent.imageAlign = this.shape.align;\n imageContent.imageScale = this.shape.scale;\n content = imageContent;\n break;\n case 'Text':\n var textContent = new TextElement();\n textContent.content = this.shape.content;\n content = textContent;\n textStyle = this.style;\n content.style = textStyle;\n break;\n case 'Basic':\n if ((!isBlazor() && this.shape.shape === 'Rectangle')) {\n var basicshape = new DiagramElement();\n content = basicshape;\n content.cornerRadius = this.shape.cornerRadius;\n }\n else if ((!isBlazor() && this.shape.shape === 'Polygon')) {\n var path = new PathElement();\n path.data = getPolygonPath(this.shape.points);\n content = path;\n }\n else {\n var basicshape = new PathElement();\n var basicshapedata = getBasicShape(this.shape.shape);\n basicshape.data = basicshapedata;\n content = basicshape;\n }\n break;\n case 'Flow':\n var flowshape = new PathElement();\n var flowshapedata = getFlowShape(this.shape.shape);\n flowshape.data = flowshapedata;\n content = flowshape;\n break;\n case 'UmlActivity':\n var umlactivityshape = new PathElement();\n content = getUMLActivityShapes(umlactivityshape, content, this);\n break;\n case 'Bpmn':\n if (diagram.bpmnModule) {\n content = diagram.bpmnModule.initBPMNContent(content, this, diagram);\n this.wrapper.elementActions = this.wrapper.elementActions | ElementAction.ElementIsGroup;\n var subProcess = this.shape.activity.subProcess;\n if (subProcess.processes && subProcess.processes.length) {\n var children = this.shape.activity.subProcess.processes;\n for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n var i = children_1[_i];\n if (diagram.nameTable[\"\" + i] && (!diagram.nameTable[\"\" + i].processId || diagram.nameTable[\"\" + i].processId === this.id)) {\n diagram.nameTable[\"\" + i].processId = this.id;\n if (subProcess.collapsed) {\n diagram.updateElementVisibility(diagram.nameTable[\"\" + i].wrapper, diagram.nameTable[\"\" + i], !subProcess.collapsed);\n }\n content.children.push(diagram.nameTable[\"\" + i].wrapper);\n }\n }\n }\n }\n else {\n console.warn('[WARNING] :: Module \"BpmnDiagrams\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n break;\n case 'Native':\n var nativeContent = new DiagramNativeElement(this.id, diagram.element.id);\n nativeContent.content = this.shape.content;\n nativeContent.scale = this.shape.scale;\n content = nativeContent;\n break;\n case 'HTML':\n var htmlContent = new DiagramHtmlElement(this.id, diagram.element.id, undefined, diagram.nodeTemplate);\n if (this.shape.content && (typeof (this.shape.content) === 'string' || !diagram.isReact)) {\n htmlContent.content = this.shape.content;\n }\n else if (diagram.nodeTemplate) {\n htmlContent.isTemplate = true;\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n //Task 834121: Content-Security-Policy support for diagram.\n if (this.shape.content && typeof (this.shape.content) === 'function' && diagram.isReact) {\n htmlContent.isTemplate = true;\n htmlContent.templateFn = baseTemplateCompiler(this.shape.content);\n htmlContent.template = htmlContent.content = getContent(htmlContent, true, this);\n }\n content = htmlContent;\n break;\n case 'UmlClassifier':\n // let umlClassifierShape: StackPanel = new StackPanel();\n content = getULMClassifierShapes(content, this, diagram);\n break;\n case 'SwimLane':\n this.annotations = [];\n this.ports = [];\n content.cellStyle.fill = 'none';\n content.cellStyle.strokeColor = 'none';\n this.container = { type: 'Grid', orientation: this.shape.orientation };\n content.id = this.id;\n this.container.orientation = this.shape.orientation;\n this.constraints |= NodeConstraints.HideThumbs;\n initSwimLane(content, diagram, this);\n break;\n }\n content.id = this.id + '_content';\n content.relativeMode = 'Object';\n // (EJ2-56444) - Added the below code to check whether node shape type is basic and shape is rectangle.\n // This code added due to while render radial gradient in canvas mode we want to check this type and pass args according to that\n if (this.shape.type === 'Basic' && this.shape.shape === 'Rectangle') {\n content.shapeType = 'Rectangle';\n }\n else {\n content.shapeType = 'Others';\n }\n if (this.width !== undefined) {\n content.width = this.width;\n }\n content.horizontalAlignment = 'Stretch';\n if (this.height !== undefined) {\n content.height = this.height;\n }\n if (this.minHeight !== undefined) {\n content.minHeight = this.minHeight;\n }\n if (this.maxHeight !== undefined) {\n content.maxHeight = this.maxHeight;\n }\n if (this.minWidth !== undefined) {\n content.minWidth = this.minWidth;\n }\n if (this.maxWidth !== undefined) {\n content.maxWidth = this.maxWidth;\n }\n if ((!isBlazor() && this.shape.shape === 'Rectangle' && !this.shape.cornerRadius)) {\n content.isRectElement = true;\n }\n content.verticalAlignment = 'Stretch';\n if ((this.shape instanceof Text)) {\n content.margin = this.shape.margin;\n }\n // 923325: Grey area visible while drawing \"Freehand\" connector with DragSegmentThumb enabled\n if (canShadow(this) && (this.type !== 'Freehand')) {\n if ((this.constraints & NodeConstraints.Shadow) !== 0) {\n content.shadow = this.shadow;\n }\n }\n if ((this.shape.type !== 'Bpmn' || ((!isBlazor() && this.shape.shape === 'Message')) ||\n ((!isBlazor() && this.shape.shape === 'DataSource'))) && ((this.shape.type !== 'UmlActivity' || ((!isBlazor() && this.shape.shape !== 'FinalNode'))))) {\n if (this.shape.type !== 'Text') {\n content.style = this.style;\n this.oldGradientValue = (this.style.gradient) ? cloneObject(this.style.gradient) : null;\n }\n }\n if (!(this.wrapper.elementActions & ElementAction.ElementIsGroup) && this.flip === 'Horizontal' || this.flip === 'Vertical') {\n content.flip = this.flip;\n content.flipMode = this.flipMode;\n }\n return content;\n };\n /* tslint:enable */\n /** @private */\n Node.prototype.initContainer = function () {\n if (!this.id) {\n this.id = randomId();\n }\n // Creates canvas element\n var canvas;\n if (!this.container || this.shape instanceof SwimLane) {\n canvas = this.children ? new Container() : new Canvas();\n }\n else {\n switch (this.container.type) {\n case 'Canvas':\n canvas = new Canvas();\n break;\n case 'Stack':\n canvas = new StackPanel();\n break;\n case 'Grid':\n canvas = new GridPanel();\n canvas.setDefinitions(this.rows, this.columns);\n break;\n }\n }\n canvas.id = this.id;\n canvas.offsetX = this.offsetX;\n canvas.offsetY = this.offsetY;\n canvas.visible = this.visible;\n canvas.horizontalAlignment = this.horizontalAlignment;\n canvas.verticalAlignment = this.verticalAlignment;\n //903772 - Swimlane Save and Load Issue\n if (this.container && this.shape.type !== 'SwimLane') {\n canvas.width = this.width;\n canvas.height = this.height;\n if (this.container.type === 'Stack') {\n canvas.orientation = this.container.orientation;\n }\n }\n canvas.style.fill = this.backgroundColor;\n canvas.style.strokeColor = this.borderColor;\n canvas.style.strokeWidth = this.borderWidth;\n canvas.rotateAngle = this.rotateAngle;\n canvas.minHeight = this.minHeight;\n canvas.minWidth = this.minWidth;\n canvas.maxHeight = this.maxHeight;\n canvas.maxWidth = this.maxWidth;\n canvas.pivot = this.pivot;\n canvas.margin = this.margin;\n canvas.flip = this.flip;\n canvas.flipMode = this.flipMode;\n this.wrapper = canvas;\n return canvas;\n };\n /** @private */\n Node.prototype.initPorts = function (accessibilityContent, container) {\n for (var i = 0; this.ports !== undefined, i < this.ports.length; i++) {\n this.initPort(accessibilityContent, container, this.ports[parseInt(i.toString(), 10)]);\n }\n };\n /** @private */\n Node.prototype.initPort = function (accessibilityContent, container, port) {\n var canvas = this.wrapper;\n var portWrapper;\n // eslint-disable-next-line prefer-const\n portWrapper = this.initPortWrapper(port, this);\n // tslint:disable-next-line:no-any\n var wrapperContent;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(portWrapper, this);\n }\n portWrapper.description = wrapperContent ? wrapperContent : portWrapper.id;\n portWrapper.inversedAlignment = canvas.inversedAlignment;\n portWrapper.elementActions = portWrapper.elementActions | ElementAction.ElementIsPort;\n container.children.push(portWrapper);\n };\n Node.prototype.getIconOffet = function (layout, icon) {\n var x;\n var y;\n if (layout.orientation === 'BottomToTop') {\n x = icon.offset.x;\n y = 1 - icon.offset.y;\n }\n else if (layout.orientation === 'LeftToRight') {\n x = icon.offset.y;\n y = icon.offset.x;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = 1 - icon.offset.y;\n y = icon.offset.x;\n }\n else {\n x = icon.offset.x;\n y = icon.offset.y;\n }\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initIcons = function (accessibilityContent, layout, container, diagramId) {\n var canvas = this.wrapper;\n var offset;\n var icon = this.isExpanded ? this.expandIcon : this.collapseIcon;\n if (icon.shape !== 'None') {\n var iconContainer = new Canvas();\n iconContainer.float = true;\n var children = [];\n iconContainer.id = this.id + '_icon_content';\n iconContainer.children = children;\n iconContainer.height = icon.height;\n iconContainer.width = icon.width;\n iconContainer.style.strokeColor = 'transparent';\n iconContainer.margin = icon.margin;\n iconContainer.horizontalAlignment = 'Center';\n iconContainer.verticalAlignment = 'Center';\n iconContainer.visible = this.visible;\n iconContainer.cornerRadius = icon.cornerRadius;\n offset = this.getIconOffet(layout, icon);\n iconContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n iconContainer.relativeMode = 'Point';\n this.initIconSymbol(icon, iconContainer, accessibilityContent, diagramId);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(icon, this);\n }\n iconContainer.description = wrapperContent ? wrapperContent : iconContainer.id;\n iconContainer.inversedAlignment = canvas.inversedAlignment;\n container.children.push(iconContainer);\n }\n };\n // 882378 - Added below code to provide template support for fixedUserHandles in nodes\n /** @private */\n Node.prototype.initFixedUserHandles = function (fixedUserHandle, fixedUserHandleTemplate, diagramId) {\n var fixedUserHandleContainer;\n if (fixedUserHandle.pathData === '' && fixedUserHandleTemplate) {\n fixedUserHandleContainer = new DiagramHtmlElement(this.id, diagramId, undefined, fixedUserHandleTemplate);\n fixedUserHandleContainer.isTemplate = true;\n fixedUserHandleContainer.template = getContent(fixedUserHandleContainer, true, fixedUserHandle);\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n }\n else {\n var canvas = this.wrapper;\n fixedUserHandleContainer = new Canvas();\n var children = [];\n fixedUserHandleContainer.children = children;\n fixedUserHandle.id = fixedUserHandle.id || randomId();\n fixedUserHandleContainer.id = this.id + '_' + fixedUserHandle.id;\n var symbolIcon = initFixedUserHandlesSymbol(fixedUserHandle, fixedUserHandleContainer);\n fixedUserHandleContainer.children.push(symbolIcon);\n fixedUserHandleContainer.inversedAlignment = canvas.inversedAlignment;\n }\n fixedUserHandleContainer.float = true;\n fixedUserHandleContainer.height = fixedUserHandle.height;\n fixedUserHandleContainer.width = fixedUserHandle.width;\n fixedUserHandleContainer.style.strokeColor = fixedUserHandle.handleStrokeColor;\n fixedUserHandleContainer.style.fill = fixedUserHandle.fill;\n fixedUserHandleContainer.style.strokeWidth = fixedUserHandle.handleStrokeWidth;\n fixedUserHandleContainer.margin = fixedUserHandle.margin;\n fixedUserHandleContainer.visible = fixedUserHandle.visibility;\n fixedUserHandleContainer.cornerRadius = fixedUserHandle.cornerRadius;\n fixedUserHandleContainer.horizontalAlignment = 'Center';\n fixedUserHandleContainer.verticalAlignment = 'Center';\n var offset = this.getfixedUserHandleOffet(fixedUserHandle);\n fixedUserHandleContainer.setOffsetWithRespectToBounds(offset.x, offset.y, 'Fraction');\n fixedUserHandleContainer.relativeMode = 'Point';\n fixedUserHandleContainer.description = fixedUserHandleContainer.id;\n return fixedUserHandleContainer;\n };\n Node.prototype.getfixedUserHandleOffet = function (fixedUserHandle) {\n //let x: number;\n //let y: number;\n var x = fixedUserHandle.offset.x;\n var y = fixedUserHandle.offset.y;\n return { x: x, y: y };\n };\n /** @private */\n Node.prototype.initAnnotations = function (accessibilityContent, container, diagramId, virtualize, annotationTemplate) {\n var annotation;\n for (var i = 0; this.annotations !== undefined, i < this.annotations.length; i++) {\n annotation = this.initAnnotationWrapper(this.annotations[parseInt(i.toString(), 10)], diagramId, virtualize, i, annotationTemplate);\n // tslint:disable-next-line:no-any\n var wrapperContent = void 0;\n var contentAccessibility = getFunction(accessibilityContent);\n if (contentAccessibility) {\n wrapperContent = contentAccessibility(annotation, this);\n }\n annotation.description = wrapperContent ? wrapperContent : annotation.id;\n annotation.inversedAlignment = container.inversedAlignment;\n container.children.push(annotation);\n }\n };\n /** @private */\n Node.prototype.initPortWrapper = function (ports, Node) {\n ports.id = ports.id || randomId();\n // Creates port element\n var portContent = new PathElement();\n portContent.height = ports.height;\n portContent.width = ports.width;\n portContent.connectionDirection = ports.connectionDirection;\n var pathdata = (ports.shape === 'Custom') ? ports.pathData : getPortShape(ports.shape);\n portContent.id = this.id + '_' + (ports.id);\n portContent.margin = ports.margin;\n portContent.data = pathdata;\n //EJ2-826617 - For BPMN node port flip is to be defined.\n //EJ2-830012 - Complex-hierarchical tree breaks due to Node undefined\n if (Node) {\n if (Node.shape.type === 'Bpmn') {\n portContent.flip = this.flip;\n }\n }\n var style = ports.style;\n portContent.style = {\n fill: style.fill, strokeColor: style.strokeColor, gradient: null,\n opacity: style.opacity, strokeDashArray: style.strokeDashArray, strokeWidth: style.strokeWidth\n };\n portContent.horizontalAlignment = ports.horizontalAlignment;\n portContent.verticalAlignment = ports.verticalAlignment;\n if (Node && Node.flipMode !== 'Label' && Node.flipMode !== 'None') {\n portContent = updatePortEdges(portContent, this.flip, ports);\n }\n else {\n portContent = updatePortEdges(portContent, 'None', ports);\n }\n if (this.width !== undefined || this.height !== undefined) {\n portContent.float = true;\n }\n portContent.relativeMode = 'Point';\n portContent.visible = checkPortRestriction(ports, PortVisibility.Visible) &&\n !checkPortRestriction(ports, PortVisibility.Hover) && !checkPortRestriction(ports, PortVisibility.Connect) ? true : false;\n portContent.elementActions = portContent.elementActions | ElementAction.ElementIsPort;\n return portContent;\n };\n /** @private */\n Node.prototype.initAnnotationWrapper = function (annotation, diagramId, virtualize, value, annotationTemplate) {\n annotation.id = annotation.id || value + 'annotation' || randomId();\n var label = annotation;\n var annotationcontent;\n //Removed isBlazor code\n if (diagramId && (annotation.template || annotation.annotationType === 'Template'\n || (annotationTemplate && annotation.content === ''))) {\n annotationcontent = new DiagramHtmlElement(this.id, diagramId, annotation.id, annotationTemplate);\n // Task 834121: Content-Security-Policy support for diagram\n var diagramElement = document.getElementById(diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[\"\" + instance][0];\n if (annotation.template && typeof annotation.template === 'function' && diagram.isReact) {\n annotationcontent.templateFn = baseTemplateCompiler(annotation.template);\n annotationcontent.isTemplate = true;\n }\n annotationcontent = getTemplateContent(annotationcontent, annotation, annotationTemplate, diagram);\n }\n else {\n annotationcontent = new TextElement();\n annotationcontent.canMeasure = !virtualize;\n var style = annotation.style;\n var link = annotation.hyperlink.link ? annotation.hyperlink : undefined;\n annotationcontent.style = {\n fill: style.fill, strokeColor: style.strokeColor, strokeWidth: style.strokeWidth,\n bold: style.bold, textWrapping: style.textWrapping,\n color: link ? link.color || annotationcontent.hyperlink.color : style.color, whiteSpace: style.whiteSpace,\n fontFamily: style.fontFamily, fontSize: style.fontSize, italic: style.italic, gradient: null, opacity: style.opacity,\n strokeDashArray: style.strokeDashArray, textAlign: style.textAlign, textOverflow: annotation.style.textOverflow,\n textDecoration: link ? link.textDecoration ||\n annotationcontent.hyperlink.textDecoration : style.textDecoration\n };\n annotationcontent.hyperlink.link = annotation.hyperlink.link || undefined;\n annotationcontent.hyperlink.hyperlinkOpenState = annotation.hyperlink.hyperlinkOpenState || undefined;\n annotationcontent.hyperlink.content = annotation.hyperlink.content || undefined;\n annotationcontent.hyperlink.textDecoration = annotation.hyperlink.textDecoration || undefined;\n annotationcontent.content = link ? link.content ||\n annotationcontent.hyperlink.link : annotation.content;\n }\n annotationcontent.constraints = annotation.constraints;\n annotationcontent.height = annotation.height;\n annotationcontent.width = annotation.width;\n annotationcontent.visible = annotation.visibility;\n //Bug 855273: Annotation visible property is not working while changing node visibility at runtime\n annotationcontent.annotationVisibility = annotationcontent.visible ? 'Visible' : 'Collapsed';\n annotationcontent.rotateAngle = annotation.rotateAngle;\n annotationcontent.rotationReference = annotation.rotationReference;\n annotationcontent.id = this.id + '_' + annotation.id;\n if (this.width !== undefined && !annotation.template) {\n //910583: Annotation Wrapper updates wrongly after save and load.\n if (annotation.width === undefined) {\n if (annotation.style.textWrapping === 'Wrap' || annotation.style.textWrapping === 'WrapWithOverflow') {\n annotationcontent.width = this.width;\n }\n }\n }\n annotationcontent.margin = annotation.margin;\n annotationcontent.horizontalAlignment = annotation.horizontalAlignment;\n annotationcontent.verticalAlignment = annotation.verticalAlignment;\n annotationcontent.setOffsetWithRespectToBounds(label.offset.x, label.offset.y, 'Fraction');\n if (this.width !== undefined || this.height !== undefined) {\n annotationcontent.float = true;\n }\n annotationcontent.relativeMode = 'Point';\n return annotationcontent;\n };\n Node.prototype.initIconContainer = function (options, iconContainer) {\n var rect = new DiagramElement();\n rect.id = iconContainer.id + '_rect';\n rect.height = options.height;\n rect.width = options.width;\n rect.visible = iconContainer.visible;\n rect.margin = options.margin;\n rect.cornerRadius = options.cornerRadius;\n rect.style = {\n fill: options.fill, strokeColor: options.borderColor,\n strokeWidth: options.borderWidth\n };\n rect.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n rect.horizontalAlignment = 'Center';\n rect.verticalAlignment = 'Center';\n rect.relativeMode = 'Object';\n rect.description = rect.description || 'Click here to expand or collapse';\n return rect;\n };\n Node.prototype.initIconSymbol = function (options, iconContainer, accessibilityContent, diagramId) {\n var iconContent;\n iconContainer.children.push(this.initIconContainer(options, iconContainer));\n if (options.shape === 'Template') {\n iconContent = new DiagramNativeElement(this.id, diagramId);\n iconContent.content = options.content;\n iconContent.height = 10;\n iconContent.width = 10;\n }\n else {\n iconContent = new PathElement();\n iconContent.data = getIconShape(options);\n var iconContentBounds = measurePath(iconContent.data);\n iconContent.height =\n iconContentBounds.height < 10 ? iconContentBounds.height : 10 - (options.padding.bottom + options.padding.top);\n iconContent.width =\n iconContentBounds.width < 10 ? iconContentBounds.width : 10 - (options.padding.left + options.padding.right);\n }\n iconContent.id = iconContainer.id + '_shape';\n iconContent.horizontalAlignment = 'Center';\n iconContent.verticalAlignment = 'Center';\n iconContent.visible = iconContainer.visible;\n iconContent.visible = iconContainer.visible;\n iconContent.style = {\n fill: 'black',\n strokeColor: options.iconColor,\n strokeWidth: options.borderWidth\n };\n iconContent.setOffsetWithRespectToBounds(0.5, 0.5, 'Fraction');\n iconContent.relativeMode = 'Object';\n iconContent.description = iconContainer.description || 'Click here to expand or collapse';\n iconContainer.children.push(iconContent);\n };\n /**\n * @private\n *\n * Returns the name of class Node\n */\n Node.prototype.getClassName = function () {\n return 'Node';\n };\n __decorate([\n Collection([], ShapeAnnotation)\n ], Node.prototype, \"annotations\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetX\", void 0);\n __decorate([\n Complex({}, LayoutInfo)\n ], Node.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"offsetY\", void 0);\n __decorate([\n Collection([], PointPort)\n ], Node.prototype, \"ports\", void 0);\n __decorate([\n Property(true)\n ], Node.prototype, \"isExpanded\", void 0);\n __decorate([\n Collection([], NodeFixedUserHandle)\n ], Node.prototype, \"fixedUserHandles\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"expandIcon\", void 0);\n __decorate([\n Complex({}, IconShape)\n ], Node.prototype, \"collapseIcon\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Node.prototype, \"pivot\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"height\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"minHeight\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"maxHeight\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"rotateAngle\", void 0);\n __decorate([\n Complex({ fill: 'white' }, TextStyle)\n ], Node.prototype, \"style\", void 0);\n __decorate([\n Property('transparent')\n ], Node.prototype, \"backgroundColor\", void 0);\n __decorate([\n Property('none')\n ], Node.prototype, \"borderColor\", void 0);\n __decorate([\n Property(0)\n ], Node.prototype, \"borderWidth\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"data\", void 0);\n __decorate([\n ComplexFactory(getShapeType)\n ], Node.prototype, \"shape\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"previewSize\", void 0);\n __decorate([\n Complex({}, SymbolSize)\n ], Node.prototype, \"dragSize\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"wrapper\", void 0);\n __decorate([\n Property(NodeConstraints.Default)\n ], Node.prototype, \"constraints\", void 0);\n __decorate([\n Complex({}, Shadow)\n ], Node.prototype, \"shadow\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"children\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], Node.prototype, \"padding\", void 0);\n __decorate([\n Property(null)\n ], Node.prototype, \"container\", void 0);\n __decorate([\n Property('Left')\n ], Node.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Top')\n ], Node.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rows\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columns\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnIndex\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"rowSpan\", void 0);\n __decorate([\n Property()\n ], Node.prototype, \"columnSpan\", void 0);\n __decorate([\n Property('')\n ], Node.prototype, \"branch\", void 0);\n return Node;\n}(NodeBase));\nexport { Node };\n/**\n * Defines the behavior of header in swimLane\n */\nvar Header = /** @class */ (function (_super) {\n __extends(Header, _super);\n function Header() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Header.prototype, \"id\", void 0);\n __decorate([\n Complex({}, Annotation)\n ], Header.prototype, \"annotation\", void 0);\n __decorate([\n Complex({ fill: '#E7F4FF', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Header.prototype, \"style\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"height\", void 0);\n __decorate([\n Property(50)\n ], Header.prototype, \"width\", void 0);\n return Header;\n}(ChildProperty));\nexport { Header };\n/**\n * Defines the behavior of lane in swimLane\n */\nvar Lane = /** @class */ (function (_super) {\n __extends(Lane, _super);\n function Lane() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Lane\n *\n * @private\n */\n Lane.prototype.getClassName = function () {\n return 'Lane';\n };\n __decorate([\n Property('')\n ], Lane.prototype, \"id\", void 0);\n __decorate([\n Complex({ fill: '#F9F9F9', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Lane.prototype, \"style\", void 0);\n __decorate([\n Collection([], Node)\n ], Lane.prototype, \"children\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"height\", void 0);\n __decorate([\n Property(100)\n ], Lane.prototype, \"width\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], Lane.prototype, \"header\", void 0);\n __decorate([\n Property(true)\n ], Lane.prototype, \"canMove\", void 0);\n __decorate([\n Property()\n ], Lane.prototype, \"addInfo\", void 0);\n return Lane;\n}(ChildProperty));\nexport { Lane };\n/**\n * Defines the behavior of phase in swimLane\n */\nvar Phase = /** @class */ (function (_super) {\n __extends(Phase, _super);\n function Phase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n Phase.prototype.getClassName = function () {\n return 'Phase';\n };\n __decorate([\n Property('')\n ], Phase.prototype, \"id\", void 0);\n __decorate([\n Complex({ fill: '#FFFFFF', strokeColor: '#CCCCCC' }, ShapeStyle)\n ], Phase.prototype, \"style\", void 0);\n __decorate([\n Complex({ annotation: { content: 'Phase' } }, Header)\n ], Phase.prototype, \"header\", void 0);\n __decorate([\n Property(100)\n ], Phase.prototype, \"offset\", void 0);\n __decorate([\n Property()\n ], Phase.prototype, \"addInfo\", void 0);\n return Phase;\n}(ChildProperty));\nexport { Phase };\n/**\n * Defines the behavior of swimLane shape\n */\nvar SwimLane = /** @class */ (function (_super) {\n __extends(SwimLane, _super);\n function SwimLane() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Defines space between children and lane\n *\n * @private\n *\n */\n _this.padding = 20;\n /**\n * Defines header by user or not\n *\n * @private\n *\n */\n _this.hasHeader = true;\n return _this;\n }\n /**\n * Returns the name of class Phase\n *\n * @private\n */\n SwimLane.prototype.getClassName = function () {\n return 'SwimLane';\n };\n __decorate([\n Property('SwimLane')\n ], SwimLane.prototype, \"type\", void 0);\n __decorate([\n Property(20)\n ], SwimLane.prototype, \"phaseSize\", void 0);\n __decorate([\n Collection([], Phase)\n ], SwimLane.prototype, \"phases\", void 0);\n __decorate([\n Property('Horizontal')\n ], SwimLane.prototype, \"orientation\", void 0);\n __decorate([\n Collection([], Lane)\n ], SwimLane.prototype, \"lanes\", void 0);\n __decorate([\n Complex({ style: { fill: '#E7F4FF', strokeColor: '#CCCCCC' }, annotation: { content: 'Function' } }, Header)\n ], SwimLane.prototype, \"header\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isLane\", void 0);\n __decorate([\n Property(false)\n ], SwimLane.prototype, \"isPhase\", void 0);\n return SwimLane;\n}(Shape));\nexport { SwimLane };\n/**\n * Defines the behavior of container\n */\nvar ChildContainer = /** @class */ (function () {\n function ChildContainer() {\n }\n /**\n * Returns the name of class ChildContainer\n *\n * @private\n */\n ChildContainer.prototype.getClassName = function () {\n return 'ChildContainer';\n };\n __decorate([\n Property('Canvas')\n ], ChildContainer.prototype, \"type\", void 0);\n __decorate([\n Property('Vertical')\n ], ChildContainer.prototype, \"orientation\", void 0);\n return ChildContainer;\n}());\nexport { ChildContainer };\n/**\n * Defines the size and position of selected items and defines the appearance of selector\n */\nvar Selector = /** @class */ (function (_super) {\n __extends(Selector, _super);\n function Selector() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Initializes the UI of the container\n */\n Selector.prototype.init = function (diagram) {\n var container = new Container();\n container.measureChildren = false;\n //const consize: Size = new Size();\n container.children = [];\n if (this.annotation) {\n var object = (this.nodes.length > 0) ? diagram.nameTable[this.nodes[0].id].wrapper :\n diagram.nameTable[this.connectors[0].id].wrapper;\n var wrapper = diagram.getWrapper(object, this.annotation.id);\n container.children.push(wrapper);\n }\n else {\n if (this.nodes || this.connectors) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = diagram.nameTable[this.nodes[parseInt(i.toString(), 10)].id];\n var wrapper = node.wrapper;\n // this.width = wrapper.actualSize.width;\n // this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle;\n // this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = diagram.nameTable[this.connectors[parseInt(j.toString(), 10)].id];\n var wrapper = connector.wrapper;\n // this.width = wrapper.actualSize.width; this.height = wrapper.actualSize.height;\n // this.rotateAngle = wrapper.rotateAngle; this.offsetX = wrapper.offsetX;\n // this.offsetY = wrapper.offsetY;\n container.children.push(wrapper);\n }\n }\n }\n var isProtectedOnChange = 'isProtectedOnChange';\n var diagramProtectPropertyChange = diagram[\"\" + isProtectedOnChange];\n diagram.protectPropertyChange(false);\n this.wrapper = container;\n diagram.protectPropertyChange(diagramProtectPropertyChange);\n return container;\n };\n __decorate([\n Property(null)\n ], Selector.prototype, \"wrapper\", void 0);\n __decorate([\n Property(14)\n ], Selector.prototype, \"handleSize\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"nodes\", void 0);\n __decorate([\n Collection([], Connector)\n ], Selector.prototype, \"connectors\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"height\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"rotateAngle\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Selector.prototype, \"offsetY\", void 0);\n __decorate([\n Complex({ x: 0.5, y: 0.5 }, Point)\n ], Selector.prototype, \"pivot\", void 0);\n __decorate([\n Property('CompleteIntersect')\n ], Selector.prototype, \"rubberBandSelectionMode\", void 0);\n __decorate([\n Collection([], UserHandle)\n ], Selector.prototype, \"userHandles\", void 0);\n __decorate([\n Property(SelectorConstraints.All)\n ], Selector.prototype, \"constraints\", void 0);\n __decorate([\n Property()\n ], Selector.prototype, \"setTooltipTemplate\", void 0);\n __decorate([\n Collection([], Node)\n ], Selector.prototype, \"selectedObjects\", void 0);\n __decorate([\n Property(false)\n ], Selector.prototype, \"canToggleSelection\", void 0);\n return Selector;\n}(ChildProperty));\nexport { Selector };\n","import { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { processPathData, splitArrayCollection, transformPath } from './path-util';\nimport { whiteSpaceToString, wordBreakToString, textAlignToString, bBoxText, cloneObject } from './base-util';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { compile, createElement, Browser } from '@syncfusion/ej2-base';\nimport { Node } from '../objects/node';\nimport { getElement } from './diagram-util';\nimport { templateCompiler } from '../utility/base-util';\n/**\n * Defines the functionalities that need to access DOM\n */\n/**\n * removeElementsByClass method \\\n *\n * @returns {void} removeElementsByClass method .\\\n * @param { string } className - provide the element value.\n * @param {string} id - provide the string value.\n * @private\n */\nexport function removeElementsByClass(className, id) {\n var elements;\n if (id && document.getElementById(id).classList.contains(className)) {\n elements = document.getElementById(id).getElementsByClassName(className);\n }\n else {\n elements = document.getElementsByClassName(className);\n }\n while (elements.length > 0) {\n elements[0].parentNode.removeChild(elements[0]);\n }\n}\n/**\n * findSegmentPoints method \\\n *\n * @returns {PointModel[]} findSegmentPoints method .\\\n * @param { PathElement } element - provide the element value.\n * @private\n */\nexport function findSegmentPoints(element) {\n var pts = [];\n var sample;\n var sampleLength;\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var pathNode = getChildNode(svg)[0];\n pathNode.setAttributeNS(null, 'd', element.data);\n var pathBounds = element.absoluteBounds; // || pathNode.getBBox();\n var pathData = updatePath(element, pathBounds, element);\n pathNode.setAttributeNS(null, 'd', pathData);\n var pathLength = pathNode.getTotalLength();\n for (sampleLength = 0; sampleLength <= pathLength; sampleLength += 10) {\n sample = pathNode.getPointAtLength(sampleLength);\n pts.push({ x: sample.x, y: sample.y });\n }\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return pts;\n}\n/**\n * getChildNode method \\\n *\n * @returns {SVGElement[] | HTMLCollection} findSegmentPoints method .\\\n * @param { SVGElement } node - provide the element value.\n * @private\n */\nexport function getChildNode(node) {\n var child;\n var collection = [];\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n for (var i = 0; i < node.childNodes.length; i++) {\n child = node.childNodes[parseInt(i.toString(), 10)];\n if (child.nodeType === 1) {\n collection.push(child);\n }\n }\n }\n else {\n collection = node.children;\n }\n return collection;\n}\n/**\n * translatePoints method \\\n *\n * @returns {PointModel[]} translatePoints method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { PointModel[] } points - provide the element value.\n * @private\n */\nexport function translatePoints(element, points) {\n var translatedPts = [];\n //895069: Update Connector docking position in node after flipping the node\n var left = element.offsetX - element.actualSize.width * element.pivot.x;\n var top = element.offsetY - element.actualSize.height * element.pivot.y;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n var pt1 = void 0;\n var baseX = left + point.x;\n var baseY = top + point.y;\n var flipX = left + element.actualSize.width - point.x;\n var flipY = top + element.actualSize.height - point.y;\n // 895069: Updating the node and connector's docking point for node's fliped position\n switch (element.flip) {\n case 'Both':\n pt1 = { x: flipX, y: flipY };\n break;\n case 'Horizontal':\n pt1 = { x: flipX, y: baseY };\n break;\n case 'Vertical':\n pt1 = { x: baseX, y: flipY };\n break;\n default:\n pt1 = { x: baseX, y: baseY };\n break;\n }\n var matrix = void 0;\n var angle = element.rotateAngle + element.parentTransform;\n if (angle) {\n matrix = identityMatrix();\n rotateMatrix(matrix, angle, element.offsetX, element.offsetY);\n }\n if (matrix) {\n pt1 = transformPointByMatrix(matrix, pt1);\n }\n translatedPts.push(pt1);\n }\n return translatedPts;\n}\n/**\n * measurePath method \\\n *\n * @returns {Rect} measurePath method .\\\n * @param { string } data - provide the element value.\n * @private\n */\nexport function measurePath(data) {\n if (data) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var element = getChildNode(svg)[0];\n element.setAttribute('d', data);\n var bounds = element.getBBox();\n var svgBounds = new Rect(bounds.x, bounds.y, bounds.width, bounds.height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n }\n return new Rect(0, 0, 0, 0);\n}\n/**\n * getTextOptions method \\\n *\n * @returns {BaseAttributes} getTextOptions method .\\\n * @param { TextElement } element - provide the element value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @private\n */\nfunction getTextOptions(element, maxWidth) {\n var options = {\n fill: element.style.fill, stroke: element.style.strokeColor, angle: element.rotateAngle + element.parentTransform,\n pivotX: element.pivot.x, pivotY: element.pivot.y, strokeWidth: element.style.strokeWidth,\n dashArray: element.style.strokeDashArray, opacity: element.style.opacity, shadow: element.shadow,\n gradient: element.style.gradient, visible: element.visible, id: element.id, description: element.description,\n width: maxWidth || element.actualSize.width, height: element.actualSize.height,\n x: element.offsetX - element.actualSize.width * element.pivot.x + 0.5,\n y: element.offsetY - element.actualSize.height * element.pivot.y + 0.5\n };\n options.fontSize = element.style.fontSize;\n options.fontFamily = element.style.fontFamily;\n options.textOverflow = element.style.textOverflow;\n options.textDecoration = element.style.textDecoration;\n options.doWrap = element.doWrap;\n options.whiteSpace = whiteSpaceToString(element.style.whiteSpace, element.style.textWrapping);\n options.content = element.content;\n options.textWrapping = element.style.textWrapping;\n options.breakWord = wordBreakToString(element.style.textWrapping);\n options.textAlign = textAlignToString(element.style.textAlign);\n options.color = element.style.color;\n options.italic = element.style.italic;\n options.bold = element.style.bold;\n options.dashArray = '';\n options.strokeWidth = 0;\n options.fill = '';\n return options;\n}\n/**\n * wrapSvgText method \\\n *\n * @returns {SubTextElement[]} wrapSvgText method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgText(text, textValue, laneWidth) {\n var childNodes = [];\n var k = 0;\n var txtValue;\n var bounds1;\n var content = textValue || text.content;\n if (text.whiteSpace !== 'nowrap' && text.whiteSpace !== 'pre') {\n if (text.breakWord === 'breakall') {\n txtValue = '';\n txtValue += content[0];\n for (k = 0; k < content.length; k++) {\n bounds1 = bBoxText(txtValue, text);\n if (bounds1 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bounds1 };\n txtValue = '';\n }\n else {\n txtValue = txtValue + (content[k + 1] || '');\n if (txtValue.indexOf('\\n') > -1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: bBoxText(txtValue, text) };\n txtValue = '';\n }\n var width = bBoxText(txtValue, text);\n if (Math.ceil(width) + 2 >= text.width && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n if (k === content.length - 1 && txtValue.length > 0) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n }\n }\n else {\n childNodes = wordWrapping(text, textValue, laneWidth);\n }\n }\n else {\n childNodes[childNodes.length] = { text: content, x: 0, dy: 0, width: bBoxText(content, text) };\n }\n return childNodes;\n}\n/**\n * wordWrapping method \\\n *\n * @returns {SubTextElement[]} wordWrapping method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } textValue - provide the maxWidth value.\n * @param { number } laneWidth - provide the maxWidth value.\n * @private\n */\nfunction wordWrapping(text, textValue, laneWidth) {\n var childNodes = [];\n var txtValue = '';\n var j = 0;\n var i = 0;\n var wrap = text.whiteSpace !== 'nowrap' ? true : false;\n var content = textValue || text.content;\n var eachLine = content.split('\\n');\n var txt;\n var words;\n var newText;\n var existingWidth;\n var existingText;\n for (j = 0; j < eachLine.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n txt = '';\n words = text.textWrapping !== 'NoWrap' ? eachLine[parseInt(j.toString(), 10)].split(' ') : (text.textWrapping === 'NoWrap') ? [eachLine[parseInt(j.toString(), 10)]] : eachLine;\n for (i = 0; i < words.length; i++) {\n txtValue += (((i !== 0 || words.length === 1) && wrap && txtValue.length > 0) ? ' ' : '') + words[parseInt(i.toString(), 10)];\n //Bug 885842: Position of annotation inside the node is not aligned center.\n //Extra space is added when we have single word as annotation text and due to this the width of the text is increased.\n if (words[i + 1]) {\n newText = txtValue + ' ' + (words[i + 1]);\n }\n else {\n newText = txtValue;\n }\n var width = bBoxText(newText, text);\n if (Math.floor(width) > (laneWidth || text.width) - 2 && txtValue.length > 0) {\n childNodes[childNodes.length] = {\n text: txtValue, x: 0, dy: 0,\n width: newText === txtValue ? width : (txtValue === existingText) ? existingWidth : bBoxText(txtValue, text)\n };\n txtValue = '';\n }\n else {\n if (i === words.length - 1) {\n childNodes[childNodes.length] = { text: txtValue, x: 0, dy: 0, width: width };\n txtValue = '';\n }\n }\n existingText = newText;\n existingWidth = width;\n }\n }\n return childNodes;\n}\n/**\n * wrapSvgTextAlign method \\\n *\n * @returns {TextBounds} wrapSvgTextAlign method .\\\n * @param { TextAttributes } text - provide the element value.\n * @param { string } childNodes - provide the maxWidth value.\n * @private\n */\nfunction wrapSvgTextAlign(text, childNodes) {\n var wrapBounds = { x: 0, width: 0 };\n var k = 0;\n var txtWidth;\n var width;\n for (k = 0; k < childNodes.length; k++) {\n txtWidth = childNodes[parseInt(k.toString(), 10)].width;\n width = txtWidth;\n //EJ2-863489 - Node annotation textAlign \"Justify\" option is not working correctly\n if (text.textAlign === 'left' || text.textAlign === 'justify') {\n txtWidth = 0;\n }\n else if (text.textAlign === 'center') {\n if (txtWidth > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n txtWidth = 0;\n }\n else {\n txtWidth = -txtWidth / 2;\n }\n }\n else if (text.textAlign === 'right') {\n txtWidth = -txtWidth;\n }\n else {\n txtWidth = childNodes.length > 1 ? 0 : -txtWidth / 2;\n }\n childNodes[parseInt(k.toString(), 10)].dy = text.fontSize * 1.2;\n childNodes[parseInt(k.toString(), 10)].x = txtWidth;\n wrapBounds.x = Math.min(wrapBounds.x, txtWidth);\n wrapBounds.width = Math.max(wrapBounds.width, width);\n }\n return wrapBounds;\n}\n/**\n * measureHtmlText method \\\n *\n * @returns {TextBounds} measureHtmlText method .\\\n * @param { TextStyleModel } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { string } width - provide the width value.\n * @param { string } height - provide the height value.\n * @param { string } maxWidth - provide the maxWidth value.\n * @private\n */\nexport function measureHtmlText(style, content, width, height, maxWidth) {\n var bounds = new Size();\n var text = createHtmlElement('span', { 'style': 'display:inline-block; line-height: normal' });\n if (style.bold) {\n text.style.fontWeight = 'bold';\n }\n if (style.italic) {\n text.style.fontStyle = 'italic';\n }\n if (width !== undefined) {\n text.style.width = width.toString() + 'px';\n }\n if (height !== undefined) {\n text.style.height = height.toString() + 'px';\n }\n if (maxWidth !== undefined) {\n text.style.maxWidth = maxWidth.toString() + 'px';\n }\n text.style.fontFamily = style.fontFamily;\n text.style.fontSize = style.fontSize + 'px';\n text.style.color = style.color;\n text.textContent = content;\n text.style.whiteSpace = whiteSpaceToString(style.whiteSpace, style.textWrapping);\n if (maxWidth !== undefined) {\n text.style.wordBreak = 'break-word';\n }\n else {\n text.style.wordBreak = wordBreakToString(style.textWrapping);\n }\n document.body.appendChild(text);\n bounds.width = text.offsetWidth;\n bounds.height = text.offsetHeight;\n document.body.removeChild(text);\n return bounds;\n}\n/**\n * measureText method \\\n *\n * @returns {Size} measureText method .\\\n * @param { TextStyleModel } text - provide the text value.\n * @param { string } style - provide the style value.\n * @param { string } content - provide the content value.\n * @param { number } maxWidth - provide the maxWidth value.\n * @param { string } textValue - provide the textValue value.\n * @private\n */\nexport function measureText(text, style, content, maxWidth, textValue) {\n var bounds = new Size(0, 0);\n var childNodes;\n var wrapBounds;\n var options = getTextOptions(text, maxWidth);\n text.childNodes = childNodes = wrapSvgText(options, textValue, text.isLaneOrientation ? maxWidth : undefined);\n text.wrapBounds = wrapBounds = wrapSvgTextAlign(options, childNodes);\n bounds.width = wrapBounds.width;\n if (text.wrapBounds.width >= maxWidth && options.textOverflow !== 'Wrap') {\n bounds.width = maxWidth;\n }\n bounds.height = childNodes.length * text.style.fontSize * 1.2;\n return bounds;\n}\n/**\n * measureImage method \\\n *\n * @returns {Size} measureImage method .\\\n * @param { string } source - provide the text value.\n * @param { Size } contentSize - provide the style value.\n * @param { string } id - provide the content value.\n * @param { Function } callback - provide the maxWidth value.\n * @private\n */\n// eslint-disable-next-line\nexport function measureImage(source, contentSize, id, callback) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var imageElement = window[\"\" + measureWindowElement].children[1];\n imageElement.setAttribute('src', source);\n var bounds = imageElement.getBoundingClientRect();\n var width = bounds.width;\n var height = bounds.height;\n contentSize = new Size(width, height);\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n var element = document.createElement('img');\n element.setAttribute('src', source);\n setAttributeHtml(element, { id: id + 'sf-imageNode', style: 'display: none;' });\n document.body.appendChild(element);\n // eslint-disable-next-line\n element.onload = function (event) {\n var loadedImage = event.currentTarget;\n if (callback) {\n callback(id, { width: loadedImage.width, height: loadedImage.height });\n }\n };\n return contentSize;\n}\n/* eslint-disable */\n/**\n * measureNativeContent method \\\n *\n * @returns {Rect} measureNativeContent method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeContent(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n var bounds = nativeContent.getBoundingClientRect();\n var svgBounds = nativeSVG.getBoundingClientRect();\n var rect = bounds;\n rect.x = bounds.left - svgBounds.left;\n rect.y = bounds.top - svgBounds.top;\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return rect;\n}\n/**\n * measureNativeSvg method \\\n *\n * @returns {Rect} measureNativeSvg method .\\\n * @param { SVGElement } nativeContent - provide the text value.\n * @private\n */\nexport function measureNativeSvg(nativeContent) {\n var measureWindowElement = 'measureElement';\n window[measureWindowElement].style.visibility = 'visible';\n var nativeSVG = window[measureWindowElement].children[2];\n nativeSVG.appendChild(nativeContent);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var svgBounds = nativeSVG.getBoundingClientRect();\n nativeSVG.removeChild(nativeContent);\n window[measureWindowElement].style.visibility = 'hidden';\n return svgBounds;\n}\n/**\n * updatePath method \\\n *\n * @returns {string} updatePath method .\\\n * @param { SVGElement } element - provide the element value.\n * @param { Rect } bounds - provide the bounds value.\n * @param { PathElement } child - provide the child value.\n * @param { BaseAttributes } options - provide the options value.\n * @private\n */\nexport function updatePath(element, bounds, child, options) {\n var initX = 0;\n var initY = 0;\n var scaleX = 0;\n var scaleY = 0;\n var isScale = false;\n var newPathString = '';\n var arrayCollection = [];\n var bBox = bounds;\n if (initX !== bBox.x || initY !== bBox.y) {\n scaleX = initX - Number(bBox.x);\n scaleY = initY - Number(bBox.y);\n }\n if (element.actualSize.width !== bBox.width || element.actualSize.height !== bBox.height || options) {\n scaleX = (options && options.width || element.actualSize.width) / Number(bBox.width ? bBox.width : 1);\n scaleY = (options && options.height || element.actualSize.height) / Number(bBox.height ? bBox.height : 1);\n isScale = true;\n }\n arrayCollection = processPathData(element.data);\n arrayCollection = splitArrayCollection(arrayCollection);\n newPathString = transformPath(arrayCollection, scaleX, scaleY, isScale, bBox.x, bBox.y, initX, initY);\n isScale = false;\n return newPathString;\n}\n/**\n * getDiagramLayerSvg method \\\n *\n * @returns {string} getDiagramLayerSvg method .\\\n * @param { string } diagramId - provide the element value.\n * @private\n */\nexport function getDiagramLayerSvg(diagramId) {\n //let diagramLayerSvg: SVGSVGElement;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-diagram-layer');\n var diagramLayerSvg = elementcoll[0];\n return diagramLayerSvg;\n}\n/**\n * getDiagramElement method \\\n *\n * @returns {HTMLElement} getDiagramElement method .\\\n * @param { string } elementId - provide the elementId value.\n * @param { string } contentId - provide the elementId value.\n * @private\n */\nexport function getDiagramElement(elementId, contentId) {\n var diagramElement;\n var element;\n if (contentId) {\n element = document.getElementById(contentId);\n }\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\n diagramElement = (element) ? element.querySelector('#' + elementId) : document.getElementById(elementId);\n }\n else {\n diagramElement = (element) ? element.querySelector('#' + CSS.escape(elementId)) : document.getElementById(elementId);\n }\n return diagramElement;\n}\n/**\n * getDomIndex method \\\n *\n * @returns {HTMLElement} getDomIndex method .\\\n * @param { string } viewId - provide the elementId value.\n * @param { string } elementId - provide the elementId value.\n * @param { string } layer - provide the elementId value.\n * @private\n */\nexport function getDomIndex(viewId, elementId, layer) {\n var index = undefined;\n var parentElement;\n var postId = '';\n if (layer === 'native') {\n parentElement = getNativeLayer(viewId);\n postId = '_content_groupElement';\n }\n else if (layer === 'html') {\n parentElement = getHTMLLayer(viewId).childNodes[0];\n postId = '_html_element';\n }\n else {\n parentElement = getDiagramLayer(viewId);\n postId = '_groupElement';\n }\n var childElement;\n for (var i = 0; parentElement.childNodes && i < parentElement.childNodes.length; i++) {\n childElement = parentElement.childNodes[i];\n if (childElement && childElement.id === elementId + postId) {\n index = i;\n break;\n }\n }\n return index;\n}\n/**\n * getAdornerLayerSvg method \\\n *\n * @returns {SVGSVGElement} getAdornerLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-adorner-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getSelectorElement method \\\n *\n * @returns {SVGSVGElement} getSelectorElement method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getSelectorElement(diagramId) {\n var adornerLayer = null;\n var adornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = adornerSvg.getElementById(diagramId + '_SelectorElement');\n return adornerLayer;\n}\n/**\n * getAdornerLayer method \\\n *\n * @returns {SVGSVGElement} getAdornerLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getAdornerLayer(diagramId) {\n var adornerLayer = null;\n var diagramAdornerSvg = getAdornerLayerSvg(diagramId);\n adornerLayer = diagramAdornerSvg.getElementById(diagramId + '_diagramAdorner');\n return adornerLayer;\n}\n/**\n * getUserHandleLayer method \\\n *\n * @returns {HTMLElement} getUserHandleLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getUserHandleLayer(diagramId) {\n var adornerLayer = null;\n var diagramUserHandleLayer = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramUserHandleLayer.getElementsByClassName('e-userHandle-layer');\n adornerLayer = elementcoll[0];\n return adornerLayer;\n}\n/**\n * getDiagramLayer method \\\n *\n * @returns {HTMLElement} getDiagramLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getDiagramLayer(diagramId) {\n //let diagramLayer: SVGElement;\n var diagramLayerSvg = getDiagramLayerSvg(diagramId);\n var diagramLayer = diagramLayerSvg.getElementById(diagramId + '_diagramLayer');\n return diagramLayer;\n}\n/**\n * getPortLayerSvg method \\\n *\n * @returns {SVGSVGElement} getPortLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getPortLayerSvg(diagramId) {\n var adornerLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-ports-expand-layer');\n adornerLayerSvg = elementcoll[0];\n return adornerLayerSvg;\n}\n/**\n * getNativeLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayerSvg(diagramId) {\n var nativeLayerSvg;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-native-layer');\n nativeLayerSvg = elementcoll[0];\n return nativeLayerSvg;\n}\n/**\n * getGridLayerSvg method \\\n *\n * @returns {SVGSVGElement} getNativeLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-grid-layer');\n gridLayerSvg = elementcoll[0];\n return gridLayerSvg;\n}\n/**\n * getBackgroundLayerSvg method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayerSvg method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayerSvg(diagramId) {\n var gridLayerSvg = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n return elementcoll[0].parentNode;\n}\n/**\n * getBackgroundImageLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundImageLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundImageLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-image-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getBackgroundLayer method \\\n *\n * @returns {SVGSVGElement} getBackgroundLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getBackgroundLayer(diagramId) {\n var imageLayer = null;\n var diagramElement = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = diagramElement.getElementsByClassName('e-background-layer');\n imageLayer = elementcoll[0];\n return imageLayer;\n}\n/**\n * getGridLayer method \\\n *\n * @returns {SVGSVGElement} getGridLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getGridLayer(diagramId) {\n var domTable = 'domTable';\n var expandCollapse = null;\n if (!window[domTable][diagramId + '_gridline']) {\n var diagramGridSvg = getGridLayerSvg(diagramId);\n expandCollapse = diagramGridSvg.getElementById(diagramId + '_gridline');\n window[domTable][diagramId + '_gridline'] = expandCollapse;\n }\n else {\n expandCollapse = window[domTable][diagramId + '_gridline'];\n }\n return expandCollapse;\n}\n// /** @private */\n// export function getExpandCollapseLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramExpander') as SVGElement;\n// return expandCollapse;\n// }\n// /** @private */\n// export function getPortsLayer(diagramId: string): SVGElement {\n// let expandCollapse: SVGElement = null;\n// let diagramPortSvg: SVGSVGElement = getPortLayerSvg(diagramId);\n// expandCollapse = diagramPortSvg.getElementById(diagramId + '_diagramPorts') as SVGElement;\n// return expandCollapse;\n// }\n/**\n * getNativeLayer method \\\n *\n * @returns {SVGSVGElement} getNativeLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getNativeLayer(diagramId) {\n var nativeLayer = null;\n var nativeLayerSvg = getNativeLayerSvg(diagramId);\n nativeLayer = nativeLayerSvg.getElementById(diagramId + '_nativeLayer');\n return nativeLayer;\n}\n/**\n * getHTMLLayer method \\\n *\n * @returns {SVGSVGElement} getHTMLLayer method .\\\n * @param { string } diagramId - provide the diagramId value.\n * @private\n */\nexport function getHTMLLayer(diagramId) {\n var htmlLayer = null;\n var domTable = 'domTable';\n if (!window[domTable][diagramId + 'html_layer']) {\n var element = getDiagramElement(diagramId);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elementcoll = element.getElementsByClassName('e-html-layer');\n htmlLayer = elementcoll[0];\n window[domTable][diagramId + 'html_layer'] = htmlLayer;\n }\n else {\n htmlLayer = window[domTable][diagramId + 'html_layer'];\n }\n return htmlLayer;\n}\n/* eslint-enable */\n/**\n * createHtmlElement method \\\n *\n * @returns {SVGSVGElement} createHtmlElement method .\\\n * @param { string } elementType - provide the diagramId value.\n * @param { Object } attribute - provide the diagramId value.\n * @private\n */\nexport function createHtmlElement(elementType, attribute) {\n var element = createElement(elementType);\n setAttributeHtml(element, attribute);\n return element;\n}\n/**\n * createSvgElement method \\\n *\n * @returns {SVGSVGElement} createSvgElement method .\\\n * @param { string } elementType - provide the elementType value.\n * @param { Object } attribute - provide the attribute value.\n * @private\n */\nexport function createSvgElement(elementType, attribute) {\n var element = document.createElementNS('http://www.w3.org/2000/svg', elementType);\n setAttributeSvg(element, attribute);\n return element;\n}\n/** @hidden */\n/**\n * parentsUntil method \\\n *\n * @returns {SVGSVGElement} parentsUntil method .\\\n * @param { Element } elem - provide the elementType value.\n * @param { string } selector - provide the attribute value.\n * @param { boolean } isID - provide the attribute value.\n * @private\n */\nexport function parentsUntil(elem, selector, isID) {\n var parent = elem;\n while (parent) {\n if (isID ? parent.id === selector : hasClass(parent, selector)) {\n break;\n }\n parent = parent.parentNode;\n }\n return parent;\n}\n/**\n * hasClass method \\\n *\n * @returns {SVGSVGElement} hasClass method .\\\n * @param { HTMLElement } element - provide the element value.\n * @param { string } className - provide the className value.\n * @private\n */\nexport function hasClass(element, className) {\n var eClassName = (typeof element.className === 'object') ? element.className.animVal : element.className;\n return ((' ' + eClassName + ' ').indexOf(' ' + className + ' ') > -1) ? true : false;\n}\n/**\n * getScrollerWidth method \\\n *\n * @returns {number} getScrollerWidth method .\\\n * @private\n */\nexport function getScrollerWidth() {\n var outer = createHtmlElement('div', { 'style': 'visibility:hidden; width: 100px' });\n document.body.appendChild(outer);\n var widthNoScroll = outer.getBoundingClientRect().width;\n // force scrollbars\n outer.style.overflow = 'scroll';\n // add innerdiv\n var inner = createHtmlElement('div', { 'style': 'width:100%' });\n outer.appendChild(inner);\n var widthWithScroll = inner.getBoundingClientRect().width;\n // remove divs\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n}\n/**\n * addTouchPointer method \\\n *\n * @returns {ITouches[]} addTouchPointer method .\\\n * @param { ITouches[] } touchList - provide the touchList value.\n * @param { PointerEvent } e - provide the e value.\n * @param { TouchList } touches - provide the touches value.\n * @private\n */\nexport function addTouchPointer(touchList, e, touches) {\n touchList = [];\n for (var i = 0, length_1 = touches.length; i < length_1; i++) {\n touchList.push({\n pageX: touches[parseInt(i.toString(), 10)].clientX, pageY: touches[parseInt(i.toString(), 10)].clientY,\n pointerId: null\n });\n }\n return touchList;\n}\n/**\n * removes the element from dom \\\n *\n * @returns {void} removes the element from dom .\\\n * @param { ITouches[] } elementId - provide the elementId value.\n * @param { PointerEvent } contentId - provide the contentId value.\n * @private\n */\nexport function removeElement(elementId, contentId) {\n var div = getDiagramElement(elementId, contentId);\n if (div) {\n div.parentNode.removeChild(div);\n }\n}\n/**\n * getContent method \\\n *\n * @returns {void} getContent method .\\\n * @param { DiagramHtmlElement | DiagramNativeElement } element - provide the elementId value.\n * @param { boolean } isHtml - provide the boolean value.\n * @param { Node | Annotation | PathAnnotation | NodeFixedUserHandle | ConnectorFixedUserHandle } nodeObject - provide the nodeObject value.\n * @private\n */\nexport function getContent(element, isHtml, nodeObject) {\n var div;\n /* eslint-disable */\n if (isHtml) {\n var attr = { 'style': 'height: 100%; width: 100%' };\n div = createHtmlElement('div', attr);\n }\n else {\n div = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n }\n var node = getElement(element);\n var content = '';\n var sentNode = {};\n var isSvg = false;\n var propertyName;\n if (node instanceof Node) {\n sentNode = node;\n if (node.shape.type === 'Native') {\n isSvg = true;\n var svgContent = void 0;\n var div_1 = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n document.body.appendChild(div_1);\n div_1.innerHTML = (node.shape.content);\n /* tslint:disable */\n svgContent = (div_1.getElementsByTagName('svg').length > 0)\n ? div_1.getElementsByTagName('svg')[0].outerHTML :\n div_1.getElementsByTagName('g').length > 0 ? div_1.getElementsByTagName('g')[0].outerHTML : \"\";\n /* tslint:disable */\n node.shape.content = svgContent;\n /* tslint:disable */\n element.content = svgContent;\n div_1.parentElement.removeChild(div_1);\n }\n //let blazor: string = 'Blazor';\n //Removed isBlazor code\n propertyName = \"nodeTemplate\";\n }\n else {\n sentNode = node;\n //new\n //Removed isBlazor code\n propertyName = \"annotationTemplate\";\n }\n var item;\n var diagramElement = document.getElementById(element.diagramId);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if ((typeof element.content === 'string' || typeof element.content === 'function') && (!element.isTemplate)) {\n var template = document.getElementById(element.content);\n if (template) {\n div.appendChild(template);\n }\n else {\n /* eslint-disable */\n var compiledString = void 0;\n compiledString = compile(element.content);\n for (var _i = 0, _a = compiledString(sentNode, diagram, propertyName, content); _i < _a.length; _i++) {\n item = _a[_i];\n div.appendChild(item);\n }\n //new\n // for (item of compiledString(sentNode, null, null, content, undefined, undefined, isSvg)) {\n // div.appendChild(item);\n // }\n }\n }\n else if (element.isTemplate) {\n var compiledString = void 0;\n if (diagram.isReact) {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else if (diagram.isVue || diagram.isVue3) {\n // EJ2-57563 - Added the below code to provide slot template support for Vue and Vue 3\n var templateFn = element.getNodeTemplate();\n if (templateFn) {\n // If other than slot template, this if block gets execute and template get returned.\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n else {\n // If we provide slot template means then it enters in this block and returns a template\n if (propertyName === 'nodeTemplate') {\n compiledString = compile(diagram.nodeTemplate);\n }\n else {\n compiledString = compile(diagram.annotationTemplate);\n }\n compiledString = compiledString(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false, div);\n }\n }\n else {\n compiledString = element.getNodeTemplate()(\n /* eslint-enable */\n // eslint-disable-next-line quotes\n cloneObject(nodeObject), diagram, propertyName + \"_\" + ((propertyName === \"nodeTemplate\") ? nodeObject.id : element.nodeId + nodeObject.id), undefined, undefined, false);\n }\n if (compiledString) {\n for (var i = 0; i < compiledString.length; i++) {\n div.appendChild(compiledString[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n if (element.content && element.content.outerHTML) {\n div.appendChild(element.content);\n }\n }\n return element.isTemplate ?\n div : (isHtml ? div.cloneNode(true) : div.cloneNode(true));\n}\n/* eslint-enable */\n/**\n * setAttributeSvg method \\\n *\n * @returns {void} setAttributeSvg method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeSvg(svg, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n // Added below condition to check whether svg is undefined or not\n if (svg && keys[parseInt(i.toString(), 10)] !== 'style') {\n svg.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(svg, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * applyStyleAgainstCsp method \\\n *\n * @returns {void} applyStyleAgainstCsp method .\\\n * @param { SVGElement } svg - provide the svg value.\n * @param { string } attributes - provide the boolean value.\n * @private\n */\nexport function applyStyleAgainstCsp(svg, attributes) {\n var keys = attributes.split(';');\n for (var i = 0; i < keys.length; i++) {\n var attribute = keys[parseInt(i.toString(), 10)].split(':');\n if (attribute.length === 2) {\n svg.style[attribute[0].trim()] = attribute[1].trim();\n }\n }\n}\n/**\n * setAttributeHtml method \\\n *\n * @returns {void} setAttributeHtml method .\\\n * @param { HTMLElement } element - provide the svg value.\n * @param { Object } attributes - provide the boolean value.\n * @private\n */\nexport function setAttributeHtml(element, attributes) {\n var keys = Object.keys(attributes);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] !== 'style') {\n element.setAttribute(keys[parseInt(i.toString(), 10)], attributes[keys[parseInt(i.toString(), 10)]]);\n }\n else {\n applyStyleAgainstCsp(element, attributes[keys[parseInt(i.toString(), 10)]]);\n }\n }\n}\n/**\n * createMeasureElements method \\\n *\n * @returns {void} createMeasureElements method .\\\n * @private\n */\nexport function createMeasureElements() {\n var measureWindowElement = 'measureElement';\n if (!window[\"\" + measureWindowElement]) {\n var divElement = createHtmlElement('div', {\n id: 'measureElement',\n style: 'visibility:hidden ; height: 0px ; width: 0px; overflow: hidden;'\n });\n var text = createHtmlElement('span', { 'style': 'display:inline-block ; line-height: normal' });\n divElement.appendChild(text);\n //let imageElement: HTMLImageElement;\n var imageElement = createHtmlElement('img', { 'alt': 'measureElementImage', 'src': 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' });\n divElement.appendChild(imageElement);\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n divElement.appendChild(svg);\n var element = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n element.setAttribute('d', '');\n svg.appendChild(element);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var data = document.createTextNode('');\n var tSpan = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n svg.appendChild(tSpan);\n window[\"\" + measureWindowElement] = divElement;\n window[\"\" + measureWindowElement].usageCount = 1;\n document.body.appendChild(divElement);\n var measureElementCount = 'measureElementCount';\n if (!window[\"\" + measureElementCount]) {\n window[\"\" + measureElementCount] = 1;\n }\n else {\n window[\"\" + measureElementCount]++;\n }\n }\n else {\n window[\"\" + measureWindowElement].usageCount += 1;\n }\n}\n/**\n * setChildPosition method \\\n *\n * @returns {number} setChildPosition method .\\\n * @param {SubTextElement} temp - provide the temp value.\n * @param {SubTextElement[]} childNodes - provide the childNodes value.\n * @param {number} i - provide the i value.\n * @param {TextAttributes} options - provide the options value.\n * @private\n */\nexport function setChildPosition(temp, childNodes, i, options) {\n if (childNodes.length >= 1 && temp.x === 0 &&\n (options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') &&\n (options.textWrapping === 'Wrap' || options.textWrapping === 'WrapWithOverflow')) {\n temp.x = childNodes[i - 1] ? childNodes[i - 1].x : -(temp.width / 2);\n return temp.x;\n }\n return temp.x;\n}\n/**\n * getTemplateContent method\\\n *\n * @returns {DiagramHtmlElement} getTemplateContent method .\\\n * @param {DiagramHtmlElement} annotationcontent - provide the annotationcontent value.\n * @param {Annotation} annotation - provide the annotation value.\n * @param {number} annotationTemplate - provide the annotationTemplate value.\n * @param {Object} diagram - provide the diagram value.\n * @private\n */\nexport function getTemplateContent(\n// eslint-disable-next-line @typescript-eslint/ban-types\nannotationcontent, annotation, annotationTemplate, diagram) {\n if ((annotationTemplate && !annotation.template) ||\n (annotation.template && typeof annotation.template === 'function' && diagram.isReact)) {\n annotationcontent.isTemplate = true;\n annotationcontent.template = annotationcontent.content = getContent(annotationcontent, true, annotation);\n }\n else {\n annotationcontent.content = annotation.template;\n }\n return annotationcontent;\n}\n/* eslint-disable */\n/** @private */\nexport function createUserHandleTemplates(userHandleTemplate, template, selectedItems, diagramID) {\n var userHandleFn;\n var handle;\n var compiledString;\n var i;\n var div;\n var diagramElement = document.getElementById(diagramID);\n var instance = 'ej2_instances';\n var diagram = diagramElement[instance][0];\n if (userHandleTemplate && template) {\n userHandleFn = templateCompiler(userHandleTemplate);\n for (var _i = 0, _a = selectedItems.userHandles; _i < _a.length; _i++) {\n handle = _a[_i];\n if (userHandleFn) {\n compiledString = userHandleFn(cloneObject(handle), diagram, 'userHandleTemplate' + '_' + handle.name, undefined, undefined, false);\n for (i = 0; i < compiledString.length; i++) {\n var attr = {\n 'style': 'height: 100%; width: 100%; pointer-events: all',\n 'id': handle.name + '_template_hiddenUserHandle'\n };\n div = createHtmlElement('div', attr);\n div.appendChild(compiledString[i]);\n }\n template[0].appendChild(div);\n }\n }\n } //Removed isBlazor code\n}\n/* eslint-enable */\n","import { compile as baseTemplateComplier } from '@syncfusion/ej2-base';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { identityMatrix, transformPointByMatrix, rotateMatrix } from '../primitives/matrix';\nimport { getValue } from '@syncfusion/ej2-base';\nimport { getChildNode, applyStyleAgainstCsp } from './dom-util';\n/**\n * Implements the basic functionalities\n */\n/**\n * Used to generate the random id \\\n *\n * @returns { boolean } Used to generate the random id .\\\n *\n * @private\n */\nexport function randomId() {\n var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz';\n var id = '';\n var num;\n for (var i = 0; i < 5; i++) {\n if (typeof window !== 'undefined' && 'crypto' in window && 'getRandomValues' in crypto) {\n var count = new Uint16Array(1);\n // tslint:disable-next-line:no-any\n var intCrypto = window.msCrypto || window.crypto;\n num = intCrypto.getRandomValues(count)[0] % (chars.length - 1);\n }\n else {\n num = Math.floor(Math.random() * chars.length);\n }\n if (i === 0 && num < 10) {\n i--;\n continue;\n }\n id += chars.substring(num, num + 1);\n }\n return id;\n}\n/**\n * Used to get the index value \\\n *\n * @returns { boolean } Used to get the index value .\\\n * @param {Diagram} comp - provide the Diagram value.\n * @param {string} id - provide the id value.\n *\n * @private\n */\nexport function getIndex(comp, id) {\n if (comp.nodes && comp.nodes.length > 0) {\n for (var i = 0; i < comp.nodes.length; i++) {\n if (comp.nodes[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n if (comp.connectors && comp.connectors.length > 0) {\n for (var i = 0; i < comp.connectors.length; i++) {\n if (comp.connectors[parseInt(i.toString(), 10)].id === id) {\n return i;\n }\n }\n }\n return null;\n}\n/**\n * templateCompiler method\\\n *\n * @returns { Function } templateCompiler method .\\\n * @param {string} template - provide the template value.\n *\n * @private\n */\nexport function templateCompiler(template) {\n if (template) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var e = void 0;\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return baseTemplateComplier(document.querySelector(template).innerHTML.trim());\n }\n else {\n return baseTemplateComplier(template);\n }\n }\n catch (e) {\n return baseTemplateComplier(template);\n }\n }\n return undefined;\n}\n/**\n * cornersPointsBeforeRotation method\\\n *\n * @returns { Rect } templateCompiler method .\\\n * @param {DiagramElement} ele - provide the template value.\n *\n * @private\n */\nexport function cornersPointsBeforeRotation(ele) {\n var bounds = new Rect();\n var top = ele.offsetY - ele.actualSize.height * ele.pivot.y;\n var bottom = ele.offsetY + ele.actualSize.height * (1 - ele.pivot.y);\n var left = ele.offsetX - ele.actualSize.width * ele.pivot.x;\n var right = ele.offsetX + ele.actualSize.width * (1 - ele.pivot.x);\n var topLeft = { x: left, y: top };\n //const topCenter: PointModel = { x: (left + right) / 2, y: top };\n var topRight = { x: right, y: top };\n //const middleLeft: PointModel = { x: left, y: (top + bottom) / 2 };\n //const middleRight: PointModel = { x: right, y: (top + bottom) / 2 };\n var bottomLeft = { x: left, y: bottom };\n //const bottomCenter: PointModel = { x: (left + right) / 2, y: bottom };\n var bottomRight = { x: right, y: bottom };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n return bounds;\n}\n/**\n * getBounds method\\\n *\n * @returns { Rect } getBounds method .\\\n * @param {DiagramElement} element - provide the template value.\n *\n * @private\n */\nexport function getBounds(element) {\n var bounds = new Rect();\n //let corners: Rect;\n var corners = cornersPointsBeforeRotation(element);\n var middleLeft = corners.middleLeft;\n var topCenter = corners.topCenter;\n var bottomCenter = corners.bottomCenter;\n var middleRight = corners.middleRight;\n var topLeft = corners.topLeft;\n var topRight = corners.topRight;\n var bottomLeft = corners.bottomLeft;\n var bottomRight = corners.bottomRight;\n element.corners = {\n topLeft: topLeft, topCenter: topCenter, topRight: topRight, middleLeft: middleLeft,\n middleRight: middleRight, bottomLeft: bottomLeft, bottomCenter: bottomCenter, bottomRight: bottomRight\n };\n if (element.rotateAngle !== 0 || element.parentTransform !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, element.rotateAngle + element.parentTransform, element.offsetX, element.offsetY);\n element.corners.topLeft = topLeft = transformPointByMatrix(matrix, topLeft);\n element.corners.topCenter = topCenter = transformPointByMatrix(matrix, topCenter);\n element.corners.topRight = topRight = transformPointByMatrix(matrix, topRight);\n element.corners.middleLeft = middleLeft = transformPointByMatrix(matrix, middleLeft);\n element.corners.middleRight = middleRight = transformPointByMatrix(matrix, middleRight);\n element.corners.bottomLeft = bottomLeft = transformPointByMatrix(matrix, bottomLeft);\n element.corners.bottomCenter = bottomCenter = transformPointByMatrix(matrix, bottomCenter);\n element.corners.bottomRight = bottomRight = transformPointByMatrix(matrix, bottomRight);\n //Set corners based on rotate angle\n }\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n element.corners.left = bounds.left;\n element.corners.right = bounds.right;\n element.corners.top = bounds.top;\n element.corners.bottom = bounds.bottom;\n element.corners.center = bounds.center;\n element.corners.width = bounds.width;\n element.corners.height = bounds.height;\n return bounds;\n}\n// Removed updateCloneProp method\n/**\n * cloneObject method\\\n *\n * @returns { Rect } cloneObject method .\\\n * @param {DiagramElement} obj - provide the obj value.\n * @param {DiagramElement} additionalProp - provide the additionalProp value.\n * @param {DiagramElement} key - provide the key value.\n * @param {DiagramElement} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneObject(obj, additionalProp, key, cloneBlazorProp) {\n var newObject = {};\n var keys = 'properties';\n var prop = 'propName';\n if (obj) {\n key = obj[\"\" + prop];\n var sourceObject = obj[\"\" + keys] || obj;\n var properties = [];\n properties = properties.concat(Object.keys(sourceObject));\n var customProperties = [];\n properties.push('version');\n if (key) {\n var propAdditional = getFunction(additionalProp);\n if (propAdditional) {\n customProperties = propAdditional(key);\n }\n else {\n customProperties = [];\n }\n properties = properties.concat(customProperties);\n }\n var internalProp = getInternalProperties(key);\n properties = properties.concat(internalProp);\n //Removed blazor code\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var property = properties_1[_i];\n if (property !== 'historyManager') {\n if (property !== 'wrapper') {\n //const constructorId: string = 'constructor';\n //const name: string = 'name';\n // eslint-disable-next-line no-prototype-builtins\n var isEventEmmitter = obj[\"\" + property] && obj.hasOwnProperty('observers') ? true : false;\n if (!isEventEmmitter) {\n if (obj[\"\" + property] instanceof Array) {\n newObject[\"\" + property] = cloneArray((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], additionalProp, property, cloneBlazorProp);\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof HTMLElement) {\n newObject[\"\" + property] = obj[\"\" + property].cloneNode(true).innerHTML;\n }\n else if (obj[\"\" + property] instanceof Array === false && obj[\"\" + property] instanceof Object) {\n newObject[\"\" + property] = cloneObject((internalProp.indexOf(property) === -1 && obj[\"\" + keys]) ? obj[\"\" + keys][\"\" + property] : obj[\"\" + property], undefined, undefined, cloneBlazorProp);\n }\n else {\n newObject[\"\" + property] = obj[\"\" + property];\n }\n }\n }\n else {\n if (obj[\"\" + property]) {\n newObject[\"\" + property] = {\n actualSize: {\n width: obj[\"\" + property].actualSize.width, height: obj[\"\" + property].actualSize.height\n }, offsetX: obj[\"\" + property].offsetX, offsetY: obj[\"\" + property].offsetY\n };\n }\n }\n }\n }\n }\n return newObject;\n}\n/**\n * getInternalProperties method\\\n *\n * @returns { string[] } getInternalProperties method .\\\n * @param {string} propName - provide the propName value.\n *\n * @private\n */\nexport function getInternalProperties(propName) {\n switch (propName) {\n case 'nodes':\n case 'children':\n return ['inEdges', 'outEdges', 'parentId', 'processId', 'nodeId', 'umlIndex', 'isPhase', 'isLane'];\n case 'connectors':\n return ['parentId'];\n case 'annotation':\n return ['nodeId'];\n case 'annotations':\n return ['nodeId'];\n case 'shape':\n return ['hasHeader'];\n case 'layers':\n return ['objectZIndex'];\n }\n return [];\n}\n/**\n * cloneArray method\\\n *\n * @returns { Object[] } getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} additionalProp - provide the additionalProp value.\n * @param {string} key - provide the key value.\n * @param {string} cloneBlazorProp - provide the cloneBlazorProp value.\n *\n * @private\n */\nexport function cloneArray(sourceArray, additionalProp, key, cloneBlazorProp) {\n var clonedArray;\n if (sourceArray) {\n clonedArray = [];\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n clonedArray.push(cloneObject(sourceArray[parseInt(i.toString(), 10)], additionalProp, key, cloneBlazorProp));\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n return clonedArray;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} options - provide the options value.\n * @param {string} childObject - provide the childObject value.\n *\n * @private\n */\nexport function extendObject(options, childObject) {\n var properties = 'properties';\n if (options) {\n if (!childObject) {\n childObject = { properties: {} };\n }\n //const target: Object = childObject;\n for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) {\n var property = _a[_i];\n if (options[\"\" + property] instanceof Array) {\n var extendeArray = extendArray(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (!childObject[\"\" + properties][\"\" + property] || !childObject[\"\" + properties][\"\" + property].length) {\n childObject[\"\" + property] = extendeArray;\n }\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof HTMLElement) {\n childObject[\"\" + property] = options[\"\" + property].cloneNode(true).innerHtml;\n }\n else if (options[\"\" + property] instanceof Array === false && options[\"\" + property] instanceof Object) {\n var extendedObject = extendObject(options[\"\" + property], childObject[\"\" + properties][\"\" + property]);\n if (extendedObject[\"\" + properties] && !Object.keys(extendedObject[\"\" + properties]).length) {\n delete extendedObject[\"\" + properties];\n }\n childObject[\"\" + property] = extendedObject;\n }\n else {\n childObject[\"\" + property] = childObject[\"\" + properties][\"\" + property] !== undefined ?\n childObject[\"\" + property] : options[\"\" + property];\n }\n }\n }\n return childObject;\n}\n/**\n * extendObject method\\\n *\n * @returns { Object} getInternalProperties method .\\\n * @param {string} sourceArray - provide the sourceArray value.\n * @param {string} childArray - provide the childArray value.\n *\n * @private\n */\nexport function extendArray(sourceArray, childArray) {\n var clonedArray = [];\n var reset = false;\n if (!childArray) {\n childArray = [];\n }\n if (!childArray.length) {\n reset = true;\n }\n for (var i = 0; i < sourceArray.length; i++) {\n if (sourceArray[parseInt(i.toString(), 10)] instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var extendedArray = extendArray(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendArray);\n }\n }\n else if (sourceArray[parseInt(i.toString(), 10)] instanceof Object) {\n var extendedObject = extendObject(sourceArray[parseInt(i.toString(), 10)], childArray[parseInt(i.toString(), 10)]);\n if (reset) {\n clonedArray.push(extendedObject);\n }\n }\n else {\n clonedArray.push(sourceArray[parseInt(i.toString(), 10)]);\n }\n }\n return clonedArray;\n}\n/**\n * textAlignToString method\\\n *\n * @returns { Object} textAlignToString method .\\\n * @param {string} value - provide the sourceArray value.\n *\n * @private\n */\nexport function textAlignToString(value) {\n var state = '';\n switch (value) {\n case 'Center':\n state = 'center';\n break;\n case 'Left':\n state = 'left';\n break;\n case 'Right':\n state = 'right';\n break;\n case 'Justify':\n state = 'justify';\n break;\n }\n return state;\n}\n/**\n * wordBreakToString method\\\n *\n * @returns { string } wordBreakToString method .\\\n * @param {TextWrap | TextDecoration} value - provide the value value.\n *\n * @private\n */\nexport function wordBreakToString(value) {\n var state = '';\n switch (value) {\n case 'Wrap':\n state = 'breakall';\n break;\n case 'NoWrap':\n state = 'keepall';\n break;\n case 'WrapWithOverflow':\n state = 'normal';\n break;\n case 'LineThrough':\n state = 'line-through';\n break;\n }\n return state;\n}\n/**\n * bBoxText method\\\n *\n * @returns { number } bBoxText method .\\\n * @param {string} textContent - provide the textContent value.\n * @param {string} options - provide the options value.\n *\n * @private\n */\nexport function bBoxText(textContent, options) {\n var measureWindowElement = 'measureElement';\n window[\"\" + measureWindowElement].style.visibility = 'visible';\n var svg = window[\"\" + measureWindowElement].children[2];\n var text = getChildNode(svg)[1];\n text.textContent = textContent;\n applyStyleAgainstCsp(text, 'font-size:' + options.fontSize + 'px; font-family:'\n + options.fontFamily + ';font-weight:' + (options.bold ? 'bold' : 'normal'));\n var bBox = text.getBBox().width;\n window[\"\" + measureWindowElement].style.visibility = 'hidden';\n return bBox;\n}\n/**\n * middleElement method\\\n *\n * @returns { number} middleElement method .\\\n * @param {number} i - provide the textContent value.\n * @param {number} j - provide the options value.\n *\n * @private\n */\nexport function middleElement(i, j) {\n var m = 0;\n m = (i + j) / 2;\n return m;\n}\n/**\n * overFlow method\\\n *\n * @returns { number} overFlow method .\\\n * @param {number} text - provide the text value.\n * @param {number} options - provide the options value.\n *\n * @private\n */\nexport function overFlow(text, options) {\n var i = 0;\n var j = 0;\n var middle = 0;\n var bounds = 0;\n var temp = '';\n j = text.length;\n var t = 0;\n do {\n if (bounds > 0) {\n i = middle;\n }\n middle = Math.floor(middleElement(i, j));\n temp += text.substr(i, middle);\n bounds = bBoxText(temp, options);\n } while (bounds <= options.width);\n temp = temp.substr(0, i);\n for (t = i; t < j; t++) {\n temp += text[parseInt(t.toString(), 10)];\n bounds = bBoxText(temp, options);\n if (bounds >= options.width) {\n text = text.substr(0, temp.length - 1);\n break;\n }\n }\n if (options.textOverflow === 'Ellipsis') {\n text = text.substr(0, text.length - 3);\n text += '...';\n }\n else {\n text = text.substr(0, text.length);\n }\n return text;\n}\n/**\n * whiteSpaceToString method\\\n *\n * @returns { number} whiteSpaceToString method .\\\n * @param {number} value - provide the value value.\n * @param {number} wrap - provide the wrap value.\n *\n * @private\n */\nexport function whiteSpaceToString(value, wrap) {\n if (wrap === 'NoWrap' && value === 'PreserveAll') {\n return 'pre';\n }\n var state = '';\n switch (value) {\n case 'CollapseAll':\n state = 'nowrap';\n break;\n case 'CollapseSpace':\n state = 'pre-line';\n break;\n case 'PreserveAll':\n state = 'pre-wrap';\n break;\n }\n return state;\n}\n/**\n * rotateSize method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} size - provide the size value.\n * @param {number} angle - provide the angle value.\n *\n * @private\n */\nexport function rotateSize(size, angle) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, 0, 0);\n var topLeft = transformPointByMatrix(matrix, { x: 0, y: 0 });\n var topRight = transformPointByMatrix(matrix, { x: size.width, y: 0 });\n var bottomLeft = transformPointByMatrix(matrix, { x: 0, y: size.height });\n var bottomRight = transformPointByMatrix(matrix, { x: size.width, y: size.height });\n var minX = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var minY = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n var maxX = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\n var maxY = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\n return new Size(maxX - minX, maxY - minY);\n}\n/**\n * rotatePoint method\\\n *\n * @returns { number} rotateSize method .\\\n * @param {number} angle - provide the angle value.\n * @param {number} pivotX - provide the pivotX value.\n * @param {number} pivotY - provide the pivotY value.\n * @param {PointModel} point - provide the point value.\n * @private\n */\nexport function rotatePoint(angle, pivotX, pivotY, point) {\n if (angle !== 0) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivotX, pivotY);\n return transformPointByMatrix(matrix, point);\n }\n return point;\n}\n/**\n * getOffset method\\\n *\n * @returns { number} getOffset method .\\\n * @param {PointModel} topLeft - provide the angle value.\n * @param {DiagramElement} obj - provide the pivotX value.\n * @private\n */\nexport function getOffset(topLeft, obj) {\n var offX = topLeft.x + obj.desiredSize.width * obj.pivot.x;\n var offY = topLeft.y + obj.desiredSize.height * obj.pivot.y;\n return {\n x: offX, y: offY\n };\n}\n/**\n * getFunction method\\\n *\n * @returns { Function } getFunction method .\\\n * @param {PointModel} value - provide the angle value.\n * @private\n */\nexport function getFunction(value) {\n if (value !== undefined) {\n if (typeof value === 'string') {\n value = getValue(value, window);\n }\n }\n return value;\n}\n","/* eslint-disable no-case-declarations */\n/* eslint-disable @typescript-eslint/indent */\nimport { Size } from './../primitives/size';\nimport { Point } from './../primitives/point';\nimport { processPathData, pathSegmentCollection, getRectanglePath } from './../utility/path-util';\nimport { overFlow } from './../utility/base-util';\nimport { createHtmlElement, setChildPosition } from './../utility/dom-util';\n/**\n * Canvas Renderer\n */\n/** @private */\nvar CanvasRenderer = /** @class */ (function () {\n function CanvasRenderer() {\n }\n /**\n * Provide the context value for the canvas \\\n *\n * @returns {CanvasRenderingContext2D} Provide the context value for the canvas .\\\n * @param { HTMLCanvasElement} canvas - Return the dashed array values .\n * @private\n */\n CanvasRenderer.getContext = function (canvas) {\n return canvas.getContext('2d');\n };\n CanvasRenderer.setCanvasSize = function (canvas, width, height) {\n if (canvas) {\n canvas.setAttribute('width', width.toString());\n canvas.setAttribute('height', height.toString());\n }\n };\n /**\n * Draw the gradient for the diagram shapes .\\\n *\n * @returns {SVGElement} Draw the gradient for the diagram shapes.\n * @param {StyleAttributes} options - Provide the options for the gradient element .\n * @param {SVGElement} ctx - Provide canvas values .\n * @param {string} x - Provide the x value for the gradient .\n * @param {string} y - Provide the x value for the gradient .\n * @private\n */\n CanvasRenderer.prototype.renderGradient = function (options, ctx, x, y) {\n var max;\n var min;\n var grd;\n if (options.gradient.type !== 'None') {\n for (var i = 0; i < options.gradient.stops.length; i++) {\n max = max !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.max(max, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n min = min !== undefined ? options.gradient.stops[parseInt(i.toString(), 10)].offset\n : Math.min(min, options.gradient.stops[parseInt(i.toString(), 10)].offset);\n }\n if (options.gradient.type === 'Linear') {\n var linear = options.gradient;\n grd = ctx.createLinearGradient(x + linear.x1, y + linear.y1, x + linear.x2, y + linear.y2);\n }\n else {\n var radial = options.gradient;\n grd = ctx.createRadialGradient(x + radial.fx, y + radial.fy, 0, x + radial.cx, y + radial.cy, radial.r);\n }\n for (var i = 0; i < options.gradient.stops.length; i++) {\n var stop_1 = options.gradient.stops[parseInt(i.toString(), 10)];\n var offset = min < 0 ? (max + stop_1.offset) / (2 * max) : stop_1.offset / max;\n grd.addColorStop(offset, stop_1.color);\n }\n ctx.fillStyle = grd;\n }\n return ctx;\n };\n /**\n * Draw the shawdow for the rectangle shape in diagram \\\n *\n * @returns {void} Draw the shawdow for the rectangle shape in diagram .\\\n *\n * @param { SVGElement} options - Provide the base attributes .\n * @param { RectAttributes} canvas - Provide the canvas values .\n * @param { string} collection - Provide the collection value.\n * @private\n */\n CanvasRenderer.prototype.renderShadow = function (options, canvas, collection) {\n if (collection === void 0) { collection = null; }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n ctx.strokeStyle = ctx.fillStyle = options.shadow.color;\n ctx.globalAlpha = options.shadow.opacity;\n var ptModel = { x: 0, y: 0 };\n var point = Point.transform(ptModel, options.shadow.angle, options.shadow.distance);\n var transX = options.x + point.x;\n var transY = options.y + point.y;\n var pivotX = transX + options.width * options.pivotX;\n var pivotY = transY + options.height * options.pivotY;\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n if (collection) {\n ctx.translate(transX, transY);\n this.renderPath(canvas, options, collection);\n ctx.translate(-transX, -transY);\n }\n else {\n ctx.rect(transX, transY, options.width, options.height);\n ctx.fillRect(transX, transY, options.width, options.height);\n }\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n };\n /**\n * Create canvas element for the diagram \\\n *\n * @returns {HTMLCanvasElement} Create canvas element for the diagram .\\\n *\n * @param { SVGElement} id - Provide the id for the canvas.\n * @param { Object} width - Provide the width for the canvas.\n * @param { Object} height - Provide the height for the canvas.\n * @private\n */\n CanvasRenderer.createCanvas = function (id, width, height) {\n var canvasObj = createHtmlElement('canvas', { 'id': id });\n this.setCanvasSize(canvasObj, width, height);\n return canvasObj;\n };\n CanvasRenderer.prototype.setStyle = function (canvas, style) {\n var ctx = CanvasRenderer.getContext(canvas);\n if (style.fill === 'none') {\n style.fill = 'transparent';\n }\n if (style.stroke === 'none') {\n style.stroke = 'transparent';\n }\n ctx.strokeStyle = style.stroke;\n ctx.lineWidth = style.strokeWidth;\n if (style.strokeWidth === 0) {\n ctx.strokeStyle = 'transparent';\n }\n ctx.globalAlpha = style.opacity;\n var dashArray = [];\n if (style.dashArray) {\n dashArray = this.parseDashArray(style.dashArray);\n }\n ctx.setLineDash(dashArray);\n if (style.gradient && style.gradient.type !== 'None') {\n if (style.shapeType === 'Rectangle') {\n this.renderGradient(style, ctx, style.x, style.y);\n }\n else {\n this.renderGradient(style, ctx, 0, 0);\n }\n }\n else {\n ctx.fillStyle = style.fill;\n }\n };\n CanvasRenderer.prototype.rotateContext = function (canvas, angle, x, y) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.translate(x, y);\n ctx.rotate(angle * Math.PI / 180);\n ctx.translate(-x, -y);\n };\n CanvasRenderer.prototype.setFontStyle = function (canvas, text) {\n var ctx = CanvasRenderer.getContext(canvas);\n var font = '';\n if (text.italic) {\n font += 'italic ';\n }\n if (text.bold) {\n font += 'bold ';\n }\n font += (text.fontSize) + 'px ';\n font += text.fontFamily;\n ctx.font = font;\n };\n /**\n * Return the dashed array values \\\n *\n * @returns {number[]} Return the dashed array values .\\\n * @param { SVGElement} dashArray - Return the dashed array values .\n * @private\n */\n CanvasRenderer.prototype.parseDashArray = function (dashArray) {\n var dashes = [];\n var separator = dashArray.indexOf(' ') !== -1 ? ' ' : ',';\n var splittedDashes = dashArray.split(separator);\n for (var _i = 0, splittedDashes_1 = splittedDashes; _i < splittedDashes_1.length; _i++) {\n var i = splittedDashes_1[_i];\n dashes.push(Number(i));\n }\n return dashes;\n };\n CanvasRenderer.prototype.drawRoundedRect = function (canvas, options) {\n var context = CanvasRenderer.getContext(canvas);\n context.beginPath();\n var x = options.x;\n var y = options.y;\n var w = options.width;\n var h = options.height;\n var mx = x + w / 2;\n var my = y + h / 2;\n context.beginPath();\n this.setStyle(canvas, options);\n context.moveTo(x, my);\n context.quadraticCurveTo(x, y, mx, y);\n context.quadraticCurveTo(x + w, y, x + w, my);\n context.quadraticCurveTo(x + w, y + h, mx, y + h);\n context.quadraticCurveTo(x, y + h, x, my);\n //892454-Fill color not applied for BPMN activity shapes inside the symbol palette.\n context.fill();\n context.stroke();\n };\n //Rendering Part\n /**\n * Draw the Rectangle for the diagram \\\n *\n * @returns {void} Draw the Rectangle for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG .\n * @param { RectAttributes} options - Provide the Rect attributes .\n * @param { string} diagramId - Provide the diagram id .\n * @param { boolean} isExport - Provide the isExport .\n * @private\n */\n CanvasRenderer.prototype.drawRectangle = function (canvas, options, diagramId, isExport) {\n if (options.visible === true) {\n if (options.cornerRadius) {\n if (!isExport && (options.width < 30 || options.height < 30)) {\n this.drawRoundedRect(canvas, options);\n }\n else {\n options.data = getRectanglePath(options.cornerRadius, options.height, options.width);\n this.drawPath(canvas, options);\n }\n }\n else {\n var ctx = CanvasRenderer.getContext(canvas);\n if (options.shadow) {\n this.renderShadow(options, canvas);\n }\n ctx.save();\n ctx.beginPath();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var cornerRadius = options.cornerRadius;\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n this.setStyle(canvas, options);\n ctx.rect(options.x, options.y, options.width, options.height);\n ctx.fillRect(options.x, options.y, options.width, options.height);\n ctx.fill();\n ctx.stroke();\n ctx.closePath();\n ctx.restore();\n }\n }\n };\n // public updateSelectionRegion(canvas: HTMLCanvasElement, options: RectAttributes): void {\n // this.drawRectangle(canvas, options);\n // }\n // public drawLine(canvas: HTMLCanvasElement, options: LineAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotX: number = options.x + options.width * options.pivotX;\n // let pivotY: number = options.y + options.height * options.pivotY;\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // this.setStyle(canvas, options as StyleAttributes);\n // ctx.translate(options.x, options.y);\n // ctx.moveTo(options.startPoint.x, options.startPoint.y);\n // ctx.lineTo(options.endPoint.x, options.endPoint.y);\n // ctx.translate(-options.x, -options.y);\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n // public drawCircle(canvas: HTMLCanvasElement, options: CircleAttributes): void {\n // let ctx: CanvasRenderingContext2D = CanvasRenderer.getContext(canvas);\n // ctx.save();\n // ctx.beginPath();\n // let pivotY: number = options.y + options.height * options.pivotY;\n // let pivotX: number = options.x + options.width * options.pivotX;\n // this.setStyle(canvas, options as StyleAttributes);\n // this.rotateContext(canvas, options.angle, pivotX, pivotY);\n // ctx.arc(options.centerX, options.centerY, options.radius, 0, 2 * Math.PI);\n // ctx.fill();\n // ctx.stroke();\n // ctx.closePath();\n // ctx.restore();\n // }\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param { PathAttributes} options - Provide the path element attributes .\n * @private\n */\n CanvasRenderer.prototype.drawPath = function (canvas, options) {\n var collection = [];\n collection = processPathData(options.data);\n collection = pathSegmentCollection(collection);\n if (options.shadow) {\n this.renderShadow(options, canvas, collection);\n }\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n ctx.beginPath();\n var pivotY = options.y + options.height * options.pivotY;\n var pivotX = options.x + options.width * options.pivotX;\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n this.setStyle(canvas, options);\n ctx.translate(options.x, options.y);\n if (options.flip === 'Horizontal') {\n ctx.scale(-1, 1);\n ctx.translate(options.width * -1, 0);\n }\n else if (options.flip === 'Vertical') {\n ctx.scale(1, -1);\n ctx.translate(0, options.height * -1);\n }\n else if (options.flip === 'Both') {\n ctx.scale(-1, -1);\n ctx.translate(options.width * -1, options.height * -1);\n }\n this.renderPath(canvas, options, collection);\n ctx.fill();\n ctx.translate(-options.x, -options.y);\n ctx.stroke();\n ctx.restore();\n };\n /**\n * Draw the path element for the diagram\\\n *\n * @returns {void} Draw the path element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {PathAttributes} options - Provide the path element attributes .\n * @param {Object[]} collection - Provide the parent SVG element .\n * @private\n */\n CanvasRenderer.prototype.renderPath = function (canvas, options, collection) {\n if (options.visible === true) {\n var arcCount = 0;\n var ctx = CanvasRenderer.getContext(canvas);\n var x0 = void 0;\n var y0 = void 0;\n var x1 = void 0;\n var y1 = void 0;\n var x2 = void 0;\n var y2 = void 0;\n var x = void 0;\n var y = void 0;\n var length_1;\n var i = void 0;\n var segs = collection;\n for (x = 0, y = 0, i = 0, length_1 = segs.length; i < length_1; ++i) {\n var obj = segs[parseInt(i.toString(), 10)];\n var seg = obj;\n var char = seg.command;\n if ('x1' in seg) {\n x1 = seg.x1;\n }\n if ('x2' in seg) {\n x2 = seg.x2;\n }\n if ('y1' in seg) {\n y1 = seg.y1;\n }\n if ('y2' in seg) {\n y2 = seg.y2;\n }\n if ('x' in seg) {\n x = seg.x;\n }\n if ('y' in seg) {\n y = seg.y;\n }\n switch (char) {\n case 'M':\n ctx.moveTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'L':\n ctx.lineTo(x, y);\n seg.x = x;\n seg.y = y;\n break;\n case 'C':\n ctx.bezierCurveTo(x1, y1, x2, y2, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n seg.x2 = x2;\n seg.y2 = y2;\n break;\n case 'Q':\n ctx.quadraticCurveTo(x1, y1, x, y);\n seg.x = x;\n seg.y = y;\n seg.x1 = x1;\n seg.y1 = y1;\n break;\n case 'A':\n // eslint-disable-next-line\n var curr = { x: x0, y: y0 };\n var rx = void 0;\n var ry = void 0;\n if (options.arc && options.arc.length > 0) {\n if (seg.r1 === 0) {\n rx = options.arc[parseInt(arcCount.toString(), 10)].r1;\n }\n else {\n rx = seg.r1;\n }\n if (seg.r2 === 0) {\n ry = options.arc[parseInt(arcCount.toString(), 10)].r2;\n }\n else {\n ry = seg.r2;\n }\n arcCount++;\n }\n else {\n rx = seg.r1;\n ry = seg.r2;\n }\n var xAxisRotation = seg.angle * (Math.PI / 180.0);\n var largeArc = seg.largeArc;\n var sweep = seg.sweep;\n var cp = { x: x, y: y };\n var currp = {\n x: Math.cos(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.sin(xAxisRotation) * (curr.y - cp.y) / 2.0,\n y: -Math.sin(xAxisRotation) * (curr.x - cp.x) / 2.0 + Math.cos(xAxisRotation) * (curr.y - cp.y) / 2.0\n };\n var l = Math.pow(currp.x, 2) / Math.pow(rx, 2) + Math.pow(currp.y, 2) / Math.pow(ry, 2);\n if (l > 1) {\n rx *= Math.sqrt(l);\n ry *= Math.sqrt(l);\n }\n var k = (Math.pow(ry, 2) * Math.pow(currp.x, 2));\n var s = (largeArc === sweep ? -1 : 1) * Math.sqrt(((Math.pow(rx, 2) * Math.pow(ry, 2)) - (Math.pow(rx, 2) * Math.pow(currp.y, 2)) - k) /\n (Math.pow(rx, 2) * Math.pow(currp.y, 2) + Math.pow(ry, 2) * Math.pow(currp.x, 2)));\n if (isNaN(s)) {\n s = 0;\n }\n var cpp = { x: s * rx * currp.y / ry, y: s * -ry * currp.x / rx };\n var centp = {\n x: (curr.x + cp.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y,\n y: (curr.y + cp.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y\n };\n var a1 = this.a([1, 0], [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry]);\n var u = [(currp.x - cpp.x) / rx, (currp.y - cpp.y) / ry];\n var v = [(-currp.x - cpp.x) / rx, (-currp.y - cpp.y) / ry];\n var ad = this.a(u, v);\n if (this.r(u, v) <= -1) {\n ad = Math.PI;\n }\n if (this.r(u, v) >= 1) {\n ad = 0;\n }\n var dir = !sweep ? -1.0 : 1.0;\n var ah = a1 + dir * (ad / 2.0);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var halfWay = {\n x: centp.x + rx * Math.cos(ah),\n y: centp.y + ry * Math.sin(ah)\n };\n seg.centp = centp;\n seg.xAxisRotation = xAxisRotation;\n seg.rx = rx;\n seg.ry = ry;\n seg.a1 = a1;\n seg.ad = ad;\n seg.sweep = sweep;\n if (ctx != null) {\n var ra = rx > ry ? rx : ry;\n var sx = rx > ry ? 1 : rx / ry;\n var sy = rx > ry ? ry / rx : 1;\n ctx.save();\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, ra, a1, a1 + ad, !sweep);\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n ctx.restore();\n }\n break;\n case 'Z':\n case 'z':\n ctx.closePath();\n x = x0;\n y = y0;\n break;\n }\n x0 = x;\n y0 = y;\n }\n }\n };\n /**\n * Draw the text element for the diagram\\\n *\n * @returns {void} Draw the text element for the diagram .\\\n *\n * @param { SVGElement} canvas - Provide the SVG element .\n * @param {TextAttributes} options - Provide the text element attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {Object} ariaLabel - Provide the label properties .\n * @param {string} diagramId - Provide the diagram id .\n * @param {number} scaleValue - Provide the scale value .\n * @param {Container} parentNode - Provide the parent node .\n * @private\n */\n CanvasRenderer.prototype.drawText = function (canvas, options, parentSvg, ariaLabel, diagramId, scaleValue, parentNode) {\n if (options.content && options.visible === true) {\n var ctx = CanvasRenderer.getContext(canvas);\n ctx.save();\n this.setStyle(canvas, options);\n if (scaleValue) {\n options.fontSize *= scaleValue;\n }\n var pivotX = options.x + options.width * options.pivotX;\n var pivotY = options.y + options.height * options.pivotY;\n // 919944: Text Flip and Rotation Not Applied in Exported Image\n this.applyFlipAndRotate(ctx, options, canvas, pivotX, pivotY);\n this.setFontStyle(canvas, options);\n var i = 0;\n var childNodes = [];\n childNodes = options.childNodes;\n var wrapBounds = options.wrapBounds;\n ctx.fillStyle = options.color;\n if (wrapBounds) {\n var position = this.labelAlign(options, wrapBounds, childNodes);\n for (i = 0; i < childNodes.length; i++) {\n var child = childNodes[parseInt(i.toString(), 10)];\n child.x = setChildPosition(child, childNodes, i, options);\n var offsetX = position.x + (scaleValue ? child.x * scaleValue : child.x) - wrapBounds.x;\n var offsetY = position.y + (scaleValue ? child.dy * scaleValue : child.dy) * i + ((options.fontSize) * 0.8);\n if (wrapBounds.width > options.width && options.textOverflow !== 'Wrap' && options.textWrapping === 'NoWrap') {\n child.text = overFlow(child.text, options);\n }\n if ((options.textOverflow === 'Clip' || options.textOverflow === 'Ellipsis') && options.textWrapping === 'Wrap') {\n if (offsetY < parentNode.actualSize.height + parentNode.bounds.y) {\n if (options.textOverflow === 'Ellipsis' && childNodes[i + 1]) {\n var temp = childNodes[i + 1];\n var y = position.y + temp.dy * (i + 1) + ((options.fontSize) * 0.8);\n if (y > parentNode.actualSize.height + parentNode.bounds.y) {\n child.text = child.text.slice(0, child.text.length - 3);\n child.text = child.text.concat('...');\n }\n }\n ctx.fillText(child.text, offsetX, offsetY);\n }\n }\n else {\n ctx.fillText(child.text, offsetX, offsetY);\n }\n if (options.textDecoration === 'Underline'\n || options.textDecoration === 'Overline'\n || options.textDecoration === 'LineThrough') {\n var startPointX = offsetX;\n var startPointY = void 0;\n var textlength = ctx.measureText(child.text).width;\n var endPointX = offsetX + textlength;\n var endPointY = void 0;\n switch (options.textDecoration) {\n case 'Underline':\n startPointY = offsetY + 2;\n endPointY = offsetY + 2;\n break;\n case 'Overline':\n startPointY = (position.y + child.dy * i);\n endPointY = (position.y + child.dy * i);\n break;\n case 'LineThrough':\n startPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n endPointY = ((offsetY + position.y + child.dy * i) / 2) + 2;\n }\n ctx.beginPath();\n ctx.moveTo(startPointX, startPointY);\n ctx.lineTo(endPointX, endPointY);\n ctx.strokeStyle = options.color;\n ctx.lineWidth = options.fontSize * .08;\n ctx.globalAlpha = options.opacity;\n ctx.stroke();\n }\n }\n }\n ctx.restore();\n }\n };\n // 919944: Flip position and rotate angle calculation for elements\n CanvasRenderer.prototype.applyFlipAndRotate = function (ctx, options, canvas, pivotX, pivotY) {\n if (options.flip === 'Horizontal' || options.flip === 'Vertical') {\n ctx.translate(options.x + options.width / 2, options.y + options.height / 2);\n ctx.rotate(-options.angle * Math.PI / 180);\n ctx.translate(-options.x - options.width / 2, -options.y - options.height / 2);\n }\n else {\n this.rotateContext(canvas, options.angle, pivotX, pivotY);\n }\n ctx.translate(options.x, options.y);\n if (options.flip === 'Horizontal') {\n ctx.scale(-1, 1);\n ctx.translate(options.width * -1, 0);\n }\n else if (options.flip === 'Vertical') {\n ctx.scale(1, -1);\n ctx.translate(0, options.height * -1);\n }\n else if (options.flip === 'Both') {\n ctx.scale(-1, -1);\n ctx.translate(options.width * -1, options.height * -1);\n }\n ctx.translate(-options.x, -options.y);\n };\n CanvasRenderer.prototype.loadImage = function (ctx, obj, canvas, pivotX, pivotY) {\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n var image = new Image();\n image.src = obj.source;\n this.image(ctx, image, obj.x, obj.y, obj.width, obj.height, obj);\n };\n /**\n * Draw the image element for the diagram\\\n *\n * @returns {void} Draw the image element for the diagram .\n * @param { SVGElement | HTMLCanvasElement} canvas - Provide the SVG element .\n * @param {ImageAttributes} obj - Provide the image attributes .\n * @param {SVGSVGElement} parentSvg - Provide the parent SVG element .\n * @param {boolean} fromPalette - Provide the pointer event value .\n * @private\n */\n CanvasRenderer.prototype.drawImage = function (canvas, obj, parentSvg, fromPalette) {\n var _this = this;\n if (obj.visible) {\n var ctx_1 = CanvasRenderer.getContext(canvas);\n ctx_1.save();\n var pivotX_1 = obj.x + obj.width * obj.pivotX;\n var pivotY_1 = obj.y + obj.height * obj.pivotY;\n var imageObj = new Image();\n imageObj.src = obj.source;\n // 919867: Opacity for the image node is not applied to the exported image\n this.setStyle(canvas, obj);\n var id = ctx_1.canvas.id.split('_');\n // eslint-disable-next-line\n var value = id[id.length - 1] === ('diagram' || 'diagramLayer') ? true : false;\n // eslint-disable-next-line\n /**\n * Since Clipping portion for node with slice option is not calculated properly\n * if (obj.sourceX !== undefined && obj.sourceY !== undefined && obj.sourceWidth !== undefined\n * && obj.sourceHeight !== undefined) {\n * ctx.drawImage(imageObj, obj.sourceX, obj.sourceY, obj.sourceWidth, obj.sourceHeight, obj.x, obj.y, obj.width, obj.height);\n * } else {\n * ctx.drawImage(imageObj, obj.x, obj.y, obj.width, obj.height);\n * }\n */\n // 919944: Image Node Flip and Rotation Not Applied in Exported Image\n this.applyFlipAndRotate(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n if (!fromPalette) {\n this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n }\n else {\n imageObj.onload = function () {\n _this.loadImage(ctx_1, obj, canvas, pivotX_1, pivotY_1);\n };\n }\n ctx_1.restore();\n }\n };\n CanvasRenderer.prototype.image = function (ctx, image, x, y, width, height, alignOptions) {\n ctx.beginPath();\n var srcWidth = image.width;\n var srcHeight = image.height;\n var destinationW = width;\n var destinationH = height;\n var resultWidth = 0;\n var resultHeight = 0;\n if (alignOptions && alignOptions.alignment !== 'None') {\n var xalign = alignOptions.alignment.toLowerCase().substr(1, 3);\n var yalign = alignOptions.alignment.toLowerCase().substr(5, 3);\n if (alignOptions.scale === 'Slice') {\n // eslint-disable-next-line\n var a = function () {\n resultWidth = destinationW;\n resultHeight = srcHeight * destinationW / srcWidth;\n };\n // eslint-disable-next-line\n var b = function () {\n resultWidth = srcWidth * destinationH / srcHeight;\n resultHeight = destinationH;\n };\n if (destinationW > destinationH) {\n a();\n if (destinationH > resultHeight) {\n b();\n }\n }\n else if (destinationW === destinationH) {\n if (srcWidth > srcHeight) {\n b();\n }\n else {\n a();\n }\n }\n else {\n b();\n if (destinationW > resultWidth) {\n a();\n }\n }\n var x1 = this.getSliceOffset(xalign, resultWidth, destinationW, srcWidth);\n var y1 = this.getSliceOffset(yalign, resultHeight, destinationH, srcHeight);\n var sWidth = srcWidth - x1;\n var sHeight = srcHeight - y1;\n var dWidth = resultWidth - (x1 * (resultWidth / srcWidth));\n var dHeight = resultHeight - (y1 * (resultHeight / srcHeight));\n var canvas1 = createHtmlElement('canvas', { 'width': width.toString(), 'height': height.toString() });\n var ctx1 = canvas1.getContext('2d');\n ctx1.drawImage(image, x1, y1, sWidth, sHeight, 0, 0, dWidth, dHeight);\n ctx.drawImage(canvas1, x, y, width, height);\n }\n else if (alignOptions.scale === 'Meet') {\n var srcRatio = (srcHeight / srcWidth);\n var destRatio = (destinationH / destinationW);\n resultWidth = destRatio > srcRatio ? destinationW : destinationH / srcRatio;\n resultHeight = destRatio > srcRatio ? destinationW * srcRatio : destinationH;\n x += this.getMeetOffset(xalign, resultWidth, destinationW);\n y += this.getMeetOffset(yalign, resultHeight, destinationH);\n ctx.drawImage(image, 0, 0, srcWidth, srcHeight, x, y, resultWidth, resultHeight);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n }\n else if (alignOptions.flip !== 'None') {\n var scaleX = 1;\n var scaleY = 1;\n if (alignOptions.flip === 'Horizontal' || alignOptions.flip === 'Both') {\n x = -x;\n width = -width;\n scaleX = -1;\n }\n if (alignOptions.flip === 'Vertical' || alignOptions.flip === 'Both') {\n y = -y;\n height = -height;\n scaleY = -1;\n }\n ctx.scale(scaleX, scaleY);\n ctx.drawImage(image, x, y, width, height);\n }\n else {\n ctx.drawImage(image, x, y, width, height);\n }\n ctx.closePath();\n };\n CanvasRenderer.prototype.getSliceOffset = function (arg, res, dest, src) {\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (res - dest) / 2 * src / res;\n case 'max': return (res - dest) * src / res;\n default: return 0;\n }\n };\n CanvasRenderer.prototype.getMeetOffset = function (arg, res, dest) {\n var max = Math.max(res, dest);\n var min = Math.min(res, dest);\n switch (arg) {\n case 'min': return 0;\n case 'mid': return (max - min) / 2;\n case 'max': return max - min;\n default: return 0;\n }\n };\n //end region\n // vector magnitude\n CanvasRenderer.prototype.m = function (v) { return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2)); };\n // ratio between two vectors\n CanvasRenderer.prototype.r = function (u, v) { return (u[0] * v[0] + u[1] * v[1]) / (this.m(u) * this.m(v)); };\n // angle between two vectors\n CanvasRenderer.prototype.a = function (u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(this.r(u, v)); };\n // text utility\n /**\n * Draw the SVG label.\\\n *\n * @returns {PointModel} Draw the SVG label .\n * @param {TextAttributes} text - Provide the canvas element .\n * @param {Object} wrapBounds - Provide the canvas element .\n * @param {SubTextElement []} childNodes - Provide the canvas element .\n * @private\n */\n CanvasRenderer.prototype.labelAlign = function (text, wrapBounds, childNodes) {\n var bounds = new Size(wrapBounds.width, childNodes.length * (text.fontSize * 1.2));\n var position = { x: 0, y: 0 };\n var labelX = text.x;\n var labelY = text.y;\n var offsetx = text.width * 0.5;\n var offsety = text.height * 0.5;\n var pointx = offsetx;\n var pointy = offsety;\n if (text.textAlign === 'left') {\n pointx = 0;\n }\n else if (text.textAlign === 'center') {\n if (wrapBounds.width > text.width && (text.textOverflow === 'Ellipsis' || text.textOverflow === 'Clip')) {\n if (text.textWrapping === 'NoWrap') {\n pointx = 0;\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else {\n pointx = text.width * 0.5;\n }\n }\n else if (text.textAlign === 'right') {\n pointx = (text.width * 1);\n }\n position.x = labelX + pointx + (wrapBounds ? wrapBounds.x : 0);\n position.y = labelY + pointy - bounds.height / 2;\n return position;\n };\n return CanvasRenderer;\n}());\nexport { CanvasRenderer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { Margin } from '../core/appearance';\n/**\n * Defines the size and appearance of the diagram page\n */\nvar Background = /** @class */ (function (_super) {\n __extends(Background, _super);\n function Background() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Background.prototype, \"source\", void 0);\n __decorate([\n Property('transparent')\n ], Background.prototype, \"color\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"scale\", void 0);\n __decorate([\n Property('None')\n ], Background.prototype, \"align\", void 0);\n return Background;\n}(ChildProperty));\nexport { Background };\nvar FitOptions = /** @class */ (function (_super) {\n __extends(FitOptions, _super);\n function FitOptions() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('Page')\n ], FitOptions.prototype, \"mode\", void 0);\n __decorate([\n Property('PageSettings')\n ], FitOptions.prototype, \"region\", void 0);\n __decorate([\n Complex({ top: 25, bottom: 25, left: 25, right: 25 }, Margin)\n ], FitOptions.prototype, \"margin\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canZoomIn\", void 0);\n __decorate([\n Property(undefined)\n ], FitOptions.prototype, \"customBounds\", void 0);\n __decorate([\n Property(false)\n ], FitOptions.prototype, \"canFit\", void 0);\n return FitOptions;\n}(ChildProperty));\nexport { FitOptions };\n/**\n * Defines the size and appearance of diagram page\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * pageSettings: { width: 800, height: 600, orientation: 'Landscape',\n * background: { color: 'blue' }, boundaryConstraints: 'Infinity',\n * multiplePage: true, showPageBreaks: true, },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar PageSettings = /** @class */ (function (_super) {\n __extends(PageSettings, _super);\n function PageSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], PageSettings.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Margin)\n ], PageSettings.prototype, \"margin\", void 0);\n __decorate([\n Property('Landscape')\n ], PageSettings.prototype, \"orientation\", void 0);\n __decorate([\n Property('Infinity')\n ], PageSettings.prototype, \"boundaryConstraints\", void 0);\n __decorate([\n Complex({}, Background)\n ], PageSettings.prototype, \"background\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"multiplePage\", void 0);\n __decorate([\n Property(false)\n ], PageSettings.prototype, \"showPageBreaks\", void 0);\n __decorate([\n Complex({}, FitOptions)\n ], PageSettings.prototype, \"fitOptions\", void 0);\n return PageSettings;\n}(ChildProperty));\nexport { PageSettings };\n/**\n * Diagram ScrollSettings module handles the scroller properties of the diagram\n */\nvar ScrollSettings = /** @class */ (function (_super) {\n __extends(ScrollSettings, _super);\n function ScrollSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"horizontalOffset\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"verticalOffset\", void 0);\n __decorate([\n Property(1)\n ], ScrollSettings.prototype, \"currentZoom\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortWidth\", void 0);\n __decorate([\n Property(0)\n ], ScrollSettings.prototype, \"viewPortHeight\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"minZoom\", void 0);\n __decorate([\n Property(30)\n ], ScrollSettings.prototype, \"maxZoom\", void 0);\n __decorate([\n Property('Diagram')\n ], ScrollSettings.prototype, \"scrollLimit\", void 0);\n __decorate([\n Property()\n ], ScrollSettings.prototype, \"scrollableArea\", void 0);\n __decorate([\n Property(false)\n ], ScrollSettings.prototype, \"canAutoScroll\", void 0);\n __decorate([\n Property(100)\n ], ScrollSettings.prototype, \"autoScrollFrequency\", void 0);\n __decorate([\n Complex({ left: 15, right: 15, top: 15, bottom: 15 }, Margin)\n ], ScrollSettings.prototype, \"autoScrollBorder\", void 0);\n __decorate([\n Complex({ left: 0, right: 0, top: 0, bottom: 0 }, Margin)\n ], ScrollSettings.prototype, \"padding\", void 0);\n __decorate([\n Property(0.2)\n ], ScrollSettings.prototype, \"zoomFactor\", void 0);\n return ScrollSettings;\n}(ChildProperty));\nexport { ScrollSettings };\n","/**\n * ServiceLocator\n *\n * @hidden\n */\nvar ServiceLocator = /** @class */ (function () {\n function ServiceLocator() {\n this.services = {};\n }\n ServiceLocator.prototype.register = function (name, type) {\n this.services[\"\" + name] = type;\n };\n ServiceLocator.prototype.getService = function (name) {\n return this.services[\"\" + name];\n };\n return ServiceLocator;\n}());\nexport { ServiceLocator };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\nimport { SnapConstraints } from '../enum/enum';\n/**\n * Provides a visual guidance while dragging or arranging the objects on the Diagram surface\n */\nvar Gridlines = /** @class */ (function (_super) {\n __extends(Gridlines, _super);\n function Gridlines() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('lightgray')\n ], Gridlines.prototype, \"lineColor\", void 0);\n __decorate([\n Property('')\n ], Gridlines.prototype, \"lineDashArray\", void 0);\n __decorate([\n Property([1.25, 18.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75, 0.25, 19.75])\n ], Gridlines.prototype, \"lineIntervals\", void 0);\n __decorate([\n Property([1, 19, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5, 0.5, 19.5])\n ], Gridlines.prototype, \"dotIntervals\", void 0);\n __decorate([\n Property([20])\n ], Gridlines.prototype, \"snapIntervals\", void 0);\n return Gridlines;\n}(ChildProperty));\nexport { Gridlines };\n/**\n * Defines the gridlines and defines how and when the objects have to be snapped\n *\n * @default {}\n */\nvar SnapSettings = /** @class */ (function (_super) {\n __extends(SnapSettings, _super);\n function SnapSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"horizontalGridlines\", void 0);\n __decorate([\n Complex({}, Gridlines)\n ], SnapSettings.prototype, \"verticalGridlines\", void 0);\n __decorate([\n Property(SnapConstraints.All)\n ], SnapSettings.prototype, \"constraints\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapAngle\", void 0);\n __decorate([\n Property('Lines')\n ], SnapSettings.prototype, \"gridType\", void 0);\n __decorate([\n Property(5)\n ], SnapSettings.prototype, \"snapObjectDistance\", void 0);\n __decorate([\n Property('#07EDE1')\n ], SnapSettings.prototype, \"snapLineColor\", void 0);\n return SnapSettings;\n}(ChildProperty));\nexport { SnapSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\n/**\n * Defines the properties of both horizontal and vertical guides/rulers to measure the diagram area.\n */\nvar DiagramRuler = /** @class */ (function (_super) {\n __extends(DiagramRuler, _super);\n function DiagramRuler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(5)\n ], DiagramRuler.prototype, \"interval\", void 0);\n __decorate([\n Property(100)\n ], DiagramRuler.prototype, \"segmentWidth\", void 0);\n __decorate([\n Property('Horizontal')\n ], DiagramRuler.prototype, \"orientation\", void 0);\n __decorate([\n Property('RightOrBottom')\n ], DiagramRuler.prototype, \"tickAlignment\", void 0);\n __decorate([\n Property('red')\n ], DiagramRuler.prototype, \"markerColor\", void 0);\n __decorate([\n Property(25)\n ], DiagramRuler.prototype, \"thickness\", void 0);\n __decorate([\n Property(null)\n ], DiagramRuler.prototype, \"arrangeTick\", void 0);\n return DiagramRuler;\n}(ChildProperty));\nexport { DiagramRuler };\n/**\n * Defines the ruler settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * rulerSettings: { showRulers: true,\n * horizontalRuler: { segmentWidth: 50,interval: 10 },\n * verticalRuler: {segmentWidth: 200,interval: 20}\n * },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar RulerSettings = /** @class */ (function (_super) {\n __extends(RulerSettings, _super);\n function RulerSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], RulerSettings.prototype, \"showRulers\", void 0);\n __decorate([\n Property(true)\n ], RulerSettings.prototype, \"dynamicGrid\", void 0);\n __decorate([\n Complex({ orientation: 'Horizontal' }, DiagramRuler)\n ], RulerSettings.prototype, \"horizontalRuler\", void 0);\n __decorate([\n Complex({ orientation: 'Vertical' }, DiagramRuler)\n ], RulerSettings.prototype, \"verticalRuler\", void 0);\n return RulerSettings;\n}(ChildProperty));\nexport { RulerSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar DataMappingItems = /** @class */ (function (_super) {\n __extends(DataMappingItems, _super);\n function DataMappingItems() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"property\", void 0);\n __decorate([\n Property('')\n ], DataMappingItems.prototype, \"field\", void 0);\n return DataMappingItems;\n}(ChildProperty));\nexport { DataMappingItems };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty, Complex, Collection } from '@syncfusion/ej2-base';\nimport { DataMappingItems as DataMappingItems } from './data-mapping';\n/**\n * Configures the data source that is to be bound with diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let data: object[] = [\n * { Name: \"Elizabeth\", Role: \"Director\" },\n * { Name: \"Christina\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Yoshi\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Philip\", ReportingPerson: \"Christina\", Role: \"Lead\" },\n * { Name: \"Yang\", ReportingPerson: \"Elizabeth\", Role: \"Manager\" },\n * { Name: \"Roland\", ReportingPerson: \"Yang\", Role: \"Lead\" },\n * { Name: \"Yvonne\", ReportingPerson: \"Yang\", Role: \"Lead\" }\n * ];\n * let items: DataManager = new DataManager(data as JSON[]);\n * let diagram: Diagram = new Diagram({\n * ...\n * layout: {\n * type: 'OrganizationalChart'\n * },\n * dataSourceSettings: {\n * id: 'Name', parentId: 'ReportingPerson', dataManager: items,\n * }\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar CrudAction = /** @class */ (function (_super) {\n __extends(CrudAction, _super);\n function CrudAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CrudAction.prototype, \"read\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"create\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"update\", void 0);\n __decorate([\n Property('')\n ], CrudAction.prototype, \"destroy\", void 0);\n __decorate([\n Property()\n ], CrudAction.prototype, \"customFields\", void 0);\n return CrudAction;\n}(ChildProperty));\nexport { CrudAction };\nvar ConnectionDataSource = /** @class */ (function (_super) {\n __extends(ConnectionDataSource, _super);\n function ConnectionDataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"id\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"sourceID\", void 0);\n __decorate([\n Property('')\n ], ConnectionDataSource.prototype, \"targetID\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"sourcePointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointX\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"targetPointY\", void 0);\n __decorate([\n Property(null)\n ], ConnectionDataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], ConnectionDataSource.prototype, \"crudAction\", void 0);\n return ConnectionDataSource;\n}(ChildProperty));\nexport { ConnectionDataSource };\nvar DataSource = /** @class */ (function (_super) {\n __extends(DataSource, _super);\n function DataSource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], DataSource.prototype, \"id\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataManager\", void 0);\n __decorate([\n Property(null)\n ], DataSource.prototype, \"dataSource\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"root\", void 0);\n __decorate([\n Property('')\n ], DataSource.prototype, \"parentId\", void 0);\n __decorate([\n Property()\n ], DataSource.prototype, \"doBinding\", void 0);\n __decorate([\n Collection([], DataMappingItems)\n ], DataSource.prototype, \"dataMapSettings\", void 0);\n __decorate([\n Complex({}, CrudAction)\n ], DataSource.prototype, \"crudAction\", void 0);\n __decorate([\n Complex({}, ConnectionDataSource)\n ], DataSource.prototype, \"connectionDataSource\", void 0);\n return DataSource;\n}(ChildProperty));\nexport { DataSource };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Margin } from '../core/appearance';\nimport { Property, Complex, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * Defines the configuration settings for flowchart automatic layout\n */\nvar FlowchartLayoutSettings = /** @class */ (function (_super) {\n __extends(FlowchartLayoutSettings, _super);\n function FlowchartLayoutSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('LeftInFlow')\n ], FlowchartLayoutSettings.prototype, \"yesBranchDirection\", void 0);\n __decorate([\n Property('RightInFlow')\n ], FlowchartLayoutSettings.prototype, \"noBranchDirection\", void 0);\n __decorate([\n Property(['Yes', 'True'])\n ], FlowchartLayoutSettings.prototype, \"yesBranchValues\", void 0);\n __decorate([\n Property(['No', 'False'])\n ], FlowchartLayoutSettings.prototype, \"noBranchValues\", void 0);\n return FlowchartLayoutSettings;\n}(ChildProperty));\nexport { FlowchartLayoutSettings };\n/**\n * Defines the behavior of the automatic layouts\n */\nvar Layout = /** @class */ (function (_super) {\n __extends(Layout, _super);\n function Layout() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Layout.prototype, \"fixedNode\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"horizontalSpacing\", void 0);\n __decorate([\n Property('SamePoint')\n ], Layout.prototype, \"connectionPointOrigin\", void 0);\n __decorate([\n Property('Nonlinear')\n ], Layout.prototype, \"arrangement\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"verticalSpacing\", void 0);\n __decorate([\n Property(30)\n ], Layout.prototype, \"maxIteration\", void 0);\n __decorate([\n Property(40)\n ], Layout.prototype, \"springFactor\", void 0);\n __decorate([\n Property(50)\n ], Layout.prototype, \"springLength\", void 0);\n __decorate([\n Complex({ left: 50, top: 50, right: 0, bottom: 0 }, Margin)\n ], Layout.prototype, \"margin\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"horizontalAlignment\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"verticalAlignment\", void 0);\n __decorate([\n Property('TopToBottom')\n ], Layout.prototype, \"orientation\", void 0);\n __decorate([\n Property('Auto')\n ], Layout.prototype, \"connectionDirection\", void 0);\n __decorate([\n Property('Default')\n ], Layout.prototype, \"connectorSegments\", void 0);\n __decorate([\n Property('None')\n ], Layout.prototype, \"type\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getLayoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"layoutInfo\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"getBranch\", void 0);\n __decorate([\n Property()\n ], Layout.prototype, \"bounds\", void 0);\n __decorate([\n Property(true)\n ], Layout.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property(false)\n ], Layout.prototype, \"enableRouting\", void 0);\n __decorate([\n Property('')\n ], Layout.prototype, \"root\", void 0);\n __decorate([\n Complex({}, FlowchartLayoutSettings)\n ], Layout.prototype, \"flowchartLayoutSettings\", void 0);\n return Layout;\n}(ChildProperty));\nexport { Layout };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { Point } from '../primitives/point';\nimport { Rect } from '../primitives/rect';\nimport { intersect3, cloneBlazorObject } from '../utility/diagram-util';\nimport { cloneObject } from '../utility/base-util';\nimport { DiagramEvent } from './../enum/enum';\nimport { contains } from './actions';\nimport { getOppositeDirection } from '../utility/connector';\nimport { StraightSegment, OrthogonalSegment } from '../objects/connector';\nimport { ToolBase } from './tool';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Multiple segments editing for Connector\n */\nvar ConnectorEditing = /** @class */ (function (_super) {\n __extends(ConnectorEditing, _super);\n function ConnectorEditing(commandHandler, endPoint) {\n var _this = _super.call(this, commandHandler, true) || this;\n _this.oldValue = null;\n _this.endPoint = endPoint;\n return _this;\n }\n /**\n * mouseDown method\\\n *\n * @returns { void } mouseDown method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseDown = function (args) {\n var connectors;\n var edit = true;\n if (args.source && args.source.connectors) {\n connectors = args.source.connectors[0];\n }\n if (args.info && args.actualObject) {\n edit = args.info.ctrlKey && args.actualObject.type !== 'Orthogonal';\n }\n if (connectors && edit) {\n this.inAction = true;\n this.undoElement = cloneObject(args.source);\n _super.prototype.mouseDown.call(this, args);\n // Sets the selected segment\n for (var i = 0; i < connectors.segments.length; i++) {\n var segment = connectors.segments[parseInt(i.toString(), 10)];\n if (this.endPoint === 'OrthoThumb') {\n for (var j = 0; j < segment.points.length - 1; j++) {\n var segPoint = { x: 0, y: 0 };\n segPoint.x = ((segment.points[parseInt(j.toString(), 10)].x + segment.points[j + 1].x) / 2);\n segPoint.y = ((segment.points[parseInt(j.toString(), 10)].y + segment.points[j + 1].y) / 2);\n if (contains(this.currentPosition, segPoint, 30)) {\n this.selectedSegment = segment;\n this.segmentIndex = j;\n }\n }\n }\n else {\n if (contains(this.currentPosition, segment.point, 10)) {\n this.selectedSegment = segment;\n }\n }\n }\n }\n };\n /**\n * mouseMove method\\\n *\n * @returns { void } mouseMove method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseMove = function (args) {\n _super.prototype.mouseMove.call(this, args);\n this.currentPosition = args.position;\n if (this.currentPosition && this.prevPosition) {\n var diffY = this.currentPosition.y - this.prevPosition.y;\n var diffX = this.currentPosition.x - this.prevPosition.x;\n this.currentPosition = this.commandHandler.snapConnectorEnd(this.currentPosition);\n var connector = void 0;\n var newValue = void 0;\n var isSame = false;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n }\n if (Point.equals(this.startPosition, this.prevPosition)) {\n isSame = true;\n }\n if (this.oldValue === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n var arg = {\n source: connector, state: 'Start', oldValue: this.oldValue, newValue: this.oldValue,\n segment: this.selectedSegment, cancel: false\n };\n //EJ2-66217 - Support to add event for segment points editing in connector.\n arg = {\n source: cloneBlazorObject(connector), state: 'Start', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(this.oldValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n if (isSame && !isBlazor()) {\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n // When cancel is set to true at state Start, the segment change will be prevented.\n if (arg.cancel) {\n this.commandHandler.diagram.resetTool();\n }\n if ((this.inAction && this.selectedSegment !== undefined && this.endPoint !== undefined)\n && (diffX !== 0 || diffY !== 0) && !arg.cancel) {\n if (this.endPoint === 'OrthoThumb') {\n this.blocked = !this.dragOrthogonalSegment(connector, this.selectedSegment, this.currentPosition, this.segmentIndex);\n if (this.oldValue.length === null && this.oldValue.direction === null) {\n this.oldValue = cloneObject(this.selectedSegment);\n }\n newValue = cloneObject(this.selectedSegment);\n }\n else {\n var tx = this.currentPosition.x - this.selectedSegment.point.x;\n var ty = this.currentPosition.y - this.selectedSegment.point.y;\n var index = connector.segments.indexOf(this.selectedSegment);\n this.blocked = !this.commandHandler.dragControlPoint(connector, tx, ty, false, index);\n newValue = cloneObject(this.selectedSegment);\n }\n this.commandHandler.updateSelector();\n this.currentPosition = args.position;\n var arg1 = {\n source: cloneBlazorObject(connector), state: 'Progress', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneBlazorObject(newValue),\n segment: cloneBlazorObject(this.selectedSegment), cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg1);\n }\n }\n this.prevPosition = this.currentPosition;\n return !this.blocked;\n };\n /**\n * mouseUp method\\\n *\n * @returns { void } mouseUp method .\\\n * @param {MouseEventArgs} args - provide the args value.\n * @private\n */\n ConnectorEditing.prototype.mouseUp = function (args) {\n var connector;\n var oldValues;\n if (args.source && args.source.connectors) {\n connector = args.source.connectors[0];\n oldValues = { segments: connector.segments };\n }\n if (args && args.source && args.info && args.info.ctrlKey && args.info.shiftKey && connector.type === 'Straight') {\n this.addOrRemoveSegment(connector, this.currentPosition);\n }\n else {\n if (this.endPoint === 'OrthoThumb' && this.selectedSegment) {\n var index = connector.segments.indexOf(this.selectedSegment);\n var prev = connector.segments[index - 1];\n var next = connector.segments[index + 1];\n if (index === connector.segments.length - 2\n && this.updateLastSegment(connector, this.selectedSegment)) {\n connector.segments.splice(connector.segments.length - 2, 1);\n }\n else {\n //Bug 853404: Exception occurs while adjusting the connector segment.\n if (prev && Math.abs(prev.length) < 5 && prev.length > 0) {\n if (index !== 1) {\n this.removePrevSegment(connector, index);\n }\n }\n else if (next) {\n var len = Point.distancePoints(next.points[0], next.points[1]);\n var length_1 = ((next.length || next.length === 0) ? next.length : len);\n if ((Math.abs(length_1) <= 5)) {\n this.removeNextSegment(connector, index);\n }\n }\n }\n this.commandHandler.updateEndPoint(connector, oldValues);\n // EJ2-65063 - While mouseUp set the selectedSegmentIndex as zero.\n connector.selectedSegmentIndex = 0;\n }\n }\n if (this.undoElement) {\n //let obj: SelectorModel;\n var obj = cloneObject(args.source);\n var entry = {\n type: 'SegmentChanged', redoObject: obj, undoObject: this.undoElement, category: 'Internal'\n };\n this.commandHandler.addHistoryEntry(entry);\n }\n if (connector.isBezierEditing) {\n connector.isBezierEditing = false;\n }\n if (this.prevPosition !== this.startPosition) {\n var arg = {\n source: cloneBlazorObject(connector), state: 'Completed', oldValue: cloneBlazorObject(this.oldValue),\n newValue: cloneObject(this.selectedSegment), cancel: false, segment: cloneBlazorObject(this.selectedSegment)\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentChange, arg);\n }\n _super.prototype.mouseUp.call(this, args);\n };\n ConnectorEditing.prototype.removePrevSegment = function (connector, index) {\n var first = connector.segments[index - 2];\n var next = connector.segments[index + 1];\n //Bug 905092: Exception through while dragging segment and reverted back to its original position.\n //Added next condition to check the next segment is not null.\n if (next) {\n var length_2 = (next.length || next.length === 0) ? next.length : Point.distancePoints(next.points[0], next.points[1]);\n if (!(length_2 <= 5)) {\n var removeSegments = connector.segments.slice(index - 1, index + 1);\n var args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n var last = connector.segments[index + 1];\n connector.segments.splice(index - 1, 2);\n var segment = this.selectedSegment;\n if (segment.direction === 'Left' || segment.direction === 'Right') {\n first.points[first.points.length - 1].x = last.points[0].x;\n last.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = last.points[0].y;\n last.points[0].x = first.points[first.points.length - 1].x;\n }\n if (segment.length || segment.length === 0) {\n this.findSegmentDirection(first);\n }\n this.findSegmentDirection(last);\n }\n }\n }\n };\n ConnectorEditing.prototype.findSegmentDirection = function (segment) {\n if (segment.direction && (segment.length || segment.length === 0)) {\n segment.length = Point.distancePoints(segment.points[0], segment.points[segment.points.length - 1]);\n segment.direction = Point.direction(segment.points[0], segment.points[segment.points.length - 1]);\n }\n };\n ConnectorEditing.prototype.removeNextSegment = function (connector, index) {\n var segment = this.selectedSegment;\n var first = connector.segments[index - 1];\n var last = connector.segments[index + 2];\n var next = connector.segments[index + 1];\n // eslint-disable-next-line\n var removeSegments;\n var args;\n if (next.length || next.length === 0) {\n removeSegments = connector.segments.slice(index, 2);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n args = {\n element: cloneBlazorObject(connector), removeSegments: cloneBlazorObject(removeSegments),\n type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index, 2);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n last.points[0].y = segment.points[0].y;\n first.points[first.points.length - 1].x = last.points[0].x;\n }\n else {\n last.points[0].x = segment.points[0].x;\n first.points[first.points.length - 1].y = last.points[0].y;\n }\n }\n }\n else {\n removeSegments = connector.segments.slice(index + 1, 1);\n args = {\n element: connector, removeSegments: removeSegments, type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n connector.segments.splice(index + 1, 1);\n if (segment.direction === 'Top' || segment.direction === 'Bottom') {\n first.points[first.points.length - 1].x = next.points[next.points.length - 1].x;\n }\n else {\n first.points[first.points.length - 1].y = next.points[next.points.length - 1].y;\n }\n this.findSegmentDirection(first);\n segment.length = segment.direction = null;\n }\n }\n if (first && last && !args.cancel) {\n first.length = Point.distancePoints(first.points[0], last.points[0]);\n first.direction = Point.direction(first.points[0], last.points[0]);\n if (last.length || last.length === 0) {\n last.length = Point.distancePoints(first.points[first.points.length - 1], last.points[last.points.length - 1]);\n var point1 = first.points;\n var point2 = last.points;\n last.direction = Point.direction(point1[point1.length - 1], point2[point2.length - 1]);\n }\n }\n };\n /**\n * addOrRemoveSegment method Used to add or remove intermediate segments to the straight connector. \\\n *\n * @returns {void} addOrRemoveSegment method Used to add or remove intermediate segments to the straight connector.\n * @param {ConnectorModel} connector - provide the connector value in which segment to be added/removed.\n * @param {PointModel} point - provide the mouse clicked position as a point of the segment\n * @param {CommandHandler} commandHandler - provide the CommandHandler value that defines the behavior of commands\n * @private\n */\n ConnectorEditing.prototype.addOrRemoveSegment = function (connector, point, commandHandler) {\n var updateSeg;\n var segmentIndex;\n var segmentsChanged = [];\n var oldValues = { segments: connector.segments };\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = (connector.segments)[parseInt(i.toString(), 10)];\n if (contains(point, segment.point, connector.hitPadding)) {\n segmentIndex = i;\n updateSeg = true;\n //848696-Trigger SegmentCollectionChange Event for straight connector\n segmentsChanged.push(segment);\n var args = {\n element: connector, removeSegments: segmentsChanged, type: 'Removal', cancel: false\n };\n if (commandHandler) {\n commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n }\n }\n }\n //827745-support to edit Segment for Straight connector at runtime\n if (!this.commandHandler) {\n this.commandHandler = commandHandler;\n }\n if (updateSeg && segmentIndex !== undefined) {\n if (connector.segments && connector.segments[parseInt(segmentIndex.toString(), 10)] && connector.segments[parseInt(segmentIndex.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(segmentIndex.toString(), 10)];\n var previous = connector.segments[segmentIndex + 1];\n if (previous) {\n connector.segments.splice(segmentIndex, 1);\n previous.points[0] = segment.points[0];\n }\n }\n }\n else {\n this.commandHandler.enableServerDataBinding(false);\n var index = this.findIndex(connector, point);\n if (connector.segments && connector.segments[parseInt(index.toString(), 10)] && connector.segments[parseInt(index.toString(), 10)].type === 'Straight') {\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var newseg = new StraightSegment(connector, 'segments', { type: 'Straight', point: point }, true);\n newseg.points[0] = segment.points[0];\n newseg.points[1] = point;\n segment.points[0] = point;\n connector.segments.splice(index, 0, newseg);\n updateSeg = true;\n //848696-Trigger SegmentCollectionchange Event for straight connector\n segmentsChanged.push(segment);\n var args = {\n element: connector, addSegments: segmentsChanged, type: 'Addition', cancel: false\n };\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n }\n this.commandHandler.enableServerDataBinding(true);\n }\n if (updateSeg) {\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.findIndex = function (connector, point) {\n var intersectingSegs = [];\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = connector.segments[parseInt(i.toString(), 10)];\n var rect = Rect.toBounds([segment.points[0], segment.points[1]]);\n rect.Inflate(connector.hitPadding);\n if (rect.containsPoint(point)) {\n intersectingSegs.push(segment);\n }\n }\n if (intersectingSegs.length === 1) {\n return connector.segments.indexOf(intersectingSegs[0]);\n }\n else {\n var ratio = void 0;\n var min = void 0;\n var index = void 0;\n var seg = void 0;\n var v = void 0;\n var h = void 0;\n for (var i = 0; i < intersectingSegs.length; i++) {\n seg = intersectingSegs[parseInt(i.toString(), 10)];\n v = (point.y - seg.points[0].y) / (seg.points[1].y - point.y);\n h = (point.x - seg.points[0].x) / (seg.points[1].x - point.x);\n ratio = Math.abs(v - h);\n if (i === 0) {\n min = ratio;\n index = 0;\n }\n if (ratio < min) {\n min = ratio;\n index = i;\n }\n }\n return connector.segments.indexOf(intersectingSegs[parseInt(index.toString(), 10)]);\n }\n };\n ConnectorEditing.prototype.dragOrthogonalSegment = function (obj, segment, point, segmentIndex) {\n var segmentPoint = { x: 0, y: 0 };\n var oldValues = { segments: obj.segments };\n segmentPoint.x = ((segment.points[parseInt(segmentIndex.toString(), 10)].x + segment.points[segmentIndex + 1].x) / 2);\n segmentPoint.y = ((segment.points[parseInt(segmentIndex.toString(), 10)].y + segment.points[segmentIndex + 1].y) / 2);\n var ty = point.y - segmentPoint.y;\n var tx = point.x - segmentPoint.x;\n var index = obj.segments.indexOf(segment);\n var update = false;\n //const orientation: string = (segment.points[0].y.toFixed(2) === segment.points[1].y.toFixed(2)) ? 'horizontal' : 'vertical';\n //const prevSegment: OrthogonalSegmentModel; const nextSegment: OrthogonalSegmentModel;\n // EJ2-65063 - If the allowNodeOverlap is set as true means then we set the segment index which is going to drag in selectedSegmentIndex property\n if (obj.allowNodeOverlap) {\n obj.selectedSegmentIndex = index ? index : segmentIndex;\n }\n if (index !== -1) {\n if (index === 0 && obj.segments.length === 1 && segment.points.length === 2) {\n index = this.addSegments(obj, segment, tx, ty, index);\n update = true;\n }\n else if (index === obj.segments.length - 1 && (segment.direction === null || segment.length === null)) {\n index = this.addTerminalSegment(obj, segment, tx, ty, segmentIndex);\n update = true;\n }\n else if (index === 0) {\n index = this.insertFirstSegment(obj, segment, tx, ty, index);\n update = true;\n }\n if (index) {\n if (update) {\n this.selectedSegment = segment = obj.segments[parseInt(index.toString(), 10)];\n this.segmentIndex = 0;\n }\n this.updateAdjacentSegments(obj, index, tx, ty);\n this.commandHandler.updateEndPoint(obj, oldValues);\n }\n }\n return true;\n };\n ConnectorEditing.prototype.addSegments = function (obj, segment, tx, ty, coll) {\n var index;\n var segments = []; //let len: number;\n var length = Point.distancePoints(segment.points[0], segment.points[1]);\n var segmentDirection = Point.direction(segment.points[0], segment.points[1]);\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 4 }, true));\n var direction = (segment.points[0].y === segment.points[1].y) ? ((ty > 0) ? 'Bottom' : 'Top') : ((tx > 0) ? 'Right' : 'Left');\n var len = (segment.points[0].x === segment.points[1].x) ? ty : tx;\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: len }, true));\n segments.push(new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: segmentDirection, length: length / 2 }, true));\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n obj.segments = segments.concat(obj.segments);\n index = coll + 2;\n }\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.insertFirstSegment = function (obj, segment, tx, ty, coll) {\n var direction;\n var length;\n var segments = [];\n var segValues;\n var index;\n var insertseg;\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n var prev = void 0;\n for (var i = 0; i < segment.points.length - 1; i++) {\n var len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n var dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: dir, length: len }, true);\n if (insertseg.length === 0) {\n if (prev && (prev.direction === 'Top' || prev.direction === 'Bottom')) {\n insertseg.direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n insertseg.direction = ty > 0 ? 'Bottom' : 'Top';\n }\n }\n prev = insertseg;\n segments.push(insertseg);\n }\n }\n else {\n segValues = { type: 'Orthogonal', direction: segment.direction, length: segment.length / 3 };\n segments.push(new OrthogonalSegment(obj, 'segments', segValues, true));\n if (segment.direction === 'Bottom' || segment.direction === 'Top') {\n length = Math.abs(tx);\n direction = tx > 0 ? 'Right' : 'Left';\n }\n else {\n length = Math.abs(ty);\n direction = ty > 0 ? 'Bottom' : 'Top';\n }\n insertseg = new OrthogonalSegment(obj, 'segments', { type: 'Orthogonal', direction: direction, length: length }, true);\n segments.push(insertseg);\n }\n var args = {\n element: obj, addSegments: segments, type: 'Addition', cancel: false\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args);\n if (!args.cancel) {\n if (obj.sourcePortID && segment.length && obj.segments[0].points.length > 2) {\n obj.segments.splice(0, 1);\n index = 1;\n }\n else {\n var nextseg = obj.segments[1];\n if (nextseg && nextseg.length) {\n nextseg.length = (direction !== nextseg.direction) ? nextseg.length + length : nextseg.length - length;\n }\n index = 2;\n segment.length = 2 * segment.length / 3;\n }\n obj.segments = segments.concat(obj.segments);\n }\n return index;\n };\n ConnectorEditing.prototype.updateAdjacentSegments = function (obj, index, tx, ty) {\n var current = obj.segments[parseInt(index.toString(), 10)];\n var endPoint = current.points[current.points.length - 1];\n var startPoint = current.points[0];\n var isNextUpdate = true;\n if (current.type === 'Orthogonal') {\n current.points[0] = startPoint;\n current.points[current.points.length - 1] = endPoint;\n var prev = obj.segments[index - 1];\n if (prev) {\n isNextUpdate = this.updatePreviousSegment(tx, ty, obj, index);\n }\n if (obj.segments.length - 1 > index && isNextUpdate) {\n var nextSegment = obj.segments[index + 1];\n this.updateNextSegment(obj, current, nextSegment, tx, ty);\n }\n }\n };\n ConnectorEditing.prototype.addTerminalSegment = function (connector, segment, tx, ty, segmentIndex) {\n //const oldValues: Connector = { segments: connector.segments } as Connector;\n var index = connector.segments.indexOf(segment);\n var first;\n var insertseg;\n var len;\n var dir;\n var segments = [];\n var removeSegment = connector.segments.pop();\n var last = connector.segments[connector.segments.length - 1];\n first = (last && last.type === 'Orthogonal') ? last : null;\n for (var i = 0; i < segment.points.length - 2; i++) {\n len = Point.distancePoints(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n dir = Point.direction(segment.points[parseInt(i.toString(), 10)], segment.points[i + 1]);\n insertseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir }, true);\n segments.push(insertseg);\n first = insertseg;\n }\n var sec = segmentIndex;\n if (segment.points.length === 2 || sec === segment.points.length - 2) {\n if (first) {\n first.length += 5;\n }\n if (sec !== undefined) {\n //let newseg: OrthogonalSegment;\n len = 2 * Point.distancePoints(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]) / 3;\n dir = Point.direction(segment.points[segment.points.length - 2], segment.points[segment.points.length - 1]);\n var newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: dir });\n segments.push(newseg);\n }\n }\n var lastseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segments.push(lastseg);\n var args = {\n element: connector, addSegments: segments, type: 'Addition', cancel: false\n };\n var args1 = {\n element: cloneBlazorObject(connector), addSegments: cloneBlazorObject(segments),\n type: 'Addition', cancel: args.cancel\n };\n //Removed isBlazor code\n this.commandHandler.triggerEvent(DiagramEvent.segmentCollectionChange, args1);\n if (!args1.cancel) {\n connector.segments = connector.segments.concat(segments);\n index = index + segmentIndex;\n }\n else {\n connector.segments.push(removeSegment);\n }\n this.commandHandler.updateEndPoint(connector);\n return index;\n };\n // eslint-disable-next-line\n ConnectorEditing.prototype.updatePortSegment = function (prev, connector, index, tx, ty) {\n if (index === 1 && prev.points.length === 2 && prev.length < 0) {\n var source = connector.sourceWrapper.corners;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var next = connector.segments[index + 1];\n var newseg = void 0;\n var segment = [];\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: 13, direction: prev.direction });\n segment.push(newseg);\n var len = void 0;\n if (current.direction === 'Left') {\n len = (current.points[0].x - (source.middleLeft.x - 20));\n }\n else if (current.direction === 'Right') {\n len = ((source.middleRight.x + 20) - current.points[0].x);\n }\n else if (current.direction === 'Bottom') {\n len = ((source.bottomCenter.y + 20) - current.points[0].y);\n }\n else {\n len = (current.points[0].y - (source.topCenter.y - 20));\n }\n //const dir: Direction = current.direction;\n newseg = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal', length: len, direction: current.direction });\n segment.push(newseg);\n current.length = current.length - len;\n if (next && next.length && next.direction) {\n if (next.direction === prev.direction) {\n next.length -= 13;\n }\n else if (next.direction === getOppositeDirection(prev.direction)) {\n next.length += 13;\n }\n }\n connector.segments = segment.concat(connector.segments);\n this.selectedSegment = connector.segments[3];\n }\n };\n ConnectorEditing.prototype.updatePreviousSegment = function (tx, ty, connector, index) {\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n //const firstSegment: boolean = (index === 1) ? true : false;\n prev.points[prev.points.length - 1] = current.points[0];\n var isSourceNode = (connector.sourceID && connector.sourcePortID === '') ? false : true;\n var isNextUpdate = true;\n if (prev.type === 'Orthogonal') {\n if (prev.direction === 'Bottom') {\n prev.length += ty;\n }\n else if (prev.direction === 'Top') {\n prev.length -= ty;\n }\n else if (prev.direction === 'Right') {\n prev.length += tx;\n }\n else {\n prev.length -= tx;\n }\n // EJ2-65063 - Added the below condition !allowNodeOverlap to prevent the segment to split into two segments while intersect with source node.\n if (connector.sourcePortID !== '' && prev.length < 0 && !connector.allowNodeOverlap) {\n this.updatePortSegment(prev, connector, index, tx, ty);\n }\n else if (connector.sourceID && connector.sourcePortID === '' && prev.length < 0 && index === 1) {\n isNextUpdate = false;\n this.updateFirstSegment(connector, current);\n }\n if (isSourceNode) {\n this.changeSegmentDirection(prev, connector);\n }\n }\n return isNextUpdate;\n };\n ConnectorEditing.prototype.changeSegmentDirection = function (segment, connector) {\n if (!connector.maxSegmentThumb) {\n if (segment.length < 0) {\n segment.direction = getOppositeDirection(segment.direction);\n segment.length *= -1;\n }\n }\n };\n ConnectorEditing.prototype.updateNextSegment = function (obj, current, next, tx, ty) {\n next.points[0] = current.points[current.points.length - 1];\n if (next && next.type === 'Orthogonal') {\n if (next.length || next.length === 0) {\n if (next.direction === 'Left' || next.direction === 'Right') {\n if (tx !== 0) {\n next.length = (next.direction === 'Right') ? next.length - tx : next.length + tx;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n else {\n if (ty !== 0) {\n next.length = (next.direction === 'Bottom') ? next.length - ty : next.length + ty;\n if (next.length || next.length === 0) {\n this.changeSegmentDirection(next, obj);\n }\n }\n }\n }\n }\n };\n ConnectorEditing.prototype.updateFirstSegment = function (connector, selectedSegment) {\n var index = connector.segments.indexOf(selectedSegment);\n var insertfirst = false;\n var current = connector.segments[parseInt(index.toString(), 10)];\n var prev = connector.segments[index - 1];\n var con = connector;\n var sourcePoint;\n var oldValues = { segments: connector.segments };\n if (prev.length < 0 && connector.sourceID) {\n var sourceNode = connector.sourceWrapper.corners;\n var segments = [];\n var segValues = void 0;\n var removeCurrentPrev = false;\n this.changeSegmentDirection(current, connector);\n var next = connector.segments[index + 1];\n var nextNext = connector.segments[index + 2];\n if (next) {\n this.changeSegmentDirection(next, connector);\n }\n if (nextNext) {\n this.changeSegmentDirection(nextNext, connector);\n }\n switch (prev.direction) {\n case 'Top':\n case 'Bottom':\n sourcePoint = (current.length > 0 && current.direction === 'Left') ? sourceNode.middleLeft : sourceNode.middleRight;\n if (current.length > sourceNode.width / 2) {\n if (Math.abs(prev.length) < sourceNode.height / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].x = sourcePoint.x;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].y = sourcePoint.y;\n next.points[0].x = next.points[next.points.length - 1].x = (current.direction === 'Right') ?\n sourcePoint.x + 20 : sourcePoint.x - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n case 'Left':\n case 'Right':\n sourcePoint = (current.length > 0 && current.direction === 'Top') ? sourceNode.topCenter : sourceNode.bottomCenter;\n if (current.length > sourceNode.height / 2) {\n if (Math.abs(prev.length) < sourceNode.width / 2) {\n prev.length = Point.distancePoints(sourceNode.center, prev.points[prev.points.length - 1]);\n current.points[0].y = sourcePoint.y;\n current.length = Point.distancePoints(current.points[0], current.points[current.points.length - 1]);\n current.length -= 20;\n insertfirst = true;\n }\n }\n else {\n if (next && next.direction && next.length) {\n next.points[0].x = sourcePoint.x;\n next.points[0].y = next.points[next.points.length - 1].y = (current.direction === 'Bottom') ?\n sourcePoint.y + 20 : sourcePoint.y - 20;\n }\n insertfirst = true;\n removeCurrentPrev = true;\n }\n break;\n }\n this.changeSegmentDirection(prev, connector);\n this.changeSegmentDirection(current, connector);\n if (insertfirst) {\n segValues = { type: 'Orthogonal', direction: current.direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n if (removeCurrentPrev) {\n if (next && next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n if (nextNext && nextNext.direction && nextNext.length) {\n nextNext.length = Point.distancePoints(next.points[next.points.length - 1], nextNext.points[nextNext.points.length - 1]);\n }\n connector.segments.splice(index - 1, 2);\n }\n connector.segments = segments.concat(connector.segments);\n }\n this.selectedSegment = ((removeCurrentPrev) ? connector.segments[index - 1] :\n connector.segments[index + 1]);\n this.commandHandler.updateEndPoint(connector, oldValues);\n }\n };\n ConnectorEditing.prototype.updateLastSegment = function (connector, selectedSegment) {\n if (connector.targetID && connector.targetPortID === '') {\n var line1Start = void 0;\n var line1End = void 0;\n var line2Start = void 0;\n var line2End = void 0;\n var corners = connector.targetWrapper.corners;\n var firstSegPoint = selectedSegment.points[0];\n var lastSegPoint = selectedSegment.points[selectedSegment.points.length - 1];\n if (selectedSegment.direction === 'Right' || selectedSegment.direction === 'Left') {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: (selectedSegment.direction === 'Left') ? lastSegPoint.x - corners.width / 2 : lastSegPoint.x + corners.width / 2,\n y: lastSegPoint.y\n };\n line2Start = { x: corners.center.x, y: corners.center.y - corners.height };\n line2End = { x: corners.center.x, y: corners.center.y + corners.height };\n }\n else {\n line1Start = { x: firstSegPoint.x, y: firstSegPoint.y };\n line1End = {\n x: lastSegPoint.x,\n y: (selectedSegment.direction === 'Bottom') ? lastSegPoint.y + corners.height / 2 : lastSegPoint.y - corners.height / 2\n };\n line2Start = { x: corners.center.x - corners.width, y: corners.center.y };\n line2End = { x: corners.center.x + corners.width, y: corners.center.y };\n }\n var line1 = { x1: line1Start.x, y1: line1Start.y, x2: line1End.x, y2: line1End.y };\n var line2 = { x1: line2Start.x, y1: line2Start.y, x2: line2End.x, y2: line2End.y };\n return (intersect3(line1, line2).enabled);\n }\n return false;\n };\n /**\n *To destroy the module\n *\n * @returns {void} To destroy the module\n */\n ConnectorEditing.prototype.destroy = function () {\n /**\n * Destroys the connector editing module\n */\n };\n /**\n * Get module name.\n */\n /**\n * Get module name.\\\n *\n * @returns { string } Get module name.\\\n */\n ConnectorEditing.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorEditingTool';\n };\n return ConnectorEditing;\n}(ToolBase));\nexport { ConnectorEditing };\n","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable no-case-declarations */\nimport { Browser } from '@syncfusion/ej2-base';\nimport { Point } from '../primitives/point';\nimport { Container } from '../core/containers/container';\nimport { Connector } from '../objects/connector';\nimport { NodeDrawingTool, ConnectorDrawingTool, TextDrawingTool, FreeHandTool } from './tool';\nimport { PolygonDrawingTool, PolyLineDrawingTool, FixedUserHandleTool } from './tool';\nimport { Native, Node, Lane, Phase, UmlClassAttribute, UmlClassMethod, UmlEnumerationMember } from '../objects/node';\nimport { SelectTool, MoveTool, ResizeTool, RotateTool, ConnectTool, ExpandTool, LabelTool, ZoomPanTool } from './tool';\nimport { LabelDragTool, LabelResizeTool, LabelRotateTool } from './tool';\nimport { ConnectorEditing } from './connector-editing';\nimport { Selector } from '../objects/node';\nimport { findToolToActivate, isSelected, getCursor, contains } from './actions';\nimport { DiagramAction, KeyModifiers, Keys, DiagramEvent, DiagramTools, RendererAction, DiagramConstraints, PortConstraints } from '../enum/enum';\nimport { BlazorAction, ScrollActions } from '../enum/enum';\nimport { isPointOverConnector, findObjectType, insertObject, getObjectFromCollection, getTooltipOffset, findParentInSwimlane, findPort } from '../utility/diagram-util';\nimport { getObjectType, getInOutConnectPorts, removeChildNodes, cloneBlazorObject, checkPort } from '../utility/diagram-util';\nimport { canZoomPan, canDraw, canDrag, canZoomTextEdit, canVitualize, canPreventClearSelection, canSingleSelect, canMultiSelect } from './../utility/constraints-util';\nimport { selectionHasConnector } from '../utility/diagram-util';\nimport { canMove, canEnablePointerEvents, canSelect, canEnableToolTip } from './../utility/constraints-util';\nimport { canOutConnect, canInConnect, canPortInConnect, canPortOutConnect, canAllowDrop, canUserInteract, defaultTool } from './../utility/constraints-util';\nimport { updateTooltip } from '../objects/tooltip';\nimport { PortVisibility, NodeConstraints, ConnectorConstraints, AnnotationConstraints, RealAction } from '../enum/enum';\nimport { addTouchPointer, measureHtmlText, getAdornerLayerSvg } from '../utility/dom-util';\nimport { TextElement } from '../core/elements/text-element';\nimport { Size } from '../primitives/size';\nimport { cloneObject as clone, cloneObject } from './../utility/base-util';\nimport { Rect } from '../primitives/rect';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix } from './../primitives/matrix';\nimport { removeRulerMarkers, drawRulerMarkers, getRulerSize, updateRuler } from '../ruler/ruler';\nimport { canContinuousDraw, canDrawOnce } from '../utility/constraints-util';\nimport { getFunction, cornersPointsBeforeRotation } from '../utility/base-util';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { updateCanvasBounds, checkChildNodeInContainer, checkParentAsContainer, removeChildInContainer } from './container-interaction';\nimport { moveChildInStack, renderStackHighlighter } from './container-interaction';\nimport { updateSwimLaneObject } from '../utility/swim-lane-util';\nimport { getConnectors, updateHeaderMaxWidth, laneInterChanged, updateConnectorsProperties } from '../utility/swim-lane-util';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\nimport { PathElement, randomId } from '../index';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { PathPort, PointPort } from '../objects/port';\nimport { Overview } from '../../overview/overview';\n/**\n * This module handles the mouse and touch events\n */\nvar DiagramEventHandler = /** @class */ (function () {\n /** @private */\n function DiagramEventHandler(diagram, commandHandler) {\n this.currentAction = 'None';\n this.previousAction = 'None';\n this.previousTarget = null;\n /** @private */\n this.touchArgs = undefined;\n /** @private */\n this.focus = false;\n this.isBlocked = false;\n this.isMouseDown = false;\n this.inAction = false;\n this.doingAutoScroll = false;\n this.diagram = null;\n this.objectFinder = null;\n this.tool = null;\n this.eventArgs = null;\n this.previousElement = null;\n this.isKeyUp = true;\n this.keyCount = 0;\n this.isNudgeKey = false;\n this.commandObj = {};\n this.keyArgs = {};\n this.diagram = diagram;\n this.objectFinder = new ObjectFinder();\n this.commandHandler = commandHandler;\n }\n Object.defineProperty(DiagramEventHandler.prototype, \"action\", {\n get: function () {\n return this.currentAction;\n },\n set: function (action) {\n if (action !== this.currentAction) {\n if (this.currentAction === 'PortDraw') {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n //EJ2-70550 - Connector disconnected from source and target while dragging mutliple selected element\n if (this.diagram.currentDrawingObject) {\n this.diagram.currentDrawingObject = null;\n }\n if (this.tool) {\n this.tool.mouseUp({ position: this.currentPosition });\n }\n this.tool = null;\n }\n if (action === 'Rotate' || action === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.add('e-diagram-rotate');\n }\n else if (this.currentAction === 'Rotate' || this.currentAction === 'LabelRotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n this.currentAction = action;\n //Ej2-26204 - Exception occurs when remove method called without mouse Interaction\n if (this.currentAction !== 'None' && this.currentAction !== 'Select' &&\n !(this.diagram.diagramActions & DiagramAction.TextEdit) ||\n (this.currentPosition && this.commandHandler.isUserHandle(this.currentPosition))) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.ToolAction;\n }\n else {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.diagram.setCursor(this.diagram.getCursor(action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramEventHandler.prototype, \"blocked\", {\n get: function () {\n return this.isBlocked;\n },\n set: function (blocked) {\n this.isBlocked = blocked;\n if (this.blocked) {\n this.diagram.setCursor('not-allowed');\n }\n else {\n this.diagram.setCursor(this.diagram.getCursor(this.action, this.inAction));\n }\n },\n enumerable: true,\n configurable: true\n });\n /** @private */\n DiagramEventHandler.prototype.getMousePosition = function (e) {\n var touchArg;\n var offsetX;\n var offsetY;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n offsetX = touchArg.changedTouches[0].clientX;\n offsetY = touchArg.changedTouches[0].clientY;\n }\n else {\n offsetX = e.clientX;\n offsetY = e.clientY;\n }\n var position = new Size();\n position = getRulerSize(this.diagram);\n var boundingRect = this.diagram.element.getBoundingClientRect();\n offsetX = offsetX + this.diagram.diagramCanvas.scrollLeft - boundingRect.left - position.width;\n offsetY = offsetY + this.diagram.diagramCanvas.scrollTop - boundingRect.top - position.height;\n offsetX /= this.diagram.scroller.transform.scale;\n offsetY /= this.diagram.scroller.transform.scale;\n offsetX -= this.diagram.scroller.transform.tx;\n offsetY -= this.diagram.scroller.transform.ty;\n return { x: offsetX, y: offsetY };\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.windowResize = function (evt) {\n var _this = this;\n if (this.resizeTo) {\n clearTimeout(this.resizeTo);\n }\n this.resizeTo = setTimeout(function () {\n _this.updateViewPortSize(_this.diagram.element);\n }, 300);\n return false;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.updateViewPortSize = function (element) {\n var container = document.getElementById(element.id);\n if (container) {\n var bounds = container.getBoundingClientRect();\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n var position = new Size();\n position = getRulerSize(this.diagram);\n var width = this.diagram.getSizeValue(this.diagram.width, position.width);\n var height = this.diagram.getSizeValue(this.diagram.height, position.height);\n this.diagram.diagramCanvas.style.width = width;\n this.diagram.diagramCanvas.style.height = height;\n this.diagram.scroller.setSize();\n this.diagram.transformLayers();\n if (this.diagram.rulerSettings.showRulers) {\n updateRuler(this.diagram);\n }\n if (this.diagram.views.length > 1) {\n //884316 - updating overview after window resize\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[\"\" + temp];\n if ((view instanceof Overview)) {\n //Calling onproperty change method to update overview.\n view.onPropertyChanged({ sourceID: view.sourceID }, {});\n }\n }\n }\n }\n };\n /** @private */\n DiagramEventHandler.prototype.canHideResizers = function () {\n return ((this.tool instanceof MoveTool || this.tool instanceof RotateTool) && this.isMouseDown);\n };\n /** @private */\n DiagramEventHandler.prototype.updateCursor = function () {\n if ((this.diagram.selectedItems.nodes.length === 1 || this.diagram.selectedItems.connectors.length === 1)) {\n var list = [];\n list = list.concat(this.diagram.selectedItems.nodes, this.diagram.selectedItems.connectors);\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n this.blocked = (this.eventArgs && this.eventArgs.source && !canMove(this.eventArgs.source)) ? false :\n (this.isMouseDown && list.length === 1 && this.tool instanceof SelectTool && !canMove(list[0]));\n }\n };\n DiagramEventHandler.prototype.isForeignObject = function (target, isTextBox) {\n var foreignobject = target;\n if (foreignobject) {\n while (foreignobject.parentNode !== null) {\n if (typeof foreignobject.className === 'string' &&\n ((!isTextBox && foreignobject.className.indexOf('foreign-object') !== -1) ||\n (isTextBox && foreignobject.className.indexOf('e-diagram-text-edit') !== -1))) {\n return foreignobject;\n }\n else {\n foreignobject = foreignobject.parentNode;\n }\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.isMetaKey = function (evt) {\n //EJ2-55887 - added the beow code to perform pinch zoom in mac os and windows while pinch zoom all browser return ctrl key as true.\n if (evt.type === 'mousewheel') {\n return evt.ctrlKey;\n }\n else {\n return navigator.platform.match('Mac') ? evt.metaKey : evt.ctrlKey;\n }\n };\n DiagramEventHandler.prototype.renderUmlHighLighter = function (args) {\n this.diagram.commandHandler.removeStackHighlighter();\n var node = this.diagram.selectedItems.nodes[0];\n if (node && node.container && node.container.type === 'Stack' && node.shape.type === 'UmlClassifier') {\n var bound = node.wrapper.bounds;\n if (!bound.containsPoint(this.currentPosition)) {\n // eslint-disable-next-line max-len\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (target && target.parentId && (target.parentId === node.id)) {\n // eslint-disable-next-line max-len\n var isVertical = this.diagram.nameTable[target.parentId].container.orientation === 'Vertical';\n renderStackHighlighter(target.wrapper, isVertical, args.position, this.diagram, true);\n }\n }\n }\n };\n DiagramEventHandler.prototype.isDeleteKey = function (key, value) {\n return (navigator.platform.match('Mac') && key === 'Backspace' && value === 'delete');\n };\n DiagramEventHandler.prototype.isMouseOnScrollBar = function (evt) {\n var x = evt.offsetX;\n var y = evt.offsetY;\n var diagramCanvas = this.diagram.diagramCanvas;\n var height = diagramCanvas.offsetHeight;\n var width = diagramCanvas.offsetWidth;\n var topLeft;\n var topRight;\n var bottomLeft;\n var bottomRight;\n var bounds;\n if (height < diagramCanvas.scrollHeight) {\n //default scrollbar width in browser is '17pixels'.\n topLeft = { x: (width - 17), y: 0 };\n topRight = { x: width, y: 0 };\n bottomLeft = { x: (width - 17), y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if vertical offset != 0\n if (this.diagram.scroller.verticalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n if (width < diagramCanvas.scrollWidth) {\n topLeft = { x: 0, y: (height - 17) };\n topRight = { x: width, y: (height - 17) };\n bottomLeft = { x: 0, y: height };\n bottomRight = { x: width, y: height };\n bounds = Rect.toBounds([topLeft, topRight, bottomLeft, bottomRight]);\n // EJ2-64563-Added below code to calculate the bounds x and y value if horizontal offset != 0\n if (this.diagram.scroller.horizontalOffset !== 0) {\n bounds.x = bounds.x - this.diagram.scroller.horizontalOffset;\n bounds.y = bounds.y - this.diagram.scroller.verticalOffset;\n }\n if (bounds.containsPoint({ x: x, y: y })) {\n return true;\n }\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.updateVirtualization = function () {\n var _this = this;\n var delay = 50;\n //let removeObjectInterval: Object;\n var removeObjectInterval = setInterval(function (args) {\n _this.diagram.removeVirtualObjects(removeObjectInterval);\n }, delay);\n setTimeout(function () {\n _this.diagram.deleteVirtualObject = true;\n }, delay);\n };\n DiagramEventHandler.prototype.checkPreviousAction = function () {\n if (this.action !== this.previousAction && this.diagram.selectedItems.userHandles.length) {\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if (this.previousAction && this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)]) {\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseLeave);\n this.previousAction = 'None';\n }\n }\n }\n if (this.action !== this.previousAction) {\n // If the mouse leaves the fixed user handle, the tooltip is closed\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseLeave, this.targetItem, this.previousTarget);\n this.previousTarget = null;\n this.targetItem = null;\n }\n };\n DiagramEventHandler.prototype.checkUserHandleEvent = function (eventName) {\n if (this.diagram.selectedItems && this.diagram.selectedItems.userHandles.length > 0) {\n var currentAction = (eventName === DiagramEvent.onUserHandleMouseLeave) ? this.previousAction : this.action;\n var arg = { element: undefined };\n for (var i = 0; i < this.diagram.selectedItems.userHandles.length; i++) {\n if ((currentAction === this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name) ||\n (eventName === DiagramEvent.onUserHandleMouseUp && currentAction === 'Select')) {\n arg.element = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)];\n this.userHandle(eventName, i, arg, null);\n }\n }\n }\n };\n DiagramEventHandler.prototype.userHandle = function (eventName, i, arg, targetItem) {\n if (eventName === DiagramEvent.onUserHandleMouseEnter || eventName === DiagramEvent.onFixedUserHandleMouseEnter) {\n this.previousAction = this.action;\n // EJ2-32213- Added the below code to check whether the userhandle has tooltip content.\n // If userhandle has tooltip content then we open the tooltip based on the userhandle shape\n if (arg.element.tooltip && arg.element.tooltip.openOn === 'Auto' && arg.element.tooltip.content !== '') {\n updateTooltip(this.diagram, arg.element);\n var targetEle = void 0;\n if (arg.element.pathData) {\n if (eventName === DiagramEvent.onUserHandleMouseEnter) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseEnter) {\n targetEle = document.getElementById(targetItem.id + '_' + targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id + '_groupElement');\n }\n }\n else if (arg.element.source) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_image');\n }\n else if (arg.element.content) {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_native_element');\n }\n else {\n targetEle = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_shape_html_element');\n }\n //892828: Flickering of tooltip while hovering userhandle\n if (arg.element.tooltip.openOn === 'Auto' && (arg.element !== this.isUserHandleHover)) {\n this.isUserHandleHover = arg.element;\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseDown) {\n this.userHandleObject = this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name;\n this.diagram.triggerEvent(eventName, arg);\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseDown) {\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseUp) {\n var element = document.getElementById(this.diagram.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_userhandle');\n if (this.commandHandler.isUserHandle(this.currentPosition)\n && element && element.id === this.userHandleObject + '_userhandle') {\n //EJ2-838423 -onUserHandleMouseUp event triggers multiple times\n this.diagram.triggerEvent(eventName, arg);\n }\n }\n else if (eventName === DiagramEvent.onFixedUserHandleMouseUp) {\n this.diagram.triggerEvent(eventName, arg);\n }\n if (eventName === DiagramEvent.onUserHandleMouseLeave || eventName === DiagramEvent.onFixedUserHandleMouseLeave) {\n if (this.diagram.tooltipObject && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.isUserHandleHover = null;\n this.diagram.tooltipObject.close();\n }\n this.diagram.triggerEvent(eventName, arg);\n }\n };\n // In the method, verify the fixed user handle and manage the opening and closing of the tooltip according to mouse events\n DiagramEventHandler.prototype.checkFixedUserHandleEvent = function (eventName, targetItem, wrapper) {\n if (targetItem && targetItem.fixedUserHandles.length > 0) {\n var arg = { element: undefined };\n var userid = void 0;\n var currentAction = void 0;\n for (var i = 0; i < targetItem.fixedUserHandles.length; i++) {\n userid = targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id;\n if (wrapper && wrapper.id && (wrapper.id.indexOf(userid) > -1)) {\n currentAction = userid;\n this.previousTarget = wrapper;\n this.targetItem = targetItem;\n }\n if (currentAction === targetItem.fixedUserHandles[parseInt(i.toString(), 10)].id) {\n arg.element = targetItem.fixedUserHandles[parseInt(i.toString(), 10)];\n this.userHandle(eventName, i, arg, targetItem);\n }\n }\n }\n };\n DiagramEventHandler.prototype.mouseDown = function (evt) {\n var _this = this;\n //Bug 913785: Tooltip for node is not showing when touch and hold on node in mobile device.\n if (evt.type === 'touchstart') {\n this.timeOutTapHold = setTimeout(function () {\n if (_this.action === 'Select' || _this.action === 'Drag') {\n _this.mouseMove(evt, undefined);\n }\n }, 500);\n }\n // EJ2-57541 - Added the below code to check whether diagram tool is instance of node drawing tool or connector drawing tool.\n // If node or connector drawing tool means then we have returned without perform any operation.\n if (this.inAction === true && ((this.tool) instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool)) {\n return;\n }\n this.focus = true;\n //let touches: TouchList;\n var touches = evt.touches;\n var isSymblDragging = document.getElementsByClassName('e-dragclone')[0] ? true : false;\n if (this.isMouseOnScrollBar(evt) && !isSymblDragging) {\n this.isScrolling = true;\n evt.preventDefault();\n return;\n }\n // commanded by gowtham- unwanted cloning of selectedItems\n // if (isBlazor()) {\n // this.commandHandler.oldSelectedObjects = cloneObject(this.diagram.selectedItems);\n // }\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseDown, this.targetItem, this.previousTarget);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseDown);\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram)) ||\n (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.action === 'Select' || this.action === 'Drag') {\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n }\n if (((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && (evt.button === 2 || evt.buttons === 2))) {\n // eslint-disable-next-line\n var arg = {\n element: cloneBlazorObject(this.diagram), position: cloneBlazorObject(this.currentPosition),\n count: evt.buttons, actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n this.inAction = false;\n this.tool.mouseUp(this.eventArgs);\n }\n else if (((this.inAction === true) && this.isMouseDown === true &&\n (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool))) {\n this.isMouseDown = true;\n this.eventArgs = {};\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.eventArgs.position = this.currentPosition;\n this.tool.mouseDown(this.eventArgs);\n }\n else {\n this.isMouseDown = true;\n this.currentPosition = this.prevPosition = this.getMousePosition(evt);\n this.eventArgs = {};\n if (this.diagram.textEditing && !this.isMouseOnScrollBar(evt)) {\n this.diagram.endEdit();\n this.diagram.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.diagram.mode === 'Canvas' && this.diagram.scroller.currentZoom !== 1) {\n this.diagram.refreshDiagramLayer();\n }\n }\n var targetObject = this.getTargetElement();\n this.action = this.diagram.findActionToBeDone(targetObject.obj, targetObject.sourceElement, this.currentPosition, targetObject.target);\n //work around - correct it\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey && evt.shiftKey && this.diagram.connectorEditingToolModule) {\n this.action = 'SegmentEnd';\n //Bug 892496: Unable to unselect selected node using CTRL+Click when zoompan is enabled.\n //Added this condition whether single select or multi select is enabled in diagram tool.\n }\n else if ((ctrlKey || evt.shiftKey) && (canSingleSelect(this.diagram) || canMultiSelect(this.diagram))) {\n this.action = 'Select';\n }\n this.tool = this.diagram.getTool(this.action);\n if (!this.tool) {\n this.action = 'Select';\n this.tool = this.diagram.getTool(this.action);\n }\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.eventArgs.position = this.currentPosition;\n //834641 - Support to unselect the diagram element that is already selected\n var prevSelectedNode = this.diagram.selectedItems.nodes;\n this.tool.mouseDown(this.eventArgs);\n if (this.diagram.selectedItems.canToggleSelection && prevSelectedNode\n && this.diagram.selectedItems.nodes && this.tool instanceof MoveTool) {\n for (var i = 0; i < prevSelectedNode.length; i++) {\n if (prevSelectedNode[parseInt(i.toString(), 10)].id\n !== this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].id) {\n this.isSwimlaneSelected = true;\n }\n }\n }\n this.initialEventArgs = { source: this.eventArgs.source, sourceWrapper: this.eventArgs.sourceWrapper };\n this.initialEventArgs.position = this.currentPosition;\n this.initialEventArgs.info = this.eventArgs.info;\n this.inAction = false;\n if (evt.type === 'touchstart') {\n if (touches && touches.length >= 2) {\n this.touchStartList = addTouchPointer(this.touchStartList, evt, touches);\n }\n if (!touches) {\n evt.preventDefault();\n }\n }\n }\n }\n if (!this.isForeignObject(evt.target) && !this.isForeignObject(evt.target, true) && (!touches)) {\n evt.preventDefault();\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseMoveExtend = function (e, obj) {\n if (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n this.checkAutoScroll(e);\n }\n else {\n if (!this.blocked) {\n (this.tool.mouseMove(this.eventArgs));\n }\n }\n if (this.eventArgs.target) {\n this.hoverElement = this.eventArgs.target;\n }\n var isNode = (this.eventArgs.target instanceof Node || this.eventArgs.target instanceof Connector)\n && (obj instanceof Node || obj instanceof Connector) ? false : true;\n if (this.tool instanceof ConnectTool) {\n this.diagram.updatePortVisibility((this.hoverElement instanceof Node || this.hoverElement instanceof Connector)\n ? this.hoverElement : this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, isNode);\n }\n if (this.hoverElement instanceof Node\n && this.hoverNode instanceof Node && this.hoverNode && this.hoverNode.id !== this.hoverElement.id) {\n this.diagram.updatePortVisibility(this.hoverNode, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n if (this.hoverElement instanceof Connector && (this.hoverElement.ports.length > 0)) {\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n // 890089: Unintended Port Visibility Issue Fix\n // Updating port visibility based on the previous hoverElement\n if (this.previousElement instanceof Node && this.hoverElement && (this.previousElement.id !== this.hoverElement.id)) {\n this.diagram.updatePortVisibility(this.previousElement, PortVisibility.Connect | PortVisibility.Hover, true);\n }\n this.previousElement = this.hoverElement;\n // Updating tooltip content on mouse relative mode\n if (this.diagram.tooltip.content !== '') {\n this.hoverElement = null;\n }\n this.hoverNode = isNode ? null : obj;\n };\n /** @private */\n DiagramEventHandler.prototype.checkAction = function (obj) {\n if (this.action === 'LabelSelect' && this.eventArgs.sourceWrapper &&\n (this.eventArgs.sourceWrapper instanceof TextElement || this.eventArgs.sourceWrapper instanceof DiagramHtmlElement)) {\n var annotation = this.commandHandler.findTarget(this.eventArgs.sourceWrapper, this.eventArgs.source);\n if (!isSelected(this.diagram, annotation, false, this.eventArgs.sourceWrapper) && canMove(annotation)) {\n this.action = 'LabelDrag';\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n }\n else if (canMove(obj) && canSelect(obj) && this.initialEventArgs &&\n this.initialEventArgs.source && this.action === 'Select') {\n if (!isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n if (!(obj instanceof Connector) || (obj instanceof Connector &&\n !(contains(this.currentPosition, obj.sourcePoint, obj.hitPadding) ||\n contains(this.currentPosition, obj.targetPoint, obj.hitPadding)))) {\n this.action = 'Drag';\n }\n this.tool = this.getTool(this.action);\n this.tool.mouseDown(this.initialEventArgs);\n }\n };\n DiagramEventHandler.prototype.isSwimlaneElements = function (obj) {\n if (obj && (obj.isLane || obj.isPhase || obj.isHeader)) {\n return false;\n }\n else {\n return true;\n }\n };\n //To decide whether to show tooltip on touch long press\n DiagramEventHandler.prototype.canShowTouchTooltip = function (evt) {\n if (evt.type === 'touchstart') {\n if ((this.diagram.tool & DiagramTools.SingleSelect) && (this.diagram.tool & DiagramTools.ZoomPan)) {\n this.isMouseDown = false;\n return true;\n }\n }\n return false;\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseMove = function (e, touches) {\n this.focus = true;\n //Bug 914365: Node is not resizable using touch interaction\n if (e.type === 'touchmove') {\n this.touchArgs = { target: e.target, type: 'touchmove' };\n }\n if (this.isScrolling) {\n e.preventDefault();\n return;\n }\n if (canUserInteract(this.diagram) || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n this.currentPosition = this.getMousePosition(e);\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n drawRulerMarkers(this.diagram, this.currentPosition);\n var force = false;\n var target = void 0;\n if (e.type === 'touchmove') {\n touches = e.touches;\n if (touches && touches.length > 1) {\n this.touchMoveList = addTouchPointer(this.touchMoveList, e, touches);\n if (this.action !== 'PinchZoom') {\n force = true;\n }\n }\n }\n if (Point.equals(this.currentPosition, this.prevPosition) === false || this.inAction || this.canShowTouchTooltip(e)) {\n if (this.isMouseDown === false || force) {\n this.eventArgs = {};\n var sourceElement = null;\n var tooltipTarget = void 0;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n //834842-Exception/error occurs when hovering on the connector\n //tooltiptarget to be found only if the source element is not null\n if (sourceElement) {\n tooltipTarget = this.commandHandler.findTarget(sourceElement, obj);\n }\n //908569: Node Tooltip Flickers when hovering on Annotation\n //If the annotation does not have tooltip content, set the tooltip target as an object\n if (tooltipTarget instanceof ShapeAnnotation || tooltipTarget instanceof PathAnnotation) {\n if (!(tooltipTarget.tooltip && tooltipTarget.tooltip.content !== '')) {\n tooltipTarget = obj;\n }\n }\n if (tooltipTarget !== this.hoverElement) {\n var content_1 = this.getContent();\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content_1 !== '') {\n this.elementLeave();\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, true);\n if (obj instanceof Node) {\n this.hoverNode = obj;\n }\n var canResetElement = true;\n if (!this.isSwimlaneElements(obj)\n && (this.hoverElement && this.isSwimlaneElements(this.hoverElement))) {\n canResetElement = false;\n }\n this.hoverElement = canResetElement ? obj : this.hoverElement;\n //EJ2-62120 - Provide tooltip support for ports - to set hoverelement as PathElement if hovered on ports in Node\n var portElement = null;\n var portTarget = void 0;\n portElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (portElement instanceof PathElement) {\n portTarget = this.commandHandler.findTarget(portElement, obj);\n if ((portTarget instanceof PointPort || portTarget instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip) {\n this.hoverElement = portTarget;\n }\n }\n //839511: Tooltip support for annotation - to set hoverelement as TextElement if hovered on annotation in Node/Connector\n var annotationTarget = void 0;\n if (portElement instanceof TextElement) {\n annotationTarget = this.commandHandler.findTarget(portElement, obj);\n if ((annotationTarget instanceof ShapeAnnotation || annotationTarget instanceof PathAnnotation)\n && annotationTarget.constraints & AnnotationConstraints.Tooltip) {\n this.hoverElement = annotationTarget;\n }\n }\n if (canResetElement) {\n this.elementEnter(this.currentPosition, false);\n }\n else {\n this.hoverElement = obj;\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Updating the tooltip position based on Mouse move\n else if (this.hoverElement) {\n if (this.hoverElement === tooltipTarget && this.hoverElement.tooltip.content && this.diagram.tooltipObject !== undefined && this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(this.currentPosition);\n }\n }\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n this.action = this.diagram.findActionToBeDone(obj, sourceElement, this.currentPosition, target);\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseEnter, obj, sourceElement);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseEnter);\n this.checkPreviousAction();\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n this.tool = this.getTool(this.action);\n this.mouseEvents();\n if (this.tool instanceof ConnectorDrawingTool ||\n this.tool instanceof PolyLineDrawingTool ||\n this.tool instanceof PolygonDrawingTool) {\n this.tool.mouseMove(this.eventArgs);\n }\n else if (touches && this.tool instanceof ZoomPanTool) {\n this.tool.mouseDown(this.eventArgs);\n }\n this.updateCursor();\n this.renderUmlHighLighter(this.eventArgs);\n var isNode = false;\n if (!(this.hoverElement && (!(this.tool instanceof ZoomPanTool))\n && (obj instanceof Node && this.isSwimlaneElements(obj)) &&\n (this.diagram.selectedItems.nodes.length === 0 || !isSelected(this.diagram, this.hoverElement)))\n && (!(this.hoverElement instanceof Connector))) {\n isNode = true;\n }\n if (!(this.hoverElement && (!(this.tool instanceof ZoomPanTool))\n && (obj instanceof Connector) &&\n (this.diagram.selectedItems.connectors.length === 0 || !isSelected(this.diagram, this.hoverElement)))\n && (!(this.hoverElement instanceof Node))) {\n isNode = true;\n }\n this.diagram.updatePortVisibility(this.hoverElement, PortVisibility.Hover, isNode);\n var content = this.getContent();\n if (obj === null && this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content) {\n this.hoverElement = null;\n this.elementLeave();\n }\n force = false;\n }\n else {\n this.eventArgs.position = this.currentPosition;\n if (this.action === 'Drag' && !isSelected(this.diagram, this.eventArgs.source, false) &&\n this.eventArgs.source instanceof Selector) {\n this.getMouseEventArgs(this.currentPosition, this.eventArgs);\n }\n this.mouseEvents();\n if (e.ctrlKey || e.shiftKey) {\n var info = (e.ctrlKey && e.shiftKey) ? { ctrlKey: e.ctrlKey, shiftKey: e.shiftKey } : { ctrlKey: true };\n this.eventArgs.info = info;\n }\n this.checkAction(obj);\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n this.updateCursor();\n this.inAction = true;\n this.initialEventArgs = null;\n if (this.action === 'Drag' || this.action === 'Rotate') {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Interactions;\n }\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Checking page bounds before and after dragging node, and updating the overview rect if the page bounds modified after the drag.\n var preDragBounds = this.diagram.scroller.getPageBounds();\n this.mouseMoveExtend(e, obj);\n var postDragBounds = this.diagram.scroller.getPageBounds();\n if (obj && (preDragBounds.width !== postDragBounds.width ||\n preDragBounds.height !== postDragBounds.height ||\n preDragBounds.x !== postDragBounds.x ||\n preDragBounds.y !== postDragBounds.y)) {\n if (this.diagram.views && this.diagram.views.overview) {\n var overview = this.diagram.views.overview;\n overview.updateView(overview);\n }\n }\n }\n this.prevPosition = this.currentPosition;\n if (!this.isForeignObject(e.target, true)) {\n e.preventDefault();\n }\n }\n }\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getContent = function () {\n var isPrivateTooltip = ((this.hoverElement instanceof Node)\n && this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) && this.hoverElement.constraints & ConnectorConstraints.Tooltip)\n || ((this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip) ||\n ((this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)\n && this.hoverElement.constraints & AnnotationConstraints.Tooltip);\n var node = this.hoverElement;\n var childNode;\n if (node instanceof Node && node.children && node.children.length > 0) {\n childNode = this.findIntersectChild(node);\n }\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n this.diagram.tooltip.content;\n content = childNode ? childNode.tooltip.content : content;\n return content;\n };\n DiagramEventHandler.prototype.findIntersectChild = function (node) {\n var childNode;\n var rect = new Rect(this.currentPosition.x, this.currentPosition.y, 8, 8);\n for (var i = 0; i < node.children.length; i++) {\n childNode = this.diagram.getObject(node.children[parseInt(i.toString(), 10)]);\n if (childNode.wrapper.outerBounds.intersects(rect)) {\n return childNode;\n }\n }\n return null;\n };\n DiagramEventHandler.prototype.checkAutoScroll = function (e) {\n var autoScrollPosition = this.startAutoScroll(e);\n if (!autoScrollPosition && this.doingAutoScroll) {\n this.doingAutoScroll = false;\n clearInterval(this.timeOutValue);\n }\n else if (autoScrollPosition) {\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram_1 = this;\n var delay_1 = this.diagram.scrollSettings.autoScrollFrequency;\n if (delay_1 < 10 || isNaN(delay_1)) {\n delay_1 = 100;\n }\n if (this.diagram.scrollSettings.canAutoScroll && autoScrollPosition && !this.doingAutoScroll) {\n this.doingAutoScroll = true;\n this.timeOutValue = setInterval(function (args) {\n diagram_1.doAutoScroll(autoScrollPosition, e, delay_1);\n }, delay_1);\n }\n }\n }\n else {\n this.blocked = !(this.tool.mouseMove(this.eventArgs));\n }\n };\n /* tslint:disable */\n /** @private */\n DiagramEventHandler.prototype.mouseUp = function (evt) {\n clearTimeout(this.timeOutTapHold);\n //Bug 914365: Node is not resizable using touch interaction\n this.touchArgs = undefined;\n this.diagram.diagramRenderer.touchMove = undefined;\n //EJ2-849817-Dropping nodes in swimlane does not consider as child in angular\n if (this.eventArgs && this.eventArgs.target && this.eventArgs.target !== this.hoverNode\n && this.eventArgs.target !== this.lastObjectUnderMouse) {\n this.hoverNode = this.eventArgs.target;\n this.lastObjectUnderMouse = this.eventArgs.target;\n }\n //Bug 881512: Wrapping of the connector annotation at run time not working properly.\n //To wrap the connector annotation text after the node rotated or dragged.\n var updateAnnotation = false;\n if (this.tool instanceof MoveTool || this.tool instanceof RotateTool) {\n updateAnnotation = true;\n }\n this.checkFixedUserHandleEvent(DiagramEvent.onFixedUserHandleMouseUp, this.targetItem, this.previousTarget);\n this.checkUserHandleEvent(DiagramEvent.onUserHandleMouseUp);\n if (this.diagram.mode === 'SVG' && canVitualize(this.diagram)) {\n this.updateVirtualization();\n }\n var prevSelectedNodes = this.diagram.selectedItems.nodes;\n var prevSelectedConnectors = this.diagram.selectedItems.connectors;\n var unSelectLaneObj;\n this.diagram.previousSelectedObject = null;\n this.diagram.diagramRenderer.rendererActions =\n this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n var touches = evt.touches;\n if (this.isScrolling) {\n this.isScrolling = false;\n evt.preventDefault();\n return;\n }\n if (!this.checkEditBoxAsTarget(evt) && (canUserInteract(this.diagram))\n || (canZoomPan(this.diagram) && !defaultTool(this.diagram))) {\n if (this.tool && (!(this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool) ||\n ((this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)\n && evt.detail === 2))) {\n if (!this.isForeignObject(evt.target) && this.isMouseDown) {\n document.getElementById(this.diagram.element.id + 'content').focus();\n }\n if (!this.inAction && evt.which !== 3) {\n if (this.action === 'Drag') {\n this.action = 'Select';\n var oldSelectedValue = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var isMultipleSelect = true;\n if ((!evt.ctrlKey && this.isMouseDown\n && (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length) > 1)\n && evt.which === 1 && !canPreventClearSelection(this.diagram.diagramActions)) {\n isMultipleSelect = false;\n this.commandHandler.clearSelection();\n }\n if (!isSelected(this.diagram, obj) || (!isMultipleSelect)) {\n this.commandHandler.selectObjects([obj], undefined, oldSelectedValue);\n //834641 - Support to unselect the diagram element that is already selected\n if (this.diagram.selectedItems.canToggleSelection) {\n var selectedObj = this.diagram.selectedItems.nodes;\n if (selectedObj) {\n if (selectedObj[0].parentObj instanceof Lane) {\n unSelectLaneObj = true;\n }\n }\n else if (this.diagram.selectedItems.connectors.length > 0) {\n unSelectLaneObj = true;\n }\n }\n }\n }\n }\n var avoidDropChildren = false;\n var history_1 = this.updateContainerProperties();\n var isGroupAction = void 0;\n this.addUmlNode();\n this.inAction = false;\n this.isMouseDown = false;\n if (this.diagram.selectedObject.helperObject) {\n isGroupAction = this.updateContainerBounds();\n }\n if (this.tool && (this.tool.prevPosition || this.tool instanceof LabelTool)) {\n this.eventArgs.position = this.currentPosition;\n var padding = this.getConnectorPadding(this.eventArgs);\n this.getMouseEventArgs(this.currentPosition, this.eventArgs, this.eventArgs.source, padding);\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey || evt.shiftKey) {\n var info = (ctrlKey && evt.shiftKey) ? { ctrlKey: ctrlKey, shiftKey: evt.shiftKey } :\n { ctrlKey: true };\n this.eventArgs.info = info;\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Interactions;\n }\n this.eventArgs.clickCount = evt.detail;\n if (this.diagram.selectedObject.helperObject && (this.tool instanceof MoveTool || this.tool instanceof ResizeTool)) {\n if (this.diagram.selectedObject.actualObject &&\n this.diagram.selectedObject.actualObject.parentId !== '') {\n var parentNode = this.diagram.getObject(this.diagram.selectedObject.actualObject.parentId);\n if (parentNode && parentNode.isLane) {\n this.commandHandler.isContainer = true;\n }\n }\n avoidDropChildren = this.diagram.lineRoutingModule\n && this.diagram.nameTable['helper'] && this.eventArgs.target && this.eventArgs.target.isLane\n && ((this.eventArgs.source instanceof Selector && this.eventArgs.source.nodes.length > 0\n && this.eventArgs.source.nodes[0].parentId === '') || (this.eventArgs.source.parentId === ''));\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.PreventLaneContainerUpdate;\n }\n this.tool.mouseUp(this.eventArgs, history_1.isPreventHistory);\n }\n else {\n //834641 - Support to unselect the diagram element that is already selected\n if (this.diagram.selectedItems.canToggleSelection) {\n var isGroupObj = void 0;\n var isMultiSelect = void 0;\n if (this.diagram.selectedItems.nodes.length > 0) {\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n var swimlane = (this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].isLane\n || this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].isPhase);\n if (!swimlane) {\n if ((!(this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentObj instanceof Lane\n || this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentObj instanceof Phase))) {\n isGroupObj = this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].parentId !== '' ? true : false;\n }\n }\n }\n }\n var currSelectedNodes = this.diagram.selectedItems.nodes;\n for (var i = 0; i < prevSelectedNodes.length; i++) {\n if ((prevSelectedNodes.length > 1 && currSelectedNodes[0].id\n === prevSelectedNodes[parseInt(i.toString(), 10)].id) || prevSelectedConnectors.length > 0) {\n isMultiSelect = true;\n }\n }\n if (!this.isSwimlaneSelected && !unSelectLaneObj && !isMultiSelect && this.tool instanceof MoveTool &&\n this.currentAction === 'Select' && (!isGroupObj || this.diagram.selectedItems.connectors.length > 0)) {\n this.commandHandler.clearSelection(true);\n }\n }\n this.isSwimlaneSelected = false;\n this.tool.mouseUp(this.eventArgs);\n if (this.diagram.checkMenu && (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) {\n if (!evt.pageY && (evt instanceof TouchEvent) && evt.changedTouches) {\n window.getSelection().removeAllRanges();\n this.diagram.contextMenuModule.contextMenu.open(evt.changedTouches[0].pageY, evt.changedTouches[0].pageX, this.diagram.element);\n evt.preventDefault();\n }\n else {\n this.diagram.contextMenuModule.contextMenu.open(evt.pageY, evt.pageX, this.diagram.element);\n }\n this.diagram.checkMenu = false;\n }\n }\n if (history_1.hasStack) {\n this.diagram.endGroupAction();\n }\n }\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n this.updateContainerBounds(true);\n if (this.eventArgs.clickCount !== 2) {\n this.commandHandler.updateSelectedNodeProperties(this.eventArgs.source);\n if (avoidDropChildren) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n var nodes = this.eventArgs.source instanceof Selector\n ? this.eventArgs.source.nodes : [this.eventArgs.source];\n if (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].container) {\n this.commandHandler.dropChildToContainer(this.eventArgs.target, nodes[parseInt(i.toString(), 10)]);\n this.commandHandler.renderContainerHelper(nodes[parseInt(i.toString(), 10)]);\n }\n }\n }\n }\n }\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n //Bug 884946: Undo redo not working for swimlane child node's label edit.\n //committed to remove the diagram actions public method when actual object is inside swimlane.\n var isInsideLane = this.isSwimlaneChild(this.diagram.selectedObject.actualObject);\n //isSwimlaneChildHelper is used to check whether the helper object is child's helper of lane's helper. if it is lane's helper then we should not remove the DiagramAction.PublicMethod from diagram actions.\n //If we remove the DiagramAction.PublicMethod from diagram actions then undo redo will not work properly after dropping child from diagram to swimlane.\n var isSwimlaneChildHelper = this.diagram.selectedObject.actualObject &&\n this.diagram.selectedObject.actualObject.width === this.diagram.selectedObject.helperObject.width &&\n this.diagram.selectedObject.actualObject.height === this.diagram.selectedObject.helperObject.height;\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n if (this.commandHandler.isTargetSubProcess(this.diagram.selectedObject.actualObject) && this.diagram.selectedObject.actualObject.parentId === '') {\n this.swapProcessChildInDom(this.diagram.element.id + '_diagramLayer', this.diagram.selectedObject.actualObject);\n }\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n // EJ2-42605 - Annotation undo redo not working properly if the line routing is enabled committed by sivakumar sekar\n // committed to remove the diagram actions public method when line routing is enabled\n // eslint-disable-next-line\n if ((this.diagram.diagramActions & DiagramAction.PublicMethod) && (this.diagram.constraints & DiagramConstraints.LineRouting) || (isInsideLane && isSwimlaneChildHelper)) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PublicMethod;\n }\n }\n this.blocked = false;\n if (this.hoverElement) {\n var portVisibility = PortVisibility.Connect;\n if (isSelected(this.diagram, this.hoverElement)) {\n portVisibility |= PortVisibility.Hover;\n }\n this.diagram.updatePortVisibility(this.hoverElement, portVisibility, true);\n this.hoverElement = null;\n }\n this.touchStartList = null;\n this.touchMoveList = null;\n if (!(this.tool instanceof TextDrawingTool)) {\n this.tool = null;\n }\n }\n if (!touches) {\n evt.preventDefault();\n }\n this.diagram.currentDrawingObject = undefined;\n var selector = this.diagram.selectedItems;\n var disbleRenderSelector = false;\n if (this.commandHandler.isUserHandle(this.currentPosition)) {\n if (this.isForeignObject(evt.target)) {\n disbleRenderSelector = true;\n }\n }\n if (!this.inAction && selector.wrapper && selector.userHandles.length > 0 && !disbleRenderSelector) {\n this.diagram.renderSelector(true);\n }\n if (!this.inAction && !this.diagram.currentSymbol && this.eventArgs) {\n /**\n *\n * EJ2-45543 Provide Event support to notify the port click\n */\n var targetObject = this.getTargetElement();\n var arg = {\n element: (targetObject.target instanceof PointPort)\n ? targetObject.target : cloneBlazorObject(this.eventArgs.source) || cloneBlazorObject(this.diagram),\n position: cloneBlazorObject(this.eventArgs.position), count: evt.detail,\n actualObject: cloneBlazorObject(this.eventArgs.actualObject),\n button: (evt.button === 0) ? 'Left' : (evt.button === 1) ? 'Middle' : 'Right'\n };\n //Removed isBlazor code\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n this.diagram.triggerEvent(DiagramEvent.click, arg);\n }\n }\n this.eventArgs = {};\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventLaneContainerUpdate;\n if (updateAnnotation) {\n this.updateAnnotation(this.diagram.selectedItems);\n }\n // 920132: Node Interactions Cause Previously Deleted Nodes to Reappear\n this.previousElement = null;\n this.eventArgs = {};\n this.diagram.commandHandler.removeStackHighlighter(); // end the corresponding tool\n };\n //To check whether the node is child of swimlane or not.\n DiagramEventHandler.prototype.isSwimlaneChild = function (node) {\n if (node.shape && node.shape.type !== 'SwimLane') {\n var parent_1 = this.diagram.nameTable[node.parentId];\n if (!parent_1) {\n return false;\n }\n var swimlane = parent_1.parentId ? this.diagram.nameTable[parent_1.parentId] : parent_1;\n return swimlane && swimlane.shape && swimlane.shape.type === 'SwimLane';\n }\n else {\n return false;\n }\n };\n // To wrap connector annotation text based on the connector length.\n DiagramEventHandler.prototype.updateAnnotation = function (selectedItems) {\n var nodes = selectedItems.nodes;\n if (nodes.length > 0) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n this.diagram.updateConnectorEdges(node);\n }\n }\n };\n // Adding child node of sub process in the diagram layer after the subprocess dropped out from swimlane to diagram.\n DiagramEventHandler.prototype.swapProcessChildInDom = function (diagramLayerId, node) {\n var diagramLayer = document.getElementById(diagramLayerId);\n if (node.shape.activity.subProcess.processes) {\n for (var i = 0; i < node.shape.activity.subProcess.processes.length; i++) {\n var child = document.getElementById(node.shape.activity.subProcess.processes[parseInt(i.toString(), 10)] + '_groupElement');\n if (child) {\n diagramLayer.appendChild(child);\n }\n }\n }\n };\n /**\n * return the clicked element such as node/connector/port/diagram\n */\n DiagramEventHandler.prototype.getTargetElement = function () {\n var target;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n var obj = this.objectFinder.findObjectUnderMouse(this.diagram, objects, this.action, this.inAction, this.eventArgs, this.currentPosition);\n var sourceElement = null;\n if (obj !== null) {\n sourceElement = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (sourceElement) {\n target = this.commandHandler.findTarget(sourceElement, obj);\n }\n }\n var targetObject = {\n 'obj': obj,\n 'sourceElement': sourceElement,\n 'target': target\n };\n return targetObject;\n };\n /* tslint:enable */\n DiagramEventHandler.prototype.getConnectorPadding = function (eventArgs) {\n var padding;\n var targetObject = eventArgs.source;\n if (targetObject && (targetObject instanceof Selector) && targetObject.connectors.length) {\n var selectedConnector = targetObject.connectors[0];\n padding = (selectedConnector.constraints & ConnectorConstraints.ConnectToNearByPort) ? selectedConnector.connectionPadding : 0;\n }\n else if (targetObject && (targetObject instanceof Connector) && this.action === 'PortDraw' && (this.tool instanceof ConnectorDrawingTool)) {\n if (targetObject.constraints & ConnectorConstraints.ConnectToNearByPort) {\n padding = targetObject.connectionPadding;\n }\n }\n return padding || 0;\n };\n DiagramEventHandler.prototype.addSwimLaneObject = function (selectedNode) {\n var swimlaneNode;\n var targetNode;\n var shape;\n var value;\n var canInsert;\n var index = 0;\n var offset;\n var actualShape = selectedNode.shape;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n if (!targetNode) {\n targetNode = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n this.diagram.clearSelectorLayer();\n if (targetNode && !(targetNode.isLane || targetNode.isPhase || targetNode.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n targetNode = laneNode;\n }\n }\n }\n if (targetNode && (actualShape.isPhase || (actualShape.isLane && targetNode.isLane))) {\n var id = targetNode.parentId;\n swimlaneNode = this.diagram.nameTable[\"\" + id];\n }\n var orientationSwap = null;\n if (swimlaneNode) {\n shape = swimlaneNode.shape;\n canInsert = (actualShape.isLane) ? actualShape.orientation === shape.orientation :\n actualShape.orientation !== shape.orientation;\n if (actualShape.isLane && actualShape.orientation !== shape.orientation) {\n canInsert = true;\n orientationSwap = actualShape.orientation === 'Horizontal' ? 'height' : 'width';\n }\n }\n if (canInsert && targetNode) {\n if (shape && shape.header && shape.hasHeader && shape.orientation === 'Horizontal') {\n index = 1;\n }\n if (shape.phases.length > 0) {\n index += 1;\n }\n if (actualShape.isPhase) {\n if (shape.orientation === 'Horizontal') {\n offset = this.currentPosition.x - swimlaneNode.wrapper.bounds.x;\n }\n else {\n offset = this.currentPosition.y - (swimlaneNode.wrapper.bounds.y + shape.header.height);\n }\n var phases = { id: randomId(), offset: offset, header: { annotation: {\n content: actualShape.phases[0].header === undefined ? 'Phase' : actualShape.phases[0].header.annotation.content,\n style: actualShape.phases[0].header === undefined ? {} : actualShape.phases[0].header.annotation.style\n } },\n //882239 - Fill color not applied properly while adding phase at runtime\n style: actualShape.phases[0] === undefined ? {} : actualShape.phases[0].style };\n this.diagram.addPhases(swimlaneNode, [phases]);\n }\n else {\n //const laneHeight: number = actualShape.lanes[0].header.height;\n var lane = {\n id: randomId(), style: actualShape.lanes[0].style, header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n };\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n orientation_1 ? lane.height = actualShape.lanes[0].height : lane.width = actualShape.lanes[0].width;\n if (shape.orientation === 'Horizontal') {\n value = targetNode.rowIndex ? targetNode.rowIndex :\n this.diagram.nameTable[targetNode.parentId].rowIndex;\n if (targetNode.wrapper.offsetY < this.currentPosition.y) {\n value += 1;\n }\n }\n else {\n value = targetNode.columnIndex ? targetNode.columnIndex :\n this.diagram.nameTable[targetNode.parentId].columnIndex;\n if (this.currentPosition.x < targetNode.wrapper.bounds.center.x) {\n value -= 1;\n }\n }\n if (shape.lanes.length > (value)) {\n lane.header.width = shape.lanes[parseInt(value.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(value.toString(), 10)].header.height;\n }\n else {\n //EJ2-64457 - Not able to add lane in the existing vertical swimlane.\n var ind = void 0;\n if (shape.orientation === 'Horizontal') {\n ind = targetNode.rowIndex < 3 ? 0 : value - index - 1;\n }\n else {\n ind = value - 1;\n }\n lane.header.width = shape.lanes[parseInt(ind.toString(), 10)].header.width;\n lane.header.height = shape.lanes[parseInt(ind.toString(), 10)].header.height;\n }\n //Bug 879093: Incorrect helperguide for vertical and horizontal swim lanes.\n //With below code, we swap the height and width property of lane based on orientationSwap value.\n if (orientationSwap) {\n if (orientationSwap === 'height') {\n lane.width = lane.height;\n delete lane.height;\n }\n else {\n lane.height = lane.width;\n delete lane.width;\n }\n }\n this.diagram.addLanes(swimlaneNode, [lane], shape.orientation === 'Horizontal' ? value - index : value);\n }\n this.commandHandler.select(swimlaneNode);\n }\n else if (actualShape.isLane) {\n var swimLaneobj = {\n id: randomId(), width: selectedNode.width, height: selectedNode.height, addInfo: selectedNode.addInfo,\n shape: {\n type: 'SwimLane',\n header: {\n //864525-Issue in updating swimlane header properties dynamically\n annotation: {\n content: actualShape.header === undefined ? 'Header' : actualShape.header.annotation.content,\n style: actualShape.header === undefined ? {} : actualShape.header.annotation.style\n },\n height: 50,\n style: actualShape.header ? actualShape.header.style : actualShape.lanes[0].header.style\n },\n phases: [{\n id: randomId(),\n //864555-Issue in updating swimlane phase properties dynamically\n header: {\n annotation: {\n content: actualShape.phases === undefined ? 'Phase' : actualShape.phases[0].header === undefined\n ? 'Phase' : actualShape.phases[0].header.annotation.content,\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].header === undefined\n ? {} : actualShape.phases[0].header.annotation.style\n },\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].header === undefined\n ? {} : actualShape.phases[0].header.style\n },\n style: actualShape.phases === undefined ? {} : actualShape.phases[0].style\n }],\n lanes: [{\n id: randomId(), height: selectedNode.height, width: selectedNode.width, style: actualShape.lanes[0].style,\n header: {\n annotation: {\n content: actualShape.lanes[0].header.annotation.content,\n style: actualShape.lanes[0].header.annotation.style\n },\n style: actualShape.lanes[0].header.style\n }\n }], orientation: actualShape.orientation\n }\n };\n if (actualShape.orientation === 'Vertical') {\n swimLaneobj.width += 20;\n }\n swimLaneobj.offsetX = this.currentPosition.x + (swimLaneobj.width / 2);\n swimLaneobj.offsetY = this.currentPosition.y + (swimLaneobj.height / 2);\n //Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Added below code to set swimlane style for dropped swimlane.\n swimLaneobj.style = selectedNode.style;\n this.diagram.add(swimLaneobj);\n }\n };\n /** @private */\n DiagramEventHandler.prototype.mouseLeave = function (evt) {\n //Define what has to happen on mouse leave\n if (this.tool && this.inAction) {\n this.tool.mouseLeave(this.eventArgs);\n }\n if (this.diagram.selectedObject.helperObject) {\n this.updateContainerProperties();\n var isGroupAction = this.updateContainerBounds();\n if (isGroupAction) {\n this.diagram.endGroupAction();\n }\n }\n if (this.eventArgs && this.eventArgs.source) {\n this.diagram.updatePortVisibility(this.eventArgs.source, PortVisibility.Hover, true);\n this.hoverElement = null;\n }\n if (this.eventArgs && !this.eventArgs.source && this.hoverElement) {\n this.hoverElement = null;\n }\n if (this.tool instanceof ConnectTool && this.eventArgs && this.eventArgs.target && this.eventArgs.target instanceof Node) {\n this.diagram.updatePortVisibility(this.eventArgs.target, PortVisibility.Hover | PortVisibility.Connect, true);\n this.hoverElement = null;\n }\n var selector = this.diagram.selectedItems;\n if (selector && selector.wrapper) {\n if (!(selectionHasConnector(this.diagram, selector))) {\n this.diagram.renderSelector(true);\n }\n }\n if (this.diagram.diagramActions & DiagramAction.Interactions || this.diagram.diagramActions & DiagramAction.ToolAction) {\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.ToolAction;\n }\n this.isMouseDown = false;\n this.focus = false;\n this.touchStartList = null;\n this.touchMoveList = null;\n this.elementLeave();\n this.commandHandler.removeSnap();\n this.inAction = false;\n this.eventArgs = {};\n if (this.diagram.selectedObject && this.diagram.selectedObject.helperObject) {\n this.diagram.remove(this.diagram.selectedObject.helperObject);\n this.diagram.selectedObject = { helperObject: undefined, actualObject: undefined };\n }\n this.tool = null;\n removeRulerMarkers();\n if (this.action === 'Rotate') {\n this.diagram.diagramCanvas.classList.remove('e-diagram-rotate');\n }\n evt.preventDefault();\n };\n /** @private */\n DiagramEventHandler.prototype.mouseWheel = function (evt) {\n this.diagram.blazorActions |= BlazorAction.interaction;\n // EJ2-64831 - Need to provide support to override the mousewheel event\n var arg = {\n event: evt,\n cancel: false\n };\n this.diagram.triggerEvent(DiagramEvent.mouseWheel, arg);\n if (!arg.cancel) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var up = (evt.wheelDelta > 0 || -40 * evt.detail > 0) ? true : false;\n var mousePosition = this.getMousePosition(evt);\n this.diagram.tooltipObject.close();\n var ctrlKey = this.isMetaKey(evt);\n if (ctrlKey) {\n // SF-362356 - Command below line to implement smooth scroll in diagram.\n // this.diagram.zoom(up ? (1.2) : 1 / (1.2), mousePosition);\n // EJ2-59803 - Added the below code to get the zoom factor value from scroll settings and\n // set it to zoomFactor args in zoomTo method.\n var zoomFactor = this.diagram.scrollSettings.zoomFactor;\n if (up) {\n this.diagram.zoomTo({ type: 'ZoomIn', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n else {\n this.diagram.zoomTo({ type: 'ZoomOut', zoomFactor: zoomFactor, focusPoint: mousePosition });\n }\n evt.preventDefault();\n }\n else {\n var horizontalOffset = this.diagram.scroller.horizontalOffset;\n var verticalOffset = this.diagram.scroller.verticalOffset;\n var change = up ? 10 : -10;\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n this.eventArgs = {};\n this.getMouseEventArgs(mousePosition, this.eventArgs);\n this.eventArgs.position = mousePosition;\n this.tool.mouseWheel(this.eventArgs);\n }\n this.diagram.scrollActions |= ScrollActions.Interaction;\n var canMouseWheel = true;\n if (evt.isTrusted) {\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // Added the below condition to check whether the mouse wheel is from trackpad or not.\n var isTrackpadScroll = false;\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if ((Math.abs(evt.deltaY) < 100 && Math.abs(evt.deltaX) === -0) ||\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n (Math.abs(evt.deltaX) < 100 && Math.abs(evt.deltaY) === -0)) {\n isTrackpadScroll = true;\n }\n //Bug 892441: Infinite scroll not working in vertical axis of diagram.\n //Due to the prevention of zoom method trigger in vertical scroll, the infinite scroll is not working in vertical axis.\n //So added the below condition to check macOS and allowed the zoom method trigger in vertical scroll for non-MacOs.\n var isMacOS = false;\n if (evt.deltaX !== 0 || evt.deltaY !== 0) {\n // Perform macOS detection\n isMacOS = navigator.userAgent.includes('Macintosh');\n }\n //898867: Diagram scrolling is not smooth while scrolling with Track Pad in Mac.\n if (isMacOS) {\n var isHorizontalScroll = Math.abs(evt.deltaX) > Math.abs(evt.deltaY);\n if (isHorizontalScroll) {\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n else {\n // eslint-disable-next-line no-compare-neg-zero\n if ((evt.deltaY && evt.deltaY !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n }\n //Bug 837940: In mac, scrollbar flickers on horizontal and vertical scroll using trackpad.\n else {\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n // eslint-disable-next-line no-compare-neg-zero\n else if ((evt.deltaY && evt.deltaY !== -0 && (isTrackpadScroll || !isMacOS))) {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel, undefined, isTrackpadScroll);\n }\n }\n }\n else {\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line no-compare-neg-zero\n if (evt.shiftKey || (evt.deltaX && evt.deltaX !== -0)) {\n this.diagram.scroller.zoom(1, change, 0, mousePosition, canMouseWheel);\n }\n else {\n this.diagram.scroller.zoom(1, 0, change, mousePosition, canMouseWheel);\n }\n }\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n if (horizontalOffset !== this.diagram.scroller.horizontalOffset\n || verticalOffset !== this.diagram.scroller.verticalOffset) {\n evt.preventDefault();\n }\n }\n if (this.diagram.textEditing) {\n this.diagram.isTriggerEvent = true;\n if (this.diagram.activeLabel.parentId) {\n var node = this.diagram.getObject(this.diagram.activeLabel.parentId);\n this.diagram.startTextEdit(node, this.diagram.activeLabel.id);\n }\n this.diagram.isTriggerEvent = false;\n }\n this.diagram.blazorActions = this.diagram.blazorActions & ~BlazorAction.interaction;\n }\n };\n /** @private */\n DiagramEventHandler.prototype.keyDown = function (evt) {\n if (evt.fromMouseEvents) {\n if (evt.ctrlKey) {\n this.keyArgs.keyModifiers = 1;\n }\n if (evt.shiftKey) {\n this.keyArgs.keyModifiers = 4;\n }\n if (evt.shiftKey && evt.ctrlKey) {\n this.keyArgs.keyModifiers = 5;\n }\n }\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit) &&\n !(this.checkEditBoxAsTarget(evt)) || (evt.key === 'Escape' || evt.keyCode === 27)) {\n var i = void 0;\n var inAction = 'inAction';\n var command = void 0;\n var keycode = evt.keyCode ? evt.keyCode : evt.which;\n var key = evt.key;\n if (key === 'ArrowDown' || key === 'ArrowUp' || key === 'ArrowLeft' || key === 'ArrowRight') {\n this.isNudgeKey = true;\n }\n var ctrlKey = this.isMetaKey(evt);\n if (this.diagram.commandManager && this.diagram.commands) {\n var commands = this.diagram.commands;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var i_1 = _a[_i];\n command = this.diagram.commands[\"\" + i_1];\n if (command && (command.gesture.keyModifiers || command.gesture.key)) {\n //Added the split method to split the Number string from the enum while clicking the number keys\n if ((keycode === command.gesture.key || (Keys[command.gesture.key] && key === Keys[command.gesture.key] || key === Keys[command.gesture.key].split('Number')[1])\n || this.isDeleteKey(key, i_1))\n && (((!command.gesture.keyModifiers) && (!evt.altKey) && (!evt.shiftKey) && (!ctrlKey)) ||\n (command.gesture.keyModifiers && (ctrlKey || evt.altKey || evt.shiftKey) &&\n (this.altKeyPressed(command.gesture.keyModifiers) && evt.altKey) ||\n (this.shiftKeyPressed(command.gesture.keyModifiers) && evt.shiftKey) ||\n //added the comparision condition of keyargs to execute the condition onclicking the Ctrl + Shift key\n (this.ctrlKeyPressed(command.gesture.keyModifiers) && ctrlKey)\n && (this.keyArgs.keyModifiers === command.gesture.keyModifiers)))) {\n var canExecute = getFunction(command.canExecute);\n if (isBlazor() || (canExecute &&\n canExecute({\n 'keyDownEventArgs': KeyboardEvent,\n parameter: command.parameter\n }))) {\n evt.preventDefault();\n if (evt.key === 'Escape') {\n if (this.checkEditBoxAsTarget(evt)) {\n document.getElementById(this.diagram.diagramCanvas.id).focus();\n }\n else if (this.diagram.currentSymbol) {\n var selectedSymbols = 'selectedSymbols';\n var source = 'sourceElement';\n var intDestroy = 'intDestroy';\n this.diagram.removeFromAQuad(this.diagram.currentSymbol);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[this.diagram.currentSymbol.id]);\n this.diagram.removeElements(this.diagram.currentSymbol);\n removeChildNodes(this.diagram.currentSymbol, this.diagram);\n delete this.diagram.nameTable[this.diagram.currentSymbol.id];\n var sourceElement = this.diagram.droppable[\"\" + source];\n sourceElement.draggable[\"\" + intDestroy]();\n var element_1 = this.diagram.droppable[\"\" + selectedSymbols];\n element_1.parentNode.removeChild(element_1);\n var diagramActions = this.diagram.diagramActions;\n this.diagram.diagramActions =\n this.diagram.addConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.tool.mouseUp(this.eventArgs);\n this.diagram.diagramRenderer.rendererActions = this.diagram.removeConstraints(this.diagram.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (this.diagram.previousSelectedObject) {\n this.diagram.select(this.diagram.previousSelectedObject);\n }\n this.action = 'Select';\n this.diagram.previousSelectedObject = null;\n this.diagram.currentSymbol = null;\n this.diagram.diagramActions =\n this.diagram.removeConstraints(diagramActions, DiagramAction.PreventClearSelection);\n this.isMouseDown = false;\n }\n else if (this.inAction && this.diagram.drawingObject && this.tool && this.tool[\"\" + inAction]) {\n this.tool.mouseUp(this.eventArgs);\n this.tool = null;\n this.isMouseDown = false;\n }\n }\n if (command.execute) {\n this.commandObj = command;\n if (this.diagram.tool !== DiagramTools.ZoomPan) {\n // if (i === 'nudgeUp' || i === 'nudgeRight' || i === 'nudgeDown' || i === 'nudgeLeft') {\n // command.execute()\n // } else {\n var execute = getFunction(command.execute);\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (this.isNudgeKey) {\n if (!this.isKeyUp) {\n this.keyArgs.oldValue = { offsetX: this.diagram.selectedItems.offsetX,\n offsetY: this.diagram.selectedItems.offsetY };\n this.keyCount++;\n if (this.keyCount > 4) {\n // 914747: Position change event not triggered for Keyboard nudge commands\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter, type: 'KEYDOWN' });\n this.keyCount = 0;\n this.keyArgs.newValue = { offsetX: this.diagram.selectedItems.offsetX,\n offsetY: this.diagram.selectedItems.offsetY };\n this.diagram.triggerEvent(DiagramEvent.positionChange, this.keyArgs);\n }\n }\n this.isKeyUp = false;\n }\n else {\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: command.parameter });\n }\n }\n // }\n }\n //Removed isBlazor code\n break;\n }\n }\n }\n }\n }\n }\n // eslint-disable-next-line\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n var element = cloneBlazorObject(this.diagram.selectedItems);\n this.keyArgs = {\n element: element,\n key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which\n };\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyDown, this.keyArgs);\n };\n DiagramEventHandler.prototype.getlabel = function (args, evt) {\n var label = this.diagram.activeLabel;\n args.target = this.diagram.element.id + '_editBox';\n var node = this.diagram.nameTable[label.parentId];\n if (document.getElementById(this.diagram.element.id + '_editBox')) {\n args.text = document.getElementById(this.diagram.element.id + '_editBox').value;\n for (var i = 0; i < node.annotations.length; i++) {\n if (node.annotations[parseInt(i.toString(), 10)].id === label.id) {\n args.label = node.annotations[parseInt(i.toString(), 10)];\n break;\n }\n }\n }\n };\n DiagramEventHandler.prototype.getKeyModifier = function (args, evt) {\n args.keyModifiers = KeyModifiers.None;\n if (evt.ctrlKey) {\n args.keyModifiers |= KeyModifiers.Control;\n }\n if (evt.shiftKey) {\n args.keyModifiers |= KeyModifiers.Shift;\n }\n if (evt.altKey) {\n args.keyModifiers |= KeyModifiers.Alt;\n }\n if (this.isMetaKey(evt)) {\n args.keyModifiers |= KeyModifiers.Meta;\n }\n };\n DiagramEventHandler.prototype.keyUp = function (evt) {\n var element = cloneBlazorObject(this.diagram.selectedItems);\n this.keyArgs = {\n element: element, key: evt.key, keyCode: evt.keyCode ? evt.keyCode : evt.which,\n oldValue: { offsetX: element.offsetX, offsetY: element.offsetY },\n newValue: { offsetX: element.offsetX, offsetY: element.offsetY }\n };\n var selectedObject = (this.diagram.selectedItems.nodes.length) ?\n this.diagram.selectedItems.nodes : this.diagram.selectedItems.connectors;\n this.getKeyModifier(this.keyArgs, evt);\n if ((this.diagram.diagramActions & DiagramAction.TextEdit)) {\n this.getlabel(this.keyArgs, evt);\n }\n this.diagram.triggerEvent(DiagramEvent.keyUp, this.keyArgs);\n // this.isKeyUp = true;\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n if (!this.isKeyUp && this.isNudgeKey) {\n //Bug 860080: Navigation not working in keyboard interaction SB sample.\n //To execute the command manager execute method below as we restricted keydown for arrow keys.\n var execute = getFunction(this.commandObj.execute);\n execute({ 'keyDownEventArgs': KeyboardEvent, parameter: this.commandObj.parameter, type: 'KEYUP' });\n // 914747: Position change event not triggered for Keyboard nudge commands\n this.keyArgs.newValue = { offsetX: this.diagram.selectedItems.offsetX, offsetY: this.diagram.selectedItems.offsetY };\n this.diagram.triggerEvent(DiagramEvent.positionChange, this.keyArgs);\n this.isNudgeKey = false;\n this.keyCount = 0;\n }\n };\n DiagramEventHandler.prototype.startAutoScroll = function (e) {\n var position = this.getMousePosition(e);\n position.x *= this.diagram.scroller.currentZoom;\n position.y *= this.diagram.scroller.currentZoom;\n var rulerSize = getRulerSize(this.diagram);\n var movingPosition;\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n if (Browser.info.name === 'mozilla') {\n if (this.diagram.scroller.viewPortWidth === 0) {\n var bounds = document.getElementById(this.diagram.element.id).getBoundingClientRect();\n if (bounds.width !== this.diagram.scroller.viewPortWidth) {\n this.diagram.scroller.setViewPortSize(bounds.width, bounds.height);\n }\n }\n }\n if (this.diagram.scrollSettings.canAutoScroll) {\n if (position.x + this.diagram.scroller.horizontalOffset + autoScrollBorder.right + rulerSize.width >=\n this.diagram.scroller.viewPortWidth - 18) {\n movingPosition = 'right';\n }\n else if (position.x + this.diagram.scroller.horizontalOffset < autoScrollBorder.left) {\n movingPosition = 'left';\n }\n else if (position.y + this.diagram.scroller.verticalOffset + autoScrollBorder.bottom + rulerSize.height >\n this.diagram.scroller.viewPortHeight - 18) {\n movingPosition = 'bottom';\n }\n else if (position.y + this.diagram.scroller.verticalOffset < autoScrollBorder.top) {\n movingPosition = 'top';\n }\n }\n return movingPosition;\n };\n DiagramEventHandler.prototype.doAutoScroll = function (option, e, delay, autoScroll) {\n var position = option;\n var canAutoScroll = true;\n if ((this.tool instanceof NodeDrawingTool || this.tool instanceof ConnectorDrawingTool\n || this.tool instanceof MoveTool || this.tool instanceof ResizeTool\n || this.tool instanceof SelectTool || this.tool instanceof ConnectTool) && this.inAction) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var diagram = this;\n var pos = this.getMousePosition(e);\n var autoScrollBorder = this.diagram.scrollSettings.autoScrollBorder;\n var newDelay = delay ? delay : 100;\n var left = 0;\n var top_1 = 0;\n var canUpdate = false;\n var corner = '';\n var point = { x: pos.x, y: pos.y };\n // EJ2-61979 - Added below code to check whether we resize the node around four corners\n if (this.tool instanceof ResizeTool && (this.tool.corner === 'ResizeSouthEast' || this.tool.corner === 'ResizeSouthWest' ||\n this.tool.corner === 'ResizeNorthWest' || this.tool.corner === 'ResizeNorthEast')) {\n canUpdate = true;\n corner = this.tool.corner;\n }\n switch (position) {\n case 'right':\n point.x = pos.x + 10;\n left = 10;\n // EJ2-61979 - If node gets resized on southeast or northeast corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n else {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n }\n break;\n case 'left':\n point.x = pos.x - 10;\n left = -10;\n // EJ2-61979 - If node gets resized on northwest or southwest corner means then update the y position along with x position\n if (canUpdate) {\n if (corner === 'ResizeNorthWest') {\n point.y = pos.y - 10;\n top_1 = -10;\n }\n else {\n point.y = pos.y + 10;\n top_1 = 10;\n }\n }\n break;\n case 'bottom':\n point.y = pos.y + 10;\n top_1 = 10;\n // EJ2-61979 - If node gets resized on southeast or southwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeSouthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n case 'top':\n point.y = pos.y - 10;\n top_1 = -10;\n // EJ2-61979 - If node gets resized on northeast or northwest corner means then update the x position along with y position\n if (canUpdate) {\n if (corner === 'ResizeNorthEast') {\n point.x = pos.x + 10;\n left = 10;\n }\n else {\n point.x = pos.x - 10;\n left = -10;\n }\n }\n break;\n }\n this.eventArgs.position = { x: point.x, y: point.y };\n this.currentPosition = this.eventArgs.position;\n var objects = this.objectFinder.findObjectsUnderMouse(this.currentPosition, this.diagram, this.eventArgs, null, this.action);\n this.eventArgs.target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n this.tool.mouseMove(this.eventArgs);\n this.diagram.scrollActions |= ScrollActions.Interaction;\n this.diagram.scroller.zoom(1, -left, -top_1, pos, canAutoScroll);\n this.diagram.scrollActions &= ~ScrollActions.Interaction;\n }\n };\n DiagramEventHandler.prototype.mouseEvents = function () {\n var target = this.diagram.findObjectsUnderMouse(this.currentPosition);\n for (var i = 0; i < target.length; i++) {\n if (this.eventArgs.actualObject === target[parseInt(i.toString(), 10)]) {\n target.splice(i, 1);\n }\n }\n var arg = {\n targets: {}\n };\n if (!isBlazor()) {\n arg = {\n targets: cloneBlazorObject(target),\n element: cloneBlazorObject((this.eventArgs.source === this.eventArgs.actualObject) ? undefined : this.eventArgs.source),\n actualObject: cloneBlazorObject(this.eventArgs.actualObject)\n };\n }\n //Removed isBlazor code\n if (this.lastObjectUnderMouse && this.diagram.mouseLeave\n && (!this.eventArgs.actualObject || (this.lastObjectUnderMouse !== this.eventArgs.actualObject))) {\n var arg_1 = {\n targets: undefined, element: cloneBlazorObject(this.lastObjectUnderMouse), actualObject: undefined\n };\n //Removed isBlazor code\n this.diagram.triggerEvent(DiagramEvent.mouseLeave, arg_1);\n this.lastObjectUnderMouse = null;\n }\n if (!this.lastObjectUnderMouse && this.eventArgs.source || (this.lastObjectUnderMouse !== this.eventArgs.actualObject)) {\n this.lastObjectUnderMouse = this.eventArgs.actualObject;\n if (this.eventArgs.actualObject !== undefined) {\n this.diagram.triggerEvent(DiagramEvent.mouseEnter, arg);\n }\n }\n if (this.eventArgs.actualObject) {\n this.diagram.triggerEvent(DiagramEvent.mouseOver, arg);\n }\n };\n DiagramEventHandler.prototype.elementEnter = function (mousePosition, elementOver) {\n if (!elementOver) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node)\n && this.hoverElement.constraints & NodeConstraints.Tooltip)\n || ((this.hoverElement instanceof Connector)\n && this.hoverElement.constraints & ConnectorConstraints.Tooltip)\n || ((this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)\n && this.hoverElement.constraints & PortConstraints.ToolTip)\n || ((this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)\n && this.hoverElement.constraints & AnnotationConstraints.Tooltip);\n var content = this.getContent();\n var children = void 0;\n if (this.hoverElement && this.hoverElement.children && this.hoverElement.children.length > 0) {\n // EJ2-56981 - Below method is used to check if the mouse pointer position and group children node gets intersect or not\n children = this.findIntersectChild(this.hoverElement);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n if (children) {\n updateTooltip(this.diagram, children);\n }\n else {\n updateTooltip(this.diagram, isPrivateTooltip ? this.hoverElement : undefined);\n }\n }\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.setTooltipOffset(mousePosition);\n }\n else {\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n }\n }\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n //848980 - Null exception occurs while hovering the ports\n if (obj !== null) {\n var targetEle = void 0;\n //840454 - support to provide isSticky property for tooltip in diagram control\n if (this.hoverElement.tooltip.isSticky) {\n this.diagram.tooltipObject.isSticky = true;\n }\n if (obj instanceof Node && obj.children && obj.children.length > 0) {\n // EJ2-56981 - If children returned means then update tooltip for child node else update tooltip for group node.\n obj = children ? children : obj;\n }\n //EJ2-62120 - check if the Node has Ports and hoverElement is Port as mousepointer hovered over Port\n if (obj.ports && (this.hoverElement instanceof PointPort || this.hoverElement instanceof PathPort)) {\n //executed to set target as port\n targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id);\n }\n else if (obj.annotations\n && (this.hoverElement instanceof ShapeAnnotation || this.hoverElement instanceof PathAnnotation)) {\n //executed to set target as annotation\n targetEle = document.getElementById(obj.id + '_' + this.hoverElement.id);\n }\n else {\n //executed to set target as Node or Connector\n var idName = (obj.shape && ((obj.shape) instanceof Native)) ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(obj.id + idName);\n }\n if (this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.diagram.tooltipObject.close();\n this.diagram.tooltipObject.openOn = this.hoverElement.tooltip.openOn;\n //Removed isBlazor code\n this.diagram.tooltipObject.dataBind();\n }\n if (canEnableToolTip(this.hoverElement, this.diagram) && this.hoverElement.tooltip.openOn === 'Auto') {\n this.diagram.tooltipObject.target = this.hoverElement.id;\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n this.diagram.tooltipObject.open(this.diagram.element);\n }\n else {\n this.diagram.tooltipObject.open(targetEle);\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.elementLeave = function () {\n if (this.diagram.tooltipObject && !this.diagram.tooltipObject.isSticky && this.diagram.tooltipObject.openOn !== 'Custom') {\n this.diagram.tooltipObject.close();\n }\n };\n // EJ2-66418 - set tooltip relativeMode as mouse\n // Calculating offset position for relativeMode Mouse\n DiagramEventHandler.prototype.setTooltipOffset = function (mousePosition) {\n var offset = getTooltipOffset(this.diagram, mousePosition, this.hoverElement);\n this.diagram.tooltipObject.offsetX = offset.x;\n this.diagram.tooltipObject.offsetY = offset.y;\n };\n DiagramEventHandler.prototype.altKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Alt) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.ctrlKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Control) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.shiftKeyPressed = function (keyModifier) {\n if (keyModifier & KeyModifiers.Shift) {\n return true;\n }\n return false;\n };\n /** @private */\n DiagramEventHandler.prototype.scrolled = function (evt) {\n this.diagram.updateScrollOffset();\n //Removed isBlazor code\n };\n DiagramEventHandler.prototype.isMobileOrIPadDevice = function () {\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n // Check for iOS devices (iPhone, iPad, iPod)\n if (/iPhone|iPad|iPod/.test(userAgent) && !window.MSStream) {\n return 'iOS';\n }\n // Check for Android devices\n if (/android/i.test(userAgent)) {\n return 'Android';\n }\n // Check for other mobile devices (general fallback)\n if (/Mobile|Tablet/.test(userAgent)) {\n return 'Mobile';\n }\n return 'Desktop';\n };\n /** @private */\n DiagramEventHandler.prototype.doubleClick = function (evt) {\n if (canUserInteract(this.diagram)) {\n //Bug 916653: Issue with drawing Polyline in iPad.\n //Added below code to check for mobile and ipad device.\n var isMobileOrIPad = this.isMobileOrIPadDevice();\n var curTool = this.diagram.tool;\n if ((isMobileOrIPad !== 'Desktop') && (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool))) {\n this.diagram.tool = 0;\n }\n var annotation = void 0;\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n if (obj !== null && canUserInteract(this.diagram)) {\n var node = obj;\n annotation = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram);\n if (this.tool && (this.tool instanceof PolygonDrawingTool || this.tool instanceof PolyLineDrawingTool)) {\n var arg_2 = {\n source: cloneBlazorObject(obj),\n position: this.currentPosition, count: evt.detail\n };\n this.diagram.tool = curTool;\n this.tool.mouseUp(this.eventArgs);\n this.isMouseDown = false;\n this.eventArgs = {};\n this.tool = null;\n evt.preventDefault();\n }\n else {\n var layer = this.diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n if (!(this.diagram.diagramActions & DiagramAction.TextEdit)) {\n var id = '';\n this.diagram.startTextEdit(obj, id || (annotation instanceof TextElement ?\n (annotation.id).split(obj.id + '_')[1] : undefined));\n }\n }\n }\n }\n var arg = {\n source: cloneBlazorObject(obj) || cloneBlazorObject(this.diagram),\n position: this.currentPosition, count: evt.detail\n };\n //Removed isBlazor code\n this.diagram.triggerEvent(DiagramEvent.doubleClick, arg);\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.itemClick = function (actualTarget, diagram) {\n var obj = actualTarget;\n if (checkParentAsContainer(this.diagram, obj, true)) {\n return obj;\n }\n return null;\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.inputChange = function (evt) {\n var minWidth = 90;\n var maxWidth;\n var minHeight = 12;\n var fontsize;\n var textWrapper;\n var node;\n var height;\n var width;\n var textBounds;\n var textBoxWidth;\n var transforms;\n var scale;\n var editTextBox = document.getElementById(this.diagram.element.id + '_editBox');\n var editTextBoxDiv = document.getElementById(this.diagram.element.id + '_editTextBoxDiv');\n var text = (editTextBox.value);\n var line = text.split('\\n');\n node = (this.diagram.selectedItems.nodes[0]) ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0];\n if ((!node && this.tool instanceof TextDrawingTool) || (node && node.shape.type === 'SwimLane')) {\n node = this.diagram.nameTable[this.diagram.activeLabel.parentId];\n }\n if (node && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n textWrapper = this.diagram.getWrapper(node.wrapper, this.diagram.activeLabel.id);\n maxWidth = node.wrapper.bounds.width < textWrapper.bounds.width ? node.wrapper.bounds.width : textWrapper.bounds.width;\n maxWidth = maxWidth > minWidth ? maxWidth : minWidth;\n textBounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n fontsize = Number((editTextBox.style.fontSize).split('px')[0]);\n if (line.length > 1 && line[line.length - 1] === '') {\n textBounds.height = textBounds.height + fontsize;\n }\n transforms = this.diagram.scroller.transform;\n scale = canZoomTextEdit(this.diagram) ? transforms.scale : 1;\n width = textBounds.width;\n width = ((minWidth > width) ? minWidth : width) * scale;\n height = ((minHeight > textBounds.height) ? minHeight : textBounds.height) * scale;\n editTextBoxDiv.style.left = ((((textWrapper.bounds.center.x + transforms.tx) * transforms.scale) - width / 2) - 2.5) + 'px';\n editTextBoxDiv.style.top = ((((textWrapper.bounds.center.y + transforms.ty) * transforms.scale) - height / 2) - 3) + 'px';\n editTextBoxDiv.style.width = width + 'px';\n editTextBoxDiv.style.height = height + 'px';\n editTextBox.style.minHeight = minHeight + 'px';\n editTextBox.style.minWidth = minWidth + 'px';\n editTextBox.style.width = width + 'px';\n editTextBox.style.height = height + 'px';\n }\n };\n /**\n * @private\n */\n DiagramEventHandler.prototype.isAddTextNode = function (node, focusOut) {\n if (this.tool instanceof TextDrawingTool || focusOut) {\n this.tool = null;\n if (node && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.drawingObject = undefined;\n this.diagram.currentDrawingObject = undefined;\n }\n if (getObjectFromCollection(this.diagram.nodes, node.id) ||\n getObjectFromCollection(this.diagram.connectors, node.id)) {\n return false;\n }\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.checkEditBoxAsTarget = function (evt) {\n if ((evt.target && evt.target.id === this.diagram.element.id + '_editBox')) {\n return true;\n }\n return false;\n };\n DiagramEventHandler.prototype.getMouseEventArgs = function (position, args, source, padding) {\n args.position = position;\n var obj;\n var objects;\n if (!source) {\n if (this.action === 'Drag' || this.action === 'ConnectorSourceEnd' || this.action === 'SegmentEnd' ||\n this.action === 'OrthoThumb' || this.action === 'BezierSourceThumb' || this.action === 'BezierTargetThumb' ||\n this.action === 'ConnectorTargetEnd' || this.action.indexOf('Rotate') !== -1 || this.action.indexOf('Resize') !== -1) {\n obj = this.diagram.selectedItems;\n if (!this.diagram.currentSymbol && this.action === 'Drag' && obj && this.diagram.selectedItems.nodes.length > 0 &&\n this.diagram.selectedItems.nodes[0].shape.type === 'SwimLane') {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n obj = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n }\n else {\n objects = this.diagram.findObjectsUnderMouse(this.currentPosition, source);\n obj = this.diagram.findTargetObjectUnderMouse(objects, this.action, this.inAction, args.position, source);\n }\n if (obj && obj.isHeader) {\n obj = this.diagram.nameTable[obj.parentId];\n this.eventArgs.actualObject = obj;\n }\n var wrapper;\n if (obj) {\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, padding);\n var currentConnector = void 0;\n var nearNode = void 0;\n var i = void 0;\n if ((wrapper && obj.ports && obj.ports.length\n && !checkPort(obj, wrapper) || !wrapper || !obj) && objects && objects.length\n && (source instanceof Selector)) {\n currentConnector = source.connectors[0];\n for (i = objects.length - 1; i >= 0; i--) {\n nearNode = objects[parseInt(i.toString(), 10)];\n if ((nearNode instanceof Node || nearNode instanceof Connector) && currentConnector\n && currentConnector.connectionPadding) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, padding);\n if (((currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort) && obj &&\n obj.ports && obj.ports.length && checkPort(obj, wrapper))) {\n break;\n }\n if ((nearNode instanceof Node || nearNode instanceof Connector) && currentConnector\n && currentConnector.connectionPadding && nearNode.wrapper.outerBounds.containsPoint(this.currentPosition)\n && (currentConnector.constraints & ConnectorConstraints.ConnectToNearByNode)\n && !(currentConnector.constraints & ConnectorConstraints.ConnectToNearByPort)) {\n obj = nearNode;\n wrapper = this.diagram.findElementUnderMouse(obj, this.currentPosition, this.diagram, 0);\n break;\n }\n }\n }\n }\n }\n if (!source) {\n args.source = obj;\n args.sourceWrapper = wrapper;\n }\n else {\n args.target = obj;\n args.targetWrapper = wrapper;\n }\n args.actualObject = this.eventArgs.actualObject;\n if (args.source instanceof Selector && args.actualObject === undefined &&\n (args.source.nodes.length > 0 || args.source.connectors.length > 0)) {\n args.actualObject = args.source.nodes.length > 0 ? this.diagram.nameTable[args.source.nodes[0].id]\n : this.diagram.nameTable[args.source.connectors[0].id];\n }\n args.startTouches = this.touchStartList;\n args.moveTouches = this.touchMoveList;\n return args;\n };\n /** @private */\n DiagramEventHandler.prototype.resetTool = function () {\n this.action = 'Select';\n this.hoverElement = null;\n this.hoverNode = null;\n this.tool = this.diagram.getTool(this.action);\n this.updateCursor();\n };\n /** @private */\n DiagramEventHandler.prototype.updateTool = function () {\n // 912436: Update Tool at runtime\n if (!this.currentPosition || this.action === 'Pan') {\n this.action = 'Select';\n }\n else {\n this.action = 'Pan';\n }\n };\n /** @private */\n DiagramEventHandler.prototype.getTool = function (action) {\n switch (action) {\n case 'Select':\n return new SelectTool(this.commandHandler, true);\n case 'Drag':\n return new MoveTool(this.commandHandler);\n case 'Rotate':\n return new RotateTool(this.commandHandler);\n case 'LayoutAnimation':\n return new ExpandTool(this.commandHandler);\n case 'FixedUserHandle':\n return new FixedUserHandleTool(this.commandHandler, true);\n case 'Hyperlink':\n return new LabelTool(this.commandHandler);\n case 'ResizeSouthEast':\n case 'ResizeSouthWest':\n case 'ResizeNorthEast':\n case 'ResizeNorthWest':\n case 'ResizeSouth':\n case 'ResizeNorth':\n case 'ResizeWest':\n case 'ResizeEast':\n return new ResizeTool(this.commandHandler, action);\n case 'ConnectorSourceEnd':\n case 'ConnectorTargetEnd':\n case 'BezierSourceThumb':\n case 'BezierTargetThumb':\n return new ConnectTool(this.commandHandler, action);\n case 'SegmentEnd':\n case 'OrthoThumb':\n return new ConnectorEditing(this.commandHandler, action);\n case 'Draw':\n var shape = 'shape';\n var basicShape = 'basicShape';\n var type = findObjectType(this.diagram.drawingObject);\n if (type === 'Node' && this.diagram.drawingObject.shape.type === 'Text') {\n return new TextDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Freehand') {\n return new FreeHandTool(this.commandHandler);\n }\n else if (type === 'Node' && (this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon') &&\n !(this.diagram.drawingObject.shape.points)) {\n return new PolygonDrawingTool(this.commandHandler);\n }\n else if (type === 'Node' ||\n (type === 'Node' && this.diagram.drawingObject.shape[\"\" + shape] === 'Polygon' &&\n (this.diagram.drawingObject.shape.points))) {\n return new NodeDrawingTool(this.commandHandler, this.diagram.drawingObject);\n }\n else if (type === 'Connector' && this.diagram.drawingObject.type === 'Polyline') {\n return new PolyLineDrawingTool(this.commandHandler);\n }\n else if (type === 'Connector') {\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n }\n break;\n case 'Pan':\n return new ZoomPanTool(this.commandHandler, false);\n case 'PinchZoom':\n return new ZoomPanTool(this.commandHandler, true);\n case 'PortDrag':\n return new MoveTool(this.commandHandler, 'Port');\n case 'PortDraw':\n return new ConnectorDrawingTool(this.commandHandler, 'ConnectorSourceEnd', this.diagram.drawingObject);\n case 'LabelSelect':\n return new SelectTool(this.commandHandler, true, 'LabelSelect');\n case 'LabelDrag':\n return new LabelDragTool(this.commandHandler);\n case 'LabelResizeSouthEast':\n case 'LabelResizeSouthWest':\n case 'LabelResizeNorthEast':\n case 'LabelResizeNorthWest':\n case 'LabelResizeSouth':\n case 'LabelResizeNorth':\n case 'LabelResizeWest':\n case 'LabelResizeEast':\n return new LabelResizeTool(this.commandHandler, action);\n case 'LabelRotate':\n return new LabelRotateTool(this.commandHandler);\n //for coverage\n // case 'Custom':\n // return this.diagram.getTool(action);\n }\n return null;\n };\n /** @private */\n DiagramEventHandler.prototype.getCursor = function (action) {\n var object = (this.diagram.selectedItems.annotation) ?\n this.diagram.selectedItems.wrapper.children[0] : this.diagram.selectedItems;\n var rotateAngle = (this.diagram.selectedItems.annotation) ?\n (object.rotateAngle + object.parentTransform) : object.rotateAngle;\n return getCursor(action, rotateAngle);\n };\n //start region - interface betweend diagram and interaction\n /** @private */\n DiagramEventHandler.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.objectFinder.findElementUnderSelectedItem(obj, position, diagram, padding);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectsUnderMouse = function (position, source) {\n return this.objectFinder.findObjectsUnderMouse(position, this.diagram, this.eventArgs, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, this.currentPosition);\n };\n /** @private */\n DiagramEventHandler.prototype.findTargetUnderMouse = function (objects, action, inAction, position, source) {\n return this.objectFinder.findObjectUnderMouse(this.diagram, objects, action, inAction, this.eventArgs, position, source);\n };\n /** @private */\n DiagramEventHandler.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return findToolToActivate(obj, wrapper, this.currentPosition, this.diagram, this.touchStartList, this.touchMoveList, target);\n };\n DiagramEventHandler.prototype.updateContainerBounds = function (isAfterMouseUp) {\n var isGroupAction = false;\n if (this.diagram.selectedObject.helperObject && this.diagram.selectedObject.actualObject) {\n var obj = this.diagram.selectedObject.actualObject;\n var nodes = this.diagram.selectedObject.actualObject instanceof Selector ? obj.nodes : [obj];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n var boundsUpdate = (this.tool instanceof ResizeTool) ? true : false;\n var parentNode = this.diagram.nameTable[node.parentId];\n if (isAfterMouseUp) {\n removeChildInContainer(this.diagram, node, this.currentPosition, boundsUpdate);\n }\n else {\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n this.diagram.updateDiagramObject(node);\n }\n isGroupAction = updateCanvasBounds(this.diagram, node, this.currentPosition, boundsUpdate);\n this.diagram.updateSelector();\n if (node.isLane || node.isPhase) {\n this.diagram.clearSelection();\n this.commandHandler.selectObjects([node]);\n }\n }\n }\n }\n return isGroupAction;\n };\n // tslint:disable-next-line:max-func-body-length\n DiagramEventHandler.prototype.updateContainerProperties = function () {\n var helperObject;\n var isChangeProperties = false;\n var hasStack;\n var connectors;\n var hasGroup = false;\n var obj;\n var history = { hasStack: false, isPreventHistory: false };\n if (this.diagram.selectedObject.helperObject) {\n var objects = this.diagram.findObjectsUnderMouse(this.currentPosition);\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n helperObject = this.diagram.selectedObject.helperObject;\n obj = this.diagram.selectedObject.actualObject;\n if (obj instanceof Node) {\n if (obj.shape.type === 'SwimLane') {\n connectors = getConnectors(this.diagram, obj.wrapper.children[0], 0, true);\n }\n if (obj.shape.type !== 'SwimLane' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane') {\n if (target instanceof Node && this.diagram.getObject(target.parentId) &&\n this.diagram.getObject(target.parentId).shape.type !== 'SwimLane') {\n target = this.diagram.getObject(target.parentId);\n }\n }\n if (this.currentAction === 'Drag' && obj.container && obj.container.type === 'Canvas' && obj.parentId &&\n this.diagram.getObject(obj.parentId).shape.type === 'SwimLane' && target && target !== obj &&\n target.container && target.container.type === 'Canvas' && target.isLane &&\n obj.isLane && target.parentId === obj.parentId) {\n laneInterChanged(this.diagram, obj, target, this.currentPosition);\n history.isPreventHistory = true;\n }\n else {\n var parentNode = this.diagram.nameTable[obj.parentId];\n if (!parentNode || (parentNode && parentNode.shape.type !== 'SwimLane')) {\n if (parentNode && parentNode.isLane && (obj.constraints & NodeConstraints.AllowMovingOutsideLane)) {\n // 915151: Node Becomes Unmovable After Deleting the First Phase\n var swimlane = this.diagram.getObject(parentNode.parentId);\n var x = void 0;\n var y = void 0;\n if (swimlane.shape.orientation === 'Vertical') {\n x = swimlane.wrapper.bounds.x + swimlane.shape.phaseSize;\n y = swimlane.wrapper.bounds.y + swimlane.shape.header.height;\n }\n else {\n var header = swimlane.shape.header.height +\n swimlane.shape.phaseSize;\n x = swimlane.wrapper.bounds.x;\n y = swimlane.wrapper.bounds.y + header;\n }\n var width = swimlane.wrapper.bounds.bottomRight.x - x;\n var height = swimlane.wrapper.bounds.bottomRight.y - y;\n var swimlaneBounds = new Rect(x, y, width, height);\n if (swimlaneBounds.containsPoint(this.currentPosition)) {\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n obj.rotateAngle = helperObject.rotateAngle;\n }\n }\n else {\n // 902192: Diagram node resized wrongly while dragging with multiple selection Inside a swimlane Issue Fix\n if (this.diagram.selectedItems.nodes.length === 1) {\n // Single node move with helper\n obj.offsetX = helperObject.offsetX;\n obj.offsetY = helperObject.offsetY;\n if (obj && obj.shape && obj.shape.type !== 'UmlClassifier') {\n obj.width = helperObject.width;\n obj.height = helperObject.height;\n }\n obj.rotateAngle = helperObject.rotateAngle;\n }\n else if (this.diagram.selectedItems.nodes.length > 1) {\n // Multi selected node move with helper\n var offsetX = (helperObject.offsetX - this.diagram.selectedItems.offsetX);\n var offsetY = (helperObject.offsetY - this.diagram.selectedItems.offsetY);\n var rotateAngle = (helperObject.rotateAngle - this.diagram.selectedItems.rotateAngle);\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX += offsetX;\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY += offsetY;\n this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)].rotateAngle += rotateAngle;\n }\n }\n }\n }\n var undoElement = void 0;\n if (parentNode && parentNode.container && parentNode.container.type === 'Stack') {\n this.diagram.startGroupAction();\n hasGroup = true;\n }\n if (!target && parentNode && parentNode.container && parentNode.container.type === 'Stack' && this.action === 'Drag') {\n var index = parentNode.wrapper.children.indexOf(obj.wrapper);\n undoElement = { targetIndex: undefined, target: undefined, sourceIndex: index, source: clone(obj) };\n if (index > -1) {\n var children = parentNode.children;\n children.splice(children.indexOf(obj.id), 1);\n this.diagram.nameTable[obj.id].parentId = '';\n hasStack = true;\n parentNode.wrapper.children.splice(index, 1);\n }\n }\n moveChildInStack(obj, target, this.diagram, this.action);\n parentNode = checkParentAsContainer(this.diagram, obj) ? this.diagram.nameTable[obj.parentId] :\n (this.diagram.nameTable[obj.parentId] || obj);\n if (parentNode && parentNode.container && parentNode.container.type === 'Canvas') {\n parentNode.wrapper.maxWidth = parentNode.maxWidth = parentNode.wrapper.actualSize.width;\n parentNode.wrapper.maxHeight = parentNode.maxHeight = parentNode.wrapper.actualSize.height;\n isChangeProperties = true;\n }\n if (checkParentAsContainer(this.diagram, obj, true) && parentNode && parentNode.container.type === 'Canvas') {\n if (this.diagram.selectedItems.nodes.length > 1) {\n // 902192: Diagram node resized wrongly while dragging with multiple selection Inside a swimlane Issue Fix\n for (var i = 0; i < this.diagram.selectedItems.nodes.length; i++) {\n checkChildNodeInContainer(this.diagram, this.diagram.selectedItems.nodes[parseInt(i.toString(), 10)]);\n }\n }\n else {\n checkChildNodeInContainer(this.diagram, obj);\n }\n }\n else {\n history = this.updateContainerPropertiesExtend(parentNode, obj, connectors, helperObject, history);\n }\n if ((this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting))\n && (!checkParentAsContainer(this.diagram, obj, true))) {\n if (obj.children) {\n this.diagram.realActions |= RealAction.EnableGroupAction;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n width: obj.width, height: obj.height,\n offsetX: obj.offsetX, offsetY: obj.offsetY\n });\n if (obj.children) {\n this.diagram.realActions &= ~RealAction.EnableGroupAction;\n }\n }\n if (obj.shape.lanes) {\n this.updateLaneChildNode(obj);\n }\n if (isChangeProperties) {\n parentNode.maxWidth = parentNode.wrapper.maxWidth = undefined;\n parentNode.maxHeight = parentNode.wrapper.maxHeight = undefined;\n }\n if (hasStack) {\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY, width: parentNode.width, height: parentNode.height,\n rotateAngle: parentNode.rotateAngle\n });\n var entry = {\n redoObject: { sourceIndex: undefined, source: undoElement.source },\n type: 'StackChildPositionChanged', undoObject: undoElement, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.diagram.addHistoryEntry(entry);\n }\n }\n if (obj && obj.container && (obj.container.type === 'Stack' ||\n (obj.container.type === 'Canvas' && obj.parentId === ''))) {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = false;\n }\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n history.hasStack = hasGroup;\n }\n // Bug:914714 Drag Drop Multi selected nodes between lanes.\n else if (obj instanceof Selector) {\n var offsetX = (helperObject.offsetX - obj.offsetX);\n var offsetY = (helperObject.offsetY - obj.offsetY);\n var rotateAngle = (helperObject.rotateAngle - obj.rotateAngle);\n var width = (helperObject.width - obj.width);\n var height = (helperObject.height - obj.height);\n for (var i = 0; i < obj.nodes.length; i++) {\n var node = obj.nodes[parseInt(i.toString(), 10)];\n var parentNode = this.diagram.nameTable[node.parentId];\n if (parentNode && parentNode.shape.type !== 'SwimLane' && checkParentAsContainer(this.diagram, node, true)\n && parentNode.container.type === 'Canvas') {\n node.offsetX += offsetX;\n node.offsetY += offsetY;\n if (node && node.shape && node.shape.type !== 'UmlClassifier') {\n node.width += width;\n node.height += height;\n }\n node.rotateAngle += rotateAngle;\n checkChildNodeInContainer(this.diagram, node);\n }\n }\n }\n }\n if (obj && (obj.isPhase || obj.isLane ||\n (obj.shape && obj.shape.type === 'SwimLane'))) {\n this.diagram.updateDiagramElementQuad();\n }\n return history;\n };\n DiagramEventHandler.prototype.updateLaneChildNode = function (obj) {\n for (var i = 0; i < (obj.shape.lanes.length); i++) {\n if (obj.shape.lanes[parseInt(i.toString(), 10)].children\n && obj.shape.lanes[parseInt(i.toString(), 10)].children.length > 0) {\n for (var j = 0; j < obj.shape.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n var id = obj.shape.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)].id;\n var childNode = this.diagram.nameTable[\"\" + id];\n //828489 - Exception occurs while dragging swimlane after adding shape & undo action is performed\n if (childNode) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n }\n }\n }\n };\n DiagramEventHandler.prototype.updateContainerPropertiesExtend = function (parentNode, obj, connectors, helperObject, history) {\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth' || obj.shape.type === 'SwimLane') {\n var undoObj = cloneObject(obj);\n var isUpdateRow = false;\n if (parentNode && parentNode.container && parentNode.container.type === 'Grid') {\n var shape = parentNode.shape.type === 'SwimLane' ? true : false;\n var container = (shape ? parentNode.wrapper.children[0] : parentNode.wrapper);\n var padding = shape ? parentNode.shape.padding : undefined;\n var x = parentNode.wrapper.bounds.x;\n var y = parentNode.wrapper.bounds.y;\n if (obj.columnIndex !== undefined && (parentNode.container.orientation === 'Horizontal' &&\n ((shape && obj.isPhase) || (!shape && obj.rowIndex === 1))) ||\n (parentNode.container.orientation === 'Vertical' &&\n ((!shape && obj.rowIndex > 0 && obj.columnIndex > 0) || (shape && obj.isLane)))) {\n if (parentNode.container.orientation === 'Horizontal' && obj.isPhase && obj.wrapper.width > obj.maxWidth) {\n obj.maxWidth = obj.wrapper.width;\n obj.wrapper.maxWidth = obj.wrapper.width;\n }\n // 910832 - Lane height updating to negative values wrongly during resizing\n container.updateColumnWidth(obj.columnIndex, helperObject.width, true, padding);\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n if (obj.isPhase) {\n var id = parentNode.shape.phases[obj.columnIndex].header.id;\n var node = this.diagram.nameTable[\"\" + id];\n if (node.maxWidth < helperObject.width) {\n node.maxWidth = helperObject.width;\n node.wrapper.maxWidth = helperObject.width;\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.width = (parentNode.width) ? container.width : parentNode.width;\n updateHeaderMaxWidth(this.diagram, parentNode);\n parentNode.wrapper.width = parentNode.width;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, false);\n }\n }\n else if (obj.rowIndex !== undefined) {\n isUpdateRow = true;\n // 910832 - Lane height updating to negative values wrongly during resizing\n container.updateRowHeight(obj.rowIndex, helperObject.height, true, padding);\n updateSwimLaneObject(this.diagram, obj, parentNode, helperObject);\n if (parentNode.shape.type === 'SwimLane') {\n parentNode.height = (parentNode.height) ? container.height : parentNode.height;\n parentNode.wrapper.height = parentNode.height;\n connectors = getConnectors(this.diagram, container, obj.rowIndex, true);\n }\n }\n if (parentNode.shape.type === 'SwimLane') {\n history.isPreventHistory = true;\n }\n this.diagram.nodePropertyChange(parentNode, {}, {\n offsetX: parentNode.offsetX, offsetY: parentNode.offsetY,\n rotateAngle: parentNode.rotateAngle\n });\n this.diagram.drag(parentNode, x - parentNode.wrapper.bounds.x, y - parentNode.wrapper.bounds.y);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, {}, {\n offsetX: obj.offsetX, offsetY: obj.offsetY, width: obj.width, height: obj.height, rotateAngle: obj.rotateAngle\n });\n obj.wrapper.measureChildren = false;\n }\n obj.wrapper.measure(new Size(obj.wrapper.width, obj.wrapper.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (this.currentAction === 'ResizeEast' || this.currentAction === 'ResizeSouth') {\n var redoObject = cloneObject(obj);\n var entry = {\n category: 'Internal',\n type: (isUpdateRow) ? 'RowHeightChanged' : 'ColumnWidthChanged',\n undoObject: undoObj, redoObject: redoObject\n };\n this.diagram.addHistoryEntry(entry);\n }\n }\n updateConnectorsProperties(connectors, this.diagram);\n return history;\n };\n DiagramEventHandler.prototype.addUmlNode = function () {\n var node = this.diagram.selectedItems.nodes[0];\n var objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x + 20, y: this.currentPosition.y });\n var target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n var attribute;\n var method;\n if (!target) {\n objects = this.diagram.findObjectsUnderMouse({ x: this.currentPosition.x - 20, y: this.currentPosition.y });\n target = this.diagram.findObjectUnderMouse(objects, this.action, this.inAction);\n }\n if (node && node.container && node.container.type === 'Stack' && target && target.parentId\n && target.parentId === node.id) {\n var innerNode = target;\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n var index = node.wrapper.children.indexOf(target.wrapper) + 1;\n this.diagram.enableServerDataBinding(false);\n var temp = new Node(this.diagram, 'nodes', {\n style: {\n fill: node.style.fill,\n strokeColor: (node.style.strokeColor === 'black') ? '#ffffff00' : node.style.strokeColor\n },\n annotations: target.annotations, verticalAlignment: 'Stretch', horizontalAlignment: 'Stretch',\n constraints: (NodeConstraints.Default | NodeConstraints.HideThumbs) & ~(NodeConstraints.Rotate | NodeConstraints.Drag | NodeConstraints.Resize),\n minHeight: 25\n }, true);\n temp.annotations[0].content = ' + Name : Type';\n var id = innerNode.id.split('_');\n temp.id = randomId() + temp.id;\n temp.parentId = node.id;\n temp.zIndex = -1;\n temp.umlIndex = index;\n this.diagram.startGroupAction();\n var child = { name: 'Name', type: 'Type' };\n //While dynamically adding nodes at runtime using the isSeparator highlighter, make sure to include the newly added nodes in the existing arrays of the UML node for the respective child types.\n if (node.shape.classifier === 'Class') {\n if (target.id.includes('_umlProperty') && node.shape.classShape.attributes.length > 0) {\n attribute = new UmlClassAttribute(node, '', child);\n node.shape.classShape.attributes.push(attribute);\n }\n else if (target.id.includes('_umlMethods') && node.shape.classShape.methods.length > 0) {\n method = new UmlClassMethod(node, '', child);\n node.shape.classShape.methods.push(method);\n }\n }\n if (node.shape.classifier === 'Interface') {\n if (target.id.includes('_umlProperty') && node.shape.interfaceShape.attributes.length > 0) {\n attribute = new UmlClassAttribute(node, '', child);\n node.shape.classShape.attributes.push(attribute);\n }\n else if (target.id.includes('_umlMethods') && node.shape.interfaceShape.methods.length > 0) {\n method = new UmlClassMethod(node, '', child);\n node.shape.interfaceShape.methods.push(method);\n }\n }\n if (node.shape.classifier === 'Enumeration') {\n if (target.id.includes('_umlMember') && node.shape.enumerationShape.members.length > 0) {\n var member = new UmlEnumerationMember(node, '', child);\n node.shape.enumerationShape.members.push(member);\n }\n }\n var redoElement = {\n sourceIndex: node.wrapper.children.indexOf(temp.wrapper), source: temp,\n target: undefined, targetIndex: undefined\n };\n this.diagram.enableServerDataBinding(true);\n this.diagram.add(temp);\n this.diagram.updateConnectorEdges(node);\n this.diagram.clearSelection();\n this.diagram.select([this.diagram.nameTable[temp.id]]);\n this.diagram.endGroupAction();\n this.diagram.startTextEdit();\n }\n }\n };\n return DiagramEventHandler;\n}());\nexport { DiagramEventHandler };\n/** @private */\nvar ObjectFinder = /** @class */ (function () {\n function ObjectFinder() {\n }\n /** @private */\n ObjectFinder.prototype.findObjectsUnderMouse = function (pt, diagram, eventArgs, source, actions) {\n // finds the collection of the object that is under the mouse;\n var actualTarget = [];\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n if (source.children && source.children.length === 0) {\n eventArgs.actualObject = source;\n }\n }\n }\n var container;\n var bounds;\n var child;\n var matrix;\n var endPadding = (source && (source instanceof Connector) &&\n ((source.constraints & ConnectorConstraints.ConnectToNearByNode) ||\n (source.constraints & ConnectorConstraints.ConnectToNearByPort)) && source.connectionPadding) || 0;\n var objArray = diagram.spatialSearch.findObjects(new Rect(pt.x - 50 - endPadding, pt.y - 50 - endPadding, 100 + endPadding, 100 + endPadding));\n var layerObjTable = {};\n var layerTarger;\n for (var _i = 0, objArray_1 = objArray; _i < objArray_1.length; _i++) {\n var obj = objArray_1[_i];\n var point = pt;\n bounds = obj.wrapper.outerBounds;\n var pointInBounds = (obj.rotateAngle) ? false : bounds.containsPoint(point, endPadding);\n if ((obj !== source || diagram.currentDrawingObject instanceof Connector) &&\n (obj instanceof Connector) ? obj !== diagram.currentDrawingObject : true && obj.wrapper.visible) {\n var layer = diagram.commandHandler.getObjectLayer(obj.id);\n if (layer && !layer.lock && layer.visible) {\n layerTarger = layerObjTable[layer.zIndex] = layerObjTable[layer.zIndex] || [];\n if (obj.rotateAngle) {\n container = obj.wrapper;\n bounds = cornersPointsBeforeRotation(container);\n for (var _a = 0, _b = container.children; _a < _b.length; _a++) {\n child = _b[_a];\n matrix = identityMatrix();\n rotateMatrix(matrix, -(child.rotateAngle + child.parentTransform), child.offsetX, child.offsetY);\n point = transformPointByMatrix(matrix, pt);\n if (cornersPointsBeforeRotation(child).containsPoint(point, endPadding)) {\n pointInBounds = true;\n }\n }\n }\n if (!source || (isSelected(diagram, obj) === false)) {\n if (canEnablePointerEvents(obj, diagram)) {\n if ((obj instanceof Connector) ? isPointOverConnector(obj, pt) : pointInBounds) {\n var padding = (obj instanceof Connector) ? obj.hitPadding || 0 : 0; //let element: DiagramElement;\n var element = this.findElementUnderMouse(obj, pt, diagram, endPadding || padding);\n if (element && obj.id !== 'helper') {\n insertObject(obj, 'zIndex', layerTarger);\n }\n }\n }\n }\n }\n }\n }\n for (var _c = 0, _d = diagram.layers; _c < _d.length; _c++) {\n var layer = _d[_c];\n actualTarget = actualTarget.concat(layerObjTable[layer.zIndex] || []);\n for (var _e = 0, actualTarget_1 = actualTarget; _e < actualTarget_1.length; _e++) {\n var obj = actualTarget_1[_e];\n var eventHandler = 'eventHandler';\n if (obj.shape.type === 'Bpmn' && obj.processId && (!(diagram[\"\" + eventHandler].tool instanceof MoveTool) ||\n (diagram[\"\" + eventHandler].tool instanceof MoveTool) && canAllowDrop(obj))) {\n var index = actualTarget.indexOf(diagram.nameTable[obj.processId]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n if (obj.shape.type === 'UmlClassifier' && obj.container && obj.container.type === 'Stack') {\n var index = actualTarget.indexOf(diagram.nameTable[diagram.nameTable[obj.id].wrapper.children[0].id]);\n if (index > -1) {\n actualTarget.splice(index, 1);\n }\n }\n }\n }\n for (var i = 0; i < actualTarget.length; i++) {\n var parentObj = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentObj) {\n var portElement = this.findElementUnderMouse(parentObj, pt, diagram);\n for (var j = 0; j < parentObj.ports.length; j++) {\n if (portElement && portElement.id.match('_' + parentObj.ports[parseInt(j.toString(), 10)].id + '$')) {\n var port = parentObj.ports[parseInt(j.toString(), 10)];\n if (canDrag(port, diagram) || canDraw(port, diagram)) {\n return actualTarget;\n }\n }\n }\n }\n while (parentObj) {\n var index = actualTarget.indexOf(parentObj);\n if (index !== -1) {\n actualTarget.splice(index, 1);\n }\n else {\n break;\n }\n parentObj = diagram.nameTable[parentObj.parentId];\n }\n }\n this.checkSwimlane(actualTarget, diagram);\n if (eventArgs && !eventArgs.source) {\n for (var i = 0; i < actualTarget.length; i++) {\n var parentNode = diagram.nameTable[actualTarget[parseInt(i.toString(), 10)].parentId];\n if (parentNode && parentNode.shape.type === 'SwimLane') {\n for (var j = 0; j < actualTarget.length; j++) {\n var connector = actualTarget[parseInt(j.toString(), 10)];\n if (connector instanceof Connector) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n }\n return actualTarget;\n };\n /** @private */\n ObjectFinder.prototype.checkSwimlane = function (actualTarget, diagram) {\n var isNode;\n for (var m = 0; m < actualTarget.length; m++) {\n var obj = actualTarget[parseInt(m.toString(), 10)];\n var parentNode = void 0;\n var node = void 0;\n if (obj instanceof Node) {\n parentNode = actualTarget[parseInt(m.toString(), 10)].parentId;\n node = obj;\n }\n if (parentNode === '') {\n if (node.shape.type !== 'SwimLane') {\n isNode = true;\n }\n else {\n isNode = false;\n }\n }\n var parent_2 = diagram.nameTable[\"\" + parentNode];\n if (parent_2 && parent_2.isLane && diagram.nameTable[parent_2.parentId].zIndex > obj.zIndex) {\n actualTarget[parseInt(m.toString(), 10)] = parent_2;\n }\n if (m > 0 && isNode && node && (node.isLane || node.isPhase || node.isHeader)) {\n if (actualTarget[parseInt(m.toString(), 10)].zIndex < actualTarget[m - 1].zIndex) {\n var swap = actualTarget[parseInt(m.toString(), 10)];\n actualTarget[parseInt(m.toString(), 10)] = actualTarget[m - 1];\n actualTarget[m - 1] = swap;\n }\n }\n }\n if (actualTarget.length >= 2) {\n var parent_3 = '';\n for (var i = actualTarget.length - 1; i >= 0; i--) {\n if (actualTarget[parseInt(i.toString(), 10)].parentId) {\n var parent1 = findParentInSwimlane(actualTarget[parseInt(i.toString(), 10)], diagram, parent_3);\n var parent2 = findParentInSwimlane(actualTarget[i - 1], diagram, parent_3);\n var parentNode1 = diagram.nameTable[\"\" + parent1];\n var parentNode2 = diagram.nameTable[\"\" + parent2];\n if (parentNode2 && parent1 !== parent2 && parentNode1.zIndex < parentNode2.zIndex) {\n actualTarget.splice(i, 1);\n }\n }\n }\n }\n };\n /** @private */\n ObjectFinder.prototype.isTarget = function (actualTarget, diagram, action) {\n var connector = diagram.selectedItems.connectors[0];\n var node;\n node = action === 'ConnectorSourceEnd' ? diagram.nameTable[connector.targetID] :\n node = diagram.nameTable[connector.sourceID];\n if (node && !(node.processId && !actualTarget.processId\n || node.processId !== actualTarget.processId)) {\n if (node.processId !== actualTarget.processId) {\n actualTarget = null;\n }\n if (actualTarget && actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n if (action === 'ConnectorSourceEnd' && connector.targetID) {\n var targetNode = diagram.nameTable[connector.targetID];\n if (targetNode && targetNode.shape && (targetNode.shape.shape === 'TextAnnotation')) {\n var id = connector.id.split('_');\n if (((targetNode.shape.type === 'Bpmn') && actualTarget.shape.type !== 'Bpmn') || (id[0] === actualTarget.id) ||\n actualTarget.shape.shape === 'TextAnnotation') {\n actualTarget = null;\n }\n if (actualTarget && actualTarget.parentId &&\n diagram.nameTable[actualTarget.parentId].shape.type === 'UmlClassifier') {\n actualTarget = diagram.nameTable[actualTarget.parentId];\n }\n }\n }\n return actualTarget;\n };\n /* tslint:disable */\n /** @private */\n ObjectFinder.prototype.findObjectUnderMouse = function (diagram, objects, action, inAction, eventArg, position, source) {\n //we will get the wrapper object here\n //we have to choose the object to be interacted with from the given wrapper\n //Find the object that is under mouse\n var eventHandler = 'eventHandler';\n var endPoint = 'endPoint';\n var inPort;\n var outPort;\n var actualTarget = null;\n if (objects.length !== 0) {\n if (source && source instanceof Selector) {\n if (source.nodes.length + source.connectors.length === 1) {\n source = (source.nodes[0] || source.connectors[0]);\n }\n }\n if ((action === 'ConnectorSourceEnd' && source || action === 'PortDraw') ||\n ((canDrawOnce(diagram) || canContinuousDraw(diagram)) && getObjectType(diagram.drawingObject) === Connector)) {\n var connector = diagram.selectedItems.connectors[0];\n for (var i = objects.length - 1; i >= 0; i--) {\n outPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], false);\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n var tool = diagram[\"\" + eventHandler].tool;\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, diagram, undefined);\n if (action === 'Draw' && portElement && (objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector) && !checkPort(objects[parseInt(i.toString(), 10)], portElement)) {\n if (((tool && tool[\"\" + endPoint] === 'ConnectorSourceEnd') && !canOutConnect(objects[parseInt(i.toString(), 10)])) ||\n ((tool && tool[\"\" + endPoint] === 'ConnectorTargetEnd') && !canInConnect(objects[parseInt(i.toString(), 10)]))) {\n return actualTarget;\n }\n }\n // eslint-disable-next-line max-len\n if ((objects[parseInt(i.toString(), 10)] instanceof Node) || (objects[parseInt(i.toString(), 10)] instanceof Connector) && ((canOutConnect(objects[parseInt(i.toString(), 10)]) || (canPortOutConnect(outPort)) || canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort))) ||\n (action === 'PortDraw' && (tool instanceof ConnectTool) && tool[\"\" + endPoint] === 'ConnectorTargetEnd' &&\n (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n if (connector) {\n actualTarget = this.isTarget(actualTarget, diagram, action);\n }\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (action === 'ConnectorTargetEnd' && source) {\n for (var i = objects.length - 1; i >= 0; i--) {\n inPort = getInOutConnectPorts(objects[parseInt(i.toString(), 10)], true);\n if ((objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector)\n && (canInConnect(objects[parseInt(i.toString(), 10)]) || (canPortInConnect(inPort)))) {\n actualTarget = objects[parseInt(i.toString(), 10)];\n actualTarget = this.isTarget(actualTarget, diagram, action);\n eventArg.actualObject = actualTarget;\n return actualTarget;\n }\n }\n }\n else if (source && (action === 'Drag' || (diagram[\"\" + eventHandler].tool instanceof MoveTool))) {\n var index = 0;\n for (var i = 0; i < objects.length; i++) {\n var temp = objects[parseInt(i.toString(), 10)];\n if (source !== temp && (temp instanceof Connector ||\n !position || temp.wrapper.bounds.containsPoint(position))) {\n if (canAllowDrop(temp)) {\n if (!actualTarget) {\n actualTarget = temp;\n index = actualTarget.zIndex;\n }\n else {\n actualTarget = index >= temp.zIndex ? actualTarget : temp;\n index = Math.max(index, temp.zIndex);\n }\n }\n }\n }\n if (actualTarget && actualTarget.shape.type === 'Bpmn') {\n if (diagram.selectedItems.nodes.length > 0 && diagram.selectedItems.nodes[0].shape.type === 'Bpmn') {\n // eslint-disable-next-line no-self-assign\n actualTarget = actualTarget;\n }\n else {\n actualTarget = null;\n }\n }\n if (actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n return actualTarget;\n }\n else if ((action === 'Select' || action === 'Pan') && diagram[\"\" + eventHandler].tool) {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var objj1 = objects[i - 1];\n if (objects[i - 1] instanceof Node && objj1.ports) {\n var portElement = this.findTargetElement(objj1.wrapper, position, diagram, undefined);\n if ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$')))) {\n return objj1;\n }\n for (var j = 0; j < objj1.ports.length; j++) {\n if (portElement && portElement.id.match('_' + objj1.ports[parseInt(j.toString(), 10)].id + '$')) {\n if (canDraw(objj1.ports[parseInt(j.toString(), 10)], diagram)) {\n return objj1;\n }\n }\n }\n }\n }\n }\n actualTarget = objects[objects.length - 1];\n eventArg.actualObject = actualTarget;\n if (!diagram[\"\" + eventHandler].itemClick(actualTarget, true)) {\n if (actualTarget.parentId) {\n var obj = actualTarget;\n var selected = isSelected(diagram, obj);\n while (obj) {\n if (isSelected(diagram, obj) && !selected) {\n break;\n }\n actualTarget = obj;\n // 912178-Tooltip for node is not shown when grouped at runtime\n if (obj.tooltip.content !== '') {\n break;\n }\n obj = diagram.nameTable[obj.parentId];\n }\n }\n }\n }\n else if (action === 'Pan' || action === 'LayoutAnimation') {\n for (var i = objects.length - 1; i >= 0; i--) {\n if (objects[parseInt(i.toString(), 10)] instanceof Node || objects[parseInt(i.toString(), 10)] instanceof Connector) {\n var portElement = this.findTargetElement(objects[parseInt(i.toString(), 10)].wrapper, position, diagram, undefined);\n if ((action === 'Pan') || ((portElement && (portElement.id.match('_icon_content_shape$') || portElement.id.match('_icon_content_rect$'))))) {\n return objects[parseInt(i.toString(), 10)];\n }\n }\n }\n }\n else {\n actualTarget = objects[objects.length - 1];\n if (eventArg && actualTarget) {\n eventArg.actualObject = actualTarget;\n }\n }\n }\n return actualTarget;\n };\n /* tslint:enable */\n /** @private */\n ObjectFinder.prototype.findElementUnderSelectedItem = function (obj, position, diagram, padding) {\n //rewrite this for multiple selection\n if (obj instanceof Selector) {\n if (obj.nodes.length === 1 && (!obj.connectors || !obj.connectors.length)) {\n return this.findElementUnderMouse(obj.nodes[0], position, diagram);\n }\n else if ((!obj.nodes || obj.nodes.length) && obj.connectors.length === 1) {\n return this.findElementUnderMouse(obj.connectors[0], position, diagram);\n }\n }\n else {\n return this.findElementUnderMouse(obj, position, diagram, padding);\n }\n return null;\n };\n ObjectFinder.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.findTargetElement(obj.wrapper, position, diagram, padding);\n };\n /** @private */\n ObjectFinder.prototype.findTargetElement = function (container, position, diagram, padding) {\n for (var i = container.children.length - 1; i >= 0; i--) {\n var element = container.children[parseInt(i.toString(), 10)];\n //Checking whether the annotation is visible or not\n if (element && element.outerBounds.containsPoint(position, padding || 0)) {\n if (element.visible) {\n if (element instanceof Container) {\n var target = this.findTargetElement(element, position, diagram);\n if (target) {\n return target;\n }\n }\n //EJ2-69047 - Node selection is improper while adding annotation for multiple nodes\n //Checked textOverflow property to avoid the selection of text element with clip and ellipsis;\n var textOverflow = (element.style.textOverflow === 'Clip' || element.style.textOverflow === 'Ellipsis');\n if (element.bounds.containsPoint(position, padding || 0) && !textOverflow) {\n return element;\n }\n else if (container.bounds.containsPoint(position, padding || 0) && textOverflow) {\n // 913240 - Tooltip for annotation not visible while text overflow sets to Clip or Ellipsis\n return element;\n }\n }\n //(EJ2-840331)Double click on node annotation will open the edit of invisible annotation\n else if (element instanceof PathElement && container && container.id) {\n var getNode = void 0;\n if (container.id.includes('group_container')) {\n var getId = container.id.slice(0, -15);\n getNode = diagram.getObject(getId);\n }\n else {\n getNode = diagram.getObject(container.id);\n }\n var port = findPort(getNode, element.id);\n // 913000: Connector not connected to port when visibility hidden\n if (port) {\n return element;\n }\n }\n }\n }\n if (container.bounds.containsPoint(position, padding) && container.style.fill !== 'none') {\n return container;\n }\n return null;\n };\n return ObjectFinder;\n}());\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar Layer = /** @class */ (function (_super) {\n __extends(Layer, _super);\n // tslint:disable-next-line:no-any\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function Layer(parent, propName, defaultValue, isArray) {\n var _this = _super.call(this, parent, propName, defaultValue, isArray) || this;\n /** @private */\n _this.objectZIndex = -1;\n /** @private */\n _this.zIndexTable = {};\n _this.objects = [];\n return _this;\n }\n __decorate([\n Property('')\n ], Layer.prototype, \"id\", void 0);\n __decorate([\n Property(true)\n ], Layer.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], Layer.prototype, \"lock\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"objects\", void 0);\n __decorate([\n Property()\n ], Layer.prototype, \"addInfo\", void 0);\n __decorate([\n Property(-1)\n ], Layer.prototype, \"zIndex\", void 0);\n return Layer;\n}(ChildProperty));\nexport { Layer };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { Connector, getBezierPoints, isEmptyVector } from '../objects/connector';\nimport { Node, BpmnSubEvent, Native } from '../objects/node';\nimport { PathElement } from '../core/elements/path-element';\nimport { TextElement } from '../core/elements/text-element';\nimport { OrthogonalSegment } from '../objects/connector';\nimport { Rect } from '../primitives/rect';\nimport { Diagram } from '../../diagram/diagram';\nimport { identityMatrix, rotateMatrix, transformPointByMatrix, scaleMatrix } from './../primitives/matrix';\nimport { cloneObject as clone, cloneObject, getBounds, getFunction } from './../utility/base-util';\nimport { completeRegion, sort, findObjectIndex, intersect3, getAnnotationPosition, findParentInSwimlane, findPortIndex } from './../utility/diagram-util';\nimport { updatePathElement, cloneBlazorObject, getUserHandlePosition, cloneSelectedObjects } from './../utility/diagram-util';\nimport { randomId, cornersPointsBeforeRotation } from './../utility/base-util';\nimport { Selector } from '../objects/node';\nimport { hasSelection, isSelected, hasSingleConnection, contains } from './actions';\nimport { DiagramEvent, ConnectorConstraints, BezierSmoothness } from '../enum/enum';\nimport { BlazorAction } from '../enum/enum';\nimport { canSelect, canMove, canRotate, canDragSourceEnd, canDragTargetEnd, canSingleSelect, canDrag } from './../utility/constraints-util';\nimport { canMultiSelect, canContinuousDraw, canInConnect, canOutConnect } from './../utility/constraints-util';\nimport { canPanX, canPanY, canPageEditable } from './../utility/constraints-util';\nimport { SnapConstraints, DiagramTools, DiagramAction, RealAction } from '../enum/enum';\nimport { getDiagramElement, getAdornerLayerSvg, getHTMLLayer, getAdornerLayer, getSelectorElement, setAttributeHtml } from '../utility/dom-util';\nimport { Point } from '../primitives/point';\nimport { Size } from '../primitives/size';\nimport { getObjectType, getPoint, intersect2, getOffsetOfConnector, canShowCorner } from './../utility/diagram-util';\nimport { selectionHasConnector } from './../utility/diagram-util';\nimport { Layer } from '../diagram/layer';\nimport { SelectorConstraints, DiagramConstraints } from '../enum/enum';\nimport { remove, isBlazor, isNullOrUndefined, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { getOppositeDirection, getPortDirection, findAngle } from './../utility/connector';\nimport { swapBounds, findPoint, orthoConnection2Segment, getIntersection } from './../utility/connector';\nimport { ShapeAnnotation, PathAnnotation } from '../objects/annotation';\nimport { Port } from '../objects/port';\nimport { renderContainerHelper } from './container-interaction';\nimport { checkChildNodeInContainer, checkParentAsContainer, addChildToContainer } from './container-interaction';\nimport { renderStackHighlighter } from './container-interaction';\nimport { getConnectors, updateConnectorsProperties, canLaneInterchange, findLane } from './../utility/swim-lane-util';\nimport { swimLaneSelection, pasteSwimLane, gridSelection } from '../utility/swim-lane-util';\n/**\n * Defines the behavior of commands\n */\nvar CommandHandler = /** @class */ (function () {\n function CommandHandler(diagram) {\n /** @private */\n this.clipboardData = {};\n // private newNodeObject: Object[] = [];\n // private newConnectorObject: Object[] = [];\n /** @private */\n this.diagramObject = {};\n /** @private */\n this.newSelectedObjects = {};\n /** @private */\n this.oldSelectedObjects = {};\n /** @private */\n this.changedNodeZIndexes = {};\n /** @private */\n this.connectorsTable = [];\n /** @private */\n this.PreventConnectorSplit = false;\n /** @private */\n this.processTable = {};\n /** @private */\n this.isContainer = false;\n /** @private */\n this.canUpdateTemplate = false;\n this.childTable = {};\n this.objectStore = [];\n this.parentTable = {};\n this.blazor = 'Blazor';\n this.blazorInterop = 'sfBlazor';\n this.cloneGroupChildCollection = [];\n this.moveSBObject = function (targetId) {\n if (targetId) {\n this.moveBackUndoNode(targetId);\n }\n };\n //The below method is for undo process for sendBackward command\n this.moveBackUndoNode = function (targetId) {\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var sortedNodeIds = Object.keys(originalZIndexTable).sort(function (a, b) { return originalZIndexTable[\"\" + a] - originalZIndexTable[\"\" + b]; });\n var currentIndex = sortedNodeIds.indexOf(targetId);\n //This method moves the node/connector based on their zindex\n if (currentIndex !== -1) {\n if (currentIndex === sortedNodeIds.length - 1) {\n var nextNodeId = sortedNodeIds[currentIndex - 1];\n this.swapDomOrder(nextNodeId, targetId);\n }\n else {\n var nextNodeId = sortedNodeIds[currentIndex + 1];\n var backNode = void 0;\n if (nextNodeId) {\n var node = this.diagram.getObject(targetId);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetId, nextNodeId);\n }\n else {\n var diagramDiv = getDiagramElement(targetId + '_groupElement', this.diagram.element.id);\n backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n var target = this.diagram.getObject(targetId);\n var newnode = this.diagram.getObject(nextNodeId);\n if (newnode.parentId && newnode.parentId !== target.parentId) {\n backNode = getDiagramElement(newnode.parentId + '_groupElement', this.diagram.element.id);\n }\n if (target.parentId !== newnode.id) {\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n }\n }\n }\n }\n }\n };\n this.moveFBObject = function (targetId) {\n if (targetId) {\n this.moveForwardUndoNode(targetId);\n }\n };\n //The below method is for undo process for moveForward command\n this.moveForwardUndoNode = function (targetID) {\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var sortedNodeIds = Object.keys(originalZIndexTable).sort(function (a, b) { return originalZIndexTable[\"\" + a] - originalZIndexTable[\"\" + b]; });\n var currentIndex = sortedNodeIds.indexOf(targetID);\n //This method moves the node/connector based on their zindex\n if (currentIndex !== -1) {\n if (currentIndex === sortedNodeIds.length - 1) {\n var nextNodeId = sortedNodeIds[currentIndex - 1];\n this.swapDomOrder(nextNodeId, targetID);\n }\n else {\n var nextNodeId = sortedNodeIds[currentIndex + 1];\n if (nextNodeId) {\n var node = this.diagram.getObject(targetID);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetID, nextNodeId);\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n }\n }\n }\n }\n };\n this.diagram = diagram;\n }\n Object.defineProperty(CommandHandler.prototype, \"snappingModule\", {\n /** @private */\n get: function () {\n return this.diagram.snappingModule;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CommandHandler.prototype, \"layoutAnimateModule\", {\n /** @private */\n get: function () {\n return this.diagram.layoutAnimateModule;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * startTransaction method\\\n *\n * @returns { void } startTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.startTransaction = function (protectChange) {\n this.state = { element: this.diagram.selectedItems, backup: null };\n if (protectChange) {\n this.diagram.protectPropertyChange(true);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'none';\n };\n /**\n * endTransaction method\\\n *\n * @returns { void } endTransaction method .\\\n * @param {boolean} protectChange - provide the options value.\n * @private\n */\n CommandHandler.prototype.endTransaction = function (protectChange) {\n this.state = null;\n if (protectChange) {\n this.diagram.protectPropertyChange(false);\n }\n getAdornerLayer(this.diagram.element.id).style.pointerEvents = 'all';\n };\n /**\n * setFocus method\\\n *\n * @returns { void } setFocus method .\\\n * @private\n */\n CommandHandler.prototype.setFocus = function () {\n document.getElementById(this.diagram.element.id).focus();\n };\n /**\n * showTooltip method\\\n *\n * @returns { void } showTooltip method .\\\n * @param {IElement} node - provide the options value.\n * @param {PointModel} position - provide the position value.\n * @param {string | HTMLElement} content - provide the content value.\n * @param {string} toolName - provide the toolName value.\n * @param {boolean} isTooltipVisible - provide the isTooltipVisible value.\n * @private\n */\n CommandHandler.prototype.showTooltip = function (node, position, content, toolName, isTooltipVisible) {\n var _this = this;\n var targetId;\n var targetEle;\n var isNative = false;\n if (node instanceof Selector) {\n if ((node.nodes.length === 1) && node.connectors.length === 0) {\n targetId = node.nodes[0].id;\n if (node.nodes[0].shape && node.nodes[0].shape instanceof Native) {\n isNative = true;\n }\n }\n else if ((node.nodes.length === 0) && node.connectors.length === 1) {\n targetId = node.connectors[0].id;\n }\n else {\n targetEle = document.getElementById(this.diagram.element.id + '_SelectorElement');\n }\n }\n else if (node instanceof Node) {\n targetId = node.id;\n if (node.shape && (node.shape instanceof Native)) {\n isNative = true;\n }\n }\n else {\n targetId = node.id;\n }\n if (isNullOrUndefined(targetEle) && !isNullOrUndefined(targetId)) {\n var idName = isNative ? '_content_native_element' : '_groupElement';\n targetEle = document.getElementById(targetId + idName);\n }\n if (isTooltipVisible) {\n this.diagram.tooltipObject.position = 'BottomCenter';\n this.diagram.tooltipObject.animation = { open: { delay: 0, duration: 0 } };\n this.diagram.tooltipObject.openDelay = 0;\n this.diagram.tooltipObject.closeDelay = 0;\n }\n if (this.diagram.selectedItems.setTooltipTemplate) {\n var template = void 0;\n var setTooltipTemplate = getFunction(this.diagram.selectedItems.setTooltipTemplate);\n if (setTooltipTemplate) {\n template = setTooltipTemplate(node, this.diagram);\n }\n if (template instanceof HTMLElement) {\n content = template.cloneNode(true);\n }\n else {\n content = template ? template : content;\n }\n }\n //840454- support to provide isSticky property for tooltip in diagram control\n this.diagram.tooltipObject.isSticky = false;\n if (node.tooltip) {\n this.diagram.tooltipObject.openOn = node.tooltip.openOn;\n }\n // Task 834121: Content-Security-Policy support for diagram\n if (typeof content === 'string') {\n this.diagram.tooltipObject.content = initializeCSPTemplate(function () {\n return content;\n });\n }\n else {\n this.diagram.tooltipObject.content = content;\n }\n this.diagram.tooltipObject.offsetX = 0;\n this.diagram.tooltipObject.offsetY = 0;\n this.diagram.tooltipObject.refresh(targetEle);\n if (isTooltipVisible) {\n setTimeout(function () {\n _this.diagram.tooltipObject.open(targetEle);\n }, 1);\n }\n };\n /**\n * Split the connector, when the node is dropped onto it and establish connection with that dropped node.\n *\n * @returns { void } connectorSplit method .\\\n * @param {NodeModel} droppedObject - Provide the dropped node id\n * @param {ConnectorModel} targetConnector - Provide the connector id\n * @private\n */\n CommandHandler.prototype.connectorSplit = function (droppedObject, targetConnector) {\n var droppedNodeId = droppedObject.id;\n var existingConnector = cloneObject(targetConnector);\n var connectorIndex = this.diagram.connectors.indexOf(targetConnector);\n var nodeIndex = this.diagram.nodes.indexOf(droppedObject);\n var droppedNode = cloneObject(droppedObject);\n var connectorOldChanges = {};\n var nodeOldChanges = {};\n var nodeOldProperty = {\n offsetX: droppedNode.offsetX,\n offsetY: droppedNode.offsetY\n };\n var connectorOldProperty = {\n sourceID: existingConnector.sourceID,\n sourcePoint: existingConnector.sourcePoint,\n sourcePortID: existingConnector.sourcePortID,\n targetID: existingConnector.targetID,\n targetPoint: existingConnector.targetPoint,\n targetPortID: existingConnector.targetPortID\n };\n connectorOldChanges[parseInt(connectorIndex.toString(), 10)] = connectorOldProperty;\n nodeOldChanges[parseInt(nodeIndex.toString(), 10)] = nodeOldProperty;\n var connectorNewChanges = {};\n var nodeNewChanges = {};\n var nodeNewProperty = {};\n var connectorNewProperty = {};\n //Split the connector based on the dropped node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if (existingConnector.sourceID !== '' && existingConnector.targetID === '') {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.targetPoint);\n connectorNewProperty.targetID = this.ConnectorTargetChange(targetConnector, droppedNodeId);\n }\n else if ((existingConnector.sourceID === '' && existingConnector.targetID === '') || (existingConnector.sourceID === '' && existingConnector.targetID !== '')) {\n this.nodeOffsetChange(nodeNewProperty, droppedNode, targetConnector.sourcePoint);\n connectorNewProperty.sourceID = this.ConnectorSourceChange(targetConnector, droppedNodeId);\n }\n connectorNewChanges[parseInt(connectorIndex.toString(), 10)] = connectorNewProperty;\n nodeNewChanges[parseInt(nodeIndex.toString(), 10)] = nodeNewProperty;\n this.diagram.nodePropertyChange(droppedObject, nodeOldProperty, nodeNewProperty);\n this.diagram.updateSelector();\n this.diagram.connectorPropertyChange(targetConnector, connectorOldProperty, connectorNewProperty);\n //Check Whether the connector connects with the node\n if (existingConnector.sourceID !== '' && existingConnector.targetID !== '') {\n var newConnector = {\n id: 'connector ' + droppedNodeId,\n constraints: ConnectorConstraints.Default | ConnectorConstraints.AllowDrop,\n sourceID: droppedNodeId\n };\n //Check whether the connector connects with the ports\n if (existingConnector.sourcePortID !== '' && existingConnector.targetPortID !== '') {\n newConnector.targetID = existingConnector.targetID;\n newConnector.targetPortID = existingConnector.targetPortID;\n }\n else {\n newConnector.targetID = existingConnector.targetID;\n }\n this.diagram.add(newConnector);\n }\n var entry = {\n type: 'PropertyChanged', redoObject: { nodes: nodeNewChanges }, undoObject: { nodes: nodeOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry);\n var entry1 = {\n type: 'PropertyChanged', redoObject: { connectors: connectorNewChanges }, undoObject: { connectors: connectorOldChanges },\n category: 'Internal'\n };\n this.diagram.addHistoryEntry(entry1);\n };\n CommandHandler.prototype.nodeOffsetChange = function (propertyChangeArg, node, nodeNewOffset) {\n propertyChangeArg.offsetX = node.offsetX = nodeNewOffset.x;\n propertyChangeArg.offsetY = node.offsetY = nodeNewOffset.y;\n };\n CommandHandler.prototype.ConnectorTargetChange = function (connector, newTarget) {\n connector.targetID = newTarget;\n return newTarget;\n };\n CommandHandler.prototype.ConnectorSourceChange = function (connector, newTarget) {\n connector.sourceID = newTarget;\n return newTarget;\n };\n /**\n * closeTooltip method\\\n *\n * @returns { void } closeTooltip method .\\\n * @private\n */\n CommandHandler.prototype.closeTooltip = function () {\n this.diagram.tooltipObject.close();\n };\n /**\n * canEnableDefaultTooltip method\\\n *\n * @returns { boolean } canEnableDefaultTooltip method .\\\n * @private\n */\n CommandHandler.prototype.canEnableDefaultTooltip = function () {\n if (this.diagram.selectedItems.constraints & SelectorConstraints.ToolTip) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * updateSelector method\\\n *\n * @returns { void } updateSelector method .\\\n * @private\n */\n CommandHandler.prototype.updateSelector = function () {\n this.diagram.updateSelector();\n };\n // /**\n // * updateConnectorValue method\\\n // *\n // * @returns { void } updateConnectorValue method .\\\n // * @param {IBlazorConnectionChangeEventArgs} args - provide the options value.\n // * @private\n // */\n // public updateConnectorValue(args: IBlazorConnectionChangeEventArgs): void {\n // //remove Blazor code\n // }\n /**\n * triggerEvent method\\\n *\n * @returns { Promise } triggerEvent method .\\\n * @param {DiagramEvent} event - provide the options value.\n * @param {Object} args - provide the args value.\n * @private\n */\n CommandHandler.prototype.triggerEvent = function (event, args) {\n return __awaiter(this, void 0, void 0, function () {\n var temparg;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(event === DiagramEvent.drop || event === DiagramEvent.positionChange ||\n event === DiagramEvent.connectionChange)) return [3 /*break*/, 3];\n if (this.diagram.currentSymbol) {\n return [2 /*return*/];\n }\n if (event === DiagramEvent.drop) {\n args.source = cloneBlazorObject(this.diagram);\n }\n if (!(this.diagram.currentDrawingObject instanceof Connector && event !== DiagramEvent.positionChange)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.diagram.triggerEvent(event, args)];\n case 1: return [2 /*return*/, _a.sent()];\n case 2:\n if (this.diagram.currentDrawingObject && event !== DiagramEvent.positionChange) {\n return [2 /*return*/];\n }\n _a.label = 3;\n case 3: return [4 /*yield*/, this.diagram.triggerEvent(event, args)];\n case 4:\n temparg = _a.sent();\n return [2 /*return*/, temparg];\n }\n });\n });\n };\n /**\n * dragOverElement method\\\n *\n * @returns { void } dragOverElement method .\\\n * @param {MouseEventArgs} args - provide the options value.\n * @param {PointModel} currentPosition - provide the args value.\n * @private\n */\n CommandHandler.prototype.dragOverElement = function (args, currentPosition) {\n if (this.diagram.currentSymbol) {\n var dragOverArg = {\n element: cloneBlazorObject(args.source), target: cloneBlazorObject(args.target),\n mousePosition: cloneBlazorObject(currentPosition), diagram: cloneBlazorObject(this.diagram)\n };\n this.triggerEvent(DiagramEvent.dragOver, dragOverArg);\n }\n };\n /**\n * disConnect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } disConnect method .\\\n * @param {IElement} obj - provide the obj value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.disConnect = function (obj, endPoint, canCancel) {\n var oldChanges = {};\n var newChanges = {};\n var returnargs;\n var selectorModel;\n var connector;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n if (obj && connector && (hasSingleConnection(this.diagram) || this.diagram.currentDrawingObject)) {\n if (endPoint && (endPoint === 'ConnectorSourceEnd' || endPoint === 'ConnectorTargetEnd')) {\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connector[\"\" + nodeEndId]) { //connector.sourceID || connector.targetID\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = '';\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n if (connector.sourcePortID || connector.targetPortID) {\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = '';\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n }\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n }\n else if ((endPoint !== 'OrthoThumb' && endPoint !== 'SegmentEnd') && (connector.sourceID || connector.targetID)) {\n oldChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n connector.sourceID = '';\n connector.sourcePortID = '';\n connector.targetID = '';\n connector.targetPortID = '';\n newChanges = {\n sourceID: connector.sourceID, sourcePortID: connector.sourcePortID,\n targetID: connector.targetID, targetPortID: connector.targetPortID\n };\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n if (arg.cancel) {\n connector.sourceID = oldChanges.sourceID;\n connector.sourcePortID = oldChanges.sourcePortID;\n connector.targetID = oldChanges.targetID;\n connector.targetPortID = oldChanges.targetPortID;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: connector, oldValue: oldChanges,\n newValue: newChanges, cancel: false, state: 'Changed', connectorEnd: endPoint\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n }\n }\n return returnargs;\n };\n CommandHandler.prototype.connectionEventChange = function (connector, oldChanges, newChanges, endPoint, canCancel) {\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n var connectedNode;\n if (this.enableCloneObject) {\n connectedNode = this.diagram.nameTable[newChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n var returnargs;\n var arg = {\n cancel: false, state: 'Changing', connectorEnd: endPoint,\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }\n };\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n if (arg.cancel) {\n connector[\"\" + nodeEndId] = oldChanges[\"\" + nodeEndId];\n connector[\"\" + portEndId] = oldChanges[\"\" + portEndId];\n newChanges = oldChanges;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldChanges[\"\" + nodeEndId], portId: oldChanges[\"\" + portEndId] },\n newValue: {\n nodeId: newChanges[\"\" + nodeEndId],\n portId: newChanges[\"\" + portEndId]\n },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (this.enableCloneObject) {\n if (connectedNode === undefined) {\n connectedNode = this.diagram.nameTable[oldChanges[\"\" + nodeEndId]];\n var nodeObject = cloneObject(connectedNode);\n this.diagram.insertValue(nodeObject, true);\n }\n }\n if (this.diagram.bpmnModule) {\n if (connector.isBpmnAnnotationConnector) {\n var textAnnotationNode = this.diagram.nameTable[connector.targetID];\n textAnnotationNode.shape.textAnnotation.textAnnotationTarget = connector.sourceID;\n }\n }\n return returnargs;\n };\n // /**\n // * insertBlazorObject method\\\n // *\n // * @returns { void } insertBlazorObject method .\\\n // * @param {IElement} object - provide the object value.\n // * @param {boolean} isNode - provide the isNode value.\n // * @private\n // */\n // public insertBlazorObject(object: SelectorModel | Node | Connector, isNode?: boolean): void {\n // }\n // /**\n // * updatePropertiesToBlazor method\\\n // *\n // * @returns { void } updatePropertiesToBlazor method .\\\n // * @param {MouseEventArgs} args - provide the args value.\n // * @param {PointModel} labelDrag - provide the labelDrag value.\n // * @private\n // */\n // public updatePropertiesToBlazor(args: MouseEventArgs, labelDrag: boolean): void {\n // this.enableCloneObject(false);\n // this.ismouseEvents(false);\n // // this.getBlazorOldValues(args, labelDrag);\n // // this.updateBlazorSelector();\n // }\n // /**\n // * insertSelectedObjects method\\\n // *\n // * @returns { void } insertSelectedObjects method .\\\n // * @private\n // */\n // public insertSelectedObjects(): void {\n // // this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n // }\n /**\n * findTarget method\\\n *\n * @returns { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel } findTarget method .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} argsTarget - provide the argsTarget value.\n * @param {boolean} source - provide the source value.\n * @param {boolean} connection - provide the connection value.\n * @private\n */\n CommandHandler.prototype.findTarget = function (element, argsTarget, source, connection) {\n var target;\n if (argsTarget instanceof Node) {\n if (element && element.id === argsTarget.id + '_content') {\n return argsTarget;\n }\n if (source && argsTarget.shape.type === 'Bpmn' && ((!isBlazor() && argsTarget.shape.shape === 'Activity'))) {\n if (argsTarget.shape.activity.subProcess.type === 'Transaction') {\n var transaction = argsTarget.shape.activity.subProcess.transaction;\n if (transaction.success.visible && element.id.indexOf(argsTarget.id + '_success') === 0) {\n return transaction.success;\n }\n if (transaction.cancel.visible && element.id.indexOf(argsTarget.id + '_cancel') === 0) {\n return transaction.cancel;\n }\n if (transaction.failure.visible && element.id.indexOf(argsTarget.id + '_failure') === 0) {\n return transaction.failure;\n }\n }\n }\n if (element instanceof PathElement) {\n for (var i = 0; i < argsTarget.ports.length; i++) {\n var port = argsTarget.ports[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + port.id) {\n return port;\n }\n }\n }\n }\n // Feature 826644: Support to add ports to the connector.\n // Added below condition to find the target connector port.\n if (argsTarget instanceof Connector) {\n if (element && element.id === argsTarget.id + '_content') {\n return argsTarget;\n }\n if (element instanceof PathElement) {\n for (var i = 0; i < argsTarget.ports.length; i++) {\n var port = argsTarget.ports[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + port.id) {\n return port;\n }\n }\n }\n }\n if (!connection) {\n var annotation = void 0;\n for (var i = 0; i < argsTarget.annotations.length; i++) {\n annotation = argsTarget.annotations[parseInt(i.toString(), 10)];\n if (element.id === argsTarget.id + '_' + annotation.id) {\n return annotation;\n }\n }\n }\n return argsTarget;\n };\n /**\n * canDisconnect method\\\n *\n * @returns { boolean } canDisconnect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {string} targetPortId - provide the targetPortId value.\n * @param {string} targetNodeId - provide the targetNodeId value.\n * @private\n */\n CommandHandler.prototype.canDisconnect = function (endPoint, args, targetPortId, targetNodeId) {\n var selector;\n var connect;\n if (args.source instanceof Selector) {\n selector = args.source;\n connect = selector.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connect = this.diagram.currentDrawingObject;\n }\n var targetObject = this.findTarget(args.targetWrapper, args.target, endPoint === 'ConnectorSourceEnd', true);\n var nodeEnd = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEnd = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (connect[\"\" + nodeEnd] !== targetNodeId || connect[\"\" + portEnd] !== targetPortId) {\n return true;\n }\n return false;\n };\n /* tslint:disable */\n /**\n * connect method\\\n *\n * @returns { IConnectionChangeEventArgs | IBlazorConnectionChangeEventArgs } connect method .\\\n * @param {string} endPoint - provide the endPoint value.\n * @param {MouseEventArgs} args - provide the args value.\n * @param {boolean} canCancel - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.connect = function (endPoint, args, canCancel) {\n var checkBlazor;\n var newChanges = {};\n var oldChanges = {};\n var oldNodeId;\n var oldPortId;\n var selectorModel;\n var connector;\n var returnargs;\n if (args.source instanceof Selector) {\n selectorModel = args.source;\n connector = selectorModel.connectors[0];\n }\n else if (args.source instanceof Connector && this.diagram.currentDrawingObject) {\n connector = this.diagram.currentDrawingObject;\n }\n var target = this.findTarget((args.targetWrapper || args.sourceWrapper), (args.target || args.actualObject), endPoint === 'ConnectorSourceEnd', true);\n var nodeEndId = endPoint === 'ConnectorSourceEnd' ? 'sourceID' : 'targetID';\n var portEndId = endPoint === 'ConnectorSourceEnd' ? 'sourcePortID' : 'targetPortID';\n if (target instanceof Node) {\n oldChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n connector[\"\" + nodeEndId] = target.id;\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n oldChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n returnargs = this.connectionEventChange(connector, oldChanges, newChanges, endPoint, canCancel);\n }\n else if (target instanceof Port) {\n oldNodeId = connector[\"\" + nodeEndId];\n oldPortId = connector[\"\" + portEndId];\n connector[\"\" + portEndId] = target.id;\n connector[\"\" + nodeEndId] = (args.target && args.target.id || args.actualObject.id);\n newChanges[\"\" + nodeEndId] = connector[\"\" + nodeEndId];\n newChanges[\"\" + portEndId] = connector[\"\" + portEndId];\n var arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] },\n cancel: false, state: 'Changing', connectorEnd: endPoint\n };\n if (!checkBlazor) {\n this.triggerEvent(DiagramEvent.connectionChange, arg);\n }\n if (arg.cancel) {\n connector[\"\" + nodeEndId] = oldNodeId;\n connector[\"\" + portEndId] = oldPortId;\n newChanges[\"\" + nodeEndId] = oldNodeId;\n newChanges[\"\" + portEndId] = oldPortId;\n }\n else {\n this.diagram.connectorPropertyChange(connector, oldChanges, newChanges);\n this.diagram.updateDiagramObject(connector);\n arg = {\n connector: cloneBlazorObject(connector), oldValue: { nodeId: oldNodeId, portId: oldPortId },\n newValue: { nodeId: newChanges[\"\" + nodeEndId], portId: newChanges[\"\" + portEndId] }, cancel: false,\n state: 'Changing', connectorEnd: endPoint\n };\n }\n }\n this.renderHighlighter(args, undefined, endPoint === 'ConnectorSourceEnd');\n return returnargs;\n };\n /* tslint:enable */\n /** @private */\n /**\n * cut method\\\n *\n * @returns { void } cut method .\\\n * @private\n */\n CommandHandler.prototype.cut = function () {\n var index;\n this.clipboardData.pasteIndex = 0;\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.startGroupAction();\n }\n this.clipboardData.clipObject = this.copyObjects();\n if (this.diagram.undoRedoModule) {\n this.diagram.historyManager.endGroupAction();\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n };\n // private UpdateBlazorDiagramModelLayers(layer: Layer, isRemove: boolean): void {\n // comment blazor code\n // }\n /**\n * addLayer method\\\n *\n * @returns { void } addLayer method .\\\n * @param {LayerModel} layer - provide the endPoint value.\n * @param {Object[]} objects - provide the args value.\n * @param {boolean} isServerUpdate - provide the canCancel value.\n * @private\n */\n CommandHandler.prototype.addLayer = function (layer, objects, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n layer.id = layer.id || randomId();\n layer.zIndex = this.diagram.layers.length;\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n layer = new Layer(this.diagram, 'layers', layer, true);\n this.diagram.enableServerDataBinding(isEnableServerDatabind);\n layer.objectZIndex = -1;\n layer.zIndexTable = {};\n this.diagram.layers.push(layer);\n // if (isServerUpdate) {\n // this.UpdateBlazorDiagramModelLayers(layer as Layer, false);\n // }\n this.diagram.layerZIndexTable[layer.zIndex] = layer.id;\n this.diagram.activeLayer = layer;\n var layers = layer.objects;\n if (objects) {\n for (var i = 0; i < objects.length; i++) {\n this.diagram.add(objects[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * getObjectLayer method\\\n *\n * @returns { LayerModel } getObjectLayer method .\\\n * @param {string} objectName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getObjectLayer = function (objectName) {\n var layers = this.diagram.layers;\n if (layers.length > 1) {\n for (var i = 0; i < layers.length; i++) {\n var objIndex = layers[parseInt(i.toString(), 10)].objects.indexOf(objectName);\n if (objIndex > -1) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n }\n return this.diagram.activeLayer;\n };\n /**\n * getLayer method\\\n *\n * @returns { LayerModel } getLayer method .\\\n * @param {string} layerName - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.getLayer = function (layerName) {\n var layers = this.diagram.layers;\n for (var i = 0; i < layers.length; i++) {\n if (layers[parseInt(i.toString(), 10)].id === layerName) {\n return layers[parseInt(i.toString(), 10)];\n }\n }\n return undefined;\n };\n /**\n * removeLayer method\\\n *\n * @returns { void } removeLayer method .\\\n * @param {string} layerId - provide the endPoint value.\n * @param {boolean} isServerUpdate - provide the endPoint value.\n * @private\n */\n CommandHandler.prototype.removeLayer = function (layerId, isServerUpdate) {\n if (isServerUpdate === void 0) { isServerUpdate = true; }\n var layers = this.getLayer(layerId);\n if (layers) {\n var index = this.diagram.layers.indexOf(layers);\n var layerObject = layers.objects;\n for (var i = layerObject.length - 1; i >= 0; i--) {\n this.diagram.unSelect(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n this.diagram.remove(this.diagram.nameTable[layerObject[parseInt(i.toString(), 10)]]);\n if (layers.id !== 'default_layer') {\n if (this.diagram.activeLayer.id === layerId) {\n this.diagram.activeLayer = this.diagram.layers[this.diagram.layers.length - 1];\n }\n }\n }\n // if (isServerUpdate) {\n // this.UpdateBlazorDiagramModelLayers(this.diagram.layers[parseInt(index.toString(), 10)] as Layer, true);\n // }\n delete this.diagram.layerZIndexTable[layers.zIndex];\n this.diagram.layers.splice(index, 1);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * moveObjects method\\\n *\n * @returns { void } moveObjects method .\\\n * @param {string[]]} objects - provide the objects value.\n * @param {string} targetLayer - provide the targetLayer value.\n * @private\n */\n CommandHandler.prototype.moveObjects = function (objects, targetLayer) {\n this.diagram.startGroupAction();\n var connectorObjectsDetails = {};\n var childNodes = [];\n for (var i = 0; i < objects.length; i++) {\n var obj = this.diagram.nameTable[objects[parseInt(i.toString(), 10)]];\n if (obj instanceof Node) {\n var detail = { inEdges: obj.inEdges, outEdges: obj.outEdges };\n connectorObjectsDetails[\"\" + obj.id] = cloneObject(detail);\n }\n else if (obj instanceof Connector) {\n var detail = {\n sourceID: obj.sourceID, targetID: obj.targetID,\n sourcePortID: obj.sourcePortID, targetPortID: obj.targetPortID\n };\n connectorObjectsDetails[\"\" + obj.id] = cloneObject(detail);\n }\n }\n var layer = this.getLayer(targetLayer) || this.diagram.activeLayer;\n this.diagram.setActiveLayer(layer.id);\n var targerNodes;\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var i = objects_1[_i];\n var layer_1 = this.getObjectLayer(i);\n var index = layer_1.objects.indexOf(i);\n if (index > -1) {\n targerNodes = this.diagram.nameTable[\"\" + i];\n childNodes = [];\n if (targerNodes.children) {\n for (var _a = 0, _b = targerNodes.children; _a < _b.length; _a++) {\n var node = _b[_a];\n childNodes.push(this.diagram.nameTable[\"\" + node]);\n }\n }\n this.diagram.unSelect(targerNodes);\n //875087 - Restrict removing dependent connectors when moveing between layers\n this.diagram.deleteDependentConnector = false;\n this.diagram.remove(this.diagram.nameTable[\"\" + i]);\n this.diagram.deleteDependentConnector = true;\n if (childNodes.length > 0) {\n var addedObj = void 0;\n for (var _c = 0, childNodes_1 = childNodes; _c < childNodes_1.length; _c++) {\n var node = childNodes_1[_c];\n addedObj = this.diagram.add(node);\n this.setConnectorDetails(addedObj || node, connectorObjectsDetails);\n targerNodes.children.push(addedObj.id);\n }\n addedObj = this.diagram.add(targerNodes);\n this.setConnectorDetails(addedObj || targerNodes, connectorObjectsDetails);\n }\n else {\n var addedObj = this.diagram.add(targerNodes);\n this.setConnectorDetails(addedObj || targerNodes, connectorObjectsDetails);\n }\n if (targerNodes.parentId) {\n var parentId = targerNodes.parentId;\n var group = this.diagram.nameTable[\"\" + parentId];\n this.diagram.addChildToGroup(group, targerNodes.id);\n }\n }\n }\n this.diagram.endGroupAction();\n };\n CommandHandler.prototype.setConnectorDetails = function (obj, connectorObjectsDetails) {\n var details = connectorObjectsDetails[obj.id];\n if (obj instanceof Node) {\n if (details) {\n if (details.inEdges && details.inEdges.length > 0) {\n for (var i = 0; i < details.inEdges.length; i++) {\n var con = this.diagram.nameTable[details.inEdges[parseInt(i.toString(), 10)]];\n con.targetID = obj.id;\n }\n }\n if (details.outEdges && details.outEdges.length > 0) {\n for (var i = 0; i < details.outEdges.length; i++) {\n var con = this.diagram.nameTable[details.outEdges[parseInt(i.toString(), 10)]];\n con.sourceID = obj.id;\n }\n }\n }\n }\n else if (obj instanceof Connector) {\n if (details) {\n obj.sourceID = details.sourceID;\n obj.targetID = details.targetID;\n obj.sourcePortID = details.sourcePortID;\n obj.targetPortID = details.targetPortID;\n }\n }\n };\n /**\n * cloneLayer method\\\n *\n * @returns { void } cloneLayer method .\\\n * @param {string[]} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.cloneLayer = function (layerName) {\n var layers = this.diagram.layers;\n var layer = this.getLayer(layerName);\n if (layer) {\n var cloneObject_1 = [];\n var newlayer = {\n id: layerName + '_' + randomId(), objects: [], visible: true, lock: false\n };\n this.addLayer(newlayer, null, true);\n newlayer.zIndex = this.diagram.layers.length - 1;\n var multiSelect = cloneObject_1.length !== 1;\n for (var _i = 0, _a = layer.objects; _i < _a.length; _i++) {\n var obj = _a[_i];\n cloneObject_1.push(this.diagram.nameTable[\"\" + obj]);\n }\n this.paste(cloneObject_1);\n }\n };\n /**\n * copy method\\\n *\n * @returns { void } copy method .\\\n * @private\n */\n CommandHandler.prototype.copy = function () {\n this.clipboardData.pasteIndex = 1;\n this.clipboardData.clipObject = this.copyObjects();\n return this.clipboardData.clipObject;\n };\n /**\n * copyObjects method\\\n *\n * @returns { Object[] } copyObjects method .\\\n * @private\n */\n CommandHandler.prototype.copyObjects = function () {\n var selectedItems = [];\n var obj = [];\n this.clipboardData.childTable = {};\n if (this.diagram.selectedItems.connectors.length > 0) {\n //908602 - Issue in Cut connectors\n selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors);\n for (var j = 0; j < selectedItems.length; j++) {\n var element = void 0;\n //To copy text annotation node while copying the text annotation connector.\n if (this.diagram.bpmnModule &&\n selectedItems[parseInt(j.toString(), 10)].isBpmnAnnotationConnector) {\n element = cloneObject((this.diagram.nameTable[selectedItems[parseInt(j.toString(), 10)].targetID]));\n }\n else {\n element = cloneObject((selectedItems[parseInt(j.toString(), 10)]));\n }\n obj.push(element);\n }\n }\n if (this.diagram.selectedItems.nodes.length > 0) {\n selectedItems = selectedItems.concat(this.diagram.selectedItems.nodes);\n for (var j = 0; j < this.diagram.selectedItems.nodes.length; j++) {\n if (!this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].isPhase) {\n var node = clone(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)]);\n if (!((node.isLane || node.isHeader) && this.checkSwimlaneInSelection(node, obj))) {\n if (node.wrapper && (node.offsetX !== node.wrapper.offsetX)) {\n node.offsetX = node.wrapper.offsetX;\n }\n if (node.wrapper && (node.offsetY !== node.wrapper.offsetY)) {\n node.offsetY = node.wrapper.offsetY;\n }\n var processTable = {};\n this.copyProcesses(node);\n obj.push(clone(node));\n var matrix = identityMatrix();\n rotateMatrix(matrix, -node.rotateAngle, node.offsetX, node.offsetY);\n if (node.children) {\n var childTable = this.clipboardData.childTable;\n var tempNode = void 0;\n var elements = [];\n var nodes = this.getAllDescendants(node, elements, true);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id];\n var clonedObject = childTable[tempNode.id] = clone(tempNode);\n var newOffset = transformPointByMatrix(matrix, { x: clonedObject.wrapper.offsetX, y: clonedObject.wrapper.offsetY });\n if (tempNode instanceof Node) {\n clonedObject.offsetX = newOffset.x;\n clonedObject.offsetY = newOffset.y;\n clonedObject.rotateAngle -= node.rotateAngle;\n }\n }\n this.clipboardData.childTable = childTable;\n }\n // Adding the clonned connectors of swim lane in child table\n if (node.shape.type === 'SwimLane') {\n var swimlane = this.diagram.getObject(this.diagram.selectedItems.nodes[parseInt(j.toString(), 10)].id);\n var childTable = this.clipboardData.childTable;\n var connectorsList = getConnectors(this.diagram, swimlane.wrapper.children[0], 0, true);\n for (var i = 0; i < connectorsList.length; i++) {\n var connector = this.diagram.getObject(connectorsList[parseInt(i.toString(), 10)]);\n childTable[connector.id] = clone(connector);\n }\n }\n // Adding the clonned LANE of swim lane in child table\n if (node && node.isLane) {\n var childTable = this.clipboardData.childTable;\n var swimlane = this.diagram.getObject(node.parentId);\n var lane = findLane(node, this.diagram);\n childTable[node.id] = cloneObject(lane);\n childTable[node.id].width = swimlane.wrapper.actualSize.width;\n }\n }\n }\n }\n }\n if (this.clipboardData.pasteIndex === 0) {\n this.startGroupAction();\n for (var _i = 0, selectedItems_1 = selectedItems; _i < selectedItems_1.length; _i++) {\n var item = selectedItems_1[_i];\n if (this.diagram.nameTable[item.id]) {\n this.diagram.remove(item);\n }\n }\n this.endGroupAction();\n }\n this.sortByZIndex(obj, 'zIndex');\n //892957: Remove duplicate elements while copy, paste the swimlane\n if (this.diagram.selectedItems.nodes.some(function (node) {\n return node.shape.type === 'SwimLane';\n })) {\n obj = this.removeDuplicateObjects(obj);\n }\n return obj;\n };\n //892957: To remove duplicate objects\n CommandHandler.prototype.removeDuplicateObjects = function (objects) {\n var uniqueObjects = {};\n for (var i = 0; i < objects.length; i++) {\n uniqueObjects[objects[parseInt(i.toString(), 10)].id] = objects[parseInt(i.toString(), 10)];\n }\n var result = [];\n //To remove objects with same id\n for (var key in uniqueObjects) {\n if (Object.prototype.hasOwnProperty.call(uniqueObjects, key)) {\n result.push(uniqueObjects[\"\" + key]);\n }\n }\n var _loop_1 = function (i) {\n if (result[parseInt(i.toString(), 10)].parentId) {\n var lane_1 = this_1.diagram.getObject(result[parseInt(i.toString(), 10)].parentId);\n if (lane_1 && lane_1.isLane && lane_1.parentId &&\n result.some(function (obj) { return obj.id === lane_1.parentId; })) {\n result.splice(i, 1);\n i--;\n }\n }\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n //To remove the nodes which is child node of copied swimlane\n for (var i = 0; i < result.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n // Get the keys from childTable\n var childTableKeys = Object.keys(this.clipboardData.childTable);\n // Filter the array to remove objects with ids matching the keys in childTable except lane\n var filteredArray = result.filter(function (item) {\n return (childTableKeys.indexOf(item.id) === -1 || item.isLane);\n });\n return filteredArray;\n };\n //To check if the swimlane is selected along with its child lane\n CommandHandler.prototype.checkSwimlaneInSelection = function (node, obj) {\n return this.diagram.selectedItems.nodes.some(function (item) { return item.id === node.parentId; });\n };\n CommandHandler.prototype.copyProcesses = function (node) {\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n this.processTable[\"\" + i] = (clone(this.diagram.nameTable[\"\" + i]));\n if (this.processTable[\"\" + i].shape.activity.subProcess.processes &&\n this.processTable[\"\" + i].shape.activity.subProcess.processes.length > 0) {\n this.copyProcesses(this.processTable[\"\" + i]);\n }\n }\n this.clipboardData.processTable = this.processTable;\n }\n };\n /**\n * group method\\\n *\n * @returns { void } group method .\\\n * @private\n */\n CommandHandler.prototype.group = function () {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n var obj = {};\n //let group: Node | Connector;\n obj.id = 'group' + randomId();\n obj = new Node(this.diagram, 'nodes', obj, true);\n obj.children = [];\n selectedItems = this.diagram.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.diagram.selectedItems.connectors);\n var order = selectedItems.sort(function (a, b) {\n return a.zIndex - b.zIndex;\n });\n for (var i = 0; i < order.length; i++) {\n if (!order[parseInt(i.toString(), 10)].parentId) {\n obj.children.push(order[parseInt(i.toString(), 10)].id);\n }\n }\n //867606 - Exception throws while grouping the existing group nodes\n if (obj.children.length > 0) {\n var group = this.diagram.add(obj);\n if (group) {\n this.select(group);\n }\n var entry = { type: 'Group', undoObject: obj, redoObject: obj, category: 'Internal' };\n this.addHistoryEntry(entry);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n // this.updateBlazorSelector();\n }\n };\n /**\n * unGroup method\\\n *\n * @returns { void } unGroup method .\\\n * @param {NodeModel} obj - provide the angle value.\n * @private\n */\n CommandHandler.prototype.unGroup = function (obj) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[\"\" + propName];\n this.diagram.protectPropertyChange(true);\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.Group;\n var selectedItems = [];\n if (obj) {\n selectedItems.push(obj);\n }\n else {\n selectedItems = this.diagram.selectedItems.nodes;\n }\n this.diagram.startGroupAction();\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n var undoObject = cloneObject(node);\n var childCollection = [];\n for (var k = 0; k < node.children.length; k++) {\n childCollection.push(node.children[parseInt(k.toString(), 10)]);\n }\n if (node.children) {\n if (node.ports && node.ports.length > 0) {\n this.diagram.removePorts(node, node.ports);\n }\n if (node.annotations && node.annotations.length > 0 && (!isBlazor())) {\n this.diagram.removeLabels(node, node.annotations);\n }\n var parentNode = this.diagram.nameTable[node.parentId];\n for (var j = node.children.length - 1; j >= 0; j--) {\n (this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]]).parentId = '';\n this.diagram.deleteChild(this.diagram.nameTable[node.children[parseInt(j.toString(), 10)]], node);\n if (node.parentId && node.children[parseInt(j.toString(), 10)]) {\n this.diagram.addChild(parentNode, node.children[parseInt(j.toString(), 10)]);\n }\n }\n this.resetDependentConnectors(node.inEdges, true);\n this.resetDependentConnectors(node.outEdges, false);\n var entry = {\n type: 'UnGroup', undoObject: undoObject,\n redoObject: undoObject, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n if (node.parentId) {\n this.diagram.deleteChild(node, parentNode);\n }\n }\n this.diagram.removeNode(node, childCollection);\n this.clearSelection();\n }\n this.diagram.endGroupAction();\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.Group;\n this.diagram.protectPropertyChange(protectedChange);\n };\n CommandHandler.prototype.resetDependentConnectors = function (edges, isInEdges) {\n for (var i = 0; i < edges.length; i++) {\n var newConnector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n var undoObject = cloneObject(newConnector);\n var newProp = void 0;\n if (isInEdges) {\n newConnector.targetID = '';\n newConnector.targetPortID = '';\n newProp = { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID };\n }\n else {\n newConnector.sourceID = '';\n newConnector.sourcePortID = '';\n newProp = { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID };\n }\n this.diagram.connectorPropertyChange(newConnector, {}, newProp);\n var entry = {\n type: 'ConnectionChanged', undoObject: { connectors: [undoObject], nodes: [] },\n redoObject: { connectors: [cloneObject(newConnector)], nodes: [] }, category: 'Internal'\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n };\n /**\n * paste method\\\n *\n * @returns { void } paste method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.paste = function (obj) {\n if (obj || this.clipboardData.clipObject) {\n this.diagram.protectPropertyChange(true);\n var copiedItems = obj ? this.getNewObject(obj) :\n this.clipboardData.clipObject;\n if (copiedItems) {\n var multiSelect = copiedItems.length !== 1;\n var groupAction = false;\n var objectTable = {};\n var keyTable = {};\n if (this.clipboardData.pasteIndex !== 0) {\n this.clearSelection();\n }\n if (this.diagram.undoRedoModule) {\n groupAction = true;\n this.diagram.historyManager.startGroupAction();\n }\n for (var _i = 0, copiedItems_1 = copiedItems; _i < copiedItems_1.length; _i++) {\n var copy = copiedItems_1[_i];\n objectTable[copy.id] = copy;\n }\n var copiedObject = [];\n if (multiSelect) {\n // This bool is also consider to prevent selection change event is triggered after every object clone\n this.diagram.isServerUpdate = true;\n }\n for (var j = 0; j < copiedItems.length; j++) {\n var copy = copiedItems[parseInt(j.toString(), 10)];\n //EJ2-841227-Copy paste of child node from group node\n if (copy.parentId) {\n var parentObj = this.diagram.getObject(copy.parentId);\n if (parentObj.shape.type !== 'SwimLane' && copy.parentId) {\n copy.parentId = '';\n }\n }\n if (getObjectType(copy) === Connector) {\n var clonedObj = clone(copy);\n var nodeId = clonedObj.sourceID;\n clonedObj.sourceID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.sourceID = keyTable[\"\" + nodeId];\n }\n nodeId = clonedObj.targetID;\n clonedObj.targetID = '';\n if (objectTable[\"\" + nodeId] && keyTable[\"\" + nodeId]) {\n clonedObj.targetID = keyTable[\"\" + nodeId];\n }\n //To check if the connector is cloned already for text annotation node.\n var allowClone = true;\n if (clonedObj.targetID) {\n var targetNode = this.diagram.nameTable[clonedObj.targetID];\n if (targetNode.shape.shape === 'TextAnnotation' && targetNode.inEdges && targetNode.inEdges.length > 0) {\n allowClone = false;\n }\n }\n if (allowClone) {\n var newObj = this.cloneConnector(clonedObj, multiSelect);\n copiedObject.push(newObj);\n keyTable[copy.id] = newObj.id;\n }\n }\n else {\n var newNode = this.cloneNode(copy, multiSelect);\n copiedObject.push(newNode);\n //bpmn text annotations will not be pasted\n if (newNode) {\n keyTable[copy.id] = newNode.id;\n var edges = copy.inEdges;\n if (edges) {\n for (var _a = 0, edges_1 = edges; _a < edges_1.length; _a++) {\n var edge = edges_1[_a];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.targetID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { targetID: '', targetPortID: '' }, { targetID: newConnector.targetID, targetPortID: newConnector.targetPortID });\n }\n }\n }\n edges = copy.outEdges;\n if (edges) {\n for (var _b = 0, edges_2 = edges; _b < edges_2.length; _b++) {\n var edge = edges_2[_b];\n if (objectTable[\"\" + edge] && keyTable[\"\" + edge]) {\n var newConnector = this.diagram.nameTable[keyTable[\"\" + edge]];\n newConnector.sourceID = keyTable[copy.id];\n this.diagram.connectorPropertyChange(newConnector, { sourceID: '', sourcePortID: '' }, { sourceID: newConnector.sourceID, sourcePortID: newConnector.sourcePortID });\n }\n }\n }\n }\n }\n }\n if (multiSelect) {\n this.diagram.isServerUpdate = false;\n // this.diagram.UpdateBlazorDiagramModelCollection(copiedItems[0] as Node, copiedObject);\n // this.getBlazorOldValues();\n this.diagram.select(copiedObject, true);\n }\n if (groupAction === true) {\n this.diagram.historyManager.endGroupAction();\n groupAction = false;\n }\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.clipboardData.pasteIndex++;\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.getNewObject = function (obj) {\n var newObj;\n var newobjs = [];\n this.clipboardData.pasteIndex = 1;\n for (var i = 0; i < obj.length; i++) {\n newObj = cloneObject(obj[parseInt(i.toString(), 10)]);\n newobjs.push(newObj);\n }\n return newobjs;\n };\n CommandHandler.prototype.cloneConnector = function (connector, multiSelect) {\n //let newConnector: Node | Connector;\n var cloneObject = clone(connector);\n this.translateObject(cloneObject);\n cloneObject.zIndex = Number.MIN_VALUE;\n var newConnector = this.diagram.add(cloneObject);\n if (!this.diagram.isServerUpdate) {\n this.selectObjects([newConnector], multiSelect);\n }\n return newConnector;\n };\n CommandHandler.prototype.cloneNode = function (node, multiSelect, children, groupnodeID) {\n var newNode;\n var connectorsTable = {};\n var cloneObject = clone(node);\n var process;\n var temp = this.diagram.nameTable[node.parentId];\n if (node.shape && node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n process = cloneObject.shape.activity.subProcess.processes;\n cloneObject.zIndex = Number.MIN_VALUE;\n cloneObject.shape.activity.subProcess.processes = undefined;\n }\n if (node.shape && node.shape.type === 'SwimLane') {\n pasteSwimLane(node, this.diagram, this.clipboardData);\n }\n else if (temp && temp.shape.type === 'SwimLane') {\n pasteSwimLane(clone(temp), this.diagram, this.clipboardData, node, true);\n }\n else if (node.children && node.children.length && (!children || !children.length)) {\n newNode = this.cloneGroup(node, multiSelect);\n }\n else {\n this.translateObject(cloneObject, groupnodeID);\n cloneObject.zIndex = Number.MIN_VALUE;\n if (children) {\n cloneObject.children = children;\n }\n if (cloneObject.shape && cloneObject.shape.shape === 'TextAnnotation') {\n cloneObject.isTextAnnotationCopied = true;\n }\n newNode = this.diagram.add(cloneObject);\n }\n for (var _i = 0, _a = Object.keys(connectorsTable); _i < _a.length; _i++) {\n var i = _a[_i];\n this.diagram.add(connectorsTable[\"\" + i]);\n }\n if (process && process.length) {\n newNode.shape.activity.subProcess.processes = process;\n this.cloneSubProcesses(newNode);\n }\n if (newNode && !this.diagram.isServerUpdate) {\n this.selectObjects([newNode], multiSelect);\n }\n return newNode;\n };\n CommandHandler.prototype.cloneSubProcesses = function (node) {\n var connector = [];\n var temp = {};\n if (node.shape.type === 'Bpmn' && node.shape.activity &&\n node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length) {\n var process = node.shape.activity.subProcess.processes;\n for (var g = 0; g < process.length; g++) {\n var child = this.diagram.nameTable[process[parseInt(g.toString(), 10)]]\n || this.clipboardData.processTable[process[parseInt(g.toString(), 10)]];\n for (var _i = 0, _a = child.outEdges; _i < _a.length; _i++) {\n var j = _a[_i];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n for (var _b = 0, _c = child.inEdges; _b < _c.length; _b++) {\n var j = _c[_b];\n if (connector.indexOf(j) < 0) {\n connector.push(j);\n }\n }\n var innerChild = cloneObject(this.clipboardData.processTable[process[parseInt(g.toString(), 10)]]);\n innerChild.processId = node.id;\n var newNode = this.cloneNode(innerChild, false);\n temp[process[parseInt(g.toString(), 10)]] = newNode.id;\n process[parseInt(g.toString(), 10)] = newNode.id;\n this.diagram.addProcess(newNode, node.id);\n for (var _d = 0, connector_1 = connector; _d < connector_1.length; _d++) {\n var i = connector_1[_d];\n var node_1 = this.diagram.nameTable[\"\" + i] || this.diagram.connectorTable[\"\" + i];\n var clonedNode = cloneObject(node_1);\n if (temp[clonedNode.sourceID] && temp[clonedNode.targetID]) {\n clonedNode.zIndex = -1;\n clonedNode.id += randomId();\n clonedNode.sourceID = temp[clonedNode.sourceID];\n clonedNode.targetID = temp[clonedNode.targetID];\n connector.splice(connector.indexOf(i), 1);\n this.diagram.add(clonedNode);\n }\n }\n }\n }\n };\n CommandHandler.prototype.cloneGroup = function (obj, multiSelect) {\n var value;\n var sourceId;\n var targetId;\n var newChildren = [];\n var children = [];\n var connectorObj = [];\n var newObj;\n var oldID = [];\n children = children.concat(obj.children);\n var id = randomId();\n var objectCollection = [];\n this.diagram.blazorActions |= BlazorAction.GroupClipboardInProcess;\n if (this.clipboardData.childTable || obj.children.length > 0) {\n for (var i = 0; i < children.length; i++) {\n var childObj = void 0;\n if (this.clipboardData.childTable) {\n childObj = this.clipboardData.childTable[children[parseInt(i.toString(), 10)]];\n // EJ2-905181 - Added to consider copy paste and clone the new group node.\n if (!childObj) {\n childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]];\n }\n }\n else {\n childObj = this.diagram.nameTable[children[parseInt(i.toString(), 10)]];\n }\n childObj.parentId = '';\n if (childObj) {\n if (getObjectType(childObj) === Connector) {\n connectorObj.push(childObj);\n }\n else {\n newObj = this.cloneNode(childObj, multiSelect, undefined, id);\n oldID.push(childObj.id);\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n }\n }\n }\n for (var k = 0; k < connectorObj.length; k++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID || connectorObj[parseInt(k.toString(), 10)].targetID) {\n for (var j = 0; j < oldID.length; j++) {\n if (connectorObj[parseInt(k.toString(), 10)].sourceID === (oldID[parseInt(j.toString(), 10)])) {\n sourceId = connectorObj[parseInt(k.toString(), 10)].sourceID;\n connectorObj[parseInt(k.toString(), 10)].sourceID += id;\n }\n if (connectorObj[parseInt(k.toString(), 10)].targetID === (oldID[parseInt(j.toString(), 10)])) {\n targetId = connectorObj[parseInt(k.toString(), 10)].targetID;\n connectorObj[parseInt(k.toString(), 10)].targetID += id;\n }\n }\n }\n newObj = this.cloneConnector(connectorObj[parseInt(k.toString(), 10)], multiSelect);\n //EJ2-839982 - When we copy paste the group node multiple times, the connector is not rendered properly\n connectorObj[parseInt(k.toString(), 10)].sourceID = sourceId;\n connectorObj[parseInt(k.toString(), 10)].targetID = targetId;\n newChildren.push(newObj.id);\n objectCollection.push(newObj);\n }\n var parentObj = this.cloneNode(obj, multiSelect, newChildren);\n objectCollection.push(parentObj);\n if (parentObj && parentObj.container && parentObj.shape && parentObj.shape.type === 'UmlClassifier') {\n this.diagram.updateDiagramObject(parentObj);\n parentObj.wrapper.measure(new Size());\n }\n this.diagram.blazorActions &= ~BlazorAction.GroupClipboardInProcess;\n if (!this.diagram.isServerUpdate) {\n this.diagram.UpdateBlazorDiagramModelCollection(undefined, objectCollection, undefined, true);\n }\n else {\n this.cloneGroupChildCollection = objectCollection;\n }\n return parentObj;\n };\n /**\n * translateObject method\\\n *\n * @returns { Object[] } translateObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @param {string} groupnodeID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.translateObject = function (obj, groupnodeID) {\n obj.id += groupnodeID || randomId();\n var diff = this.clipboardData.pasteIndex * 10;\n if (getObjectType(obj) === Connector) {\n obj.sourcePoint = {\n x: obj.sourcePoint.x + diff, y: obj.sourcePoint.y + diff\n };\n obj.targetPoint = {\n x: obj.targetPoint.x + diff, y: obj.targetPoint.y + diff\n };\n if (obj.type === 'Bezier') {\n var segments = obj.segments;\n for (var i = 0; i < segments.length; i++) {\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point1)) {\n segments[parseInt(i.toString(), 10)].point1 = {\n x: segments[parseInt(i.toString(), 10)].point1.x + diff, y: segments[parseInt(i.toString(), 10)].point1.y + diff\n };\n }\n if (!Point.isEmptyPoint(segments[parseInt(i.toString(), 10)].point2)) {\n segments[parseInt(i.toString(), 10)].point2 = {\n x: segments[parseInt(i.toString(), 10)].point2.x + diff, y: segments[parseInt(i.toString(), 10)].point2.y + diff\n };\n }\n }\n }\n if (obj.type === 'Straight' || obj.type === 'Bezier') {\n if (obj.segments && obj.segments.length > 0) {\n var segments = obj.segments;\n for (var i = 0; i < segments.length - 1; i++) {\n segments[parseInt(i.toString(), 10)].point.x += diff;\n segments[parseInt(i.toString(), 10)].point.y += diff;\n }\n }\n }\n }\n else {\n obj.offsetX += diff;\n obj.offsetY += diff;\n }\n };\n /**\n * drawObject method\\\n *\n * @returns { Node | Connector } drawObject method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.drawObject = function (obj) {\n var newObj;\n //let cloneObject: Node | Connector;\n if (obj && obj.shape) {\n if (obj.shape.type === 'Text') {\n obj.width = this.diagram.drawingObject.width ? this.diagram.drawingObject.width : 50;\n obj.height = this.diagram.drawingObject.height ? this.diagram.drawingObject.height : 20;\n }\n }\n var cloneObject = clone(this.diagram.drawingObject);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n cloneObject[\"\" + prop] = obj[\"\" + prop];\n }\n if (getObjectType(this.diagram.drawingObject) === Node || (getObjectType(this.diagram.drawingObject) === Connector && this.diagram.drawingObject.type === 'Freehand' && obj.type !== 'Bezier')) {\n newObj = new Node(this.diagram, 'nodes', cloneObject, true);\n newObj.id = (this.diagram.drawingObject.id || 'node') + randomId();\n }\n else {\n newObj = new Connector(this.diagram, 'connectors', cloneObject, true);\n newObj.id = (this.diagram.drawingObject ? (this.diagram.drawingObject.id ? this.diagram.drawingObject.id : 'connector')\n : 'connector') + randomId();\n }\n this.diagram.initObject(newObj);\n this.diagram.updateDiagramObject(newObj);\n this.diagram.currentDrawingObject = newObj;\n return newObj;\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {Node | Connector} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addObjectToDiagram = function (obj) {\n //let newObj: Node | Connector;\n this.diagram.removeFromAQuad(obj);\n this.diagram.removeObjectsFromLayer(this.diagram.nameTable[obj.id]);\n delete this.diagram.nameTable[obj.id];\n //EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (obj instanceof Connector && obj.type === 'Bezier' && obj.segments.length > 0\n && (this.diagram.drawingObject && this.diagram.drawingObject.type === 'Bezier')) {\n obj.segments = [];\n }\n var newObj = this.diagram.add(obj);\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n this.selectObjects([newObj]);\n if (obj && (!(canContinuousDraw(this.diagram)))) {\n this.diagram.tool &= ~DiagramTools.DrawOnce;\n this.diagram.currentDrawingObject = undefined;\n }\n };\n /**\n * addObjectToDiagram method\\\n *\n * @returns { void } addObjectToDiagram method .\\\n * @param {boolean} enable - provide the objects value.\n * @private\n */\n CommandHandler.prototype.enableServerDataBinding = function (enable) {\n this.diagram.enableServerDataBinding(enable);\n };\n /**\n * addText method\\\n *\n * @returns { void } addText method .\\\n * @param {boolean} obj - provide the objects value.\n * @param {PointModel} currentPosition - provide the objects value.\n * @private\n */\n CommandHandler.prototype.addText = function (obj, currentPosition) {\n var annotation = this.diagram.findElementUnderMouse(obj, currentPosition, this.diagram);\n this.diagram.startTextEdit(obj, annotation instanceof TextElement ? (annotation.id).split('_')[1] : undefined);\n };\n /**\n * isUserHandle method\\\n *\n * @returns { boolean } isUserHandle method .\\\n * @param {PointModel} position - provide the objects value.\n * @private\n */\n CommandHandler.prototype.isUserHandle = function (position) {\n var handle = this.diagram.selectedItems;\n if (handle.wrapper && canShowCorner(handle.constraints, 'UserHandle')) {\n for (var _i = 0, _a = handle.userHandles; _i < _a.length; _i++) {\n var obj = _a[_i];\n if (obj.visible) {\n var paddedBounds = getUserHandlePosition(handle, obj, this.diagram.scroller.transform);\n if (contains(position, paddedBounds, obj.size / (2 * this.diagram.scroller.transform.scale))) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * selectObjects method\\\n *\n * @returns { Promise } selectObjects method .\\\n * @param {(NodeModel | ConnectorModel)[]} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {(NodeModel | ConnectorModel)[]} oldValue - provide the objects value.\n * @private\n */\n CommandHandler.prototype.selectObjects = function (obj, multipleSelection, oldValue) {\n return __awaiter(this, void 0, void 0, function () {\n var arg, swimlaneNode, laneId, j, i, parentId, select, oldSelectedItems, canDoMultipleSelection, canDoSingleSelection, i, newObj, i_1, parentNode;\n return __generator(this, function (_a) {\n arg = {\n oldValue: oldValue ? oldValue : this.getSelectedObject(),\n newValue: obj, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Addition', cancel: false\n };\n // EJ2-57157 - Added to consider the lane header at selection change when selecting a lane.\n if (obj.length > 0 && (obj[0] && obj[0].isLane)) {\n swimlaneNode = this.diagram.getObject(obj[0].parentId);\n obj[0].shape.header = [];\n laneId = '';\n for (j = 0; j < obj.length; j++) {\n for (i = 0; i < swimlaneNode.shape.lanes.length; i++) {\n parentId = obj[0].id.split(obj[0].parentId);\n laneId = parentId[1].slice(0, -1);\n if (laneId === swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].id) {\n obj[0].shape.header.push(swimlaneNode.shape.lanes[parseInt(i.toString(), 10)].header);\n }\n }\n }\n }\n this.diagram.enableServerDataBinding(false);\n select = true;\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n else {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n }\n oldSelectedItems = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n canDoMultipleSelection = canMultiSelect(this.diagram);\n canDoSingleSelection = canSingleSelect(this.diagram);\n if (canDoSingleSelection || canDoMultipleSelection) {\n if (!canDoMultipleSelection && ((obj.length > 1) || (multipleSelection && obj.length === 1))) {\n if (obj.length === 1) {\n this.clearSelection();\n }\n else {\n return [2 /*return*/];\n }\n }\n if (!(canDoSingleSelection || canDoMultipleSelection) && obj.length === 1\n && (!multipleSelection || !hasSelection(this.diagram))) {\n this.clearSelection();\n return [2 /*return*/];\n }\n }\n if (!arg.cancel) {\n for (i = 0; i < obj.length; i++) {\n newObj = obj[parseInt(i.toString(), 10)];\n if (newObj) {\n select = true;\n if (!hasSelection(this.diagram)) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n else {\n if ((i > 0 || multipleSelection) && newObj.children && !newObj.parentId) {\n for (i_1 = 0; i_1 < this.diagram.selectedItems.nodes.length; i_1++) {\n parentNode = this.diagram.nameTable[this.diagram.selectedItems.nodes[parseInt(i_1.toString(), 10)].parentId];\n if (parentNode) {\n parentNode = this.findParent(parentNode);\n if (parentNode) {\n if (newObj.id === parentNode.id) {\n this.selectGroup(newObj);\n }\n }\n }\n }\n }\n this.selectProcesses(newObj);\n select = this.selectBpmnSubProcesses(newObj);\n if (select) {\n this.select(newObj, i > 0 || multipleSelection, true);\n }\n }\n }\n }\n if (oldValue === undefined) {\n oldValue = oldSelectedItems;\n }\n arg = {\n oldValue: oldValue ? oldValue : [],\n newValue: this.getSelectedObject(),\n cause: this.diagram.diagramActions, state: 'Changed', type: 'Addition', cancel: false\n };\n this.diagram.renderSelector(multipleSelection || (obj && obj.length > 1));\n // this.updateBlazorSelectorModel(oldValue);\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n this.diagram.enableServerDataBinding(true);\n }\n return [2 /*return*/];\n });\n });\n };\n // /**\n // * updateBlazorSelector method\\\n // *\n // * @returns { void } updateBlazorSelector method .\\\n // * @private\n // */\n // public updateBlazorSelector(): void {\n // //remove blazor code\n // }\n /**\n * findParent method\\\n *\n * @returns { Node } findParent method .\\\n * @param {Node} node - provide the objects value.\n * @private\n */\n CommandHandler.prototype.findParent = function (node) {\n if (node.parentId) {\n node = this.diagram.nameTable[node.parentId];\n this.findParent(node);\n }\n return node;\n };\n CommandHandler.prototype.selectProcesses = function (newObj) {\n if (this.hasProcesses(newObj)) {\n var processes = (newObj).shape.activity.subProcess.processes;\n for (var i = 0; i < processes.length; i++) {\n var innerChild = this.diagram.nameTable[processes[parseInt(i.toString(), 10)]];\n if (this.hasProcesses(innerChild)) {\n this.selectObjects([innerChild], true);\n }\n this.unSelect(innerChild);\n }\n }\n };\n CommandHandler.prototype.selectGroup = function (newObj) {\n for (var j = 0; j < newObj.children.length; j++) {\n var innerChild = this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]];\n if (innerChild.children) {\n this.selectGroup(innerChild);\n }\n this.unSelect(this.diagram.nameTable[newObj.children[parseInt(j.toString(), 10)]]);\n }\n };\n CommandHandler.prototype.selectBpmnSubProcesses = function (node) {\n var select = true;\n var parent;\n if (node.processId) {\n if (isSelected(this.diagram, this.diagram.nameTable[node.processId])) {\n select = false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[node.processId]);\n }\n }\n else if (node instanceof Connector) {\n if (node.sourceID && this.diagram.nameTable[node.sourceID] &&\n this.diagram.nameTable[node.sourceID].processId) {\n parent = this.diagram.nameTable[node.sourceID].processId;\n }\n if (node.targetID && this.diagram.nameTable[node.targetID] &&\n this.diagram.nameTable[node.targetID].processId) {\n parent = this.diagram.nameTable[node.targetID].processId;\n }\n if (parent) {\n if (isSelected(this.diagram, this.diagram.nameTable[\"\" + parent])) {\n return false;\n }\n else {\n select = this.selectBpmnSubProcesses(this.diagram.nameTable[\"\" + parent]);\n }\n }\n }\n else if (node.parentId && this.diagram.nameTable[node.parentId] &&\n this.diagram.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n if (isSelected(this.diagram, this.diagram.nameTable[node.parentId])) {\n select = false;\n }\n }\n return select;\n };\n CommandHandler.prototype.hasProcesses = function (node) {\n if (node) {\n if ((node.shape.type === 'Bpmn') && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length > 0) {\n return true;\n }\n }\n return false;\n };\n /**\n * select method\\\n *\n * @returns { void } select method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {boolean} multipleSelection - provide the objects value.\n * @param {boolean} preventUpdate - provide the objects value.\n * @private\n */\n CommandHandler.prototype.select = function (obj, multipleSelection, preventUpdate) {\n var hasLayer = this.getObjectLayer(obj.id);\n if ((canSelect(obj) && !(obj instanceof Selector) && !isSelected(this.diagram, obj))\n && (hasLayer && !hasLayer.lock && hasLayer.visible) && obj.wrapper.visible) {\n multipleSelection = hasSelection(this.diagram) ? multipleSelection : false;\n if (!multipleSelection) {\n this.clearSelection();\n }\n this.diagram.enableServerDataBinding(false);\n var selectorModel = this.diagram.selectedItems;\n var convert = obj;\n if (convert instanceof Node) {\n if (obj.isHeader) {\n var node = this.diagram.nameTable[obj.parentId];\n selectorModel.nodes.push(node);\n }\n else {\n selectorModel.nodes.push(obj);\n }\n }\n else {\n selectorModel.connectors.push(obj);\n }\n // EJ2-56919 - Push the newly selected objects in selectedObjects collection\n selectorModel.selectedObjects.push(obj);\n if (!multipleSelection) {\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n var wrapper = gridSelection(this.diagram, selectorModel);\n if (wrapper) {\n selectorModel.wrapper.children[0] = wrapper;\n }\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n }\n else {\n selectorModel.wrapper.rotateAngle = selectorModel.rotateAngle = 0;\n selectorModel.wrapper.children.push(obj.wrapper);\n }\n if (!preventUpdate) {\n this.diagram.renderSelector(multipleSelection);\n }\n this.diagram.enableServerDataBinding(true);\n }\n };\n // private getObjectCollectionId(isNode: boolean, clearSelection?: boolean): string[] {\n // const id: string[] = [];\n // let i: number = 0;\n // const selectedObject: (NodeModel | ConnectorModel)[] = isNode ? this.diagram.selectedItems.nodes\n // : this.diagram.selectedItems.connectors;\n // while (!clearSelection && i < selectedObject.length) {\n // id[parseInt(i.toString(), 10)] = selectedObject[parseInt(i.toString(), 10)].id;\n // i++;\n // }\n // return id;\n // }\n // private updateBlazorSelectorModel(oldItemsCollection: (NodeModel | ConnectorModel)[], clearSelection?: boolean): void {\n // remove blazor code\n // }\n /**\n * labelSelect method\\\n *\n * @returns { void } labelSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @param {DiagramElement} textWrapper - provide the objects value.\n * @private\n */\n CommandHandler.prototype.labelSelect = function (obj, textWrapper) {\n this.oldSelectedObjects = cloneSelectedObjects(this.diagram);\n var selectorModel = (this.diagram.selectedItems);\n var isEnableServerDatabind = this.diagram.allowServerDataBinding;\n this.diagram.allowServerDataBinding = false;\n selectorModel.nodes = selectorModel.connectors = [];\n this.diagram.allowServerDataBinding = isEnableServerDatabind;\n if (obj instanceof Node) {\n selectorModel.nodes[0] = obj;\n }\n else {\n selectorModel.connectors[0] = obj;\n }\n selectorModel.annotation = (this.findTarget(textWrapper, obj));\n selectorModel.init(this.diagram);\n this.diagram.renderSelector(false);\n };\n /**\n * unSelect method\\\n *\n * @returns { void } unSelect method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the objects value.\n * @private\n */\n CommandHandler.prototype.unSelect = function (obj) {\n var objArray = [];\n objArray.push(obj);\n var items = (this.diagram.selectedItems.nodes.concat(this.diagram.selectedItems.connectors));\n var selectedObjects = items.filter(function (items) {\n return items.id !== obj.id;\n });\n var arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n if (!this.diagram.currentSymbol) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n if (isSelected(this.diagram, obj)) {\n var selectormodel = this.diagram.selectedItems;\n var index = void 0;\n if (obj instanceof Node) {\n index = selectormodel.nodes.indexOf(obj, 0);\n selectormodel.nodes.splice(index, 1);\n }\n else {\n index = selectormodel.connectors.indexOf(obj, 0);\n selectormodel.connectors.splice(index, 1);\n }\n index = selectormodel.selectedObjects.indexOf(obj, 0);\n selectormodel.selectedObjects.splice(index, 1);\n arg = {\n oldValue: items, newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n // this.updateBlazorSelectorModel(objArray);\n arg = {\n oldValue: cloneBlazorObject(items), newValue: selectedObjects, cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: arg.cancel\n };\n if (!arg.cancel) {\n index = selectormodel.wrapper.children.indexOf(obj.wrapper, 0);\n selectormodel.wrapper.children.splice(index, 1);\n this.diagram.updateSelector();\n if (!this.diagram.currentSymbol) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n }\n };\n /**\n * getChildElements method\\\n *\n * @returns { string[] } getChildElements method .\\\n * @param {DiagramElement[]} child - provide the objects value.\n * @private\n */\n // public getChildElements(child: DiagramElement[]): string[] {\n // const children: string[] = [];\n // for (let i: number = 0; i < child.length; i++) {\n // const childNode: DiagramElement = child[parseInt(i.toString(), 10)];\n // if ((childNode as Container).children && (childNode as Container).children.length > 0) {\n // // children.concat(this.getChildElements((childNode as Container).children));\n // } else {\n // children.push(childNode.id);\n // if (childNode instanceof TextElement) {\n // children.push(childNode.id + '_text');\n // }\n // }\n // }\n // return children;\n // }\n /**\n * moveSvgNode method\\\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the objects value.\n * @param {string} targetID - provide the objects value.\n * @private\n */\n CommandHandler.prototype.moveSvgNode = function (nodeId, targetID) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.nameTable[\"\" + targetID];\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(nodeId, targetID);\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n };\n CommandHandler.prototype.moveAfterSvgNode = function (nodeId, targetID) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.nameTable[\"\" + targetID];\n if (node && (node.shape.type === 'HTML' || node.shape.type === 'Native')) {\n for (var i = 0; i < this.diagram.views.length; i++) {\n var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement';\n var backNode = getDiagramElement(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]);\n var diagramDiv = targetID ? getDiagramElement(targetID + id, this.diagram.views[parseInt(i.toString(), 10)])\n : backNode.parentElement.firstChild;\n if (backNode && diagramDiv) {\n if (backNode.parentNode.id === diagramDiv.parentNode.id) {\n diagramDiv.insertAdjacentElement('afterend', backNode);\n }\n }\n }\n }\n else {\n var diagramDiv = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.insertAdjacentElement('afterend', backNode);\n }\n };\n /**\n * sendLayerBackward method\\\n *\n * @returns { void } sendLayerBackward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendLayerBackward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex !== 0) {\n var index = layer.zIndex;\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects;\n var targetObject = this.getLayer(this.diagram.layerZIndexTable[index - 1]).objects[0];\n if (targetObject) {\n for (var _i = 0, currentLayerObject_1 = currentLayerObject; _i < currentLayerObject_1.length; _i++) {\n var obj = currentLayerObject_1[_i];\n this.moveSvgNode(obj, targetObject);\n }\n }\n }\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index - 1]);\n targetLayer.zIndex = targetLayer.zIndex + 1;\n layer.zIndex = layer.zIndex - 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index - 1];\n this.diagram.layerZIndexTable[index - 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * bringLayerForward method\\\n *\n * @returns { void } bringLayerForward method .\\\n * @param {string} layerName - provide the objects value.\n * @private\n */\n CommandHandler.prototype.bringLayerForward = function (layerName) {\n var layer = this.getLayer(layerName);\n if (layer && layer.zIndex < this.diagram.layers.length - 1) {\n var index = layer.zIndex;\n var targetLayer = this.getLayer(this.diagram.layerZIndexTable[index + 1]);\n if (this.diagram.mode === 'SVG') {\n var currentLayerObject = layer.objects[0];\n var targetLayerObjects = targetLayer.objects;\n for (var _i = 0, targetLayerObjects_1 = targetLayerObjects; _i < targetLayerObjects_1.length; _i++) {\n var obj = targetLayerObjects_1[_i];\n if (obj) {\n this.moveSvgNode(obj, currentLayerObject);\n }\n }\n }\n targetLayer.zIndex = targetLayer.zIndex - 1;\n layer.zIndex = layer.zIndex + 1;\n var temp = this.diagram.layerZIndexTable[parseInt(index.toString(), 10)];\n this.diagram.layerZIndexTable[parseInt(index.toString(), 10)] = this.diagram.layerZIndexTable[index + 1];\n this.diagram.layerZIndexTable[index + 1] = temp;\n if (this.diagram.mode === 'Canvas') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * sendToBack method\\\n *\n * @returns { void } sendToBack method .\\\n * @param {NodeModel | ConnectorModel} object - provide the objects value.\n * @private\n */\n CommandHandler.prototype.sendToBack = function (object) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || object) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform send to back operation\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (object && object.id) {\n objects.push(object);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n var objectId = (object && object.id);\n for (var i = 0; i < objects.length; i++) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectId = objects[parseInt(i.toString(), 10)].id;\n var index = this.diagram.nameTable[\"\" + objectId].zIndex;\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var minZindex = null;\n var targetId = '';\n for (var i_2 = 0; i_2 < layerObjects.length; i_2++) {\n var obj = this.diagram.nameTable[layerObjects[parseInt(i_2.toString(), 10)]];\n if (minZindex === null || obj.zIndex < minZindex) {\n minZindex = obj.zIndex;\n targetId = obj.id;\n }\n }\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var undoObject = cloneObject(this.diagram.selectedItems);\n var tempIndex = 0;\n //Checks whether the selected node is the only node in the node array.\n //Checks whether it is not a group and the nodes behind it are not it’s children.\n if (this.diagram.nodes.length !== 1 && (this.diagram.nameTable[\"\" + objectId].children === undefined ||\n this.checkObjectBehind(objectId, zIndexTable, index))) {\n var obj = this.diagram.nameTable[\"\" + objectId];\n if (obj.zIndex > minZindex && obj.shape.type !== 'SwimLane') {\n var clonedNode = cloneObject(obj);\n obj.zIndex = minZindex - ((objects.indexOf(obj) !== -1 ? objects.indexOf(obj) : 0) + 1);\n if (obj.children) {\n minZindex = this.findLowestZIndex(obj, layerObjects) || minZindex;\n }\n this.triggerOrderCommand(clonedNode, obj, obj);\n if (obj.children) {\n this.updateGroupZindex(obj, 'SendToBack', minZindex);\n }\n }\n else if (obj.shape.type === 'SwimLane') {\n tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable);\n }\n // for (let i: number = index; i > 0; i--) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // //When there are empty records in the zindex table\n // if (!zIndexTable[i - 1]) {\n // zIndexTable[i - 1] = zIndexTable[parseInt(i.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[i - 1]].zIndex = i;\n // delete zIndexTable[parseInt(i.toString(), 10)];\n // } else {\n // //bringing the objects forward\n // let clonedNode = cloneObject( this.diagram.nameTable[zIndexTable[parseInt((i-1).toString(), 10)]]);\n // zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[i - 1];\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // this.triggerOrderCommand(clonedNode, this.diagram.nameTable[zIndexTable[parseInt((i-1).toString(), 10)]], this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]]);\n // }\n // }\n // }\n // for (let i: number = index; i > 0; i--) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // }\n // }\n // if (obj.shape.type !== 'SwimLane') {\n // zIndexTable[0] = this.diagram.nameTable[`${objectId}`].id;\n // this.diagram.nameTable[`${objectId}`].zIndex = 0;\n // this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n // } else {\n // tempIndex = this.swapZIndexObjects(index, zIndexTable, objectId, tempTable);\n // }\n if (this.diagram.mode === 'SVG') {\n var obj_1 = this.diagram.nameTable[\"\" + objectId];\n var i_3 = obj_1.shape.type !== 'SwimLane' ? minZindex : tempIndex;\n // if (i !== tempIndex) {\n // i = (obj.children && obj.children.length > 0) ? index : 1;\n // }\n var target = zIndexTable[parseInt(i_3.toString(), 10)];\n // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node.\n while (!target && i_3 < index) {\n target = zIndexTable[++i_3];\n }\n // EJ2-46656 - CR issue fix\n target = this.resetTargetNode(objectId, target, i_3, zIndexTable);\n //EJ2-69654 - Send to back command not working when there is single node in layer\n if (target) {\n target = this.diagram.nameTable[\"\" + target].parentId ? this.checkParentExist(target) : target;\n this.moveSvgNode(objectId, target);\n }\n this.updateNativeNodeIndex(objectId);\n this.updateLayerZindexTable(layerNum);\n }\n else {\n this.diagram.refreshCanvasLayers();\n this.updateLayerZindexTable(layerNum);\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n var entry = { type: 'SendToBack', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n CommandHandler.prototype.updateGroupZindex = function (parent, command, index) {\n if (command === 'SendToBack' || command === 'SendBackward') {\n var parentZindex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.children) {\n child.zIndex = parentZindex - (i + 1);\n this.updateGroupZindex(child, command, child.zIndex);\n }\n else {\n child.zIndex = parentZindex - (i + 1);\n }\n }\n }\n else if (command === 'BringToFront' || command === 'BringForward') {\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.children) {\n child.zIndex = index + (i + 1);\n this.updateGroupZindex(child, command, child.zIndex);\n }\n else {\n child.zIndex = index + (i + 1);\n }\n }\n }\n };\n CommandHandler.prototype.updateLayerZindexTable = function (layerIndex) {\n var layer = this.diagram.layers[parseInt(layerIndex.toString(), 10)];\n layer.zIndexTable = {};\n for (var i = 0; i < layer.objects.length; i++) {\n var obj = this.diagram.nameTable[layer.objects[parseInt(i.toString(), 10)]];\n layer.zIndexTable[obj.zIndex] = obj.id;\n }\n };\n CommandHandler.prototype.swapZIndexObjects = function (index, zIndexTable, objectId, tempTable) {\n var tempIndex = 0;\n var childCount = 0;\n var childIndex = -1;\n var j = 1;\n // Get the swimlane's Children count\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)]\n && this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].parentId === objectId) {\n // Get the swimlane's first children position from z index table\n if (childIndex === -1) {\n childIndex = i;\n }\n childCount++;\n }\n }\n // Swap the swimlane children to the top of the z index table\n for (var i = 0; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)] && j <= childCount) {\n while (!zIndexTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[parseInt(childIndex.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n childIndex++;\n j++;\n }\n }\n var k = 0;\n // Get the Z index from ZindexTable in the child's count position. In that position we want to put the swimlane\n for (var i = 0; i < childCount; i++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n tempIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n tempIndex = tempIndex + 1;\n // Check if there is a object in the z index table or not\n while (!zIndexTable[parseInt(tempIndex.toString(), 10)]) {\n ++tempIndex;\n }\n k = 0;\n // Place the swimlane at the next position of the swimlane's last children.\n zIndexTable[parseInt(tempIndex.toString(), 10)] = this.diagram.nameTable[\"\" + objectId].id;\n this.diagram.nameTable[\"\" + objectId].zIndex = tempIndex;\n tempIndex = tempIndex + 1;\n // Now swap the intersect nodes at next position of the swimlane.\n for (var i = tempIndex; i <= index; i++) {\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n zIndexTable[parseInt(i.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n k++;\n }\n }\n return tempIndex;\n };\n CommandHandler.prototype.resetTargetNode = function (objectId, target, i, zIndexTable) {\n if (this.diagram.nameTable[\"\" + objectId].shape.type === 'SwimLane'\n && this.diagram.nameTable[\"\" + target].parentId !== undefined && this.diagram.nameTable[\"\" + target].parentId !== '' && this.diagram.nameTable[this.diagram.nameTable[\"\" + target].parentId].isLane) {\n i = i + 1;\n if (zIndexTable[parseInt(i.toString(), 10)]) {\n target = zIndexTable[parseInt(i.toString(), 10)];\n return target = this.resetTargetNode(objectId, target, i, zIndexTable);\n }\n else {\n return target;\n }\n }\n else {\n return target;\n }\n };\n // private getZIndexObjects(): void {\n // // const element: (NodeModel | ConnectorModel)[] = [];\n // // let i: number; let j: number;\n // // for (i = 0; i < this.diagram.nodes.length; i++) {\n // // element.push(this.diagram.nodes[parseInt(i.toString(), 10)]);\n // // }\n // // for (j = 0; j < this.diagram.connectors.length; j++) {\n // // element.push(this.diagram.connectors[parseInt(j.toString(), 10)]);\n // // }\n // // this.updateBlazorZIndex(element);\n // }\n // private updateBlazorZIndex(element: (NodeModel | ConnectorModel)[]): void {\n // // const blazorInterop: string = 'sfBlazor';\n // // const blazor: string = 'Blazor';\n // // let diagramobject: object = {};\n // // const nodeObject: NodeModel[] = [];\n // // const connectorObject: ConnectorModel[] = [];\n // // let k: number;\n // // if (element && element.length > 0) {\n // // for (k = 0; k < element.length; k++) {\n // // const elementObject: (NodeModel | ConnectorModel) = element[parseInt(k.toString(), 10)];\n // // if (elementObject instanceof Node) {\n // // nodeObject.push(this.getBlazorObject(elementObject));\n // // } else if (elementObject instanceof Connector) {\n // // connectorObject.push(this.getBlazorObject(elementObject));\n // // }\n // // }\n // // }\n // // diagramobject = {\n // // nodes: nodeObject,\n // // connectors: connectorObject\n // // };\n // // if (window && window[`${blazor}`]) {\n // // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': diagramobject };\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // // }\n // }\n // private getBlazorObject(objectName: (NodeModel | ConnectorModel)): any {\n // // const object: object = {\n // // sfIndex: getIndex(this.diagram, objectName.id),\n // // zIndex: objectName.zIndex\n // // };\n // // return object;\n // }\n //Checks whether the target is a child node.\n CommandHandler.prototype.checkParentExist = function (target) {\n var objBehind = target;\n while (this.diagram.nameTable[\"\" + objBehind].parentId) {\n objBehind = this.diagram.nameTable[\"\" + objBehind].parentId;\n }\n return objBehind;\n };\n //Checks whether the selected node is not a parent of another node.\n CommandHandler.prototype.checkObjectBehind = function (objectId, zIndexTable, index) {\n // for (let i: number = 0; i < index; i++) {\n // const z: string = zIndexTable[parseInt(i.toString(), 10)];\n // if (this.diagram.nameTable[`${z}`] && objectId !== this.diagram.nameTable[`${z}`].parentId) {\n // return true;\n // }\n // }\n return true;\n };\n /**\n * bringToFront method\\\n *\n * @returns { void } bringToFront method .\\\n * @param {NodeModel | ConnectorModel } obj - Provide the nodeArray element .\n * @private\n */\n CommandHandler.prototype.bringToFront = function (obj) {\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n // EJ2-57772 - Added the below code to iterate all the selected nodes / connectors in the diagram and\n // perform bring to front operation\n var objectName = (obj && obj.id);\n var selectedItems = this.diagram.selectedItems;\n var objects = [];\n if (obj && obj.id) {\n objects.push(obj);\n }\n else {\n objects = objects.concat(selectedItems.nodes);\n objects = objects.concat(selectedItems.connectors);\n }\n for (var i = 0; i < objects.length; i++) {\n var clonedObject = cloneObject(objects[parseInt(i.toString(), 10)]);\n objectName = objects[parseInt(i.toString(), 10)].id;\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectName));\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n var undoObject = cloneObject(this.diagram.selectedItems);\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var maxZindex = null;\n for (var i_4 = 0; i_4 < layerObjects.length; i_4++) {\n var obj_2 = this.diagram.nameTable[layerObjects[parseInt(i_4.toString(), 10)]];\n if (maxZindex === null || obj_2.zIndex > maxZindex) {\n maxZindex = obj_2.zIndex;\n }\n }\n var tempTable = JSON.parse(JSON.stringify(zIndexTable));\n var tempIndex = 0;\n //find the maximum zIndex of the tabel\n var tabelLength = Number(Object.keys(zIndexTable).sort(function (a, b) { return Number(a) - Number(b); }).reverse()[0]);\n var index = this.diagram.nameTable[\"\" + objectName].zIndex;\n var oldzIndexTable = [];\n var length_1 = 0;\n for (var i_5 = 0; i_5 <= tabelLength; i_5++) {\n oldzIndexTable.push(zIndexTable[parseInt(i_5.toString(), 10)]);\n }\n var object = this.diagram.nameTable[\"\" + objectName];\n if (object.shape.type === 'SwimLane') {\n for (var i_6 = tabelLength; i_6 >= index; i_6--) {\n if (zIndexTable[parseInt(i_6.toString(), 10)]\n && !(this.diagram.nameTable[zIndexTable[parseInt(i_6.toString(), 10)]].parentId === objectName)) {\n length_1 = i_6;\n tabelLength = length_1;\n break;\n }\n }\n }\n var obj_3 = this.diagram.nameTable[\"\" + objectName];\n if (obj_3.zIndex < maxZindex && obj_3.shape.type !== 'SwimLane') {\n var clonedNode = cloneObject(obj_3);\n var parentZindex = 0;\n if (obj_3.children) {\n maxZindex = this.findGreatestZIndex(obj_3, layerObjects) || maxZindex;\n this.updateGroupZindex(obj_3, 'BringToFront', maxZindex);\n for (var i_7 = 0; i_7 < obj_3.children.length; i_7++) {\n var child = this.diagram.nameTable[obj_3.children[parseInt(i_7.toString(), 10)]];\n if (child.zIndex > parentZindex) {\n parentZindex = child.zIndex;\n }\n }\n }\n else {\n parentZindex = maxZindex;\n }\n obj_3.zIndex = parentZindex + ((objects.indexOf(obj_3) !== -1 ? objects.indexOf(obj_3) : 0) + 1);\n this.triggerOrderCommand(clonedNode, obj_3, obj_3);\n }\n // for (let i: number = index; i < tabelLength; i++) {\n // //When there are empty records in the zindex table\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // if (!zIndexTable[i + 1]) {\n // zIndexTable[i + 1] = zIndexTable[parseInt(i.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[i + 1]].zIndex = i;\n // delete zIndexTable[parseInt(i.toString(), 10)];\n // } else {\n // //bringing the objects backward\n // let clonedNode = cloneObject(this.diagram.nameTable[zIndexTable[parseInt((i+1).toString(), 10)]]);\n // zIndexTable[parseInt(i.toString(), 10)] = zIndexTable[i + 1];\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // this.triggerOrderCommand(clonedNode, this.diagram.nameTable[zIndexTable[parseInt((i+1).toString(), 10)]], this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]]);\n // }\n // }\n // }\n // for (let i: number = index; i < tabelLength; i++) {\n // if (zIndexTable[parseInt(i.toString(), 10)]) {\n // this.diagram.nameTable[zIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n // }\n // }\n // if (object.shape.type !== 'SwimLane') {\n // zIndexTable[parseInt(tabelLength.toString(), 10)] = this.diagram.nameTable[`${objectName}`].id;\n // this.diagram.nameTable[`${objectName}`].zIndex = tabelLength;\n // this.triggerOrderCommand(clonedObject, objects[parseInt(i.toString(), 10)], objects[parseInt(i.toString(), 10)]);\n // }\n else if (obj_3.shape.type === 'SwimLane') {\n var childCount = 0;\n var childIndex = -1;\n var tempIndex_1 = 0;\n var laneIndex = 0;\n var cloneTable = JSON.parse(JSON.stringify(zIndexTable));\n for (var i_8 = 0; i_8 <= index; i_8++) {\n if (zIndexTable[parseInt(i_8.toString(), 10)]\n && this.diagram.nameTable[zIndexTable[parseInt(i_8.toString(), 10)]].parentId === objectName) {\n if (childIndex === -1) {\n childIndex = i_8;\n tempIndex_1 = i_8;\n break;\n }\n }\n }\n for (var i_9 = 0; i_9 <= tabelLength; i_9++) {\n if (tempTable[parseInt(i_9.toString(), 10)] && tempTable[parseInt(i_9.toString(), 10)] !== objectName\n && this.diagram.nameTable[tempTable[parseInt(i_9.toString(), 10)]].parentId !== objectName) {\n var node = this.diagram.nameTable[tempTable[parseInt(i_9.toString(), 10)]];\n var swimlaneObject = this.diagram.nameTable[\"\" + objectName];\n if (node.zIndex >= swimlaneObject.zIndex) {\n childCount++;\n }\n }\n }\n var k = childIndex;\n for (var i_10 = 0; i_10 <= childCount; i_10++) {\n while (!zIndexTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n laneIndex = this.diagram.nameTable[zIndexTable[parseInt(k.toString(), 10)]].zIndex;\n k++;\n }\n for (var i_11 = laneIndex; i_11 <= tabelLength; i_11++) {\n while (!cloneTable[parseInt(childIndex.toString(), 10)]) {\n childIndex++;\n }\n while (!zIndexTable[parseInt(i_11.toString(), 10)]) {\n i_11++;\n }\n zIndexTable[parseInt(i_11.toString(), 10)] = cloneTable[parseInt(childIndex.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(i_11.toString(), 10)]].zIndex = i_11;\n childIndex++;\n }\n zIndexTable[parseInt(tabelLength.toString(), 10)] = this.diagram.nameTable[\"\" + objectName].id;\n this.diagram.nameTable[\"\" + objectName].zIndex = tabelLength;\n k = index + 1;\n var j = tempIndex_1;\n for (var i_12 = 0; i_12 < childCount; i_12++) {\n while (!tempTable[parseInt(k.toString(), 10)]) {\n k++;\n }\n while (this.diagram.nameTable[tempTable[parseInt(k.toString(), 10)]].parentId === objectName) {\n k++;\n }\n while (!zIndexTable[parseInt(j.toString(), 10)]) {\n j++;\n }\n zIndexTable[parseInt(j.toString(), 10)] = tempTable[parseInt(k.toString(), 10)];\n this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n k++;\n j++;\n }\n }\n if (this.diagram.mode === 'SVG') {\n // const diagramLayer: SVGGElement = this.diagram.diagramLayer as SVGGElement;\n // //const child: string[] = this.getChildElements(this.diagram.nameTable[objectName].wrapper.children);\n // //const targerNodes: Object = [];\n // let element: HTMLElement = getDiagramElement(objectName + '_groupElement', this.diagram.element.id);\n // const nodes: NodeModel[] = this.diagram.selectedItems.nodes;\n // if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) {\n // element.parentNode.removeChild(element);\n // for (let j: number = 0; j < this.diagram.views.length; j++) {\n // element = getDiagramElement(\n // objectName + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'),\n // this.diagram.views[parseInt(j.toString(), 10)]);\n // const lastChildNode: HTMLElement = element.parentNode.lastChild as HTMLElement;\n // lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling);\n // }\n // const htmlLayer: HTMLElement = getHTMLLayer(this.diagram.element.id);\n // this.diagram.diagramRenderer.renderElement(this.diagram.nameTable[`${objectName}`].wrapper, diagramLayer, htmlLayer);\n // } else {\n // Object.keys(zIndexTable).forEach((key: string) => {\n // const zIndexValue: string = zIndexTable[`${key}`];\n // if ((zIndexValue !== objectName) && (this.diagram.nameTable[`${zIndexValue}`].parentId) !== objectName) {\n // //EJ2-42101 - SendToBack and BringToFront not working for connector with group node\n // //Added @Dheepshiva to restrict the objects with lower zIndex\n // if (zIndexValue !== undefined &&\n // (oldzIndexTable.indexOf(objectName) < oldzIndexTable.indexOf(zIndexValue))) {\n // const objectNode: Node | Connector = this.diagram.nameTable[`${objectName}`];\n // const zIndexNode: Node | Connector = this.diagram.nameTable[`${zIndexValue}`];\n // if (objectNode.parentId === '' && zIndexNode.parentId === '' && zIndexNode.parentId === undefined\n // && objectNode.parentId !== zIndexNode.id) {\n // this.moveSvgNode(zIndexValue, objectName);\n // this.updateNativeNodeIndex(objectName);\n // } else {\n // if (this.checkGroupNode(objectName, zIndexValue, this.diagram.nameTable)) {\n // this.moveSvgNode(zIndexValue, objectName);\n // this.updateNativeNodeIndex(objectName);\n // }\n // }\n // }\n // }\n // });\n // this.updateLayerZindexTable(layerNum);\n // }\n var obj_4 = this.diagram.nameTable[\"\" + objectName];\n var i_13 = obj_4.shape.type !== 'SwimLane' ? maxZindex : tempIndex;\n // if (i !== tempIndex) {\n // i = (obj.children && obj.children.length > 0) ? index : 1;\n // }\n var target = zIndexTable[parseInt(i_13.toString(), 10)];\n // EJ2-49326 - (CR issue fix) An exception raised when send the swimlane back to the normal node.\n // while (!target && i > index) {\n // target = zIndexTable[++i];\n // }\n // EJ2-46656 - CR issue fix\n target = this.resetTargetNode(objectName, target, i_13, zIndexTable);\n //EJ2-69654 - Send to back command not working when there is single node in layer\n if (target) {\n target = this.diagram.nameTable[\"\" + target].parentId ? this.checkParentExist(target) : target;\n this.moveAfterSvgNode(objectName, target);\n }\n var diagramLayer = this.diagram.diagramLayer;\n var element = getDiagramElement(objectName + '_groupElement', this.diagram.element.id);\n var nodes = this.diagram.selectedItems.nodes;\n if (nodes.length > 0 && (nodes[0].shape.type === 'Native' || nodes[0].shape.type === 'HTML')) {\n element.parentNode.removeChild(element);\n for (var j = 0; j < this.diagram.views.length; j++) {\n element = getDiagramElement(objectName + (nodes[0].shape.type === 'HTML' ? '_html_element' : '_content_groupElement'), this.diagram.views[parseInt(j.toString(), 10)]);\n var lastChildNode = element.parentNode.lastChild;\n lastChildNode.parentNode.insertBefore(element, lastChildNode.nextSibling);\n }\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n this.diagram.diagramRenderer.renderElement(this.diagram.nameTable[\"\" + objectName].wrapper, diagramLayer, htmlLayer);\n }\n this.updateLayerZindexTable(layerNum);\n }\n else {\n this.diagram.refreshCanvasLayers();\n this.updateLayerZindexTable(layerNum);\n }\n var redoObject = cloneObject(this.diagram.selectedItems);\n var entry = { type: 'BringToFront', category: 'Internal', undoObject: undoObject, redoObject: redoObject };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n CommandHandler.prototype.findGreatestZIndex = function (parent, layerObjects) {\n var layerObj = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n // Get zIndex values of nodes excluding children of the parent\n var zIndexes = layerObj.filter(function (node) { return node.parentId === '' && node.id !== parent.id; }).map(function (node) { return node.zIndex; });\n // Sort zIndexes in descending order\n zIndexes.sort(function (a, b) { return b - a; });\n // Find the greatest zIndex excluding children\n if (zIndexes.length > 0) {\n return zIndexes[0];\n }\n return null;\n };\n CommandHandler.prototype.findLowestZIndex = function (parent, layerObjects) {\n var layerObj = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n // Get zIndex values of nodes excluding children of the parent\n var zIndexes = layerObj.filter(function (node) { return node.parentId === '' && node.id !== parent.id; }).map(function (node) { return node.zIndex; });\n // Sort zIndexes in ascending order\n zIndexes.sort(function (a, b) { return a - b; });\n // Find the lowest zIndex excluding children\n if (zIndexes.length > 0) {\n return zIndexes[0];\n }\n return null;\n };\n CommandHandler.prototype.triggerOrderCommand = function (oldObj, newObj, obj) {\n var clonedObject = cloneObject(oldObj);\n // EJ2-61653 - Added below code to get only changed values (zIndex) and passed as an argument to property change event\n var oldValue = {\n zIndex: clonedObject.zIndex\n };\n var newValue = {\n zIndex: newObj.zIndex\n };\n var arg = {\n element: obj, cause: this.diagram.diagramActions, diagramAction: this.diagram.getDiagramAction(this.diagram.diagramActions),\n oldValue: oldValue, newValue: newValue\n };\n this.diagram.triggerEvent(DiagramEvent.propertyChange, arg);\n };\n CommandHandler.prototype.checkGroupNode = function (selectedNodeName, layerObject, nameTable) {\n return nameTable[\"\" + layerObject].parentId === nameTable[\"\" + selectedNodeName].parentId;\n };\n /**\n * sortByZIndex method\\\n *\n * @returns { Object[] } sortByZIndex method .\\\n * @param { Object[] } nodeArray - Provide the nodeArray element .\n * @param { string } sortID - Provide the sortID element .\n * @private\n */\n CommandHandler.prototype.sortByZIndex = function (nodeArray, sortID, command) {\n if (command === 'BringForward') {\n var id_1 = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n return b[\"\" + id_1] - a[\"\" + id_1];\n });\n }\n else {\n var id_2 = sortID ? sortID : 'zIndex';\n nodeArray = nodeArray.sort(function (a, b) {\n return a[\"\" + id_2] - b[\"\" + id_2];\n });\n }\n return nodeArray;\n };\n /**\n * orderCommands method\\\n *\n * @returns { void } orderCommands method .\\\n * @param { boolean } isRedo - Provide the previousObject element .\n * @param { Selector } selector - Provide the previousObject element .\n * @param { EntryType } action - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.orderCommands = function (isRedo, selector, action) {\n var _this = this;\n var selectedObject = selector.nodes;\n selectedObject = selectedObject.concat(selector.connectors);\n if (isRedo) {\n if (action === 'SendBackward') {\n for (var i = 0; i < selectedObject.length; i++) {\n this.sendBackward(selectedObject[parseInt(i.toString(), 10)]);\n }\n }\n else if (action === 'SendForward') {\n for (var i = 0; i < selectedObject.length; i++) {\n this.sendForward(selectedObject[parseInt(i.toString(), 10)]);\n }\n }\n else if (action === 'BringToFront') {\n this.bringToFront(selectedObject[0]);\n }\n else if (action === 'SendToBack') {\n this.sendToBack(selectedObject[0]);\n }\n }\n else {\n var startZIndex_1 = selectedObject[0].zIndex;\n var endZIndex = this.diagram.nameTable[selectedObject[0].id].zIndex;\n var undoObject = selectedObject[0];\n var layer = this.getObjectLayer(undoObject.id);\n var layerIndex = layer.zIndex;\n var zIndexTable = layer.zIndexTable;\n if (action === 'SendBackward' || action === 'SendForward') {\n for (var i = 0; i < selectedObject.length; i++) {\n var undoObject_1 = selectedObject[parseInt(i.toString(), 10)];\n var layer_2 = this.diagram.layers.indexOf(this.getObjectLayer(undoObject_1.id));\n var node = this.diagram.nameTable[selectedObject[parseInt(i.toString(), 10)].id];\n node.zIndex = undoObject_1.zIndex;\n this.diagram.layers[parseInt(layer_2.toString(), 10)].zIndexTable[undoObject_1.zIndex] = undoObject_1.id;\n }\n }\n else if (action === 'BringToFront') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.sendToBack(selectedObject[0]);\n }\n // else {\n // const k: number = 1;\n // for (let j: number = endZIndex; j > startZIndex; j--) {\n // if (zIndexTable[parseInt(j.toString(), 10)]) {\n // if (!zIndexTable[j - k]) {\n // zIndexTable[j - k] = zIndexTable[parseInt(j.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[j - k]].zIndex = j;\n // delete zIndexTable[parseInt(j.toString(), 10)];\n // } else {\n // zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j - k];\n // this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n // }\n // }\n // }\n // }\n }\n else if (action === 'SendToBack') {\n if (selectedObject[0].shape.type === 'SwimLane') {\n this.bringToFront(selectedObject[0]);\n }\n // else {\n // for (let j: number = endZIndex; j < startZIndex; j++) {\n // if (zIndexTable[parseInt(j.toString(), 10)]) {\n // if (!zIndexTable[j + 1]) {\n // zIndexTable[j + 1] = zIndexTable[parseInt(j.toString(), 10)];\n // this.diagram.nameTable[zIndexTable[j + 1]].zIndex = j;\n // delete zIndexTable[parseInt(j.toString(), 10)];\n // } else {\n // zIndexTable[parseInt(j.toString(), 10)] = zIndexTable[j + 1];\n // this.diagram.nameTable[zIndexTable[parseInt(j.toString(), 10)]].zIndex = j;\n // }\n // }\n // }\n // }\n }\n if (action === 'BringToFront' || action === 'SendToBack') {\n var node = this.diagram.nameTable[selectedObject[0].id];\n node.zIndex = undoObject.zIndex;\n this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable[undoObject.zIndex] = undoObject.id;\n this.updateLayerZindexTable(layer.zIndex);\n }\n if (this.diagram.mode === 'SVG') {\n if (action === 'SendBackward') {\n //To iterate all the elements in diagram to change the zindex\n for (var i = 0; i < selectedObject.length; i++) {\n this.moveSBObject(selectedObject[parseInt(i.toString(), 10)].id);\n }\n }\n else if (action === 'SendForward') {\n //To iterate all the elements in diagram to change the zindex\n for (var i = 0; i < selectedObject.length; i++) {\n this.moveFBObject(selectedObject[parseInt(i.toString(), 10)].id);\n }\n }\n // else if (action === 'BringToFront') {\n // if (selectedObject[0].shape.type !== 'SwimLane') {\n // this.moveObject(selectedObject[0].id, zIndexTable[selectedObject[0].zIndex + 1]);\n // }\n // }\n else if (action === 'SendToBack' || action === 'BringToFront') {\n if (selectedObject[0].shape.type !== 'SwimLane') {\n // const layer: LayerModel = this.getObjectLayer(selectedObject[0].id);\n // for (let i: number = 0; i <= selectedObject[0].zIndex; i++) {\n // if (layer.objects[parseInt(i.toString(), 10)] !== selectedObject[0].id) {\n // this.moveSvgNode(layer.objects[parseInt(i.toString(), 10)], selectedObject[0].id);\n // this.updateNativeNodeIndex(selectedObject[0].id);\n // }\n // }\n var zIndexArray = layer.objects.map(function (x) { return _this.diagram.nameTable[\"\" + x].zIndex; });\n var filteredZIndexArray = zIndexArray.filter(function (zIndex) { return zIndex > startZIndex_1; });\n var filteredZIndexArray2 = zIndexArray.filter(function (zIndex) { return zIndex < startZIndex_1; });\n var nextLowestZindex = filteredZIndexArray2.length > 0 ? Math.max.apply(Math, filteredZIndexArray2) : startZIndex_1;\n var nextGreatestZIndex = filteredZIndexArray.length > 0 ? Math.min.apply(Math, filteredZIndexArray) : startZIndex_1;\n if (startZIndex_1 !== nextGreatestZIndex) {\n var first = layer.zIndexTable[parseInt(nextGreatestZIndex.toString(), 10)];\n var second = layer.zIndexTable[parseInt(startZIndex_1.toString(), 10)];\n this.moveSvgNode(second, first);\n }\n else if (action === 'SendToBack') {\n var first = layer.zIndexTable[parseInt(startZIndex_1.toString(), 10)];\n var second = layer.zIndexTable[parseInt(nextLowestZindex.toString(), 10)];\n this.moveAfterSvgNode(first, second);\n }\n }\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.swapDomOrder = function (nextNodeId, targetId) {\n if (nextNodeId) {\n //Bug 921994: Z-index order changes are not reflected at the UI level with Undo Redo commands.\n var node = this.diagram.getObject(targetId);\n if (node.shape.type === 'Native' || node.shape.type === 'HTML') {\n this.updateNativeNodeIndex(targetId, nextNodeId);\n this.updateNativeNodeIndex(nextNodeId, targetId);\n }\n else {\n var diagramDiv = getDiagramElement(targetId + '_groupElement', this.diagram.element.id);\n var backNode = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n }\n };\n // private moveObject(sourceId: string, targetId: string): void {\n // if (targetId) {\n // this.moveSvgNode(sourceId, targetId);\n // this.updateNativeNodeIndex(sourceId, targetId);\n // }\n // }\n /**\n * sendForward method\\\n *\n * @returns { void } sendForward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendForward = function (obj) {\n var _this = this;\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var elements = obj || (this.diagram.selectedItems.nodes.length\n ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0]);\n var clonedObjects = cloneObject(elements);\n var nodeId = (obj && obj.id);\n nodeId = nodeId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerIndex = this.diagram.layers.indexOf(this.getObjectLayer(nodeId));\n var originalNameTable_1 = cloneObject(this.diagram.nameTable);\n var zIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var index = this.diagram.nameTable[\"\" + nodeId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(index.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp, undefined, 'BringForward');\n }\n for (var _i = 0, temp_1 = temp; _i < temp_1.length; _i++) {\n var i = temp_1[_i];\n if (index.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerIndex === currentLayer && (Number(this.diagram.nameTable[\"\" + nodeId].zIndex) < Number(i.zIndex)) && i.parentId === '' &&\n index.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n }\n }\n }\n for (var i = intersectArray.length - 1; i >= 0; i--) {\n var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id];\n if (child.parentId === nodeId) {\n intersectArray.splice(i, 1);\n }\n }\n if (intersectArray.length > 0) {\n var node = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id];\n if (node.parentId) {\n var parentId = '';\n var parent_1 = findParentInSwimlane(node, this.diagram, parentId);\n var obj_5 = this.diagram.nameTable[\"\" + parent_1];\n if (obj_5.id !== nodeId) {\n intersectArray[0] = obj_5;\n }\n }\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values for nodes\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n // Store original zIndex values for connectors\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var overlapObject = intersectArray[0].zIndex;\n var temp_2 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n var undoObject_2 = cloneObject(this.diagram.selectedItems);\n this.diagram.startGroupAction();\n //To store the zindex values as key value pair\n var zIndex_1 = {};\n intersectArray.forEach(function (item) {\n zIndex_1[item.id] = item.zIndex;\n });\n // To store the intersecting zindex value\n var greaterItems_1 = [];\n if (index) {\n var tempIndex_2 = index.zIndex;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-nochec\n if (Object.keys(zIndex_1).length > 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.values(zIndex_1).forEach(function (val) {\n if (val >= tempIndex_2) {\n greaterItems_1.push(val);\n }\n });\n if (greaterItems_1.length !== 0) {\n this.updateZIndexBySendForward(index, greaterItems_1, layerIndex);\n }\n }\n }\n var changedNodeZIndexesArray_1 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_1[\"\" + nodeId] ? originalNameTable_1[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in undo\n if (originalZIndex !== changedZIndex) {\n var node_2 = cloneObject(originalNameTable_1[\"\" + nodeId]);\n changedNodeZIndexesArray_1.push(node_2);\n }\n });\n this.updateLayerZindexTable(layerIndex);\n undoObject_2.nodes.splice(0, undoObject_2.nodes.length);\n changedNodeZIndexesArray_1.forEach(function (node) {\n var clonedNode = cloneObject(node);\n undoObject_2.nodes.push(clonedNode);\n });\n if (this.diagram.mode === 'SVG') {\n var nodeIdToUpdate = intersectArray[intersectArray.length - 1].id;\n var element = intersectArray[intersectArray.length - 1];\n if (element && !(element.shape.type === 'HTML'\n || element.shape.type === 'Native')) {\n // this.moveForwardSvgNode(nodeId);\n this.moveAfterSvgNode(nodeId, nodeIdToUpdate);\n }\n this.updateNativeNodeIndex(nodeIdToUpdate, nodeId);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var changeNodeZIndexesArray_1 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_1[\"\" + nodeId] ? originalNameTable_1[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in redo\n if (originalZIndex !== changedZIndex) {\n var node_3 = cloneObject(_this.diagram.nameTable[\"\" + nodeId]);\n changeNodeZIndexesArray_1.push(node_3);\n }\n });\n var redoObject_1 = cloneObject(this.diagram.selectedItems);\n redoObject_1.nodes.splice(0, redoObject_1.nodes.length);\n changeNodeZIndexesArray_1.forEach(function (node) {\n var clonedNode = cloneObject(node);\n redoObject_1.nodes.push(clonedNode);\n });\n var historyEntry = {\n type: 'SendForward', category: 'Internal',\n undoObject: undoObject_2, redoObject: redoObject_1\n };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(historyEntry);\n }\n this.diagram.endGroupAction();\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n //This method changes all the zindex values based on the selected node/connector\n CommandHandler.prototype.updateZIndexBySendForward = function (selectedNode, greaterItems, layerNum) {\n var clonedNode = cloneObject(selectedNode);\n selectedNode.zIndex = Math.min.apply(Math, greaterItems);\n var highChildIndex = Math.min.apply(Math, greaterItems);\n var index = Math.min.apply(Math, greaterItems);\n var highIndex;\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var objects = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n if (selectedNode.children) {\n this.updateGroupZindex(selectedNode, 'BringForward', selectedNode.zIndex);\n }\n var frontNode = objects.filter(function (x) { return x.zIndex === Math.min.apply(Math, greaterItems) && x.id !== selectedNode.id; });\n if (frontNode && frontNode.length > 0 && frontNode[0].children) {\n var frontNodeIndex = Math.min.apply(Math, greaterItems);\n for (var i = 0; i < frontNode[0].children.length; i++) {\n var frontNodeChild = this.diagram.nameTable[frontNode[0].children[parseInt(i.toString(), 10)]];\n frontNodeChild.zIndex = frontNodeIndex - (i + 1);\n highChildIndex = frontNodeIndex - (i + 1);\n }\n this.arrangeZIndexForLowerNodes(highChildIndex, frontNode[0], objects);\n }\n if (selectedNode.children) {\n highIndex = this.findGreatestChildZIndex(selectedNode);\n selectedNode.zIndex = highIndex + 1;\n highIndex = selectedNode.zIndex;\n }\n else {\n selectedNode.zIndex++;\n highIndex = selectedNode.zIndex;\n }\n this.triggerOrderCommand(clonedNode, selectedNode, selectedNode);\n var sortedObjects = objects.slice().sort(function (a, b) { return a.zIndex - b.zIndex; });\n for (var i = 0; i < sortedObjects.length; i++) {\n var node = sortedObjects[parseInt(i.toString(), 10)];\n if (node.zIndex > index && node !== selectedNode && node.parentId !== selectedNode.id &&\n frontNode && frontNode.length > 0 && node.parentId !== frontNode[0].id) {\n var clonedNode_1 = cloneObject(node);\n node.zIndex = highIndex + 1;\n highIndex++;\n // node.zIndex++;\n this.triggerOrderCommand(clonedNode_1, node, node);\n }\n var originalZIndex = node.zIndex;\n //changedNodeZIndexes store the zindex values with node id as key value pair\n // eslint-disable-next-line no-prototype-builtins\n if (this.changedNodeZIndexes.hasOwnProperty(node.id)) {\n this.changedNodeZIndexes[node.id] = originalZIndex;\n }\n else {\n this.changedNodeZIndexes[node.id] = originalZIndex;\n }\n }\n };\n CommandHandler.prototype.arrangeZIndexForLowerNodes = function (index, parent, objects) {\n var lesserIndexNodes = objects.filter(function (x) { return x.zIndex <= index && x.parentId !== parent.id; });\n lesserIndexNodes.sort(function (a, b) { return b.zIndex - a.zIndex; });\n for (var i = 0; i < lesserIndexNodes.length; i++) {\n lesserIndexNodes[parseInt(i.toString(), 10)].zIndex = index - (i + 1);\n }\n };\n CommandHandler.prototype.findGreatestChildZIndex = function (parent) {\n var highestZIndex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.zIndex > highestZIndex) {\n highestZIndex = child.zIndex;\n }\n }\n return highestZIndex;\n };\n // /**\n // * moveForwardSvgNode method\\\n // *\n // * @returns { void } moveForwardSvgNode method .\\\n // * @param {string} targetID - provide the objects value.\n // * @private\n // */\n // public moveForwardSvgNode(targetID: string): void {\n // const sortedNodeIds: string[] = Object.keys(this.changedNodeZIndexes).sort((a: string, b: string) => this.changedNodeZIndexes[`${a}`] - this.changedNodeZIndexes[`${b}`]);\n // const currentIndex: number = sortedNodeIds.indexOf(targetID);\n // if (currentIndex !== -1) {\n // //This logic moves the node/connector based on their zindex\n // if (currentIndex === sortedNodeIds.length - 1) {\n // const nextNodeId: string = sortedNodeIds[currentIndex - 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n // }\n // }\n // else {\n // const nextNodeId: string = sortedNodeIds[currentIndex + 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // }\n // }\n // }\n // }\n /**\n * sendBackward method\\\n *\n * @returns { void } sendBackward method .\\\n * @param { NodeModel | ConnectorModel } obj - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.sendBackward = function (obj) {\n var _this = this;\n this.diagram.protectPropertyChange(true);\n if (hasSelection(this.diagram) || obj) {\n var element = obj || (this.diagram.selectedItems.nodes.length\n ? this.diagram.selectedItems.nodes[0] : this.diagram.selectedItems.connectors[0]);\n var clonedObject = cloneObject(element);\n var objectId = (obj && obj.id);\n objectId = objectId || (this.diagram.selectedItems.nodes.length ? this.diagram.selectedItems.nodes[0].id\n : this.diagram.selectedItems.connectors[0].id);\n var layerNum = this.diagram.layers.indexOf(this.getObjectLayer(objectId));\n var originalNameTable_2 = cloneObject(this.diagram.nameTable);\n var zIndexTable = this.diagram.layers[parseInt(layerNum.toString(), 10)].zIndexTable;\n //const tabelLength: number = Object.keys(zIndexTable).length;\n var node = this.diagram.nameTable[\"\" + objectId];\n var intersectArray = [];\n var temp = this.diagram.spatialSearch.findObjects(node.wrapper.bounds);\n if (temp.length > 2) {\n temp = this.sortByZIndex(temp);\n }\n for (var _i = 0, temp_3 = temp; _i < temp_3.length; _i++) {\n var i = temp_3[_i];\n if (node.id !== i.id) {\n var currentLayer = this.getObjectLayer(i.id).zIndex;\n if (layerNum === currentLayer && (Number(this.diagram.nameTable[\"\" + objectId].zIndex) > Number(i.zIndex)) && i.parentId === '' &&\n node.wrapper.bounds.intersects(i.wrapper.bounds)) {\n intersectArray.push(i);\n }\n }\n }\n for (var i = intersectArray.length - 1; i >= 0; i--) {\n var child = this.diagram.nameTable[intersectArray[parseInt(i.toString(), 10)].id];\n if (child.parentId === objectId) {\n intersectArray.splice(i, 1);\n }\n }\n if (intersectArray.length > 0) {\n var child = this.diagram.nameTable[intersectArray[intersectArray.length - 1].id];\n if (child.parentId) {\n var parentId = '';\n var parent_2 = findParentInSwimlane(child, this.diagram, parentId);\n var obj_6 = this.diagram.nameTable[\"\" + parent_2];\n if (objectId !== obj_6.id) {\n intersectArray[intersectArray.length - 1] = obj_6;\n }\n }\n var originalZIndexTable = {}; // New variable to store original zIndex values\n // Store original zIndex values for nodes\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var node1 = this.diagram.nodes[parseInt(i.toString(), 10)];\n originalZIndexTable[node1.id] = node1.zIndex;\n }\n // Store original zIndex values for connectors\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n var connector = this.diagram.connectors[parseInt(j.toString(), 10)];\n originalZIndexTable[connector.id] = connector.zIndex;\n }\n var overlapObject = intersectArray[intersectArray.length - 1].zIndex;\n var temp_4 = zIndexTable[parseInt(overlapObject.toString(), 10)];\n var undoObject_3 = cloneObject(this.diagram.selectedItems);\n this.diagram.startGroupAction();\n var zIndex_2 = {};\n intersectArray.forEach(function (item) {\n zIndex_2[item.id] = item.zIndex;\n });\n var lesserItems_1 = [];\n if (node) {\n var tempIndex_3 = node.zIndex;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-nochec\n if (Object.keys(zIndex_2).length > 0) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n Object.values(zIndex_2).forEach(function (val) {\n if (val <= tempIndex_3) {\n lesserItems_1.push(val);\n }\n });\n if (lesserItems_1.length !== 0) {\n this.updateZIndexBySendBackward(node, lesserItems_1, layerNum);\n }\n }\n }\n var changedNodeZIndexesArray_2 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_2[\"\" + nodeId] ? originalNameTable_2[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in undo\n if (originalZIndex !== changedZIndex) {\n var node_4 = cloneObject(originalNameTable_2[\"\" + nodeId]);\n changedNodeZIndexesArray_2.push(node_4);\n }\n });\n this.updateLayerZindexTable(layerNum);\n undoObject_3.nodes.splice(0, undoObject_3.nodes.length);\n changedNodeZIndexesArray_2.forEach(function (node) {\n var clonedNode = cloneObject(node);\n undoObject_3.nodes.push(clonedNode);\n });\n if (this.diagram.mode === 'SVG') {\n var nodeIdToUpdate = intersectArray[intersectArray.length - 1].id;\n var element_1 = intersectArray[intersectArray.length - 1];\n if (element_1 && !(element_1.shape.type === 'HTML'\n || element_1.shape.type === 'Native')) {\n // this.moveBackSvgNode(objectId);\n this.moveSvgNode(objectId, nodeIdToUpdate);\n }\n var node_5 = this.diagram.nameTable[\"\" + nodeIdToUpdate];\n if (node_5.children && node_5.children.length > 0) {\n this.updateNativeNodeIndex(objectId);\n }\n else {\n this.updateNativeNodeIndex(objectId, nodeIdToUpdate);\n }\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n var changeNodeZIndexesArray_2 = [];\n Object.keys(this.changedNodeZIndexes).forEach(function (nodeId) {\n var originalZIndex = originalNameTable_2[\"\" + nodeId] ? originalNameTable_2[\"\" + nodeId].zIndex : null;\n var changedZIndex = _this.changedNodeZIndexes[\"\" + nodeId];\n //By comparing with changedNodeZIndexes to store the changed elements in redo\n if (originalZIndex !== changedZIndex) {\n var node_6 = cloneObject(_this.diagram.nameTable[\"\" + nodeId]);\n changeNodeZIndexesArray_2.push(node_6);\n }\n });\n var redoObject_2 = cloneObject(this.diagram.selectedItems);\n redoObject_2.nodes.splice(0, redoObject_2.nodes.length);\n changeNodeZIndexesArray_2.forEach(function (node) {\n var clonedNode = cloneObject(node);\n redoObject_2.nodes.push(clonedNode);\n });\n var entry = { type: 'SendBackward', category: 'Internal', undoObject: undoObject_3, redoObject: redoObject_2 };\n if (!(this.diagram.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n this.diagram.endGroupAction();\n }\n }\n this.diagram.protectPropertyChange(false);\n };\n //This method changes all the zindex values based on the selected node/connector\n CommandHandler.prototype.updateZIndexBySendBackward = function (selectedNode, lesserItems, layerNum) {\n var clonedNode = cloneObject(selectedNode);\n selectedNode.zIndex = Math.max.apply(Math, lesserItems);\n var index = selectedNode.zIndex;\n var lowChildIndex = Math.max.apply(Math, lesserItems);\n var layerObjects = this.diagram.layers[parseInt(layerNum.toString(), 10)].objects;\n var objects = this.diagram.nodes.filter(function (node) { return layerObjects.indexOf(node.id) !== -1; });\n var backNode = objects.filter(function (x) { return x.zIndex === Math.max.apply(Math, lesserItems) && x.id !== selectedNode.id; });\n if (backNode && backNode.length > 0 && backNode[0].children) {\n // eslint-disable-next-line prefer-spread\n var backNodeIndex = Math.max.apply(Math, lesserItems);\n for (var i = 0; i < backNode[0].children.length; i++) {\n var backNodeChild = this.diagram.nameTable[backNode[0].children[parseInt(i.toString(), 10)]];\n backNodeChild.zIndex = backNodeIndex - (i + 1);\n lowChildIndex = backNodeIndex - (i + 1);\n }\n }\n selectedNode.zIndex = lowChildIndex - 1;\n var lowIndex;\n this.triggerOrderCommand(clonedNode, selectedNode, selectedNode);\n if (selectedNode.children) {\n this.updateGroupZindex(selectedNode, 'SendBackward', selectedNode.zIndex);\n lowIndex = this.findLowestChildZIndex(selectedNode);\n }\n else {\n lowIndex = selectedNode.zIndex;\n }\n var sortedObjects = objects.slice().sort(function (a, b) { return b.zIndex - a.zIndex; });\n for (var i = 0; i < sortedObjects.length; i++) {\n var node = sortedObjects[parseInt(i.toString(), 10)];\n if (node.zIndex < index && node !== selectedNode && node.parentId !== selectedNode.id &&\n backNode && backNode.length > 0 && node.parentId !== backNode[0].id) {\n var clonedNode_2 = cloneObject(node);\n node.zIndex = lowIndex - 1;\n lowIndex--;\n this.triggerOrderCommand(clonedNode_2, node, node);\n }\n var originalZIndex = node.zIndex;\n // eslint-disable-next-line no-prototype-builtins\n if (this.changedNodeZIndexes.hasOwnProperty(node.id)) {\n this.changedNodeZIndexes[\"\" + node.id] = originalZIndex;\n }\n else {\n this.changedNodeZIndexes[\"\" + node.id] = originalZIndex;\n }\n }\n };\n CommandHandler.prototype.findLowestChildZIndex = function (parent) {\n var lowestZIndex = parent.zIndex;\n for (var i = 0; i < parent.children.length; i++) {\n var child = this.diagram.nameTable[parent.children[parseInt(i.toString(), 10)]];\n if (child.zIndex < lowestZIndex) {\n lowestZIndex = child.zIndex;\n }\n }\n return lowestZIndex;\n };\n // /**\n // * moveBackSvgNode method\\\n // *\n // * @returns { void } moveBackSvgNode method .\\\n // * @param {string} targetID - provide the objects value.\n // * @private\n // */\n // public moveBackSvgNode(targetID: string): void {\n // const sortedNodeIds: string[] = Object.keys(this.changedNodeZIndexes).sort((a: string, b: string) => this.changedNodeZIndexes[`${a}`] - this.changedNodeZIndexes[`${b}`]);\n // const currentIndex: number = sortedNodeIds.indexOf(targetID);\n // //This logic moves the node/connector based on their zindex\n // if (currentIndex !== -1) {\n // const nextNodeId: string = sortedNodeIds[currentIndex + 1];\n // if (nextNodeId) {\n // const diagramDiv: HTMLElement = getDiagramElement(targetID + '_groupElement', this.diagram.element.id);\n // const backNode: HTMLElement = getDiagramElement(nextNodeId + '_groupElement', this.diagram.element.id);\n // diagramDiv.parentNode.insertBefore(diagramDiv, backNode);\n // }\n // }\n // }\n /**\n * updateNativeNodeIndex method\\\n *\n * @returns { void } updateNativeNodeIndex method .\\\n * @param { string } nodeId - Provide the previousObject element .\n * @param { string } targetID - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.updateNativeNodeIndex = function (nodeId, targetID) {\n var node = this.diagram.selectedItems.nodes[0] || this.diagram.getObject(targetID);\n for (var i = 0; i < this.diagram.views.length; i++) {\n if (node && (node.shape.type === 'HTML'\n || node.shape.type === 'Native')) {\n var id = node.shape.type === 'HTML' ? '_html_element' : '_content_groupElement';\n var backNode = getDiagramElement(nodeId + id, this.diagram.views[parseInt(i.toString(), 10)]);\n var diagramDiv = targetID ? getDiagramElement(targetID + id, this.diagram.views[parseInt(i.toString(), 10)])\n : backNode.parentElement.firstChild;\n if (backNode && diagramDiv) {\n if (backNode.parentNode.id === diagramDiv.parentNode.id) {\n diagramDiv.parentNode.insertBefore(backNode, diagramDiv);\n }\n }\n }\n }\n };\n /**\n * initSelectorWrapper method\\\n *\n * @returns { void } initSelectorWrapper method .\\\n * @private\n */\n CommandHandler.prototype.initSelectorWrapper = function () {\n var selectorModel = this.diagram.selectedItems;\n selectorModel.init(this.diagram);\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.wrapper.pivot = selectorModel.nodes[0].pivot;\n }\n };\n /**\n * doRubberBandSelection method\\\n *\n * @returns { void } doRubberBandSelection method .\\\n * @param { Rect } region - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.doRubberBandSelection = function (region) {\n this.clearSelectionRectangle();\n var selArray = [];\n var rubberArray = [];\n selArray = this.diagram.getNodesConnectors(selArray);\n if (this.diagram.selectedItems.rubberBandSelectionMode === 'CompleteIntersect') {\n rubberArray = completeRegion(region, selArray);\n }\n else {\n rubberArray = this.diagram.spatialSearch.findObjects(region);\n }\n if (rubberArray.length) {\n this.selectObjects(rubberArray, true);\n }\n };\n CommandHandler.prototype.clearSelectionRectangle = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var element = adornerSvg.getElementById(this.diagram.element.id + '_diagramAdorner_selected_region');\n if (element) {\n remove(element);\n }\n };\n /**\n * dragConnectorEnds method\\\n *\n * @returns { void } dragConnectorEnds method .\\\n * @param { string } endPoint - Provide the previousObject element .\n * @param { IElement } obj - Provide the previousObject element .\n * @param { PointModel } point - Provide the point element .\n * @param { BezierSegmentModel } segment - Provide the segment element .\n * @param { IElement } target - Provide the target element .\n * @param { string } targetPortId - Provide the targetPortId element .\n * @private\n */\n CommandHandler.prototype.dragConnectorEnds = function (endPoint, obj, point, segment, target, targetPortId) {\n var selectorModel;\n var connector; //let node: Node;\n var tx; //let segmentPoint: PointModel;\n var ty; //let index: number;\n var checkBezierThumb = false;\n if (obj instanceof Selector) {\n selectorModel = obj;\n connector = selectorModel.connectors[0];\n }\n else if (obj instanceof Connector && this.diagram.currentDrawingObject) {\n this.clearSelection();\n connector = this.diagram.currentDrawingObject;\n }\n if (endPoint === 'BezierSourceThumb' || endPoint === 'BezierTargetThumb') {\n checkBezierThumb = true;\n connector.isBezierEditing = true;\n }\n if (endPoint === 'ConnectorSourceEnd' || endPoint === 'BezierSourceThumb') {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint1.x : connector.sourcePoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint1.y : connector.sourcePoint.y);\n return this.dragSourceEnd(connector, tx, ty, null, point, endPoint, undefined, target, targetPortId, undefined, segment);\n }\n else {\n tx = point.x - (checkBezierThumb ? segment.bezierPoint2.x : connector.targetPoint.x);\n ty = point.y - (checkBezierThumb ? segment.bezierPoint2.y : connector.targetPoint.y);\n return this.dragTargetEnd(connector, tx, ty, null, point, endPoint, undefined, segment);\n }\n };\n /**\n * getSelectedObject method\\\n *\n * @returns { void } getSelectedObject method .\\\n * @private\n */\n CommandHandler.prototype.getSelectedObject = function () {\n var selectormodel = this.diagram.selectedItems;\n return (selectormodel.nodes).concat(selectormodel.connectors);\n };\n // /**\n // * updateBlazorProperties method\\\n // *\n // * @returns { void } updateBlazorProperties method .\\\n // * @param { boolean } isObjectInteraction - Provide the previousObject element .\n // * @private\n // */\n // public updateBlazorProperties(isObjectInteraction?: boolean): void {\n // const blazorInterop: string = 'sfBlazor';\n // const blazor: string = 'Blazor';\n // if (!isObjectInteraction) {\n // if (window && window[`${blazor}`]) {\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.diagramObject };\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // }\n // } else {\n // if (window && window[`${blazor}`] && JSON.stringify(this.deepDiffer.diagramObject) !== '{}') {\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'diagramobj': this.deepDiffer.diagramObject };\n // if (!this.diagram.isLoading) {\n // // window[`${blazorInterop}`].updateBlazorProperties(obj, this.diagram);\n // }\n // }\n // }\n // //this.diagram.enableServerDataBinding(true);\n // this.deepDiffer.newNodeObject = [];\n // this.deepDiffer.newConnectorObject = [];\n // this.diagramObject = [];\n // this.diagram.oldNodeObjects = [];\n // this.diagram.oldConnectorObjects = [];\n // }\n // /**\n // * enableCloneObject method\\\n // *\n // * @returns { void } enableCloneObject method .\\\n // * @param { boolean } value - Provide the previousObject element .\n // * @private\n // */\n CommandHandler.prototype.enableCloneObject = function (value) {\n // if ((!this.diagram.lineRoutingModule || !(this.diagram.constraints & DiagramConstraints.LineRouting))) {\n // this.diagram.canEnableBlazorObject = value;\n // }\n };\n // /**\n // * ismouseEvents method\\\n // *\n // * @returns { void } ismouseEvents method .\\\n // * @param { boolean } value - Provide the previousObject element .\n // * @private\n // */\n // public ismouseEvents(value: boolean): void {\n // // if (value) {\n // // this.diagram.blazorActions = this.diagram.addConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n // // } else {\n // // this.diagram.blazorActions = this.diagram.removeConstraints(this.diagram.blazorActions, BlazorAction.interaction);\n // // }\n // }\n // /**\n // * updateLayerObject method\\\n // *\n // * @returns { void } updateLayerObject method .\\\n // * @param { object } oldDiagram - Provide the previousObject element .\n // * @param { boolean } temp - Provide the temp element .\n // * @private\n // */\n // public updateLayerObject(oldDiagram: object, temp?: boolean): void {\n // comment blazor code\n // }\n // /* tslint:enable:no-string-literal */\n // /**\n // * getDiagramOldValues method\\\n // *\n // * @returns { void } getDiagramOldValues method .\\\n // * @param { object } oldDiagram - Provide the previousObject element .\n // * @param { string[] } attribute - Provide the previousObject element .\n // * @private\n // */\n // public getDiagramOldValues(oldDiagram: object, attribute: string[]): void {\n // const newDiagram: object = {};\n // for (let i: number = 0; i < attribute.length; i++) {\n // newDiagram[attribute[parseInt(i.toString(), 10)]] = cloneObject(this.diagram[attribute[parseInt(i.toString(), 10)]]);\n // }\n // const newObject: Object = cloneObject(newDiagram);\n // const result: object = this.deepDiffer.map(newObject, oldDiagram);\n // const diffValue: object = this.deepDiffer.frameObject({}, result);\n // let diff: object = this.deepDiffer.removeEmptyValues(diffValue);\n // diff = this.deepDiffer.changeSegments(diff, newObject);\n // this.diagramObject = diff;\n // if (!(this.diagram.blazorActions & BlazorAction.ClearObject)) {\n // // this.updateBlazorProperties();\n // }\n // }\n /* tslint:disable */\n /**\n * getBlazorOldValues method\\\n *\n * @returns { void } getBlazorOldValues method .\\\n * @param { MouseEventArgs } args - Provide the previousObject element .\n * @param { boolean } labelDrag - Provide the previousObject element .\n * @private\n */\n CommandHandler.prototype.getBlazorOldValues = function (args, labelDrag) {\n //comment blazor code\n };\n // /**\n // * getObjectChanges method\\\n // *\n // * @returns { void } getObjectChanges method .\\\n // * @param { Object[] } previousObject - Provide the previousObject element .\n // * @param { Object[] } currentObject - Provide the previousObject element .\n // * @param { Object[] } previousObject - Provide the previousObject element .\n // * @private\n // */\n // public getObjectChanges(previousObject: Object[], currentObject: Object[], changedNodes: Object[]): void {\n // }\n /**\n * clearObjectSelection method\\\n *\n * @returns { void } clearObjectSelection method .\\\n * @param { (NodeModel | ConnectorModel) } mouseDownElement - Provide the triggerAction element .\n * @private\n */\n // Bug fix - EJ2-44495 -Node does not gets selected on slight movement of mouse when drag constraints disabled for node\n CommandHandler.prototype.clearObjectSelection = function (mouseDownElement) {\n var selectedItems = this.diagram.selectedItems;\n var list = [];\n list = list.concat(selectedItems.nodes, selectedItems.connectors);\n if (list.indexOf(mouseDownElement) === -1) {\n this.clearSelection((list.length > 0) ? true : false);\n this.selectObjects([mouseDownElement], true);\n }\n };\n /**\n * clearSelection method\\\n *\n * @returns { void } clearSelection method .\\\n * @param { boolean } triggerAction - Provide the triggerAction element .\n * @param { boolean } isTriggered - Provide the isTriggered element .\n * @private\n */\n CommandHandler.prototype.clearSelection = function (triggerAction, isTriggered) {\n return __awaiter(this, void 0, void 0, function () {\n var enableServerDataBinding, selectormodel, arrayNodes, arg;\n return __generator(this, function (_a) {\n enableServerDataBinding = this.diagram.allowServerDataBinding;\n this.diagram.enableServerDataBinding(false);\n if (hasSelection(this.diagram)) {\n selectormodel = this.diagram.selectedItems;\n arrayNodes = this.getSelectedObject();\n if (this.diagram.currentSymbol) {\n this.diagram.previousSelectedObject = arrayNodes;\n }\n arg = {\n oldValue: arrayNodes, newValue: [], cause: this.diagram.diagramActions,\n state: 'Changing', type: 'Removal', cancel: false\n };\n // this.updateBlazorSelectorModel(arrayNodes, true);\n if (triggerAction) {\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n if (!arg.cancel) {\n selectormodel.offsetX = 0;\n selectormodel.offsetY = 0;\n selectormodel.width = 0;\n selectormodel.height = 0;\n selectormodel.rotateAngle = 0;\n selectormodel.nodes = [];\n selectormodel.connectors = [];\n selectormodel.wrapper = null;\n selectormodel.annotation = undefined;\n // EJ2-56919 - While clear selection empty the selectedObjects collection\n selectormodel.selectedObjects = [];\n this.diagram.clearSelectorLayer();\n if (triggerAction) {\n arg = {\n oldValue: cloneBlazorObject(arrayNodes), newValue: [], cause: this.diagram.diagramActions,\n state: 'Changed', type: 'Removal', cancel: false\n };\n if (!isBlazor()) {\n this.diagram.triggerEvent(DiagramEvent.selectionChange, arg);\n }\n }\n }\n // this.updateBlazorSelector();\n this.diagram.enableServerDataBinding(enableServerDataBinding);\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * clearSelectedItems method\\\n *\n * @returns { void } clearSelectedItems method .\\\n * @private\n */\n CommandHandler.prototype.clearSelectedItems = function () {\n var selectedNodes = this.diagram.selectedItems.nodes ? this.diagram.selectedItems.nodes.length : 0;\n var selectedConnectors = this.diagram.selectedItems.connectors ? this.diagram.selectedItems.connectors.length : 0;\n this.clearSelection((selectedNodes + selectedConnectors) > 0 ? true : false);\n };\n /**\n * removeStackHighlighter method\\\n *\n * @returns { void } removeStackHighlighter method .\\\n * @private\n */\n CommandHandler.prototype.removeStackHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.diagram.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_stack_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * @param {End} args - provide the args value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.renderStackHighlighter = function (args, target) {\n var source = this.diagram.selectedItems.nodes[0];\n var symbolDrag;\n var node;\n var selectorModel;\n if (!target) {\n var objects = this.diagram.findObjectsUnderMouse(args.position);\n target = this.diagram.findObjectUnderMouse(objects, 'Drag', true);\n if (target && !(target.isLane || target.isPhase || target.isHeader)) {\n for (var i = 0; i < objects.length; i++) {\n var laneNode = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id];\n if (!laneNode.isLane || laneNode.isPhase || laneNode.isHeader) {\n target = laneNode;\n this.diagram.parentObject = target;\n }\n }\n }\n }\n if (source && target && target.isLane && source.shape && !source.shape.isPhase) {\n node = this.diagram.nameTable[target.parentId];\n if (this.diagram.currentSymbol && node.shape.type === 'SwimLane') {\n symbolDrag = true;\n }\n if ((source && !source.parentId && source.shape.type !== 'SwimLane') ||\n (source && source.parentId && this.diagram.nameTable[source.parentId] && this.diagram.nameTable[source.parentId].isLane &&\n (source.parentId !== target.parentId && source.parentId !== target.id))) {\n selectorModel = this.diagram.selectedItems;\n var canvas = gridSelection(this.diagram, selectorModel, target.id, true);\n //Bug 904547: Snapping of nodes inside the swimlane is not proper.\n //Instead of assigning the canvas to the selectorModel children, pass them to render selector to highlight the swimlane.\n this.diagram.renderSelector(false, true, canvas);\n selectorModel.wrapper.children[0] = selectorModel.nodes[0].wrapper;\n }\n }\n if (source && target && target.parentId && source.shape && source.shape.isPhase) {\n var node_7 = this.diagram.nameTable[target.parentId];\n if (node_7.shape.type === 'SwimLane') {\n //Bug 904547: Snapping of nodes inside the swimlane is not proper.\n //Instead of assigning the canvas to the selectorModel children, pass them to render selector to highlight the swimlane.\n var canvas = this.diagram.nameTable[target.parentId].wrapper;\n this.diagram.renderSelector(false, true, canvas);\n }\n }\n if ((symbolDrag && this.diagram.currentSymbol.shape.isLane) || (source && target &&\n source.parentId && target.parentId && !source.isPhase && (source.parentId === target.parentId)\n && (source.id !== target.id) && node &&\n (node.container && (node.container.type === 'Stack' || node.container.type === 'Grid')))) {\n var canvas = void 0;\n var value = node.container.orientation === 'Vertical';\n var isVertical = node.container === 'Stack' ? value : !value;\n if (node.container.type === 'Grid' && target.isLane &&\n (((node.shape.orientation === 'Horizontal' && target.rowIndex !== source.rowIndex) ||\n (node.shape.orientation === 'Vertical' && target.columnIndex !== source.columnIndex))\n || (this.diagram.currentSymbol &&\n this.diagram.currentSymbol.shape.orientation === node.container.orientation))) {\n selectorModel = this.diagram.selectedItems;\n if ((source.isLane && canLaneInterchange(source, this.diagram)) || !source.isLane) {\n canvas = gridSelection(this.diagram, selectorModel, target.id, symbolDrag);\n }\n }\n var wrapper = node.container.type === 'Stack' ? target.wrapper : canvas;\n if (wrapper) {\n renderStackHighlighter(wrapper, isVertical, args.position, this.diagram, false, true);\n }\n }\n };\n /** @private */\n CommandHandler.prototype.insertBlazorConnector = function (obj) {\n if (obj instanceof Selector) {\n for (var i = 0; i < obj.connectors.length; i++) {\n this.diagram.insertBlazorConnector(obj.connectors[parseInt(i.toString(), 10)]);\n }\n }\n else {\n this.diagram.insertBlazorConnector(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.drag = function (obj, tx, ty) {\n var tempNode;\n var elements = [];\n // EJ2-846953: The below code is added to set current action to drag when we drag objects dynamically using method.\n // It is used to prevent the updateGroupSize method call for group node while dragging it.\n if (!this.diagram.rotateUsingButton && obj.shape && obj.shape.type !== 'SwimLane') {\n this.diagram.eventHandler.currentAction = 'Drag';\n }\n if (canMove(obj) && this.checkBoundaryConstraints(tx, ty, obj.wrapper.bounds) && canPageEditable(this.diagram)) {\n if (obj instanceof Node) {\n var oldValues = { offsetX: obj.offsetX, offsetY: obj.offsetY };\n obj.offsetX += tx;\n obj.offsetY += ty;\n if (obj.children && !(obj.container)) {\n if (!(checkParentAsContainer(this.diagram, obj, true))) {\n this.diagram.diagramActions = this.diagram.diagramActions | DiagramAction.isGroupDragging;\n }\n var nodes = this.getAllDescendants(obj, elements);\n for (var i = 0; i < nodes.length; i++) {\n tempNode = (this.diagram.nameTable[nodes[parseInt(i.toString(), 10)].id]);\n this.drag(tempNode, tx, ty);\n }\n this.updateInnerParentProperties(obj);\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.isGroupDragging;\n }\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (obj && obj.shape && obj.shape.type === 'UmlClassifier') {\n obj.wrapper.measureChildren = true;\n }\n this.diagram.nodePropertyChange(obj, oldValues, { offsetX: obj.offsetX, offsetY: obj.offsetY }, undefined, undefined, false);\n obj.wrapper.measureChildren = false;\n }\n if (obj.shape.type === 'SwimLane' && !this.diagram.currentSymbol) {\n var grid = obj.wrapper.children[0];\n var connectors = getConnectors(this.diagram, grid, 0, true);\n updateConnectorsProperties(connectors, this.diagram);\n }\n }\n else {\n var connector = obj;\n var oldValues = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n var update = connector.type === 'Bezier' ? true : false;\n var hasEnds = false;\n if (!connector.sourceWrapper) {\n this.dragSourceEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n if (!connector.targetWrapper) {\n this.dragTargetEnd(connector, tx, ty, true, null, '', update);\n }\n else {\n hasEnds = true;\n }\n var canDragPoints = false;\n if (obj instanceof Connector) {\n canDragPoints = true;\n }\n if (!hasEnds || canDragPoints) {\n this.dragControlPoint(connector, tx, ty, true);\n var conn = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, conn);\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.connectorSegmentChange = function (actualObject, existingInnerBounds, isRotate) {\n var tx;\n var ty;\n var segmentChange = true;\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n var connector = this.diagram.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]];\n if (connector.targetID !== '') {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.targetID]) ? false : true;\n }\n else {\n segmentChange = this.isSelected(this.diagram.nameTable[connector.id]) ? false : true;\n }\n if (connector.type === 'Orthogonal' && connector.segments && connector.segments.length > 1) {\n if (!isRotate) {\n if (segmentChange) {\n switch (connector.segments[0].direction) {\n case 'Bottom':\n tx = actualObject.wrapper.bounds.bottomCenter.x - existingInnerBounds.bottomCenter.x;\n ty = actualObject.wrapper.bounds.bottomCenter.y - existingInnerBounds.bottomCenter.y;\n break;\n case 'Top':\n tx = actualObject.wrapper.bounds.topCenter.x - existingInnerBounds.topCenter.x;\n ty = actualObject.wrapper.bounds.topCenter.y - existingInnerBounds.topCenter.y;\n break;\n case 'Left':\n tx = actualObject.wrapper.bounds.middleLeft.x - existingInnerBounds.middleLeft.x;\n ty = actualObject.wrapper.bounds.middleLeft.y - existingInnerBounds.middleLeft.y;\n break;\n case 'Right':\n tx = actualObject.wrapper.bounds.middleRight.x - existingInnerBounds.middleRight.x;\n ty = actualObject.wrapper.bounds.middleRight.y - existingInnerBounds.middleRight.y;\n break;\n }\n this.dragSourceEnd(connector, tx, ty, true, null, 'ConnectorSourceEnd', undefined, undefined, undefined, (actualObject.parentId &&\n (this.diagram.diagramActions & DiagramAction.isGroupDragging)) ? false : true);\n }\n }\n else {\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n var cornerPoints = swapBounds(actualObject.wrapper, actualObject.wrapper.corners, actualObject.wrapper.bounds);\n var sourcePoint = findPoint(cornerPoints, firstSegment.direction);\n sourcePoint = getIntersection(connector, connector.sourceWrapper, sourcePoint, { x: connector.sourceWrapper.offsetX, y: connector.sourceWrapper.offsetY }, false);\n var source = {\n corners: undefined, point: sourcePoint, margin: undefined, direction: firstSegment.direction\n };\n var target = {\n corners: undefined, point: secondSegment.points[1], margin: undefined, direction: undefined\n };\n var intermediatePoints = orthoConnection2Segment(source, target);\n firstSegment.length = Point.distancePoints(intermediatePoints[0], intermediatePoints[1]);\n if (secondSegment.direction && secondSegment.length) {\n secondSegment.length = Point.distancePoints(intermediatePoints[1], intermediatePoints[2]);\n }\n }\n }\n }\n }\n }\n };\n /** @private */\n CommandHandler.prototype.updateEndPoint = function (connector, oldChanges) {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint,\n sourceID: connector.sourceID ? connector.sourceID : undefined,\n targetID: connector.targetID ? connector.targetID : undefined,\n sourcePortID: connector.sourcePortID ? connector.sourcePortID : undefined,\n targetPortID: connector.targetPortID ? connector.targetPortID : undefined,\n segments: connector.segments ? connector.segments : undefined\n };\n var newValue = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (connector.sourceID) {\n newValue.sourceID = connector.sourceID;\n }\n if (connector.targetID) {\n newValue.targetID = connector.targetID;\n }\n if (connector.sourcePortID) {\n newValue.sourcePortID = connector.sourcePortID;\n }\n if (connector.targetPortID) {\n newValue.targetPortID = connector.targetPortID;\n }\n if (connector.segments) {\n newValue.segments = connector.segments;\n }\n this.diagram.connectorPropertyChange(connector, oldChanges ? oldChanges : {}, newValue);\n // this.diagram.refreshDiagramLayer();\n this.diagram.updateSelector();\n };\n /**\n * @param obj\n * @param tx\n * @param ty\n * @param preventUpdate\n * @param point\n * @param endPoint\n * @param update\n * @param target\n * @param targetPortId\n * @param isDragSource\n * @param segment\n * @private\n */\n CommandHandler.prototype.dragSourceEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, target, targetPortId, isDragSource, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges = {};\n var checkBoundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragSourceEnd(connector) && checkBoundaryConstraints\n && (endPoint !== 'BezierSourceThumb') && canPageEditable(this.diagram)) {\n oldChanges = { sourcePoint: connector.sourcePoint };\n oldChanges = cloneObject(oldChanges);\n connector.sourcePoint.x += tx;\n connector.sourcePoint.y += ty;\n if (endPoint === 'ConnectorSourceEnd' && connector.type === 'Orthogonal') {\n this.changeSegmentLength(connector, target, targetPortId, isDragSource);\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { sourcePoint: connector.sourcePoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorSourceEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return checkBoundaryConstraints;\n };\n /**\n * Update Path Element offset\n */\n CommandHandler.prototype.updatePathElementOffset = function (connector) {\n connector.wrapper.children.splice(3, 1);\n var pathElement = new PathElement();\n var anglePoints = connector.intermediatePoints;\n pathElement = updatePathElement(anglePoints, connector);\n connector.wrapper.children.splice(3, 0, pathElement);\n };\n /**\n * Upadte the connector segments when change the source node\n */\n CommandHandler.prototype.changeSegmentLength = function (connector, target, targetPortId, isDragSource) {\n // EJ2-65063 - Added below code to check condition if connector segment length can be changed or not.\n // If inconnect and outconnect removed from node constraints\n var canChangeSegment = target ? this.canConnect(connector, target) : true;\n if (connector.segments && connector.segments[0].direction !== null\n && ((!target && connector.sourceID === '') || isDragSource) && canChangeSegment) {\n var first = connector.segments[0];\n var second = connector.segments[1];\n var node = this.diagram.nameTable[connector.sourceID];\n var secPoint = void 0;\n first.points[0] = connector.sourcePoint;\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n first.points[first.points.length - 1].x = connector.sourcePoint.x;\n second.points[0].y = first.points[first.points.length - 1].y;\n }\n else {\n first.points[first.points.length - 1].y = connector.sourcePoint.y;\n second.points[0].x = first.points[first.points.length - 1].x;\n }\n if (first.direction && (first.length || first.length === 0)) {\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n if (second.direction && (second.length || second.length === 0)) {\n second.length = Point.distancePoints(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n second.direction = Point.direction(first.points[first.points.length - 1], second.points[second.points.length - 1]);\n }\n if (connector.sourcePortID !== '' && first.length < 10) {\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n var nextDirection = Point.direction(next.points[0], next.points[1]);\n if (first.direction === getOppositeDirection(nextDirection)) {\n if (first.direction === 'Right') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleRight.x + 20;\n }\n else if (first.direction === 'Left') {\n next.points[0].x = first.points[first.points.length - 1].x = node.wrapper.corners.middleLeft.x - 20;\n }\n else if (first.direction === 'Top') {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.topCenter.y - 20;\n }\n else {\n next.points[0].y = first.points[first.points.length - 1].y = node.wrapper.corners.bottomCenter.y + 20;\n }\n if (next.direction && next.length) {\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n }\n first.length = Point.distancePoints(first.points[0], first.points[first.points.length - 1]);\n }\n else if (first.direction === nextDirection && next.direction && next.length) {\n if (first.direction === 'Top' || first.direction === 'Bottom') {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].x = next.points[0].x;\n }\n else {\n next.points[0] = first.points[0];\n next.points[next.points.length - 1].y = next.points[0].y;\n }\n next.length = Point.distancePoints(next.points[0], next.points[next.points.length - 1]);\n connector.segments.splice(0, 2);\n }\n else {\n first.length = 20;\n }\n }\n else {\n first.length = 20;\n }\n }\n else if (first.length < 1) {\n if (connector.sourceID !== '') {\n if (second.direction === 'Right') {\n secPoint = node.wrapper.corners.middleRight;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Left') {\n secPoint = node.wrapper.corners.middleLeft;\n second.points[second.points.length - 1].y = secPoint.y;\n }\n else if (second.direction === 'Top') {\n secPoint = node.wrapper.corners.topCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n else {\n secPoint = node.wrapper.corners.bottomCenter;\n second.points[second.points.length - 1].x = secPoint.x;\n }\n second.length = Point.distancePoints(secPoint, second.points[second.points.length - 1]);\n if (connector.segments.length > 2) {\n var next = connector.segments[2];\n if (next.direction && next.length) {\n next.length = Point.distancePoints(second.points[second.points.length - 1], next.points[next.points.length - 1]);\n }\n }\n connector.segments.splice(0, 1);\n }\n else {\n connector.segments.splice(0, 1);\n }\n }\n }\n else {\n if (target && !targetPortId && connector.sourceID !== target.id &&\n connector.segments && connector.segments[0].direction !== null\n && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToNode(connector, target);\n }\n if (target && targetPortId && connector.sourcePortID !== targetPortId &&\n connector.segments && connector.segments[0].direction !== null\n && target && target instanceof Node && canChangeSegment) {\n this.changeSourceEndToPort(connector, target, targetPortId);\n }\n }\n };\n // EJ2-65063 - Added below method to check if target has inConnect or outConnect. If it does not have inconnect and outconnect means then return false\n CommandHandler.prototype.canConnect = function (connector, target) {\n if (canInConnect(target) && canOutConnect(target)) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Change the connector endPoint to port\n */\n CommandHandler.prototype.changeSourceEndToPort = function (connector, target, targetPortId) {\n var port = this.diagram.getWrapper(target.wrapper, targetPortId);\n var point = { x: port.offsetX, y: port.offsetY };\n var direction = getPortDirection(point, cornersPointsBeforeRotation(target.wrapper), target.wrapper.bounds, false);\n var firstSegment = connector.segments[0];\n var secondSegment = connector.segments[1];\n if (firstSegment.direction !== direction) {\n var segments = [];\n var segValues = {};\n if (firstSegment.direction === getOppositeDirection(direction)) {\n segValues = {};\n var segValues1 = void 0;\n if (direction === 'Top' || direction === 'Bottom') {\n segValues1 = (direction === 'Top') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].y - point.y)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.y - firstSegment.points[0].y)\n };\n segValues = (firstSegment.points[0].x > point.x) ?\n { type: 'Orthogonal', isTerminal: true, direction: 'Right', length: (firstSegment.points[0].x - point.x) } :\n { type: 'Orthogonal', isTerminal: true, direction: 'Left', length: (point.x - firstSegment.points[0].x) };\n }\n else {\n segValues1 = (direction === 'Right') ? {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(firstSegment.points[0].x - point.x)\n } :\n {\n type: 'Orthogonal', isTerminal: true, direction: direction,\n length: Math.abs(point.x - firstSegment.points[0].x)\n };\n segValues = (firstSegment.points[0].y > point.y) ?\n { type: 'Orthogonal', direction: 'Top', isTerminal: true, length: (firstSegment.points[0].y - point.y) } :\n { type: 'Orthogonal', direction: 'Bottom', isTerminal: true, length: (point.y - firstSegment.points[0].y) };\n }\n segments.push(new OrthogonalSegment(connector, 'segments', segValues1, true));\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n else {\n segValues = { type: 'Orthogonal', direction: direction, length: 20, isTerminal: true };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n }\n if (firstSegment.direction !== getOppositeDirection(direction)) {\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[0].x = point.x;\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = (direction === 'Top') ?\n point.y - 20 : point.y + 20;\n }\n else {\n firstSegment.points[0].y = point.y;\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = (direction === 'Right') ?\n point.x + 20 : point.x - 20;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n connector.segments = segments.concat(connector.segments);\n }\n else {\n firstSegment.points[0] = point;\n if (direction === 'Top' || direction === 'Bottom') {\n firstSegment.points[firstSegment.points.length - 1].x = point.x;\n }\n else {\n firstSegment.points[firstSegment.points.length - 1].y = point.y;\n }\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n secondSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], secondSegment.points[secondSegment.points.length - 1]);\n }\n };\n /**\n * @param connector\n * @param changeTerminal\n * @private\nRemove terinal segment in initial\n */\n CommandHandler.prototype.removeTerminalSegment = function (connector, changeTerminal) {\n for (var i = 0; i < connector.segments.length - 2; i++) {\n var segment = connector.segments[0];\n if (segment.isTerminal) {\n if (changeTerminal) {\n segment.isTerminal = false;\n }\n else {\n connector.segments.splice(i, 1);\n i--;\n }\n }\n }\n };\n /**\n * Change the connector endPoint from point to node\n */\n CommandHandler.prototype.changeSourceEndToNode = function (connector, target) {\n this.removeTerminalSegment(connector);\n var sourceWrapper = target.wrapper.children[0].corners;\n var sourcePoint;\n var sourcePoint2;\n var firstSegment = connector.segments[0];\n var nextSegment = connector.segments[1];\n var segments = [];\n if (firstSegment.direction === 'Right' || firstSegment.direction === 'Left') {\n sourcePoint = (firstSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n if (firstSegment.length > sourceWrapper.width || ((firstSegment.direction === 'Left' &&\n sourcePoint.x >= firstSegment.points[0].x) || (firstSegment.direction === 'Right' &&\n sourcePoint.x <= firstSegment.points[0].x))) {\n firstSegment.points[0].y = firstSegment.points[firstSegment.points.length - 1].y = sourcePoint.y;\n firstSegment.points[0].x = sourcePoint.x;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n sourcePoint2 = (direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Top') ? firstSegment.points[firstSegment.points.length - 1].y - (sourcePoint2.y + 20) :\n (sourcePoint2.y + 20) - firstSegment.points[firstSegment.points.length - 1].y;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].x - sourcePoint2.x;\n firstSegment.direction = (firstSegment.length > 0) ? 'Right' : 'Left';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n else {\n sourcePoint = (firstSegment.direction === 'Bottom') ? sourceWrapper.bottomCenter : sourceWrapper.topCenter;\n if (firstSegment.length > sourceWrapper.height || ((firstSegment.direction === 'Top' &&\n sourcePoint.y >= firstSegment.points[0].y) ||\n (firstSegment.direction === 'Bottom' && sourcePoint.y <= firstSegment.points[0].y))) {\n firstSegment.points[0].x = firstSegment.points[firstSegment.points.length - 1].x = sourcePoint.x;\n firstSegment.points[0].y = sourcePoint.y;\n firstSegment.length = Point.distancePoints(firstSegment.points[0], firstSegment.points[firstSegment.points.length - 1]);\n nextSegment.length = Point.distancePoints(firstSegment.points[firstSegment.points.length - 1], nextSegment.points[nextSegment.points.length - 1]);\n }\n else {\n sourcePoint2 = (nextSegment.direction === 'Left') ? sourceWrapper.middleLeft : sourceWrapper.middleRight;\n var direction = void 0;\n if (nextSegment.direction) {\n direction = nextSegment.direction;\n }\n else {\n direction = Point.direction(nextSegment.points[0], nextSegment.points[nextSegment.points.length - 1]);\n }\n if (nextSegment.length && nextSegment.direction) {\n nextSegment.length =\n (direction === 'Left') ? firstSegment.points[firstSegment.points.length - 1].x - (sourcePoint2.x + 20) :\n (sourcePoint2.x + 20) - firstSegment.points[firstSegment.points.length - 1].x;\n }\n firstSegment.length = firstSegment.points[firstSegment.points.length - 1].y - sourcePoint2.y;\n firstSegment.direction = (firstSegment.length > 0) ? 'Bottom' : 'Top';\n var segValues = { type: 'Orthogonal', direction: direction, length: 20 };\n segments.push(new OrthogonalSegment(connector, 'segments', segValues, true));\n connector.segments = segments.concat(connector.segments);\n }\n }\n };\n //Translate the bezier points during the interaction\n CommandHandler.prototype.translateBezierPoints = function (connector, value, tx, ty, seg, point, update) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n var prevSegment = index > 0 ? connector.segments[index - 1] : null;\n var startPoint = prevSegment !== null ? prevSegment.point : connector.sourcePoint;\n var endPoint = index === connector.segments.length - 1 ? connector.targetPoint : segment.point;\n if (segment) {\n if (value === 'BezierSourceThumb' && (segment.vector1.angle || segment.vector1.distance)) {\n var oldDistance = segment.vector1.distance;\n var oldAngle = segment.vector1.angle;\n segment.vector1 = {\n distance: connector.distance(startPoint, point),\n angle: Point.findAngle(startPoint, point)\n };\n var deltaLength = segment.vector1.distance - oldDistance;\n var deltaAngle = segment.vector1.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, true, deltaLength, deltaAngle);\n }\n else if (value === 'BezierTargetThumb' && (segment.vector2.angle || segment.vector2.distance)) {\n var oldDistance = segment.vector2.distance;\n var oldAngle = segment.vector2.angle;\n segment.vector2 = {\n distance: connector.distance(endPoint, point),\n angle: Point.findAngle(endPoint, point)\n };\n var deltaLength = segment.vector2.distance - oldDistance;\n var deltaAngle = segment.vector2.angle - oldAngle;\n this.translateSubsequentSegment(connector, seg, false, deltaLength, deltaAngle);\n }\n else if ((value === 'ConnectorSourceEnd' && !connector.sourceID || value === 'ConnectorTargetEnd' && !connector.targetID)\n && update && isEmptyVector(segment.vector1) && isEmptyVector(segment.vector2)) {\n if (Point.isEmptyPoint(segment.point1)) {\n segment.bezierPoint1 = getBezierPoints(connector.sourcePoint, connector.targetPoint);\n }\n if (Point.isEmptyPoint(segment.point2)) {\n segment.bezierPoint2 = getBezierPoints(connector.targetPoint, connector.sourcePoint);\n }\n }\n else if (value === 'BezierSourceThumb' || (value === 'ConnectorSourceEnd' && !update && isEmptyVector(segment.vector1))) {\n segment.bezierPoint1.x += tx;\n segment.bezierPoint1.y += ty;\n if ((!Point.isEmptyPoint(segment.point1)) || (update)) {\n segment.point1 = { x: segment.bezierPoint1.x, y: segment.bezierPoint1.y };\n }\n }\n else if (value === 'BezierTargetThumb' || (value === 'ConnectorTargetEnd' && !update && isEmptyVector(segment.vector2))) {\n segment.bezierPoint2.x += tx;\n segment.bezierPoint2.y += ty;\n if ((!Point.isEmptyPoint(segment.point2)) || (update)) {\n segment.point2 = { x: segment.bezierPoint2.x, y: segment.bezierPoint2.y };\n }\n }\n }\n };\n CommandHandler.prototype.translateSubsequentSegment = function (connector, seg, isSourceEnd, deltaLength, deltaAngle) {\n var index = (connector.segments.indexOf(seg));\n var segment = connector.segments[parseInt(index.toString(), 10)];\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricAngle)) {\n deltaAngle = null;\n }\n if (!(connector.bezierSettings.smoothness & BezierSmoothness.SymmetricDistance)) {\n deltaLength = null;\n }\n if (deltaLength == null && deltaAngle == null) {\n return;\n }\n if (isSourceEnd) {\n if (index !== 0) {\n this.updatePreviousBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n else {\n if (index !== connector.segments.length - 1) {\n this.updateNextBezierSegment(connector, index, deltaLength, deltaAngle);\n }\n }\n };\n CommandHandler.prototype.updatePreviousBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index - 1];\n var newDistance = segment.vector2.distance + deltaLength;\n var newAngle = (segment.vector2.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector2 = { distance: newDistance, angle: newAngle };\n };\n CommandHandler.prototype.updateNextBezierSegment = function (connector, index, deltaLength, deltaAngle) {\n var segment = connector.segments[index + 1];\n var newDistance = segment.vector1.distance + deltaLength;\n var newAngle = (segment.vector1.angle + deltaAngle) % 360;\n if (newAngle < 0) {\n newAngle += 360;\n }\n segment.vector1 = { distance: newDistance, angle: newAngle };\n };\n /**\n * dragTargetEnd method \\\n *\n * @returns { void } dragTargetEnd method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {PointModel} point - provide the point value.\n * @param {string} endPoint - provide the endPoint value.\n * @param {boolean} update - provide the update value.\n * @param {OrthogonalSegmentModel | BezierSegmentModel | StraightSegmentModel} segment - provide the segment value.\n *\n * @private\n */\n CommandHandler.prototype.dragTargetEnd = function (obj, tx, ty, preventUpdate, point, endPoint, update, segment) {\n var connector = this.diagram.nameTable[obj.id];\n var oldChanges;\n var boundaryConstraints = this.checkBoundaryConstraints(tx, ty, connector.wrapper.bounds);\n if (canDragTargetEnd(connector) && endPoint !== 'BezierTargetThumb'\n && boundaryConstraints && canPageEditable(this.diagram)) {\n oldChanges = { targetPoint: connector.targetPoint };\n oldChanges = cloneObject(oldChanges);\n connector.targetPoint.x += tx;\n connector.targetPoint.y += ty;\n if (endPoint === 'ConnectorTargetEnd' && connector.type === 'Orthogonal' &&\n connector.segments && connector.segments.length > 0) {\n var prev = connector.segments[connector.segments.length - 2];\n if (prev && connector.segments[connector.segments.length - 1].points.length === 2) {\n if (prev.direction === 'Left' || prev.direction === 'Right') {\n prev.points[prev.points.length - 1].x = connector.targetPoint.x;\n }\n else {\n prev.points[prev.points.length - 1].y = connector.targetPoint.y;\n }\n prev.length = Point.distancePoints(prev.points[0], prev.points[prev.points.length - 1]);\n prev.direction = Point.direction(prev.points[0], prev.points[prev.points.length - 1]);\n }\n }\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n }\n if (connector.type === 'Bezier') {\n oldChanges = { targetPoint: connector.targetPoint };\n if (segment) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, segment, point, !update);\n }\n else {\n for (var i = 0; i < obj.segments.length; i++) {\n this.translateBezierPoints(obj, (endPoint === '') ? 'ConnectorTargetEnd' : endPoint, tx, ty, obj.segments[parseInt(i.toString(), 10)], point, !update);\n }\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector, oldChanges);\n }\n if (!(this.diagram.realActions & RealAction.AnimationClick)) {\n this.diagram.refreshCanvasLayers();\n }\n return boundaryConstraints;\n };\n /**\n * dragControlPoint method \\\n *\n * @returns { void } dragControlPoint method .\\\n * @param {ConnectorModel} obj - provide the obj value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the ty value.\n * @param {boolean} preventUpdate - provide the preventUpdate value.\n * @param {number} segmentNumber - provide the segmentNumber value.\n *\n * @private\n */\n CommandHandler.prototype.dragControlPoint = function (obj, tx, ty, preventUpdate, segmentNumber) {\n var connector = this.diagram.nameTable[obj.id];\n if ((connector.type === 'Straight' || connector.type === 'Bezier') && connector.segments.length > 0) {\n if (segmentNumber !== undefined && connector.segments[parseInt(segmentNumber.toString(), 10)]) {\n if (connector.type === 'Bezier') {\n var seg = connector.segments[parseInt(segmentNumber.toString(), 10)];\n var isInternalSegment = seg.isInternalSegment;\n if (!isInternalSegment || connector.bezierSettings === null || connector.bezierSettings.segmentEditOrientation === 'FreeForm') {\n seg.point.x += tx;\n seg.point.y += ty;\n }\n else {\n if (seg.orientation === 'Horizontal') {\n seg.point.x += tx;\n }\n else {\n seg.point.y += ty;\n }\n this.updateDirectionalBezierCurve(connector);\n }\n if (isInternalSegment) {\n connector.isBezierEditing = true;\n }\n }\n else {\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.x += tx;\n connector.segments[parseInt(segmentNumber.toString(), 10)].point.y += ty;\n }\n }\n else {\n for (var i = 0; i < connector.segments.length - 1; i++) {\n connector.segments[parseInt(i.toString(), 10)].point.x += tx;\n connector.segments[parseInt(i.toString(), 10)].point.y += ty;\n }\n }\n if (!preventUpdate) {\n this.updateEndPoint(connector);\n }\n }\n return true;\n };\n CommandHandler.prototype.updateDirectionalBezierCurve = function (connector) {\n var pts = [];\n pts.push(connector.sourcePoint);\n for (var i = 0; i < connector.segments.length - 1; i++) {\n var seg = connector.segments[parseInt(i.toString(), 10)];\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: pts[pts.length - 1].y });\n }\n else {\n pts.push({ x: pts[pts.length - 1].x, y: seg.point.y });\n }\n if (i === connector.segments.length - 2) {\n if (seg.orientation === 'Horizontal') {\n pts.push({ x: seg.point.x, y: connector.targetPoint.y });\n }\n else {\n pts.push({ x: connector.targetPoint.x, y: seg.point.y });\n }\n }\n }\n pts.push(connector.targetPoint);\n var start = pts[0];\n var end = pts[pts.length - 1];\n if (connector.segments.length > 1) {\n var mid1 = pts[1];\n var mid2 = pts[2];\n var center1 = { x: (mid1.x + mid2.x) * 0.5, y: (mid1.y + mid2.y) * 0.5 };\n var segment1 = connector.segments[0];\n segment1.vector1.angle = findAngle(start, mid1);\n segment1.vector1.distance = Point.findLength(start, mid1) * 0.5;\n segment1.vector2.angle = findAngle(center1, mid1);\n segment1.vector2.distance = Point.findLength(center1, mid1) * 0.5;\n segment1.point = center1;\n var segment2 = connector.segments[1];\n segment2.vector1.angle = findAngle(center1, mid2);\n segment2.vector1.distance = Point.findLength(center1, mid2) * 0.5;\n if (connector.segments.length > 2) {\n var mid3 = pts[3];\n var center2 = { x: (mid2.x + mid3.x) * 0.5, y: (mid2.y + mid3.y) * 0.5 };\n segment2.vector2.angle = findAngle(center2, mid2);\n segment2.vector2.distance = Point.findLength(center2, mid2) * 0.5;\n segment2.point = center2;\n var segment3 = connector.segments[2];\n segment3.vector1.angle = findAngle(center2, mid3);\n segment3.vector1.distance = Point.findLength(center2, mid3) * 0.5;\n if (connector.segments.length > 3) {\n var mid4 = pts[4];\n var center3 = { x: (mid3.x + mid4.x) * 0.5, y: (mid3.y + mid4.y) * 0.5 };\n segment3.vector2.angle = findAngle(center3, mid3);\n segment3.vector2.distance = Point.findLength(center3, mid3) * 0.5;\n segment3.point = center3;\n var segment4 = connector.segments[3];\n segment4.vector1.angle = findAngle(center3, mid4);\n segment4.vector1.distance = Point.findLength(center3, mid4) * 0.5;\n segment4.vector2.angle = findAngle(end, mid4);\n segment4.vector2.distance = Point.findLength(end, mid4) * 0.5;\n }\n else {\n segment3.vector2.angle = findAngle(end, mid3);\n segment3.vector2.distance = Point.findLength(end, mid3) * 0.5;\n }\n }\n else {\n segment2.vector2.angle = findAngle(end, mid2);\n segment2.vector2.distance = Point.findLength(end, mid2) * 0.5;\n }\n }\n };\n // /**\n // * rotatePropertyChnage method \\\n // *\n // * @returns { void } rotatePropertyChnage method .\\\n // * @param {number} angle - provide the obj value.\n // *\n // * @private\n // */\n // public rotatePropertyChnage(angle: number): void {\n // const selectedItems: SelectorModel = this.diagram.selectedItems;\n // let objects: (NodeModel | ConnectorModel)[] = [];\n // objects = objects.concat(selectedItems.nodes);\n // objects = objects.concat(selectedItems.connectors);\n // const pivotValue: PointModel = { x: selectedItems.offsetX, y: selectedItems.offsetY };\n // this.rotateObjects(selectedItems, objects, angle - selectedItems.rotateAngle, pivotValue);\n // selectedItems.wrapper.rotateAngle = selectedItems.rotateAngle = angle;\n // this.diagram.updateSelector();\n // }\n /**\n * rotateObjects method \\\n *\n * @returns { void } rotateObjects method .\\\n * @param {NodeModel | SelectorModel} parent - provide the parent value.\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the objects value.\n * @param {number} angle - provide the angle value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {boolean} includeParent - provide the includeParent value.\n *\n * @private\n */\n CommandHandler.prototype.rotateObjects = function (parent, objects, angle, pivot, includeParent) {\n pivot = pivot || {};\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n var oldValues;\n for (var _i = 0, objects_2 = objects; _i < objects_2.length; _i++) {\n var obj = objects_2[_i];\n if (obj instanceof Node) {\n if (canRotate(obj) && canPageEditable(this.diagram)) {\n if (includeParent !== false || parent !== obj) {\n //918299 - Flip and rotation of the group node now work properly by calculating the wrapper offset instead of the individual offset\n oldValues = { offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY, rotateAngle: obj.rotateAngle };\n //909137 - Undo Operation Improper After Rotating Node Counterclockwise. Remove the below line and add the angle to same line.\n obj.rotateAngle = ((obj.rotateAngle + angle) + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n this.diagram.nodePropertyChange(obj, {}, { offsetX: obj.offsetX, offsetY: obj.offsetY, rotateAngle: obj.rotateAngle });\n }\n if (obj.processId) {\n var parent_3 = this.diagram.nameTable[obj.processId];\n var bound = this.diagram.bpmnModule.getChildrenBound(parent_3, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n if (obj.children && obj.children.length && !obj.container) {\n this.getChildren(obj, objects);\n }\n }\n }\n else {\n this.rotatePoints(obj, angle, pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY });\n }\n this.diagram.updateDiagramObject(obj);\n }\n this.diagram.refreshCanvasLayers();\n this.diagram.updateSelector();\n };\n /**\n * snapConnectorEnd method \\\n *\n * @returns { PointModel } snapConnectorEnd method .\\\n * @param {PointModel} currentPosition - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapConnectorEnd = function (currentPosition) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n this.diagram.snappingModule.snapConnectorEnd(currentPosition);\n }\n return currentPosition;\n };\n /**\n * snapAngle method \\\n *\n * @returns { number } snapAngle method .\\\n * @param {number} angle - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.snapAngle = function (angle) {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines)\n && this.snappingModule) {\n return this.snappingModule.snapAngle(this.diagram, angle);\n }\n else {\n return 0;\n }\n };\n /**\n * rotatePoints method \\\n *\n * @returns { number } rotatePoints method .\\\n * @param {Connector} conn - provide the parent value.\n * @param {number} angle - provide the parent value.\n * @param {PointModel} pivot - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.rotatePoints = function (conn, angle, pivot) {\n if (!conn.sourceWrapper || !conn.targetWrapper) {\n var matrix = identityMatrix();\n rotateMatrix(matrix, angle, pivot.x, pivot.y);\n conn.sourcePoint = transformPointByMatrix(matrix, conn.sourcePoint);\n conn.targetPoint = transformPointByMatrix(matrix, conn.targetPoint);\n if (conn.shape.type === 'Bpmn' && conn.shape.sequence === 'Default' && conn.shape.flow === 'Sequence') {\n this.updatePathElementOffset(conn);\n }\n var newProp = { sourcePoint: conn.sourcePoint, targetPoint: conn.targetPoint };\n this.diagram.connectorPropertyChange(conn, {}, newProp);\n if (conn.segments && conn.segments.length > 0) {\n this.diagram.protectPropertyChange(true);\n var connector = conn;\n connector.segments = [];\n this.diagram.connectorPropertyChange(connector, {}, { segments: connector.segments });\n this.diagram.protectPropertyChange(false);\n }\n }\n };\n CommandHandler.prototype.updateInnerParentProperties = function (tempNode) {\n var elements = [];\n var protect = 'isProtectedOnChange';\n var protectChange = this.diagram[\"\" + protect];\n this.diagram.protectPropertyChange(true);\n var innerParents = this.getAllDescendants(tempNode, elements, false, true);\n for (var i = 0; i < innerParents.length; i++) {\n var obj = this.diagram.nameTable[innerParents[parseInt(i.toString(), 10)].id];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n obj.width = obj.wrapper.width;\n obj.height = obj.wrapper.height;\n }\n this.diagram.protectPropertyChange(protectChange);\n };\n /**\n * scale method \\\n *\n * @returns { boolean } scale method .\\\n * @param {NodeModel | ConnectorModel} obj - provide the parent value.\n * @param {number} sw - provide the parent value.\n * @param {number} sh - provide the parent value.\n * @param {number} pivot - provide the parent value.\n * @param {number} refObject - provide the parent value.\n * @param {boolean} isOutsideBoundary - provide the parent value.\n *\n * @private\n */\n // eslint-disable-next-line max-len\n CommandHandler.prototype.scale = function (obj, sw, sh, pivot, refObject, isOutsideBoundary) {\n var node = this.diagram.nameTable[obj.id];\n var tempNode = node;\n var elements = [];\n var element = node.wrapper;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n var x = refWrapper.offsetX - refWrapper.actualSize.width * refWrapper.pivot.x;\n var y = refWrapper.offsetY - refWrapper.actualSize.height * refWrapper.pivot.y;\n var refPoint = getPoint(x, y, refWrapper.actualSize.width, refWrapper.actualSize.height, refWrapper.rotateAngle, refWrapper.offsetX, refWrapper.offsetY, pivot);\n if (element.actualSize.width !== undefined && element.actualSize.height !== undefined && canPageEditable(this.diagram)) {\n if (tempNode.children && !(tempNode.container)) {\n var nodes = this.getAllDescendants(tempNode, elements);\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var temp = nodes_1[_i];\n this.scaleObject(sw, sh, refPoint, temp, element, refObject);\n }\n obj.wrapper.measure(new Size());\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.diagram.updateGroupOffset(node);\n this.updateInnerParentProperties(tempNode);\n }\n else {\n this.scaleObject(sw, sh, refPoint, node, element, refObject);\n }\n var bounds = getBounds(obj.wrapper);\n var checkBoundaryConstraints = this.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints && isOutsideBoundary) {\n this.scale(obj, 1 / sw, 1 / sh, pivot, undefined, true);\n return false;\n }\n this.diagram.updateDiagramObject(obj);\n }\n return true;\n };\n /** @private */\n CommandHandler.prototype.getAllDescendants = function (node, nodes, includeParent, innerParent) {\n var temp = node;\n var parentNodes = [];\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n if (node) {\n if (!node.children) {\n nodes.push(node);\n }\n else {\n if (includeParent) {\n nodes.push(node);\n }\n if (innerParent) {\n parentNodes.push(node);\n }\n nodes = this.getAllDescendants(node, nodes);\n }\n }\n }\n return (innerParent) ? parentNodes : nodes;\n };\n /**\n * getChildren method \\\n *\n * @returns { (NodeModel | ConnectorModel)[]): (NodeModel | ConnectorModel)[] } getChildren method .\\\n * @param {NodeModel} node - provide the sw value.\n * @param {(NodeModel | ConnectorModel)[]} nodes - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.getChildren = function (node, nodes) {\n var temp = node;\n if (node.children) {\n for (var i = 0; i < temp.children.length; i++) {\n node = (this.diagram.nameTable[temp.children[parseInt(i.toString(), 10)]]);\n nodes.push(node);\n }\n }\n return nodes;\n };\n /**\n * scaleObject method \\\n *\n * @returns { NodeModel } scaleObject method .\\\n * @param {string} id - provide the sw value.\n *\n * @private\n */\n CommandHandler.prototype.cloneChild = function (id) {\n var node = this.diagram.nameTable[\"\" + id];\n return node;\n };\n /**\n * scaleObject method \\\n *\n * @returns { void } scaleObject method .\\\n * @param {End} sw - provide the sw value.\n * @param {End} sh - provide the sh value.\n * @param {PointModel} pivot - provide the pivot value.\n * @param {IElement} obj - provide the pivot value.\n * @param {DiagramElement} element - provide the element value.\n * @param {IElement} refObject - provide the refObject value.\n *\n * @private\n */\n CommandHandler.prototype.scaleObject = function (sw, sh, pivot, obj, element, refObject, canUpdate) {\n sw = sw < 0 ? 1 : sw;\n sh = sh < 0 ? 1 : sh;\n var oldValues = {};\n if (sw !== 1 || sh !== 1) {\n var width = void 0;\n var height = void 0;\n if (obj instanceof Node) {\n var node = obj;\n var isResize = void 0;\n var bound = void 0;\n oldValues = {\n width: obj.wrapper.actualSize.width, height: obj.wrapper.actualSize.height,\n offsetX: obj.wrapper.offsetX, offsetY: obj.wrapper.offsetY,\n margin: { top: node.margin.top, left: node.margin.left }\n };\n if (node.shape.type === 'Bpmn' && node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n bound = this.diagram.bpmnModule.getChildrenBound(node, node.id, this.diagram);\n isResize = node.wrapper.bounds.containsRect(bound);\n }\n width = node.wrapper.actualSize.width * sw;\n height = node.wrapper.actualSize.height * sh;\n if (node.maxWidth !== undefined && node.maxWidth !== 0) {\n width = Math.min(node.maxWidth, width);\n }\n if (node.minWidth !== undefined && node.minWidth !== 0) {\n width = Math.max(node.minWidth, width);\n }\n if (node.maxHeight !== undefined && node.maxHeight !== 0) {\n height = Math.min(node.maxHeight, height);\n }\n if (node.minHeight !== undefined && node.minHeight !== 0) {\n height = Math.max(node.minHeight, height);\n }\n if (isResize) {\n width = Math.max(width, (bound.right - node.wrapper.bounds.x));\n height = Math.max(height, (bound.bottom - node.wrapper.bounds.y));\n }\n sw = width / node.actualSize.width;\n sh = height / node.actualSize.height;\n }\n var matrix = identityMatrix(); // let refWrapper: DiagramElement;\n if (!refObject) {\n refObject = obj;\n }\n var refWrapper = refObject.wrapper;\n rotateMatrix(matrix, -refWrapper.rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, sw, sh, pivot.x, pivot.y);\n rotateMatrix(matrix, refWrapper.rotateAngle, pivot.x, pivot.y);\n if (obj instanceof Node) {\n var node = obj; //let left: number; let top: number;\n var newPosition = transformPointByMatrix(matrix, { x: node.wrapper.offsetX, y: node.wrapper.offsetY });\n var oldleft = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var oldtop = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n if (width > 0) {\n if (node.processId) {\n var parent_4 = this.diagram.nameTable[node.processId];\n if (!parent_4.maxWidth || ((node.margin.left + width) < parent_4.maxWidth)) {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n else {\n node.width = width;\n node.offsetX = newPosition.x;\n }\n }\n if (height > 0) {\n if (node.processId) {\n var parent_5 = this.diagram.nameTable[node.processId];\n if (!parent_5.maxHeight || ((node.margin.top + height) < parent_5.maxHeight)) {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n else {\n node.height = height;\n node.offsetY = newPosition.y;\n }\n }\n var left = node.wrapper.offsetX - node.wrapper.actualSize.width * node.pivot.x;\n var top_1 = node.wrapper.offsetY - node.wrapper.actualSize.height * node.pivot.y;\n var parent_6 = this.diagram.nameTable[node.processId];\n if (parent_6 && ((node.margin.top + (top_1 - oldtop)) <= 0 ||\n (node.margin.left + (left - oldleft) <= 0))) {\n this.diagram.nodePropertyChange(obj, {}, {\n margin: { top: node.margin.top, left: node.margin.left }\n });\n }\n else {\n if (checkParentAsContainer(this.diagram, obj, true)) {\n checkChildNodeInContainer(this.diagram, obj);\n }\n else {\n if (!canUpdate) {\n this.diagram.nodePropertyChange(obj, oldValues, {\n width: node.width, height: node.height, offsetX: node.offsetX, offsetY: node.offsetY,\n margin: { top: node.margin.top + (top_1 - oldtop), left: node.margin.left + (left - oldleft) }\n });\n }\n }\n }\n }\n else {\n var connector = obj;\n var oldValues_1 = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n if (!connector.sourceWrapper || !connector.targetWrapper) {\n this.scaleConnector(connector, matrix, oldValues_1, sw, sh, pivot);\n }\n }\n var parentNode = this.diagram.nameTable[obj.processId];\n if (parentNode) {\n var parent_7 = parentNode.wrapper.bounds;\n var child = obj.wrapper.bounds;\n var bound = this.diagram.bpmnModule.getChildrenBound(parentNode, obj.id, this.diagram);\n this.diagram.bpmnModule.updateSubProcessess(bound, obj, this.diagram);\n }\n }\n };\n CommandHandler.prototype.scaleConnector = function (connector, matrix, oldValues, sw, sh, pivot) {\n connector.sourcePoint = transformPointByMatrix(matrix, connector.sourcePoint);\n connector.targetPoint = transformPointByMatrix(matrix, connector.targetPoint);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.updatePathElementOffset(connector);\n }\n var newProp = { sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint };\n this.diagram.connectorPropertyChange(connector, oldValues, newProp);\n var selector = this.diagram.selectedItems;\n if (selectionHasConnector(this.diagram, selector)) {\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var nodeModel = {\n offsetX: clonedSelectedItems.offsetX, offsetY: clonedSelectedItems.offsetY,\n height: clonedSelectedItems.height, width: clonedSelectedItems.width,\n rotateAngle: clonedSelectedItems.rotateAngle\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n obj.wrapper = clonedSelectedItems.wrapper;\n obj.wrapper.rotateAngle = selector.rotateAngle;\n this.scaleObject(sw, sh, pivot, obj, obj.wrapper, obj, true);\n selector.wrapper.actualSize.width = obj.width;\n selector.wrapper.actualSize.height = obj.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var child = this.diagram.selectedItems.connectors[0];\n if (child.id !== connector.id) {\n this.measureSelector(selector);\n }\n }\n };\n CommandHandler.prototype.measureSelector = function (selector) {\n var desiredBounds = undefined;\n //Measuring the children\n var clonedSelectedItems = cloneObject(this.diagram.selectedItems);\n var objects = [];\n var bounds;\n objects = clonedSelectedItems.connectors;\n var pivot = { x: this.diagram.selectedItems.offsetX, y: this.diagram.selectedItems.offsetY };\n for (var i = 0; i < objects.length; i++) {\n var matrix_1 = identityMatrix();\n rotateMatrix(matrix_1, -selector.rotateAngle, pivot.x, pivot.y);\n objects[parseInt(i.toString(), 10)].sourcePoint\n = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].sourcePoint);\n objects[parseInt(i.toString(), 10)].targetPoint\n = transformPointByMatrix(matrix_1, objects[parseInt(i.toString(), 10)].targetPoint);\n var p1 = {\n x: objects[parseInt(i.toString(), 10)].sourcePoint.x,\n y: objects[parseInt(i.toString(), 10)].sourcePoint.y\n };\n var p2 = {\n x: objects[parseInt(i.toString(), 10)].targetPoint.x,\n y: objects[parseInt(i.toString(), 10)].targetPoint.y\n };\n bounds = (this.calculateBounds(p1, p2));\n if (desiredBounds === undefined) {\n desiredBounds = bounds;\n }\n else {\n desiredBounds.uniteRect(bounds);\n }\n }\n var offsetPt = {};\n if (desiredBounds !== undefined) {\n offsetPt = {\n x: desiredBounds.x + desiredBounds.width * selector.wrapper.pivot.x,\n y: desiredBounds.y + desiredBounds.height * selector.wrapper.pivot.y\n };\n }\n var nodeModel = {\n offsetX: offsetPt.x, offsetY: offsetPt.y,\n height: desiredBounds.height, width: desiredBounds.width, rotateAngle: 0\n };\n var obj = new Node(this.diagram, 'nodes', nodeModel, true);\n var matrix = identityMatrix();\n rotateMatrix(matrix, selector.rotateAngle, pivot.x, pivot.y);\n obj.rotateAngle += selector.rotateAngle;\n obj.rotateAngle = (obj.rotateAngle + 360) % 360;\n var newOffset = transformPointByMatrix(matrix, { x: obj.offsetX, y: obj.offsetY });\n obj.offsetX = newOffset.x;\n obj.offsetY = newOffset.y;\n selector.wrapper.actualSize.width = desiredBounds.width;\n selector.wrapper.actualSize.height = desiredBounds.height;\n selector.wrapper.offsetX = obj.offsetX;\n selector.wrapper.offsetY = obj.offsetY;\n var selectorEle = getSelectorElement(this.diagram.element.id);\n // EJ2-69511 - Added handleSize parameter to avoid exception when we perform multiselect of connectors, rotate and resize it.\n this.diagram.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.diagram.scroller.currentZoom, selector.constraints, this.diagram.scroller.transform, false, canMove(selector), null, null, selector.handleSize);\n };\n CommandHandler.prototype.calculateBounds = function (p1, p2) {\n var left = Math.min(p1.x, p2.x);\n var right = Math.max(p1.x, p2.x);\n var top = Math.min(p1.y, p2.y);\n var bottom = Math.max(p1.y, p2.y);\n var width = right - left;\n var height = bottom - top;\n var rect = new Rect(left, top, width, height);\n return rect;\n };\n /**\n * portDrag method \\\n *\n * @returns { void } portDrag method .\\\n * @param { NodeModel | ConnectorModel} obj - provide the obj value.\n * @param {DiagramElement} portElement - provide the portElement value.\n * @param {number} tx - provide the tx value.\n * @param {number} ty - provide the tx value.\n *\n * @private\n */\n CommandHandler.prototype.portDrag = function (obj, portElement, tx, ty) {\n var oldValues;\n var changedvalues;\n var port = this.findTarget(portElement, obj);\n var bounds = getBounds(obj.wrapper);\n if (port && canDrag(port, this.diagram)) {\n // Feature 826644: Support to add ports to the connector. Added below condition to check connector port.\n if (obj instanceof Node) {\n oldValues = this.getPortChanges(obj, port);\n port.offset.x += (tx / bounds.width);\n port.offset.y += (ty / bounds.height);\n changedvalues = this.getPortChanges(obj, port);\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n }\n else {\n oldValues = this.getConnectorPortChanges(obj, port);\n this.updatePortOffset(obj, port, tx, ty);\n port.alignment = 'Center';\n changedvalues = this.getConnectorPortChanges(obj, port);\n this.diagram.connectorPropertyChange(obj, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(obj);\n }\n };\n /** @private */\n CommandHandler.prototype.labelDrag = function (obj, textElement, tx, ty) {\n //let changedvalues: Object;\n //let label: ShapeAnnotationModel | PathAnnotationModel;\n // eslint-disable-next-line max-len\n var label = this.findTarget(textElement, obj);\n var bounds = cornersPointsBeforeRotation(obj.wrapper);\n var oldValues = this.getAnnotationChanges(obj, label);\n if (label instanceof ShapeAnnotation) {\n label.offset.x += (tx / bounds.width);\n label.offset.y += (ty / bounds.height);\n }\n else {\n this.updatePathAnnotationOffset(obj, label, tx, ty);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n }\n var changedvalues = this.getAnnotationChanges(obj, label);\n if (obj instanceof Node) {\n this.diagram.nodePropertyChange(obj, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(obj, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(obj);\n if (!isSelected(this.diagram, label, false, textElement)) {\n this.labelSelect(obj, textElement);\n }\n };\n CommandHandler.prototype.updatePathAnnotationOffset = function (object, label, tx, ty, newPosition, size) {\n var textWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var offsetX = textWrapper.offsetX;\n var offsetY = textWrapper.offsetY;\n var offset;\n var intermediatePoints = object.intermediatePoints;\n var prev;\n var pointLength = 0;\n var totalLength = 0;\n var intersectingOffset;\n var currentPosition;\n switch (label.verticalAlignment) {\n case 'Center':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n break;\n case 'Top':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n case 'Bottom':\n if (label.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (label.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n }\n var intersetingPts = this.getInterceptWithSegment(currentPosition, intermediatePoints);\n var newOffset = intermediatePoints[intermediatePoints.length - 1];\n totalLength = Point.getLengthFromListOfPoints(intermediatePoints);\n if (intersetingPts.length > 0) {\n label.dragLimit = label.dragLimit ? label.dragLimit : {};\n if (label.dragLimit.top || label.dragLimit.bottom || label.dragLimit.left || label.dragLimit.right) {\n var minDistance = { minDistance: null };\n newOffset = this.getRelativeOffset(currentPosition, intermediatePoints, minDistance);\n var distance = { minDistance: null };\n intersectingOffset = this.getRelativeOffset(currentPosition, intersetingPts, distance);\n if (minDistance != null && distance.minDistance < minDistance.minDistance) {\n newOffset = intersectingOffset;\n }\n else {\n var connectorOffset = getOffsetOfConnector(object.intermediatePoints, label);\n newOffset = connectorOffset.point;\n }\n }\n else {\n intersectingOffset = intersetingPts[intersetingPts.length - 1];\n newOffset = intersectingOffset;\n }\n if (newOffset) {\n var p = void 0;\n var bounds = void 0;\n for (p = 0; p < intermediatePoints.length; p++) {\n if (prev != null) {\n bounds = Rect.toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]);\n if (bounds.containsPoint(newOffset)) {\n pointLength += Point.findLength(prev, newOffset);\n break;\n }\n else {\n pointLength += Point.findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]);\n }\n }\n prev = intermediatePoints[parseInt(p.toString(), 10)];\n }\n offset = { x: pointLength / totalLength, y: 0 };\n }\n this.updateLabelMargin(object, label, offset, currentPosition, size, tx, ty);\n }\n else {\n this.updateLabelMargin(object, label, null, currentPosition, size, tx, ty);\n }\n };\n // Feature 826644: Support to add ports to the connector.\n // Added below method to update the port offset when we drag the port.\n CommandHandler.prototype.updatePortOffset = function (object, port, tx, ty, newPosition, size) {\n var textWrapper = this.diagram.getWrapper(object.wrapper, port.id);\n var offsetX = textWrapper.offsetX;\n var offsetY = textWrapper.offsetY;\n var offset;\n var intermediatePoints = object.intermediatePoints;\n var prev;\n var pointLength = 0;\n var totalLength = 0;\n var intersectingOffset;\n var currentPosition;\n switch (port.verticalAlignment) {\n case 'Center':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + ty };\n }\n break;\n case 'Top':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY - (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n case 'Bottom':\n if (port.horizontalAlignment === 'Center') {\n currentPosition = (newPosition) ? newPosition : { x: offsetX + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Right') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX + (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n else if (port.horizontalAlignment === 'Left') {\n currentPosition = (newPosition) ? newPosition :\n { x: offsetX - (textWrapper.actualSize.width) / 2 + tx, y: offsetY + (textWrapper.actualSize.height) / 2 + ty };\n }\n break;\n }\n var intersectingPoints = this.getInterceptWithSegment(currentPosition, intermediatePoints);\n var newOffset = intermediatePoints[intermediatePoints.length - 1];\n totalLength = Point.getLengthFromListOfPoints(intermediatePoints);\n if (intersectingPoints.length > 0) {\n intersectingOffset = intersectingPoints[intersectingPoints.length - 1];\n newOffset = intersectingOffset;\n if (newOffset) {\n var p = void 0;\n var bounds = void 0;\n for (p = 0; p < intermediatePoints.length; p++) {\n if (prev != null) {\n bounds = Rect.toBounds([prev, intermediatePoints[parseInt(p.toString(), 10)]]);\n if (bounds.containsPoint(newOffset)) {\n pointLength += Point.findLength(prev, newOffset);\n break;\n }\n else {\n pointLength += Point.findLength(prev, intermediatePoints[parseInt(p.toString(), 10)]);\n }\n }\n prev = intermediatePoints[parseInt(p.toString(), 10)];\n }\n offset = { x: pointLength / totalLength, y: 0 };\n }\n this.updateLabelMargin(object, port, offset, currentPosition, size, tx, ty);\n }\n else {\n this.updateLabelMargin(object, port, null, currentPosition, size, tx, ty);\n }\n };\n CommandHandler.prototype.getRelativeOffset = function (currentPosition, points, minDistance) {\n var newOffset;\n var distance;\n var pt;\n var i;\n for (i = 0; i < points.length; i++) {\n pt = points[parseInt(i.toString(), 10)];\n distance = Math.round(Math.sqrt(Math.pow((currentPosition.x - pt.x), 2) +\n Math.pow((currentPosition.y - pt.y), 2)));\n if (minDistance.minDistance === null ||\n Math.min(Math.abs(minDistance.minDistance), Math.abs(distance)) === Math.abs(distance)) {\n newOffset = pt;\n minDistance.minDistance = distance;\n }\n }\n return newOffset;\n };\n CommandHandler.prototype.dragLimitValue = function (label, point, tempPt, contentDimension) {\n var x = false;\n var y = false;\n if ((tempPt.x >= (point.x - label.dragLimit.left - (contentDimension.width / 2))) &&\n (tempPt.x <= point.x + label.dragLimit.right + (contentDimension.width / 2))) {\n x = true;\n }\n if ((tempPt.y >= (point.y - label.dragLimit.top - (contentDimension.height / 2))) &&\n (tempPt.y <= point.y + label.dragLimit.bottom + (contentDimension.height / 2))) {\n y = true;\n }\n return { x: x, y: y };\n };\n /* eslint-disable */\n CommandHandler.prototype.updateLabelMargin = function (node, label, offset, tempPt, size, tx, ty) {\n offset = offset ? offset : { x: label.offset, y: 0 };\n if (label && offset && offset.x > 0 && offset.x < 1) {\n //let point: PointModel;\n var length_2 = Point.getLengthFromListOfPoints(node.intermediatePoints);\n var point = this.getPointAtLength(length_2 * offset.x, node.intermediatePoints, 0);\n var curZoomfactor = this.diagram.scrollSettings.currentZoom;\n var dragLimit = label.dragLimit ? label.dragLimit : { left: 0, right: 0, top: 0, bottom: 0 };\n if (dragLimit.top || dragLimit.bottom || dragLimit.left || dragLimit.right) {\n var labelBounds = this.diagram.getWrapper(node.wrapper, label.id);\n var contentDimension = new Rect(0, 0, 0, 0);\n var annotationWrtapper = this.diagram.getWrapper(node.wrapper, label.id);\n contentDimension.x = ((annotationWrtapper).offsetX / curZoomfactor) + tx;\n contentDimension.y = (annotationWrtapper.offsetY / curZoomfactor) + ty;\n contentDimension.width = annotationWrtapper.bounds.width / curZoomfactor;\n contentDimension.height = annotationWrtapper.bounds.height / curZoomfactor;\n var draggableBounds = new Rect(point.x - (dragLimit.left || 0) - contentDimension.width / 2, point.y - (dragLimit.top || 0) - contentDimension.height / 2, (dragLimit.left || 0) + (dragLimit.right || 0) + contentDimension.width, (dragLimit.top || 0) + (dragLimit.bottom || 0) + contentDimension.height);\n if (draggableBounds.containsPoint(tempPt)) {\n tempPt = tempPt;\n }\n else {\n var lineIntersects = void 0;\n var line1 = [point, tempPt];\n lineIntersects = this.boundsInterSects(line1, draggableBounds, false);\n for (var _i = 0, lineIntersects_1 = lineIntersects; _i < lineIntersects_1.length; _i++) {\n var i = lineIntersects_1[_i];\n var ptt = i;\n tempPt = ptt;\n }\n }\n var cursorLimit = this.dragLimitValue(label, point, tempPt, contentDimension);\n label.margin = {\n left: cursorLimit.x ? tempPt.x - point.x : label.margin.left,\n top: cursorLimit.y ? tempPt.y - point.y : label.margin.top, right: 0, bottom: 0\n };\n }\n else {\n label.margin = { left: tempPt.x - point.x, top: tempPt.y - point.y, right: 0, bottom: 0 };\n }\n label.offset = offset.x;\n if (size) {\n label.width = size.width;\n label.height = size.height;\n }\n }\n };\n CommandHandler.prototype.boundsInterSects = function (polyLine, bounds, self) {\n var intersects;\n if (bounds) {\n var polyLine2 = [\n { x: bounds.x, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y },\n { x: bounds.x + bounds.width, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y + bounds.height },\n { x: bounds.x, y: bounds.y }\n ];\n intersects = this.intersect(polyLine, polyLine2, self);\n }\n return intersects;\n };\n /** @private */\n CommandHandler.prototype.intersect = function (polyLine1, polyLine2, self) {\n var intersect = [];\n for (var i = 0; i < polyLine1.length - 1; i++) {\n for (var j = 0; j < polyLine2.length - 1; j++) {\n var p = intersect2(polyLine1[i], polyLine1[i + 1], polyLine2[j], polyLine2[j + 1]);\n if (p.x !== 0 && p.y !== 0) {\n intersect.push(p);\n }\n }\n }\n return intersect;\n };\n /**\n * @private\n */\n CommandHandler.prototype.getPointAtLength = function (length, points, angle) {\n angle = 0;\n var run = 0;\n var pre;\n var found = { x: 0, y: 0 };\n var pt;\n for (var i = 0; i < points.length; i++) {\n pt = points[i];\n if (!pre) {\n pre = pt;\n continue;\n }\n else {\n var l = Point.findLength(pre, pt);\n var r = void 0;\n var deg = void 0;\n var x = void 0;\n var y = void 0;\n if (run + l >= length) {\n r = length - run;\n deg = Point.findAngle(pre, pt);\n x = r * Math.cos(deg * Math.PI / 180);\n y = r * Math.sin(deg * Math.PI / 180);\n found = { x: pre.x + x, y: pre.y + y };\n angle = deg;\n break;\n }\n else {\n run += l;\n }\n }\n pre = pt;\n }\n return found;\n };\n CommandHandler.prototype.getInterceptWithSegment = function (currentPosition, conPoints) {\n var intercepts = [];\n var imgLine = [];\n var segemnt = [];\n var tarAngle;\n var srcAngle; //let maxLength: number;\n var maxLength = Point.findLength({ x: 0, y: 0 }, { x: this.diagram.scroller.viewPortWidth, y: this.diagram.scroller.viewPortHeight });\n for (var i = 1; i < conPoints.length; i++) {\n segemnt = [conPoints[i - 1], conPoints[i]];\n imgLine = [];\n srcAngle = Math.round(Point.findAngle(segemnt[0], segemnt[1]) % 360);\n tarAngle = Math.round(Point.findAngle(segemnt[1], segemnt[0]) % 360);\n var angleAdd = (srcAngle > 0 && srcAngle <= 90) || (srcAngle > 180 && srcAngle <= 270) ? 90 : -90;\n imgLine.push(Point.transform(currentPosition, srcAngle + angleAdd, maxLength));\n imgLine.push(Point.transform(currentPosition, tarAngle + angleAdd, maxLength));\n var lineUtil1 = { x1: segemnt[0].x, y1: segemnt[0].y, x2: segemnt[1].x, y2: segemnt[1].y };\n var lineUtil2 = { x1: imgLine[0].x, y1: imgLine[0].y, x2: imgLine[1].x, y2: imgLine[1].y };\n var line3 = intersect3(lineUtil1, lineUtil2);\n if (line3.enabled) {\n intercepts.push(line3.intersectPt);\n }\n }\n return intercepts;\n };\n /** @private */\n CommandHandler.prototype.getAnnotationChanges = function (object, label) {\n var index = findObjectIndex(object, label.id, true);\n var annotations = {};\n annotations[index] = {\n width: label.width, height: label.height, offset: (object instanceof Node) ? ({\n x: label.offset.x,\n y: label.offset.y\n }) : label.offset,\n rotateAngle: label.rotateAngle,\n margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom },\n horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment,\n alignment: ((object instanceof Connector) ? label.alignment : undefined)\n };\n return { annotations: annotations };\n };\n // Feature 826644: Support to add ports to the connector. Added below method to get port values before and after drag.\n /** @private */\n CommandHandler.prototype.getConnectorPortChanges = function (object, label) {\n var index = findPortIndex(object, label.id, true);\n var ports = {};\n ports[index] = {\n width: label.width, height: label.height, offset: label.offset,\n margin: { left: label.margin.left, right: label.margin.right, top: label.margin.top, bottom: label.margin.bottom },\n horizontalAlignment: label.horizontalAlignment, verticalAlignment: label.verticalAlignment,\n alignment: ((object instanceof Connector) ? label.alignment : undefined)\n };\n return { ports: ports };\n };\n /** @private */\n CommandHandler.prototype.getPortChanges = function (object, port) {\n var index = findObjectIndex(object, port.id, false);\n var ports = {};\n ports[index] = { offset: port.offset };\n return { ports: ports };\n };\n /** @private */\n CommandHandler.prototype.labelRotate = function (object, label, currentPosition, selector) {\n var oldValues;\n var changedvalues;\n oldValues = this.getAnnotationChanges(object, label);\n var matrix = identityMatrix();\n var rotateAngle = label.rotateAngle;\n var labelWrapper = this.diagram.getWrapper(object.wrapper, label.id);\n var angle = findAngle({ x: labelWrapper.offsetX, y: labelWrapper.offsetY }, currentPosition) + 90;\n var snapAngle = this.snapAngle(angle);\n angle = snapAngle !== 0 ? snapAngle : angle;\n if (label instanceof PathAnnotation && label.segmentAngle) {\n var getPointloop = getAnnotationPosition(object.intermediatePoints, label, object.wrapper.bounds);\n angle -= getPointloop.angle;\n }\n angle = (angle + 360) % 360;\n label.rotateAngle += angle - (label.rotateAngle + labelWrapper.parentTransform);\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n selector.wrapper.rotateAngle = selector.rotateAngle = label.rotateAngle;\n changedvalues = this.getAnnotationChanges(object, label);\n if (object instanceof Node) {\n this.diagram.nodePropertyChange(object, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(object, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(object);\n };\n /** @private */\n CommandHandler.prototype.labelResize = function (node, label, deltaWidth, deltaHeight, pivot, selector) {\n var oldValues;\n var changedvalues;\n var rotateAngle;\n oldValues = this.getAnnotationChanges(node, label);\n var textElement = selector.wrapper.children[0];\n if ((deltaWidth && deltaWidth !== 1) || (deltaHeight && deltaHeight !== 1)) {\n var newMat = identityMatrix();\n var matrix = identityMatrix();\n rotateMatrix(newMat, -node.rotateAngle, node.offsetX, node.offsetY);\n rotateAngle = ((textElement.rotateAngle + ((node instanceof Node) ? node.rotateAngle : 0)) + 360) % 360;\n rotateMatrix(matrix, -rotateAngle, pivot.x, pivot.y);\n scaleMatrix(matrix, deltaWidth, deltaHeight, pivot.x, pivot.y);\n rotateMatrix(matrix, rotateAngle, pivot.x, pivot.y);\n var newPosition = transformPointByMatrix(matrix, { x: textElement.offsetX, y: textElement.offsetY });\n var height = textElement.actualSize.height * deltaHeight;\n var width = textElement.actualSize.width * deltaWidth;\n var shape = this.findTarget(textElement, node);\n if (shape instanceof PathAnnotation) {\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n }\n if (shape instanceof PathAnnotation) {\n this.updatePathAnnotationOffset(node, label, 0, 0, newPosition, new Size(width, height));\n }\n else {\n var bounds = cornersPointsBeforeRotation(node.wrapper);\n newPosition = transformPointByMatrix(newMat, newPosition);\n newPosition.x = newPosition.x - textElement.margin.left + textElement.margin.right;\n newPosition.y = newPosition.y - textElement.margin.top + textElement.margin.bottom;\n newPosition.y += (shape.verticalAlignment === 'Top') ? (-height / 2) : ((shape.verticalAlignment === 'Bottom') ? (height / 2) : 0);\n newPosition.x += (shape.horizontalAlignment === 'Left') ? (-width / 2) : ((shape.horizontalAlignment === 'Right') ? (width / 2) : 0);\n var offsetx = bounds.width / (newPosition.x - bounds.x);\n var offsety = bounds.height / (newPosition.y - bounds.y);\n if (width > 1) {\n shape.width = width;\n shape.offset.x = 1 / offsetx;\n }\n if (height > 1) {\n shape.height = height;\n shape.offset.y = 1 / offsety;\n }\n }\n }\n if (label instanceof PathAnnotation) {\n label.alignment = 'Center';\n }\n changedvalues = this.getAnnotationChanges(node, label);\n if (node instanceof Node) {\n this.diagram.nodePropertyChange(node, oldValues, changedvalues);\n }\n else {\n this.diagram.connectorPropertyChange(node, oldValues, changedvalues);\n }\n this.diagram.updateDiagramObject(node);\n };\n /** @private */\n CommandHandler.prototype.getSubProcess = function (source) {\n var selector = { nodes: [], connectors: [] };\n var process;\n if (source instanceof Node) {\n process = source.processId;\n }\n else if (source && source.nodes && (source.nodes.length)\n && source.nodes[0].processId) {\n process = source.nodes[0].processId;\n }\n if (process) {\n selector.nodes.push(clone(this.diagram.nameTable[process]));\n return selector;\n }\n return selector;\n };\n /** @private */\n CommandHandler.prototype.checkBoundaryConstraints = function (tx, ty, nodeBounds, isInitialRendering) {\n var pageSettings = this.diagram.pageSettings;\n var boundaryConstraints = this.diagram.pageSettings.boundaryConstraints;\n var scroller = this.diagram.scroller;\n if (boundaryConstraints === 'Page' || boundaryConstraints === 'Diagram') {\n var selectorBounds = !nodeBounds ? this.diagram.selectedItems.wrapper.bounds : undefined;\n var width = boundaryConstraints === 'Page' ? pageSettings.width : scroller.viewPortWidth;\n var height = boundaryConstraints === 'Page' ? pageSettings.height : scroller.viewPortHeight;\n var bounds = nodeBounds;\n var right = (nodeBounds ? bounds.right : selectorBounds.right) + (tx || 0);\n var left = (nodeBounds ? bounds.left : selectorBounds.left) + (tx || 0);\n var top_2 = (nodeBounds ? bounds.top : selectorBounds.top) + (ty || 0);\n var bottom = (nodeBounds ? bounds.bottom : selectorBounds.bottom) + (ty || 0);\n //Bug 906963: Layout is not rendered when boundaryConstraints set to \"Page/Diagram\"\n if (right <= width && left >= 0\n && bottom <= height && top_2 >= 0 || (this.diagram.layout.type !== 'None' && isInitialRendering)) {\n return true;\n }\n return false;\n }\n return true;\n };\n //interfaces\n /** @private */\n CommandHandler.prototype.dragSelectedObjects = function (tx, ty) {\n var _this = this;\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n //Bug 905527: Multiselecting and dragging Swimlane updates incorrectly\n //Added below condition to check if swimlane is selected and not the symbol symbol from the symbol palette\n //Also check if the selected swimlane is not the only object selected\n var swimLaneInSelection = this.diagram.selectedItems.nodes.filter(function (node) { return node.shape.type === 'SwimLane'; });\n if (swimLaneInSelection.length > 0 && !this.diagram.currentSymbol) {\n if (this.diagram.selectedItems.nodes.length > 1) {\n var filterObjects = this.diagram.selectedItems.nodes.filter(function (node) { return (node.parentId === '' || _this.diagram.nameTable[node.parentId].shape.type !== 'SwimLane'); });\n if (filterObjects.length > 0) {\n for (var i = 0; i < filterObjects.length; i++) {\n if ((this.diagram.nameTable[filterObjects[parseInt(i.toString(), 10)].parentId] &&\n this.diagram.nameTable[filterObjects[parseInt(i.toString(), 10)].parentId].isLane)\n || filterObjects[parseInt(i.toString(), 10)].shape.type === 'SwimLane') {\n filterObjects.splice(i, 1);\n i--;\n }\n }\n //\"obj\" - The current object being processed in the array.\n //\"index\" - The index of the current object in the array.\n //\"self\" - The reference to the entire array being processed by the filter function.\n var uniqueSwimlane = swimLaneInSelection.filter(function (obj, index, self) {\n return index === self.findIndex(function (item) { return item.id === obj.id; });\n });\n if (filterObjects.length > 0 || uniqueSwimlane.length > 1) {\n filterObjects = filterObjects.concat(uniqueSwimlane);\n // Clear the nodes array without losing the reference\n this.diagram.selectedItems.nodes.splice(0, this.diagram.selectedItems.nodes.length);\n // Push objects from filterObjects into the nodes array\n filterObjects.forEach(function (node) {\n _this.diagram.selectedItems.nodes.push(node);\n });\n obj = this.diagram.selectedItems;\n this.diagram.selectedObject.helperObject = undefined;\n }\n }\n }\n }\n if (this.checkBoundaryConstraints(tx, ty)) {\n this.diagram.diagramActions = this.diagram.diagramActions | (DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n var actualObject = this.diagram.selectedObject.actualObject;\n if ((actualObject && actualObject instanceof Node && actualObject.isLane &&\n canLaneInterchange(actualObject, this.diagram)) || (!actualObject || !actualObject.isLane)) {\n this.diagram.drag(obj, tx, ty);\n }\n this.diagram.diagramActions = this.diagram.diagramActions & ~(DiagramAction.PreventZIndexOnDragging | DiagramAction.DragUsingMouse);\n this.diagram.refreshCanvasLayers();\n //Bug 872140: Dragging HTML nodes in a diagram leaves shadows on the overview\n this.checkHtmlObjectDrag(obj);\n return true;\n }\n return false;\n };\n // Checks if any HTML object is being dragged and reset the canvas to clear the shadow of the HTML node border.\n CommandHandler.prototype.checkHtmlObjectDrag = function (obj) {\n var isHtmlObjDragged = false;\n if (this.diagram.views && this.diagram.views.length > 1) {\n if (obj instanceof Selector) {\n isHtmlObjDragged = obj.nodes.some(function (node) { return node.shape && node.shape.type === 'HTML'; });\n }\n else if (obj.shape && obj.shape.type === 'HTML') {\n isHtmlObjDragged = true;\n }\n if (isHtmlObjDragged) {\n this.resetOverviewCanvas();\n }\n }\n };\n //Resetting Overview canvas \n CommandHandler.prototype.resetOverviewCanvas = function () {\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[temp];\n if (!(view instanceof Diagram)) {\n var rect = document.getElementById(view.canvas.id + 'overviewrect');\n var x = Number(rect.getAttribute('x'));\n var y = Number(rect.getAttribute('y'));\n var width = Number(rect.getAttribute('width'));\n var height = Number(rect.getAttribute('height'));\n var attr = { x: x, y: y, width: Math.max(1, width), height: Math.max(1, height) };\n setAttributeHtml(rect, attr);\n }\n }\n };\n /** @private */\n CommandHandler.prototype.scaleSelectedItems = function (sx, sy, pivot) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.offsetX = obj.offsetX;\n this.state.backup.offsetY = obj.offsetY;\n this.state.backup.width = obj.width;\n this.state.backup.height = obj.height;\n this.state.backup.pivot = pivot;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.scale(obj, sx, sy, pivot);\n };\n /** @private */\n CommandHandler.prototype.rotateSelectedItems = function (angle) {\n var obj = this.diagram.selectedItems;\n if (this.state && !this.state.backup) {\n this.state.backup = {};\n this.state.backup.angle = obj.rotateAngle;\n }\n obj = renderContainerHelper(this.diagram, obj) || obj;\n return this.diagram.rotate(obj, angle, undefined, true);\n };\n /** @private */\n CommandHandler.prototype.hasSelection = function () {\n return hasSelection(this.diagram);\n };\n /** @private */\n CommandHandler.prototype.isSelected = function (element) {\n return isSelected(this.diagram, element);\n };\n /**\n * initExpand is used for layout expand and collapse interaction\n */\n CommandHandler.prototype.initExpand = function (args) {\n var propName = 'isProtectedOnChange';\n var protectedChange = this.diagram[propName];\n this.diagram.protectPropertyChange(true);\n var node = (args.target || args.source);\n var oldValues = { isExpanded: node.isExpanded };\n node.isExpanded = !node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n this.diagram.diagramActions |= DiagramAction.PreventIconsUpdate;\n this.diagram.nodePropertyChange(node, oldValues, { isExpanded: node.isExpanded });\n this.diagram.diagramActions = this.diagram.diagramActions & ~DiagramAction.PreventIconsUpdate;\n this.diagram.preventNodesUpdate = false;\n for (var _i = 0, _a = this.diagram.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.diagram.views[temp];\n if (!(view instanceof Diagram)) {\n this.diagram.refreshCanvasDiagramLayer(view);\n }\n }\n this.diagram.protectPropertyChange(protectedChange);\n };\n /** @private */\n CommandHandler.prototype.expandNode = function (node, diagram, canLayout) {\n var animation;\n //let objects: ILayout;\n var preventNodesUpdate = this.diagram.preventNodesUpdate;\n var expand = node.isExpanded;\n this.diagram.preventNodesUpdate = true;\n //Bug 883244: After expand and collapse the compex hierarchical layout, the connector are not rendered properly.\n // Removed the preventConnectorsUpdate property to update the connector properly while performing expand and collapse.\n // this.diagram.preventConnectorsUpdate = true;\n this.expandCollapse(node, expand, this.diagram);\n node.isExpanded = expand;\n var fixedNode = this.diagram.layout.fixedNode;\n this.diagram.layout.fixedNode = node.id;\n if ((this.diagram.diagramActions != DiagramAction.Render) && this.diagram.layoutAnimateModule && this.diagram.layout.enableAnimation && this.diagram.organizationalChartModule) {\n this.diagram.organizationalChartModule.isAnimation = true;\n }\n this.diagram.blazorActions |= BlazorAction.expandNode;\n var objects = {};\n if (!canLayout) {\n if (this.layoutAnimateModule && this.layoutAnimateModule.setIntervalObject.length > 0) {\n this.layoutAnimateModule.stopCurrentAnimation(this.objectStore[0], diagram, node);\n this.objectStore = [];\n }\n objects = this.diagram.doLayout();\n this.objectStore.push(objects);\n }\n this.canUpdateTemplate = false;\n this.diagram.blazorActions &= ~BlazorAction.expandNode;\n this.diagram.preventNodesUpdate = preventNodesUpdate;\n // this.diagram.preventConnectorsUpdate = false;\n if (this.diagram.layoutAnimateModule && this.diagram.organizationalChartModule && !canLayout) {\n this.diagram.allowServerDataBinding = false;\n this.layoutAnimateModule.expand(this.diagram.layout.enableAnimation, objects, node, this.diagram);\n }\n else {\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n this.triggerEvent(DiagramEvent.expandStateChange, arg);\n //Bug 873119: Diagram throws error when setting isExpanded property as false with LineRouting injected.\n if (this.diagram.lineRoutingModule && this.diagram.constraints & DiagramConstraints.LineRouting && this.diagram.layout.type !== 'ComplexHierarchicalTree') {\n this.diagram.resetSegments();\n }\n }\n this.diagram.layout.fixedNode = fixedNode === '' ? '' : this.diagram.layout.fixedNode;\n return objects;\n };\n CommandHandler.prototype.getparentexpand = function (target, diagram, visibility, connector) {\n var boolean;\n for (var i = 0; i < target.inEdges.length; i++) {\n var newConnector = diagram.nameTable[target.inEdges[i]];\n var previousNode = diagram.nameTable[newConnector.sourceID];\n if (previousNode.isExpanded && !visibility && previousNode.id !== connector.sourceID && newConnector.visible) {\n return false;\n }\n else {\n boolean = true;\n }\n }\n return boolean;\n };\n /**\n * Setinterval and Clear interval for layout animation\n */\n /** @private */\n CommandHandler.prototype.expandCollapse = function (source, visibility, diagram) {\n for (var i = 0; i < source.outEdges.length; i++) {\n var connector = diagram.nameTable[source.outEdges[i]];\n var target = diagram.nameTable[connector.targetID];\n var value = this.getparentexpand(target, diagram, visibility, connector);\n connector.visible = visibility;\n var oldValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n var newValues = {\n visible: target.visible,\n style: { opacity: target.wrapper.style.opacity }\n };\n if (value) {\n if (target.isExpanded) {\n this.expandCollapse(target, visibility, diagram);\n }\n target.visible = visibility;\n target.style.opacity = (this.diagram.layoutAnimateModule &&\n this.diagram.layout.enableAnimation && visibility) ? 0.1 : target.style.opacity;\n diagram.nodePropertyChange(target, oldValues, newValues);\n }\n diagram.connectorPropertyChange(connector, oldValues, newValues);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateNodeDimension = function (obj, rect) {\n if (obj instanceof Node) {\n obj.offsetX = rect.x + rect.width / 2;\n obj.offsetY = rect.y + rect.height / 2;\n obj.width = rect.width;\n obj.height = rect.height;\n obj.wrapper.children[0].canMeasurePath = true;\n this.diagram.nodePropertyChange(obj, {}, {\n width: rect.width, height: rect.height, offsetX: obj.offsetX,\n offsetY: obj.offsetY\n });\n if (this.diagram.mode !== 'SVG') {\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateConnectorPoints = function (obj, rect) {\n if (obj instanceof Connector && obj.type !== 'Bezier') {\n this.diagram.connectorPropertyChange(obj, {}, {\n targetPoint: obj.targetPoint\n });\n this.diagram.updateDiagramObject(obj);\n }\n else {\n this.diagram.connectorPropertyChange(obj, {}, { segments: obj.segments });\n this.diagram.updateDiagramObject(obj);\n }\n };\n /**\n * @private\n */\n CommandHandler.prototype.updateSelectedNodeProperties = function (object) {\n if (this.diagram.lineRoutingModule && (this.diagram.constraints & DiagramConstraints.LineRouting)) {\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n this.diagram.protectPropertyChange(true);\n var objects = [];\n var connectors = [];\n var actualObject = this.diagram.selectedObject.actualObject;\n var helperObject = this.diagram.selectedObject.helperObject;\n if (helperObject && actualObject) {\n var offsetX = (helperObject.offsetX - actualObject.offsetX);\n var offsetY = (helperObject.offsetY - actualObject.offsetY);\n var width = (helperObject.width - actualObject.width);\n var height = (helperObject.height - actualObject.height);\n var rotateAngle = (helperObject.rotateAngle - actualObject.rotateAngle);\n if (this.diagram.selectedItems.nodes.length + this.diagram.selectedItems.connectors.length > 0) {\n this.diagram.selectedItems.wrapper.rotateAngle = this.diagram.selectedItems.rotateAngle = helperObject.rotateAngle;\n }\n if (actualObject instanceof Node &&\n actualObject.shape.type !== 'SwimLane' && !actualObject.isLane && !actualObject.isPhase && !actualObject.isHeader &&\n !checkParentAsContainer(this.diagram, actualObject)) {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX || actualObject.offsetY !== actualObject.wrapper.offsetY ||\n actualObject.width !== actualObject.wrapper.width || actualObject.height !== actualObject.wrapper.height ||\n actualObject.rotateAngle !== actualObject.wrapper.rotateAngle) {\n actualObject.offsetX += offsetX;\n actualObject.offsetY += offsetY;\n actualObject.width += width;\n actualObject.height += height;\n actualObject.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(actualObject, {}, {\n offsetX: actualObject.offsetX, offsetY: actualObject.offsetY,\n width: actualObject.width, height: actualObject.height, rotateAngle: actualObject.rotateAngle\n });\n }\n objects = this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n }\n else if (actualObject instanceof Selector) {\n for (var i = 0; i < actualObject.nodes.length; i++) {\n var node = actualObject.nodes[i];\n if (node instanceof Node && node.shape.type !== 'SwimLane' &&\n !checkParentAsContainer(this.diagram, node)\n && !node.isLane\n && !node.isPhase && !node.isHeader) {\n node.offsetX += offsetX;\n node.offsetY += offsetY;\n node.width += width;\n node.height += height;\n node.rotateAngle += rotateAngle;\n this.diagram.nodePropertyChange(node, {}, {\n offsetX: node.offsetX, offsetY: node.offsetY,\n width: node.width, height: node.height, rotateAngle: node.rotateAngle\n });\n objects = objects.concat(this.diagram.spatialSearch.findObjects(actualObject.wrapper.outerBounds));\n }\n }\n }\n }\n else {\n if (object instanceof Connector) {\n objects.push(object);\n }\n else if (object instanceof Selector && object.connectors.length) {\n objects = objects.concat(object.connectors);\n }\n }\n for (var i = 0; i < objects.length; i++) {\n if (objects[i] instanceof Connector && connectors.indexOf(objects[i].id) === -1) {\n connectors.push(objects[i].id);\n }\n }\n this.diagram.lineRoutingModule.renderVirtualRegion(this.diagram, true);\n for (var i = 0; i < connectors.length; i++) {\n var connector = this.diagram.nameTable[connectors[i]];\n if (connector instanceof Connector && connector.type === 'Orthogonal') {\n // EJ2-65876 - Exception occurs on line routing injection module\n //Bug 850195: Exception occurs due to line routing constraints enabled\n if (connector.sourceID && connector.targetID && connector.sourceID != connector.targetID && this.diagram.layout.type !== 'ComplexHierarchicalTree') {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module \n var sourceNode = this.diagram.getObject(connector.sourceID);\n var targetNode = this.diagram.getObject(connector.targetID);\n var Connectorlength1 = targetNode.wrapper.outerBounds.middleLeft.x - sourceNode.wrapper.outerBounds.middleRight.x;\n var Connectorlength2 = targetNode.wrapper.outerBounds.topCenter.y - sourceNode.wrapper.outerBounds.bottomCenter.y;\n if (Connectorlength1 > 30 || Connectorlength2 > 30) {\n this.diagram.lineRoutingModule.refreshConnectorSegments(this.diagram, connector, true);\n }\n }\n }\n }\n this.updateSelector();\n this.diagram.protectPropertyChange(false);\n }\n };\n /** @private */\n CommandHandler.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.diagram.drawSelectionRectangle(x, y, width, height);\n };\n /** @private */\n CommandHandler.prototype.startGroupAction = function () {\n this.diagram.startGroupAction();\n };\n /** @private */\n CommandHandler.prototype.endGroupAction = function () {\n this.diagram.endGroupAction();\n };\n /** @private */\n CommandHandler.prototype.removeChildFromBPmn = function (child, newTarget, oldTarget) {\n var obj = this.diagram.nameTable[child.id] || child.nodes[0];\n if (oldTarget) {\n if ((obj) && obj.processId && obj.processId === oldTarget.wrapper.id) {\n var node = clone(obj);\n node.processId = obj.processId;\n this.diagram.startGroupAction();\n // 908136: Node goes behind the subprocess and the connector connected to it is destroyed Issue Fix by commenting these lines\n // let edges: string[] = [];\n // edges = edges.concat((obj as Node).outEdges, (obj as Node).inEdges);\n // for (let i: number = edges.length - 1; i >= 0; i--) {\n // const connector: ConnectorModel = this.diagram.nameTable[edges[i]];\n // if (connector) {\n // this.diagram.remove(connector);\n // }\n // }\n var nodeCollection = (this.diagram.nameTable[obj.processId].shape.activity.subProcess.processes) || [];\n nodeCollection.splice(nodeCollection.indexOf((obj).id), 1);\n this.diagram.bpmnModule.removeChildFromBPMN(this.diagram.nameTable[obj.processId].wrapper, (obj).id, this.diagram);\n this.diagram.nameTable[(obj).id].processId = '';\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n var undoElement = clone(obj);\n var entry = {\n type: 'PositionChanged', redoObject: { nodes: [undoElement] }, undoObject: { nodes: [node] }, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n this.diagram.endGroupAction();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.isDroppable = function (source, targetNodes) {\n var node = this.diagram.nameTable[source.id] || source.nodes[0];\n if (node instanceof Node) {\n if ((!isBlazor() && node.shape.shape === 'TextAnnotation')\n // ||(isBlazor() && (node.shape as DiagramShape).bpmnShape === 'TextAnnotation')\n ) {\n return true;\n }\n //848061 - Enabling BPMN Group Nodes to Function Like Subprocess Nodes\n if (targetNodes.shape.shape === 'Group') {\n targetNodes.shape.activity.subProcess.collapsed = false;\n }\n if (node && node.shape.type === 'Bpmn') {\n //905238 - Exception thrown while dropping BPMN shapes over a BPMN connector\n if ((node.processId === targetNodes.id) || (node.id === targetNodes.processId) ||\n targetNodes.shape.type === 'Bpmn' && !(targetNodes instanceof Connector)\n && targetNodes.shape.activity && targetNodes.shape.activity.subProcess\n && targetNodes.shape.activity.subProcess.collapsed) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n /**\n * @private\n */\n CommandHandler.prototype.renderHighlighter = function (args, connectHighlighter, source) {\n var bounds = new Rect();\n if ((args.target instanceof Node || args.target instanceof Connector) || (connectHighlighter && (args.source instanceof Node || args.source instanceof Connector))) {\n var tgt = connectHighlighter ? args.source : args.target;\n var tgtWrap = connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n var target = this.findTarget(tgtWrap, tgt, source, true);\n var element = void 0;\n if (target instanceof BpmnSubEvent) {\n var portId = target.id;\n var node = args.target;\n var parent_8 = node.wrapper.children[0].children[0].children[2];\n for (var _i = 0, _a = parent_8.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.id === node.id + '_' + portId) {\n element = child.children[0];\n break;\n }\n }\n }\n else {\n element = (target instanceof Node) ?\n target.wrapper : connectHighlighter ? args.sourceWrapper : args.targetWrapper;\n }\n if (element && !(target instanceof Connector)) {\n this.diagram.renderHighlighter(element);\n }\n }\n };\n //additional events\n /** @private */\n CommandHandler.prototype.mouseOver = function (source, target, position) {\n //mouse over\n //returns whether the source can move over the target or not\n return true;\n };\n /**\n * @private\n */\n CommandHandler.prototype.snapPoint = function (startPoint, endPoint, tx, ty) {\n var obj = this.diagram.selectedItems;\n var point;\n var towardsLeft = endPoint.x < startPoint.x;\n var towardsTop = endPoint.y < startPoint.y;\n point = { x: tx, y: ty };\n var snappedPoint = point;\n if (this.snappingModule) {\n snappedPoint = this.diagram.snappingModule.snapPoint(this.diagram, obj, towardsLeft, towardsTop, point, startPoint, endPoint);\n }\n return snappedPoint;\n };\n /**\n * @private\n */\n CommandHandler.prototype.removeSnap = function () {\n if ((this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) && this.snappingModule) {\n this.snappingModule.removeGuidelines(this.diagram);\n }\n };\n /** @private */\n /**Bug(EJ2-62725): Exception occurs when drag and drop the connector inside the swimlane */\n CommandHandler.prototype.dropAnnotation = function (source, target) {\n if (source instanceof Node || source instanceof Selector) {\n var node = (source instanceof Node) ? source : source.nodes[0];\n if (this.diagram.bpmnModule && target.shape.type === 'Bpmn'\n && ((!isBlazor() && node.shape.shape === 'TextAnnotation')\n // ||(isBlazor() && (node.shape as DiagramShape).bpmnShape === 'TextAnnotation')\n )) {\n var hasTarget = 'hasTarget';\n node[hasTarget] = target.id;\n node.shape.annotation.nodeId = target.id;\n if (!this.diagram.currentSymbol) {\n this.diagram.addTextAnnotation(node.shape.annotation, target);\n node.shape.annotation.nodeId = '';\n this.diagram.remove(node);\n }\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.drop = function (source, target, position) {\n //drop\n if (this.diagram.bpmnModule) {\n var sourcenode = (source instanceof Node) ? source : source.nodes[0];\n //905238 - Exception thrown while dropping BPMN shapes over a BPMN connector\n if (sourcenode && sourcenode.shape.type === 'Bpmn' && target.shape.type === 'Bpmn'\n && !(target instanceof Connector)) {\n this.diagram.bpmnModule.dropBPMNchild(target, (source instanceof Node) ? source : source.nodes[0], this.diagram);\n this.diagram.refreshDiagramLayer();\n }\n }\n };\n /** @private */\n CommandHandler.prototype.addHistoryEntry = function (entry) {\n this.diagram.addHistoryEntry(entry);\n };\n /** @private */\n CommandHandler.prototype.align = function (objects, option, type) {\n if (objects.length > 0) {\n var i = 0;\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = (type === 'Object') ? getBounds(objects[0].wrapper) : this.diagram.selectedItems.wrapper.bounds;\n var undoObj = { nodes: [], connectors: [] };\n var redoObj = { nodes: [], connectors: [] };\n for (i = ((type === 'Object') ? (i + 1) : i); i < objects.length; i++) {\n var tx = 0;\n var ty = 0;\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n var objectBounds = getBounds(objects[i].wrapper);\n if (option === 'Left') {\n tx = bounds.left + objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Right') {\n tx = bounds.right - objectBounds.width / 2 - objectBounds.center.x;\n }\n else if (option === 'Top') {\n ty = bounds.top + objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Bottom') {\n ty = bounds.bottom - objectBounds.height / 2 - objectBounds.center.y;\n }\n else if (option === 'Center') {\n tx = bounds.center.x - objectBounds.center.x;\n }\n else if (option === 'Middle') {\n ty = bounds.center.y - objectBounds.center.y;\n }\n undoObj = this.storeObject(undoObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoObj = this.storeObject(redoObj, objects[i]);\n }\n undoObj = clone(undoObj);\n redoObj = clone(redoObj);\n var entry = {\n type: 'Align', category: 'Internal',\n undoObject: cloneObject(undoObj), redoObject: cloneObject(redoObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /**\n * distribute method \\\n *\n * @returns { void } distribute method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.distribute = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //const j: number = 0;\n //const rect: Rect = new Rect();\n //const b: Rect[] = [];\n //let temp: NodeModel | ConnectorModel;\n var right = 0;\n var left = 0;\n var top_3 = 0;\n var bottom = 0;\n var center = 0;\n var middle = 0;\n var btt = 0;\n //const sum: number = 0;\n var undoSelectorObj = { nodes: [], connectors: [] };\n var redoSelectorObj = { nodes: [], connectors: [] };\n for (i = 0; i < objects.length; i++) {\n objects[i] = this.diagram.nameTable[objects[i].id] || objects[i];\n }\n objects = sort(objects, option);\n for (i = 1; i < objects.length; i++) {\n right = right + objects[i].wrapper.bounds.topRight.x - objects[i - 1].wrapper.bounds.topRight.x;\n left = left + objects[i].wrapper.bounds.topLeft.x - objects[i - 1].wrapper.bounds.topLeft.x;\n top_3 = top_3 + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.topRight.y;\n bottom = bottom + objects[i].wrapper.bounds.bottomRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n center = center + objects[i].wrapper.bounds.center.x - objects[i - 1].wrapper.bounds.center.x;\n middle = middle + objects[i].wrapper.bounds.center.y - objects[i - 1].wrapper.bounds.center.y;\n btt = btt + objects[i].wrapper.bounds.topRight.y - objects[i - 1].wrapper.bounds.bottomRight.y;\n }\n for (i = 1; i < objects.length - 1; i++) {\n var tx = 0;\n var ty = 0;\n var prev = getBounds(objects[i - 1].wrapper);\n var current = getBounds(objects[i].wrapper);\n if (option === 'RightToLeft' || option === 'Center') {\n tx = prev.center.x - current.center.x + (center / (objects.length - 1));\n }\n else if (option === 'Right') {\n tx = prev.topRight.x - current.topRight.x + (right / (objects.length - 1));\n }\n else if (option === 'Left') {\n tx = prev.topLeft.x - current.topLeft.x + (left / (objects.length - 1));\n }\n else if (option === 'Middle') {\n ty = prev.center.y - current.center.y + (middle / (objects.length - 1));\n }\n else if (option === 'Top') {\n ty = prev.topRight.y - current.topRight.y + (top_3 / (objects.length - 1));\n }\n else if (option === 'Bottom') {\n ty = prev.bottomRight.y - current.bottomRight.y + (bottom / (objects.length - 1));\n }\n else if (option === 'BottomToTop') {\n ty = prev.bottomRight.y - current.topRight.y + (btt / (objects.length - 1));\n }\n undoSelectorObj = this.storeObject(undoSelectorObj, objects[i]);\n this.drag(objects[i], tx, ty);\n this.diagram.updateSelector();\n redoSelectorObj = this.storeObject(redoSelectorObj, objects[i]);\n }\n undoSelectorObj = clone(undoSelectorObj);\n redoSelectorObj = clone(redoSelectorObj);\n var entry = {\n type: 'Distribute', category: 'Internal',\n undoObject: cloneObject(undoSelectorObj), redoObject: cloneObject(redoSelectorObj)\n };\n this.addHistoryEntry(entry);\n }\n };\n /* eslint-enable */\n /**\n * sameSize method \\\n *\n * @returns { void } sameSize method .\\\n * @param {(NodeModel | ConnectorModel)[]} objects - provide the source value.\n * @param {SizingOptions} option - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.sameSize = function (objects, option) {\n if (objects.length > 0) {\n var i = 0;\n //let pivot: PointModel;\n var pivot = { x: 0.5, y: 0.5 };\n objects[0] = this.diagram.nameTable[objects[0].id] || objects[0];\n var bounds = getBounds(objects[0].wrapper);\n var undoObject = { nodes: [], connectors: [] };\n var redoObject = { nodes: [], connectors: [] };\n for (i = 1; i < objects.length; i++) {\n objects[parseInt(i.toString(), 10)] = this.diagram.nameTable[objects[parseInt(i.toString(), 10)].id] || objects[0];\n var rect = getBounds(objects[parseInt(i.toString(), 10)].wrapper);\n var sw = 1;\n var sh = 1;\n if (option === 'Width') {\n sw = bounds.width / rect.width;\n }\n else if (option === 'Height') {\n sh = bounds.height / rect.height;\n }\n else if (option === 'Size') {\n sw = bounds.width / rect.width;\n sh = bounds.height / rect.height;\n }\n undoObject = this.storeObject(undoObject, objects[parseInt(i.toString(), 10)]);\n this.scale(objects[parseInt(i.toString(), 10)], sw, sh, pivot);\n redoObject = this.storeObject(redoObject, objects[parseInt(i.toString(), 10)]);\n }\n this.diagram.updateSelector();\n undoObject = clone(undoObject);\n redoObject = clone(redoObject);\n var entry = {\n type: 'Sizing', category: 'Internal',\n undoObject: cloneObject(undoObject), redoObject: cloneObject(redoObject)\n };\n this.addHistoryEntry(entry);\n }\n };\n CommandHandler.prototype.storeObject = function (selectorObject, obj) {\n if (obj instanceof Node) {\n selectorObject.nodes.push(clone(obj));\n }\n else {\n selectorObject.connectors.push(clone(obj));\n }\n return selectorObject;\n };\n /**\n * updatePanState method \\\n *\n * @returns { any } updatePanState method .\\\n * @param {number} eventCheck - provide the eventCheck value.\n *\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n CommandHandler.prototype.updatePanState = function (eventCheck) {\n if (eventCheck) {\n this.diagram.realActions = this.diagram.realActions | RealAction.PanInProgress;\n }\n else {\n this.diagram.dataBind();\n var diagramScrollSettings = this.diagram.scrollSettings;\n this.diagram.realActions = this.diagram.realActions & ~RealAction.PanInProgress;\n var Values = {\n VerticalOffset: diagramScrollSettings.verticalOffset, HorizontalOffset: diagramScrollSettings.horizontalOffset,\n ViewportHeight: diagramScrollSettings.viewPortHeight, ViewportWidth: diagramScrollSettings.viewPortWidth,\n CurrentZoom: diagramScrollSettings.currentZoom\n };\n var arg = {\n oldValue: Values,\n newValue: Values, source: this.diagram, panState: 'Completed'\n };\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n }\n };\n /**\n * dataBinding method \\\n *\n * @returns { void } dataBinding method .\\\n *\n * @private\n */\n CommandHandler.prototype.dataBinding = function () {\n this.diagram.dataBind();\n };\n CommandHandler.prototype.setBlazorDiagramProps = function (arg) {\n this.diagram.setBlazorDiagramProps(arg);\n };\n /**\n * scroll method \\\n *\n * @returns { void } scroll method .\\\n * @param {number} scrollX - provide the source value.\n * @param {number} scrollY - provide the target value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.scroll = function (scrollX, scrollY, focusPoint) {\n var panx = canPanX(this.diagram);\n var pany = canPanY(this.diagram);\n var canPan = true;\n this.diagram.pan((scrollX = panx ? scrollX : 0) * this.diagram.scroller.currentZoom, (scrollY = pany ? scrollY : 0) * this.diagram.scroller.currentZoom, focusPoint, canPan);\n };\n /**\n * drawHighlighter method \\\n *\n * @returns { NodeModel | ConnectorModel } drawHighlighter method .\\\n * @param {IElement} element - provide the element value.\n *\n * @private\n */\n CommandHandler.prototype.drawHighlighter = function (element) {\n this.diagram.renderHighlighter(element.wrapper);\n };\n /**\n * removeHighlighter method \\\n *\n * @returns { void } removeHighlighter method .\\\n *\n * @private\n */\n CommandHandler.prototype.removeHighlighter = function () {\n this.diagram.clearHighlighter();\n };\n /**\n * renderContainerHelper method \\\n *\n * @returns { NodeModel | ConnectorModel } renderContainerHelper method .\\\n * @param {NodeModel | SelectorModel | ConnectorModel} node - provide the parent value.\n *\n * @private\n */\n CommandHandler.prototype.renderContainerHelper = function (node) {\n return renderContainerHelper(this.diagram, node);\n };\n /**\n * isParentAsContainer method \\\n *\n * @returns { boolean } isParentAsContainer method .\\\n * @param {NodeModel} node - provide the parent value.\n * @param {boolean} isChild - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.isParentAsContainer = function (node, isChild) {\n return checkParentAsContainer(this.diagram, node, isChild);\n };\n /**\n * @returns { boolean } isParentAsContainer method .\\\n * @param {NodeModel} node - provide the target Node value.\n * @private\n */\n CommandHandler.prototype.isTargetSubProcess = function (node) {\n if (node && node.shape && node.shape.type === 'Bpmn' && node.shape.activity && node.shape.activity.activity === 'SubProcess') {\n return true;\n }\n return false;\n };\n /**\n * dropChildToContainer method \\\n *\n * @returns { void } dropChildToContainer method .\\\n * @param {NodeModel} parent - provide the parent value.\n * @param {NodeModel} node - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.dropChildToContainer = function (parent, node) {\n if (!(this.diagram.diagramActions & DiagramAction.PreventLaneContainerUpdate)) {\n addChildToContainer(this.diagram, parent, node);\n if (node.hasTextAnnotation) {\n for (var i = 0; i < node.outEdges.length; i++) {\n var con = this.diagram.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n if (con.isBpmnAnnotationConnector) {\n var annotationNode = this.diagram.nameTable[con.targetID];\n addChildToContainer(this.diagram, parent, annotationNode);\n }\n }\n }\n }\n };\n /**\n * @returns { void } updateLaneChildrenZindex method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {IElement} target - provide the target value.\n * @private\n */\n CommandHandler.prototype.updateLaneChildrenZindex = function (node, target) {\n var lowerIndexobject = this.findLeastIndexObject(node, target);\n var swimlane = this.diagram.nameTable[target.parentId];\n if (swimlane && swimlane.zIndex > lowerIndexobject.zIndex) {\n var layerIndex = this.diagram.layers.indexOf(this.diagram.getActiveLayer());\n var layerZIndexTable = this.diagram.layers[parseInt(layerIndex.toString(), 10)].zIndexTable;\n var tempTable = JSON.parse(JSON.stringify(layerZIndexTable));\n var startIndex = lowerIndexobject.zIndex;\n var endIndex = swimlane.zIndex;\n for (var i = endIndex; i >= startIndex; i--) {\n if (startIndex !== i) {\n if (!layerZIndexTable[i - 1]) {\n layerZIndexTable[i - 1] = layerZIndexTable[parseInt(i.toString(), 10)];\n this.diagram.nameTable[layerZIndexTable[i - 1]].zIndex = i;\n delete layerZIndexTable[parseInt(i.toString(), 10)];\n }\n else {\n //bringing the objects forward\n layerZIndexTable[parseInt(i.toString(), 10)] = layerZIndexTable[i - 1];\n this.diagram.nameTable[layerZIndexTable[parseInt(i.toString(), 10)]].zIndex = i;\n }\n }\n else {\n var tempIndex = this.swapZIndexObjects(endIndex, layerZIndexTable, swimlane.id, tempTable);\n }\n }\n if (this.diagram.mode === 'SVG') {\n this.moveSvgNode(target.parentId, lowerIndexobject.id);\n this.updateNativeNodeIndex(target.parentId, lowerIndexobject.id);\n }\n else {\n this.diagram.refreshCanvasLayers();\n }\n }\n };\n CommandHandler.prototype.findLeastIndexConnector = function (edges, target, index) {\n for (var i = 0; i < edges.length; i++) {\n var connector = this.diagram.nameTable[edges[parseInt(i.toString(), 10)]];\n if (index.zIndex > connector.zIndex) {\n index = connector;\n }\n }\n return index;\n };\n CommandHandler.prototype.findLeastIndexObject = function (node, target) {\n var lowerIndexobject = node;\n if (node instanceof Node) {\n lowerIndexobject = this.findLeastIndexConnector(node.inEdges, target, lowerIndexobject);\n lowerIndexobject = this.findLeastIndexConnector(node.outEdges, target, lowerIndexobject);\n }\n return lowerIndexobject;\n };\n /**\n * checkSelection method \\\n *\n * @returns { void } checkSelection method .\\\n * @param {SelectorModel} selector - provide the source value.\n * @param {string} corner - provide the target value.\n *\n * @private\n */\n CommandHandler.prototype.checkSelection = function (selector, corner) {\n var node; // let wrapper: GridPanel; let child: Container; let index: number; let shape: SwimLaneModel;\n if (selector.nodes.length === 1 && selector.connectors.length === 0) {\n if (checkParentAsContainer(this.diagram, selector.nodes[0], true)) {\n node = (selector.nodes[0].shape === 'SwimLane') ? selector.nodes[0] :\n this.diagram.nameTable[selector.nodes[0].parentId];\n var child = selector.nodes[0];\n if (node.shape.type === 'SwimLane') {\n var orientation_1 = (node.shape.orientation === 'Horizontal') ? true : false;\n if ((child.isPhase && ((orientation_1 && corner === 'ResizeSouth') || (!orientation_1 && corner === 'ResizeEast'))) ||\n (child.isLane && ((orientation_1 && corner === 'ResizeEast') || (!orientation_1 && corner === 'ResizeSouth')))) {\n swimLaneSelection(this.diagram, node, corner);\n }\n }\n else if (node.container.type === 'Grid') {\n if (((node.container.orientation === 'Horizontal' && child.rowIndex === 1) ||\n (node.container.orientation === 'Vertical' && child.rowIndex > 0 && child.columnIndex > 0))) {\n if (corner === 'ResizeSouth') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === node.rows.length - 1 && obj.columnIndex === 0) {\n this.select(obj);\n break;\n }\n }\n }\n }\n else {\n if (corner === 'ResizeEast') {\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n var obj = this.diagram.nodes[parseInt(i.toString(), 10)];\n if (obj.rowIndex === 1 && obj.columnIndex === node.columns.length - 1) {\n this.select(obj);\n break;\n }\n }\n }\n }\n }\n }\n else {\n swimLaneSelection(this.diagram, selector.nodes[0], corner);\n }\n }\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} scale - provide the source value.\n * @param {number} scrollX - provide the target value.\n * @param {number} scrollY - provide the layoutOrientation value.\n * @param {PointModel} focusPoint - provide the layoutOrientation value.\n *\n * @private\n */\n CommandHandler.prototype.zoom = function (scale, scrollX, scrollY, focusPoint) {\n this.diagram.scroller.zoom(scale, scrollX * this.diagram.scroller.currentZoom, scrollY * this.diagram.scroller.currentZoom, focusPoint);\n };\n return CommandHandler;\n}());\nexport { CommandHandler };\n","import { Rect } from '../primitives/rect';\nimport { RealAction, ScrollActions } from '../enum/enum';\nimport { identityMatrix, scaleMatrix, translateMatrix, transformPointByMatrix, multiplyMatrix } from '../primitives/matrix';\nimport { updateRuler } from '../ruler/ruler';\nimport { canZoom, canPan, canVitualize } from './../utility/constraints-util';\n/**\n */\nvar DiagramScroller = /** @class */ (function () {\n function DiagramScroller(diagram) {\n /** @private */\n this.transform = { tx: 0, ty: 0, scale: 1 };\n /** @private */\n this.oldCollectionObjects = [];\n /** @private */\n this.removeCollection = [];\n this.vPortWidth = 0;\n this.vPortHeight = 0;\n this.currentZoomFActor = 1;\n this.hOffset = 0;\n this.vOffset = 0;\n this.scrolled = false;\n this.hScrollSize = 0;\n this.vScrollSize = 0;\n this.diagram = diagram;\n this.objects = [];\n this.transform = diagram.scroller ? diagram.scroller.transform : { tx: 0, ty: 0, scale: 1 };\n this.vPortWidth = diagram.scrollSettings.viewPortWidth;\n this.vPortHeight = diagram.scrollSettings.viewPortHeight;\n this.currentZoomFActor = diagram.scrollSettings.currentZoom;\n this.hOffset = diagram.scrollSettings.horizontalOffset;\n this.vOffset = diagram.scrollSettings.verticalOffset;\n }\n Object.defineProperty(DiagramScroller.prototype, \"viewPortHeight\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortHeight;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortHeight = offset;\n this.diagram.scrollSettings.viewPortHeight = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"currentZoom\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.currentZoomFActor;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.currentZoomFActor = offset;\n this.diagram.scrollSettings.currentZoom = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"viewPortWidth\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vPortWidth;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vPortWidth = offset;\n this.diagram.scrollSettings.viewPortWidth = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"horizontalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.hOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.hOffset = offset;\n if (Math.abs(this.hOffset - this.diagram.scrollSettings.horizontalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.hScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.horizontalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DiagramScroller.prototype, \"verticalOffset\", {\n /**\n * verticalOffset method \\\n *\n * @returns { number } verticalOffset method .\\\n *\n * @private\n */\n get: function () {\n return this.vOffset;\n },\n /**\n * verticalOffset method \\\n *\n * @returns { void } verticalOffset method .\\\n * @param {number} offset - provide the hOffset value.\n *\n * @private\n */\n set: function (offset) {\n this.vOffset = offset;\n if (Math.abs(this.vOffset - this.diagram.scrollSettings.verticalOffset) > 1) {\n this.diagram.realActions = this.diagram.realActions | RealAction.vScrollbarMoved;\n this.scrolled = true;\n }\n this.diagram.scrollSettings.verticalOffset = offset;\n },\n enumerable: true,\n configurable: true\n });\n // Method added to get bounds value if diagram is loaded from negative axis.\n // SF-359118 implemented for this ticket requirement.\n DiagramScroller.prototype.getBounds = function () {\n var pageBounds;\n var postion = this.diagram.spatialSearch.getPageBounds(0, 0);\n if ((postion.x < 0 || postion.y < 0) && !this.diagram.pageSettings.multiplePage) {\n pageBounds = this.getPageBounds(undefined, undefined, true, true);\n }\n else {\n pageBounds = this.getPageBounds(undefined, undefined, true);\n }\n return pageBounds;\n };\n /**\n * updateScrollOffsets method \\\n *\n * @returns { void } updateScrollOffsets method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.updateScrollOffsets = function (hOffset, vOffset) {\n var offsetX = 0;\n var offsetY = 0;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n offsetX = Math.max(0, hOffset - pageBounds.left);\n offsetY = Math.max(0, vOffset - pageBounds.top);\n if (hOffset !== undefined && vOffset !== undefined) {\n this.horizontalOffset = offsetX;\n this.verticalOffset = offsetY;\n this.diagram.setOffset(offsetX, offsetY);\n }\n else {\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n };\n /**\n * setScrollOffset method \\\n *\n * @returns { void } setScrollOffset method .\\\n * @param {number} hOffset - provide the hOffset value.\n * @param {number} vOffset - provide the vOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setScrollOffset = function (hOffset, vOffset) {\n this.scrolled = false;\n var pageBounds = this.getBounds();\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = -pageBounds.left;\n var y = -pageBounds.top;\n var set = false;\n var viewWidth = this.viewPortWidth * this.currentZoom;\n var viewHeight = this.viewPortHeight * this.currentZoom;\n var newX = x - hOffset;\n if (newX !== this.horizontalOffset) {\n if (x < this.horizontalOffset) {\n if (this.horizontalOffset > newX) {\n this.horizontalOffset -= hOffset;\n }\n else {\n this.horizontalOffset = newX;\n }\n set = true;\n }\n var right = Math.max(pageBounds.right + this.vScrollSize, viewWidth);\n if (!set && right < -newX + this.viewPortWidth) {\n var actualRight = -newX + viewWidth - this.vScrollSize;\n var currentRight = -this.horizontalOffset + viewWidth - this.vScrollSize;\n if (actualRight < currentRight) {\n //define\n this.horizontalOffset = newX;\n }\n else {\n if (actualRight - pageBounds.right > actualRight - currentRight) {\n this.horizontalOffset = newX;\n }\n else {\n this.horizontalOffset = -(pageBounds.right + this.vScrollSize - viewWidth);\n }\n }\n set = true;\n }\n if (!set) {\n this.horizontalOffset = x - hOffset;\n }\n }\n set = false;\n //vertical offset\n var newY = y - vOffset;\n if (newY !== this.verticalOffset) {\n if (y < this.verticalOffset) {\n if (this.verticalOffset > newY) {\n this.verticalOffset -= vOffset;\n }\n else {\n this.verticalOffset = newY;\n }\n set = true;\n }\n var bottom = Math.max(pageBounds.bottom + this.hScrollSize, viewHeight);\n if (!set && bottom < -newY + viewHeight) {\n var actualBottom = -newY + viewHeight - this.hScrollSize;\n var currentBottom = -this.verticalOffset + viewHeight - this.hScrollSize;\n if (actualBottom < currentBottom) {\n //define\n this.verticalOffset = newY;\n }\n else {\n if (actualBottom - pageBounds.bottom > actualBottom - currentBottom) {\n this.verticalOffset = newY;\n }\n else {\n this.verticalOffset = -(pageBounds.bottom + this.hScrollSize - viewHeight);\n }\n }\n set = true;\n }\n if (!set) {\n this.verticalOffset = y - vOffset;\n }\n }\n this.transform = {\n tx: Math.max(this.horizontalOffset, -pageBounds.left) / this.currentZoom, ty: Math.max(this.verticalOffset, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.setSize();\n };\n /**\n * getObjects \\\n *\n * @returns { string[] } To get page pageBounds.\\\n * @param {string[]} coll1 - provide the source value.\n * @param {string[]} coll2 - provide the source value.\n * @private\n */\n DiagramScroller.prototype.getObjects = function (coll1, coll2) {\n var objects = [];\n for (var i = 0; i < coll1.length; i++) {\n var isExist = false;\n for (var j = 0; j < coll2.length; j++) {\n if (coll1[parseInt(i.toString(), 10)] === coll2[parseInt(j.toString(), 10)]) {\n isExist = true;\n break;\n }\n }\n if (!isExist) {\n objects.push(coll1[parseInt(i.toString(), 10)]);\n }\n }\n return objects;\n };\n /**\n * virtualizeElements \\\n *\n * @returns { void } To get page pageBounds.\\\n *\n * @private\n */\n DiagramScroller.prototype.virtualizeElements = function () {\n var viewWidth = this.viewPortWidth / this.currentZoom;\n var viewHeight = this.viewPortHeight / this.currentZoom;\n var oObjects = this.diagram.spatialSearch.findObjects(new Rect(-this.horizontalOffset / this.currentZoom, -this.verticalOffset / this.currentZoom, viewWidth, viewHeight));\n var oObjectsID = [];\n var renderOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var bpmnShape = oObjects[parseInt(j.toString(), 10)].shape;\n if (bpmnShape.type === 'Bpmn' && bpmnShape && bpmnShape.activity && bpmnShape.activity.subProcess && bpmnShape.activity.subProcess.processes && bpmnShape.activity.subProcess.processes.length > 0) {\n for (var k = 0; k < bpmnShape.activity.subProcess.processes.length; k++) {\n renderOrder.push(bpmnShape.activity.subProcess.processes[parseInt(k.toString(), 10)]);\n }\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n renderOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n oObjectsID = renderOrder;\n var zindexOrder = [];\n for (var j = 0; j < oObjects.length; j++) {\n var items = oObjects[parseInt(j.toString(), 10)].shape;\n if (items.type === 'Bpmn' && items && items.activity && items.activity.subProcess && items.activity.subProcess.processes && items.activity.subProcess.processes.length > 0) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n for (var t = 0; t < items.activity.subProcess.processes.length; t++) {\n zindexOrder.push(items.activity.subProcess.processes[parseInt(t.toString(), 10)]);\n }\n }\n else if (oObjects[parseInt(j.toString(), 10)].processId === '' || oObjects[parseInt(j.toString(), 10)].processId === undefined) {\n zindexOrder.push(oObjects[parseInt(j.toString(), 10)].id);\n }\n }\n for (var j = 0; j < oObjects.length; j++) {\n for (var k = 0; k < zindexOrder.length; k++) {\n if (oObjects[parseInt(j.toString(), 10)].id === zindexOrder[parseInt(k.toString(), 10)]) {\n oObjects[parseInt(j.toString(), 10)].zIndex = k;\n break;\n }\n }\n }\n var newObjects = this.getObjects(oObjectsID, this.oldCollectionObjects);\n if (this.oldCollectionObjects.length === 0) {\n this.oldCollectionObjects = oObjectsID;\n }\n var removeObjects = this.getObjects(this.oldCollectionObjects, oObjectsID);\n this.diagram.updateVirtualObjects(newObjects, false, removeObjects);\n this.oldCollectionObjects = oObjectsID;\n };\n /**\n * setSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {PointModel} newOffset - provide the newOffset value.\n *\n * @private\n */\n DiagramScroller.prototype.setSize = function (newOffset) {\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n pageBounds.width *= this.currentZoom;\n pageBounds.height *= this.currentZoom;\n var x = Math.min(pageBounds.x, -this.horizontalOffset);\n var y = Math.min(pageBounds.y, -this.verticalOffset);\n var difX = -this.horizontalOffset + this.viewPortWidth - pageBounds.right;\n var difY = -this.verticalOffset + this.viewPortHeight - pageBounds.bottom;\n var hScrollSize = this.scrollerWidth;\n var vScrollSize = this.scrollerWidth;\n if (-this.verticalOffset <= pageBounds.y && -this.verticalOffset + this.viewPortHeight >= pageBounds.bottom) {\n vScrollSize = 0;\n }\n if (-this.horizontalOffset <= pageBounds.x && -this.horizontalOffset + this.viewPortWidth >= pageBounds.right) {\n hScrollSize = 0;\n }\n this.hScrollSize = hScrollSize;\n this.vScrollSize = vScrollSize;\n var oldWidth = this.diagramWidth;\n var oldHeight = this.diagramHeight;\n this.diagramWidth = Math.max(pageBounds.right, -this.horizontalOffset + this.viewPortWidth - vScrollSize) - x;\n this.diagramHeight = Math.max(pageBounds.bottom, -this.verticalOffset + this.viewPortHeight - hScrollSize) - y;\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight) && this.diagram.scrollSettings.scrollLimit !== 'Diagram') {\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n }\n if (this.diagram.scrollSettings.scrollLimit === 'Diagram') {\n if ((oldWidth !== this.diagramWidth || oldHeight !== this.diagramHeight || this.currentZoom !== 1)\n && ((!this.diagram.diagramActions || !newOffset) || (this.diagram.diagramActions && newOffset &&\n ((this.verticalOffset !== 0 || this.verticalOffset === newOffset.y) &&\n (this.horizontalOffset !== 0 || this.horizontalOffset === newOffset.x))))) {\n if ((this.diagram.scrollActions & ScrollActions.Interaction) && newOffset) {\n this.transform = {\n tx: Math.max(newOffset.x, -(pageBounds.left / this.currentZoom)) / this.currentZoom,\n ty: Math.max(newOffset.y, -(pageBounds.top / this.currentZoom)) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.diagram.setSize(this.diagramWidth, this.diagramHeight);\n if ((!(this.diagram.scrollActions & ScrollActions.PropertyChange)) && newOffset) {\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n else if (newOffset && oldWidth === this.diagramWidth && oldHeight === this.diagramHeight &&\n ((this.diagram.diagramCanvas.scrollHeight > this.viewPortHeight &&\n newOffset.y < 0 && this.horizontalOffset === newOffset.x && this.verticalOffset === 0) ||\n (this.diagram.diagramCanvas.scrollWidth > this.viewPortWidth &&\n newOffset.x < 0 && this.verticalOffset === newOffset.y && this.horizontalOffset === 0))) {\n this.verticalOffset = newOffset.y;\n this.horizontalOffset = newOffset.x;\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n }\n }\n this.diagram.transformLayers();\n this.diagram.element.style.overflow = 'hidden';\n };\n /**\n * setViewPortSize \\\n *\n * @returns { void } To get page pageBounds.\\\n * @param {number} width - provide the factor value.\n * @param {number} height - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.setViewPortSize = function (width, height) {\n this.viewPortWidth = width;\n this.viewPortHeight = height;\n };\n /**\n * To get page pageBounds \\\n *\n * @returns { Rect } To get page pageBounds.\\\n * @param {boolean} boundingRect - provide the factor value.\n * @param {DiagramRegions} region - provide the factor value.\n * @param {boolean} hasPadding - provide the factor value.\n * @param {boolean} isnegativeRegion - provide the isnegativeRegion value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBounds = function (boundingRect, region, hasPadding, isnegativeRegion) {\n var rect = new Rect();\n var temp = 0;\n var pageBounds;\n if (region !== 'Content' && !isnegativeRegion && this.diagram.pageSettings.width !== null && this.diagram.pageSettings.height !== null) {\n var width = this.diagram.pageSettings.width;\n var height = this.diagram.pageSettings.height;\n var negwidth = 0;\n var negheight = 0;\n if (this.diagram.pageSettings.multiplePage) {\n rect = this.diagram.spatialSearch.getPageBounds(0, 0);\n if (rect.right > width) {\n var x = Math.ceil(rect.right / width);\n width = width * x;\n }\n if (rect.bottom > height) {\n var x = Math.ceil(rect.bottom / height);\n height = height * x;\n }\n if (rect.left < 0 && Math.abs(rect.left) > negwidth) {\n var x = Math.ceil(Math.abs(rect.left) / this.diagram.pageSettings.width);\n negwidth = this.diagram.pageSettings.width * x;\n }\n if (rect.top < 0 && Math.abs(rect.top) > negheight) {\n var x = Math.ceil(Math.abs(rect.top) / this.diagram.pageSettings.height);\n negheight = this.diagram.pageSettings.height * x;\n }\n }\n pageBounds = new Rect((-negwidth), (-negheight), width + negwidth, height + negheight);\n }\n else {\n var origin_1 = boundingRect ? undefined : 0;\n pageBounds = this.diagram.spatialSearch.getPageBounds(origin_1, origin_1);\n }\n if (hasPadding) {\n var scrollpadding = this.diagram.scrollSettings.padding;\n pageBounds.x -= scrollpadding.left;\n pageBounds.y -= scrollpadding.top;\n pageBounds.width += (scrollpadding.left + scrollpadding.right);\n pageBounds.height += (scrollpadding.top + scrollpadding.bottom);\n }\n return pageBounds;\n };\n /**\n * To get page break when PageBreak is set as true \\\n *\n * @returns { Segment[] } To get page break when PageBreak is set as true.\\\n * @param {Rect} pageBounds - provide the factor value.\n *\n * @private\n */\n DiagramScroller.prototype.getPageBreak = function (pageBounds) {\n var i = 0;\n var j = 0;\n var v = -1;\n var collection = [];\n var x1 = 0;\n var x2 = 0;\n var y1 = 0;\n var y2 = 0;\n var left = this.diagram.pageSettings.margin.left;\n var right = this.diagram.pageSettings.margin.right;\n var top = this.diagram.pageSettings.margin.top;\n var bottom = this.diagram.pageSettings.margin.bottom;\n var widthCount = 1;\n var heightCount = 1;\n var segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n while (pageBounds.width > i) {\n i = i + (this.diagram.pageSettings.width ? this.diagram.pageSettings.width : pageBounds.width);\n if (i === this.diagram.pageSettings.width) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.left + left, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n if (i < pageBounds.width) {\n x1 = pageBounds.topLeft.x + this.diagram.pageSettings.width * widthCount;\n y1 = pageBounds.topLeft.y + top;\n x2 = pageBounds.bottomLeft.x + this.diagram.pageSettings.width * widthCount;\n y2 = pageBounds.bottomLeft.y - bottom;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n widthCount++;\n }\n if (pageBounds.width === i) {\n segment = {\n x1: pageBounds.right - right, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n while (pageBounds.height > j) {\n j = j + (this.diagram.pageSettings.height ? this.diagram.pageSettings.height : pageBounds.height);\n if (j === this.diagram.pageSettings.height) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.top + top,\n x2: pageBounds.right - right, y2: pageBounds.top + top\n };\n collection[++v] = segment;\n }\n if (j < pageBounds.height) {\n x1 = pageBounds.topLeft.x + left;\n y1 = pageBounds.topLeft.y + this.diagram.pageSettings.height * heightCount;\n x2 = pageBounds.topRight.x - right;\n y2 = pageBounds.topRight.y + this.diagram.pageSettings.height * heightCount;\n segment = { x1: x1, y1: y1, x2: x2, y2: y2 };\n collection[++v] = segment;\n heightCount++;\n }\n if (pageBounds.height === j) {\n segment = {\n x1: pageBounds.left + left, y1: pageBounds.bottom - bottom,\n x2: pageBounds.right - right, y2: pageBounds.bottom - bottom\n };\n collection[++v] = segment;\n }\n }\n return collection;\n };\n /**\n * zoom method \\\n *\n * @returns { void } zoom method .\\\n * @param {number} factor - provide the factor value.\n * @param {number} deltaX - provide the bounds value.\n * @param {number} deltaY - provide the bounds value.\n * @param {PointModel} focusPoint - provide the bounds value.\n * @param {boolean} isInteractiveZoomPan - provide the isInteractiveZoomPan value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n * @param {boolean} isTrackpadScroll - provide the isTrackpadScroll value.\n * @param {boolean} canZoomOut - provide the canZoomOut value.\n *\n * @private\n */\n DiagramScroller.prototype.zoom = function (factor, deltaX, deltaY, focusPoint, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll, canZoomOut) {\n if (canZoom(this.diagram) && factor !== 1 || (canPan(this.diagram) && factor === 1)) {\n var matrix = identityMatrix();\n scaleMatrix(matrix, this.currentZoom, this.currentZoom);\n translateMatrix(matrix, this.horizontalOffset, this.verticalOffset);\n focusPoint = focusPoint || {\n x: (this.viewPortWidth / 2 - this.horizontalOffset) / this.currentZoom,\n y: (this.viewPortHeight / 2 - this.verticalOffset) / this.currentZoom\n };\n focusPoint = transformPointByMatrix(matrix, focusPoint);\n //Bug 853566: Fit to page is not working when zoom value less than minZoom.\n // Removed minZoom calculation to call fitToPage even if currentZoom less than minZoom.\n if ((this.currentZoom * factor) <= this.diagram.scrollSettings.maxZoom &&\n ((this.currentZoom * factor) >= this.diagram.scrollSettings.minZoom || (canZoomOut || factor >= 1))) {\n this.currentZoom *= factor;\n var pageBounds = this.getPageBounds(undefined, undefined, true);\n pageBounds.x *= this.currentZoom;\n pageBounds.y *= this.currentZoom;\n //target Matrix\n var targetMatrix = identityMatrix();\n scaleMatrix(targetMatrix, factor, factor, focusPoint.x, focusPoint.y);\n translateMatrix(targetMatrix, deltaX || 0, deltaY || 0);\n multiplyMatrix(matrix, targetMatrix);\n var newOffset = transformPointByMatrix(matrix, { x: 0, y: 0 });\n if (factor === 1) {\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n newOffset = this.applyScrollLimit(newOffset.x, newOffset.y, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // The below condition is used to avoid the flickering of the scroll bar on scrolling the diagram using trackpad.\n isTrackpadScroll = (-(pageBounds.y) >= newOffset.y && -(pageBounds.x) >= newOffset.x && isTrackpadScroll);\n if ((this.diagram.scrollActions & ScrollActions.PropertyChange ||\n !(this.diagram.scrollActions & ScrollActions.Interaction)) ||\n this.diagram.scrollSettings.scrollLimit !== 'Diagram' || isTrackpadScroll) {\n this.transform = {\n tx: Math.max(newOffset.x, -pageBounds.left) / this.currentZoom,\n ty: Math.max(newOffset.y, -pageBounds.top) / this.currentZoom,\n scale: this.currentZoom\n };\n this.horizontalOffset = newOffset.x;\n this.verticalOffset = newOffset.y;\n }\n this.setSize(newOffset);\n if (this.diagram.mode !== 'SVG' && canVitualize(this.diagram)) {\n this.diagram.scroller.virtualizeElements();\n }\n if (this.diagram.mode !== 'SVG' && !canVitualize(this.diagram)) {\n this.diagram.refreshDiagramLayer();\n }\n this.diagram.setOffset(-this.horizontalOffset - pageBounds.x, -this.verticalOffset - pageBounds.y);\n updateRuler(this.diagram);\n //Bug 863516: Overview is not synced with diagram content while zoom-out the diagram.\n //Updating overview after the page scrolled or zoomed.\n if (this.diagram.views && this.diagram.views.overview) {\n var overview = this.diagram.views.overview;\n var bounds = overview.scrollOverviewRect(overview.parent.scroller.horizontalOffset, overview.parent.scroller.verticalOffset, overview.parent.scroller.currentZoom, true);\n overview.updateOverviewrect(-bounds.x, -bounds.y, bounds.width, bounds.height);\n overview.updateView(overview);\n }\n }\n }\n };\n /**\n * fitToPage method \\\n *\n * @returns { void } fitToPage method .\\\n * @param {IFitOptions} options - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.fitToPage = function (options) {\n options = options || {};\n var mode = options.mode;\n var region = options.region;\n var margin = options.margin || {};\n var canZoomIn = options.canZoomIn;\n var customBounds = options.customBounds;\n // Allows fitToPage when the currentZoom less than minZoom.\n var canZoomOut = options.canZoomOut;\n margin.bottom = margin.bottom || 25;\n margin.top = margin.top || 25;\n margin.left = margin.left || 25;\n margin.right = margin.right || 25;\n var bounds = customBounds;\n var factor;\n var deltaX = -this.horizontalOffset;\n var deltaY = -this.verticalOffset;\n region = region ? region : 'PageSettings';\n //fit mode\n if ((region === 'PageSettings' && this.diagram.pageSettings.width && this.diagram.pageSettings.height)\n || (this.diagram.nodes.length > 0 || this.diagram.connectors.length > 0)) {\n mode = mode ? mode : 'Page';\n if (region !== 'CustomBounds') {\n bounds = this.getPageBounds(true, region, true);\n }\n var scale = { x: 0, y: 0 };\n //Bug 853566: Fit to page is not working when zoom value less than minZoom.\n // Resetting margin value if the margin value is greater than the viewport size to avoid scale value in negative.\n if ((margin.left + margin.right) > this.viewPortWidth) {\n if (this.viewPortWidth <= 100) {\n margin.left = 5;\n margin.right = 5;\n }\n else {\n margin.left = 25;\n margin.right = 25;\n }\n }\n if ((margin.top + margin.bottom) > this.viewPortHeight) {\n if (this.viewPortHeight <= 100) {\n margin.top = 5;\n margin.bottom = 5;\n }\n else {\n margin.top = 25;\n margin.bottom = 25;\n }\n }\n scale.x = (this.viewPortWidth - (margin.left + margin.right)) / (bounds.width);\n scale.y = (this.viewPortHeight - (margin.top + margin.bottom)) / (bounds.height);\n if (!canZoomIn && (((bounds.width - this.horizontalOffset) < this.viewPortWidth) &&\n (bounds.height - this.verticalOffset) < this.viewPortHeight)) {\n scale.x = Math.min(this.currentZoom, scale.x);\n scale.y = Math.min(this.currentZoom, scale.y);\n }\n var zoomFactor = void 0;\n var centerX = void 0;\n var centerY = void 0;\n switch (mode) {\n case 'Width':\n zoomFactor = scale.x;\n factor = zoomFactor / this.currentZoom;\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY -= -this.verticalOffset * factor;\n deltaY = region !== 'CustomBounds' ? deltaY : deltaY - this.verticalOffset * factor;\n break;\n case 'Height':\n zoomFactor = scale.y;\n factor = (zoomFactor / this.currentZoom);\n centerX = ((this.viewPortWidth - (bounds.width) * zoomFactor) / 2) - bounds.x * zoomFactor;\n centerY = ((this.viewPortHeight - (bounds.height) * zoomFactor) / 2) - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n case 'Page':\n zoomFactor = Math.min(scale.x, scale.y);\n factor = (zoomFactor / this.currentZoom);\n centerX = (this.viewPortWidth - (bounds.width) * zoomFactor) / 2 - bounds.x * zoomFactor;\n centerY = (this.viewPortHeight - (bounds.height) * zoomFactor) / 2 - bounds.y * zoomFactor;\n deltaX += centerX + (margin.left - margin.right) / 2 * zoomFactor;\n deltaY += centerY + (margin.top - margin.bottom) / 2 * zoomFactor;\n break;\n }\n /**\n * EJ2-62912 - fit to page is not working properly when call it multiple times.\n */\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true, undefined, undefined, canZoomOut);\n }\n else {\n factor = 1 / this.currentZoom;\n this.zoom(factor, deltaX, deltaY, { x: 0, y: 0 }, true, undefined, undefined, canZoomOut);\n }\n };\n /**\n * bringIntoView method \\\n *\n * @returns { void } bringIntoView method .\\\n * @param {Rect} rect - provide the bounds value.\n * @param {boolean} isBringIntoView - provide the isBringIntoView value.\n *\n * @private\n */\n DiagramScroller.prototype.bringIntoView = function (rect, isBringIntoView) {\n // EJ2-68130-Bringintoview shows the object outside the viewport\n var x = 0;\n var y = 0;\n var scale = this.currentZoom;\n var bounds = rect;\n var hoffset = -this.horizontalOffset;\n var voffset = -this.verticalOffset;\n bounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var view = new Rect(hoffset, voffset, this.viewPortWidth, this.viewPortHeight);\n //To prevent nodes from being cut off in the horizontal and vertical scrollbars when calling the \"bring into view\" function, a padding value is added.\n var nodePadding = 20;\n if (!(view.containsRect(bounds))) {\n if (bounds.right > (-hoffset + this.viewPortWidth)) {\n x = bounds.right - this.viewPortWidth;\n x += nodePadding;\n }\n if (bounds.x < -hoffset) {\n x = bounds.x;\n }\n if (bounds.bottom > (-voffset + this.viewPortHeight)) {\n y = bounds.bottom - this.viewPortHeight;\n y += nodePadding;\n }\n if (bounds.y < -voffset) {\n y = bounds.y;\n }\n this.zoom(1, -this.horizontalOffset - x, -this.verticalOffset - y, null, undefined, isBringIntoView);\n }\n };\n /**\n * bringToCenter method \\\n *\n * @returns { void } bringToCenter method .\\\n * @param {Rect} bounds - provide the bounds value.\n *\n * @private\n */\n DiagramScroller.prototype.bringToCenter = function (bounds) {\n var scale = this.currentZoom;\n var actualbounds = new Rect(bounds.x * scale, bounds.y * scale, bounds.width * scale, bounds.height * scale);\n var hoffset = actualbounds.x + actualbounds.width / 2 - this.viewPortWidth / 2;\n var voffset = actualbounds.y + actualbounds.height / 2 - this.viewPortHeight / 2;\n /**\n * In applyScrollLimit method the sign of deltaX and deltaY\n * will be changed ,so here we change the sign.\n * similarly for bringIntoView.\n */\n hoffset *= -1;\n voffset *= -1;\n this.zoom(1, -this.horizontalOffset - hoffset, -this.verticalOffset - voffset, null);\n };\n DiagramScroller.prototype.applyScrollLimit = function (hOffset, vOffset, isInteractiveZoomPan, isBringIntoView, isTrackpadScroll) {\n /**\n * EJ2-60980- ScrollOffset is not updated properly in runtime.\n * EJ2-62524 - panning is not working properly in diagram.\n * isInteractiveZoomPan is undefined while setting scrollOffset at runtime.\n */\n if (this.diagram.scrollSettings.scrollLimit === 'Infinity') {\n if (isInteractiveZoomPan === undefined && !isBringIntoView) {\n hOffset = -hOffset;\n vOffset = -vOffset;\n }\n }\n if (this.diagram.scrollSettings.scrollLimit !== 'Infinity') {\n var bounds = void 0;\n if (this.diagram.scrollSettings.scrollLimit === 'Limited') {\n var scrollableBounds = this.diagram.scrollSettings.scrollableArea;\n bounds = new Rect(scrollableBounds.x, scrollableBounds.y, scrollableBounds.width, scrollableBounds.height);\n }\n // Bug 829925: Scroll bar flickers on scrolling the diagram using touchpad.\n // Added below code to get the page bounds based on the scroll.\n bounds = bounds || (isTrackpadScroll ? this.getPageBounds() : this.getPageBounds(true));\n bounds.x *= this.currentZoom;\n bounds.y *= this.currentZoom;\n bounds.width *= this.currentZoom;\n bounds.height *= this.currentZoom;\n if (isInteractiveZoomPan !== undefined) {\n hOffset *= -1;\n vOffset *= -1;\n }\n // EJ2-69238 - Added below code to multiple the horizontal and vertical offset to bring the node in viewport\n if (isBringIntoView) {\n hOffset *= -1;\n vOffset *= -1;\n }\n var allowedRight = Math.max(bounds.right, this.viewPortWidth);\n if (!isBringIntoView && !(hOffset <= bounds.x && (hOffset + this.viewPortWidth >= bounds.right ||\n hOffset >= bounds.right - this.viewPortWidth)\n || hOffset >= bounds.x && (hOffset + this.viewPortWidth <= allowedRight))) {\n //not allowed case\n if (hOffset >= bounds.x) {\n hOffset = Math.max(bounds.x, Math.min(hOffset, hOffset - (hOffset + this.viewPortWidth - this.vScrollSize - allowedRight)));\n }\n else {\n var allowed = bounds.right - this.viewPortWidth;\n hOffset = Math.min(allowed, bounds.x);\n }\n }\n var allowedBottom = Math.max(bounds.bottom, this.viewPortHeight);\n // EJ2-69238 - Added below code to restrict the min value calculation for vertical offset in bringIntoview scenarion.\n if (!isBringIntoView && !(vOffset <= bounds.y && vOffset + this.viewPortHeight >= bounds.bottom\n || vOffset >= bounds.y && vOffset + this.viewPortHeight <= allowedBottom)) {\n //not allowed case\n if (vOffset >= bounds.y) {\n vOffset = Math.max(bounds.y, Math.min(vOffset, vOffset - (vOffset + this.viewPortHeight - this.hScrollSize - allowedBottom)));\n }\n else {\n var allowed = bounds.bottom - this.viewPortHeight;\n vOffset = Math.min(bounds.y, allowed);\n }\n }\n hOffset *= -1;\n vOffset *= -1;\n }\n return { x: hOffset, y: vOffset };\n };\n return DiagramScroller;\n}());\nexport { DiagramScroller };\n","/**\n * Quad helps to maintain a set of objects that are contained within the particular region\n */\n/** @private */\nvar Quad = /** @class */ (function () {\n /**\n * Constructor for creating the Quad class\n *\n * @param {number} left The symbol palette model.\n * @param {number} top The symbol palette element.\n * @param {number} width The symbol palette element.\n * @param {number} height The symbol palette element.\n * @param {SpatialSearch} spatialSearching The symbol palette element.\n * @private\n */\n function Quad(left, top, width, height, spatialSearching) {\n this.objects = [];\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n this.spatialSearch = spatialSearching;\n }\n /**\n * findQuads method\\\n *\n * @returns { void} findQuads method .\\\n * @param {Rect} currentViewPort - provide the options value.\n * @param {Quad[]} quads - provide the options value.\n * @private\n */\n Quad.prototype.findQuads = function (currentViewPort, quads) {\n if (this.first != null && this.first.isIntersect(currentViewPort)) {\n this.first.findQuads(currentViewPort, quads);\n }\n if (this.second != null && this.second.isIntersect(currentViewPort)) {\n this.second.findQuads(currentViewPort, quads);\n }\n if (this.third != null && this.third.isIntersect(currentViewPort)) {\n this.third.findQuads(currentViewPort, quads);\n }\n if (this.fourth != null && this.fourth.isIntersect(currentViewPort)) {\n this.fourth.findQuads(currentViewPort, quads);\n }\n if (this.objects.length > 0) {\n quads.push(this);\n }\n };\n Quad.prototype.isIntersect = function (t) {\n if (this.left + this.width < t.left || this.top + this.height < t.top || this.left > t.right || this.top > t.bottom) {\n return false;\n }\n return true;\n };\n /**\n * selectQuad method\\\n *\n * @returns { Quad } selectQuad method .\\\n * @private\n */\n Quad.prototype.selectQuad = function () {\n var target = null;\n // eslint-disable-next-line\n var current = this;\n var quadSet;\n while (current != null) {\n quadSet = current.getQuad(target);\n current = quadSet.source;\n target = quadSet.target || target;\n }\n return target;\n };\n Quad.prototype.getQuad = function (target) {\n target = null;\n var halfWidth = this.width / 2;\n var halfHeight = this.height / 2;\n if (halfWidth >= 1000 && halfHeight >= 1000) {\n var xCenter = this.left + halfWidth;\n var yCenter = this.top + halfHeight;\n if (this.spatialSearch.childRight <= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.first) {\n var newQuad = new Quad(this.left, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.first = newQuad;\n }\n return { source: this.first };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.third) {\n var newQuad = new Quad(this.left, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.third = newQuad;\n }\n return { source: this.third };\n }\n }\n else if (this.spatialSearch.childLeft >= xCenter) {\n if (this.spatialSearch.childBottom <= yCenter) {\n if (!this.second) {\n var newQuad = new Quad(xCenter, this.top, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.second = newQuad;\n }\n return { source: this.second };\n }\n if (this.spatialSearch.childTop >= yCenter) {\n if (!this.fourth) {\n var newQuad = new Quad(xCenter, yCenter, halfWidth, halfHeight, this.spatialSearch);\n newQuad.parent = this;\n this.fourth = newQuad;\n }\n return { source: this.fourth };\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n target = this;\n this.objects.push(this.spatialSearch.childNode);\n return { target: this };\n };\n /**\n * isContained method\\\n *\n * @returns { boolean } isContained method .\\\n * @private\n */\n Quad.prototype.isContained = function () {\n if (this.spatialSearch.childLeft >= this.left && this.spatialSearch.childRight <= this.left + this.width &&\n this.spatialSearch.childTop >= this.top && this.spatialSearch.childBottom <= this.top + this.height) {\n return true;\n }\n return false;\n };\n /**\n * addIntoAQuad method\\\n *\n * @returns { Quad } addIntoAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n Quad.prototype.addIntoAQuad = function (node) {\n var quadAddition = {};\n this.spatialSearch.setCurrentNode(node);\n var quad = null;\n while (!quadAddition.isAdded) {\n quadAddition = this.spatialSearch.parentQuad.add(quad);\n quad = quadAddition.quad;\n }\n return quad;\n };\n Quad.prototype.add = function (quad) {\n quad = null;\n if (this.isContained()) {\n quad = this.selectQuad();\n return { isAdded: true, quad: quad };\n }\n else {\n var newParent = void 0;\n var isempty = this.objects.length === 0 && !this.first && !this.second && !this.third &&\n !this.fourth;\n var newWidth = this.width * 2;\n var newHeight = this.height * 2;\n if (this.spatialSearch.childLeft < this.left) {\n if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left - this.width, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.fourth = this;\n }\n }\n else {\n newParent = new Quad(this.left - this.width, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.second = this;\n }\n }\n }\n else if (this.spatialSearch.childTop < this.top) {\n newParent = new Quad(this.left, this.top - this.height, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.third = this;\n }\n }\n else {\n newParent = new Quad(this.left, this.top, newWidth, newHeight, this.spatialSearch);\n if (!isempty) {\n newParent.first = this;\n }\n }\n this.parent = newParent;\n this.spatialSearch.parentQuad = newParent;\n return { isAdded: false, quad: quad };\n //newParent.AddIntoaQuad(node);\n }\n };\n return Quad;\n}());\nexport { Quad };\n","import { Rect } from '../../primitives/rect';\nimport { Quad } from './quad';\n/**\n * Spatial search module helps to effectively find the objects over diagram\n */\nvar SpatialSearch = /** @class */ (function () {\n /**\n * Constructor for creating the spatial search\n *\n * @param {number} objectTable The objectTable.\n * @private\n */\n function SpatialSearch(objectTable) {\n this.quadSize = 500;\n this.objectTable = objectTable;\n this.parentQuad = new Quad(0, 0, this.quadSize * 2, this.quadSize * 2, this);\n this.pageLeft = Number.MAX_VALUE;\n this.pageRight = -Number.MAX_VALUE;\n this.pageTop = Number.MAX_VALUE;\n this.pageBottom = -Number.MAX_VALUE;\n this.quadTable = {};\n }\n /**\n * removeFromAQuad method\\\n *\n * @returns {void} removeFromAQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.removeFromAQuad = function (node) {\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n var index = this.objectIndex(quad.objects, node);\n if (index !== -1) {\n quad.objects.splice(index, 1);\n this.update(quad);\n delete this.quadTable[node.id];\n }\n }\n };\n SpatialSearch.prototype.update = function (quad) {\n //EJ2-841966-Nodes disappears while enabling virtualization constrai\n if (quad.parent && quad.objects.length === 0 && quad.first == null && quad.second == null\n && quad.third == null && quad.fourth == null) {\n var parent_1 = quad.parent;\n if (parent_1.first === quad) {\n parent_1.first = null;\n }\n else if (parent_1.second === quad) {\n parent_1.second = null;\n }\n else if (parent_1.third === quad) {\n parent_1.third = null;\n }\n else if (parent_1.fourth === quad) {\n parent_1.fourth = null;\n }\n this.update(quad.parent);\n }\n else {\n if (quad === this.parentQuad && !quad.first && !quad.second && !quad.third && !quad.fourth) {\n quad.left = 0;\n quad.width = 1000;\n quad.top = 0;\n quad.height = 1000;\n }\n return;\n }\n };\n SpatialSearch.prototype.addIntoAQuad = function (node) {\n var quad = this.parentQuad.addIntoAQuad(node);\n this.quadTable[node.id] = quad;\n };\n SpatialSearch.prototype.objectIndex = function (objects, node) {\n for (var i = 0; i < objects.length; i++) {\n if ((objects[parseInt(i.toString(), 10)]).id === node.id) {\n return i;\n }\n }\n return -1;\n };\n SpatialSearch.prototype.updateQuad = function (node) {\n this.setCurrentNode(node);\n var nodBounds = node.outerBounds;\n if (!(!isNaN(nodBounds.x) && !isNaN(nodBounds.y) &&\n !isNaN(nodBounds.width) && !isNaN(nodBounds.height))) {\n return false;\n }\n //nodBounds = new Rect(nodBounds.X.Valid(), nodBounds.Y.Valid(), nodBounds.Width.Valid(), nodBounds.Height.Valid());\n if (this.quadTable[node.id]) {\n var quad = this.quadTable[node.id];\n if (!quad.isContained()) {\n this.removeFromAQuad(node);\n this.addIntoAQuad(node);\n }\n }\n else {\n this.addIntoAQuad(node);\n }\n if (this.isWithinPageBounds(nodBounds) &&\n this.leftElement !== node &&\n this.topElement !== node &&\n this.rightElement !== node &&\n this.bottomElement !== node) {\n //contained - no change\n }\n else {\n var modified = false;\n if (this.pageLeft !== this.childLeft || node !== this.leftElement) {\n if (this.pageLeft >= this.childLeft) {\n this.pageLeft = this.childLeft;\n this.leftElement = node;\n modified = true;\n }\n else if (node === this.leftElement) {\n this.pageLeft = Number.MAX_VALUE;\n this.findLeft(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageTop !== this.childTop || node !== this.topElement) {\n if (this.pageTop >= this.childTop) {\n this.pageTop = this.childTop;\n this.topElement = node;\n modified = true;\n }\n else if (node === this.topElement) {\n this.pageTop = Number.MAX_VALUE;\n this.findTop(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageBottom !== this.childBottom || node !== this.bottomElement) {\n if (this.pageBottom <= this.childBottom) {\n modified = true;\n this.pageBottom = this.childBottom;\n this.bottomElement = node;\n }\n else if (node === this.bottomElement) {\n this.pageBottom = -Number.MAX_VALUE;\n this.findBottom(this.parentQuad);\n modified = true;\n }\n }\n if (this.pageRight !== this.childRight || node !== this.rightElement) {\n if (this.pageRight <= this.childRight) {\n this.pageRight = this.childRight;\n this.rightElement = node;\n modified = true;\n }\n else if (node === this.rightElement) {\n this.pageRight = -Number.MAX_VALUE;\n this.findRight(this.parentQuad);\n modified = true;\n }\n }\n return modified;\n }\n this.setCurrentNode(null);\n return false;\n };\n SpatialSearch.prototype.isWithinPageBounds = function (node) {\n if (node.left >= this.pageLeft && node.right <= this.pageRight && node.top >= this.pageTop\n && node.bottom <= this.pageBottom) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * findQuads method\\\n *\n * @returns { Quad[] } findQuads method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findQuads = function (region) {\n var quads = [];\n this.parentQuad.findQuads(region, quads);\n return quads;\n };\n /**\n * findObjects method\\\n *\n * @returns { IGroupable[] } findObjects method .\\\n * @param {Rect} region - provide the options value.\n * @private\n */\n SpatialSearch.prototype.findObjects = function (region) {\n var quads = this.findQuads(region);\n var objects = [];\n for (var _i = 0, quads_1 = quads; _i < quads_1.length; _i++) {\n var quad = quads_1[_i];\n for (var _a = 0, _b = quad.objects; _a < _b.length; _a++) {\n var obj = _b[_a];\n if (obj.outerBounds.intersects(region)) {\n objects.push(this.objectTable[obj.id]);\n }\n }\n }\n return objects;\n };\n /**\n * updateBounds method\\\n *\n * @returns { boolean } updateBounds method .\\\n * @param {IGroupable} node - provide the options value.\n * @param {boolean} isSwimLane - provide boolean if its swimlane container\n * @private\n */\n SpatialSearch.prototype.updateBounds = function (node, isSwimLane) {\n var modified = false;\n //879088: Swimalane exception when drag and dropped from palette\n if (isSwimLane) {\n if (this.topElement && node.id === this.topElement.id) {\n modified = this.updateTop();\n }\n if (this.leftElement && node.id === this.leftElement.id) {\n modified = this.updateLeft();\n }\n if (this.rightElement && node.id === this.rightElement.id) {\n modified = this.updateRight();\n }\n if (this.bottomElement && node.id === this.bottomElement.id) {\n modified = this.updateBottom();\n }\n }\n else {\n if (node === this.topElement) {\n modified = this.updateTop();\n }\n if (node === this.leftElement) {\n modified = this.updateLeft();\n }\n if (node === this.rightElement) {\n modified = this.updateRight();\n }\n if (node === this.bottomElement) {\n modified = this.updateBottom();\n }\n }\n return modified;\n };\n SpatialSearch.prototype.updateTop = function () {\n this.pageTop = Number.MAX_VALUE;\n this.topElement = null;\n this.findTop(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateBottom = function () {\n this.pageBottom = -Number.MAX_VALUE;\n this.bottomElement = null;\n this.findBottom(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateLeft = function () {\n this.pageLeft = Number.MAX_VALUE;\n this.leftElement = null;\n this.findLeft(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.updateRight = function () {\n this.pageRight = -Number.MAX_VALUE;\n this.rightElement = null;\n this.findRight(this.parentQuad);\n return true;\n };\n SpatialSearch.prototype.findBottom = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.third || quad.fourth) {\n if (quad.third) {\n this.findBottom(quad.third);\n }\n if (quad.fourth) {\n this.findBottom(quad.fourth);\n }\n }\n else {\n if (quad.second) {\n this.findBottom(quad.second);\n }\n if (quad.first) {\n this.findBottom(quad.first);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageBottom <= node.outerBounds.bottom) {\n this.pageBottom = node.outerBounds.bottom;\n this.bottomElement = node;\n }\n }\n };\n SpatialSearch.prototype.findRight = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.second || quad.fourth) {\n if (quad.second) {\n this.findRight(quad.second);\n }\n if (quad.fourth) {\n this.findRight(quad.fourth);\n }\n }\n // EJ2-65880 - Exception occurs on dragging outside the canvas\n {\n if (quad.first) {\n this.findRight(quad.first);\n }\n if (quad.third) {\n this.findRight(quad.third);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageRight <= node.outerBounds.right) {\n this.pageRight = node.outerBounds.right;\n this.rightElement = node;\n }\n }\n };\n SpatialSearch.prototype.findLeft = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.third) {\n if (quad.first) {\n this.findLeft(quad.first);\n }\n if (quad.third) {\n this.findLeft(quad.third);\n }\n }\n else {\n if (quad.second) {\n this.findLeft(quad.second);\n }\n if (quad.fourth) {\n this.findLeft(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageLeft >= node.outerBounds.left) {\n this.pageLeft = node.outerBounds.left;\n this.leftElement = node;\n }\n }\n };\n SpatialSearch.prototype.findTop = function (quad) {\n //if (quad.Quads.Count === 4)\n {\n if (quad.first || quad.second) {\n if (quad.first) {\n this.findTop(quad.first);\n }\n if (quad.second) {\n this.findTop(quad.second);\n }\n }\n else {\n if (quad.third) {\n this.findTop(quad.third);\n }\n if (quad.fourth) {\n this.findTop(quad.fourth);\n }\n }\n }\n for (var _i = 0, _a = quad.objects; _i < _a.length; _i++) {\n var node = _a[_i];\n if (this.pageTop >= node.outerBounds.top) {\n this.pageTop = node.outerBounds.top;\n this.topElement = node;\n }\n }\n };\n /**\n * setCurrentNode method\\\n *\n * @returns { void } setCurrentNode method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.setCurrentNode = function (node) {\n this.childNode = node;\n if (node) {\n var r = node.outerBounds;\n this.childLeft = Number(r.left);\n this.childTop = Number(r.top);\n this.childRight = Number(r.right);\n this.childBottom = Number(r.bottom);\n }\n else {\n this.childLeft = Number.MAX_VALUE;\n this.childTop = Number.MAX_VALUE;\n this.childRight = -Number.MAX_VALUE;\n this.childBottom = -Number.MAX_VALUE;\n }\n };\n /**\n * getPageBounds method\\\n *\n * @returns { Rect } getPageBounds method .\\\n * @param {number} originX - provide the options value.\n * @param {number} originY - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getPageBounds = function (originX, originY) {\n if (this.pageLeft === Number.MAX_VALUE) {\n return new Rect(0, 0, 0, 0);\n }\n var left = originX !== undefined ? Math.min(this.pageLeft, 0) : this.pageLeft;\n var top = originY !== undefined ? Math.min(this.pageTop, 0) : this.pageTop;\n return new Rect(Math.round(left), Math.round(top), Math.round(this.pageRight - left), Math.round(this.pageBottom - top));\n };\n /**\n * getQuad method\\\n *\n * @returns { Quad } getQuad method .\\\n * @param {IGroupable} node - provide the options value.\n * @private\n */\n SpatialSearch.prototype.getQuad = function (node) {\n return this.quadTable[node.id];\n };\n return SpatialSearch;\n}());\nexport { SpatialSearch };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Defines the serialization settings of diagram\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * serializationSettings: { preventDefaults: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar SerializationSettings = /** @class */ (function (_super) {\n __extends(SerializationSettings, _super);\n function SerializationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], SerializationSettings.prototype, \"preventDefaults\", void 0);\n return SerializationSettings;\n}(ChildProperty));\nexport { SerializationSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\n/**\n * A collection of JSON objects where each object represents a layer.\n * Layer is a named category of diagram shapes.\n */\nvar CustomCursorAction = /** @class */ (function (_super) {\n __extends(CustomCursorAction, _super);\n function CustomCursorAction() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"action\", void 0);\n __decorate([\n Property('')\n ], CustomCursorAction.prototype, \"cursor\", void 0);\n return CustomCursorAction;\n}(ChildProperty));\nexport { CustomCursorAction };\n","import { Rect } from '../primitives/rect';\nimport { findPoint, getIntersection, getOppositeDirection, getPortDirection } from '../utility/connector';\nimport { canEnableRouting } from '../utility/constraints-util';\n/**\n * Line Routing\n */\nvar LineRouting = /** @class */ (function () {\n /**\n * Constructor for the line routing module\n *\n * @private\n */\n function LineRouting() {\n this.size = 20;\n this.intermediatePoints = [];\n this.gridCollection = [];\n this.startArray = [];\n this.targetGridCollection = [];\n this.sourceGridCollection = [];\n this.considerWalkable = [];\n //constructs the line routing module\n }\n /**\n * lineRouting method \\\n *\n * @returns { void } lineRouting method .\\\n * @param {Diagram} diagram - provide the source value.\n *\n * @private\n */\n LineRouting.prototype.lineRouting = function (diagram) {\n var length = diagram.connectors.length;\n this.renderVirtualRegion(diagram);\n if (length > 0) {\n for (var k = 0; k < length; k++) {\n var connector = diagram.connectors[parseInt(k.toString(), 10)];\n if (connector.type === 'Orthogonal' && connector.visible) {\n this.refreshConnectorSegments(diagram, connector, true);\n }\n }\n }\n };\n /** @private */\n /**\n * renderVirtualRegion method \\\n *\n * @returns { void } renderVirtualRegion method .\\\n * @param {Diagram} diagram - provide the source value.\n * @param {boolean} isUpdate - provide the target value.\n *\n * @private\n */\n LineRouting.prototype.renderVirtualRegion = function (diagram, isUpdate) {\n /* tslint:disable */\n var extraBounds = this.size;\n if (diagram.spatialSearch['pageTop'] < 0 || diagram.spatialSearch['pageLeft'] < 0) {\n extraBounds = this.size + (this.size / 2);\n }\n var right = diagram.spatialSearch['pageRight'] + extraBounds;\n var bottom = diagram.spatialSearch['pageBottom'] + extraBounds;\n var left = diagram.spatialSearch['pageLeft'] - extraBounds;\n var top = diagram.spatialSearch['pageTop'] - extraBounds;\n left = left < 0 ? left - 20 : 0;\n top = top < 0 ? top - 20 : 0;\n /* tslint:enable */\n if ((isUpdate && (this.width !== (right - left) || this.height !== (bottom - top) ||\n this.diagramStartX !== left || this.diagramStartY !== top)) || isUpdate === undefined) {\n this.width = right - left;\n this.height = bottom - top;\n this.diagramStartX = left;\n this.diagramStartY = top;\n this.gridCollection = [];\n this.noOfRows = this.width / this.size;\n this.noOfCols = this.height / this.size;\n var size = this.size;\n var x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n var y = this.diagramStartY < 0 ? this.diagramStartY : 0;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n if (i === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.gridCollection.push([0]);\n }\n var grid = {\n x: x, y: y, width: size, height: size, gridX: j,\n gridY: i, walkable: true, tested: undefined, nodeId: []\n };\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)] = grid;\n x += size;\n }\n x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n y += size;\n }\n }\n var nodes = this.findNodes(diagram.nodes);\n this.updateNodesInVirtualRegion(nodes);\n };\n LineRouting.prototype.findNodes = function (nodes) {\n var objects = [];\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (node.shape.type !== 'SwimLane' && !node.isLane && !node.isPhase && !node.isHeader && node.visible) {\n objects.push(node);\n }\n }\n return objects;\n };\n LineRouting.prototype.updateNodesInVirtualRegion = function (diagramNodes) {\n var size = this.size;\n var x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n var y = this.diagramStartY < 0 ? this.diagramStartY : 0;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n var grid = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)];\n var rectangle = new Rect(x, y, this.size, this.size);\n var isContains = void 0;\n var k = void 0;\n grid.walkable = true;\n grid.tested = undefined;\n grid.nodeId = [];\n for (k = 0; k < diagramNodes.length; k++) {\n if (diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds) {\n isContains = this.intersectRect(rectangle, diagramNodes[parseInt(k.toString(), 10)].wrapper.bounds);\n }\n if (isContains) {\n grid.nodeId.push(diagramNodes[parseInt(k.toString(), 10)].id);\n grid.walkable = false;\n if (diagramNodes[parseInt(k.toString(), 10)].parentId !== '') {\n grid.parentNodeId = diagramNodes[parseInt(k.toString(), 10)].parentId;\n }\n }\n }\n x += size;\n }\n x = this.diagramStartX < 0 ? this.diagramStartX : 0;\n y += size;\n }\n };\n LineRouting.prototype.intersectRect = function (r1, r2) {\n return !(r2.left >= r1.right || r2.right <= r1.left ||\n r2.top >= r1.bottom || r2.bottom <= r1.top);\n };\n LineRouting.prototype.findEndPoint = function (connector, isSource, isPortBounds) {\n var endPoint;\n var portDirection;\n // EJ2-65876 - Exception occurs on line routing injection module\n if ((isSource && connector.sourcePortID !== '' && connector.sourcePortWrapper) || (!isSource && connector.targetPortID !== '' && connector.targetPortWrapper)) {\n endPoint = (isSource) ? { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY } :\n { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY };\n portDirection = getPortDirection(endPoint, undefined, (isSource) ? connector.sourceWrapper.bounds : connector.targetWrapper.bounds, false);\n var bounds = (isSource) ? connector.sourcePortWrapper.bounds : connector.targetPortWrapper.bounds;\n if (isPortBounds) {\n if (portDirection === 'Top') {\n endPoint = { x: bounds.topCenter.x, y: bounds.topCenter.y };\n }\n else if (portDirection === 'Left') {\n endPoint = { x: bounds.middleLeft.x, y: bounds.middleLeft.y };\n }\n else if (portDirection === 'Right') {\n endPoint = { x: bounds.middleRight.x, y: bounds.middleRight.y };\n }\n else {\n endPoint = { x: bounds.bottomCenter.x, y: bounds.bottomCenter.y };\n }\n }\n else {\n endPoint = { x: bounds.center.x, y: bounds.center.y };\n }\n }\n else {\n if ((isSource && this.startNode) || (!isSource && this.targetNode)) {\n endPoint = (isSource) ? { x: this.startNode.wrapper.offsetX, y: this.startNode.wrapper.offsetY } :\n { x: this.targetNode.wrapper.offsetX, y: this.targetNode.wrapper.offsetY };\n }\n else {\n endPoint = (isSource) ? { x: connector.sourcePoint.x, y: connector.sourcePoint.y } :\n { x: connector.targetPoint.x, y: connector.targetPoint.y };\n }\n }\n return endPoint;\n };\n /**\n * refreshConnectorSegments method \\\n *\n * @returns { void } refreshConnectorSegments method .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {Connector} connector - provide the connector value.\n * @param {boolean} isUpdate - provide the diagram value.\n * @param {boolean} isEnableRouting - provide enableRouting value.\n *\n * @private\n */\n LineRouting.prototype.refreshConnectorSegments = function (diagram, connector, isUpdate, isEnableRouting) {\n var sourceId = connector.sourceID;\n var targetId = connector.targetID;\n var sourcePortID = connector.sourcePortID;\n var targetPortID = connector.targetPortID;\n var startPoint;\n var targetPoint;\n var sourcePortDirection;\n var targetPortDirection;\n var grid;\n var sourceTop;\n var sourceBottom;\n var isBreak;\n var sourceLeft;\n var sourceRight;\n var targetRight;\n var targetTop;\n var targetBottom;\n var targetLeft;\n if (canEnableRouting(connector, diagram) || isEnableRouting) {\n this.startNode = diagram.nameTable[\"\" + sourceId];\n this.targetNode = diagram.nameTable[\"\" + targetId];\n this.intermediatePoints = [];\n this.startArray = [];\n this.targetGridCollection = [];\n this.sourceGridCollection = [];\n this.startGrid = undefined;\n this.targetGrid = undefined;\n for (var i = 0; i < this.noOfCols; i++) {\n for (var j = 0; j < this.noOfRows; j++) {\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].tested\n = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].parent = undefined;\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].previousDistance\n = this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].afterDistance = undefined;\n this.gridCollection[parseInt(j.toString(), 10)][parseInt(i.toString(), 10)].totalDistance = undefined;\n }\n }\n // Set the source point and target point\n startPoint = this.findEndPoint(connector, true);\n targetPoint = this.findEndPoint(connector, false);\n // Find the start grid and target grid\n for (var i = 0; i < this.noOfRows; i++) {\n for (var j = 0; j < this.noOfCols; j++) {\n grid = this.gridCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)];\n var rectangle = new Rect(grid.x, grid.y, grid.width, grid.height);\n if (rectangle.containsPoint(startPoint) && !this.startGrid &&\n (grid.nodeId.indexOf(sourceId) !== -1 || sourceId === '')) {\n this.startGrid = (sourcePortID && this.startGrid &&\n (sourcePortDirection === 'Left' || sourcePortDirection === 'Top')) ? this.startGrid : grid;\n }\n if (rectangle.containsPoint(targetPoint) && !this.targetGrid &&\n (grid.nodeId.indexOf(targetId) !== -1 || targetId === '')) {\n this.targetGrid = (targetPortID && this.targetGrid &&\n (targetPortDirection === 'Left' || targetPortDirection === 'Top')) ? this.targetGrid : grid;\n }\n if (!sourcePortID && this.startNode) {\n var bounds = this.startNode.wrapper.bounds;\n if (rectangle.containsPoint(bounds.topCenter) && !sourceTop) {\n sourceTop = grid;\n }\n if (rectangle.containsPoint(bounds.middleLeft) && !sourceLeft) {\n sourceLeft = grid;\n }\n if (rectangle.containsPoint(bounds.middleRight) && !sourceRight) {\n sourceRight = grid;\n }\n if (rectangle.containsPoint(bounds.bottomCenter) && !sourceBottom) {\n sourceBottom = grid;\n }\n }\n if (!targetPortID && this.targetNode) {\n var bounds = this.targetNode.wrapper.bounds;\n if (rectangle.containsPoint(bounds.topCenter) && !targetTop) {\n targetTop = grid;\n }\n if (rectangle.containsPoint(bounds.middleLeft) && !targetLeft) {\n targetLeft = grid;\n }\n if (rectangle.containsPoint(bounds.middleRight) && !targetRight) {\n targetRight = grid;\n }\n if (rectangle.containsPoint({ x: bounds.bottomCenter.x, y: bounds.bottomCenter.y }) && !targetBottom) {\n targetBottom = grid;\n }\n }\n }\n }\n this.findEdgeBoundary(sourcePortID, sourceLeft, sourceRight, sourceTop, sourceBottom, true);\n this.findEdgeBoundary(targetPortID, targetLeft, targetRight, targetTop, targetBottom, false);\n this.startGrid.totalDistance = 0;\n this.startGrid.previousDistance = 0;\n this.intermediatePoints.push({ x: this.startGrid.gridX, y: this.startGrid.gridY });\n this.startArray.push(this.startGrid);\n if (connector && targetLeft && targetRight && targetTop && targetBottom) {\n this.checkObstacles(connector, diagram, targetLeft, targetRight, targetTop, targetBottom);\n }\n // eslint-disable-next-line no-labels\n renderPathElement: while (this.startArray.length > 0) {\n var startGridNode = this.startArray.pop();\n //890444:Exception thrown while drag and drop shapes on top of each other repeatedly with Line Routing\n if (startGridNode) {\n for (var i = 0; i < this.targetGridCollection.length; i++) {\n var target = this.targetGridCollection[parseInt(i.toString(), 10)];\n if (startGridNode) {\n if (startGridNode.gridX === target.gridX && startGridNode.gridY === target.gridY) {\n this.getIntermediatePoints(startGridNode);\n this.optimizeIntermediatePoints();\n if (startGridNode.nodeId && startGridNode.nodeId.length > 1) {\n connector.segments = [];\n }\n isBreak = this.updateConnectorSegments(diagram, this.intermediatePoints, this.gridCollection, connector, isUpdate);\n if (!isBreak) {\n this.targetGridCollection.splice(this.targetGridCollection.indexOf(target), 1);\n startGridNode = this.startArray.pop();\n }\n else {\n this.considerWalkable = [];\n // eslint-disable-next-line no-labels\n break renderPathElement;\n }\n }\n }\n }\n if (startGridNode) {\n this.findPath(startGridNode);\n }\n }\n }\n }\n };\n LineRouting.prototype.checkChildNodes = function (grid, isSource) {\n var check = false;\n var reject = false;\n if (grid.nodeId.length >= 1 && !isSource) {\n for (var i = 0; i < grid.nodeId.length; i++) {\n var id = grid.nodeId[parseInt(i.toString(), 10)];\n for (var j = 0; j < grid.nodeId.length; j++) {\n if (this.targetNode.parentId === grid.nodeId[parseInt(j.toString(), 10)]) {\n reject = true;\n }\n }\n if (!reject && this.targetNode.id === id) {\n check = true;\n }\n else {\n check = false;\n }\n }\n }\n else {\n if (grid.nodeId.length === 1) {\n check = true;\n }\n }\n return check;\n };\n LineRouting.prototype.findEdgeBoundary = function (portID, left, right, top, bottom, isSource) {\n var grid;\n var collection = (isSource) ? this.sourceGridCollection : this.targetGridCollection;\n if (!portID && ((isSource) ? this.startNode : this.targetNode)) {\n for (var i = left.gridX; i <= right.gridX; i++) {\n grid = this.gridCollection[parseInt(i.toString(), 10)][left.gridY];\n if ((this.checkChildNodes(grid, isSource) && (i === left.gridX || i === right.gridX)) ||\n (i !== left.gridX && i !== right.gridX)) {\n collection.push(grid);\n }\n }\n for (var i = top.gridY; i <= bottom.gridY; i++) {\n grid = this.gridCollection[top.gridX][parseInt(i.toString(), 10)];\n if (((this.checkChildNodes(grid, isSource) && (i === top.gridY || i === bottom.gridY)) ||\n (i !== top.gridY && i !== bottom.gridY)) && collection.indexOf(grid) === -1) {\n collection.push(grid);\n }\n }\n }\n else {\n collection.push((isSource) ? this.startGrid : this.targetGrid);\n }\n };\n LineRouting.prototype.checkObstacles = function (connector, diagram, targetLeft, targetRight, targetTop, targetBottom) {\n var neigbours = this.findNearestNeigbours(this.startGrid, this.gridCollection, true);\n if (neigbours.length === 0) {\n if (connector.sourcePortID !== '') {\n var endPoint = { x: connector.sourcePortWrapper.offsetX, y: connector.sourcePortWrapper.offsetY };\n var portDirection = getPortDirection(endPoint, undefined, connector.sourceWrapper.bounds, false);\n if (portDirection === 'Top') {\n this.resetGridColl(this.startGrid, 'top', true);\n }\n else if (portDirection === 'Right') {\n this.resetGridColl(this.startGrid, 'right', true);\n }\n else if (portDirection === 'Bottom') {\n this.resetGridColl(this.startGrid, 'bottom', true);\n }\n else {\n this.resetGridColl(this.startGrid, 'left', true);\n }\n }\n else {\n this.resetGridColl(this.startGrid, 'top', true);\n this.resetGridColl(this.startGrid, 'right', true);\n this.resetGridColl(this.startGrid, 'bottom', true);\n this.resetGridColl(this.startGrid, 'left', true);\n }\n }\n neigbours = this.findNearestNeigbours(this.targetGrid, this.gridCollection, false);\n if (neigbours.length === 0) {\n if (connector.targetPortID !== '') {\n var endPoint = { x: connector.targetPortWrapper.offsetX, y: connector.targetPortWrapper.offsetY };\n var portDirection = getPortDirection(endPoint, undefined, connector.targetWrapper.bounds, false);\n if (portDirection === 'Top') {\n this.resetGridColl(this.targetGrid, 'top', true);\n }\n else if (portDirection === 'Right') {\n this.resetGridColl(this.targetGrid, 'right', true);\n }\n else if (portDirection === 'Bottom') {\n this.resetGridColl(this.targetGrid, 'bottom', true);\n }\n else {\n this.resetGridColl(this.targetGrid, 'left', true);\n }\n }\n else {\n this.resetGridColl(this.targetGrid, 'top', false);\n this.resetGridColl(this.targetGrid, 'right', false);\n this.resetGridColl(this.targetGrid, 'bottom', false);\n this.resetGridColl(this.targetGrid, 'left', false);\n }\n }\n if (this.targetGridCollection.length > 1 && this.targetGridCollection[0].nodeId.length > 1) {\n for (var i = 0; i <= 1; i++) {\n var gridX = this.targetGridCollection[parseInt(i.toString(), 10)].gridX;\n var gridY = this.targetGridCollection[parseInt(i.toString(), 10)].gridY;\n var gridNodes = this.targetGridCollection[parseInt(i.toString(), 10)].nodeId;\n var targetNode = void 0;\n for (var k = 0; k < gridNodes.length; k++) {\n if (this.targetNode.id !== gridNodes[parseInt(k.toString(), 10)]) {\n targetNode = gridNodes[parseInt(k.toString(), 10)];\n break;\n }\n }\n var targetNodewrapper = void 0;\n var overLapNode = void 0;\n var contains = void 0;\n if (diagram.nameTable[this.targetNode.id]) {\n targetNodewrapper = diagram.nameTable[this.targetNode.id].wrapper;\n }\n if (diagram.nameTable[\"\" + targetNode]) {\n overLapNode = diagram.nameTable[\"\" + targetNode].wrapper;\n }\n if (targetNodewrapper && overLapNode) {\n contains = this.contains(overLapNode.bounds, targetNodewrapper.bounds);\n }\n var reject = void 0;\n for (var j = 0; j < gridNodes.length; j++) {\n if (this.targetNode.parentId === gridNodes[parseInt(j.toString(), 10)]) {\n reject = true;\n }\n }\n if (!this.gridCollection[parseInt(gridX.toString(), 10)][parseInt(gridY.toString(), 10)].walkable && contains && !reject) {\n var grid = void 0;\n var diff = void 0;\n grid = this.getEndvalue(targetLeft, 'left');\n diff = targetLeft.gridX - grid.gridX;\n this.changeValue(targetLeft, diff, 'left');\n grid = this.getEndvalue(targetRight, 'right');\n diff = grid.gridX - targetRight.gridX;\n this.changeValue(targetRight, diff, 'right');\n grid = this.getEndvalue(targetTop, 'top');\n diff = targetTop.gridY - grid.gridY;\n this.changeValue(targetTop, diff, 'top');\n grid = this.getEndvalue(targetBottom, 'bottom');\n diff = targetBottom.gridY - grid.gridY;\n this.changeValue(targetBottom, diff, 'top');\n }\n }\n }\n };\n LineRouting.prototype.contains = function (rect1, rect2) {\n return rect1.left <= rect2.left && rect1.right >= rect2.right && rect1.top <= rect2.top && rect1.bottom >= rect2.bottom;\n };\n LineRouting.prototype.getEndvalue = function (target, direction) {\n if (!this.gridCollection[target.gridX][target.gridY].walkable) {\n if (direction === 'left') {\n return this.getEndvalue(this.gridCollection[target.gridX - 1][target.gridY], direction);\n }\n if (direction === 'right') {\n return this.getEndvalue(this.gridCollection[target.gridX + 1][target.gridY], direction);\n }\n if (direction === 'top') {\n return this.getEndvalue(this.gridCollection[target.gridX][target.gridY - 1], direction);\n }\n if (direction === 'bottom') {\n return this.getEndvalue(this.gridCollection[target.gridX][target.gridY + 1], direction);\n }\n }\n else {\n return target;\n }\n return target;\n };\n LineRouting.prototype.changeValue = function (targetLeft, diff, direction) {\n if (!targetLeft.walkable) {\n this.considerWalkable.push(targetLeft);\n }\n var grid;\n for (var i = 0; i <= diff; i++) {\n if (direction === 'left') {\n grid = this.gridCollection[targetLeft.gridX - i][targetLeft.gridY];\n }\n else if (direction === 'right') {\n grid = this.gridCollection[targetLeft.gridX + i][targetLeft.gridY];\n }\n else if (direction === 'top') {\n grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY - i];\n }\n else if (direction === 'bottom') {\n grid = this.gridCollection[targetLeft.gridX][targetLeft.gridY + i];\n }\n if (!grid.walkable) {\n this.considerWalkable.push(grid);\n }\n }\n };\n // Get all the intermediated points from target grid\n LineRouting.prototype.getIntermediatePoints = function (target) {\n var distance;\n this.intermediatePoints = [];\n while (target) {\n this.intermediatePoints.push({ x: target.gridX, y: target.gridY });\n target = target.parent;\n }\n this.intermediatePoints.reverse();\n //890444: Exception thrown while drag and drop shapes on top of each other repeatedly with Line Routing\n if (this.intermediatePoints.length >= 1 && this.intermediatePoints[0] !== undefined\n && this.intermediatePoints[1] !== undefined) {\n if (this.intermediatePoints[0].x === this.intermediatePoints[1].x) {\n if (this.intermediatePoints[0].y < this.intermediatePoints[1].y) {\n distance = this.neigbour(this.startGrid, 'bottom', undefined, true);\n this.intermediatePoints[0].y += distance - 1;\n }\n else {\n distance = this.neigbour(this.startGrid, 'top', undefined, true);\n this.intermediatePoints[0].y -= distance - 1;\n }\n }\n else {\n if (this.intermediatePoints[0].x < this.intermediatePoints[1].x) {\n distance = this.neigbour(this.startGrid, 'right', undefined, true);\n this.intermediatePoints[0].x += distance - 1;\n }\n else {\n distance = this.neigbour(this.startGrid, 'left', undefined, true);\n this.intermediatePoints[0].x -= distance - 1;\n }\n }\n }\n };\n LineRouting.prototype.optimizeIntermediatePoints = function () {\n this.intermediatePoints = this.removePointsInSameLine(this.intermediatePoints);\n this.intermediatePoints = this.getValidPoints(this.intermediatePoints);\n };\n LineRouting.prototype.removePointsInSameLine = function (points) {\n if (points.length < 3) {\n return points;\n }\n var result = [points[0]];\n for (var i = 1; i < points.length - 1; i++) {\n var prevPoint = result[result.length - 1];\n var currentPoint = points[parseInt(i.toString(), 10)];\n var nextPoint = points[i + 1];\n if (!this.arePointsInSameLine(prevPoint, currentPoint, nextPoint)) {\n result.push(currentPoint);\n }\n }\n result.push(points[points.length - 1]);\n return result;\n };\n LineRouting.prototype.arePointsInSameLine = function (point1, point2, point3) {\n return (point2.x - point1.x) * (point3.y - point1.y) === (point3.x - point1.x) * (point2.y - point1.y);\n };\n LineRouting.prototype.getValidPoints = function (points) {\n if (points.length < 4) {\n return points;\n }\n var i = 1;\n while (i < points.length - 3) {\n var lineStart1 = points[parseInt(i.toString(), 10)];\n var lineEnd1 = points[i + 1];\n var lineStart2 = points[i + 2];\n var lineEnd2 = points[i + 3];\n if (lineStart1.x === lineEnd1.x) {\n if ((lineEnd1.y < lineStart1.y && lineEnd2.y < lineStart2.y)\n || (lineEnd1.y > lineStart1.y && lineEnd2.y > lineStart2.y)) {\n var dx = lineStart1.x < lineStart2.x ? 1 : -1;\n var dy = lineEnd1.y < lineStart1.y ? -1 : 1;\n var neigbourGridX = lineStart1.x + dx;\n var neigbourGridY = lineStart1.y;\n var isValid = false;\n while (neigbourGridX !== lineEnd2.x || neigbourGridY !== lineEnd2.y) {\n if (!this.isWalkable(neigbourGridX, neigbourGridY)) {\n isValid = false;\n break;\n }\n else {\n isValid = true;\n }\n if (neigbourGridX !== lineStart2.x) {\n neigbourGridX += dx;\n }\n else {\n neigbourGridY += dy;\n }\n }\n if (isValid) {\n lineStart1.x = lineStart2.x;\n points.splice(i + 1, 2);\n continue;\n }\n }\n }\n else if (lineStart1.y === lineEnd1.y) {\n if ((lineEnd1.x < lineStart1.x && lineEnd2.x < lineStart2.x)\n || (lineEnd1.x > lineStart1.x && lineEnd2.x > lineStart2.x)) {\n var dy1 = lineStart1.y < lineStart2.y ? 1 : -1;\n var dx1 = lineEnd1.x < lineStart1.x ? -1 : 1;\n var neigbourGridY1 = lineStart1.y + dy1;\n var neigbourGridX1 = lineStart1.x;\n var isValid1 = false;\n while (neigbourGridX1 !== lineEnd2.x || neigbourGridY1 !== lineEnd2.y) {\n if (!this.isWalkable(neigbourGridX1, neigbourGridY1)) {\n isValid1 = false;\n break;\n }\n else {\n isValid1 = true;\n }\n if (neigbourGridY1 !== lineStart2.y) {\n neigbourGridY1 += dy1;\n }\n else {\n neigbourGridX1 += dx1;\n }\n }\n if (isValid1) {\n lineStart1.y = lineStart2.y;\n points.splice(i + 1, 2);\n continue;\n }\n }\n }\n i++;\n }\n return points;\n };\n // Connector rendering\n /* tslint:disable */\n LineRouting.prototype.updateConnectorSegments = function (diagram, intermediatePoints, gridCollection, connector, isUpdate) {\n var segments = [];\n var seg;\n var targetPoint;\n var pointX;\n var pointY;\n var node;\n var points = [];\n var direction;\n var length;\n var currentdirection;\n var prevDirection;\n var targetWrapper = connector.targetWrapper;\n var sourceWrapper = connector.sourceWrapper;\n var sourcePoint = this.findEndPoint(connector, true);\n if (connector.targetPortID !== '' || !connector.targetWrapper) {\n targetPoint = this.findEndPoint(connector, false, true);\n }\n for (var i = 0; i < intermediatePoints.length; i++) {\n node = gridCollection[intermediatePoints[parseInt(i.toString(), 10)].x][intermediatePoints[parseInt(i.toString(), 10)].y];\n if (node) {\n pointX = node.x + node.width / 2;\n pointY = node.y + node.height / 2;\n points.push({ x: pointX, y: pointY });\n if (i >= 1 && points.length > 1) {\n if (points[points.length - 2].x !== points[points.length - 1].x) {\n currentdirection = (points[points.length - 2].x > points[points.length - 1].x) ? 'Left' : 'Right';\n }\n else {\n currentdirection = (points[points.length - 2].y > points[points.length - 1].y) ? 'Top' : 'Bottom';\n }\n }\n if (i >= 2 && prevDirection === currentdirection && points.length > 1) {\n points.splice(points.length - 2, 1);\n }\n prevDirection = currentdirection;\n }\n }\n if (points && points.length > 1) {\n for (var j = 0; j < points.length - 1; j++) {\n var currentPoint = points[parseInt(j.toString(), 10)];\n var nextPoint = points[j + 1];\n if (currentPoint.x !== nextPoint.x) {\n if (j === 0 && connector.sourcePortID === '' && sourceWrapper) {\n sourcePoint = (currentPoint.x > nextPoint.x)\n ? sourceWrapper.bounds.middleLeft : sourceWrapper.bounds.middleRight;\n }\n if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) {\n targetPoint = (currentPoint.x > nextPoint.x)\n ? targetWrapper.bounds.middleRight : targetWrapper.bounds.middleLeft;\n }\n if (j === 0 && sourcePoint) {\n currentPoint.x = sourcePoint.x;\n currentPoint.y = nextPoint.y = sourcePoint.y;\n var newDirection = currentPoint.x > nextPoint.x ? 'Left' : 'Right';\n var refPoint = findPoint(sourceWrapper.bounds, getOppositeDirection(newDirection));\n sourcePoint = getIntersection(connector, sourceWrapper, sourcePoint, refPoint, false);\n currentPoint.x = sourcePoint.x;\n }\n if (j === points.length - 2 && targetPoint) {\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.x - nextPoint.x) < 0) &&\n (Math.abs(targetPoint.x - currentPoint.x) < connector.targetDecorator.width + 1)) {\n currentPoint.x = points[j - 1].x -= this.size / 2;\n }\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.x - nextPoint.x) > 0) &&\n (Math.abs(targetPoint.x - currentPoint.x) < connector.targetDecorator.width + 1)) {\n currentPoint.x = points[j - 1].x += this.size / 2;\n }\n nextPoint.x = targetPoint.x;\n currentPoint.y = nextPoint.y = targetPoint.y;\n }\n }\n else {\n //EJ2-855805 - Connector target decorator is not proper in complexhierarchical layout when we call doLayout with line-routing\n if (j === 0 && connector.sourcePortID === '' && sourceWrapper) {\n sourcePoint = (currentPoint.y > nextPoint.y)\n ? sourceWrapper.bounds.topCenter : sourceWrapper.bounds.bottomCenter;\n }\n if (j === points.length - 2 && connector.targetPortID === '' && targetWrapper) {\n targetPoint = (currentPoint.y > nextPoint.y)\n ? targetWrapper.bounds.bottomCenter : targetWrapper.bounds.topCenter;\n }\n if (j === 0 && sourcePoint) {\n currentPoint.y = sourcePoint.y;\n currentPoint.x = nextPoint.x = sourcePoint.x;\n var newDirection1 = currentPoint.y > nextPoint.y ? 'Top' : 'Bottom';\n var refPoint = findPoint(sourceWrapper.bounds, getOppositeDirection(newDirection1));\n sourcePoint = getIntersection(connector, sourceWrapper, sourcePoint, refPoint, false);\n currentPoint.y = sourcePoint.y;\n }\n if (j === points.length - 2 && targetPoint) {\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.y - nextPoint.y) < 0) &&\n (Math.abs(targetPoint.y - currentPoint.y) < connector.targetDecorator.height + 1)) {\n currentPoint.y = points[j - 1].y -= this.size / 2;\n }\n if (j > 0 && connector.targetDecorator &&\n ((targetPoint.y - nextPoint.y) > 0) &&\n (Math.abs(targetPoint.y - currentPoint.y) < connector.targetDecorator.height + 1)) {\n currentPoint.y = points[j - 1].y += this.size / 2;\n }\n nextPoint.y = targetPoint.y;\n currentPoint.x = nextPoint.x = targetPoint.x;\n }\n }\n }\n for (var j = 0; j < points.length - 1; j++) {\n var currentPoint = points[parseInt(j.toString(), 10)];\n var nextPoint = points[j + 1];\n if (currentPoint.x !== nextPoint.x) {\n if (currentPoint.x > nextPoint.x) {\n direction = 'Left';\n length = currentPoint.x - nextPoint.x;\n }\n else {\n direction = 'Right';\n length = nextPoint.x - currentPoint.x;\n }\n }\n else {\n if (currentPoint.y > nextPoint.y) {\n direction = 'Top';\n length = currentPoint.y - nextPoint.y;\n }\n else {\n direction = 'Bottom';\n length = nextPoint.y - currentPoint.y;\n }\n }\n seg = { type: 'Orthogonal', length: length, direction: direction };\n segments.push(seg);\n }\n }\n if (segments && segments.length > 0) {\n var lastSeg = segments[segments.length - 1];\n if (segments.length === 1) {\n lastSeg.length -= 20;\n }\n if (lastSeg.length < 10 && segments.length === 2) {\n segments.pop();\n if (segments.length > 0) {\n segments[0].length -= 20;\n lastSeg = segments[0];\n }\n }\n if (connector.targetDecorator &&\n ((lastSeg.direction === 'Top' || lastSeg.direction === 'Bottom') && lastSeg.length > connector.targetDecorator.height + 1) ||\n ((lastSeg.direction === 'Right' || lastSeg.direction === 'Left') && lastSeg.length > connector.targetDecorator.width + 1)) {\n connector.segments = segments;\n if (isUpdate) {\n diagram.connectorPropertyChange(connector, {}, { type: 'Orthogonal', segments: segments });\n }\n return true;\n }\n }\n return false;\n };\n /* tslint:enable */\n // Shortest path\n LineRouting.prototype.findPath = function (startGrid) {\n var intermediatePoint;\n var collection = [];\n var neigbours = this.findNearestNeigbours(startGrid, this.gridCollection, true);\n for (var i = 0; i < neigbours.length; i++) {\n intermediatePoint = this.findIntermediatePoints(neigbours[parseInt(i.toString(), 10)].gridX, neigbours[parseInt(i.toString(), 10)].gridY, startGrid.gridX, startGrid.gridY, this.targetGrid.gridX, this.targetGrid.gridY);\n if (intermediatePoint !== null) {\n var grid = this.gridCollection[intermediatePoint.x][intermediatePoint.y];\n var h = this.octile(Math.abs(intermediatePoint.x - startGrid.gridX), Math.abs(intermediatePoint.y - startGrid.gridY));\n if (startGrid.parent && startGrid.parent.parent) {\n if (grid.gridX !== startGrid.parent.gridX && grid.gridY !== startGrid.parent.gridY) {\n h += 0.1;\n }\n }\n var l = startGrid.previousDistance + h;\n if ((!grid.previousDistance || grid.previousDistance > l) &&\n (!(intermediatePoint.x === startGrid.gridX && intermediatePoint.y === startGrid.gridY))) {\n collection.push(intermediatePoint);\n grid.previousDistance = l;\n grid.afterDistance = grid.afterDistance || this.manhattan(Math.abs(intermediatePoint.x - this.targetGrid.gridX), Math.abs(intermediatePoint.y - this.targetGrid.gridY));\n grid.totalDistance = grid.previousDistance + grid.afterDistance;\n grid.parent = startGrid;\n }\n }\n }\n if (collection.length > 0) {\n for (var i = 0; i < collection.length; i++) {\n var grid = this.gridCollection[collection[parseInt(i.toString(), 10)].x][collection[parseInt(i.toString(), 10)].y];\n if (this.startArray.indexOf(grid) === -1) {\n this.startArray.push(grid);\n }\n }\n }\n this.sorting(this.startArray);\n };\n // sorting the array based on total distance between source and target node\n LineRouting.prototype.sorting = function (array) {\n var done = false;\n while (!done) {\n done = true;\n for (var i = 1; i < array.length; i += 1) {\n if (array[i - 1].totalDistance < array[parseInt(i.toString(), 10)].totalDistance) {\n done = false;\n var tmp = array[i - 1];\n array[i - 1] = array[parseInt(i.toString(), 10)];\n array[parseInt(i.toString(), 10)] = tmp;\n }\n }\n }\n return array;\n };\n LineRouting.prototype.octile = function (t, e) {\n var r = Math.SQRT2 - 1;\n return e > t ? r * t + e : r * e + t;\n };\n LineRouting.prototype.manhattan = function (t, e) {\n return t + e;\n };\n // Find the nearest neigbour from the current boundaries, the neigbour is use to find next intermdiate point.\n LineRouting.prototype.findNearestNeigbours = function (startGrid, gridCollection, isSource) {\n var neigbours = [];\n var parent = startGrid.parent;\n if (parent) {\n var dx = (startGrid.gridX - parent.gridX) / Math.max(Math.abs(startGrid.gridX - parent.gridX), 1);\n var dy = (startGrid.gridY - parent.gridY) / Math.max(Math.abs(startGrid.gridY - parent.gridY), 1);\n if (dx !== 0) {\n if (this.isWalkable(startGrid.gridX, startGrid.gridY - 1, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY - 1]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY - 1]);\n }\n if (this.isWalkable(startGrid.gridX, startGrid.gridY + 1, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + 1])) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + 1]);\n }\n if (this.isWalkable(startGrid.gridX + dx, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + dx][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX + dx][startGrid.gridY]);\n }\n }\n else if (dy !== 0) {\n if (this.isWalkable(startGrid.gridX - 1, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX - 1][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX - 1][startGrid.gridY]);\n }\n if (this.isWalkable(startGrid.gridX + 1, startGrid.gridY, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX + 1][startGrid.gridY]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX + 1][startGrid.gridY]);\n }\n if (this.isWalkable(startGrid.gridX, startGrid.gridY + dy, true) &&\n this.sourceGridCollection.indexOf(gridCollection[startGrid.gridX][startGrid.gridY + dy]) === -1) {\n neigbours.push(gridCollection[startGrid.gridX][startGrid.gridY + dy]);\n }\n }\n }\n else {\n this.neigbour(startGrid, 'top', neigbours, isSource);\n this.neigbour(startGrid, 'right', neigbours, isSource);\n this.neigbour(startGrid, 'bottom', neigbours, isSource);\n this.neigbour(startGrid, 'left', neigbours, isSource);\n }\n return neigbours;\n };\n LineRouting.prototype.neigbour = function (startGrid, direction, neigbours, isSource) {\n var i = 1;\n var nearGrid;\n while (i > 0) {\n var x = (direction === 'top' || direction === 'bottom') ?\n (startGrid.gridX) : ((direction === 'left') ? startGrid.gridX - i : startGrid.gridX + i);\n var y = (direction === 'right' || direction === 'left') ?\n (startGrid.gridY) : ((direction === 'top') ? startGrid.gridY - i : startGrid.gridY + i);\n nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1)\n || (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) {\n if (neigbours && this.isWalkable(x, y)) {\n neigbours.push(nearGrid);\n }\n return i;\n }\n if (x > 0 && y > 0) {\n i++;\n }\n else {\n break;\n }\n }\n return null;\n };\n LineRouting.prototype.resetGridColl = function (grid, direction, isSource) {\n var i = 1;\n var nearGrid;\n while (i > 0) {\n var x = (direction === 'top' || direction === 'bottom') ?\n (grid.gridX) : ((direction === 'left') ? grid.gridX - i : grid.gridX + i);\n var y = (direction === 'right' || direction === 'left') ?\n (grid.gridY) : ((direction === 'top') ? grid.gridY - i : grid.gridY + i);\n nearGrid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (nearGrid && ((isSource && this.sourceGridCollection.indexOf(nearGrid) === -1) ||\n (!isSource && this.targetGridCollection.indexOf(nearGrid) === -1))) {\n if (this.isWalkable(x, y)) {\n break;\n }\n else {\n var grid_1 = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n this.considerWalkable.push(grid_1);\n }\n }\n if (x > 0 && y > 0) {\n if (direction === 'top' || direction === 'left') {\n i--;\n }\n else {\n i++;\n }\n }\n else {\n break;\n }\n }\n return null;\n };\n LineRouting.prototype.isWalkable = function (x, y, isparent) {\n if (x >= 0 && x < this.noOfRows && y >= 0 && y < this.noOfCols) {\n var grid = this.gridCollection[parseInt(x.toString(), 10)][parseInt(y.toString(), 10)];\n if (grid && (grid.walkable || ((grid.nodeId.length === 1 || (grid.nodeId.length === 2 && grid.parentNodeId\n || (this.considerWalkable.indexOf(grid) !== -1))) &&\n (this.sourceGridCollection.indexOf(grid) !== -1 || this.targetGridCollection.indexOf(grid) !== -1 ||\n this.considerWalkable.indexOf(grid) !== -1)))) {\n if ((isparent && !grid.parent) || !isparent) {\n return true;\n }\n }\n }\n return false;\n };\n LineRouting.prototype.findIntermediatePoints = function (neigbourGridX, neigbourGridY, startGridX, startGridY, endGridX, endGridY) {\n var dx = neigbourGridX - startGridX;\n var dy = neigbourGridY - startGridY;\n var gridX = neigbourGridX;\n var gridY = neigbourGridY;\n for (var i = 0; i < this.targetGridCollection.length; i++) {\n if (neigbourGridX === this.targetGridCollection[parseInt(i.toString(), 10)].gridX\n && neigbourGridY === this.targetGridCollection[parseInt(i.toString(), 10)].gridY) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n if (!this.isWalkable(neigbourGridX, neigbourGridY)) {\n return null;\n }\n var neigbourGrid = this.gridCollection[parseInt(neigbourGridX.toString(), 10)][parseInt(neigbourGridY.toString(), 10)];\n if (neigbourGrid.tested) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n neigbourGrid.tested = true;\n if (dx !== 0) {\n dx = (dx > 0) ? 1 : -1;\n if ((this.isWalkable(gridX, gridY - 1) && !this.isWalkable(gridX - dx, gridY - 1)) ||\n (this.isWalkable(gridX, gridY + 1) && !this.isWalkable(gridX - dx, gridY + 1))) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n if (dy !== 0) {\n dy = (dy > 0) ? 1 : -1;\n if ((this.isWalkable(gridX - 1, gridY) && !this.isWalkable(gridX - 1, gridY - dy)) ||\n (this.isWalkable(gridX + 1, gridY) && !this.isWalkable(gridX + 1, gridY - dy))) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n if (this.findIntermediatePoints(gridX + 1, gridY, gridX, gridY, endGridX, endGridY) ||\n this.findIntermediatePoints(gridX - 1, gridY, gridX, gridY, endGridX, endGridY)) {\n return { x: neigbourGridX, y: neigbourGridY };\n }\n }\n return this.findIntermediatePoints(gridX + dx, gridY + dy, gridX, gridY, endGridX, endGridY);\n };\n /**\n *To destroy the line routing\n *\n * @returns {void} To destroy the line routing\n */\n LineRouting.prototype.destroy = function () {\n /**\n * Destroys the line routing module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LineRouting.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LineRouting';\n };\n return LineRouting;\n}());\nexport { LineRouting };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Represents the diagram settings\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * ...\n * diagramSettings: { inversedAlignment: true },\n * ...\n * });\n * diagram.appendTo('#diagram');\n * ```\n *\n * @default {}\n */\nvar DiagramSettings = /** @class */ (function (_super) {\n __extends(DiagramSettings, _super);\n function DiagramSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(true)\n ], DiagramSettings.prototype, \"inversedAlignment\", void 0);\n return DiagramSettings;\n}(ChildProperty));\nexport { DiagramSettings };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable prefer-spread */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\nimport { Component, Property, Complex, Collection, EventHandler, L10n, Droppable, remove, isBlazor, Fetch } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Browser, Event } from '@syncfusion/ej2-base';\nimport { CanvasRenderer } from './rendering/canvas-renderer';\nimport { SvgRenderer } from './rendering/svg-renderer';\nimport { DiagramRenderer } from './rendering/renderer';\nimport { PageSettings, ScrollSettings } from './diagram/page-settings';\nimport { ServiceLocator } from './objects/service';\nimport { Container } from './core/containers/container';\nimport { Node, BpmnShape, SwimLane, UmlClassMethod, UmlEnumerationMember, UmlClassAttribute, Lane } from './objects/node';\nimport { cloneBlazorObject, cloneSelectedObjects, findObjectIndex, getConnectorArrowType, selectionHasConnector } from './utility/diagram-util';\nimport { checkBrowserInfo } from './utility/diagram-util';\nimport { updateDefaultValues } from './utility/diagram-util';\nimport { flipConnector, updatePortEdges, alignElement, setConnectorDefaults, getPreviewSize } from './utility/diagram-util';\nimport { Connector } from './objects/connector';\nimport { SnapSettings } from './diagram/grid-lines';\nimport { RulerSettings } from './diagram/ruler-settings';\nimport { removeRulerElements, updateRuler, getRulerSize } from './ruler/ruler';\nimport { renderRuler, renderOverlapElement } from './ruler/ruler';\nimport { Size } from './primitives/size';\nimport { Keys, KeyModifiers, DiagramTools, AnnotationConstraints, NodeConstraints, ScrollActions, ConnectorConstraints } from './enum/enum';\nimport { RendererAction } from './enum/enum';\nimport { BlazorAction } from './enum/enum';\nimport { DiagramConstraints, SelectorConstraints, PortVisibility, DiagramEvent } from './enum/enum';\nimport { DiagramAction, ThumbsConstraints } from './enum/enum';\nimport { RealAction, ElementAction, PortConstraints } from './enum/enum';\nimport { PathElement } from './core/elements/path-element';\nimport { TextElement } from './core/elements/text-element';\nimport { updateStyle, removeItem, updateConnector, updateShape, setUMLActivityDefaults, findNodeByName } from './utility/diagram-util';\nimport { setSwimLaneDefaults } from './utility/diagram-util';\nimport { checkPortRestriction, serialize, deserialize, updateHyperlink, getObjectType, removeGradient, getChild } from './utility/diagram-util';\nimport { Rect } from './primitives/rect';\nimport { getPortShape } from './objects/dictionary/common';\nimport { ShapeAnnotation, PathAnnotation } from './objects/annotation';\nimport { Canvas } from './core/containers/canvas';\nimport { GridPanel, ColumnDefinition } from './core/containers/grid';\nimport { DataSource } from './diagram/data-source';\nimport { Layout } from './layout/layout-base';\nimport { Selector, Text } from './objects/node';\nimport { DiagramEventHandler } from './interaction/event-handlers';\nimport { CommandHandler } from './interaction/command-manager';\nimport { DiagramScroller } from './interaction/scroller';\nimport { contains, isSelected } from './interaction/actions';\nimport { SpatialSearch } from './interaction/spatial-search/spatial-search';\nimport { setAttributeSvg, setAttributeHtml, measureHtmlText, removeElement, createMeasureElements, getDomIndex } from './utility/dom-util';\nimport { getDiagramElement, getScrollerWidth, getHTMLLayer, createUserHandleTemplates } from './utility/dom-util';\nimport { getBackgroundLayer, createHtmlElement, createSvgElement, getNativeLayerSvg, getUserHandleLayer } from './utility/dom-util';\nimport { getPortLayerSvg, getDiagramLayerSvg, applyStyleAgainstCsp } from './utility/dom-util';\nimport { getAdornerLayerSvg, getSelectorElement, getGridLayerSvg, getBackgroundLayerSvg } from './utility/dom-util';\nimport { CommandManager, ContextMenuSettings } from './diagram/keyboard-commands';\nimport { canDelete, canInConnect, canOutConnect, canRotate, canVitualize, canDrawThumbs } from './utility/constraints-util';\nimport { canPortInConnect, canPortOutConnect } from './utility/constraints-util';\nimport { canResize, canSingleSelect, canZoomPan, canZoomTextEdit, canMultiSelect } from './utility/constraints-util';\nimport { canDragSourceEnd, canDragTargetEnd, canDragSegmentThumb, enableReadOnly, canMove } from './utility/constraints-util';\nimport { findAnnotation, arrangeChild, getInOutConnectPorts, removeChildNodes, canMeasureDecoratorPath } from './utility/diagram-util';\nimport { randomId, cloneObject, extendObject, getFunction, getBounds } from './utility/base-util';\nimport { DiagramTooltip, initTooltip } from './objects/tooltip';\nimport { PointPort, PathPort } from './objects/port';\nimport { canShadow } from './utility/constraints-util';\nimport { Layer } from './diagram/layer';\nimport { DiagramNativeElement } from './core/elements/native-element';\nimport { DiagramHtmlElement } from './core/elements/html-element';\nimport { canAllowDrop } from './utility/constraints-util';\nimport { checkParentAsContainer, addChildToContainer, updateLaneBoundsAfterAddChild } from './interaction/container-interaction';\nimport { getConnectors, updateConnectorsProperties, phaseDefine } from './utility/swim-lane-util';\nimport { swimLaneMeasureAndArrange } from './utility/swim-lane-util';\nimport { arrangeChildNodesInSwimLane, updateHeaderMaxWidth, updatePhaseMaxWidth } from './utility/swim-lane-util';\nimport { addLane, addPhase } from './utility/swim-lane-util';\nimport { SerializationSettings } from './diagram/serialization-settings';\nimport { removeSwimLane, removeLane, removePhase, removeLaneChildNode } from './utility/swim-lane-util';\nimport { RowDefinition } from './core/containers/grid';\nimport { CustomCursorAction } from './diagram/custom-cursor';\nimport { LineRouting } from './interaction/line-routing';\nimport { DiagramSettings } from '../diagram/diagram-settings';\nimport { StackPanel } from './core/containers/stack-panel';\nimport { ConnectorFixedUserHandle, NodeFixedUserHandle } from './objects/fixed-user-handle';\nimport { Point } from './primitives/point';\nimport { getClassAttributesChild, getClassMembersChild, getClassNodesChild } from './utility/uml-util';\nimport { getIntersectionPoints, getPortDirection } from './utility/connector';\n/**\n * Represents the Diagram control\n * ```html\n *
\n * ```\n * ```typescript\n * let diagram: Diagram = new Diagram({\n * width:'1000px', height:'500px' });\n * diagram.appendTo('#diagram');\n * ```\n */\nvar Diagram = /** @class */ (function (_super) {\n __extends(Diagram, _super);\n /**\n * Constructor for creating the widget\n */\n function Diagram(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.version = 17.1;\n /** @private */\n _this.checkMenu = false;\n /** @private */\n _this.isServerUpdate = false;\n /** @private */\n _this.oldNodeObjects = [];\n /** @private */\n _this.oldDiagramObject = {};\n /** @private */\n _this.oldConnectorObjects = [];\n /** @private */\n _this.canEnableBlazorObject = false;\n /** @private */\n _this.connectorTable = {};\n /** @private */\n _this.groupTable = {};\n /** @private */\n _this.scrollActions = ScrollActions.None;\n /** @private */\n _this.blazorActions = BlazorAction.Default;\n /** @private */\n _this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n /** @private */\n _this.textEditing = false;\n /** @private */\n _this.isTriggerEvent = false;\n /** @private */\n _this.preventNodesUpdate = false;\n /** @private */\n _this.preventConnectorsUpdate = false;\n /** @private */\n _this.callBlazorModel = true;\n /** @private */\n _this.selectionConnectorsList = [];\n /** @private */\n _this.deleteVirtualObject = false;\n _this.canLayout = true;\n _this.isRefreshed = false;\n /** @private */\n _this.swimlaneChildTable = {};\n /** @private */\n _this.swimlaneZIndexTable = {};\n /** @private */\n _this.canExpand = false;\n _this.changedConnectorCollection = [];\n _this.changedNodesCollection = [];\n _this.previousNodeCollection = [];\n _this.previousConnectorCollection = [];\n _this.crudDeleteNodes = [];\n _this.previousSelectedObjects = [];\n // Group update to server when BlazorAction is isGroupAction;\n _this.blazorAddorRemoveCollection = [];\n _this.blazorRemoveIndexCollection = [];\n _this.diagramid = 88123;\n _this.portCenterPoint = [];\n /** @private */\n _this.selectedObject = { helperObject: undefined, actualObject: undefined };\n /** @private */\n _this.deleteDependentConnector = true;\n _this.mermaidNodeBaseCollection = [];\n _this.bangShape = 'M0 0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,-3.7200001525878905 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 25.78437614440918,3.7200001525878905 a15.470625686645507,15.470625686645507 1 0,0 15.470625686645507,12.276000503540038 a12.376500549316406,12.376500549316406 1 0,0 0,12.648000518798828 a15.470625686645507,15.470625686645507 1 0,0 -15.470625686645507,12.276000503540038 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,5.580000228881835 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,0 a15.470625686645507,15.470625686645507 1 0,0 -25.78437614440918,-5.580000228881835 a15.470625686645507,15.470625686645507 1 0,0 -10.313750457763673,-12.276000503540038 a12.376500549316406,12.376500549316406 1 0,0 0,-12.648000518798828 a15.470625686645507,15.470625686645507 1 0,0 10.313750457763673,-12.276000503540038 H0 V0 Z';\n _this.cloudShape = 'M0 0 a16.18875045776367,16.18875045776367 0 0,1 26.981250762939453,-10.792500305175782 a37.77375106811523,37.77375106811523 1 0,1 43.17000122070313,-10.792500305175782 a26.981250762939453,26.981250762939453 1 0,1 37.77375106811523,21.585000610351564 a16.18875045776367,16.18875045776367 1 0,1 16.18875045776367,13.020000534057615 a21.585000610351564,21.585000610351564 1 0,1 -16.18875045776367,24.180000991821288 a26.981250762939453,16.18875045776367 1 0,1 -26.981250762939453,16.18875045776367 a37.77375106811523,37.77375106811523 1 0,1 -53.962501525878906,0 a16.18875045776367,16.18875045776367 1 0,1 -26.981250762939453,-16.18875045776367 a16.18875045776367,16.18875045776367 1 0,1 -10.792500305175782,-13.020000534057615 a21.585000610351564,21.585000610351564 1 0,1 10.792500305175782,-24.180000991821288 H0 V0 Z';\n _this.renderTimer = null;\n var child;\n var node;\n //Removed isBlazor code\n _this.ignoreCollectionWatch = true;\n for (var i = 0; options && options.nodes && i < options.nodes.length; i++) {\n child = options.nodes[parseInt(i.toString(), 10)];\n node = _this.nodes[parseInt(i.toString(), 10)];\n if (child.children && child.children.length > 0) {\n if (!child.style || !child.style.fill) {\n node.style.fill = 'transparent';\n }\n if (!child.style || !child.style.strokeColor) {\n node.style.strokeColor = 'transparent';\n }\n }\n if (child.shape && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(child, node);\n }\n if (child.shape && child.shape.type === 'SwimLane') {\n setSwimLaneDefaults(child, node);\n }\n // Removed isBlazor code\n if (_this.nodeDefaults) {\n updateDefaultValues(node, child, _this.nodeDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n if (options && options.connectors) {\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n child = options.connectors[parseInt(i.toString(), 10)];\n node = _this.connectors[parseInt(i.toString(), 10)];\n //Removed isBlazor code\n if (_this.connectorDefaults) {\n updateDefaultValues(node, child, _this.connectorDefaults);\n }\n _this.updateAnnotationText(node.annotations);\n }\n }\n for (var i = 0; options && options.connectors && i < options.connectors.length; i++) {\n var defaultConnector = options.connectors[parseInt(i.toString(), 10)];\n var connector = _this.connectors[parseInt(i.toString(), 10)];\n if (defaultConnector.shape && defaultConnector.shape.type !== 'None') {\n setConnectorDefaults(defaultConnector, connector);\n }\n //Removed isBlazor code\n }\n return _this;\n }\n Diagram.prototype.updateAnnotationText = function (annotations) {\n //Removed isBlazor code\n };\n Diagram.prototype.clearCollection = function (isConnector) {\n var collection = [];\n var obj;\n for (var _i = 0, _a = Object.keys(this.nameTable); _i < _a.length; _i++) {\n var key = _a[_i];\n obj = this.nameTable[\"\" + key];\n if (obj && ((isConnector && obj instanceof Connector) || (!isConnector && obj instanceof Node))) {\n collection.push(obj);\n }\n }\n this.clearObjects(collection);\n };\n /**\n * Updates the diagram control when the objects are changed by comparing new and old property values.\n *\n * @param {DiagramModel} newProp - A object that lists the new values of the changed properties.\n * @param {DiagramModel} oldProp - A object that lists the old values of the changed properties.\n */\n /* tslint:disable */\n Diagram.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n // Model Changed\n // Bug 842506: After multiple group node rotations, the undo functionality is not working.\n // Below condition is used to restrict onPropertyChange when we rotate group node using button at runtime.\n if (!this.rotateUsingButton) {\n var newValue = void 0;\n var oldValue = void 0;\n var isPropertyChanged = true;\n var refreshLayout = false;\n var refereshColelction = false;\n if (this.diagramActions & DiagramAction.Render) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n case 'height':\n this.element.style.width = this.getSizeValue(this.width);\n this.element.style.height = this.getSizeValue(this.height);\n this.eventHandler.updateViewPortSize(this.element);\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var view = _c[_b];\n var temp = this.views[\"\" + view];\n if (!(temp instanceof Diagram)) {\n temp.updateView(temp);\n }\n }\n break;\n case 'nodes':\n if (newProp.nodes.length > 0 && oldProp.nodes.length === 0) {\n this.clearCollection();\n refereshColelction = true;\n }\n else {\n for (var _d = 0, _e = Object.keys(newProp.nodes); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n var actualObject = this.nodes[parseInt(index.toString(), 10)];\n var changedProp = newProp.nodes[parseInt(index.toString(), 10)];\n if (newProp.nodes[parseInt(index.toString(), 10)].style\n && newProp.nodes[parseInt(index.toString(), 10)].style.gradient) {\n this.updateGradient(newProp.nodes[parseInt(index.toString(), 10)], oldProp.nodes[parseInt(index.toString(), 10)], this.nodes[parseInt(index.toString(), 10)]);\n this.nodes[parseInt(index.toString(), 10)].oldGradientValue\n = cloneObject(newProp.nodes[parseInt(index.toString(), 10)].style.gradient);\n }\n refreshLayout = refreshLayout || changedProp.excludeFromLayout !== undefined;\n this.nodePropertyChange(actualObject, oldProp.nodes[parseInt(index.toString(), 10)], changedProp, undefined, true, true);\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.nodes[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.nodes[parseInt(index.toString(), 10)])\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'connectors':\n // eslint-disable-next-line no-case-declarations\n var oldObject = void 0;\n if (newProp.connectors.length > 0 && oldProp.connectors.length === 0) {\n this.clearCollection(true);\n refereshColelction = true;\n }\n else {\n for (var _f = 0, _g = Object.keys(newProp.connectors); _f < _g.length; _f++) {\n var key = _g[_f];\n var index = Number(key);\n var actualObject = this.connectors[parseInt(index.toString(), 10)];\n var changedProp = newProp.connectors[parseInt(index.toString(), 10)];\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions |= DiagramAction.DecoratorPropertyChange;\n }\n this.connectorPropertyChange(actualObject, oldProp.connectors[parseInt(index.toString(), 10)], changedProp, true, true);\n if (changedProp && (changedProp.sourceDecorator || changedProp.targetDecorator)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.DecoratorPropertyChange;\n }\n var args = {\n element: cloneBlazorObject(actualObject), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp.connectors[parseInt(index.toString(), 10)]),\n newValue: cloneBlazorObject(newProp.connectors[parseInt(index.toString(), 10)])\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n if (actualObject && actualObject.parentId && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier') {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId] || actualObject);\n }\n if (isPropertyChanged) {\n isPropertyChanged = false;\n }\n }\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n }\n break;\n case 'bridgeDirection':\n this.updateBridging();\n if (this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n }\n break;\n case 'backgroundColor':\n this.intOffPageBackground();\n break;\n case 'pageSettings':\n this.validatePageSize();\n this.updatePage();\n break;\n case 'selectedItems':\n if (newProp.selectedItems.userHandles && this.selectedItems.wrapper && this.selectedItems.userHandles) {\n if (this.selectedItems.userHandles.length > 0) {\n this.renderSelector(true);\n break;\n }\n }\n if (newProp.selectedItems.constraints) {\n this.renderSelector(true);\n break;\n }\n break;\n case 'snapSettings':\n this.updateSnapSettings(newProp);\n break;\n case 'commandManager':\n this.initCommands();\n break;\n case 'layout':\n refreshLayout = true;\n break;\n case 'segmentThumbShape':\n this.updateSelector();\n break;\n case 'dataSourceSettings':\n this.clear();\n if (this.layout.type === 'None') {\n refereshColelction = true;\n }\n else {\n //EJ2-837322- Duplicate nodes and connectors are created after reset for layout type 'None'\n this.initObjects();\n refreshLayout = true;\n }\n break;\n case 'tooltip':\n initTooltip(this);\n break;\n case 'rulerSettings':\n this.updateRulerSettings(newProp);\n break;\n case 'layers':\n this.updateLayer(newProp);\n break;\n case 'scrollSettings':\n this.scrollActions |= ScrollActions.PropertyChange;\n this.updateScrollSettings(newProp);\n this.scrollActions &= ~ScrollActions.PropertyChange;\n this.scrollSettings.horizontalOffset = -this.scroller.horizontalOffset || 0;\n this.scrollSettings.verticalOffset = -this.scroller.verticalOffset || 0;\n break;\n case 'locale':\n if (newProp.locale !== oldProp.locale) {\n this.realActions |= RealAction.PreventDataInit;\n _super.prototype.refresh.call(this);\n this.realActions &= ~RealAction.PreventDataInit;\n }\n break;\n case 'contextMenuSettings':\n if (newProp.contextMenuSettings.showCustomMenuOnly !== undefined) {\n this.contextMenuSettings.showCustomMenuOnly = newProp.contextMenuSettings.showCustomMenuOnly;\n }\n if (newProp.contextMenuSettings.show !== undefined) {\n this.contextMenuSettings.show = newProp.contextMenuSettings.show;\n }\n if (newProp.contextMenuSettings.items) {\n var items = newProp.contextMenuSettings.items;\n for (var _h = 0, _j = Object.keys(items); _h < _j.length; _h++) {\n var key = _j[_h];\n var index = Number(key);\n this.contextMenuSettings.items[parseInt(index.toString(), 10)] = items[parseInt(index.toString(), 10)];\n }\n if (this.contextMenuModule) {\n this.contextMenuModule.refreshItems();\n }\n else {\n console.warn('[WARNING] :: Module \"DiagramContextMenu\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n }\n break;\n case 'serializationSettings':\n if (newProp.serializationSettings.preventDefaults !== undefined) {\n this.serializationSettings.preventDefaults = newProp.serializationSettings.preventDefaults;\n }\n break;\n case 'tool':\n // 912436: Mouse cursor flickers when entering the diagram canvas after the tool is changed at runtime\n if (((newProp.tool === DiagramTools.ZoomPan) && (oldProp.tool === DiagramTools.Default)) ||\n ((oldProp.tool === DiagramTools.ZoomPan) && (newProp.tool === DiagramTools.Default))) {\n this.eventHandler.updateTool();\n }\n break;\n }\n }\n if (refreshLayout && !refereshColelction) {\n if (oldProp.layout && oldProp.layout.connectionPointOrigin === 'DifferentPoint' && newProp.layout.connectionPointOrigin === 'SamePoint'\n || (oldProp.layout && newProp.layout && !newProp.layout.enableRouting && oldProp.layout.enableRouting)) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n if ((node.ports && node.ports.length > 0)) {\n var ports = [];\n for (var j = node.ports.length - 1; j >= 0; j--) {\n if (node.ports[parseInt(j.toString(), 10)].id.split('_')[1] === 'LineDistribution') {\n ports.push(node.ports[parseInt(j.toString(), 10)]);\n }\n }\n this.removePorts(node, ports);\n }\n }\n for (var j = 0; j < this.connectors.length; j++) {\n var connector = this.connectors[parseInt(j.toString(), 10)];\n var sourcePortid = connector.sourcePortID;\n var targetPortId = connector.targetPortID;\n //const oldSegment: OrthogonalSegmentModel = (connector.segments as OrthogonalSegmentModel);\n connector.sourcePortID = '';\n connector.targetPortID = '';\n connector.sourcePortWrapper = undefined;\n connector.targetPortWrapper = undefined;\n connector.segments = [];\n this.connectorPropertyChange(connector, {\n sourcePortID: sourcePortid, targetPortID: targetPortId\n }, { sourcePortID: '', targetPortID: '' });\n }\n }\n this.doLayout();\n this.renderReactTemplates();\n }\n if (isPropertyChanged && this.propertyChange) {\n var args = {\n element: cloneBlazorObject(this), cause: this.diagramActions,\n diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n // Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n if (!refereshColelction && (this.canLogChange()) && (this.modelChanged(newProp, oldProp))) {\n var propertyObjects = [];\n var nodeObjects = [];\n var connObjects = [];\n if (newProp.nodes && Object.keys(newProp.nodes).length > 0) {\n for (var _k = 0, _l = Object.keys(newProp.nodes); _k < _l.length; _k++) {\n var key = _l[_k];\n var nodeIndex = parseInt(key, 10);\n nodeObjects.push(this.nodes[parseInt(nodeIndex.toString(), 10)].id);\n }\n }\n if (newProp.connectors && Object.keys(newProp.connectors).length > 0) {\n for (var _m = 0, _o = Object.keys(newProp.connectors); _m < _o.length; _m++) {\n var key = _o[_m];\n var connIndex = parseInt(key, 10);\n connObjects.push(this.connectors[parseInt(connIndex.toString(), 10)].id);\n }\n }\n propertyObjects = nodeObjects.concat(connObjects);\n //To prevent history entry for text annotation connector while dragging node.\n var textCon = connObjects.filter(function (id) { return _this.nameTable[\"\" + id].isBpmnAnnotationConnector; });\n if (textCon.length === 0) {\n var entry = { type: 'PropertyChanged', undoObject: oldProp, redoObject: newProp, category: 'Internal' };\n if (this.historyManager) {\n this.addHistoryEntry(entry, propertyObjects);\n }\n }\n }\n this.resetDiagramActions();\n if (refereshColelction) {\n this.initObjects(true);\n this.refreshDiagramLayer();\n if (refreshLayout) {\n this.doLayout();\n }\n }\n var scrollAlone = ((Object.keys(newProp).length === 1) && newProp.scrollSettings !== undefined);\n if (!refereshColelction) {\n for (var _p = 0, _q = this.views; _p < _q.length; _p++) {\n var temp = _q[_p];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n if (newProp.scrollSettings && newProp.scrollSettings.currentZoom !== oldProp.scrollSettings.currentZoom) {\n //view.updateHtmlLayer(view);\n }\n if (!scrollAlone) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n }\n }\n }\n }\n else {\n this.rotateUsingButton = false;\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateSnapSettings = function (newProp) {\n if (newProp.snapSettings.constraints !== undefined || newProp.snapSettings.horizontalGridlines ||\n newProp.snapSettings.verticalGridlines || newProp.snapSettings.gridType) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n };\n // This private method has been specially provided to update only the node old gradient value in oldProperty.\n // This issue belong to core team but we fixed in our end.\n // https://syncfusion.atlassian.net/browse/EJ2-49232\n Diagram.prototype.updateGradient = function (newProp, oldProp, nodeObj) {\n if (nodeObj.oldGradientValue) {\n var linearNode = nodeObj;\n var radialNode = nodeObj;\n var linearProp = oldProp.style.gradient;\n var radialProp = oldProp.style.gradient;\n for (var _i = 0, _a = Object.keys(newProp.style.gradient); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'type':\n if (linearNode.type) {\n linearProp.type = linearNode.type;\n }\n break;\n case 'x1':\n if (linearNode.x1) {\n linearProp.x1 = linearNode.x1;\n }\n break;\n case 'x2':\n if (linearNode.x2) {\n linearProp.x2 = linearNode.x2;\n }\n break;\n case 'y1':\n if (linearNode.y1) {\n linearProp.y1 = linearNode.y1;\n }\n break;\n case 'y2':\n if (linearNode.y2) {\n linearProp.y2 = linearNode.y2;\n }\n break;\n case 'cx':\n if (radialNode.cx) {\n radialProp.cx = radialNode.cx;\n }\n break;\n case 'cy':\n if (radialNode.cy) {\n radialProp.cy = radialNode.cy;\n }\n break;\n case 'fx':\n if (radialNode.fx) {\n radialProp.fx = radialNode.fx;\n }\n break;\n case 'fy':\n if (radialNode.fy) {\n radialProp.fy = radialNode.fy;\n }\n break;\n case 'r':\n if (radialNode.r) {\n radialProp.r = radialNode.r;\n }\n break;\n case 'stops':\n if (nodeObj.oldGradientValue.stops) {\n var stops = (Object.values(cloneObject(nodeObj.oldGradientValue.stops)));\n stops.pop();\n oldProp.style.gradient.stops = stops;\n }\n break;\n }\n }\n }\n };\n Diagram.prototype.updateRulerSettings = function (newProp) {\n if (newProp.rulerSettings.dynamicGrid !== undefined) {\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n }\n if (newProp.rulerSettings.showRulers !== undefined) {\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else if (newProp.rulerSettings.horizontalRuler !== undefined ||\n newProp.rulerSettings.verticalRuler !== undefined) {\n if (newProp.rulerSettings.horizontalRuler.thickness !== undefined ||\n newProp.rulerSettings.verticalRuler.thickness !== undefined) {\n removeRulerElements(this);\n this.intOffPageBackground();\n this.scroller.setSize();\n this.renderRulers();\n }\n else {\n updateRuler(this);\n }\n }\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string}\n */\n Diagram.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initialize nodes, connectors and renderer\n */\n Diagram.prototype.preRender = function () {\n this.initializePrivateVariables();\n this.isProtectedOnChange = true;\n this.serviceLocator = new ServiceLocator;\n this.initializeServices();\n this.setCulture();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n this.initDiagram();\n this.initViews();\n this.unWireEvents();\n this.wireEvents();\n this.element.classList.add('e-diagram');\n };\n Diagram.prototype.initializePrivateVariables = function () {\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-diagram').length;\n this.element.id = 'diagram_' + this.diagramid + '_' + collection;\n }\n this.defaultLocale = {\n Copy: 'Copy',\n Cut: 'Cut',\n Paste: 'Paste',\n Undo: 'Undo',\n Redo: 'Redo',\n SelectAll: 'Select All',\n Grouping: 'Grouping',\n Group: 'Group',\n UnGroup: 'Un Group',\n Order: 'Order',\n BringToFront: 'Bring To Front',\n MoveForward: 'Move Forward',\n SendToBack: 'Send To Back',\n SendBackward: 'Send Backward'\n };\n this.layerZIndex = -1;\n this.layerZIndexTable = {};\n //878837 : initialize parameter for passing container as a parameter\n if (this.swimlaneChildTable === undefined && this.swimlaneZIndexTable === undefined) {\n this.swimlaneChildTable = {};\n this.swimlaneZIndexTable = {};\n }\n this.nameTable = {};\n this.pathTable = {};\n this.groupTable = {};\n this.commands = {};\n if (!this.isLoading) {\n this.views = [];\n }\n this.commandHandler = new CommandHandler(this);\n this.eventHandler = new DiagramEventHandler(this, this.commandHandler);\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.scroller = new DiagramScroller(this);\n };\n Diagram.prototype.initializeServices = function () {\n this.serviceLocator.register('localization', this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale));\n };\n /**\n * Method to set culture for chart\n */\n Diagram.prototype.setCulture = function () {\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\n };\n /* tslint:disable */\n /**\n * Renders the diagram control with nodes and connectors\n */\n Diagram.prototype.render = function () {\n if (this.refreshing && this.dataSourceSettings.dataSource && !this.isLoading) {\n this.nodes = [];\n this.connectors = [];\n }\n //830544-Support to add load event to notify before rendering of diagram\n if (!this.refreshing) {\n var loadEventData = {\n diagram: this, name: 'load'\n };\n this.trigger('load', loadEventData);\n }\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n this.isRefreshed = false;\n this.ignoreCollectionWatch = true;\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n var collapsedNode = [];\n //Removed isBlazor code.\n if (this.dataSourceSettings.crudAction.read) {\n this.renderInitialCrud();\n }\n this.initHistory();\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), this.mode === 'SVG');\n this.initLayers();\n this.initializeDiagramLayers();\n this.diagramRenderer.setLayers();\n this.initObjects(true);\n var isLayout = false;\n // Removed isBlazor code.\n var nodes = this.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (!nodes[parseInt(i.toString(), 10)].isExpanded) {\n collapsedNode.push(nodes[parseInt(i.toString(), 10)]);\n }\n }\n if (collapsedNode.length) {\n for (var i = collapsedNode.length - 1; i >= 0; i--) {\n if (i === 0) {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, false);\n }\n else {\n this.commandHandler.expandNode(collapsedNode[parseInt(i.toString(), 10)], this, true);\n }\n }\n }\n if (this.canLayout) {\n this.doLayout();\n }\n if (isLayout) {\n this.commandHandler.getBlazorOldValues();\n }\n if (this.lineRoutingModule) {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n //Removed isBlazor code.\n // EJ2-65876 - Exception occurs on line routing injection module\n if (this.connectors.sourceID !== this.connectors.targetID) {\n this.lineRoutingModule.lineRouting(this);\n }\n // Removed isBlazor code.\n }\n else if (this.constraints & DiagramConstraints.LineRouting) {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.validatePageSize();\n this.renderPageBreaks();\n this.diagramRenderer.renderSvgGridlines(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.commandHandler.initSelectorWrapper();\n /**\n * Used to render context menu\n */\n this.notify('initial-load', {});\n /**\n * Used to load context menu\n */\n this.trigger('load');\n this.scroller.setSize();\n this.scroller.updateScrollOffsets();\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // If diagram not refreshed, then we will refresh the diagram.\n if (!this.isRefreshed) {\n this.refreshDiagramLayer();\n }\n //Bug 855677: After Serialization, Subprocess Node Dragging Faces Problems After Removing Child Node.\n //Removed refreshDiagramLayer() method in this line as it causes the subprocess child node to be rendered twice in wrapper which causes the issue.\n if (this.scrollSettings.verticalOffset > 0 || this.scrollSettings.horizontalOffset > 0) {\n this.updateScrollOffset();\n }\n /**\n * Used to end the context menu rendering\n */\n if (Browser.isDevice) {\n this.tool = DiagramTools.ZoomPan | DiagramTools.SingleSelect;\n }\n this.notify('initial-end', {});\n this.isProtectedOnChange = false;\n this.tooltipObject = initTooltip(this);\n this.diagramActions = DiagramAction.Render;\n this.initCommands();\n var hiddenUserHandleTemplate = document.getElementsByClassName(this.element.id + '_hiddenUserHandleTemplate');\n createUserHandleTemplates(this.userHandleTemplate, hiddenUserHandleTemplate, this.selectedItems, this.element.id);\n //Removed isBlazor code.\n this.isLoading = false;\n this.refreshRoutingConnectors();\n this.renderComplete();\n this.updateFitToPage();\n if (this.refreshing) {\n this.renderReactTemplates();\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateFitToPage = function () {\n if (this.pageSettings && this.pageSettings.fitOptions && this.pageSettings.fitOptions.canFit) {\n this.fitToPage(this.pageSettings.fitOptions);\n }\n };\n Diagram.prototype.updateTemplate = function () {\n //Removed blazor code\n };\n //Call back function to the node template\n // private measureNode(node: NodeModel): void {\n // if (node.shape.type === 'Native' && isBlazor()) {\n // node.wrapper.measure(new Size(node.width, node.height));\n // node.wrapper.arrange(node.wrapper.desiredSize);\n // }\n // }\n Diagram.prototype.renderInitialCrud = function () {\n /* eslint-disable */\n var tempObj = this;\n /* eslint-enable */\n if (tempObj.dataSourceSettings.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n if (tempObj.dataSourceSettings.dataManager) {\n tempObj.dataSourceSettings.dataManager = JSON.parse(data);\n }\n else {\n tempObj.dataSourceSettings.dataSource = JSON.parse(data);\n }\n tempObj.dataBind();\n };\n callback.send().then();\n }\n if (tempObj.dataSourceSettings.connectionDataSource.crudAction.read) {\n var callback = new Fetch(tempObj.dataSourceSettings.connectionDataSource.crudAction.read, 'GET');\n callback.onSuccess = function (data) {\n tempObj.dataSourceSettings.connectionDataSource.dataManager = JSON.parse(data);\n tempObj.dataBind();\n };\n callback.send().then();\n }\n };\n /**\n * Retrieves the module name associated with the diagram.\n *\n * @returns {string} Retrieves the module name associated with the diagram.\n */\n Diagram.prototype.getModuleName = function () {\n return 'diagram';\n };\n /**\n *\n * Returns the name of class Diagram\n * @returns {string} Returns the module name of the diagram\n * @private\n */\n Diagram.prototype.getClassName = function () {\n return 'Diagram';\n };\n /* tslint:disable */\n /**\n * To provide the array of modules needed for control rendering\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n * @private\n */\n Diagram.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n modules.push({\n member: 'Bridging',\n args: []\n });\n modules.push({\n member: 'ConnectorEditingTool',\n args: []\n });\n //Removed isBlazor code\n if (this.constraints & DiagramConstraints.UndoRedo) {\n modules.push({\n member: 'UndoRedo',\n args: []\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.enableAnimation) {\n modules.push({\n member: 'LayoutAnimate',\n args: []\n });\n }\n if (this.snapSettings.constraints) {\n modules.push({\n member: 'Snapping',\n args: [this]\n });\n }\n modules.push({\n member: 'Ej1Serialization',\n args: [this]\n });\n modules.push({\n member: 'PrintandExport',\n args: [this]\n });\n if (this.contextMenuSettings.show) {\n modules.push({\n member: 'contextMenu',\n args: [this, this.serviceLocator]\n });\n }\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree') {\n modules.push({\n member: 'OrganizationalChart',\n args: [this]\n });\n }\n if (this.layout.type === 'ComplexHierarchicalTree') {\n modules.push({\n member: 'ComplexHierarchicalTree',\n args: []\n });\n }\n if (this.layout.type === 'MindMap') {\n modules.push({\n member: 'MindMapChart',\n args: []\n });\n }\n if (this.layout.type === 'RadialTree') {\n modules.push({\n member: 'RadialTree',\n args: []\n });\n }\n if (this.layout.type === 'SymmetricalLayout') {\n modules.push({\n member: 'SymmetricalLayout',\n args: []\n });\n }\n if (this.layout.type === 'Flowchart') {\n modules.push({\n member: 'FlowchartLayout',\n args: []\n });\n }\n if (this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource ||\n this.dataSourceSettings.crudAction.read || this.dataSourceSettings.connectionDataSource.crudAction.read) {\n modules.push({\n member: 'DataBinding',\n args: []\n });\n }\n if (this.constraints & DiagramConstraints.LineRouting) {\n modules.push({\n member: 'LineRouting',\n args: []\n });\n }\n if ((this.layout && (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree')) || (this.layout.arrangement === 'Linear' || (this.layout.enableRouting))) {\n modules.push({\n member: 'LineDistribution',\n args: []\n });\n }\n return modules;\n };\n /* tslint:enable */\n Diagram.prototype.removeUserHandlesTemplate = function () {\n if (this.selectedItems.userHandles.length) {\n for (var i = 0; i < this.selectedItems.userHandles.length; i++) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(this.selectedItems.userHandles[parseInt(i.toString(), 10)].name + '_template_hiddenUserHandle', elementId);\n }\n }\n }\n };\n /**\n *Destroys the diagram, freeing up its resources.\n *\n * @returns {void} Destroys the diagram, freeing up its resources.\n */\n Diagram.prototype.destroy = function () {\n clearInterval(this.renderTimer);\n this.renderTimer = null;\n if (this.hRuler && this.vRuler) {\n this.hRuler.destroy();\n this.vRuler.destroy();\n }\n this.tooltipObject.destroy();\n this.droppable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n this.removeUserHandlesTemplate();\n this.clearTemplate();\n if (document.getElementById(this.element.id)) {\n this.element.classList.remove('e-diagram');\n var tooltipelement = document.getElementsByClassName('e-diagram-tooltip');\n while (tooltipelement.length > 0) {\n tooltipelement[0].parentNode.removeChild(tooltipelement[0]);\n }\n var content = document.getElementById(this.element.id + 'content');\n if (content) {\n this.element.removeChild(content);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureWindowElement].parentNode.removeChild(window[\"\" + measureWindowElement]);\n window[\"\" + measureWindowElement] = null;\n }\n }\n }\n var domTable = 'domTable';\n window[\"\" + domTable] = {};\n for (var i = 0; i < this.layers.length; i++) {\n var currentLayer = this.layers[parseInt(i.toString(), 10)];\n currentLayer.zIndexTable = {};\n }\n this.diagramActions = undefined;\n };\n //Wires the mouse events with diagram control\n Diagram.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n EventHandler.add(this.diagramCanvas, startEvent, this.eventHandler.mouseDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove, this.eventHandler);\n EventHandler.add(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keydown', this.eventHandler.keyDown, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'keyup', this.eventHandler.keyUp, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick, this.eventHandler);\n EventHandler.add(this.diagramCanvas, 'scroll', this.eventHandler.scrolled, this.eventHandler);\n EventHandler.add(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel, this.eventHandler);\n EventHandler.add(window, 'resize', this.eventHandler.windowResize, this.eventHandler);\n this.initDroppables();\n };\n //Unwires the mouse events from diagram control\n Diagram.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var isIE11Pointer = Browser.isPointer;\n var wheelEvent = Browser.info.name === 'mozilla' ?\n (isIE11Pointer ? 'mousewheel' : 'DOMMouseScroll') : 'mousewheel';\n var stopEvent = Browser.touchEndEvent;\n EventHandler.remove(this.diagramCanvas, startEvent, this.eventHandler.mouseDown);\n EventHandler.remove(this.diagramCanvas, moveEvent, this.eventHandler.mouseMove);\n EventHandler.remove(this.diagramCanvas, stopEvent, this.eventHandler.mouseUp);\n EventHandler.remove(this.diagramCanvas, cancelEvent, this.eventHandler.mouseLeave);\n EventHandler.remove(this.diagramCanvas, 'keydown', this.eventHandler.keyDown);\n EventHandler.remove(this.diagramCanvas, 'keyup', this.eventHandler.keyUp);\n EventHandler.remove(this.diagramCanvas, 'dblclick', this.eventHandler.doubleClick);\n EventHandler.remove(this.diagramCanvas, 'scroll', this.eventHandler.scrolled);\n EventHandler.remove(this.diagramCanvas, wheelEvent, this.eventHandler.mouseWheel);\n EventHandler.remove(window, 'resize', this.eventHandler.windowResize);\n };\n //public methods - start region\n /**\n * Select a specified collection of nodes and connectors in the diagram. You can specify whether to clear the existing selection and provide an old value if needed. \\\n *\n * @returns { void } Select a specified collection of nodes and connectors in the diagram. You can specify whether to clear the existing selection and provide an old value if needed.\\\n * @param {NodeModel | ConnectorModel} objects - An array containing the collection of nodes and connectors to be selected.\n * @param {boolean} multipleSelection - Determines whether the existing selection should be cleared (default is false).\n * @param {NodeModel | ConnectorModel} oldValue - Defines the old value\n *\n */\n Diagram.prototype.select = function (objects, multipleSelection, oldValue) {\n //Removed isBlazor code.\n if (objects != null) {\n this.commandHandler.selectObjects(objects, multipleSelection, oldValue);\n }\n };\n /**\n * Returns the diagram action as a string representation.\n * @returns { string }\n * @param { DiagramAction } diagramAction - The diagram action to be converted to a string.\n */\n //Feature (EJ2-18451) : For all client side events, cause argument data type should be string instead of flag enum and value should be easier to understand.\n Diagram.prototype.getDiagramAction = function (diagramAction) {\n var action;\n if (diagramAction === 2 && DiagramAction.Render) {\n action = 'Render';\n }\n else if (diagramAction & DiagramAction.UndoRedo) {\n action = 'UndoRedo';\n }\n else if (diagramAction & DiagramAction.PublicMethod) {\n action = 'PublicMethod';\n }\n else if (diagramAction & DiagramAction.ToolAction) {\n action = 'ToolAction';\n }\n else if (diagramAction & DiagramAction.TextEdit) {\n action = 'TextEdit';\n }\n else if (diagramAction & DiagramAction.Group) {\n action = 'Group';\n }\n else if (diagramAction & DiagramAction.Interactions) {\n action = 'Interactions';\n }\n else if (diagramAction & DiagramAction.PreventHistory) {\n action = 'PreventHistory';\n }\n else if (diagramAction & DiagramAction.DecoratorPropertyChange) {\n action = 'DecoratorPropertyChange';\n }\n else if (diagramAction & DiagramAction.PreventZIndexOnDragging) {\n action = 'PreventZIndexOnDragging';\n }\n else if (diagramAction & DiagramAction.isGroupDragging) {\n action = 'isGroupDragging';\n }\n else if (diagramAction & DiagramAction.DragUsingMouse) {\n action = 'DragUsingMouse';\n }\n return action;\n };\n /**\n * Select all objects, including nodes and connectors, in the diagram. \\\n *\n * @returns { void } Select all objects, including nodes and connectors, in the diagram.\\\n *\n */\n Diagram.prototype.selectAll = function () {\n var selectedItems = [];\n selectedItems = this.getObjectsOfLayer(this.activeLayer.objects);\n this.select(selectedItems);\n };\n /**\n * Remove a specific object from the current selection in the diagram. \\\n *\n * @returns { void } Remove a specific object from the current selection in the diagram.\\\n * @param {NodeModel | ConnectorModel} obj - The object to remove from the selection.\n *\n */\n Diagram.prototype.unSelect = function (obj) {\n //Removed isBlazor code.\n if (obj && isSelected(this, obj)) {\n this.commandHandler.unSelect(obj);\n // this.commandHandler.updateBlazorSelector();\n }\n };\n /**\n * Removes all elements from the selection list, clearing the current selection.\\\n *\n * @returns { void } Removes all elements from the selection list, clearing the current selection.\\\n *\n */\n Diagram.prototype.clearSelection = function () {\n this.commandHandler.clearSelection(true);\n };\n /**\n * Updates the dimensions of the diagram viewport. \\\n *\n * @returns { void } Updates the dimensions of the diagram viewport.\\\n *\n */\n Diagram.prototype.updateViewPort = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.eventHandler.updateViewPortSize(this.element);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.cutCommand = function () {\n this.cut();\n };\n /**\n * Removes the selected nodes and connectors from the diagram and moves them to the diagram clipboard for cutting. \\\n *\n * @returns { void } Removes the selected nodes and connectors from the diagram and moves them to the diagram clipboard for cutting. \\\n *\n */\n Diagram.prototype.cut = function () {\n this.commandHandler.cut();\n };\n /**\n * Adds a process into the sub-process. \\\n *\n * @returns { void } Adds a process into the sub-process. \\\n * @param {NodeModel | ConnectorModel} process - A NodeModel representing the process to be added.\n * @param {boolean} parentId - A string representing the parent ID where the process will be added.\n *\n */\n Diagram.prototype.addProcess = function (process, parentId) {\n if (this.bpmnModule) {\n this.bpmnModule.addProcess(process, parentId, this);\n }\n };\n /**\n * Removes a process from the BPMN sub-process. \\\n *\n * @returns { void } Removes a process from the BPMN sub-process.\\\n * @param {string} id - The ID of the process to be removed.\n *\n */\n Diagram.prototype.removeProcess = function (id) {\n if (this.bpmnModule) {\n this.bpmnModule.removeProcess(id, this);\n }\n };\n Diagram.prototype.pasteCommand = function () {\n this.paste();\n };\n /**\n * Adds the given objects or the objects in the diagram clipboard to the diagram control. \\\n *\n * @returns { void } Adds the given objects or the objects in the diagram clipboard to the diagram control. \\\n * @param {NodeModel[] | ConnectorModel[]} obj - An array of nodes or connectors objects to be added to diagram.\n\n *\n */\n Diagram.prototype.paste = function (obj) {\n this.commandHandler.paste(obj);\n };\n /**\n * Fits the diagram to the page with respect to mode and region. \\\n *\n * @returns { void } Fits the diagram to the page with respect to mode and region.\\\n * @param {IFitOptions} options - specify the options for fitting the diagram to the page.\n */\n Diagram.prototype.fitToPage = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.fitToPage(options);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Brings the specified bounds into view within the diagram's viewport. \\\n *\n * @returns { void } Brings the specified bounds into view within the diagram's viewport.\\\n * @param {Rect} bound - Representing the bounds to be brought into view.\n *\n */\n Diagram.prototype.bringIntoView = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n // EJ2-69238 - add true as an extra parameter to calcuate the horizontal and vertical offset\n this.scroller.bringIntoView(bound, true);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Brings the specified bounds to the center of the viewport. \\\n *\n * @returns { void } Brings the specified bounds to the center of the viewport.\\\n * @param {Rect} bound - representing the bounds to be centered in the viewport.\n *\n */\n Diagram.prototype.bringToCenter = function (bound) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.bringToCenter(bound);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n Diagram.prototype.copyCommand = function () {\n this.copy();\n };\n /**\n * Copies the selected nodes and connectors from the diagram to the diagram clipboard for copying. \\\n *\n * @returns { Object } Copies the selected nodes and connectors from the diagram to the diagram clipboard for copying.\\\n *\n */\n Diagram.prototype.copy = function () {\n var obj = this.commandHandler.copy();\n return obj;\n };\n /**\n * Groups the selected nodes and connectors in the diagram. \\\n *\n * @returns { void } Groups the selected nodes and connectors in the diagram.\\\n *\n */\n Diagram.prototype.group = function () {\n var selectedItems = [];\n selectedItems = this.selectedItems.nodes;\n selectedItems = selectedItems.concat(this.selectedItems.connectors);\n if (selectedItems.length > 1) {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.group();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * UnGroup the selected nodes and connectors in diagram \\\n *\n * @returns { void } UnGroup the selected nodes and connectors in diagram.\\\n *\n */\n Diagram.prototype.unGroup = function () {\n this.callBlazorModel = false;\n this.insertBlazorDiagramObjects(this.selectedItems);\n this.commandHandler.unGroup();\n this.callBlazorModel = true;\n this.commandHandler.getBlazorOldValues();\n };\n /**\n * Use this method to move the currently selected nodes or connectors to the back of the drawing order. This effectively places them behind other elements in the diagram. \\\n *\n * @returns { void } Use this method to move the currently selected nodes or connectors to the back of the drawing order. This effectively places them behind other elements in the diagram.\\\n *\n */\n Diagram.prototype.sendToBack = function () {\n this.commandHandler.sendToBack();\n };\n /**\n * Specify which layer in the diagram should be considered the active layer. The active layer is the one where new elements will be added and where user interactions are primarily focused. \\\n *\n * @returns { void } Specify which layer in the diagram should be considered the active layer. The active layer is the one where new elements will be added and where user interactions are primarily focused. \\\n * @param {string} layerName - The name of the layer to set as the active layer.\n *\n */\n Diagram.prototype.setActiveLayer = function (layerName) {\n var layer = this.commandHandler.getLayer(layerName);\n this.activeLayer = layer;\n };\n /**\n * add the layer into diagram\\\n *\n * @returns { void } Adds the specified layer to the diagram control along with its associated objects.\\\n * @param {LayerModel} layer - representing the layer to be added to the diagram.\n * @param {Object[]} layerObject - An optional array of objects associated with the layer.\n * @blazorArgsType layer|DiagramLayer\n\n *\n */\n Diagram.prototype.addLayer = function (layer, layerObject) {\n this.commandHandler.addLayer(layer, layerObject);\n };\n /**\n * remove the layer from diagram \\\n *\n * @returns { void } remove the layer from diagram.\\\n * @param {string} layerId - provide the bound value.\n\n *\n */\n Diagram.prototype.removeLayer = function (layerId) {\n this.commandHandler.removeLayer(layerId, isBlazor());\n };\n // /* eslint-enable */\n /**\n *Moves objects from one layer to another layer within the diagram. \\\n *\n * @returns { void } Moves objects from one layer to another layer within the diagram. \\\n * @param {string[]} objects - An array of object IDs represented as strings to be moved.\n * @param {string} targetLayer - The ID of the target layer to which the objects should be moved.\n */\n Diagram.prototype.moveObjects = function (objects, targetLayer) {\n var oldValues = cloneObject(this.layers);\n this.enableServerDataBinding(false);\n this.commandHandler.moveObjects(objects, targetLayer);\n // const result: object = this.commandHandler.deepDiffer.map(oldValues, cloneObject(this.layers));\n // const diffValue: object = this.commandHandler.deepDiffer.frameObject({}, result);\n // this.oldDiagramObject = { layers: diffValue };\n // // this.commandHandler.updateBlazorProperties();\n };\n /* tslint:disable */\n Diagram.prototype.layerObjectUpdate = function () {\n //Removed isBlazor code.\n };\n /* tslint:enable */\n /**\n * Use this method to change the order of layers in the diagram. This moves the specified layer behind the layer that comes after it in the layer order. \\\n *\n * @returns { void } Use this method to change the order of layers in the diagram. This moves the specified layer behind the layer that comes after it in the layer order.\\\n * @param {string} layerName - The name of the layer to be moved.\n * @param {string} targetLayer - define the objects id of string array\n *\n */\n Diagram.prototype.sendLayerBackward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.sendLayerBackward(layerName);\n // comment blazor code\n // this.commandHandler.updateLayerObject(this.oldDiagramObject, true);\n };\n /**\n * Moves the specified layer forward in the drawing order. \\\n *\n * @returns { void } Moves the specified layer forward in the drawing order.\\\n * @param {string} layerName - A string representing the name of the layer to be moved forward.\n *\n */\n Diagram.prototype.bringLayerForward = function (layerName) {\n this.layerObjectUpdate();\n this.commandHandler.bringLayerForward(layerName);\n // comment blazor code\n // this.commandHandler.updateLayerObject(this.oldDiagramObject);\n };\n /**\n * Clones a layer along with its objects.\\\n *\n * @returns { void } Clones a layer along with its objects.\\\n * @param {string} layerName - A string representing the name of the layer to be cloned.\n *\n */\n Diagram.prototype.cloneLayer = function (layerName) {\n this.commandHandler.cloneLayer(layerName);\n };\n /**\n *Brings the selected nodes or connectors to the front of the drawing order. \\\n *\n * @returns { void } Brings the selected nodes or connectors to the front of the drawing order. \\\n *\n */\n Diagram.prototype.bringToFront = function () {\n this.commandHandler.bringToFront();\n };\n /**\n *Sends the selected nodes or connectors forward in the visual order. \\\n *\n * @returns { void } Sends the selected nodes or connectors forward in the visual order. \\\n *\n */\n Diagram.prototype.moveForward = function () {\n this.commandHandler.sendForward();\n };\n /**\n *Sends the selected nodes or connectors one step backward in the z-order.\\\n *\n * @returns { void } Sends the selected nodes or connectors one step backward in the z-order.\\\n *\n */\n Diagram.prototype.sendBackward = function () {\n this.commandHandler.sendBackward();\n };\n /**\n *gets the node or connector having the given name \\\n *\n * @returns { void } gets the node or connector having the given name.\\\n * @param {string} name - define the name of the layer\n *\n */\n Diagram.prototype.getObject = function (name) {\n return this.nameTable[\"\" + name];\n };\n /**\n *Retrieves the node object for the given node ID. \\\n *\n * @returns { void } Retrieves the node object for the given node ID. \\\n * @param {string} id - The ID of the node for which the node object is to be retrieved.\n *\n */\n Diagram.prototype.getNodeObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n *Retrieves the connector object for the given node ID. \\\n *\n * @returns { void } Retrieves the connector object for the given node ID.\\\n * @param {string} id - The ID of the node for which the connector object is to be retrieved.\n *\n */\n Diagram.prototype.getConnectorObject = function (id) {\n return cloneObject(this.nameTable[\"\" + id]);\n };\n /**\n * Retrieves the active layer. \\\n *\n * @returns { void } Retrieves the active layer.\\\n *\n */\n Diagram.prototype.getActiveLayer = function () {\n return this.activeLayer;\n };\n Diagram.prototype.nudgeCommand = function (direction, x, y) {\n if (typeof direction !== 'object' && (this.selectedItems.nodes.length || this.selectedItems.connectors.length) > 0) {\n var type = void 0;\n if (x.type && x.type === 'KEYDOWN') {\n type = x.type;\n }\n this.nudge(direction, undefined, undefined, type);\n }\n };\n /**\n * Moves the selected objects towards the given direction by a specified distance.\n *\n * @returns { void } Moves the selected objects towards the given direction by a specified distance. \\\n * @param {NudgeDirection} direction - Defines the direction in which the objects should be moved.\n * @param {number} x - The horizontal distance by which the selected objects should be moved.\n * @param {number} y - The vertical distance by which the selected objects should be moved.\n * @param {string} type - A string that defines the type of nudge action.\n */\n Diagram.prototype.nudge = function (direction, x, y, type) {\n var tx = 0;\n var ty = 0;\n var negativeDirection;\n if (direction === 'Left' || direction === 'Right') {\n negativeDirection = (direction === 'Left');\n tx = (negativeDirection ? -1 : 1) * (x ? x : 1);\n }\n else {\n negativeDirection = (direction === 'Up');\n ty = (negativeDirection ? -1 : 1) * (y ? y : 1);\n }\n if (type === 'KEYDOWN') {\n tx *= 5;\n ty *= 5;\n }\n var obj = this.selectedItems;\n var annotation = this.selectedItems.wrapper.children[0];\n if (annotation instanceof TextElement) {\n this.commandHandler.labelDrag(obj.nodes[0], annotation, tx, ty);\n }\n else {\n var undoObject = cloneObject(this.selectedItems);\n this.protectPropertyChange(true);\n this.drag(obj, tx, ty);\n this.protectPropertyChange(false);\n var entry = {\n type: 'PositionChanged',\n redoObject: cloneObject(this.selectedItems), undoObject: undoObject, category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.refreshCanvasLayers();\n };\n Diagram.prototype.insertBlazorDiagramObjects = function (actualObject) {\n //Removed isBlazor code\n };\n /**\n * Drags the given object (nodes, connectors, or selector) by the specified horizontal and vertical distances.\n *\n * @returns { void } Drags the given object (nodes, connectors, or selector) by the specified horizontal and vertical distances.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - representing the nodes, connectors, or selector to be dragged.\n * @param {number} tx - A number representing the horizontal distance by which the given objects should be moved.\n * @param {number} ty - A number representing the vertical distance by which the given objects should be moved.\n */\n Diagram.prototype.drag = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n //Removed isBlazor code\n if (this.bpmnModule && (obj instanceof Node)) {\n var updated = this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n if (updated) {\n return;\n }\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = true;\n if (obj.nodes && obj.nodes.length) {\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n this.callBlazorModel = false;\n this.drag(node, tx, ty);\n if (node.parentId) {\n var parent_1 = this.nameTable[node.parentId];\n if (parent_1.isLane) {\n var swimlane = this.nameTable[parent_1.parentId];\n updateLaneBoundsAfterAddChild(parent_1, swimlane, node, this);\n }\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.drag(conn, tx, ty);\n if (this.selectionConnectorsList.indexOf(conn) === -1) {\n this.selectionConnectorsList.push(conn);\n }\n }\n this.callBlazorModel = true;\n }\n this.updateSelector();\n if ((this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updatePage();\n }\n }\n else {\n if (obj instanceof Node) {\n if (this.bpmnModule) {\n this.bpmnModule.updateAnnotationDrag(obj, this, tx, ty);\n }\n }\n this.commandHandler.drag(obj, tx, ty);\n }\n if (obj instanceof Selector) {\n this.preventConnectorsUpdate = false;\n for (var _d = 0, _e = this.selectionConnectorsList; _d < _e.length; _d++) {\n var connectors = _e[_d];\n this.updateConnectorProperties(this.nameTable[connectors.id]);\n if (connectors.shape.type === 'Bpmn' && connectors.shape.sequence === 'Default' && connectors.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connectors);\n }\n }\n this.selectionConnectorsList = [];\n }\n // Bug 832880: Need to improve performance while nudging multiple nodes.\n // Removed one if condition here to improve performance.\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n Diagram.prototype.disableStackContainerPadding = function (wrapper, disable) {\n if (wrapper instanceof StackPanel) {\n wrapper.considerPadding = disable;\n }\n if (wrapper.children) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.disableStackContainerPadding(child, false);\n }\n }\n };\n /**\n * Use this method to scale one or more objects in the diagram by specifying the horizontal and vertical scaling ratios. You can also provide a pivot point as a reference for scaling.\n *\n * @returns { void } Use this method to scale one or more objects in the diagram by specifying the horizontal and vertical scaling ratios. You can also provide a pivot point as a reference for scaling.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - The objects to be resized.\n * @param {number} sx - The horizontal scaling ratio.\n * @param {number} sy - The vertical scaling ratio.\n * @param {PointModel} pivot - The reference point with respect to which the objects will be resized.\n */\n Diagram.prototype.scale = function (obj, sx, sy, pivot) {\n this.disableStackContainerPadding(obj.wrapper, false);\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints = true;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj instanceof Selector) {\n if (obj.nodes && obj.nodes.length) {\n this.callBlazorModel = false;\n for (var _i = 0, _a = obj.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n checkBoundaryConstraints = this.commandHandler.scale(node, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(node, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n if (obj.connectors && obj.connectors.length) {\n this.callBlazorModel = false;\n for (var _b = 0, _c = obj.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n this.commandHandler.scale(conn, sx, sy, pivot, obj);\n if (!this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds)) {\n this.commandHandler.scale(conn, 1 / sx, 1 / sy, pivot, obj);\n }\n }\n this.callBlazorModel = true;\n }\n var selector = this.selectedItems;\n if (!(selectionHasConnector(this, selector))) {\n this.updateSelector();\n }\n this.refreshCanvasLayers();\n }\n else {\n this.commandHandler.scale(obj, sx, sy, pivot, (obj.children ? obj : undefined));\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction)) &&\n (!(this.blazorActions & BlazorAction.GroupClipboardInProcess))) {\n this.commandHandler.getBlazorOldValues();\n }\n this.disableStackContainerPadding(obj.wrapper, true);\n return checkBoundaryConstraints;\n };\n /**\n * Rotates the specified nodes, connectors, or selector by the given angle.\n *\n * @returns { void } Rotates the specified nodes, connectors, or selector by the given angle.\\\n * @param {NodeModel | ConnectorModel | SelectorModel} obj - The objects to be rotated\n * @param {number} angle - The angle by which the objects should be rotated (in degrees).\n * @param {PointModel} pivot - The reference point with respect to which the objects will be rotated.\n * @param {boolean} rotateUsingHandle - Whether to rotate using the handle.\n */\n Diagram.prototype.rotate = function (obj, angle, pivot, rotateUsingHandle) {\n // Bug 842506: After multiple group node rotations, the undo functionality is not working.\n // Added below condition to store the current obj to add it as undo element in rotation changed entry.\n var undoObject;\n var childTable = [];\n if (!rotateUsingHandle) {\n undoObject = cloneObject(obj);\n if (undoObject.nodes && undoObject.nodes.length > 0 && undoObject.nodes[0].children) {\n var elements = [];\n if (!this.fromUndo) {\n this.rotateUsingButton = true;\n }\n var nodes = this.commandHandler.getAllDescendants(undoObject.nodes[0], elements);\n for (var i = 0; i < nodes.length; i++) {\n var node = this.commandHandler.cloneChild(nodes[parseInt(i.toString(), 10)].id);\n childTable[nodes[parseInt(i.toString(), 10)].id] = cloneObject(node);\n }\n }\n if (angle < 0) {\n angle = (angle + 360) % 360;\n }\n }\n this.insertBlazorDiagramObjects(obj);\n var checkBoundaryConstraints;\n if (obj.id) {\n obj = this.nameTable[obj.id] || obj;\n }\n if (obj) {\n pivot = pivot || { x: obj.wrapper.offsetX, y: obj.wrapper.offsetY };\n if (obj instanceof Selector) {\n this.callBlazorModel = false;\n obj.rotateAngle += angle;\n obj.wrapper.rotateAngle += angle;\n var bounds = getBounds(obj.wrapper);\n checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bounds);\n if (!checkBoundaryConstraints) {\n obj.rotateAngle -= angle;\n obj.wrapper.rotateAngle -= angle;\n return checkBoundaryConstraints;\n }\n var objects = [];\n objects = objects.concat(obj.nodes);\n objects = objects.concat(obj.connectors);\n this.commandHandler.rotateObjects(obj, objects, angle, pivot);\n this.callBlazorModel = true;\n }\n else {\n this.commandHandler.rotateObjects(obj, [obj], angle, pivot);\n }\n }\n if (this.callBlazorModel && (!(this.blazorActions & BlazorAction.interaction))) {\n this.commandHandler.getBlazorOldValues();\n }\n if (!rotateUsingHandle && !this.fromUndo) {\n // To add history entry for group node rotation.\n if (undoObject.nodes && undoObject.nodes.length > 0 && undoObject.nodes[0].children) {\n var entry = {\n type: 'RotationChanged', redoObject: cloneObject(obj), undoObject: cloneObject(undoObject), category: 'Internal',\n childTable: childTable\n };\n this.commandHandler.addHistoryEntry(entry);\n this.commandHandler.updateSelector();\n }\n }\n return checkBoundaryConstraints;\n };\n /**\n * Moves the source point of the given connector by the specified horizontal and vertical distances.\n *\n * @returns { void } Moves the source point of the given connector by the specified horizontal and vertical distances.\\\n * @param {ConnectorModel} obj - representing the connector whose source point needs to be moved.\n * @param {number} tx - A number representing the horizontal distance by which the source point should be moved.\n * @param {number} ty - A number representing the vertical distance by which the source point should be moved.\n */\n Diagram.prototype.dragSourceEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragSourceEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Moves the target point of the given connector by the specified horizontal and vertical distances.\n *\n * @returns { void } Moves the target point of the given connector by the specified horizontal and vertical distances.\\\n * @param {ConnectorModel} obj - representing the connector whose target point needs to be moved.\n * @param {number} tx - A number representing the horizontal distance by which the target point should be moved.\n * @param {number} ty - A number representing the vertical distance by which the target point should be moved.\n */\n Diagram.prototype.dragTargetEnd = function (obj, tx, ty) {\n this.insertBlazorDiagramObjects(obj);\n this.commandHandler.dragTargetEnd(obj, tx, ty);\n if (this.callBlazorModel) {\n this.commandHandler.getBlazorOldValues();\n }\n };\n /**\n * Finds all the objects that are under the given mouse position based on specified criteria.\n *\n * @returns { void } Finds all the objects that are under the given mouse position based on specified criteria.\\\n * @param {PointModel} position - The PointModel that defines the position. The objects under this position will be found.\n * @param {IElement} source - Representing the source object. The objects under this source will be found.\n */\n Diagram.prototype.findObjectsUnderMouse = function (position, source) {\n return this.eventHandler.findObjectsUnderMouse(position, source);\n };\n /**\n * Finds the object that is under the given mouse position based on specified criteria.\n *\n * @returns { void } Finds the object that is under the given mouse position based on specified criteria. \\\n * @param {NodeModel[] | ConnectorModel[]}objects - A collection of NodeModel or ConnectorModel objects, from which the target object has to be found.\n * @param {Actions} action - Defines the action used to find the relevant object.\n * @param {boolean} inAction - A boolean indicating the active state of the action.\n */\n Diagram.prototype.findObjectUnderMouse = function (objects, action, inAction) {\n return this.eventHandler.findObjectUnderMouse(objects, action, inAction);\n };\n /**\n * Finds the object that is under the given active object (source) based on specified criteria.\n *\n * @returns { void } Finds the object that is under the given active object (source) based on specified criteria.\\\n * @param {NodeModel[] | ConnectorModel[]} objects - A collection of node or connector objects, from which the target object has to be found.\n * @param {Actions} action - defines the action used to find the relevant object.\n * @param {boolean} inAction - A boolean indicating the active state of the action.\n * @param {PointModel} position - The PointModel that defines the position\n * @param {IElement} source - Representing the source element.\n */\n Diagram.prototype.findTargetObjectUnderMouse = function (objects, action, inAction, position, source) {\n return this.eventHandler.findTargetUnderMouse(objects, action, inAction, position, source);\n };\n /**\n * Finds the child element of the given object at the given position based on specified criteria.\n *\n * @returns { void } Finds the child element of the given object at the given position based on specified criteria.\\\n * @param {IElement} obj - representing the object, the child element of which has to be found.\n * @param {PointModel} position - defines the position. The child element under this position will be found.\n * @param {Diagram} diagram - defines the diagram value.\n * @param {number} padding - A number representing the padding for the search area around the position.\n */\n Diagram.prototype.findElementUnderMouse = function (obj, position, diagram, padding) {\n return this.eventHandler.findElementUnderMouse(obj, position, diagram, padding);\n };\n /**\n * Defines the action to be done, when the mouse hovers the given element of the given object\n *\n * @returns { void } Defines the action to be done, when the mouse hovers the given element of the given object .\\\n * @param {NodeModel | ConnectorModel} obj - Defines the object under mouse\n * @param {DiagramElement} wrapper - Defines the target element of the object under mouse\n * @param {PointModel} position - Defines the current mouse position\n * @param { NodeModel | PointPortModel | ShapeAnnotationModel | PathAnnotationModel} target - Defines the target\n * @private\n */\n Diagram.prototype.findActionToBeDone = function (obj, wrapper, position, target) {\n return this.eventHandler.findActionToBeDone(obj, wrapper, position, target);\n };\n // Feature 826644: Support to add ports to the connector. Added below method to update connector port on property change.\n Diagram.prototype.updateConnectorPort = function (connector) {\n if (connector.ports.length) {\n var portContent = void 0;\n for (var _i = 0, _a = connector.ports; _i < _a.length; _i++) {\n var port = _a[_i];\n portContent = this.getWrapper(connector.wrapper, port.id);\n connector.initPortWrapper(port, connector.intermediatePoints, connector.wrapper.bounds, portContent);\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n /**\n * Returns the tool that handles the given action.\n *\n * @returns { ToolBase } Returns the tool that handles the given action. \\\n * @param {string} action - A string that defines the action that is going to be performed.\n */\n Diagram.prototype.getTool = function (action) {\n var tool;\n var getCustomTool = getFunction(this.getCustomTool);\n if (getCustomTool) {\n tool = getCustomTool(action);\n if (tool) {\n return tool;\n }\n }\n return this.eventHandler.getTool(action);\n };\n /**\n * Defines the cursor that corresponds to the given action.\n *\n * @returns { string } Defines the cursor that corresponds to the given action. \\\n * @param {string} action - The action for which the cursor is defined.\n * @param {boolean} active - Indicates whether the action is active.\n */\n Diagram.prototype.getCursor = function (action, active) {\n var cursor;\n var getCustomCursor = getFunction(this.getCustomCursor);\n if (getCustomCursor) {\n cursor = getCustomCursor(action, active);\n if (cursor) {\n return cursor;\n }\n }\n if (this.customCursor.length) {\n for (var i = 0; i < this.customCursor.length; i++) {\n if (this.customCursor[parseInt(i.toString(), 10)].action === action) {\n return this.customCursor[parseInt(i.toString(), 10)].cursor;\n }\n }\n }\n return this.eventHandler.getCursor(action);\n };\n /**\n * Initializes the undo redo actions\n *\n * @returns { void } Initializes the undo redo actions \\\n * @private\n */\n Diagram.prototype.initHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.initHistory(this);\n }\n };\n /**\n * Adds a history entry for a change in the diagram control to the track.\n *\n * @returns { void } Adds a history entry for a change in the diagram control to the track. \\\n * @param {HistoryEntry} entry - The history entry that describes a change in the diagram.\n * @param {string[]} sourceId - An optional array of source IDs associated with the change.\n */\n Diagram.prototype.addHistoryEntry = function (entry, sourceId) {\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)\n && (!this.currentSymbol || this.checkCurrentSymbol(this.currentSymbol, entry))) {\n if (entry.undoObject && entry.undoObject.id === 'helper') {\n return;\n }\n var added = this.undoRedoModule.addHistoryEntry(entry, this);\n if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup' && added) {\n this.historyChangeTrigger(entry, 'CustomAction', sourceId);\n }\n }\n };\n Diagram.prototype.checkCurrentSymbol = function (currentSymbol, entry) {\n var check = false;\n if (entry.undoObject && entry.redoObject) {\n var undoObjects = entry.undoObject;\n var redoObject = entry.undoObject;\n if (redoObject.id && undoObjects.id && redoObject.id !== currentSymbol.id && undoObjects.id !== currentSymbol.id) {\n return check = true;\n }\n else {\n return check;\n }\n }\n return check;\n };\n /**\n * Adds the given custom change in the diagram control to the track\n *\n * @returns { void } Adds the given custom change in the diagram control to the track \\\n * @param {HistoryEntry} entry - Defines the entry/information about a change in diagram\n */\n Diagram.prototype.addCustomHistoryEntry = function (entry) {\n //Removed isBlazor code\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.historyChangeTrigger = function (entry, action, sourceId) {\n var change = {};\n /* eslint-enable */\n var oldValue = 'oldValue';\n var newValue = 'newValue';\n var type = 'type';\n var entryType = 'entryType';\n var source = [];\n if (entry.category === 'Internal') {\n if (entry && entry.redoObject && ((entry.redoObject.nodes) instanceof Array) &&\n ((entry.redoObject.connectors) instanceof Array)) {\n source = entry.redoObject.nodes.concat(entry.redoObject.connectors);\n }\n else {\n if (entry.redoObject) {\n source.push(entry.redoObject);\n }\n }\n change[\"\" + type] = entry.type;\n //Removed isBlazor code\n switch (entry.type) {\n case 'PositionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n case 'RotationChanged':\n change[\"\" + oldValue] = { rotateAngle: entry.undoObject.rotateAngle };\n change[\"\" + newValue] = { rotateAngle: entry.redoObject.rotateAngle };\n break;\n case 'SizeChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX, offsetY: entry.undoObject.offsetY,\n width: entry.undoObject.width, height: entry.undoObject.height\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX, offsetY: entry.redoObject.offsetY,\n width: entry.redoObject.width, height: entry.redoObject.height\n };\n break;\n case 'CollectionChanged':\n change[entry.changeType] = source;\n break;\n case 'ConnectionChanged':\n change[\"\" + oldValue] = {\n offsetX: entry.undoObject.offsetX,\n offsetY: entry.undoObject.offsetY\n };\n change[\"\" + newValue] = {\n offsetX: entry.redoObject.offsetX,\n offsetY: entry.redoObject.offsetY\n };\n break;\n }\n /**Feature(EJ2-60228): Need to add Object ID in the history change event argument*/\n var nodeSourceId = [];\n var connectorSourceId = [];\n if (sourceId === undefined && entry.type === 'PropertyChanged') {\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'nodes') {\n for (var _i = 0, _a = Object.keys(entry.undoObject.nodes); _i < _a.length; _i++) {\n var key = _a[_i];\n var undoIndex = parseInt(key, 10);\n nodeSourceId.push(this.nodes[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n for (var i = 0; i < Object.keys(entry.undoObject).length; i++) {\n if (Object.keys(entry.undoObject)[parseInt(i.toString(), 10)] === 'connectors') {\n for (var _b = 0, _c = Object.keys(entry.undoObject.connectors); _b < _c.length; _b++) {\n var key = _c[_b];\n var undoIndex = parseInt(key, 10);\n connectorSourceId.push(this.connectors[parseInt(undoIndex.toString(), 10)].id);\n }\n }\n }\n sourceId = nodeSourceId.concat(connectorSourceId);\n }\n var arg = {\n cause: entry.category, source: cloneBlazorObject(source), change: cloneBlazorObject(change),\n action: action, sourceId: sourceId\n };\n //Removed isBlazor code\n if (source.length) {\n this.triggerEvent(DiagramEvent.historyChange, arg);\n }\n }\n };\n /**\n * Use this method to start a group action, allowing multiple actions to be treated as a single unit during undo/redo operations. This is useful when you want to group related actions together.\n *\n * @returns { void } Use this method to start a group action, allowing multiple actions to be treated as a single unit during undo/redo operations. This is useful when you want to group related actions together. \\\n */\n Diagram.prototype.startGroupAction = function () {\n var entry = { type: 'StartGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Closes the grouping of actions that will be undone/restored as a whole.\n *\n * @returns { void } Closes the grouping of actions that will be undone/restored as a whole.\\\n */\n Diagram.prototype.endGroupAction = function () {\n var entry = { type: 'EndGroup', category: 'Internal' };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n };\n /**\n * Restores the last action that was performed.\n *\n * @returns { void } Restores the last action that was performed. \\\n */\n Diagram.prototype.undo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.undo(this);\n }\n else if (this.constraints & DiagramConstraints.UndoRedo) {\n console.warn('[WARNING] :: Module \"UndoRedo\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Reverse an undo action, essentially restoring the state of the component to a previous state after an undo operation has been performed.\n *\n * @returns { void } Reverse an undo action, essentially restoring the state of the component to a previous state after an undo operation has been performed.\\\n */\n Diagram.prototype.redo = function () {\n this.canEnableBlazorObject = true;\n this.callBlazorModel = false;\n if (this.undoRedoModule && (this.constraints & DiagramConstraints.UndoRedo)) {\n this.undoRedoModule.redo(this);\n }\n else if (this.constraints & DiagramConstraints.UndoRedo) {\n console.warn('[WARNING] :: Module \"UndoRedo\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n Diagram.prototype.getBlazorDiagramObjects = function (objects) {\n if (objects) {\n for (var j = 0; j < objects.length; j++) {\n this.insertBlazorDiagramObjects(objects[parseInt(j.toString(), 10)]);\n }\n }\n else {\n this.insertBlazorDiagramObjects(this.selectedItems);\n }\n this.callBlazorModel = false;\n this.canEnableBlazorObject = true;\n };\n /**\n * Aligns a group of objects with reference to the first object in the group.\n *\n * @returns { void } Aligns a group of objects with reference to the first object in the group.\\\n * @param {AlignmentOptions}option - Defining the factor by which the objects have to be aligned.\n * @param {NodeModel[] | ConnectorModel[]} objects - A collection of node or connector objects to be aligned.\n * @param {AlignmentMode} type - Defines the type to be aligned\n */\n Diagram.prototype.align = function (option, objects, type) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.align(objects, option, (type ? type : 'Object'));\n this.commandHandler.getBlazorOldValues();\n this.callBlazorModel = true;\n this.canEnableBlazorObject = false;\n };\n /**\n * Arranges a group of objects with equal intervals within the group.\n *\n * @returns { void } Arranges a group of objects with equal intervals within the group.\\\n * @param {NodeModel[] | ConnectorModel[]} option - Objects that have to be equally spaced within the group.\n * @param {DistributeOptions} objects - Object defining the factor to distribute the shapes.\n */\n Diagram.prototype.distribute = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.distribute(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n /**\n * Scales the specified objects to match the size of the first object in the group.\n *\n * @returns { void } Scales the specified objects to match the size of the first object in the group.\\\n * @param {SizingOptions} option - Specifies whether the objects should be horizontally scaled, vertically scaled, or both.\n * @param {NodeModel[] | ConnectorModel[]}objects - The collection of objects to be scaled.\n */\n Diagram.prototype.sameSize = function (option, objects) {\n this.getBlazorDiagramObjects(objects);\n if (!objects) {\n objects = [];\n objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n this.commandHandler.sameSize(objects, option);\n this.commandHandler.getBlazorOldValues();\n this.canEnableBlazorObject = false;\n this.callBlazorModel = true;\n };\n Diagram.prototype.updateBlazorDiagramProperties = function (attribute, canCall) {\n //Removed isBlazor code\n if (canCall) {\n // this.commandHandler.getDiagramOldValues(this.oldDiagramObject, attribute);\n }\n };\n Diagram.prototype.getZoomingAttribute = function () {\n var attribute = [];\n attribute.push('scrollSettings');\n attribute.push('snapSettings');\n return attribute;\n };\n /**\n * Scales the diagram control based on the provided zoom factor. You can optionally specify a focused point around which the diagram will be zoomed.\n *\n * @returns { void } Scales the diagram control based on the provided zoom factor. You can optionally specify a focused point around which the diagram will be zoomed.\\\n * @param {number} factor - Defines the factor by which the diagram is zoomed.\n * @param {PointModel} focusedPoint - Defines the point with respect to which the diagram will be zoomed.\n */\n Diagram.prototype.zoom = function (factor, focusedPoint) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(factor, 0, 0, focusedPoint);\n if (!(this.blazorActions & BlazorAction.interaction)) {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * Scales the diagram control based on the provided options, which include the desired zoom factor, focus point, and zoom type.\n *\n * @returns { void } Scales the diagram control based on the provided options, which include the desired zoom factor, focus point, and zoom type.\\\n * @param {ZoomOptions} options - An object specifying the zoom factor, focus point, and zoom type.\n *\n */\n Diagram.prototype.zoomTo = function (options) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n var factor = options.zoomFactor ? options.zoomFactor : 0.2;\n factor = options.type === 'ZoomOut' ? 1 / (1 + factor) : (1 + factor);\n this.scroller.zoom(factor, 0, 0, options.focusPoint);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Pans the diagram control to the given horizontal and vertical offsets.\n *\n * @returns { void } Pans the diagram control to the given horizontal and vertical offsets.\\\n * @param {number} horizontalOffset - The horizontal distance to which the diagram should be scrolled.\n * @param {number} verticalOffset - The vertical distance to which the diagram should be scrolled.\n * @param {PointModel} focusedPoint - representing the focused point during panning.\n * @param {boolean} isInteractiveZoomPan - A boolean indicating whether the panning is interactive zoom pan.\n */\n Diagram.prototype.pan = function (horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan) {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.setCursor('grabbing');\n this.scroller.zoom(1, horizontalOffset, verticalOffset, focusedPoint, isInteractiveZoomPan);\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the zoom and scroller offsets to their default values.\n *\n * @returns { void } Resets the zoom and scroller offsets to their default values.\\\n */\n Diagram.prototype.reset = function () {\n var attribute = this.getZoomingAttribute();\n this.updateBlazorDiagramProperties(attribute);\n this.scroller.zoom(1 / this.scroller.currentZoom, -this.scroller.horizontalOffset, -this.scroller.verticalOffset, { x: 0, y: 0 });\n this.updateBlazorDiagramProperties(attribute, true);\n };\n /**\n * Resets the segments of the connectors to their default state. This removes any custom segments and restores the connectors to their original configuration.\n *\n * @returns { void } Resets the segments of the connectors to their default state. This removes any custom segments and restores the connectors to their original configuration. \\\n */\n Diagram.prototype.resetSegments = function () {\n var previousConnectorObject = [];\n var updateConnectorObject = [];\n var changeConnectors = [];\n //Removed isBlazor code\n if (this.constraints & DiagramConstraints.LineRouting && this.lineRoutingModule) {\n this.lineRoutingModule.lineRouting(this);\n }\n else {\n this.protectPropertyChange(true);\n var connector = void 0;\n for (var i = 0; i < this.connectors.length; i++) {\n connector = this.connectors[parseInt(i.toString(), 10)];\n connector.segments = [];\n this.connectorPropertyChange(connector, {}, { segments: connector.segments });\n }\n this.protectPropertyChange(false);\n }\n //Removed isBlazor code\n };\n /**\n * setBlazorDiagramProps method\n *\n * @returns {void} setBlazorDiagramProps method .\\\n * @param {boolean} arg - provide the eventName value.\n * @private\n */\n Diagram.prototype.setBlazorDiagramProps = function (arg) {\n var attribute = this.getZoomingAttribute();\n if (arg) {\n this.updateBlazorDiagramProperties(attribute);\n }\n else {\n this.updateBlazorDiagramProperties(attribute, true);\n }\n };\n /**\n * getDirection method\n *\n * @returns { Promise } getDirection method .\\\n * @param {DiagramEvent} eventName - provide the eventName value.\n * @param {Object} args - provide the args value.\n * @private\n */\n Diagram.prototype.triggerEvent = function (eventName, args) {\n return __awaiter(this, void 0, void 0, function () {\n var eventArgs;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (args) {\n this.updateEventValue(args);\n }\n return [4 /*yield*/, this.trigger(DiagramEvent[\"\" + eventName], args)];\n case 1:\n eventArgs = _a.sent();\n //Removed isBlazor code.\n return [2 /*return*/, eventArgs];\n }\n });\n });\n };\n Diagram.prototype.updateEventValue = function (args) {\n var element = args.element;\n if (args.element && element instanceof Selector && (element.nodes.length + element.connectors.length === 1)) {\n args.element = (element.nodes.length === 1) ? element.nodes[0] : element.connectors[0];\n }\n };\n /**\n * Adds the specified node to a lane within a swimlane.\n *\n * @returns { void } Adds the specified node to a lane within a swimlane. \\\n * @param {NodeModel} node - representing the node to be added to the lane.\n * @param {string} swimLane - A string representing the ID of the swimlane containing the lane.\n * @param {string} lane - A string representing the ID of the lane where the node will be added.\n\n */\n Diagram.prototype.addNodeToLane = function (node, swimLane, lane) {\n if (this.nameTable[\"\" + swimLane]) {\n var swimlaneNode = this.nameTable[\"\" + swimLane];\n this.protectPropertyChange(true);\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n }\n if (!this.nameTable[node.id]) {\n node.offsetX = swimlaneNode.wrapper.bounds.width + swimlaneNode.wrapper.bounds.x;\n node.offsetY = swimlaneNode.wrapper.bounds.height + swimlaneNode.wrapper.bounds.y;\n node = this.add(node);\n }\n node.parentId = '';\n if (!swimlaneNode.shape.phases.length) {\n var laneId = swimLane + lane + '0';\n if (this.nameTable[\"\" + laneId]) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n }\n }\n else {\n for (var i = 0; i < swimlaneNode.shape.phases.length; i++) {\n var laneId = swimLane + lane + i;\n if (this.nameTable[\"\" + laneId] && this.nameTable[\"\" + laneId].isLane) {\n var laneNode = this.nameTable[\"\" + laneId].wrapper.bounds;\n var focusPoint = {\n x: laneNode.x +\n (laneNode.x - swimlaneNode.wrapper.bounds.x + node.margin.left + (node.wrapper.bounds.width / 2)),\n y: laneNode.y + swimlaneNode.wrapper.bounds.y - node.margin.top\n };\n if (swimlaneNode.shape.orientation === 'Horizontal') {\n focusPoint.y = laneNode.y;\n }\n else {\n focusPoint.x = laneNode.x;\n var laneHeaderId = this.nameTable[\"\" + laneId].parentId +\n swimlaneNode.shape.lanes[0].id + '_0_header';\n focusPoint.y = laneNode.y +\n (swimlaneNode.wrapper.bounds.y - this.nameTable[\"\" + laneHeaderId].wrapper.bounds.height +\n node.margin.top + (node.wrapper.bounds.height / 2));\n }\n if ((laneId === swimLane + lane + (swimlaneNode.shape.phases.length - 1)) ||\n laneNode.containsPoint(focusPoint)) {\n addChildToContainer(this, this.nameTable[\"\" + laneId], node, undefined, true);\n updateLaneBoundsAfterAddChild(this.nameTable[\"\" + laneId], swimlaneNode, node, this);\n break;\n }\n }\n }\n }\n if (this.undoRedoModule) {\n this.historyManager.endGroupAction();\n }\n this.protectPropertyChange(false);\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Displays a tooltip for the specified diagram object.\n *\n * @param {NodeModel | ConnectorModel} obj - The object for which the tooltip will be shown.\n */\n Diagram.prototype.showTooltip = function (obj) {\n if (obj && obj.id && !obj.wrapper) {\n obj = this.nameTable[obj.id];\n }\n var bounds = getBounds(obj.wrapper);\n var position = { x: 0, y: 0 };\n var content = obj.tooltip.content ?\n obj.tooltip.content : 'X:' + Math.round(bounds.x) + ' ' + 'Y:' + Math.round(bounds.y);\n if (obj && obj.tooltip.openOn === 'Custom') {\n if (obj instanceof Node) {\n position = { x: obj.offsetX + (obj.width / 2), y: obj.offsetY + (obj.height / 2) };\n }\n else {\n position = { x: obj.targetPoint.x, y: obj.targetPoint.x };\n }\n this.commandHandler.showTooltip(obj, position, content, 'SelectTool', true);\n }\n };\n /**\n * Hides the tooltip for the corresponding diagram object.\n *\n * @param {NodeModel | ConnectorModel} obj - The node or connector object for which the tooltip should be hidden.\n */\n Diagram.prototype.hideTooltip = function (obj) {\n if (obj && obj.tooltip.openOn === 'Custom') {\n this.tooltipObject.close();\n }\n };\n /**\n * Adds the specified node to the diagram control.\n *\n * @returns { Node } Adds the specified node to the diagram control.\\\n * @param {NodeModel} obj - representing the node to be added to the diagram.\n * @param {boolean} group - A boolean value indicating whether the node should be added to a group.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addNode = function (obj, group) {\n return this.add(obj, group);\n };\n /**\n * Adds the specified diagram object to the specified group node.\n *\n * @returns { void } Adds the specified diagram object to the specified group node.\\\n * @param {NodeModel} group - The group node to which the diagram object will be added.\n * @param {string | NodeModel | ConnectorModel} child - The diagram object to be added to the group.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addChildToGroup = function (group, child) {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n group = this.getObject(group.id);\n //Removed isBlazor code\n var isHistoryAdded = (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory));\n if (isHistoryAdded) {\n this.startGroupAction();\n }\n var id = this.addChild(group, child);\n if (isHistoryAdded) {\n var childTable = {};\n childTable[\"\" + id] = cloneObject(this.getObject(id));\n var entry = {\n type: 'AddChildToGroupNode', changeType: 'Insert', undoObject: cloneObject(group),\n redoObject: cloneObject(group), category: 'Internal', objectId: id, childTable: childTable\n };\n this.addHistoryEntry(entry);\n this.endGroupAction();\n }\n //880811- Adding child to group node using addChildToGroup method is not working properly.\n var element = this.nameTable[child] ? this.nameTable[child] : child;\n var childElementToMove = document.getElementById(element.id + '_groupElement');\n var targetGroupElement = document.getElementById(group.id + '_groupElement');\n if (targetGroupElement && childElementToMove) {\n targetGroupElement.appendChild(childElementToMove);\n }\n this.protectPropertyChange(propChange);\n this.enableServerDataBinding(severDataBind);\n this.updateSelector();\n //Removed isBlazor code.\n };\n /**\n * Removes the specified diagram object from the specified group node.\n *\n * @returns { void } Removes the specified diagram object from the specified group node.\\\n * @param {NodeModel} group - The group node to which the diagram object will be removed.\n * @param {string | NodeModel | ConnectorModel} child - The diagram object to be removed from the group.\n */\n Diagram.prototype.removeChildFromGroup = function (group, child) {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n group = this.getObject(group.id);\n var undoGroup = cloneObject(group);\n var isHistoryAdded = (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory));\n if (isHistoryAdded) {\n this.startGroupAction();\n }\n var id = this.removeChild(group, child);\n if (isHistoryAdded) {\n var childTable = {};\n childTable[\"\" + id] = cloneObject(this.getObject(id));\n var entry = {\n type: 'RemoveChildFromGroupNode', changeType: 'Remove', undoObject: cloneObject(undoGroup),\n redoObject: cloneObject(group), category: 'Internal', objectId: id, childTable: childTable\n };\n this.addHistoryEntry(entry);\n this.endGroupAction();\n }\n //880811 - diagram elements not updated properly while grouping nodes at runtime\n var element = this.nameTable[child] ? this.nameTable[child] : child;\n var elementZindex = element.zIndex;\n var layerNum = this.layers.indexOf(this.commandHandler.getObjectLayer(element.id));\n var insertBeforeObj = this.layers[parseInt(layerNum.toString(), 10)].objects[elementZindex + 1];\n var insertBeforeElement = document.getElementById(insertBeforeObj + '_groupElement');\n var childElementToMove = document.getElementById(element.id + '_groupElement');\n var targetGroupElement = document.getElementById(group.id + '_groupElement');\n if (targetGroupElement && childElementToMove) {\n if (insertBeforeObj && insertBeforeElement) {\n if (targetGroupElement.contains(insertBeforeElement)) {\n targetGroupElement.insertBefore(childElementToMove, insertBeforeElement);\n }\n else if (targetGroupElement.parentNode.contains(insertBeforeElement) && insertBeforeElement.parentElement\n === targetGroupElement.parentElement) {\n targetGroupElement.parentNode.insertBefore(childElementToMove, insertBeforeElement);\n }\n else {\n targetGroupElement.parentNode.appendChild(childElementToMove);\n }\n }\n else {\n targetGroupElement.parentNode.appendChild(childElementToMove);\n }\n }\n this.protectPropertyChange(propChange);\n this.enableServerDataBinding(severDataBind);\n this.updateSelector();\n };\n /**\n * Retrieves the history stack values for either undo or redo actions.\n *\n * @returns { void } Retrieves the history stack values for either undo or redo actions.\\\n * @param {boolean} isUndoStack - If `true`, retrieves the undo stack values; if `false`, retrieves the redo stack values.\n */\n Diagram.prototype.getHistoryStack = function (isUndoStack) {\n //let temp: HistoryEntry[];\n var historyEntry = [];\n var temp = isUndoStack ? this.historyManager.undoStack : this.historyManager.redoStack;\n if (this.historyManager.stackLimit !== undefined) {\n for (var i = temp.length - 1; i >= 0; i--) {\n historyEntry.push(temp[parseInt(i.toString(), 10)]);\n if (historyEntry.length > this.historyManager.stackLimit) {\n return historyEntry;\n }\n }\n }\n else {\n historyEntry = temp;\n }\n return historyEntry;\n };\n /* tslint:disable */\n /**\n * Returns the edges connected to the given node.\n *\n * @returns { string[] } Returns the edges connected to the given node. \\\n\n * @param {Object} args - An object containing information about the node for which edges are to be retrieved.\n */\n Diagram.prototype.getEdges = function (args) {\n return args['outEdge'] ? this.nameTable[args['id']].outEdges : this.nameTable[args['id']].inEdges;\n };\n /* tslint:enable */\n /**\n * Returns the parent id for the node\n *\n * @returns { string }Returns the parent id for the node .\\\n\n * @param {string} id - returns the parent id\n */\n Diagram.prototype.getParentId = function (id) {\n return this.nameTable[\"\" + id].parentId;\n };\n /**\n * Adds the given connector to diagram control\n * @returns { Connector } Adds the given connector to diagram control .\\\n *\n * @param {ConnectorModel} obj - Defines the connector that has to be added to diagram\n * @blazorArgsType obj|DiagramConnector\n */\n Diagram.prototype.addConnector = function (obj) {\n return this.add(obj);\n };\n /* eslint-disable */\n /** @private */\n Diagram.prototype.UpdateBlazorDiagramModelCollection = function (obj, copiedObject, multiSelectDelete, isBlazorGroupUpdate) {\n /* eslint-enable */\n //Removed isBlazor code\n };\n /**\n * UpdateBlazorDiagramModel method\n *\n * @returns { void } UpdateBlazorDiagramModel method .\\\n * @param {Node | Connector | ShapeAnnotation | PathAnnotation} obj - provide the obj value.\n * @param {string} objectType - provide the objectType value.\n * @param {number} removalIndex - provide the removalIndex value.\n * @param {number} annotationNodeIndex - provide the annotationNodeIndex value.\n *\n * @private\n */\n Diagram.prototype.UpdateBlazorDiagramModel = function (obj, objectType, removalIndex, annotationNodeIndex) {\n //Removed isBlazor code\n };\n // eslint-disable-next-line max-len\n Diagram.prototype.UpdateBlazorLabelOrPortObjects = function (obj, objectType, removalIndex, nodeIndex) {\n //Removed isBlazor code\n };\n /**\n * addBlazorDiagramObjects method\n *\n * @returns { void } addBlazorDiagramObjects method .\\\n *\n * @private\n */\n Diagram.prototype.addBlazorDiagramObjects = function () {\n //Removed isBlazor code\n };\n Diagram.prototype.removeNodeEdges = function (elementId, id, isOutEdges) {\n var node = this.nameTable[\"\" + elementId];\n var edges = isOutEdges ? node.outEdges : node.inEdges;\n if (edges.length > 0) {\n for (var i = 0; i < edges.length; i++) {\n if (edges[parseInt(i.toString(), 10)] === id) {\n edges.splice(i, 1);\n }\n }\n }\n };\n /**\n * insertBlazorConnector method\n *\n * @returns { void } insertBlazorConnector method .\\\n * @param {Connector} obj - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.insertBlazorConnector = function (obj) {\n //Removed isBlazor code\n };\n /* tslint:disable */\n /**\n * Adds the provided object, which can be a node, group, or connector, onto the diagram canvas.\n *\n * @returns { Node | Connector } Adds the provided object, which can be a node, group, or connector, onto the diagram canvas.\\\n * @param {NodeModel | ConnectorModel} obj - Specifies the object to be added to the diagram.\n * @param {boolean} group - If a group object is passed, set it to true.\n */\n Diagram.prototype.add = function (obj, group) {\n var newObj;\n var propertyChangeValue = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n var isTextAnnotationNode = false;\n if (obj) {\n obj = cloneObject(obj);\n var args = void 0;\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changing', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n //Removed isBlazor code\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (args.cancel && this.drawingObject) {\n this.removeElements(args.element);\n this.tooltipObject.close();\n var sourceNodee = this.getObject(args.element.sourceID);\n var isOutEdgee = void 0;\n if (getObjectType(args.element) === Connector) {\n if (args.element.sourceID) {\n this.removeNodeEdges(args.element.sourceID, args.element.id, true);\n if (sourceNodee.ports.length > 0) {\n for (var i = 0; i < sourceNodee.ports.length; i++) {\n var port = sourceNodee.ports[parseInt(i.toString(), 10)];\n if (port.id === args.element.sourcePortID) {\n if (port.outEdges.length > 0) {\n isOutEdgee = false;\n }\n else {\n isOutEdgee = true;\n }\n }\n }\n this.removePortEdges(sourceNodee, args.element.sourcePortID, args.element.id, isOutEdgee);\n }\n }\n if (args.element.targetID) {\n this.removeNodeEdges(args.element.targetID, args.element.id, false);\n }\n }\n }\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n obj.id = obj.id || randomId();\n var layers = this.activeLayer;\n // Bug 890792: Exception thrown when adding a node at runtime in the unit test case.\n // The issue arises only when the diagram is not appended to the DOM. In such cases, the diagram will not be rendered, and the activeLayer property is undefined.\n // Check if activeLayer is defined. If activeLayer is defined, then proceed with the operation.\n if (!args.cancel && layers && !layers.lock) {\n if (layers.objects.indexOf(obj.id) < 0 && !layers.lock) {\n if (!layers.visible) {\n layers.visible = true;\n this.dataBind();\n }\n layers.objects.push(obj.id);\n }\n if (getObjectType(obj) === Connector) {\n newObj = new Connector(this, 'connectors', obj, true);\n newObj.status = 'New';\n if (this.nameTable[newObj.targetID] && this.nameTable[newObj.targetID].shape.shape === 'TextAnnotation') {\n newObj.isBpmnAnnotationConnector = true;\n newObj.constraints = newObj.constraints & ~ConnectorConstraints.Delete;\n }\n updateDefaultValues(newObj, obj, this.connectorDefaults);\n this.connectors.push(newObj);\n this.initObject(newObj);\n //Removed isBlazor code\n if (obj.visible === false) {\n this.updateElementVisibility(newObj.wrapper, newObj, obj.visible);\n }\n this.updateEdges(newObj);\n this.insertBlazorConnector(newObj);\n }\n else {\n newObj = new Node(this, 'nodes', obj, true);\n updateDefaultValues(newObj, obj, this.nodeDefaults);\n newObj.parentId = (obj.parentId) ? obj.parentId : newObj.parentId;\n newObj.umlIndex = obj.umlIndex;\n newObj.status = 'New';\n isTextAnnotationNode = newObj.shape.shape === 'TextAnnotation';\n if (isTextAnnotationNode && !obj.isTextAnnotationCopied) {\n newObj.inEdges = obj.inEdges ? obj.inEdges : newObj.inEdges;\n }\n this.nodes.push(newObj);\n this.initObject(newObj, layers, undefined, group);\n if (isTextAnnotationNode) {\n if (this.bpmnModule) {\n for (var i = 0; i < this.bpmnModule.bpmnTextAnnotationConnector.length; i++) {\n if (this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)].wrapper === null) {\n this.initConnectors(this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)], undefined, true);\n }\n }\n }\n }\n //Removed isBlazor code\n this.updateTemplate();\n if (this.bpmnModule) {\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.bpmnModule.updateDocks(newObj, this);\n }\n }\n if (this.lineRoutingModule && (this.constraints & DiagramConstraints.LineRouting)) {\n var objects = this.spatialSearch.findObjects(newObj.wrapper.outerBounds);\n for (var i = 0; i < objects.length; i++) {\n var object = objects[parseInt(i.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(object, {}, {\n sourceID: object.sourceID, targetID: object.targetID, sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID, sourcePoint: object.sourcePoint, targetPoint: object.targetPoint\n });\n }\n }\n }\n else if (this.constraints & DiagramConstraints.LineRouting) {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n if (newObj.umlIndex > -1 && obj.parentId && this.nameTable[obj.parentId] &&\n this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n var parent_2 = this.nameTable[obj.parentId];\n parent_2.children.splice(newObj.umlIndex, 0, newObj.id);\n parent_2.wrapper.children.splice(newObj.umlIndex, 0, newObj.wrapper);\n parent_2.wrapper.measure(new Size());\n parent_2.wrapper.arrange(parent_2.wrapper.desiredSize);\n this.updateDiagramObject(parent_2);\n }\n }\n args = {\n element: newObj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions), state: 'Changed', type: 'Addition', cancel: false\n };\n if (this.parentObject) {\n args.parentId = this.parentObject.id;\n }\n //Removed isBlazor code\n if (obj.id !== 'helper' && !(this.diagramActions & DiagramAction.PreventCollectionChangeOnDragOver)) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group) &&\n !(this.diagramActions & DiagramAction.PreventHistory)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Insert', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n this.parentObject = undefined;\n if (this.mode === 'SVG') {\n this.updateSvgNodes(newObj);\n this.updateTextElementValue(newObj);\n this.updateDiagramObject(newObj);\n if (isTextAnnotationNode) {\n var con = this.nameTable[newObj.inEdges[0]];\n this.updateDiagramObject(con);\n }\n if (newObj.shape.activity && newObj.shape.activity.subProcess.processes &&\n newObj.shape.activity.subProcess.processes.length) {\n this.updateProcesses(newObj);\n }\n this.updateBridging();\n }\n }\n }\n this.protectPropertyChange(propertyChangeValue);\n this.resetDiagramActions(DiagramAction.PublicMethod);\n if (newObj && this.layers.length > 1) {\n this.moveNode(newObj);\n }\n // Bug 890792: Exception thrown when adding a node at runtime in the unit test case.\n // The issue arises only when the diagram is not appended to the DOM. In such cases, the diagram will not be rendered, and the views property is undefined.\n // Check if views is defined before iterating. If views is defined, then refresh the canvas for each view.\n if (this.views) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n }\n this.renderReactTemplates();\n return newObj;\n };\n /**\n * AddElements method allows us to add diagram elements such as nodes and connectors as a collection into the diagram canvas.\n * @returns {void} -AddElements method.\n * @param { NodeModel[] | ConnectorModel[]} obj -Specifies the colelction object to be added to the diagram.\n * @public method\n **/\n Diagram.prototype.addElements = function (obj) {\n for (var i = 0; i < obj.length; i++) {\n this.add(obj[parseInt(i.toString(), 10)]);\n }\n };\n /* tslint:enable */\n Diagram.prototype.updateSvgNodes = function (node) {\n if (node.children) {\n for (var _i = 0, _a = node.children; _i < _a.length; _i++) {\n var j = _a[_i];\n if (this.nameTable[\"\" + j] && this.nameTable[\"\" + j].parentId) {\n var child = getDiagramElement(j + '_groupElement', this.element.id);\n if (child) {\n child.parentNode.removeChild(child);\n }\n }\n }\n }\n };\n /**\n * updateProcesses method\n *\n * @returns { void } updateProcesses method .\\\n * @param {(Node | Connector)} node - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.updateProcesses = function (node) {\n if (this.bpmnModule && node && node.shape && node.shape.activity &&\n node.shape.activity.subProcess.processes &&\n node.shape.activity.subProcess.processes.length) {\n var processes = node.shape.activity.subProcess.processes;\n this.moveSvgNode(node.id);\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var j = processes_1[_i];\n this.moveSvgNode(j);\n var edges = [];\n edges = edges.concat(this.nameTable[\"\" + j].outEdges, this.nameTable[\"\" + j].inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n this.moveSvgNode(edges[parseInt(i.toString(), 10)]);\n }\n }\n for (var _a = 0, processes_2 = processes; _a < processes_2.length; _a++) {\n var j = processes_2[_a];\n if (this.nameTable[\"\" + j].shape.activity.subProcess.processes &&\n this.nameTable[\"\" + j].shape.activity.subProcess.processes.length) {\n this.updateProcesses(this.nameTable[\"\" + j]);\n }\n }\n }\n else {\n this.moveSvgNode(node.id);\n }\n };\n /**\n * moveSvgNode method\n *\n * @returns { void } moveSvgNode method .\\\n * @param {string} nodeId - provide the nodeId value.\n *\n * @private\n */\n Diagram.prototype.moveSvgNode = function (nodeId) {\n var child = getDiagramElement(nodeId + '_groupElement', this.element.id);\n var parent = child.parentElement;\n child.parentNode.removeChild(child);\n parent.appendChild(child);\n };\n /**\n * Adds the given annotation to the specified node.\n *\n * @returns { void } Adds the given annotation to the specified node.\\\n * @param {BpmnAnnotationModel} annotation - Object representing the annotation to be added.\n * @param {NodeModel} node - object representing the node to which the annotation will be added.\n\n */\n Diagram.prototype.addTextAnnotation = function (annotation, node) {\n if (this.bpmnModule) {\n this.getBPMNTextAnnotation(node, this, annotation, true);\n }\n };\n //Splice the InEdge and OutEdge of the for the node with respect to corresponding connectors that is deleting\n Diagram.prototype.spliceConnectorEdges = function (connector, isSource) {\n //let node: Node;\n var edges = [];\n //let isInEdge: boolean;\n var node = isSource ? this.nameTable[connector.sourceID] : this.nameTable[connector.targetID];\n if (node) {\n edges = isSource ? node.outEdges : node.inEdges;\n for (var i = edges.length - 1; i >= 0; i--) {\n if (edges[parseInt(i.toString(), 10)] === connector.id) {\n edges.splice(i, 1);\n }\n }\n for (var j = 0; node.ports && j < node.ports.length; j++) {\n var isInEdge = isSource ? false : true;\n this.removePortEdges(node, node.ports[parseInt(j.toString(), 10)].id, connector.id, isInEdge);\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {Node} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeDependentConnector = function (obj) {\n if (obj) {\n var connector = void 0;\n var edges = [];\n edges = edges.concat(obj.outEdges, obj.inEdges);\n for (var i = edges.length - 1; i >= 0; i--) {\n connector = this.nameTable[edges[parseInt(i.toString(), 10)]];\n if (connector) {\n this.connectorTable[connector.id] = cloneObject(connector);\n //To check for text annotation connector and remove the dependent text annotation node.\n if (connector.isBpmnAnnotationConnector) {\n var targetNode = this.nameTable[connector.targetID];\n this.removeObjectsFromLayer(connector);\n var index = this.connectors.indexOf(connector);\n if (index !== -1) {\n this.connectors.splice(index, 1);\n }\n this.removeElements(connector);\n this.removeFromAQuad(connector);\n delete this.nameTable[connector.id];\n var sourceNode = this.nameTable[connector.sourceID];\n if (sourceNode) {\n var index_1 = sourceNode.outEdges.indexOf(connector.id);\n if (index_1 !== -1) {\n sourceNode.outEdges.splice(index_1, 1);\n }\n }\n if (obj.id !== connector.targetID) {\n this.remove(targetNode);\n }\n }\n else {\n this.remove(connector);\n }\n }\n }\n }\n };\n /**\n * Remove the dependent connectors if the node is deleted\n * @returns { void } Remove the dependent connectors if the node is deleted .\\\n * @param {(NodeModel | ConnectorModel)} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeObjectsFromLayer = function (obj) {\n if (obj.children) {\n for (var i = 0; i < obj.children.length; i++) {\n var object = this.nameTable[obj.children[parseInt(i.toString(), 10)]];\n if (object) {\n this.removeObjectsFromLayer(object);\n }\n }\n }\n var layer = this.layers.indexOf(this.commandHandler.getObjectLayer(obj.id));\n var objects = this.layers[parseInt(layer.toString(), 10)].objects;\n var objIndex = objects.indexOf(obj.id);\n if (objIndex > -1) {\n if (isSelected(this, obj)) {\n this.unSelect(obj);\n }\n this.layers[parseInt(layer.toString(), 10)].objects.splice(objIndex, 1);\n delete this.layers[parseInt(layer.toString(), 10)].zIndexTable[this.nameTable[obj.id].zIndex];\n }\n };\n /**\n * removeElements method \\\n *\n * @returns { string } removeElements method .\\\n * @param {NodeModel | ConnectorModel} currentObj - provide the currentObj value.\n *\n * @private\n */\n Diagram.prototype.removeElements = function (currentObj) {\n if (this.mode === 'SVG' || (this.mode === 'Canvas' && currentObj.shape.type === 'Native')) {\n var removeElement_1 = getDiagramElement(currentObj.id + '_groupElement', this.element.id);\n var object = currentObj;\n if ((object).ports && (object).ports.length > 0) {\n for (var i = 0; i < (object).ports.length; i++) {\n var port = (object).ports[parseInt(i.toString(), 10)];\n var removePort = getDiagramElement(object.id + '_' + port.id + '_groupElement', this.element.id);\n if (removePort) {\n removePort.parentNode.removeChild(removePort);\n }\n }\n }\n if (removeElement_1) {\n removeElement_1.parentNode.removeChild(removeElement_1);\n }\n }\n this.refreshCanvasLayers();\n if (currentObj.wrapper) {\n var children = currentObj.wrapper.children;\n var element = void 0;\n var view = void 0;\n if (children) {\n for (var i = 0; i < children.length; i++) {\n if (children[parseInt(i.toString(), 10)] instanceof DiagramNativeElement || ((children[parseInt(i.toString(), 10)].id) && (children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0)) {\n if ((children[parseInt(i.toString(), 10)].id).indexOf('icon_content') > 0 && this.mode === 'SVG') {\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_shape_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n element = getDiagramElement(children[parseInt(i.toString(), 10)].id + '_rect_groupElement', this.element.id);\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(children[parseInt(i.toString(), 10)].id + '_groupElement', elementId);\n var nodeIndex = this.scroller.removeCollection.indexOf(currentObj.id);\n this.scroller.removeCollection.splice(nodeIndex, 1);\n }\n }\n else if (children[parseInt(i.toString(), 10)] instanceof DiagramHtmlElement) {\n for (var _b = 0, _c = this.views; _b < _c.length; _b++) {\n var elementId = _c[_b];\n removeElement(currentObj.id + '_html_element', elementId);\n removeElement(children[parseInt(i.toString(), 10)].id + '_html_element', elementId);\n //EJ2-63598 - Added below code to check whether platform is Angular or not.\n // If angular then we do not remove the node html element wrapper to retain the HTML element in it.\n var canUpdate = true;\n var parent_3 = this.nameTable[currentObj.parentId];\n //893691: HTML Template nodes are not visible after Zooming with Virtualisation\n if (((this.isAngular || this.isReact) || this.isVue) &&\n ((parent_3 && parent_3.isLane) || (this.constraints & DiagramConstraints.Virtualization))) {\n canUpdate = false;\n }\n if (canUpdate) {\n this.clearTemplate(['nodeTemplate' + '_' + currentObj.id]);\n if (children[parseInt(i.toString(), 10)].annotationId) {\n this.clearTemplate(['annotationTemplate' + '_' + currentObj.id +\n (children[parseInt(i.toString(), 10)].annotationId)]);\n }\n }\n }\n }\n removeGradient(children[parseInt(i.toString(), 10)].id);\n }\n }\n }\n };\n Diagram.prototype.removeCommand = function () {\n this.remove();\n };\n /**\n * Removes the specified object from the diagram.\n *\n * @param {NodeModel | ConnectorModel} obj - The node or connector object to be removed from the diagram.\n */\n /* tslint:disable */\n Diagram.prototype.remove = function (obj) {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n var args;\n var groupAction = false;\n if (obj) {\n obj = this.nameTable[obj.id];\n this.insertBlazorConnector(obj);\n if (obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear))) {\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changing', type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n if (!(this.diagramActions & DiagramAction.Clear) && (obj.id !== 'helper')) {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n if (!args.cancel) {\n if (canDelete(obj)) {\n if (obj && obj.shape && obj.shape.type === 'SwimLane') {\n removeSwimLane(this, obj);\n }\n }\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'CollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.Clear)) {\n if (obj.children && !obj.isLane && !obj.isPhase && obj.children.length > 0 && this.undoRedoModule && this.layout.type === 'None') {\n this.historyManager.startGroupAction();\n groupAction = true;\n }\n }\n //875087 - Restrict removing dependent connectors when moveing between layers\n if ((obj instanceof Node || obj instanceof Connector) && this.deleteDependentConnector) {\n this.removeDependentConnector(obj);\n }\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n if (obj.shape.shape === 'TextAnnotation') {\n this.removeDependentConnector(obj);\n }\n if (obj.children && !obj.isLane && !obj.isPhase &&\n (!(this.diagramActions & DiagramAction.UndoRedo) || !isBlazor())) {\n this.deleteGroup(obj);\n }\n if (obj.parentId) {\n this.deleteChild(obj, undefined, true);\n if (this.nameTable[obj.parentId] && this.nameTable[obj.parentId].shape.type === 'UmlClassifier') {\n this.updateDiagramObject(this.nameTable[obj.parentId]);\n this.updateConnectorEdges(this.nameTable[obj.parentId]);\n }\n }\n var index = void 0;\n this.diagramActions = this.diagramActions | DiagramAction.PublicMethod;\n var currentObj = this.nameTable[obj.id];\n if (currentObj instanceof Node) {\n if (currentObj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.removeBpmnProcesses(currentObj, this);\n }\n if (currentObj.isLane || currentObj.isPhase || currentObj.shape.type === 'SwimLane') {\n var swimLaneNode = (currentObj.isLane || currentObj.isPhase) ?\n this.nameTable[currentObj.parentId] : this.nameTable[currentObj.id];\n var grid = swimLaneNode.wrapper.children[0];\n if (currentObj.isLane) {\n removeLane(this, currentObj, swimLaneNode);\n }\n else if (currentObj.isPhase) {\n removePhase(this, currentObj, swimLaneNode);\n }\n }\n index = this.nodes.indexOf(currentObj);\n // Removed isBlazor code\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.nodes.splice(index, 1);\n this.updateNodeEdges(currentObj);\n }\n }\n else {\n index = this.connectors.indexOf(currentObj);\n //Removed isBlazor code\n if (index !== -1) {\n this.crudDeleteNodes.push(this.nameTable[currentObj.id]);\n this.connectors.splice(index, 1);\n }\n this.updateEdges(currentObj);\n this.spliceConnectorEdges(obj, true);\n this.spliceConnectorEdges(obj, false);\n }\n if ((!this.isServerUpdate) && !(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n this.commandHandler.getBlazorOldValues();\n }\n if (groupAction) {\n this.historyManager.endGroupAction();\n }\n if (isSelected(this, currentObj)) {\n this.unSelect(currentObj);\n }\n if (!currentObj.isPhase) {\n this.removeObjectsFromLayer(obj);\n if (this.currentDrawingObject) {\n this.currentDrawingObject.wrapper = undefined;\n }\n delete this.nameTable[obj.id];\n if (selectedItems.length > 0 && selectedItems[0].id === currentObj.id && currentObj.parentId) {\n var parentnode = this.nameTable[currentObj.parentId];\n if (parentnode && parentnode.isLane && this.nameTable[parentnode.parentId].shape.type === 'SwimLane') {\n var swimLaneNode = this.nameTable[parentnode.parentId];\n removeLaneChildNode(this, swimLaneNode, parentnode, currentObj);\n }\n }\n this.removeElements(currentObj);\n this.updateBridging();\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n if (!(this.diagramActions & DiagramAction.Clear)) {\n this.removeFromAQuad(currentObj);\n args = {\n element: obj, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n state: 'Changed', type: 'Removal', cancel: false\n };\n //Removed isBlazor code\n if (obj.id !== 'helper') {\n this.triggerEvent(DiagramEvent.collectionChange, args);\n }\n this.resetTool();\n }\n }\n }\n }\n }\n else if (selectedItems.length > 0) {\n if (this.undoRedoModule) {\n this.historyManager.startGroupAction();\n this.blazorActions |= BlazorAction.GroupingInProgress;\n groupAction = true;\n }\n //Removed isBlazor code\n for (var i = 0; i < selectedItems.length; i++) {\n var node = selectedItems[parseInt(i.toString(), 10)];\n var parent_4 = this.nameTable[node.parentId];\n if (this.nameTable[selectedItems[parseInt(i.toString(), 10)].id]) {\n //Removed isBlazor code\n // 912905: Multi-selecting and deleting swimlane objects causes the diagram to break\n if (parent_4 && parent_4.shape instanceof SwimLane && !node.isPhase) {\n if (node.isLane) {\n var parentHeader = parent_4.shape.header.id ? parent_4.shape.header.height : 0;\n if ((this.selectedItems.wrapper.bounds.x <= parent_4.wrapper.bounds.x &&\n this.selectedItems.wrapper.bounds.width >= parent_4.wrapper.bounds.width &&\n parent_4.shape.orientation === 'Horizontal') ||\n (this.selectedItems.wrapper.bounds.y <= parent_4.wrapper.bounds.y + parentHeader &&\n this.selectedItems.wrapper.bounds.height >= parent_4.wrapper.bounds.height - parentHeader &&\n parent_4.shape.orientation === 'Vertical')) {\n if (canDelete(parent_4) || parent_4.shape.lanes.length > 1) {\n this.remove(selectedItems[parseInt(i.toString(), 10)]);\n }\n }\n }\n }\n else {\n this.remove(selectedItems[parseInt(i.toString(), 10)]);\n }\n //Removed isBlazor code\n }\n }\n if (groupAction) {\n this.blazorActions &= ~BlazorAction.GroupingInProgress;\n this.isServerUpdate = true;\n this.commandHandler.getBlazorOldValues();\n this.UpdateBlazorDiagramModelCollection(undefined, undefined, undefined, true);\n this.historyManager.endGroupAction();\n this.isServerUpdate = false;\n }\n this.clearSelection();\n }\n if (!(obj && (canDelete(obj) || (this.diagramActions & DiagramAction.Clear)))) {\n if ((!(this.diagramActions & DiagramAction.UndoRedo)) && !(this.diagramActions & DiagramAction.PreventHistory) &&\n (obj instanceof Node || obj instanceof Connector)) {\n var entry = {\n type: 'ConnectionChanged', undoObject: cloneObject(obj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n if (!obj.isLane && !obj.isPhase) {\n if (!(this.diagramActions & DiagramAction.Clear) && !this.isStackChild(obj)) {\n this.addHistoryEntry(entry);\n }\n }\n }\n }\n this.tooltipObject.close();\n //Removed isBlazor code\n };\n /* tslint:enable */\n Diagram.prototype.isStackChild = function (obj) {\n var isstack;\n var parent = this.nameTable[obj.parentId];\n if (obj && obj.parentId && parent.container &&\n (parent.container.type === 'Stack' &&\n this.nameTable[obj.parentId].shape.type !== 'UmlClassifier')) {\n isstack = true;\n var redoElement = {\n sourceIndex: parent.wrapper.children.indexOf(obj.wrapper), source: obj,\n target: undefined, targetIndex: undefined\n };\n var entry = {\n type: 'StackChildPositionChanged', redoObject: {\n sourceIndex: undefined, source: obj,\n target: undefined, targetIndex: undefined\n },\n undoObject: redoElement,\n category: 'Internal'\n };\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n this.addHistoryEntry(entry);\n }\n }\n return isstack;\n };\n /** @private */\n Diagram.prototype.deleteChild = function (node, parentNode, allowChildInSwimlane) {\n var id;\n parentNode = parentNode ? this.nameTable[parentNode.id] : this.nameTable[node.parentId];\n if (typeof node === 'string') {\n id = node;\n }\n else {\n id = node.id;\n }\n if (parentNode && parentNode.children) {\n for (var i = 0; i < parentNode.children.length; i++) {\n if (parentNode.children[parseInt(i.toString(), 10)] === id) {\n parentNode.children.splice(i, 1);\n for (var j = 0; j < parentNode.wrapper.children.length; j++) {\n if (parentNode.wrapper.children[parseInt(j.toString(), 10)].id === id) {\n parentNode.wrapper.children.splice(j, 1);\n }\n }\n // Bug 841849: Swimlane child are not positioned properly and throw exception after deleting and then undoing.\n // Added below condition to skip the child deletion inside swimlane when we add phase at runtime and delete swimlane.\n if (!allowChildInSwimlane) {\n // EJ2-57179 - Below lines added to remove the childs to swimlane after Redo.\n var swimlaneNode = this.getObject(parentNode.parentId);\n if (swimlaneNode && swimlaneNode.shape instanceof SwimLane) {\n for (var h = 0; h < swimlaneNode.shape.lanes.length; h++) {\n var laneId = node.parentId.split(swimlaneNode.id);\n if (swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].id\n === laneId[1].slice(0, -1)) {\n for (var y = 0; y < swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.length; y++) {\n if (node.id ===\n swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(y.toString(), 10)].id) {\n swimlaneNode.shape.lanes[parseInt(h.toString(), 10)].children.splice(y, 1);\n break;\n }\n }\n }\n }\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n }\n };\n /**\n * addChild method \\\n *\n * @returns { string } addChild method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string | NodeModel | ConnectorModel} child - provide the child value.\n * @param {number} index - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.addChild = function (node, child, index) {\n var id;\n var parentNode = this.nameTable[node.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n if (parentNode.children) {\n if (typeof child === 'string') {\n if (this.nameTable[\"\" + child]) {\n id = child;\n }\n }\n else {\n id = child.id = child.id || randomId();\n this.add(child);\n }\n if (id && (!child.umlIndex || child.umlIndex === -1)) {\n var childNode = this.nameTable[\"\" + id];\n childNode.parentId = parentNode.id;\n if (parentNode.container && parentNode.container.type === 'Stack') {\n this.updateStackProperty(parentNode, childNode);\n }\n if (index) {\n parentNode.children.splice(index, 0, id);\n parentNode.wrapper.children.splice(index, 0, childNode.wrapper);\n }\n else {\n parentNode.children.push(id);\n parentNode.wrapper.children.push(childNode.wrapper);\n // SF-362880 - Below lines added for adding the childs to swimlane after Undo.\n var swimlane = this.getObject(node.parentId);\n var childAlreadyInCollection = false;\n if (swimlane && swimlane.shape instanceof SwimLane) {\n for (var h = 0; h < swimlane.shape.lanes.length; h++) {\n var laneId = childNode.parentId.split(node.parentId);\n if (swimlane.shape.lanes[parseInt(h.toString(), 10)].id === laneId[1].slice(0, -1)) {\n //Bug 876330: After performing cut operations followed by an undo, lanes and nodes in the swimlane are not rendered properly.\n // To avoid adding the child node multiple times in the collection.\n for (var i = 0; i < swimlane.shape.lanes[parseInt(h.toString(), 10)].children.length; i++) {\n if (swimlane.shape.lanes[parseInt(h.toString(), 10)].children[parseInt(i.toString(), 10)].id === childNode.id) {\n childAlreadyInCollection = true;\n break;\n }\n }\n if (!childAlreadyInCollection) {\n swimlane.shape.lanes[parseInt(h.toString(), 10)].children.push(childNode);\n }\n break;\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n if (!parentNode.isLane) {\n this.nameTable[node.id].width = parentNode.wrapper.actualSize.width;\n this.nameTable[node.id].height = parentNode.wrapper.actualSize.height;\n this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX;\n this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY;\n }\n if (parentNode.container !== undefined) {\n childNode.offsetX = childNode.wrapper.offsetX;\n childNode.offsetY = childNode.wrapper.offsetY;\n }\n if (!parentNode.parentId ||\n (this.nameTable[parentNode.parentId] &&\n this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) {\n this.updateDiagramObject(parentNode);\n }\n }\n }\n return id;\n };\n /**\n * removeChild method \\\n *\n * @returns { string } removeChild method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string | NodeModel | ConnectorModel} child - provide the child value.\n *\n * @private\n */\n Diagram.prototype.removeChild = function (node, child) {\n var id;\n var parentNode = this.nameTable[node.id];\n if (!parentNode.children) {\n parentNode.children = [];\n }\n if (parentNode.children) {\n if (typeof child === 'string') {\n if (this.nameTable[\"\" + child]) {\n id = child;\n }\n }\n else {\n id = child.id = child.id || randomId();\n }\n if (id && (!child.umlIndex || child.umlIndex === -1)) {\n var childNode = this.nameTable[\"\" + id];\n childNode.parentId = '';\n if (parentNode.container && parentNode.container.type === 'Stack') {\n this.updateStackProperty(parentNode, childNode);\n }\n for (var i = 0; i < parentNode.children.length; i++) {\n if (parentNode.children[parseInt(i.toString(), 10)] === id) {\n parentNode.children.splice(i, 1);\n for (var j = 0; j < parentNode.wrapper.children.length; j++) {\n if (parentNode.wrapper.children[parseInt(j.toString(), 10)] === childNode.wrapper) {\n parentNode.wrapper.children.splice(j, 1);\n }\n }\n }\n }\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n if (!parentNode.isLane) {\n this.nameTable[node.id].width = parentNode.wrapper.actualSize.width;\n this.nameTable[node.id].height = parentNode.wrapper.actualSize.height;\n this.nameTable[node.id].offsetX = parentNode.wrapper.offsetX;\n this.nameTable[node.id].offsetY = parentNode.wrapper.offsetY;\n }\n if (!parentNode.parentId ||\n (this.nameTable[parentNode.parentId] &&\n this.nameTable[parentNode.parentId].shape.type !== 'SwimLane')) {\n this.updateDiagramObject(parentNode);\n }\n }\n }\n return id;\n };\n /**\n * Clears all nodes and objects in the diagram, effectively resetting the diagram to an empty state.\n *\n * @returns { void } Clears all nodes and objects in the diagram, effectively resetting the diagram to an empty state.\\\n\n */\n Diagram.prototype.clear = function () {\n this.clearObjects();\n this.clearLayers();\n };\n //Bug 872106: Layer object in diagram doesnot removed in clear method\n Diagram.prototype.clearLayers = function () {\n var layerCount = this.layers.length;\n for (var i = layerCount - 1; i >= 0; i--) {\n this.removeLayer(this.layers[parseInt(i.toString(), 10)].id);\n }\n //Create default layer\n var defaultLayer = {\n id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0,\n objectZIndex: -1, zIndexTable: {}\n };\n this.commandHandler.addLayer(defaultLayer, null, true);\n this.setActiveLayer(this.layers[this.layers.length - 1].id);\n };\n Diagram.prototype.clearObjects = function (collection) {\n var objects = [];\n if (!collection) {\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n }\n else {\n objects = collection;\n }\n this.diagramActions = this.diagramActions | DiagramAction.Clear;\n // Removed isBlazor code\n for (var _i = 0, objects_1 = objects; _i < objects_1.length; _i++) {\n var obj = objects_1[_i];\n if (this.nameTable[obj.id]) {\n this.remove(obj);\n }\n }\n this.diagramActions = this.diagramActions & ~DiagramAction.Clear;\n this.spatialSearch = new SpatialSearch(this.nameTable);\n this.initHistory();\n };\n Diagram.prototype.startEditCommad = function () {\n var laneHeader;\n var node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : undefined;\n if (node && node instanceof Node) {\n if (node.isLane && node.parentId) {\n var swimlane = this.nameTable[node.parentId];\n var lanes = swimlane.shape.lanes;\n var canvasId = (node.id.slice(swimlane.id.length));\n var currentParentId = canvasId.substring(0, canvasId.length - 1);\n for (var i = 0; i < lanes.length; i++) {\n if (node.isLane && currentParentId === lanes[parseInt(i.toString(), 10)].id) {\n laneHeader = this.nameTable[lanes[parseInt(i.toString(), 10)].header.id];\n }\n }\n }\n else if (node.shape.type === 'SwimLane' && node.shape.header && node.shape.hasHeader) {\n var id = node.wrapper.children[0].rows[0].cells[0].children[0].id;\n laneHeader = this.nameTable[\"\" + id];\n }\n }\n this.startTextEdit(laneHeader);\n };\n /* tslint:disable */\n /**\n * Initiate the editing mode for a specific annotation within a node or connector.\n *\n * @returns { void } Initiate the editing mode for a specific annotation within a node or connector. \\\n * @param {NodeModel | ConnectorModel} node - The node or connector containing the annotation to be edited.\n * @param {string} id - The ID of the annotation to be edited within the node or connector.\n */\n Diagram.prototype.startTextEdit = function (node, id) {\n if ((!canZoomPan(this) && !canMultiSelect(this)) || canSingleSelect(this)) {\n this.textEditing = true;\n var transform = this.scroller.transform;\n var scale = canZoomTextEdit(this) ? transform.scale : 1;\n var minWidth = 90;\n var text = void 0;\n var bounds = void 0;\n var attributes = void 0;\n var x = void 0;\n var y = void 0;\n var textWrapper = void 0;\n if (!node) {\n node = (this.selectedItems.nodes[0]) ? this.selectedItems.nodes[0] : this.selectedItems.connectors[0];\n }\n if (node) {\n //Removed isBlazor code\n //893031: Exception throws while double click on UML Classifier connector\n //Added the condition that the node is not an instance of a connector\n if (node.shape && node.shape.type === 'UmlClassifier' && !(node instanceof Connector)) {\n node = this.nameTable[node.children[0]];\n }\n var bpmnAnnotation = false;\n if (!textWrapper) {\n if (node.shape.type !== 'Text' && node.annotations.length === 0) {\n if (!(node.constraints & NodeConstraints.ReadOnly)) {\n this.activeLabel.isGroup = true;\n this.startGroupAction();\n this.addLabels(node, [{ id: randomId(), content: '' }]);\n }\n }\n if (!id && ((node.shape.type !== 'Text' && node.annotations.length > 0) || (node.shape.type === 'Text'))) {\n //(EJ2-840331)-Double click on node annotation will open the edit of invisible annotation\n if (node.shape.type === 'Text') {\n id = (node.wrapper.children[0].id).split('_')[1];\n }\n else {\n for (var i = node.annotations.length - 1; i >= 0; i--) {\n if (node.annotations[parseInt(i.toString(), 10)].visibility) {\n id = node.annotations[parseInt(i.toString(), 10)].id;\n }\n }\n }\n }\n if (id) {\n textWrapper = this.getWrapper(node.wrapper, id);\n }\n }\n else {\n bpmnAnnotation = true;\n }\n if (node && textWrapper && !(textWrapper instanceof DiagramHtmlElement) &&\n (!enableReadOnly(textWrapper, node) || bpmnAnnotation)) {\n var style = (textWrapper.style);\n var maxWidth = void 0;\n maxWidth = textWrapper.bounds.width < node.wrapper.bounds.width ? textWrapper.bounds.width : node.wrapper.bounds.width;\n maxWidth = minWidth > maxWidth ? minWidth : maxWidth;\n var textEditing = document.getElementById(this.element.id + '_editTextBoxDiv');\n var textArea = document.getElementById(this.element.id + '_editBox');\n text = textArea ? textArea.value : textWrapper.content;\n this.activeLabel.text = text;\n if (!textEditing && !textArea) {\n textEditing = createHtmlElement('div', {});\n textArea = createHtmlElement('textarea', {});\n this.diagramCanvas.appendChild(textEditing);\n textEditing.appendChild(textArea);\n textArea.appendChild(document.createTextNode(text));\n }\n bounds = measureHtmlText(textWrapper.style, text, undefined, undefined, maxWidth);\n if (bounds.isEmpty()) {\n if (node.shape.type !== 'Text') {\n bounds = new Size(findAnnotation(node, (textWrapper.id).split(node.id + '_')[1]).width || 50, textWrapper.style.fontSize);\n }\n else {\n bounds = new Size((node.width > 50) ? 50 : node.width, textWrapper.style.fontSize);\n }\n }\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier') {\n bounds.width = node.wrapper.bounds.width - 20;\n x = ((((node.wrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((node.wrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n textWrapper.style.textAlign = 'Left';\n }\n else {\n bounds.width = Math.max(bounds.width, 50);\n x = ((((textWrapper.bounds.center.x + transform.tx) * transform.scale) - (bounds.width / 2) * scale) - 2.5);\n y = ((((textWrapper.bounds.center.y + transform.ty) * transform.scale) - (bounds.height / 2) * scale) - 3);\n }\n attributes = {\n 'id': this.element.id + '_editTextBoxDiv', 'style': 'position: absolute' + ';left:' + x + 'px;top:' +\n y + 'px;width:' + ((bounds.width + 1) * scale) + 'px;height:' + (bounds.height * scale) +\n 'px; containerName:' + node.id + ';'\n };\n setAttributeHtml(textEditing, attributes);\n //879137 - aria-label missing in annotation textEdit mode.\n attributes = {\n 'aria-label': text, 'id': this.element.id + '_editBox', 'style': 'width:' + ((bounds.width + 1) * scale) +\n 'px;height:' + (bounds.height * scale) + 'px;resize: none;outline: none;overflow: hidden;' +\n ';font-family:' + style.fontFamily +\n ';font-size:' + (style.fontSize * scale) + 'px;text-align:' +\n (textWrapper.style.textAlign.toLocaleLowerCase()) + ';', 'class': 'e-diagram-text-edit'\n };\n setAttributeHtml(textArea, attributes);\n textArea.style.fontWeight = (style.bold) ? 'bold' : '';\n textArea.style.fontStyle = (style.italic) ? 'italic' : '';\n textArea.style.lineHeight = (style.fontSize * 1.2 + 'px;').toString();\n textArea.style.textDecoration = (style.textDecoration) ? style.textDecoration : '';\n this.activeLabel.parentId = node.id;\n this.activeLabel.id = id;\n textWrapper.visible = false;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions | DiagramAction.TextEdit;\n if (!this.isTriggerEvent) {\n EventHandler.add(textArea, 'input', this.eventHandler.inputChange, this.eventHandler);\n EventHandler.add(textArea, 'focusout', this.focusOutEdit, this);\n textArea.select();\n }\n }\n }\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandles = function (connector) {\n if (connector.fixedUserHandles.length) {\n var fixedUserHandleWrapper = void 0;\n for (var _i = 0, _a = connector.fixedUserHandles; _i < _a.length; _i++) {\n var fixedUserHandle = _a[_i];\n fixedUserHandleWrapper = this.getWrapper(connector.wrapper, fixedUserHandle.id);\n connector.updateAnnotation(fixedUserHandle, connector.intermediatePoints, connector.wrapper.bounds, fixedUserHandleWrapper);\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n /* tslint:enable */\n Diagram.prototype.updateNodeExpand = function (node, visibility) {\n for (var i = 0; i < node.outEdges.length; i++) {\n var connector = this.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n var target = this.nameTable[connector.targetID];\n connector.visible = visibility;\n if (target) {\n if (!visibility) {\n this.updateElementVisibility(connector.wrapper, connector, false);\n target.isExpanded = visibility;\n }\n this.updateNodeExpand(target, target.isExpanded);\n target.visible = visibility;\n if (!visibility) {\n this.updateElementVisibility(target.wrapper, target, false);\n }\n }\n }\n };\n Diagram.prototype.updateConnectorAnnotation = function (connector) {\n if (connector.annotations.length) {\n var annotationWrapper = void 0;\n for (var _i = 0, _a = connector.annotations; _i < _a.length; _i++) {\n var annotation = _a[_i];\n annotationWrapper = this.getWrapper(connector.wrapper, annotation.id);\n connector.updateAnnotation(annotation, connector.intermediatePoints, connector.wrapper.bounds, annotationWrapper, (this.diagramActions & DiagramAction.Interactions));\n }\n }\n connector.wrapper.measure(new Size(connector.wrapper.width, connector.wrapper.height));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n };\n Diagram.prototype.removeChildrenFromLayout = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node[\"\" + parentId] && !node[\"\" + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n /* tslint:disable */\n /**\n * Automatically updates the diagram objects based on the type of the layout.\n * @returns { ILayout | boolean } Automatically updates the diagram objects based on the type of the layout.\\\n */\n Diagram.prototype.doLayout = function () {\n var update = false;\n var layout;\n var canDoOverlap = (this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree');\n var propChange = this.isProtectedOnChange;\n this.protectPropertyChange(true);\n var nodes = this.removeChildrenFromLayout(this.nodes);\n var canEnableRouting = this.layout.enableRouting && this.layout.type === 'ComplexHierarchicalTree';\n var viewPort = { x: this.scroller.viewPortWidth, y: this.scroller.viewPortHeight };\n if (this.layout.type !== 'None') {\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //Removed initLineDistribution method call here and added it below after the complex hierarchical tree doLayout process.\n if (this.organizationalChartModule) {\n layout = this.organizationalChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.diagramActions);\n update = true;\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.initLineDistribution(this.layout, this);\n }\n if (this.layoutAnimateModule && layout.rootNode && !this.diagramActions) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n // EJ2-58221 - added to render the layout properly based on parent node isExpanded property.\n else if (!this.layoutAnimateModule && layout.rootNode && !layout.rootNode.isExpanded && !this.canExpand) {\n this.updateNodeExpand(layout.rootNode, layout.rootNode.isExpanded);\n }\n }\n else if (this.mindMapChartModule) {\n if (nodes && nodes.length > 0) {\n this.mindMapChartModule.updateLayout(nodes, this.nameTable, this.layout, viewPort, this.dataSourceSettings.id, this.dataSourceSettings.root);\n }\n update = true;\n }\n else if (this.radialTreeModule) {\n this.radialTreeModule.updateLayout(nodes, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.symmetricalLayoutModule) {\n this.symmetricalLayoutModule.maxIteration = this.layout.maxIteration;\n this.symmetricalLayoutModule.springLength = this.layout.springLength;\n this.symmetricalLayoutModule.springFactor = this.layout.springFactor;\n this.symmetricalLayoutModule.updateLayout(nodes, this.connectors, this.symmetricalLayoutModule, this.nameTable, this.layout, viewPort);\n update = true;\n }\n else if (this.complexHierarchicalTreeModule) {\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //As the initLineDistribution method call removed from above and added below doLayout, we need to set diagram value and clear obstacle collection\n // of connectors.\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.diagram = this;\n var obstacleCollection_1 = 'obstaclePointCollection';\n this.connectors.forEach(function (connector) {\n connector[\"\" + obstacleCollection_1] = [];\n });\n }\n var nodes_1 = this.complexHierarchicalTreeModule.getLayoutNodesCollection(this.nodes);\n if (nodes_1.length > 0) {\n // eslint-disable-next-line max-len\n this.complexHierarchicalTreeModule.doLayout(nodes_1, this.nameTable, this.layout, viewPort, this);\n }\n update = true;\n //initLineDistribution method call after doLayout.\n if (this.canDistribute(canEnableRouting, canDoOverlap)) {\n this.lineDistributionModule.initLineDistribution(this.layout, this);\n }\n }\n else if (this.flowchartLayoutModule) {\n this.flowchartLayoutModule.updateLayout(this.nodes, this);\n update = true;\n }\n else {\n var moduleName = this.layout.type === 'OrganizationalChart' ? 'HierarchicalTree' : this.layout.type;\n console.warn('[WARNING] :: Module ' + moduleName + ' is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n if (update) {\n this.preventDiagramUpdate = true;\n var connectors = {};\n var updatedNodes = nodes;\n // BLAZ-22230 - Added condition to check if canUpdateTemplate is false means then we can update the template for blazor\n //Removed isBlazor code\n for (var _i = 0, updatedNodes_1 = updatedNodes; _i < updatedNodes_1.length; _i++) {\n var obj = updatedNodes_1[_i];\n var node = obj;\n if (!this.preventNodesUpdate && (!this.diagramActions || !(this.diagramActions & DiagramAction.PreventIconsUpdate))) {\n this.updateIcon(node);\n this.updateDefaultLayoutIcons(node);\n }\n this.preventNodesUpdate = true;\n this.nodePropertyChange(node, {}, { offsetX: node.offsetX, offsetY: node.offsetY }, true);\n this.preventNodesUpdate = false;\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n this.updateDiagramObject(node, true);\n if (node.inEdges.length > 0) {\n for (var j = 0; j < node.inEdges.length; j++) {\n var connector = this.nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n connectors[connector.id] = connector;\n }\n }\n if (node.outEdges.length > 0) {\n for (var k = 0; k < node.outEdges.length; k++) {\n var connection = this.nameTable[node.outEdges[parseInt(k.toString(), 10)]];\n connectors[connection.id] = connection;\n }\n }\n }\n for (var _a = 0, _b = Object.keys(connectors); _a < _b.length; _a++) {\n var conn = _b[_a];\n if (canEnableRouting) {\n this.lineDistributionModule.resetConnectorSegments(this.nameTable[\"\" + conn]);\n }\n var connector = connectors[\"\" + conn];\n var points = this.getPoints(connector);\n if (canEnableRouting) {\n this.lineDistributionModule.resetRoutingSegments(connector, this, points);\n }\n updateConnector(connector, points);\n if (connector.shape.type === 'Bpmn' && connector.shape.sequence === 'Default' && connector.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(connector);\n }\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateConnectorAnnotation(connector);\n this.updateConnectorfixedUserHandles(connector);\n this.updateQuad(connector);\n this.updateDiagramObject(connector, true);\n }\n if (canEnableRouting || this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) {\n this.lineDistributionModule.distributeLines(this.layout, this);\n }\n this.refreshFlowChartConnectors();\n this.preventDiagramUpdate = false;\n this.updatePage();\n if ((!(this.diagramActions & DiagramAction.Render)) || this.mode === 'Canvas') {\n this.refreshDiagramLayer();\n this.isRefreshed = true;\n }\n }\n if (!propChange) {\n this.protectPropertyChange(propChange);\n }\n }\n if (update) {\n this.updateDiagramElementQuad();\n }\n if ((this.diagramActions & DiagramAction.Render) && this.layout.enableRouting) {\n this.refreshRoutingConnectors();\n }\n return ((this.blazorActions & BlazorAction.expandNode) ? layout : true);\n };\n //Bug 877799: Optimize the routing segment distance while using enableRouting in layout.\n //Stored the routingConnectors in resetRoutingSegments method and then Refresh the routing connectors after layout completion.\n Diagram.prototype.refreshRoutingConnectors = function () {\n this.isProtectedOnChange = true;\n if (this.routingConnectors) {\n for (var i = 0; i < this.routingConnectors.length; i++) {\n var connector = this.routingConnectors[parseInt(i.toString(), 10)];\n var sourceNode = this.nameTable[connector.sourceID];\n var targetNode = this.nameTable[connector.targetID];\n var lineRouting = new LineRouting();\n if (sourceNode.visible && targetNode.visible) {\n lineRouting.renderVirtualRegion(this, true);\n lineRouting.refreshConnectorSegments(this, connector, false, true);\n var points = this.getPoints(connector);\n updateConnector(connector, points);\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateDiagramObject(connector, true);\n this.routingConnectors.splice(i, 1);\n i--;\n }\n }\n }\n this.isProtectedOnChange = false;\n };\n //To update new connector points in flowchart layout\n Diagram.prototype.refreshFlowChartConnectors = function () {\n if (this.flowchartLayoutModule) {\n this.flowchartLayoutModule.reRouteFlowChartConnectors(this.layout.flowChartData, this);\n for (var i = 0; i < this.connectors.length; i++) {\n var connector = this.connectors[parseInt(i.toString(), 10)];\n var points = this.getPoints(connector);\n updateConnector(connector, points);\n connector.wrapper.measure(new Size(undefined, undefined));\n connector.wrapper.arrange(connector.wrapper.desiredSize);\n this.updateConnectorAnnotation(connector);\n this.updateConnectorfixedUserHandles(connector);\n this.updateQuad(connector);\n this.updateDiagramObject(connector, true);\n }\n }\n };\n //Checks if line distribution is enabled.\n Diagram.prototype.canDistribute = function (canEnableRouting, canDoOverlap) {\n if ((canEnableRouting && this.lineDistributionModule) || (this.layout.connectionPointOrigin === 'DifferentPoint' && this.lineDistributionModule && canDoOverlap) || (this.layout.arrangement === 'Linear' && this.lineDistributionModule)) {\n return true;\n }\n else {\n if ((canEnableRouting) || (this.layout.connectionPointOrigin === 'DifferentPoint' && canDoOverlap) || (this.layout.arrangement === 'Linear')) {\n console.warn('[WARNING] :: Module \"LineDistribution\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return false;\n }\n };\n /* tslint:enable */\n /**\n * Serializes the diagram control as a string.\n * @returns { string } Serializes the diagram control as a string. \\\n */\n Diagram.prototype.saveDiagram = function () {\n var children = [];\n var node;\n var grid;\n var childTable;\n var child;\n var gridChild = 'childTable';\n for (var i = 0; i < this.nodes.length; i++) {\n node = this.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n grid = node.wrapper.children[0];\n childTable = grid[\"\" + gridChild];\n for (var _i = 0, _a = Object.keys(childTable); _i < _a.length; _i++) {\n var key = _a[_i];\n child = childTable[\"\" + key];\n children = getChild(child, children);\n }\n for (var i_1 = 0; i_1 < children.length; i_1++) {\n if (this.nameTable[children[parseInt(i_1.toString(), 10)]]) {\n this.swimlaneChildTable[children[parseInt(i_1.toString(), 10)]]\n = this.nameTable[children[parseInt(i_1.toString(), 10)]].zIndex;\n }\n }\n this.swimlaneZIndexTable[node.id] = node.zIndex;\n }\n }\n return serialize(this);\n };\n /**\n * Converts the given string into a Diagram Control.\n *\n * @returns { Object } Converts the given string into a Diagram Control. \\\n * @param {string} data - The string representing the diagram model JSON to be loaded.\n * @param {boolean} isEJ1Data - A boolean indicating whether the JSON data is EJ1 data.\n */\n Diagram.prototype.loadDiagram = function (data, isEJ1Data) {\n if (isEJ1Data && this.ej1SerializationModule) {\n var ejDiagram = JSON.parse(data);\n data = this.ej1SerializationModule.getSerializedData(ejDiagram);\n }\n else if (isEJ1Data) {\n console.warn('[WARNING] :: Module \"Ej1Serialization\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n return deserialize(data, this);\n };\n /**\n * Exports the current diagram to a string in Mermaid format.\n * This method converts the current state of the diagram into Mermaid syntax, allowing it to be saved or shared.\n * @returns {string} - A string containing the Mermaid text representation of the current diagram.\n */\n Diagram.prototype.saveDiagramAsMermaid = function () {\n var mermaidData = '';\n if (this.layout && this.layout.type === 'Flowchart') {\n mermaidData = this.saveFlowDiagramInMermaidFormat();\n }\n else {\n mermaidData = this.saveMindmapDiagramInMermaidFormat();\n }\n return mermaidData;\n };\n /**\n * Converts the diagram to Mermaid format and saves it.\n * If the diagram has a 'MindMap' layout, it will generate a Mermaid mind map.\n * @returns {string} - The Mermaid formatted string representing the diagram.\n */\n Diagram.prototype.saveMindmapDiagramInMermaidFormat = function () {\n var mermaidData = '';\n var dataSourceCollection = [];\n if (this.layout && this.layout.type === 'MindMap') {\n dataSourceCollection.push('mindmap');\n if (this.nodes.length > 0) {\n var rootNode = this.nodes.filter(function (node) { return node.inEdges.length === 0; })[0];\n var content = this.convertMindmapToMermaid(rootNode, 0);\n dataSourceCollection.push(content);\n var outConnectors = rootNode.outEdges;\n this.updateTextDataSource(dataSourceCollection, outConnectors, 1);\n dataSourceCollection = dataSourceCollection.filter(function (data) { return data.trim() !== ''; });\n mermaidData = dataSourceCollection.join('\\n');\n }\n }\n return mermaidData;\n };\n /**\n * Creates a text data source for sub-level children in a Mermaid diagram.\n * @param {string[]} dataSource - The data source to be updated.\n * @param {string[]} outEdges - The out edges of the current node.\n * @param {number} level - The level of the current node.\n * @returns {void} - Creates a text data source for sub-level children in a Mermaid diagram.\n */\n Diagram.prototype.updateTextDataSource = function (dataSource, outEdges, level) {\n var count = 0;\n while (count < outEdges.length) {\n var connector = this.getObject(outEdges[parseInt(count.toString(), 10)]);\n var targetNode = this.getObject(connector.targetID);\n var content = this.convertMindmapToMermaid(targetNode, level);\n dataSource.push(content);\n var childOutConnectors = targetNode.outEdges;\n if (childOutConnectors.length > 0) {\n this.updateTextDataSource(dataSource, childOutConnectors, level + 1);\n }\n count++;\n }\n };\n /**\n * Returns the text data source for the specified node in Mermaid format.\n * @param {NodeModel} node - The node for which the Mermaid data is to be generated.\n * @param {number} level - The level of the node in the diagram.\n * @returns {string} - The text data source for the specified node in Mermaid format.\n */\n Diagram.prototype.convertMindmapToMermaid = function (node, level) {\n var nodeId = node.id;\n var spaceCount = (level + 1) * 2;\n var spaces = ' '.repeat(spaceCount);\n var annotationContent = node.annotations.length > 0\n ? node.annotations[0].content.replace(/\\n/g, ' ')\n : '';\n var content = spaces + annotationContent;\n var spaceWithNodeId = spaces + nodeId;\n if (node.shape && node.shape.type === 'Basic') {\n var basicShape = node.shape;\n if (basicShape.shape === 'Rectangle') {\n content = spaceWithNodeId + '[' + annotationContent + ']';\n }\n else if (basicShape.shape === 'Ellipse') {\n content = spaceWithNodeId + '((' + annotationContent + '))';\n }\n else if (basicShape.shape === 'Hexagon') {\n content = spaceWithNodeId + '{{' + annotationContent + '}}';\n }\n }\n else if (node.shape && node.shape.type === 'Flow') {\n var flowShape = node.shape;\n if (flowShape.shape === 'Terminator') {\n content = spaceWithNodeId + '(' + annotationContent + ')';\n }\n }\n else if (node.shape && node.shape.type === 'Path') {\n var pathShape = node.shape;\n if (pathShape.data === this.bangShape) {\n content = spaceWithNodeId + '))' + annotationContent + '((';\n }\n else if (pathShape.data === this.cloudShape) {\n content = spaceWithNodeId + ')' + annotationContent + '(';\n }\n }\n return content;\n };\n /**\n * Converts the flowchart diagram to Mermaid format.\n * @returns {string} - The exported flowchart diagram as Mermaid data.\n */\n Diagram.prototype.saveFlowDiagramInMermaidFormat = function () {\n var _this = this;\n var existingIds = [];\n var mermaidCode = 'graph TD\\n';\n var graph = { nodes: this.nodes, edges: this.connectors };\n // Create a map of node labels for easy access\n // accumulator - The object that stores the node ID and label pairs.\n var nodeLabels = graph.nodes.reduce(function (accumulator, node) {\n accumulator[node.id] = node.annotations.length ? node.annotations[0].content : '';\n return accumulator;\n }, {});\n // Iterate through edges to create connections and node definitions\n graph.edges.forEach(function (edge) {\n var fromNodeId = edge.sourceID;\n var toNodeId = edge.targetID;\n var fromNodeLabel = nodeLabels[\"\" + fromNodeId];\n var toNodeLabel = nodeLabels[\"\" + toNodeId];\n var fromNode = _this.nameTable[\"\" + fromNodeId];\n var toNode = _this.nameTable[\"\" + toNodeId];\n var fromNodeShape = _this.getNodeShape(fromNode);\n var toNodeShape = _this.getNodeShape(toNode);\n var condition = (edge.annotations[0] && edge.annotations[0].content !== '') ? '|' + edge.annotations[0].content + '|' : '';\n if (existingIds.indexOf(fromNodeId) === -1) {\n existingIds.push(fromNodeId);\n }\n else {\n fromNodeShape = '';\n }\n if (existingIds.indexOf(toNodeId) === -1) {\n existingIds.push(toNodeId);\n }\n else {\n toNodeShape = '';\n }\n var arrow = _this.arrowType(edge);\n mermaidCode += \" \" + fromNodeId + fromNodeShape + \" \" + arrow + condition + \" \" + toNodeId + toNodeShape + \"\\n\";\n });\n // Add styles for each node\n graph.nodes.forEach(function (node) {\n var nodeId = node.id;\n var fill = node.style.fill;\n var stroke = node.style.strokeColor;\n var strokeWidth = node.style.strokeWidth + \"px\";\n mermaidCode += \" style \" + nodeId + \" fill:\" + fill + \",stroke:\" + stroke + \",stroke-width:\" + strokeWidth + \";\\n\";\n });\n return mermaidCode;\n };\n // Method to get the arrow type from connector\n Diagram.prototype.arrowType = function (edge) {\n var decoratorShape = edge.targetDecorator.shape;\n var strokeDash = edge.style.strokeDashArray;\n var strokeWidth = edge.style.strokeWidth;\n var opacity = edge.style.opacity;\n var arrow = '';\n if (opacity < 1) {\n arrow = '~~~';\n }\n else if (strokeDash !== '') {\n arrow = '-.->';\n }\n else if (decoratorShape === 'Arrow') {\n arrow = strokeWidth > 1 ? '==>' : '-->';\n }\n else if (decoratorShape === 'None') {\n arrow = '---';\n }\n else {\n arrow = '-->';\n }\n return arrow;\n };\n // Method to get the node shape\n Diagram.prototype.getNodeShape = function (node) {\n var label = node.annotations.length > 0 ? node.annotations[0].content : '';\n var shape = node.shape.shape;\n if (shape) {\n switch (shape) {\n case 'Terminator':\n return '([' + label + '])';\n case 'Process':\n return '[' + label + ']';\n case 'Decision':\n return '{' + label + '}';\n case 'Parallelogram':\n return '[/' + label + '/]';\n case 'Ellipse':\n return '((' + label + '))';\n case 'PreDefinedProcess':\n return '[[' + label + ']]';\n default:\n return '[' + label + ']';\n }\n }\n else {\n var data = node.shape.data;\n if (data === 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0') {\n return '(((' + label + ')))';\n }\n else if (data === 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0') {\n return '[/' + label + '\\\\]';\n }\n else if (data === 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1') {\n return '[(' + label + ')]';\n }\n else if (data === 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0') {\n return '[\\\\' + label + '\\\\]';\n }\n else if (data === 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0') {\n return '[\\\\' + label + '/]';\n }\n else if (data === 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0') {\n return '{{' + label + '}}';\n }\n else {\n return '>' + label + ']';\n }\n }\n };\n /** Loads a diagram from a string containing Mermaid syntax.\n * This method parses the provided Mermaid text data and updates the current diagram accordingly.\n * Currently, only Mindmap and Flowchart diagrams can be loaded.\n * To render the diagram properly, you should set the `Layout.type` to either `MindMap` or `FlowChart`, and ensure that the respective modules are injected.\n * @param {string} data - The Mermaid text data representing the diagram to be loaded.\n * @returns {void} - No return value. The method updates the diagram in place.\n */\n Diagram.prototype.loadDiagramFromMermaid = function (data) {\n if (this.layout && this.layout.type === 'Flowchart' && this.flowchartLayoutModule) {\n //Task 896394: To load the mermaid data as flowchart\n this.convertMermaidToFlowChart(data);\n }\n else if (this.layout && this.layout.type === 'MindMap' && this.mindMapChartModule) {\n //Task 900266: To load the mermaid data as mindmap\n this.convertMermaidToMindmap(data);\n }\n else {\n console.warn('[WARNING] :: Module \"FlowchartLayout\" or \"MindMap\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Counts the number of leading spaces in the specified string.\n * @param {string} word The string to check for leading spaces.\n * @returns { number } The number of leading spaces.\n */\n Diagram.prototype.countLeadingSpaces = function (word) {\n var i = 0;\n var length = word.length;\n // Loop through the string to count leading spaces\n while (i < length && word.charAt(i) === ' ') {\n i++;\n }\n // Return the number of leading spaces\n return i;\n };\n Diagram.prototype.convertMermaidToMindmap = function (data) {\n if (data && this.layout && this.layout.type === 'MindMap' && this.mindMapChartModule) {\n var dataSource = data.split(/\\r?\\n/).filter(function (s) { return s.trim().length > 0; });\n this.clear();\n this.mermaidNodeBaseCollection = [];\n var dataStack = [];\n var root = null;\n var previousItem = { text: '', children: [], currentLevel: 0, branch: 'Left' };\n var spaceAndItsLevels = [];\n var startLevel = 1;\n var haveBackticks = false;\n var isEndBackticks = false;\n var canCreateMindMap = false;\n if (dataSource.length > 0) {\n var _loop_1 = function (index) {\n var word = dataSource[parseInt(index.toString(), 10)];\n var level = 0;\n var text = '';\n var levelChar = ' ';\n var leadingWhiteSpace = this_1.countLeadingSpaces(word);\n var isStartBackticks = word.includes('\"`');\n isEndBackticks = word.includes('`\"');\n haveBackticks = isStartBackticks ? true : haveBackticks;\n canCreateMindMap = (!haveBackticks && !canCreateMindMap) ? leadingWhiteSpace === 0 && index > 0 : canCreateMindMap;\n if (haveBackticks && isEndBackticks && !isStartBackticks) {\n previousItem.text += '\\n' + word;\n haveBackticks = false;\n return \"continue\";\n }\n if (!isStartBackticks && haveBackticks) {\n previousItem.text += '\\n' + word;\n return \"continue\";\n }\n haveBackticks = isEndBackticks ? false : haveBackticks;\n if (word.length > 0 && ((/\\s/.test(word[0]) && index > 0) || (leadingWhiteSpace === 0))) {\n var spaceIndex = spaceAndItsLevels.findIndex(function (space) {\n return space.space === leadingWhiteSpace.toString();\n });\n if (spaceIndex !== -1) {\n for (var i = spaceAndItsLevels.length - 1; i >= 0; i--) {\n var currentSpace = spaceAndItsLevels[parseInt(i.toString(), 10)];\n var currentKey = parseFloat(currentSpace.space);\n if (currentKey > leadingWhiteSpace) {\n spaceAndItsLevels.splice(i, 1); // Remove the element at index i\n }\n else if (currentKey < leadingWhiteSpace) {\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: currentSpace.level + 1 });\n level = currentSpace.level + 1;\n break;\n }\n else if (currentKey === leadingWhiteSpace) {\n level = currentSpace.level;\n break;\n }\n }\n }\n else {\n if (spaceAndItsLevels.length === 0) {\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: startLevel });\n level = startLevel;\n }\n else {\n for (var i = spaceAndItsLevels.length - 1; i >= 0; i--) {\n var currentElement = spaceAndItsLevels[parseInt(i.toString(), 10)];\n var currentKey = parseFloat(currentElement.space);\n if (currentKey > leadingWhiteSpace) {\n spaceAndItsLevels.splice(i, 1); // Remove the element at index i\n }\n else {\n var lastElement = spaceAndItsLevels[spaceAndItsLevels.length - 1];\n spaceAndItsLevels.push({ space: leadingWhiteSpace.toString(), level: lastElement.level + 1 });\n break;\n }\n }\n level = spaceAndItsLevels[spaceAndItsLevels.length - 1].level;\n }\n }\n text = word.trim().replace(/^[+-]/, '');\n levelChar = ' ';\n }\n var currentItem = {\n text: text,\n branch: undefined,\n children: [],\n currentLevel: index === 0 ? 0 : level - 1\n };\n if (dataStack.length > 0) {\n while (dataStack.length >= level) {\n if (dataStack.length === 0) {\n break;\n }\n dataStack.pop();\n }\n if (dataStack.length > 0) {\n dataStack[dataStack.length - 1].children.push(currentItem);\n }\n }\n else {\n root = currentItem;\n }\n dataStack.push(currentItem);\n previousItem = currentItem;\n };\n var this_1 = this;\n for (var index = 0; index < dataSource.length; index++) {\n _loop_1(index);\n }\n // Create dataSource\n var hierarchyDataSource = dataStack[0];\n if (hierarchyDataSource.text === 'mindmap' || canCreateMindMap) {\n if (canCreateMindMap) {\n var nodeDetails = this.getNodeDetails(hierarchyDataSource);\n var nodeObj = {\n id: nodeDetails.nodeId,\n shape: nodeDetails.nodeShapeData,\n annotations: [\n { content: nodeDetails.annotationContent }\n ]\n };\n this.mermaidNodeBaseCollection.push(nodeObj);\n this.createDataSource(hierarchyDataSource.children, hierarchyDataSource, nodeObj.id);\n }\n else {\n var hierarchyData = hierarchyDataSource.children[0];\n var nodeData = this.getNodeDetails(hierarchyData);\n var node = {\n id: nodeData.nodeId,\n shape: nodeData.nodeShapeData,\n annotations: [\n { content: nodeData.annotationContent }\n ]\n };\n this.mermaidNodeBaseCollection.push(node);\n this.createDataSource(hierarchyData.children, hierarchyData, node.id);\n }\n this.addElements(this.mermaidNodeBaseCollection);\n this.doLayout();\n }\n }\n }\n };\n /**\n * Creates a data source for the Mermaid diagram based on the provided hierarchy data.\n * @param { HierarchyData[] } data The list of hierarchy data to process.\n * @param { HierarchyData } parent The parent hierarchy data.\n * @param { string } parentId The ID of the parent node.\n * @returns { void }\n */\n Diagram.prototype.createDataSource = function (data, parent, parentId) {\n var index = 0;\n while (index < data.length) {\n var child = data[parseInt(index.toString(), 10)];\n var nodeData = this.getNodeDetails(child);\n var node = {\n id: nodeData.nodeId,\n shape: nodeData.nodeShapeData,\n annotations: [\n { content: nodeData.annotationContent }\n ]\n };\n var connector = {\n sourceID: parentId,\n targetID: node.id\n };\n this.mermaidNodeBaseCollection.push(node);\n this.mermaidNodeBaseCollection.push(connector);\n this.createDataSource(child.children, child, node.id);\n index++;\n }\n };\n /**\n * Retrieves the node details based on the provided hierarchy data for a mermaid diagram.\n * @param { HierarchyData } hierarchyData The hierarchy data.\n * @returns { NodeData } The node details.\n */\n Diagram.prototype.getNodeDetails = function (hierarchyData) {\n var pattern = /^(.*?)\\s*([\\\\[\\\\(\\\\{][\\s\\S]*?[\\]\\\\)\\\\}]|[)\\\\(][\\s\\S]*|[)\\\\{][\\s\\S]*|[)\\\\(][^{}()\\\\[\\]]*$)/;\n var annotationContent = hierarchyData.text;\n var match = annotationContent.match(pattern);\n var nodeId = randomId();\n var annotationText = hierarchyData.text;\n var shape = { type: 'Basic', shape: 'Rectangle' };\n if (match) {\n nodeId = match[1] ? match[1] : nodeId;\n var content = match[2].trim().replace(/[\"`]/g, '');\n var firstCharacter = content.charAt(0);\n if (firstCharacter === '[') {\n annotationText = content.slice(1, -1);\n }\n else if (firstCharacter === '(') {\n if (content.startsWith('((')) {\n annotationText = content.slice(2, -1);\n }\n else {\n annotationText = content.slice(1, -1);\n }\n shape = content.startsWith('((') ?\n { type: 'Basic', shape: 'Ellipse' } :\n { type: 'Flow', shape: 'Terminator' };\n }\n else if (firstCharacter === ')') {\n if (content.startsWith('))')) {\n annotationText = content.slice(2, -2);\n }\n else {\n annotationText = content.slice(1, -1);\n }\n shape = content.startsWith('))') ?\n { type: 'Path', data: this.bangShape } :\n { type: 'Path', data: this.cloudShape };\n }\n else if (firstCharacter === '{') {\n annotationText = content.slice(2, -1);\n shape = { type: 'Basic', shape: 'Hexagon' };\n }\n }\n return {\n nodeId: nodeId,\n annotationContent: annotationText,\n nodeShapeData: shape\n };\n };\n /**\n * To convert the Mermaid data to flowchart diagram\n * @param {string} data - The Mermaid data to be converted to a flowchart diagram.\n * @returns {void}\n */\n Diagram.prototype.convertMermaidToFlowChart = function (data) {\n var dataCollection = [];\n this.clear();\n var lines = data.trim().split('\\n');\n for (var i = 1; i < lines.length; i++) {\n var line = lines[parseInt(i.toString(), 10)];\n line = line.trim();\n if (line !== '') {\n if (line.startsWith('style')) {\n this.parseStyle(line, dataCollection);\n }\n else {\n var lineSplit = this.getLineSplitting(line);\n var parts = [lineSplit[0], lineSplit[1]];\n var data_1 = this.getNodeData(parts, dataCollection, lineSplit[2]);\n if (data_1.length > 0) {\n var lastItem = data_1[data_1.length - 1];\n lastItem.arrowType = lineSplit[2];\n if (lineSplit[3] !== '') {\n if (lastItem.label && lastItem.label.some(function (str) { return str.trim().length > 0; })) {\n lastItem.label.push(lineSplit[3]);\n }\n else {\n lastItem.label = [];\n lastItem.label[lastItem.parentId.length - 1] = lineSplit[3];\n }\n }\n }\n data_1.filter(function (flowData) {\n return flowData.parentId && flowData.parentId.length === 0;\n }).forEach(function (node) {\n node.parentId = null;\n });\n dataCollection = dataCollection.concat(data_1);\n }\n }\n }\n this.createFlowChart(dataCollection);\n this.doLayout();\n this.clearHistory();\n };\n /**\n * To convert the dataCollection into flowchart nodes and connectors\n * @param { FlowChartData[] } dataCollection - The data collection to be converted to flowchart nodes and connectors.\n * @returns {void}\n */\n Diagram.prototype.createFlowChart = function (dataCollection) {\n var flowchartNodesAndConnectors = [];\n for (var n = 0; n < dataCollection.length; n++) {\n var data = dataCollection[parseInt(n.toString(), 10)];\n var node = {\n id: data.id,\n shape: data.shape,\n annotations: [{ content: data.name }],\n style: { fill: data.color, strokeColor: data.stroke, strokeWidth: data.strokeWidth }\n };\n flowchartNodesAndConnectors.push(node);\n }\n for (var c = 0; c < dataCollection.length; c++) {\n var data = dataCollection[parseInt(c.toString(), 10)];\n var connectorStyle = getConnectorArrowType(data);\n if (data.parentId && data.parentId.length > 1) {\n for (var i = 0; i < data.parentId.length; i++) {\n var connector = {\n id: randomId(),\n sourceID: data.parentId[parseInt(i.toString(), 10)],\n targetID: data.id,\n annotations: [{ content: data.label ? data.label[parseInt(i.toString(), 10)] : '' }],\n style: {\n strokeWidth: connectorStyle.strokeWidth ? connectorStyle.strokeWidth : 1,\n strokeDashArray: connectorStyle.strokeDashArray ? connectorStyle.strokeDashArray : '',\n opacity: connectorStyle.opacity !== undefined ? connectorStyle.opacity : 1\n },\n targetDecorator: { shape: connectorStyle.targetDecorator }\n };\n flowchartNodesAndConnectors.push(connector);\n }\n }\n else if (data.parentId && data.parentId.length === 1) {\n var connector = {\n id: randomId(),\n sourceID: data.parentId[0],\n targetID: data.id,\n annotations: [{ content: data.label ? data.label[0] : '' }],\n style: {\n strokeWidth: connectorStyle.strokeWidth ? connectorStyle.strokeWidth : 1,\n strokeDashArray: connectorStyle.strokeDashArray ? connectorStyle.strokeDashArray : '',\n opacity: connectorStyle.opacity !== undefined ? connectorStyle.opacity : 1\n },\n targetDecorator: { shape: connectorStyle.targetDecorator }\n };\n flowchartNodesAndConnectors.push(connector);\n }\n }\n this.addElements(flowchartNodesAndConnectors);\n };\n /**\n * Splits the line based on arrow\n * @param { string } line - line to split\n * @returns { string[] } - Splitted line\n */\n Diagram.prototype.getLineSplitting = function (line) {\n var leftPart;\n var rightPart;\n var arrowName;\n var arrowText = '';\n // RegEx to split the line based on arrow\n var regex = /^(.*?)\\s*(-->|---|--\\s*.*?\\s*-->|~~~|==>|===|==\\s*.*?\\s*==>|\\s*-\\.\\s*->|\\s*-\\.\\s*-|\\s*-\\.\\s*.*?\\s*\\.\\s*->|\\s*-\\..*?\\.\\s*->)(.*)$/;\n var match = line.match(regex);\n if (match) {\n leftPart = match[1].trim();\n var arrow = match[2].trim();\n rightPart = match[3].trim();\n // Detect and extract arrow text\n var arrowRegex = /(-\\.|\\\\-\\\\-|==|--|~~)(.*?)(\\1>|\\.->|==>|\\\\->|~~>)/;\n var arrowTextMatch = arrow.match(arrowRegex);\n var arrowDetails = void 0;\n var arrowType = '';\n if (arrowTextMatch) {\n var text = arrowTextMatch[2].trim() || null;\n var arrowType_1 = arrowTextMatch[1] + arrowTextMatch[3];\n arrowDetails = {\n text: text,\n arrowType: arrowType_1\n };\n }\n else {\n arrowDetails = {\n text: null,\n arrowType: arrow\n };\n }\n arrowText = arrowDetails.text !== null ? arrowDetails.text : '';\n arrowType = arrowDetails.arrowType;\n // Identify arrow type\n if (arrowType.includes('-->')) {\n arrowName = 'single-line-arrow';\n }\n else if (arrowType.includes('---')) {\n arrowName = 'single-line';\n }\n else if (arrowType.includes('==>')) {\n arrowName = 'double-line-arrow';\n }\n else if (arrowType.includes('==')) {\n arrowName = 'double-line';\n }\n else if (arrowType.includes('~~~')) {\n arrowName = 'wiggly-arrow';\n }\n else if (arrowType.includes('-.->') || arrowType.includes('.->')) {\n arrowName = 'dotted-arrow';\n }\n else if (arrowType.includes('-.-') || arrowType.includes('.-')) {\n arrowName = 'dotted';\n }\n else {\n arrowName = 'single-line-arrow';\n }\n }\n return [leftPart, rightPart, arrowName, arrowText];\n };\n /**\n * To parse the style of the node\n * @param { string } line - line to parse\n * @param { FlowChartData[] } dataCollection - data collection\n * @returns { void }\n */\n Diagram.prototype.parseStyle = function (line, dataCollection) {\n var styleRegex = /^style\\s+(\\w+)\\s+fill:([^,]+),stroke:([^,]+),stroke-width:(\\d+)px;/;\n if (line.startsWith('style')) {\n var match = line.match(styleRegex);\n if (match) {\n var id = match[1];\n var fill = match[2];\n var stroke = match[3];\n var strokeWidth = parseInt(match[4], 10);\n var data_2 = {\n id: id,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth\n };\n var matchData = dataCollection.filter(function (x) { return x.id === data_2.id; });\n matchData[0].color = data_2.fill;\n matchData[0].stroke = data_2.stroke;\n matchData[0].strokeWidth = data_2.strokeWidth;\n }\n }\n };\n /**\n * @param {string[]} lines - The lines to be processed.\n * @param {FlowChartData[]} dataCollection - The data collection to be updated.\n * @param {string} arrowType - The type of arrow.\n * @returns { void }\n */\n Diagram.prototype.getNodeData = function (lines, dataCollection, arrowType) {\n var dataArray = [];\n var firstId = null;\n var secondId = null;\n var isExistCount = 0;\n var connectorLabel = '';\n var _loop_2 = function (i) {\n var line1 = lines[parseInt(i.toString(), 10)];\n var text = this_2.splitNested(line1);\n if (text[0].includes('|')) {\n // Extract content outside the '|'\n var match = text[0].match(/\\|([^|]*)\\|/);\n if (match) {\n connectorLabel = match[1];\n }\n var parts = text[0].split('|');\n if (parts.length >= 3) {\n text[0] = parts[2].trim();\n }\n }\n var id = text[0].trim();\n if (i === 0) {\n firstId = id;\n }\n else {\n secondId = id;\n }\n var exsist = dataCollection.find(function (data) { return data.id === id; });\n if (!exsist) {\n var labelShape = text.length > 1 ? text[1] : text[0];\n var shape = this_2.getShape(labelShape);\n var label = labelShape.replace(/[\\\\[\\]\\\\(\\\\)\\\\{\\\\}\\\\{\\\\}\\\\/>]/g, '');\n var data = {\n id: id,\n name: label,\n shape: shape,\n color: 'white',\n parentId: []\n };\n dataArray.push(data);\n }\n else {\n isExistCount++;\n }\n };\n var this_2 = this;\n for (var i = 0; i < lines.length; i++) {\n _loop_2(i);\n }\n if (dataArray.length) {\n var lastItem = dataArray[dataArray.length - 1];\n if (lastItem.id !== firstId) {\n lastItem.parentId.push(firstId);\n if (lastItem.label) {\n lastItem.label.push(connectorLabel);\n }\n else {\n lastItem.label = [connectorLabel];\n }\n }\n else {\n var data = dataCollection.find(function (data) { return data.id === secondId; });\n if (data.parentId) {\n data.parentId.push(firstId);\n }\n else {\n data.parentId = [firstId];\n }\n if (data.label) {\n data.label.push(connectorLabel);\n }\n else {\n data.label = [connectorLabel];\n }\n }\n }\n else if (isExistCount === 2) {\n var filteredData = dataCollection.filter(function (flowData) { return flowData.id === secondId; })[0];\n filteredData.parentId = filteredData.parentId || [];\n filteredData.parentId.push(firstId);\n filteredData.label = filteredData.label || [];\n filteredData.label[filteredData.parentId.length - 1] = connectorLabel;\n }\n if (arrowType) {\n var filteredData = dataCollection.filter(function (flowData) { return flowData.id === secondId; })[0];\n if (filteredData) {\n filteredData.arrowType = arrowType;\n }\n }\n return dataArray;\n };\n /**\n * To split the text based on the nested brackets\n * @param {string} text - The text to be split based on nested brackets.\n * @returns {string[]} An array of strings split based on the nested brackets.\n */\n Diagram.prototype.splitNested = function (text) {\n var result = [];\n var current = '';\n var level = 0;\n var delimiter = '';\n for (var _i = 0, text_1 = text; _i < text_1.length; _i++) {\n var char = text_1[_i];\n if (char === '[' || char === '{' || char === '(' || char === '>') {\n if (level === 0) {\n if (current.trim().length > 0) {\n result.push(current.trim());\n }\n current = char; // Include the delimiter in the current part\n delimiter = char;\n level++;\n }\n else {\n current += char;\n level++;\n }\n }\n else if (char === ']' || char === '}' || char === ')') {\n if (level === 1 && char === delimiter) {\n current += char; // Include the delimiter in the current part\n result.push(current.trim());\n current = '';\n level--;\n }\n else if (level > 1) {\n current += char;\n level--;\n }\n else {\n current += char;\n }\n }\n else {\n current += char;\n }\n }\n if (current.trim().length > 0) {\n result.push(current.trim());\n }\n return result;\n };\n // Get shape based on the bracket\n Diagram.prototype.getShape = function (text) {\n var shape = {};\n if (text.startsWith('(((')) {\n shape = { type: 'Path', data: 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0' };\n }\n else if (text.startsWith('((')) {\n shape = { shape: 'Ellipse', type: 'Basic' };\n }\n else if (text.startsWith('([')) {\n shape = { type: 'Flow', shape: 'Terminator' };\n }\n else if (text.startsWith('(')) {\n shape = { type: 'Flow', shape: 'Process' };\n }\n else if (text.startsWith('[[')) {\n shape = { type: 'Flow', shape: 'PreDefinedProcess' };\n }\n else if (text.startsWith('[/')) {\n if (text.endsWith('/]')) {\n shape = { type: 'Basic', shape: 'Parallelogram' };\n }\n else {\n shape = { type: 'Path', data: 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0' };\n }\n }\n else if (text.startsWith('[(')) {\n shape = { type: 'Path', data: 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1' };\n }\n else if (text.startsWith('[\\\\')) {\n if (text.endsWith('\\\\]')) {\n shape = { type: 'Path', data: 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0' };\n }\n else {\n shape = { type: 'Path', data: 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0' };\n }\n }\n else if (text.startsWith('[')) {\n shape = { type: 'Basic', shape: 'Rectangle' };\n }\n else if (text.startsWith('{{')) {\n shape = { type: 'Path', data: 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0' };\n }\n else if (text.startsWith('{')) {\n shape = { type: 'Flow', shape: 'Decision' };\n }\n else if (text.startsWith('>')) {\n shape = { type: 'Path', data: 'M 0 0 L 8 0 L 8 2 L 0 2 L 2 1 L 0 0' };\n }\n return shape;\n };\n /**\n * To get the html diagram content\n *\n * @returns { string } getDirection method .\\\n * @param {StyleSheetList} styleSheets - defines the collection of style files to be considered while exporting.\n */\n Diagram.prototype.getDiagramContent = function (styleSheets) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.getDiagramContent(styleSheets);\n return data;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return '';\n }\n };\n /**\n * Exports a diagram as a image.\n *\n * @returns { void } Exports a diagram as a image.\\\n * @param {string} image - A string representing the image content to be exported.\n * @param {IExportOptions} options -An object defining the properties of the image export.\n */\n Diagram.prototype.exportImage = function (image, options) {\n if (this.printandExportModule) {\n this.printandExportModule.exportImages(image, options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Prints the native or HTML nodes of the diagram as an image.\n *\n * @returns { void } Prints the native or HTML nodes of the diagram as an image. \\\n * @param {string} image - A string that defines the image content to be printed.\n * @param {IExportOptions} options - An IExportOptions object that defines the properties of the image and printing options.\n */\n Diagram.prototype.printImage = function (image, options) {\n if (this.printandExportModule) {\n options.printOptions = true;\n this.printandExportModule.exportImages(image, options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Define a limit on the number of history entries that the diagram's history manager can store. This can help manage memory usage and control the undo/redo history size. Or\n * Sets the limit for the history entries in the diagram.\n *\n * @returns { void } Define a limit on the number of history entries that the diagram's history manager can store. This can help manage memory usage and control the undo/redo history size. Or Sets the limit for the history entries in the diagram.\n * @param {number} stackLimit - The limit for the history manager's stack.\n */\n Diagram.prototype.setStackLimit = function (stackLimit) {\n if (this.undoRedoModule && stackLimit) {\n this.historyManager.stackLimit = stackLimit;\n this.undoRedoModule.applyLimit(this.historyManager.currentEntry, stackLimit, this, true);\n }\n };\n /**\n * Clears the history of the diagram, removing all the recorded actions from the undo and redo history.\n * @returns { void } Clears the history of the diagram, removing all the recorded actions from the undo and redo history.\\\n */\n Diagram.prototype.clearHistory = function () {\n if (this.undoRedoModule) {\n this.undoRedoModule.clearHistory(this);\n }\n };\n /**\n * Retrieves the bounding rectangle that encloses the entire diagram.\n * @returns { void } TRetrieves the bounding rectangle that encloses the entire diagram. \\\n */\n Diagram.prototype.getDiagramBounds = function () {\n if (this.printandExportModule) {\n var bounds = this.printandExportModule.getDiagramBounds('', {});\n bounds.width = bounds.width > this.scrollSettings.viewPortWidth ?\n bounds.width + (bounds.x > 0 ? bounds.x : 0) : this.scrollSettings.viewPortWidth;\n bounds.height = bounds.height > this.scrollSettings.viewPortHeight ?\n bounds.height + (bounds.y > 0 ? bounds.y : 0) : this.scrollSettings.viewPortHeight;\n bounds.x = bounds.x > 0 ? 0 : bounds.x;\n bounds.y = bounds.y > 0 ? 0 : bounds.y;\n return bounds;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return new Rect();\n }\n };\n /**\n * Exports the diagram as an image or SVG element based on the specified options.\n *\n * @returns { void } Exports the diagram as an image or SVG element based on the specified options.\\\n * @param {IExportOptions} options - An object defining how the diagram image should be exported.\n */\n Diagram.prototype.exportDiagram = function (options) {\n if (this.printandExportModule) {\n var data = this.printandExportModule.exportDiagram(options);\n return data;\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n return '';\n }\n };\n /**\n * Prints the diagram.\n *\n * @returns { void } Prints the diagram.\\\n * @param {IPrintOptions} optons - An IPrintOptions object that defines how the diagram is to be printed.\n */\n Diagram.prototype.print = function (options) {\n if (this.printandExportModule) {\n this.printandExportModule.print(options);\n }\n else {\n console.warn('[WARNING] :: Module \"PrintAndExport\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Adds ports to a node or connector at runtime. \\\n *\n * @returns { void } Adds ports to a node or connector at runtime.\\\n * @param { Node | ConnectorModel} obj - object representing the node or connector to which ports will be added.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} ports - objects representing the ports to be added.\n * @blazorArgsType obj|DiagramNode\n */\n Diagram.prototype.addPorts = function (obj, ports) {\n this.protectPropertyChange(true);\n var portCollection = [];\n var isAddPortInServer = true;\n var exist = false;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n var newObj;\n if (ports.length > 1) {\n this.startGroupAction();\n }\n var _loop_3 = function (i) {\n //907755 - Issue in add/remove port on runtime\n exist = obj.ports.some(function (port) { return port.id === ports[parseInt(i.toString(), 10)].id; });\n if (exist) {\n return \"continue\";\n }\n if (obj instanceof Node) {\n newObj = new PointPort(obj, 'ports', ports[parseInt(i.toString(), 10)], true);\n obj.ports.push(newObj);\n }\n else if (obj instanceof Connector) {\n newObj = new PathPort(obj, 'ports', ports[parseInt(i.toString(), 10)], true);\n obj.ports.push(newObj);\n }\n //Removed isBlazor code\n if (obj.children) {\n // 907773: Add port to Group at runtime Issue Fix\n var container = obj.wrapper;\n for (var k = 0; k < container.children.length; k++) {\n var wrapper = container.children[parseInt(k.toString(), 10)];\n if ((wrapper.id).match(container.id)) {\n obj.initPort(this_3.getDescription, wrapper, newObj);\n break;\n }\n }\n }\n else {\n var canvas = obj.wrapper;\n if (obj instanceof Node) {\n canvas.children.push(obj.initPortWrapper(obj.ports[obj.ports.length - 1]));\n }\n else if (obj instanceof Connector) {\n var points = obj.type === 'Bezier' ? obj.intermediatePoints : obj.getConnectorPoints(obj.type);\n points = obj.clipDecorators(obj, points);\n var bounds = Rect.toBounds(points);\n // eslint-disable-next-line max-len\n canvas.children.push(obj.initPort(obj.ports[obj.ports.length - 1], points, bounds, undefined));\n }\n }\n if (!(this_3.diagramActions & DiagramAction.UndoRedo) && !(this_3.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this_3.addHistoryEntry(entry);\n }\n };\n var this_3 = this;\n for (var i = 0; i < ports.length; i++) {\n _loop_3(i);\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n //Removed isBlazor code\n obj.wrapper.measure(new Size(obj.width, obj.height));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n };\n /**\n * Adds constraints at run time. \\\n *\n * @returns { void }Add constraints at run time .\\\n * @param {number} constraintsType - The source value for constraints.\n * @param {number} constraintsValue - The target value for constraints.\n *\n */\n Diagram.prototype.addConstraints = function (constraintsType, constraintsValue) {\n return constraintsType | constraintsValue;\n };\n /**\n * Remove constraints at run time. \\\n *\n * @returns { void }Remove constraints at run time.\\\n * @param {number} constraintsType - The type of constraints to be removed.\n * @param {number} constraintsValue - The value of constraints to be removed.\n *\n */\n Diagram.prototype.removeConstraints = function (constraintsType, constraintsValue) {\n return constraintsType & ~constraintsValue;\n };\n /**\n * Add labels in node at the run time in the blazor platform \\\n *\n * @returns { void } Add labels in node at the run time in the blazor platform \\\n * @param {NodeModel} obj - provide the obj value.\n * @param {ShapeAnnotationModel[]} labels - provide the labels value.\n *\n */\n Diagram.prototype.addNodeLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Adds labels to a connector at runtime in the Blazor platform.\\\n *\n * @returns { void } Adds labels to a connector at runtime in the Blazor platform.\\\n * @param {ConnectorModel} obj - The connector to which labels will be added.\n * @param {PathAnnotationModel[]} labels - An array of labels to add to the connector.\n *\n */\n Diagram.prototype.addConnectorLabels = function (obj, labels) {\n this.addLabels(obj, labels);\n };\n /**\n * Adds labels to a node or connector at runtime. \\\n *\n * @returns { void } Adds labels to a node or connector at runtime.\\\n * @param {NodeModel | ConnectorModel} obj - The node or connector to which labels will be added.\n * @param {ShapeAnnotationModel[] | PathAnnotation[] | PathAnnotationModel[]} labels - An array of label objects to be added.\n *\n */\n Diagram.prototype.addLabels = function (obj, labels) {\n this.protectPropertyChange(true);\n var isAddLabelInServer = true;\n var annotationCollection = [];\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n var canvas = obj.wrapper;\n var newObj;\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var i = 0; i < labels.length; i++) {\n if (obj instanceof Node) {\n newObj = new ShapeAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n //Removed isBlazor code\n if (obj.children) {\n var node = obj;\n for (var i_2 = 0; i_2 < node.wrapper.children.length; i_2++) {\n if (node.wrapper.children[parseInt(i_2.toString(), 10)].id === node.id + 'group_container') {\n var container = node.wrapper.children[parseInt(i_2.toString(), 10)];\n container.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n }\n else {\n canvas.children.push(obj.initAnnotationWrapper(obj.annotations[obj.annotations.length - 1], this.element.id));\n }\n }\n else if (obj instanceof Connector) {\n newObj = new PathAnnotation(obj, 'annotations', labels[parseInt(i.toString(), 10)], true);\n obj.annotations.push(newObj);\n //Removed isBlazor code\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n canvas.children.push(obj.getAnnotationElement(obj.annotations[obj.annotations.length - 1], obj.intermediatePoints, bounds, this.getDescription, this.element.id));\n }\n if (!(this.diagramActions & DiagramAction.UndoRedo) && !(this.diagramActions & DiagramAction.Group)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Insert', undoObject: cloneObject(newObj),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n //Removed isBlazor code\n obj.wrapper.measure(new Size(canvas.width, canvas.height));\n obj.wrapper.arrange(canvas.desiredSize);\n this.updateDiagramObject(obj);\n this.protectPropertyChange(false);\n //EJ2-908488 - Added for Update annotations in overview\n this.refreshCanvasLayers();\n };\n /**\n *addChildToUmlNode - Add methods, members and attributes into a UML class runtime. \\\n *\n * @returns { void } Add.\n * @param {NodeModel} node - Specifies the existing UmlClass node in the diagram to which you intend to add child elements.\n * @param {UmlClassMethodModel | UmlClassAttributeModel | UmlEnumerationMemberModel} child - Specify the child elements, such as attributes, members, or methods, to be added to the UML class.\n * @param {UmlClassChildType} umlChildType - Specify the enum that you intend to add to the UML class.\n *\n */\n Diagram.prototype.addChildToUmlNode = function (node, child, umlChildType) {\n var classifier;\n var method;\n var attribute;\n var member;\n var textWrap = 'NoWrap';\n //Members and attributes are exclusively added to the classShape and interfaceShape within the UML node\n if (node.shape.classifier === 'Class' || node.shape.classifier === 'Interface') {\n if (umlChildType === 'Method') {\n method = new UmlClassMethod(node, '', child);\n if (node.shape.classifier === 'Class') {\n node.shape.classShape.methods.push(method);\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Interface') {\n node.shape.interfaceShape.methods.push(method);\n classifier = node.shape.interfaceShape;\n }\n //this method triggers for adding methods at runtime\n getClassMembersChild(node, this, classifier, textWrap);\n }\n else if (umlChildType === 'Attribute') {\n attribute = new UmlClassAttribute(node, '', child);\n if (node.shape.classifier === 'Class') {\n node.shape.classShape.attributes.push(attribute);\n classifier = node.shape.classShape;\n }\n else if (node.shape.classifier === 'Interface') {\n node.shape.interfaceShape.attributes.push(attribute);\n classifier = node.shape.interfaceShape;\n }\n //this method triggers for adding attributes at runtime\n getClassAttributesChild(node, this, classifier, textWrap);\n }\n }\n else if (node.shape.classifier === 'Enumeration' && umlChildType === 'Member') {\n member = new UmlEnumerationMember(node, '', child);\n node.shape.enumerationShape.members.push(member);\n classifier = node.shape.enumerationShape;\n //this method triggers for adding members at runtime\n getClassNodesChild(node, this, classifier, textWrap);\n }\n //The clearSelection methods is invoked to update the newly added child type dynamically at runtime\n this.clearSelection();\n this.updateSelector();\n };\n /**\n * Dynamically add lanes to a swimlane at runtime. You can specify the swimlane (node), the lanes to be added (lane), and an optional index to determine where the lanes should be inserted. \\\n *\n * @returns { void } Dynamically add lanes to a swimlane at runtime. You can specify the swimlane (node), the lanes to be added (lane), and an optional index to determine where the lanes should be inserted.\\\n * @param {NodeModel} node - The swimlane to which lanes will be added.\n * @param {LaneModel[]} lane -An array of LaneModel objects representing the lanes to be added.\n * @param {number} index - The index at which the lanes should be inserted.\n *\n */\n Diagram.prototype.addLanes = function (node, lane, index) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < lane.length; i++) {\n addLane(this, node, lane[parseInt(i.toString(), 10)], index);\n if (index !== undefined) {\n index += 1;\n }\n }\n this.updateDiagramElementQuad();\n };\n /**\n * Adds phases to a swimlane at runtime. \\\n *\n * @returns { void } Adds phases to a swimlane at runtime. \\\n * @param {NodeModel} node - object representing the swimlane to which phases will be added.\n * @param {PhaseModel[]} phases - objects representing the phases to be added.\n *\n */\n Diagram.prototype.addPhases = function (node, phases) {\n node = this.nameTable[node.id] || node;\n for (var i = 0; i < phases.length; i++) {\n //897967-Exception thrown when adding Phases at runtime and perform undo Action\n this.protectPropertyChange(true);\n addPhase(this, node, phases[parseInt(i.toString(), 10)]);\n this.protectPropertyChange(false);\n }\n this.updateDiagramElementQuad();\n };\n /**\n *Removes a dynamic lane from a swimlane at runtime. \\\n *\n * @returns { void } Removes a dynamic lane from a swimlane at runtime.\\\n * @param {NodeModel} node - representing the swimlane to remove the lane from.\n * @param {LaneModel} lane - representing the dynamic lane to be removed.\n *\n */\n Diagram.prototype.removeLane = function (node, lane) {\n removeLane(this, undefined, node, lane);\n this.updateDiagramElementQuad();\n };\n /**\n *Removes a phase from a swimlane at runtime.\\\n *\n * @returns { void } Removes a phase from a swimlane at runtime.\\\n * @param {NodeModel} node - representing the swimlane to remove the phase from.\n * @param {PhaseModel} phase - representing the phase to be removed.\n *\n */\n Diagram.prototype.removePhase = function (node, phase) {\n removePhase(this, undefined, node, phase);\n this.updateDiagramElementQuad();\n };\n //827745-support to edit Segment for Straight connector at runtime.\n /**\n * Used to add or remove intermediate segments to the straight connector.\n *\n * @returns { void } Used to add or remove intermediate segments to the straight connector.\n * @param {IEditSegmentOptions} editOptions - An object containing various options for adding/removing segments.\n *\n */\n Diagram.prototype.editSegment = function (editOptions) {\n if (editOptions.connector.type === 'Straight') {\n var connector = editOptions.connector;\n var mode = editOptions && editOptions.SegmentEditing ? editOptions.SegmentEditing : 'Toggle';\n var point = editOptions.point;\n var hasPoint = void 0;\n var allowEdit = void 0;\n for (var i = 0; i < connector.segments.length; i++) {\n var segment = (connector.segments)[parseInt(i.toString(), 10)];\n if (contains(point, segment.point, connector.hitPadding)) {\n hasPoint = true;\n break;\n }\n }\n if ((hasPoint && mode === 'Remove') || (!hasPoint && mode === 'Add')) {\n allowEdit = true;\n }\n if ((connector.type === 'Straight') && (allowEdit || mode === 'Toggle')) {\n this.connectorEditingToolModule.addOrRemoveSegment(connector, point, this.commandHandler);\n }\n }\n };\n Diagram.prototype.removelabelExtension = function (obj, labels, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if ((canvas instanceof TextElement) || (canvas instanceof DiagramHtmlElement)) {\n if (canvas.id.match('_' + labels[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.annotations.length; k++) {\n if (canvas.id.match('_' + obj.annotations[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'LabelCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.annotations[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.annotations.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n if (element) {\n var element_1 = getDiagramElement(canvas.id, this.element.id);\n element_1.parentNode.removeChild(element_1);\n }\n var textElement = getDiagramElement(canvas.id + '_text', this.element.id);\n if (textElement) {\n element = getDiagramElement(canvas.id + '_text', this.element.id);\n element.parentNode.removeChild(element);\n }\n var htmlElement = getDiagramElement(canvas.id + '_html_element', this.element.id);\n if (htmlElement) {\n htmlElement.parentNode.removeChild(htmlElement);\n }\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Removes labels from a node or connector at runtime. \\\n *\n * @returns { string } Removes labels from a node or connector at runtime. \\\n * @param { Node | ConnectorModel} obj - Representing the node or connector to remove labels from.\n * @param {ShapeAnnotationModel[] | PathAnnotationModel[]} labels - objects representing the labels to be removed.\n *\n */\n Diagram.prototype.removeLabels = function (obj, labels) {\n var isAddLabelInServer = true;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n // Removed isBlazor code\n if (labels.length > 1) {\n this.startGroupAction();\n }\n for (var j = labels.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n //Bug 886881: Exception throws while ungrouping a group node with annotations.\n //Added the condition to check the wrapper id is same as the obj id to remove the group node label alone while unGroup.\n var groupWrapper = obj.wrapper.children.filter(function (wrapper) { return wrapper.id === obj.id + 'group_container'; });\n if (groupWrapper && groupWrapper.length > 0) {\n this.removelabelExtension(obj, labels, j, groupWrapper[0]);\n }\n }\n else {\n this.removelabelExtension(obj, labels, j, obj.wrapper);\n }\n }\n if (labels.length > 1) {\n this.endGroupAction();\n }\n //EJ2-908488 - Added for Update annotations in overview\n this.refreshCanvasLayers();\n };\n Diagram.prototype.removePortsExtenion = function (obj, ports, j, wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var canvas = wrapper.children[parseInt(i.toString(), 10)];\n if (canvas instanceof PathElement) {\n if (canvas.id.match('_' + ports[parseInt(j.toString(), 10)].id + '$')) {\n for (var k = 0; k < obj.ports.length; k++) {\n if (canvas.id.match('_' + obj.ports[parseInt(k.toString(), 10)].id + '$')) {\n if (!(this.diagramActions & DiagramAction.UndoRedo)) {\n var entry = {\n type: 'PortCollectionChanged', changeType: 'Remove', undoObject: cloneObject(obj.ports[parseInt(k.toString(), 10)]),\n redoObject: cloneObject(obj), category: 'Internal'\n };\n this.addHistoryEntry(entry);\n }\n obj.ports.splice(k, 1);\n }\n }\n wrapper.children.splice(i, 1);\n if (this.mode === 'SVG') {\n var element = getDiagramElement(canvas.id, this.element.id);\n // 905159: undo redo the multi-node after the group and ungrouping the multi nodes Issue fix\n if (element) {\n element.parentNode.removeChild(element);\n }\n }\n else {\n this.refreshCanvasLayers();\n }\n }\n }\n }\n };\n /**\n * Removes Ports at run time. \\\n *\n * @returns { void } Removes Ports at run time.\\\n * @param {Node} obj - The node or connector to remove ports from.\n * @param {PointPortModel[]} ports - An array of ports to be removed.\n *\n */\n Diagram.prototype.removePorts = function (obj, ports) {\n var isAddPortInServer = true;\n //Removed isBlazor code\n obj = this.nameTable[obj.id] || obj;\n //Removed isBlazor code\n if (ports.length > 1) {\n this.startGroupAction();\n }\n for (var j = ports.length - 1; j >= 0; j--) {\n if (obj.children && obj.children.length > 0) {\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n //EJ2-66928 Bug- added for ungroup Issue to only remove the grouping ports and not to remove ports of the children nodes\n var wrapper = obj.wrapper.children[parseInt(k.toString(), 10)];\n if ((wrapper.id).match(obj.wrapper.id)) {\n this.removePortsExtenion(obj, ports, j, obj.wrapper.children[parseInt(k.toString(), 10)]);\n }\n }\n }\n else {\n this.removePortsExtenion(obj, ports, j, obj.wrapper);\n }\n }\n if (ports.length > 1) {\n this.endGroupAction();\n }\n };\n //public methods - end region\n /**\n * getSizeValue method \\\n *\n * @returns { string } getSizeValue method .\\\n * @param {string | number} real - provide the real value.\n * @param {string | number} rulerSize - provide the rulerSize value.\n *\n * @private\n */\n Diagram.prototype.getSizeValue = function (real, rulerSize) {\n var value;\n if (real.toString().indexOf('px') > 0) {\n value = real.toString();\n }\n else if (real.toString().indexOf('%') > 0) {\n value = rulerSize !== undefined ? '100%' : real.toString();\n }\n else {\n value = real.toString() + 'px';\n }\n if (rulerSize) {\n var position = getRulerSize(this);\n value = 'calc(' + value + ' - ' + rulerSize + 'px)';\n }\n return value;\n };\n Diagram.prototype.renderRulers = function () {\n if (this.rulerSettings.showRulers) {\n renderOverlapElement(this);\n renderRuler(this, true);\n renderRuler(this, false);\n }\n else {\n removeRulerElements(this);\n }\n };\n Diagram.prototype.intOffPageBackground = function () {\n var position = new Size();\n position = getRulerSize(this);\n var element = document.getElementById(this.element.id + 'content');\n var width = this.getSizeValue(this.width, position.width);\n var height = this.getSizeValue(this.height, position.height);\n var style = this.rulerSettings.showRulers ?\n 'width:' + width + '; height:' + height + ';' +\n 'top:' + position.height + 'px;left:' + position.width + 'px;' +\n 'overflow: scroll;position:absolute;overflow:auto;' :\n 'width:' + width + '; height:' + height + ';position:absolute;' +\n ' left:0px; top:0px;overflow: auto;';\n var attr = {\n 'id': this.element.id + 'content',\n 'tabindex': '0',\n 'style': style\n };\n if (!element) {\n this.diagramCanvas = createHtmlElement('div', attr);\n this.element.appendChild(this.diagramCanvas);\n }\n else {\n this.diagramCanvas = element;\n applyStyleAgainstCsp(this.diagramCanvas, style);\n }\n this.diagramCanvas.style.background = this.backgroundColor;\n };\n Diagram.prototype.initDiagram = function () {\n this.intOffPageBackground();\n setAttributeHtml(this.element, {\n style: 'width:' + this.getSizeValue(this.width) + '; height:'\n + this.getSizeValue(this.height) + ';position:relative;overflow:hidden;'\n });\n };\n Diagram.prototype.renderHiddenUserHandleTemplateLayer = function (bounds) {\n //let element: HTMLElement;\n var attributes = {\n 'class': this.element.id + '_hiddenUserHandleTemplate',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + 'visibility:hidden ; overflow: hidden;'\n };\n var element = createHtmlElement('div', attributes);\n this.element.appendChild(element);\n };\n Diagram.prototype.renderBackgroundLayer = function (bounds, commonStyle) {\n var bgLayer = this.createSvg(this.element.id + '_backgroundLayer_svg', bounds.width, bounds.height);\n applyStyleAgainstCsp(bgLayer, commonStyle);\n var backgroundImage = createSvgElement('g', {\n 'id': this.element.id + '_backgroundImageLayer',\n 'class': 'e-background-image-layer'\n });\n bgLayer.appendChild(backgroundImage);\n var attr = { 'id': this.element.id + '_backgroundLayer', 'class': 'e-background-layer' };\n var background = createSvgElement('g', attr);\n bgLayer.appendChild(background);\n this.diagramCanvas.appendChild(bgLayer);\n };\n Diagram.prototype.renderGridLayer = function (bounds, commonStyle) {\n var svgGridSvg = this.createSvg(this.element.id + '_gridline_svg', bounds.width, bounds.height);\n svgGridSvg.setAttribute('class', 'e-grid-layer');\n var svgGrid = createSvgElement('g', { 'id': this.element.id + '_gridline' });\n var rect = createSvgElement('rect', {\n 'id': this.element.id + '_grid_rect', 'x': '0', 'y': '0', 'width': '100%', 'height': '100%'\n });\n if (checkBrowserInfo()) {\n //EJ2-832888-To remove the black grid lines appearing in the safari browser.\n var url = new URL(window.location.href);\n // Check if the URL contains a query string\n if (url.search !== '') {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n else {\n rect.setAttribute('fill', 'url(' + location.protocol + '//' + location.host + location.pathname +\n '#' + this.element.id + '_pattern)');\n }\n }\n else {\n rect.setAttribute('fill', 'url(#' + this.element.id + '_pattern)');\n }\n svgGrid.appendChild(rect);\n svgGridSvg.appendChild(svgGrid);\n this.diagramCanvas.appendChild(svgGridSvg);\n setAttributeSvg(svgGridSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderDiagramLayer = function (bounds, commonStyle) {\n var attributes = {\n 'id': this.element.id + '_diagramLayer_div',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;' + commonStyle\n };\n this.diagramLayerDiv = createHtmlElement('div', attributes);\n if (this.mode === 'SVG') {\n var diagramSvg = this.createSvg(this.element.id + '_diagramLayer_svg', bounds.width, bounds.height);\n diagramSvg.style['pointer-events'] = 'none';\n diagramSvg.setAttribute('class', 'e-diagram-layer');\n var diagramLayer = createSvgElement('g', { 'id': this.element.id + '_diagramLayer' });\n var transformationLayer = createSvgElement('g', {});\n this.diagramLayer = diagramLayer;\n diagramSvg.style['pointer-events'] = 'all';\n transformationLayer.appendChild(diagramLayer);\n diagramSvg.appendChild(transformationLayer);\n this.diagramLayerDiv.appendChild(diagramSvg);\n }\n else {\n this.diagramLayer = CanvasRenderer.createCanvas(this.element.id + '_diagram', bounds.width, bounds.height);\n applyStyleAgainstCsp(this.diagramLayer, 'position:absolute;left:0px;top:0px;');\n this.diagramLayerDiv.appendChild(this.diagramLayer);\n }\n this.diagramCanvas.appendChild(this.diagramLayerDiv);\n };\n Diagram.prototype.initLayers = function () {\n var commonStyle = 'position:absolute;top:0px;left:0px;overflow:hidden;pointer-events:none;';\n var container = document.getElementById(this.element.id);\n var bounds = container.getBoundingClientRect();\n var scrollerSize = getScrollerWidth();\n this.scroller.scrollerWidth = scrollerSize;\n this.scroller.setViewPortSize(bounds.width, bounds.height);\n this.renderRulers();\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n var measureElements = document.getElementById('measureElement');\n measureElements.remove();\n }\n createMeasureElements();\n // this.renderBackgroundImageLayer(bounds, commonStyle);\n this.renderBackgroundLayer(bounds, commonStyle);\n this.renderGridLayer(bounds, commonStyle);\n this.renderDiagramLayer(bounds, commonStyle);\n this.renderHTMLLayer(bounds, commonStyle);\n this.renderPortsExpandLayer(bounds, commonStyle);\n this.renderNativeLayer(bounds, commonStyle);\n this.renderAdornerLayer(bounds, commonStyle);\n this.renderHiddenUserHandleTemplateLayer(bounds);\n };\n Diagram.prototype.renderAdornerLayer = function (bounds, commonStyle) {\n var divElement = createHtmlElement('div', {\n 'id': this.element.id + '_diagramAdornerLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n var element = createHtmlElement('div', {\n 'id': this.element.id + '_diagramUserHandleLayer',\n 'style': 'width:' + bounds.width + 'px;height:' + bounds.height + 'px;' + commonStyle\n });\n element.setAttribute('class', 'e-userHandle-layer');\n divElement.appendChild(element);\n var svgAdornerSvg = this.createSvg(this.element.id + '_diagramAdorner_svg', bounds.width, bounds.height);\n svgAdornerSvg.setAttribute('class', 'e-adorner-layer');\n svgAdornerSvg.style['pointer-events'] = 'none';\n this.adornerLayer = createSvgElement('g', { 'id': this.element.id + '_diagramAdorner' });\n this.adornerLayer.style[' pointer-events'] = 'all';\n svgAdornerSvg.appendChild(this.adornerLayer);\n divElement.appendChild(svgAdornerSvg);\n this.diagramCanvas.appendChild(divElement);\n var svgSelector = createSvgElement('g', { 'id': this.element.id + '_SelectorElement' });\n this.adornerLayer.appendChild(svgSelector);\n setAttributeSvg(svgAdornerSvg, { style: 'pointer-events:none;' });\n };\n Diagram.prototype.renderPortsExpandLayer = function (bounds, commonStyle) {\n var svgPortsSvg = this.createSvg(this.element.id + '_diagramPorts_svg', bounds.width, bounds.height);\n svgPortsSvg.setAttribute('class', 'e-ports-expand-layer');\n var svgPortsLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramPorts',\n 'class': 'e-ports-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgPortsLayer);\n var svgExpandLayer = createSvgElement('g', {\n 'id': this.element.id + '_diagramExpander',\n 'class': 'e-expand-layer',\n 'style': 'pointer-events: all;'\n });\n svgPortsSvg.appendChild(svgExpandLayer);\n this.diagramCanvas.appendChild(svgPortsSvg);\n setAttributeSvg(svgPortsSvg, { 'style': commonStyle });\n };\n Diagram.prototype.renderHTMLLayer = function (bounds, commonStyle) {\n this.htmlLayer = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer',\n 'style': 'width:' + bounds.width + 'px; height:' + bounds.height + 'px;position:absolute;top:0px;' +\n 'left:0px;overflow:hidden;pointer-events:none;',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': this.element.id + '_htmlLayer_div',\n 'style': 'position:absolute;top:0px;left:0px;pointer-events:all;'\n });\n this.htmlLayer.appendChild(htmlLayerDiv);\n this.diagramCanvas.appendChild(this.htmlLayer);\n };\n Diagram.prototype.renderNativeLayer = function (bounds, commonStyle) {\n var nativeLayerSvg = this.createSvg(this.element.id + '_nativeLayer_svg', bounds.width, bounds.height);\n var nativeLayer = createSvgElement('g', { 'id': this.element.id + '_nativeLayer', 'style': 'pointer-events:all;' });\n nativeLayerSvg.appendChild(nativeLayer);\n this.diagramLayerDiv.appendChild(nativeLayerSvg);\n setAttributeSvg(nativeLayerSvg, { 'class': 'e-native-layer', 'style': commonStyle });\n };\n /**\n * createSvg method \\\n *\n * @returns { void } createSvg method .\\\n * @param {string} id - provide the source value.\n * @param {string | number} width - provide the source value.\n * @param {string | number} height - provide the source value.\n *\n * @private\n */\n Diagram.prototype.createSvg = function (id, width, height) {\n var svgObj = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n setAttributeSvg(svgObj, { 'id': id, 'width': width, 'height': height });\n return svgObj;\n };\n Diagram.prototype.updateBazorShape = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n switch (node.shape.type) {\n case 'Bpmn':\n node.shape.bpmnShape =\n node.shape.shape;\n break;\n case 'UmlActivity':\n node.shape.umlActivityShape =\n node.shape.shape;\n break;\n case 'Flow':\n node.shape.flowShape =\n node.shape.shape;\n break;\n case 'Basic':\n node.shape.basicShape =\n node.shape.shape;\n break;\n case 'Text':\n node.shape.textContent =\n node.shape.content;\n break;\n }\n }\n };\n Diagram.prototype.initObjects = function (isLoad) {\n this.updateBazorShape();\n if (!this.isLoading) {\n this.initData();\n }\n this.initLayerObjects();\n this.updateBridging(isLoad);\n };\n /**\n * initLayerObjects method \\\n *\n * @returns { void } initLayerObjects method .\\\n *\n * @private\n */\n Diagram.prototype.initLayerObjects = function () {\n var hasLayers = this.layers.length > 1; //const set: boolean = false;\n var connectors = [];\n var blazor = 'Blazor';\n //Removed isBlazor code\n var tempTabel = {};\n var bpmnTable = {};\n var tempNode = [];\n var groups = [];\n var i = 0;\n var previousNodeObject = [];\n var previousConnectorObject = [];\n var updateNodeObject = [];\n var updateConnectorObject = [];\n var changeNodes = [];\n var changeConnectors = [];\n //Removed isBlazor code\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _b = 0, _c = this.connectors; _b < _c.length; _b++) {\n var obj = _c[_b];\n obj.id = obj.id || randomId();\n this.addToLayer(obj, hasLayers);\n tempTabel[obj.id] = obj;\n }\n for (var _d = 0, _e = this.layers; _d < _e.length; _d++) {\n var layer = _e[_d];\n for (var _f = 0, _g = layer.objects; _f < _g.length; _f++) {\n var obj = _g[_f];\n if (tempTabel[\"\" + obj]) {\n if (!(tempTabel[\"\" + obj] instanceof Connector)) {\n if (tempTabel[\"\" + obj].children) {\n groups.push(obj);\n }\n else if ((tempTabel[\"\" + obj].shape instanceof BpmnShape) &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes &&\n tempTabel[\"\" + obj].shape.activity.subProcess.processes.length > 0) {\n bpmnTable[tempTabel[\"\" + obj].id] = obj;\n }\n else {\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n }\n else {\n var connector = tempTabel[\"\" + obj];\n if (connector.sourceID && connector.targetID) {\n var sourceNode = tempTabel[connector.sourceID];\n var targetNode = tempTabel[connector.targetID];\n var flag = true;\n if (this.isLoading && ((sourceNode && sourceNode.children && sourceNode.children.length > 0) ||\n (targetNode && targetNode.children && targetNode.children.length > 0))) {\n flag = false;\n }\n if ((sourceNode && sourceNode.wrapper && targetNode && targetNode.wrapper) && flag) {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n else {\n connectors.push(tempTabel[\"\" + obj]);\n }\n }\n else {\n // 908150: Connector not rendered properly when one end is a group and other end is an endpoint\n var sourceNode = tempTabel[connector.sourceID];\n var targetNode = tempTabel[connector.targetID];\n if ((sourceNode && sourceNode.children && sourceNode.children.length > 0) ||\n (targetNode && targetNode.children && targetNode.children.length > 0)) {\n connectors.push(tempTabel[\"\" + obj]);\n }\n else {\n this.initConnectors(tempTabel[\"\" + obj], layer);\n }\n }\n }\n }\n }\n if (this.bpmnModule) {\n for (var _h = 0, _j = this.bpmnModule.bpmnTextAnnotationConnector; _h < _j.length; _h++) {\n var obj = _j[_h];\n this.initConnectors(obj, undefined, true);\n }\n }\n }\n for (var _k = 0, _l = Object.keys(bpmnTable); _k < _l.length; _k++) {\n var obj = _l[_k];\n this.initObject(tempTabel[\"\" + obj]);\n this.bpmnModule.updateDocks(tempTabel[\"\" + obj], this);\n }\n var alignedGroups = this.alignGroup(groups, tempTabel);\n for (var _m = 0, alignedGroups_1 = alignedGroups; _m < alignedGroups_1.length; _m++) {\n var obj = alignedGroups_1[_m];\n var layer = this.commandHandler.getObjectLayer(obj);\n this.initNodes(tempTabel[\"\" + obj], layer);\n }\n for (var _o = 0, connectors_1 = connectors; _o < connectors_1.length; _o++) {\n var connector = connectors_1[_o];\n var layer = this.commandHandler.getObjectLayer(connector.id);\n this.initConnectors(connector, layer);\n }\n //Removed isBlazor code\n };\n Diagram.prototype.alignGroup = function (parents, tempTabel) {\n var newList = [];\n var parentist = [];\n var child;\n var childNode;\n var i;\n var j;\n for (i = 0; i < parents.length; i++) {\n child = parents[parseInt(i.toString(), 10)];\n childNode = tempTabel[\"\" + child];\n var node = void 0;\n if (childNode && childNode.children.length) {\n for (j = 0; j < childNode.children.length; j++) {\n node = childNode.children[parseInt(j.toString(), 10)];\n if (parents.indexOf(node) > -1 && (newList.indexOf(node) === -1) &&\n (parentist.indexOf(node) === -1)) {\n newList.splice(0, 0, node);\n }\n }\n }\n if (newList.indexOf(child) === -1) {\n parentist.push(child);\n }\n }\n newList = newList.concat(parentist);\n return newList;\n };\n Diagram.prototype.addToLayer = function (obj, hasLayers) {\n var layer;\n var isSourceId = false;\n var isTargetId = false;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if (!hasLayers || !layer) {\n if (this.activeLayer.objects.indexOf(obj.id) === -1) {\n this.activeLayer.objects.push(obj.id);\n }\n }\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n if (obj.parentId) {\n var zIndex = this.swimlaneZIndexTable[obj.parentId];\n //EJ2-69247 - Unable to select node in swimlane after save and load\n var childzIndex = this.swimlaneChildTable[obj.id];\n if ((zIndex && zIndex !== -1) || ((childzIndex && childzIndex !== -1))) {\n obj.zIndex = this.swimlaneChildTable[obj.id];\n }\n }\n if (obj instanceof Connector && (obj.sourceID && obj.targetID)) {\n //EJ2-69577 - We have removed findNodeInLane method to improve the performance.\n if (this.activeLayer.objects.indexOf(obj.sourceID) !== -1 &&\n this.activeLayer.objects.indexOf(obj.targetID) !== -1) {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n else {\n this.setZIndex(layer || this.activeLayer, obj);\n }\n }\n };\n Diagram.prototype.updateLayer = function (newProp) {\n for (var _i = 0, _a = Object.keys(newProp.layers); _i < _a.length; _i++) {\n var key = _a[_i];\n var layerObject = this.layers[\"\" + key].objects;\n for (var _b = 0, layerObject_1 = layerObject; _b < layerObject_1.length; _b++) {\n var obj = layerObject_1[_b];\n var node = this.nameTable[\"\" + obj];\n if (newProp.layers[\"\" + key].visible !== undefined) {\n this.updateElementVisibility(node.wrapper, node, newProp.layers[\"\" + key].visible);\n }\n else if (newProp.layers[\"\" + key].lock === true) {\n this.unSelect(node);\n }\n }\n if (newProp.layers[\"\" + key].lock !== undefined) {\n this.layers[\"\" + key].lock = newProp.layers[\"\" + key].lock;\n }\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updateScrollSettings = function (newProp) {\n var hPan = (-this.scroller.horizontalOffset + newProp.scrollSettings.horizontalOffset || 0);\n var vPan = (-this.scroller.verticalOffset + newProp.scrollSettings.verticalOffset || 0);\n var oldValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n if (hPan !== 0 || vPan !== 0) {\n this.pan(hPan, vPan);\n }\n var newValue = {\n VerticalOffset: this.scrollSettings.verticalOffset, HorizontalOffset: this.scrollSettings.horizontalOffset,\n ViewportHeight: this.scrollSettings.viewPortHeight, ViewportWidth: this.scrollSettings.viewPortWidth,\n CurrentZoom: this.scroller.currentZoom\n };\n var panStatus = 'Start';\n if (this.realActions & RealAction.PanInProgress) {\n panStatus = 'Progress';\n }\n var arg = {\n oldValue: oldValue,\n newValue: newValue, source: this,\n panState: panStatus\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.scrollChange, arg);\n this.commandHandler.updatePanState(true);\n if (this.mode === 'Canvas' && (this.constraints & DiagramConstraints.Virtualization)) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.initData = function () {\n var dataSourceSettings = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n var adapter = 'adaptorName';\n if (this.dataBindingModule && !(this.realActions & RealAction.PreventDataInit)) {\n if (dataSourceSettings && this.dataSourceSettings.connectionDataSource.dataManager) {\n var dataManager = this.dataSourceSettings.dataManager || this.dataSourceSettings.dataSource;\n this.nodes = this.generateData(dataManager, true);\n this.connectors = this.generateData(this.dataSourceSettings.connectionDataSource.dataManager, false);\n }\n else if (dataSourceSettings && dataSourceSettings.dataSource &&\n (dataSourceSettings.dataSource.url || (dataSourceSettings[\"\" + adapter] === 'BlazorAdaptor' &&\n !dataSourceSettings.dataSource.url))) {\n this.dataBindingModule.initSource(this.dataSourceSettings, this);\n }\n else {\n this.dataBindingModule.initData(this.dataSourceSettings, this);\n }\n }\n else if (dataSourceSettings && !this.dataBindingModule) {\n console.warn('[WARNING] :: Module \"DataBinding\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n Diagram.prototype.generateData = function (dataSource, isNode) {\n var nodes = [];\n var i;\n for (i = 0; i < dataSource.length; i++) {\n var row = dataSource[parseInt(i.toString(), 10)];\n var node = isNode ? this.makeData(row, true) : this.makeData(row, false);\n if (node && node.id && (!findNodeByName(nodes, node.id))) {\n nodes.push(node);\n }\n }\n return (nodes);\n };\n Diagram.prototype.makeData = function (row, isNode) {\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n var data = {};\n data.id = row[fields.id] ? row[fields.id] : randomId();\n if (fields.sourceID) {\n data.sourceID = row[fields.sourceID];\n }\n if (fields.targetID) {\n data.targetID = row[fields.targetID];\n }\n if (row[fields.sourcePointX] && row[fields.sourcePointY]) {\n data.sourcePoint = { 'x': Number(row[fields.sourcePointX]), 'y': Number(row[fields.sourcePointY]) };\n }\n if (row[fields.targetPointX] && row[fields.targetPointY]) {\n data.targetPoint = { 'x': Number(row[fields.targetPointX]), 'y': Number(row[fields.targetPointY]) };\n }\n if (fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n data[fields.crudAction.customFields[parseInt(i.toString(), 10)]]\n = row[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return data;\n };\n Diagram.prototype.initNodes = function (obj, layer) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.initConnectors = function (obj, layer, independentObj) {\n this.preventDiagramUpdate = true;\n this.initObject(obj, layer, independentObj);\n this.updateEdges(obj);\n this.preventDiagramUpdate = false;\n };\n Diagram.prototype.setZIndex = function (layer, obj) {\n //should be changed\n var currentLayer = layer;\n if ((obj).zIndex === Number.MIN_VALUE) {\n while (currentLayer.zIndexTable[currentLayer.objectZIndex + 1]) {\n layer.objectZIndex++;\n }\n obj.zIndex = ++currentLayer.objectZIndex;\n }\n else {\n var index = obj.zIndex;\n if (currentLayer.zIndexTable[parseInt(index.toString(), 10)]) {\n var tabelLength = Object.keys(currentLayer.zIndexTable).length;\n var j = 0;\n for (var i = 0; i < tabelLength; i++) {\n if (i === index) {\n for (var j_1 = tabelLength; j_1 > index; j_1--) {\n currentLayer.zIndexTable[parseInt(j_1.toString(), 10)] = currentLayer.zIndexTable[j_1 - 1];\n if (this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]]) {\n this.nameTable[currentLayer.zIndexTable[parseInt(j_1.toString(), 10)]].zIndex = j_1;\n }\n }\n currentLayer.zIndexTable[parseInt(i.toString(), 10)] = obj.id;\n }\n j++;\n }\n }\n }\n };\n Diagram.prototype.initializeDiagramLayers = function () {\n //const tempLayers: LayerModel[] = this.layers;\n for (var i = 0; i < this.layers.length; i++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex !== -1) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[this.layers[parseInt(i.toString(), 10)].zIndex];\n this.layers[temp.zIndex] = temp;\n }\n }\n for (var _i = 0, _a = this.layers; _i < _a.length; _i++) {\n var layer = _a[_i];\n layer.zIndex = layer.zIndex !== -1 ? layer.zIndex : this.layers.indexOf(layer);\n this.layerZIndexTable[layer.zIndex] = layer.id;\n }\n for (var i = 0; i < this.layers.length; i++) {\n for (var j = i + 1; j < this.layers.length; j++) {\n if (this.layers[parseInt(i.toString(), 10)].zIndex > this.layers[parseInt(j.toString(), 10)].zIndex) {\n var temp = this.layers[parseInt(i.toString(), 10)];\n this.layers[parseInt(i.toString(), 10)] = this.layers[parseInt(j.toString(), 10)];\n this.layers[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n if (this.layers.length === 0) {\n var defaultLayer = {\n id: 'default_layer', visible: true, lock: false, objects: [], zIndex: 0,\n objectZIndex: -1, zIndexTable: {}\n };\n this.commandHandler.addLayer(defaultLayer, null, true);\n }\n this.setActiveLayer(this.layers[this.layers.length - 1].id);\n };\n /**\n * resetTool method \\\n *\n * @returns { void } resetTool method .\\\n *\n * @private\n */\n Diagram.prototype.resetTool = function () {\n this.eventHandler.resetTool();\n };\n Diagram.prototype.initObjectExtend = function (obj, layer, independentObj) {\n if (independentObj) {\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, obj.wrapper.bounds, true);\n //EJ2-71853 - Need to improve performance of diagram while rendering large number of nodes and connectors.\n // Removed the for loop which is iterating through the zindex table and removing the object from the table as it is not covered in any scenario.\n //EJ2-840575 - Order commands not working between Swimlane and other nodes while drag and drop from the palette\n if (obj.shape.type === 'SwimLane') {\n for (var i = 0, a = Object.keys(layer.zIndexTable); i < a.length; i++) {\n if (layer.zIndexTable[a[parseInt(i.toString(), 10)]] &&\n layer.zIndexTable[a[parseInt(i.toString(), 10)]] === obj.id) {\n delete layer.zIndexTable[a[parseInt(i.toString(), 10)]];\n }\n }\n }\n layer.zIndexTable[obj.zIndex] = obj.id;\n if (!checkBoundaryConstraints) {\n var node = obj instanceof Node ? this.nodes : this.connectors;\n for (var i = 0; i <= node.length; i++) {\n if (node[parseInt(i.toString(), 10)] && obj.id\n === node[parseInt(i.toString(), 10)].id) {\n node.splice(i, 1);\n }\n }\n delete layer.zIndexTable[obj.zIndex];\n }\n }\n };\n /* tslint:disable */\n /**\n * initObject method \\\n *\n * @returns { void } initObject method .\\\n * @param {End} obj - provide the obj value.\n * @param {End} layer - provide the layer value.\n * @param {LayoutOrientation} independentObj - provide the independentObj value.\n * @param {boolean} group - provide the independentObj value.\n *\n * @private\n */\n Diagram.prototype.initObject = function (obj, layer, independentObj, group) {\n if (independentObj === void 0) { independentObj = true; }\n if (obj !== undefined) {\n if (independentObj) {\n if (!layer) {\n this.addToLayer(obj, false);\n layer = this.activeLayer;\n }\n //Move the common properties like zindex and id to an abstract class\n if ((obj instanceof Node || obj instanceof Connector) &&\n (obj.shape.type !== 'SwimLane' || (obj.children && obj.children.length > 0))) {\n this.setZIndex(layer, obj);\n }\n }\n if (obj instanceof Node) {\n if (independentObj) {\n if (obj.id !== 'helper') {\n var getDefaults = getFunction(this.getNodeDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults.ports) {\n for (var i = 0; i < defaults.ports.length; i++) {\n defaults.ports[parseInt(i.toString(), 10)].inEdges = [];\n defaults.ports[parseInt(i.toString(), 10)].outEdges = [];\n }\n }\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n }\n }\n this.initNode(obj, this.element.id);\n }\n }\n else if (obj instanceof Connector) {\n var getDefaults = getFunction(this.getConnectorDefaults);\n if (getDefaults) {\n var defaults = getDefaults(obj, this);\n if (defaults && defaults !== obj) {\n extendObject(defaults, obj);\n }\n if (obj.segments.length) {\n if (obj.type !== obj.segments[0].type) {\n obj.segments = [];\n }\n }\n }\n var sourceNode = this.nameTable[obj.sourceID];\n var targetNode = this.nameTable[obj.targetID];\n var port = this.getConnectedPort(sourceNode, obj, true);\n var targetPort = this.getConnectedPort(targetNode, obj);\n var outPort = this.findInOutConnectPorts(sourceNode, false);\n var inPort = this.findInOutConnectPorts(targetNode, true);\n if ((sourceNode !== undefined && canOutConnect(sourceNode)) || (obj.sourcePortID !== ''\n && canPortOutConnect(outPort))) {\n obj.sourceWrapper = this.getEndNodeWrapper(sourceNode, obj, true);\n if (obj.sourcePortID) {\n // eslint-disable-next-line max-len\n if (port && port.constraints && !(port.constraints & PortConstraints.None) && (port.constraints & PortConstraints.OutConnect)) {\n obj.sourcePortWrapper = this.getWrapper(sourceNode.wrapper, obj.sourcePortID);\n }\n }\n }\n if ((targetNode !== undefined && canInConnect(targetNode)) || (obj.targetPortID !== ''\n && canPortInConnect(inPort))) {\n obj.targetWrapper = this.getEndNodeWrapper(targetNode, obj, false);\n if (obj.targetPortID) {\n // eslint-disable-next-line max-len\n if (targetPort && targetPort.constraints && !(targetPort.constraints & PortConstraints.None) && (targetPort.constraints & PortConstraints.InConnect)) {\n obj.targetPortWrapper = this.getWrapper(targetNode.wrapper, obj.targetPortID);\n }\n }\n }\n if (!independentObj) {\n var points = obj.getConnectorPoints(obj.type);\n updateConnector(obj, points);\n }\n if (independentObj) {\n obj.init(this);\n }\n for (var k = 0; k < obj.wrapper.children.length; k++) {\n if (this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data]) {\n obj.wrapper.children[parseInt(k.toString(), 10)].absoluteBounds =\n this.pathTable[obj.wrapper.children[parseInt(k.toString(), 10)].data].absoluteBounds;\n }\n }\n obj.wrapper.measure(new Size(undefined, undefined));\n obj.wrapper.arrange(obj.wrapper.desiredSize);\n if (obj instanceof Connector && obj.type === 'Bezier') {\n this.updateConnectorAnnotation(obj);\n this.updateConnectorfixedUserHandles(obj);\n }\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data] = {};\n this.pathTable[obj.wrapper.children[parseInt(j.toString(), 10)].data].absoluteBounds =\n obj.wrapper.children[parseInt(j.toString(), 10)].absoluteBounds;\n }\n }\n if (obj instanceof Node && obj.children && obj.container) {\n for (var i = 0; i < obj.children.length; i++) {\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetX\n = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetX;\n this.nameTable[obj.children[parseInt(i.toString(), 10)]].offsetY\n = this.nameTable[obj.children[parseInt(i.toString(), 10)]].wrapper.offsetY;\n }\n }\n // 908606: The nodes goes outside the subprocess while node rotation Issue Fix\n if (obj instanceof Node && obj.shape &&\n obj.shape.shape === 'Activity' && obj.shape.activity.activity === 'SubProcess') {\n if (obj.shape.activity.subProcess.processes) {\n var children = obj.shape.activity.subProcess.processes;\n for (var i = 0; i < children.length; i++) {\n if (this.nameTable[children[parseInt(i.toString(), 10)]]) {\n this.nameTable[children[parseInt(i.toString(), 10)]].offsetX\n = this.nameTable[children[parseInt(i.toString(), 10)]].wrapper.offsetX;\n this.nameTable[children[parseInt(i.toString(), 10)]].offsetY\n = this.nameTable[children[parseInt(i.toString(), 10)]].wrapper.offsetY;\n }\n }\n }\n }\n this.initObjectExtend(obj, layer, independentObj);\n this.nameTable[obj.id] = obj;\n if (!this.refreshing) {\n //To create text annotation node if we define shape annotations in parent node.\n if (obj.shape.annotations && obj.shape.annotations.length > 0) {\n for (var i = 0; i < obj.shape.annotations.length\n && obj.shape.annotations[parseInt(i.toString(), 10)].text; i++) {\n this.getBPMNTextAnnotation(obj, this, obj.shape.annotations[parseInt(i.toString(), 10)], false);\n }\n }\n }\n if (obj instanceof Node && obj.children) {\n this.preventNodesUpdate = true;\n this.preventConnectorsUpdate = true;\n if (!group && !obj.container) {\n this.updateGroupOffset(obj, true);\n }\n this.groupTable[obj.id] = obj.children;\n for (var i = 0; i < obj.children.length; i++) {\n var node = (this.nameTable[obj.children[parseInt(i.toString(), 10)]]);\n if (node) {\n node.parentId = obj.id;\n }\n }\n if (!this.isLoading && obj.rotateAngle && !obj.container) {\n this.commandHandler.rotateObjects(obj, [obj], obj.rotateAngle, { x: obj.offsetX, y: obj.offsetY }, false);\n }\n this.preventNodesUpdate = false;\n this.preventConnectorsUpdate = false;\n }\n if (this['enterObject'] === undefined) {\n this.updateQuad(obj);\n }\n }\n if (obj.visible === false) {\n this.updateElementVisibility(obj.wrapper, obj, false);\n }\n };\n /* tslint:enable */\n Diagram.prototype.getConnectedPort = function (node, connector, isSource) {\n if (node && node.ports) {\n for (var _i = 0, _a = node.ports; _i < _a.length; _i++) {\n var port = _a[_i];\n if (port.id === connector.sourcePortID && isSource) {\n return port;\n }\n else if (port.id === connector.targetPortID && !isSource) {\n return port;\n }\n }\n }\n return null;\n };\n Diagram.prototype.scaleObject = function (obj, size, isWidth) {\n var actualSize = isWidth ? obj.wrapper.actualSize.width : obj.wrapper.actualSize.height;\n var sw = (isWidth) ? 1 + ((size - actualSize) / actualSize) : 1;\n var sh = (isWidth) ? 1 : 1 + ((size - actualSize) / actualSize);\n //const groupOffsetX: number = obj.offsetX; const groupOffsetY: number = obj.offsetY;\n this.realActions |= RealAction.PreventDrag;\n this.scale(obj, sw, sh, { x: 0.5, y: 0.5 });\n this.realActions &= ~RealAction.PreventDrag;\n };\n Diagram.prototype.updateDefaultLayoutIcons = function (node) {\n if (this.layout.type === 'OrganizationalChart' || this.layout.type === 'HierarchicalTree' ||\n this.layout.type === 'ComplexHierarchicalTree') {\n {\n this.updateDefaultLayoutIcon(node, node.expandIcon);\n this.updateDefaultLayoutIcon(node, node.collapseIcon);\n }\n }\n };\n Diagram.prototype.updateDefaultLayoutIcon = function (node, icon) {\n if (icon.shape !== 'None') {\n if (icon.horizontalAlignment === 'Auto' && icon.verticalAlignment === 'Auto' &&\n icon.offset.x === .5 && icon.offset.y === 1) {\n var iconWrapper = this.getWrapper(node.wrapper, 'icon_content');\n var offsetX = void 0;\n var offsetY = void 0;\n if (this.layout.orientation === 'TopToBottom' || this.layout.orientation === 'BottomToTop') {\n offsetX = .5;\n offsetY = this.layout.orientation === 'TopToBottom' ? 1 : 0;\n }\n else if (this.layout.orientation === 'RightToLeft' || this.layout.orientation === 'LeftToRight') {\n offsetX = this.layout.orientation === 'LeftToRight' ? 1 : 0;\n offsetY = .5;\n }\n iconWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n iconWrapper.horizontalAlignment = 'Center';\n iconWrapper.verticalAlignment = 'Center';\n node.wrapper.measure(new Size(node.wrapper.width, node.wrapper.height));\n node.wrapper.arrange(node.wrapper.desiredSize);\n }\n }\n };\n /**\n * updateGroupOffset method \\\n *\n * @returns { void } updateGroupOffset method .\\\n * @param {NodeModel | ConnectorModel} node - provide the source value.\n * @param {boolean} isUpdateSize - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateGroupOffset = function (node, isUpdateSize) {\n var isUpdateGroupToBlazor = false;\n if ((node.children && node.children.length > 0 && (!node.container)) || (node.processId)) {\n var node1 = this.nameTable[node.id];\n if (!(this.realActions & RealAction.PreventScale) && !(this.realActions & RealAction.PreventDrag)) {\n if (node1.offsetX && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffX = (node1.offsetX - node.wrapper.offsetX);\n node1.offsetX = node.wrapper.offsetX;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n if ((diffX + diffY) !== 0) {\n this.drag(node1, diffX, diffY);\n }\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n //Removed isBlazor code\n node1.offsetX = node.wrapper.offsetX;\n }\n if (node1.offsetY && ((this.realActions & RealAction.EnableGroupAction) ||\n ((!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.ToolAction)\n && !(this.diagramActions & DiagramAction.PublicMethod))))) {\n this.realActions |= RealAction.PreventScale;\n var diffY = (node1.offsetY - node.wrapper.offsetY);\n node1.offsetY = node.wrapper.offsetY;\n this.drag(node1, 0, diffY);\n this.realActions &= ~RealAction.PreventScale;\n }\n else {\n //Removed isBlazor code\n node1.offsetY = node.wrapper.offsetY;\n }\n if (this.diagramActions) {\n //Removed isBlazor code\n node1.width = node.wrapper.actualSize.width;\n node1.height = node.wrapper.actualSize.height;\n }\n }\n }\n if (isUpdateSize) {\n if ((node.children && node.children.length > 0)) {\n if (this.nameTable[node.id].width !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].width, true);\n }\n else {\n //Removed isBlazor code\n this.nameTable[node.id].width = node.wrapper.actualSize.width;\n }\n if (this.nameTable[node.id].height !== undefined) {\n this.scaleObject(node, this.nameTable[node.id].height, false);\n }\n else {\n //Removed isBlazor code\n this.nameTable[node.id].height = node.wrapper.actualSize.height;\n }\n }\n }\n //Removed Blazor code\n };\n /* eslint-disable */\n Diagram.prototype.initNode = function (obj, diagramId, group) {\n var canvas = obj.initContainer();\n var portContainer = new Canvas();\n var content;\n if (!this.diagramSettings.inversedAlignment) {\n canvas.inversedAlignment = false;\n }\n if (!canvas.children) {\n canvas.children = [];\n }\n if (obj.children) {\n canvas.measureChildren = false;\n portContainer.id = obj.id + 'group_container';\n // Bug 853721: Grid lines remain hidden when lane fill is set to transparent.\n // Added below code to set swimlane fill while dragging from palette to diagram.\n if (obj.shape && obj.shape.type === 'SwimLane') {\n portContainer.style.fill = obj.style.fill;\n }\n else {\n portContainer.style.fill = 'none';\n }\n portContainer.style.strokeColor = 'none';\n portContainer.horizontalAlignment = 'Stretch';\n portContainer.verticalAlignment = 'Stretch';\n //EJ2-865476 - Issue with Pivot Point in group node during resizing\n portContainer.pivot = obj.pivot;\n canvas.style = obj.style;\n canvas.padding.left = obj.padding.left;\n canvas.padding.right = obj.padding.right;\n canvas.padding.top = obj.padding.top;\n canvas.padding.bottom = obj.padding.bottom;\n portContainer.children = [];\n portContainer.preventContainer = true;\n if (obj.container) {\n portContainer.relativeMode = 'Object';\n }\n var checkPorts = (obj.ports && obj.ports.length > 0) ? true : false;\n if (isNullOrUndefined(obj.container) && !checkPorts) {\n canvas.children.push(portContainer);\n }\n if (obj.container && (obj.container.type === 'Grid')) {\n for (var i = 0; i < obj.children.length; i++) {\n var childCollection = new Canvas();\n var child = this.nameTable[obj.children[i]];\n childCollection.children = [];\n childCollection.children.push(child.wrapper);\n if (child) {\n canvas.addObject(child.wrapper, child.rowIndex, child.columnIndex, child.rowSpan, child.columnSpan);\n }\n }\n }\n else {\n for (var i = 0; i < obj.children.length; i++) {\n if (this.nameTable[obj.children[i]]) {\n var child = this.nameTable[obj.children[i]];\n this.updateStackProperty(obj, child, i);\n canvas.children.push(child.wrapper);\n canvas.elementActions = canvas.elementActions | ElementAction.ElementIsGroup;\n child.wrapper.flip = child.wrapper.flip === 'None' ?\n obj.wrapper.flip : child.wrapper.flip;\n }\n }\n }\n if (checkPorts || (obj.container && (obj.container.type !== 'Grid'))) {\n canvas.children.push(portContainer);\n }\n }\n else {\n var setNodeTemplate = getFunction(this.setNodeTemplate);\n if (setNodeTemplate && obj.id !== 'helper') {\n content = setNodeTemplate(obj, this);\n }\n if (!content) {\n content = obj.init(this);\n }\n canvas.children.push(content);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var wrapperContent;\n wrapperContent = getFunction(this.getDescription);\n if (wrapperContent) {\n (obj.children ? canvas : content).description = wrapperContent;\n }\n else {\n (obj.children ? canvas : content).description = obj.annotations.length ? obj.annotations[0].content : obj.id;\n }\n var container = obj.children ? portContainer : canvas;\n obj.initAnnotations(this.getDescription, container, this.element.id, canVitualize(this) ? true : false, this.annotationTemplate);\n obj.initPorts(this.getDescription, container);\n obj.initIcons(this.getDescription, this.layout, container, diagramId);\n for (var i = 0; obj.fixedUserHandles !== undefined, i < obj.fixedUserHandles.length; i++) {\n var fixedUserHandles = obj.initFixedUserHandles(obj.fixedUserHandles[i], this.fixedUserHandleTemplate, this.element.id);\n container.children.push(fixedUserHandles);\n }\n if (obj.shape.type === 'SwimLane' && obj.wrapper && obj.wrapper.children.length > 0 &&\n obj.wrapper.children[0] instanceof GridPanel) {\n this.setZIndex(this.activeLayer, obj);\n if (this.connectors.length > 0) {\n for (var i = 0; i < this.connectors.length; i++) {\n var obj_1 = this.connectors[i];\n if ((obj_1.sourceID && obj_1.targetID) && (this.activeLayer.objects.indexOf(obj_1.sourceID) === -1 &&\n this.activeLayer.objects.indexOf(obj_1.targetID) === -1)) {\n this.setZIndex(this.activeLayer, obj_1);\n }\n }\n }\n swimLaneMeasureAndArrange(obj);\n arrangeChildNodesInSwimLane(this, obj);\n this.updateDiagramElementQuad();\n }\n else {\n canvas.measure(new Size(obj.width, obj.height), obj.id, this.onLoadImageSize.bind(this));\n if (canvas instanceof GridPanel) {\n canvas.arrange(canvas.desiredSize, true);\n }\n else {\n canvas.arrange(canvas.desiredSize);\n }\n }\n if (obj.wrapper.flip !== 'None' && obj.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(obj.wrapper, obj.wrapper.offsetX, obj.wrapper.offsetY, this, obj.wrapper.flip);\n }\n if (obj.shape.type === 'Bpmn') {\n if (obj.shape.shape === 'TextAnnotation') {\n var isbpmnTextConnector = false;\n for (var i = 0; i < this.connectors.length; i++) {\n if (this.connectors[parseInt(i.toString(), 10)].id === (obj.id + \"_connector\")) {\n this.connectors[parseInt(i.toString(), 10)].isBpmnAnnotationConnector = true;\n isbpmnTextConnector = true;\n break;\n }\n }\n if (!isbpmnTextConnector) {\n this.addBpmnAnnotationConnector(obj, canvas);\n }\n }\n }\n if (obj instanceof Node && obj.container && (obj.width < canvas.outerBounds.width || obj.height < canvas.outerBounds.height) &&\n canvas.bounds.x <= canvas.outerBounds.x && canvas.bounds.y <= canvas.outerBounds.y) {\n obj.width = canvas.width = canvas.outerBounds.width;\n obj.height = canvas.height = canvas.outerBounds.height;\n canvas.measure(new Size(obj.width, obj.height));\n canvas.arrange(canvas.desiredSize);\n }\n if (obj.container && obj.container.type === 'Grid' && obj.children && obj.children.length > 0) {\n this.updateChildPosition(obj);\n }\n };\n Diagram.prototype.addBpmnAnnotationConnector = function (node, wrapper) {\n if (node.parentObj instanceof Diagram || node.parentObj instanceof Lane) {\n var bpmnAnnotation = node.shape;\n var direction = bpmnAnnotation.textAnnotation.textAnnotationDirection;\n var hasTarget = (bpmnAnnotation.textAnnotation.textAnnotationTarget !== '' && this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget]);\n var targetNode = hasTarget ? this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget] : null;\n var targetWrapper = targetNode != null ? targetNode.wrapper : null;\n var port = node.ports[0];\n var sourcePoint = { x: 0, y: 0 };\n switch (direction) {\n case 'Left':\n port.offset = { x: 0, y: 0.5 };\n sourcePoint.x = wrapper.bounds.left - 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n break;\n case 'Right':\n port.offset = { x: 1, y: 0.5 };\n sourcePoint.x = wrapper.bounds.right + 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n break;\n case 'Top':\n port.offset = { x: 0.5, y: 0 };\n sourcePoint.x = wrapper.bounds.right + 30;\n sourcePoint.y = wrapper.bounds.top - 40;\n break;\n case 'Bottom':\n port.offset = { x: 0.5, y: 1 };\n sourcePoint.x = wrapper.bounds.right + 30;\n sourcePoint.y = wrapper.bounds.bottom + 40;\n break;\n default:\n port.offset = { x: 0, y: 0.5 };\n sourcePoint.x = wrapper.bounds.left - 40;\n sourcePoint.y = wrapper.bounds.bottom + 30;\n if (hasTarget && wrapper != null && targetWrapper != null) {\n if (wrapper.bounds.left > targetWrapper.bounds.right) {\n port.offset = { x: 0, y: 0.5 };\n }\n else if (wrapper.bounds.right < targetWrapper.bounds.left) {\n port.offset = { x: 1, y: 0.5 };\n }\n else if (wrapper.bounds.bottom > targetWrapper.bounds.top) {\n port.offset = { x: 0.5, y: 0 };\n }\n else if (wrapper.bounds.top < targetWrapper.bounds.bottom) {\n port.offset = { x: 0.5, y: 1 };\n }\n }\n break;\n }\n var connector = new Connector(this, 'connectors', {\n id: node.id + \"_connector\",\n targetID: node.id,\n targetPortID: port.id,\n type: 'Straight',\n shape: {\n type: \"Bpmn\", flow: 'Association'\n },\n constraints: ConnectorConstraints.Default & ~(ConnectorConstraints.DragTargetEnd | ConnectorConstraints.Delete),\n isBpmnAnnotationConnector: true,\n }, true);\n if (hasTarget) {\n connector.sourceID = bpmnAnnotation.textAnnotation.textAnnotationTarget;\n }\n else {\n connector.sourcePoint = sourcePoint;\n }\n var oldProtectOnChange = this.isProtectedOnChange;\n this.isProtectedOnChange = true;\n node.constraints |= NodeConstraints.InConnect;\n this.connectors.push(connector);\n if (!(this.bpmnModule).bpmnTextAnnotationConnector) {\n (this.bpmnModule).bpmnTextAnnotationConnector = [];\n }\n (this.bpmnModule).bpmnTextAnnotationConnector.push(connector);\n node.constraints = NodeConstraints.Default & ~(NodeConstraints.OutConnect | NodeConstraints.InConnect);\n this.isProtectedOnChange = oldProtectOnChange;\n }\n };\n /** @private */\n Diagram.prototype.getBPMNTextAnnotation = function (node, diagram, annotation, isDynamic) {\n // create new text annotation node\n var obj = {\n id: annotation.id || randomId(),\n height: annotation.height || 100,\n width: annotation.width || 100,\n annotations: [{ id: (annotation.id ? annotation.id : randomId()) + annotation.text, content: annotation.text }],\n offsetX: node.offsetX + annotation.length *\n Math.cos(annotation.angle * (Math.PI / 180)),\n offsetY: node.offsetY + annotation.length *\n Math.sin(annotation.angle * (Math.PI / 180)),\n shape: { type: 'Bpmn', shape: 'TextAnnotation', textAnnotation: { textAnnotationDirection: 'Auto', textAnnotationTarget: node.id } },\n constraints: NodeConstraints.Default & ~(NodeConstraints.OutConnect | NodeConstraints.InConnect)\n };\n var parentBounds = node.wrapper.bounds;\n var position = { x: obj.offsetX, y: obj.offsetY };\n var direction = getPortDirection(position, parentBounds, parentBounds, false);\n var segment;\n switch (direction) {\n case 'Right':\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.right, y2: parentBounds.bottom\n };\n break;\n case 'Left':\n segment = {\n x1: parentBounds.left, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n break;\n case 'Bottom':\n segment = {\n x1: parentBounds.right, y1: parentBounds.bottom,\n x2: parentBounds.left, y2: parentBounds.bottom\n };\n break;\n case 'Top':\n segment = {\n x1: parentBounds.right, y1: parentBounds.top,\n x2: parentBounds.left, y2: parentBounds.top\n };\n break;\n }\n var center = parentBounds.center;\n var endPoint = Point.transform(position, annotation.angle, Math.max(parentBounds.width, parentBounds.height));\n var point = getIntersectionPoints(segment, [center, endPoint], false, center);\n if (annotation.length !== undefined && annotation.angle !== undefined && point) {\n point = Point.transform(point, annotation.angle, annotation.length);\n obj.offsetX = point.x;\n obj.offsetY = point.y;\n }\n if (direction === 'Right') {\n obj.offsetX += obj.width / 2;\n }\n else if (direction === 'Left') {\n obj.offsetX -= obj.width / 2;\n }\n else if (direction === 'Bottom') {\n obj.offsetY += obj.height / 2;\n }\n else {\n obj.offsetY -= obj.height / 2;\n }\n if (isDynamic) {\n this.add(obj);\n }\n else {\n var bpmnTextNode = new Node(this, 'nodes', obj, true);\n diagram.initObject(bpmnTextNode, undefined, undefined, true);\n diagram.nodes.push(bpmnTextNode);\n }\n };\n /* eslint-enable */\n /**\n * updateDiagramElementQuad method \\\n *\n * @returns { void } updateDiagramElementQuad method .\\\n *\n * @private\n */\n Diagram.prototype.updateDiagramElementQuad = function () {\n for (var i = 0; i < this.nodes.length; i++) {\n if (this.nodes[parseInt(i.toString(), 10)].wrapper && (this.nodes[parseInt(i.toString(), 10)].wrapper instanceof Container)) {\n this.updateQuad(this.nodes[parseInt(i.toString(), 10)]);\n }\n }\n };\n Diagram.prototype.onLoadImageSize = function (id, size) {\n var obj = this.getObject(id);\n var image = document.getElementById(id + 'sf-imageNode');\n if (image) {\n image.parentNode.removeChild(image);\n }\n this.nodePropertyChange(obj, {}, { width: size.width, height: size.height });\n var args = { element: cloneObject(obj), size: size };\n this.triggerEvent(DiagramEvent.onImageLoad, args);\n };\n Diagram.prototype.updateChildPosition = function (obj) {\n for (var i = 0; i < obj.children.length; i++) {\n var child = this.getObject(obj.children[parseInt(i.toString(), 10)]);\n child.offsetX = child.wrapper.offsetX;\n child.offsetY = child.wrapper.offsetY;\n if (child.children && child.children.length > 0) {\n this.updateChildPosition(child);\n }\n }\n };\n Diagram.prototype.canExecute = function () {\n return true;\n };\n Diagram.prototype.updateStackProperty = function (obj, child, index) {\n if (obj.container && obj.container.type === 'Stack') {\n if (!child.width) {\n child.wrapper.horizontalAlignment = 'Stretch';\n child.horizontalAlignment = 'Stretch';\n }\n if (!child.height) {\n child.verticalAlignment = 'Stretch';\n child.wrapper.verticalAlignment = 'Stretch';\n }\n if (index && obj.shape.type === 'UmlClassifier') {\n child.umlIndex = index;\n }\n }\n };\n Diagram.prototype.initViews = function () {\n if (!this.isLoading) {\n this.views.push(this.element.id);\n this.views[this.element.id] = this;\n }\n };\n Diagram.prototype.initCommands = function () {\n var i;\n var newCommands = this.commandManager.commands;\n var commands = {\n 'copy': {\n execute: this.copyCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.C, keyModifiers: KeyModifiers.Control }\n },\n 'paste': {\n execute: this.pasteCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.V, keyModifiers: KeyModifiers.Control }\n },\n 'cut': {\n execute: this.cutCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.X, keyModifiers: KeyModifiers.Control }\n },\n 'delete': {\n execute: this.removeCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Delete }\n },\n 'selectAll': {\n execute: this.selectAll.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.A, keyModifiers: KeyModifiers.Control }\n },\n 'undo': {\n execute: this.undo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Z, keyModifiers: KeyModifiers.Control }\n },\n 'redo': {\n execute: this.redo.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Y, keyModifiers: KeyModifiers.Control }\n },\n 'nudgeUp': {\n execute: this.nudgeCommand.bind(this, 'Up'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Up },\n parameter: 'up'\n },\n 'nudgeRight': {\n execute: this.nudgeCommand.bind(this, 'Right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Right },\n parameter: 'right'\n },\n 'nudgeDown': {\n execute: this.nudgeCommand.bind(this, 'Down'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Down },\n parameter: 'down'\n },\n 'nudgeLeft': {\n execute: this.nudgeCommand.bind(this, 'Left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Left },\n parameter: 'left'\n },\n 'startEdit': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.F2 }\n },\n 'endEdit': {\n execute: this.endEditCommand.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Escape }\n },\n //EJ2-866418-keyboard shortcut keys\n 'focusToNextItem': {\n execute: this.navigateItems.bind(this, true),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Tab }\n },\n 'focusToPreviousItem': {\n execute: this.navigateItems.bind(this, false), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Tab, keyModifiers: KeyModifiers.Shift }\n },\n 'selectFocusedItem': {\n execute: this.startEditCommad.bind(this),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Enter }\n },\n 'bold': {\n execute: this.fontStyleCommand.bind(this, 'bold'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.B, keyModifiers: KeyModifiers.Control }\n },\n 'italic': {\n execute: this.fontStyleCommand.bind(this, 'italic'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.I, keyModifiers: KeyModifiers.Control }\n },\n 'underline': {\n execute: this.fontStyleCommand.bind(this, 'underline'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.U, keyModifiers: KeyModifiers.Control }\n },\n 'duplicate': {\n execute: this.duplicateCommand.bind(this), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.D, keyModifiers: KeyModifiers.Control }\n },\n 'group': {\n execute: this.groupCommand.bind(this, 'group'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.G, keyModifiers: KeyModifiers.Control }\n },\n 'ungroup': {\n execute: this.groupCommand.bind(this, 'ungroup'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.U, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'rotateClockwise': {\n execute: this.rotateCommand.bind(this, 'clockwise'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.R, keyModifiers: KeyModifiers.Control }\n },\n 'rotateAntiClockwise': {\n execute: this.rotateCommand.bind(this, 'antiClockwise'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.L, keyModifiers: KeyModifiers.Control }\n },\n 'flipHorizontal': {\n execute: this.flipCommand.bind(this, 'horizontal'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.H, keyModifiers: KeyModifiers.Control }\n },\n 'flipVertical': {\n execute: this.flipCommand.bind(this, 'vertical'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.J, keyModifiers: KeyModifiers.Control }\n },\n 'pointerTool': {\n execute: this.toolCommand.bind(this, 'pointer'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number1, keyModifiers: KeyModifiers.Control }\n },\n 'textTool': {\n execute: this.toolCommand.bind(this, 'text'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number2, keyModifiers: KeyModifiers.Control }\n },\n 'connectTool': {\n execute: this.toolCommand.bind(this, 'connect'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number3, keyModifiers: KeyModifiers.Control }\n },\n 'freeForm': {\n execute: this.toolCommand.bind(this, 'freeForm'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number5, keyModifiers: KeyModifiers.Control }\n },\n 'lineTool': {\n execute: this.toolCommand.bind(this, 'line'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number6, keyModifiers: KeyModifiers.Control }\n },\n 'rectangleTool': {\n execute: this.toolCommand.bind(this, 'rectangle'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number8, keyModifiers: KeyModifiers.Control }\n },\n 'ellipseTool': {\n execute: this.toolCommand.bind(this, 'ellipse'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Number9, keyModifiers: KeyModifiers.Control }\n },\n 'zoomIn': {\n execute: this.zoomCommand.bind(this, 'zoomIn'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Plus, keyModifiers: KeyModifiers.Control }\n },\n 'zoomOut': {\n execute: this.zoomCommand.bind(this, 'zoomOut'), canExecute: this.canExecute.bind(this),\n gesture: { key: Keys.Minus, keyModifiers: KeyModifiers.Control }\n },\n 'shiftUp': {\n execute: this.shiftCommand.bind(this, 'Up'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Up, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftDown': {\n execute: this.shiftCommand.bind(this, 'Down'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Down, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftLeft': {\n execute: this.shiftCommand.bind(this, 'Left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Left, keyModifiers: KeyModifiers.Shift }\n },\n 'shiftRight': {\n execute: this.shiftCommand.bind(this, 'Right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.Right, keyModifiers: KeyModifiers.Shift }\n },\n 'alignTextCenter': {\n execute: this.alignCommand.bind(this, 'center'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.C, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextLeft': {\n execute: this.alignCommand.bind(this, 'right'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.L, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextRight': {\n execute: this.alignCommand.bind(this, 'left'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.R, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextTop': {\n execute: this.alignCommand.bind(this, 'top'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.E, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextCenterVertical': {\n execute: this.alignCommand.bind(this, 'centerVertical'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.M, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignTextBottom': {\n execute: this.alignCommand.bind(this, 'bottom'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.V, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'alignJustify': {\n execute: this.alignCommand.bind(this, 'justify'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.J, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'sendToBack': {\n execute: this.orderCommand.bind(this, 'sendToBack'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.B, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'bringToFront': {\n execute: this.orderCommand.bind(this, 'bringToFront'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.F, keyModifiers: KeyModifiers.Control | KeyModifiers.Shift }\n },\n 'sendBackward': {\n execute: this.orderCommand.bind(this, 'sendBackward'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.BracketLeft, keyModifiers: KeyModifiers.Control }\n },\n 'bringForward': {\n execute: this.orderCommand.bind(this, 'bringForward'),\n canExecute: this.canExecute.bind(this), gesture: { key: Keys.BracketRight, keyModifiers: KeyModifiers.Control }\n }\n };\n this.initCommandManager(newCommands, commands);\n };\n Diagram.prototype.overrideCommands = function (newCommand, commands) {\n var command;\n for (var _i = 0, _a = Object.keys(commands); _i < _a.length; _i++) {\n var key = _a[_i];\n command = commands[\"\" + key];\n if (newCommand.gesture.key === command.gesture.key && newCommand.gesture.keyModifiers === command.gesture.keyModifiers) {\n delete commands[\"\" + key];\n break;\n }\n }\n };\n Diagram.prototype.initCommandManager = function (newCommands, commands) {\n var i = 0;\n if (newCommands) {\n for (i = 0; i < newCommands.length; i++) {\n if (commands[newCommands[parseInt(i.toString(), 10)].name] && newCommands[parseInt(i.toString(), 10)]) {\n if (newCommands[parseInt(i.toString(), 10)].canExecute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].canExecute\n = newCommands[parseInt(i.toString(), 10)].canExecute;\n }\n if (newCommands[parseInt(i.toString(), 10)].execute) {\n commands[newCommands[parseInt(i.toString(), 10)].name].execute\n = newCommands[parseInt(i.toString(), 10)].execute;\n }\n if (newCommands[parseInt(i.toString(), 10)].gesture.key\n || newCommands[parseInt(i.toString(), 10)].gesture.keyModifiers) {\n commands[newCommands[parseInt(i.toString(), 10)].name].gesture\n = newCommands[parseInt(i.toString(), 10)].gesture;\n }\n if (newCommands[parseInt(i.toString(), 10)].parameter !== '') {\n commands[newCommands[parseInt(i.toString(), 10)].name].parameter\n = newCommands[parseInt(i.toString(), 10)].parameter;\n }\n }\n else {\n this.overrideCommands(newCommands[parseInt(i.toString(), 10)], commands);\n commands[newCommands[parseInt(i.toString(), 10)].name] = {\n execute: newCommands[parseInt(i.toString(), 10)].execute,\n canExecute: newCommands[parseInt(i.toString(), 10)].canExecute,\n gesture: newCommands[parseInt(i.toString(), 10)].gesture,\n parameter: newCommands[parseInt(i.toString(), 10)].parameter\n };\n }\n }\n }\n this.commands = commands;\n };\n /**\n * updateNodeEdges method \\\n *\n * @returns { void } updateNodeEdges method .\\\n * @param {Node} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateNodeEdges = function (node) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].targetID = '';\n }\n }\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var edge = _c[_b];\n if (this.nameTable[\"\" + edge]) {\n this.nameTable[\"\" + edge].sourceID = '';\n }\n }\n node.inEdges = [];\n node.outEdges = [];\n };\n /**\n * updateIconVisibility method \\\n *\n * @returns { void } updateIconVisibility method .\\\n * @param {Node} node - provide the source value.\n * @param {boolean} visibility - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateIconVisibility = function (node, visibility) {\n for (var i = 0; i < node.wrapper.children.length; i++) {\n var child = node.wrapper.children[parseInt(i.toString(), 10)];\n if (child.id) {\n var id = child.id.split(node.id)[1];\n if (id && id.match('^_icon')) {\n child.visible = visibility;\n this.updateDiagramContainerVisibility(child, visibility);\n }\n }\n }\n };\n /**\n * updateEdges method \\\n *\n * @returns { void } updateEdges method .\\\n * @param {Connector} obj - provide the source value.\n *\n * @private\n */\n Diagram.prototype.updateEdges = function (obj) {\n if (obj.sourceID !== undefined && obj.sourceID !== '') {\n var object = this.nameTable[obj.sourceID];\n if (object && object.outEdges && object.outEdges.length === 0) {\n object.outEdges = [];\n }\n if (object && object.outEdges && object.outEdges.indexOf(obj.id) === -1) {\n object.outEdges.push(obj.id);\n }\n this.updatePortEdges(object, obj, false);\n }\n if (obj.targetID !== undefined && obj.targetID !== '') {\n var node = this.nameTable[obj.targetID];\n if (node && node.inEdges && node.inEdges.length === 0) {\n node.inEdges = [];\n }\n if (node && node.inEdges && node.inEdges.indexOf(obj.id) === -1) {\n node.inEdges.push(obj.id);\n }\n this.updatePortEdges(node, obj, true);\n if (node && node.visible && node.outEdges) {\n var value = node.outEdges.length === 0 ? false : true;\n this.updateIconVisibility(node, value);\n }\n }\n };\n /**\n * updatePortEdges method \\\n *\n * @returns { void } updatePortEdges method .\\\n * @param {NodeModel} node - provide the source value.\n * @param {ConnectorModel} obj - provide the target value.\n * @param {boolean} isInEdges - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updatePortEdges = function (node, obj, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n var portId = (isInEdges) ? obj.targetPortID : obj.sourcePortID;\n if (port.id === portId) {\n var portEdges = (isInEdges) ? port.inEdges : port.outEdges;\n if (portEdges.indexOf(obj.id) === -1) {\n portEdges.push(obj.id);\n }\n }\n }\n }\n };\n /**\n * refreshDiagram method \\\n *\n * @returns { void } refreshDiagram method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagram = function () {\n this.initLayerObjects();\n this.doLayout();\n this.updateBridging();\n this.scroller.setSize();\n this.addBlazorDiagramObjects();\n //Removed isBlazor code\n this.updateFitToPage();\n };\n Diagram.prototype.updateCanupdateStyle = function (element, value) {\n for (var j = 0; j < element.length; j++) {\n if (element[parseInt(j.toString(), 10)].children) {\n this.updateCanupdateStyle(element[parseInt(j.toString(), 10)].children, value);\n }\n element[parseInt(j.toString(), 10)].canApplyStyle = value;\n }\n };\n Diagram.prototype.getZindexPosition = function (obj, viewId) {\n var objects = [];\n var index = undefined;\n objects = objects.concat(this.nodes);\n objects = objects.concat(this.connectors);\n var type;\n if (obj.zIndex !== Number.MIN_VALUE) {\n for (var i = 0; i < objects.length; i++) {\n if (objects[parseInt(i.toString(), 10)].zIndex > obj.zIndex) {\n if (obj.shape.type === 'HTML' || obj.shape.type === 'Native') {\n type = obj.shape.type === 'HTML' ? 'html' : 'native';\n }\n index = getDomIndex(viewId, objects[parseInt(i.toString(), 10)].id, type);\n break;\n }\n }\n }\n return index;\n };\n /**\n *updateDiagramObject method \\\n *\n * @returns { void } updateDiagramObject method .\\\n * @param { (NodeModel | ConnectorModel) } obj - provide the obj value.\n * @param { boolean } canIgnoreIndex - provide the canIgnoreIndex value.\n * @param { boolean } isUpdateObject - provide the isUpdateObject value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramObject = function (obj, canIgnoreIndex, isUpdateObject) {\n var view;\n var domTable = 'domTable';\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (this.diagramActions) {\n if (view.mode === 'SVG') {\n var hasLayers = this.layers.length > 1;\n var layer = void 0;\n if (hasLayers) {\n layer = this.commandHandler.getObjectLayer(obj.id);\n }\n if ((layer === undefined || (layer && layer.visible)) || isUpdateObject) {\n var htmlLayer = getHTMLLayer(this.element.id);\n if (!window[\"\" + domTable][view.element.id + '_diagramLayer']) {\n window[\"\" + domTable][view.element.id + '_diagramLayer'] =\n document.getElementById(view.element.id + '_diagramLayer');\n }\n var diagramElementsLayer = window[\"\" + domTable][view.element.id + '_diagramLayer'];\n if (this.diagramActions & DiagramAction.Interactions) {\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n var centerPoint = this.getMidPoint(obj);\n this.diagramRenderer.updateNode(obj.wrapper, diagramElementsLayer, htmlLayer, undefined, canIgnoreIndex ? undefined : this.getZindexPosition(obj, view.element.id), centerPoint, this.portCenterPoint);\n this.updateCanupdateStyle(obj.wrapper.children, true);\n }\n }\n }\n }\n };\n //Method used to apply margin for Bezier Curve points.\n Diagram.prototype.applyMarginBezier = function (obj, centerPoint) {\n centerPoint.cx = centerPoint.cx + obj.margin.left;\n centerPoint.cx = centerPoint.cx - obj.margin.right;\n centerPoint.cy = centerPoint.cy + obj.margin.top;\n centerPoint.cy = centerPoint.cy - obj.margin.bottom;\n };\n //Method used to get mid point of Bezier Curve\n Diagram.prototype.getMidPoint = function (obj) {\n var finalPoint;\n if (obj instanceof Connector && obj.type === 'Bezier') {\n finalPoint = [];\n var totalPoints = this.getBezierPoints(obj);\n var totalLength = Point.getLengthFromListOfPoints(totalPoints);\n // Bug 905077: Fixed improper positioning of multiple annotations for Bezier connectors.\n // Iterated through annotations and ports to correctly determine their positions.\n for (var i = 0; i < obj.annotations.length; i++) {\n var centerPoint = obj.annotations[parseInt(i.toString(), 10)].offset;\n var absoluteLength = centerPoint * totalLength;\n var position = this.commandHandler.getPointAtLength(absoluteLength, totalPoints, 0);\n var annotationPosition = { cx: position.x, cy: position.y };\n // EJ2-64114 -Horizontal and Vertical alignment not applied properly for the bezier connector annotation\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(j.toString(), 10)] instanceof TextElement) {\n if (obj.wrapper.children[parseInt(j.toString(), 10)].id === obj.id + '_' + obj.annotations[parseInt(i.toString(), 10)].id) {\n this.applyMarginBezier(obj.wrapper.children[parseInt(j.toString(), 10)], annotationPosition);\n finalPoint[obj.id + '_' + obj.annotations[parseInt(i.toString(), 10)].id] =\n this.applyAlignment(obj.wrapper.children[parseInt(j.toString(), 10)], annotationPosition, obj.annotations[parseInt(i.toString(), 10)].displacement);\n }\n }\n }\n }\n // Bug 835525: Connector Port feature. Below code is used to get the port position for bezier connector.\n for (var i = 0; i < obj.ports.length; i++) {\n var portOffset = obj.ports[parseInt(i.toString(), 10)].offset;\n var length_1 = portOffset * totalLength;\n var portPosition = this.commandHandler.getPointAtLength(length_1, totalPoints, 0);\n var portPoint = { cx: portPosition.x, cy: portPosition.y };\n for (var j = 0; j < obj.wrapper.children.length; j++) {\n if (obj.wrapper && obj.wrapper.children[parseInt(j.toString(), 10)] instanceof PathElement &&\n obj.wrapper.children[parseInt(j.toString(), 10)].isPathPort) {\n if (obj.wrapper.children[parseInt(j.toString(), 10)].id === obj.id + '_' + obj.ports[parseInt(i.toString(), 10)].id) {\n this.applyMarginBezier(obj.wrapper.children[parseInt(j.toString(), 10)], portPoint);\n this.portCenterPoint[obj.id + '_' + obj.ports[parseInt(i.toString(), 10)].id] =\n this.applyAlignment(obj.wrapper.children[parseInt(j.toString(), 10)], portPoint, obj.ports[parseInt(i.toString(), 10)].displacement);\n }\n }\n }\n }\n }\n return finalPoint;\n };\n /**\n * Apply alignment to bezier port\n * @returns {PointModel} return the port alignment points\n * @param {PathElement | TextElement} child - provide the obj value.\n * @param {any} finalPoint - provide final point value.\n * @param {PointModel} displacement - provide displacement value.\n */\n Diagram.prototype.applyAlignment = function (child, finalPoint, displacement) {\n switch (child.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n finalPoint.cx = child.inversedAlignment ? finalPoint.cx : (finalPoint.cx - child.desiredSize.width);\n finalPoint.cx += displacement.x;\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cx -= child.desiredSize.width * child.pivot.x;\n break;\n case 'Right':\n finalPoint.cx = child.inversedAlignment ? (finalPoint.cx - child.desiredSize.width) : finalPoint.cx;\n finalPoint.cx -= displacement.x;\n break;\n }\n switch (child.verticalAlignment) {\n case 'Auto':\n case 'Top':\n finalPoint.cy = child.inversedAlignment ? finalPoint.cy : (finalPoint.cy - child.desiredSize.height);\n finalPoint.cy += displacement.y;\n break;\n case 'Stretch':\n case 'Center':\n finalPoint.cy -= child.desiredSize.height * child.pivot.y;\n break;\n case 'Bottom':\n finalPoint.cy = child.inversedAlignment ? (finalPoint.cy - child.desiredSize.height) : finalPoint.cy;\n finalPoint.cy -= displacement.y;\n break;\n }\n return finalPoint;\n };\n //(EJ2-62683) Method used to get total points in bezier connector\n Diagram.prototype.getBezierPoints = function (obj) {\n var points = [];\n var i;\n var source = { x: obj.sourcePoint.x, y: obj.sourcePoint.y };\n points.push(source);\n for (i = 0; i < obj.segments.length; i++) {\n var total = obj.segments[parseInt(i.toString(), 10)].getPoints(obj.segments[parseInt(i.toString(), 10)], source);\n // 878719: Resolve ESLint errors\n // eslint-disable-next-line prefer-spread\n points.push.apply(points, total);\n source = points[points.length - 1];\n }\n return points;\n };\n /**\n *updateGridContainer method \\\n *\n * @returns { void } updateGridContainer method .\\\n * @param { GridPanel } grid - provide the objectArray value.\n *\n * @private\n */\n Diagram.prototype.updateGridContainer = function (grid) {\n var view;\n var htmlLayer = getHTMLLayer(this.element.id);\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n if (view.mode === 'SVG' && this.diagramActions) {\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n this.diagramRenderer.updateNode(grid, diagramElementsLayer, htmlLayer, undefined);\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n }\n };\n /**\n *Retrieves the node or connector with the given id. \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } Retrieves the node or connector with the given id.\\\n * @param { string[] } objectArray - The id of the node or connector to be retrieved.\n *\n * @private\n */\n Diagram.prototype.getObjectsOfLayer = function (objectArray) {\n var nodeArray = [];\n for (var _i = 0, objectArray_1 = objectArray; _i < objectArray_1.length; _i++) {\n var obj = objectArray_1[_i];\n if (this.nameTable[\"\" + obj]) {\n nodeArray.push(this.nameTable[\"\" + obj]);\n }\n }\n return nodeArray;\n };\n /**\n *refreshDiagramLayer method \\\n *\n * @returns { void } refreshDiagramLayer method .\\\n *\n * @private\n */\n Diagram.prototype.refreshDiagramLayer = function () {\n var view;\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n view = this.views[\"\" + temp];\n switch (view.mode) {\n case 'SVG':\n this.refreshSvgDiagramLayer(view);\n break;\n case 'Canvas':\n this.refreshCanvasLayers(view);\n break;\n }\n }\n };\n /**\n *refreshCanvasLayers method \\\n *\n * @returns { void } refreshCanvasLayers method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasLayers = function (view) {\n if (!view) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view_1 = this.views[\"\" + temp];\n this.refreshCanvasDiagramLayer(view_1);\n }\n }\n else {\n this.refreshCanvasDiagramLayer(view);\n }\n };\n Diagram.prototype.renderBasicElement = function (view) {\n var htmlLayer = getHTMLLayer(view.element.id);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n if (element instanceof Container) {\n element.prevRotateAngle = 0;\n }\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n };\n Diagram.prototype.refreshElements = function (view) {\n var isOverView = false;\n if (!this.isDestroyed) {\n this.clearCanvas(view);\n if (view instanceof Diagram) {\n view.diagramLayer.getContext('2d').setTransform(view.scroller.currentZoom, 0, 0, view.scroller.currentZoom, 0, 0);\n view.diagramLayer.getContext('2d').scale(1.5, 1.5);\n }\n else {\n isOverView = true;\n var element = document.getElementById(view.element.id + '_nativeLayer');\n if (element.children.length > 0) {\n view.updateView(view);\n }\n }\n var htmlLayer = getHTMLLayer(view.element.id);\n //const bounds: Rect = this.spatialSearch.getPageBounds();\n this.renderDiagramElements(view.diagramLayer, view.diagramRenderer, htmlLayer, undefined, undefined, isOverView);\n for (var i = 0; i < this.basicElements.length; i++) {\n var element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize);\n view.diagramRenderer.renderElement(element, view.diagramLayer, htmlLayer);\n }\n if (view instanceof Diagram) {\n view.diagramLayer.style.transform = 'scale(' + (2 / 3) + ')';\n view.diagramLayer.style.transformOrigin = '0 0';\n }\n this.renderTimer = null;\n }\n };\n /**\n *refreshCanvasDiagramLayer method \\\n *\n * @returns { void } refreshCanvasDiagramLayer method .\\\n * @param { View } view - provide the view value.\n *\n * @private\n */\n Diagram.prototype.refreshCanvasDiagramLayer = function (view) {\n var _this = this;\n if (view.mode !== 'SVG' && !this.isDestroyed) {\n if (this.basicElements.length > 0) {\n this.renderBasicElement(view);\n }\n if ((!this.diagramActions || (this.diagramActions & DiagramAction.Render) === 0)\n || (DiagramAction.ToolAction & this.diagramActions) || canVitualize(this) || (this.scroller.currentZoom !== 1)) {\n this.refreshElements(view);\n }\n else if (!this.renderTimer) {\n this.renderTimer = setTimeout(function () {\n _this.refreshElements(view);\n }, 40);\n }\n }\n };\n /**\n *updatePortVisibility method \\\n *\n * @returns { void } updatePortVisibility method .\\\n * @param { Node } obj - provide the node value.\n * @param { PortVisibility } portVisibility - provide the portVisibility value.\n * @param { Boolean } inverse - provide the inverse value.\n *\n * @private\n */\n Diagram.prototype.updatePortVisibility = function (obj, portVisibility, inverse) {\n var portElement;\n var drawingObject = !(this.drawingObject && this.drawingObject.shape) ? true : false;\n if ((obj instanceof Node || obj instanceof Connector) && drawingObject && canMove(obj)) {\n var ports = obj.ports;\n var changed = false;\n for (var i = 0; i < ports.length; i++) {\n portElement = this.getWrapper(obj.wrapper, ports[parseInt(i.toString(), 10)].id);\n if ((portVisibility & PortVisibility.Hover || portVisibility & PortVisibility.Connect)) {\n if (checkPortRestriction(ports[parseInt(i.toString(), 10)], portVisibility)) {\n portElement.visible = !inverse;\n changed = true;\n }\n }\n }\n if (changed) {\n this.updateDiagramObject(obj);\n }\n //EJ2-59672 - Added the below code to render the ports while hovering over the node\n if (this.mode === 'Canvas') {\n this.refreshCanvasLayers();\n }\n }\n };\n /**\n *refreshSvgDiagramLayer method \\\n *\n * @returns { void } refreshSvgDiagramLayer method .\\\n * @param { View } view - provide the object value.\n *\n * @private\n */\n Diagram.prototype.refreshSvgDiagramLayer = function (view) {\n var element;\n var diagramElementsLayer = document.getElementById(view.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(view.element.id);\n if (!canVitualize(this)) {\n for (var i = 0; i < this.basicElements.length; i++) {\n element = this.basicElements[parseInt(i.toString(), 10)];\n element.measure(new Size(element.width, element.height));\n element.arrange(element.desiredSize, (!(this.diagramActions & DiagramAction.Render) ? true : false));\n this.diagramRenderer.renderElement(element, diagramElementsLayer, htmlLayer);\n }\n this.renderDiagramElements(diagramElementsLayer, this.diagramRenderer, htmlLayer);\n }\n else {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *removeVirtualObjects method \\\n *\n * @returns { void } removeVirtualObjects method .\\\n * @param { Object } clearIntervalVal - provide the object value.\n *\n * @private\n */\n Diagram.prototype.removeVirtualObjects = function (clearIntervalVal) {\n if (this.deleteVirtualObject) {\n for (var i = 0; i < this.scroller.removeCollection.length; i++) {\n var obj = this.nameTable[this.scroller.removeCollection[parseInt(i.toString(), 10)]];\n //EJ2-840437 - Exception occurs When Removing connector with Virtualization Enabled\n if (obj !== undefined) {\n this.removeElements(obj);\n }\n }\n this.deleteVirtualObject = false;\n }\n clearInterval(clearIntervalVal);\n };\n /**\n *updateTextElementValue method \\\n *\n * @returns { void } updateTextElementValue method .\\\n * @param { NodeModel | ConnectorModel } object - provide the object value.\n *\n * @private\n */\n Diagram.prototype.updateTextElementValue = function (object) {\n for (var j = 0; j < object.wrapper.children.length; j++) {\n var element = object.wrapper.children[parseInt(j.toString(), 10)];\n if (element instanceof TextElement) {\n element.canMeasure = true;\n //866384-Annotation Alignment is wrong when virtualisation constraints enabled\n var viewPortHeight = this.scroller.viewPortHeight;\n var viewPortWidth = this.scroller.viewPortWidth;\n var measureText = false;\n if (object.offsetX < viewPortWidth && object.offsetY < viewPortHeight) {\n measureText = true;\n }\n if (measureText && canVitualize(this) && element.actualSize.height === undefined\n && element.actualSize.width === undefined) {\n object.wrapper.measure(new Size(object.width, object.height), object.id, this.onLoadImageSize.bind(this));\n object.wrapper.arrange(object.wrapper.desiredSize);\n }\n element.measure(new Size(object.width, object.height));\n element.arrange(element.desiredSize);\n }\n }\n };\n /**\n *updateVirtualObjects method \\\n *\n * @returns { void } updateVirtualObjects method .\\\n * @param { string[] } collection - provide the collection value.\n * @param { boolean } remove - provide the remove value.\n * @param { string[] } tCollection - provide the htmlLayer value.\n *\n * @private\n */\n Diagram.prototype.updateVirtualObjects = function (collection, remove, tCollection) {\n var diagramElementsLayer = document.getElementById(this.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(this.element.id);\n if (this.mode === 'SVG') {\n for (var i = 0; i < collection.length; i++) {\n var index = this.scroller.removeCollection.indexOf(collection[parseInt(i.toString(), 10)]);\n if (index >= 0) {\n this.scroller.removeCollection.splice(index, 1);\n }\n var object = this.nameTable[collection[parseInt(i.toString(), 10)]];\n this.updateTextElementValue(object);\n this.diagramRenderer.renderElement(object.wrapper, diagramElementsLayer, htmlLayer, undefined, undefined, undefined, undefined, object.zIndex);\n }\n for (var k = 0; k < tCollection.length; k++) {\n this.scroller.removeCollection.push(tCollection[parseInt(k.toString(), 10)]);\n }\n if (this.scroller.currentZoom !== 1) {\n this.eventHandler.updateVirtualization();\n }\n }\n else if (this.diagramActions) {\n this.refreshDiagramLayer();\n }\n };\n /**\n *renderDiagramElements method \\\n *\n * @returns { void } renderDiagramElements method .\\\n * @param { HTMLCanvasElement | SVGElement} canvas - provide the canvas value.\n * @param { DiagramRenderer } renderer - provide the renderer value.\n * @param { HTMLElement } htmlLayer - provide the htmlLayer value.\n * @param {boolean } transform - provide the transform value.\n * @param {boolean } fromExport - provide the fromExport value.\n * @param { boolean } isOverView - provide the isOverView value.\n *\n * @private\n */\n Diagram.prototype.renderDiagramElements = function (canvas, renderer, htmlLayer, transform, fromExport, isOverView) {\n if (transform === void 0) { transform = true; }\n var pageBounds = this.scroller.getPageBounds();\n pageBounds.x *= this.scroller.currentZoom;\n pageBounds.y *= this.scroller.currentZoom;\n pageBounds.width *= this.scroller.currentZoom;\n pageBounds.height *= this.scroller.currentZoom;\n var difX = -this.scroller.horizontalOffset - pageBounds.x;\n var difY = -this.scroller.verticalOffset - pageBounds.y;\n var getCenterPoint;\n for (var _i = 0, _a = Object.keys(this.layerZIndexTable); _i < _a.length; _i++) {\n var layerId = _a[_i];\n var layer = this.commandHandler.getLayer(this.layerZIndexTable[\"\" + layerId]);\n var left = void 0;\n var top_1 = void 0;\n if (this.mode === 'Canvas' && canVitualize(this) && !this.diagramActions) {\n this.scroller.virtualizeElements();\n }\n var id = (this.mode === 'Canvas' && canVitualize(this) &&\n this.scroller.oldCollectionObjects.length > 0) ?\n this.scroller.oldCollectionObjects : undefined;\n // Sort layer objects to arrange nodes with negative zIndex values at the beginning of the array.\n // Due to the new implementation with order commands, the zIndex of a node may become negative.\n // Therefore, we need to sort the zIndex values, with the least negative values coming first, followed by positive values.\n var layerObjects = Object.keys(id || layer.zIndexTable);\n layerObjects.sort(function (a, b) { return parseInt(\"\" + a, 10) - parseInt(\"\" + b, 10); });\n for (var _b = 0, layerObjects_1 = layerObjects; _b < layerObjects_1.length; _b++) {\n var node = layerObjects_1[_b];\n var renderNode = id ? this.nameTable[id[\"\" + node]] : this.nameTable[layer.zIndexTable[\"\" + node]];\n if (renderNode && !(renderNode.parentId) && layer.visible &&\n (!(renderNode.processId) || this.refreshing)) {\n //EJ2-68738 - Overview content not updated properly on zoom out the diagram\n var transformValue = void 0;\n //828826 - In canvas mode diagram transform values are not updated properly while Zoom out action\n if (this.scroller.currentZoom < 1 && this.mode === 'SVG') {\n transformValue = {\n tx: (-pageBounds.x) / this.scroller.currentZoom,\n ty: (-pageBounds.y) / this.scroller.currentZoom,\n scale: this.scroller.transform.scale\n };\n }\n else {\n transformValue = {\n tx: this.scroller.transform.tx,\n ty: this.scroller.transform.ty,\n scale: this.scroller.transform.scale\n };\n }\n // Bug 880945: Overview is not updated properly with 4k monitor.\n //To render the overview elements based on the pageBounds.\n if (isOverView) {\n transformValue = {\n tx: (-pageBounds.x) / this.scroller.currentZoom,\n ty: (-pageBounds.y) / this.scroller.currentZoom,\n scale: this.scroller.transform.scale\n };\n }\n if (canVitualize(this)) {\n if (this.scroller.currentZoom < 1) {\n if (pageBounds.x < 0 || this.scroller.horizontalOffset < 0) {\n var verticalValue = this.scroller.verticalOffset < 0 ? this.scroller.verticalOffset : 0;\n left = (difX > 0 ? difX : 0) + 'px';\n top_1 = ((this.realActions & RealAction.vScrollbarMoved) ? 0 : -verticalValue) + 'px';\n }\n else {\n left = 0 + 'px';\n top_1 = 0 + 'px';\n }\n if (this.realActions & RealAction.hScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.hScrollbarMoved;\n }\n if (this.realActions & RealAction.vScrollbarMoved) {\n this.realActions = this.realActions & ~RealAction.vScrollbarMoved;\n }\n }\n else {\n left = (pageBounds.x < 0 ? difX : -this.scroller.horizontalOffset) + 'px';\n top_1 = (pageBounds.y < 0 ? difY : -this.scroller.verticalOffset) + 'px';\n }\n this.diagramLayer.style.left = left;\n this.diagramLayer.style.top = top_1;\n //EJ2-69578 - Overview is not updated properly when we enable virtualization.\n transformValue.tx = (-pageBounds.x) / transformValue.scale;\n transformValue.ty = (-pageBounds.y) / transformValue.scale;\n }\n var status_1 = true;\n if (fromExport) {\n status_1 = false;\n }\n this.updateTextElementValue(renderNode);\n if (this.refreshing) {\n if (renderNode.shape.activity && renderNode.shape.activity.subProcess\n && renderNode.shape.activity.subProcess.processes) {\n for (var i = 0; i < renderNode.shape.activity.subProcess.processes.length; i++) {\n var process = renderNode.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n renderNode.wrapper.children.push(this.nameTable[\"\" + process].wrapper);\n }\n renderNode.wrapper.measure(new Size(renderNode.wrapper.bounds.width, renderNode.wrapper.bounds.height));\n renderNode.wrapper.arrange(renderNode.wrapper.desiredSize);\n }\n }\n if (renderNode instanceof Connector && renderNode.type === 'Bezier') {\n getCenterPoint = this.getMidPoint(renderNode);\n // (EJ2-58802) - Added the below code to add the transform x and y values to center point value in canvas mode\n if (this.mode === 'Canvas' && transform) {\n getCenterPoint.cx += transformValue.tx;\n getCenterPoint.cy += transformValue.ty;\n }\n }\n else {\n getCenterPoint = null;\n }\n renderer.renderElement(renderNode.wrapper, canvas, htmlLayer, (!renderer.isSvgMode && transform) ? transformValue : undefined, undefined, undefined, status_1 && (!this.diagramActions || isOverView), undefined, undefined, getCenterPoint, this.portCenterPoint);\n }\n }\n }\n };\n /**\n *updateBridging method \\\n *\n * @returns { void } updateBridging method .\\\n * @param {string} isLoad - provide the isLoad value.\n *\n * @private\n */\n Diagram.prototype.updateBridging = function (isLoad) {\n if (this.bridgingModule) {\n for (var i = 0; i < this.connectors.length; i++) {\n var connector = this.connectors[parseInt(i.toString(), 10)];\n this.bridgingModule.updateBridging(connector, this);\n var canvas = this.connectors[parseInt(i.toString(), 10)].wrapper;\n if (canvas && canvas.children && canvas.children.length > 0) {\n var pathSegment = canvas.children[0];\n var data = pathSegment.data;\n if (connector.isBezierEditing && this.selectedItems.connectors[0].id === connector.id || connector.type !== 'Bezier') {\n connector.getSegmentElement(connector, pathSegment, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, undefined, false);\n }\n if (pathSegment.data !== data) {\n canvas.measure(new Size());\n canvas.arrange(canvas.desiredSize);\n if (this.mode === 'SVG' && !isLoad) {\n this.updateDiagramObject(connector);\n }\n }\n }\n }\n }\n else if (this.constraints & DiagramConstraints.Bridging) {\n console.warn('[WARNING] :: Module \"ConnectorBridging\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n *setCursor method \\\n *\n * @returns { void } setCursor method .\\\n * @param {string} cursor - provide the width value.\n *\n * @private\n */\n Diagram.prototype.setCursor = function (cursor) {\n this.diagramRenderer.setCursor(this.diagramCanvas, cursor);\n };\n /**\n *clearCanvas method \\\n *\n * @returns { void } clearCanvas method .\\\n * @param {View} view - provide the width value.\n *\n * @private\n */\n Diagram.prototype.clearCanvas = function (view) {\n //let width: number;\n //let height: number;\n var width = view.contentWidth || view.diagramLayer.width / this.scroller.currentZoom;\n var height = view.contentHeight || view.diagramLayer.height / this.scroller.currentZoom;\n if (view.mode !== 'SVG') {\n var ctx = CanvasRenderer.getContext(view.diagramLayer);\n ctx.clearRect(0, 0, width, height);\n }\n };\n /**\n *updateScrollOffset method \\\n *\n * @returns { void } updateScrollOffset method .\\\n *\n * @private\n */\n Diagram.prototype.updateScrollOffset = function () {\n this.scroller.setScrollOffset(this.diagramCanvas.scrollLeft, this.diagramCanvas.scrollTop);\n updateRuler(this);\n if (canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n };\n /**\n *setOffset method \\\n *\n * @returns { void } setOffset method .\\\n * @param {number} offsetX - provide the width value.\n * @param {number} offsetY - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setOffset = function (offsetX, offsetY) {\n var domTable = 'domTable';\n if (!window[\"\" + domTable][this.element.id + 'content']) {\n window[\"\" + domTable][this.element.id + 'content'] = document.getElementById(this.element.id + 'content');\n }\n var container = window[\"\" + domTable][this.element.id + 'content'];\n if (container) {\n container.scrollLeft = offsetX;\n container.scrollTop = offsetY;\n }\n };\n /**\n *setSize method \\\n *\n * @returns { void } setSize method .\\\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.setSize = function (width, height) {\n if (this.diagramLayer && !this.preventDiagramUpdate) {\n var position = getRulerSize(this);\n width -= position.width;\n height -= position.height;\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n var factor = this.mode === 'SVG' ? 1 : 1.5;\n var diagramLayer = this.mode === 'SVG' ?\n getDiagramLayerSvg(this.element.id) : this.diagramLayer;\n var w = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortWidth : width;\n var h = (this.mode === 'Canvas' &&\n (this.constraints & DiagramConstraints.Virtualization)) ? this.scroller.viewPortHeight : height;\n diagramLayer.setAttribute('width', (factor * w).toString());\n diagramLayer.setAttribute('height', (factor * h).toString());\n var hiddenUserHandleTemplate = document.getElementById(this.element.id + '_diagramUserHandleLayer');\n if (hiddenUserHandleTemplate) {\n hiddenUserHandleTemplate.style.width = width + 'px';\n hiddenUserHandleTemplate.style.height = height + 'px';\n }\n var attr = { 'width': width.toString(), 'height': height.toString() };\n this.diagramLayerDiv.style.width = width + 'px';\n this.diagramLayerDiv.style.height = height + 'px';\n setAttributeSvg(getNativeLayerSvg(this.element.id), attr);\n setAttributeSvg(getPortLayerSvg(this.element.id), attr);\n var adornerSVG = getAdornerLayerSvg(this.element.id);\n setAttributeSvg(adornerSVG, attr);\n adornerSVG.parentNode.style.width = width + 'px';\n adornerSVG.parentNode.style.height = height + 'px';\n var gridLayer = getGridLayerSvg(this.element.id);\n setAttributeSvg(gridLayer, attr);\n this.diagramRenderer.updateGrid(this.snapSettings, gridLayer, this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n setAttributeSvg(getBackgroundLayerSvg(this.element.id), attr);\n this.htmlLayer.style.width = width + 'px';\n this.htmlLayer.style.height = height + 'px';\n if (this.mode !== 'SVG' && !(canVitualize(this))) {\n this.refreshDiagramLayer();\n }\n if (this.mode === 'SVG' && canVitualize(this)) {\n this.scroller.virtualizeElements();\n }\n }\n };\n /**\n *transformLayers method \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.transformLayers = function () {\n var bounds = this.spatialSearch.getPageBounds();\n bounds.x *= this.scroller.currentZoom;\n bounds.y *= this.scroller.currentZoom;\n bounds.width *= this.scroller.currentZoom;\n bounds.height *= this.scroller.currentZoom;\n this.diagramRenderer.updateGrid(this.snapSettings, getGridLayerSvg(this.element.id), this.scroller.transform, this.rulerSettings, this.hRuler, this.vRuler);\n this.diagramRenderer.transformLayers(this.scroller.transform, this.mode === 'SVG');\n if (!(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.updateSelector();\n }\n this.renderPageBreaks(bounds);\n };\n /**\n *Defines how to remove the Page breaks \\\n *\n * @returns { void } Defines how to remove the Page breaks .\\\n *\n * @private\n */\n Diagram.prototype.removePageBreaks = function () {\n if (this.diagramLayer) {\n var line = getBackgroundLayer(this.element.id);\n if (line && line.childNodes) {\n var length_2 = line.childNodes.length;\n for (var i = 0; i < length_2; i++) {\n line.removeChild(line.childNodes[0]);\n }\n }\n }\n };\n /**\n * Defines how the page breaks has been rendered \\\n *\n * @returns { void } Defines how the page breaks has been rendered .\\\n * @param {Rect} bounds - provide the overview value.\n *\n * @private\n */\n Diagram.prototype.renderPageBreaks = function (bounds) {\n this.removePageBreaks();\n var backgroundLayer = getBackgroundLayer(this.element.id);\n if (backgroundLayer) {\n var i = 0;\n bounds = this.scroller.getPageBounds(true);\n var x = (this.scroller.transform.tx + bounds.x) * this.scroller.currentZoom;\n var y = (this.scroller.transform.ty + bounds.y) * this.scroller.currentZoom;\n var height = bounds.height * this.scroller.currentZoom;\n var width = bounds.width * this.scroller.currentZoom;\n DiagramRenderer.renderSvgBackGroundImage(this.pageSettings.background, this.element, x, y, width, height);\n var options = {\n id: backgroundLayer.id + 'rect', x: x,\n y: y,\n height: height,\n width: width, angle: 0, stroke: '', strokeWidth: 1,\n fill: this.pageSettings.background.color, opacity: 1,\n pivotX: 0, pivotY: 0, visible: true, dashArray: '0'\n };\n this.diagramRenderer.drawRect(backgroundLayer, options);\n if (this.pageSettings.showPageBreaks) {\n var collection = this.scroller.getPageBreak(bounds);\n for (i = 0; i < collection.length; i++) {\n this.diagramRenderer.drawLine(backgroundLayer, {\n class: 'e-diagram-page-break',\n fill: 'none', stroke: '#aaaaaa', strokeWidth: 1, dashArray: '10 10',\n opacity: 2, x: 0, y: 0, width: 0, height: 0, angle: 0, pivotX: 0, pivotY: 0, visible: true,\n startPoint: {\n x: (collection[parseInt(i.toString(), 10)].x1 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y1 + this.scroller.transform.ty) * this.scroller.currentZoom\n },\n endPoint: {\n x: (collection[parseInt(i.toString(), 10)].x2 + this.scroller.transform.tx) * this.scroller.currentZoom,\n y: (collection[parseInt(i.toString(), 10)].y2 + this.scroller.transform.ty) * this.scroller.currentZoom\n }, id: collection[parseInt(i.toString(), 10)].y1 === collection[parseInt(i.toString(), 10)].y2 ? 'HorizontalLines' : 'VerticalLines'\n });\n }\n }\n }\n };\n Diagram.prototype.validatePageSize = function () {\n var temp = 0;\n if (this.pageSettings.orientation === 'Portrait') {\n if (this.pageSettings.width > this.pageSettings.height) {\n temp = this.pageSettings.height;\n this.pageSettings.height = this.pageSettings.width;\n this.pageSettings.width = temp;\n }\n }\n else {\n if (this.pageSettings.height > this.pageSettings.width) {\n temp = this.pageSettings.width;\n this.pageSettings.width = this.pageSettings.height;\n this.pageSettings.height = temp;\n }\n }\n };\n /**\n * setOverview method \\\n *\n * @returns { void } setOverview method .\\\n * @param {View} overview - provide the overview value.\n * @param {string} id - provide the boolean value.\n *\n * @private\n */\n Diagram.prototype.setOverview = function (overview, id) {\n if (overview) {\n if (overview) {\n this.views.push(overview.id);\n this.views[overview.id] = overview;\n overview.renderDocument(overview);\n overview.diagramRenderer.setLayers();\n overview.updateView(overview);\n this.renderNodes(overview);\n }\n }\n else {\n for (var i = 0; i < this.views.length; i++) {\n if (this.views[parseInt(i.toString(), 10)] === id) {\n overview = (this.views[\"\" + id]);\n }\n }\n this.views[\"\" + id] = undefined;\n var index = this.views.indexOf(id);\n this.views.splice(index, 1);\n }\n };\n Diagram.prototype.renderNodes = function (overview) {\n if (overview) {\n var renderer = new DiagramRenderer(overview.id, new SvgRenderer(), false);\n var g = document.getElementById(overview.element.id + '_diagramLayer');\n var htmlLayer = getHTMLLayer(overview.element.id);\n this.renderDiagramElements(g, overview.diagramRenderer || renderer, htmlLayer, undefined, undefined, true);\n }\n };\n Diagram.prototype.updateThumbConstraints = function (node, selectorModel, canInitialize) {\n var state = 0;\n var length = node.length;\n for (var i = 0; i < length; i++) {\n var obj = node[parseInt(i.toString(), 10)];\n var hideRotate = false;\n var hideResize = false;\n var thumbConstraints = selectorModel.thumbsConstraints;\n if (obj instanceof Node) {\n hideRotate = (obj.shape.type === 'Bpmn' && (obj.shape.shape === 'Activity' &&\n (obj.shape.activity.subProcess.collapsed === false)));\n // hideResize = (obj.shape.type === 'Bpmn' && (obj.shape as BpmnShapeModel).shape === 'TextAnnotation');\n if (!canRotate(obj) || !(thumbConstraints & ThumbsConstraints.Rotate) || hideRotate) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n if (!canResize(obj, 'SouthEast') || !(thumbConstraints & ThumbsConstraints.ResizeSouthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthEast;\n }\n if (!canResize(obj, 'NorthWest') || !(thumbConstraints & ThumbsConstraints.ResizeNorthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthWest;\n }\n if (!canResize(obj, 'East') || !(thumbConstraints & ThumbsConstraints.ResizeEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeEast;\n }\n if (!canResize(obj, 'West') || !(thumbConstraints & ThumbsConstraints.ResizeWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeWest;\n }\n if (!canResize(obj, 'North') || !(thumbConstraints & ThumbsConstraints.ResizeNorth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorth;\n }\n if (!canResize(obj, 'South') || !(thumbConstraints & ThumbsConstraints.ResizeSouth) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouth;\n }\n if (!canResize(obj, 'NorthEast') || !(thumbConstraints & ThumbsConstraints.ResizeNorthEast) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeNorthEast;\n }\n if (!canResize(obj, 'SouthWest') || !(thumbConstraints & ThumbsConstraints.ResizeSouthWest) || hideResize) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ResizeSouthWest;\n }\n }\n else if (obj instanceof Connector) {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (canDragSourceEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorSource;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorSource;\n }\n if (canDragTargetEnd(obj)) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.ConnectorTarget;\n }\n else {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.ConnectorTarget;\n }\n }\n else {\n if (!canInitialize) {\n thumbConstraints = thumbConstraints | ThumbsConstraints.Default;\n }\n if (!canResize(obj)) {\n thumbConstraints = thumbConstraints & ~(ThumbsConstraints.ResizeSouthEast | ThumbsConstraints.ResizeSouthWest |\n ThumbsConstraints.ResizeSouth | ThumbsConstraints.ResizeEast | ThumbsConstraints.ResizeWest |\n ThumbsConstraints.ResizeNorth | ThumbsConstraints.ResizeNorthEast | ThumbsConstraints.ResizeNorthWest);\n }\n if (!canRotate(obj)) {\n thumbConstraints = thumbConstraints & ~ThumbsConstraints.Rotate;\n }\n }\n selectorModel.thumbsConstraints = thumbConstraints;\n }\n };\n /**\n * renderSelector method \\\n *\n * @returns { void } renderSelector method .\\\n * @param {boolean} multipleSelection - provide the multipleSelection value.\n * @param {boolean} isSwimLane - provide the boolean value.\n * @param { Canvas } canvas - provide the lane or swimlane canvas\n *\n * @private\n */\n Diagram.prototype.renderSelector = function (multipleSelection, isSwimLane, canvas) {\n var isProtectedOnChangeValue = this.isProtectedOnChange;\n //Removed isBlazor code\n var size = new Size();\n var selectorModel = this.selectedItems;\n var selectorConstraints = selectorModel.constraints;\n var rendererActions = this.diagramRenderer.rendererActions;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n this.diagramRenderer.rendererActions = this.currentSymbol ?\n this.addConstraints(rendererActions, RendererAction.DrawSelectorBorder) :\n this.removeConstraints(rendererActions, RendererAction.DrawSelectorBorder);\n this.clearSelectorLayer();\n if (this.commandHandler.hasSelection()) {\n if (selectorModel.nodes.length === 1 && selectorModel.connectors.length === 0) {\n selectorModel.rotateAngle = selectorModel.nodes[0].rotateAngle;\n selectorModel.pivot = selectorModel.nodes[0].pivot;\n }\n selectorModel.wrapper.measure(size);\n selectorModel.wrapper.arrange(selectorModel.wrapper.desiredSize);\n selectorModel.width = selectorModel.wrapper.actualSize.width;\n selectorModel.height = selectorModel.wrapper.actualSize.height;\n selectorModel.offsetX = selectorModel.wrapper.offsetX;\n selectorModel.offsetY = selectorModel.wrapper.offsetY;\n if (selectorModel.rotateAngle !== 0) {\n for (var _i = 0, _a = selectorModel.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n for (var _b = 0, _c = selectorModel.connectors; _b < _c.length; _b++) {\n var conn = _c[_b];\n //update connections\n }\n }\n var bounds = this.spatialSearch.getPageBounds();\n //let selectorElement: (SVGElement | HTMLCanvasElement);\n var selectorElement = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n selectorModel.thumbsConstraints = ThumbsConstraints.Default;\n if (selectorModel.annotation) {\n this.updateThumbConstraints([selectorModel.annotation], selectorModel);\n }\n else {\n this.updateThumbConstraints(selectorModel.nodes, selectorModel);\n this.updateThumbConstraints(selectorModel.connectors, selectorModel, true);\n }\n if (selectorModel.annotation) {\n this.renderSelectorForAnnotation(selectorModel, selectorElement);\n }\n else if (selectorModel.nodes.length + selectorModel.connectors.length === 1 || this.nameTable['helper']) {\n if (selectorModel.nodes[0] instanceof Node) {\n var node = selectorModel.nodes[0];\n if (checkParentAsContainer(this, node)) {\n if (!isSwimLane && (node.shape.type !== 'UmlClassifier' && !(node.parentId &&\n this.nameTable[node.parentId]\n && this.nameTable[node.parentId].shape.type === 'UmlClassifier'))) {\n selectorModel.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var constraints = isSwimLane ? true : ((node.constraints & NodeConstraints.HideThumbs) ? true : false);\n var swimlane = (node.shape.type === 'SwimLane' || node.isLane || node.isPhase || isSwimLane) ? true : false;\n this.diagramRenderer.renderResizeHandle(isSwimLane ? canvas : selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(node), constraints, swimlane, selectorModel.handleSize);\n }\n else if (selectorModel.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selectorModel.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorElement, selectorModel.thumbsConstraints, selectorModel.constraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selectorModel.handleSize);\n }\n }\n else {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper, selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel), null, null, selectorModel.handleSize);\n }\n if (!(selectorModel.annotation) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selectorModel, selectorElement, this.scroller.transform, diagramUserHandlelayer, this.eventHandler.currentAction, this.eventHandler.inAction);\n //Removed isBlazor code\n }\n }\n // EJ2-56919 - Add below code to render the selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.isProtectedOnChange = isProtectedOnChangeValue;\n };\n Diagram.prototype.updateSelectionRectangle = function () {\n var selectorElement = getSelectorElement(this.element.id);\n var isFirst = false;\n for (var i = 0; i < this.selectedItems.selectedObjects.length; i++) {\n // EJ2-56919 - For first selected object we need to set stroke as 2, so check below condition as i is zero or not\n // For first element we passed isFirst argument(last arg) as true in both render selection line and rectangle method\n isFirst = i === 0 ? true : false;\n if (getObjectType(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)]) === Connector) {\n // EJ2-56919 - If selected object type is connector means then render selection line for connector\n this.diagramRenderer.renderSelectionLine(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper.children[0], selectorElement, this.scroller.transform, isFirst);\n }\n else {\n // EJ2-56919 - If selected object type is node means then render selection rectangle for node\n this.diagramRenderer.renderSelectionRectangle(this.selectedItems.selectedObjects[parseInt(i.toString(), 10)].wrapper, selectorElement, this.scroller.transform, isFirst);\n }\n }\n };\n /**\n * updateSelector method \\\n *\n * @returns { void } updateSelector method .\\\n *\n * @private\n */\n Diagram.prototype.updateSelector = function () {\n var severDataBind = this.allowServerDataBinding;\n this.enableServerDataBinding(false);\n var size = new Size();\n var selector = this.selectedItems;\n var selectorConstraints = selector.constraints;\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n if (!(this.diagramActions & DiagramAction.ToolAction) && this.selectedItems.nodes.length === 1) {\n this.selectedItems.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n this.selectedItems.wrapper.rotateAngle = this.selectedItems.nodes[0].rotateAngle;\n }\n if (this.selectedItems !== undefined) {\n this.clearSelectorLayer();\n if (selector.wrapper !== null && selector.wrapper.children && selector.wrapper.children.length) {\n var canUpdate = true;\n var canRender = true;\n if (selectionHasConnector(this, selector)) {\n var eventHandler = 'eventHandler';\n var rotate = this[\"\" + eventHandler].action;\n var isRotate = rotate.includes('Rotate');\n var isSelect = rotate.includes('None') || rotate.includes('Select') || rotate.includes('Drag');\n if (isRotate || isSelect) {\n canRender = false;\n }\n if (!isSelect) {\n canUpdate = false;\n }\n }\n if (canUpdate) {\n selector.wrapper.measure(size);\n selector.wrapper.arrange(selector.wrapper.desiredSize);\n }\n if (selector.rotateAngle !== 0 || selector.rotateAngle !== selector.wrapper.prevRotateAngle) {\n for (var _i = 0, _a = selector.nodes; _i < _a.length; _i++) {\n var obj = _a[_i];\n obj.offsetX = obj.wrapper.offsetX;\n obj.offsetY = obj.wrapper.offsetY;\n }\n }\n selector.width = selector.wrapper.actualSize.width;\n selector.height = selector.wrapper.actualSize.height;\n selector.offsetX = selector.wrapper.offsetX;\n selector.offsetY = selector.wrapper.offsetY;\n //let selectorEle: (SVGElement | HTMLCanvasElement);\n var selectorEle = getSelectorElement(this.element.id);\n //let diagramUserHandlelayer: (SVGElement | HTMLElement);\n var diagramUserHandlelayer = getUserHandleLayer(this.element.id);\n var canHideResizers = this.eventHandler.canHideResizers();\n selector.thumbsConstraints = ThumbsConstraints.Default;\n if (selector.annotation) {\n this.updateThumbConstraints([selector.annotation], selector);\n }\n else {\n this.updateThumbConstraints(selector.nodes, selector);\n this.updateThumbConstraints(selector.connectors, selector, true);\n }\n if ((this.selectedItems.constraints & SelectorConstraints.UserHandle) && (!(selector.annotation)) && !this.currentSymbol) {\n this.diagramRenderer.renderUserHandler(selector, selectorEle, this.scroller.transform, diagramUserHandlelayer, this.eventHandler.currentAction, this.eventHandler.inAction);\n //Removed isBlazor code\n }\n if (selector.annotation) {\n this.renderSelectorForAnnotation(selector, selectorEle);\n }\n else if (selector.nodes.length + selector.connectors.length === 1) {\n if (selector.connectors[0] instanceof Connector && canDrawThumbs(this.diagramRenderer.rendererActions)) {\n var connector = selector.connectors[0];\n this.diagramRenderer.renderEndPointHandle(connector, selectorEle, selector.thumbsConstraints, selectorConstraints, this.scroller.transform, connector.sourceWrapper !== undefined, connector.targetWrapper !== undefined, (this.connectorEditingToolModule && canDragSegmentThumb(connector)) ? true : false, this.connectorEditingToolModule ? true : false, selector.handleSize);\n }\n else if (selector.nodes[0] instanceof Node) {\n var stackPanel = selector.nodes[0];\n if (checkParentAsContainer(this, selector.nodes[0])) {\n if (stackPanel.shape.type !== 'UmlClassifier' && !(stackPanel.parentId &&\n this.nameTable[stackPanel.parentId]\n && this.nameTable[stackPanel.parentId].shape.type === 'UmlClassifier')) {\n selector.thumbsConstraints &= ~ThumbsConstraints.Rotate;\n }\n }\n var swimlane = (stackPanel.shape.type === 'SwimLane' || stackPanel.isLane ||\n stackPanel.isPhase) ? true : false;\n this.diagramRenderer.renderResizeHandle(selector.wrapper.children[0], selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector.nodes[0]), (selector.nodes[0].constraints & NodeConstraints.HideThumbs) ? true : false, swimlane, selector.handleSize);\n }\n }\n else {\n if (this.diagramActions & DiagramAction.Interactions) {\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions | RendererAction.PreventRenderSelector;\n }\n if (!(selectionHasConnector(this, selector) && canRender)) {\n this.diagramRenderer.renderResizeHandle(selector.wrapper, selectorEle, selector.thumbsConstraints, this.scroller.currentZoom, selector.constraints, this.scroller.transform, canHideResizers, canMove(selector), null, null, selector.handleSize);\n }\n this.diagramRenderer.rendererActions = this.diagramRenderer.rendererActions & ~RendererAction.PreventRenderSelector;\n }\n }\n }\n // EJ2-56919 - Add below code to render selection rectangle for node if selected objects length is greater than one\n if (this.selectedItems.selectedObjects.length > 1) {\n this.updateSelectionRectangle();\n }\n this.enableServerDataBinding(severDataBind);\n };\n /**\n * renderSelectorForAnnotation method \\\n *\n * @returns { void } renderSelectorForAnnotation method .\\\n * @param {Selector} selectorModel - provide the x value.\n * @param {(SVGElement | HTMLCanvasElement)} selectorElement - provide the y value.\n *\n * @private\n */\n //(EJ2-66036)- Annotation interaction not rendered properly\n Diagram.prototype.renderSelectorForAnnotation = function (selectorModel, selectorElement) {\n this.diagramRenderer.renderResizeHandle(selectorModel.wrapper.children[0], selectorElement, selectorModel.thumbsConstraints, this.scroller.currentZoom, selectorModel.constraints, this.scroller.transform, undefined, canMove(selectorModel.annotation), undefined, undefined, selectorModel.handleSize);\n };\n /**\n * drawSelectionRectangle method \\\n *\n * @returns { void } drawSelectionRectangle method .\\\n * @param {number} x - provide the x value.\n * @param {number} y - provide the y value.\n * @param {number} width - provide the width value.\n * @param {number} height - provide the height value.\n *\n * @private\n */\n Diagram.prototype.drawSelectionRectangle = function (x, y, width, height) {\n this.clearSelectorLayer();\n this.diagramRenderer.drawSelectionRectangle(x, y, width, height, this.adornerLayer, this.scroller.transform);\n };\n /**\n * renderHighlighter method \\\n *\n * @returns { void } renderHighlighter method .\\\n * @param {DiagramElement} element - provide the node value.\n *\n * @private\n */\n Diagram.prototype.renderHighlighter = function (element) {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n this.diagramRenderer.renderHighlighter(element, adornerSvg, this.scroller.transform);\n };\n /**\n * clearHighlighter method \\\n *\n * @returns { void } clearHighlighter method .\\\n *\n * @private\n */\n Diagram.prototype.clearHighlighter = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var highlighter = adornerSvg.getElementById(adornerSvg.id + '_highlighter');\n if (highlighter) {\n highlighter.parentNode.removeChild(highlighter);\n }\n };\n /**\n * getNodesConnectors method \\\n *\n * @returns { (NodeModel | ConnectorModel)[] } getNodesConnectors method .\\\n * @param {(NodeModel | ConnectorModel)[]} selectedItems - provide the node value.\n *\n * @private\n */\n Diagram.prototype.getNodesConnectors = function (selectedItems) {\n for (var i = 0; i < this.nodes.length; i++) {\n var node = this.nodes[parseInt(i.toString(), 10)];\n selectedItems.push(node);\n }\n for (var i = 0; i < this.connectors.length; i++) {\n var conn = this.connectors[parseInt(i.toString(), 10)];\n selectedItems.push(conn);\n }\n return selectedItems;\n };\n /**\n * clearSelectorLayer method \\\n *\n * @returns { void } clearSelectorLayer method .\\\n *\n * @private\n */\n Diagram.prototype.clearSelectorLayer = function () {\n var adornerSvg = getAdornerLayerSvg(this.element.id);\n var innertemplate = document.getElementsByClassName('blazor-inner-template');\n var i;\n var div;\n var j;\n if (!this.currentSymbol) {\n var selectionRect = adornerSvg.getElementById(this.adornerLayer.id + '_selected_region');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n this.clearHighlighter();\n var childNodes = getSelectorElement(this.element.id).childNodes;\n var child = void 0;\n //Bug 914365: Node is not resizable using touch interaction\n //Added below code to get the target which we are dragging using touch interaction\n var handleId = this.eventHandler.touchArgs ? this.eventHandler.touchArgs.target.id : undefined;\n if (handleId && handleId.includes('bezierLine')) {\n handleId = undefined;\n }\n for (var i_3 = childNodes.length; i_3 > 0; i_3--) {\n //Added below code to prevent the removal of target element from DOM while doing touch move interaction\n if (this.eventHandler && this.eventHandler.touchArgs && this.eventHandler.touchArgs.type === 'touchmove') {\n this.diagramRenderer.touchMove = true;\n if (!(handleId && handleId === childNodes[i_3 - 1].id)) {\n child = childNodes[i_3 - 1];\n child.parentNode.removeChild(child);\n }\n }\n else {\n child = childNodes[i_3 - 1];\n child.parentNode.removeChild(child);\n }\n }\n //Removed isBlazor code\n if (!isBlazor()) {\n var templates = getUserHandleLayer(this.element.id).childNodes;\n for (i = templates.length; i > 0; i--) {\n templates[i - 1].parentNode.removeChild(templates[i - 1]);\n }\n }\n }\n else {\n var symbolBorder = adornerSvg.getElementById('borderRect_symbol');\n if (symbolBorder) {\n symbolBorder.parentNode.removeChild(symbolBorder);\n }\n }\n };\n /**\n * getWrapper method \\\n *\n * @returns { void } getWrapper method .\\\n * @param {Container} nodes - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getWrapper = function (nodes, id) {\n var wrapper;\n id = nodes.id + '_' + id;\n var container = nodes instanceof Canvas ? nodes : this.getPortContainer(this.nameTable[nodes.id]);\n for (var i = 0; i < container.children.length; i++) {\n if (id === container.children[parseInt(i.toString(), 10)].id) {\n wrapper = container.children[parseInt(i.toString(), 10)];\n }\n }\n return wrapper;\n };\n /**\n * DiagramElement method \\\n *\n * @returns { void } getEndNodeWrapper method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {ConnectorModel} connector - provide the childernCollection value.\n * @param {boolean} source - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getEndNodeWrapper = function (node, connector, source) {\n if (node.shape.type === 'Bpmn' && node.wrapper.children[0] instanceof Canvas) {\n if ((!isBlazor() && node.shape.shape === 'Activity')) {\n if (source && node.shape.activity.subProcess.type === 'Transaction'\n && connector.sourcePortID) {\n var portId = connector.sourcePortID;\n var parent_5 = node.wrapper.children[0].children[0].children[2];\n if (parent_5.children) {\n for (var _i = 0, _a = parent_5.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (child.visible && child.id === node.id + '_' + portId) {\n return child.children[0];\n }\n }\n }\n }\n return node.wrapper.children[0].children[0].children[0];\n }\n return node.wrapper.children[0].children[0];\n }\n if (!this.containsMargin(node.wrapper.children[0])) {\n if (!node.children) {\n return node.wrapper.children[0];\n }\n }\n return node.wrapper;\n };\n Diagram.prototype.containsMargin = function (node) {\n return node.margin && (node.margin.left !== 0 || node.margin.top !== 0 || node.margin.right !== 0 || node.margin.bottom !== 0);\n };\n Diagram.prototype.focusOutEdit = function () {\n this.endEdit();\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.endEditCommand = function () {\n this.endEdit();\n this.textEditing = false;\n // EJ2-57743 - Added below code to refresh the diagram layer after the annotation gets edited in canvas mode.\n if (this.mode === 'Canvas' && this.scroller.currentZoom !== 1) {\n this.refreshDiagramLayer();\n }\n };\n // EJ2-866418-keyboard shortcut keys method starting\n //Change the text style of nodes,swimlane,textnode\n Diagram.prototype.fontStyleCommand = function (format) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n var node = this.selectedItems.nodes[parseInt(i.toString(), 10)];\n if (node.shape.type === 'SwimLane') {\n if (node.shape.hasHeader) {\n this.applyStyleText(format, node.shape.header.annotation);\n }\n }\n if (node.isLane) {\n var laneHeader = this.getObject(node.shape.header[0].id);\n this.applyStyle(format, laneHeader.annotations);\n }\n if (node.shape.type === 'Text') {\n var textNode = node;\n this.applyStyleText(format, textNode);\n }\n if (node.annotations.length > 0) {\n var annotationLength = node.annotations;\n this.applyStyle(format, annotationLength);\n }\n }\n for (var i = 0; i < this.selectedItems.connectors.length; i++) {\n if (this.selectedItems.connectors[parseInt(i.toString(), 10)].annotations.length > 0) {\n var annotationLength = this.selectedItems.connectors[parseInt(i.toString(), 10)].annotations;\n this.applyStyle(format, annotationLength);\n }\n }\n };\n Diagram.prototype.applyStyle = function (format, annotationLength) {\n for (var j = 0; j < annotationLength.length; j++) {\n switch (format) {\n case 'bold':\n annotationLength[parseInt(j.toString(), 10)].style.bold = !annotationLength[parseInt(j.toString(), 10)].style.bold;\n break;\n case 'italic':\n annotationLength[parseInt(j.toString(), 10)].style.italic = !annotationLength[parseInt(j.toString(), 10)].style.italic;\n break;\n case 'underline':\n if (annotationLength[parseInt(j.toString(), 10)].style.textDecoration === 'None') {\n annotationLength[parseInt(j.toString(), 10)].style.textDecoration = 'Underline';\n }\n else if (annotationLength[parseInt(j.toString(), 10)].style.textDecoration === 'Underline') {\n annotationLength[parseInt(j.toString(), 10)].style.textDecoration = 'None';\n }\n break;\n }\n }\n this.dataBind();\n };\n Diagram.prototype.applyStyleText = function (format, textNode) {\n switch (format) {\n case 'bold':\n textNode.style.bold = !textNode.style.bold;\n break;\n case 'italic':\n textNode.style.italic = !textNode.style.italic;\n break;\n case 'underline':\n if (textNode.style.textDecoration === 'None') {\n textNode.style.textDecoration = 'Underline';\n }\n else if (textNode.style.textDecoration === 'Underline') {\n textNode.style.textDecoration = 'None';\n }\n break;\n }\n this.dataBind();\n };\n //To duplicate the elements on clicking Ctrl+D\n Diagram.prototype.duplicateCommand = function () {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n this.copy();\n this.paste();\n };\n //To group and ungroup the elements\n Diagram.prototype.groupCommand = function (group) {\n switch (group) {\n case 'group':\n this.group();\n break;\n case 'ungroup':\n this.unGroup();\n break;\n }\n };\n //To rotate clockwise and anti-clockwise the elements\n Diagram.prototype.rotateCommand = function (rotateValue) {\n var selectedItems = this.selectedItems;\n switch (rotateValue) {\n case 'clockwise':\n this.rotate(selectedItems, 90);\n break;\n case 'antiClockwise':\n this.rotate(selectedItems, -90);\n break;\n }\n };\n //To flip horizontally and vertically the elements\n Diagram.prototype.flipCommand = function (flipValue) {\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n for (var i = 0; i < selectedItems.length; i++) {\n switch (flipValue) {\n case 'horizontal':\n selectedItems[parseInt(i.toString(), 10)].flip = 'Horizontal';\n break;\n case 'vertical':\n selectedItems[parseInt(i.toString(), 10)].flip = 'Vertical';\n break;\n }\n }\n this.dataBind();\n };\n //To exceute the tool commands\n Diagram.prototype.toolCommand = function (tool) {\n switch (tool) {\n case 'pointer': {\n this.tool = DiagramTools.Default;\n this.dataBind();\n break;\n }\n case 'text': {\n var textnode = {\n shape: { type: 'Text' }\n };\n this.drawingObject = textnode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'connect': {\n var connectors = {\n id: 'connector1',\n type: 'Straight'\n };\n this.drawingObject = connectors;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'freeForm': {\n var freeform = { id: 'connector1', type: 'Freehand' };\n this.drawingObject = freeform;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'line': {\n var polyline = { id: 'connector1', type: 'Polyline' };\n this.drawingObject = polyline;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'rectangle': {\n var drawingshape = { type: 'Basic', shape: 'Rectangle' };\n var basicNode = {\n shape: drawingshape\n };\n this.drawingObject = basicNode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n case 'ellipse': {\n var drawingNode = { type: 'Basic', shape: 'Ellipse' };\n var ellipseNode = {\n shape: drawingNode\n };\n this.drawingObject = ellipseNode;\n this.tool = DiagramTools.DrawOnce;\n this.dataBind();\n break;\n }\n }\n };\n //To zoomin and zoom-out the diagram\n Diagram.prototype.zoomCommand = function (zoomValue) {\n switch (zoomValue) {\n case 'zoomIn':\n this.zoomTo({ type: 'ZoomIn', zoomFactor: 0.2 });\n break;\n case 'zoomOut':\n this.zoomTo({ type: 'ZoomOut', zoomFactor: 0.2 });\n break;\n }\n };\n //To move the diagram elements five pixel based on the arrow keys\n Diagram.prototype.shiftCommand = function (direction) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n var pixel = 5;\n if (direction === 'Up') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY - pixel;\n }\n else if (direction === 'Down') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetY + pixel;\n }\n else if (direction === 'Left') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX - pixel;\n }\n else if (direction === 'Right') {\n this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX\n = this.selectedItems.nodes[parseInt(i.toString(), 10)].offsetX + pixel;\n }\n }\n for (var i = 0; i < this.selectedItems.connectors.length; i++) {\n var connector = this.selectedItems;\n if (direction === 'Up') {\n this.drag(connector, 0, -5);\n }\n else if (direction === 'Down') {\n this.drag(connector, 0, 5);\n }\n else if (direction === 'Left') {\n this.drag(connector, -5, 0);\n }\n else if (direction === 'Right') {\n this.drag(connector, 5, 0);\n }\n }\n };\n //To execute the text align\n Diagram.prototype.alignCommand = function (alignDirection) {\n if (this.selectedItems.nodes.length > 0) {\n for (var i = 0; i < this.selectedItems.nodes.length; i++) {\n this.updateNodesAndConnectorAnnotation(this.selectedItems.nodes[parseInt(i.toString(), 10)], alignDirection);\n }\n }\n };\n Diagram.prototype.updateNodesAndConnectorAnnotation = function (object, alignDirection) {\n var annotation;\n for (var i = 0; i < object.annotations.length; i++) {\n annotation = object.annotations[parseInt(i.toString(), 10)];\n switch (alignDirection) {\n case 'left':\n annotation.horizontalAlignment = 'Left';\n break;\n case 'center':\n annotation.horizontalAlignment = 'Center';\n break;\n case 'right':\n annotation.horizontalAlignment = 'Right';\n break;\n case 'justify':\n annotation.style.textAlign = 'Justify';\n break;\n case 'top':\n annotation.verticalAlignment = 'Top';\n break;\n case 'centerVertical':\n annotation.verticalAlignment = 'Center';\n break;\n case 'bottom':\n annotation.verticalAlignment = 'Bottom';\n break;\n }\n this.dataBind();\n }\n };\n //To execute ordercommands using keyboard shortcuts\n Diagram.prototype.orderCommand = function (orderCommand) {\n switch (orderCommand) {\n case 'sendToBack':\n this.sendToBack();\n break;\n case 'bringToFront':\n this.bringToFront();\n break;\n case 'sendBackward':\n this.sendBackward();\n break;\n case 'bringForward':\n this.moveForward();\n break;\n }\n };\n //To execute the selection of elements on clicking tab key\n Diagram.prototype.navigateItems = function (tabCommand) {\n var currentSelectedNodeIndex = 0;\n var selectedItems = [];\n selectedItems = selectedItems.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n if (selectedItems.length > 0) {\n currentSelectedNodeIndex = selectedItems[0].zIndex + (tabCommand ? 1 : -1);\n }\n else {\n currentSelectedNodeIndex = tabCommand ? 0 : this.nodes.length + this.connectors.length - 1;\n }\n if (currentSelectedNodeIndex < 0) {\n currentSelectedNodeIndex = this.nodes.length + this.connectors.length - 1;\n }\n else if (currentSelectedNodeIndex === this.nodes.length + this.connectors.length) {\n currentSelectedNodeIndex = 0;\n }\n for (var i = 0; i < this.nodes.length; i++) {\n if (currentSelectedNodeIndex === this.nodes[parseInt(i.toString(), 10)].zIndex) {\n var nextNode = this.nodes[parseInt(i.toString(), 10)];\n this.clearSelection();\n this.select([nextNode]);\n }\n }\n for (var j = 0; j < this.connectors.length; j++) {\n if (currentSelectedNodeIndex === this.connectors[parseInt(j.toString(), 10)].zIndex) {\n var nextConnector = this.connectors[parseInt(j.toString(), 10)];\n this.clearSelection();\n this.select([nextConnector]);\n }\n }\n };\n /**\n * @private\n */\n /* tslint:disable */\n Diagram.prototype.endEdit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var blazor, blazorInterop, oldValues, changedvalues, annotations, textArea, text, element, node, annotation, args, textWrapper, index, deleteNode, contentModified, index, changesAnnotation, nodeIndex, oldnodes, newnodes, clonedObject, selectedNode, swimLaneNode, laneHeader, phaseHeader, collection, j;\n return __generator(this, function (_a) {\n if (this.diagramActions & DiagramAction.TextEdit) {\n blazor = 'Blazor';\n blazorInterop = 'sfBlazor';\n oldValues = void 0;\n changedvalues = void 0;\n annotations = {};\n this.enableServerDataBinding(false);\n textArea = document.getElementById(this.element.id + '_editBox');\n if (!isBlazor()) {\n text = textArea.value;\n EventHandler.remove(textArea, 'input', this.eventHandler.inputChange);\n EventHandler.remove(textArea, 'focusout', this.focusOutEdit);\n element = document.getElementById(this.element.id + '_editTextBoxDiv');\n node = void 0;\n node = this.nameTable[this.activeLabel.parentId];\n annotation = findAnnotation(node, this.activeLabel.id);\n args = { oldValue: this.activeLabel.text, newValue: text, cancel: false, element: node, annotation: annotation };\n //Removed isBlazor code\n element.parentNode.removeChild(element);\n textWrapper = void 0;\n if (annotation && !(annotation instanceof Text)) {\n index = findObjectIndex(node, annotation.id, true);\n annotations[\"\" + index] = { content: annotation.content };\n oldValues = { annotations: annotations };\n }\n else {\n //Removed isBlazor code\n oldValues = { shape: { content: node.shape.content } };\n }\n deleteNode = false;\n if (this.eventHandler['currentAction'] === 'Draw') {\n deleteNode = this.eventHandler.isAddTextNode(node, true);\n }\n if (!deleteNode && (element.textContent !== text || text !== this.activeLabel.text)) {\n //Removed isBlaor code\n this.triggerEvent(DiagramEvent.textEdit, args);\n }\n if (!textWrapper) {\n textWrapper = this.getWrapper(node.wrapper, this.activeLabel.id);\n }\n contentModified = false;\n if (annotation.content !== text && !args.cancel) {\n contentModified = true;\n if (!this.activeLabel.isGroup) {\n this.startGroupAction();\n }\n if (node.parentId && this.nameTable[node.parentId].shape.type === 'UmlClassifier'\n && text.indexOf('+') === -1 && text.indexOf('-') === -1 && text.indexOf('#') === -1\n && text.indexOf('~') === -1 && node.id.indexOf('_umlClass_header') === -1) {\n text = ' + ' + text;\n }\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(true);\n }\n if (!(annotation instanceof Text)) {\n index = findObjectIndex(node, annotation.id, true);\n changesAnnotation = {};\n changesAnnotation[\"\" + index] = { content: text };\n changedvalues = { annotations: changesAnnotation };\n }\n else {\n //Removed isBlazor code\n changedvalues = { shape: { content: text } };\n }\n nodeIndex = this.getIndex(node, node.id);\n if (nodeIndex) {\n oldnodes = {};\n oldnodes[\"\" + nodeIndex] = oldValues;\n newnodes = {};\n newnodes[\"\" + nodeIndex] = changedvalues;\n if (getObjectType(node) === Node) {\n this.onPropertyChanged({ nodes: newnodes }, { nodes: oldnodes });\n }\n else {\n this.onPropertyChanged({ connectors: newnodes }, { connectors: oldnodes });\n }\n }\n this.protectPropertyChange(true);\n //Removed isBlazor code\n annotation.content = text;\n this.protectPropertyChange(false);\n this.updateSelector();\n if (node.isLane || node.isPhase) {\n this.protectPropertyChange(false);\n }\n }\n if (deleteNode) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(node);\n delete this.nameTable[this.activeLabel.parentId];\n if (text !== '') {\n this.clearSelection();\n clonedObject = cloneObject(node);\n node = this.add(clonedObject);\n this.updateDiagramObject(node);\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(this.nameTable[node.id]);\n // this.commandHandler.updateBlazorSelector();\n }\n }\n if (this.selectedItems.nodes.length) {\n selectedNode = this.nameTable[this.activeLabel.parentId];\n swimLaneNode = this.nameTable[selectedNode.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane') || (selectedNode.shape.type === 'SwimLane')) {\n laneHeader = 'LaneHeaderParent';\n phaseHeader = 'PhaseHeaderParent';\n if ((selectedNode.shape.type === 'SwimLane')) {\n swimLaneNode = this.nameTable[this.activeLabel.parentId];\n selectedNode = node;\n }\n if ((selectedNode.isLane || selectedNode.isPhase)) {\n collection = selectedNode.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (j = 0; j < collection.length; j++) {\n if (collection[parseInt(j.toString(), 10)].id === (selectedNode[\"\" + laneHeader] || selectedNode[\"\" + phaseHeader])) {\n collection[parseInt(j.toString(), 10)].header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n }\n else if (selectedNode.isHeader && swimLaneNode.shape.hasHeader) {\n swimLaneNode.shape.header.annotation.content = selectedNode.annotations[0].content;\n }\n }\n this.dataBind();\n }\n textWrapper.visible = true;\n this.updateDiagramObject(node);\n this.diagramActions = this.diagramActions & ~DiagramAction.TextEdit;\n if (this.activeLabel.isGroup || contentModified) {\n this.endGroupAction();\n }\n this.activeLabel = { id: '', parentId: '', isGroup: false, text: undefined };\n this.commandHandler.getBlazorOldValues();\n //Removed isBlazor code\n this.enableServerDataBinding(true);\n }\n }\n return [2 /*return*/];\n });\n });\n };\n /**\n * getIndex method \\\n *\n * @returns { void } getIndex method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n * @param {string} id - provide the childernCollection value.\n *\n * @private\n */\n Diagram.prototype.getIndex = function (node, id) {\n //let index: number;\n var collection = (getObjectType(node) === Node) ? this.nodes : this.connectors;\n for (var i = 0; i < collection.length; i++) {\n if (collection[parseInt(i.toString(), 10)].id.toString() === id.toString()) {\n return i.toString();\n }\n }\n return null;\n };\n /* tslint:enable */\n //Removed getBlazorTextEditArgs method\n /**\n * canLogChange method \\\n *\n * @returns { void } canLogChange method .\\\n *\n * @private\n */\n Diagram.prototype.canLogChange = function () {\n if ((this.diagramActions & DiagramAction.Render) && (!(this.diagramActions & DiagramAction.ToolAction)) &&\n (!(this.diagramActions & DiagramAction.UndoRedo)) && (!(this.diagramActions & DiagramAction.PublicMethod))) {\n return true;\n }\n else {\n return false;\n }\n };\n Diagram.prototype.modelChanged = function (newProp, oldProp) {\n if (newProp.connectors || oldProp.connectors || newProp.nodes || oldProp.connectors\n || newProp.pageSettings || oldProp.pageSettings || newProp.bridgeDirection || oldProp.bridgeDirection) {\n return true;\n }\n return false;\n };\n Diagram.prototype.resetDiagramActions = function (action) {\n var isAction = action ? true : false;\n if (this.diagramActions & DiagramAction.UndoRedo && (!isAction || (action === DiagramAction.UndoRedo))) {\n this.diagramActions = this.diagramActions & ~DiagramAction.UndoRedo;\n }\n if (this.diagramActions & DiagramAction.PublicMethod && (!isAction || action === DiagramAction.PublicMethod)) {\n this.diagramActions = this.diagramActions & ~DiagramAction.PublicMethod;\n }\n };\n /**\n * removeNode method \\\n *\n * @returns { void } removeNode method .\\\n * @param {NodeModel} node - provide the node value.\n * @param {NodeModel} childrenCollection - provide the childrenCollection value.\n *\n * @private\n */\n Diagram.prototype.removeNode = function (node, childrenCollection) {\n this.removeObjectsFromLayer(node);\n this.removeFromAQuad(this.nameTable[node.id]);\n var groupElement = document.getElementById(node.id + '_groupElement');\n delete this.nameTable[node.id];\n if (node.children) {\n delete this.groupTable[node.id];\n }\n //Removed isBlazor code\n this.nodes.splice(this.nodes.indexOf(node), 1);\n if (groupElement && groupElement.children && groupElement.children.length > 0) {\n var beforeElement = undefined;\n for (var j = groupElement.children.length - 1; j >= 0; j--) {\n var childElement = groupElement.children[parseInt(j.toString(), 10)];\n //EJ2-863636 - Nodes Removed from Diagram upon Ungrouping\n if (childrenCollection.length > 0 && childrenCollection.indexOf(childElement.id.split('_groupElement')[0]) !== -1) {\n if (!beforeElement) {\n groupElement.parentNode.insertBefore(childElement, groupElement);\n }\n else {\n groupElement.parentNode.insertBefore(childElement, beforeElement);\n }\n beforeElement = childElement;\n }\n }\n }\n if (groupElement) {\n groupElement.parentNode.removeChild(groupElement);\n }\n };\n /**\n * deleteGroup method \\\n *\n * @returns { void } deleteGroup method .\\\n * @param {NodeModel} node - provide the source value.\n *\n * @private\n */\n Diagram.prototype.deleteGroup = function (node) {\n var elements = [];\n var tempNode = [];\n if (node.children) {\n tempNode = this.commandHandler.getChildren(node, elements);\n }\n this.UpdateBlazorDiagramModelCollection(node);\n for (var _i = 0, tempNode_1 = tempNode; _i < tempNode_1.length; _i++) {\n var nodes = tempNode_1[_i];\n if (this.nameTable[nodes.id]) {\n this.remove(nodes);\n }\n }\n };\n //helper methods - end region\n //property changes - start region\n /** @private */\n /**\n * updateObject method \\\n *\n * @returns { void } updateObject method .\\\n * @param {Node | Connector} actualObject - provide the source value.\n * @param {Node | Connector} oldObject - provide the target value.\n * @param {Node | Connector} changedProp - provide the layoutOrientation value.\n *\n * @private\n */\n Diagram.prototype.updateObject = function (actualObject, oldObject, changedProp) {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n var bound = actualObject.wrapper.children[0].bounds;\n var checkBoundaryConstraints = this.commandHandler.checkBoundaryConstraints(undefined, undefined, bound, true);\n if (!checkBoundaryConstraints) {\n if (actualObject instanceof Node) {\n var oldNode = oldObject;\n for (var _i = 0, _a = Object.keys(changedProp); _i < _a.length; _i++) {\n var key = _a[_i];\n switch (key) {\n case 'width':\n actualObject.width = oldNode.width;\n break;\n case 'height':\n actualObject.height = oldNode.height;\n break;\n case 'offsetX':\n actualObject.offsetX = oldNode.offsetX;\n break;\n case 'offsetY':\n actualObject.offsetY = oldNode.offsetY;\n break;\n case 'rotateAngle':\n actualObject.rotateAngle = oldNode.rotateAngle;\n break;\n }\n }\n this.nodePropertyChange(actualObject, changedProp, oldObject);\n }\n else {\n for (var _b = 0, _c = Object.keys(changedProp); _b < _c.length; _b++) {\n var key = _c[_b];\n var oldConnector = oldObject;\n var actualSourcePoint = actualObject.sourcePoint;\n var actualTargetPoint = actualObject.targetPoint;\n switch (key) {\n case 'sourcePoint':\n actualSourcePoint.x = oldConnector.sourcePoint.x || actualSourcePoint.x;\n actualSourcePoint.y = oldConnector.sourcePoint.y || actualSourcePoint.y;\n break;\n case 'targetPoint':\n actualTargetPoint.x = oldConnector.targetPoint.x || actualTargetPoint.x;\n actualTargetPoint.y = oldConnector.targetPoint.y || actualTargetPoint.y;\n }\n }\n this.connectorPropertyChange(actualObject, changedProp, oldObject);\n }\n }\n }\n };\n Diagram.prototype.nodePropertyChangeExtend = function (actualObject, oldObject, node, update) {\n if (node.style !== undefined && actualObject.shape.type !== 'Bpmn') {\n updateStyle(node.style, actualObject.wrapper.children[0]);\n update = true;\n }\n if (node.shadow !== undefined) {\n this.updateShadow(actualObject.shadow, node.shadow);\n update = true;\n }\n if (node.constraints !== undefined) {\n if ((oldObject.constraints & NodeConstraints.Select) &&\n (!(node.constraints & NodeConstraints.Select)) && isSelected(this, actualObject)) {\n this.clearSelection();\n }\n else {\n this.updateThumbConstraints(this.selectedItems.nodes, this.selectedItems);\n this.updateSelector();\n update = true;\n }\n }\n this.updateTextAnnotationInSwimlane(actualObject, node);\n this.swimLaneNodePropertyChange(actualObject, oldObject, node, update);\n return update;\n };\n //To update text annotation node inside swimlane while dragging the text annotation parent.\n Diagram.prototype.updateTextAnnotationInSwimlane = function (actualObject, node) {\n if (actualObject.hasTextAnnotation && this.isPositionUndo) {\n for (var i = 0; i < actualObject.outEdges.length; i++) {\n var con = this.nameTable[actualObject.outEdges[parseInt(i.toString(), 10)]];\n if (con.isBpmnAnnotationConnector) {\n var textNode = this.nameTable[con.targetID];\n this.isProtectedOnChange = true;\n if (actualObject.laneMargin && textNode) {\n var dx = actualObject.margin.left - actualObject.laneMargin.left;\n var dy = actualObject.margin.top - actualObject.laneMargin.top;\n textNode.margin.left += dx;\n textNode.margin.top += dy;\n textNode.offsetX += dx;\n textNode.offsetY += dy;\n textNode.wrapper.offsetX += dx;\n textNode.wrapper.offsetY += dy;\n textNode.wrapper.measure(new Size(textNode.wrapper.width, textNode.wrapper.height));\n textNode.wrapper.arrange(textNode.wrapper.desiredSize);\n this.updateDiagramObject(textNode);\n }\n this.isProtectedOnChange = false;\n }\n }\n }\n };\n /* tslint:disable */\n Diagram.prototype.swimLaneNodePropertyChange = function (actualObject, oldObject, node, update) {\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol) {\n if (oldObject.shape) {\n var shape = node.shape;\n var actualShape = actualObject.shape;\n var orientation_1 = (actualShape.orientation === 'Horizontal') ? true : false;\n var padding = actualShape.padding;\n var oldShape = oldObject.shape;\n var grid = actualObject.wrapper.children[0];\n var oldObjects = void 0;\n var newObjects = void 0;\n var id = void 0;\n if (oldShape.lanes || oldShape.phases) {\n if (oldShape.lanes) {\n for (var _i = 0, _a = Object.keys(shape.lanes); _i < _a.length; _i++) {\n var count = _a[_i];\n var indexValue = Number(count);\n var lane = oldShape.lanes[parseInt(indexValue.toString(), 10)];\n var laneIndex = void 0;\n var newLane = shape.lanes[parseInt(indexValue.toString(), 10)];\n if (newLane && newLane.header) {\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = lane.header;\n newObjects = newLane.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (lane.children) {\n for (var _b = 0, _c = Object.keys(lane.children); _b < _c.length; _b++) {\n var childNodeIndex = _c[_b];\n id = actualShape.lanes[parseInt(indexValue.toString(), 10)].children[Number(childNodeIndex)].id;\n var node_1 = this.nameTable[\"\" + id];\n oldObjects = lane.children[Number(childNodeIndex)];\n newObjects = newLane.children[Number(childNodeIndex)];\n this.nodePropertyChange(node_1, oldObjects, newObjects);\n }\n }\n if (lane.width && !orientation_1) {\n laneIndex = (actualShape.phases && actualShape.phaseSize) ? indexValue + 1 : indexValue;\n grid.updateColumnWidth(laneIndex, newLane.width, true, padding);\n this.updateDiagramElementQuad();\n }\n if (lane.height && orientation_1) {\n laneIndex = (actualShape.header && actualShape.hasHeader) ? indexValue + 1 : indexValue;\n laneIndex += (actualShape.phases && actualShape.phaseSize) ? 1 : 0;\n grid.updateRowHeight(laneIndex, newLane.height, true, padding);\n this.updateDiagramElementQuad();\n }\n }\n }\n if (shape.phases) {\n for (var _d = 0, _e = Object.keys(shape.phases); _d < _e.length; _d++) {\n var key = _e[_d];\n var indexValue = Number(key);\n var phase = shape.phases[parseInt(indexValue.toString(), 10)];\n var size = void 0;\n var rowIndex = (actualShape.header && actualShape.hasHeader) ? 1 : 0;\n if (phase && phase.header) {\n id = actualShape.phases[parseInt(indexValue.toString(), 10)].header.id;\n oldObjects = oldShape.phases[parseInt(indexValue.toString(), 10)].header;\n newObjects = phase.header;\n this.nodePropertyChange(this.nameTable[\"\" + id], oldObjects, newObjects);\n }\n if (phase.offset) {\n if (indexValue === 0) {\n size = phase.offset;\n }\n else {\n var previousPhase = actualShape.phases[indexValue - 1];\n size = phase.offset - previousPhase.offset;\n if (size <= 0) {\n size = phase.offset;\n }\n }\n if (orientation_1) {\n grid.updateColumnWidth(indexValue, size, true, padding);\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(rowIndex.toString(), 10)].cells[parseInt(indexValue.toString(), 10)], indexValue);\n }\n else {\n grid.updateRowHeight(rowIndex + indexValue, size, true, padding);\n }\n }\n }\n }\n }\n if (shape.phaseSize !== undefined && actualShape.phases.length) {\n if (shape.phaseSize === 0 || oldShape.phaseSize === 0) {\n if (oldShape.phaseSize) {\n if (orientation_1) {\n grid.removeRow((actualShape.header && actualShape.hasHeader) ? 1 : 0);\n actualObject.height = actualObject.wrapper.height = grid.height;\n }\n else {\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[1].children = grid.rows[0].cells[0].children;\n grid.rows[0].cells[1].columnSpan = grid.rows[0].cells[0].columnSpan - 1;\n grid.rows[0].cells[0].children = [];\n }\n grid.removeColumn(0);\n }\n }\n else {\n if (orientation_1) {\n var rowDef = new RowDefinition();\n rowDef.height = shape.phaseSize;\n grid.addRow((actualShape.header && actualShape.hasHeader) ? 1 : 0, rowDef, true);\n actualObject.height = actualObject.wrapper.height += shape.phaseSize;\n }\n else {\n var colDef = new ColumnDefinition();\n colDef.width = shape.phaseSize;\n grid.addColumn(0, colDef, true);\n if (actualShape.header && actualShape.hasHeader) {\n grid.rows[0].cells[0].children = grid.rows[0].cells[1].children;\n grid.rows[0].cells[1].children = [];\n grid.rows[0].cells[1].columnSpan = 1;\n grid.rows[0].cells[1].minWidth = undefined;\n grid.rows[0].cells[0].columnSpan = actualShape.lanes.length + 1;\n }\n }\n for (var k = 0; k < actualShape.phases.length; k++) {\n if (actualShape.phases[parseInt(k.toString(), 10)].id === '') {\n actualShape.phases[parseInt(k.toString(), 10)].id = randomId();\n }\n phaseDefine(grid, this, actualObject, (actualShape.header && actualShape.hasHeader) ? 1 : 0, orientation_1, k);\n }\n }\n }\n else {\n if (orientation_1) {\n grid.updateRowHeight((actualShape.header && actualShape.hasHeader) ? 1 : 0, shape.phaseSize, false);\n }\n else {\n grid.updateColumnWidth(0, shape.phaseSize, false);\n }\n }\n }\n if (actualShape.header && actualShape.hasHeader && oldShape.header) {\n var id_1 = grid.rows[0].cells[0].children[0].id;\n var headerNode = this.nameTable[\"\" + id_1];\n this.nodePropertyChange(headerNode, (oldShape.header), shape.header);\n }\n actualObject.height = actualObject.wrapper.height = grid.height;\n actualObject.width = actualObject.wrapper.width = grid.width;\n }\n else if (oldObject.constraints) {\n var oldSelectConstraints = (oldObject.constraints & NodeConstraints.Select);\n var newSelectConstraints = (node.constraints & NodeConstraints.Select);\n if (oldSelectConstraints !== newSelectConstraints) {\n var shape = actualObject.shape;\n // Header - constraints\n var headerNode = this.nameTable[actualObject.id + shape.header.id];\n headerNode.constraints = (!newSelectConstraints) ? headerNode.constraints & ~NodeConstraints.Select :\n headerNode.constraints | NodeConstraints.Select;\n // Phase - Constraints\n var phaseNode = void 0;\n if (shape.phaseSize > 0) {\n for (var i = 0; i < shape.phases.length; i++) {\n phaseNode = this.nameTable[actualObject.id + shape.phases[parseInt(i.toString(), 10)].id + '_header'];\n phaseNode.constraints = (!newSelectConstraints) ? phaseNode.constraints & ~NodeConstraints.Select :\n phaseNode.constraints | NodeConstraints.Select;\n }\n }\n // Header - Constraints\n var laneNode = void 0;\n var laneHeader = void 0;\n var value = shape.phases.length || 1;\n for (var i = 0; i < shape.lanes.length; i++) {\n for (var l = 0; l < value; l++) {\n laneNode = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + l];\n laneNode.constraints = (!newSelectConstraints) ? laneNode.constraints & ~NodeConstraints.Select :\n laneNode.constraints | NodeConstraints.Select;\n if (l === 0) {\n laneHeader = this.nameTable[actualObject.id + shape.lanes[parseInt(i.toString(), 10)].id + '_' + l + '_header'];\n laneHeader.constraints = (!newSelectConstraints) ? laneHeader.constraints & ~NodeConstraints.Select :\n laneHeader.constraints | NodeConstraints.Select;\n }\n }\n }\n }\n }\n update = true;\n }\n return update;\n };\n /** @private */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Diagram.prototype.insertValue = function (oldNodeObject, isNode) {\n if (!(this.blazorActions & BlazorAction.GroupClipboardInProcess)) {\n var value = void 0;\n var oldObjects = isNode ? this.oldNodeObjects : this.oldConnectorObjects;\n for (var i = 0; i < oldObjects.length; i++) {\n if (oldObjects[parseInt(i.toString(), 10)].id === oldNodeObject.id) {\n value = true;\n }\n }\n if (!value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n isNode ? (this.oldNodeObjects.push(oldNodeObject)) : this.oldConnectorObjects.push(oldNodeObject);\n }\n }\n };\n /* tslint:disable */\n /** @private */\n // eslint-disable-next-line max-len\n Diagram.prototype.nodePropertyChange = function (actualObject, oldObject, node, isLayout, rotate, propertyChange) {\n if (this.canEnableBlazorObject && actualObject.id !== 'helper') {\n var node_2 = cloneObject(actualObject);\n this.insertValue(node_2, true);\n }\n var existingBounds = actualObject.wrapper.outerBounds;\n var existingInnerBounds = actualObject.wrapper.bounds;\n var updateConnector = false;\n var i;\n var j;\n var offsetX;\n var offsetY;\n var update;\n var tx;\n var ty;\n var oldBpmnOffsetX = 0;\n var newBpmnOffsetX = 0;\n var oldBpmnOffsetY = 0;\n var newBpmnOffsetY = 0;\n var sizeChanged = false;\n var offsetChanged = false;\n var angleChanged = false;\n if (node.width !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].width = node.width;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.width, true);\n }\n else {\n actualObject.wrapper.width = node.width;\n }\n sizeChanged = true;\n }\n if (node.height !== undefined) {\n if (!actualObject.children) {\n actualObject.wrapper.children[0].height = node.height;\n update = true;\n updateConnector = true;\n }\n else if (!actualObject.container) {\n this.scaleObject(actualObject, node.height, false);\n }\n else {\n actualObject.wrapper.height = node.height;\n }\n sizeChanged = true;\n }\n update = this.nodePropertyChangeExtend(actualObject, oldObject, node, update);\n if (node.constraints !== undefined && canShadow(oldObject) !== canShadow(node)) {\n actualObject.wrapper.children[0].shadow = canShadow(actualObject) ? actualObject.shadow : null;\n }\n if (node.offsetX !== undefined) {\n oldBpmnOffsetX = oldObject.offsetX;\n newBpmnOffsetX = node.offsetX;\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetX !== actualObject.wrapper.offsetX && oldObject.offsetX !== undefined) {\n var offsetX_1 = node.offsetX - oldObject.offsetX;\n actualObject.wrapper.offsetX = actualObject.wrapper.offsetX + offsetX_1;\n this.updateFlipOffset(actualObject.wrapper, offsetX_1, 0, actualObject.wrapper.flip);\n }\n //EJ2-895070: Flipping and moving the node are not working properly\n else {\n actualObject.wrapper.offsetX = node.offsetX;\n }\n }\n else {\n actualObject.wrapper.offsetX = node.offsetX;\n }\n update = true;\n updateConnector = true;\n offsetChanged = true;\n }\n if (node.offsetY !== undefined) {\n oldBpmnOffsetY = oldObject.offsetY;\n newBpmnOffsetY = node.offsetY;\n if (actualObject.wrapper.flip !== 'None') {\n if (actualObject.offsetY !== actualObject.wrapper.offsetY && oldObject.offsetY !== undefined) {\n var offsetY_1 = node.offsetY - oldObject.offsetY;\n actualObject.wrapper.offsetY = actualObject.wrapper.offsetY + offsetY_1;\n this.updateFlipOffset(actualObject.wrapper, 0, offsetY_1, actualObject.wrapper.flip);\n }\n //EJ2-895070: Flipping and moving the node are not working properly\n else {\n actualObject.wrapper.offsetY = node.offsetY;\n }\n }\n else {\n actualObject.wrapper.offsetY = node.offsetY;\n }\n update = true;\n updateConnector = true;\n offsetChanged = true;\n }\n if (node.padding !== undefined) {\n actualObject.wrapper.padding.left = node.padding.left !== undefined ? node.padding.left : actualObject.wrapper.padding.left;\n actualObject.wrapper.padding.right = node.padding.right !== undefined ? node.padding.right : actualObject.wrapper.padding.right;\n actualObject.wrapper.padding.top = node.padding.top !== undefined ? node.padding.top : actualObject.wrapper.padding.top;\n actualObject.wrapper.padding.bottom = node.padding.bottom !== undefined ? node.padding.bottom\n : actualObject.wrapper.padding.bottom;\n update = true;\n }\n if (node.pivot !== undefined) {\n actualObject.wrapper.pivot = node.pivot;\n update = true;\n }\n if (node.minWidth !== undefined) {\n actualObject.wrapper.minWidth = actualObject.wrapper.children[0].minWidth = node.minWidth;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.minHeight !== undefined) {\n actualObject.wrapper.minHeight = actualObject.wrapper.children[0].minHeight = node.minHeight;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.maxWidth !== undefined) {\n actualObject.wrapper.maxWidth = node.maxWidth;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.maxHeight !== undefined) {\n actualObject.wrapper.maxHeight = node.maxHeight;\n update = true;\n updateConnector = true;\n sizeChanged = true;\n }\n if (node.flip !== undefined) {\n actualObject.wrapper.flip = node.flip;\n update = true;\n updateConnector = true;\n if (actualObject.wrapper.elementActions & ElementAction.ElementIsGroup) {\n alignElement(actualObject.wrapper, actualObject.offsetX, actualObject.offsetY, this, node.flip);\n if (actualObject && actualObject.children) {\n for (var _i = 0, _a = actualObject.children; _i < _a.length; _i++) {\n var child = _a[_i];\n var updateNode = this.nameTable[\"\" + child];\n updateNode.wrapper.flip = node.flip;\n this.updatePorts(updateNode, node.flip);\n }\n }\n //EJ2-826617 - Flip option for BPMN node\n else {\n this.updatePorts(actualObject, actualObject.flip);\n }\n }\n else {\n // flips the port according to node flip direction\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All' ||\n actualObject.flipMode === 'PortAndLabel' || actualObject.flipMode === 'PortAndLabelText')) {\n this.updatePorts(actualObject, node.flip);\n }\n //EJ2-826617 - Flip 'None' is not working properly\n else if (actualObject.flip === 'None') {\n this.updatePorts(actualObject, node.flip);\n }\n }\n }\n // EJ2-71981 - Flip mode \"Port\" is not working properly while dragging multiselected node\n if (node.flipMode !== undefined) {\n actualObject.wrapper.flipMode = node.flipMode;\n update = true;\n updateConnector = true;\n // flips the port according to node flip direction\n if (actualObject.flipMode && (actualObject.flipMode === 'Port' || actualObject.flipMode === 'All' ||\n actualObject.flipMode === 'PortAndLabel' || actualObject.flipMode === 'PortAndLabelText')) {\n this.updatePorts(actualObject, actualObject.flip);\n }\n //EJ2-826617 - Flip mode 'Label' does not triggers the port\n else if (actualObject.flipMode === 'Label' || actualObject.flipMode === 'LabelText' ||\n actualObject.flipMode === 'LabelAndLabelText') {\n this.updatePorts(actualObject, 'None');\n }\n //EJ2-826617 - Flip mode 'None' is not working properly\n else if (actualObject.flipMode === 'None') {\n this.updatePorts(actualObject, actualObject.flipMode);\n }\n }\n if (node.rotateAngle !== undefined && (actualObject.constraints & NodeConstraints.Rotate)) {\n if (actualObject.children && rotate) {\n // eslint-disable-next-line max-len\n this.commandHandler.rotateObjects(actualObject, [actualObject], actualObject.rotateAngle - actualObject.wrapper.rotateAngle, { x: actualObject.offsetX, y: actualObject.offsetY }, false);\n }\n actualObject.wrapper.rotateAngle = node.rotateAngle;\n update = true;\n updateConnector = true;\n angleChanged = true;\n }\n if (node.backgroundColor !== undefined) {\n actualObject.wrapper.style.fill = node.backgroundColor;\n }\n if (node.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (node.shape !== undefined && actualObject.shape.type !== 'Bpmn') {\n update = true;\n updateShape(node, actualObject, oldObject, this);\n updateConnector = true;\n }\n if (node.margin) {\n update = true;\n this.updateMargin(actualObject, node);\n updateConnector = true;\n offsetChanged = true;\n }\n if ((((node.shape !== undefined && (node.shape.type === undefined)) || node.width !== undefined\n || node.height !== undefined || node.style !== undefined) && actualObject.shape.type === 'Bpmn' && this.bpmnModule)) {\n update = true;\n updateConnector = true;\n this.bpmnModule.updateBPMN(node, oldObject, actualObject, this);\n }\n if (actualObject.shape.type === 'UmlActivity' && ((!isBlazor() && actualObject.shape.shape === 'FinalNode'))) {\n update = true;\n updateConnector = true;\n this.updateUMLActivity(node, oldObject, actualObject, this);\n }\n if ((actualObject.shape && actualObject.shape.type === 'UmlClassifier') || (actualObject.parentId &&\n this.nameTable[actualObject.parentId] && this.nameTable[actualObject.parentId].shape.type === 'UmlClassifier')) {\n update = true;\n updateConnector = true;\n }\n if (node.ports !== undefined) {\n for (var _b = 0, _c = Object.keys(node.ports); _b < _c.length; _b++) {\n var key = _c[_b];\n var index = Number(key);\n update = true;\n var changedObject = node.ports[\"\" + key];\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n this.updatePort(changedObject, actualPort, actualObject.wrapper);\n updateConnector = true;\n }\n }\n if (node.annotation !== undefined || node.annotations !== undefined || node.width !== undefined) {\n for (var _d = 0, _e = Object.keys(node.annotations || actualObject.annotations); _d < _e.length; _d++) {\n var key = _e[_d];\n var index = Number(key);\n update = true;\n var changedObject = void 0;\n if (node.annotation) {\n changedObject = node.annotation;\n }\n else {\n changedObject = node.annotations ? node.annotations[\"\" + key] : actualObject.annotations;\n }\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n if (actualAnnotation) {\n var updateSize = actualObject.width ? true : false;\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject, updateSize);\n var swimLaneNode = this.nameTable[actualObject.parentId];\n if ((swimLaneNode && swimLaneNode.shape.type === 'SwimLane')) {\n var laneHeader = 'LaneHeaderParent';\n var phaseHeader = 'PhaseHeaderParent';\n if ((actualObject.isLane || actualObject.isPhase)) {\n var collection = actualObject.isLane ?\n swimLaneNode.shape.lanes : swimLaneNode.shape.phases;\n for (var j_2 = 0; j_2 < collection.length; j_2++) {\n if (collection[parseInt(j_2.toString(), 10)].id === (actualObject[\"\" + laneHeader] || actualObject[\"\" + phaseHeader])) {\n collection[parseInt(j_2.toString(), 10)].header.annotation.content = actualObject.annotations[0].content;\n collection[parseInt(j_2.toString(), 10)].header.annotation.style = actualObject.annotations[0].style;\n break;\n }\n }\n }\n }\n }\n }\n }\n if (node.expandIcon !== undefined || node.collapseIcon !== undefined || node.isExpanded !== undefined) {\n this.updateIcon(actualObject);\n this.updateDefaultLayoutIcons(actualObject);\n if (node.isExpanded !== undefined) {\n this.canExpand = true;\n //EJ2-844814 - Expand and collapse not working properly at runtime\n this.diagramActions |= DiagramAction.PreventIconsUpdate;\n this.commandHandler.expandNode(actualObject, this);\n this.diagramActions = this.diagramActions & ~DiagramAction.PreventIconsUpdate;\n }\n update = true;\n this.canExpand = false;\n }\n if (node.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualfixedUserHandle = void 0;\n for (var _f = 0, _g = Object.keys(node.fixedUserHandles); _f < _g.length; _f++) {\n var key = _g[_f];\n index = Number(key);\n update = true;\n if (node.fixedUserHandles[parseInt(index.toString(), 10)]) {\n changedObject = node.fixedUserHandles[parseInt(index.toString(), 10)];\n }\n actualfixedUserHandle = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n if (actualfixedUserHandle) {\n this.updateNodefixedUserHandle(changedObject, actualfixedUserHandle, actualObject.wrapper, actualObject);\n }\n }\n }\n if (node.tooltip !== undefined) {\n this.updateTooltip(actualObject, node);\n }\n if (update) {\n if (this.bpmnModule !== undefined && offsetChanged && !sizeChanged && !angleChanged && !this.sizeUndo) {\n // eslint-disable-next-line max-len\n this.updateBpmnAnnotationPosition(oldBpmnOffsetX, oldBpmnOffsetY, newBpmnOffsetX, newBpmnOffsetY, actualObject, actualObject.wrapper, actualObject.shape, actualObject.shape.shape === 'TextAnnotation');\n }\n if (this.checkSelectedItem(actualObject) && actualObject.wrapper.children[0] instanceof TextElement) {\n actualObject.wrapper.children[0].refreshTextElement();\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height), actualObject.id, this.onLoadImageSize.bind(this));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n this.updateObject(actualObject, oldObject, node);\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && !(this.diagramActions & DiagramAction.ToolAction)) {\n updateHeaderMaxWidth(this, actualObject);\n var grid = actualObject.wrapper.children[0];\n var shape = actualObject.shape;\n var column = grid.columnDefinitions().length;\n if (shape.orientation === 'Horizontal') {\n var index = (shape.header && shape.hasHeader) ? 1 : 0;\n updatePhaseMaxWidth(actualObject, this, grid.rows[parseInt(index.toString(), 10)].cells[column - 1], column - 1);\n }\n actualObject.wrapper.measure(new Size(actualObject.wrapper.bounds.width, actualObject.wrapper.bounds.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n }\n if ((!(this.diagramActions & DiagramAction.ToolAction)) || (this.diagramActions & DiagramAction.UndoRedo)) {\n if (this.checkSelectedItem(actualObject)) {\n this.updateSelector();\n }\n }\n if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) {\n this.updateQuad(actualObject);\n // EJ2-57436 - Added the below code to check if node has parent id or not.\n // If node has parentId means then send the parent node to updatequad method to add the parent node in negative quadrant\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parentNode = this.nameTable[actualObject.parentId];\n this.updateQuad(parentNode);\n }\n }\n if (!isLayout) {\n // eslint-disable-next-line max-len\n this.commandHandler.connectorSegmentChange(actualObject, existingInnerBounds, (node.rotateAngle !== undefined) ? true : false);\n // if (updateConnector) {\n // this.updateConnectorEdges(actualObject);\n // }\n }\n else {\n if (actualObject && actualObject.visible && actualObject.outEdges) {\n this.updateIconVisibility(actualObject, (actualObject.outEdges.length === 0 ? false : true));\n }\n }\n if (this.bpmnModule !== undefined) {\n this.bpmnModule.updateDocks(actualObject, this);\n }\n if (!node.annotations || !actualObject.processId) {\n this.updateGroupOffset(actualObject);\n }\n // if (existingBounds.equals(existingBounds, actualObject.wrapper.outerBounds) === false) { this.updateQuad(actualObject); }\n // EJ2-42005 - The parent of the actualObject is not measured and arranged when a node or connector is selected.\n // The condition restricts the measure and arrange of the actualObject whenever a node or connector is selected.\n // Commented @Dheepshiva\n // let objects: (NodeModel | ConnectorModel)[] = [];\n // objects = objects.concat(this.selectedItems.nodes, this.selectedItems.connectors);\n // if (objects.length === 0) {\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n var parent_6 = this.nameTable[actualObject.parentId];\n parent_6.wrapper.measure(new Size(parent_6.wrapper.width, actualObject.wrapper.height));\n parent_6.wrapper.arrange(parent_6.wrapper.desiredSize);\n parent_6.offsetX = parent_6.wrapper.offsetX;\n parent_6.offsetY = parent_6.wrapper.offsetY;\n }\n // }\n if (existingInnerBounds.equals(existingInnerBounds, actualObject.wrapper.bounds) === false) {\n if (this.eventHandler.currentAction !== 'Drag') {\n this.updateGroupSize(actualObject);\n }\n if (actualObject.children) {\n this.updateGroupOffset(actualObject);\n }\n }\n if (actualObject.shape.type === 'SwimLane' && !this.currentSymbol && (this.diagramActions & DiagramAction.Render)) {\n var connectors = getConnectors(this, actualObject.wrapper.children[0], undefined, true);\n updateConnectorsProperties(connectors, this);\n }\n if (!this.preventNodesUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n }\n }\n if (!isLayout && updateConnector) {\n if (this.lineRoutingModule && this.diagramActions && (this.constraints & DiagramConstraints.LineRouting) && actualObject.id !== 'helper') {\n if (!(this.diagramActions & DiagramAction.ToolAction)) {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n }\n }\n else if (this.diagramActions && (this.constraints & DiagramConstraints.LineRouting) && actualObject.id !== 'helper') {\n console.warn('[WARNING] :: Module \"LineRouting\" is not available in Diagram component! You either misspelled the module name or forgot to load it.');\n }\n this.updateConnectorEdges(actualObject);\n if (actualObject.id !== 'helper' && !(this.diagramActions & DiagramAction.ToolAction)) {\n var objects = this.spatialSearch.findObjects(actualObject.wrapper.outerBounds);\n for (var i_4 = 0; i_4 < objects.length; i_4++) {\n var object = objects[parseInt(i_4.toString(), 10)];\n if (object instanceof Connector) {\n this.connectorPropertyChange(objects[parseInt(i_4.toString(), 10)], {}, {\n sourceID: object.sourceID,\n targetID: object.targetID,\n sourcePortID: object.sourcePortID,\n targetPortID: object.targetPortID,\n sourcePoint: object.sourcePoint,\n targetPoint: object.targetPoint\n });\n }\n }\n }\n }\n }\n if (actualObject.status !== 'New' && this.diagramActions) {\n actualObject.status = 'Update';\n }\n }\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: element, cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: oldObject, newValue: node\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n //To update text annotation position while dragging the text annotation's parent node.\n Diagram.prototype.updateBpmnAnnotationPosition = function (oldX, oldY, newX, newY, node, wrapper, shape, isTextAnnotation) {\n var x = newX > oldX ? Math.abs(newX - oldX) : Math.abs(oldX - newX);\n var y = newY > oldY ? Math.abs(newY - oldY) : Math.abs(oldY - newY);\n var laneX;\n var laneY;\n if ((x === 0 && y === 0) || (Number.isNaN(x) && Number.isNaN(y))) {\n if (node.laneMargin) {\n laneX = node.margin.left - node.laneMargin.left;\n laneY = node.margin.top - node.laneMargin.top;\n }\n }\n var width = node.width;\n var height = node.height;\n var bounds = new Rect(0, 0, 0, 0);\n if (width !== 0 && height !== 0) {\n bounds = new Rect((newX !== 0 ? newX : node.offsetX) - width / 2, (newY !== 0 ? newY : node.offsetY) - height / 2, width, height);\n }\n //To update text annotation position\n if (isTextAnnotation) {\n var bpmnAnnotation = shape;\n var hasTarget = bpmnAnnotation.textAnnotation.textAnnotationTarget !== '' && this.nameTable[bpmnAnnotation.textAnnotation.textAnnotationTarget];\n var selectedNode = this.selectedItems.nodes ? this.selectedItems.nodes[0] : undefined;\n var isTextNodeSelected = selectedNode && selectedNode.shape && selectedNode.shape.shape === 'TextAnnotation';\n if (hasTarget) {\n //To check whether the text annotation inside the swimlane\n if (node.parentId === '' || isTextNodeSelected) {\n if (bpmnAnnotation.textAnnotation.textAnnotationDirection === 'Auto') {\n if (wrapper.children[0] instanceof Canvas && wrapper.children[0].children[0] instanceof PathElement) {\n var diagramCanvas = wrapper.children[0];\n var parentElement = document.getElementById(diagramCanvas.id + '_groupElement');\n var elementToRemove = document.getElementById(diagramCanvas.children[0].id + '_groupElement');\n parentElement.removeChild(elementToRemove);\n diagramCanvas.children.splice(0, 1);\n this.isProtectedOnChange = true;\n this.bpmnModule.setAnnotationPath(bounds, diagramCanvas, node, bpmnAnnotation, bpmnAnnotation.textAnnotation.textAnnotationDirection, this);\n this.isProtectedOnChange = false;\n }\n }\n }\n else {\n this.isPositionUndo = true;\n this.updateTextAnnotationInSwimlane(node, node);\n this.isPositionUndo = false;\n }\n }\n else { //To update text annotation connector source point.\n if (node.inEdges.length > 0) {\n var connectorID = node.inEdges[0];\n var connector = this.nameTable[\"\" + connectorID];\n if (connector && connector.isBpmnAnnotationConnector) {\n connector.sourcePoint =\n {\n x: newX > oldX ? connector.sourcePoint.x + x : connector.sourcePoint.x - x,\n y: newY > oldY ? connector.sourcePoint.y + y : connector.sourcePoint.y - y\n };\n }\n }\n }\n var newValue = { ports: [{ offset: node.ports[0].offset }] };\n //To update port offset of text annotation node\n this.nodePropertyChange(node, {}, newValue);\n }\n else {\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var id = _a[_i];\n var connector = this.nameTable[\"\" + id];\n if (connector && connector.isBpmnAnnotationConnector) {\n var targetNode = this.nameTable[connector.targetID];\n if (targetNode.shape.shape === 'TextAnnotation') {\n var oldValue = void 0;\n var newValue = void 0;\n if (laneX !== undefined && laneY !== undefined) {\n if (targetNode.parentId) {\n oldValue = { margin: { left: targetNode.margin.left, top: targetNode.margin.top } };\n targetNode.margin.left += laneX;\n targetNode.margin.top += laneY;\n newValue = { margin: { left: targetNode.margin.left, top: targetNode.margin.top } };\n }\n else {\n oldValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n targetNode.offsetX += laneX;\n targetNode.offsetY += laneY;\n newValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n }\n }\n else {\n oldValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n targetNode.offsetX = newX > oldX ? targetNode.offsetX + x : targetNode.offsetX - x;\n targetNode.offsetY = newY > oldY ? targetNode.offsetY + y : targetNode.offsetY - y;\n newValue = { offsetX: targetNode.offsetX, offsetY: targetNode.offsetY };\n }\n this.nodePropertyChange(targetNode, oldValue, newValue);\n }\n }\n }\n }\n };\n Diagram.prototype.updatePorts = function (actualObject, flip) {\n if (actualObject && actualObject.ports.length > 0) {\n for (var _i = 0, _a = Object.keys(actualObject.ports); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n var portWrapper = this.getWrapper(actualObject.wrapper, actualPort.id);\n portWrapper = updatePortEdges(portWrapper, flip, actualPort);\n portWrapper.relativeMode = 'Point';\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updateFlipOffset = function (element, diffX, diffY, flip) {\n if (element.hasChildren()) {\n for (var _i = 0, _a = element.children; _i < _a.length; _i++) {\n var child = _a[_i];\n if (flip === 'Horizontal' || flip === 'Both') {\n child.flipOffset.x = child.flipOffset.x + diffX;\n }\n if (flip === 'Vertical' || flip === 'Both') {\n child.flipOffset.y = child.flipOffset.y + diffY;\n }\n if (child instanceof Canvas || child instanceof Container) {\n this.updateFlipOffset(child, diffX, diffY, flip);\n }\n }\n }\n };\n Diagram.prototype.updateUMLActivity = function (changedProp, oldObject, actualObject, diagram) {\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if (sizeChanged) {\n var innerFinalNode = actualObject.wrapper.children[0].children[0];\n innerFinalNode.width = changedProp.width;\n innerFinalNode.height = changedProp.height;\n var outerFinalNode = actualObject.wrapper.children[0].children[1];\n outerFinalNode.width = changedProp.width / 1.5;\n outerFinalNode.height = changedProp.height / 1.5;\n }\n };\n Diagram.prototype.updateConnectorProperties = function (connector) {\n if (this.preventConnectorsUpdate) {\n var index = this.selectionConnectorsList.indexOf(connector);\n if (index === -1 && connector) {\n this.selectionConnectorsList.push(connector);\n }\n }\n else {\n var conn = {\n sourcePoint: connector.sourcePoint, targetPoint: connector.targetPoint, sourceID: connector.sourceID,\n targetID: connector.targetID, sourcePortID: connector.sourcePortID, targetPortID: connector.targetPortID\n };\n this.connectorPropertyChange(connector, {}, conn, undefined, true);\n }\n };\n /**\n * updateConnectorEdges method \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {Node} actualObject - provide the actualObject value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorEdges = function (actualObject) {\n if (actualObject.inEdges.length > 0) {\n for (var j = 0; j < actualObject.inEdges.length; j++) {\n this.updateConnectorProperties(this.nameTable[actualObject.inEdges[parseInt(j.toString(), 10)]]);\n }\n }\n if (actualObject.outEdges.length > 0) {\n for (var k = 0; k < actualObject.outEdges.length; k++) {\n this.updateConnectorProperties(this.nameTable[actualObject.outEdges[parseInt(k.toString(), 10)]]);\n }\n }\n if (actualObject.parentId && this.nameTable[actualObject.parentId]) {\n this.updateConnectorEdges(this.nameTable[actualObject.parentId]);\n }\n };\n /* tslint:enable */\n Diagram.prototype.connectorProprtyChangeExtend = function (actualObject, oldProp, newProp, updateSelector) {\n if (newProp.type !== undefined && newProp.type !== oldProp.type) {\n if (actualObject.segments.length > 0 && newProp.segments === undefined) {\n actualObject.segments = [];\n }\n }\n if ((newProp.shape !== undefined) && actualObject.shape !== undefined &&\n actualObject.shape && actualObject.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateBPMNConnector(actualObject, oldProp, newProp, this);\n }\n if (actualObject.constraints !== undefined) {\n this.updateThumbConstraints(this.selectedItems.connectors, this.selectedItems);\n return updateSelector = true;\n }\n return updateSelector;\n };\n /* tslint:disable */\n /**\n * Updates the connectorPropertyChange of the diagram container \\\n *\n * @returns { void } Updates the connectorPropertyChange of the diagram container .\\\n * @param {DiagramElement} actualObject - provide the actualObject value.\n * @param {boolean} oldProp - provide the oldProp value.\n * @param {boolean} newProp - provide the newProp value.\n * @param {boolean} disableBridging - provide the disableBridging value.\n * @param {boolean} propertyChange - provide the propertyChange value.\n *\n * @private\n */\n Diagram.prototype.connectorPropertyChange = function (actualObject, oldProp, newProp, disableBridging, propertyChange) {\n if (this.canEnableBlazorObject) {\n var node = cloneObject(actualObject);\n this.insertValue(node, false);\n }\n var existingBounds = actualObject.wrapper.bounds;\n var updateSelector = false;\n var points = [];\n updateSelector = this.connectorProprtyChangeExtend(actualObject, oldProp, newProp, updateSelector);\n var inPort;\n var outPort;\n var source;\n var target;\n if (newProp.visible !== undefined) {\n this.updateElementVisibility(actualObject.wrapper, actualObject, actualObject.visible);\n }\n if (newProp.sourcePoint !== undefined || newProp.targetPoint !== undefined\n || newProp.sourceID !== undefined || newProp.targetID !== undefined || newProp.targetPadding !== undefined ||\n newProp.sourcePortID !== undefined || newProp.targetPortID !== undefined || newProp.sourcePadding !== undefined ||\n newProp.type !== undefined || newProp.segments !== undefined || newProp.flip !== undefined) {\n if ((newProp.sourceID !== undefined && newProp.sourceID !== oldProp.sourceID) || newProp.sourcePortID) {\n var sourceNode = this.nameTable[actualObject.sourceID];\n outPort = this.findInOutConnectPorts(sourceNode, false);\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourceWrapper = sourceNode ? this.getEndNodeWrapper(sourceNode, actualObject, true) : undefined;\n if (actualObject.sourcePortID && newProp.sourcePortID === undefined) {\n actualObject.sourcePortWrapper = sourceNode ? this.getWrapper(sourceNode.wrapper, actualObject.sourcePortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.sourceID] || sourceNode, oldProp.sourcePortID || actualObject.sourcePortID, actualObject.id, false);\n }\n if (newProp.sourceID !== undefined && oldProp.sourceID !== undefined && oldProp.sourceID !== '') {\n var oldSource = this.nameTable[oldProp.sourceID];\n if (oldSource !== undefined && oldSource.outEdges && oldSource.outEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldSource.outEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.targetID !== undefined && newProp.targetID !== oldProp.targetID) {\n var targetNode = this.nameTable[newProp.targetID];\n inPort = this.findInOutConnectPorts(targetNode, true);\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetWrapper = targetNode ? this.getEndNodeWrapper(targetNode, actualObject, false) : undefined;\n if (actualObject.targetPortID && newProp.targetPortID === undefined) {\n actualObject.targetPortWrapper = targetNode ? this.getWrapper(targetNode.wrapper, actualObject.targetPortID) : undefined;\n }\n this.removePortEdges(this.nameTable[oldProp.targetID] || targetNode, oldProp.targetPortID || actualObject.targetPortID, actualObject.id, true);\n }\n if (oldProp !== undefined && oldProp.targetID !== undefined && oldProp.targetID !== '') {\n var oldTarget = this.nameTable[oldProp.targetID];\n if (oldTarget !== undefined && oldTarget.inEdges && oldTarget.inEdges.indexOf(actualObject.id) !== -1) {\n removeItem(oldTarget.inEdges, actualObject.id);\n }\n }\n this.updateEdges(actualObject);\n }\n if (newProp.sourcePortID !== undefined && newProp.sourcePortID !== oldProp.sourcePortID) {\n if (actualObject.sourceID && this.nameTable[actualObject.sourceID]) {\n source = this.nameTable[actualObject.sourceID].wrapper;\n }\n var sourceNode = this.nameTable[actualObject.sourceID];\n if (!sourceNode || (canOutConnect(sourceNode) || (actualObject.sourcePortID !== '' && canPortOutConnect(outPort)))) {\n actualObject.sourcePortWrapper = source ? this.getWrapper(source, newProp.sourcePortID) : undefined;\n }\n else if (actualObject.sourcePortID === '' && !canOutConnect(sourceNode)) {\n actualObject.sourcePortWrapper = undefined;\n }\n }\n if (newProp.targetPortID !== undefined && newProp.targetPortID !== oldProp.targetPortID) {\n var targetNode = this.nameTable[actualObject.targetID];\n if (actualObject.targetID && this.nameTable[actualObject.targetID]) {\n target = this.nameTable[actualObject.targetID].wrapper;\n }\n if (!targetNode || (canInConnect(targetNode) || (actualObject.targetPortID !== '' && canPortInConnect(inPort)))) {\n actualObject.targetPortWrapper = target ? this.getWrapper(target, newProp.targetPortID) : undefined;\n }\n else if (actualObject.targetPortID === '' && !canInConnect(targetNode)) {\n actualObject.targetPortWrapper = undefined;\n }\n }\n if (newProp.flip !== undefined) {\n actualObject.flip = newProp.flip;\n flipConnector(actualObject);\n }\n //EJ2-867479 - Performance issue in complexhierarchical layout due to linerouting injection\n if (actualObject.type === 'Orthogonal' && this.lineRoutingModule && this.diagramActions &&\n (this.constraints & DiagramConstraints.LineRouting) && !(this.diagramActions & DiagramAction.ToolAction) && this.layout.type !== 'ComplexHierarchicalTree') {\n this.lineRoutingModule.renderVirtualRegion(this, true);\n // EJ2-65876 - Exception occurs on line routing injection module\n if (actualObject.sourceID !== actualObject.targetID && actualObject.segments.length > 1) {\n //EJ2-69573 - Excecption occurs when calling doLayout method with the lineRouting module\n this.lineRoutingModule.refreshConnectorSegments(this, actualObject, false);\n }\n }\n points = this.getPoints(actualObject);\n } //Add prop change for zindex, alignments and margin\n if (newProp.style !== undefined) {\n updateStyle(newProp.style, actualObject.wrapper.children[0]);\n }\n if (points.length > 0 || newProp.sourceDecorator !== undefined || (newProp.targetDecorator !== undefined\n && (canMeasureDecoratorPath(Object.keys(newProp.targetDecorator)))) || newProp.cornerRadius !== undefined) {\n updateConnector(actualObject, points.length > 0 ? points : actualObject.intermediatePoints, this.diagramActions);\n if (newProp.type !== undefined) {\n updateSelector = true;\n }\n if (points.length > 0) {\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n // eslint-disable-next-line max-len\n this.updateConnectorAnnotation(actualObject);\n this.updateConnectorPort(actualObject);\n this.updateConnectorfixedUserHandles(actualObject);\n this.updateObject(actualObject, oldProp, newProp);\n } //work-around to update intersected connector bridging\n }\n if ((newProp.sourcePoint || newProp.targetPoint || newProp.segments)\n && this.diagramActions === DiagramAction.Render) {\n updateSelector = true;\n }\n if (actualObject.shape.type === 'Bpmn' && actualObject.shape.sequence === 'Default' && actualObject.shape.flow === 'Sequence') {\n this.commandHandler.updatePathElementOffset(actualObject);\n }\n // eslint-disable-next-line max-len\n if (!disableBridging) {\n this.updateBridging();\n }\n this.updateAnnotations(newProp, actualObject);\n this.updateConnectorPorts(newProp, actualObject);\n this.updatefixedUserHandle(newProp, actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (existingBounds.equals(existingBounds, actualObject.wrapper.bounds) === false) {\n this.updateQuad(actualObject);\n if (this.eventHandler.currentAction !== 'Drag') {\n this.updateGroupSize(actualObject);\n }\n }\n if (updateSelector === true && this.checkSelectedItem(actualObject) && (!(this.diagramActions & DiagramAction.ToolAction)\n || (this.diagramActions & DiagramAction.UndoRedo))) {\n this.updateSelector();\n }\n if (!this.preventConnectorsUpdate) {\n if (!canVitualize(this) || (canVitualize(this) && this.scroller.oldCollectionObjects.indexOf(actualObject.id) > -1)) {\n if (this.diagramActions & DiagramAction.PreventZIndexOnDragging) {\n this.updateDiagramObject(actualObject, true);\n }\n else {\n this.updateDiagramObject(actualObject);\n }\n }\n }\n this.updateConnectorEdges(actualObject);\n if (this.diagramActions && actualObject.status !== 'New') {\n actualObject.status = 'Update';\n }\n this.triggerPropertyChange(propertyChange, actualObject, oldProp, newProp);\n };\n /* tslint:enable */\n /**\n * getDirection methods \\\n *\n * @returns { void } getDirection methods .\\\n * @param {NodeModel} node - provide the node value.\n * @param {string} portId - provide the portId value.\n * @param {string} item - provide the item value.\n * @param {number} isInEdges - provide the isInEdges value.\n *\n * @private\n */\n Diagram.prototype.removePortEdges = function (node, portId, item, isInEdges) {\n if (node) {\n for (var i = 0; i < node.ports.length; i++) {\n var port = node.ports[parseInt(i.toString(), 10)];\n if (port.id === portId) {\n var portEdge = (isInEdges) ? port.inEdges : port.outEdges;\n removeItem(portEdge, item);\n }\n }\n }\n };\n //Removed blazor getpropertyChangeArgs method\n // Feature 826644: Support to add ports to the connector. Added below method to update connector ports\n // on connector property change.\n Diagram.prototype.updateConnectorPorts = function (newProp, actualObject) {\n if (newProp.ports !== undefined) {\n for (var _i = 0, _a = Object.keys(newProp.ports); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var changedObject = newProp.ports[\"\" + key];\n var actualPort = actualObject.ports[parseInt(index.toString(), 10)];\n this.updatePort(changedObject, actualPort, actualObject.wrapper, actualObject);\n }\n }\n };\n Diagram.prototype.triggerPropertyChange = function (propertyChange, actualObject, oldProp, newProp) {\n if (!propertyChange) {\n var element = actualObject;\n var args = {\n element: cloneBlazorObject(element), cause: this.diagramActions, diagramAction: this.getDiagramAction(this.diagramActions),\n oldValue: cloneBlazorObject(oldProp), newValue: cloneBlazorObject(newProp)\n };\n //Removed isBlazor code\n this.triggerEvent(DiagramEvent.propertyChange, args);\n }\n };\n Diagram.prototype.findInOutConnectPorts = function (node, isInconnect) {\n var port = {};\n if (node) {\n port = getInOutConnectPorts(node, isInconnect);\n }\n return port;\n };\n Diagram.prototype.getPoints = function (actualObject, points) {\n //let pts: PointModel[];\n //871158: Connector splitting point change with line distribution module injection\n var lineDistributionModule = (this.lineDistributionModule && this.layout.connectionPointOrigin === 'DifferentPoint') ? true : false;\n var pts = actualObject.getConnectorPoints(actualObject.type, points, this.layout.type === 'ComplexHierarchicalTree' || this.layout.type === 'HierarchicalTree' ?\n this.layout.orientation : undefined, lineDistributionModule);\n return pts;\n };\n /**\n * update the opacity and visibility for the node once the layout animation starts \\\n *\n * @returns { void } update the opacity and visibility for the node once the layout animation starts .\\\n * @param {Container} element - provide the element value.\n * @param {boolean} visible - provide the visible value.\n * @param {number} opacity - provide the opacity value.\n *\n * @private\n */\n Diagram.prototype.updateNodeProperty = function (element, visible, opacity) {\n if (visible === undefined) {\n this.updateElementVisibility(element, this.nameTable[element.id], visible);\n }\n else {\n element.style.opacity = opacity;\n for (var i = 0; i < element.children.length; i++) {\n if (element.children[parseInt(i.toString(), 10)] instanceof Container) {\n this.updateNodeProperty(element.children[parseInt(i.toString(), 10)], undefined, opacity);\n }\n element.children[parseInt(i.toString(), 10)].style.opacity = opacity;\n }\n }\n };\n /**\n * checkSelected Item for Connector \\\n *\n * @returns { void } checkSelected Item for Connector .\\\n * @param {Connector | Node} actualObject - provide the element value.\n *\n * @private\n */\n Diagram.prototype.checkSelectedItem = function (actualObject) {\n var selectorModel = this.selectedItems;\n var isSelected = false;\n var selItems = [];\n selItems = selItems.concat(selectorModel.nodes, selectorModel.connectors);\n if (selItems.length > 0) {\n if (actualObject.id === selItems[selItems.length - 1].id) {\n isSelected = true;\n }\n }\n return isSelected;\n };\n /**\n * Updates the visibility of the diagram container \\\n *\n * @returns { void } Updates the visibility of the diagram container .\\\n * @param {DiagramElement} element - provide the element value.\n * @param {boolean} visible - provide the target value.\n *\n * @private\n */\n Diagram.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n * Updates the visibility of the node/connector \\\n *\n * @returns { void } Updates the visibility of the node/connector .\\\n * @param {Container} element - provide the element value.\n * @param {Connector | Node} obj - provide the obj value.\n * @param {boolean} visible - provide the visible value.\n *\n * @private\n */\n Diagram.prototype.updateElementVisibility = function (element, obj, visible) {\n if (visible !== undefined) {\n element.visible = visible;\n if (obj instanceof Node) {\n //content\n if (!obj.children) {\n element.children[0].visible = visible;\n this.updateDiagramContainerVisibility(element.children[0], visible);\n if (obj.shape.type === 'Bpmn' && this.bpmnModule) {\n this.bpmnModule.updateElementVisibility(obj, visible, this);\n }\n }\n else {\n for (var _i = 0, _a = obj.children; _i < _a.length; _i++) {\n var child = _a[_i];\n this.updateElementVisibility(this.nameTable[\"\" + child].wrapper, this.nameTable[\"\" + child], visible);\n }\n }\n //ports\n if (obj.ports) {\n for (var _b = 0, _c = obj.ports; _b < _c.length; _b++) {\n var port = _c[_b];\n if (port.visibility & PortVisibility.Visible) {\n var wrapper = this.getWrapper(element, port.id);\n wrapper.visible = visible;\n }\n }\n }\n if (obj.annotations) {\n for (var _d = 0, _e = obj.annotations; _d < _e.length; _d++) {\n var annotation = _e[_d];\n var wrapper = this.getWrapper(element, annotation.id);\n if (visible) {\n wrapper.visible = wrapper.annotationVisibility === 'Visible' ? true : false;\n }\n else {\n wrapper.visible = visible;\n }\n }\n }\n }\n else {\n //path and decorators\n for (var i = 0; i < 3; i++) {\n element.children[parseInt(i.toString(), 10)].visible = visible;\n }\n }\n if (obj.annotations) {\n //annotations\n for (var _f = 0, _g = obj.annotations; _f < _g.length; _f++) {\n var annotation = _g[_f];\n var wrapper = this.getWrapper(element, annotation.id);\n //Bug 855273: Annotation visible property is not working while changing node visibility at runtime.\n if (visible) {\n wrapper.visible = wrapper.annotationVisibility === 'Visible' ? true : false;\n }\n else {\n wrapper.visible = visible;\n }\n }\n }\n if (obj.expandIcon || obj.collapseIcon) {\n var wrapper = this.getWrapper(element, 'icon_content');\n if (wrapper) {\n for (var i = 0; i < wrapper.children.length; i++) {\n wrapper.children[parseInt(i.toString(), 10)].visible = visible;\n }\n wrapper.visible = visible;\n }\n if (obj && obj.visible && obj.outEdges) {\n this.updateIconVisibility(obj, (obj.outEdges.length === 0 ? false : true));\n }\n }\n if (visible === false) {\n this.unSelect(this.nameTable[element.id]);\n }\n if ((obj instanceof Node && !this.preventNodesUpdate) || (obj instanceof Connector && !this.preventConnectorsUpdate)) {\n //Avoid calling updateDiagramObject method during rendering\n if (this.diagramActions) {\n this.updateDiagramObject(this.nameTable[element.id], undefined, true);\n }\n }\n }\n };\n Diagram.prototype.updateAnnotations = function (newProp, actualObject) {\n if (newProp.annotations !== undefined) {\n for (var _i = 0, _a = Object.keys(newProp.annotations); _i < _a.length; _i++) {\n var key = _a[_i];\n var index = Number(key);\n var changedObject = newProp.annotations[\"\" + key];\n var actualAnnotation = actualObject.annotations[parseInt(index.toString(), 10)];\n this.updateAnnotation(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandle = function (newProp, actualObject) {\n if (newProp.fixedUserHandles !== undefined) {\n var index = void 0;\n var changedObject = void 0;\n var actualAnnotation = void 0;\n for (var _i = 0, _a = Object.keys(newProp.fixedUserHandles); _i < _a.length; _i++) {\n var key = _a[_i];\n index = Number(key);\n changedObject = newProp.fixedUserHandles[\"\" + key];\n actualAnnotation = actualObject.fixedUserHandles[parseInt(index.toString(), 10)];\n this.updateConnectorfixedUserHandle(changedObject, actualAnnotation, actualObject.wrapper, actualObject);\n }\n }\n };\n /**\n * updateConnectorfixedUserHandle method \\\n *\n * @returns { void } updateConnectorfixedUserHandle method .\\\n * @param {ConnectorFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {ConnectorFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateConnectorfixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof ConnectorFixedUserHandle &&\n (changedObject.offset !== undefined)) {\n actualObject.updateAnnotation(actualfixedUserHandle, actualObject.intermediatePoints, actualObject.wrapper.bounds, fixedUserHandleWrapper);\n }\n if ((actualfixedUserHandle instanceof ConnectorFixedUserHandle) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n }\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleContent(changedObject, isMeasure, fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n /**\n * updateAnnotation method \\\n *\n * @returns { void } updateAnnotation method .\\\n * @param {AnnotationModel} changedObject - provide the changedObject value.\n * @param {ShapeAnnotationModel} actualAnnotation - provide the actualAnnotation value.\n * @param {Container} nodes - provide the nodes value.\n * @param {Object} actualObject - provide the actualObject value.\n * @param {boolean} canUpdateSize - provide the canUpdateSize value.\n *\n * @private\n */\n Diagram.prototype.updateAnnotation = function (changedObject, actualAnnotation, nodes, actualObject, canUpdateSize) {\n var isMeasure = false;\n // eslint-disable-next-line max-len\n var annotationWrapper = this.getWrapper(nodes, actualAnnotation.id);\n if (annotationWrapper !== undefined) {\n if (changedObject.width !== undefined && changedObject.height !== undefined) {\n annotationWrapper.width = changedObject.width;\n annotationWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (changedObject.rotateAngle !== undefined) {\n annotationWrapper.rotateAngle = changedObject.rotateAngle;\n }\n if (canUpdateSize && !(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n if (actualAnnotation instanceof PathAnnotation && changedObject.segmentAngle !== undefined) {\n annotationWrapper.rotateAngle = actualAnnotation.rotateAngle;\n }\n if ((changedObject).rotationReference !== undefined) {\n annotationWrapper.rotationReference = changedObject.rotationReference;\n }\n if (actualAnnotation instanceof ShapeAnnotation &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualAnnotation.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualAnnotation.offset.y;\n annotationWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n annotationWrapper.relativeMode = 'Point';\n }\n else if (actualAnnotation instanceof PathAnnotation &&\n (changedObject.offset !== undefined ||\n changedObject.segmentAngle !== undefined)) {\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n if ((actualAnnotation instanceof PathAnnotation) && changedObject.displacement) {\n if (changedObject.displacement.x !== undefined ||\n changedObject.displacement.y !== undefined) {\n isMeasure = true;\n actualObject.updateAnnotation(actualAnnotation, actualObject.intermediatePoints, actualObject.wrapper.bounds, annotationWrapper);\n }\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n annotationWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n annotationWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n annotationWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n annotationWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (isMeasure || canUpdateSize) {\n annotationWrapper.width = (actualAnnotation.width || actualObject.width);\n if (actualAnnotation.template) {\n annotationWrapper.width = (annotationWrapper.width || annotationWrapper.actualSize.width);\n annotationWrapper.height = (actualAnnotation.height || actualObject.height ||\n annotationWrapper.actualSize.height);\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n annotationWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n isMeasure = true;\n }\n if (changedObject.verticalAlignment !== undefined) {\n annotationWrapper.verticalAlignment = changedObject.verticalAlignment;\n isMeasure = true;\n }\n if (changedObject.visibility !== undefined) {\n annotationWrapper.visible = (nodes.visible && changedObject.visibility) ? true : false;\n annotationWrapper.annotationVisibility = annotationWrapper.visible ? 'Visible' : 'Collapsed';\n }\n if (changedObject.constraints !== undefined) {\n var updateSelector = false;\n if ((annotationWrapper.constraints & AnnotationConstraints.Select) &&\n (!(changedObject.constraints & AnnotationConstraints.Select)) &&\n isSelected(this, actualObject, false, annotationWrapper)) {\n //updateSelector = true;\n }\n annotationWrapper.constraints = changedObject.constraints;\n if (updateSelector) {\n this.clearSelection();\n }\n }\n if (changedObject.style !== undefined) {\n updateStyle(changedObject.style, annotationWrapper);\n }\n if (changedObject.hyperlink !== undefined) {\n updateHyperlink(changedObject.hyperlink, annotationWrapper, actualAnnotation);\n }\n this.updateAnnotationContent(changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes);\n if (isMeasure === true) {\n annotationWrapper.measure(new Size(annotationWrapper.width, annotationWrapper.height));\n annotationWrapper.arrange(annotationWrapper.desiredSize);\n }\n if (!(annotationWrapper instanceof DiagramHtmlElement)) {\n annotationWrapper.refreshTextElement();\n }\n // this.refresh(); this.refreshDiagramLayer();\n }\n };\n Diagram.prototype.updatefixedUserHandleContent = function (changedObject, isMeasure, fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes) {\n if (changedObject !== undefined) {\n this.updateConnectorfixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, fixedUserHandleAnnotation, nodes);\n }\n };\n Diagram.prototype.updateConnectorfixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n fixedUserHandleWrapper =\n actualObject.getFixedUserHandle(actualObject.fixedUserHandles[actualObject.fixedUserHandles.length - 1], actualObject.intermediatePoints, bounds, undefined, undefined);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n Diagram.prototype.updateAnnotationContent = function (changedObject, isMeasure, annotationWrapper, actualObject, actualAnnotation, nodes) {\n if (changedObject.content !== undefined) {\n if (annotationWrapper) {\n isMeasure = true;\n if (actualObject.shape.type === 'UmlActivity' &&\n ((!isBlazor() && actualObject.shape.shape === 'StructuredNode'))) {\n annotationWrapper.content = '<<' + changedObject.content + '>>';\n }\n else {\n annotationWrapper.content = changedObject.content;\n }\n }\n if (annotationWrapper instanceof DiagramHtmlElement) {\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n }\n if (changedObject.template !== undefined) {\n annotationWrapper.content = changedObject.template;\n this.updateAnnotationWrapper(annotationWrapper, actualObject, actualAnnotation, nodes);\n }\n };\n Diagram.prototype.updateAnnotationWrapper = function (annotationWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(annotationWrapper.id + '_groupElement', elementId);\n removeElement(annotationWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n annotationWrapper =\n actualObject.initAnnotationWrapper(actualAnnotation, this.element.id);\n }\n else if (actualObject instanceof Connector) {\n var canvas = actualObject.wrapper;\n var segment = canvas.children[0];\n var bounds = new Rect(segment.offsetX - segment.width / 2, segment.offsetY - segment.height / 2, segment.width, segment.height);\n annotationWrapper =\n actualObject.getAnnotationElement(actualObject.annotations[actualObject.annotations.length - 1], actualObject.intermediatePoints, bounds, this.getDescription, this.element.id);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (annotationWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, annotationWrapper);\n }\n }\n };\n /**\n * updateNodefixedUserHandle method \\\n *\n * @returns { void } updateNodefixedUserHandle method .\\\n * @param {NodeFixedUserHandleModel} changedObject - provide the changedObject value.\n * @param {NodeFixedUserHandleModel} actualfixedUserHandle - provide the actualfixedUserHandle value.\n * @param {Container} nodes - provide the changedObject value.\n * @param {Object} actualObject - provide the changedObject value.\n *\n * @private\n */\n Diagram.prototype.updateNodefixedUserHandle = function (changedObject, actualfixedUserHandle, nodes, actualObject) {\n //let fixedUserHandleWrapper: Canvas;\n var isMeasure = false;\n var fixedUserHandleWrapper = this.getWrapper(nodes, actualfixedUserHandle.id);\n if (fixedUserHandleWrapper !== undefined) {\n if (changedObject.width !== undefined) {\n fixedUserHandleWrapper.actualSize.width = changedObject.width;\n isMeasure = true;\n }\n if (changedObject.height !== undefined) {\n fixedUserHandleWrapper.height = changedObject.height;\n isMeasure = true;\n }\n if (actualfixedUserHandle instanceof NodeFixedUserHandle &&\n changedObject.offset !== undefined) {\n var offset = changedObject.offset;\n isMeasure = true;\n var offsetX = offset.x !== undefined ? offset.x :\n actualfixedUserHandle.offset.x;\n var offsetY = offset.y !== undefined ? offset.y :\n actualfixedUserHandle.offset.y;\n fixedUserHandleWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n fixedUserHandleWrapper.relativeMode = 'Point';\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n fixedUserHandleWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n fixedUserHandleWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.left !== undefined) {\n fixedUserHandleWrapper.margin.left = changedObject.margin.left;\n }\n if (changedObject.margin.right !== undefined) {\n fixedUserHandleWrapper.margin.right = changedObject.margin.right;\n }\n }\n if (changedObject.visibility !== undefined) {\n fixedUserHandleWrapper.visible = changedObject.visibility;\n }\n if (changedObject.fill !== undefined) {\n fixedUserHandleWrapper.style.fill = changedObject.fill;\n }\n if (changedObject.handleStrokeColor !== undefined) {\n fixedUserHandleWrapper.style.strokeColor = changedObject.handleStrokeColor;\n }\n if (changedObject.handleStrokeWidth !== undefined) {\n fixedUserHandleWrapper.style.strokeWidth = changedObject.handleStrokeWidth;\n }\n if (changedObject.cornerRadius !== undefined) {\n fixedUserHandleWrapper.cornerRadius = changedObject.cornerRadius;\n }\n this.updatefixedUserHandleWrapper(fixedUserHandleWrapper, actualObject, actualfixedUserHandle, nodes);\n if (isMeasure === true) {\n fixedUserHandleWrapper.measure(new Size(fixedUserHandleWrapper.width, fixedUserHandleWrapper.height));\n fixedUserHandleWrapper.arrange(fixedUserHandleWrapper.desiredSize);\n }\n }\n };\n Diagram.prototype.updatefixedUserHandleWrapper = function (fixedUserHandleWrapper, actualObject, actualAnnotation, nodes) {\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(fixedUserHandleWrapper.id + '_groupElement', elementId);\n removeElement(fixedUserHandleWrapper.id + '_html_element', elementId);\n }\n if (actualObject instanceof Node) {\n fixedUserHandleWrapper = actualObject.initFixedUserHandles(actualAnnotation, undefined, undefined);\n }\n for (var i = 0; i < nodes.children.length; i++) {\n if (fixedUserHandleWrapper.id === nodes.children[parseInt(i.toString(), 10)].id) {\n nodes.children.splice(i, 1, fixedUserHandleWrapper);\n }\n }\n };\n /**\n * updatePort method \\\n *\n * @returns { void } updatePort method .\\\n * @param {PointPortModel} changedObject - provide the changedObject value.\n * @param {PointPortModel} actualPort - provide the changedObject value.\n * @param {Container} nodes - provide the changedObject value.\n * @param {Connector} actualObject - The actual connector object to be used.\n * @private\n */\n Diagram.prototype.updatePort = function (changedObject, actualPort, nodes, actualObject) {\n var isMeasure = false;\n var portWrapper = this.getWrapper(nodes, actualPort.id);\n if (portWrapper !== undefined) {\n if (changedObject.offset !== undefined) {\n isMeasure = true;\n if (!actualObject) {\n var offsetX = changedObject.offset.x !== undefined ? changedObject.offset.x :\n actualPort.offset.x;\n var offsetY = changedObject.offset.y !== undefined ? changedObject.offset.y :\n actualPort.offset.y;\n portWrapper.setOffsetWithRespectToBounds(offsetX, offsetY, 'Fraction');\n portWrapper.relativeMode = 'Point';\n }\n else {\n if (changedObject.offset !== undefined) {\n actualObject.updateAnnotation(actualPort, actualObject.intermediatePoints, actualObject.wrapper.bounds, portWrapper);\n }\n }\n }\n if (changedObject.width !== undefined) {\n isMeasure = true;\n portWrapper.width = changedObject.width;\n }\n if (changedObject.height !== undefined) {\n isMeasure = true;\n portWrapper.height = changedObject.height;\n }\n if (changedObject.connectionDirection !== undefined) {\n portWrapper.connectionDirection = changedObject.connectionDirection;\n }\n if (changedObject.visibility !== undefined) {\n portWrapper.visible = (nodes.visible && checkPortRestriction(actualPort, PortVisibility.Visible)) ? true : false;\n }\n if (changedObject.margin !== undefined) {\n isMeasure = true;\n if (changedObject.margin.bottom !== undefined) {\n portWrapper.margin.bottom = changedObject.margin.bottom;\n }\n if (changedObject.margin.top !== undefined) {\n portWrapper.margin.top = changedObject.margin.top;\n }\n if (changedObject.margin.right !== undefined) {\n portWrapper.margin.right = changedObject.margin.right;\n }\n if (changedObject.margin.left !== undefined) {\n portWrapper.margin.left = changedObject.margin.left;\n }\n }\n if (changedObject.horizontalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.horizontalAlignment = changedObject.horizontalAlignment;\n }\n if (changedObject.verticalAlignment !== undefined) {\n isMeasure = true;\n portWrapper.verticalAlignment = changedObject.verticalAlignment;\n }\n if (changedObject.style !== undefined) {\n if (changedObject.style.fill !== undefined) {\n portWrapper.style.fill = changedObject.style.fill;\n }\n if (changedObject.style.opacity !== undefined) {\n portWrapper.style.opacity = changedObject.style.opacity;\n }\n if (changedObject.style.strokeColor !== undefined) {\n portWrapper.style.strokeColor = changedObject.style.strokeColor;\n }\n if (changedObject.style.strokeWidth !== undefined) {\n portWrapper.style.strokeWidth = changedObject.style.strokeWidth;\n }\n if (changedObject.style.strokeDashArray !== undefined) {\n portWrapper.style.strokeDashArray = changedObject.style.strokeDashArray;\n }\n }\n if (changedObject.shape !== undefined) {\n if (portWrapper) {\n var pathdata = getPortShape(changedObject.shape);\n portWrapper.data = pathdata;\n portWrapper.canMeasurePath = true;\n }\n }\n if (changedObject.pathData !== undefined) {\n portWrapper.data = String(changedObject.pathData);\n isMeasure = true;\n }\n if (isMeasure === true) {\n portWrapper.measure(new Size(portWrapper.width, portWrapper.height));\n portWrapper.arrange(portWrapper.desiredSize);\n }\n //this.refresh(); this.refreshDiagramLayer();\n }\n };\n /**\n * updateIcon method \\\n *\n * @returns { void } updateIcon method .\\\n * @param {Node} actualObject - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateIcon = function (actualObject) {\n var iconContainer = this.getWrapper(actualObject.wrapper, 'icon_content');\n var diagramId = (this.diagramActions & DiagramAction.Render) ? this.element.id : undefined;\n if (iconContainer) {\n if (this.mode === 'SVG') {\n var icon = getDiagramElement(actualObject.wrapper.id + '_icon_content', diagramId);\n if (icon) {\n var iconRect = getDiagramElement(icon.id + '_rect', diagramId);\n var iconShape = getDiagramElement(icon.id + '_shape', diagramId);\n var nativeContent = getDiagramElement(iconShape.id + '_native_element', diagramId);\n if (nativeContent) {\n nativeContent.parentNode.removeChild(nativeContent);\n }\n iconShape.parentNode.removeChild(iconShape);\n iconRect.parentNode.removeChild(iconRect);\n icon.parentNode.removeChild(icon);\n }\n }\n var index = actualObject.wrapper.children.indexOf(iconContainer);\n actualObject.wrapper.children.splice(index, 1);\n }\n var portContainer = this.getPortContainer(actualObject);\n actualObject.initIcons(this.getDescription, this.layout, portContainer, this.element.id);\n };\n Diagram.prototype.getPortContainer = function (actualObject) {\n if (actualObject.children) {\n for (var i = 0; i < actualObject.wrapper.children.length; i++) {\n if (actualObject.wrapper.children[parseInt(i.toString(), 10)].id === actualObject.id + 'group_container') {\n return actualObject.wrapper.children[parseInt(i.toString(), 10)];\n }\n }\n }\n return actualObject.wrapper;\n };\n Diagram.prototype.updateTooltip = function (actualObject, node) {\n if (node.tooltip.content !== undefined) {\n actualObject.tooltip.content = node.tooltip.content;\n }\n if (node.tooltip.position !== undefined) {\n actualObject.tooltip.position = node.tooltip.position;\n }\n if (node.tooltip.height !== undefined) {\n actualObject.tooltip.height = node.tooltip.height;\n }\n if (node.tooltip.width !== undefined) {\n actualObject.tooltip.width = node.tooltip.width;\n }\n if (node.tooltip.showTipPointer !== undefined) {\n actualObject.tooltip.showTipPointer = node.tooltip.showTipPointer;\n }\n if (node.tooltip.relativeMode !== undefined) {\n actualObject.tooltip.relativeMode = node.tooltip.relativeMode;\n }\n };\n /**\n * updateQuad method \\\n *\n * @returns { void } updateQuad method .\\\n * @param {IElement} obj - provide the obj value.\n *\n * @private\n */\n Diagram.prototype.updateQuad = function (obj) {\n var modified = this.spatialSearch.updateQuad(obj.wrapper);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * removeFromAQuad method \\\n *\n * @returns { void } removeFromAQuad method .\\\n * @param {IElement} obj - provide the node value.\n *\n * @private\n */\n Diagram.prototype.removeFromAQuad = function (obj) {\n if (obj.children) {\n var child = void 0;\n var children = obj.children;\n for (var i = 0; i < children.length; i++) {\n child = this.nameTable[children[parseInt(i.toString(), 10)]];\n if (child) {\n this.removeFromAQuad(child);\n }\n }\n }\n this.spatialSearch.removeFromAQuad(obj.wrapper);\n var isSwimLane = obj.shape.type === 'SwimLane' ? true : false;\n var modified = this.spatialSearch.updateBounds(obj.wrapper, isSwimLane);\n if (modified && !this.preventDiagramUpdate) {\n this.updatePage();\n }\n };\n /**\n * updateGroupSize method \\\n *\n * @returns { void } updateGroupSize method .\\\n * @param {NodeModel | ConnectorModel} node - provide the node value.\n *\n * @private\n */\n Diagram.prototype.updateGroupSize = function (node) {\n var tempNode;\n if (node.parentId) {\n tempNode = this.nameTable[node.parentId];\n if (tempNode) {\n if (tempNode.parentId) {\n this.updateGroupSize(tempNode);\n }\n else {\n tempNode.wrapper.measure(new Size());\n tempNode.wrapper.arrange(tempNode.wrapper.desiredSize);\n this.updateGroupOffset(tempNode);\n this.updateDiagramObject(tempNode);\n }\n }\n }\n };\n Diagram.prototype.updatePage = function () {\n if ((this.diagramActions & DiagramAction.Render) &&\n !(this.diagramActions & DiagramAction.DragUsingMouse)) {\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n //updating overview\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\n var temp = _a[_i];\n var view = this.views[\"\" + temp];\n if (!(view instanceof Diagram)) {\n view.updateView(view);\n }\n }\n }\n if (this.diagramActions & DiagramAction.DragUsingMouse) {\n this.renderPageBreaks();\n // EJ2-826378 - Scroller not updated properly when dragging a node outside the viewport.\n // We need to update the scroller while dragging.\n // If pageSize is defined, we don't need to update the scrollbar.\n // If pageSize is not defined, we need to update the scrollbar because the content is treated as page bounds, and if the content goes beyond the viewport, the scrollbar should be updated.\n if (!(this.pageSettings.width && this.pageSettings.height) || this.pageSettings.multiplePage) {\n this.scroller.updateScrollOffsets();\n this.scroller.setSize();\n }\n }\n };\n /**\n * protectPropertyChange method \\\n *\n * @returns { void } protectPropertyChange method .\\\n * @param {boolean} enable - provide the enable value.\n *\n * @private\n */\n Diagram.prototype.protectPropertyChange = function (enable) {\n this.isProtectedOnChange = enable;\n };\n /**\n * getProtectPropertyChangeValue method \\\n *\n * @returns { boolean } getProtectPropertyChangeValue method .\\\n *\n * @private\n */\n Diagram.prototype.getProtectPropertyChangeValue = function () {\n return this.isProtectedOnChange;\n };\n /**\n * enableServerDataBinding method \\\n *\n * @returns { void } enableServerDataBinding method .\\\n * @param {boolean} enable - provide the node value.\n *\n * @private\n */\n Diagram.prototype.enableServerDataBinding = function (enable) {\n //Removed isBlazor code\n };\n /**\n * updateShadow method \\\n *\n * @returns { void } updateShadow method .\\\n * @param {ShadowModel} nodeShadow - provide the node value.\n * @param {ShadowModel} changedShadow - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateShadow = function (nodeShadow, changedShadow) {\n if (changedShadow.angle !== undefined) {\n nodeShadow.angle = changedShadow.angle;\n }\n if (changedShadow.color !== undefined) {\n nodeShadow.color = changedShadow.color;\n }\n if (changedShadow.distance !== undefined) {\n nodeShadow.distance = changedShadow.distance;\n }\n if (changedShadow.opacity !== undefined) {\n nodeShadow.opacity = changedShadow.opacity;\n }\n };\n /**\n * updateMargin method \\\n *\n * @returns { void } updateMargin method .\\\n * @param {Node} node - provide the node value.\n * @param {Node} changes - provide the Node value.\n *\n * @private\n */\n Diagram.prototype.updateMargin = function (node, changes) {\n if (changes.margin.top !== undefined) {\n node.margin.top = changes.margin.top;\n }\n if (changes.margin.bottom !== undefined) {\n node.margin.bottom = changes.margin.bottom;\n }\n if (changes.margin.left !== undefined) {\n node.margin.left = changes.margin.left;\n }\n if (changes.margin.right !== undefined) {\n node.margin.right = changes.margin.right;\n }\n };\n Diagram.prototype.removePreviewChildren = function (preview) {\n if (preview.children && preview.children.length &&\n preview.shape && preview.shape.type === 'SwimLane') {\n for (var z = 0; z < preview.children.length; z++) {\n var previewChildId = preview.children[parseInt(z.toString(), 10)];\n var previewIndex_1 = this.nodes.indexOf(this.nameTable[\"\" + previewChildId]);\n if (previewIndex_1 >= 0) {\n this.nodes.splice(previewIndex_1, 1);\n }\n delete this.nameTable[\"\" + previewChildId];\n }\n var previewIndex = this.nodes.indexOf(this.nameTable[this.currentSymbol.id]);\n if (previewIndex >= 0) {\n this.nodes.splice(previewIndex, 1);\n }\n }\n };\n Diagram.prototype.selectDragedNode = function (newObj, args, selectedSymbol) {\n this.currentSymbol = newObj;\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n this.commandHandler.oldSelectedObjects = cloneSelectedObjects(this);\n this.commandHandler.select(newObj);\n // this.commandHandler.updateBlazorSelector();\n this.eventHandler.mouseDown(args.event);\n this.eventHandler.mouseMove(args.event, args);\n this.preventDiagramUpdate = false;\n this.updatePage();\n selectedSymbol.style.opacity = '0';\n };\n //property changes - end region\n /* tslint:disable */\n Diagram.prototype.initDroppables = function () {\n var _this = this;\n // initiates droppable event\n var childTable = {};\n var entryTable = {};\n var header;\n var lane;\n var selectedSymbols = 'selectedSymbols';\n this.droppable = new Droppable(this.element);\n var dragLeft = 5;\n // this.droppable.accept = '.e-dragclone';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.over = function (args) {\n //Bug 855292: Swimlane dragging from palette jumps out of viewport when multiple page is set as true.\n // Added below code to prevent the negative x value of swimlane bounds when multiple page and ruler is enabled to prevent swimlane jump.\n if (_this.rulerSettings.showRulers) {\n var vRuler = document.getElementById(_this.element.id + '_vRuler');\n var vRulerWidth = parseFloat(vRuler.style.width);\n dragLeft = vRulerWidth + 1;\n }\n //EJ2-59341- SelectionChange OldValue argument is null\n if (_this.previousSelectedObjects.length === 0 && !_this.currentSymbol) {\n _this.previousSelectedObjects = _this.commandHandler.getSelectedObject();\n }\n _this.commandHandler.PreventConnectorSplit = true;\n if (!_this.currentSymbol) {\n var dragDataHelper = null;\n if (!args.dragData && args.name === 'drag') {\n var helper = document.getElementsByClassName('e-dragclone')[0];\n if (helper) {\n dragDataHelper = helper;\n }\n }\n if (args.dragData || dragDataHelper) {\n var newObj = void 0;\n var isHorizontal = void 0;\n document.getElementById(_this.element.id + 'content').focus();\n var position = _this.eventHandler.getMousePosition(args.event);\n var clonedObject = void 0;\n var selectedSymbol = dragDataHelper || args.dragData.helper;\n var paletteId = selectedSymbol.getAttribute('paletteId');\n var nodeDragSize = void 0;\n var nodePreviewSize = void 0;\n var paletteDragSize = void 0;\n var preview = void 0;\n if (!paletteId && args.dragData) {\n var arg = {\n source: null, element: newObj, cancel: false,\n diagram: _this,\n dragData: args.dragData.draggedElement.ej2_instances[0].dragData,\n dragItem: newObj\n };\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n var newNode = void 0;\n var newConnector = void 0;\n // EJ2-61664 - Check whether dragItem is returned from dragEnter event or not.\n // If it does not returned means then we do not change the treeview object as node\n if (arg.dragItem) {\n if (arg.dragItem.sourcePoint && arg.dragItem.targetPoint) {\n newConnector = new Connector(_this, 'connectors', arg.dragItem, true);\n }\n else {\n newNode = new Node(_this, 'nodes', arg.dragItem, true);\n }\n newObj = newNode ? newNode : newConnector;\n _this.initObject(newObj, undefined, undefined, true);\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n if (newObj instanceof Node) {\n newNode.offsetX = position.x + 5 + (newNode.width) * newNode.pivot.x;\n newNode.offsetY = position.y + (newNode.height) * newNode.pivot.y;\n }\n else if (newObj instanceof Connector) {\n var newObjBounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var diffx = position.x - newObjBounds.left;\n var diffy = position.y - newObjBounds.top;\n newObj.sourcePoint.x += diffx;\n newObj.sourcePoint.y += diffy;\n newObj.targetPoint.x += diffx;\n newObj.targetPoint.y += diffy;\n }\n _this.preventDiagramUpdate = true;\n _this.currentSymbol = newObj;\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n _this.selectDragedNode(newObj, args, selectedSymbol);\n delete _this['enterObject'];\n delete _this['enterTable'];\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n if (paletteId) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sourceElement = document.getElementById(paletteId).ej2_instances[0];\n var source = 'sourceElement';\n _this.droppable[\"\" + source] = sourceElement;\n var childtable = 'childTable';\n if (sourceElement) {\n var obj = sourceElement[\"\" + selectedSymbols];\n _this.allowServerDataBinding = false;\n clonedObject = cloneObject(sourceElement[\"\" + selectedSymbols]);\n childTable = sourceElement[\"\" + childtable];\n var wrapper = obj.wrapper.children[0].children[0];\n preview = getPreviewSize(sourceElement, clonedObject, wrapper);\n if (sourceElement[\"\" + selectedSymbols] instanceof Node) {\n if (obj.shape.shape === 'TextAnnotation') {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 11 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + 11 + (preview.height) * clonedObject.pivot.y;\n }\n else {\n // eslint-disable-next-line max-len\n clonedObject.offsetX = position.x + 5 + (preview.width) * clonedObject.pivot.x;\n // eslint-disable-next-line max-len\n clonedObject.offsetY = position.y + (preview.height) * clonedObject.pivot.y;\n }\n var newNode = new Node(_this, 'nodes', clonedObject, true);\n if (newNode.shape.type === 'Bpmn' && newNode.shape.activity.subProcess.processes\n && newNode.shape.activity.subProcess.processes.length) {\n newNode.shape.activity.subProcess.processes = [];\n }\n nodeDragSize = newNode.dragSize;\n nodePreviewSize = newNode.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n var palettePreview = sourceElement['symbolPreview'];\n // eslint-disable-next-line max-len\n newNode.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || palettePreview.width || newNode.width;\n // eslint-disable-next-line max-len\n newNode.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || palettePreview.height || newNode.height;\n if (newNode.shape.type === 'SwimLane') {\n _this.diagramActions |= DiagramAction.PreventHistory;\n if (newNode.shape.isLane) {\n newNode.children = [];\n header = {\n id: 'header' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n header.width = newNode.shape.lanes[0].header.width;\n header.height = newNode.shape.lanes[0].height;\n }\n else {\n header.width = newNode.shape.lanes[0].width;\n header.height = newNode.shape.lanes[0].header.height;\n }\n header.style = newNode.shape.lanes[0].header.style;\n header.offsetX = position.x + dragLeft + header.width / 2;\n header.offsetY = position.y + header.height / 2;\n _this.diagramActions |= DiagramAction.PreventCollectionChangeOnDragOver;\n header = _this.add(header);\n lane = {\n id: 'body' + randomId()\n };\n if (newNode.shape.orientation === 'Horizontal') {\n lane.width = newNode.shape.lanes[0].width - header.width;\n lane.height = newNode.shape.lanes[0].height;\n // eslint-disable-next-line max-len\n lane.offsetX = position.x + dragLeft + (newNode.shape.lanes[0].header.width + (lane.width / 2));\n lane.offsetY = position.y + lane.height / 2;\n }\n else {\n lane.width = newNode.shape.lanes[0].width;\n lane.height = newNode.shape.lanes[0].height - header.height;\n lane.offsetX = position.x + dragLeft + lane.width / 2;\n // eslint-disable-next-line max-len\n lane.offsetY = position.y + (newNode.shape.lanes[0].header.height + (lane.height / 2));\n }\n lane.style = newNode.shape.lanes[0].style;\n lane = _this.add(lane);\n var group = {\n id: 'group' + randomId(),\n children: [header.id, lane.id]\n };\n group.shape = newNode.shape;\n group.width = newNode.shape.lanes[0].width;\n group.height = newNode.shape.lanes[0].height;\n group.previewSize = newNode.previewSize;\n group.dragSize = newNode.dragSize;\n group.addInfo = newNode.addInfo;\n newNode = _this.add(group);\n _this.diagramActions &= ~DiagramAction.PreventCollectionChangeOnDragOver;\n }\n _this.diagramActions &= ~DiagramAction.PreventHistory;\n }\n if (newNode.shape.isPhase) {\n isHorizontal = (newNode.shape.orientation === 'Horizontal') ? true : false;\n if (isHorizontal) {\n newNode.offsetX = position.x + dragLeft + (newNode.width || wrapper.actualSize.width) / 2;\n newNode.offsetY = position.y;\n newNode.shape.data =\n 'M' + 20 + ',' + (newNode.height / 2) + ' L' + (newNode.width - 20) + ',' +\n (newNode.height / 2) + 'z';\n newNode.height = 1;\n }\n else {\n newNode.offsetX = position.x + 5;\n newNode.offsetY = position.y + (newNode.height || wrapper.actualSize.height) / 2;\n newNode.shape.data =\n 'M' + (newNode.width / 2) + ',' + 20 + ' L' + (newNode.width / 2) +\n ',' + (newNode.height - 20) + 'z';\n newNode.width = 1;\n }\n }\n if (newNode.shape.type === 'UmlClassifier') {\n //When dragging a node from the palette to the diagram, set the children, width, and height values to undefined to avoid incorrect values.\n newNode.children = newNode.width = newNode.height = undefined;\n clonedObject.children = undefined;\n //An empty child type is added during drag enter for every node if no child types are specified in the palette.\n if (newNode.shape.classifier === 'Class') {\n if (newNode.shape.classShape.methods.length <= 0\n && newNode.shape.classShape.attributes.length <= 0) {\n newNode.shape.classShape.attributes = [\n { name: 'Name', type: 'Type', style: {} }\n ];\n }\n }\n if (newNode.shape.classifier === 'Enumeration') {\n if (newNode.shape.enumerationShape.members.length <= 0) {\n newNode.shape.enumerationShape.members = [\n {\n name: 'Name'\n }\n ];\n }\n }\n if (newNode.shape.classifier === 'Interface') {\n if (newNode.shape.interfaceShape.methods.length <= 0\n && newNode.shape.interfaceShape.attributes.length <= 0) {\n newNode.shape.interfaceShape.attributes = [\n { name: 'Name', type: 'Type', style: {} }\n ];\n }\n }\n }\n newObj = newNode;\n if (clonedObject.children) {\n var parentNode = clonedObject;\n var tempTable = {};\n entryTable = _this.getChildren(parentNode, tempTable, childTable);\n arrangeChild(parentNode, -parentNode.offsetX, -parentNode.offsetY, entryTable, true, _this);\n }\n }\n else if (sourceElement[\"\" + selectedSymbols] instanceof Connector) {\n newObj = new Connector(_this, 'connectors', clonedObject, true);\n var bounds = Rect.toBounds([newObj.sourcePoint, newObj.targetPoint]);\n var tx = position.x - bounds.left;\n var ty = position.y - bounds.top;\n newObj.sourcePoint.x += tx;\n newObj.sourcePoint.y += ty;\n newObj.targetPoint.x += tx;\n newObj.targetPoint.y += ty;\n }\n if (!newObj.shape.isLane) {\n newObj.id += randomId();\n }\n var arg = {\n source: sourceElement, element: newObj, cancel: false,\n diagram: _this, dragData: null, dragItem: newObj\n };\n //Removed isBlazor code\n _this['enterObject'] = newObj;\n _this['enterTable'] = entryTable;\n _this.triggerEvent(DiagramEvent.dragEnter, arg);\n if ((newObj instanceof Node) && newObj.shape.type === 'SwimLane' && newObj.shape.isLane) {\n var swimLaneObj = arg.element;\n var laneObj = swimLaneObj.shape.lanes[0];\n //let child1: NodeModel; let child2: NodeModel;\n isHorizontal = (swimLaneObj.shape.orientation === 'Horizontal') ? true : false;\n var child1 = _this.nameTable[newObj.children[0]];\n var child2 = _this.nameTable[newObj.children[1]];\n nodeDragSize = newObj.dragSize;\n nodePreviewSize = newObj.previewSize;\n paletteDragSize = sourceElement['symbolDragSize'];\n laneObj.width = nodeDragSize.width || paletteDragSize.width || nodePreviewSize.width || laneObj.width;\n laneObj.height = nodeDragSize.height || paletteDragSize.height || nodePreviewSize.height || laneObj.height;\n if (isHorizontal) {\n header.width = laneObj.header.width;\n header.height = laneObj.height;\n lane.width = laneObj.width - header.width;\n lane.height = laneObj.height;\n lane.offsetX = position.x + dragLeft + (laneObj.header.width + (child2.width / 2));\n lane.offsetY = position.y + child2.height / 2;\n }\n else {\n header.width = laneObj.width;\n header.height = laneObj.header.height;\n lane.width = laneObj.width;\n lane.height = laneObj.height - header.height;\n lane.offsetX = position.x + dragLeft + child2.width / 2;\n lane.offsetY = position.y + (laneObj.header.height + (child2.height / 2));\n }\n header.offsetX = position.x + dragLeft + child1.width / 2;\n header.offsetY = position.y + child1.height / 2;\n newObj.width = laneObj.width;\n newObj.height = laneObj.height;\n }\n if ((newObj instanceof Node) && newObj.shape.isPhase) {\n if (isHorizontal) {\n newObj.height = 1;\n }\n else {\n newObj.width = 1;\n }\n }\n if (!_this.activeLayer.lock && !arg.cancel) {\n _this.preventDiagramUpdate = true;\n if (newObj.children) {\n _this.findChild(newObj, entryTable);\n }\n _this.preventDiagramUpdate = true;\n if (newObj.zIndex !== Number.MIN_VALUE) {\n newObj.zIndex = Number.MIN_VALUE;\n }\n _this.initObject(newObj, undefined, undefined, true);\n if (_this.bpmnModule) {\n for (var i = 0; i < _this.bpmnModule.bpmnTextAnnotationConnector.length; i++) {\n if (_this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)].wrapper === null) {\n _this.initConnectors(_this.bpmnModule.bpmnTextAnnotationConnector[parseInt(i.toString(), 10)], undefined, true);\n }\n }\n }\n _this.selectDragedNode(newObj, args, selectedSymbol);\n }\n delete _this['enterObject'];\n delete _this['enterTable'];\n }\n _this.droppable[\"\" + selectedSymbols] = selectedSymbol;\n _this.allowServerDataBinding = true;\n }\n }\n }\n else {\n if (args.event.touches && args.event.touches.length) {\n _this.eventHandler.mouseMove(args.event, args.event.touches);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.droppable.drop = function (args) { return __awaiter(_this, void 0, void 0, function () {\n var source, value, isPhase, orientation_2, isConnector, arg, id, clonedObject, nodeId, newObj, arg, clonedObject, id, selectedSymbols, draggableElement, i;\n return __generator(this, function (_a) {\n this.allowServerDataBinding = false;\n source = 'sourceElement';\n if (this.currentSymbol) {\n isPhase = false;\n isConnector = (this.currentSymbol instanceof Connector) ? true : false;\n if (args.event.touches) {\n this.eventHandler.mouseUp(args.event);\n }\n arg = {\n source: this.droppable[\"\" + source],\n element: this.currentSymbol,\n //EJ2-895314: Connector splits while dropping node on diagram, even after moving node away from connector highlighter\n target: this.eventHandler['hoverNode'] ||\n (this.findObjectsUnderMouse(this.eventHandler.getMousePosition(args.event))[0]) || this,\n cancel: false,\n position: { x: this.currentSymbol.wrapper.offsetX, y: this.currentSymbol.wrapper.offsetY }\n };\n // Removed isBlazor code\n this.commandHandler.PreventConnectorSplit = false;\n this.triggerEvent(DiagramEvent.drop, arg);\n id = 'id';\n clonedObject = cloneObject(this.currentSymbol);\n clonedObject['hasTarget'] = this.currentSymbol['hasTarget'];\n this.removeFromAQuad(this.currentSymbol);\n this.removeObjectsFromLayer(this.nameTable[this.currentSymbol.id]);\n this.removeElements(this.currentSymbol);\n //887625-UML class nodes cloned in diagram canvas while dragging nodes outside diagram page\n if ((this.currentSymbol.shape.isLane ||\n this.currentSymbol.shape.isPhase) || this.currentSymbol.shape.type === 'UmlClassifier') {\n this.removeChildInNodes(this.currentSymbol);\n }\n if (arg.cancel) {\n removeChildNodes(this.currentSymbol, this);\n }\n if (this.currentSymbol.shape.isPhase) {\n isPhase = true;\n orientation_2 = this.currentSymbol.shape.orientation;\n clonedObject.shape.phases = this.currentSymbol.shape.phases;\n }\n this.removePreviewChildren(this.currentSymbol);\n delete this.nameTable[this.currentSymbol.id];\n this.currentSymbol = null;\n this.protectPropertyChange(true);\n if (!arg.cancel) {\n this.startGroupAction();\n if (clonedObject && (clonedObject.shape.isLane || isPhase)) {\n if (isPhase) {\n clonedObject.shape.isPhase = isPhase;\n clonedObject.shape.orientation = orientation_2;\n }\n this.eventHandler.addSwimLaneObject(clonedObject);\n }\n //The following condition is designed to ensure that only UML nodes are added to the diagram during the drop operation\n if (clonedObject && clonedObject.shape.type === 'UmlClassifier' && !clonedObject.shape.relationship) {\n clonedObject.children = undefined;\n this.clearSelectorLayer();\n this.add(clonedObject);\n }\n if (clonedObject.shape.type === 'Bpmn' && clonedObject.shape.annotation\n && clonedObject['hasTarget']) {\n nodeId = clonedObject.shape.annotation.nodeId;\n clonedObject.shape.annotation.id = clonedObject.id;\n this.addTextAnnotation(clonedObject.shape.annotation, this.nameTable[\"\" + nodeId]);\n clonedObject.nodeId = '';\n }\n if (!clonedObject.shape.isLane && !isPhase && (clonedObject.type !== undefined || clonedObject.shape.type !== 'UmlClassifier')) {\n if (clonedObject.children) {\n this.addChildNodes(clonedObject);\n }\n //Bug 880814: Adding element to bpmn expanded subprocess located in swimlane throws an exception.\n // isTargetSubProcess is checked.\n if (arg.target && (arg.target instanceof Node) && !isConnector && checkParentAsContainer(this, arg.target)\n && canAllowDrop(arg.target) && !this.commandHandler.isTargetSubProcess(arg.target)) {\n addChildToContainer(this, arg.target, clonedObject);\n }\n else {\n // EJ2-62652 - Added below code to empty the segment collection if connector type is bezier\n if (clonedObject.type === 'Bezier' && clonedObject.segments.length > 0) {\n clonedObject.segments = [];\n }\n value = this.add(clonedObject, true);\n }\n //EJ2-864543 - Added symbols don't get correctly selected in MultipleSelect mode in Diagram\n if ((clonedObject || value) && (canSingleSelect(this) || canMultiSelect(this))) {\n this.select([this.nameTable[clonedObject[\"\" + id]]], false, this.previousSelectedObjects);\n }\n if (arg.target && arg.target instanceof Connector) {\n if (this.enableConnectorSplit === true) {\n if (this.nameTable[clonedObject[\"\" + id]] instanceof Node) {\n this.commandHandler.connectorSplit(this.nameTable[clonedObject[\"\" + id]], arg.target);\n this.commandHandler.PreventConnectorSplit = false;\n }\n }\n }\n }\n }\n else {\n this.clearSelectorLayer();\n }\n this.protectPropertyChange(false);\n newObj = this.nameTable[clonedObject[\"\" + id]];\n if (clonedObject['hasTarget']) {\n clonedObject.nodeId = clonedObject['hasTarget'];\n this.remove(clonedObject);\n }\n if (this.bpmnModule && newObj instanceof Node && clonedObject.processId) {\n newObj.processId = clonedObject.processId;\n this.bpmnModule.dropBPMNchild(this.nameTable[newObj.processId], newObj, this);\n }\n if (!arg.cancel) {\n this.endGroupAction();\n }\n if (this.mode !== 'SVG') {\n this.refreshDiagramLayer();\n }\n delete this.droppable[\"\" + source];\n }\n else {\n arg = {\n source: cloneBlazorObject(args.droppedElement),\n element: undefined,\n target: cloneBlazorObject(this.eventHandler['hoverNode'] || (this.eventHandler['lastObjectUnderMouse']) || this), cancel: false,\n position: undefined\n };\n //Removed is Blazor code.\n this.triggerEvent(DiagramEvent.drop, arg);\n clonedObject = void 0;\n id = 'id';\n }\n selectedSymbols = 'selectedSymbols';\n // eslint-disable-next-line max-len\n if (this.droppable[\"\" + selectedSymbols] && this.droppable[\"\" + selectedSymbols].parentNode) {\n remove(this.droppable[\"\" + selectedSymbols]);\n }\n else {\n draggableElement = document.getElementsByClassName('e-dragclone');\n for (i = 0; i < draggableElement.length; i++) {\n draggableElement[parseInt(i.toString(), 10)].remove();\n }\n }\n this.allowServerDataBinding = true;\n this.previousSelectedObjects = [];\n return [2 /*return*/];\n });\n }); };\n this.droppable.out = function (args) {\n // EJ2-57221 - Added the below code to check if we drag the node from symbol palette using touch or mouse.\n if (args.evt.type === 'touchmove') {\n _this.eventHandler.mouseLeave(args.evt);\n }\n if (_this.currentSymbol && (!_this.eventHandler.focus)) {\n _this.unSelect(_this.currentSymbol);\n _this.removeFromAQuad(_this.currentSymbol);\n if (_this.mode !== 'SVG' && _this.currentSymbol.shape.type === 'Native') {\n _this.removeElements(_this.currentSymbol);\n }\n _this.removeObjectsFromLayer(_this.nameTable[_this.currentSymbol.id]);\n if (_this.currentSymbol.shape && _this.currentSymbol.shape.shape === 'TextAnnotation') {\n var con = _this.nameTable[_this.currentSymbol.inEdges[0]];\n _this.removeObjectsFromLayer(_this.nameTable[con.id]);\n _this.removeFromAQuad(con);\n _this.removePreviewChildren(con);\n delete _this.nameTable[con.id];\n var index = _this.connectors.indexOf(con);\n _this.connectors.splice(index, 1);\n _this.removeElements(con);\n }\n _this.removePreviewChildren(_this.currentSymbol);\n delete _this.nameTable[_this.currentSymbol.id];\n var args_1 = {\n element: cloneBlazorObject(_this.currentSymbol),\n diagram: _this\n };\n //Removed is Blazor code\n _this.triggerEvent(DiagramEvent.dragLeave, args_1);\n if (_this.mode !== 'SVG') {\n _this.refreshDiagramLayer();\n }\n else {\n _this.removeElements(_this.currentSymbol);\n //EJ2-833020-To remove the child element from the group node while dragging the group node from palette\n //EJ2-842739- Error When Dragging Swimlane from Palette to Diagram and Exiting Without Dropping\n if (_this.currentSymbol.shape.type !== 'SwimLane' && _this.currentSymbol.children && _this.currentSymbol.children.length > 0) {\n for (var i = 0; i < _this.currentSymbol.children.length; i++) {\n var child = _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n _this.removeElements(child);\n delete _this.nameTable[_this.currentSymbol.children[parseInt(i.toString(), 10)]];\n }\n }\n }\n _this.currentSymbol = null;\n var selectedSymbols_1 = 'selectedSymbols';\n _this.droppable[\"\" + selectedSymbols_1].style.opacity = '1';\n var source = 'sourceElement';\n delete _this.droppable[\"\" + source];\n _this.diagramRenderer.rendererActions =\n _this.removeConstraints(_this.diagramRenderer.rendererActions, RendererAction.DrawSelectorBorder);\n if (_this.previousSelectedObject) {\n _this.select(_this.previousSelectedObject, _this.previousSelectedObject.length > 1 ? true : false);\n }\n _this.previousSelectedObject = null;\n }\n };\n };\n // Removed Blazor getBlazorDragLeaveEventArgs method\n Diagram.prototype.getDropEventArgs = function (arg) {\n if ((this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'])) {\n var object = this.eventHandler['lastObjectUnderMouse'] || this.eventHandler['hoverNode'];\n // eslint-disable-next-line max-len\n arg.target = getObjectType(object) === Connector ? { connector: cloneBlazorObject(object) } : { node: cloneBlazorObject(object) };\n }\n else {\n arg.target.diagramId = this.element.id;\n }\n };\n Diagram.prototype.removeChildInNodes = function (node) {\n if (node) {\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n this.removeChildInNodes(this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n }\n }\n var index = this.nodes.indexOf(node);\n if (index !== -1) {\n this.nodes.splice(index, 1);\n }\n }\n };\n Diagram.prototype.getBlazorDragEventArgs = function (args) {\n args = {\n // eslint-disable-next-line max-len\n source: cloneBlazorObject(args.source), element: getObjectType(args.element) === Connector ? { connector: cloneBlazorObject(args.element) }\n : { node: cloneBlazorObject(args.element) },\n cancel: args.cancel, diagramId: this.element.id\n };\n return args;\n };\n Diagram.prototype.findChild = function (node, childTable) {\n var group;\n var newNode;\n for (var i = 0; i < node.children.length; i++) {\n group = childTable[node.children[parseInt(i.toString(), 10)]];\n if (group) {\n if (group.children) {\n this.findChild(group, childTable);\n }\n group.id = group.id + randomId();\n childTable[group.id] = group;\n node.children[parseInt(i.toString(), 10)] = group.id;\n newNode = new Node(this, 'nodes', group, true);\n this.initObject(newNode, undefined, undefined, true);\n //this.add(group, true);\n }\n }\n };\n Diagram.prototype.getChildren = function (node, entryTable, childTable) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (childTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n entryTable = this.getChildren(temp, entryTable, childTable);\n }\n entryTable[temp.id] = cloneObject(temp);\n }\n }\n return entryTable;\n };\n Diagram.prototype.addChildNodes = function (node) {\n var temp;\n for (var i = 0; i < node.children.length; i++) {\n temp = (this.nameTable[node.children[parseInt(i.toString(), 10)]]);\n if (temp) {\n if (temp.children) {\n this.addChildNodes(temp);\n }\n this.add(temp, true);\n }\n }\n };\n Diagram.prototype.moveNode = function (node) {\n var currentLayer = this.commandHandler.getObjectLayer(node.id);\n var index = currentLayer.zIndex;\n var length = currentLayer.objects.length;\n var targetLayer;\n for (var i = 0; i < this.layers.length; i++) {\n if (index === this.layers[parseInt(i.toString(), 10)].zIndex) {\n targetLayer = this.layers[i + 1];\n }\n }\n if (length > 1) {\n // Bug 830365: Exception raised on adding group node in layers dynamically.\n // Added below code to check the group node and iterate its children in layer to find the last object in the layer.\n var num = 2;\n if (node.children && node.children.length > 0) {\n while (node.children.indexOf(currentLayer.objects[length - num]) > -1) {\n num++;\n }\n }\n this.commandHandler.moveSvgNode(node.id, currentLayer.objects[length - num]);\n this.commandHandler.moveSvgNode(currentLayer.objects[length - num], node.id);\n }\n else {\n if (targetLayer) {\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[0];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.updateNativeNodeIndex(node.id, targetObject);\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n else {\n this.moveObjectsUp(node, currentLayer);\n }\n }\n };\n /**\n * Moves the node or connector forward within the given layer. \\\n *\n * @returns { void } Moves the node or connector forward within the given layer.\\\n * @param {Node | Connector} node - The node or connector to be moved forward within the layer.\n * @param {LayerModel} currentLayer - representing the layer in which the node or connector should be moved.\n *\n */\n Diagram.prototype.moveObjectsUp = function (node, currentLayer) {\n var targetLayer;\n for (var i = this.layers.length - 1; i >= 0; i--) {\n targetLayer = this.layers[parseInt(i.toString(), 10)];\n if (currentLayer.id !== targetLayer.id) {\n // eslint-disable-next-line max-len\n var targetObject = this.commandHandler.getLayer(this.layerZIndexTable[targetLayer.zIndex]).objects[targetLayer.objects.length - 1];\n if (targetObject) {\n this.commandHandler.moveSvgNode(node.id, targetObject);\n this.commandHandler.moveSvgNode(targetObject, node.id);\n break;\n }\n }\n }\n };\n /**\n * Inserts a newly added element into the database. \\\n *\n * @returns { void } Inserts a newly added element into the database.\\\n * @param {Node | Connector} node - The node or connector to be inserted into the database.\n *\n */\n Diagram.prototype.insertData = function (node) {\n return this.crudOperation(node, 'create', this.getNewUpdateNodes('New'));\n };\n /**\n * Updates user-defined element properties in the existing database. \\\n *\n * @returns { void } Updates user-defined element properties in the existing database.\\\n * @param {Node | Connector} node - The source value representing the element to update.\n *\n */\n Diagram.prototype.updateData = function (node) {\n return this.crudOperation(node, 'update', this.getNewUpdateNodes('Update'));\n };\n /**\n * Removes the user-deleted element from the existing database.\\\n *\n * @returns { void } Removes the user-deleted element from the existing database.\\\n * @param {Node | Connector} node - The node or connector to be removed from the database.\n *\n */\n Diagram.prototype.removeData = function (node) {\n return this.crudOperation(node, 'destroy', this.getDeletedNodes());\n };\n Diagram.prototype.crudOperation = function (node, crud, getNodesCollection) {\n if (node) {\n var data = this.parameterMap(node, node instanceof Connector ? false : true);\n if (data) {\n // eslint-disable-next-line max-len\n var url = node instanceof Connector ? this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud] : this.dataSourceSettings.crudAction[\"\" + crud];\n this.raiseAjaxPost(JSON.stringify(data), url);\n }\n return data;\n }\n else {\n var newObjects = getNodesCollection;\n // eslint-disable-next-line max-len\n this.processCrudCollection(newObjects, this.dataSourceSettings.crudAction[\"\" + crud], this.dataSourceSettings.connectionDataSource.crudAction[\"\" + crud]);\n return newObjects;\n }\n };\n Diagram.prototype.processCrudCollection = function (newObjects, nodeCrudAction, connectorCrudAction) {\n if (newObjects.nodes) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.nodes.length; i++) {\n data.push(this.parameterMap(newObjects.nodes[parseInt(i.toString(), 10)], true));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), nodeCrudAction);\n }\n }\n if (newObjects.connectors) {\n var data = [];\n var i = void 0;\n for (i = 0; i < newObjects.connectors.length; i++) {\n data.push(this.parameterMap(newObjects.connectors[parseInt(i.toString(), 10)], false));\n }\n if (data && data.length > 0) {\n this.raiseAjaxPost(JSON.stringify(data), connectorCrudAction);\n }\n }\n };\n Diagram.prototype.parameterMap = function (object, isNode) {\n var mappingObj = {};\n var i;\n var fields = isNode ? this.dataSourceSettings : this.dataSourceSettings.connectionDataSource;\n if (fields.id) {\n mappingObj[fields.id] = object.id;\n }\n if (fields.sourcePointX && fields.sourcePointY) {\n mappingObj[fields.sourcePointX] = object.sourcePoint.x;\n mappingObj[fields.sourcePointY] = object.sourcePoint.y;\n }\n if (fields.targetPointX && fields.targetPointY) {\n mappingObj[fields.targetPointX] = object.targetPoint.x;\n mappingObj[fields.targetPointY] = object.targetPoint.y;\n }\n if (fields.sourceID) {\n mappingObj[fields.sourceID] = object.sourceID;\n }\n if (fields.targetID) {\n mappingObj[fields.targetID] = object.targetID;\n }\n if (fields.crudAction && fields.crudAction.customFields && fields.crudAction.customFields.length > 0) {\n for (i = 0; i < fields.crudAction.customFields.length; i++) {\n mappingObj[fields.crudAction.customFields[parseInt(i.toString(), 10)]]\n = object[fields.crudAction.customFields[parseInt(i.toString(), 10)]];\n }\n }\n return mappingObj;\n };\n Diagram.prototype.getNewUpdateNodes = function (status) {\n var nodes = [];\n var connectors = [];\n // eslint-disable-next-line guard-for-in\n for (var name_1 in this.nameTable) {\n var node = this.nameTable[\"\" + name_1];\n if (node.status === status) {\n if (node && node instanceof Connector) {\n node.status = 'None';\n connectors.push(node);\n }\n else {\n node.status = 'None';\n nodes.push(node);\n }\n }\n }\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.getDeletedNodes = function () {\n var nodes = [];\n var connectors = [];\n var i;\n for (i = 0; i < this.crudDeleteNodes.length; i++) {\n var node = this.crudDeleteNodes[parseInt(i.toString(), 10)];\n if (node && node.segments) {\n connectors.push(node);\n }\n else if (node) {\n nodes.push(node);\n }\n }\n this.crudDeleteNodes = [];\n return { nodes: nodes, connectors: connectors };\n };\n Diagram.prototype.raiseAjaxPost = function (value, url) {\n var callback = new Fetch(url, 'POST', 'application/json');\n var data = JSON.stringify(JSON.parse(value));\n callback.send(data).then();\n /* eslint-disable */\n callback.onSuccess = function (data) {\n };\n /* eslint-enable */\n };\n Diagram.prototype.getHiddenItems = function (args) {\n var hiddenItems = [];\n if (this.contextMenuModule) {\n this.contextMenuModule.hiddenItems = [];\n for (var _i = 0, _a = args.items; _i < _a.length; _i++) {\n var item = _a[_i];\n this.contextMenuModule.ensureItems(item, args.event);\n if (item.items && item.items.length) {\n for (var _b = 0, _c = item.items; _b < _c.length; _b++) {\n var newItem = _c[_b];\n this.contextMenuModule.ensureItems(newItem, args.event);\n }\n }\n }\n return this.contextMenuModule.hiddenItems;\n }\n return hiddenItems;\n };\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Diagram.prototype, \"enableConnectorSplit\", void 0);\n __decorate([\n Property('SVG')\n ], Diagram.prototype, \"mode\", void 0);\n __decorate([\n Property('100%')\n ], Diagram.prototype, \"height\", void 0);\n __decorate([\n Property('Circle')\n ], Diagram.prototype, \"segmentThumbShape\", void 0);\n __decorate([\n Property(10)\n ], Diagram.prototype, \"segmentThumbSize\", void 0);\n __decorate([\n Complex({}, ContextMenuSettings)\n ], Diagram.prototype, \"contextMenuSettings\", void 0);\n __decorate([\n Property(DiagramConstraints.Default)\n ], Diagram.prototype, \"constraints\", void 0);\n __decorate([\n Property(DiagramTools.Default)\n ], Diagram.prototype, \"tool\", void 0);\n __decorate([\n Property('Top')\n ], Diagram.prototype, \"bridgeDirection\", void 0);\n __decorate([\n Property('transparent')\n ], Diagram.prototype, \"backgroundColor\", void 0);\n __decorate([\n Complex({}, SnapSettings)\n ], Diagram.prototype, \"snapSettings\", void 0);\n __decorate([\n Complex({}, RulerSettings)\n ], Diagram.prototype, \"rulerSettings\", void 0);\n __decorate([\n Complex({}, PageSettings)\n ], Diagram.prototype, \"pageSettings\", void 0);\n __decorate([\n Complex({}, SerializationSettings)\n ], Diagram.prototype, \"serializationSettings\", void 0);\n __decorate([\n Collection([], Node)\n ], Diagram.prototype, \"nodes\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"drawingObject\", void 0);\n __decorate([\n Collection([], Connector)\n ], Diagram.prototype, \"connectors\", void 0);\n __decorate([\n Property([])\n ], Diagram.prototype, \"basicElements\", void 0);\n __decorate([\n Complex({}, DiagramTooltip)\n ], Diagram.prototype, \"tooltip\", void 0);\n __decorate([\n Complex({}, DataSource)\n ], Diagram.prototype, \"dataSourceSettings\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"addInfo\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"historyManager\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"annotationTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"userHandleTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"fixedUserHandleTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"connectorDefaults\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"setNodeTemplate\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getDescription\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomProperty\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomTool\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"getCustomCursor\", void 0);\n __decorate([\n Collection([], CustomCursorAction)\n ], Diagram.prototype, \"customCursor\", void 0);\n __decorate([\n Property()\n ], Diagram.prototype, \"updateSelection\", void 0);\n __decorate([\n Complex({}, DiagramSettings)\n ], Diagram.prototype, \"diagramSettings\", void 0);\n __decorate([\n Complex({}, Selector)\n ], Diagram.prototype, \"selectedItems\", void 0);\n __decorate([\n Complex({}, ScrollSettings)\n ], Diagram.prototype, \"scrollSettings\", void 0);\n __decorate([\n Complex({}, Layout)\n ], Diagram.prototype, \"layout\", void 0);\n __decorate([\n Complex({}, CommandManager)\n ], Diagram.prototype, \"commandManager\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dataLoaded\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"dragOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"historyStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"doubleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"textEdit\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"scrollChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseWheel\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"selectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sizeChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"connectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"sourcePointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"targetPointChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"propertyChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"positionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"keyDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"animationComplete\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"rotateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"collectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"fixedUserHandleClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onUserHandleMouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseDown\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseUp\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onFixedUserHandleMouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentCollectionChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"onImageLoad\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"expandStateChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"load\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseEnter\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseLeave\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"mouseOver\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"elementDraw\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuOpen\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuBeforeItemRender\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"contextMenuClick\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"commandExecute\", void 0);\n __decorate([\n Collection([], Layer)\n ], Diagram.prototype, \"layers\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"segmentChange\", void 0);\n __decorate([\n Event()\n ], Diagram.prototype, \"loaded\", void 0);\n return Diagram;\n}(Component));\nexport { Diagram };\n","/* eslint-disable jsdoc/require-param */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable @typescript-eslint/no-this-alias */\nimport { Browser } from '@syncfusion/ej2-base';\nimport { CanvasRenderer } from './rendering/canvas-renderer';\nimport { DiagramRenderer } from './rendering/renderer';\nimport { Size } from './primitives/size';\nimport { SnapConstraints } from './enum/enum';\nimport { setAttributeHtml, setAttributeSvg, createHtmlElement } from './utility/dom-util';\nimport { Rect } from './primitives/rect';\nimport { createSvgElement, getHTMLLayer } from './utility/dom-util';\nimport { getDiagramLayerSvg } from './utility/dom-util';\nimport { checkBrowserInfo } from './utility/diagram-util';\nimport { DiagramHtmlElement } from './core/elements/html-element';\nimport { DiagramNativeElement } from './core/elements/native-element';\nimport { LinearGradient } from './core/appearance';\nvar storeFormat;\n/**\n * Print and Export Settings\n */\nvar PrintAndExport = /** @class */ (function () {\n function PrintAndExport(diagram) {\n var _this = this;\n this.printWindow = undefined;\n //833683 - Method for closing the newly opened print window.\n this.closePrintWindow = function () {\n if (_this.printWindow && !_this.printWindow.closed) {\n _this.printWindow.close();\n }\n };\n this.diagram = diagram;\n }\n /**\n * To Export the diagram\n *\n * @private\n */\n PrintAndExport.prototype.exportDiagram = function (options) {\n var fileType;\n var customBounds;\n var content;\n var content1 = '';\n var data = 'data';\n //let mode: string;\n var buffers = [];\n var margin = options.margin || {};\n var region = options && options.region ? options.region : 'Content';\n // isBlazor code removed\n var mode = options && options.mode ? options.mode : 'Download';\n var bounds = this.getDiagramBounds(region, options);\n if (options.bounds) {\n customBounds = true;\n bounds.x = options.bounds.x ? options.bounds.x : bounds.x;\n bounds.y = options.bounds.y ? options.bounds.y : bounds.y;\n bounds.width = options.bounds.width || bounds.width;\n bounds.height = options.bounds.height || bounds.height;\n }\n margin = {\n top: margin.top !== undefined ? margin.top : 25,\n bottom: margin.bottom !== undefined ? margin.bottom : 25,\n right: margin.right !== undefined ? margin.right : 25,\n left: margin.left !== undefined ? margin.left : 25\n };\n var nodes = this.diagram.nodes;\n if (region !== 'PageSettings') {\n bounds.x -= margin.left;\n bounds.y -= margin.top;\n bounds.width += margin.left + margin.right;\n bounds.height += margin.top + margin.bottom;\n }\n var fileName = options.fileName || 'diagram';\n if (options.format !== 'SVG') {\n data = this.setCanvas(options, bounds, margin, mode, customBounds, region, fileName);\n if (data !== null) {\n return data;\n }\n }\n else {\n fileType = options.format;\n options.bounds = bounds;\n options.margin = margin;\n var svg = content = this.diagramAsSvg(options, margin);\n if (mode === 'Data') {\n // isBlazor code removed\n return content;\n }\n var buffer = new XMLSerializer().serializeToString(svg);\n buffers.push(buffer);\n }\n if (mode === 'Download' && data !== null) {\n var browserInfo = void 0;\n // Ensure this for Safari\n // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') {\n // let info: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9';\n // alert('Downloading option is not supported in ' + info + ', Please use the returned data');\n // return content;\n // } else {\n for (var b = 0; b < buffers.length; b++) {\n var blob = new Blob([buffers[parseInt(b.toString(), 10)]], { type: 'application/octet-stream' });\n if (Browser.info.name === 'msie') {\n window.navigator.msSaveOrOpenBlob(blob, fileName + '.' + fileType);\n }\n else {\n var pom = createHtmlElement('a', { 'download': fileName + '.' + fileType });\n var url = URL.createObjectURL(blob);\n pom.href = url;\n var e = document.createEvent('MouseEvents');\n e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n pom.dispatchEvent(e);\n }\n }\n }\n return null;\n };\n PrintAndExport.prototype.setCanvas = function (options, bounds, margin, mode, customBounds, region, fileName) {\n var content;\n options.bounds = bounds;\n options.region = region;\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n this.setScaleValueforCanvas(options, bounds);\n var canvas = this.diagramAsCanvas({\n bounds: bounds, margin: margin, region: region, scaleX: options[\"\" + scaleX],\n scaleY: options[\"\" + scaleY], scaleOffsetX: options[\"\" + scaleOffsetX], scaleOffsetY: options[\"\" + scaleOffsetY]\n }, customBounds);\n var image;\n if (options.format === 'JPG') {\n image = content = storeFormat = canvas.toDataURL('image/jpeg');\n }\n else if (options.format === 'BMP') {\n image = content = storeFormat = canvas.toDataURL('image/bmp');\n }\n else {\n image = content = storeFormat = canvas.toDataURL();\n }\n if (mode === 'Data') {\n return content;\n }\n this.canvasMultiplePage(options, canvas, margin, image, fileName);\n return null;\n };\n PrintAndExport.prototype.canvasMultiplePage = function (options, canvas, margin, image, fileName) {\n var _this = this;\n var images = [];\n var imageData = image.substring(image.indexOf(':') + 1, image.indexOf(';'));\n var imageFormat = imageData.substring(imageData.indexOf('/') + 1);\n if (imageFormat === 'jpeg') {\n imageFormat = undefined;\n }\n else {\n imageFormat = imageFormat.toUpperCase();\n }\n var fileType = imageFormat || 'JPG';\n if (options.multiplePage) {\n options.pageHeight = options.pageHeight ? options.pageHeight : this.diagram.pageSettings.height;\n options.pageWidth = options.pageWidth ? options.pageWidth : this.diagram.pageSettings.width;\n options.pageHeight = options.pageHeight ? options.pageHeight : canvas.width;\n options.pageWidth = options.pageWidth ? options.pageWidth : canvas.height;\n margin = options.margin || {};\n if (options.pageOrientation) {\n if ((options.pageOrientation === 'Landscape' && options.pageHeight > options.pageWidth) ||\n options.pageOrientation === 'Portrait' && options.pageWidth > options.pageHeight) {\n var temp = options.pageWidth;\n options.pageWidth = options.pageHeight;\n options.pageHeight = temp;\n }\n }\n options.margin = {\n top: !isNaN(margin.top) ? margin.top : 0,\n bottom: !isNaN(margin.bottom) ? margin.bottom : 0,\n left: !isNaN(margin.left) ? margin.left : 0,\n right: !isNaN(margin.right) ? margin.right : 0\n };\n var attr = {\n 'id': this.diagram.element.id + '_printImage',\n 'src': image\n };\n var img_1 = createHtmlElement('img', attr);\n img_1.onload = function () {\n images = _this.getMultipleImage(img_1, options, true);\n _this.exportImage(images, fileName, fileType, image);\n };\n }\n else {\n images = [image];\n this.exportImage(images, fileName, fileType, image);\n }\n };\n PrintAndExport.prototype.exportImage = function (images, fileName, fileType, image) {\n var buffers = [];\n var length = (!(images instanceof HTMLElement)) ? images.length : 0;\n for (var g = 0; g < length; g++) {\n image = images[parseInt(g.toString(), 10)];\n image = image.replace(/^data:[a-z]*;,/, '');\n var image1 = image.split(',');\n var byteString = atob(image1[1]);\n var buffer = new ArrayBuffer(byteString.length);\n var intArray = new Uint8Array(buffer);\n for (var i = 0; i < byteString.length; i++) {\n intArray[parseInt(i.toString(), 10)] = byteString.charCodeAt(i);\n }\n buffers.push(buffer);\n }\n var _loop_1 = function (j) {\n var b = new Blob([buffers[parseInt(j.toString(), 10)]], { type: 'application/octet-stream' });\n if (Browser.info.name === 'msie') {\n window.navigator.msSaveOrOpenBlob(b, fileName + '.' + fileType);\n }\n else {\n var htmlElement_1 = createHtmlElement('a', { 'download': fileName + '.' + fileType });\n var urlLink = URL.createObjectURL(b);\n htmlElement_1.href = urlLink;\n var mouseEvent_1 = document.createEvent('MouseEvents');\n mouseEvent_1.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n setTimeout(function () {\n htmlElement_1.dispatchEvent(mouseEvent_1);\n }, ((j + 1) * 5));\n }\n };\n // Ensure this for safari\n // if (Browser.info.name === 'msie' && Number(Browser.info.version) < 10 || Browser.info.name === 'webkit') {\n // let browserInfo: string = Browser.info.name === 'webkit' ? 'Safari' : 'IE-9';\n // alert('Downloading option is not supported in ' + browserInfo + ', Please use the returned data');\n // return content;\n // } else {\n for (var j = 0; j < buffers.length; j++) {\n _loop_1(j);\n }\n };\n /** @private */\n PrintAndExport.prototype.getObjectsBound = function (options) {\n var nodes = this.diagram.nodes;\n var nodebounds;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (node.visible) {\n if (((options.format !== 'SVG' && !(node instanceof DiagramNativeElement) && !(node instanceof DiagramHtmlElement))\n || (options.format === 'SVG' && !(node instanceof DiagramHtmlElement)))) {\n if (!nodebounds) {\n nodebounds = node.wrapper.outerBounds;\n }\n else {\n nodebounds = nodebounds.uniteRect(node.wrapper.outerBounds);\n }\n }\n }\n }\n var connectors = this.diagram.connectors;\n for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) {\n var connector = connectors_1[_a];\n if (connector.visible) {\n if (!nodebounds) {\n nodebounds = connector.wrapper.outerBounds;\n }\n else {\n nodebounds = nodebounds.uniteRect(connector.wrapper.outerBounds);\n }\n }\n }\n return nodebounds || new Rect(0, 0, 0, 0);\n };\n /** @private */\n PrintAndExport.prototype.getDiagramBounds = function (mode, options) {\n var rect = this.getObjectsBound(options);\n var left = rect.left;\n var top = rect.top;\n var right = rect.right - rect.left;\n var bottom = rect.bottom - rect.top;\n if (mode !== 'Content') {\n if (this.diagram.pageSettings && this.diagram.pageSettings.multiplePage) {\n left = rect.left;\n top = rect.top;\n if (this.diagram.pageSettings.width) {\n left = Math.floor(left / this.diagram.pageSettings.width) * this.diagram.pageSettings.width;\n right = Math.ceil(rect.right / this.diagram.pageSettings.width) * this.diagram.pageSettings.width - left;\n }\n if (this.diagram.pageSettings.height) {\n top = Math.floor(top / this.diagram.pageSettings.height) * this.diagram.pageSettings.height;\n bottom = Math.ceil(rect.bottom / this.diagram.pageSettings.height) * this.diagram.pageSettings.height - top;\n }\n if ((rect.width === 0) && this.diagram.pageSettings.width !== null) {\n right = this.diagram.pageSettings.width;\n }\n if ((rect.height === 0) && this.diagram.pageSettings.height !== null) {\n bottom = this.diagram.pageSettings.height;\n }\n }\n else {\n if (this.diagram.pageSettings.width) {\n left = 0;\n right = this.diagram.pageSettings.width;\n }\n if (this.diagram.pageSettings.height) {\n top = 0;\n bottom = this.diagram.pageSettings.height;\n }\n }\n }\n //884801-After zooming and exporting the HTML content, the scroll Padding value is not considered\n if (this.diagram.scrollSettings.padding) {\n var scrollpadding = this.diagram.scrollSettings.padding;\n left -= scrollpadding.left;\n top -= scrollpadding.top;\n right += (scrollpadding.left + scrollpadding.right);\n bottom += (scrollpadding.top + scrollpadding.bottom);\n }\n var svgBounds = new Rect();\n svgBounds.x = left;\n svgBounds.y = top;\n svgBounds.width = right;\n svgBounds.height = bottom;\n return svgBounds;\n };\n PrintAndExport.prototype.setScaleValueforCanvas = function (options, bounds) {\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n options[\"\" + scaleX] = 1;\n options[\"\" + scaleY] = 1;\n options[\"\" + scaleOffsetX] = 0;\n options[\"\" + scaleOffsetY] = 0;\n options.pageHeight = options.pageHeight || this.diagram.pageSettings.height;\n options.pageWidth = options.pageWidth || this.diagram.pageSettings.width;\n var pageOrientation = options.pageOrientation || this.diagram.pageSettings.orientation;\n if (!pageOrientation) {\n pageOrientation = 'Portrait';\n }\n if (pageOrientation === 'Portrait') {\n if (options.pageWidth > options.pageHeight) {\n var temp = options.pageHeight;\n options.pageHeight = options.pageWidth;\n options.pageWidth = temp;\n }\n }\n else {\n if (options.pageHeight > options.pageWidth) {\n var temp = options.pageWidth;\n options.pageWidth = options.pageHeight;\n options.pageHeight = temp;\n }\n }\n if (options.pageWidth && options.pageHeight && !options.multiplePage) {\n options.stretch = 'Meet';\n }\n var height = options.pageHeight || bounds.height;\n var width = options.pageWidth || bounds.width;\n if (options.stretch === 'Stretch' || options.stretch === 'Meet' || options.stretch === 'Slice') {\n options[\"\" + scaleX] = width / bounds.width;\n options[\"\" + scaleY] = height / bounds.height;\n if (options.stretch === 'Meet') {\n options[\"\" + scaleX] = options[\"\" + scaleY] = Math.min(options[\"\" + scaleX], options[\"\" + scaleY]);\n options[\"\" + scaleOffsetY] = (options.pageHeight - bounds.height * options[\"\" + scaleX]) / 2;\n options[\"\" + scaleOffsetX] = (options.pageWidth - bounds.width * options[\"\" + scaleX]) / 2;\n }\n else if (options.stretch === 'Slice') {\n options[\"\" + scaleX] = options[\"\" + scaleY] = Math.max(options[\"\" + scaleX], options[\"\" + scaleY]);\n }\n bounds.width = width;\n bounds.height = height;\n }\n bounds.x *= options[\"\" + scaleX];\n bounds.y *= options[\"\" + scaleY];\n };\n PrintAndExport.prototype.diagramAsSvg = function (options, margin) {\n var svg = this.diagram.createSvg(this.diagram.element.id + '_diagram_svg', options.bounds.width, options.bounds.height);\n document.body.appendChild(svg);\n var g = createSvgElement('g', { 'id': this.diagram.element.id + '_pageBackground' });\n var region = options && options.region ? options.region : 'Content';\n var bounds = this.getDiagramBounds(region, options);\n var left = bounds.x;\n var top = bounds.y;\n var width = bounds.width;\n var height = bounds.height;\n svg.appendChild(g);\n var attr = {\n 'x': String(left),\n 'y': String(top), 'width': String(width), 'height': String(height)\n };\n setAttributeSvg(g, attr);\n this.setTransform(g, options.bounds, margin);\n var gradient = document.getElementById(this.diagram.element.id + 'gradient_pattern');\n if (gradient) {\n // 914031: Export function breaks gradient background of nodes in the diagram\n svg.appendChild(gradient.cloneNode(true));\n }\n attr = {\n 'x': String(left),\n 'y': String(top), 'width': String(width + margin.left + margin.right), 'height': String(height + margin.top + margin.bottom)\n };\n var backimage = document.getElementById(this.diagram.element.id + '_backgroundImageLayer').cloneNode(true);\n setAttributeSvg(backimage, attr);\n svg.appendChild(backimage);\n this.setTransform(backimage, bounds, margin);\n var backRect = document.getElementById(this.diagram.element.id + '_backgroundLayerrect').cloneNode(true);\n setAttributeSvg(backRect, attr);\n svg.appendChild(backRect);\n this.setTransform(backRect, bounds, margin);\n if (this.diagram.mode === 'SVG') {\n var element = void 0;\n var i = void 0;\n var diagramLayerSVG = getDiagramLayerSvg(this.diagram.element.id);\n svg.appendChild(diagramLayerSVG.getElementById(this.diagram.diagramLayer.id).cloneNode(true));\n for (i = 0; i < svg.childNodes.length; i++) {\n element = svg.childNodes[parseInt(i.toString(), 10)];\n if (element.id === this.diagram.element.id + '_diagramLayer') {\n this.setTransform(element, bounds, margin);\n }\n }\n }\n else {\n g = createSvgElement('g', { 'id': this.diagram.element.id + '_diagramLayer' });\n svg.appendChild(g);\n this.setTransform(g, options.bounds, margin);\n //renderLabels\n var renderer = new DiagramRenderer('', null, true);\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n this.diagram.renderDiagramElements(svg, renderer, htmlLayer, false);\n }\n document.body.removeChild(svg);\n return svg;\n };\n PrintAndExport.prototype.setTransform = function (element, bounds, margin) {\n element.setAttribute('transform', 'translate(' + (-bounds.x + margin.left) + ', ' +\n (-bounds.y + margin.top) + ')');\n };\n PrintAndExport.prototype.diagramAsCanvas = function (options, customBounds) {\n var scaleX = 'scaleX';\n var scaleY = 'scaleY';\n var scaleOffsetX = 'scaleOffsetX';\n var scaleOffsetY = 'scaleOffsetY';\n var element;\n var elements = [];\n var region = options.bounds;\n var margin = options.margin;\n var mode = options.region;\n var pageBounds = this.getDiagramBounds(mode, options);\n var bgColor = this.diagram.pageSettings.background.color;\n var canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_diagram', options.bounds.width, options.bounds.height);\n //canvas.setAttribute('style', 'position:absolute;top:135px;left:160px;');\n var context = canvas.getContext('2d');\n context.translate(-region.x, -region.y);\n context.save();\n context.fillStyle = (this.diagram.pageSettings.background.color === 'transparent') ? 'white' :\n this.diagram.pageSettings.background.color;\n region = mode === 'Content' ? pageBounds : region;\n context.fillRect(region.x, region.y, region.width, region.height);\n var bgImg = this.diagram.pageSettings.background;\n if (bgImg && bgImg.source) {\n pageBounds = this.getDiagramBounds(mode, options);\n var image = new Image();\n image.src = bgImg.source;\n var proportionX = pageBounds.width / image.width;\n var proportionY = pageBounds.height / image.height;\n var x = pageBounds.x;\n var y = pageBounds.y;\n var width = pageBounds.width;\n var height = pageBounds.height;\n var exportable = this.isImageExportable(bgImg);\n if (bgImg.scale !== 'None' && bgImg.align !== 'None') {\n var proportion = bgImg.scale === 'Meet' ? Math.min(proportionX, proportionY) : Math.max(proportionX, proportionY);\n width = proportion * image.width;\n height = proportion * image.height;\n if (bgImg.align.indexOf('xmid') > -1) {\n x += (pageBounds.width - width) / 2;\n }\n else if (bgImg.align.indexOf('xmax') > -1) {\n x = x + pageBounds.width - width;\n }\n if (bgImg.align.indexOf('ymid') > -1) {\n y += (pageBounds.height - height) / 2;\n }\n else if (bgImg.align.indexOf('ymax') > -1) {\n y = y + pageBounds.height - height;\n }\n if (this.diagram.pageSettings.background.color === 'none' || this.diagram.pageSettings.background.color === 'transparent') {\n context.fillStyle = 'white';\n context.fillRect(pageBounds.x * options[\"\" + scaleX], pageBounds.y * options[\"\" + scaleY], pageBounds.width * options[\"\" + scaleX], pageBounds.height * options[\"\" + scaleY]);\n }\n if (exportable) {\n context.drawImage(image, x, y, proportion * image.width, proportion * image.height);\n }\n }\n else if (exportable) {\n context.drawImage(image, x, y, pageBounds.width, pageBounds.height);\n }\n }\n else {\n context.fillStyle = bgColor === 'transparent' ? 'white' : bgColor;\n context.fillRect((pageBounds.x * options[\"\" + scaleX]) - margin.left, (pageBounds.y * options[\"\" + scaleY]) - margin.top, (pageBounds.width * options[\"\" + scaleX]) + margin.left + margin.right, (options[\"\" + scaleY] * pageBounds.height) + margin.top + margin.bottom);\n }\n var brColor = this.diagram.pageSettings.background.color;\n var brWidth = this.diagram.pageSettings.width;\n if (brWidth) {\n context.strokeStyle = brColor === 'none' ? 'transparent' : brColor;\n context.lineWidth = brWidth;\n context.strokeRect(pageBounds.x * options[\"\" + scaleX], pageBounds.y * options[\"\" + scaleY], pageBounds.width * options[\"\" + scaleX], pageBounds.height * options[\"\" + scaleY]);\n }\n context.restore();\n var htmlLayer = getHTMLLayer(this.diagram.element.id);\n var renderer = new DiagramRenderer('', null, false);\n this.updateObjectValue(options[\"\" + scaleX], options[\"\" + scaleOffsetX], options[\"\" + scaleOffsetY], true);\n this.diagram.renderDiagramElements(canvas, renderer, htmlLayer, false, true);\n this.updateObjectValue(options[\"\" + scaleX], options[\"\" + scaleOffsetX], options[\"\" + scaleOffsetY], false);\n return canvas;\n };\n PrintAndExport.prototype.updateWrapper = function (canvas, value, scaleOffsetX, scaleOffsetY, isExport) {\n if (canvas && canvas.length > 0) {\n for (var j = 0; j < canvas.length; j++) {\n if (canvas[parseInt(j.toString(), 10)].children) {\n this.updateWrapper(canvas[parseInt(j.toString(), 10)].children, value, scaleOffsetX, scaleOffsetY, isExport);\n }\n canvas[parseInt(j.toString(), 10)].exportScaleValue.x = value;\n canvas[parseInt(j.toString(), 10)].exportScaleValue.y = value;\n canvas[parseInt(j.toString(), 10)].exportScaleOffset.x = scaleOffsetX;\n canvas[parseInt(j.toString(), 10)].exportScaleOffset.y = scaleOffsetY;\n canvas[parseInt(j.toString(), 10)].isExport = isExport;\n }\n }\n };\n PrintAndExport.prototype.scaleGradientValue = function (node, scaleValue, isExport) {\n if (node.style.gradient.stops.length > 0) {\n var gradients = node.style.gradient;\n if (node.style.gradient instanceof LinearGradient) {\n gradients.x1 = isExport ? gradients.x1 * scaleValue : gradients.x1 / scaleValue;\n gradients.y1 = isExport ? gradients.y1 * scaleValue : gradients.y1 / scaleValue;\n gradients.x2 = isExport ? gradients.x2 * scaleValue : gradients.x2 / scaleValue;\n gradients.y2 = isExport ? gradients.y2 * scaleValue : gradients.y2 / scaleValue;\n }\n else {\n gradients.fx = isExport ? gradients.fx * scaleValue : gradients.fx / scaleValue;\n gradients.fy = isExport ? gradients.fy * scaleValue : gradients.fy / scaleValue;\n gradients.cx = isExport ? gradients.cx * scaleValue : gradients.cx / scaleValue;\n gradients.cy = isExport ? gradients.cy * scaleValue : gradients.cy / scaleValue;\n gradients.r = isExport ? gradients.r * scaleValue : gradients.r / scaleValue;\n }\n }\n };\n PrintAndExport.prototype.updateObjectValue = function (value, scaleOffsetX, scaleOffsetY, isExport) {\n var wrapper;\n for (var i = 0; i < this.diagram.nodes.length; i++) {\n wrapper = this.diagram.nodes[parseInt(i.toString(), 10)].wrapper;\n this.scaleGradientValue(this.diagram.nodes[parseInt(i.toString(), 10)], value, isExport);\n this.updateWrapper(wrapper.children, value, scaleOffsetX, scaleOffsetY, isExport);\n wrapper.exportScaleValue.x = value;\n wrapper.exportScaleValue.y = value;\n wrapper.exportScaleOffset.x = scaleOffsetX;\n wrapper.exportScaleOffset.y = scaleOffsetY;\n wrapper.isExport = isExport;\n }\n for (var j = 0; j < this.diagram.connectors.length; j++) {\n wrapper = this.diagram.connectors[parseInt(j.toString(), 10)].wrapper;\n for (var k = 0; k < wrapper.children.length; k++) {\n wrapper.children[parseInt(k.toString(), 10)].isExport = isExport;\n if (isExport) {\n wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.x = value;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleValue.y = value;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.x = scaleOffsetX;\n wrapper.children[parseInt(k.toString(), 10)].exportScaleOffset.y = scaleOffsetY;\n }\n }\n }\n };\n PrintAndExport.prototype.isImageExportable = function (backgroundImage) {\n var state = true;\n var content;\n var canvas;\n if (backgroundImage.source) {\n try {\n canvas = CanvasRenderer.createCanvas(this.diagram.element.id + 'temp_canvas', 100, 100);\n var ctx = canvas.getContext('2d');\n ctx.save();\n var image = new Image();\n image.src = backgroundImage.source;\n ctx.drawImage(image, 0, 0, 100, 100);\n ctx.restore();\n content = canvas.toDataURL();\n }\n catch (e) {\n state = false;\n }\n }\n return state;\n };\n PrintAndExport.prototype.getPrintCanvasStyle = function (img, options) {\n var width = 0;\n var height = 0;\n var size = new Size();\n width = img.width;\n height = img.height;\n if (options.pageHeight || options.pageWidth) {\n height = options.pageHeight ? options.pageHeight : height;\n width = options.pageWidth ? options.pageWidth : width;\n }\n if (options.pageOrientation) {\n if ((options.pageOrientation === 'Landscape' && height > width) || options.pageOrientation === 'Portrait' && width > height) {\n var temp = width;\n width = height;\n height = temp;\n }\n }\n size.height = height;\n size.width = width;\n return size;\n };\n PrintAndExport.prototype.getMultipleImage = function (img, options, isExport) {\n var imageArray = [];\n var div = createHtmlElement('div', {});\n var pageSize = this.getPrintCanvasStyle(img, options);\n //let pageWidth: number;\n //let pageHeight: number;\n var margin = options.margin;\n var mLeft = margin.left;\n var mTop = margin.top;\n var mRight = margin.right;\n var mBottom = margin.bottom;\n var x = 0;\n var y = 0;\n var pageWidth = pageSize.width + x;\n var pageHeight = pageSize.height + y;\n var drawnX = 0;\n var drawnY = 0;\n if (options && options.multiplePage) {\n div.style.height = 'auto';\n div.style.width = 'auto';\n var imgHeight = img.height;\n var imgWidth = img.width;\n //if (img) {\n var i = 0;\n var j = 0;\n var url = void 0;\n var clipWidth = 0;\n var clipHeight = 0;\n var ctx = void 0;\n var canvas = void 0;\n do {\n do {\n clipWidth = pageSize.width;\n clipHeight = pageSize.height;\n if ((drawnX + pageSize.width) >= imgWidth) {\n clipWidth = (imgWidth - drawnX);\n }\n if ((drawnY + pageSize.height) >= imgHeight) {\n clipHeight = (imgHeight - drawnY);\n }\n canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_multiplePrint', pageSize.width, pageSize.height);\n ctx = canvas.getContext('2d');\n ctx.drawImage(img, x + drawnX + mLeft, y + drawnY + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop, 0 + mLeft, 0 + mTop, clipWidth - mRight - mLeft, clipHeight - mBottom - mTop);\n if ((drawnX + pageSize.width) >= imgWidth) {\n drawnX -= (drawnX - imgWidth);\n }\n url = canvas.toDataURL();\n ctx.restore();\n drawnX += pageWidth;\n if (isExport) {\n imageArray.push(url);\n }\n else {\n this.printImage(div, url, i + '' + j, pageWidth + 'px;', pageHeight + 'px;');\n }\n i++;\n } while (drawnX < imgWidth);\n j++;\n i = x = drawnX = 0;\n if ((drawnY + pageSize.height) >= imgHeight) {\n drawnY -= (drawnY - imgHeight);\n }\n drawnY += pageHeight;\n } while (drawnY < imgHeight);\n //}\n }\n else {\n var x_1 = 0;\n var y_1 = 0;\n var pageSize_1 = this.getPrintCanvasStyle(img, options);\n ///let pageWidth: number; let pageHeight: number;\n var pageWidth_1 = pageSize_1.width;\n var pageHeight_1 = pageSize_1.height;\n //let ctx: CanvasRenderingContext2D;\n //let canvas: HTMLCanvasElement;\n //let url: string;\n var canvas = CanvasRenderer.createCanvas(this.diagram.element.id + '_diagram', pageWidth_1, pageHeight_1);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(img, x_1 + mLeft, y_1 + mTop, img.width - (mRight + mLeft), img.height - (mTop + mBottom), 0 + mLeft, 0 + mTop, pageWidth_1 - (mRight + mLeft), pageHeight_1 - (mTop + mBottom));\n var url = canvas.toDataURL();\n ctx.restore();\n if (isExport) {\n imageArray.push(url);\n }\n else {\n this.printImage(div, url, 0);\n }\n }\n if (isExport) {\n return imageArray;\n }\n else {\n return div;\n }\n };\n PrintAndExport.prototype.printImage = function (div, url, i, pageWidth, pageHeight) {\n var attr = { 'class': 'e-diagram-print-page', 'style': 'width:' + pageWidth + 'height:' + pageHeight };\n var img = createHtmlElement('img', attr);\n var innerDiv = createHtmlElement('div', attr);\n attr = { 'id': this.diagram.element.id + '_multiplePrint_img' + i, 'style': 'float:left', 'src': url };\n setAttributeHtml(img, attr);\n innerDiv.appendChild(img);\n div.appendChild(innerDiv);\n };\n /**\n * To print the image\n *\n * @private\n */\n PrintAndExport.prototype.print = function (options) {\n options.mode = 'Data';\n var url = this.exportDiagram(options);\n this.printImages(url, options);\n };\n PrintAndExport.prototype.printImages = function (url, options) {\n var _this = this;\n var attr = {\n 'id': this.diagram.element.id + '_printImage',\n 'src': url\n };\n options.margin = { top: 0, bottom: 0, right: 0, left: 0 };\n var img = createHtmlElement('img', attr);\n img.onload = function () {\n var div = _this.getMultipleImage(img, options);\n // specify window parameters\n var printWind = window.open('');\n _this.printWindow = printWind;\n if (printWind != null) {\n if ((div instanceof HTMLElement)) {\n printWind.document.write('');\n //833683-Need to close print window after closing the parent window\n window.addEventListener('beforeunload', _this.closePrintWindow);\n printWind.addEventListener('load', function () {\n setTimeout(function () {\n printWind.window.print();\n //To close new window once print window is closed\n printWind.close();\n }, 3000);\n });\n printWind.document.write('
' + div.innerHTML + '
');\n printWind.document.close();\n }\n }\n };\n };\n PrintAndExport.prototype.getContent = function (styleSheets) {\n var snapConstraints = this.diagram.snapSettings.constraints;\n this.diagram.snapSettings.constraints = (this.diagram.snapSettings.constraints & ~SnapConstraints.ShowLines);\n this.diagram.dataBind();\n this.diagram.clearSelection();\n styleSheets = styleSheets || document.styleSheets;\n var styleSheetRef = '';\n for (var i = 0; i < styleSheets.length; i++) {\n if (styleSheets[parseInt(i.toString(), 10)].href || typeof styleSheets[parseInt(i.toString(), 10)] === 'string') {\n styleSheetRef += '';\n }\n }\n var htmlData = document.getElementById(this.diagram.element.id + 'content').innerHTML;\n var marginStyle = 'margin-left:' + 0 + 'px;margin-top:' + 0 + 'px;margin-right:'\n + 0 + 'px;margin-bottom:' + 0 + 'px;';\n htmlData = styleSheetRef + '
' + htmlData + '
';\n htmlData = htmlData.replace(/ transform: t/g, ' -webkit-transform: t');\n this.diagram.snapSettings.constraints = snapConstraints;\n this.diagram.dataBind();\n return htmlData;\n };\n /** @private */\n PrintAndExport.prototype.getDiagramContent = function (styleSheets) {\n if (this.diagram.scroller.currentZoom === 1) {\n var htmlData = this.getContent(styleSheets);\n /* tslint:disable */\n // eslint-disable-next-line quotes\n return checkBrowserInfo() ? htmlData.replace(\"url(\" + location.protocol + '//' + location.host + location.pathname + \"#diagram_pattern \", \"url(#diagram_pattern)\") : htmlData;\n /* tslint:enable */\n }\n else {\n var container = document.getElementById(this.diagram.element.id + 'content');\n var scrollerX = container.scrollLeft;\n var scrollerY = container.scrollTop;\n var oldZoom = this.diagram.scrollSettings.currentZoom;\n var oldHorizontalOffset = this.diagram.scroller.horizontalOffset;\n var oldVerticalOffset = this.diagram.scroller.verticalOffset;\n var oldWidth = Number(String(this.diagram.width).split('%')[0]) ?\n container.clientWidth : Number(String(this.diagram.width).split('px')[0]);\n var oldHeight = Number(String(this.diagram.height).split('%')[0]) ?\n container.clientHeight : Number(String(this.diagram.height).split('px')[0]);\n var bounds = this.getDiagramBounds('', {});\n this.diagram.scroller.zoom((1 / oldZoom));\n var scrollX_1 = 0;\n var scrollY_1 = 0;\n scrollX_1 = bounds.x;\n scrollY_1 = bounds.y;\n this.diagram.scroller.transform = {\n tx: -scrollX_1,\n ty: -scrollY_1,\n scale: this.diagram.scroller.currentZoom\n };\n this.diagram.scroller.horizontalOffset = -scrollX_1;\n this.diagram.scroller.verticalOffset = -scrollY_1;\n this.diagram.scroller.setSize();\n this.diagram.setSize(bounds.width, bounds.height);\n var htmlData = this.getContent(styleSheets);\n this.diagram.setSize(oldWidth, oldHeight);\n this.diagram.scroller.zoom(oldZoom / this.diagram.scrollSettings.currentZoom);\n this.diagram.dataBind();\n if (scrollerX || scrollerY) {\n this.diagram.setOffset(scrollerX, scrollerY);\n }\n else {\n this.diagram.scroller.transform = {\n tx: (oldHorizontalOffset) / this.diagram.scroller.currentZoom,\n ty: (oldVerticalOffset) / this.diagram.scroller.currentZoom,\n scale: this.diagram.scroller.currentZoom\n };\n this.diagram.scroller.horizontalOffset = oldHorizontalOffset;\n this.diagram.scroller.verticalOffset = oldVerticalOffset;\n }\n this.diagram.renderSelector(false);\n /* tslint:disable */\n // eslint-disable-next-line quotes\n return checkBrowserInfo() ? htmlData.replace(\"url(\" + location.protocol + '//' + location.host + location.pathname + \"#diagram_pattern \", \"url(#diagram_pattern)\") : htmlData;\n /* tslint:enable */\n }\n };\n /** @private */\n PrintAndExport.prototype.exportImages = function (image, options) {\n var _this = this;\n var region = options && options.region ? options.region : 'Content';\n var margin = options.margin || {};\n margin = {\n top: !isNaN(margin.top) ? margin.top : 0,\n bottom: !isNaN(margin.bottom) ? margin.bottom : 0,\n left: !isNaN(margin.left) ? margin.left : 0,\n right: !isNaN(margin.right) ? margin.right : 0\n };\n var bounds = this.getDiagramBounds(region, {});\n if (options.bounds) {\n bounds.x = (!isNaN(options.bounds.x) ? options.bounds.x : bounds.x);\n bounds.y = (!isNaN(options.bounds.y) ? options.bounds.y : bounds.y);\n bounds.width = (options.bounds.width || bounds.width);\n bounds.height = (options.bounds.height || bounds.height);\n }\n var img = document.createElement('img');\n var attr = {\n 'src': image\n };\n setAttributeHtml(img, attr);\n var context = this;\n img.onload = function () {\n var canvas = CanvasRenderer.createCanvas(context.diagram.element.id + 'innerImage', bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom));\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = context.diagram.pageSettings.background.color;\n ctx.fillRect(0, 0, bounds.width + (margin.left + margin.right), bounds.height + (margin.top + margin.bottom));\n ctx.drawImage(img, 0, 0, bounds.width, bounds.height, margin.left, margin.top, bounds.width, bounds.height);\n //898304 - exportImage function export images only in \"png\" format\n if (image && options.format === 'JPG') {\n image = canvas.toDataURL('image/jpeg');\n }\n else {\n image = canvas.toDataURL();\n }\n if (options.printOptions) {\n context.printImages(image, options);\n return;\n }\n ctx.restore();\n var fileName = options.fileName || 'diagram';\n _this.canvasMultiplePage(options, canvas, margin, image, fileName);\n };\n //898304 - exportImage function export images only in \"png\" format\n if (options.format === 'SVG') {\n this.exportDiagram(options);\n }\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n PrintAndExport.prototype.destroy = function () {\n /**\n * Destroys the Print and Export module\n */\n //833683 - unwire beforeunload event on destroy\n window.removeEventListener('beforeunload', this.closePrintWindow);\n this.printWindow = undefined;\n };\n /**\n * Get module name.\n */\n PrintAndExport.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'PrintandExport';\n };\n return PrintAndExport;\n}());\nexport { PrintAndExport };\n","import { Node } from '../objects/node';\nimport { Connector } from '../objects/connector';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { randomId, getFunction } from '../utility/base-util';\nimport { cloneBlazorObject } from '../utility/diagram-util';\nimport { updateDefaultValues } from '../utility/diagram-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * data source defines the basic unit of diagram\n */\nvar DataBinding = /** @class */ (function () {\n /**\n * Constructor for the data binding module.\n * @private\n */\n function DataBinding() {\n /** @private */\n this.dataTable = {};\n //constructs the data binding module\n }\n /**\n * To destroy the data binding module\n *\n * @returns {void}\n * @private\n */\n DataBinding.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n DataBinding.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'DataBinding';\n };\n /**\n * Initialize nodes and connectors when we have a data as JSON\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initData = function (data, diagram) {\n var dataSource;\n var dataProp = 'data';\n var jsonProp = 'json';\n var dataManager = data.dataManager || data.dataSource || {};\n dataSource = dataManager[\"\" + dataProp] || dataManager[\"\" + jsonProp] ||\n (dataManager.dataSource ? dataManager.dataSource.json : undefined);\n if (dataSource && dataSource.length === 0 && dataManager.dataSource.data) {\n dataSource = dataManager.dataSource.data;\n }\n if (dataSource && dataSource.length) {\n this.applyDataSource(data, dataSource, diagram);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n };\n /**\n * Initialize nodes and connector when we have a data as remote url\n *\n * @param {DataSourceModel} data\n * @param {Diagram} diagram\n * @private\n */\n DataBinding.prototype.initSource = function (data, diagram) {\n var _this = this;\n var dataSource = data;\n var result;\n var mapper = data;\n if (dataSource.dataManager instanceof DataManager || dataSource.dataSource instanceof DataManager) {\n var tempObj = mapper.dataManager || mapper.dataSource;\n var query = tempObj.defaultQuery || new Query();\n var dataManager = data.dataManager || data.dataSource;\n dataManager.executeQuery(query).then(function (e) {\n var prop = 'result';\n result = e[\"\" + prop];\n if (!diagram.isDestroyed) {\n diagram.protectPropertyChange(true);\n _this.applyDataSource(data, result, diagram);\n diagram.refreshDiagram();\n diagram.protectPropertyChange(false);\n diagram.trigger('dataLoaded', { diagram: (isBlazor()) ? null : cloneBlazorObject(diagram) });\n }\n });\n }\n };\n DataBinding.prototype.applyDataSource = function (mapper, data, diagram) {\n this.dataTable = {};\n var obj;\n var firstNode;\n var node;\n var rootNodes = [];\n var firstLevel = [];\n var item;\n var nextLevel;\n if (data !== undefined) {\n for (var r = 0; r < data.length; r++) {\n obj = data[parseInt(r.toString(), 10)];\n //832886 - Rendering layout without case sensitivity\n if (obj[mapper.parentId] === undefined || obj[mapper.parentId] === null ||\n typeof obj[mapper.parentId] !== 'object') {\n if (isNaN(obj[mapper.parentId]) && obj[mapper.parentId] !== undefined) {\n if (rootNodes[obj[mapper.parentId] ? obj[mapper.parentId].toLowerCase() : obj[mapper.parentId]] !== undefined) {\n rootNodes[obj[mapper.parentId].toLowerCase()].items.push(obj);\n }\n else {\n rootNodes[obj[mapper.parentId] ? obj[mapper.parentId].toLowerCase() : obj[mapper.parentId]] = { items: [obj] };\n }\n }\n else {\n if (rootNodes[obj[mapper.parentId]] !== undefined) {\n rootNodes[obj[mapper.parentId]].items.push(obj);\n }\n else {\n rootNodes[obj[mapper.parentId]] = { items: [obj] };\n }\n }\n }\n else {\n rootNodes = this.updateMultipleRootNodes(obj, rootNodes, mapper, data);\n }\n if (mapper.root && isNaN(mapper.root) && obj[mapper.id] && isNaN(obj[mapper.id])) {\n if ((mapper.root).toLowerCase() === obj[mapper.id].toLowerCase()) {\n firstNode = { items: [obj] };\n }\n }\n else {\n if (mapper.root === obj[mapper.id]) {\n firstNode = { items: [obj] };\n }\n }\n }\n if (firstNode) {\n firstLevel.push(firstNode);\n }\n else {\n for (var _i = 0, _a = Object.keys(rootNodes); _i < _a.length; _i++) {\n var n = _a[_i];\n if (!n || n === 'undefined' || n === '\\'\\'' || n === 'null') {\n firstLevel.push(rootNodes[\"\" + n]);\n }\n }\n }\n for (var i = 0; i < firstLevel.length; i++) {\n for (var j = 0; j < firstLevel[parseInt(i.toString(), 10)].items.length; j++) {\n item = firstLevel[parseInt(i.toString(), 10)].items[parseInt(j.toString(), 10)];\n node = this.applyNodeTemplate(mapper, item, diagram);\n diagram.nodes.push(node);\n if (isNaN(item[mapper.id]) && item[mapper.id] !== undefined) {\n this.dataTable[item[mapper.id].toLowerCase()] = node;\n }\n else {\n this.dataTable[item[mapper.id]] = node;\n }\n if (isNaN(node.data[mapper.id]) && node.data[mapper.id] !== undefined) {\n nextLevel = rootNodes[node.data[mapper.id].toLowerCase()];\n }\n else {\n nextLevel = rootNodes[node.data[mapper.id]];\n }\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rootNodes, diagram);\n }\n }\n }\n }\n this.dataTable = null;\n };\n /**\n * updateMultipleRootNodes method is used to update the multiple Root Nodes\n *\n * @param {Object} object\n * @param {Object[]} rootnodes\n * @param {DataSourceModel} mapper\n * @param {Object[]} data\n */\n DataBinding.prototype.updateMultipleRootNodes = function (obj, rootNodes, mapper, data) {\n var parents = obj[mapper.parentId];\n var parent;\n for (var i = 0; i < parents.length; i++) {\n if (parents[parseInt(i.toString(), 10)]) {\n if (isNaN(parents[parseInt(i.toString(), 10)])) {\n parent = (parents[parseInt(i.toString(), 10)]).toLowerCase();\n }\n else {\n parent = (parents[parseInt(i.toString(), 10)]);\n }\n if (rootNodes[\"\" + parent]) {\n rootNodes[\"\" + parent].items.push(obj);\n }\n else {\n rootNodes[\"\" + parent] = { items: [obj] };\n }\n }\n else {\n parent = parents[parseInt(i.toString(), 10)];\n if (rootNodes[\"\" + parent]) {\n rootNodes[\"\" + parent].items.push(obj);\n }\n else {\n rootNodes[\"\" + parent] = { items: [obj] };\n }\n }\n }\n return rootNodes;\n };\n /**\n * Get the node values\\\n *\n * @returns { Node } Get the node values.\\\n * @param {DataSourceModel} mapper - provide the id value.\n * @param {Object} item - provide the id value.\n * @param {Diagram} diagram - provide the id value.\n *\n * @private\n */\n DataBinding.prototype.applyNodeTemplate = function (mapper, item, diagram) {\n //const root: Object = item;\n var id = randomId();\n //const blazor: string = 'Blazor';\n var nodeModel = { id: id, data: item };\n //Task 895538: Flow-chart layout support for EJ2 diagram.\n //Added below code to set node shape and style based on the data.\n if (diagram.layout.type === 'Flowchart') {\n var shape = this.getFlowChartNodeShape(item);\n var style = { fill: item.color ? item.color : 'white',\n strokeColor: item.stroke ? item.stroke : 'black',\n strokeWidth: item.strokeWidth ? item.strokeWidth : 1\n };\n nodeModel.shape = shape;\n nodeModel.style = style;\n nodeModel.annotations = [{ content: item.name ? item.name : '' }];\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n var doBinding = getFunction(mapper.doBinding);\n if (doBinding) {\n doBinding(nodeModel, item, diagram);\n }\n var obj = new Node(diagram, 'nodes', nodeModel, true);\n updateDefaultValues(obj, nodeModel, diagram.nodeDefaults);\n if (mapper.dataMapSettings) {\n var index = void 0;\n var arrayProperty = [];\n var innerProperty = [];\n for (var i = 0; i < mapper.dataMapSettings.length; i++) {\n if (mapper.dataMapSettings[parseInt(i.toString(), 10)].property.indexOf('.') !== -1) {\n innerProperty = this.splitString(mapper.dataMapSettings[parseInt(i.toString(), 10)].property);\n for (var p = 0; p < innerProperty.length; p++) {\n if (innerProperty[parseInt(p.toString(), 10)].indexOf('[') !== -1) {\n index = innerProperty[parseInt(p.toString(), 10)].indexOf('[');\n arrayProperty = innerProperty[parseInt(p.toString(), 10)].split('[');\n }\n }\n if (index) {\n if (innerProperty[2]) {\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]][innerProperty[2]] =\n item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n var value = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n obj[arrayProperty[0]][innerProperty[0].charAt(index + 1)][innerProperty[1]] = value;\n }\n }\n else {\n if (innerProperty[2]) {\n obj[innerProperty[0]][innerProperty[1]][innerProperty[2]]\n = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n else {\n obj[innerProperty[0]][innerProperty[1]] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n }\n }\n else {\n var property = mapper.dataMapSettings[parseInt(i.toString(), 10)].property;\n property = property.charAt(0).toLowerCase() + property.slice(1);\n obj[\"\" + property] = item[mapper.dataMapSettings[parseInt(i.toString(), 10)].field];\n }\n index = 0;\n arrayProperty = [];\n innerProperty = [];\n }\n }\n if (!this.collectionContains(obj, diagram, mapper.id, mapper.parentId)) {\n return obj;\n }\n else {\n if (item[mapper.id] && isNaN(item[mapper.id])) {\n return this.dataTable[item[mapper.id].toLowerCase()];\n }\n else {\n return this.dataTable[item[mapper.id]];\n }\n }\n };\n DataBinding.prototype.getFlowChartNodeShape = function (data) {\n if (data.shape !== '') {\n switch (data.shape) {\n case 'Rectangle':\n return { type: 'Basic', shape: 'Rectangle' };\n case 'Decision':\n return { type: 'Flow', shape: 'Decision' };\n case 'Hexagon':\n return { type: 'Path', data: 'M 0 0 L 2 -2 L 11 -2 L 13 0 L 11 2 L 2 2 L 0 0' };\n case 'Ellipse':\n return { type: 'Basic', shape: 'Ellipse' };\n case 'Terminator':\n return { type: 'Flow', shape: 'Terminator' };\n case 'PredefinedProcess':\n return { type: 'Flow', shape: 'PreDefinedProcess' };\n case 'Parallelogram':\n return { type: 'Basic', shape: 'Parallelogram' };\n case 'ParallelogramAlt':\n return { type: 'Path', data: 'M 0 0 L 12 0 L 14 2 L 2 2 L 0 0' };\n case 'Trapezoid':\n return { type: 'Path', data: 'M 0 0 L 1 -1 L 5 -1 L 6 0 L 0 0' };\n case 'TrapezoidAlt':\n return { type: 'Path', data: 'M 0 0 L 5 0 L 4 1 L 1 1 L 0 0' };\n case 'DataSource':\n return { type: 'Path', data: 'M 0 1 L 0 6 C 2 7 4 7 6 6 L 6 1 C 5 0 1 0 0 1 C 1 2 5 2 6 1' };\n case 'Asymmetric':\n return { type: 'Path', data: 'M 0 0 L 8 0 L 8 2 L 0 2 L 2 1 L 0 0' };\n case 'DoubleCircle':\n return { type: 'Path', data: 'M 0 0 A 1 1 0 0 0 7 0 A 1 1 0 0 0 0 0 M -1 0 A 1 1 0 0 0 8 0 A 1 1 0 0 0 -1 0' };\n case 'Document':\n return { type: 'Flow', shape: 'Document' };\n case 'PaperTap':\n return { type: 'Flow', shape: 'PaperTap' };\n case 'DirectData':\n return { type: 'Flow', shape: 'DirectData' };\n case 'SequentialData':\n return { type: 'Flow', shape: 'SequentialData' };\n case 'Sort':\n return { type: 'Flow', shape: 'Sort' };\n case 'MultiDocument':\n return { type: 'Flow', shape: 'MultiDocument' };\n case 'Collate':\n return { type: 'Flow', shape: 'Collate' };\n case 'SummingJunction':\n return { type: 'Flow', shape: 'SummingJunction' };\n case 'Or':\n return { type: 'Flow', shape: 'Or' };\n case 'InternalStorage':\n return { type: 'Flow', shape: 'InternalStorage' };\n case 'Extract':\n return { type: 'Flow', shape: 'Extract' };\n case 'ManualOperation':\n return { type: 'Flow', shape: 'ManualOperation' };\n case 'Merge':\n return { type: 'Flow', shape: 'Merge' };\n case 'OffPageReference':\n return { type: 'Flow', shape: 'OffPageReference' };\n case 'SequentialAccessStorage':\n return { type: 'Flow', shape: 'SequentialAccessStorage' };\n case 'Data':\n return { type: 'Flow', shape: 'Data' };\n case 'Card':\n return { type: 'Flow', shape: 'Card' };\n case 'Delay':\n return { type: 'Flow', shape: 'Delay' };\n case 'Preparation':\n return { type: 'Flow', shape: 'Preparation' };\n case 'Display':\n return { type: 'Flow', shape: 'Display' };\n case 'ManualInput':\n return { type: 'Flow', shape: 'ManualInput' };\n case 'LoopLimit':\n return { type: 'Flow', shape: 'LoopLimit' };\n case 'StoredData':\n return { type: 'Flow', shape: 'StoredData' };\n case 'Annotation':\n return { type: 'Flow', shape: 'Annotation' };\n case 'Annotation2':\n return { type: 'Flow', shape: 'Annotation2' };\n default:\n return { type: 'Flow', shape: 'Process' };\n }\n }\n return { type: 'Flow', shape: 'Process' };\n };\n DataBinding.prototype.splitString = function (property) {\n var temp = [];\n temp = property.split('.');\n for (var i = 0; i < temp.length; i++) {\n temp[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)].charAt(0).toLowerCase()\n + temp[parseInt(i.toString(), 10)].slice(1);\n }\n return temp;\n };\n DataBinding.prototype.renderChildNodes = function (mapper, parent, value, rtNodes, diagram) {\n var child;\n var nextLevel;\n var node;\n for (var j = 0; j < parent.items.length; j++) {\n child = parent.items[parseInt(j.toString(), 10)];\n if (!child[mapper.id]) {\n continue;\n }\n node = this.applyNodeTemplate(mapper, child, diagram);\n var canBreak = false;\n if (!this.collectionContains(node, diagram, mapper.id, mapper.parentId)) {\n if (child[mapper.id] && isNaN(child[mapper.id])) {\n this.dataTable[child[mapper.id].toLowerCase()] = node;\n }\n else {\n this.dataTable[child[mapper.id]] = node;\n }\n diagram.nodes.push(node);\n }\n else {\n canBreak = true;\n }\n if (!this.containsConnector(diagram, value, node.id)) {\n diagram.connectors.push(this.applyConnectorTemplate(value, node.id, diagram));\n }\n if (!canBreak) {\n if (node.data[mapper.id] && isNaN(node.data[mapper.id])) {\n nextLevel = rtNodes[node.data[mapper.id].toLowerCase()];\n }\n else {\n nextLevel = rtNodes[node.data[mapper.id]];\n }\n if (nextLevel !== undefined) {\n this.renderChildNodes(mapper, nextLevel, node.id, rtNodes, diagram);\n }\n }\n }\n };\n // Bug 832897: Need to improve performance while rendering layout with large number of nodes.\n // Replaced for loop with some() method to improve performance.\n DataBinding.prototype.containsConnector = function (diagram, sourceNode, targetNode) {\n if (sourceNode === '' || targetNode === '') {\n return false;\n }\n return diagram.connectors.some(function (connector) {\n return connector !== undefined && connector.sourceID === sourceNode && connector.targetID === targetNode;\n });\n };\n /**\n * collectionContains method is used to check wthear the node is already present in collection or not\n *\n * @param {Node} node\n * @param {Diagram} diagram\n * @param {string} id\n * @param {string} parentId\n */\n DataBinding.prototype.collectionContains = function (node, diagram, id, parentId) {\n var obj;\n if (isNaN(node.data[\"\" + id]) && node.data[\"\" + id]) {\n obj = this.dataTable[node.data[\"\" + id].toLowerCase()];\n }\n else {\n obj = this.dataTable[node.data[\"\" + id]];\n }\n if (obj !== undefined && obj.data[\"\" + id] === node.data[\"\" + id] && obj.data[\"\" + parentId] === node.data[\"\" + parentId]) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Get the Connector values\n *\n * @param {string} sNode\n * @param {string} tNode\n * @param {Diagram} diagram\n */\n DataBinding.prototype.applyConnectorTemplate = function (sNode, tNode, diagram) {\n var connModel = {\n id: randomId(), sourceID: sNode, targetID: tNode\n };\n var arrowType;\n //Task 895538: Flow-chart layout support for EJ2 diagram.\n //Added below code to set connector annotation and style based on the data.\n if (diagram.layout.type === 'Flowchart') {\n var targetNode = diagram.nodes.find(function (node) { return node.id === tNode; });\n if (typeof targetNode.data.label === 'string') {\n connModel.annotations = [{ content: targetNode.data.label }];\n }\n else if (Array.isArray(targetNode.data.label)) {\n var inConnectors = diagram.connectors.filter(function (connector) { return connector.targetID === tNode; });\n var index = 0;\n if (inConnectors.length > 0) {\n index = inConnectors.length;\n }\n connModel.annotations = [{ content: targetNode.data.label[parseInt(index.toString(), 10)] }];\n }\n arrowType = this.getConnectorArrowType(targetNode.data);\n }\n var obj = new Connector(diagram, 'connectors', connModel, true);\n if (arrowType) {\n obj.style.strokeWidth = arrowType.strokeWidth;\n obj.targetDecorator.shape = arrowType.targetDecorator;\n }\n updateDefaultValues(obj, connModel, diagram.connectorDefaults);\n return obj;\n };\n DataBinding.prototype.getConnectorArrowType = function (data) {\n if (data.arrowType !== '') {\n switch (data.arrowType) {\n case 'None':\n return { targetDecorator: 'None', strokeWidth: 1 };\n case 'Arrow':\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n case 'Diamond':\n return { targetDecorator: 'Diamond', strokeWidth: 1 };\n case 'Circle':\n return { targetDecorator: 'Circle', strokeWidth: 1 };\n case 'OpenArrow':\n return { targetDecorator: 'OpenArrow', strokeWidth: 1 };\n case 'Square':\n return { targetDecorator: 'Square', strokeWidth: 1 };\n case 'Fletch':\n return { targetDecorator: 'Fletch', strokeWidth: 1 };\n case 'OpenFetch':\n return { targetDecorator: 'OpenFetch', strokeWidth: 1 };\n case 'IndentedArrow':\n return { targetDecorator: 'IndentedArrow', strokeWidth: 1 };\n case 'OutdentedArrow':\n return { targetDecorator: 'OutdentedArrow', strokeWidth: 1 };\n case 'DoubleArrow':\n return { targetDecorator: 'DoubleArrow', strokeWidth: 1 };\n default:\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n }\n else {\n return { targetDecorator: 'Arrow', strokeWidth: 1 };\n }\n };\n return DataBinding;\n}());\nexport { DataBinding };\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { remove } from '@syncfusion/ej2-base';\nimport { ContextMenu as Menu } from '@syncfusion/ej2-navigations';\nimport { contextMenuClick, contextMenuOpen, contextMenuBeforeItemRender } from '../enum/enum';\nimport { createHtmlElement } from '../../diagram/utility/dom-util';\n/**\n * @private\n */\nexport var menuClass = {\n content: '.e-diagramcontent',\n copy: 'e-copy',\n paste: 'e-paste',\n undo: 'e-undo',\n redo: 'e-redo',\n cut: 'e-cut',\n selectAll: 'e-selectall',\n grouping: 'e-grouping',\n group: 'e-group',\n unGroup: 'e-ungroup',\n bringToFront: 'e-bringfront',\n sendToBack: 'e-sendback',\n moveForward: 'e-bringforward',\n sendBackward: 'e-sendbackward',\n order: 'e-order'\n};\n/**\n * 'ContextMenu module used to handle context menu actions.'\n *\n * @private\n */\nvar DiagramContextMenu = /** @class */ (function () {\n function DiagramContextMenu(parent, service) {\n this.defaultItems = {};\n /**\n * @private\n */\n this.disableItems = [];\n /**\n * @private\n */\n this.hiddenItems = [];\n this.localeText = this.setLocaleKey();\n this.parent = parent;\n this.serviceLocator = service;\n this.addEventListener();\n }\n /**\n * addEventListener method \\\n *\n * @returns { void } addEventListener method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on('initial-load', this.render, this);\n };\n /**\n * removeEventListener method \\\n *\n * @returns { void } removeEventListener method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.removeEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off('initial-load', this.render);\n };\n DiagramContextMenu.prototype.render = function () {\n this.l10n = this.serviceLocator.getService('localization');\n this.element = createHtmlElement('ul', { id: this.parent.element.id + '_contextMenu' });\n this.parent.element.appendChild(this.element);\n var target = '#' + this.parent.element.id;\n this.contextMenu = new Menu({\n items: this.getMenuItems(),\n enableRtl: this.parent.enableRtl,\n enablePersistence: this.parent.enablePersistence,\n locale: this.parent.locale,\n target: target,\n select: this.contextMenuItemClick.bind(this),\n beforeOpen: this.contextMenuBeforeOpen.bind(this),\n onOpen: this.contextMenuOpen.bind(this),\n beforeItemRender: this.BeforeItemRender.bind(this),\n onClose: this.contextMenuOnClose.bind(this),\n cssClass: 'e-diagram-menu',\n animationSettings: { effect: 'None' }\n });\n this.contextMenu.appendTo(this.element);\n };\n DiagramContextMenu.prototype.getMenuItems = function () {\n var menuItems = [];\n var orderItems = [];\n var groupItems = [];\n if (!this.parent.contextMenuSettings.showCustomMenuOnly) {\n for (var _i = 0, _a = this.getDefaultItems(); _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.toLocaleLowerCase().indexOf('group') !== -1) {\n if (item.toLocaleLowerCase() !== 'grouping') {\n groupItems.push(this.buildDefaultItems(item));\n }\n }\n else if (item.toLocaleLowerCase().indexOf('order') !== -1) {\n if (item.toLocaleLowerCase() !== 'order') {\n orderItems.push(this.buildDefaultItems(item));\n }\n }\n else {\n menuItems.push(this.buildDefaultItems(item));\n }\n }\n var groupMenus = this.buildDefaultItems('grouping');\n groupMenus.items = groupItems;\n menuItems.push(groupMenus);\n var orderMenus = this.buildDefaultItems('order');\n orderMenus.items = orderItems;\n menuItems.push(orderMenus);\n }\n if (this.parent.contextMenuSettings.items) {\n for (var _b = 0, _c = this.parent.contextMenuSettings.items; _b < _c.length; _b++) {\n var customItem = _c[_b];\n menuItems.push(customItem);\n }\n }\n return menuItems;\n };\n DiagramContextMenu.prototype.contextMenuOpen = function () {\n this.isOpen = true;\n };\n DiagramContextMenu.prototype.BeforeItemRender = function (args) {\n this.parent.trigger(contextMenuBeforeItemRender, args);\n };\n DiagramContextMenu.prototype.contextMenuItemClick = function (args) {\n document.getElementById(this.parent.element.id + 'content').focus();\n this.parent.trigger(contextMenuClick, args);\n var item = this.getKeyFromId(args.item.id);\n if (!args.cancel) {\n switch (item) {\n case 'cut':\n this.parent.cut();\n break;\n case 'copy':\n this.parent.copy();\n break;\n case 'undo':\n this.parent.undo();\n break;\n case 'redo':\n this.parent.redo();\n break;\n case 'paste':\n this.parent.paste();\n break;\n case 'selectAll':\n this.parent.selectAll();\n break;\n case 'group':\n this.parent.group();\n break;\n case 'unGroup':\n this.parent.unGroup();\n break;\n case 'bringToFrontOrder':\n this.parent.bringToFront();\n break;\n case 'moveForwardOrder':\n this.parent.moveForward();\n break;\n case 'sendToBackOrder':\n this.parent.sendToBack();\n break;\n case 'sendBackwardOrder':\n this.parent.sendBackward();\n break;\n }\n }\n };\n DiagramContextMenu.prototype.contextMenuOnClose = function (args) {\n var parent = 'parentObj';\n if (args.items.length > 0 && args.items[0][\"\" + parent] instanceof Menu) {\n this.updateItemStatus();\n }\n };\n DiagramContextMenu.prototype.getLocaleText = function (item) {\n return this.l10n.getConstant(this.localeText[\"\" + item]);\n };\n DiagramContextMenu.prototype.updateItemStatus = function () {\n this.contextMenu.showItems(this.hiddenItems, true);\n this.contextMenu.enableItems(this.disableItems, false, true);\n this.hiddenItems = [];\n this.disableItems = [];\n this.isOpen = false;\n };\n /**\n * ensureItems method \\\n *\n * @returns { void } ensureItems method .\\\n * @param {MenuItemModel} item - provide the item value.\n * @param {Event} event - provide the event value.\n *\n * @private\n */\n DiagramContextMenu.prototype.ensureItems = function (item, event) {\n var key = this.getKeyFromId(item.id);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var dItem = this.defaultItems[\"\" + key];\n if (this.getDefaultItems().indexOf(key) !== -1) {\n if (item.target && (event || this.parent.checkMenu) &&\n !this.ensureTarget(item)) {\n this.hiddenItems.push(item.id);\n }\n }\n };\n /**\n * refreshItems method \\\n *\n * @returns { void } refreshItems method .\\\n *\n * @private\n */\n DiagramContextMenu.prototype.refreshItems = function () {\n this.updateItems();\n this.contextMenu.refresh();\n };\n DiagramContextMenu.prototype.updateItems = function () {\n var canInsert = true;\n for (var i = 0; i < this.parent.contextMenuSettings.items.length; i++) {\n var items = this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)];\n for (var j = 0; j < this.contextMenu.items.length; j++) {\n if (this.contextMenu.items[parseInt(j.toString(), 10)].text\n === this.parent.contextMenuSettings.items[parseInt(i.toString(), 10)].text) {\n canInsert = false;\n }\n }\n if (canInsert) {\n this.contextMenu.insertAfter([items], this.contextMenu.items[this.contextMenu.items.length - 1].text);\n }\n }\n };\n DiagramContextMenu.prototype.contextMenuBeforeOpen = function (args) {\n return __awaiter(this, void 0, void 0, function () {\n var diagramArgs, _i, _a, item, _b, _c, newItem, hidden, contextItems, i, item, i, item;\n return __generator(this, function (_d) {\n if (!this.parent.checkMenu &&\n (window.navigator.userAgent.indexOf('Linux') !== -1 || window.navigator.userAgent.indexOf('X11') !== -1)) {\n this.parent.checkMenu = args.cancel = true;\n }\n if (this.parent.checkMenu) {\n this.hiddenItems = [];\n }\n diagramArgs = args;\n diagramArgs.hiddenItems = [];\n for (_i = 0, _a = args.items; _i < _a.length; _i++) {\n item = _a[_i];\n this.ensureItems(item, args.event);\n if (item.items.length) {\n for (_b = 0, _c = item.items; _b < _c.length; _b++) {\n newItem = _c[_b];\n this.ensureItems(newItem, args.event);\n }\n }\n }\n this.eventArgs = args.event;\n //Removed isBlazor code\n this.parent.trigger(contextMenuOpen, diagramArgs);\n hidden = true;\n this.hiddenItems = this.hiddenItems.concat(diagramArgs.hiddenItems);\n this.contextMenu.enableItems(this.disableItems, false, true);\n contextItems = this;\n for (i = 0; i < args.items.length; i++) {\n item = args.items[parseInt(i.toString(), 10)];\n if (contextItems.hiddenItems.indexOf(item.id) > -1) {\n contextItems.contextMenu.hideItems([item.id], true);\n }\n }\n for (i = 0; i < contextItems.contextMenu.items.length; i++) {\n item = contextItems.contextMenu.items[parseInt(i.toString(), 10)];\n if (contextItems.hiddenItems.indexOf(item.id) === -1) {\n hidden = false;\n contextItems.contextMenu.showItems([item.id], true);\n }\n }\n if (hidden) {\n diagramArgs.cancel = hidden;\n this.hiddenItems = [];\n }\n /* tslint:disable */\n if (this.parent.selectedItems.nodes.length && this.parent.selectedItems.nodes[0].isPhase\n && !this.parent.contextMenuSettings.showCustomMenuOnly) {\n args.cancel = true;\n }\n return [2 /*return*/];\n });\n });\n };\n DiagramContextMenu.prototype.ensureTarget = function (item) {\n var selectedLength = this.parent.selectedItems.nodes.length +\n this.parent.selectedItems.connectors.length;\n var itemText = this.getKeyFromId(item.id);\n var target = false;\n switch (itemText) {\n case 'undo':\n target = this.parent.historyManager && this.parent.historyManager.canUndo ? true : false;\n break;\n case 'redo':\n target = this.parent.historyManager && this.parent.historyManager.canRedo ? true : false;\n break;\n case 'paste':\n target = this.parent.commandHandler.clipboardData.clipObject ? true : false;\n break;\n case 'selectAll':\n target = this.parent.nodes.length + this.parent.connectors.length ? true : false;\n break;\n case 'grouping':\n target = ((selectedLength > 1) || (this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children\n && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false;\n break;\n case 'group':\n target = selectedLength > 1;\n break;\n case 'unGroup':\n target = ((this.parent.selectedItems.nodes[0] && this.parent.selectedItems.nodes[0].children\n && this.parent.selectedItems.nodes[0].children.length > 1)) ? true : false;\n break;\n case 'cut':\n case 'copy':\n case 'order':\n case 'bringToFrontOrder':\n case 'moveForwardOrder':\n case 'sendToBackOrder':\n case 'sendBackwardOrder':\n target = selectedLength ? true : false;\n break;\n }\n return target;\n };\n /**\n *To destroy the context menu\n *\n * @returns {void} To destroy the context menu\n */\n DiagramContextMenu.prototype.destroy = function () {\n this.contextMenu.destroy();\n remove(this.element);\n this.removeEventListener();\n };\n DiagramContextMenu.prototype.getModuleName = function () {\n return 'contextMenu';\n };\n DiagramContextMenu.prototype.generateID = function (item) {\n return this.parent.element.id + '_contextMenu_' + item;\n };\n DiagramContextMenu.prototype.getKeyFromId = function (id) {\n return id.replace(this.parent.element.id + '_contextMenu_', '');\n };\n DiagramContextMenu.prototype.buildDefaultItems = function (item) {\n var menuItem;\n switch (item) {\n case 'copy':\n menuItem = { target: menuClass.content, iconCss: menuClass.copy };\n break;\n case 'cut':\n menuItem = { target: menuClass.content, iconCss: menuClass.cut };\n break;\n case 'paste':\n menuItem = { target: menuClass.content, iconCss: menuClass.paste };\n break;\n case 'undo':\n menuItem = { target: menuClass.content, iconCss: menuClass.undo };\n break;\n case 'redo':\n menuItem = { target: menuClass.content, iconCss: menuClass.redo };\n break;\n case 'grouping':\n menuItem = { target: menuClass.content };\n break;\n case 'group':\n menuItem = { target: menuClass.content, iconCss: menuClass.group };\n break;\n case 'unGroup':\n menuItem = { target: menuClass.content, iconCss: menuClass.unGroup };\n break;\n case 'order':\n menuItem = { target: menuClass.content, iconCss: menuClass.order };\n break;\n case 'bringToFrontOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.bringToFront };\n break;\n case 'moveForwardOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.moveForward };\n break;\n case 'sendToBackOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.sendToBack };\n break;\n case 'sendBackwardOrder':\n menuItem = { target: menuClass.content, iconCss: menuClass.sendBackward };\n break;\n case 'selectAll':\n menuItem = { target: menuClass.content };\n break;\n }\n this.defaultItems[\"\" + item] = {\n text: this.getLocaleText(item), id: this.generateID(item),\n target: menuItem.target, iconCss: menuItem.iconCss ? 'e-icons ' + menuItem.iconCss : ''\n };\n return this.defaultItems[\"\" + item];\n };\n DiagramContextMenu.prototype.getDefaultItems = function () {\n return [\n 'copy',\n 'cut', 'paste', 'undo', 'redo', 'selectAll', 'grouping', 'group', 'unGroup', 'order',\n 'bringToFrontOrder', 'moveForwardOrder', 'sendToBackOrder', 'sendBackwardOrder'\n ];\n };\n DiagramContextMenu.prototype.setLocaleKey = function () {\n return {\n 'copy': 'Copy',\n 'cut': 'Cut',\n 'paste': 'Paste',\n 'undo': 'Undo',\n 'redo': 'Redo',\n 'selectAll': 'SelectAll',\n 'grouping': 'Grouping',\n 'group': 'Group',\n 'unGroup': 'UnGroup',\n 'order': 'Order',\n 'bringToFrontOrder': 'BringToFront',\n 'moveForwardOrder': 'MoveForward',\n 'sendToBackOrder': 'SendToBack',\n 'sendBackwardOrder': 'SendBackward'\n };\n };\n return DiagramContextMenu;\n}());\nexport { DiagramContextMenu };\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n/* eslint-disable jsdoc/require-returns */\n/* eslint-disable jsdoc/require-param */\n/* eslint-disable valid-jsdoc */\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Lane } from './../objects/node';\nimport { DiagramElement } from './../core/elements/diagram-element';\nimport { Canvas } from './../core/containers/canvas';\nimport { Container } from './../core/containers/container';\nimport { PathElement } from './../core/elements/path-element';\nimport { TextElement } from './../core/elements/text-element';\nimport { updateStyle } from './../../diagram/utility/diagram-util';\nimport { randomId, cloneObject } from './../utility/base-util';\nimport { Diagram } from './../../diagram/diagram';\nimport { Transform } from '../enum/enum';\nimport { findAngle, getPortDirection } from '../utility/connector';\nimport { Point } from '../primitives/point';\nimport { NodeConstraints } from '../enum/enum';\nimport { PointPort } from './../objects/port';\nimport { Rect } from '../primitives/rect';\nimport { Size } from '../primitives/size';\nimport { getDiagramElement } from '../utility/dom-util';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { removeElement } from '../utility/dom-util';\n/**\n * BPMN Diagrams contains the BPMN functionalities\n */\nvar BpmnDiagrams = /** @class */ (function () {\n //End size region\n /**\n * Constructor for the BpmnDiagrams module\n *\n * @private\n */\n function BpmnDiagrams() {\n //Code conversion for Bpmn Shapes\n //Start Region\n /** @private */\n this.bpmnTextAnnotationConnector = [];\n //constructs the BpmnDiagrams module\n }\n /** @private */\n BpmnDiagrams.prototype.getSize = function (node, content) {\n var size = new Size(node.width, node.height);\n if (size.width === undefined || size.height === undefined) {\n if (!(content instanceof PathElement)) {\n size.width = size.width || 50;\n size.height = size.height || 50;\n }\n if (content.actualSize.width && content.actualSize.height) {\n return content.actualSize;\n }\n else {\n content.measure(new Size());\n size.width = size.width || content.desiredSize.width;\n size.height = size.height || content.desiredSize.height;\n }\n if (node.maxWidth !== undefined) {\n size.width = Math.min(size.width, node.maxWidth);\n }\n if (node.maxHeight !== undefined) {\n size.height = Math.min(size.height, node.maxHeight);\n }\n if (node.minWidth !== undefined) {\n size.width = Math.max(size.width, node.minWidth);\n }\n if (node.minHeight !== undefined) {\n size.height = Math.max(size.height, node.minHeight);\n }\n }\n return size;\n };\n /** @private */\n BpmnDiagrams.prototype.initBPMNContent = function (content, node, diagram) {\n var shape = node.shape;\n var bpmnShape = node.shape.shape;\n if (bpmnShape === 'Event') {\n content = this.getBPMNEventShape(node, shape.event);\n }\n if (bpmnShape === 'Gateway') {\n content = this.getBPMNGatewayShape(node);\n }\n if (bpmnShape === 'DataObject') {\n content = this.getBPMNDataObjectShape(node);\n }\n if (bpmnShape === 'Message' || bpmnShape === 'DataSource') {\n content = this.getBPMNShapes(node);\n }\n //848061-BPMN Group shape to be function Like Subprocess Node\n if (bpmnShape === 'Group') {\n //854195 - bpmn group serialization issue\n content = this.getBPMNGroup(node, diagram);\n content.style.strokeDashArray = '2 2 6 2';\n content.cornerRadius = 10;\n }\n if (bpmnShape === 'Activity') {\n content = this.getBPMNActivityShape(node);\n }\n //Task 866412: Should revamp BPMN text annotation node.\n if (bpmnShape === 'TextAnnotation') {\n if (node.parentObj instanceof Diagram || node.parentObj instanceof Lane) {\n content = this.getBpmnTextAnnotationShape(node, node.shape, diagram);\n }\n else {\n content = this.getBpmnTextAnnotationSymbol(node, node.shape, diagram);\n }\n }\n return content;\n };\n BpmnDiagrams.prototype.getBpmnTextAnnotationShape = function (textAnnotation, bpmnTextAnnotation, diagram) {\n var annotationsContainer = new Canvas();\n annotationsContainer.measureChildren = false;\n annotationsContainer.offsetX = textAnnotation.offsetX;\n annotationsContainer.offsetY = textAnnotation.offsetY;\n annotationsContainer.float = true;\n annotationsContainer.id = textAnnotation.id + \"_textannotation\";\n annotationsContainer.style.strokeColor = 'transparent';\n annotationsContainer.style.fill = 'transparent';\n annotationsContainer.relativeMode = 'Object';\n annotationsContainer.rotateAngle = 0;\n var width = textAnnotation.width;\n var height = textAnnotation.height;\n var bounds = new Rect(0, 0, 0, 0);\n if (width !== 0 && height !== 0) {\n bounds = new Rect(textAnnotation.offsetX - width / 2, textAnnotation.offsetY - height / 2, width, height);\n }\n var oldIsProtectedOnChange = diagram.isProtectedOnChange;\n diagram.isProtectedOnChange = false;\n this.setAnnotationPath(bounds, annotationsContainer, textAnnotation, bpmnTextAnnotation, bpmnTextAnnotation.textAnnotation.textAnnotationDirection, diagram);\n diagram.isProtectedOnChange = oldIsProtectedOnChange;\n return annotationsContainer;\n };\n //Task 866412: Should revamp BPMN text annotation node. To render text annotation in symbol palette.\n BpmnDiagrams.prototype.getBpmnTextAnnotationSymbol = function (annotation, bpmnTextAnnotation, diagram) {\n var data = 'M33.33,15 L0,43 M39.33,0 L33.33,0 L33.33,30 L39.33,30 M60,0';\n if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Top') {\n data = 'M15,33.33 L43,0 M0,39.33 L0,33.33 L30,33.33 L30,39.33 M0,60';\n }\n else if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Right') {\n data = 'M6,15 L39.33,43 M0,0 L6,0 L6,30 L0,30 M-20,0';\n }\n else if (bpmnTextAnnotation.textAnnotation.textAnnotationDirection === 'Bottom') {\n data = 'M15,6 L43,39.33 M0,0 L0,6 L30,6 L30,0 M0,-20';\n }\n var path = new PathElement();\n path.data = data;\n path.style.fill = 'transparent';\n return path;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNShapes = function (node) {\n var bpmnShape = new PathElement();\n //set style\n this.setStyle(bpmnShape, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n bpmnShape.shadow = node.shadow;\n }\n var bpmnShapeData = getBpmnShapePathData(node.shape.shape);\n bpmnShape.data = bpmnShapeData;\n bpmnShape.id = node.id + '_' + node.shape.shape;\n if (node.width !== undefined && node.height !== undefined) {\n bpmnShape.width = node.width;\n bpmnShape.height = node.height;\n }\n return bpmnShape;\n };\n //854195 - Method to add the children as canvas in the Bpmn group node container\n /** @private */\n BpmnDiagrams.prototype.getBPMNGroup = function (node, diagram) {\n var group = new Canvas();\n group.id = node.id + '_group';\n if (!group.children) {\n group.children = [];\n }\n var groupShapeObj = (node.shape.group);\n if (node.shape.group) {\n for (var i = 0; i < groupShapeObj.children.length; i++) {\n var child = diagram.nameTable[groupShapeObj.children[parseInt(i.toString(), 10)]];\n group.children.push(child.wrapper);\n }\n }\n group.width = node.width;\n group.height = node.height;\n return group;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNGatewayShape = function (node) {\n var gatewayshape = new Canvas();\n //childNode0\n var gatewayNode = new PathElement();\n gatewayNode.id = node.id + '_0_gateway';\n gatewayNode.offsetX = node.offsetX;\n gatewayNode.offsetY = node.offsetY;\n gatewayNode.data = 'M 40 20 L 20 40 L 0 20 L 20 0 L 40 20 Z';\n this.setStyle(gatewayNode, node);\n //childNode1\n var gatewayTypeNode = new PathElement();\n gatewayTypeNode.id = node.id + '_1_gatewayType';\n //set style - opacity\n gatewayTypeNode.style.opacity = node.style.opacity;\n gatewayTypeNode.style.strokeColor = node.style.strokeColor;\n gatewayTypeNode.horizontalAlignment = 'Center';\n gatewayTypeNode.verticalAlignment = 'Center';\n gatewayTypeNode.relativeMode = 'Object';\n var shapeType = node.shape.gateway;\n //let gatewayTypeNodeShapeData: string;\n var gatewayTypeNodeShapeData = getBpmnGatewayShapePathData(shapeType.type);\n if (shapeType.type === 'EventBased' || shapeType.type === 'ExclusiveEventBased' || shapeType.type === 'ParallelEventBased') {\n gatewayTypeNode.style.fill = 'white';\n }\n else {\n gatewayTypeNode.style.fill = 'black';\n }\n gatewayTypeNode.data = gatewayTypeNodeShapeData;\n // append child and set style\n gatewayshape.style.fill = 'transparent';\n gatewayshape.style.strokeColor = 'transparent';\n gatewayshape.style.strokeWidth = 0;\n gatewayshape.children = [gatewayNode, gatewayTypeNode];\n var size = this.getSize(node, gatewayNode);\n this.setSizeForBPMNGateway(node.shape.gateway, gatewayshape, size.width, size.height);\n return gatewayshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNDataObjectShape = function (node) {\n var dataObjectshape = new Canvas();\n var shape = node.shape.dataObject;\n //childNode0\n var dataobjNode = new PathElement();\n dataobjNode.id = node.id + '_0_dataobj';\n dataobjNode.data = 'M29.904,5 L7.853,5 L7.853,45 L42.147,45 L42.147,17.242,L29.932,5,L29.932,17.242,L42.147,17.242';\n var size = this.getSize(node, dataobjNode);\n dataobjNode.width = size.width;\n dataobjNode.height = size.height;\n this.setStyle(dataobjNode, node);\n //childNode1\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_type';\n dataobjTypeNode.width = 25;\n dataobjTypeNode.height = 20;\n dataobjTypeNode.margin.left = 5;\n dataobjTypeNode.margin.top = 5;\n dataobjTypeNode.data = 'M 3 9.4 l 6 0 v 2.4 l 3.6 -4 L 9 4 v 2.5 H 3 V 9.4 Z';\n //set style - opacity\n dataobjTypeNode.style.opacity = node.style.opacity;\n //childNode2\n var dataobjCollectionNode = new PathElement();\n dataobjCollectionNode.id = node.id + '_2_collection';\n dataobjCollectionNode.width = 7.5;\n dataobjCollectionNode.height = 15;\n dataobjCollectionNode.style.fill = 'black';\n dataobjCollectionNode.visible = true;\n dataobjCollectionNode.horizontalAlignment = 'Center';\n dataobjCollectionNode.verticalAlignment = 'Bottom';\n dataobjCollectionNode.relativeMode = 'Object';\n //set style - opacity\n dataobjCollectionNode.style.opacity = node.style.opacity;\n dataobjCollectionNode.data = 'M 0 0 L 0.1 0 L 0.1 2 L 0 2 Z M 0.4 0 L 0.6 0 L 0.6 2 L0.4 2 Z M 0.9 0 L 1 0 L 1 2 L 0.9 2 Z';\n switch (shape.type) {\n case 'None':\n dataobjTypeNode.visible = false;\n break;\n case 'Input':\n dataobjTypeNode.style.fill = 'white';\n break;\n case 'Output':\n dataobjTypeNode.style.fill = 'black';\n break;\n }\n if (shape.collection === false) {\n dataobjCollectionNode.visible = false;\n }\n //append child and set style\n dataObjectshape.style.fill = 'transparent';\n dataObjectshape.style.strokeColor = 'transparent';\n dataObjectshape.style.strokeWidth = 0;\n dataObjectshape.children = [dataobjNode, dataobjTypeNode, dataobjCollectionNode];\n return dataObjectshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNTaskShape = function (node) {\n var shape = node.shape.activity;\n var task = shape.task;\n var taskShapes = new Canvas();\n //childNode0\n var taskNode = new DiagramElement();\n taskNode.cornerRadius = 10;\n var size = this.getSize(node, taskNode);\n taskNode.id = node.id + '_0_task';\n taskNode.width = size.width;\n taskNode.height = size.height;\n this.setStyle(taskNode, node);\n // if task as call\n if ((task.call !== undefined) && task.call === true) {\n taskNode.style.strokeWidth = 4;\n }\n taskShapes.width = size.width;\n taskShapes.height = size.height;\n var childCount = this.getTaskChildCount(node);\n var x;\n var childSpace = childCount * 12;\n var area = size.width / 2 - childSpace;\n if (childCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (childCount - 1) * 8;\n }\n //childNode1\n var taskTypeNode = new PathElement();\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n }\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n var taskTypeNodeData = getBpmnTaskShapePathData(task.type);\n taskTypeNode.data = taskTypeNodeData;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n // append child and set style\n taskShapes.style.fill = 'transparent';\n taskShapes.style.strokeColor = 'transparent';\n taskShapes.style.strokeWidth = 0;\n taskShapes.children = [taskNode, taskTypeNode];\n //childnode for service\n if (task.type === 'Service') {\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = taskTypeNodeData;\n taskTypeNodeService.margin.left = taskTypeNode.margin.left + 9;\n taskTypeNodeService.margin.top = taskTypeNode.margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n taskShapes.children.push(taskTypeNodeService);\n }\n // if task as loop\n var loopType = task.loop;\n var taskLoopNode = new PathElement(); //let childNode2data: string;\n var childNode2data = getBpmnLoopShapePathData(loopType);\n taskLoopNode.data = childNode2data;\n taskLoopNode.style.fill = 'black';\n if (loopType !== 'None') {\n taskLoopNode.visible = true;\n }\n else {\n taskLoopNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n //891296: Position of BPMN activity loop node is not proper while save and load\n taskLoopNode.margin.left = x - 3;\n if (taskLoopNode.visible === true) {\n x += 12 + 8;\n }\n taskLoopNode.width = 12;\n taskLoopNode.height = 12;\n taskLoopNode.margin.bottom = 5;\n taskLoopNode.id = node.id + '_2_loop';\n taskLoopNode.horizontalAlignment = 'Left';\n taskLoopNode.verticalAlignment = 'Bottom';\n taskLoopNode.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n taskLoopNode.relativeMode = 'Point';\n taskLoopNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n taskShapes.children.push(taskLoopNode);\n //if task as compensation\n var taskCompNode = new PathElement();\n taskCompNode = this.getBPMNCompensationShape(node, taskCompNode);\n if (task.compensation === true) {\n taskCompNode.visible = true;\n }\n else {\n taskCompNode.visible = false;\n }\n if (childCount === 1) {\n x = area + 9;\n }\n taskCompNode.margin.left = x - 3;\n x += 12 + 6;\n taskShapes.children.push(taskCompNode);\n return taskShapes;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNEventShape = function (node, subEvent, sub, id) {\n var eventshape = new Canvas();\n var event;\n var trigger;\n var width;\n var height;\n id = id || node.id;\n var pathdata = 'M164.1884,84.6909000000001C156.2414,84.6909000000001,149.7764,78.2259000000001,149.7764,70.2769000000001' +\n 'C149.7764,62.3279000000001,156.2414,55.8629000000001,164.1884,55.8629000000001C172.1354,55.8629000000001,178.6024,' +\n '62.3279000000001,178.6024,70.2769000000001C178.6024,78.2259000000001,172.1354,84.6909000000001,164.1884,84.6909000000001';\n var shapeEvent = node.shape.event;\n if ((!isBlazor() && node.shape.shape === 'Event')) {\n event = shapeEvent.event;\n trigger = shapeEvent.trigger;\n }\n width = subEvent.width;\n height = subEvent.height;\n if (sub) {\n width = width || 20;\n height = height || 20;\n }\n else if (subEvent.width === undefined || subEvent.height === undefined) {\n var pathElement = new PathElement();\n pathElement.data = pathdata;\n var size = this.getSize(node, pathElement);\n width = size.width;\n height = size.height;\n }\n var shapeActivity = node.shape.activity;\n if ((!isBlazor() && node.shape.shape === 'Activity')) {\n var subProcess = shapeActivity.subProcess;\n event = subEvent.event;\n trigger = subEvent.trigger;\n }\n //childNode0\n var innerEvtNode = new PathElement();\n innerEvtNode.data = pathdata;\n innerEvtNode.id = id + '_0_event';\n innerEvtNode.width = width;\n innerEvtNode.height = height;\n innerEvtNode.horizontalAlignment = 'Center';\n innerEvtNode.verticalAlignment = 'Center';\n innerEvtNode.relativeMode = 'Object';\n this.setStyle(innerEvtNode, node);\n //childNode1\n var outerEvtNode = new PathElement();\n outerEvtNode.data = pathdata;\n outerEvtNode.id = id + '_1_event';\n outerEvtNode.style.gradient = node.style.gradient;\n outerEvtNode.horizontalAlignment = 'Center';\n outerEvtNode.verticalAlignment = 'Center';\n outerEvtNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n outerEvtNode.style.strokeColor = node.style.strokeColor;\n outerEvtNode.style.opacity = node.style.opacity;\n //childNode2\n var triggerNode = new PathElement();\n var triggerNodeData = getBpmnTriggerShapePathData(trigger);\n triggerNode.data = triggerNodeData;\n triggerNode.id = id + '_2_trigger';\n triggerNode.horizontalAlignment = 'Center';\n triggerNode.verticalAlignment = 'Center';\n triggerNode.relativeMode = 'Object';\n // set style opacity & strokeColor\n triggerNode.style.strokeColor = node.style.strokeColor;\n triggerNode.style.opacity = node.style.opacity;\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n case 'Intermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n break;\n case 'NonInterruptingIntermediate':\n innerEvtNode.style.fill = node.style.fill;\n innerEvtNode.style.gradient = null;\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.style.strokeDashArray = '2 3';\n break;\n case 'ThrowingIntermediate':\n case 'End':\n innerEvtNode.style.fill = event !== 'End' ? node.style.fill : node.style.fill !== 'white' ? node.style.fill : 'black';\n innerEvtNode.style.gradient = null;\n triggerNode.style.fill = 'black';\n triggerNode.style.strokeColor = 'white';\n break;\n }\n //append child and set style\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n eventshape.children = [innerEvtNode, outerEvtNode, triggerNode];\n this.setSizeForBPMNEvents(shapeEvent, eventshape, width, height);\n return eventshape;\n };\n BpmnDiagrams.prototype.setEventVisibility = function (node, canvas) {\n var event = node.shape.event.event;\n var innerEvtNode = canvas[0];\n var outerEvtNode = canvas[1];\n var triggerNode = canvas[2];\n switch (event) {\n case 'Start':\n outerEvtNode.visible = false;\n break;\n case 'NonInterruptingStart':\n innerEvtNode.style.strokeDashArray = '2 3';\n outerEvtNode.visible = false;\n break;\n }\n };\n BpmnDiagrams.prototype.setSubProcessVisibility = function (node) {\n var subProcess = node.shape.activity.subProcess;\n var eventLength = subProcess.events.length;\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n var elementWrapper = node.wrapper.children[0].children[0];\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index + eventLength].visible = false;\n }\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index + eventLength].visible = false;\n }\n if (eventLength > 0) {\n for (var i = 0; i < eventLength; i++) {\n this.setEventVisibility(node, elementWrapper.children[2 + i].children);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessShape = function (node) {\n var subProcessShapes = new Canvas();\n var loopType;\n var events;\n var event;\n var subprocessAdhoc = new PathElement();\n var subProcessEventsShapes = new Canvas();\n var subProcessLoopShapes = new PathElement();\n var shape = node.shape.activity;\n var subProcess = shape.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var subprocessNode = new DiagramElement();\n subprocessNode.id = node.id + '_0_Subprocess';\n subprocessNode.style.fill = 'transparent';\n subprocessNode.cornerRadius = 10;\n var size = this.getSize(node, subprocessNode);\n subprocessNode.width = size.width;\n subprocessNode.height = size.height;\n subProcessShapes.children = [subprocessNode];\n if (shape.subProcess.type === 'Transaction') {\n this.getBPMNSubProcessTransaction(node, node.shape, subProcessShapes);\n }\n var iconSpace = 4;\n var subChildSpace = 12;\n var childSpace = subChildCount * subChildSpace;\n var area = size.width / 2;\n if (subChildCount === 1) {\n x = area - (subChildSpace * 0.5);\n }\n else {\n x = area - (childSpace / 2) - ((subChildCount - 1) * iconSpace) / 2;\n }\n //set style\n this.setStyle(subprocessNode, node);\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n subProcessShapes.shadow = node.shadow;\n }\n var collapsedShape = new PathElement();\n collapsedShape.id = node.id + '_0_collapsed';\n collapsedShape.width = 12;\n collapsedShape.height = 12;\n collapsedShape.style.fill = 'black';\n collapsedShape.style.strokeColor = node.style.strokeColor;\n collapsedShape.margin.bottom = 5;\n collapsedShape.style.opacity = node.style.opacity;\n collapsedShape.horizontalAlignment = 'Left';\n collapsedShape.verticalAlignment = 'Bottom';\n collapsedShape.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n collapsedShape.relativeMode = 'Point';\n collapsedShape.data = getBpmnShapePathData('collapsedShape');\n collapsedShape.margin.left = x;\n if (subProcess.collapsed === true && !subProcess.processes) {\n collapsedShape.visible = true;\n }\n else {\n collapsedShape.visible = false;\n }\n if (collapsedShape.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessShapes.children.push(collapsedShape);\n if (subProcess.type === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n events = subProcess.events;\n for (var i = 0; i < events.length; i++) {\n event = events[parseInt(i.toString(), 10)];\n this.getBPMNSubEvent(event, node, subProcessShapes);\n }\n }\n // set loop for subprocess\n subProcessLoopShapes = this.getBPMNSubProcessLoopShape(node);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subProcessLoopShapes.margin.left = x;\n if (subProcessLoopShapes.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subProcessLoopShapes.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subProcessLoopShapes);\n // set boundary for subprocess\n subprocessNode.id = node.id + '_boundary';\n if (subProcess.boundary === 'Default') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n subprocessNode.style.strokeWidth = 4;\n subprocessNode.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n subprocessNode.style.strokeWidth = 1;\n subprocessNode.style.strokeDashArray = '2 2';\n }\n //set adhoc for subprocess\n subprocessAdhoc = this.getBPMNAdhocShape(node, subprocessAdhoc, subProcess);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subprocessAdhoc.margin.left = x;\n if (subprocessAdhoc.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subprocessAdhoc.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subprocessAdhoc);\n //set compensation for subprocess\n var subprocessComp = new PathElement();\n if (subProcess.compensation === true) {\n subprocessComp.visible = true;\n }\n else {\n subprocessComp.visible = false;\n }\n subprocessComp = this.getBPMNCompensationShape(node, subprocessComp);\n if (subChildCount === 1) {\n x = area - 6;\n }\n subprocessComp.margin.left = x;\n if (subprocessComp.visible === true) {\n x += subChildSpace + iconSpace;\n }\n subprocessComp.style.opacity = node.style.opacity;\n subProcessShapes.children.push(subprocessComp);\n //set style for subprocess\n subProcessShapes.style.strokeColor = 'transparent';\n subProcessShapes.style.strokeWidth = 0;\n subProcessShapes.style.fill = 'transparent';\n return subProcessShapes;\n };\n BpmnDiagrams.prototype.getBPMNSubEvent = function (event, node, container, id) {\n container.children = container.children || [];\n //let eventContainer: Canvas;\n var eventContainer = this.getBPMNEventShape(node, event, true, id);\n this.getBPMNSubprocessEvent(node, eventContainer, event);\n eventContainer.id = id || (node.id + '_subprocessEvents');\n eventContainer.width = event.width || 20;\n eventContainer.height = event.height || 20;\n // set offset for subevents\n eventContainer.setOffsetWithRespectToBounds(event.offset.x, event.offset.y, 'Fraction');\n eventContainer.relativeMode = 'Point';\n //set margin for subevents\n eventContainer.margin = event.margin;\n //set alignment for subevents\n eventContainer.horizontalAlignment = event.horizontalAlignment;\n eventContainer.verticalAlignment = event.verticalAlignment;\n // set style for subevent\n eventContainer.style.fill = 'transparent';\n eventContainer.style.strokeColor = 'transparent';\n eventContainer.style.strokeWidth = 0;\n container.children.push(eventContainer);\n };\n BpmnDiagrams.prototype.getBPMNSubProcessTransaction = function (node, shape, container) {\n var shapeWidth = container.children[0].width;\n var shapeHeight = container.children[0].height;\n var innerRect = new DiagramElement();\n innerRect.margin = { left: 3, right: 0, top: 3, bottom: 0 };\n innerRect.id = node.id + '_0_Subprocess_innnerRect';\n innerRect.cornerRadius = 10;\n innerRect.width = shapeWidth - 6;\n //EJ2-824711 - Fill color is not applied properly for BPMN transaction subProcess.\n innerRect.style.fill = 'transparent';\n innerRect.height = shapeHeight - 6;\n container.children.push(innerRect);\n var transactionEvents = new Canvas();\n transactionEvents.id = node.id + '_transaction_events';\n transactionEvents.style.gradient = node.style.gradient;\n var transaction = shape.activity.subProcess.transaction;\n this.getBPMNSubEvent(transaction.success, node, transactionEvents, node.id + '_success');\n this.getBPMNSubEvent(transaction.cancel, node, transactionEvents, node.id + '_cancel');\n this.getBPMNSubEvent(transaction.failure, node, transactionEvents, node.id + '_failure');\n this.updateDiagramContainerVisibility(transactionEvents.children[0], transaction.success.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[1], transaction.cancel.visible);\n this.updateDiagramContainerVisibility(transactionEvents.children[2], transaction.failure.visible);\n transactionEvents.float = true;\n transactionEvents.width = shapeWidth;\n transactionEvents.height = shapeHeight;\n transactionEvents.style.fill = transactionEvents.style.strokeColor = 'transparent';\n container.children.push(transactionEvents);\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubProcessLoopShape = function (node) {\n var shape = node.shape.activity;\n var loopType;\n var subprocessLoop = new PathElement();\n var subprocessLoopData;\n var subProcess = shape.subProcess;\n // eslint-disable-next-line prefer-const\n loopType = subProcess.loop;\n // eslint-disable-next-line prefer-const\n subprocessLoopData = getBpmnLoopShapePathData(loopType);\n if (loopType !== 'None') {\n subprocessLoop.visible = true;\n }\n else {\n subprocessLoop.visible = false;\n }\n subprocessLoop.id = node.id + '_loop';\n subprocessLoop.data = subprocessLoopData;\n subprocessLoop.style.fill = 'black';\n subprocessLoop.width = 12;\n subprocessLoop.height = 12;\n subprocessLoop.horizontalAlignment = 'Left';\n subprocessLoop.verticalAlignment = 'Bottom';\n subprocessLoop.setOffsetWithRespectToBounds(0, 1, 'Fraction');\n subprocessLoop.relativeMode = 'Point';\n subprocessLoop.margin.bottom = 5;\n subprocessLoop.style.fill = 'transparent';\n subprocessLoop.style.strokeColor = node.style.strokeColor;\n return subprocessLoop;\n };\n /** @private */\n BpmnDiagrams.prototype.drag = function (obj, tx, ty, diagram) {\n var node = diagram.nameTable[(obj).processId];\n if (obj.margin.top + ty >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { top: obj.margin.top + ty } });\n }\n if (obj.margin.left + tx >= 0) {\n diagram.nodePropertyChange(obj, {}, { margin: { left: obj.margin.left + tx } });\n }\n //const diffX: number = 0;\n //const diffY: number = 0;\n var bound = this.getChildrenBound(node, obj.id, diagram);\n this.updateSubProcessess(bound, obj, diagram);\n node.wrapper.measure(new Size(undefined, undefined));\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n this.updateDocks(obj, diagram);\n };\n /** @private */\n BpmnDiagrams.prototype.dropBPMNchild = function (target, source, diagram) {\n if (source && source.shape.type === 'Bpmn' && target.shape.type === 'Bpmn'\n && (!isBlazor() && source.shape.shape !== 'TextAnnotation')) {\n var subProcess = diagram.nameTable[target.id].shape.activity.subProcess;\n if (diagram.currentSymbol && target.shape.type === 'Bpmn' && !subProcess.collapsed) {\n source.processId = target.id;\n return;\n }\n subProcess.processes = subProcess.processes || [];\n if (subProcess.processes && subProcess.processes.indexOf(source.id) === -1 && !subProcess.collapsed) {\n subProcess.processes.push(source.id);\n // To arrange the process based on zIndex, which cause issue in save and load.\n if (subProcess.processes.length > 1) {\n this.sortProcessOrder(subProcess.processes, diagram);\n }\n var redoElement = cloneObject(source);\n var sources = diagram.nameTable[source.id].wrapper;\n var targetWrapper = diagram.nameTable[target.id].wrapper;\n sources.margin.top = (sources.offsetY - (sources.actualSize.height / 2))\n - (target.offsetY - (target.actualSize.height / 2));\n sources.margin.left = (sources.offsetX - (sources.actualSize.width / 2))\n - (target.offsetX - (target.actualSize.width / 2));\n sources.margin.top = (sources.margin.top < 0) ? 0 : sources.margin.top;\n sources.margin.left = (sources.margin.left < 0) ? 0 : sources.margin.left;\n diagram.nameTable[source.id].processId = target.id;\n targetWrapper.children.push(diagram.nameTable[source.id].wrapper);\n //To identify the processess added at runtime.\n diagram.nameTable[source.id].wrapper.isDroppedProcess = true;\n var bound = this.getChildrenBound(target, source.id, diagram);\n this.updateSubProcessess(bound, source, diagram);\n targetWrapper.measure(new Size(undefined, undefined));\n targetWrapper.arrange(targetWrapper.desiredSize);\n diagram.refreshCanvasLayers();\n diagram.updateSelector();\n // 908136: Node goes behind the subprocess and the connector connected to it is destroyed Issue Fix by commenting these lines\n // let edges: string[] = [];\n // edges = edges.concat((source as Node).outEdges, (source as Node).inEdges);\n // for (let i: number = edges.length - 1; i >= 0; i--) {\n // if (diagram.bpmnModule.bpmnTextAnnotationConnector.indexOf(diagram.nameTable[edges[parseInt(i.toString(), 10)]])\n // === -1) {\n // diagram.remove(diagram.nameTable[edges[parseInt(i.toString(), 10)]]);\n // }\n // }\n var obj = cloneObject(source);\n var entry = {\n type: 'PositionChanged', undoObject: { nodes: [redoElement] },\n redoObject: { nodes: [obj] }, category: 'Internal'\n };\n diagram.addHistoryEntry(entry);\n if (diagram.mode === 'SVG') {\n if (source.zIndex < target.zIndex) {\n diagram.updateProcesses(source);\n this.updateSubprocessNodeIndex(source, diagram, target);\n }\n }\n this.updateDocks(source, diagram);\n }\n }\n };\n BpmnDiagrams.prototype.sortProcessOrder = function (processes, diagram) {\n // Sort the process array based on node zIndex\n processes.sort(function (a, b) { return diagram.nameTable[\"\" + a].zIndex - diagram.nameTable[\"\" + b].zIndex; });\n };\n BpmnDiagrams.prototype.updateIndex = function (diagram, source) {\n //let processNode: Node;\n var processNode = source;\n var nodeindex = diagram.getIndex(processNode, processNode.id);\n diagram.nodes.splice(Number(nodeindex), 1);\n processNode.zIndex = diagram.nodes[diagram.nodes.length - 1].zIndex + 1;\n diagram.nodes.push(processNode);\n };\n BpmnDiagrams.prototype.updateSubprocessNodeIndex = function (source, diagram, target) {\n if (source.shape.activity.subProcess.processes\n && source.shape.activity.subProcess.processes.length > 0) {\n for (var i = 0; i < source.shape.activity.subProcess.processes.length; i++) {\n this.updateIndex(diagram, source);\n var processes = source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)];\n if (diagram.nameTable[\"\" + processes].shape.activity.subProcess.processes.length > 0) {\n this.updateSubprocessNodeIndex(diagram.nameTable[\"\" + processes], diagram, target);\n }\n else {\n var node = diagram.nameTable[source.shape.activity.subProcess.processes[parseInt(i.toString(), 10)]];\n this.updateIndex(diagram, node);\n }\n }\n }\n else {\n this.updateIndex(diagram, source);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateDocks = function (obj, diagram) {\n if (obj.shape.type === 'Bpmn' && obj.shape.activity.subProcess.processes &&\n !obj.shape.activity.subProcess.collapsed) {\n var processTable = obj.shape.activity.subProcess.processes;\n for (var _i = 0, processTable_1 = processTable; _i < processTable_1.length; _i++) {\n var i = processTable_1[_i];\n var actualObject = diagram.nameTable[\"\" + i];\n if (actualObject) {\n diagram.updateConnectorEdges(actualObject);\n actualObject.wrapper.measure(new Size(actualObject.wrapper.width, actualObject.wrapper.height));\n actualObject.wrapper.arrange(actualObject.wrapper.desiredSize);\n if (actualObject.shape.activity.subProcess.processes\n && actualObject.shape.activity.subProcess.processes.length) {\n this.updateDocks(actualObject, diagram);\n }\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeBpmnProcesses = function (currentObj, diagram) {\n var element = diagram.nameTable[currentObj.processId];\n if (currentObj.shape.type === 'Bpmn' && currentObj.shape.activity.subProcess.processes &&\n currentObj.shape.activity.subProcess.processes.length > 0) {\n var processes = currentObj.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n diagram.remove(diagram.nameTable[processes[parseInt(j.toString(), 10)]]);\n }\n }\n if (element) {\n diagram.removeDependentConnector(currentObj);\n var processes = element.shape.activity.subProcess.processes;\n this.removeChildFromBPMN(element.wrapper, currentObj.id, diagram, true);\n var processIndex = processes.indexOf(currentObj.id);\n processes.splice(processIndex, 1);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.removeChildFromBPMN = function (wrapper, name, diagram, isDelete) {\n for (var _i = 0, _a = wrapper.children; _i < _a.length; _i++) {\n var i = _a[_i];\n if (i.id === name) {\n wrapper.children.splice(wrapper.children.indexOf(i), 1);\n if (!i.isDroppedProcess && !isDelete) {\n // To remove the child node from subprocess to diagram in DOM.\n this.removeGElement(i.id, diagram);\n }\n }\n else if (i.children) {\n this.removeChildFromBPMN(i, name, diagram, isDelete);\n }\n }\n };\n //Bug 858761: Default Tooltip of sub-process node is not positioned properly after drag and drop the child of subprocess in diagram.\n // To remove the child node from subprocess to diagram in DOM.\n BpmnDiagrams.prototype.removeGElement = function (id, diagram) {\n var element = document.getElementById(id + '_groupElement');\n var diagramLayer = document.getElementById(diagram.element.id + '_diagramLayer');\n var parent = element.parentElement;\n parent.removeChild(element);\n diagramLayer.appendChild(element);\n var node = diagram.nameTable[\"\" + id];\n var subProcess = diagram.nameTable[\"\" + node.processId];\n var beforeIndex = node.zIndex + 1;\n var getNode = this.getNode(beforeIndex, diagram);\n if (getNode.length > 0) {\n var neighborElement_1 = document.getElementById(getNode[0].id + '_groupElement');\n var index = Array.from(diagramLayer.children).findIndex(function (child) { return child === neighborElement_1; });\n var domIndex = index !== -1 ? index : 1;\n // 889550: issue with dragging process nodes of the sub process\n // Remove the adjacent element of the node which z index is lessthan subprocess z index\n if (node.zIndex < subProcess.zIndex) {\n diagramLayer.children[parseInt(domIndex.toString(), 10)].insertAdjacentElement('beforebegin', element);\n }\n }\n };\n BpmnDiagrams.prototype.getNode = function (index, diagram) {\n var getNode = diagram.nodes.filter(function (x) { return x.zIndex === index; });\n if (getNode.length === 0 && index > 0) {\n return this.getNode(index - 1, diagram);\n }\n return getNode;\n };\n /** @private */\n BpmnDiagrams.prototype.removeProcess = function (id, diagram) {\n var node = diagram.nameTable[\"\" + id];\n if (node) {\n var parent_1 = diagram.nameTable[node.processId];\n if (parent_1 && parent_1.shape.type === 'Bpmn') {\n var processes = parent_1.shape.activity.subProcess.processes;\n diagram.removeDependentConnector(node);\n this.removeChildFromBPMN(parent_1.wrapper, id, diagram, true);\n var processIndex = processes.indexOf(id);\n processes.splice(processIndex, 1);\n node.processId = '';\n diagram.refreshDiagramLayer();\n diagram.updateSelector();\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.addProcess = function (process, parentId, diagram) {\n //let id: string;\n process.id = process.id || randomId();\n var id = process.id;\n var node = diagram.nameTable[\"\" + id];\n if (!node) {\n diagram.add(process);\n }\n process.processId = parentId;\n var parentNode = diagram.nameTable[\"\" + parentId];\n var subProcess = parentNode.shape.activity.subProcess;\n if (node && parentNode && parentNode.shape.type === 'Bpmn' && node.shape.type === 'Bpmn' &&\n subProcess.processes) {\n node.processId = parentId;\n var processes = parentNode.shape.activity.subProcess.processes;\n if (processes.indexOf(id) < 0) {\n processes.push(id);\n }\n parentNode.wrapper.children.push(node.wrapper);\n parentNode.wrapper.measure(new Size());\n parentNode.wrapper.arrange(parentNode.wrapper.desiredSize);\n diagram.bpmnModule.updateDocks(parentNode, diagram);\n diagram.refreshDiagramLayer();\n if (diagram.mode === 'SVG' && (node.shape && node.shape.activity\n && !node.shape.activity.subProcess.processes)) {\n var child = getDiagramElement(parentId + '_groupElement');\n child.appendChild(getDiagramElement(process.id + '_groupElement'));\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getChildrenBound = function (node, excludeChild, diagram) {\n var processes = node.shape.activity.subProcess.processes;\n var bound;\n if (processes && processes.length) {\n for (var _i = 0, processes_1 = processes; _i < processes_1.length; _i++) {\n var i = processes_1[_i];\n if (excludeChild !== i) {\n if (!bound) {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds;\n }\n else {\n bound = diagram.nameTable[\"\" + i].wrapper.bounds.uniteRect(bound);\n }\n }\n }\n }\n return bound || diagram.nameTable[\"\" + excludeChild].wrapper.bounds;\n };\n /** @private */\n BpmnDiagrams.prototype.updateSubProcessess = function (bound, obj, diagram) {\n var diffX;\n var diffY;\n var node = diagram.nameTable[obj.processId];\n var right;\n var bottom;\n var pivot = { x: 0.5, y: 0.5 };\n if ((node.wrapper.bounds.left + obj.margin.left + obj.width) > (node.wrapper.bounds.right)) {\n right = true;\n }\n if ((node.wrapper.bounds.top + obj.margin.top + obj.height) > (node.wrapper.bounds.bottom)) {\n bottom = true;\n }\n if (right) {\n pivot.x = 0;\n }\n if (bottom) {\n pivot.y = 0;\n }\n var actualSize = node.wrapper.actualSize;\n if (right) {\n diffX = (obj.wrapper.margin.left + obj.wrapper.bounds.width) / actualSize.width;\n }\n if (bottom) {\n diffY = (obj.wrapper.margin.top + obj.wrapper.bounds.height) / actualSize.height;\n }\n if (diffX > 0 || diffY > 0) {\n diagram.commandHandler.scale(diagram.nameTable[obj.processId], diffX || 1, diffY || 1, pivot);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNCompensationShape = function (node, compensationNode) {\n compensationNode.id = node.id + '_0_compensation';\n compensationNode.width = 12;\n compensationNode.height = 12;\n compensationNode.margin.bottom = 5;\n compensationNode.style.fill = 'transparent';\n compensationNode.style.strokeColor = node.style.strokeColor;\n compensationNode.horizontalAlignment = 'Left';\n compensationNode.verticalAlignment = 'Bottom';\n compensationNode.relativeMode = 'Object';\n compensationNode.data = 'M 22.462 18.754 l -6.79 3.92 l 6.79 3.92 V 22.89 l 6.415 3.705 v -7.841 l -6.415 3.705 V 18.754 Z' +\n ' M 28.331 19.701 v 5.947 l -5.149 -2.973 L 28.331 19.701 Z M 21.916 25.647 l -5.15 -2.973 l 5.15 -2.973 V 25.647 Z' +\n ' M 22.275 12.674 c -5.513 0 -9.999 4.486 -9.999 9.999 c 0 5.514 4.486 10.001 9.999 10.001' +\n ' c 5.514 0 9.999 -4.486 9.999 -10.001 C 32.274 17.16 27.789 12.674 22.275 12.674 Z M 22.275 32.127 ' +\n ' c -5.212 0 -9.453 -4.241 -9.453 -9.454 c 0 -5.212 4.241 -9.453 9.453 -9.453 c 5.212 0 9.453 4.241 9.453 9.453' +\n ' C 31.728 27.887 27.487 32.127 22.275 32.127 Z';\n return compensationNode;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNActivityShape = function (node) {\n var eventshape = new Canvas();\n var content;\n var shape = node.shape.activity;\n var task = shape.activity;\n var subProcess = shape.subProcess;\n var activityType = shape.activity;\n if (task === 'Task') {\n content = this.getBPMNTaskShape(node);\n }\n if (task === 'SubProcess' && subProcess) {\n content = this.getBPMNSubProcessShape(node);\n }\n content.id = task + node.id;\n eventshape.children = [content];\n eventshape.style.fill = 'transparent';\n eventshape.style.strokeColor = 'transparent';\n eventshape.style.strokeWidth = 0;\n return eventshape;\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNSubprocessEvent = function (node, subProcessEventsShapes, events) {\n var annotations;\n var ports;\n if (events.annotations.length !== 0) {\n for (var i = 0; i < events.annotations.length; i++) {\n var annot = events.annotations[parseInt(i.toString(), 10)];\n annotations = node.initAnnotationWrapper(annot);\n annotations.width = events.width;\n annotations.height = events.height;\n subProcessEventsShapes.children.push(annotations);\n }\n }\n if (events.ports.length !== 0) {\n for (var i = 0; i < events.ports.length; i++) {\n var port = events.ports[parseInt(i.toString(), 10)];\n ports = node.initPortWrapper(port);\n subProcessEventsShapes.children.push(ports);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getBPMNAdhocShape = function (node, adhocNode, subProcess) {\n adhocNode.id = node.id + '_0_adhoc';\n adhocNode.width = 12;\n adhocNode.height = 8;\n adhocNode.style.fill = 'black';\n adhocNode.style.strokeColor = node.style.strokeColor;\n adhocNode.margin.bottom = 5;\n adhocNode.horizontalAlignment = 'Left';\n adhocNode.verticalAlignment = 'Bottom';\n adhocNode.relativeMode = 'Object';\n adhocNode.data = 'M 49.832 76.811 v -2.906 c 0 0 0.466 -1.469 1.931 -1.5 c 1.465 -0.031 2.331 1.219 2.897 1.688 ' +\n 's 1.06 0.75 1.526 0.75 c 0.466 0 1.548 -0.521 1.682 -1.208 s 0.083 3.083 0.083 3.083 s -0.76 0.969 -1.859 0.969 ' +\n 'c -1.066 0 -1.865 -0.625 -2.464 -1.438 s -1.359 -0.998 -2.064 -0.906 C 50.598 75.467 49.832 76.811 49.832 76.811 Z';\n if (subProcess && subProcess.adhoc === true) {\n adhocNode.visible = true;\n }\n else {\n adhocNode.visible = false;\n }\n return adhocNode;\n };\n // /** @private */\n // public getTextAnnotationWrapper(node: NodeModel, id: string): TextElement {\n // if (node && node.shape.type === 'Bpmn') {\n // const shape: BpmnShapes = (node.shape as BpmnShape).shape;\n // if (shape === 'TextAnnotation') {\n // return node.wrapper.children[1] as TextElement;\n // }\n // }\n // return null;\n // }\n /**\n *\n * @private\n * To modify the text annotation path while dragging the node and set port offset based on dragging.\n */\n BpmnDiagrams.prototype.setAnnotationPath = function (sourceBounds, wrapper, node, bpmnShape, direction, diagram) {\n var pathElement = new PathElement();\n pathElement.id = wrapper.id + '_path';\n pathElement.width = node.width;\n pathElement.height = node.height;\n pathElement.style.fill = 'transparent';\n pathElement.style.strokeColor = ((node.style.strokeColor === 'transparent') ? 'black' : node.style.strokeColor);\n pathElement.style.opacity = node.style.opacity;\n pathElement.relativeMode = 'Object';\n pathElement.horizontalAlignment = 'Stretch';\n pathElement.verticalAlignment = 'Stretch';\n var pointPort = (node.ports.length > 0) ? node.ports[0] : new PointPort(node, 'ports', '', true);\n diagram.protectPropertyChange(true);\n node.ports = [pointPort];\n diagram.protectPropertyChange(false);\n switch (direction) {\n case 'Left':\n pathElement.data = 'M10,20 L0,20 L0,0 L10,0';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Left';\n pointPort.offset = { x: 0.0, y: 0.5 };\n break;\n case 'Right':\n pathElement.data = 'M0,0 L10,0 L10,20 L0,20';\n pathElement.width = 10;\n pathElement.horizontalAlignment = 'Right';\n pointPort.offset =\n {\n x: 1.0,\n y: 0.5\n };\n break;\n case 'Top':\n pathElement.data = 'M20,10 L20,0 L0,0 L0,10';\n pathElement.height = 10.0;\n pathElement.verticalAlignment = 'Top';\n pointPort.offset =\n {\n x: 0.5,\n y: 0.0\n };\n break;\n case 'Bottom':\n pathElement.data = 'M0,0 L0,10 L20,10 L20,0';\n pathElement.height = 10;\n pathElement.verticalAlignment = 'Bottom';\n pointPort.offset =\n {\n x: 0.5,\n y: 1.0\n };\n break;\n default:\n //To check the text annotation has parent and update the path element.\n if (bpmnShape.textAnnotation.textAnnotationTarget !== '') {\n if (diagram.nameTable[bpmnShape.textAnnotation.textAnnotationTarget]) {\n var node2 = diagram.nameTable[bpmnShape.textAnnotation.textAnnotationTarget];\n node2.hasTextAnnotation = true;\n var wrapper2 = node2.wrapper;\n if (wrapper2 !== null) {\n var doubleValue = node2.width;\n var doubleValue2 = node2.height;\n var targetBounds = new Rect(0.0, 0.0, 0.0, 0.0);\n if (doubleValue !== 0.0 && doubleValue2 !== 0.0) {\n targetBounds = new Rect(node2.offsetX - doubleValue / 2, node2.offsetY - doubleValue2 / 2, doubleValue, doubleValue2);\n }\n this.setAnnotationPosition(targetBounds, node, sourceBounds, pathElement);\n }\n }\n }\n else if (bpmnShape.textAnnotation.textAnnotationTarget === '') {\n pathElement.data = 'M10,20 L0,20 L0,0 L10,0';\n pathElement.width = 10.0;\n pathElement.horizontalAlignment = 'Left';\n pointPort.offset = {\n x: 0.0,\n y: 0.5\n };\n }\n break;\n }\n wrapper.children = [];\n wrapper.children.push(pathElement);\n };\n //Task 866412: Should revamp BPMN text annotation node. To modifty the port offset and annotation path based on node bounds while dragging.\n BpmnDiagrams.prototype.setAnnotationPosition = function (targetBounds, annotation, annotationBounds, annotationPath) {\n var pointPort = annotation.ports[0];\n var position = { x: annotationBounds.x, y: annotationBounds.y };\n var rotateAngle = this.getAnnotationPathAngle(position, targetBounds);\n if (rotateAngle === 90) {\n annotationPath.data = 'M20,10 L20,0 L0,0 L0,10';\n annotationPath.height = 10.0;\n annotationPath.verticalAlignment = 'Top';\n pointPort.offset =\n {\n x: 0.5,\n y: 0.0\n };\n }\n else if (rotateAngle === 180) {\n annotationPath.data = 'M0,0 L10,0 L10,20 L0,20';\n annotationPath.width = 10.0;\n annotationPath.horizontalAlignment = 'Right';\n pointPort.offset =\n {\n x: 1.0,\n y: 0.5\n };\n }\n else if (rotateAngle === 0) {\n annotationPath.data = 'M10,20 L0,20 L0,0 L10,0';\n annotationPath.width = 10.0;\n annotationPath.horizontalAlignment = 'Left';\n pointPort.offset =\n {\n x: 0.0,\n y: 0.5\n };\n }\n else {\n annotationPath.data = 'M0,0 L0,10 L20,10 L20,0';\n annotationPath.height = 10.0;\n annotationPath.verticalAlignment = 'Bottom';\n pointPort.offset =\n {\n x: 0.5,\n y: 1.0\n };\n }\n };\n // /** @private */\n // public findInteractableObject(obj: ConnectorModel, diagram: Diagram): NodeModel | ConnectorModel {\n // if (obj.targetID) {\n // let targetNode: NodeModel = diagram.nameTable[obj.targetID];\n // if (targetNode.shape.type === 'Bpmn' && (targetNode.shape as BpmnShape).shape === 'TextAnnotation') {\n // return targetNode;\n // }\n // }\n // return obj;\n // }\n /** @private */\n BpmnDiagrams.prototype.getSubprocessChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n //let loopType: string;\n var subProcess = shape.subProcess;\n var loopType = subProcess.loop;\n if (loopType !== undefined && loopType !== 'None') {\n count++;\n }\n if ((subProcess.compensation !== undefined) &&\n subProcess.compensation === true) {\n count++;\n }\n if ((subProcess.collapsed !== undefined) &&\n subProcess.collapsed === true) {\n count++;\n }\n if ((subProcess.adhoc !== undefined) &&\n subProcess.adhoc === true) {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.getTaskChildCount = function (node) {\n var count = 0;\n var shape = node.shape.activity;\n var task = shape.task;\n var loopType;\n if ((task.compensation !== undefined) &&\n task.compensation === true) {\n count++;\n }\n if ((task.loop !== undefined) &&\n task.loop !== 'None') {\n count++;\n }\n return count;\n };\n /** @private */\n BpmnDiagrams.prototype.setStyle = function (child, node) {\n //set style\n child.style.fill = node.style.fill;\n child.style.strokeColor = node.style.strokeColor;\n child.style.strokeWidth = node.style.strokeWidth;\n child.style.strokeDashArray = node.style.strokeDashArray;\n child.style.opacity = node.style.opacity;\n child.style.gradient = node.style.gradient;\n if ((node.constraints & NodeConstraints.Shadow) !== 0) {\n child.shadow = node.shadow;\n }\n };\n //End code conversion region\n //Update BPMN Shapes on NodePropertyChange\n //Start region\n /** @private */\n BpmnDiagrams.prototype.updateBPMN = function (changedProp, oldObject, actualObject, diagram) {\n var newShape = changedProp.shape || {};\n var elementWrapper = actualObject.wrapper.children[0];\n var actualShape = actualObject.shape.shape ||\n (actualObject.shape.bpmnShape);\n //Bug 892767: Unable to update BPMN text annotation direction dynamically\n //To update the text annotation direction and target dynamically.\n if (newShape.textAnnotation && actualShape === 'TextAnnotation') {\n if (newShape.textAnnotation.textAnnotationDirection !== undefined) {\n //Modify text annotation path based on text annotation direction\n this.setAnnotationPath(actualObject.wrapper.bounds, actualObject.wrapper.children[0], actualObject, actualObject.shape, actualObject.shape.textAnnotation.textAnnotationDirection, diagram);\n //Reset the id of path element\n actualObject.wrapper.children[0].children[0].id = actualObject.id + '_textannotation_path';\n var newValue = { ports: { 0: { offset: actualObject.ports[0].offset } } };\n diagram.nodePropertyChange(actualObject, {}, newValue);\n }\n if (newShape.textAnnotation.textAnnotationTarget !== undefined) {\n var sourceNode = diagram.nameTable[newShape.textAnnotation.textAnnotationTarget];\n if (sourceNode && sourceNode.shape.type === 'Bpmn') {\n var textAnnotationConnector = diagram.nameTable[actualObject.inEdges[0]];\n if (textAnnotationConnector) {\n //To modify the sourceID of text annotation connector\n textAnnotationConnector.sourceID = sourceNode.id;\n diagram.connectorPropertyChange(textAnnotationConnector, {}, { sourceID: sourceNode.id });\n }\n }\n else if (newShape.textAnnotation.textAnnotationTarget === '') {\n var textAnnotationConnector = diagram.nameTable[actualObject.inEdges[0]];\n if (textAnnotationConnector) {\n var oldParent = diagram.nameTable[oldObject.shape.textAnnotation.textAnnotationTarget];\n var index = oldParent.outEdges.indexOf(textAnnotationConnector.id);\n oldParent.outEdges.splice(index, 1);\n textAnnotationConnector.sourceID = '';\n diagram.connectorPropertyChange(textAnnotationConnector, {}, { sourceID: '' });\n }\n }\n }\n }\n var sizeChanged = changedProp.width !== undefined || changedProp.height !== undefined;\n if ((newShape.shape === 'Gateway') &&\n newShape.gateway) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNGatewayShape(actualObject);\n }\n else if ((newShape.shape === 'DataObject') &&\n newShape.dataObject) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNDataObjectShape(actualObject);\n }\n else if ((newShape.shape === 'Activity') &&\n newShape.activity) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNActivityShape(actualObject);\n }\n /**\n * EJ2-EJ2-60644 - Bpmn event fill color does not applied while changing event in runtime.\n */\n else if (((actualObject.shape.bpmnShape === 'Event' || actualObject.shape.shape === 'Event') || newShape.shape === 'Event') &&\n newShape.event) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n var shapeEvent = newShape.event;\n actualObject.wrapper.children[0] = this.getBPMNEventShape(actualObject, shapeEvent);\n }\n else if ((newShape.shape === 'Message') ||\n (newShape.shape === 'DataSource')) {\n this.removeBPMNElementFromDOM(actualObject, diagram);\n actualObject.wrapper.children[0] = this.getBPMNShapes(actualObject);\n //}\n // else if (newShape.shape === 'Group') {\n // actualObject.wrapper.children[0] = this.getBPMNGroup(actualObject, diagram);\n }\n else if (newShape.gateway !== undefined || (actualShape === 'Gateway' && sizeChanged)) {\n this.updateBPMNGateway(actualObject, changedProp);\n }\n else if (newShape.dataObject !== undefined || (actualShape === 'DataObject' && sizeChanged)) {\n this.updateBPMNDataObject(actualObject, changedProp, oldObject);\n }\n else if (newShape.activity !== undefined || (actualShape === 'Activity' && sizeChanged)) {\n this.updateBPMNActivity(actualObject, changedProp, oldObject, diagram);\n }\n else if (newShape.event !== undefined || (actualShape === 'Event' && sizeChanged)) {\n this.updateBPMNEvent(actualObject, changedProp, oldObject);\n }\n actualObject.wrapper.children[0].id = actualObject.wrapper.children[0].id || elementWrapper.id;\n if (changedProp.style) {\n updateStyle(changedProp.style, elementWrapper instanceof Container ? ((!isBlazor() && actualObject.shape.shape === 'Activity')) ?\n elementWrapper.children[0].children[0] :\n elementWrapper.children[0] : elementWrapper);\n if (changedProp.style && changedProp.style.strokeColor) {\n //EJ2-844052-BPMN nodes styles are not updated properly at runtime\n if (elementWrapper && elementWrapper.children !== undefined\n && elementWrapper.children.length > 0) {\n if (((!isBlazor() && actualObject.shape.shape === 'Activity')) &&\n actualObject.shape.activity.activity === 'SubProcess') {\n var child = elementWrapper.children[0];\n this.updateBPMNStyle(child, changedProp.style.strokeColor);\n }\n else if (((!isBlazor() && actualObject.shape.shape === 'Gateway')) ||\n ((!isBlazor() && actualObject.shape.shape === 'Event'))) {\n this.updateBPMNStyle(elementWrapper, changedProp.style.strokeColor);\n }\n }\n }\n if (changedProp.style && changedProp.style.opacity !== undefined) {\n this.updateBpmnChildOpacity(actualObject.wrapper, changedProp.style.opacity);\n }\n }\n };\n // To update the opacity of BPMN child\n BpmnDiagrams.prototype.updateBpmnChildOpacity = function (wrapper, opacity) {\n if (wrapper.children && wrapper.children.length > 0) {\n for (var i = 0; i < wrapper.children.length; i++) {\n var child = wrapper.children[parseInt(i.toString(), 10)];\n if (child.children) {\n this.updateBpmnChildOpacity(child, opacity);\n }\n if (!(child instanceof TextElement)) {\n child.style.opacity = opacity;\n }\n }\n }\n };\n /**\n * EJ2-60574 -BPMN shape do not get changed at runtime properly\n */\n BpmnDiagrams.prototype.removeBPMNElementFromDOM = function (actualObject, diagram) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNStyle = function (elementWrapper, changedProp) {\n for (var i = 0; i < elementWrapper.children.length; i++) {\n var child = elementWrapper.children[parseInt(i.toString(), 10)];\n updateStyle({ strokeColor: changedProp }, child);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNGateway = function (node, changedProp) {\n var bpmnShape = node.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n updateStyle(node.style, elementWrapper.children[0]);\n var pathData = getBpmnGatewayShapePathData(bpmnShape.gateway.type);\n var dataobjTypeNode = this.updateGatewaySubType(elementWrapper, node, pathData);\n removeElement(elementWrapper.children[1].id);\n elementWrapper.children.splice(1, 1);\n elementWrapper.children.push(dataobjTypeNode);\n }\n if (changedProp.width !== undefined || changedProp.height !== undefined) {\n this.setSizeForBPMNGateway(node.shape.gateway, elementWrapper, changedProp.width || node.width, changedProp.height || node.height);\n }\n };\n /**\n * Used to update Bpmn gateway child in runtime\n * EJ2-60581\n * @param elementWrapper\n * @param node\n * @param pathData\n * @returns\n */\n BpmnDiagrams.prototype.updateGatewaySubType = function (elementWrapper, node, pathData) {\n var dataobjTypeNode = new PathElement();\n dataobjTypeNode.id = node.id + '_1_gatewayType';\n dataobjTypeNode.width = elementWrapper.children[1].width;\n dataobjTypeNode.height = elementWrapper.children[1].height;\n dataobjTypeNode.margin.left = elementWrapper.children[1].margin.left;\n dataobjTypeNode.margin.top = elementWrapper.children[1].margin.top;\n dataobjTypeNode.data = pathData;\n dataobjTypeNode.offsetX = elementWrapper.children[1].offsetX;\n dataobjTypeNode.offsetY = elementWrapper.children[1].offsetY;\n dataobjTypeNode.style = elementWrapper.children[1].style;\n dataobjTypeNode.horizontalAlignment = elementWrapper.children[1].horizontalAlignment;\n dataobjTypeNode.verticalAlignment = elementWrapper.children[1].verticalAlignment;\n dataobjTypeNode.relativeMode = elementWrapper.children[1].relativeMode;\n dataobjTypeNode.transform = elementWrapper.children[1].transform;\n return dataobjTypeNode;\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNDataObject = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n if (bpmnShape) {\n var elementWrapperChild1 = elementWrapper.children[1];\n var elementWrapperChild2 = elementWrapper.children[2];\n if (newObject.style !== undefined) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n elementWrapperChild1.style.opacity = node.style.opacity;\n elementWrapperChild2.style.opacity = node.style.opacity;\n }\n if (bpmnShape.dataObject) {\n switch (bpmnShape.dataObject.type) {\n case 'None':\n elementWrapperChild1.visible = false;\n break;\n case 'Input':\n elementWrapperChild1.style.fill = 'white';\n break;\n case 'Output':\n elementWrapperChild1.style.fill = 'black';\n break;\n }\n if (oldObject.shape.dataObject.type === 'None') {\n elementWrapperChild1.visible = true;\n }\n if (newObject.shape.dataObject.collection !== undefined) {\n elementWrapperChild2.visible = bpmnShape.dataObject.collection;\n }\n }\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNDataObjects(node.shape.dataObject, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEvent = function (node, oldObject, event, child0, child1, child2) {\n switch (event) {\n case 'Start':\n child1.visible = false;\n child0.style.strokeDashArray = '';\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.fill = 'white';\n break;\n case 'NonInterruptingStart':\n child0.style.strokeDashArray = '2 3';\n child2.style.fill = 'white';\n child0.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child1.visible = false;\n break;\n case 'Intermediate':\n child0.style.strokeDashArray = '';\n child0.style.fill = 'white';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'NonInterruptingIntermediate':\n child0.style.fill = 'white';\n child0.style.gradient = null;\n child2.style.fill = 'white';\n child2.style.strokeColor = 'black';\n child0.style.strokeDashArray = '2 3';\n child1.style.strokeDashArray = '2 3';\n this.updateEventVisibility(oldObject, child1);\n break;\n case 'ThrowingIntermediate':\n case 'End':\n child0.style.fill = event !== 'End' ? 'white' : 'black';\n child0.style.strokeDashArray = '';\n child1.style.strokeDashArray = '';\n child0.style.gradient = null;\n child2.style.fill = 'black';\n this.updateEventVisibility(oldObject, child1);\n // child2.style.strokeColor = node.style.fill;\n break;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateEventVisibility = function (oldObject, child1) {\n if (oldObject.shape.activity && oldObject.shape.activity.subProcess &&\n oldObject.shape.activity.subProcess.events &&\n oldObject.shape.activity.subProcess.events[0] !== undefined &&\n oldObject.shape.activity.subProcess.events[0].event !== undefined) {\n if (oldObject.shape.activity.subProcess.events[0].event === 'NonInterruptingStart' ||\n oldObject.shape.activity.subProcess.events[0].event === 'Start') {\n child1.visible = true;\n }\n }\n else if (oldObject.shape.event !== undefined) {\n if (oldObject.shape.event.event === 'NonInterruptingStart' ||\n oldObject.shape.event.event === 'Start') {\n child1.visible = true;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNEvent = function (node, newObject, oldObject) {\n var bpmnShape = newObject.shape;\n var trigger;\n var elementWrapper = node.wrapper.children[0];\n // if (bpmnShape) {\n // const elementWrapperChild0: DiagramElement = elementWrapper.children[0];\n // const elementWrapperChild1: DiagramElement = elementWrapper.children[1];\n // const elementWrapperChild2: DiagramElement = elementWrapper.children[2];\n // //let event: string;\n // if (newObject.style !== undefined) {\n // updateStyle(node.style, elementWrapper.children[0]);\n // if (newObject.style.opacity !== undefined || newObject.style.strokeColor !== undefined) {\n // elementWrapperChild1.style.opacity = node.style.opacity;\n // elementWrapperChild1.style.strokeColor = node.style.strokeColor;\n // }\n // }\n // const event: string = bpmnShape.event.event;\n // trigger = bpmnShape.event.trigger;\n // if (event !== undefined) {\n // this.getEvent(node, oldObject, event, elementWrapperChild0, elementWrapperChild1, elementWrapperChild2);\n // }\n // if (trigger !== undefined) {\n // this.updateBPMNEventTrigger(node, newObject);\n // }\n // }\n if (newObject.width !== undefined || newObject.height !== undefined || trigger !== undefined) {\n this.setSizeForBPMNEvents(node.shape.event, elementWrapper, newObject.width || node.width, newObject.height || node.height);\n }\n };\n // /** @private */\n // public updateBPMNEventTrigger(node: Node, newObject: Node): void {\n // const bpmnShape: BpmnShapeModel = node.shape as BpmnShapeModel;\n // const elementWrapper: DiagramElement = (node.wrapper.children[0] as Canvas).children[2];\n // (elementWrapper as PathElement).canMeasurePath = true;\n // if (newObject.style &&\n // (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined)) {\n // updateStyle(node.style, elementWrapper);\n // }\n // const bpmnshapeTriggerdata: string = getBpmnTriggerShapePathData(\n // bpmnShape.event.trigger);\n // (elementWrapper as PathModel).data = bpmnshapeTriggerdata;\n // }\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivity = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n if (elementWrapper && elementWrapper.children && elementWrapper.children.length > 0 && elementWrapper.children[0]) {\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n if (bpmnShape) {\n var oldProp = oldObject.shape.activity.activity;\n var actualObjectProp = node.shape.activity.activity;\n if ((oldProp === 'SubProcess' || oldProp === 'Task') && (actualObjectProp === 'SubProcess' || actualObjectProp === 'Task')) {\n diagram.removeElements(node);\n node.wrapper.children[0] = this.getBPMNActivityShape(node);\n }\n else {\n if (actualObjectProp === 'Task' && bpmnShape.activity.task !== undefined) {\n this.updateBPMNActivityTask(node, newObject);\n var subChildCount = this.getTaskChildCount(node);\n var x = void 0;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n if (bpmnShape.activity.task.loop !== undefined) {\n this.updateBPMNActivityTaskLoop(node, newObject, x, subChildCount, area, 2);\n }\n }\n if (actualObjectProp === 'SubProcess' && bpmnShape.activity.subProcess !== undefined) {\n this.updateBPMNActivitySubProcess(node, newObject, oldObject, diagram);\n }\n }\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n if (newObject.width !== undefined || newObject.height !== undefined) {\n this.setSizeForBPMNActivity(node.shape.activity, elementWrapper, newObject.width || size.width, newObject.height || size.height, node);\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTask = function (node, newObject) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var task = bpmnShape.activity.task;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_2_loop') {\n var element = document.getElementById(node.id + '_2_loop');\n element.parentNode.removeChild(element);\n }\n }\n if (task.type !== undefined) {\n var bpmnshapeTaskdata = getBpmnTaskShapePathData(task.type);\n elementWrapper.children[1].data = bpmnshapeTaskdata;\n for (var i = 0; i < elementWrapper.children.length; i++) {\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_tasktType') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_tasktType');\n element.parentNode.removeChild(element);\n }\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n if (elementWrapper.children[parseInt(i.toString(), 10)].id === node.id + '_1_taskTypeService') {\n elementWrapper.children.splice(i, 1);\n var element = document.getElementById(node.id + '_1_taskTypeService');\n element.parentNode.removeChild(element);\n }\n }\n var taskTypeNode = new PathElement();\n taskTypeNode.id = node.id + '_1_tasktType';\n taskTypeNode.margin.left = 5;\n taskTypeNode.margin.top = 5;\n taskTypeNode.data = bpmnshapeTaskdata;\n taskTypeNode.style.fill = 'transparent';\n taskTypeNode.style.opacity = node.style.opacity;\n /**\n * Used to update the Bpmn activity task type at runtime\n * EJ2-60586\n */\n if (task.type === 'Receive' || task.type === 'Send') {\n taskTypeNode.width = 18;\n taskTypeNode.height = 16;\n if (task.type === 'Send') {\n taskTypeNode.style.fill = 'black';\n }\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type === 'Manual') {\n taskTypeNode.width = 16;\n taskTypeNode.height = 11;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else if (task.type !== 'Service') {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n }\n else {\n taskTypeNode.width = 20;\n taskTypeNode.height = 20;\n elementWrapper.children.splice(1, 0, taskTypeNode);\n var taskTypeNodeService = new PathElement();\n taskTypeNodeService.id = node.id + '_1_taskTypeService';\n taskTypeNodeService.data = bpmnshapeTaskdata;\n taskTypeNodeService.margin.left = elementWrapper.children[1].margin.left + 9;\n taskTypeNodeService.margin.top = elementWrapper.children[1].margin.top + 9;\n taskTypeNodeService.style.fill = 'white';\n taskTypeNodeService.style.opacity = node.style.opacity;\n elementWrapper.children.splice(2, 0, taskTypeNodeService);\n }\n }\n if (bpmnShape.activity.task.call !== undefined) {\n if (bpmnShape.activity.task.call !== false) {\n elementWrapper.children[0].style.strokeWidth = 4;\n }\n else {\n elementWrapper.children[0].style.strokeWidth = 1;\n }\n }\n if (bpmnShape.activity.task.compensation !== undefined) {\n if (bpmnShape.activity.task.compensation === true) {\n elementWrapper.children[3].visible = true;\n }\n else {\n elementWrapper.children[3].visible = false;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivityTaskLoop = function (node, newObject, x, subChildCount, area, start) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var activity = bpmnShape.activity;\n var taskType = node.shape.activity.task.type;\n var loop;\n var index = 0;\n var bpmnshapeLoopdata;\n if (activity.subProcess !== undefined) {\n var subProcess = activity.subProcess;\n index = (activity.subProcess.type === 'Transaction') ? 2 : 0;\n loop = subProcess.loop;\n bpmnshapeLoopdata = getBpmnLoopShapePathData(loop);\n elementWrapper.children[2 + index].data = bpmnshapeLoopdata;\n elementWrapper.children[2 + index].visible = (loop === 'None') ? false : true;\n //EJ2-907764-Changing Loop for Activity node with task type, result in change in task type symbols\n }\n else if (activity.task !== undefined && activity.task.loop !== undefined && taskType !== 'Service') {\n bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop);\n elementWrapper.children[2].data = bpmnshapeLoopdata;\n elementWrapper.children[2].visible = (activity.task.loop === 'None') ? false : true;\n }\n else if (activity.task !== undefined && activity.task.loop !== undefined && taskType === 'Service') {\n bpmnshapeLoopdata = getBpmnLoopShapePathData(activity.task.loop);\n elementWrapper.children[3].data = bpmnshapeLoopdata;\n elementWrapper.children[3].visible = (activity.task.loop === 'None') ? false : true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, start + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateChildMargin = function (elementWrapper, subChildCount, area, x, start) {\n if (subChildCount === 1) {\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x = area + 8;\n }\n }\n }\n else {\n x = area + (subChildCount - 1) * 8;\n for (var i = start; i < elementWrapper.children.length; i++) {\n if (i !== 2 && elementWrapper.children[parseInt(i.toString(), 10)].visible === true) {\n elementWrapper.children[parseInt(i.toString(), 10)].margin.left = x;\n x += 12 + 8;\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNActivitySubProcess = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var size = this.getSize(node, elementWrapper.children[0].children[0]);\n var subProcess = bpmnShape.activity.subProcess;\n var subChildCount = this.getSubprocessChildCount(node);\n var x;\n var childSpace = subChildCount * 12;\n var area = size.width / 2 - childSpace;\n if (subChildCount === 1) {\n x = area + 8;\n }\n else {\n x = area + (subChildCount - 1) * 8;\n }\n updateStyle(node.style, elementWrapper.children[0].children[0]);\n if (subProcess.events !== undefined) {\n this.updateBPMNSubProcessEvent(node, newObject, oldObject, diagram);\n }\n if (subProcess.adhoc !== undefined) {\n this.updateBPMNSubProcessAdhoc(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.boundary !== undefined) {\n this.updateBPMNSubProcessBoundary(node, subProcess);\n }\n if (subProcess.collapsed !== undefined) {\n this.updateBPMNSubProcessCollapsed(node, oldObject, subProcess, x, subChildCount, area, diagram);\n }\n if (subProcess.compensation !== undefined) {\n this.updateBPMNSubProcessCompensation(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.loop !== undefined) {\n this.updateBPMNSubProcessLoop(node, oldObject, subProcess, x, subChildCount, area);\n }\n if (subProcess.transaction !== undefined) {\n this.updateBPMNSubProcessTransaction(node, newObject, oldObject, diagram);\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessEvent = function (node, newObject, oldObject, diagram) {\n var bpmnShape = newObject.shape;\n var elementWrapper = node.wrapper.children[0];\n var nodeContent = elementWrapper.children[0];\n var index;\n var j = 0;\n var elementWrapperChildLen = elementWrapper.children[0].children.length;\n var subProcess = bpmnShape.activity.subProcess;\n var events;\n var start = 2;\n for (var _i = 0, _a = Object.keys(subProcess.events); _i < _a.length; _i++) {\n var key = _a[_i];\n var eventIndex = Number(key);\n var eventWrapper = nodeContent.children[eventIndex + start];\n var actualEvent = node.shape.activity.subProcess.events[parseInt(eventIndex.toString(), 10)];\n this.updateBPMNSubEvent(node, subProcess.events[parseInt(eventIndex.toString(), 10)], actualEvent, eventWrapper, newObject, oldObject, diagram);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubEvent = function (node, newEvent, actualEvent, eventWrapper, newObject, oldObject, diagram) {\n var elementWrapper = node.wrapper.children[0];\n var bpmnShape = newObject.shape;\n var child0 = eventWrapper.children[0];\n var child1 = eventWrapper.children[1];\n var child2 = eventWrapper.children[2];\n var eventType;\n var trigger;\n if (newObject.style) {\n if (newObject.style.strokeColor !== undefined || newObject.style.opacity !== undefined) {\n elementWrapper.children[0].children[1].style.strokeColor = newObject.style.strokeColor;\n elementWrapper.children[0].children[1].style.opacity = newObject.style.opacity;\n }\n }\n if (bpmnShape.activity.subProcess !== undefined) {\n eventType = newEvent.event;\n trigger = newEvent.trigger;\n }\n if (eventType !== undefined) {\n this.getEvent(newObject, oldObject, eventType, child0, child1, child2);\n }\n if (trigger !== undefined) {\n if (newObject.style) {\n updateStyle(newObject.style, elementWrapper.children[0]);\n }\n var bpmnshapeTriggerdata = getBpmnTriggerShapePathData(trigger);\n eventWrapper.children[2].data = bpmnshapeTriggerdata;\n }\n if (newEvent.height !== undefined || newEvent.width !== undefined) {\n this.getEventSize(newEvent, eventWrapper);\n }\n if (newEvent.id !== undefined) {\n eventWrapper.id = newEvent.id;\n }\n if (newEvent.margin !== undefined) {\n eventWrapper.margin = newEvent.margin;\n }\n if (newEvent.horizontalAlignment !== undefined) {\n eventWrapper.horizontalAlignment = newEvent.horizontalAlignment;\n }\n if (newEvent.verticalAlignment !== undefined) {\n eventWrapper.verticalAlignment = newEvent.verticalAlignment;\n }\n if (newEvent.offset !== undefined) {\n eventWrapper.setOffsetWithRespectToBounds(actualEvent.offset.x, actualEvent.offset.y, 'Fraction');\n eventWrapper.relativeMode = 'Point';\n }\n if (newEvent.annotations !== undefined) {\n var annotations = void 0;\n var annotation = elementWrapper.children[0].children[2];\n if (eventWrapper.children[3] && eventWrapper.children.length > 3) {\n annotations = eventWrapper.children[3];\n diagram.updateAnnotation(newEvent.annotations[0], annotations, annotation);\n }\n }\n if (newEvent.ports !== undefined) {\n var ports = void 0;\n var port = elementWrapper.children[0].children[2];\n if (eventWrapper.children[4] && eventWrapper.children.length > 4) {\n ports = eventWrapper.children[4];\n diagram.updatePort(newEvent.ports[0], ports, port);\n }\n }\n if (newEvent.visible !== undefined) {\n this.updateDiagramContainerVisibility(eventWrapper, newEvent.visible);\n }\n };\n BpmnDiagrams.prototype.updateBPMNSubProcessTransaction = function (node, newObject, oldObject, diagram) {\n var transaction = newObject.shape.activity.subProcess.transaction;\n var eventContainer = node.wrapper.children[0].children[0].children[2];\n var actualEvent;\n if (transaction.success !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.success;\n this.updateBPMNSubEvent(node, transaction.success, actualEvent, eventContainer.children[0], newObject, oldObject, diagram);\n }\n if (transaction.cancel !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.cancel;\n this.updateBPMNSubEvent(node, transaction.cancel, actualEvent, eventContainer.children[1], newObject, oldObject, diagram);\n }\n if (transaction.failure !== undefined) {\n actualEvent = node.shape.activity.subProcess.transaction.failure;\n this.updateBPMNSubEvent(node, transaction.failure, actualEvent, eventContainer.children[2], newObject, oldObject, diagram);\n }\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n var connector = diagram.nameTable[\"\" + edge];\n switch (connector.sourcePortID) {\n case 'success':\n if (transaction.success && transaction.success.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'success' });\n }\n break;\n case 'cancel':\n if (transaction.cancel && transaction.cancel.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'cancel' });\n }\n break;\n case 'failure':\n if (transaction.failure && transaction.failure.visible !== undefined) {\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: 'failure' });\n }\n break;\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.getEventSize = function (events, wrapperChild) {\n if (events.height !== undefined) {\n wrapperChild.height = events.height;\n wrapperChild.children[0].height = events.height;\n wrapperChild.children[1].height = events.height * 0.85;\n wrapperChild.children[2].height = events.height * 0.54;\n }\n if (events.width !== undefined) {\n wrapperChild.width = events.width;\n wrapperChild.children[0].width = events.width;\n wrapperChild.children[1].width = events.width * 0.85;\n wrapperChild.children[2].width = events.width * 0.54;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessAdhoc = function (node, oldObject, subProcess, x, subChildCount, area) {\n var shape = node.shape;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.adhoc === false) {\n elementWrapper.children[3 + index].visible = false;\n }\n else {\n elementWrapper.children[3 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessBoundary = function (node, subProcess) {\n var shape = node.shape;\n var elementWrapper = (node.wrapper.children[0].children[0].children[0]);\n if (subProcess.boundary === 'Default') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Call') {\n elementWrapper.style.strokeWidth = 4;\n elementWrapper.style.strokeDashArray = '1 0';\n }\n if (subProcess.boundary === 'Event') {\n elementWrapper.style.strokeWidth = 1;\n elementWrapper.style.strokeDashArray = '2 2';\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateElementVisibility = function (node, visible, diagram) {\n if (node.shape.activity.subProcess.processes\n && node.shape.activity.subProcess.processes.length > 0) {\n var processes = node.shape.activity.subProcess.processes;\n for (var j = processes.length - 1; j >= 0; j--) {\n var currentNode = diagram.nameTable[processes[parseInt(j.toString(), 10)]];\n currentNode.visible = visible;\n diagram.updateElementVisibility(currentNode.wrapper, currentNode, visible);\n if (visible) {\n if ((!isBlazor() && currentNode.shape.shape === 'Event')) {\n this.setEventVisibility(currentNode, currentNode.wrapper.children[0].children);\n }\n if (currentNode.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(currentNode);\n }\n }\n var connectors = currentNode.inEdges.concat(currentNode.outEdges);\n for (var i = connectors.length - 1; i >= 0; i--) {\n var connector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n connector.visible = visible;\n diagram.updateElementVisibility(connector.wrapper, connector, visible);\n }\n }\n }\n if (visible) {\n if (!isBlazor() && node.shape.shape === 'Event') {\n this.setEventVisibility(node, node.wrapper.children[0].children);\n }\n if (node.shape.activity.activity === 'SubProcess') {\n this.setSubProcessVisibility(node);\n }\n if (node.shape.activity.activity === 'Task' &&\n (!isBlazor() && node.shape.shape === 'Activity')\n && node.shape.activity.subProcess.loop === 'None') {\n node.wrapper.children[0].children[0].children[3].visible = false;\n }\n //(EJ2-843861) - BPMN node subtype visibles whiles changing the node visibility\n if (node.shape.shape === 'DataObject') {\n if (node.shape.dataObject.collection === false && node.shape.dataObject.type === 'None') {\n for (var i = node.wrapper.children[0].children.length - 1; i > 0; i--) {\n node.wrapper.children[0].children[parseInt(i.toString(), 10)].visible = false;\n }\n }\n else if (node.shape.dataObject.collection === true && node.shape.dataObject.type === 'None') {\n node.wrapper.children[0].children[1].visible = false;\n }\n else if (node.shape.dataObject.collection === false && (node.shape.dataObject.type === 'Input' || node.shape.dataObject.type === 'Output')) {\n node.wrapper.children[0].children[2].visible = false;\n }\n }\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCollapsed = function (node, oldObject, subProcess, x, subChildCount, area, diagram) {\n var eventLength = node.shape.activity.subProcess.events.length;\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 3 : 1;\n if (subProcess.collapsed === false) {\n this.updateElementVisibility(node, true, diagram);\n elementWrapper.children[index + eventLength].visible = false;\n }\n else {\n this.updateElementVisibility(node, false, diagram);\n elementWrapper.children[index + eventLength].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 3 + eventLength);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessCompensation = function (node, oldObject, subProcess, x, subChildCount, area) {\n var elementWrapper = node.wrapper.children[0].children[0];\n var index = (node.shape.activity.subProcess.type === 'Transaction') ? 2 : 0;\n if (subProcess.compensation === false) {\n elementWrapper.children[4 + index].visible = false;\n }\n else {\n elementWrapper.children[4 + index].visible = true;\n }\n this.updateChildMargin(elementWrapper, subChildCount, area, x, 4 + index);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNSubProcessLoop = function (node, oldObject, subProcess, x, subChildCount, area) {\n this.updateBPMNActivityTaskLoop(node, node, x, subChildCount, area, 1);\n };\n /** @private */\n BpmnDiagrams.prototype.updateBPMNConnector = function (actualObject, oldObject, connection, diagram) {\n var flowType = connection.shape;\n //EJ2-66905 - Changing BPMN flow connectors at runtime is not working properly.\n var flow = actualObject.shape.flow;\n if ((flowType.flow === 'Sequence' || flowType.sequence) && flow === 'Sequence') {\n actualObject = this.getSequence(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Association' || flowType.association) && flow === 'Association') {\n actualObject = this.getAssociation(actualObject, oldObject, connection, diagram);\n }\n if ((flowType.flow === 'Message' || flowType.message) && flow === 'Message') {\n actualObject = this.getMessage(actualObject, oldObject, connection, diagram);\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getSequence = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.sequence) === 'Normal' || actualObject.shape.sequence === 'Normal') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' },\n style: { strokeDashArray: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.sequence) === 'Default' || actualObject.shape.sequence === 'Default') {\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'None' }\n });\n var segment = new PathElement();\n var pathseq = new PathElement();\n var pathseqData = void 0;\n segment = actualObject.getSegmentElement(actualObject, segment);\n var anglePoints = actualObject.intermediatePoints;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n // eslint-disable-next-line no-global-assign\n length = length + actualObject.distance(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pathseqData = actualObject.findPath(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n }\n var content = new PathElement();\n content.data = pathseqData[0];\n content.id = actualObject.id + '_' + connection.shape.sequence || actualObject.shape.sequence;\n content.offsetX = pathseqData[1].x;\n content.offsetY = pathseqData[1].y;\n content.rotateAngle = 45;\n content.transform = Transform.Self;\n this.removeDomElement(actualObject, diagram, content);\n }\n if ((connection.shape.sequence) === 'Conditional' || actualObject.shape.sequence === 'Conditional') {\n actualObject.sourceDecorator.shape = 'Diamond';\n actualObject.sourceDecorator.width = 20;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'white';\n actualObject.targetDecorator.style.fill = 'black';\n actualObject.style.strokeDashArray = 'None';\n actualObject.targetDecorator.shape = 'Arrow';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: 'None' },\n targetDecorator: { shape: 'Arrow', style: { fill: 'black' }, height: 10, width: 10 },\n sourceDecorator: { shape: 'Diamond', width: 20, height: 10, style: { fill: 'white' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getAssociation = function (actualObject, oldObject, connection, diagram) {\n if ((connection.shape.association) === 'Default' || actualObject.shape.association === 'Default') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.targetDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'None' },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'Directional' || actualObject.shape.association === 'Directional') {\n actualObject.sourceDecorator.shape = 'None';\n actualObject.style.strokeDashArray = '2 2';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.width = 10;\n actualObject.targetDecorator.height = 10;\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'None' }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n if ((connection.shape.association) === 'BiDirectional' || actualObject.shape.association === 'BiDirectional') {\n actualObject.sourceDecorator.shape = 'OpenArrow';\n actualObject.targetDecorator.shape = 'OpenArrow';\n actualObject.sourceDecorator.width = 10;\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'black';\n diagram.connectorPropertyChange(actualObject, oldObject, {\n style: { strokeDashArray: '2 2' },\n targetDecorator: { shape: 'OpenArrow', width: 10, height: 10 },\n sourceDecorator: { shape: 'OpenArrow', width: 10, height: 10, style: { fill: 'black' } }\n });\n actualObject.wrapper.children[3].visible = false;\n }\n return actualObject;\n };\n /** @private */\n BpmnDiagrams.prototype.getMessage = function (actualObject, oldObject, connection, diagram) {\n var segmentOffset = 0.5;\n var angle;\n var pt;\n actualObject.sourceDecorator.shape = 'Circle';\n actualObject.sourceDecorator.width = 10;\n actualObject.targetDecorator.shape = 'Arrow';\n actualObject.sourceDecorator.height = 10;\n actualObject.sourceDecorator.style.fill = 'White';\n actualObject.targetDecorator.style.fill = 'White';\n diagram.connectorPropertyChange(actualObject, oldObject, { sourceDecorator: { shape: 'Circle', style: { fill: 'White' }, width: 10, height: 10 }, targetDecorator: { shape: 'Arrow', style: { fill: 'white' } } });\n var anglePoints = actualObject.intermediatePoints;\n var length = 0;\n for (var j = 0; j < anglePoints.length - 1; j++) {\n /* eslint-disable */\n length = length + actualObject.distance(anglePoints[j], anglePoints[j + 1]);\n /* eslint-enable */\n var offLength = length * segmentOffset;\n if (length >= offLength) {\n angle = findAngle(anglePoints[parseInt(j.toString(), 10)], anglePoints[j + 1]);\n pt = Point.transform(anglePoints[parseInt(j.toString(), 10)], angle, offLength);\n }\n }\n var content = new PathElement();\n actualObject.wrapper.children[0].style.strokeDashArray = ' 4 4';\n actualObject.style.strokeDashArray = '4 4';\n content.id = actualObject.id + '_' + connection.shape.message || actualObject.shape.message;\n content.width = 25;\n content.height = 15;\n content.data = 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0';\n content.horizontalAlignment = 'Center';\n content.verticalAlignment = 'Center';\n content.transform = Transform.Self;\n content.style.fill = connection.shape.message === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n content.offsetX = pt.x;\n content.offsetY = pt.y;\n if ((connection.shape.message !== 'Default' && connection.shape.message !== undefined) || actualObject.shape.message !== 'Default') {\n content.style.fill = (connection.shape.message || actualObject.shape.message) === 'NonInitiatingMessage' ?\n 'lightgrey' : 'white';\n }\n else {\n content.visible = false;\n }\n this.removeDomElement(actualObject, diagram, content);\n return actualObject;\n };\n // To remove old wrapper element from dom.\n BpmnDiagrams.prototype.removeDomElement = function (actualObject, diagram, content) {\n for (var _i = 0, _a = diagram.views; _i < _a.length; _i++) {\n var elementId = _a[_i];\n removeElement(actualObject.id + '_groupElement', elementId);\n removeElement(actualObject.id + '_content_groupElement', elementId);\n removeElement(actualObject.id + '_html_element', elementId);\n }\n actualObject.wrapper.children.splice(3, 1);\n actualObject.wrapper.children.splice(3, 0, content);\n };\n //End update Region\n //size updation\n BpmnDiagrams.prototype.setSizeForBPMNEvents = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n //child node 1 - event node\n var eventNode = wrapper.children[1];\n eventNode.width = width * 0.85;\n eventNode.height = height * 0.85;\n var triggerNode = wrapper.children[2];\n if (event.trigger === 'Message') {\n triggerNode.width = width * 0.54;\n triggerNode.height = height * 0.4;\n }\n else {\n triggerNode.width = width * 0.5;\n triggerNode.height = height * 0.5;\n }\n };\n /** @private */\n BpmnDiagrams.prototype.updateAnnotationDrag = function (node, diagram, tx, ty) {\n if (node.processId) {\n this.drag(node, tx, ty, diagram);\n return true;\n }\n return false;\n };\n BpmnDiagrams.prototype.getAnnotationPathAngle = function (point, bounds) {\n var direction = getPortDirection(point, bounds, bounds, false);\n var rotateAngle = 0;\n switch (direction) {\n case 'Right':\n rotateAngle = 0;\n break;\n case 'Left':\n rotateAngle = 180;\n break;\n case 'Bottom':\n rotateAngle = 90;\n break;\n case 'Top':\n rotateAngle = 270;\n break;\n }\n return rotateAngle;\n };\n BpmnDiagrams.prototype.setSizeForBPMNGateway = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[1].width = width * 0.45;\n wrapper.children[1].height = height * 0.45;\n };\n BpmnDiagrams.prototype.setSizeForBPMNDataObjects = function (event, wrapper, width, height) {\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n };\n BpmnDiagrams.prototype.setSizeForBPMNActivity = function (activity, wrapper, width, height, node) {\n //child node 1 - event node\n wrapper.children[0].width = width;\n wrapper.children[0].height = height;\n wrapper.children[0].children[0].width = width;\n wrapper.children[0].children[0].height = height;\n if (activity.subProcess.type === 'Transaction') {\n wrapper.children[0].children[1].width = Math.max(width - 6, 1);\n wrapper.children[0].children[1].height = Math.max(height - 6, 1);\n wrapper.children[0].children[2].width = width;\n wrapper.children[0].children[2].height = height;\n }\n var taskNode = new DiagramElement();\n var x;\n var size = this.getSize(node, taskNode);\n var childCount;\n var iconSpace = 4;\n if (activity.activity === 'Task') {\n childCount = this.getTaskChildCount(node);\n }\n else {\n childCount = this.getSubprocessChildCount(node);\n }\n var childSpace = childCount * 12;\n var area = (width || size.width) / 2;\n if (childCount === 1) {\n x = area - 6;\n }\n else {\n x = area - (childSpace / 2) - ((childCount - 1) * iconSpace) / 2;\n }\n for (var i = 0; i < wrapper.children[0].children.length; i++) {\n if (wrapper.children[0].children[parseInt(i.toString(), 10)].visible &&\n (wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_loop') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_compensation') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_adhoc') > -1 ||\n wrapper.children[0].children[parseInt(i.toString(), 10)].id.indexOf('_0_collapsed') > -1)) {\n wrapper.children[0].children[parseInt(i.toString(), 10)].margin.left = x;\n x += wrapper.children[0].children[parseInt(i.toString(), 10)].actualSize.width + iconSpace;\n }\n }\n };\n BpmnDiagrams.prototype.updateDiagramContainerVisibility = function (element, visible) {\n if (element instanceof Container) {\n for (var i = 0; i < element.children.length; i++) {\n this.updateDiagramContainerVisibility(element.children[parseInt(i.toString(), 10)], visible);\n }\n }\n element.visible = visible;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n BpmnDiagrams.prototype.destroy = function () {\n /**\n * Destroys the BpmnDiagrams module\n */\n };\n /**\n * Get module name.\n *\n * @returns {string} Get module name.\n */\n BpmnDiagrams.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Bpmn';\n };\n return BpmnDiagrams;\n}());\nexport { BpmnDiagrams };\n/**\n * getBpmnShapePathData method \\\n *\n * @returns { string } getBpmnShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnShapePathData(shape) {\n return bpmnShapes[shape.toString()];\n}\n/**\n * getBpmnTriggerShapePathData method \\\n *\n * @returns { string } getBpmnTriggerShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTriggerShapePathData(shape) {\n return bpmnTriggerShapes[shape.toString()];\n}\n/**\n * getBpmnGatewayShapePathData method \\\n *\n * @returns { string } getBpmnGatewayShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnGatewayShapePathData(shape) {\n return bpmnGatewayShapes[shape.toString()];\n}\n/**\n * getBpmnTaskShapePathData method \\\n *\n * @returns { string } getBpmnTaskShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnTaskShapePathData(shape) {\n return bpmnTaskShapes[shape.toString()];\n}\n/**\n * getBpmnLoopShapePathData method \\\n *\n * @returns { string } getBpmnLoopShapePathData method .\\\n * @param {string} shape - provide the shape value.\n *\n * @private\n */\nexport function getBpmnLoopShapePathData(shape) {\n return bpmnLoopShapes[shape.toString()];\n}\nvar bpmnShapes = {\n 'Event': 'M80.5,12.5 C80.5,19.127417 62.59139,24.5 40.5,24.5 C18.40861,24.5 0.5,19.127417 0.5,12.5' +\n 'C0.5,5.872583 18.40861,0.5 40.5,0.5 C62.59139,0.5 80.5,5.872583 80.5,12.5 z',\n 'Message': 'M0,0L19.8,12.8L40,0L0,0L0,25.5L40,25.5L40,0z',\n 'DataSource': 'M 0 10.6 c 0 5.9 16.8 10.6 37.5 10.6 S 75 16.4 75 10.6 v 0 v 68.9 v -0.1 C 75 85.3 58.2 90 37.5 90 ' +\n 'S 0 85.3 0 79.4 l 0 0.1 V 56 V 40.6 L 0 10.6 C 0 4.7 16.8 0 37.5 0 S 75 4.7 75 10.6 S 58.2 21.2 37.5 21.2' +\n 'S 0 16.5 0 10.6 l 0 6.7 v -0.2 c 0 5.9 16.8 10.6 37.5 10.6 S 75 22.9 75 17.1 v 6.8 v -0.1 ' +\n 'c 0 5.9 -16.8 10.6 -37.5 10.6 S 0 29.6 0 23.8',\n 'SubProcess': 'M100,100 h200 a20,20 0 0 1 20,20 v200 a20,20 0 0 1 -20,20 h-200 ' +\n 'a20,20 0 0 1 -20,-20 v-200 a20,20 0 0 1 20,-20 z',\n 'collapsedShape': 'M 8.13789 15 H 0 V 0 H 8.13789 V 15 Z M 0.625991 13.75 H 7.51189 V 1.25 H 0.625991 V 13.75 Z ' +\n 'M 2.18095 7.03125 L 5.95631 7.03125 L 5.95631 7.46875 L 2.18095 7.46875 Z M 3.8342 3.73 ' +\n 'L 4.30369 3.73 L 4.30369 11.2687 L 3.8342 11.2687 Z'\n};\nvar bpmnTriggerShapes = {\n // 'None': '',\n 'Message': 'M0,0 L19.8,12.8 L40,0 L0, 0 L0, 25.5 L40, 25.5 L 40, 0',\n 'Timer': 'M40,20c0,8.654-5.496,16.024-13.189,18.81' +\n 'C24.685,39.58,22.392,40,20,40C8.954,40,0,31.046,0,20S8.954,0,20,0S40,8.954,40,20z M20,0 L20,2.583 L20,5.283 M10.027,2.681' +\n 'L11.659,5.507 L12.669,7.257 M2.731,9.989 L6.014,11.885 L7.307,12.631 M0.067,19.967 L2.667,19.967 L5.35,19.967' +\n 'M2.748,29.939 L5.731,28.217 L7.323,27.298 M10.056,37.236 L11.292,35.095 L12.698,32.66 M20.033,39.9 L20.033,36.417 L20.033,34.617' +\n 'M30.006,37.219 L28.893,35.292 L27.364,32.643 M37.302,29.911 L34.608,28.355 L32.727,27.269' +\n 'M39.967,19.933 L37.417,19.933 L34.683,19.933 M37.286,9.961 L34.583,11.521 L32.71,12.602 M29.977,2.664 L28.653,4.957 L27.336,' +\n '7.24 M22.104,8.5 L19.688,20 L24.75,20 L31.604,20 L24.75,20 L19.688,20z',\n 'Error': 'M 23.77 18.527 l -7.107 27.396 l 8.507 -17.247 L 36.94 40.073 l 6.394 -25.997 l -8.497 15.754 L 23.77 18.527 Z',\n 'Escalation': 'M 30.001 8.098 L 11.842 43.543 l 18.159 -18.882 l 18.162 18.882 L 30.001 8.098 Z ',\n 'Cancel': 'M 3.5 16 L 0 12.6 L 4.6 8 L 0 3.5 L 3.4 0 L 8 4.6 l 4.5 -4.5 L 16 3.5 L 11.5 8 l 4.5 4.5 l -3.4 3.5 L 8 11.4 L 3.5 16 Z',\n 'Compensation': 'M 25.7086 0 L 0 25 L 25.7086 50 V 26.3752 L 50 50 V 0 L 25.7086 23.6248 V 0 Z ',\n 'Conditional': 'M 0 0 H 16 V 16 H 0 z M 1.14 3.2 H 14.85 M 1.14 6.4 H 14.85 M 1.14 9.6 H 14.85 M 1.14 12.8 H 14.85',\n 'Link': 'M 32.014 19.258 v 5.992 H 9.373 v 9.504 h 22.641 v 5.988 L 50.622 30 L 32.014 19.258 Z',\n 'Signal': 'M 50 50 H 0 L 25.0025 0 L 50 50 Z',\n 'Terminate': 'M 25 50 C 11.21 50 0 38.79 0 25 C 0 11.21 11.21 0 25 0 C 38.78 0 50 11.21 50 25 C 50 38.79 38.78 50 25 50',\n 'Multiple': 'M 17.784 48.889 H 42.21 l 7.548 -23.23 L 29.997 11.303 L 10.236 25.658 L 17.784 48.889 Z',\n 'Parallel': 'M 27.276 49.986 h 5.58 v -17.15 h 17.146 V 27.17 h -17.15 l 0.004 -17.15 h -5.58 l -0.004 17.15 ' +\n 'H 9.994 v 5.666 h 17.278 L 27.276 49.986 Z'\n};\nvar bpmnGatewayShapes = {\n 'None': '',\n //exclusive\n 'Exclusive': 'M 11.196 29.009 l 6.36 -9.712 l -5.764 -8.899 h 4.393 l 3.732 5.979 l 3.656 -5.979 h 4.354 l -5.789 9.039' +\n 'l 6.36 9.572 h -4.532 l -4.126 -6.437 l -4.139 6.437 H 11.196 Z',\n //inclusive\n 'Inclusive': 'M 20.323 31.333 c -6.625 0 -12.015 -5.39 -12.015 -12.015 s 5.39 -12.015 12.015 -12.015 ' +\n 's 12.016 5.39 12.016 12.015 S 26.948 31.333 20.323 31.333 Z M 20.323 9.303 c -5.522 0 -10.015 4.493 -10.015 10.015 ' +\n 's 4.492 10.015 10.015 10.015 s 10.016 -4.493 10.016 -10.015 S 25.846 9.303 20.323 9.303 Z',\n //parallel\n 'Parallel': 'M 18.394 29.542 v -8.833 H 9.626 v -3.691 h 8.768 V 8.251 h 3.734 v 8.767 h 8.768 v 3.691 h -8.768 v 8.833 H 18.394 Z',\n //complex\n 'Complex': 'M29.198,19.063L23.089,19.063L27.794,14.358L26.38,12.944L21.223,18.101L21.223,10.443L19.223,10.443L19.223,17.976' +\n 'L14.022,12.776L12.608,14.19L17.48,19.063L10.365,19.063L10.365,21.063L18.261,21.063L12.392,26.932L13.806,28.346' +\n 'L19.223,22.929L19.223,30.225L21.223,30.225L21.223,22.805L25.925,27.507L27.339,26.093L22.309,21.063L29.198,21.063z',\n //eventbased\n 'EventBased': 'M 20.322 29.874 c -5.444 0 -9.873 -4.43 -9.873 -9.874 s 4.429 -9.874 9.873 -9.874 s 9.874 4.429 9.874 9.874 ' +\n 'S 25.767 29.874 20.322 29.874 Z M 20.322 32.891 c -7.107 0 -12.89 -5.783 -12.89 -12.891 c 0 -7.107 5.782 -12.89 12.89 -12.89 ' +\n 'c 7.108 0 12.891 5.783 12.891 12.89 C 33.213 27.108 27.431 32.891 20.322 32.891 Z M 24.191 25.386 ' +\n 'h -7.984 l -2.469 -7.595 l 6.461 -4.693 l 6.461 4.693 L 24.191 25.386 Z',\n //exclusive event based\n 'ExclusiveEventBased': 'M 30 15 C 30 23.28 23.28 30 15 30 S 0 23.28 0 15 S 6.72 0 15 0 S 30 6.72 30 15 z M 15 5 ' +\n 'L 5 12.5 L 8 22.5 H 22 L 25 12.5 z',\n //parallel event based\n 'ParallelEventBased': 'M 35 17.5 C 35 27.16 27.16 35 17.5 35 S 0 27.16 0 17.5 S 7.84 0 17.5 0 S 35 7.84 35 17.5 z M 14.58 5.83 ' +\n 'V 14.58 H 5.83 V 20.42 H 14.58 V 29.17 H 20.42 V 20.42 H 29.17 V 14.58 H 20.42 V 5.83 z'\n};\nvar bpmnTaskShapes = {\n 'None': '',\n 'Service': 'M 32.699 20.187 v -4.005 h -3.32 c -0.125 -0.43 -0.292 -0.83 -0.488 -1.21 l 2.373 -2.375 ' +\n 'l -2.833 -2.83 l -2.333 2.333 c -0.44 -0.253 -0.9 -0.448 -1.387 -0.595 v -3.32 h -4.003 v 3.32 c -0.46 0.137 -0.89' +\n '0.322 -1.3 0.537 l -2.285 -2.275 l -2.833 2.83 l 2.285 2.278 c -0.235 0.42 -0.41 0.847 -0.547 1.307 h -3.33 v 4.005 h 3.33 ' +\n 'c 0.148 0.488 0.343 0.955 0.588 1.395 l -2.325 2.325 l 2.822 2.832 l 2.373 -2.382 c 0.392 0.205 0.792 0.37 1.212 0.497 v 3.33 ' +\n 'h 4.003 v -3.33 c 0.46 -0.138 0.89 -0.323 1.3 -0.547 l 2.43 2.432 l 2.822 -2.832 l -2.42 -2.422 c 0.222 -0.41 0.4 -0.85 0.535' +\n '-1.297 H 32.699 Z M 22.699 21.987 c -2.1 0 -3.803 -1.703 -3.803 -3.803 c 0 -2.1 1.703 -3.803 3.803 -3.803 c 2.1 0 3.803 ' +\n '1.703 3.803 3.803 C 26.502 20.285 24.8 21.987 22.699 21.987 Z',\n 'Receive': 'M 12.217 12.134 v 13.334 h 20 V 12.134 H 12.217 Z M 30.44 13.007 l -8.223 5.35 l -8.223 -5.35 H 30.44 Z M 13.09' +\n ' 24.594 V 13.459 l 9.127 5.94 l 9.127 -5.94 v 11.135 H 13.09 Z',\n 'Send': 'M0,1.2260086 L8.0000002,8.3380068 16,1.2260086 16,12.000007 0,12.000007 z M1.6300015,0 L14.371001,0 8.0000055,5.662 z',\n 'InstantiatingReceive': 'M 16.306 17.39 v 8.79 h 13.198 v -8.79 H 16.306 Z M 28.375 17.946 l -5.47 3.558 l -5.47 -3.558 ' +\n 'H 28.375 Z M 28.948 25.625 H 16.861 v -7.389 l 6.043 3.931 l 6.043 -3.931 V 25.625 Z M 22.905 11.785' +\n 'c -5.514 0 -9.999 4.486 -9.999 10 c 0 5.514 4.485 10 9.999 10 s 9.999 -4.486 9.999 -10 ' +\n 'C 32.904 16.272 28.419 11.785 22.905 11.785 Z M 22.905 31.239 c -5.212 0 -9.453 -4.241 -9.453 -9.454' +\n 'c 0 -5.212 4.241 -9.453 9.453 -9.453 s 9.452 4.241 9.452 9.453 C 32.357 26.998 28.117 31.239 22.905 31.239 Z',\n 'Manual': 'M9.21 612 L5.82 612 L1.07 612 a1.07317 1 -180 0 1 -1.07317 -1 L0 604.75 A3.42007 1.59344 -180 0 0 1.61 604 L2.6 604 L5.99 604 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L2.6 605.34 a0.48818 0.183302 -90 0 0 0.0837073 0.342385 L5.63 605.69 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.28 605.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 607.01 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 607.35 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L10.01 607.33 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 608.67 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 609.01 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.47 608.99 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672 L5.82 610.34 a0.721171 0.672 0 0 1 -0.184585 -0.0223847 L5.63 610.68 a0.721171 0.672 0 0 1 0.184585 -0.0223847 L9.21 610.66 a0.721171 0.672 0 0 1 0.721171 0.672 a0.721171 0.672 0 0 1 -0.721171 0.672',\n 'BusinessRule': 'M 32.844 13.245 h -0.089 v 0 H 13.764 v -0.015 h -1.009 v 16.989 h 0.095 v 0.011 h 19.716 v -0.011 h 0.278 ' +\n 'V 13.245 Z M 31.844 14.229 v 4.185 h -18.08 v -4.185 H 31.844 Z M 18.168 25.306 v 3.938 h -4.404 v -3.938 H 18.168 Z ' +\n 'M 13.764 24.322 v -4.923 h 4.404 v 4.923 H 13.764 Z M 19.177 25.306 h 12.667 v 3.938 H 19.177 V 25.306 Z M 19.177 24.322' +\n 'v -4.923 h 12.667 v 4.923 H 19.177 Z',\n 'User': 'M8.6751149,13.75 L10.79009,18.703003 11.664047,18.696991 13.792084,13.75 13.824066,13.75 C18.177001,13.75 21.709022,' +\n '17.259003 21.748998,21.60199 21.748998,21.649994 21.743993,21.700012 21.735021,21.747009 21.137981,24.774994 18.775997,' +\n '27.144989 15.74904,27.75 L6.7491024,27.75 C3.7231224,27.144989 1.3601628,24.774994 0.76312089,21.747009 0.75414884,21.700012 0.74914402,' +\n '21.649994 0.75012076,21.60199 0.78912175,17.259003 4.3221171,13.75 8.6751149,13.75 z M11.249014,0.75 C14.287014,0.75 16.749015,' +\n '3.2119999 16.749015,6.25 16.749015,9.2880001 14.287014,11.75 11.249014,11.75 8.211015,11.75 5.7490147,9.2880001 5.7490147,6.25 5.7490147,3.2119999 8.211015,0.75 11.249014,0.75 z',\n 'Script': 'M22.3,80.4 A82.9529,77.0159,-180,0,0,10.3,46.7 A69.8467,64.8477,0,0,1,0,19.7 A27.6207,25.6439,0,0,1,12.1,0 L84.7,0 A37.4124,34.7347,-180,0,0,77.7,19.6 A82.8871,76.9547,' +\n '-180,0,0,89.7,53.3 A69.8146,64.81790000000001,0,0,1,100,80.3 A27.603399999999997,25.6278,0,0,1,87.9,100 L15.3,100 A37.4265,34.7479,-180,0,0,22.3,80.4 M12.5,28.6 L67.3,28.6 M18.3,42.9 L72.1,42.9 M80.8,' +\n '57.1 L26,57.1 M85.6,71.4 L32.6,71.4'\n};\nvar bpmnLoopShapes = {\n 'None': '',\n 'Standard': 'M 52.002 73.379 c -2.494 -2.536 -6.55 -2.534 -9.043 0 c -1.208 1.228 -1.874 2.861 -1.874 4.598 ' +\n 'c 0 1.225 0.337 2.395 0.957 3.411 l -1.167 1.186 l 2.071 0.458 l 2.071 0.458 l -0.45 -2.106 l -0.45 -2.106 l -1.292 1.314' +\n 'c -1.119 -2.065 -0.842 -4.709 0.877 -6.458 c 2.084 -2.119 5.475 -2.117 7.557 0 c 2.083 2.119 2.083 5.565 0 7.685' +\n 'c -0.976 0.992 -2.272 1.557 -3.65 1.59 l 0.025 1.068 c 1.65 -0.041 3.2 -0.716 4.368 -1.903 ' +\n 'c 1.208 -1.228 1.874 -2.861 1.874 -4.597 C 53.875 76.24 53.209 74.607 52.002 73.379 Z',\n 'ParallelMultiInstance': 'M 51.5,69.5 L52.5,69.5 L52.5,84.5 L51.5 84.5 Z M 46.5,69.5 L47.5,69.5 L47.5,84.5 L46.5 84.5 Z' +\n ' M 41.5,69.5 L42.5,69.5 L42.5,84.5 L41.5 84.5 Z ',\n 'SequenceMultiInstance': 'M 40.375,71.5 L 55.375,71.5 L 55.375,72.5 L 40.375,72.5 Z M 40.375,76.5 L 55.375,76.5 ' +\n 'L 55.375,77.5 L 40.375,77.5 Z M 40.375,76.5 L 55.375,76.5 L 55.375,77.5 L 40.375,77.5 Z M 40.375,81.5 L 55.375,81.5' +\n 'L 55.375,82.5 L 40.375,82.5 Z'\n};\n","/* eslint-disable jsdoc/require-returns */\n/* eslint-disable valid-jsdoc */\nimport { Point } from '../primitives/point';\nimport { Rect } from '../primitives/rect';\nimport { intersect2 } from '../utility/diagram-util';\nimport { canBridge } from '../utility/constraints-util';\n/**\n * ConnectorBridging defines the bridging behavior\n */\n/** @private */\nvar ConnectorBridging = /** @class */ (function () {\n /**\n * Constructor for the bridging module\n *\n * @private\n */\n function ConnectorBridging() {\n //constructs the bridging module\n }\n /**\n * @param {Connector}conn - provide the target value.\n * @param {Diagram}diagram - provide the target value.\n * @private\n */\n ConnectorBridging.prototype.updateBridging = function (conn, diagram) {\n var lastBridge = [];\n var bounds;\n conn.bridges = [];\n if (canBridge(conn, diagram)) {\n // if (this.canBridge(conn, diagram)) {\n var points1 = this.getPoints(conn);\n bounds = Rect.toBounds(points1);\n var bridgeSpacing = conn.bridgeSpace;\n var bgedir = diagram.bridgeDirection;\n var count = -1;\n var quads = diagram.connectors;\n for (var q = 0; q < quads.length; q++) {\n var connector1 = quads[parseInt(q.toString(), 10)];\n //EJ2-868564- Bridging is enabled when connector visibility is set to False\n if (conn && connector1 && conn.id !== connector1.id && connector1.visible) {\n var points2 = this.getPoints(connector1);\n var bounds1 = Rect.toBounds(points2);\n if (this.intersectsRect(bounds, bounds1)) {\n var intersectPts = this.intersect(points1, points2, false, bgedir, true);\n if (intersectPts.length > 0) {\n for (var i = 0; i < intersectPts.length; i++) {\n var fullLength = 0;\n var length_1 = 0;\n var segmentIndex = 0;\n var pointIndex = 0;\n var obj = this.getLengthAtFractionPoint(conn, intersectPts[parseInt(i.toString(), 10)]);\n if (obj.pointIndex !== -1) {\n length_1 = obj.lengthFractionIndex;\n fullLength = obj.fullLength;\n segmentIndex = obj.segmentIndex;\n pointIndex = obj.pointIndex;\n var stBridge = this.getPointAtLength((length_1 - (bridgeSpacing / 2)), points1);\n var enBridge = this.getPointAtLength((length_1 + (bridgeSpacing / 2)), points1);\n var fractLength = (length_1 - (bridgeSpacing / 2)) / fullLength;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n fractLength = (length_1 + (bridgeSpacing / 2)) / fullLength;\n if (this.isEmptyPoint(enBridge)) {\n enBridge = stBridge;\n }\n var end = void 0;\n var start = conn.sourcePoint;\n if (conn.type === 'Straight') {\n end = conn.targetPoint;\n }\n else {\n end = conn.intermediatePoints[parseInt(pointIndex.toString(), 10)];\n }\n var angle = this.angleCalculation(start, end);\n if (lastBridge.length) {\n var fixedPoint = conn.sourcePoint;\n var fix = Math.abs(this.lengthCalculation(fixedPoint, enBridge));\n var var1 = 0;\n var insertAt = -1;\n count = -1;\n for (var k = 0; k < lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.length; k++) {\n count++;\n var arcSeg = lastBridge[parseInt(segmentIndex.toString(), 10)].bridges[parseInt(k.toString(), 10)];\n var1 = Math.abs(this.lengthCalculation(fixedPoint, arcSeg.endPoint));\n if (fix < var1) {\n insertAt = count;\n break;\n }\n }\n if (insertAt >= 0) {\n //let paths: ArcSegment;\n // eslint-disable-next-line max-len\n var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n paths.target = connector1.id;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.splice(insertAt, 0, paths);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.join();\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.splice(insertAt, 0, stBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.join();\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n else {\n //let paths: ArcSegment;\n // eslint-disable-next-line max-len\n var paths = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n paths.target = connector1.id;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(paths);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint.push(stBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n }\n else {\n if (!isNaN(stBridge.x) && !isNaN(stBridge.y) && !this.isEmptyPoint(enBridge)) {\n //let arcs: ArcSegment;\n var bges = [];\n var bgept = [];\n // eslint-disable-next-line max-len\n var arcs = this.createSegment(stBridge, enBridge, angle, bgedir, pointIndex, conn, diagram);\n var bgseg = {\n bridges: bges, bridgeStartPoint: bgept, segmentIndex: segmentIndex\n };\n arcs.target = connector1.id;\n var stPoints = [];\n var edPoints = [];\n stPoints.push(stBridge);\n edPoints.push(enBridge);\n lastBridge[parseInt(segmentIndex.toString(), 10)] = bgseg;\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridges.push(arcs);\n lastBridge[parseInt(segmentIndex.toString(), 10)].bridgeStartPoint = stPoints;\n lastBridge[parseInt(segmentIndex.toString(), 10)].segmentIndex = segmentIndex;\n }\n }\n }\n }\n }\n }\n }\n }\n if (lastBridge.length !== 0) {\n this.firstBridge(lastBridge, conn, bridgeSpacing);\n }\n }\n };\n /**\n * @param {BridgeSegment[]}bridgeList - provide the bridgeList value.\n * @param {Connector}connector - provide the connector value.\n * @param {number}bridgeSpacing - provide the bridgeSpacing value.\n * @private\n */\n ConnectorBridging.prototype.firstBridge = function (bridgeList, connector, bridgeSpacing) {\n for (var i = 0; i < bridgeList.length; i++) {\n var bridge = bridgeList[parseInt(i.toString(), 10)];\n for (var k = 1; k < bridge.bridges.length; k++) {\n if (Point.findLength(bridge.bridges[parseInt(k.toString(), 10)].endPoint, bridge.bridges[k - 1].endPoint) < bridgeSpacing) {\n bridge.bridges[k - 1].endPoint = bridge.bridges[parseInt(k.toString(), 10)].endPoint;\n var subBridge = bridge.bridges[k - 1];\n var arc = this.createBridgeSegment(subBridge.startPoint, subBridge.endPoint, subBridge.angle, bridgeSpacing, subBridge.sweep);\n bridge.bridges[k - 1].path = arc;\n bridge.bridges.splice(k, 1);\n bridge.bridgeStartPoint.splice(k, 1);\n k--;\n }\n }\n var pre = connector.sourcePoint;\n for (var j = 0; j < bridge.bridges.length; j++) {\n var subBridge = bridge.bridges[parseInt(j.toString(), 10)]; //const preventChecking: boolean = true;\n pre = subBridge.endPoint;\n connector.bridges.push(subBridge);\n }\n }\n };\n /**\n * @returns { ArcSegment } checkSourcePointInTarget method .\\\n * @param {PointModel}st- provide the st value.\n * @param {PointModel}end- provide the end value.\n * @param {number}angle- provide the angle value.\n * @param {BridgeDirection}direction- provide the direction value.\n * @param {number}index- provide the index value.\n * @param {Connector}conn- provide the conn value.\n * @param {Diagram} diagram- provide the diagram value.\n * @private\n */\n ConnectorBridging.prototype.createSegment = function (st, end, angle, direction, index, conn, diagram) {\n //let arc: string;\n //let sweep: number;\n var path = {\n angle: 0, endPoint: { x: 0, y: 0 }, target: '', path: '',\n segmentPointIndex: -1, startPoint: { x: 0, y: 0 }, sweep: 1, rendered: false\n };\n var sweep = this.sweepDirection(angle, direction, conn, diagram);\n var arc = this.createBridgeSegment(st, end, angle, conn.bridgeSpace, sweep);\n path.path = arc;\n path.startPoint = st;\n path.endPoint = end;\n path.angle = angle;\n path.segmentPointIndex = index;\n path.sweep = sweep;\n return path;\n };\n /**\n * @param {PointModel}startPt- provide the startPt value.\n * @param {PointModel}endPt- provide the endPt value.\n * @param {number}angle- provide the angle value.\n * @param {number}bridgeSpace- provide the bridgeSpace value.\n * @param {number}sweep- provide the sweep value.\n * @private\n */\n ConnectorBridging.prototype.createBridgeSegment = function (startPt, endPt, angle, bridgeSpace, sweep) {\n var path = 'A ' + bridgeSpace / 2 + ' ' + bridgeSpace / 2 + ' ' + angle + ' , 1 ' + sweep + ' ' + endPt.x + ',' + endPt.y;\n return path;\n };\n /**\n * @param {number}angle- provide the source value.\n * @param {BridgeDirection}bridgeDirection- provide the source value.\n * @param {Connector}connector- provide the source value.\n * @param {Diagram}diagram- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.sweepDirection = function (angle, bridgeDirection, connector, diagram) {\n var angle1 = Math.abs(angle);\n var sweep;\n switch (bridgeDirection) {\n case 'Top':\n case 'Bottom':\n sweep = 1;\n if (angle1 >= 0 && angle1 <= 90) {\n sweep = 0;\n }\n break;\n case 'Left':\n case 'Right':\n sweep = 1;\n if (angle < 0 && angle >= -180) {\n sweep = 0;\n }\n break;\n }\n if (bridgeDirection === 'Right' || bridgeDirection === 'Bottom') {\n if (sweep === 0) {\n sweep = 1;\n }\n else {\n sweep = 0;\n }\n }\n return sweep;\n };\n /** @private */\n ConnectorBridging.prototype.getPointAtLength = function (length, pts) {\n var run = 0;\n var pre;\n var found = { x: 0, y: 0 };\n for (var i = 0; i < pts.length; i++) {\n var pt = pts[parseInt(i.toString(), 10)];\n if (!pre) {\n pre = pt;\n continue;\n }\n else {\n var l = this.lengthCalculation(pre, pt);\n if (run + l > length) {\n var r = length - run;\n var deg = Point.findAngle(pre, pt);\n var x = r * Math.cos(deg * Math.PI / 180);\n var y = r * Math.sin(deg * Math.PI / 180);\n found = { x: pre.x + x, y: pre.y + y };\n break;\n }\n else {\n run += l;\n }\n }\n pre = pt;\n }\n return found;\n };\n /**\n * @param {PointModel[]}connector- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.getPoints = function (connector) {\n var points = [];\n if (connector.intermediatePoints && (connector.type === 'Straight' || connector.type === 'Orthogonal')) {\n for (var j = 0; j < connector.intermediatePoints.length; j++) {\n points.push(connector.intermediatePoints[parseInt(j.toString(), 10)]);\n }\n }\n return points;\n };\n ConnectorBridging.prototype.intersectsRect = function (rect1, rect2) {\n return ((((rect2.x < (rect1.x + rect1.width)) && (rect1.x < (rect2.x + rect2.width)))\n && (rect2.y < (rect1.y + rect1.height))) && (rect1.y < (rect2.y + rect2.height)));\n };\n /**\n * @param {PointModel[]}points1- provide the source value.\n * @param {PointModel[]}points2- provide the source value.\n * @param {boolean}self- provide the source value.\n * @param {BridgeDirection}bridgeDirection- provide the source value.\n * @param {PointModel[]}zOrder- provide the source value.\n * @private\n */\n ConnectorBridging.prototype.intersect = function (points1, points2, self, bridgeDirection, zOrder) {\n if (self && points2.length >= 2) {\n points2.splice(0, 1);\n points2.splice(0, 1);\n }\n var points = [];\n for (var i = 0; i < points1.length - 1; i++) {\n var pt = this.inter1(points1[parseInt(i.toString(), 10)], points1[i + 1], points2, zOrder, bridgeDirection);\n if (pt.length > 0) {\n for (var k = 0; k < pt.length; k++) {\n points.push(pt[parseInt(k.toString(), 10)]);\n }\n }\n if (self && points2.length >= 1) {\n points2.splice(0, 1);\n }\n }\n return points;\n };\n /**\n * @param {PointModel}startPt- provide the target value.\n * @param {PointModel}endPt- provide the target value.\n * @param {PointModel[]}pts- provide the target value.\n * @param {boolean}zOrder- provide the target value.\n * @param {BridgeDirection}bridgeDirection- provide the target value.\n * @private\n */\n ConnectorBridging.prototype.inter1 = function (startPt, endPt, pts, zOrder, bridgeDirection) {\n var points1 = [];\n for (var i = 0; i < pts.length - 1; i++) {\n var point = intersect2(startPt, endPt, pts[parseInt(i.toString(), 10)], pts[i + 1]);\n if (!this.isEmptyPoint(point)) {\n var angle = this.angleCalculation(startPt, endPt);\n var angle1 = this.angleCalculation(pts[parseInt(i.toString(), 10)], pts[i + 1]);\n angle = this.checkForHorizontalLine(angle);\n angle1 = this.checkForHorizontalLine(angle1);\n switch (bridgeDirection) {\n case 'Left':\n case 'Right':\n if (angle > angle1) {\n points1.push(point);\n }\n break;\n case 'Top':\n case 'Bottom':\n if (angle < angle1) {\n points1.push(point);\n }\n break;\n }\n if (angle === angle1 && zOrder) {\n points1.push(point);\n }\n }\n }\n return points1;\n };\n ConnectorBridging.prototype.checkForHorizontalLine = function (angle) {\n var temp = 0;\n var roundedAngle = Math.abs(angle);\n if (roundedAngle > 90) {\n temp = 180 - roundedAngle;\n }\n else {\n temp = roundedAngle;\n }\n return temp;\n };\n ConnectorBridging.prototype.isEmptyPoint = function (point) {\n return point.x === 0 && point.y === 0;\n };\n ConnectorBridging.prototype.getLengthAtFractionPoint = function (connector, pointAt) {\n var confirm = 100;\n var pointIndex = -1;\n var fullLength = 0;\n var segmentIndex = -1;\n var count = 0;\n var lengthAtFractionPt = 0;\n var pt1 = connector.sourcePoint;\n var previouspt2 = pt1;\n var points = [];\n for (var i = 0; i < connector.intermediatePoints.length; i++) {\n var point2 = connector.intermediatePoints[parseInt(i.toString(), 10)];\n points.push(point2);\n }\n for (var j = 0; j < points.length; j++) {\n var pt2 = points[parseInt(j.toString(), 10)];\n var suspect = this.getSlope(pt2, pt1, pointAt, connector);\n if (suspect < confirm) {\n confirm = suspect;\n lengthAtFractionPt = fullLength + this.lengthCalculation(pointAt, previouspt2);\n segmentIndex = count;\n pointIndex = j;\n }\n fullLength += Point.findLength(pt2, pt1);\n pt1 = pt2;\n previouspt2 = pt2;\n }\n count++;\n var lengthFraction = {\n lengthFractionIndex: lengthAtFractionPt, fullLength: fullLength,\n segmentIndex: segmentIndex, pointIndex: pointIndex\n };\n return lengthFraction;\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ConnectorBridging.prototype.getSlope = function (startPt, endPt, point, connector) {\n var three = 3.0;\n var delX = Math.abs(startPt.x - endPt.x);\n var delY = Math.abs(startPt.y - endPt.y);\n var lhs = ((point.y - startPt.y) / (endPt.y - startPt.y));\n var rhs = ((point.x - startPt.x) / (endPt.x - startPt.x));\n if (!isFinite(lhs) || !isFinite(rhs) || isNaN(lhs) || isNaN(rhs)) {\n if (startPt.x === endPt.x) {\n if (startPt.y === endPt.y) {\n return 10000;\n }\n else if (((startPt.y > point.y) && (point.y > endPt.y)) || ((startPt.y < point.y) && (point.y < endPt.y))) {\n return Math.abs(startPt.x - point.x);\n }\n }\n else if (startPt.y === endPt.y) {\n if (((startPt.x > point.x) && (point.x > endPt.x)) || ((startPt.x < point.x) && (point.x < endPt.x))) {\n return Math.abs(startPt.y - point.y);\n }\n }\n }\n else {\n if ((startPt.x >= point.x && point.x >= endPt.x) || (startPt.x <= point.x && point.x <= endPt.x) || delX < three) {\n if ((startPt.y >= point.y && point.y >= endPt.y) || (startPt.y <= point.y && point.y <= endPt.y) || delY < three) {\n return Math.abs(lhs - rhs);\n }\n }\n }\n return 10000;\n };\n /**\n * @param {PointModel}startPt- provide the target value.\n * @param {PointModel}endPt- provide the target value.\n * @private\n */\n ConnectorBridging.prototype.angleCalculation = function (startPt, endPt) {\n var xDiff = startPt.x - endPt.x;\n var yDiff = startPt.y - endPt.y;\n return Math.atan2(yDiff, xDiff) * (180 / Math.PI);\n };\n ConnectorBridging.prototype.lengthCalculation = function (startPt, endPt) {\n //removed a try catch from here\n var len = Math.sqrt(((startPt.x - endPt.x) * (startPt.x - endPt.x)) + ((startPt.y - endPt.y) * (startPt.y - endPt.y)));\n return len;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n ConnectorBridging.prototype.destroy = function () {\n /**\n * Destroys the bridging module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n ConnectorBridging.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Bridging';\n };\n return ConnectorBridging;\n}());\nexport { ConnectorBridging };\n","import { Rect } from '../primitives/rect';\nimport { PathElement } from '../core/elements/path-element';\nimport { SnapConstraints } from '../enum/enum';\nimport { Connector } from './connector';\nimport { Selector } from '../objects/node';\nimport { getBounds } from './../utility/base-util';\nimport { randomId } from './../utility/base-util';\nimport { isSelected } from '../interaction/actions';\nimport { TextElement } from '../core/elements/text-element';\nimport { DiagramHtmlElement } from '../core/elements/html-element';\n/**\n * Snapping\n */\nvar Snapping = /** @class */ (function () {\n function Snapping(diagram) {\n this.line = [];\n this.diagram = diagram;\n }\n /** @private */\n Snapping.prototype.canSnap = function () {\n return (this.diagram.snapSettings.constraints\n & (SnapConstraints.SnapToObject | SnapConstraints.SnapToLines)) !== 0;\n };\n Snapping.prototype.getWrapperObject = function (selectedObject, nameTable) {\n if (selectedObject.nodes && selectedObject.nodes.length > 0\n && (this.diagram.snapSettings.constraints & SnapConstraints.SnapToLines || this.diagram.snapSettings.constraints\n & SnapConstraints.SnapToObject)) {\n for (var i = 0; i < selectedObject.nodes.length; i++) {\n if (((selectedObject.nodes[parseInt(i.toString(), 10)].shape.type === 'SwimLane' || selectedObject.nodes[parseInt(i.toString(), 10)].isLane)\n || selectedObject.nodes[parseInt(i.toString(), 10)].parentId !== ''\n && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)]\n && nameTable[(selectedObject.nodes[parseInt(i.toString(), 10)].parentId)].isLane) && nameTable['helper']) {\n return nameTable['helper'].wrapper;\n }\n else {\n return selectedObject.wrapper;\n }\n }\n }\n return selectedObject.wrapper;\n };\n Snapping.prototype.setSnapLineColor = function () {\n return this.diagram.snapSettings.snapLineColor;\n };\n /**\n * Snap to object\n *\n * @private\n */\n Snapping.prototype.snapPoint = function (diagram, selectedObject, towardsLeft, towardsTop, delta, startPoint, endPoint) {\n var snapSettings = this.diagram.snapSettings;\n var zoomFactor = this.diagram.scroller.currentZoom;\n var offset = { x: 0, y: 0 };\n var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var horizontallysnapped = { snapped: false, offset: 0 };\n var verticallysnapped = { snapped: false, offset: 0 };\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n //let snapLine: SVGElement;\n var snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n snapLine.setAttribute('id', '_SnappingLines');\n snapLine.setAttribute('shapeRendering', 'crispEdges');\n this.getAdornerLayerSvg().appendChild(snapLine);\n this.snapObject(diagram, selectedObject, snapLine, horizontallysnapped, verticallysnapped, delta, startPoint === endPoint);\n }\n //original position\n var left = bounds.x + delta.x;\n var top = bounds.y + delta.y;\n var right = bounds.x + bounds.width + delta.x;\n var bottom = bounds.y + bounds.height + delta.y;\n var scaledIntervals = snapSettings.verticalGridlines.scaledIntervals;\n //snapped positions\n var roundedRight = this.round(right, scaledIntervals, zoomFactor);\n var roundedLeft = this.round(left, scaledIntervals, zoomFactor);\n scaledIntervals = snapSettings.horizontalGridlines.scaledIntervals;\n var roundedTop = this.round(top, scaledIntervals, zoomFactor);\n var roundedBottom = this.round(bottom, scaledIntervals, zoomFactor);\n //currentposition\n var currentright = bounds.x + bounds.width;\n var currentbottom = bounds.y + bounds.height;\n if (!horizontallysnapped.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n if (Math.abs(delta.x) >= 1) {\n if (towardsLeft) {\n if (Math.abs(roundedRight - currentright) > Math.abs(roundedLeft - bounds.x)) {\n offset.x += roundedLeft - bounds.x;\n }\n else {\n offset.x += roundedRight - currentright;\n }\n }\n else {\n if (Math.abs(roundedRight - currentright) < Math.abs(roundedLeft - bounds.x)) {\n offset.x += roundedRight - currentright;\n }\n else {\n offset.x += roundedLeft - bounds.x;\n }\n }\n }\n }\n else {\n offset.x = endPoint.x - startPoint.x;\n }\n }\n else {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n offset.x = horizontallysnapped.offset;\n }\n else {\n offset.x = endPoint.x - startPoint.x;\n }\n }\n if (!verticallysnapped.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n if (Math.abs(delta.y) >= 1) {\n if (towardsTop) {\n if (Math.abs(roundedBottom - currentbottom) > Math.abs(roundedTop - bounds.y)) {\n offset.y += roundedTop - bounds.y;\n }\n else {\n offset.y += roundedBottom - currentbottom;\n }\n }\n else {\n if (Math.abs(roundedBottom - currentbottom) < Math.abs(roundedTop - bounds.y)) {\n offset.y += roundedBottom - currentbottom;\n }\n else {\n offset.y += roundedTop - bounds.y;\n }\n }\n }\n }\n else {\n offset.y = endPoint.y - startPoint.y;\n }\n }\n else {\n offset.y = verticallysnapped.offset;\n }\n return offset;\n };\n /**\n * @private\n */\n Snapping.prototype.round = function (value, snapIntervals, scale) {\n if (scale === 1) {\n scale = Math.pow(2, Math.floor(Math.log(scale) / Math.log(2)));\n }\n else {\n scale = scale;\n }\n var cutoff = 0;\n var i = 0;\n for (i = 0; i < snapIntervals.length; i++) {\n cutoff += snapIntervals[parseInt(i.toString(), 10)];\n }\n cutoff /= scale;\n var quotient = Math.floor(Math.abs(value) / cutoff);\n var bal = value % cutoff;\n var prev = quotient * cutoff;\n if (prev !== value) {\n if (value >= 0) {\n for (i = 0; i < snapIntervals.length; i++) {\n if (bal <= snapIntervals[parseInt(i.toString(), 10)] / scale) {\n return prev + (bal < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale))\n ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale);\n }\n else {\n prev += snapIntervals[parseInt(i.toString(), 10)] / scale;\n bal -= snapIntervals[parseInt(i.toString(), 10)] / scale;\n }\n }\n }\n else {\n prev = prev * -1;\n for (i = snapIntervals.length - 1; i >= 0; i--) {\n if (Math.abs(bal) <= snapIntervals[parseInt(i.toString(), 10)] / scale) {\n return prev - (Math.abs(bal) < (snapIntervals[parseInt(i.toString(), 10)] / (2 * scale))\n ? 0 : snapIntervals[parseInt(i.toString(), 10)] / scale);\n }\n else {\n prev -= snapIntervals[parseInt(i.toString(), 10)] / scale;\n bal += snapIntervals[parseInt(i.toString(), 10)] / scale;\n }\n }\n }\n }\n return value;\n };\n //Snap to Object\n Snapping.prototype.snapObject = function (diagram, selectedObject, g, horizontalSnap, verticalSnap, delta, ended) {\n var lengthX = null;\n var lengthY;\n var hTarget;\n var vTarget;\n var scroller = this.diagram.scroller;\n var snapSettings = this.diagram.snapSettings;\n var objectsAtLeft = [];\n var objectsAtRight = [];\n var objectsAtTop = [];\n var objectsAtBottom = [];\n var wrapper = this.getWrapperObject(selectedObject, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var scale = diagram.scroller.currentZoom;\n var hoffset = -scroller.horizontalOffset;\n var voffset = -scroller.verticalOffset;\n var snapObjDistance = snapSettings.snapObjectDistance / scale;\n var viewPort = new Rect(0, 0, scroller.viewPortWidth, scroller.viewPortHeight);\n var hIntersectRect = new Rect(hoffset / scale, (bounds.y - snapObjDistance - 5), viewPort.width / scale, (bounds.height + 2 * snapObjDistance + 10));\n var vIntersectRect = new Rect((bounds.x - snapObjDistance - 5), voffset / scale, (bounds.width + 2 * snapObjDistance + 10), viewPort.height / scale);\n viewPort = new Rect(hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale);\n var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vIntersectRect, viewPort);\n var i;\n var target;\n var targetBounds;\n var nameTable = diagram.nameTable;\n for (i = 0; i < nodes.length; i++) {\n target = nodes[parseInt(i.toString(), 10)];\n if (this.canBeTarget(diagram, target)) {\n if (!(this.diagram.nameTable[target.id] instanceof Connector) && this.canConsider(nameTable, selectedObject, target)) {\n targetBounds = target.bounds;\n if (targetBounds.height + targetBounds.y < delta.y + bounds.y) {\n objectsAtTop.push({\n obj: target, distance: Math.abs(bounds.y + delta.y - targetBounds.y - targetBounds.height)\n });\n }\n else if (targetBounds.y > bounds.y + delta.y + bounds.height) {\n objectsAtBottom.push({ obj: target, distance: Math.abs(bounds.y + delta.y + bounds.height - targetBounds.y) });\n }\n if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y - delta.y)) {\n if (Math.abs(targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2 + delta.x)) <=\n snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'centerX');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'right');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x - (bounds.x + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'left');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x - (bounds.x + bounds.width + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(targetBounds.x + targetBounds.width - (bounds.x + delta.x)) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n }\n }\n }\n nodes = this.findNodes(diagram.spatialSearch, selectedObject, hIntersectRect, viewPort);\n for (var j = 0; j < nodes.length; j++) {\n target = nodes[parseInt(j.toString(), 10)];\n if (this.canBeTarget(diagram, target)) {\n if (!(this.diagram.nameTable[target.id] instanceof Connector) && this.canConsider(nameTable, selectedObject, target)) {\n targetBounds = target.bounds;\n if (targetBounds.x + targetBounds.width < bounds.x + delta.x) {\n objectsAtLeft[objectsAtLeft.length] = {\n obj: target, distance: Math.abs((bounds.x + delta.x) - targetBounds.x - targetBounds.width)\n };\n }\n if (targetBounds.x > bounds.x + delta.x + bounds.width) {\n objectsAtRight[objectsAtRight.length] = {\n obj: target, distance: Math.abs(bounds.x + delta.x + bounds.width - targetBounds.x)\n };\n }\n if (lengthY == null || lengthY > Math.abs(targetBounds.x - bounds.x - delta.x)) {\n if (Math.abs(targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2 + delta.y))\n <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'centerY');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y - bounds.y - delta.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'top');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y + targetBounds.height - (bounds.y + bounds.height + delta.y)) <=\n snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'bottom');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y + targetBounds.height - bounds.y - delta.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'topBottom');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n else if (Math.abs(targetBounds.y - (bounds.y + bounds.height + delta.y)) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds, bounds, 'bottomTop');\n lengthY = Math.abs(targetBounds.x - bounds.x);\n }\n }\n }\n }\n }\n this.createGuidelines(diagram, hTarget, vTarget, g, horizontalSnap, verticalSnap, ended);\n if (!horizontalSnap.snapped) {\n this.createHSpacingLines(diagram, g, selectedObject, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance);\n }\n if (!verticalSnap.snapped) {\n this.createVSpacingLines(diagram, g, selectedObject, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance);\n }\n };\n /**\n * @private\n */\n Snapping.prototype.snapConnectorEnd = function (point) {\n var snapSettings = this.diagram.snapSettings;\n var zoomFactor = this.diagram.scroller.currentZoom;\n if (snapSettings.constraints & SnapConstraints.SnapToLines) {\n point.x = this.round(point.x, snapSettings.verticalGridlines.scaledIntervals, zoomFactor);\n point.y = this.round(point.y, snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n }\n return point;\n };\n Snapping.prototype.canBeTarget = function (diagram, node) {\n node = this.diagram.nameTable[node.id];\n return !(isSelected(this.diagram, node, false));\n };\n Snapping.prototype.snapSize = function (diagram, horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, selectedObject, ended) {\n var lengthX;\n var lengthY;\n var snapSettings = this.diagram.snapSettings;\n var scroller = this.diagram.scroller;\n var hTarget;\n var vTarget;\n var bounds = getBounds(selectedObject.wrapper);\n var nameTable = diagram.nameTable;\n var sameWidth = [];\n var sameHeight = [];\n var scale = diagram.scroller.currentZoom;\n var hoffset = -scroller.horizontalOffset;\n var voffset = -scroller.verticalOffset;\n var snapObjDistance = snapSettings.snapObjectDistance / scale;\n var viewPort = new Rect(0, 0, scroller.viewPortWidth, scroller.viewPortHeight);\n var hintersectedrect = new Rect(hoffset / scale, (bounds.y - 5) / scale, viewPort.width / scale, (bounds.height + 10) / scale);\n var vintersectedrect = new Rect((bounds.x - 5) / scale, voffset / scale, (bounds.width + 10) / scale, viewPort.height / scale);\n viewPort = new Rect(hoffset / scale, voffset / scale, viewPort.width / scale, viewPort.height / scale);\n var nodesInView = [];\n var nodes = this.findNodes(diagram.spatialSearch, selectedObject, vintersectedrect, viewPort, nodesInView);\n var i;\n var target;\n var targetBounds;\n for (i = 0; i < nodes.length; i++) {\n target = nodes[parseInt(i.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target) && !(this.diagram.nameTable[target.id] instanceof Connector)) {\n targetBounds = target.bounds;\n if (lengthX == null || lengthX > Math.abs(targetBounds.y - bounds.y)) {\n if (horizontalSnap.left) {\n if (Math.abs(bounds.x + deltaX - targetBounds.x) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'left');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(bounds.x + deltaX - targetBounds.x - targetBounds.width) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'leftRight');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n else if (horizontalSnap.right) {\n if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x - targetBounds.width) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'right');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n else if (Math.abs(bounds.x + deltaX + bounds.width - targetBounds.x) <= snapObjDistance) {\n hTarget = this.createSnapObject(targetBounds, bounds, 'rightLeft');\n lengthX = Math.abs(targetBounds.y - bounds.y);\n }\n }\n }\n }\n }\n nodes = this.findNodes(diagram.spatialSearch, selectedObject, hintersectedrect, viewPort);\n for (var i_1 = 0; i_1 < nodes.length; i_1++) {\n var target_1 = nodes[parseInt(i_1.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target_1) && !(this.diagram.nameTable[target_1.id] instanceof Connector)) {\n var targetBounds_1 = target_1.bounds;\n if (lengthY == null || lengthY > Math.abs(targetBounds_1.x - bounds.x)) {\n if (verticalSnap.top) {\n if (Math.abs(bounds.y + deltaY - targetBounds_1.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'top');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n else if (Math.abs(bounds.y + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'topBottom');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n }\n else if (verticalSnap.bottom) {\n if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y - targetBounds_1.height) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottom');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n else if (Math.abs(bounds.y + bounds.height + deltaY - targetBounds_1.y) <= snapObjDistance) {\n vTarget = this.createSnapObject(targetBounds_1, bounds, 'bottomTop');\n lengthY = Math.abs(targetBounds_1.x - bounds.x);\n }\n }\n }\n }\n }\n for (i = 0; i < nodesInView.length; i++) {\n target = nodesInView[parseInt(i.toString(), 10)];\n if (this.canConsider(nameTable, selectedObject, target)) {\n var targetBounds_2 = target.bounds;\n var delta = horizontalSnap.left ? -deltaX : deltaX;\n var difference = Math.abs(bounds.width + delta - targetBounds_2.width);\n var actualDiff = void 0;\n if (difference <= snapObjDistance) {\n actualDiff = horizontalSnap.left ? -targetBounds_2.width + bounds.width : targetBounds_2.width - bounds.width;\n sameWidth[sameWidth.length] = { source: target, difference: difference, offset: actualDiff };\n }\n delta = verticalSnap.top ? -deltaY : deltaY;\n var dify = Math.abs(bounds.height + delta - targetBounds_2.height);\n if (dify <= snapObjDistance) {\n actualDiff = verticalSnap.top ? -targetBounds_2.height + bounds.height : targetBounds_2.height - bounds.height;\n sameHeight[sameHeight.length] = { source: target, difference: dify, offset: actualDiff };\n }\n }\n }\n var g;\n if (!diagram.getTool) {\n var g_1 = this.createGuidelines(diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended);\n }\n if (!horizontalSnap.snapped && sameWidth.length > 0 && (horizontalSnap.left || horizontalSnap.right)) {\n this.addSameWidthLines(diagram, snapLine, sameWidth, horizontalSnap, ended, selectedObject);\n }\n if (!verticalSnap.snapped && sameHeight.length > 0 && (verticalSnap.top || verticalSnap.bottom)) {\n this.addSameHeightLines(diagram, snapLine, sameHeight, verticalSnap, ended, selectedObject);\n }\n };\n /**\n * Snap to object on top\n *\n * @private\n */\n Snapping.prototype.snapTop = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsT) {\n var dify = deltaY;\n verticalSnap.top = true;\n var y;\n horizontalSnap.left = horizontalSnap.right = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBoundsT: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n y = initialBoundsT.y - initialBoundsT.height * shape.pivot.y + deltaY - (shape.offsetY - shape.height * shape.pivot.y);\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended);\n }\n if (!verticalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n var top_1 = initialBoundsT.y - initialBoundsT.height * shape.pivot.y;\n var actualTop = top_1 + deltaY;\n var roundedTop = this.round(actualTop, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n dify = roundedTop - top_1;\n }\n }\n else {\n dify = (deltaY - y) + verticalSnap.offset;\n }\n return dify;\n };\n /**\n * Snap to object on right\n *\n * @private\n */\n Snapping.prototype.snapRight = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBound) {\n var difx = deltaX;\n var x;\n horizontalSnap.right = true;\n verticalSnap.top = verticalSnap.bottom = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBound: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n x = initialBound.x + initialBound.width * (1 - shape.pivot.x) + deltaX - (shape.offsetX + shape.width * (1 - shape.pivot.x));\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended);\n }\n if (!horizontalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n var right = initialBound.x + initialBound.width * (1 - shape.pivot.x);\n var actualRight = right + deltaX;\n var roundedRight = this.round(actualRight, this.diagram.snapSettings.verticalGridlines.scaledIntervals, zoomFactor);\n difx = roundedRight - right;\n }\n }\n else {\n difx = (deltaX - x) + horizontalSnap.offset;\n }\n return difx;\n };\n /**\n * Snap to object on left\n *\n * @private\n */\n Snapping.prototype.snapLeft = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialBoundsB) {\n var difx = deltaX;\n var x = 0;\n horizontalSnap.left = true;\n verticalSnap.top = verticalSnap.bottom = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n //let initialBoundsB: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n x = initialBoundsB.x - initialBoundsB.width * shape.pivot.x + deltaX - (shape.offsetX - shape.width * shape.pivot.x);\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, x, deltaY, this.diagram.selectedItems, ended);\n }\n if (!horizontalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToVerticalLines) {\n var left = initialBoundsB.x - initialBoundsB.width * shape.pivot.x;\n var actualLeft = left + deltaX;\n var roundedLeft = this.round(actualLeft, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n difx = roundedLeft - left;\n }\n }\n else {\n difx = (deltaX - x) + horizontalSnap.offset;\n }\n return difx;\n };\n /**\n * Snap to object on bottom\n *\n * @private\n */\n Snapping.prototype.snapBottom = function (horizontalSnap, verticalSnap, snapLine, deltaX, deltaY, shape, ended, initialRect) {\n var dify = deltaY;\n verticalSnap.bottom = true;\n horizontalSnap.left = horizontalSnap.right = false;\n var zoomFactor = this.diagram.scroller.currentZoom;\n var y = 0;\n //let initialRect: Rect = new Rect(shape.offsetX, shape.offsetY, shape.width, shape.height);\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject && !shape.rotateAngle) {\n //(!this.selectedObject.isLane && !this.selectedObject.isSwimlane)) {\n y = initialRect.y + initialRect.height * (1 - shape.pivot.y) + deltaY - (shape.offsetY + shape.height * (1 - shape.pivot.y));\n this.snapSize(this.diagram, horizontalSnap, verticalSnap, snapLine, deltaX, y, this.diagram.selectedItems, ended);\n }\n // eslint-disable-next-line max-len\n var bounds = ((shape instanceof TextElement) || (shape instanceof DiagramHtmlElement)) ? getBounds(shape) :\n getBounds(shape.wrapper);\n if (!verticalSnap.snapped) {\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToHorizontalLines) {\n var bottom = initialRect.y + initialRect.height * (1 - shape.pivot.y);\n var actualBottom = bottom + deltaY;\n var roundedBottom = this.round(actualBottom, this.diagram.snapSettings.horizontalGridlines.scaledIntervals, zoomFactor);\n dify = roundedBottom - bottom;\n }\n }\n else {\n dify = (deltaY - y) + verticalSnap.offset;\n }\n return dify;\n };\n //To create the same width and same size lines\n Snapping.prototype.createGuidelines = function (diagram, hTarget, vTarget, snapLine, horizontalSnap, verticalSnap, ended) {\n if (hTarget) {\n horizontalSnap.offset = hTarget.offsetX;\n horizontalSnap.snapped = true;\n if (!ended) {\n if (hTarget.type === 'sideAlign') {\n this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform);\n }\n else {\n this.renderAlignmentLines(hTarget.start, hTarget.end, snapLine, diagram.scroller.transform);\n }\n }\n }\n if (vTarget) {\n verticalSnap.offset = vTarget.offsetY;\n verticalSnap.snapped = true;\n if (!ended) {\n if (vTarget.type === 'sideAlign') {\n this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform);\n }\n else {\n this.renderAlignmentLines(vTarget.start, vTarget.end, snapLine, diagram.scroller.transform);\n }\n }\n }\n return snapLine;\n };\n //To create the alignment lines\n Snapping.prototype.renderAlignmentLines = function (start, end, svg, transform) {\n start = {\n x: (start.x + transform.tx) * transform.scale,\n y: (start.y + transform.ty) * transform.scale\n };\n end = {\n x: (end.x + transform.tx) * transform.scale,\n y: (end.y + transform.ty) * transform.scale\n };\n var line1 = {\n stroke: this.setSnapLineColor(), strokeWidth: 1, startPoint: { x: start.x, y: start.y },\n endPoint: { x: end.x, y: end.y }, fill: this.setSnapLineColor(), dashArray: '', width: 1,\n x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n var i = 0;\n this.line.push(line1);\n for (i = 0; i < this.line.length; i++) {\n this.diagram.diagramRenderer.drawLine(svg, this.line.pop());\n }\n };\n //To create Horizontal spacing lines\n Snapping.prototype.createHSpacingLines = function (diagram, g, shape, objectsAtLeft, objectsAtRight, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) {\n var top = 0;\n this.sortByDistance(objectsAtLeft, 'distance', true);\n this.sortByDistance(objectsAtRight, 'distance', true);\n var equallySpaced = [];\n var bounds;\n if (diagram.selectedObject.helperObject) {\n bounds = getBounds(diagram.selectedObject.helperObject.wrapper);\n }\n else {\n bounds = getBounds(shape.wrapper);\n }\n var nearestleft;\n var nearestright;\n var targetBounds;\n var equaldistance;\n if (objectsAtLeft.length > 0) {\n equallySpaced[equallySpaced.length] = objectsAtLeft[0];\n nearestleft = ((objectsAtLeft[0].obj).bounds);\n top = nearestleft.y;\n if (objectsAtLeft.length > 1) {\n targetBounds = ((objectsAtLeft[1].obj).bounds);\n equaldistance = nearestleft.x - targetBounds.x - targetBounds.width;\n if (Math.abs(equaldistance - objectsAtLeft[0].distance) <= snapObjDistance) {\n top = this.findEquallySpacedNodesAtLeft(objectsAtLeft, equaldistance, top, equallySpaced);\n }\n else {\n equaldistance = objectsAtLeft[0].distance;\n }\n }\n else {\n equaldistance = objectsAtLeft[0].distance;\n }\n }\n this.sortByDistance(equallySpaced, 'distance');\n equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 };\n top = bounds.y < top || !top ? bounds.y : top;\n if (objectsAtRight.length > 0) {\n var dist = void 0;\n nearestright = ((objectsAtRight[0].obj).bounds);\n top = nearestright.y < top ? nearestright.y : top;\n if (objectsAtRight.length > 1) {\n targetBounds = ((objectsAtRight[1].obj).bounds);\n dist = targetBounds.x - nearestright.x - nearestright.width;\n }\n if (objectsAtLeft.length > 0) {\n if (Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) <= snapObjDistance) {\n var adjustablevalue = Math.abs(objectsAtRight[0].distance - objectsAtLeft[0].distance) / 2;\n (objectsAtRight[0].distance < objectsAtLeft[0].distance) ?\n equaldistance -= adjustablevalue : equaldistance += adjustablevalue;\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n }\n else if (objectsAtLeft.length === 1) {\n nearestleft = undefined;\n equallySpaced.splice(0, 1);\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n equaldistance = dist;\n }\n }\n else {\n equaldistance = dist;\n equallySpaced[equallySpaced.length] = objectsAtRight[0];\n }\n if (objectsAtRight.length > 1 && nearestright.x + nearestright.width < targetBounds.x) {\n top = this.findEquallySpacedNodesAtRight(objectsAtRight, dist, top, equallySpaced, snapObjDistance);\n }\n }\n if (equallySpaced.length > 2) {\n this.addHSpacingLines(diagram, g, equallySpaced, ended, top);\n var deltaHorizontal = 0;\n if (ended) {\n deltaHorizontal = delta.x;\n }\n if (nearestleft) {\n horizontalSnap.offset = equaldistance - Math.abs(bounds.x + deltaHorizontal - nearestleft.x - nearestleft.width)\n + deltaHorizontal;\n }\n else if (nearestright) {\n horizontalSnap.offset = Math.abs(bounds.x + bounds.width + deltaHorizontal - nearestright.x)\n - equaldistance + deltaHorizontal;\n }\n horizontalSnap.snapped = true;\n }\n };\n //To create vertical spacing lines\n Snapping.prototype.createVSpacingLines = function (diagram, g, shape, objectsAtTop, objectsAtBottom, horizontalSnap, verticalSnap, ended, delta, snapObjDistance) {\n var right = 0;\n this.sortByDistance(objectsAtTop, 'distance', true);\n this.sortByDistance(objectsAtBottom, 'distance', true);\n var equallySpaced = [];\n var wrapper = this.getWrapperObject(shape, diagram.nameTable);\n var bounds = getBounds(wrapper);\n var nearesttop;\n var nearestbottom;\n var targetBounds;\n var equaldistance;\n if (objectsAtTop.length > 0) {\n equallySpaced[equallySpaced.length] = objectsAtTop[0];\n nearesttop = ((objectsAtTop[0].obj).bounds);\n right = nearesttop.x + nearesttop.width;\n if (objectsAtTop.length > 1) {\n targetBounds = ((objectsAtTop[1].obj).bounds);\n equaldistance = nearesttop.y - targetBounds.y - targetBounds.height;\n if (Math.abs(equaldistance - objectsAtTop[0].distance) <= snapObjDistance) {\n right = this.findEquallySpacedNodesAtTop(objectsAtTop, equaldistance, right, equallySpaced);\n }\n else {\n equaldistance = objectsAtTop[0].distance;\n }\n }\n else {\n equaldistance = objectsAtTop[0].distance;\n }\n }\n this.sortByDistance(equallySpaced, 'distance');\n equallySpaced[equallySpaced.length] = { obj: shape, distance: 0 };\n right = bounds.x + bounds.width > right || !right ? bounds.x + bounds.width : right;\n var dist;\n if (objectsAtBottom.length > 0) {\n nearestbottom = ((objectsAtBottom[0].obj).bounds);\n right = nearestbottom.x + nearestbottom.width > right ? nearestbottom.x + nearestbottom.width : right;\n if (objectsAtBottom.length > 1) {\n targetBounds = ((objectsAtBottom[1].obj).bounds);\n dist = targetBounds.y - nearestbottom.y - nearestbottom.height;\n }\n if (objectsAtTop.length > 0) {\n if (Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) <= snapObjDistance) {\n var adjustablevalue = Math.abs(objectsAtBottom[0].distance - objectsAtTop[0].distance) / 2;\n (objectsAtBottom[0].distance < objectsAtTop[0].distance) ?\n equaldistance -= adjustablevalue : equaldistance += adjustablevalue;\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n }\n else if (objectsAtTop.length === 1) {\n nearesttop = undefined;\n equallySpaced.splice(0, 1);\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n equaldistance = dist;\n }\n }\n else {\n equaldistance = dist;\n equallySpaced[equallySpaced.length] = objectsAtBottom[0];\n }\n if (objectsAtBottom.length > 1 && targetBounds.y > nearestbottom.y + nearestbottom.height) {\n right = this.findEquallySpacedNodesAtBottom(objectsAtBottom, dist, right, equallySpaced, snapObjDistance);\n }\n }\n if (equallySpaced.length > 2) {\n this.addVSpacingLines(diagram, g, equallySpaced, ended, right);\n var deltaVertical = 0;\n if (ended) {\n deltaVertical = delta.y;\n }\n if (nearesttop) {\n verticalSnap.offset = equaldistance - Math.abs(bounds.y + deltaVertical - nearesttop.y - nearesttop.height) + deltaVertical;\n }\n else if (nearestbottom) {\n verticalSnap.offset = Math.abs(bounds.y + bounds.height + deltaVertical - nearestbottom.y) - equaldistance + deltaVertical;\n }\n verticalSnap.snapped = true;\n }\n };\n //Add the Horizontal spacing lines\n Snapping.prototype.addHSpacingLines = function (diagram, g, equallySpaced, ended, top) {\n var i;\n var start;\n var end;\n if (!ended) {\n for (i = 0; i < equallySpaced.length - 1; i++) {\n var crnt = equallySpaced[parseInt(i.toString(), 10)].obj instanceof Selector ?\n getBounds((equallySpaced[parseInt(i.toString(), 10)].obj).wrapper)\n : ((equallySpaced[parseInt(i.toString(), 10)].obj).bounds);\n var next = equallySpaced[i + 1].obj instanceof Selector ?\n getBounds((equallySpaced[i + 1].obj).wrapper) : ((equallySpaced[i + 1].obj).bounds);\n start = { x: crnt.x + crnt.width, y: top - 15 };\n end = { x: next.x, y: top - 15 };\n this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n };\n //Add the vertical spacing lines\n Snapping.prototype.addVSpacingLines = function (diagram, g, equallySpacedObjects, ended, right) {\n var start;\n var end;\n if (!ended) {\n for (var i = 0; i < equallySpacedObjects.length - 1; i++) {\n var crnt = equallySpacedObjects[parseInt(i.toString(), 10)].obj instanceof Selector ?\n getBounds((equallySpacedObjects[parseInt(i.toString(), 10)].obj).wrapper)\n : ((equallySpacedObjects[parseInt(i.toString(), 10)].obj).bounds);\n var next = equallySpacedObjects[i + 1].obj instanceof Selector ?\n getBounds((equallySpacedObjects[i + 1].obj).wrapper) :\n ((equallySpacedObjects[i + 1].obj).bounds);\n start = { x: right + 15, y: crnt.y + crnt.height };\n end = { x: right + 15, y: next.y };\n this.renderSpacingLines(start, end, g, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n };\n //To add same width lines\n Snapping.prototype.addSameWidthLines = function (diagram, snapLine, sameWidths, horizontalSnap, ended, shape) {\n this.sortByDistance(sameWidths, 'offset');\n var bounds = getBounds(shape.wrapper);\n var target = sameWidths[0];\n var startPt;\n var endPt;\n var targetBounds = (target.source).bounds;\n var sameSizes = [];\n sameSizes.push(sameWidths[0]);\n var i;\n var crntbounds;\n for (i = 1; i < sameWidths.length; i++) {\n crntbounds = (sameWidths[parseInt(i.toString(), 10)].source).bounds;\n if (crntbounds.width === targetBounds.width) {\n sameSizes.push(sameWidths[parseInt(i.toString(), 10)]);\n }\n }\n if (!ended) {\n startPt = { x: bounds.x + target.offset, y: bounds.y - 15 };\n endPt = { x: bounds.x + bounds.width + target.offset, y: bounds.y - 15 };\n this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n for (i = 0; i < sameSizes.length; i++) {\n bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds;\n startPt = { x: bounds.x, y: bounds.y - 15 };\n endPt = { x: bounds.x + bounds.width, y: bounds.y - 15 };\n this.renderSpacingLines(startPt, endPt, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n horizontalSnap.offset = target.offset;\n horizontalSnap.snapped = true;\n };\n //To add same height lines\n Snapping.prototype.addSameHeightLines = function (diagram, snapLine, sameHeights, verticalSnap, ended, shape) {\n this.sortByDistance(sameHeights, 'offset');\n var bounds = getBounds(shape.wrapper);\n var target = sameHeights[0];\n var targetBounds = (target.source).bounds;\n var start;\n var end;\n var sameSizes = [];\n sameSizes.push(sameHeights[0]);\n var i;\n var crntbounds;\n for (i = 0; i < sameHeights.length; i++) {\n crntbounds = (sameHeights[parseInt(i.toString(), 10)].source).bounds;\n if (crntbounds.height === targetBounds.height) {\n sameSizes.push(sameHeights[parseInt(i.toString(), 10)]);\n }\n }\n if (!ended) {\n start = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset };\n end = { x: bounds.x + bounds.width + 15, y: bounds.y + target.offset + bounds.height };\n this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n for (i = 0; i < sameSizes.length; i++) {\n bounds = (sameSizes[parseInt(i.toString(), 10)].source).bounds;\n start = { x: bounds.x + bounds.width + 15, y: bounds.y };\n end = { x: bounds.x + bounds.width + 15, y: bounds.y + bounds.height };\n this.renderSpacingLines(start, end, snapLine, this.getAdornerLayerSvg(), diagram.scroller.transform);\n }\n }\n verticalSnap.offset = target.offset;\n verticalSnap.snapped = true;\n };\n //Render spacing lines\n Snapping.prototype.renderSpacingLines = function (start, end, snapLine, svg, transform) {\n var d;\n var d1;\n var line1;\n var element = new PathElement();\n var options = {};\n start = {\n x: (start.x + transform.tx) * transform.scale,\n y: (start.y + transform.ty) * transform.scale\n };\n end = {\n x: (end.x + transform.tx) * transform.scale,\n y: (end.y + transform.ty) * transform.scale\n };\n if (start.x === end.x) {\n d = 'M' + (start.x - 5) + ' ' + (start.y + 5) + 'L' + start.x + ' ' + start.y +\n 'L' + (start.x + 5) + ' ' + (start.y + 5) + 'z' + 'M' + (end.x - 5) + ' ' +\n (end.y - 5) + ' L' + end.x + ' ' + end.y + ' L' +\n (end.x + 5) + ' ' + (end.y - 5) + 'z';\n line1 = {\n startPoint: { x: start.x - 8, y: start.y - 1 },\n endPoint: { x: start.x + 8, y: start.y - 1 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n element.data = d;\n options.data = element.data;\n options.angle = 0;\n options.pivotX = 0;\n options.pivotY = 0;\n options.x = 0;\n options.y = 0;\n options.height = 0;\n options.width = 1;\n options.id = randomId();\n this.diagram.diagramRenderer.drawPath(snapLine, options);\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n line1 = {\n startPoint: { x: end.x - 8, y: end.y + 1 },\n endPoint: { x: end.x + 8, y: end.y + 1 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: this.getAdornerLayerSvg().id + 'spacing'\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n }\n else {\n d = 'M' + (start.x + 5) + ' ' + (start.y + 5) + ' L' + start.x + ' ' + start.y +\n ' L' + (start.x + 5) + ' ' + (start.y - 5) + 'z' + 'M' + (end.x - 5) + ' ' +\n (end.y - 5) + ' L' + end.x + ' ' + end.y +\n ' L' + (end.x - 5) + ' ' + (end.y + 5) + 'z';\n element.data = d;\n options.data = d;\n options.angle = 0;\n options.pivotX = 0;\n options.pivotY = 0;\n options.x = 0;\n options.y = 0;\n options.height = 0;\n options.width = 1;\n options.id = randomId();\n this.diagram.diagramRenderer.drawPath(snapLine, options);\n line1 = {\n visible: true, opacity: 1, id: randomId(),\n startPoint: { x: start.x - 1, y: start.y - 8 },\n endPoint: { x: start.x - 1, y: start.y + 8 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n line1 = {\n width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId(),\n startPoint: { x: end.x + 1, y: end.y - 8 },\n endPoint: { x: end.x + 1, y: end.y + 8 },\n stroke: this.setSnapLineColor(),\n strokeWidth: 1, fill: this.setSnapLineColor(), dashArray: '0'\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n }\n line1 = {\n startPoint: { x: start.x, y: start.y },\n endPoint: { x: end.x, y: end.y }, stroke: this.setSnapLineColor(), strokeWidth: 1, fill: this.setSnapLineColor(),\n dashArray: '0', width: 1, x: 0, y: 0, height: 0, angle: 0, pivotX: 0,\n pivotY: 0, visible: true, opacity: 1, id: randomId()\n };\n this.line.push(line1);\n this.diagram.diagramRenderer.drawLine(snapLine, this.line.pop());\n };\n /**\n * To Create Snap object with position, initial bounds, and final bounds \\\n *\n * @returns { void } To Create Snap object with position, initial bounds, and final bounds .\\\n * @param {Diagram} targetBounds - provide the targetBounds value.\n * @param {Rect} bounds - provide the angle value.\n * @param {string} snap - provide the angle value.\n * @private\n */\n Snapping.prototype.createSnapObject = function (targetBounds, bounds, snap) {\n var snapObject;\n switch (snap) {\n case 'left':\n snapObject = {\n start: { x: (targetBounds.x), y: Math.min(targetBounds.y, bounds.y) },\n end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) },\n offsetX: targetBounds.x - bounds.x, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'right':\n snapObject = {\n type: 'sideAlign',\n start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) },\n offsetX: targetBounds.x + targetBounds.width - bounds.x - bounds.width,\n offsetY: 0,\n end: {\n x: (targetBounds.x + targetBounds.width),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n }\n };\n break;\n case 'top':\n snapObject = {\n offsetY: targetBounds.y - bounds.y, offsetX: 0, type: 'sideAlign',\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y },\n end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y }\n };\n break;\n case 'bottom':\n snapObject = {\n type: 'sideAlign', offsetY: targetBounds.y + targetBounds.height - bounds.y - bounds.height, offsetX: 0,\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height\n },\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height }\n };\n break;\n case 'topBottom':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height },\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height\n },\n offsetY: targetBounds.y + targetBounds.height - bounds.y, offsetX: 0, type: 'sideAlign'\n };\n break;\n case 'bottomTop':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y },\n end: { x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)), y: targetBounds.y },\n offsetY: targetBounds.y - bounds.y - bounds.height, offsetX: 0, type: 'sideAlign'\n };\n break;\n case 'leftRight':\n snapObject = {\n start: { x: (targetBounds.x + targetBounds.width), y: Math.min(targetBounds.y, bounds.y) },\n end: {\n x: (targetBounds.x + targetBounds.width),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n },\n offsetX: targetBounds.x + targetBounds.width - bounds.x, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'rightLeft':\n snapObject = {\n start: { x: (targetBounds.x), y: (Math.min(targetBounds.y, bounds.y)) },\n end: { x: (targetBounds.x), y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height) },\n offsetX: targetBounds.x - bounds.x - bounds.width, offsetY: 0, type: 'sideAlign'\n };\n break;\n case 'centerX':\n snapObject = {\n start: { x: (targetBounds.x + targetBounds.width / 2), y: (Math.min(targetBounds.y, bounds.y)) },\n end: {\n x: (targetBounds.x + targetBounds.width / 2),\n y: Math.max(targetBounds.y + targetBounds.height, bounds.y + bounds.height)\n },\n offsetX: targetBounds.x + targetBounds.width / 2 - (bounds.x + bounds.width / 2), offsetY: 0, type: 'centerAlign'\n };\n break;\n case 'centerY':\n snapObject = {\n start: { x: (Math.min(targetBounds.x, bounds.x)), y: targetBounds.y + targetBounds.height / 2 },\n end: {\n x: (Math.max(targetBounds.x + targetBounds.width, bounds.x + bounds.width)),\n y: targetBounds.y + targetBounds.height / 2\n },\n offsetY: targetBounds.y + targetBounds.height / 2 - (bounds.y + bounds.height / 2), offsetX: 0, type: 'centerAlign'\n };\n break;\n }\n return snapObject;\n };\n /**\n * Calculate the snap angle \\\n *\n * @returns { void } Calculate the snap angle .\\\n * @param {Diagram} diagram - provide the diagram value.\n * @param {number} angle - provide the angle value.\n * @private\n */\n Snapping.prototype.snapAngle = function (diagram, angle) {\n var snapSettings = this.diagram.snapSettings;\n var snapAngle = snapSettings.snapAngle;\n var width = angle % (snapAngle || 0);\n if (width >= (snapAngle / 2)) {\n return angle + snapAngle - width;\n }\n else {\n return angle - width;\n }\n };\n //Check whether the node to be snapped or not.\n Snapping.prototype.canConsider = function (nameTable, selectedObject, target) {\n var consider = false;\n if (this.diagram.selectedItems.nodes.length && this.diagram.selectedItems.nodes[0].id === target.id) {\n return false;\n }\n else {\n return true;\n }\n };\n //Find the total number of nodes in diagram using SpatialSearch\n Snapping.prototype.findNodes = function (spatialSearch, node, child, viewPort, nodesInView) {\n var nodes = [];\n var nd;\n var bounds;\n var quads = spatialSearch.findQuads(nodesInView ? viewPort : child);\n for (var i = 0; i < quads.length; i++) {\n var quad = quads[parseInt(i.toString(), 10)];\n if (quad.objects.length > 0) {\n for (var j = 0; j < quad.objects.length; j++) {\n nd = quad.objects[parseInt(j.toString(), 10)];\n if (!(this.diagram.nameTable[nd.id] instanceof Connector) && nd.visible\n && !(this.diagram.nameTable[nd.id].shape.type === 'SwimLane') && !(this.diagram.nameTable[nd.id].isLane) &&\n !(this.diagram.nameTable[nd.id].isPhase) && !(this.diagram.nameTable[nd.id].isHeader) && nd.id !== 'helper') {\n bounds = getBounds(nd);\n if (nodes.indexOf(nd) === -1 && this.intersectsRect(child, bounds)) {\n nodes.push(nd);\n }\n if (nodesInView && nodesInView.indexOf(nd) && this.intersectsRect(viewPort, bounds)) {\n nodesInView.push(nd);\n }\n }\n }\n }\n }\n return nodes;\n };\n Snapping.prototype.intersectsRect = function (child, bounds) {\n return ((((bounds.x < (child.x + child.width)) && (child.x < (bounds.x + bounds.width)))\n && (bounds.y < (child.y + child.height))) && (child.y < (bounds.y + bounds.height)));\n };\n Snapping.prototype.getAdornerLayerSvg = function () {\n return this.diagram.diagramRenderer.adornerSvgLayer;\n };\n /**\n * To remove grid lines on mouse move and mouse up \\\n *\n * @returns { void } To remove grid lines on mouse move and mouse up .\\\n * @param {Diagram} diagram - provide the source value.\n * @private\n */\n Snapping.prototype.removeGuidelines = function (diagram) {\n var selectionRect = this.getAdornerLayerSvg().getElementById('_SnappingLines');\n var line = this.getAdornerLayerSvg().getElementById('pivotLine');\n if (selectionRect) {\n selectionRect.parentNode.removeChild(selectionRect);\n }\n if (line) {\n line.parentNode.removeChild(line);\n }\n };\n //Sort the objects by its distance\n Snapping.prototype.sortByDistance = function (obj, value, ascending) {\n var i;\n var j;\n var temp;\n if (ascending) {\n for (i = 0; i < obj.length; i++) {\n for (j = i + 1; j < obj.length; j++) {\n if (obj[parseInt(i.toString(), 10)][\"\" + value] > obj[parseInt(j.toString(), 10)][\"\" + value]) {\n temp = obj[parseInt(i.toString(), 10)];\n obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)];\n obj[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n else {\n for (i = 0; i < obj.length; i++) {\n for (j = i + 1; j < obj.length; j++) {\n if (obj[parseInt(i.toString(), 10)][\"\" + value] < obj[parseInt(j.toString(), 10)][\"\" + value]) {\n temp = obj[parseInt(i.toString(), 10)];\n obj[parseInt(i.toString(), 10)] = obj[parseInt(j.toString(), 10)];\n obj[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n };\n //To find nodes that are equally placed at left of the selected node\n Snapping.prototype.findEquallySpacedNodesAtLeft = function (objectsAtLeft, equalDistance, top, equallySpaced) {\n var prevBounds;\n var targetBounds;\n var dist;\n var i;\n for (i = 1; i < objectsAtLeft.length; i++) {\n prevBounds = ((objectsAtLeft[i - 1].obj).bounds);\n targetBounds = ((objectsAtLeft[parseInt(i.toString(), 10)].obj).bounds);\n dist = prevBounds.x - targetBounds.x - targetBounds.width;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtLeft[parseInt(i.toString(), 10)];\n if (targetBounds.y < top) {\n top = targetBounds.y;\n }\n }\n else {\n break;\n }\n }\n return top;\n };\n //To find nodes that are equally placed at right of the selected node\n Snapping.prototype.findEquallySpacedNodesAtRight = function (objectsAtRight, equalDistance, top, equallySpaced, snapObjDistance) {\n var actualDistance = objectsAtRight[0].distance;\n var target;\n var targetBounds;\n var prevBounds;\n var dist;\n if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) {\n for (var i = 0; i < objectsAtRight.length - 1; i++) {\n target = objectsAtRight[parseInt(i.toString(), 10)].obj;\n targetBounds = ((objectsAtRight[i + 1].obj).bounds);\n prevBounds = (target.bounds);\n dist = targetBounds.x - prevBounds.x - prevBounds.width;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtRight[i + 1];\n if (prevBounds.y < top) {\n top = prevBounds.y;\n }\n }\n else {\n break;\n }\n }\n }\n return top;\n };\n Snapping.prototype.findEquallySpacedNodesAtTop = function (objectsAtTop, equalDistance, right, equallySpaced) {\n var prevBounds;\n var targetBounds;\n var dist;\n for (var i = 1; i < objectsAtTop.length; i++) {\n prevBounds = ((objectsAtTop[i - 1].obj).bounds);\n targetBounds = ((objectsAtTop[parseInt(i.toString(), 10)].obj).bounds);\n dist = prevBounds.y - targetBounds.y - targetBounds.height;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtTop[parseInt(i.toString(), 10)];\n if (targetBounds.x + targetBounds.width > right) {\n right = targetBounds.x + targetBounds.width;\n }\n }\n else {\n break;\n }\n }\n return right;\n };\n //To find nodes that are equally placed at bottom of the selected node\n Snapping.prototype.findEquallySpacedNodesAtBottom = function (objectsAtBottom, equalDistance, right, equallySpaced, snapObjDistance) {\n var actualDistance = objectsAtBottom[0].distance;\n var target;\n var targetBounds;\n var prevBounds;\n var dist;\n if (Math.abs(equalDistance - actualDistance) <= snapObjDistance) {\n for (var i = 0; i < objectsAtBottom.length - 1; i++) {\n target = objectsAtBottom[parseInt(i.toString(), 10)].obj;\n targetBounds = ((objectsAtBottom[i + 1].obj).bounds);\n prevBounds = (target.bounds);\n dist = targetBounds.y - prevBounds.y - prevBounds.height;\n if (Math.abs(dist - equalDistance) <= 1) {\n equallySpaced[equallySpaced.length] = objectsAtBottom[i + 1];\n if (prevBounds.x + prevBounds.width > right) {\n right = prevBounds.x + prevBounds.width;\n }\n }\n else {\n break;\n }\n }\n }\n return right;\n };\n /**\n * To get Adoner layer to draw snapLine\n *\n * @private\n */\n Snapping.prototype.getLayer = function () {\n var snapLine;\n if (this.diagram.snapSettings.constraints & SnapConstraints.SnapToObject) {\n snapLine = document.createElementNS('http://www.w3.org/2000/svg', 'g');\n snapLine.setAttribute('id', '_SnappingLines');\n snapLine.setAttribute('shapeRendering', 'crispEdges');\n this.getAdornerLayerSvg().appendChild(snapLine);\n }\n return snapLine;\n };\n /**\n * Constructor for the snapping module\n *\n * @private\n */\n // constructor() {\n // //constructs the snapping module\n // }\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Snapping.prototype.destroy = function () {\n /**\n * Destroys the snapping module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n Snapping.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Snapping';\n };\n return Snapping;\n}());\nexport { Snapping };\n","import { Node } from './node';\nimport { Connector } from './connector';\nimport { DiagramAction } from '../enum/enum';\nimport { removeItem, getObjectType } from '../utility/diagram-util';\nimport { cloneObject, getFunction } from '../utility/base-util';\nimport { findAnnotation, findPort } from '../utility/diagram-util';\nimport { Size, addChildToContainer } from '../index';\nimport { swimLaneMeasureAndArrange, laneInterChanged, findLaneIndex, updateSwimLaneObject, pasteSwimLane } from '../utility/swim-lane-util';\nimport { DiagramEvent } from '../enum/enum';\nimport { isBlazor } from '@syncfusion/ej2-base';\n/**\n * Undo redo function used for revert and restore the changes\n */\nvar UndoRedo = /** @class */ (function () {\n /**\n * Constructor for the undo redo module\n *\n * @private\n */\n function UndoRedo() {\n this.groupUndo = false;\n this.childTable = [];\n this.historyCount = 0;\n this.hasGroup = false;\n this.groupCount = 0;\n this.undoOffsets = [];\n //constructs the undo redo module\n }\n /**\n * initHistory method \\\n *\n * @returns { void } initHistory method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.initHistory = function (diagram) {\n diagram.historyManager = {\n canRedo: false, canUndo: false, currentEntry: null,\n push: diagram.addHistoryEntry.bind(diagram), undo: Function, redo: Function,\n startGroupAction: diagram.startGroupAction.bind(diagram), endGroupAction: diagram.endGroupAction.bind(diagram),\n canLog: null, undoStack: [], redoStack: [], stackLimit: diagram.historyManager ? diagram.historyManager.stackLimit : undefined\n };\n };\n /**\n * addHistoryEntry method \\\n *\n * @returns { void } addHistoryEntry method .\\\n * @param {HistoryEntry} entry - provide the points value.\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.addHistoryEntry = function (entry, diagram) {\n // Bug: 903791-remove StartGroup & EndGroup entry when no actual changes wrapped between them.\n if (entry.type === 'EndGroup' && diagram.historyManager.currentEntry.type === 'StartGroup') {\n if (diagram.historyManager.currentEntry.previous) {\n diagram.historyManager.currentEntry.previous.next = undefined;\n }\n diagram.historyManager.currentEntry = diagram.historyManager.currentEntry.previous;\n // when cancelled change startGroup is only entry in history manager\n if (!diagram.historyManager.currentEntry) {\n diagram.historyManager.canUndo = false;\n }\n return false;\n }\n var entryObject = null;\n var nextEntry = null;\n if (diagram.historyManager.canLog) {\n var hEntry = diagram.historyManager.canLog(entry);\n if (hEntry.cancel === true) {\n return false;\n }\n }\n if (diagram.historyManager && diagram.historyManager.canUndo && diagram.historyManager.currentEntry) {\n entryObject = diagram.historyManager.currentEntry;\n if (entryObject.next) {\n if (entryObject.previous) {\n nextEntry = entryObject.next;\n nextEntry.previous = null;\n entryObject.next = entry;\n entry.previous = entryObject;\n }\n }\n else {\n entryObject.next = entry;\n entry.previous = entryObject;\n }\n }\n diagram.historyManager.currentEntry = entry;\n if (diagram.historyManager.stackLimit) {\n if (entry.type === 'StartGroup' || entry.type === 'EndGroup') {\n var value = entry.type === 'EndGroup' ? true : false;\n this.setEntryLimit(value);\n }\n if (!this.hasGroup && this.groupCount === 0) {\n if (this.historyCount < diagram.historyManager.stackLimit) {\n this.historyCount++;\n }\n else {\n this.applyLimit(diagram.historyManager.currentEntry, diagram.historyManager.stackLimit, diagram);\n }\n }\n }\n this.getHistoryList(diagram);\n diagram.historyManager.canUndo = true;\n diagram.historyManager.canRedo = false;\n return true;\n };\n /**\n * applyLimit method \\\n *\n * @returns { void } applyLimit method .\\\n * @param {HistoryEntry} list - provide the list value.\n * @param {number} stackLimit - provide the list value.\n * @param {Diagram} diagram - provide the list value.\n * @param {boolean} limitHistory - provide the list value.\n *\n * @private\n */\n UndoRedo.prototype.applyLimit = function (list, stackLimit, diagram, limitHistory) {\n if (list && list.previous) {\n if (list.type === 'StartGroup' || list.type === 'EndGroup') {\n var value = list.type === 'StartGroup' ? true : false;\n this.setEntryLimit(value);\n }\n if (!this.hasGroup && this.groupCount === 0) {\n stackLimit--;\n }\n if (stackLimit === 0) {\n if (limitHistory) {\n this.limitHistoryStack(list.previous, diagram);\n }\n if (diagram.historyManager.stackLimit < this.historyCount) {\n this.historyCount = diagram.historyManager.stackLimit;\n }\n delete list.previous;\n }\n else if (list.previous) {\n this.applyLimit(list.previous, stackLimit, diagram, limitHistory);\n }\n }\n this.groupCount = 0;\n };\n /**\n * clearHistory method \\\n *\n * @returns { void } clearHistory method .\\\n * @param {Diagram} diagram - provide the points value.\n *\n * @private\n */\n UndoRedo.prototype.clearHistory = function (diagram) {\n var hList = diagram.historyManager;\n hList.currentEntry = undefined;\n hList.canUndo = false;\n hList.canRedo = false;\n this.historyCount = 0;\n this.groupCount = 0;\n diagram.historyManager.undoStack = [];\n diagram.historyManager.redoStack = [];\n };\n UndoRedo.prototype.setEntryLimit = function (value) {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n value ? this.groupCount-- : this.groupCount++;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n value ? this.hasGroup = !value : this.hasGroup = value;\n };\n UndoRedo.prototype.limitHistoryStack = function (list, diagram) {\n if (list.type !== 'StartGroup' && list.type !== 'EndGroup') {\n this.removeFromStack(diagram.historyManager.undoStack, list);\n this.removeFromStack(diagram.historyManager.redoStack, list);\n }\n if (list.previous) {\n this.limitHistoryStack(list.previous, diagram);\n }\n };\n UndoRedo.prototype.removeFromStack = function (entyList, list) {\n if (entyList.length) {\n for (var i = 0; i <= entyList.length; i++) {\n if (entyList[parseInt(i.toString(), 10)].undoObject === list.undoObject\n && entyList[parseInt(i.toString(), 10)].redoObject === list.redoObject) {\n entyList.splice(i, 1);\n break;\n }\n }\n }\n };\n /**\n * undo method \\\n *\n * @returns { void } undo method .\\\n * @param {Diagram} diagram - provide the diagram value.\n *\n * @private\n */\n UndoRedo.prototype.undo = function (diagram) {\n var entry = this.getUndoEntry(diagram);\n var endGroupActionCount = 0;\n if (entry) {\n if (entry.category === 'Internal') {\n if (entry.type === 'EndGroup') {\n endGroupActionCount++;\n this.groupUndo = true;\n //Removed isBlazor code\n }\n else {\n this.undoEntry(entry, diagram);\n }\n if (this.groupUndo) {\n this.undoGroupAction(entry, diagram, endGroupActionCount);\n this.groupUndo = false;\n }\n }\n else {\n if (!isBlazor()) {\n diagram.historyManager.undo(entry);\n }\n var arg = {\n entryType: 'undo', oldValue: entry.undoObject, newValue: entry.redoObject\n };\n // Removed isBlazor code\n diagram.triggerEvent(DiagramEvent.historyStateChange, arg);\n }\n }\n };\n // Removed getHistoryChangeEvent method as it is not used anywhere\n UndoRedo.prototype.getHistoryList = function (diagram) {\n var undoStack = [];\n var redoStack = [];\n var currEntry = diagram.historyManager.currentEntry;\n var undoObj;\n var redoObj;\n currEntry = diagram.historyManager.currentEntry;\n if (diagram.historyManager.canUndo || diagram.historyManager.undoStack.length === 0) {\n this.getHistroyObject(undoStack, currEntry);\n }\n else {\n this.getHistroyObject(redoStack, currEntry);\n }\n while (currEntry && currEntry.previous) {\n undoObj = currEntry.previous;\n this.getHistroyObject(undoStack, undoObj);\n currEntry = currEntry.previous;\n }\n currEntry = diagram.historyManager.currentEntry;\n while (currEntry && currEntry.next) {\n redoObj = currEntry.next;\n this.getHistroyObject(redoStack, redoObj);\n currEntry = currEntry.next;\n }\n diagram.historyManager.undoStack = undoStack;\n diagram.historyManager.redoStack = redoStack;\n };\n UndoRedo.prototype.getHistroyObject = function (list, obj) {\n if (obj && obj.type !== 'StartGroup' && obj.type !== 'EndGroup') {\n list.push({\n redoObject: obj.redoObject ? obj.redoObject : null,\n undoObject: obj.undoObject ? obj.undoObject : null,\n type: obj.type ? obj.type : null,\n category: obj.category ? obj.category : null\n });\n }\n };\n UndoRedo.prototype.undoGroupAction = function (entry, diagram, endGroupActionCount) {\n while (endGroupActionCount !== 0) {\n this.undoEntry(entry, diagram);\n entry = this.getUndoEntry(diagram);\n if (entry.type === 'StartGroup') {\n endGroupActionCount--;\n }\n else if (entry.type === 'EndGroup') {\n endGroupActionCount++;\n }\n }\n endGroupActionCount = 0;\n };\n UndoRedo.prototype.undoEntry = function (entry, diagram) {\n var obj;\n var nodeObject;\n if (entry.type !== 'PropertyChanged' && entry.type !== 'CollectionChanged' && entry.type !== 'LabelCollectionChanged') {\n obj = entry.undoObject ? entry.undoObject : (entry.previous.undoObject);\n nodeObject = obj;\n }\n if (entry.type !== 'StartGroup' && entry.type !== 'EndGroup') {\n if (diagram.historyManager.undoStack.length > 0) {\n var addObject = diagram.historyManager.undoStack.splice(0, 1);\n diagram.historyManager.redoStack.splice(0, 0, addObject[0]);\n nodeObject = (entry.undoObject);\n }\n }\n diagram.protectPropertyChange(true);\n diagram.diagramActions |= DiagramAction.UndoRedo;\n //Removed isBlazor code\n switch (entry.type) {\n case 'PositionChanged':\n case 'Align':\n case 'Distribute':\n this.recordPositionChanged(obj, diagram);\n break;\n case 'SizeChanged':\n case 'Sizing':\n this.recordSizeChanged(obj, diagram, entry);\n break;\n case 'RotationChanged':\n this.recordRotationChanged(obj, diagram, entry, 'undo');\n break;\n case 'ConnectionChanged':\n this.recordConnectionChanged(obj, diagram);\n break;\n case 'PropertyChanged':\n this.recordPropertyChanged(entry, diagram, false);\n break;\n case 'CollectionChanged':\n if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') {\n var group = diagram.getObject(entry.next.undoObject.id);\n diagram.insertValue(cloneObject(group), true);\n }\n entry.isUndo = true;\n this.recordCollectionChanged(entry, diagram);\n entry.isUndo = false;\n if (entry && entry.next && entry.next.type === 'AddChildToGroupNode' && entry.next.changeType === 'Insert') {\n var group = diagram.getObject(entry.next.undoObject.id);\n group.wrapper.measure(new Size());\n group.wrapper.arrange(group.wrapper.desiredSize);\n diagram.updateDiagramObject(group);\n }\n break;\n case 'LabelCollectionChanged':\n entry.isUndo = true;\n this.recordLabelCollectionChanged(entry, diagram);\n entry.isUndo = false;\n break;\n case 'PortCollectionChanged':\n entry.isUndo = true;\n this.recordPortCollectionChanged(entry, diagram);\n entry.isUndo = false;\n break;\n case 'Group':\n this.unGroup(entry, diagram);\n break;\n case 'UnGroup':\n this.group(entry, diagram);\n break;\n case 'SegmentChanged':\n this.recordSegmentChanged(obj, diagram);\n break;\n case 'PortPositionChanged':\n this.recordPortChanged(entry, diagram, false);\n break;\n case 'AnnotationPropertyChanged':\n this.recordAnnotationChanged(entry, diagram, false);\n break;\n case 'ChildCollectionChanged':\n this.recordChildCollectionChanged(entry, diagram, false);\n break;\n case 'StackChildPositionChanged':\n this.recordStackPositionChanged(entry, diagram, false);\n break;\n case 'RowHeightChanged':\n this.recordGridSizeChanged(entry, diagram, false, true);\n break;\n case 'ColumnWidthChanged':\n this.recordGridSizeChanged(entry, diagram, false, false);\n break;\n case 'LanePositionChanged':\n this.recordLanePositionChanged(entry, diagram, false);\n break;\n case 'LaneCollectionChanged':\n case 'PhaseCollectionChanged':\n entry.isUndo = true;\n this.recordLaneOrPhaseCollectionChanged(entry, diagram, false);\n entry.isUndo = false;\n break;\n case 'SendToBack':\n case 'SendForward':\n case 'SendBackward':\n case 'BringToFront':\n this.recordOrderCommandChanged(entry, diagram, false);\n break;\n case 'AddChildToGroupNode':\n this.recordAddChildToGroupNode(entry, diagram, false);\n break;\n case 'RemoveChildFromGroupNode':\n this.recordRemoveChildFromGroupNode(entry, diagram, false);\n break;\n case 'ExternalEntry':\n //EJ2-848643 - Need to consider custom entries in start and end group action\n diagram.historyManager.undo(entry);\n break;\n }\n diagram.diagramActions &= ~DiagramAction.UndoRedo;\n diagram.protectPropertyChange(false);\n diagram.historyChangeTrigger(entry, 'Undo');\n if (nodeObject) {\n var object = this.checkNodeObject(nodeObject, diagram);\n if (object) {\n var getnodeDefaults = getFunction(diagram.updateSelection);\n if (getnodeDefaults) {\n getnodeDefaults(object, diagram);\n }\n }\n }\n };\n UndoRedo.prototype.checkNodeObject = function (value, diagram) {\n var object;\n if (!value.id) {\n if ((value.nodes && value.nodes.length > 0) ||\n (value.connectors && value.connectors.length > 0)) {\n var undoNode = value.nodes.length > 0 ?\n value.nodes : value.connectors;\n for (var _i = 0, undoNode_1 = undoNode; _i < undoNode_1.length; _i++) {\n object = undoNode_1[_i];\n object = diagram.nameTable[object.id];\n }\n }\n else {\n var knownNode = value.nodes ?\n value.nodes : value.connectors;\n if (knownNode) {\n for (var _a = 0, _b = Object.keys(knownNode); _a < _b.length; _a++) {\n var key = _b[_a];\n var index = Number(key);\n object = value.nodes ? diagram.nodes[parseInt(index.toString(), 10)]\n : diagram.connectors[parseInt(index.toString(), 10)];\n }\n }\n }\n }\n else {\n object = diagram.nameTable[value.id];\n }\n return object;\n };\n UndoRedo.prototype.group = function (historyEntry, diagram) {\n diagram.add(historyEntry.undoObject);\n };\n UndoRedo.prototype.unGroup = function (entry, diagram) {\n //const i: number = 0;\n entry.redoObject = cloneObject(entry.undoObject);\n var node = entry.undoObject;\n diagram.commandHandler.unGroup(node);\n };\n UndoRedo.prototype.ignoreProperty = function (key) {\n if (key === 'zIndex' || key === 'wrapper' || key === 'parentObj' || key === 'controlParent') {\n return true;\n }\n return false;\n };\n UndoRedo.prototype.getProperty = function (collection, property) {\n for (var _i = 0, _a = Object.keys(property); _i < _a.length; _i++) {\n var key = _a[_i];\n if (collection) {\n if (!this.ignoreProperty(key)) {\n if (property[\"\" + key] instanceof Object) {\n this.getProperty(collection[\"\" + key], property[\"\" + key]);\n }\n else {\n collection[\"\" + key] = property[\"\" + key];\n }\n }\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n UndoRedo.prototype.recordLaneOrPhaseCollectionChanged = function (entry, diagram, isRedo) {\n var node = entry.redoObject;\n var obj = entry.undoObject;\n var changeType;\n if (entry.isUndo) {\n if (entry.changeType === 'Insert') {\n changeType = 'Remove';\n }\n else {\n changeType = 'Insert';\n }\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.remove(node);\n }\n else {\n if (node.isPhase) {\n var swimlane = diagram.nameTable[node.parentId];\n diagram.addPhases(swimlane, [obj]);\n }\n else {\n var swimlane = diagram.nameTable[node.parentId];\n var laneIndex = findLaneIndex(swimlane, node);\n diagram.addLanes(swimlane, [obj], laneIndex);\n }\n }\n diagram.clearSelection();\n };\n UndoRedo.prototype.recordAnnotationChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (diagram.canEnableBlazorObject) {\n var node = cloneObject(diagram.nameTable[entryObject.id]);\n diagram.insertValue(node, node instanceof Node ? true : false);\n }\n var oldElement = findAnnotation(entryObject, entry.objectId);\n var undoChanges = diagram.commandHandler.getAnnotationChanges(diagram.nameTable[entryObject.id], oldElement);\n var currentObject = diagram.nameTable[entryObject.id];\n var currentElement = findAnnotation(currentObject, entry.objectId);\n currentElement.offset = oldElement.offset;\n currentElement.margin = oldElement.margin;\n currentElement.width = oldElement.width;\n currentElement.height = oldElement.height;\n currentElement.rotateAngle = oldElement.rotateAngle;\n currentElement.margin = oldElement.margin;\n if (currentObject instanceof Node) {\n diagram.nodePropertyChange(currentObject, {}, undoChanges);\n }\n else {\n diagram.connectorPropertyChange(currentObject, {}, undoChanges);\n }\n };\n UndoRedo.prototype.recordChildCollectionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n var parentNode = diagram.nameTable[entryObject.parentId];\n var actualObject = diagram.nameTable[entryObject.id];\n if (parentNode) {\n addChildToContainer(diagram, parentNode, actualObject, !isRedo, entry.historyAction === 'AddNodeToLane');\n }\n else {\n if (actualObject.parentId) {\n parentNode = diagram.nameTable[actualObject.parentId];\n parentNode.children.splice(parentNode.children.indexOf(actualObject.id), 1);\n parentNode.wrapper.children.splice(parentNode.wrapper.children.indexOf(actualObject.wrapper), 1);\n }\n if (entryObject.parentId && entryObject.parentId !== '') {\n parentNode = diagram.nameTable[entryObject.parentId];\n parentNode.children.push(entryObject.id);\n parentNode.wrapper.children.push(actualObject.wrapper);\n }\n actualObject.parentId = entryObject.parentId;\n diagram.removeElements(actualObject);\n diagram.updateDiagramObject(actualObject);\n }\n };\n UndoRedo.prototype.recordStackPositionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (entryObject.source) {\n var parent_1 = diagram.nameTable[entryObject.source.parentId];\n if (parent_1) {\n if (entryObject.target) {\n parent_1.wrapper.children.splice(entryObject.targetIndex, 1);\n parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, entryObject.source.wrapper);\n }\n else {\n if (entryObject.sourceIndex !== undefined) {\n if (!diagram.nameTable[entryObject.source.id]) {\n diagram.add(entryObject.source);\n }\n parent_1.wrapper.children.splice(entryObject.sourceIndex, 0, diagram.nameTable[entryObject.source.id].wrapper);\n diagram.nameTable[entryObject.source.id].parentId = parent_1.id;\n }\n else {\n parent_1.wrapper.children.splice(parent_1.wrapper.children.indexOf(diagram.nameTable[entryObject.source.id].wrapper), 1);\n diagram.nameTable[entryObject.source.id].parentId = '';\n }\n }\n if (isRedo && parent_1.shape.type === 'UmlClassifier') {\n diagram.remove(entryObject.source);\n }\n parent_1.wrapper.measure(new Size());\n parent_1.wrapper.arrange(parent_1.wrapper.desiredSize);\n diagram.updateDiagramObject(parent_1);\n diagram.updateSelector();\n }\n }\n };\n UndoRedo.prototype.recordGridSizeChanged = function (entry, diagram, isRedo, isRow) {\n var obj = (isRedo) ? entry.redoObject : entry.undoObject;\n var node = (!isRedo) ? entry.redoObject : entry.undoObject;\n if (obj.parentId) {\n var swimlane = diagram.nameTable[obj.parentId];\n var actualObject = diagram.nameTable[obj.id];\n var x = swimlane.wrapper.bounds.x;\n var y = swimlane.wrapper.bounds.y;\n if (swimlane.shape.type === 'SwimLane') {\n var grid = swimlane.wrapper.children[0];\n var padding = swimlane.shape.padding;\n updateSwimLaneObject(diagram, node, swimlane, obj);\n if (isRow) {\n grid.updateRowHeight(obj.rowIndex, obj.wrapper.actualSize.height, true, padding);\n swimlane.height = swimlane.wrapper.height = grid.height;\n }\n else {\n grid.updateColumnWidth(obj.columnIndex, obj.wrapper.actualSize.width, true, padding);\n swimlane.width = swimlane.wrapper.width = grid.width;\n if (obj.isPhase) {\n actualObject.maxWidth = actualObject.wrapper.maxWidth = obj.wrapper.actualSize.width;\n }\n }\n swimLaneMeasureAndArrange(swimlane);\n var tx = x - swimlane.wrapper.bounds.x;\n var ty = y - swimlane.wrapper.bounds.y;\n diagram.drag(swimlane, tx, ty);\n diagram.clearSelection();\n diagram.updateDiagramObject(swimlane);\n }\n }\n };\n UndoRedo.prototype.recordLanePositionChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject : entry.undoObject);\n if (entryObject.source) {\n var parent_2 = diagram.nameTable[entryObject.source.parentId];\n if (parent_2 && parent_2.shape.type === 'SwimLane') {\n laneInterChanged(diagram, entryObject.target, entryObject.source);\n diagram.clearSelection();\n }\n }\n };\n UndoRedo.prototype.recordPortChanged = function (entry, diagram, isRedo) {\n var entryObject = ((isRedo) ? entry.redoObject.nodes[0] :\n entry.undoObject.nodes[0]);\n if (diagram.canEnableBlazorObject) {\n var node = cloneObject(diagram.nameTable[entryObject.id]);\n diagram.insertValue(node, true);\n }\n var oldElement = findPort(entryObject, entry.objectId);\n var undoChanges = diagram.commandHandler.getPortChanges(diagram.nameTable[entryObject.id], oldElement);\n var currentObject = diagram.nameTable[entryObject.id];\n var currentElement = findPort(currentObject, entry.objectId);\n currentElement.offset = oldElement.offset;\n diagram.nodePropertyChange(currentObject, {}, undoChanges);\n if (currentObject.parentId) {\n diagram.updateConnectorEdges(diagram.nameTable[currentObject.parentId]);\n }\n };\n UndoRedo.prototype.recordPropertyChanged = function (entry, diagram, isRedo) {\n var redoObject = entry.redoObject;\n var undoObject = entry.undoObject;\n //Removed isBlazor code\n this.getProperty(diagram, (isRedo ? redoObject : undoObject));\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n isRedo ? diagram.onPropertyChanged(redoObject, undoObject) : diagram.onPropertyChanged(undoObject, redoObject);\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n };\n UndoRedo.prototype.recordOrderCommandChanged = function (entry, diagram, isRedo) {\n var redoObject = entry.redoObject;\n var undoObject = entry.undoObject;\n diagram.commandHandler.orderCommands(isRedo, (isRedo ? redoObject : undoObject), entry.type);\n diagram.diagramActions = diagram.diagramActions | DiagramAction.UndoRedo;\n };\n UndoRedo.prototype.recordAddChildToGroupNode = function (entry, diagram, isRedo) {\n var group = diagram.nameTable[entry.undoObject.id];\n var child = diagram.nameTable[entry.objectId];\n if (isRedo && entry.changeType === 'Insert') {\n diagram.addChildToGroup(group, child.id);\n }\n else {\n diagram.removeChildFromGroup(group, child.id);\n }\n };\n UndoRedo.prototype.recordRemoveChildFromGroupNode = function (entry, diagram, isRedo) {\n var group = diagram.nameTable[entry.undoObject.id];\n var child = diagram.nameTable[entry.objectId];\n if (isRedo && entry.changeType === 'Remove') {\n diagram.removeChildFromGroup(group, child.id);\n }\n else {\n diagram.addChildToGroup(group, child.id);\n }\n };\n UndoRedo.prototype.recordSegmentChanged = function (obj, diagram) {\n var i = 0;\n //let node: NodeModel;\n var connector;\n if (obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.segmentChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.segmentChanged = function (connector, diagram) {\n var conn = diagram.nameTable[connector.id];\n conn.segments = connector.segments;\n diagram.commandHandler.updateEndPoint(conn);\n };\n UndoRedo.prototype.recordPositionChanged = function (obj, diagram) {\n var i = 0;\n var node;\n var connector;\n if (obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n if (diagram.bpmnModule) {\n diagram.isPositionUndo = true;\n }\n node = obj.nodes[parseInt(i.toString(), 10)];\n this.positionChanged(node, diagram);\n }\n diagram.isPositionUndo = false;\n }\n if (obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.positionChanged = function (obj, diagram) {\n var node = diagram.nameTable[obj.id];\n if (obj.processId && !node.processId) {\n diagram.addProcess(obj, obj.processId);\n }\n if (!obj.processId && node.processId) {\n diagram.removeProcess(obj.id);\n }\n if (node.processId) {\n var tx = obj.margin.left - node.margin.left;\n var ty = obj.margin.top - node.margin.top;\n diagram.drag(node, tx, ty);\n }\n else {\n if (node.parentId) {\n var parent_3 = diagram.nameTable[node.parentId];\n if (parent_3.isLane) {\n obj.wrapper.offsetX = (obj.width / 2) + (parent_3.wrapper.bounds.x + obj.margin.left);\n obj.wrapper.offsetY = (obj.height / 2) + (parent_3.wrapper.bounds.y + obj.margin.top);\n }\n }\n var tx = obj.wrapper.offsetX - node.offsetX;\n var ty = obj.wrapper.offsetY - node.offsetY;\n diagram.drag(node, tx, ty);\n }\n if (diagram.bpmnModule) {\n diagram.bpmnModule.updateDocks(node, diagram);\n }\n };\n UndoRedo.prototype.recordSizeChanged = function (obj, diagram, entry) {\n var i = 0;\n var connector;\n var node;\n if (obj && obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n node = obj.nodes[parseInt(i.toString(), 10)];\n if (node.children && !node.container) {\n var elements = [];\n var nodes = diagram.commandHandler.getAllDescendants(node, elements);\n for (var i_1 = 0; i_1 < nodes.length; i_1++) {\n var tempNode = entry.childTable[nodes[parseInt(i_1.toString(), 10)].id];\n if ((getObjectType(tempNode) === Node)) {\n this.sizeChanged(tempNode, diagram, entry);\n this.positionChanged(tempNode, diagram);\n }\n else {\n this.connectionChanged(tempNode, diagram, entry);\n }\n }\n }\n else {\n if (diagram.bpmnModule) {\n diagram.sizeUndo = true;\n }\n this.sizeChanged(node, diagram);\n this.positionChanged(node, diagram);\n if (diagram.bpmnModule) {\n diagram.sizeUndo = false;\n }\n }\n }\n }\n if (obj && obj.connectors && obj.connectors.length > 0) {\n var connectors = obj.connectors;\n for (i = 0; i < connectors.length; i++) {\n connector = connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.sizeChanged = function (obj, diagram, entry) {\n var node = diagram.nameTable[obj.id];\n var scaleWidth = obj.wrapper.actualSize.width / node.wrapper.actualSize.width;\n var scaleHeight = obj.wrapper.actualSize.height / node.wrapper.actualSize.height;\n if (entry && entry.childTable) {\n entry.childTable[obj.id] = cloneObject(node);\n }\n diagram.scale(node, scaleWidth, scaleHeight, {\n x: obj.wrapper.offsetX / node.wrapper.offsetX,\n y: obj.wrapper.offsetY / node.wrapper.offsetY\n });\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n UndoRedo.prototype.recordRotationChanged = function (obj, diagram, entry, type) {\n var i = 0;\n var node;\n var connector;\n var selectorObj = diagram.selectedItems;\n selectorObj.rotateAngle = obj.rotateAngle;\n if (selectorObj && selectorObj.wrapper) {\n selectorObj.wrapper.rotateAngle = obj.rotateAngle;\n }\n diagram.fromUndo = true;\n if (obj && obj.nodes && obj.nodes.length > 0) {\n for (i = 0; i < obj.nodes.length; i++) {\n node = obj.nodes[parseInt(i.toString(), 10)];\n // Bug 832864: Undo redo not working properly for group node with connectors.\n // This code is executed only for group nodes with connectors when the connector is not connected to a node either as a source or target.\n var isConnect = false;\n if (node.children && node.children.length > 0) {\n for (var j = 0; j < node.children.length; j++) {\n var child = diagram.nameTable[node.children[parseInt(j.toString(), 10)]];\n if (!(getObjectType(child) === Node)) {\n if (child.sourceID === '' || child.targetID === '') {\n isConnect = true;\n break;\n }\n }\n }\n if (isConnect && Object.keys(entry.childTable).length > 0) {\n var elements = [];\n var nodes = diagram.commandHandler.getAllDescendants(node, elements);\n for (var i2 = 0; i2 < nodes.length; i2++) {\n var tempNode = entry.childTable[nodes[parseInt(i2.toString(), 10)].id];\n if ((getObjectType(tempNode) === Node)) {\n var object = { id: '', rotateAngle: 0, wrapper: { offsetX: 0, offsetY: 0 } };\n if (type === 'redo') {\n object.id = tempNode.id;\n object.rotateAngle = node.rotateAngle;\n }\n else {\n object = tempNode;\n }\n this.rotationChanged(object, diagram);\n if (type === 'undo') {\n var offNode = diagram.nameTable[object.id];\n this.undoOffsets.push({ id: offNode.id, offsetX: offNode.offsetX, offsetY: offNode.offsetY });\n }\n else {\n var lastIndex = -1;\n for (var i_2 = this.undoOffsets.length - 1; i_2 >= 0; i_2--) {\n if (this.undoOffsets[parseInt(i_2.toString(), 10)].id === object.id) {\n object.wrapper = this.undoOffsets[parseInt(i_2.toString(), 10)];\n lastIndex = i_2;\n break;\n }\n }\n if (lastIndex !== -1) {\n this.undoOffsets.splice(lastIndex, 1);\n }\n }\n this.positionChanged(object, diagram);\n }\n else {\n this.connectionChanged(tempNode, diagram, entry);\n }\n }\n var nd = diagram.nameTable[node.id];\n nd.rotateAngle = obj.rotateAngle;\n diagram.updateSelector();\n this.rotationChanged(node, diagram);\n }\n else {\n this.rotationChanged(node, diagram);\n this.positionChanged(node, diagram);\n }\n }\n else {\n this.rotationChanged(node, diagram);\n this.positionChanged(node, diagram);\n }\n }\n }\n diagram.fromUndo = false;\n if (obj && obj.connectors && obj.connectors.length > 0) {\n for (i = 0; i < obj.connectors.length; i++) {\n connector = obj.connectors[parseInt(i.toString(), 10)];\n this.connectionChanged(connector, diagram);\n }\n }\n };\n UndoRedo.prototype.rotationChanged = function (obj, diagram) {\n var node = diagram.nameTable[obj.id];\n diagram.rotate(node, obj.rotateAngle - node.rotateAngle);\n };\n UndoRedo.prototype.recordConnectionChanged = function (obj, diagram) {\n var connector;\n if (obj && obj.connectors) {\n connector = obj.connectors[0];\n }\n else {\n connector = obj;\n }\n if (connector.sourceID && diagram.nameTable[connector.sourceID]) {\n diagram.insertValue(diagram.nameTable[connector.sourceID], true);\n }\n if (connector.targetID && diagram.nameTable[connector.targetID]) {\n diagram.insertValue(diagram.nameTable[connector.targetID], true);\n }\n if (connector instanceof Connector || connector.shape.type === 'None') {\n this.connectionChanged(connector, diagram);\n }\n };\n UndoRedo.prototype.connectionChanged = function (obj, diagram, entry) {\n var connector = diagram.nameTable[obj.id];\n var node;\n if (obj.sourcePortID !== connector.sourcePortID) {\n diagram.removePortEdges(diagram.nameTable[connector.sourceID], connector.sourcePortID, connector.id, false);\n connector.sourcePortID = obj.sourcePortID;\n diagram.connectorPropertyChange(connector, {}, { sourcePortID: obj.sourcePortID });\n }\n if (obj.targetPortID !== connector.targetPortID) {\n diagram.removePortEdges(diagram.nameTable[connector.targetID], connector.targetPortID, connector.id, true);\n connector.targetPortID = obj.targetPortID;\n diagram.connectorPropertyChange(connector, {}, { targetPortID: obj.targetPortID });\n }\n if (obj.sourceID !== connector.sourceID) {\n if (obj.sourceID === '') {\n node = diagram.nameTable[connector.sourceID];\n removeItem(node.outEdges, obj.id);\n }\n else {\n node = diagram.nameTable[obj.sourceID];\n node.outEdges.push(obj.id);\n diagram.updatePortEdges(node, obj, false);\n }\n connector.sourceID = obj.sourceID;\n diagram.connectorPropertyChange(connector, {}, { sourceID: obj.sourceID });\n }\n if (obj.targetID !== connector.targetID) {\n if (obj.targetID === '') {\n node = diagram.nameTable[connector.targetID];\n removeItem(node.inEdges, obj.id);\n }\n else {\n node = diagram.nameTable[obj.targetID];\n node.inEdges.push(obj.id);\n diagram.updatePortEdges(node, obj, true);\n }\n connector.targetID = obj.targetID;\n diagram.connectorPropertyChange(connector, {}, { targetID: obj.targetID });\n }\n if (entry && entry.childTable) {\n entry.childTable[obj.id] = cloneObject(connector);\n }\n var sx = obj.sourcePoint.x - connector.sourcePoint.x;\n var sy = obj.sourcePoint.y - connector.sourcePoint.y;\n if (sx !== 0 || sy !== 0) {\n diagram.dragSourceEnd(connector, sx, sy);\n }\n var tx = obj.targetPoint.x - connector.targetPoint.x;\n var ty = obj.targetPoint.y - connector.targetPoint.y;\n if (tx !== 0 || ty !== 0) {\n diagram.dragTargetEnd(connector, tx, ty);\n }\n diagram.updateSelector();\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n };\n UndoRedo.prototype.recordCollectionChanged = function (entry, diagram) {\n var obj = entry.undoObject;\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n if (entry.changeType === 'Insert') {\n changeType = 'Remove';\n }\n else {\n changeType = 'Insert';\n }\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n if (obj.nodeId) {\n diagram.remove(diagram.nameTable[obj.nodeId + '_textannotation_' + obj.id]);\n }\n else {\n diagram.remove(obj);\n diagram.clearSelectorLayer();\n }\n }\n else {\n diagram.clearSelectorLayer();\n if (obj.parentId) {\n var parentNode = diagram.nameTable[obj.parentId];\n if (parentNode) {\n diagram.addChild(parentNode, obj);\n }\n else {\n diagram.add(obj);\n }\n }\n else if (obj.nodeId) {\n diagram.addTextAnnotation(obj, diagram.nameTable[obj.nodeId]);\n }\n else {\n if (!diagram.nameTable[obj.id]) {\n if (obj && obj.shape && obj.shape.type === 'SwimLane' && entry.isUndo) {\n pasteSwimLane(obj, undefined, undefined, undefined, undefined, true);\n }\n diagram.add(obj);\n }\n }\n if (obj.processId && diagram.nameTable[obj.processId]) {\n diagram.addProcess(obj, obj.processId);\n }\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n UndoRedo.prototype.recordLabelCollectionChanged = function (entry, diagram) {\n var label = entry.undoObject;\n var obj = entry.redoObject;\n var node = diagram.nameTable[obj.id];\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert';\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.removeLabels(node, [label]);\n diagram.clearSelectorLayer();\n }\n else {\n diagram.clearSelectorLayer();\n diagram.addLabels(node, [label]);\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n UndoRedo.prototype.recordPortCollectionChanged = function (entry, diagram) {\n var port = entry.undoObject;\n var obj = entry.redoObject;\n var node = diagram.nameTable[obj.id];\n if (entry && entry.changeType) {\n var changeType = void 0;\n if (entry.isUndo) {\n changeType = (entry.changeType === 'Insert') ? 'Remove' : 'Insert';\n }\n else {\n changeType = entry.changeType;\n }\n if (changeType === 'Remove') {\n diagram.removePorts(node, [port]);\n diagram.clearSelectorLayer();\n }\n else {\n diagram.clearSelectorLayer();\n diagram.addPorts(node, [port]);\n }\n if (diagram.mode !== 'SVG') {\n diagram.refreshDiagramLayer();\n }\n }\n };\n /**\n * redo method \\\n *\n * @returns { void } redo method .\\\n * @param {Diagram} diagram - provide the diagram value.\n *\n * @private\n */\n UndoRedo.prototype.redo = function (diagram) {\n var entry = this.getRedoEntry(diagram);\n var startGroupActionCount = 0;\n if (entry) {\n if (entry.category === 'Internal') {\n if (entry.type === 'StartGroup') {\n startGroupActionCount++;\n this.groupUndo = true;\n //Removed isBlazor code\n }\n else {\n this.redoEntry(entry, diagram);\n }\n if (this.groupUndo) {\n this.redoGroupAction(entry, diagram, startGroupActionCount);\n this.groupUndo = false;\n }\n }\n else {\n if (!isBlazor()) {\n diagram.historyManager.redo(entry);\n }\n var arg = {\n entryType: 'redo', oldValue: entry.redoObject, newValue: entry.undoObject\n };\n //Removed isBlazor code\n diagram.triggerEvent(DiagramEvent.historyStateChange, arg);\n }\n }\n };\n UndoRedo.prototype.redoGroupAction = function (entry, diagram, startGroupActionCount) {\n while (startGroupActionCount !== 0) {\n this.redoEntry(entry, diagram);\n entry = this.getRedoEntry(diagram);\n if (entry.type === 'EndGroup') {\n startGroupActionCount--;\n }\n else if (entry.type === 'StartGroup') {\n startGroupActionCount++;\n }\n }\n startGroupActionCount = 0;\n };\n UndoRedo.prototype.redoEntry = function (historyEntry, diagram) {\n var redoObject;\n var redovalue;\n if (historyEntry.type !== 'PropertyChanged' && historyEntry.type !== 'CollectionChanged') {\n redoObject = (historyEntry.redoObject);\n redovalue = (historyEntry.redoObject);\n }\n diagram.diagramActions |= DiagramAction.UndoRedo;\n if (historyEntry.type !== 'StartGroup' && historyEntry.type !== 'EndGroup') {\n if (diagram.historyManager.redoStack.length > 0) {\n var addObject = diagram.historyManager.redoStack.splice(0, 1);\n diagram.historyManager.undoStack.splice(0, 0, addObject[0]);\n redovalue = (historyEntry.redoObject);\n }\n }\n diagram.protectPropertyChange(true);\n //Removed isBlazor code\n switch (historyEntry.type) {\n case 'PositionChanged':\n case 'Align':\n case 'Distribute':\n this.recordPositionChanged(redoObject, diagram);\n break;\n case 'SizeChanged':\n case 'Sizing':\n this.recordSizeChanged(redoObject, diagram, historyEntry);\n break;\n case 'RotationChanged':\n this.recordRotationChanged(redoObject, diagram, historyEntry, 'redo');\n break;\n case 'ConnectionChanged':\n this.recordConnectionChanged(redoObject, diagram);\n break;\n case 'PropertyChanged':\n this.recordPropertyChanged(historyEntry, diagram, true);\n break;\n case 'CollectionChanged':\n this.recordCollectionChanged(historyEntry, diagram);\n break;\n case 'LabelCollectionChanged':\n this.recordLabelCollectionChanged(historyEntry, diagram);\n break;\n case 'PortCollectionChanged':\n this.recordPortCollectionChanged(historyEntry, diagram);\n break;\n case 'Group':\n this.group(historyEntry, diagram);\n break;\n case 'UnGroup':\n this.unGroup(historyEntry, diagram);\n break;\n case 'SegmentChanged':\n this.recordSegmentChanged(redoObject, diagram);\n break;\n case 'PortPositionChanged':\n this.recordPortChanged(historyEntry, diagram, true);\n break;\n case 'AnnotationPropertyChanged':\n this.recordAnnotationChanged(historyEntry, diagram, true);\n break;\n case 'ChildCollectionChanged':\n this.recordChildCollectionChanged(historyEntry, diagram, true);\n break;\n case 'StackChildPositionChanged':\n this.recordStackPositionChanged(historyEntry, diagram, true);\n break;\n case 'RowHeightChanged':\n this.recordGridSizeChanged(historyEntry, diagram, true, true);\n break;\n case 'ColumnWidthChanged':\n this.recordGridSizeChanged(historyEntry, diagram, true, false);\n break;\n case 'LanePositionChanged':\n this.recordLanePositionChanged(historyEntry, diagram, true);\n break;\n case 'LaneCollectionChanged':\n case 'PhaseCollectionChanged':\n this.recordLaneOrPhaseCollectionChanged(historyEntry, diagram, true);\n break;\n case 'SendToBack':\n case 'SendForward':\n case 'SendBackward':\n case 'BringToFront':\n this.recordOrderCommandChanged(historyEntry, diagram, true);\n break;\n case 'AddChildToGroupNode':\n this.recordAddChildToGroupNode(historyEntry, diagram, true);\n break;\n case 'RemoveChildFromGroupNode':\n this.recordRemoveChildFromGroupNode(historyEntry, diagram, true);\n break;\n case 'ExternalEntry':\n //EJ2-848643 - Need to consider custom entries in start and end group action\n diagram.historyManager.redo(historyEntry);\n break;\n }\n diagram.protectPropertyChange(false);\n diagram.diagramActions &= ~DiagramAction.UndoRedo;\n diagram.historyChangeTrigger(historyEntry, 'Redo');\n if (redovalue) {\n var value = this.checkNodeObject(redovalue, diagram);\n if (value) {\n var getnodeDefaults = getFunction(diagram.updateSelection);\n if (getnodeDefaults) {\n getnodeDefaults(value, diagram);\n }\n }\n }\n };\n UndoRedo.prototype.getUndoEntry = function (diagram) {\n var undoEntry = null;\n var currentObject;\n var hList = diagram.historyManager;\n if (hList.canUndo) {\n undoEntry = hList.currentEntry;\n currentObject = hList.currentEntry.previous;\n if (currentObject) {\n hList.currentEntry = currentObject;\n if (!hList.canRedo) {\n hList.canRedo = true;\n }\n }\n else {\n hList.canRedo = true;\n hList.canUndo = false;\n }\n }\n return undoEntry;\n };\n UndoRedo.prototype.getRedoEntry = function (diagram) {\n var redoEntry = null;\n var entryCurrent;\n var hList = diagram.historyManager;\n if (hList.canRedo) {\n if (!hList.currentEntry.previous && !hList.canUndo) {\n entryCurrent = hList.currentEntry;\n }\n else {\n entryCurrent = hList.currentEntry.next;\n }\n if (entryCurrent) {\n hList.currentEntry = entryCurrent;\n if (!hList.canUndo) {\n hList.canUndo = true;\n }\n if (!entryCurrent.next) {\n hList.canRedo = false;\n hList.canUndo = true;\n }\n }\n redoEntry = hList.currentEntry;\n }\n return redoEntry;\n };\n /**\n * To destroy the undo redo module\n *\n * @returns {void}\n * @private\n */\n UndoRedo.prototype.destroy = function () {\n /**\n * Destroys the undo redo module\n */\n };\n /**\n * @returns { string } toBounds method .\\\n * Get getModuleName name.\n */\n UndoRedo.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'UndoRedo';\n };\n return UndoRedo;\n}());\nexport { UndoRedo };\n","import { Container } from '../core/containers/container';\nimport { DiagramEvent, RealAction, DiagramConstraints } from '../enum/enum';\nimport { cloneObject as clone } from '../utility/base-util';\nimport { cloneBlazorObject } from '../utility/diagram-util';\n/**\n * Layout Animation function to enable or disable layout animation\n */\nvar LayoutAnimation = /** @class */ (function () {\n function LayoutAnimation() {\n this.protectChange = false;\n this.setIntervalObject = [];\n }\n /**\n * Layout expand function for animation of expand and collapse \\\n *\n * @returns { void } Layout expand function for animation of expand and collapse .\\\n * @param {boolean} animation - provide the angle value.\n * @param {ILayout} objects - provide the angle value.\n * @param {Node} node - provide the angle value.\n * @param {Diagram} diagram - provide the angle value.\n * @private\n */\n LayoutAnimation.prototype.expand = function (animation, objects, node, diagram) {\n var _this = this;\n var setIntervalObject = {};\n var i = 0;\n var j = 0;\n diagram.realActions = diagram.realActions | RealAction.AnimationClick;\n this.setIntervalObject[parseInt(i.toString(), 10)] = setInterval(function () {\n j++;\n return _this.layoutAnimation(objects, _this.setIntervalObject, j === 6, diagram, node);\n }, 20);\n if (node.isExpanded) {\n var opacity_1 = .2;\n diagram.protectPropertyChange(false);\n //let objects: ILayout = diagram.doLayout();\n var setIntervalObjects_1 = {};\n var x = 0;\n if (animation) {\n this.updateOpacity(node, opacity_1, diagram);\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var current = this;\n setIntervalObjects_1[parseInt(x.toString(), 10)] = setInterval(function () {\n diagram.allowServerDataBinding = false;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n opacity_1 <= 1 ? _this.updateOpacity(node, opacity_1, diagram) : clearInterval(setIntervalObjects_1[0]);\n opacity_1 += .2;\n diagram.allowServerDataBinding = true;\n }, 20);\n }\n }\n };\n // Bug 877226: Nodes overlapped while changing isExpanded property with Layout Animation.\n // To stop the and clear the existing setinterval object\n // Added this to stop the existing setinterval object when the layout animation is called for multiple nodes.\n LayoutAnimation.prototype.stopCurrentAnimation = function (objValue, diagram, node) {\n clearInterval(this.setIntervalObject[0]);\n this.setIntervalObject = [];\n for (var k = 0; k < objValue.objects.length; k++) {\n var node1 = diagram.nameTable[objValue.objects[parseInt(k.toString(), 10)].id];\n node1.offsetX += objValue.objects[parseInt(k.toString(), 10)].differenceX\n - (objValue.objects[parseInt(k.toString(), 10)].differenceX / 5);\n node1.offsetY += objValue.objects[parseInt(k.toString(), 10)].differenceY\n - (objValue.objects[parseInt(k.toString(), 10)].differenceY / 5);\n }\n diagram.realActions = diagram.realActions & RealAction.AnimationClick;\n diagram.refreshCanvasLayers();\n diagram.protectPropertyChange(true);\n diagram.triggerEvent(DiagramEvent.animationComplete, undefined);\n diagram.layout.fixedNode = '';\n diagram.protectPropertyChange(this.protectChange);\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n diagram.triggerEvent(DiagramEvent.expandStateChange, arg);\n if (diagram.lineRoutingModule && diagram.constraints & DiagramConstraints.LineRouting) {\n diagram.resetSegments();\n }\n };\n /**\n * Setinterval and Clear interval for layout animation \\\n *\n * @returns { void } Setinterval and Clear interval for layout animation .\\\n * @param {ILayout} objValue - provide the angle value.\n * @param {Object} layoutTimer - provide the angle value.\n * @param {ILayout} stop - provide the angle value.\n * @param {Diagram} diagram - provide the angle value.\n * @param {NodeModel} node - provide the angle value.\n * @private\n */\n LayoutAnimation.prototype.layoutAnimation = function (objValue, layoutTimer, stop, diagram, node) {\n if (!stop) {\n for (var k = 0; k < objValue.objects.length; k++) {\n var node_1 = diagram.nameTable[objValue.objects[parseInt(k.toString(), 10)].id];\n node_1.offsetX += objValue.objects[parseInt(k.toString(), 10)].differenceX / 5;\n node_1.offsetY += objValue.objects[parseInt(k.toString(), 10)].differenceY / 5;\n }\n }\n if (stop) {\n clearInterval(layoutTimer[0]);\n this.setIntervalObject = [];\n diagram.realActions = diagram.realActions & ~RealAction.AnimationClick;\n diagram.refreshCanvasLayers();\n diagram.protectPropertyChange(true);\n diagram.triggerEvent(DiagramEvent.animationComplete, undefined);\n diagram.organizationalChartModule.isAnimation = false;\n diagram.layout.fixedNode = '';\n diagram.protectPropertyChange(this.protectChange);\n var arg = {\n element: cloneBlazorObject(clone(node)), state: (node.isExpanded) ? true : false\n };\n diagram.triggerEvent(DiagramEvent.expandStateChange, arg);\n if (diagram.lineRoutingModule && diagram.constraints & DiagramConstraints.LineRouting) {\n diagram.resetSegments();\n }\n }\n };\n /**\n *update the node opacity for the node and connector once the layout animation starts \\\n *\n * @returns { void } update the node opacity for the node and connector once the layout animation starts .\\\n * @param {Node} source - provide the source value.\n * @param {number} value - provide the value.\n * @param {Diagram} diagram - provide the diagram value.\n * @private\n */\n LayoutAnimation.prototype.updateOpacity = function (source, value, diagram) {\n for (var i = 0; i < source.outEdges.length; i++) {\n var connector = diagram.nameTable[source.outEdges[parseInt(i.toString(), 10)]];\n var target = diagram.nameTable[connector.targetID];\n connector.style.opacity = value;\n for (var j = 0; j < connector.wrapper.children.length; j++) {\n connector.wrapper.children[parseInt(j.toString(), 10)].style.opacity = value;\n target.style.opacity = value;\n if (target.wrapper instanceof Container) {\n diagram.updateNodeProperty(target.wrapper, undefined, value);\n }\n }\n this.updateOpacity(target, value, diagram);\n }\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n LayoutAnimation.prototype.destroy = function () {\n /**\n * Destroys the LayoutAnimate module\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LayoutAnimation.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LayoutAnimate';\n };\n return LayoutAnimation;\n}());\nexport { LayoutAnimation };\n","import { OrthogonalSegment } from '../objects/connector';\nimport { findDistance, findPort, getConnectorDirection } from '../utility/diagram-util';\nimport { randomId } from '../utility/base-util';\nimport { Point } from '../primitives/point';\nimport { PointPort } from '../objects/port';\nimport { Size } from '../primitives/size';\n/**\n * Line Distribution\n * @private\n */\nvar LineDistribution = /** @class */ (function () {\n ///** @private */\n //public edgeMapper: EdgeMapperObject[];\n /**\n * Constructor for the line distribution module\n * @private\n */\n function LineDistribution() {\n //constructs the line distribution module\n }\n /**\n * To destroy the line distribution module\n * @returns {void}\n * @private\n */\n LineDistribution.prototype.destroy = function () {\n /**\n * Destroys the line distribution module\n */\n };\n ///**\n // * Get the diagram instance.\n // */\n //private diagram: Diagram;\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n LineDistribution.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LineDistribution';\n };\n /** @private */\n LineDistribution.prototype.initLineDistribution = function (graph, diagram) {\n var srcDirection = 'Bottom';\n //this.diagram = diagram;\n if (diagram.layout.connectionPointOrigin === 'DifferentPoint' || diagram.layout.enableRouting) {\n var tarDirection = 'Top';\n if (graph.orientation === 'BottomToTop') {\n srcDirection = 'Top';\n tarDirection = 'Bottom';\n }\n else if (graph.orientation === 'RightToLeft') {\n srcDirection = 'Left';\n tarDirection = 'Right';\n }\n else if (graph.orientation === 'LeftToRight') {\n srcDirection = 'Right';\n tarDirection = 'Left';\n }\n var graphnodes = diagram.nodes;\n if (graphnodes.length > 0) {\n for (var i = 0; i < graphnodes.length; i++) {\n var node = diagram.nameTable[graphnodes[parseInt(i.toString(), 10)].id];\n this.addDynamicPortandDistrrbuteLine(graph, node, srcDirection, tarDirection, diagram);\n }\n }\n }\n };\n LineDistribution.prototype.ObstacleSegment = function (options) {\n options.direction = getConnectorDirection(options.startpt, options.endpt);\n options.distance = Point.findLength(options.startpt, options.endpt);\n options.orientation = options.direction === 'Left' || options.direction === 'Right' ? 'horizontal' : 'vertical';\n // eslint-disable-next-line no-self-assign\n options.id = options.id;\n if (options.orientation === 'horizontal') {\n options.coord = options.startpt.y;\n if (options.direction === 'Left') {\n options.start = options.endpt.x;\n options.end = options.startpt.x;\n }\n else {\n options.start = options.startpt.x;\n options.end = options.endpt.x;\n }\n }\n else {\n options.coord = options.startpt.x;\n if (options.direction === 'Top') {\n options.start = options.endpt.y;\n options.end = options.startpt.y;\n }\n else {\n options.start = options.startpt.y;\n options.end = options.endpt.y;\n }\n }\n return options;\n };\n /** @private */\n LineDistribution.prototype.distributeLines = function (layout, diagram) {\n var isHorizontal = layout.orientation === 'LeftToRight'\n || layout.orientation === 'RightToLeft';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n var srcdecoratorSize = 8.0;\n var obstacleCollection = 'obstaclePointCollection';\n var tardecoratorSize = 10.0;\n var avaibaleSpace = inversespacing - srcdecoratorSize - tardecoratorSize;\n var graph = [];\n var connectorObstacles = [];\n var globalConnectors = diagram.connectors;\n for (var i = 0; i < globalConnectors.length; i++) {\n var connector = globalConnectors[parseInt(i.toString(), 10)];\n var pts = [];\n for (var key = 0; key < connector.segments.length; key++) {\n var seg = connector.segments[parseInt(key.toString(), 10)];\n for (var k = 0; k < seg.points.length; k++) {\n var pt = seg.points[parseInt(k.toString(), 10)];\n if (pts.length === 0 || !(Point.equals(pt, pts[pts.length - 1]))) {\n pts.push(pt);\n }\n }\n }\n var obssegments = [];\n for (var j = 1; j < pts.length; j++) {\n var obstacle = this.ObstacleSegment({\n startpt: pts[j - 1], endpt: pts[parseInt(j.toString(), 10)], id: connector.id\n });\n obssegments.push(obstacle);\n }\n var connectorObstacle = { wrapper: connector, segments: obssegments };\n var segments = [];\n if (!isHorizontal) {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'horizontal') {\n segments.push(obstacle);\n }\n }\n }\n else {\n for (var key = 0; key < connectorObstacle.segments.length; key++) {\n var obstacle = connectorObstacle.segments[parseInt(key.toString(), 10)];\n if (obstacle.orientation === 'vertical') {\n segments.push(obstacle);\n }\n }\n }\n for (var j = 0; j < segments.length; j++) {\n var obstacleSegment = segments[parseInt(j.toString(), 10)];\n if (!this.containsValue(graph, obstacleSegment.coord)) {\n graph.push({ key: obstacleSegment.coord, value: [] });\n }\n var index = void 0;\n for (var k = 0; k < graph.length; k++) {\n var key = graph[parseInt(k.toString(), 10)].key;\n if (Number(key) === obstacleSegment.coord) {\n index = k;\n break;\n }\n }\n graph[parseInt(index.toString(), 10)].value.push(obstacleSegment);\n }\n connectorObstacles.push(connectorObstacle);\n }\n this.sortConnectors(graph, diagram);\n var modifiedgrap = [];\n for (var m = 0; m < graph.length; m++) {\n var row = graph[parseInt(m.toString(), 10)];\n var sortedrow = row.value;\n sortedrow.sort();\n var groupby = void 0;\n groupby = [];\n var index = 0;\n var maxEnd = Number.MIN_VALUE;\n groupby.push([]);\n for (var n = 0; n < sortedrow.length; n++) {\n var obstacleSegment = sortedrow[parseInt(n.toString(), 10)];\n if (!(groupby[parseInt(index.toString(), 10)].length > 0) || maxEnd >= obstacleSegment.start) {\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = Math.max(maxEnd, groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end);\n }\n else {\n index++;\n groupby.push([]);\n groupby[parseInt(index.toString(), 10)].push(obstacleSegment);\n maxEnd = groupby[parseInt(index.toString(), 10)][groupby[parseInt(index.toString(), 10)].length - 1].end;\n }\n }\n for (var n = 0; n < groupby.length; n++) {\n var group = groupby[parseInt(n.toString(), 10)];\n var sortedGroup = [];\n for (var j = 0; j < group.length; j++) {\n var e = group[parseInt(j.toString(), 10)];\n if (e.start) {\n sortedGroup.push(e);\n }\n }\n var comparingDir = isHorizontal ? 'Bottom' : 'Right';\n var directed = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction === comparingDir) {\n directed.push(e);\n }\n }\n var reversedirected = [];\n for (var j = 0; j < sortedGroup.length; j++) {\n var e = sortedGroup[parseInt(j.toString(), 10)];\n if (e.direction !== comparingDir) {\n reversedirected.push(e);\n }\n }\n var mutual = [];\n if (directed.length > 0) {\n var temp = directed[0].start;\n var j = 0;\n while (j < reversedirected.length) {\n if (reversedirected[parseInt(j.toString(), 10)].end > temp) {\n mutual.push(reversedirected[parseInt(j.toString(), 10)]);\n reversedirected.splice(j, 1);\n }\n else {\n j++;\n }\n }\n }\n var mutualRow = [];\n mutualRow = this.updateSegmentRow(mutual, mutualRow);\n var directedRow = [];\n directedRow = [];\n directedRow = this.updateSegmentRow(reversedirected, directedRow);\n directed.reverse();\n directedRow = this.updateSegmentRow(directed, directedRow);\n if (!(mutualRow[mutualRow.length - 1].length > 0)) {\n mutualRow.splice(mutualRow.length - 1, 1);\n }\n if (!(directedRow[directedRow.length - 1].length > 0)) {\n directedRow.splice(directedRow.length - 1, 1);\n }\n var subrow = [];\n var descAdding = mutual.length > 0 && (sortedGroup[sortedGroup.length - 1].direction\n === mutual[mutual.length - 1].direction\n || sortedGroup[0].direction === mutual[0].direction);\n if (descAdding) {\n subrow = directedRow;\n for (var p = 0; p < mutualRow.length; p++) {\n var obj = mutualRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n else {\n subrow = mutualRow;\n for (var p = 0; p < directedRow.length; p++) {\n var obj = directedRow[parseInt(p.toString(), 10)];\n subrow[subrow.length] = obj;\n }\n }\n if (subrow.length > 1) {\n var directionModifier = 1;\n if (layout.orientation === 'BottomToTop'\n || layout.orientation === 'RightToLeft') {\n directionModifier = -1;\n }\n var startCoord = row.key - (directionModifier * avaibaleSpace / 2.0);\n var diff = avaibaleSpace / subrow.length;\n for (var i = 0; i < subrow.length; i++) {\n var newcoord = startCoord + (i * diff * directionModifier);\n for (var p = 0; p < subrow[parseInt(i.toString(), 10)].length; p++) {\n var obstacleSegment = subrow[parseInt(i.toString(), 10)][parseInt(p.toString(), 10)];\n obstacleSegment.coord = newcoord;\n if (!this.containsValue(modifiedgrap, obstacleSegment.coord)) {\n modifiedgrap.push({ key: obstacleSegment.coord, value: [] });\n }\n var index_1 = void 0;\n for (var k = 0; k < modifiedgrap.length; k++) {\n var keyCheck = modifiedgrap[parseInt(k.toString(), 10)].key;\n if (keyCheck === obstacleSegment.coord) {\n index_1 = k;\n break;\n }\n }\n modifiedgrap[parseInt(index_1.toString(), 10)].value.push(obstacleSegment);\n }\n }\n }\n }\n }\n for (var m = 0; m < connectorObstacles.length; m++) {\n var connectorObstacle = connectorObstacles[parseInt(m.toString(), 10)];\n var pts = [];\n for (var i = 0; i < connectorObstacle.segments.length; i++) {\n if (i === 0) {\n pts.push(this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n else if (isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'vertical') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n else if (!isHorizontal) {\n if (connectorObstacle.segments[parseInt(i.toString(), 10)].orientation === 'horizontal') {\n pts[pts.length - 1] = this.getObstacleStartPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]);\n }\n }\n pts.push(this.getObstacleEndPoint(connectorObstacle.segments[parseInt(i.toString(), 10)]));\n }\n /* tslint:disable */\n connectorObstacle.wrapper[\"\" + obstacleCollection] = [];\n for (var j = 0; j < pts.length; j++) {\n var point = pts[parseInt(j.toString(), 10)];\n if (j === 0 || (j > 0 && !(Point.equals(point, pts[j - 1])))) {\n connectorObstacle.wrapper[\"\" + obstacleCollection].push(this.getPointvalue(point.x, point.y));\n }\n }\n /* tslint:enable */\n //EJ2-70198 - The layout ConnectionPointOrigin DifferentPoint property is not working for bezier connector\n //Bug 851920: Connector overlaps the node in complex hierarchical tree layout. Here the below condition is modified to check connector type.\n if (connectorObstacle.wrapper.type === 'Orthogonal') {\n this.resetConnectorPoints(connectorObstacle.wrapper, diagram);\n }\n }\n };\n //Bug 862601: Connectors are not rendered properly with lineRouting and lineDistribution enables during doLayout process.\n //To sort the connectors order in graph based on its target point and orientation to avoid connector segments path in same line.\n LineDistribution.prototype.sortConnectors = function (graph, diagram) {\n for (var i = 0; i < graph.length; i++) {\n for (var j = 0; j < graph[parseInt(i.toString(), 10)].value.length; j++) {\n if (graph[parseInt(i.toString(), 10)].value.length > 1) {\n if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') {\n graph[parseInt(i.toString(), 10)].value.sort(function (a, b) {\n var connectorA = diagram.nameTable[\"\" + a.id];\n var connectorB = diagram.nameTable[\"\" + b.id];\n return connectorA.targetPoint.y - connectorB.targetPoint.y;\n });\n }\n else if (diagram.layout.orientation === 'TopToBottom' || diagram.layout.orientation === 'BottomToTop') {\n graph[parseInt(i.toString(), 10)].value.sort(function (a, b) {\n var connectorA = diagram.nameTable[\"\" + a.id];\n var connectorB = diagram.nameTable[\"\" + b.id];\n return connectorA.targetPoint.x - connectorB.targetPoint.x;\n });\n }\n }\n }\n }\n };\n //private inflate(rect: Rect, x: number, y: number): Rect {\n // rect.x -= x;\n // rect.y -= y;\n // rect.width += 2 * x;\n // rect.height += 2 * y;\n // return rect;\n //}\n //private updateConnectorPoints(\n // connectorPoints: Point[], startSegmentSize: number, intermediatePoint: Point, bounds: object, orientation: string):\n // Point[] {\n // const layoutBounds: Rect = bounds as Rect;\n // const isHorizontal: boolean = orientation === 'LeftToRight' || orientation === 'RightToLeft';\n // const pts: Point[] = connectorPoints;\n // if (pts.length > 2) {\n // const newPt: Point = Point.transform(pts[0], Point.findAngle(pts[0], pts[1]), startSegmentSize) as Point;\n // const nextPt: Point = Point.transform(newPt, Point.findAngle(pts[1], pts[2]), Point.findLength(pts[1], pts[2])) as Point;\n // pts.splice(1, 2, newPt, nextPt);\n // if (intermediatePoint != null) {\n // const index: number = 2;\n // const ptsCount: number = pts.length;\n // const newPt1: Point = Point.transform(\n // pts[ptsCount - 1],\n // Point.findAngle(pts[ptsCount - 1], pts[ptsCount - 2]),\n // startSegmentSize) as Point;\n // pts.splice(ptsCount - 1, 0, newPt1);\n // while (index < (pts.length - 2)) {\n // pts.splice(index, 1);\n // }\n // const edgePt: Point = intermediatePoint;\n // this.inflate((layoutBounds as Rect), (layoutBounds as Rect).width, layoutBounds.height);\n // const line1: Point[] = [];\n // line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y) as Point;\n // line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height) as Point;\n // const line2: Point[] = [];\n // line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y) as Point;\n // line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y) as Point;\n // const line3: Point[] = [];\n // line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y) as Point;\n // line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y) as Point;\n // if (isHorizontal) {\n // line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y) as Point;\n // line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y) as Point;\n // line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y) as Point;\n // line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height) as Point;\n // line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y) as Point;\n // line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height) as Point;\n // }\n // const intercepts1: Point[] = [intersect2(\n // line1[0] as Point,\n // line1[1] as Point, line2[0] as Point, line2[1] as Point)] as Point[];\n // const intercepts2: Point[] = [intersect2(\n // line1[0] as Point, line1[1] as Point,\n // line3[0] as Point, line3[1] as Point)] as Point[];\n // if (intercepts2.length > 0) {\n // pts.splice(2, 0, intercepts2[0]);\n // }\n // if (intercepts1.length > 0) {\n // pts.splice(2, 0, intercepts1[0]);\n // }\n // }\n // }\n // let i: number = 1;\n // while (i < pts.length - 1) {\n // if (Point.equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) {\n // pts.splice(i, 1);\n // } else if (Point.findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)])\n // === Point.findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) {\n // pts.splice(i, 1);\n // } else {\n // i++;\n // }\n // }\n // return pts;\n //}\n /* tslint:disable */\n LineDistribution.prototype.resetConnectorPoints = function (edge, diagram) {\n var obstacleCollection = 'obstaclePointCollection';\n if (edge.segments[0].points\n && edge.segments[0].points.length > 0 && edge[\"\" + obstacleCollection]) {\n var connector = edge;\n connector.sourcePoint = edge[\"\" + obstacleCollection][0];\n connector.targetPoint = edge[\"\" + obstacleCollection][edge[\"\" + obstacleCollection].length - 1];\n var segments = void 0;\n segments = [];\n for (var i = 0; i < edge[\"\" + obstacleCollection].length - 1; i++) {\n var point1 = edge[\"\" + obstacleCollection][parseInt(i.toString(), 10)];\n var point2 = edge[\"\" + obstacleCollection][i + 1];\n var length_1 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === edge[\"\" + obstacleCollection].length - 2) {\n if ((diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_1 = length_1 / 2;\n }\n }\n /* tslint:enable */\n var tempSegment = new OrthogonalSegment(edge, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_1;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n }\n };\n LineDistribution.prototype.getObstacleEndPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.start, segment.coord);\n }\n return this.getPointvalue(segment.end, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.start);\n }\n return this.getPointvalue(segment.coord, segment.end);\n };\n LineDistribution.prototype.getObstacleStartPoint = function (segment) {\n if (segment.orientation === 'horizontal') {\n if (segment.direction === 'Left') {\n return this.getPointvalue(segment.end, segment.coord);\n }\n return this.getPointvalue(segment.start, segment.coord);\n }\n if (segment.direction === 'Top') {\n return this.getPointvalue(segment.coord, segment.end);\n }\n return this.getPointvalue(segment.coord, segment.start);\n };\n LineDistribution.prototype.updateSegmentRow = function (obstacleSegments, segmentRow) {\n var k = 0;\n if (!(segmentRow.length > 0)) {\n segmentRow[0] = [];\n }\n for (var i = 0; i < obstacleSegments.length; i++) {\n var obstacleSegment = obstacleSegments[parseInt(i.toString(), 10)];\n while (k < segmentRow.length) {\n if (k === segmentRow.length - 1) {\n segmentRow[k + 1] = [];\n }\n if (!(segmentRow[parseInt(k.toString(), 10)].length > 0)\n || segmentRow[parseInt(k.toString(), 10)][segmentRow[parseInt(k.toString(), 10)].length - 1].end\n < obstacleSegment.start) {\n segmentRow[parseInt(k.toString(), 10)].push(obstacleSegment);\n break;\n }\n k++;\n }\n }\n return segmentRow;\n };\n LineDistribution.prototype.portOffsetCalculation = function (port, length, direction, i) {\n if (direction === 'Top') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 0 };\n }\n if (direction === 'Bottom') {\n port.offset = { x: (i + 1) * (1.0 / (length + 1)), y: 1 };\n }\n if (direction === 'Left') {\n port.offset = { x: 0, y: (i + 1) * (1.0 / (length + 1)) };\n }\n if (direction === 'Right') {\n port.offset = { x: 1, y: (i + 1) * (1.0 / (length + 1)) };\n }\n };\n LineDistribution.prototype.addDynamicPortandDistrrbuteLine = function (layout, node, sourceDirection, targetDirection, diagram) {\n if ((node.ports && node.ports.length > 0)) {\n var port = node.ports;\n diagram.removePorts(node, port);\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var existingPorts = node.ports;\n var outConnectors = node.outEdges;\n var inConnectors = node.inEdges;\n this.initPort(outConnectors, diagram, node, sourceDirection, false);\n this.initPort(inConnectors, diagram, node, targetDirection, true);\n };\n /* tslint:disable */\n LineDistribution.prototype.initPort = function (connectors, diagram, node, targetDirection, inConnectors) {\n var obstacleCollection = 'obstaclePointCollection';\n var objects = connectors;\n // EJ2-61463 - Added below code to sort the objects based on the source node offset position\n if (connectors.length > 1 && inConnectors) {\n connectors = this.sortObjects(objects, inConnectors, diagram);\n }\n for (var i = 0; i <= connectors.length - 1; i++) {\n var internalConnector = diagram.nameTable[connectors[parseInt(i.toString(), 10)]];\n internalConnector[\"\" + obstacleCollection] = [];\n var newPort = findPort(node, inConnectors ? internalConnector.targetPortID : internalConnector.sourcePortID);\n var direction = targetDirection;\n if (newPort === undefined) {\n newPort = new PointPort(node, 'ports', '', true);\n newPort.id = randomId() + '_LineDistribution';\n if (inConnectors) {\n internalConnector.targetPortID = newPort.id;\n }\n else {\n internalConnector.sourcePortID = newPort.id;\n }\n }\n this.portOffsetCalculation(newPort, connectors.length, direction, i);\n node.ports.push(newPort);\n var portWrapper = node.initPortWrapper(node.ports[node.ports.length - 1]);\n node.wrapper.children.push(portWrapper);\n // EJ2-66867 - Exception occurs on calling doLayout while injecting Linerouting module\n // nodes portWrapper bouds is updated below\n node.wrapper.measure(new Size(node.width, node.height), node.id);\n node.wrapper.arrange(node.wrapper.desiredSize);\n diagram.connectorPropertyChange(internalConnector, inConnectors ? { targetPortID: '' } : { sourcePortID: '' }, \n // eslint-disable-next-line\n inConnectors ? { targetPortID: newPort.id } : { sourcePortID: newPort.id });\n }\n };\n /* tslint:enable */\n //EJ2-61463 - Method used to sort the connectors based on the source node offset position\n LineDistribution.prototype.sortObjects = function (objects, inConnectors, diagram) {\n var temp;\n for (var i = 0; i < objects.length; i++) {\n for (var j = i + 1; j < objects.length; j++) {\n var internalConnector = diagram.nameTable[objects[parseInt(i.toString(), 10)]];\n var internalConnector2 = diagram.nameTable[objects[parseInt(j.toString(), 10)]];\n if (inConnectors) {\n var childNode = diagram.nameTable[internalConnector.sourceID];\n var childNode2 = diagram.nameTable[internalConnector2.sourceID];\n // For LeftToRight and RightToLeft we want to consider source node offsetY position\n if (diagram.layout.orientation === 'LeftToRight' || diagram.layout.orientation === 'RightToLeft') {\n if (childNode.offsetY > childNode2.offsetY) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n else {\n // For TopToBottom or BottomToTop means we want to consider source node offsetX position\n if (childNode.offsetX > childNode2.offsetX) {\n temp = objects[parseInt(i.toString(), 10)];\n objects[parseInt(i.toString(), 10)] = objects[parseInt(j.toString(), 10)];\n objects[parseInt(j.toString(), 10)] = temp;\n }\n }\n }\n }\n }\n return objects;\n };\n //private shiftMatrixCells(\n // value: number, startingCell: MatrixCellGroupObject, shiftChildren: boolean,\n // parentCell: MatrixCellGroupObject, matrixModel: MatrixModelObject):\n // void {\n // if (!(value === 0)) {\n // const matrix: MatrixObject[] = matrixModel.matrix;\n // const matrixRow: MatrixCellGroupObject[] = matrix[startingCell.level].value;\n // const index: number = matrixRow.indexOf(startingCell);\n // for (let i: number = index; i < matrixRow.length; i++) {\n // matrixRow[parseInt(i.toString(), 10)].offset += value;\n // }\n // if (shiftChildren) {\n // if (startingCell.visitedChildren.length > 0) {\n // this.shiftMatrixCells(\n // value,\n // startingCell.visitedChildren[0],\n // true,\n // startingCell,\n // matrixModel);\n // } else {\n // let i: number = 1;\n // let nextSibilingwithChild: MatrixCellGroupObject = null;\n // while (index + i < matrixRow.length) {\n // const nextCell: MatrixCellGroupObject = matrixRow[index + i];\n // if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) {\n // if (nextCell.visitedChildren.length > 0) {\n // nextSibilingwithChild = nextCell;\n // } else {\n // i++;\n // continue;\n // }\n // }\n // break;\n // }\n // if (nextSibilingwithChild != null) {\n // this.shiftMatrixCells(\n // value,\n // nextSibilingwithChild.visitedChildren[0],\n // true,\n // nextSibilingwithChild,\n // matrixModel);\n // }\n // }\n // }\n // }\n //}\n //private arrangeMatrix(cell: MatrixCellGroupObject, parent: MatrixCellGroupObject, matrixModel: MatrixModelObject): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // const isHorizontal: boolean = layoutSettings.orientation === 'LeftToRight'\n // || layoutSettings.orientation === 'RightToLeft';\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // const matrix: MatrixObject[] = matrixModel.matrix;\n // const matrixRow: MatrixCellGroupObject[] = matrix[cell.level].value;\n // const matrixIndex: number = matrixRow.indexOf(cell);\n // if (cell.visitedParents.length > 0) {\n // if (cell.visitedParents.length === 1) {\n // cell.initialOffset = cell.offset;\n // }\n // if (matrixIndex + 1 < matrixRow.length) {\n // const nextCell: MatrixCellGroupObject = matrixRow[matrixIndex + 1];\n // if (nextCell.visitedParents.length > 0) {\n // if (!this.containsValue(cell.visitedParents, parent)) {\n // cell.visitedParents.push(parent);\n // parent.ignoredChildren.push(cell);\n // return;\n // }\n // }\n // }\n // }\n // if (!(cell.children.length > 0)) {\n // let validOffset: number = cell.offset;\n // if (matrixIndex > 0) {\n // const prevCell: MatrixCellGroupObject = matrixRow[matrixIndex - 1];\n // validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n // }\n // this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel);\n // } else {\n // for (let i: number = 0; i < cell.children.length; i++) {\n // const matrixCellChild: MatrixCellGroupObject = cell.children[parseInt(i.toString(), 10)];\n // if (!this.containsValue(cell.visitedChildren, matrixCellChild)) {\n // this.arrangeMatrix(matrixCellChild, cell, matrixModel);\n // cell.visitedChildren.push(matrixCellChild);\n // }\n // }\n // if (cell.visitedChildren.length > 0) {\n // const children: MatrixCellGroupObject[] = cell.visitedChildren.slice();\n // for (let i: number = 0; i < cell.ignoredChildren.length; i++) {\n // //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i];\n // children.splice(0, 1);\n // cell.visitedChildren.splice(0, 1);\n // }\n // if (children.length > 0) {\n // const firstChild: MatrixCellGroupObject = cell.visitedChildren[0];\n // const lastChild: MatrixCellGroupObject = cell.visitedChildren[cell.visitedChildren.length - 1];\n // const x1: number = firstChild.offset - (firstChild.size / 2);\n // const x2: number = lastChild.offset + (lastChild.size / 2);\n // const newoffset: number = (x1 + x2) / 2;\n // if (newoffset < cell.offset) {\n // this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel);\n // } else if (newoffset > cell.offset) {\n // this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel);\n // }\n // }\n // }\n // }\n // if (!this.containsValue(cell.visitedParents, parent)) {\n // cell.visitedParents.push(parent);\n // }\n //}\n /** @private */\n LineDistribution.prototype.resetConnectorSegments = function (connector) {\n var segements = connector.segments;\n for (var i = segements.length; i > 0; i--) {\n segements.splice(i - 1, 1);\n }\n };\n /* tslint:disable */\n /** @private */\n LineDistribution.prototype.resetRoutingSegments = function (connector, diagram, points) {\n if (connector['levelSkip']) {\n //Bug 877799: Optimize the routing segment distance while using enableRouting in layout.\n var sourceLevel = void 0;\n var targetLevel = void 0;\n var collection = diagram.layout.ranks.reverse();\n //To find the source level and target level of the level skip connector\n for (var i = 0; i < collection.length; i++) {\n for (var j = 0; j < collection[parseInt(i.toString(), 10)].length; j++) {\n if (connector.sourceID === collection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id) {\n sourceLevel = i;\n }\n if (connector.targetID === collection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id) {\n targetLevel = i;\n }\n }\n }\n // To find the overlapping collection between the source and target level\n var overlappCollection = [];\n if (sourceLevel < targetLevel) {\n for (var i = 0; i < collection.length; i++) {\n if (i > sourceLevel && i < targetLevel) {\n overlappCollection.push(collection[parseInt(i.toString(), 10)]);\n }\n }\n }\n else {\n for (var i = 0; i < collection.length; i++) {\n if (i < sourceLevel && i > targetLevel) {\n overlappCollection.push(collection[parseInt(i.toString(), 10)]);\n }\n }\n }\n // To find the overlapping nodes between the source and target level\n var overLapNodesCollection = [];\n for (var i = 0; i < overlappCollection.length; i++) {\n for (var j = 0; j < overlappCollection[parseInt(i.toString(), 10)].length; j++) {\n if (overlappCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].edges === undefined) {\n var node = diagram.nameTable[overlappCollection[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)].id];\n overLapNodesCollection.push(node);\n }\n }\n }\n var isInsideBounds = false;\n if (!diagram.routingConnectors) {\n diagram.routingConnectors = [];\n }\n //To find whether the connector is overlapping with the nodes in the overlapping collection.\n // eslint-disable-next-line no-labels\n overlapping: for (var count = 0; count < overLapNodesCollection.length; count++) {\n var bounds = overLapNodesCollection[parseInt(count.toString(), 10)].wrapper.bounds;\n for (var i = 0; i < connector.segments.length; i++) {\n var points_1 = connector.segments[parseInt(i.toString(), 10)].points;\n for (var j = 0; j < points_1.length; j++) {\n var lineStart = points_1[parseInt(j.toString(), 10)];\n var lineEnd = points_1[j + 1];\n if (lineEnd) {\n var connectorPoints = this.pointsAlongLine(lineStart, lineEnd);\n isInsideBounds = this.pointInsideBounds(connectorPoints, bounds);\n if (isInsideBounds) {\n diagram.routingConnectors.push(connector);\n // eslint-disable-next-line no-labels\n break overlapping;\n }\n }\n }\n }\n }\n }\n };\n /**\n * Calculates points along a line between two given points.\n * @param start The starting point of the line.\n * @param end The ending point of the line.\n * @return An array of points along the line.\n */\n LineDistribution.prototype.pointsAlongLine = function (start, end) {\n var granularity = 1;\n var dx = end.x - start.x;\n var dy = end.y - start.y;\n var length = Math.sqrt(dx * dx + dy * dy);\n var stepX = (dx / length) * granularity;\n var stepY = (dy / length) * granularity;\n var points = [];\n for (var i = 0; i <= length; i += granularity) {\n points.push({ x: start.x + stepX * i, y: start.y + stepY * i });\n }\n return points;\n };\n /**\n *\n * Checks if any of the given points fall inside the specified bounding rectangle.\n * @param points An array of points to be checked.\n * @param bounds The bounding rectangle to check against.\n * @return True if any point is inside the bounds, false otherwise.\n */\n LineDistribution.prototype.pointInsideBounds = function (points, bounds) {\n var padding = 10;\n for (var _i = 0, points_2 = points; _i < points_2.length; _i++) {\n var point = points_2[_i];\n if (bounds.right > point.x &&\n bounds.left < point.x &&\n bounds.top < point.y &&\n bounds.bottom > point.y) {\n return true;\n }\n }\n return false;\n };\n /* tslint:enable */\n /** @private */\n //public arrangeElements(matrixModel: MatrixModelObject, layout: Layout): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // let isHorizontal: boolean;\n // if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') {\n // isHorizontal = true;\n // } else {\n // isHorizontal = false;\n // }\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // // Need to group element before\n // this.groupLayoutCells(matrixModel);\n // this.createMatrixCells(matrixModel);\n // for (let j: number = 0; j < matrixModel.matrix.length; j++) {\n // const matrixKey: number = matrixModel.matrix[parseInt(j.toString(), 10)].key;\n // const matrixrow: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value;\n // for (let i: number = 1; i < matrixrow.length; i++) {\n // const cell: MatrixCellGroupObject = matrixrow[parseInt(i.toString(), 10)];\n // const prevCell: MatrixCellGroupObject = matrixrow[i - 1];\n // cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n // }\n // }\n // for (let j: number = 0; j < matrixModel.matrix[0].value.length; j++) {\n // const root: MatrixCellGroupObject = matrixModel.matrix[0].value[parseInt(j.toString(), 10)];\n // this.arrangeMatrix(root, null, matrixModel);\n // }\n // for (let k: number = 0; k < matrixModel.matrix.length; k++) {\n // const row: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(k.toString(), 10)].value;\n // for (let i: number = 0; i < row.length; i++) {\n // const cell: MatrixCellGroupObject = row[parseInt(i.toString(), 10)];\n // if (cell.visitedParents.length > 1) {\n // let firstParent: MatrixCellGroupObject = cell.visitedParents[0];\n // let lastParent: MatrixCellGroupObject = cell.visitedParents[cell.visitedParents.length - 1];\n // const firstVertexParent: MatrixCellGroupObject = this.findParentVertexCellGroup(firstParent);\n // const lastVertexParent: MatrixCellGroupObject = this.findParentVertexCellGroup(lastParent);\n // if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n // firstParent = firstVertexParent;\n // }\n // if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n // lastParent = firstVertexParent;\n // }\n // const newoffset: number = (firstParent.offset + lastParent.offset) / 2;\n // const availOffsetMin: number = cell.initialOffset;\n // const availOffsetMax: number = cell.offset;\n // if (!(availOffsetMax === availOffsetMin)) {\n // if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) {\n // this.translateMatrixCells(newoffset - cell.offset, cell);\n // } else if (newoffset < availOffsetMin) {\n // this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n // }\n // }\n // }\n // }\n // }\n // this.setXYforMatrixCell(matrixModel);\n //}\n //private findParentVertexCellGroup(cell: MatrixCellGroupObject): MatrixCellGroupObject {\n // if (cell.cells[0]) {\n // return cell;\n // }\n // if (cell.parents.length > 0) {\n // return this.findParentVertexCellGroup(cell.parents[0]);\n // }\n // return cell;\n //}\n //private setXYforMatrixCell(matrixModel: MatrixModelObject): void {\n // const layoutSettings: LayoutProp = matrixModel.model.layout;\n // const isHorizontal: boolean = layoutSettings.orientation === 'LeftToRight'\n // || layoutSettings.orientation === 'RightToLeft';\n // const spacing: number = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // for (let i: number = 0; i < matrixModel.matrix.length; i++) {\n // const matrixrow1: MatrixCellGroupObject[] = matrixModel.matrix[parseInt(i.toString(), 10)].value;\n // for (let j: number = 0; j < matrixrow1.length; j++) {\n // const matrixCell: MatrixCellGroupObject = matrixrow1[parseInt(j.toString(), 10)];\n // let start: number = matrixCell.offset - (matrixCell.size / 2);\n // for (let k: number = 0; k < (matrixCell.cells as CellObject[]).length; k++) {\n // const cell: CellObject = matrixCell.cells[parseInt(k.toString(), 10)];\n // const type: string = this.getType(cell.type);\n // if (type === 'internalVertex') {\n // const internalVertex: CellObject = cell;\n // const width: number = internalVertex.cell.geometry.width;\n // const height: number = internalVertex.cell.geometry.height;\n // if (isHorizontal) {\n // internalVertex.cell.geometry = new Rect(\n // matrixModel.rowOffset[matrixCell.level] - (width / 2),\n // start,\n // width,\n // height) as Rect;\n // } else {\n // internalVertex.cell.geometry = new Rect(\n // start,\n // matrixModel.rowOffset[matrixCell.level] - (height / 2),\n // width,\n // height) as Rect;\n // }\n // start += (isHorizontal ? height : width) + spacing;\n // } else if (type === 'internalEdge') {\n // const internalEdges: CellObject = cell;\n // const parent: MatrixCellGroupObject = matrixCell.visitedParents[0];\n // let isContainSibilingVertex: boolean = false;\n // if (parent) {\n // for (let l: number = 0; l < parent.visitedChildren.length; l++) {\n // const children: MatrixCellGroupObject = parent.visitedChildren[parseInt(l.toString(), 10)];\n // const cells: CellObject[] = [];\n // for (let m: number = 0; m < (children.cells as CellObject[]).length; m++) {\n // const cell: CellObject = children.cells[parseInt(m.toString(), 10)];\n // const type: string = this.getType(cell.type);\n // if (type === 'internalVertex') {\n // cells.push(cell);\n // }\n // }\n // if (cells.length > 0) {\n // isContainSibilingVertex = true;\n // break;\n // }\n // }\n // }\n // // Need to updated line width\n // const lineWidth: number = 1;\n // const edgeSpacing: number = 5;\n // for (let m: number = 0; m < internalEdges.edges.length; m++) {\n // const internalConnector: Connector = internalEdges.edges[parseInt(m.toString(), 10)];\n // let pt: Point = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]) as Point;\n // if (isHorizontal) {\n // pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0)) as Point;\n // }\n // if (this.containsValue((this.getEdgeMapper() as EdgeMapperObject[]), internalConnector)) {\n // let key: number;\n // for (let l: number = 0; l < this.getEdgeMapper().length; l++) {\n // if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) {\n // key = l;\n // break;\n // }\n // }\n // (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt as Point);\n // }\n // start += lineWidth + edgeSpacing;\n // }\n // start += spacing;\n // }\n // }\n // }\n // }\n //}\n //private getEdgeMapper(): EdgeMapperObject[] {\n // return this.edgeMapper;\n //}\n ///** @private */\n //public setEdgeMapper(value: EdgeMapperObject): void {\n // this.edgeMapper.push(value);\n //}\n //private translateMatrixCells(value: number, cell: MatrixCellGroupObject): void {\n // if (!(value === 0)) {\n // cell.offset += value;\n // if (cell.visitedChildren.length > 0) {\n // for (let i: number = 0; i < cell.visitedChildren.length; i++) {\n // let cellVisitedChild: MatrixCellGroupObject = cell.visitedChildren[parseInt(i.toString(), 10)];\n // this.translateMatrixCells(value, cellVisitedChild);\n // }\n // }\n // }\n //}\n //private groupLayoutCells(matrixModel: MatrixModelObject): void {\n // let ranks: IVertex[][] = matrixModel.model.ranks;\n // for (let j: number = ranks.length - 1; j >= 0; j--) {\n // let vertices: IVertex[] = [];\n // for (let v: number = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) {\n // let rank: IVertex = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)];\n // let type: string = this.getType(rank.type);\n // if (type === 'internalVertex') {\n // vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]);\n // }\n // }\n // let edges: IVertex[] = [];\n // for (let e: number = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) {\n // let rank: IVertex = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)];\n // let type: string = this.getType(rank.type);\n // if (type === 'internalEdge') {\n // edges.push(rank);\n // }\n // }\n // while (vertices.length > 1) {\n // const vertex1: IVertex = vertices[0];\n // const parentset1: string[] = this.selectIds(vertex1.connectsAsTarget, true);\n // const childset1: string[] = this.selectIds(vertex1.connectsAsSource, false);\n // while (vertices.length > 1) {\n // const vertex2: IVertex = vertices[1];\n // const parentset2: string[] = this.selectIds(vertex2.connectsAsTarget, true);\n // const childset2: string[] = this.selectIds(vertex2.connectsAsSource, false);\n // const parentequals: boolean = this.compareLists(parentset1, parentset2);\n // const childequals: boolean = this.compareLists(childset1, childset2);\n // if (parentequals && childequals) {\n // this.updateMutualSharing(vertices[0], vertex2.id);\n // this.updateMutualSharing(vertices[1], vertex1.id);\n // vertices.splice(1, 1);\n // continue;\n // }\n // break;\n // }\n // vertices.splice(0, 1);\n // }\n // while (edges.length > 1) {\n // const internalEdge: IVertex = edges[0];\n // const parentset: IVertex = internalEdge.source;\n // const childset: IVertex = internalEdge.target;\n // if (parentset.identicalSibiling != null) {\n // const groupedges: IVertex[] = [];\n // for (let i: number = 0; i < edges.length; i++) {\n // const edge: IVertex = edges[parseInt(i.toString(), 10)];\n // if (edge.target === childset) {\n // groupedges.push(edge);\n // }\n // }\n // for (let i: number = 0; i < groupedges.length; i++) {\n // const internalEdgese: IVertex = groupedges[parseInt(i.toString(), 10)];\n // if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) {\n // internalEdgese.source.identicalSibiling = null;\n // }\n // }\n // internalEdge.source.identicalSibiling = null;\n // }\n // edges.splice(0, 1);\n // }\n // }\n //}\n //private getType(type: string): string {\n // if (type === 'internalVertex') {\n // return 'internalVertex';\n // } else {\n // return 'internalEdge';\n // }\n //}\n //private selectIds(node: IEdge[], source: boolean): string[] {\n // const returnIds: string[] = [];\n // for (let i: number = 0; i < node.length; i++) {\n // const connector: IEdge = node[parseInt(i.toString(), 10)];\n // if (source) {\n // {\n // returnIds.push(connector.source.id);\n // }\n // } else {\n // returnIds.push(connector.target.id);\n // }\n // }\n // return returnIds;\n //}\n //private compareLists(list1: string[], list2: string[]): boolean {\n // const newList1: string[] = list1.slice();\n // const newList2: string[] = list2.slice();\n // if (newList1.length === newList2.length) {\n // if (newList1.length === 0) {\n // return true;\n // } else {\n // let isSame: boolean = true;\n // for (let i: number = 0; i < newList2.length; i++) {\n // const o: string = newList2[parseInt(i.toString(), 10)];\n // // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement.\n // if (newList1.indexOf(o) === -1)\n // {\n // isSame = false;\n // break;\n // }\n // }\n // return isSame;\n // }\n // }\n // return false;\n //}\n //private updateMutualSharing(cell: IVertex, id: string): void {\n // if (cell.identicalSibiling != null) {\n // cell.identicalSibiling.push(id);\n // } else {\n // cell.identicalSibiling = [];\n // cell.identicalSibiling.push(id);\n // }\n //}\n //private matrixCellGroup(options: MatrixCellGroupObject): MatrixCellGroupObject {\n // options.level = options.level;\n // options.parents = options.parents;\n // options.children = options.children;\n // options.visitedChildren = options.visitedChildren;\n // options.visitedParents = options.visitedParents;\n // options.ignoredChildren = options.ignoredChildren;\n // options.cells = options.cells;\n // options.offset = options.offset;\n // options.initialOffset = options.initialOffset;\n // return options;\n //}\n LineDistribution.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n LineDistribution.prototype.containsValue = function (list, keyValue) {\n for (var i = 0; i < list.length; i++) {\n if (list[parseInt(i.toString(), 10)] === keyValue) {\n return true;\n }\n }\n return false;\n };\n return LineDistribution;\n}());\nexport { LineDistribution };\n///** @private */\n//interface ConnectsAsSourceObject {\n// id: string[];\n// source: ConnectsAsSourceObject;\n// target: ConnectsAsSourceObject;\n// temp: number[];\n// x: number[];\n// y: number[];\n//}\n","import { DiagramAction } from '../enum/enum';\nimport { Rect } from '../primitives/rect';\nimport { BezierSegment, OrthogonalSegment } from '../objects/connector';\nimport { getFunction } from '../utility/base-util';\nimport { Point } from '../primitives/point';\nimport { updateLayoutValue } from '../utility/diagram-util';\n/**\n * Hierarchical Tree and Organizational Chart\n */\nvar HierarchicalTree = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function HierarchicalTree() {\n /**\n * Defines the layout animation\n *\n */\n this.isAnimation = false;\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n HierarchicalTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n HierarchicalTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'OrganizationalChart';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewport\n * @param uniqueId\n * @param action\n * @private\n */\n HierarchicalTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport, uniqueId, action) {\n var layout = {\n type: layoutProp.type,\n connectionPointOrigin: layoutProp.connectionPointOrigin,\n nameTable: nameTable, anchorX: 0, anchorY: 0,\n firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {},\n orientation: layoutProp.orientation,\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, getLayoutInfo: getFunction(layoutProp.getLayoutInfo),\n layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin,\n bounds: layoutProp.bounds, objects: [], root: layoutProp.root\n };\n this.doLayout(layout, nodes, viewport, uniqueId, action);\n return layout;\n };\n HierarchicalTree.prototype.doLayout = function (layout, nodes, viewport, uniqueId, action) {\n var node;\n var i;\n var layoutInfo = {};\n var shape;\n var rootNodes = [];\n if (layout.nameTable[layout.root]) {\n layout.firstLevelNodes.push(layout.nameTable[layout.root]);\n }\n for (i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node.excludeFromLayout) {\n layoutInfo = layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node);\n layoutInfo.tree.hasSubTree = false;\n if (!layout.nameTable[layout.root]) {\n if (!node.inEdges || !node.inEdges.length) {\n var parentId = 'parentId';\n var processId = 'processId';\n if (!node[\"\" + parentId] && !node[\"\" + processId]) {\n rootNodes.push(node);\n }\n if (node.data && String(node.data[\"\" + uniqueId]) === layout.root) {\n layout.firstLevelNodes.push(node);\n }\n }\n }\n }\n }\n if (layout.firstLevelNodes.length === 0) {\n layout.firstLevelNodes = rootNodes;\n }\n //Update relationship(parent and children)\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n node = layout.firstLevelNodes[parseInt(i.toString(), 10)];\n //let check: boolean;\n this.updateEdges(layout, node, 1, action, nodes);\n }\n if (layout.firstLevelNodes.length > 0) {\n layout.rootNode = layout.firstLevelNodes[0];\n var x = 0;\n var y = 0;\n var minX = void 0;\n var maxY = void 0;\n var maxX = void 0;\n var minY = void 0;\n //let j: number;\n var bounds = void 0;\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n bounds = this.updateTree(layout, x, y, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0, layout.firstLevelNodes[i - 1]);\n var rootInfo = layout.graphNodes[layout.firstLevelNodes[parseInt(i.toString(), 10)].id];\n bounds.y = Math.min(bounds.y, rootInfo.y);\n bounds.x = Math.min(bounds.x, rootInfo.x);\n if (layout.orientation.indexOf('Left') !== -1) {\n y = bounds.right + layout.horizontalSpacing;\n }\n else {\n x = bounds.right + layout.horizontalSpacing;\n }\n if (i === 0) {\n minX = bounds.x;\n minY = bounds.y;\n maxX = bounds.right;\n maxY = bounds.bottom;\n }\n else {\n minX = Math.min(minX, bounds.x);\n minY = Math.min(minY, bounds.y);\n maxX = Math.max(maxX, bounds.right);\n maxY = Math.max(maxY, bounds.bottom);\n }\n }\n this.updateAnchor(layout, { x: minX, y: minY, right: maxX, bottom: maxY }, viewport);\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n this.updateNodes(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 0);\n }\n for (i = 0; i < layout.firstLevelNodes.length; i++) {\n this.updateConnectors(layout, layout.firstLevelNodes[parseInt(i.toString(), 10)], 1);\n }\n }\n };\n HierarchicalTree.prototype.getBounds = function (node) {\n var x = node.offsetX - node.actualSize.width * node.pivot.x;\n var y = node.offsetY - node.actualSize.height * node.pivot.y;\n return new Rect(x, y, node.actualSize.width, node.actualSize.height);\n };\n HierarchicalTree.prototype.updateTree = function (layout, x, y, shape, level, prev, dontupdate) {\n //let dimensions: Dimensions;\n var info = {};\n var lev;\n var obj;\n //let hasChild: number;\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n info = layout.graphNodes[shape.id];\n var firstChild;\n //Set maximum level of layout\n layout.maxLevel = Math.max(layout.maxLevel, level);\n lev = level;\n var hasChild = this.hasChild(layout, shape);\n if (!hasChild && !info.tree.assistants.length) {\n //update leaf nodes\n shape.treeBounds = this.updateLeafNode(layout, shape, prev, dimensions, level, dontupdate);\n return shape.treeBounds;\n }\n else {\n var treeBounds = void 0;\n var shapeBounds = void 0;\n var levelBounds = void 0;\n var d = void 0;\n var asstBounds = void 0;\n var space = void 0;\n var bottom = void 0;\n bottom = dimensions.y + dimensions.height + layout.verticalSpacing;\n if (info.tree.assistants.length) {\n //Vertically place assistants\n obj = this.setDepthSpaceForAssitants(layout, shape, bottom, dimensions.height, level, layout.verticalSpacing);\n lev = obj.level;\n bottom = obj.bottom;\n }\n if (!info.tree.assistants.length && info.tree.orientation !== 'Horizontal') {\n bottom = dimensions.y + dimensions.height + layout.verticalSpacing / 2;\n }\n if (info.tree.children.length) {\n if (info.tree.orientation === 'Horizontal' && (info.tree.type !== 'Balanced' || info.tree.children.length === 1)) {\n treeBounds = this.updateHorizontalTree(layout, shape, prev, dimensions.x, bottom, lev);\n }\n else if (info.tree.type === 'Balanced') {\n treeBounds = this.updateHorizontalTreeWithMultipleRows(layout, shape, prev, dimensions.x, bottom, lev);\n }\n else {\n treeBounds = this.updateVerticalTree(layout, shape, dimensions.x, bottom, lev, dontupdate);\n }\n }\n if (!(info.y && info.y > dimensions.y)) {\n info.y = dimensions.y;\n }\n // 919520: Leaf node position does not align correctly for subTreeAlignment 'Center'\n if (info.mid !== undefined) {\n x = info.mid;\n }\n if (info.tree.assistants.length) {\n //Set breadth space for assistants\n space = x !== undefined ? x : dimensions.x;\n asstBounds = this.setBreadthSpaceForAssistants(layout, shape, dimensions, space, bottom, level);\n if (!hasChild) {\n levelBounds = treeBounds = asstBounds;\n x = (levelBounds.x + levelBounds.right) / 2 - dimensions.width / 2;\n treeBounds = levelBounds;\n }\n d = asstBounds ? asstBounds.canMoveBy : undefined;\n }\n info.x = x;\n if (!info.translate) {\n info.treeWidth = treeBounds.right - treeBounds.x;\n }\n {\n shapeBounds = { x: x, y: dimensions.y, right: x + dimensions.width, bottom: dimensions.y + dimensions.height };\n }\n var translateInfo = {\n layout: layout, shape: shape, shapeBounds: shapeBounds, treeBounds: treeBounds,\n dim: dimensions, level: level\n };\n this.translateSubTree(translateInfo, d, prev !== undefined, dontupdate);\n if (info.firstChild && typeof info.firstChild !== 'string') {\n info.firstChild.x += info.subTreeTranslation;\n }\n shape.treeBounds = treeBounds;\n return treeBounds;\n }\n };\n HierarchicalTree.prototype.updateLeafNode = function (layout, shape, prev, dimensions, level, dontupdate) {\n //let bounds: Bounds;\n var info = layout.graphNodes[shape.id];\n info.x = dimensions.x;\n if (!(info.y && info.y > dimensions.y)) {\n info.y = dimensions.y;\n info.maxLevel = Math.max(level, info.maxLevel || 0);\n }\n // eslint-disable-next-line max-len\n var bounds = { x: dimensions.x, y: dimensions.y, right: dimensions.x + dimensions.width, bottom: dimensions.y + dimensions.height };\n info.maxLevel = Math.max(info.maxLevel || 0, level);\n var translateInfo = {\n layout: layout, shape: shape, shapeBounds: bounds, treeBounds: bounds,\n dim: dimensions, level: level\n };\n this.translateSubTree(translateInfo, undefined, prev !== undefined, dontupdate);\n return { x: info.x, y: info.y, right: info.x + dimensions.width, bottom: info.y + dimensions.height };\n };\n HierarchicalTree.prototype.setUpLayoutInfo = function (layout, item) {\n var info = {};\n info.subTreeTranslation = 0;\n if (layout.type === 'OrganizationalChart') {\n info.tree = { orientation: 'Vertical', type: 'Alternate', offset: 20, enableRouting: true };\n }\n else {\n info.tree = { orientation: 'Horizontal', type: 'Center', enableRouting: true };\n }\n info.tree.children = [];\n info.tree.assistants = [];\n info.tree.level = 0;\n info.translate = true;\n return info;\n };\n HierarchicalTree.prototype.translateSubTree = function (translateInfo, asstDif, translate, dontupdate) {\n var layout = translateInfo.layout;\n var shape = translateInfo.shape;\n var shapeBounds = translateInfo.shapeBounds;\n var treeBounds = translateInfo.treeBounds;\n var level = translateInfo.level;\n var dim = translateInfo.dim;\n var info = layout.graphNodes[shape.id];\n var firstChild = layout.nameTable[info.firstChild ? info.firstChild.child : info.tree.children[0]];\n var firstChildInfo = firstChild ? layout.graphNodes[firstChild.id] : null;\n var hasChild = this.hasChild(layout, shape);\n var intersect = this.findIntersectingLevels(layout, shapeBounds, level, info.actualLevel);\n var treeIntersect = this.findIntersectingLevels(layout, treeBounds, level, info.actualLevel);\n var levelBounds = [];\n //const diff: number;\n if (intersect.length && info.translate) {\n info.intersect = intersect;\n this.spaceLeftFromPrevSubTree(layout, shape, shapeBounds);\n info.canMoveBy = info.diff;\n if (asstDif !== undefined) {\n info.canMoveBy = Math.min(asstDif, info.canMoveBy);\n }\n if (firstChild && firstChildInfo.canMoveBy !== undefined) {\n if (firstChildInfo.canMoveBy >= info.canMoveBy) {\n info.translated = true;\n }\n info.canMoveBy = Math.min(info.canMoveBy, firstChildInfo.canMoveBy);\n }\n if (translate) {\n info.x -= info.canMoveBy;\n info.subTreeTranslation -= info.canMoveBy;\n if (hasChild) {\n this.shiftSubordinates(layout, treeIntersect, info.canMoveBy);\n treeBounds.x = Math.min(treeBounds.x, info.x);\n treeBounds.right = Math.max(treeBounds.right, info.x + dim.width);\n treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height);\n treeBounds.x -= info.canMoveBy;\n treeBounds.right -= info.canMoveBy;\n }\n if (firstChild && firstChildInfo.canMoveBy > info.canMoveBy) {\n info.canMoveBy = firstChildInfo.canMoveBy - info.canMoveBy;\n }\n else if (firstChild && info.canMoveBy !== undefined) {\n info.canMoveBy = 0;\n }\n }\n }\n else {\n if (hasChild) {\n treeBounds.x = Math.min(treeBounds.x, shapeBounds.x);\n treeBounds.right = Math.max(treeBounds.right, shapeBounds.x + dim.width);\n treeBounds.bottom = Math.max(treeBounds.bottom, info.y + dim.height);\n }\n if (!info.translate) {\n info.canMoveBy = 0;\n info.subTreeTranslation = 0;\n }\n }\n if (!dontupdate) {\n shapeBounds = { x: info.x, y: dim.y, right: info.x + dim.width, bottom: dim.y + dim.height };\n levelBounds.push({ rBounds: shapeBounds });\n this.updateRearBounds(layout, shape, levelBounds, level);\n }\n };\n HierarchicalTree.prototype.updateRearBounds = function (layout, shape, levelBounds, level, intersect) {\n var bnds;\n var index;\n var isLastLeaf = true;\n var i;\n var info = {};\n //let firstLevel: Bounds;\n //let lastLevel: Bounds;\n var bottom;\n if (shape) {\n info = layout.graphNodes[shape.id];\n intersect = info.intersect;\n isLastLeaf = !info.tree.children.length && !info.tree.assistants.length;\n }\n var firstLevel = levelBounds[0].rBounds;\n var lastLevel = levelBounds[levelBounds.length - 1].rBounds;\n if (intersect && intersect.length) {\n bnds = layout.levels[intersect[0]].rBounds;\n bottom = bnds.bottom;\n if (bnds.y < firstLevel.y) {\n bnds.bottom = firstLevel.y;\n levelBounds.splice(0, 0, { rBounds: bnds });\n }\n if (bottom > lastLevel.bottom) {\n levelBounds.push({ rBounds: { x: bnds.x, right: bnds.right, y: firstLevel.bottom, bottom: bottom } });\n }\n else {\n bnds = layout.levels[intersect[intersect.length - 1]].rBounds;\n if (isLastLeaf && bnds.bottom > lastLevel.bottom) {\n bnds.y = lastLevel.bottom;\n levelBounds.push({ rBounds: bnds });\n }\n }\n index = intersect[0];\n for (i = levelBounds.length - 1; i >= 0; i--) {\n layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]);\n }\n index += levelBounds.length;\n layout.levels.splice(index, intersect.length);\n }\n else {\n index = this.findLevel(layout, levelBounds[levelBounds.length - 1].rBounds, level);\n for (i = levelBounds.length - 1; i >= 0; i--) {\n layout.levels.splice(index, 0, levelBounds[parseInt(i.toString(), 10)]);\n }\n }\n };\n HierarchicalTree.prototype.shiftSubordinates = function (layout, intersect, diff) {\n var i;\n //Shift the sublevels by the distance diff\n if (diff !== 0) {\n for (i = 0; i < intersect.length; i++) {\n if (layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds) {\n layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.x -= diff;\n layout.levels[intersect[parseInt(i.toString(), 10)]].rBounds.right -= diff;\n }\n }\n }\n };\n HierarchicalTree.prototype.setDepthSpaceForAssitants = function (layout, shape, bottom, height, lev, vSpace) {\n var info = layout.graphNodes[shape.id];\n var asst = {};\n var asstHeight;\n var i;\n var asstElement;\n var max;\n max = bottom;\n //Vertically place the assistants as alternate layout(alternatively at both right and left sides of parent)\n for (i = 0; i < info.tree.assistants.length; i++) {\n asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]];\n if (asst) {\n asst.tree.children = asst.tree.assistants = [];\n asst.y = bottom;\n asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n asstHeight = asstElement.actualSize.height;\n if (layout.orientation.indexOf('Left') !== -1) {\n asstHeight = asstElement.actualSize.width;\n }\n max = bottom + asstHeight + vSpace / 2;\n layout.maxLevel = lev + 1;\n if (i % 2 === 1 && i !== info.tree.assistants.length - 1) {\n bottom = max;\n lev++;\n }\n }\n }\n return { level: layout.maxLevel, bottom: bottom + asstHeight + vSpace };\n };\n HierarchicalTree.prototype.setBreadthSpaceForAssistants = function (layout, shape, dim, space, bottom, level) {\n var asst = {};\n var asstWidth;\n //let prevBounds: number;\n var bounds;\n var asstElement;\n var i;\n var info = layout.graphNodes[shape.id];\n //let max: number = bottom;\n var lev = level;\n var left;\n var diff;\n var intersect;\n var levelBounds = { x: 0, y: 0, right: 0, bottom: 0 };\n for (i = 0; i < info.tree.assistants.length; i++) {\n asst = layout.graphNodes[info.tree.assistants[parseInt(i.toString(), 10)]];\n //Arrange assistants at both left and right sides of parent(like alternate layout)\n //Check - By default, distance to be left between parent and child nodes is assumed as 20.\n //It can be modified/customized later.\n if (asst) {\n asstElement = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n asstWidth = asstElement.actualSize.width;\n if (layout.orientation.indexOf('Left') !== -1) {\n asstWidth = asstElement.actualSize.height;\n }\n if (i % 2 === 0) {\n left = space + dim.width / 2 - 20 - asstWidth;\n }\n else {\n left = space + dim.width / 2 + 20;\n }\n //Check - What will happen if update leaf node is called? Since assistants don't have children\n bounds = this.updateTree(layout, left, asst.y, layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]], lev + 1);\n if (!this.hasChild(layout, shape)) {\n if (i === 0) {\n levelBounds = bounds;\n }\n else {\n this.uniteRects(levelBounds, bounds);\n }\n }\n if (i % 2 === 0 && asst.prevBounds) {\n if (diff === undefined) {\n diff = asst.canMoveBy;\n }\n else {\n diff = Math.min(diff, asst.canMoveBy);\n }\n }\n if (i % 2 === 1 || i === info.tree.assistants.length - 1) {\n intersect = this.findIntersectingLevels(layout, bounds, lev + 1);\n //Update rightmost positions of known layout levels\n this.updateRearBounds(layout, null, [{ rBounds: bounds }], lev + 1, intersect);\n lev++;\n }\n }\n }\n if (levelBounds) {\n levelBounds.canMoveBy = diff;\n }\n return levelBounds;\n };\n HierarchicalTree.prototype.getDimensions = function (layout, shape, x, y, level) {\n var width;\n width = shape.actualSize.width;\n var height;\n height = shape.actualSize.height;\n if (layout.orientation.indexOf('Left') !== -1) {\n if (!level) {\n //let temp: number;\n var temp = x;\n x = y;\n y = temp;\n }\n height = shape.actualSize.width;\n width = shape.actualSize.height;\n }\n return { x: x, y: y, width: width, height: height };\n };\n HierarchicalTree.prototype.hasChild = function (layout, shape) {\n //Check whether the node has children\n var shape1 = layout.graphNodes[shape.id];\n return shape1 ? shape1.tree.children && shape1.tree.children.length : 0;\n };\n HierarchicalTree.prototype.updateHorizontalTree = function (layout, shape, prev, x, y, level) {\n //Get dimensions with respect to layout orientations\n //let dimensions: Dimensions;\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = {};\n info = layout.graphNodes[shape.id];\n var side = info.tree.type;\n //let lev: number;\n var lev = level;\n var right = 0;\n right = x;\n var bottom = y;\n var width;\n var height;\n var child;\n var childBounds;\n var childWidth;\n var childHeight;\n //let prevBounds: Bounds;\n var bounds;\n var actBounds;\n var maxLevel;\n var translateSibilingsBy;\n var canMoveBy;\n var oldActBounds;\n var i;\n var childInfo;\n var firstChildInfo;\n var prevLayoutLevels = layout.levels.slice(0, layout.levels.length);\n if (this.hasChild(layout, shape)) {\n //let h: boolean;\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n for (i = 0; i < info.tree.children.length; i++) {\n child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]];\n width = child.actualSize.width;\n height = child.actualSize.height;\n childWidth = h ? height : width;\n childHeight = h ? width : height;\n var prevBounds = layout.levels[lev + 1] ? layout.levels[lev + 1].rBounds : null;\n //Update sub tree\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[info.tree.children[i - 1]]);\n childInfo = layout.graphNodes[child.id];\n info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0);\n actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight };\n if (i === 0) {\n //Compare with previous(right most) subtree\n bounds = {\n x: Math.min(childInfo.x, childBounds.x), y: Math.min(childInfo.y, childBounds.y),\n right: childBounds.right, bottom: childBounds.bottom\n };\n firstChildInfo = childInfo;\n }\n if (!oldActBounds) {\n oldActBounds = actBounds;\n }\n else {\n oldActBounds.x = actBounds.x;\n oldActBounds.y = actBounds.y;\n if (actBounds.right > oldActBounds.right) {\n oldActBounds.right = actBounds.right;\n }\n oldActBounds.bottom = actBounds.bottom;\n //oldActBounds = actBounds;\n }\n //Compare with previous subtree if level of the child is greater than the level of previous sub tree\n //Check - what will happen if level of second child is greater than current child\n if (i === 0) {\n info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id };\n }\n if (this.hasChild(layout, child)) {\n if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) {\n if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) {\n canMoveBy = info.firstChild.canMoveBy;\n childInfo.canMoveBy = canMoveBy;\n layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy;\n info.firstChild.canMoveBy = canMoveBy;\n }\n var canMoveValue = canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy;\n info.firstChild = { x: childInfo.firstChild.x, canMoveBy: canMoveValue, child: child.id };\n }\n else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) {\n info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy;\n }\n }\n maxLevel = maxLevel ? Math.max(childInfo.maxLevel, maxLevel) : childInfo.maxLevel;\n this.uniteRects(bounds, childBounds);\n if (i !== 0 && !this.hasChild(layout, child) && childInfo.subTreeTranslation < 0) {\n right = childBounds.right - childInfo.subTreeTranslation + layout.horizontalSpacing;\n }\n else {\n right = childBounds.right + layout.horizontalSpacing;\n }\n }\n if (!isNaN(translateSibilingsBy)) {\n firstChildInfo.canMoveBy = translateSibilingsBy;\n }\n info.mid = (firstChildInfo.x + oldActBounds.right) / 2 - dimensions.width / 2;\n //Set parent based on the chart type\n if (side === 'Left') {\n info.mid = actBounds.right - dimensions.width;\n }\n else if (side === 'Right') {\n info.mid = x;\n }\n }\n return bounds;\n };\n /* eslint-disable */\n HierarchicalTree.prototype.updateHorizontalTreeWithMultipleRows = function (layout, shape, prev, x, y, level) {\n //declarations\n var child;\n var childInfo;\n var childBounds;\n var childWidth;\n var childHeight;\n var firstChildInfo;\n var maxLevel;\n var bounds;\n var rowBounds;\n var width;\n var height;\n var diff;\n var translateSibilingsBy;\n var fchild;\n var maxRowWidth;\n var j;\n var i;\n var k;\n var max;\n var leftCenter;\n var rightCenter;\n //Get dimensions with respect to layout orientations\n var dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = layout.graphNodes[shape.id];\n var side = info.tree.type;\n var lev = level;\n var right = x;\n var bottom = y;\n var prevLayoutLevels = layout.levels.slice(0, layout.levels.length);\n var minTranslation = 0;\n if (this.hasChild(layout, shape)) {\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n var align = void 0;\n var rows = this.splitChildrenInRows(layout, shape);\n var unique = info.tree.children.length === 5 && rows[0].length === 3;\n var leftTree = [];\n var rightTree = [];\n if (!unique) {\n this.splitRows(rows, leftTree, rightTree);\n }\n else {\n rightTree = rows;\n }\n var treeInfo = { leftTree: leftTree, rows: rows, rightTree: rightTree, dimensions: dimensions };\n var rightMost = this.updateLeftTree(layout, treeInfo, shape, x, bottom, lev);\n bounds = treeInfo.bounds;\n var rightX = void 0;\n var center = (rightMost || 0) + (rightMost !== undefined ? (layout.horizontalSpacing / 2) : 0);\n if (rightMost !== undefined) {\n info.mid = center - dimensions.width / 2;\n rightX = rightMost + layout.horizontalSpacing;\n }\n bottom = y;\n var rightBounds = void 0;\n rightBounds = [];\n for (i = 0; i < rightTree.length; i++) {\n if (rows[i].length % 2 === 1 && i === rightTree.length - 1 || unique) {\n right = x;\n }\n else {\n right = rightX || x;\n }\n if (i !== 0) {\n bottom = rightBounds[i - 1].bottom + layout.verticalSpacing;\n }\n for (j = 0; j < rightTree[i].length; j++) {\n child = layout.nameTable[rightTree[i][j]];\n width = child.actualSize.width;\n height = child.actualSize.height;\n childWidth = h ? height : width;\n childHeight = h ? width : height;\n //Update sub tree\n childInfo = layout.graphNodes[child.id];\n childInfo.actualLevel = lev + 1 + i;\n if (j === 0 && leftTree[i] && leftTree[i].length) {\n childInfo.translate = false;\n }\n if (unique && i === 1) {\n if (j === 0 && leftCenter + childWidth + layout.horizontalSpacing <= rightCenter) {\n align = true;\n right = leftCenter - childWidth / 2;\n }\n if (align && j === 1) {\n right = rightCenter - childWidth / 2;\n }\n }\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[rightTree[i][j - 1]]);\n if (unique && j <= 2 && i === 0) {\n if (j === 1) {\n leftCenter = childBounds.x - layout.horizontalSpacing / 2;\n rightCenter = childBounds.x + childWidth + layout.horizontalSpacing / 2;\n }\n }\n if (j === 0) {\n rightBounds[i] = { x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom };\n }\n else {\n this.uniteRects(rightBounds[i], childBounds);\n }\n if (!bounds) {\n bounds = {\n x: rightBounds[i].x, y: rightBounds[i].y, right: rightBounds[i].right,\n bottom: rightBounds[i].bottom\n };\n }\n this.uniteRects(bounds, rightBounds[i]);\n right = childBounds.right + layout.horizontalSpacing;\n if (!info.firstChild || ((i === rightTree.length - 1 && rows[i].length % 2 === 1) || unique)\n && j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) {\n minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0);\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n treeInfo.leftCenter = leftCenter;\n treeInfo.rightCenter = rightCenter;\n treeInfo.align = align;\n treeInfo.level = lev;\n treeInfo.rightBounds = rightBounds;\n this.alignRowsToCenter(layout, i, shape, treeInfo, rightX);\n }\n }\n }\n return bounds;\n };\n /* eslint-enable */\n HierarchicalTree.prototype.updateLeftTree = function (layout, treeInfo, shape, x, bottom, lev) {\n var leftTree = treeInfo.leftTree;\n var info = layout.graphNodes[shape.id];\n var right;\n var leftBounds = [];\n var minTranslation;\n var rightMost;\n var childBounds;\n var bounds;\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n //Arrange left side\n for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) {\n right = x;\n if (leftBounds[i - 1]) {\n bottom = leftBounds[i - 1].bottom + layout.verticalSpacing;\n }\n for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) {\n var child = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n var childWidth = h ? child.actualSize.height : child.actualSize.width;\n var childHeight = h ? child.actualSize.width : child.actualSize.height;\n //Update sub tree\n var childInfo = layout.graphNodes[child.id];\n childInfo.actualLevel = lev + 1 + i;\n childBounds = this.updateTree(layout, right, bottom, child, lev + 1, layout.nameTable[leftTree[parseInt(i.toString(), 10)][j - 1]]);\n if (j === 0) {\n leftBounds[parseInt(i.toString(), 10)] = {\n x: childBounds.x, y: childBounds.y, right: childBounds.right, bottom: childBounds.bottom\n };\n }\n else {\n this.uniteRects(leftBounds[parseInt(i.toString(), 10)], childBounds);\n }\n if (i === 0 && j === 0) {\n minTranslation = childInfo.canMoveBy;\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n else if (j === 0 && childInfo.canMoveBy !== undefined && minTranslation > childInfo.canMoveBy) {\n minTranslation = Math.min(minTranslation, childInfo.canMoveBy || 0);\n info.firstChild = { x: childInfo.x, child: child.id, canMoveBy: childInfo.canMoveBy };\n }\n right = childBounds.right + layout.horizontalSpacing;\n }\n if (i === 0) {\n rightMost = leftBounds[parseInt(i.toString(), 10)].right;\n }\n else {\n rightMost = Math.max(rightMost, leftBounds[parseInt(i.toString(), 10)].right);\n }\n }\n //Translate to same positions\n for (var i = 0; i < leftTree.length && leftTree[parseInt(i.toString(), 10)].length; i++) {\n if (rightMost !== leftBounds[parseInt(i.toString(), 10)].right) {\n var diff = rightMost - leftBounds[parseInt(i.toString(), 10)].right;\n for (var j = 0; j < leftTree[parseInt(i.toString(), 10)].length; j++) {\n var element = layout.nameTable[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n var elementInfo = layout.graphNodes[leftTree[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]];\n elementInfo.x += diff;\n }\n //leftBounds[i].x += diff;\n //leftBounds[i].right += diff;\n }\n if (i === 0) {\n bounds = { x: leftBounds[0].x, y: leftBounds[0].y, right: leftBounds[0].right, bottom: leftBounds[0].bottom };\n }\n else {\n this.uniteRects(bounds, leftBounds[parseInt(i.toString(), 10)]);\n }\n }\n treeInfo.bounds = bounds;\n return rightMost;\n };\n HierarchicalTree.prototype.alignRowsToCenter = function (layout, i, shape, treeInfo, rightX) {\n var max;\n var centered;\n var diff;\n var info = layout.graphNodes[shape.id];\n var rows = treeInfo.rows;\n var rightTree = treeInfo.rightTree;\n var leftCenter = treeInfo.leftCenter;\n var rightCenter = treeInfo.rightCenter;\n var align = treeInfo.align;\n var rightBounds = treeInfo.rightBounds;\n var dimensions = treeInfo.dimensions;\n var lev = treeInfo.level;\n var unique = info.tree.children.length === 5 && rows[0].length === 3;\n if (unique && i === 1) {\n max = (rightBounds[0].right - rightBounds[0].x) >= (rightBounds[1].right - rightBounds[1].x) ? 0 : 1;\n }\n if (i === rows.length - 1) {\n if (rows[parseInt(i.toString(), 10)].length % 2 === 1 || unique && i === 1) {\n centered = rightTree[parseInt(i.toString(), 10)][Math.floor(rightTree[parseInt(i.toString(), 10)].length / 2)];\n //let centerObjct: INode;\n var centerObjct = layout.nameTable[\"\" + centered];\n //let childDimension: Dimensions;\n var centeredX = layout.graphNodes[\"\" + centered].x;\n var centeredY = layout.graphNodes[\"\" + centered].y;\n var childDimension = this.getDimensions(layout, centerObjct, centeredX, centeredY, lev + 1);\n diff = undefined;\n if (!align && unique) {\n if (max === 1) {\n i = 0;\n }\n diff = (rightBounds[parseInt(max.toString(), 10)].x + rightBounds[parseInt(max.toString(), 10)].right) / 2\n - (rightBounds[parseInt(i.toString(), 10)].x\n + rightBounds[parseInt(i.toString(), 10)].right) / 2;\n if (i === 0) {\n info.mid += diff;\n }\n }\n else if (!unique && rightX !== undefined) {\n diff = rightX - layout.horizontalSpacing / 2 - (centeredX + childDimension.width / 2);\n }\n if (diff !== undefined) {\n this.updateRearBoundsOfTree(layout, rightTree[parseInt(i.toString(), 10)], diff, dimensions);\n }\n if (unique) {\n info.mid = (rightCenter + leftCenter) / 2 + (i === 0 ? diff : 0) - dimensions.width / 2;\n }\n if (info.mid === undefined && layout.graphNodes[\"\" + centered]) {\n info.mid = centeredX;\n }\n align = false;\n i++;\n }\n }\n };\n HierarchicalTree.prototype.updateRearBoundsOfTree = function (layout, rightTree, diff, dimensions) {\n for (var j = 0; j < rightTree.length; j++) {\n var childInfo = layout.graphNodes[rightTree[parseInt(j.toString(), 10)]];\n //let child: INode = layout.nameTable[rightTree[j]];\n childInfo.x += diff;\n childInfo.canMoveBy += diff;\n if (j === rightTree.length - 1) {\n //removed child dimensions call calculation, since that is not used\n var childBnds = {\n x: childInfo.x, y: childInfo.y, right: childInfo.x +\n dimensions.width, bottom: childInfo.y + dimensions.height\n };\n var intersect = this.findIntersectingLevels(layout, childBnds, childInfo.actualLevel);\n this.updateRearBounds(layout, null, [{ rBounds: childBnds }], childInfo.actualLevel, intersect);\n }\n }\n };\n HierarchicalTree.prototype.splitRows = function (rows, leftTree, rightTree) {\n for (var i = 0; i < rows.length; i++) {\n leftTree[parseInt(i.toString(), 10)] = [];\n rightTree[parseInt(i.toString(), 10)] = [];\n var half = void 0;\n half = rows[parseInt(i.toString(), 10)].length;\n if (rows[parseInt(i.toString(), 10)].length % 2 !== 1) {\n half = Math.ceil(rows[parseInt(i.toString(), 10)].length / 2);\n for (var k = 0; k < half; k++) {\n leftTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)]);\n }\n }\n for (var j = leftTree[parseInt(i.toString(), 10)].length; j < rows[parseInt(i.toString(), 10)].length; j++) {\n rightTree[parseInt(i.toString(), 10)].push(rows[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]);\n }\n }\n };\n HierarchicalTree.prototype.updateVerticalTree = function (layout, shape, x, y, level, dontUpdate) {\n //declarations\n var child;\n var childInfo;\n var childBounds;\n var childWidth;\n var childHeight;\n var prevBounds;\n var bounds;\n var actBounds;\n var oddBounds;\n var evenBounds;\n //let dimensions: Dimensions = this.getDimensions(layout, shape, x, y, level);\n var info = layout.graphNodes[shape.id];\n var firstChild = layout.nameTable[info.tree.children[0]];\n var h = layout.orientation.indexOf('Left') !== -1 ? true : false;\n var factor = info.tree.type === 'Left' ? -1 : 0;\n var right = x;\n var bottom = y;\n var lev = level;\n var i;\n var intersect;\n var type;\n var levels = [];\n var oddLevels = [];\n var canMoveBy; //let diff: number;\n for (i = 0; i < info.tree.children.length; i++) {\n if (info.tree.type === 'Alternate') {\n //arrange at both left and right\n type = (i % 2 === 0 && info.tree.children.length > 2) ? 'Left' : 'Right';\n factor = (i % 2 === 0 && info.tree.children.length > 2) ? -1 : 0;\n }\n right = x + this.findOffset(layout, shape, info, type);\n child = layout.nameTable[info.tree.children[parseInt(i.toString(), 10)]];\n childWidth = h ? child.actualSize.height : child.actualSize.width;\n childHeight = h ? child.actualSize.width : child.actualSize.height;\n //Update sub tree\n childBounds = this.updateTree(layout, right + factor * childWidth, bottom, child, level + 1, undefined, true);\n childInfo = layout.graphNodes[child.id];\n actBounds = { x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth, bottom: childInfo.y + childHeight };\n if (i === 0) {\n this.uniteRects(childBounds, actBounds);\n bounds = childBounds;\n }\n else {\n this.uniteRects(bounds, childBounds);\n }\n //Check and adjust the space left from previous subtree/sibling\n if (childInfo.prevBounds && !(info.tree.type === 'Alternate' && i % 2 === 1 && info.tree.children.length > 2)) {\n canMoveBy = canMoveBy !== undefined ? Math.min(childInfo.canMoveBy, canMoveBy) : childInfo.canMoveBy;\n }\n //Max level of the subtree node\n info.maxLevel = Math.max(info.maxLevel || 0, childInfo.maxLevel || 0);\n if (!(info.tree.type === 'Alternate' && info.tree.children.length > 2 && i % 2 === 0)) {\n if (info.tree.type === 'Alternate' && info.tree.children.length > 2) {\n //alternate - arrange children with even index(0,2,4,6,..) at the next level\n bottom = Math.max(childBounds.bottom, prevBounds.bottom) + layout.verticalSpacing / 2;\n }\n else {\n // left/right - arrange next child at the nect level(bottom)\n bottom = childBounds.bottom + layout.verticalSpacing / 2;\n }\n level = info.maxLevel;\n levels.push({ rBounds: actBounds });\n if (!evenBounds) {\n evenBounds = {\n x: childInfo.x, y: childInfo.y, right: childInfo.x + childWidth,\n bottom: childInfo.y + childHeight\n };\n }\n else {\n this.uniteRects(evenBounds, actBounds);\n }\n if (childInfo.levelBounds) {\n levels = levels.concat(childInfo.levelBounds);\n }\n }\n else {\n if (i !== 0) {\n bottom = prevBounds.bottom + layout.verticalSpacing / 2;\n }\n oddLevels.push({ rBounds: actBounds });\n if (childInfo.levelBounds) {\n oddLevels = oddLevels.concat(childInfo.levelBounds);\n }\n }\n if (i === 0) {\n info.firstChild = { x: childInfo.x, canMoveBy: childInfo.canMoveBy, child: child.id };\n }\n if (this.hasChild(layout, child)) {\n if (!info.firstChild || info.firstChild.x >= childInfo.firstChild.x) {\n if (childInfo.firstChild && info.firstChild.canMoveBy < childInfo.canMoveBy) {\n var canMoveBy_1 = info.firstChild.canMoveBy;\n childInfo.canMoveBy = canMoveBy_1;\n layout.graphNodes[info.firstChild.child].canMoveBy = canMoveBy_1;\n info.firstChild.canMoveBy = canMoveBy_1;\n }\n info.firstChild = {\n x: childInfo.firstChild.x, canMoveBy: canMoveBy !== undefined ? canMoveBy : childInfo.canMoveBy,\n child: child.id\n };\n }\n else if (childInfo.firstChild && childInfo.translated && info.firstChild.canMoveBy > childInfo.canMoveBy) {\n info.firstChild.canMoveBy = layout.graphNodes[info.firstChild.child].canMoveBy = childInfo.canMoveBy;\n }\n }\n prevBounds = actBounds;\n }\n //To set level bounds(right most position of levels)\n if (!dontUpdate) {\n if (info.tree.type === 'Alternate' && info.tree.children.length > 2) {\n oddBounds = {\n x: oddLevels[0].rBounds.x, y: oddLevels[0].rBounds.y,\n right: oddLevels[oddLevels.length - 1].rBounds.right, bottom: oddLevels[oddLevels.length - 1].rBounds.bottom\n };\n intersect = this.findIntersectingLevels(layout, oddBounds, lev + 1);\n this.updateRearBounds(layout, null, oddLevels, lev + 1, intersect);\n }\n intersect = this.findIntersectingLevels(layout, evenBounds || bounds, lev + 1);\n this.updateRearBounds(layout, null, evenBounds ? levels : [{ rBounds: bounds }], lev + 1, intersect);\n }\n else {\n info.levelBounds = levels;\n }\n if (!isNaN(canMoveBy)) {\n layout.graphNodes[firstChild.id].canMoveBy = canMoveBy;\n }\n info.childBounds = bounds;\n info.mid = x;\n return bounds;\n };\n HierarchicalTree.prototype.splitChildrenInRows = function (layout, shape) {\n //let info: LayoutInfo;\n var info = layout.graphNodes[shape.id];\n var column;\n column = 4;\n var rows = [];\n var childNodes;\n childNodes = info.tree.children.length;\n var children = this.extend(info.tree.children);\n if (info.tree.rows) {\n //let count: number;\n var count = info.tree.children.length;\n //let columns: number;\n var columns = info.tree.rows;\n if (columns % 2 === 0) {\n column = columns;\n }\n else {\n column = columns - 1;\n }\n }\n else if (info.tree.children.length === 3 || info.tree.children.length === 4) {\n column = 2;\n }\n else if (info.tree.children.length === 5) {\n column = 3;\n }\n while (childNodes > 0) {\n rows[rows.length] = children.splice(0, column);\n childNodes -= column;\n if (childNodes < column) {\n if (childNodes % 2 === 0) {\n column = childNodes;\n }\n else if (childNodes !== 1) {\n column = childNodes - 1;\n }\n if (childNodes < column) {\n column = childNodes;\n }\n }\n }\n return rows;\n };\n HierarchicalTree.prototype.extend = function (temp) {\n var i;\n var dummy = [];\n for (i = 0; i < temp.length; i++) {\n dummy[parseInt(i.toString(), 10)] = temp[parseInt(i.toString(), 10)];\n }\n return dummy;\n };\n HierarchicalTree.prototype.findOffset = function (layout, shape, info, type) {\n var offset = 0;\n var space = (layout.orientation.indexOf('Left') !== -1) ? shape.actualSize.height :\n shape.actualSize.width;\n var treeType = type ? type : info.tree.type;\n offset = info.tree.offset || 20;\n if (info.tree.type === 'Alternate') {\n if (offset >= layout.horizontalSpacing) {\n offset = layout.horizontalSpacing / 2;\n }\n }\n switch (treeType) {\n case 'Left':\n offset = space / 2 - offset;\n break;\n case 'Right':\n offset = offset + space / 2;\n break;\n }\n return offset;\n };\n HierarchicalTree.prototype.uniteRects = function (rect1, rect2) {\n //Unite two rects\n rect1.x = Math.min(rect1.x, rect2.x);\n rect1.right = Math.max(rect1.right, rect2.right);\n rect1.bottom = Math.max(rect1.bottom, rect2.bottom);\n };\n HierarchicalTree.prototype.spaceLeftFromPrevSubTree = function (layout, shape, bounds) {\n //let info: LayoutInfo;\n var info = layout.graphNodes[shape.id];\n var dif;\n var prevBounds; //let intersect: number[]; let k: number;\n //let space: number;\n var space = layout.horizontalSpacing;\n //Find the minimum distance to move towards previous sub tree\n for (var k = 0; k < info.intersect.length; k++) {\n prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds;\n dif = bounds.x - (prevBounds.right + space);\n if (info.diff === undefined || dif < info.diff) {\n info.diff = dif;\n info.prevBounds = layout.levels[info.intersect[parseInt(k.toString(), 10)]].rBounds;\n }\n }\n };\n HierarchicalTree.prototype.findIntersectingLevels = function (layout, bounds, level, actualLevel) {\n //intersecting with exact Level\n //let bnds: Bounds;\n var bnds = { x: bounds.x, y: bounds.y, right: bounds.right, bottom: bounds.bottom };\n bnds.y -= layout.verticalSpacing / 2;\n bnds.bottom += layout.verticalSpacing / 2;\n //let intersectingLevels: number[];\n var intersectingLevels = [];\n var rBounds;\n var l;\n l = actualLevel !== undefined ? actualLevel : level;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n //Performance - We can consider only the intersecting levels\n do {\n if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y)\n || (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) ||\n bnds.y >= rBounds.y &&\n bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) {\n var index = 0;\n intersectingLevels.splice(index, 0, l);\n }\n else if (rBounds && rBounds.bottom < bnds.y) {\n break;\n }\n l--;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n } while (l >= 0);\n l = (actualLevel !== undefined ? actualLevel : level) + 1;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n do {\n if (rBounds && ((bnds.y < rBounds.y && bnds.bottom > rBounds.y) ||\n (bnds.y < rBounds.bottom && rBounds.bottom < bnds.bottom) ||\n bnds.y >= rBounds.y && bnds.bottom <= rBounds.bottom || bnds.y < rBounds.y && bnds.bottom > rBounds.bottom)) {\n intersectingLevels.push(l);\n }\n else if (rBounds && rBounds.y > bnds.bottom) {\n break;\n }\n l++;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n } while (l <= layout.levels.length);\n return intersectingLevels;\n };\n HierarchicalTree.prototype.findLevel = function (layout, bounds, level) {\n //let bnds: Bounds;\n var bnds = bounds;\n var l;\n l = 0;\n var rBounds;\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n while (l < layout.levels.length) {\n if (rBounds && bnds.bottom < rBounds.y) {\n return l;\n }\n else {\n l++;\n }\n rBounds = layout.levels[parseInt(l.toString(), 10)] ? layout.levels[parseInt(l.toString(), 10)].rBounds : null;\n }\n return l;\n };\n HierarchicalTree.prototype.getParentNode = function (layout, node) {\n //Return the first parent node\n return layout.nameTable[layout.nameTable[node.inEdges[0]].sourceID];\n };\n HierarchicalTree.prototype.updateEdges = function (layout, node, depth, action, nodes) {\n //let layoutInfo: LayoutInfo;\n var layoutInfo = layout.graphNodes[node.id];\n var j;\n if (node.outEdges && node.outEdges.length && (node.isExpanded || (action === DiagramAction.Render))) {\n for (j = 0; j < node.outEdges.length; j++) {\n //let edge: INode;\n var edge = layout.nameTable[layout.nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID];\n if (edge && !edge.excludeFromLayout) {\n if (layoutInfo.tree.children.indexOf(edge.id) === -1) {\n layoutInfo.tree.children.push(edge.id);\n }\n if (edge.outEdges && edge.outEdges.length && edge.isExpanded) {\n layoutInfo.tree.hasSubTree = true;\n }\n this.updateEdges(layout, edge, depth + 1, action, nodes);\n }\n }\n }\n //set level info\n layoutInfo.tree.level = depth;\n //By default, orientation is horizontal for nested trees\n if (layoutInfo.tree.hasSubTree) {\n layoutInfo.tree.orientation = 'Horizontal';\n layoutInfo.tree.type = 'Center';\n }\n //Customizing assistants and children collection\n //Performance-Instead of reading the method everytime, we can set once and can reuse that\n if ((layout.getLayoutInfo || layout.layoutInfo) && layout.type === 'OrganizationalChart') {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n layout.getLayoutInfo ?\n layout.getLayoutInfo(node, layoutInfo.tree) : updateLayoutValue(layoutInfo.tree, layout.layoutInfo, nodes, node);\n if (layoutInfo.tree.type === 'Balanced' && layoutInfo.tree.hasSubTree) {\n layoutInfo.tree.type = 'Center';\n layoutInfo.tree.orientation = 'Horizontal';\n }\n }\n if (layout.level && layoutInfo.tree.type !== 'Alternate' && depth >= layout.level) {\n layoutInfo.tree.hasSubTree = false;\n }\n };\n /* eslint-disable */\n HierarchicalTree.prototype.updateAnchor = function (layout, bounds, viewPort) {\n var node;\n var fixedNode;\n var width = 0;\n var height = 0;\n var mod = 0;\n var yValue = 0;\n var viewPortBounds = new Rect(0, 0, viewPort.x, viewPort.y); //let layoutBounds: Rect;\n var layoutBounds = layout.bounds ? layout.bounds : viewPortBounds;\n var orientation = layout.orientation;\n //Anchor based on fixed nodes\n if (layout.fixedNode) {\n fixedNode = layout.nameTable[layout.fixedNode];\n width = fixedNode.actualSize.width;\n height = fixedNode.actualSize.height;\n layout.anchorX = fixedNode.offsetX;\n layout.anchorY = fixedNode.offsetY;\n var pivot = fixedNode.pivot;\n layout.anchorX += layout.orientation === 'RightToLeft' ? width * pivot.x : -width * pivot.x;\n layout.anchorY += layout.orientation === 'BottomToTop' ? height * pivot.y : -height * pivot.y;\n node = fixedNode;\n mod = 0;\n while (node.inEdges.length) {\n node = this.getParentNode(layout, node);\n mod += layout.graphNodes[node.id].subTreeTranslation || 0;\n }\n if (layout.orientation.indexOf('Left') !== -1) {\n yValue = layout.graphNodes[fixedNode.id].y;\n // eslint-disable-next-line\n orientation === 'LeftToRight' ? layout.anchorX -= yValue : layout.anchorX += yValue;\n layout.anchorY -= layout.graphNodes[fixedNode.id].x + mod;\n }\n else {\n yValue = layout.graphNodes[fixedNode.id].y;\n // eslint-disable-next-line\n layout.anchorX -= layout.graphNodes[fixedNode.id].x + mod;\n orientation === 'TopToBottom' ? layout.anchorY -= yValue : layout.anchorY += yValue;\n }\n }\n else {\n if (orientation === 'TopToBottom' || orientation === 'BottomToTop') {\n switch (layout.horizontalAlignment) {\n case 'Left':\n layout.anchorX = (layoutBounds.x - bounds.x) + layout.margin.left;\n break;\n case 'Right':\n layout.anchorX = layoutBounds.x + layoutBounds.width - layout.margin.right - bounds.right;\n break;\n case 'Auto':\n case 'Center':\n layout.anchorX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layout.verticalAlignment) {\n case 'Auto':\n case 'Top':\n var top_1;\n top_1 = layoutBounds.y + layout.margin.top;\n layout.anchorY = orientation === 'TopToBottom' ? top_1 : bounds.bottom + top_1;\n break;\n case 'Bottom':\n var bottom = void 0;\n bottom = layoutBounds.y + layoutBounds.height - layout.margin.bottom;\n layout.anchorY = orientation === 'TopToBottom' ? bottom - bounds.bottom : bottom;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.y + layoutBounds.height / 2;\n layout.anchorY = layout.orientation === 'TopToBottom' ?\n center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n }\n else {\n switch (layout.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n var left = void 0;\n left = layoutBounds.x + layout.margin.left;\n layout.anchorX = orientation === 'LeftToRight' ? left : bounds.bottom + left;\n break;\n case 'Right':\n var right = void 0;\n right = layoutBounds.x + layoutBounds.width - layout.margin.right;\n layout.anchorX = orientation === 'LeftToRight' ? right - bounds.bottom : right;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.width / 2 + layoutBounds.x;\n layout.anchorX = layout.orientation === 'LeftToRight' ?\n center - (bounds.y + bounds.bottom) / 2 : center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n switch (layout.verticalAlignment) {\n case 'Top':\n layout.anchorY = layoutBounds.y + layout.margin.top - bounds.x;\n break;\n case 'Auto':\n case 'Center':\n layout.anchorY = layoutBounds.y + layoutBounds.height / 2 - (bounds.right + bounds.x) / 2;\n break;\n case 'Bottom':\n layout.anchorY = layoutBounds.y + layoutBounds.height - layout.margin.bottom - bounds.right;\n break;\n }\n }\n }\n };\n /* eslint-enable */\n HierarchicalTree.prototype.updateConnectors = function (layout, node, level) {\n var i;\n //let info: LayoutInfo;\n //let nodeWidth: number; let nodeHeight: number; let targetWidth: number; let targetHeight: number;\n //let length: number; let offsetLen: number; let points: PointModel[];\n //let segments: ConnSegments;\n var target;\n var conn;\n //Route out edges\n var info = layout.graphNodes[node.id];\n var direction;\n if (node.outEdges.length) {\n for (i = 0; i < node.outEdges.length; i++) {\n conn = layout.nameTable[node.outEdges[parseInt(i.toString(), 10)]];\n conn.points = [];\n target = layout.nameTable[conn.targetID];\n if (conn.visible) {\n conn.visited = true;\n if (layout.getConnectorSegments) {\n var segments = layout.getConnectorSegments(conn);\n }\n else {\n if (info && info.tree.children.indexOf(conn.targetID) !== -1) {\n if (conn.type === 'Bezier' && layout.connectionPointOrigin === 'SamePoint') {\n conn.segments = [];\n (conn.segments).push(new BezierSegment(conn, 'segments', { type: 'Bezier' }, true));\n }\n if (layout.type === 'OrganizationalChart' && conn.type === 'Orthogonal') {\n conn.segments = [];\n this.updateSegments(layout, conn, node, target, i);\n }\n }\n }\n if (target && (target.isExpanded || this.hasChild(layout, target))) {\n this.updateConnectors(layout, target, level + 1);\n }\n }\n }\n }\n if (info && info.tree.assistants.length) {\n //In-Edge routing of assistant nodes\n for (i = 0; i < info.tree.assistants.length; i++) {\n target = layout.nameTable[info.tree.assistants[parseInt(i.toString(), 10)]];\n conn = layout.nameTable[target.inEdges[0]];\n this.get3Points(layout, node, target, conn);\n if (target.isExpanded || this.hasChild(layout, target)) {\n this.updateConnectors(layout, target, level + 1);\n }\n }\n }\n };\n HierarchicalTree.prototype.updateSegments = function (layout, conn, node, target, i) {\n var info = layout.graphNodes[node.id];\n //Connector routing - Horizontal layout orientation\n if (info.tree.assistants.length) {\n //Route in-edge of child node, if the parent has assistant\n this.updateSegmentsForHorizontalOrientation(layout, node, target, conn);\n }\n else {\n //Route in-edge of child node\n if (info.tree.orientation === 'Horizontal' && info.tree.type === 'Balanced') {\n this.updateSegmentsForBalancedTree(layout, conn, node, target, i);\n }\n else {\n if (info.tree.orientation === 'Horizontal') {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, conn);\n }\n else {\n if (info.tree.offset < 5) {\n this.get5Points(layout, node, target, conn);\n }\n else {\n this.get3Points(layout, node, target, conn);\n }\n }\n }\n }\n };\n HierarchicalTree.prototype.updateSegmentsForBalancedTree = function (layout, connector, node, target, i) {\n var info = layout.graphNodes[node.id];\n var center;\n var relative;\n if (info.tree.children.length === 5 && i > 2) {\n relative = info.tree.children[1];\n if (isNaN(layout.graphNodes[\"\" + relative].treeWidth)) {\n layout.graphNodes[\"\" + relative].treeWidth = layout.nameTable[\"\" + relative].actualSize.width;\n }\n var factor = i !== 3 ? 1 : -1;\n if (layout.orientation.indexOf('Left') !== -1) {\n center = layout.nameTable[\"\" + relative].offsetY - layout.graphNodes[\"\" + relative].treeWidth / 2 -\n (layout.verticalSpacing * factor / 2);\n }\n else {\n var center_1 = layout.nameTable[\"\" + relative].offsetX +\n layout.graphNodes[\"\" + relative].treeWidth / 2 + (layout.horizontalSpacing * factor) / 2;\n }\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n if (info.tree.children.length > 5) {\n if (i < 4 || i < info.tree.rows) {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, connector);\n }\n }\n else if (info.tree.children.length === 4) {\n if (i < 2 || i < info.tree.rows) {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n else {\n this.updateSegmentsForHorizontalOrientation(layout, node, target, connector);\n }\n }\n else {\n this.getSegmentsForMultipleRows(layout, node, target, connector);\n }\n }\n };\n HierarchicalTree.prototype.get3Points = function (layout, node, target, connector) {\n var points = [];\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n if (layout.orientation.indexOf('Top') !== -1) {\n var startingPoint = layout.orientation.indexOf('Top') === 0 ? nodeBounds.bottomCenter :\n nodeBounds.topCenter;\n var endPoint = node.offsetX > target.offsetX ? targetBounds.middleRight : targetBounds.middleLeft;\n points.push(startingPoint, { x: nodeBounds.bottomCenter.x, y: endPoint.y }, endPoint);\n }\n else {\n var startingPoint = layout.orientation.indexOf('Left') === 0 ? nodeBounds.middleRight :\n nodeBounds.middleLeft;\n var endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter;\n points.push(startingPoint, { x: targetBounds.bottomCenter.x, y: nodeBounds.middleRight.y }, endPoint);\n }\n this.getSegmentsFromPoints(points, connector);\n };\n HierarchicalTree.prototype.get5Points = function (layout, node, target, connector) {\n var points = [];\n //let layoutprop: Layout;\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n //let info: LayoutInfo = layout.graphNodes[node.id];\n var startingPoint;\n var endPoint;\n var horizontalSpacing;\n var verticalSpacing;\n if (layout.orientation.indexOf('Top') !== -1) {\n startingPoint = (node.offsetY < target.offsetY) ? nodeBounds.bottomCenter : nodeBounds.topCenter;\n verticalSpacing = layout.verticalSpacing / 4 * ((node.offsetY < target.offsetY) ? 1 : -1);\n horizontalSpacing = layout.horizontalSpacing / 2 * ((node.offsetX > target.offsetX) ? 1 : -1);\n endPoint = (node.offsetX > target.offsetX) ? targetBounds.middleRight : targetBounds.middleLeft;\n points.push(startingPoint, { x: startingPoint.x, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x + horizontalSpacing, y: endPoint.y }, endPoint);\n }\n else {\n startingPoint = (node.offsetX > target.offsetX) ? nodeBounds.middleLeft : nodeBounds.middleRight;\n endPoint = node.offsetY > target.offsetY ? targetBounds.bottomCenter : targetBounds.topCenter;\n horizontalSpacing = layout.horizontalSpacing / 4 * ((node.offsetX < target.offsetX) ? 1 : -1);\n verticalSpacing = layout.verticalSpacing / 2 * ((node.offsetY > target.offsetY) ? 1 : -1);\n points.push(startingPoint, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y }, { x: startingPoint.x + horizontalSpacing, y: startingPoint.y + verticalSpacing }, { x: endPoint.x, y: startingPoint.y + verticalSpacing }, endPoint);\n }\n this.getSegmentsFromPoints(points, connector);\n };\n HierarchicalTree.prototype.getSegmentsFromPoints = function (points, connector) {\n var segments = [];\n var segment;\n for (var i = 0; i < points.length - 2; i++) {\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(points[parseInt(i.toString(), 10)], points[i + 1]);\n segment.length = Point.distancePoints(points[parseInt(i.toString(), 10)], points[i + 1]);\n segments.push(segment);\n }\n connector.segments = segments;\n };\n HierarchicalTree.prototype.getSegmentsForMultipleRows = function (layout, node, target, connector) {\n //let points: PointModel[] = [];\n var segments = [];\n var point;\n var segment;\n var targetBounds = this.getBounds(target);\n var nodeBounds = this.getBounds(node);\n switch (layout.orientation) {\n case 'TopToBottom':\n point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.bottomCenter.y + layout.verticalSpacing / 4) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.bottomCenter, point);\n segment.length = Point.distancePoints(nodeBounds.bottomCenter, point);\n segments.push(segment);\n break;\n case 'BottomToTop':\n point = { x: nodeBounds.bottomCenter.x, y: (nodeBounds.topCenter.y - layout.verticalSpacing / 4) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.topCenter, point);\n segment.length = Point.distancePoints(nodeBounds.topCenter, point);\n segments.push(segment);\n break;\n case 'LeftToRight':\n point = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleRight, point);\n segment.length = Point.distancePoints(nodeBounds.middleRight, point);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point3 = { x: (nodeBounds.middleRight.x + layout.verticalSpacing / 4), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point, point3);\n segment.length = Point.distancePoints(point, point3);\n segments.push(segment);\n }\n break;\n case 'RightToLeft':\n point = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleLeft, point);\n segment.length = Point.distancePoints(nodeBounds.middleLeft, point);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point_1 = { x: (nodeBounds.middleLeft.x - layout.verticalSpacing / 4), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point_1, point_1);\n segment.length = Point.distancePoints(point_1, point_1);\n segments.push(segment);\n }\n break;\n }\n connector.segments = segments;\n };\n HierarchicalTree.prototype.updateSegmentsForHorizontalOrientation = function (layout, node, target, connector) {\n var points = [];\n var point2;\n var segment;\n var segments = [];\n var nodeBounds = this.getBounds(node);\n var targetBounds = this.getBounds(target);\n switch (layout.orientation) {\n case 'TopToBottom':\n point2 = { x: nodeBounds.bottomCenter.x, y: (targetBounds.topCenter.y - layout.verticalSpacing / 2) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.bottomCenter, point2);\n segment.length = Point.distancePoints(nodeBounds.bottomCenter, point2);\n segments.push(segment);\n break;\n case 'BottomToTop':\n point2 = { x: nodeBounds.topCenter.x, y: (targetBounds.bottomCenter.y + layout.verticalSpacing / 2) };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.topCenter, point2);\n segment.length = Point.distancePoints(nodeBounds.topCenter, point2);\n segments.push(segment);\n break;\n case 'LeftToRight':\n point2 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleRight, point2);\n segment.length = Point.distancePoints(nodeBounds.middleRight, point2);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point3 = { x: (targetBounds.middleLeft.x - layout.verticalSpacing / 2), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point2, point3);\n segment.length = Point.distancePoints(point2, point3);\n segments.push(segment);\n }\n break;\n case 'RightToLeft':\n point2 = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: nodeBounds.middleRight.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(nodeBounds.middleLeft, point2);\n segment.length = Point.distancePoints(nodeBounds.middleLeft, point2);\n segments.push(segment);\n if (targetBounds.center.y !== nodeBounds.center.y) {\n var point = { x: (targetBounds.middleRight.x + layout.verticalSpacing / 2), y: targetBounds.middleLeft.y };\n segment = new OrthogonalSegment(connector, 'segments', { type: 'Orthogonal' }, true);\n segment.direction = Point.direction(point2, point);\n segment.length = Point.distancePoints(point2, point);\n segments.push(segment);\n }\n break;\n }\n connector.segments = segments;\n return points;\n };\n HierarchicalTree.prototype.updateNodes = function (layout, node, mod, update, dx, dy) {\n var i;\n var child;\n var width;\n var height;\n var offsetX;\n var offsetY;\n if (node && !node.excludeFromLayout) {\n width = node.actualSize.width;\n height = node.actualSize.height;\n offsetX = layout.anchorX;\n offsetY = layout.anchorY;\n /*Performance - instead of checking conditions for every node, we can make the layout related\n conditions once and we can reuse them*/\n if (layout.orientation === 'LeftToRight') {\n offsetX += layout.graphNodes[node.id].y + width / 2;\n offsetY += layout.graphNodes[node.id].x + mod + height / 2;\n }\n else if (layout.orientation === 'RightToLeft') {\n offsetX -= layout.graphNodes[node.id].y + width / 2;\n offsetY += layout.graphNodes[node.id].x + mod + height / 2;\n }\n else if (layout.orientation === 'TopToBottom') {\n offsetX += layout.graphNodes[node.id].x + mod + width / 2;\n offsetY += layout.graphNodes[node.id].y + height / 2;\n }\n else {\n offsetX += layout.graphNodes[node.id].x + mod + width / 2;\n offsetY -= layout.graphNodes[node.id].y + height / 2;\n }\n if (layout.graphNodes) {\n dx = dx ? dx : 0;\n dy = dy ? dy : 0;\n offsetX += dx;\n offsetY += dy;\n if (!this.isAnimation) {\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n }\n }\n var objects = { id: node.id, differenceX: offsetX - node.offsetX, differenceY: offsetY - node.offsetY };\n layout.objects.push(objects);\n var list = [];\n if (this.hasChild(layout, node)) {\n for (i = 0; i < layout.graphNodes[node.id].tree.children.length; i++) {\n child = layout.nameTable[layout.graphNodes[node.id].tree.children[parseInt(i.toString(), 10)]];\n this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), update, dx, dy);\n list.push(child);\n }\n }\n if (layout.graphNodes[node.id].tree.assistants.length) {\n for (i = 0; i < layout.graphNodes[node.id].tree.assistants.length; i++) {\n child = layout.nameTable[layout.graphNodes[node.id].tree.assistants[parseInt(i.toString(), 10)]];\n this.updateNodes(layout, child, mod + (layout.graphNodes[node.id].subTreeTranslation || 0), null, dx, dy);\n }\n }\n }\n };\n return HierarchicalTree;\n}());\nexport { HierarchicalTree };\n","import { Rect } from '../primitives/rect';\nimport { getFunction } from '../utility/base-util';\nimport { HierarchicalTree } from './hierarchical-tree';\n/**\n * Layout for mind-map tree\n */\nvar MindMap = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function MindMap() {\n /**\n * Defines the layout animation\n *\n */\n this.isAnimation = false;\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n MindMap.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n MindMap.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'MindMapChart';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewPort\n * @param uniqueId\n * @param root\n * @private\n */\n MindMap.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewPort, uniqueId, root) {\n var isRoot = this.checkRoot(nodes, layoutProp, uniqueId, root, nameTable);\n if (isRoot) {\n layoutProp.fixedNode = isRoot;\n }\n else {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (!node.excludeFromLayout) {\n if (!node.inEdges || !node.inEdges.length) {\n layoutProp.fixedNode = node.id;\n break;\n }\n }\n }\n }\n var rootNode = nameTable[layoutProp.fixedNode];\n var fistLevelNodes = this.findFirstLevelNodes(rootNode, layoutProp, nameTable);\n var leftNodes = [];\n var rightNodes = [];\n var getMindmapBranch = getFunction(layoutProp.getBranch);\n getMindmapBranch = getMindmapBranch || getFunction(this.getBranch);\n for (var _a = 0, fistLevelNodes_1 = fistLevelNodes; _a < fistLevelNodes_1.length; _a++) {\n var node = fistLevelNodes_1[_a];\n var align = getMindmapBranch(node, fistLevelNodes);\n align = node && node.branch ? node.branch : align;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (align === 'Left') ? leftNodes.push(node) : rightNodes.push(node);\n }\n var viewPortBounds = new Rect(0, 0, viewPort.x, viewPort.y);\n nameTable[layoutProp.fixedNode].offsetX = viewPortBounds.x + viewPortBounds.width / 2;\n nameTable[layoutProp.fixedNode].offsetY = viewPortBounds.y + viewPortBounds.height / 2;\n if (leftNodes.length) {\n this.updateMindMapBranch(nodes, rightNodes, nameTable, layoutProp, viewPort, uniqueId, 'Left');\n }\n if (rightNodes.length) {\n this.updateMindMapBranch(nodes, leftNodes, nameTable, layoutProp, viewPort, uniqueId, 'Right');\n }\n };\n MindMap.prototype.checkRoot = function (nodes, layoutProp, uniqueId, root, nameTable) {\n for (var _i = 0, nodes_2 = nodes; _i < nodes_2.length; _i++) {\n var node = nodes_2[_i];\n if (!node.excludeFromLayout) {\n if (node.data && (node.data[\"\" + uniqueId].toString() === root || node.data[\"\" + uniqueId].toString()\n === layoutProp.root)) {\n return node.id;\n }\n else if (!node.data && node.id === layoutProp.root) {\n return node.id;\n }\n }\n }\n return '';\n };\n MindMap.prototype.updateMindMapBranch = function (nodes, excludeNodes, nameTable, layoutProp, viewPort, uniqueId, side) {\n var layout = {\n type: 'HierarchicalTree',\n horizontalSpacing: layoutProp.verticalSpacing, verticalSpacing: layoutProp.horizontalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, getLayoutInfo: getFunction(layoutProp.getLayoutInfo),\n layoutInfo: layoutProp.layoutInfo, margin: layoutProp.margin,\n orientation: layoutProp.orientation,\n root: layoutProp.fixedNode\n };\n //(EJ2-277624)-Vertical orientation is not working in mindmap\n if (layout.orientation === 'Vertical') {\n layout.orientation = (side === 'Left') ? 'TopToBottom' : 'BottomToTop';\n }\n else {\n layout.orientation = (side === 'Left') ? 'LeftToRight' : 'RightToLeft';\n }\n this.excludeFromLayout(excludeNodes, nameTable, true);\n var mapLayout = new HierarchicalTree();\n mapLayout.updateLayout(nodes, nameTable, layout, viewPort, uniqueId);\n this.excludeFromLayout(excludeNodes, nameTable, false);\n };\n MindMap.prototype.getBranch = function (obj, firstLevelNodes) {\n var side;\n var i = firstLevelNodes.indexOf(obj);\n if (i % 2 === 0) {\n side = 'Left';\n }\n else {\n side = 'Right';\n }\n return side;\n };\n MindMap.prototype.excludeFromLayout = function (newCollection, nameTable, exclude) {\n for (var _i = 0, newCollection_1 = newCollection; _i < newCollection_1.length; _i++) {\n var newcol = newCollection_1[_i];\n var node = nameTable[newcol.id];\n node.excludeFromLayout = exclude;\n }\n };\n MindMap.prototype.findFirstLevelNodes = function (node, layout, nameTable) {\n var parentNode;\n var fistLevelNodes = [];\n if (node && node.outEdges.length) {\n for (var _i = 0, _a = node.outEdges; _i < _a.length; _i++) {\n var outEdge = _a[_i];\n fistLevelNodes.push(nameTable[nameTable[\"\" + outEdge].targetID]);\n }\n }\n return fistLevelNodes;\n };\n return MindMap;\n}());\nexport { MindMap };\n","/**\n * Radial Tree\n */\nvar RadialTree = /** @class */ (function () {\n /**\n * Constructor for the organizational chart module.\n *\n * @private\n */\n function RadialTree() {\n //constructs the layout module\n }\n /**\n * To destroy the organizational chart\n *\n * @returns {void}\n * @private\n */\n RadialTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Get module name.\n */\n RadialTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n */\n return 'RadialTree';\n };\n /**\n * @param nodes\n * @param nameTable\n * @param layoutProp\n * @param viewport\n * @private\n */\n RadialTree.prototype.updateLayout = function (nodes, nameTable, layoutProp, viewport) {\n var layout = {\n type: layoutProp.type,\n nameTable: nameTable, anchorX: 0, anchorY: 0,\n firstLevelNodes: [], centerNode: null, levels: [], maxLevel: 0, graphNodes: {}, layoutNodes: [],\n orientation: layoutProp.orientation,\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n verticalAlignment: layoutProp.verticalAlignment, horizontalAlignment: layoutProp.horizontalAlignment,\n fixedNode: layoutProp.fixedNode, margin: layoutProp.margin,\n bounds: layoutProp.bounds, objects: [], root: layoutProp.root\n };\n this.doLayout(layout, nodes, nameTable, viewport);\n };\n RadialTree.prototype.doLayout = function (layout, nodes, nameTable, viewport) {\n var node;\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n if (!node.excludeFromLayout) {\n layout.graphNodes[node.id] = this.setUpLayoutInfo(layout, node);\n if (!node.inEdges || !node.inEdges.length) {\n layout.firstLevelNodes.push(node);\n }\n }\n }\n if (layout.root && nameTable[layout.root]) {\n layout.centerNode = nameTable[layout.root];\n }\n else if (layout.firstLevelNodes.length) {\n layout.centerNode = layout.firstLevelNodes[0];\n layout.root = layout.centerNode.id;\n }\n if (layout.centerNode) {\n this.updateEdges(layout, layout.centerNode, 0, nameTable);\n this.depthFirstAllignment(layout, layout.centerNode, 0, 0);\n this.populateLevels(layout);\n this.transformToCircleLayout(layout);\n this.updateAnchor(layout, viewport);\n this.updateNodes(layout, layout.centerNode, nameTable);\n }\n };\n RadialTree.prototype.updateEdges = function (layout, node, depth, nameTable) {\n var nodeInfo = layout.graphNodes[node.id];\n layout.layoutNodes.push(nodeInfo);\n nodeInfo.level = depth;\n nodeInfo.visited = true;\n layout.maxLevel = Math.max(layout.maxLevel, depth);\n for (var j = 0; j < node.outEdges.length; j++) {\n var edge = nameTable[nameTable[node.outEdges[parseInt(j.toString(), 10)]].targetID];\n if (!edge.excludeFromLayout && !edge.visited) {\n nodeInfo.children.push(edge);\n this.updateEdges(layout, edge, depth + 1, nameTable);\n }\n }\n };\n RadialTree.prototype.depthFirstAllignment = function (layout, node, x, y) {\n var newValue;\n var nodeInfo = layout.graphNodes[node.id];\n if (nodeInfo.children.length) {\n y += 300;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y);\n x = newValue.x;\n y = newValue.y;\n }\n nodeInfo.children = nodeInfo.children.sort(function (obj1, obj2) {\n return layout.graphNodes[obj1.id].x - layout.graphNodes[obj2.id].x;\n });\n var min = layout.graphNodes[nodeInfo.children[0].id].min;\n var max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].max;\n nodeInfo.x = min + (max - min) / 2;\n x = max + layout.horizontalSpacing;\n nodeInfo.segmentOffset = max + layout.horizontalSpacing;\n nodeInfo.x -= nodeInfo.width / 2;\n nodeInfo.y -= nodeInfo.height / 2;\n nodeInfo.min = min;\n nodeInfo.max = max;\n if (nodeInfo.x < min && nodeInfo.visited) {\n nodeInfo.x = min;\n x = nodeInfo.x + nodeInfo.width / 2 - (max - min) / 2;\n nodeInfo.visited = false;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n newValue = this.depthFirstAllignment(layout, nodeInfo.children[parseInt(i.toString(), 10)], x, y);\n }\n nodeInfo.visited = true;\n x = nodeInfo.x + nodeInfo.width + layout.horizontalSpacing;\n }\n max = layout.graphNodes[nodeInfo.children[nodeInfo.children.length - 1].id].segmentOffset;\n x = x < max ? max : x;\n y -= 300;\n nodeInfo.y = y;\n }\n else {\n nodeInfo.x = x;\n nodeInfo.y = y;\n nodeInfo.min = x;\n nodeInfo.max = x + nodeInfo.width;\n x += nodeInfo.width + layout.horizontalSpacing;\n }\n return { x: x, y: y };\n };\n RadialTree.prototype.populateLevels = function (layout) {\n var stages = [];\n // eslint-disable-next-line prefer-spread\n var min = Math.min.apply(Math, layout.layoutNodes.map(function (nodeInfo) { return nodeInfo.x; }));\n // eslint-disable-next-line prefer-spread\n var max = Math.max.apply(Math, layout.layoutNodes.map(function (nodeInfo) {\n return nodeInfo.x + nodeInfo.width + layout.horizontalSpacing;\n }));\n var full = max - min;\n layout.levels = [];\n var _loop_1 = function (i) {\n stages = layout.layoutNodes.filter(function (nodeInfo) {\n if (nodeInfo.level === i) {\n return nodeInfo;\n }\n else {\n return null;\n }\n });\n var newlevel = {};\n stages = stages.sort(function (nodeInfo1, nodeInfo2) { return nodeInfo1.x - nodeInfo2.x; });\n newlevel.min = stages[0].x;\n newlevel.max = stages[stages.length - 1].x + stages[stages.length - 1].width + layout.horizontalSpacing;\n newlevel.actualCircumference = 0;\n newlevel.height = 0;\n for (var k = 0; k < stages.length; k++) {\n if (stages[parseInt(k.toString(), 10)].height > newlevel.height) {\n newlevel.height = stages[parseInt(k.toString(), 10)].height;\n }\n newlevel.actualCircumference += Math.max(stages[parseInt(k.toString(), 10)].width, stages[parseInt(k.toString(), 10)].height);\n if (k !== stages.length - 1) {\n newlevel.actualCircumference += layout.horizontalSpacing;\n }\n }\n newlevel.circumference = newlevel.max - newlevel.min;\n if (newlevel.actualCircumference < newlevel.circumference) {\n newlevel.circumference = (newlevel.circumference + newlevel.actualCircumference) / 2;\n }\n newlevel.radius = newlevel.circumference / (2 * Math.PI) + newlevel.height;\n newlevel.nodes = [];\n if (i > 1) {\n if (layout.levels[i - 1].radius + layout.levels[i - 1].height >= newlevel.radius) {\n newlevel.radius = layout.levels[i - 1].radius + layout.levels[i - 1].height;\n }\n }\n for (var j = 0; j < stages.length; j++) {\n stages[parseInt(j.toString(), 10)].ratio = Math.abs(stages[parseInt(j.toString(), 10)].x\n + stages[parseInt(j.toString(), 10)].width / 2 - min) / full;\n newlevel.nodes.push(stages[parseInt(j.toString(), 10)]);\n }\n layout.levels.push(newlevel);\n };\n for (var i = 0; i <= layout.maxLevel; i++) {\n _loop_1(i);\n }\n };\n RadialTree.prototype.transformToCircleLayout = function (layout) {\n var root = layout.graphNodes[layout.centerNode.id];\n root.x = 0;\n root.y = 0;\n for (var i = 1; i < layout.levels.length; i++) {\n for (var j = 0; j < layout.levels[parseInt(i.toString(), 10)].nodes.length; j++) {\n var nodeInfo = layout.levels[parseInt(i.toString(), 10)].nodes[parseInt(j.toString(), 10)];\n nodeInfo.x = Math.cos(nodeInfo.ratio * 360 * Math.PI / 180)\n * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i);\n nodeInfo.y = Math.sin(nodeInfo.ratio * 360 * Math.PI / 180)\n * (layout.levels[parseInt(i.toString(), 10)].radius + layout.verticalSpacing * i);\n layout.anchorX = Math.min(layout.anchorX, nodeInfo.x);\n layout.anchorY = Math.min(layout.anchorY, nodeInfo.y);\n }\n }\n };\n RadialTree.prototype.updateAnchor = function (layout, viewPort) {\n layout.anchorX = layout.centerNode.offsetX || viewPort.x / 2;\n layout.anchorY = layout.centerNode.offsetY || viewPort.y / 2;\n };\n RadialTree.prototype.updateNodes = function (layout, node, nameTable) {\n var nodeInfo = layout.graphNodes[node.id];\n var offsetX = nodeInfo.x + layout.anchorX;\n var offsetY = nodeInfo.y + layout.anchorY;\n node.offsetX = offsetX;\n node.offsetY = offsetY;\n for (var i = 0; i < nodeInfo.children.length; i++) {\n var childInfo = nodeInfo.children[parseInt(i.toString(), 10)];\n this.updateNodes(layout, nameTable[childInfo.id], nameTable);\n }\n };\n RadialTree.prototype.setUpLayoutInfo = function (layout, item) {\n var info = {};\n info.name = item.id;\n info.x = 0;\n info.y = 0;\n info.min = 0;\n info.max = 0;\n info.width = item.actualSize.width;\n info.height = item.actualSize.height;\n info.children = [];\n info.level = 0;\n info.ratio = 0;\n info.visited = false;\n return info;\n };\n return RadialTree;\n}());\nexport { RadialTree };\n","import { Rect } from '../primitives/rect';\nimport { cloneObject } from '../utility/base-util';\nvar GraphForceNode = /** @class */ (function () {\n function GraphForceNode(gnNode) {\n /**\n * @private\n */\n this.velocityX = 0;\n /**\n * @private\n */\n this.velocityY = 0;\n /**\n * @private\n */\n this.nodes = [];\n this.graphNode = gnNode;\n var nNode = this.graphNode;\n var bounds = getGraphBounds(nNode);\n this.location = bounds.center;\n this.nodes = [];\n if (!gnNode.treeInfo.parents) {\n gnNode.treeInfo.parents = [];\n }\n if (!gnNode.treeInfo.children) {\n gnNode.treeInfo.children = [];\n }\n this.nodes = (gnNode.treeInfo.parents).concat(gnNode.treeInfo.children);\n }\n /**\n * applyChanges method\\\n *\n * @returns { void } applyChanges method .\\\n * @private\n */\n GraphForceNode.prototype.applyChanges = function () {\n this.graphNode.treeInfo.center = this.location;\n };\n return GraphForceNode;\n}());\nexport { GraphForceNode };\n/**\n * SymmetricalLayout\n */\nvar SymmetricLayout = /** @class */ (function () {\n function SymmetricLayout() {\n this.cdCOEF = 0.442;\n this.cfMAXVELOCITY = 50;\n this.cnMAXITERACTION = 1000;\n this.cnSPRINGLENGTH = 100;\n this.mszMaxForceVelocity = { width: this.cfMAXVELOCITY, height: this.cfMAXVELOCITY };\n /**\n * @private\n */\n this.springLength = 0;\n /**\n * @private\n */\n this.springFactor = this.cdCOEF;\n /**\n * @private\n */\n this.maxIteration = this.cnMAXITERACTION;\n this.springLength = this.cnSPRINGLENGTH;\n }\n /**\n *To destroy the layout\n *\n * @returns {void} To destroy the layout\n */\n SymmetricLayout.prototype.destroy = function () {\n /**\n * Destroys symmetricLayout\n */\n };\n SymmetricLayout.prototype.getModuleName = function () {\n return 'SymmetricalLayout';\n };\n SymmetricLayout.prototype.doGraphLayout = function (graphLayoutManager) {\n var graph = this.selectedNode;\n graph.treeInfo.Bounds = graphLayoutManager.getModelBounds(graphLayoutManager.nodes);\n var lstGraphNodes = graph.treeInfo.GraphNodes;\n var lstNodes = this.convertGraphNodes(lstGraphNodes);\n var count = lstNodes.length;\n count = Math.min(this.maxIteration, count * count * count);\n this.preLayoutNodes(lstNodes, graph.treeInfo.Bounds);\n for (var i = 0, nLenght = count; i < nLenght; i++) {\n this.makeSymmetricLayout(lstNodes);\n this.appendForces(lstNodes);\n }\n this.resetGraphPosition(lstNodes, graph);\n };\n SymmetricLayout.prototype.preLayoutNodes = function (lstNodes, rcBounds) {\n var fMaxSize = Math.max(rcBounds.width, rcBounds.height);\n var ptCenter = { x: fMaxSize / 2, y: fMaxSize / 2 };\n var dRotateAngle = 2 * Math.PI / lstNodes.length;\n var dAngle = dRotateAngle;\n for (var i = 0; i < lstNodes.length; i++) {\n var gnNode = lstNodes[parseInt(i.toString(), 10)];\n var forceNode = this.getForceNode(gnNode);\n forceNode.location = {\n x: ptCenter.x + fMaxSize * Number((Math.cos(dAngle)).toFixed(2)),\n y: ptCenter.y + fMaxSize * Number(Math.sin(dAngle).toFixed(2))\n };\n dAngle -= dRotateAngle;\n }\n };\n /**\n * doLayout method\\\n *\n * @returns { void } doLayout method .\\\n * @param {GraphLayoutManager} graphLayoutManager - provide the angle value.\n * @private\n */\n SymmetricLayout.prototype.doLayout = function (graphLayoutManager) {\n this.selectedNode = graphLayoutManager.selectedNode;\n this.doGraphLayout(graphLayoutManager);\n };\n SymmetricLayout.prototype.makeSymmetricLayout = function (lstNodes) {\n var forceNode;\n var force;\n for (var k = 0; k < lstNodes.length; k++) {\n var gnNode = lstNodes[parseInt(k.toString(), 10)];\n forceNode = this.getForceNode(gnNode);\n var nodes = forceNode.nodes;\n for (var l = 0; l < nodes.length; l++) {\n var gnChild = nodes[parseInt(l.toString(), 10)];\n this.calcNodesForce(forceNode, this.getForceNode(gnChild));\n }\n for (var i = 0, length_1 = nodes.length; i < length_1; i++) {\n if (length_1 < 2) {\n break;\n }\n var vtx1 = this.getForceNode(nodes[parseInt(i.toString(), 10)]);\n var vtx2 = (i + 1 >= length_1) ? this.getForceNode(nodes[0]) : this.getForceNode((nodes[i + 1]));\n var angle = (360 / nodes.length / 2) * Math.PI / 180;\n var normalDistance = 2 * this.springLength * Math.sin(angle);\n this.calcRelatesForce(vtx1, vtx2, normalDistance);\n }\n for (var s = 0; s < lstNodes.length; s++) {\n var gnChild = lstNodes[parseInt(s.toString(), 10)];\n if (!collectionContains(gnChild.id, nodes) && gnChild.id !== gnNode.id) {\n force = this.getForceNode(gnChild);\n this.updateNeigbour(forceNode, force);\n }\n }\n }\n };\n SymmetricLayout.prototype.appendForces = function (lstNodes) {\n var gfnNode = null;\n for (var k = 0; k < lstNodes.length; k++) {\n var gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptPoint = gfnNode.location;\n ptPoint.x += Math.min(gfnNode.velocityX, this.mszMaxForceVelocity.width);\n ptPoint.y += Math.min(gfnNode.velocityY, this.mszMaxForceVelocity.height);\n gfnNode.velocityX = 0;\n gfnNode.velocityY = 0;\n gfnNode.location = ptPoint;\n }\n };\n SymmetricLayout.prototype.resetGraphPosition = function (lstNodes, graph) {\n var szMin = { width: Number.MAX_VALUE, height: Number.MAX_VALUE };\n var gfnNode = null;\n var gnNode;\n for (var k = 0; k < lstNodes.length; k++) {\n gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptLocation = {\n x: gfnNode.location.x - gnNode.actualSize.width / 2,\n y: gfnNode.location.y - gnNode.actualSize.height / 2\n };\n szMin.width = Math.min(szMin.width, ptLocation.x);\n szMin.height = Math.min(szMin.height, ptLocation.y);\n }\n for (var k = 0; k < lstNodes.length; k++) {\n gnNode = lstNodes[parseInt(k.toString(), 10)];\n gfnNode = this.getForceNode(gnNode);\n var ptLocation = gfnNode.location;\n ptLocation.x -= szMin.width - (graph.treeInfo.location ? graph.treeInfo.location.x : 0);\n ptLocation.y -= szMin.height - (graph.treeInfo.location ? graph.treeInfo.location.y : 0);\n gfnNode.location = ptLocation;\n gfnNode.applyChanges();\n }\n };\n SymmetricLayout.prototype.convertGraphNodes = function (lstNodes) {\n var lstToReturn = [];\n var keys = Object.keys(lstNodes);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var k = keys_1[_i];\n var gnNode = lstNodes[\"\" + k];\n var forceNode = new GraphForceNode(gnNode);\n gnNode.treeInfo.tag = forceNode;\n lstToReturn.push(gnNode);\n }\n return lstToReturn;\n };\n /**\n * getForceNode method\\\n *\n * @returns { GraphForceNode } getForceNode method .\\\n * @param {IGraphObject} gnNode - provide the angle value.\n * @private\n */\n SymmetricLayout.prototype.getForceNode = function (gnNode) {\n return gnNode.treeInfo.tag;\n };\n SymmetricLayout.prototype.updateNeigbour = function (vtSource, vtTarget) {\n if (vtTarget == null || vtSource == null) {\n return;\n }\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n var normalDistance = (this.springLength * 0.9);\n if (distance < normalDistance) {\n this.calcForce(distance, normalDistance, angle, vtTarget);\n }\n };\n SymmetricLayout.prototype.lineAngle = function (pt1, pt2) {\n var radians = 0;\n var vx = pt2.x - pt1.x;\n var vy = pt2.y - pt1.y;\n if (vx === 0) {\n if (vy <= 0) {\n radians = (3.0 * Math.PI) / 2.0;\n }\n else {\n radians = Math.PI / 2.0;\n }\n }\n else if (vy === 0) {\n if (vx < 0) {\n radians = Math.PI;\n }\n else {\n radians = 0;\n }\n }\n else {\n radians = Math.atan(vy / vx);\n if (vx < 0 && vy > 0) {\n radians = Math.PI + radians;\n }\n else if (vx < 0 && vy < 0) {\n radians = Math.PI + radians;\n }\n else if (vx > 0 && vy < 0) {\n radians = 2.0 * Math.PI + radians;\n }\n }\n return radians;\n };\n SymmetricLayout.prototype.pointDistance = function (pt1, pt2) {\n var d = 0;\n var dx = pt2.x - pt1.x;\n var dy = pt2.y - pt1.y;\n var t = (dx * dx) + (dy * dy);\n d = Math.sqrt(t);\n return d;\n };\n SymmetricLayout.prototype.calcRelatesForce = function (vtSource, vtTarget, normalDistance) {\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n if (distance < normalDistance) {\n this.calcForce(distance, normalDistance, angle, vtTarget);\n }\n };\n /**\n * @param nodeCollection\n * @param connectors\n * @param symmetricLayout\n * @param nameTable\n * @param layout\n * @param viewPort\n * @private\n */\n /**\n * updateLayout method\\\n *\n * @returns { void } updateLayout method .\\\n * @param {IGraphObject[]} nodeCollection - provide the angle value.\n * @param {IGraphObject[]} connectors - provide the connectors value.\n * @param {SymmetricLayout} symmetricLayout - provide the symmetricLayout value.\n * @param {Object} nameTable - provide the nameTable value.\n * @param {Layout} layout - provide the layout value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @private\n */\n SymmetricLayout.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) {\n var layoutManager = new GraphLayoutManager();\n layoutManager.updateLayout(nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort);\n };\n SymmetricLayout.prototype.calcNodesForce = function (vtSource, vtTarget) {\n var distance = this.pointDistance(vtSource.location, vtTarget.location);\n var angle = this.lineAngle(vtSource.location, vtTarget.location);\n if (distance > this.springLength || distance < this.springLength) {\n this.calcForce(distance, this.springLength, angle, vtTarget);\n }\n };\n SymmetricLayout.prototype.calcForce = function (distance, minDist, angle, vtTarget) {\n var count = vtTarget.nodes.length;\n var length = distance - minDist;\n var factor = this.springFactor / (count * count) * Math.sqrt(count);\n var fVelocity = length * factor;\n var fOffset = fVelocity;\n var offsetX = Math.cos(angle) * fOffset;\n var offsetY = Math.sin(angle) * fOffset;\n vtTarget.velocityX -= offsetX;\n vtTarget.velocityY -= offsetY;\n };\n return SymmetricLayout;\n}());\nexport { SymmetricLayout };\nvar GraphLayoutManager = /** @class */ (function () {\n function GraphLayoutManager() {\n this.visitedStack = [];\n this.cycleEdgesCollection = [];\n this.graphObjects = [];\n this.passedNodes = [];\n }\n /**\n * @param nodeCollection\n * @param connectors\n * @param symmetricLayout\n * @param nameTable\n * @param layout\n * @param viewPort\n * @private\n */\n /**\n * updateLayout method\\\n *\n * @returns { boolean } updateLayout method .\\\n * @param {IGraphObject[]} nodeCollection - provide the nodeCollection value.\n * @param {IGraphObject[]} connectors - provide the nodeCollection value.\n * @param {SymmetricLayout} symmetricLayout - provide the nodeCollection value.\n * @param {Object} nameTable - provide the nodeCollection value.\n * @param {Layout} layout - provide the nodeCollection value.\n * @param {PointModel} viewPort - provide the nodeCollection value.\n * @private\n */\n GraphLayoutManager.prototype.updateLayout = function (nodeCollection, connectors, symmetricLayout, nameTable, layout, viewPort) {\n this.nameTable = nameTable;\n this.nodes = nodeCollection;\n this.connectors = connectors;\n var selectionList = nodeCollection;\n if (selectionList.length > 0) {\n this.mhelperSelectedNode = cloneObject(selectionList[0]);\n }\n for (var _i = 0, nodeCollection_1 = nodeCollection; _i < nodeCollection_1.length; _i++) {\n var node = nodeCollection_1[_i];\n var nodeGraphObject = node;\n nodeGraphObject.treeInfo = {};\n nodeGraphObject.treeInfo.graphType = 'Node';\n this.graphObjects.push(nodeGraphObject);\n }\n for (var _a = 0, connectors_1 = connectors; _a < connectors_1.length; _a++) {\n var connector = connectors_1[_a];\n var connectorGraphObject = connector;\n connectorGraphObject.treeInfo = {};\n connectorGraphObject.treeInfo.graphType = 'Connector';\n this.graphObjects.push(connectorGraphObject);\n }\n this.updateLayout1(this.graphObjects, symmetricLayout);\n var modelBounds = this.getModelBounds(selectionList);\n for (var i = 0; i < selectionList.length; i++) {\n var node = selectionList[parseInt(i.toString(), 10)];\n var trnsX = (viewPort.x - modelBounds.width) / 2;\n var margin = layout.margin;\n var dx = (node.treeInfo.tag.location.x - (node.offsetX - (node.actualSize.width / 2)) -\n modelBounds.x + trnsX + margin.left);\n var dy = (node.treeInfo.tag.location.y - (node.offsetY - (node.actualSize.height / 2)) - modelBounds.y + margin.top);\n node.offsetX += dx;\n node.offsetY += dy;\n delete node.treeInfo;\n }\n return true;\n };\n /**\n * getModelBounds method\\\n *\n * @returns { Rect } getModelBounds method .\\\n * @param {IGraphObject[]} lNodes - provide the angle value.\n * @private\n */\n GraphLayoutManager.prototype.getModelBounds = function (lNodes) {\n lNodes = lNodes.slice();\n var rect = null;\n var rect1 = null;\n var node;\n for (var i = 0; i < lNodes.length; i++) {\n node = lNodes[parseInt(i.toString(), 10)];\n var bounds = getGraphBounds(node);\n rect = new Rect(node.treeInfo.tag ? node.treeInfo.tag.location.x : bounds.x, node.treeInfo.tag ? node.treeInfo.tag.location.y : bounds.y, node.actualSize.width, node.actualSize.height);\n if (rect1) {\n rect1 = rect1.uniteRect(rect);\n }\n else {\n rect1 = rect;\n }\n }\n return rect1;\n };\n GraphLayoutManager.prototype.updateLayout1 = function (nodesToLayout, symmetricLayout) {\n this.detectCyclesInGraph(nodesToLayout);\n var nodesCount = nodesToLayout.length;\n if (nodesCount > 0) {\n var cycleConnColln = [];\n var nodes = [];\n var nodeSymbols = [];\n for (var s = 0; s < nodesToLayout.length; s++) {\n var nd = nodesToLayout[parseInt(s.toString(), 10)];\n if (nd.treeInfo.isCycleEdge === undefined) {\n nd.treeInfo.isCycleEdge = false;\n }\n if (nd.treeInfo.graphType === 'Connector' && !nd.treeInfo.isCycleEdge) {\n nodes.push(nd);\n }\n else if (nd.treeInfo.graphType === 'Connector') {\n cycleConnColln.push(nd);\n }\n else {\n nodeSymbols.push(nd);\n }\n }\n nodes = nodes.concat(nodeSymbols);\n nodes = cycleConnColln.concat(nodes);\n while (nodesCount > this.dictionaryLength(this.passedNodes)) {\n this.getNodesToPosition(nodes);\n if (this.selectedNode == null) {\n continue;\n }\n symmetricLayout.doLayout(this);\n this.selectedNode = null;\n this.visitedStack = [];\n }\n this.passedNodes = null;\n this.selectedNode = null;\n }\n return false;\n };\n GraphLayoutManager.prototype.getNodesToPosition = function (nodes) {\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[parseInt(i.toString(), 10)];\n this.selectNodes(node);\n break;\n }\n };\n GraphLayoutManager.prototype.selectNodes = function (node) {\n var nodeGraph = node;\n if (node.treeInfo.graphType === 'Connector') {\n this.exploreGraphEdge(node);\n }\n else if (nodeGraph != null) {\n if (this.addNode(node, 'passed')) {\n this.addNode(node, 'selected');\n if (this.isConnectedToAnotherNode(nodeGraph)) {\n this.selectedNode = { treeInfo: {} };\n this.selectedNode.treeInfo.LeftMargin = 10;\n this.selectedNode.treeInfo.TopMargin = 10;\n this.selectConnectedNodes(nodeGraph);\n }\n }\n }\n };\n GraphLayoutManager.prototype.selectConnectedNodes = function (nodeGraph) {\n var graph = this.selectedNode;\n if (!graph.treeInfo.GraphNodes) {\n graph.treeInfo.GraphNodes = {};\n }\n var node = nodeGraph;\n this.addNode(node, 'passed');\n var nodeName = node.id;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n var gnNode = this.addGraphNode(node);\n this.getConnectedRelatives(gnNode);\n this.exploreRelatives(nodeGraph);\n }\n else {\n var graphNode = graph.treeInfo.GraphNodes[\"\" + nodeName];\n if (graphNode.treeInfo.Added) {\n graphNode.treeInfo.Added = false;\n this.getConnectedRelatives(graphNode);\n this.exploreRelatives(nodeGraph);\n }\n }\n };\n GraphLayoutManager.prototype.exploreRelatives = function (nodeGraph) {\n this.exploreRelatives1(nodeGraph, 'Parents');\n this.exploreRelatives1(nodeGraph, 'Children');\n };\n GraphLayoutManager.prototype.exploreRelatives1 = function (nodeGraph, relativesToExplore) {\n var edges = [];\n if (relativesToExplore === 'Parents') {\n edges = nodeGraph.inEdges;\n }\n else {\n edges = nodeGraph.outEdges;\n }\n for (var i = 0; i < edges.length; i++) {\n var edge = this.nameTable[edges[parseInt(i.toString(), 10)]];\n if (this.addNode(edge, 'passed')) {\n var fromNode = this.nameTable[edge.sourceID];\n var toNode = this.nameTable[edge.targetID];\n if (relativesToExplore === 'Parents' && fromNode != null &&\n collectionContains(fromNode.id, this.nodes)) {\n this.selectConnectedNodes(this.nameTable[edge.sourceID]);\n }\n else if (relativesToExplore === 'Children' && toNode != null &&\n collectionContains(toNode.id, this.nodes)) {\n this.selectConnectedNodes(this.nameTable[edge.targetID]);\n }\n }\n }\n };\n GraphLayoutManager.prototype.getConnectedRelatives = function (graphNode) {\n this.getConnectedParents(graphNode);\n this.getConnectedChildren(graphNode);\n };\n GraphLayoutManager.prototype.dictionaryContains = function (obj, keyObj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n if (keys[parseInt(i.toString(), 10)] === keyObj.id) {\n return true;\n }\n }\n return false;\n };\n GraphLayoutManager.prototype.dictionaryLength = function (obj) {\n var keys = Object.keys(obj);\n return keys.length;\n };\n GraphLayoutManager.prototype.getConnectedChildren = function (graphNode) {\n var graph = this.selectedNode;\n var nodeGraph = graphNode;\n for (var s = 0; s < nodeGraph.outEdges.length; s++) {\n var edge = this.nameTable[nodeGraph.outEdges[parseInt(s.toString(), 10)]];\n if (!edge.treeInfo.isCycleEdge) {\n var node = this.nameTable[edge.targetID];\n if (collectionContains(node.id, this.nodes) && node != null && node.visible) {\n var gnNodeChildren = void 0;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n gnNodeChildren = this.addGraphNode(node);\n gnNodeChildren.treeInfo.Added = true;\n }\n else {\n gnNodeChildren = graph.treeInfo.GraphNodes[node.id];\n }\n if (!graphNode.treeInfo.children) {\n graphNode.treeInfo.children = [];\n }\n if (!gnNodeChildren.treeInfo.parents) {\n gnNodeChildren.treeInfo.parents = [];\n }\n this.setNode(gnNodeChildren.treeInfo.parents, graphNode);\n if (this.findNode(graphNode.treeInfo.children, gnNodeChildren.id) < 0) {\n graphNode.treeInfo.children.push(gnNodeChildren);\n }\n }\n }\n }\n };\n GraphLayoutManager.prototype.getConnectedParents = function (graphNode) {\n var graph = this.selectedNode;\n var nodeGraph = graphNode;\n for (var s = 0; s < nodeGraph.inEdges.length; s++) {\n var edge = this.nameTable[nodeGraph.inEdges[parseInt(s.toString(), 10)]];\n if (!edge.treeInfo.isCycleEdge) {\n var node = this.nameTable[edge.sourceID];\n if (collectionContains(node.id, this.nodes) && node != null && node.visible) {\n var gnNode = void 0;\n if (!this.dictionaryContains(graph.treeInfo.GraphNodes, node)) {\n gnNode = this.addGraphNode(node);\n gnNode.treeInfo.Added = true;\n }\n else {\n gnNode = graph.treeInfo.GraphNodes[node.id];\n }\n if (!graphNode.treeInfo.parents) {\n graphNode.treeInfo.parents = [];\n }\n if (!gnNode.treeInfo.children) {\n gnNode.treeInfo.children = [];\n }\n this.setNode(gnNode.treeInfo.children, graphNode);\n if (this.findNode(graphNode.treeInfo.parents, gnNode.id) < 0) {\n graphNode.treeInfo.parents.push(gnNode);\n }\n }\n }\n }\n };\n GraphLayoutManager.prototype.setNode = function (list, node) {\n var nIndex = this.findNode(list, node.id);\n if (nIndex >= 0 && nIndex < list.length) {\n list[parseInt(nIndex.toString(), 10)] = node;\n }\n else {\n list.push(node);\n }\n };\n GraphLayoutManager.prototype.findNode = function (list, fullName) {\n var nIndex = -1;\n if (list != null && fullName !== '') {\n for (var i = 0, nLength = list.length; i < nLength; i++) {\n var gnNode = list[parseInt(i.toString(), 10)];\n if (gnNode != null && gnNode.id === fullName) {\n nIndex = i;\n break;\n }\n }\n }\n return nIndex;\n };\n GraphLayoutManager.prototype.addGraphNode = function (node) {\n var graph = this.selectedNode;\n var gnNode = node;\n graph.treeInfo.GraphNodes[gnNode.id] = gnNode;\n var nodeHelper = this.mhelperSelectedNode;\n if (nodeHelper != null && node.id === nodeHelper.id) {\n this.mhelperSelectedNode = gnNode;\n }\n return gnNode;\n };\n GraphLayoutManager.prototype.isConnectedToAnotherNode = function (gnNode) {\n var bFoundConnectedNode = false;\n var edges = (gnNode.inEdges).concat(gnNode.outEdges);\n if (edges.length > 0) {\n if ((gnNode.inEdges != null) && (gnNode.inEdges.length > 0)) {\n bFoundConnectedNode = this.searchEdgeCollection(gnNode.inEdges, 'FromNode');\n }\n if ((!bFoundConnectedNode) && (gnNode.outEdges != null) && (gnNode.outEdges.length > 0)) {\n bFoundConnectedNode = this.searchEdgeCollection(gnNode.outEdges, 'ToNode');\n }\n }\n return bFoundConnectedNode;\n };\n GraphLayoutManager.prototype.searchEdgeCollection = function (edgesToSearchThrough, connectionDirection) {\n var bFoundConnectedNode = false;\n for (var i = 0; i < edgesToSearchThrough.length - 1; i++) {\n var edge = this.nameTable[edgesToSearchThrough[parseInt(i.toString(), 10)]];\n if (!this.addNode(edge, 'passed')) {\n continue;\n }\n if (!edge.treeInfo.isCycleEdge && ((connectionDirection === 'FromNode' && this.nameTable[edge.sourceID] != null)\n || (connectionDirection === 'ToNode' && this.nameTable[edge.targetID] != null))) {\n bFoundConnectedNode = true;\n break;\n }\n }\n return bFoundConnectedNode;\n };\n GraphLayoutManager.prototype.exploreGraphEdge = function (node) {\n var nodeLink = node;\n if (nodeLink != null && !nodeLink.treeInfo.isCycleEdge && this.addNode(node, 'passed')) {\n this.addNode(node, 'selected');\n var fromNode = this.nameTable[nodeLink.sourceID];\n var toNode = this.nameTable[nodeLink.targetID];\n if (fromNode != null) {\n this.selectNodes(fromNode);\n }\n }\n };\n GraphLayoutManager.prototype.addNode = function (nodeToAdd, collectionToAdd) {\n var bResult = true;\n var node = nodeToAdd;\n if (collectionToAdd === 'passed' || !node.visible) {\n if (!this.dictionaryContains(this.passedNodes, node)) {\n this.passedNodes[node.id] = node;\n }\n }\n if (!node.visible) {\n return false;\n }\n return bResult;\n };\n GraphLayoutManager.prototype.detectCyclesInGraph = function (nodes) {\n var vertex = [];\n var currentStack = [];\n for (var k = 0; k < nodes.length; k++) {\n if (!(nodes[parseInt(k.toString(), 10)].treeInfo.graphType === 'Connector')) {\n vertex.push(nodes[parseInt(k.toString(), 10)]);\n }\n }\n if (vertex.length > 0) {\n currentStack.push(vertex[0]);\n this.visitedStack.push(vertex[0]);\n while (currentStack.length > 0) {\n var top_1 = currentStack[currentStack.length - 1];\n var childNodes = this.getUnVisitedChildNodes(top_1);\n if (childNodes.length > 0) {\n var child = childNodes[0];\n var currentEdge = childNodes[childNodes.length - 1];\n if (collectionContains(child.id, this.visitedStack)) {\n currentEdge.treeInfo.isCycleEdge = true;\n this.cycleEdgesCollection.push(currentEdge);\n }\n else {\n currentStack.push(child);\n this.visitedStack.splice(0, 0, child);\n }\n }\n else {\n currentStack.pop();\n }\n }\n }\n };\n GraphLayoutManager.prototype.getUnVisitedChildNodes = function (top) {\n var childNodes = [];\n if (top.outEdges.length > 0) {\n for (var i = 0; i < top.outEdges.length; i++) {\n var con = this.nameTable[top.outEdges[parseInt(i.toString(), 10)]];\n if (!collectionContains(con.id, this.visitedStack)) {\n var toNode = this.nameTable[con.targetID];\n if (toNode != null) {\n childNodes.push(toNode);\n }\n childNodes.push(con);\n this.visitedStack.splice(0, 0, con);\n return childNodes;\n }\n }\n return childNodes;\n }\n return childNodes;\n };\n return GraphLayoutManager;\n}());\nexport { GraphLayoutManager };\n/**\n * getGraphBounds method\\\n *\n * @returns { void } getGraphBounds method .\\\n * @param {IGraphObject} node - provide the angle value.\n * @private\n */\nfunction getGraphBounds(node) {\n var x = node.offsetX - node.actualSize.width * node.pivot.x;\n var y = node.offsetY - node.actualSize.height * node.pivot.y;\n return new Rect(x, y, node.actualSize.width, node.actualSize.height);\n}\n/**\n * @param id\n * @param coll\n */\n/**\n * collectionContains method\\\n *\n * @returns { boolean } collectionContains method .\\\n * @param {string} id - provide the id value.\n * @param {IGraphObject[]} coll - provide the id value.\n * @private\n */\nfunction collectionContains(id, coll) {\n for (var i = 0; i < coll.length; i++) {\n if (coll[parseInt(i.toString(), 10)].id === id) {\n return true;\n }\n }\n return false;\n}\n","import { OrthogonalSegment } from '../objects/connector';\nimport { Rect as RectModel } from '../primitives/rect';\nimport { Point } from '../primitives/point';\nimport { findDistance, getConnectorDirection, intersect2 } from '../utility/diagram-util';\n/**\n * Connects diagram objects with layout algorithm\n */\nvar ComplexHierarchicalTree = /** @class */ (function () {\n /**\n * Constructor for the hierarchical tree layout module\n *\n * @private\n */\n function ComplexHierarchicalTree() {\n //constructs the layout module\n }\n /**\n * To destroy the hierarchical tree module\n *\n * @returns {void}\n * @private\n */\n ComplexHierarchicalTree.prototype.destroy = function () {\n /**\n * Destroy method performed here\n */\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n ComplexHierarchicalTree.prototype.getModuleName = function () {\n /**\n * Returns the module name of the layout\n *\n */\n return 'ComplexHierarchicalTree';\n };\n /**\n * doLayout method\\\n *\n * @returns { void } doLayout method .\\\n * @param {INode[]} nodes - provide the nodes value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layout - provide the layout value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {Diagram} diagram - provide the diagram model.\n * @private\n */\n ComplexHierarchicalTree.prototype.doLayout = function (nodes, nameTable, layout, viewPort, diagram) {\n new HierarchicalLayoutUtil().doLayout(nodes, nameTable, layout, viewPort, diagram);\n };\n ComplexHierarchicalTree.prototype.getLayoutNodesCollection = function (nodes) {\n var nodesCollection = [];\n var node;\n var parentId = 'parentId';\n var processId = 'processId';\n for (var i = 0; i < nodes.length; i++) {\n node = nodes[parseInt(i.toString(), 10)];\n //885697:Position of root node without the child node in complex hierarchical layout is not proper\n if (((node.inEdges.length + node.outEdges.length > 0) || (node.offsetX === 0 && node.offsetY === 0)) &&\n !node['' + parentId] && !node['' + processId]) {\n nodesCollection.push(node);\n }\n }\n return nodesCollection;\n };\n return ComplexHierarchicalTree;\n}());\nexport { ComplexHierarchicalTree };\n/**\n * Utility that arranges the nodes in hierarchical structure\n */\nvar HierarchicalLayoutUtil = /** @class */ (function () {\n function HierarchicalLayoutUtil() {\n this.nameTable = {};\n this.crossReduction = new CrossReduction();\n /**\n * The preferred vertical offset between edges exiting a vertex Default is 2.\n */\n this.previousEdgeOffset = 6;\n /**\n * The preferred horizontal distance between edges exiting a vertex Default is 5.\n */\n this.previousEdgeDistance = 5;\n /**\n * Holds the collection vertices, that are equivalent to nodes to be arranged\n */\n this.jettyPositions = {};\n /**\n * Internal cache of bottom-most value of Y for each rank\n */\n this.rankBottomY = null;\n /**\n * Internal cache of bottom-most value of X for each rank\n */\n this.limitX = null;\n /**\n * Internal cache of top-most values of Y for each rank\n */\n this.rankTopY = null;\n /**\n * The minimum parallelEdgeSpacing value is 12.\n */\n this.parallelEdgeSpacing = 10;\n /**\n * The minimum distance for an edge jetty from a vertex Default is 12.\n */\n this.minEdgeJetty = 12;\n }\n //Defines a vertex that is equivalent to a node object\n HierarchicalLayoutUtil.prototype.createVertex = function (node, value, x, y, width, height) {\n var geometry = { x: x, y: y, width: width, height: height };\n var vertex = {\n value: value, geometry: geometry, name: value, vertex: true,\n inEdges: node.inEdges.slice(), outEdges: node.outEdges.slice()\n };\n return vertex;\n };\n /**\n * Initializes the edges collection of the vertices\\\n *\n * @returns { IConnector[] } Initializes the edges collection of the vertices\\\n * @param {Vertex} node - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdges = function (node) {\n var edges = [];\n if (node) {\n for (var i = 0; node.inEdges.length > 0 && i < node.inEdges.length; i++) {\n edges.push(this.nameTable[node.inEdges[parseInt(i.toString(), 10)]]);\n }\n for (var i = 0; node.outEdges.length > 0 && i < node.outEdges.length; i++) {\n edges.push(this.nameTable[node.outEdges[parseInt(i.toString(), 10)]]);\n }\n }\n return edges;\n };\n //Finds the root nodes of the layout\n HierarchicalLayoutUtil.prototype.findRoots = function (vertices) {\n var roots = [];\n var best = null;\n var maxDiff = -100000;\n for (var _i = 0, _a = Object.keys(vertices); _i < _a.length; _i++) {\n var i = _a[_i];\n var cell = vertices[\"\" + i];\n var conns = this.getEdges(cell);\n var outEdges = 0;\n var inEdges = 0;\n for (var k = 0; k < conns.length; k++) {\n var src = this.getVisibleTerminal(conns[parseInt(k.toString(), 10)], true);\n if (src.name === cell.name) {\n outEdges++;\n }\n else {\n inEdges++;\n }\n }\n if (inEdges === 0 && outEdges > 0) {\n roots.push(cell);\n }\n var diff = outEdges - inEdges;\n if (diff > maxDiff) {\n maxDiff = diff;\n best = cell;\n }\n }\n if (roots.length === 0 && best != null) {\n roots.push(best);\n }\n return roots;\n };\n /**\n * Returns the source/target vertex of the given connector \\\n *\n * @returns { Vertex } Returns the source/target vertex of the given connector \\\n * @param {IConnector} edge - provide the node value.\n * @param {boolean} source - provide the node value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getVisibleTerminal = function (edge, source) {\n var terminalCache = this.nameTable[edge.targetID];\n if (source) {\n terminalCache = this.nameTable[edge.sourceID];\n }\n for (var i = 0; i < this.vertices.length; i++) {\n if (this.vertices[parseInt(i.toString(), 10)].name === terminalCache.id) {\n return this.vertices[parseInt(i.toString(), 10)];\n }\n }\n return null;\n };\n /**\n * Traverses each sub tree, ensures there is no cycle in traversing \\\n *\n * @returns { {} } Traverses each sub tree, ensures there is no cycle in traversing .\\\n * @param {Vertex} vertex - provide the vertex value.\n * @param {boolean} directed - provide the directed value.\n * @param {IConnector} edge - provide the edge value.\n * @param {{}} currentComp - provide the currentComp value.\n * @param {{}[]} hierarchyVertices - provide the hierarchyVertices value.\n * @param {{}} filledVertices - provide the filledVertices value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.traverse = function (vertex, directed, edge, currentComp, hierarchyVertices, filledVertices) {\n if (vertex != null) {\n var vertexID = vertex.name;\n if ((filledVertices == null ? true : filledVertices[\"\" + vertexID] != null)) {\n if (currentComp[\"\" + vertexID] == null) {\n currentComp[\"\" + vertexID] = vertex;\n }\n if (filledVertices != null) {\n delete filledVertices[\"\" + vertexID];\n }\n var edges = this.getEdges(vertex);\n var edgeIsSource = [];\n for (var i = 0; i < edges.length; i++) {\n edgeIsSource[parseInt(i.toString(), 10)] = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true) === vertex;\n }\n for (var i = 0; i < edges.length; i++) {\n if (!directed || edgeIsSource[parseInt(i.toString(), 10)]) {\n var next = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], !edgeIsSource[parseInt(i.toString(), 10)]);\n var netCount = 1;\n for (var j = 0; j < edges.length; j++) {\n if (j === i) {\n continue;\n }\n else {\n var isSource2 = edgeIsSource[parseInt(j.toString(), 10)];\n var otherTerm = this.getVisibleTerminal(edges[parseInt(j.toString(), 10)], !isSource2);\n if (otherTerm === next) {\n if (isSource2) {\n netCount++;\n }\n else {\n netCount--;\n }\n }\n }\n }\n if (netCount >= 0) {\n currentComp = this.traverse(next, directed, edges[parseInt(i.toString(), 10)], currentComp, hierarchyVertices, filledVertices);\n }\n }\n }\n }\n else {\n if (currentComp[\"\" + vertexID] == null) {\n // We've seen this vertex before, but not in the current component This component and the one it's in need to be merged\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var comp = hierarchyVertices[parseInt(i.toString(), 10)];\n if (comp[\"\" + vertexID] != null) {\n for (var _i = 0, _a = Object.keys(comp); _i < _a.length; _i++) {\n var key = _a[_i];\n currentComp[\"\" + key] = comp[\"\" + key];\n }\n // Remove the current component from the hierarchy set\n hierarchyVertices.splice(i, 1);\n return currentComp;\n }\n }\n }\n }\n }\n return currentComp;\n };\n //Returns the bounds of the given vertices\n HierarchicalLayoutUtil.prototype.getModelBounds = function (nodes) {\n nodes = nodes.slice();\n var rect = null;\n var rect1 = null;\n for (var i = 0; i < nodes.length; i++) {\n rect = nodes[parseInt(i.toString(), 10)].geometry;\n if (rect1) {\n var right = Math.max(rect1.x + rect1.width, rect.x + rect.width);\n var bottom = Math.max(rect1.y + rect1.height, rect.y + rect.height);\n rect1.x = Math.min(rect1.x, rect.x);\n rect1.y = Math.min(rect1.y, rect.y);\n rect1.width = right - rect1.x;\n rect1.height = bottom - rect1.y;\n }\n else {\n rect1 = { x: rect.x, y: rect.y, width: rect.width, height: rect.height };\n }\n }\n return rect1;\n };\n /* tslint:disable */\n /**\n * Initializes the layouting process \\\n *\n * @returns { Vertex } Initializes the layouting process \\\n * @param {INode[]} nodes - provide the node value.\n * @param {{}} nameTable - provide the nameTable value.\n * @param {Layout} layoutProp - provide the layoutProp value.\n * @param {PointModel} viewPort - provide the viewPort value.\n * @param {Diagram} diagram - provide the diagram model.\n * @private\n */\n HierarchicalLayoutUtil.prototype.doLayout = function (nodes, nameTable, layoutProp, viewPort, diagram) {\n this.nameTable = nameTable;\n var canEnableRouting = layoutProp.enableRouting;\n var layout = {\n horizontalSpacing: layoutProp.horizontalSpacing, verticalSpacing: layoutProp.verticalSpacing,\n orientation: layoutProp.orientation, marginX: layoutProp.margin.left, marginY: layoutProp.margin.top,\n enableLayoutRouting: canEnableRouting\n };\n var model;\n var matrixModel = new MatrixModel();\n matrixModel.edgeMapper = [];\n matrixModel.diagram = diagram;\n var nodeWithMultiEdges = [];\n this.vertices = [];\n var filledVertexSet = {};\n for (var i = 0; i < nodes.length; i++) {\n var node = this.createVertex(nodes[parseInt(i.toString(), 10)], nodes[parseInt(i.toString(), 10)].id, 0, 0, nodes[parseInt(i.toString(), 10)].actualSize.width, nodes[parseInt(i.toString(), 10)].actualSize.height);\n this.vertices.push(node);\n if (nodes[parseInt(i.toString(), 10)].inEdges.length > 0\n || nodes[parseInt(i.toString(), 10)].outEdges.length > 0) {\n nodeWithMultiEdges.push(nodes[parseInt(i.toString(), 10)]);\n }\n filledVertexSet[node.name] = node;\n if (matrixModel) {\n var outEdges = nodes[parseInt(i.toString(), 10)].outEdges.slice();\n for (var j = 0; j < outEdges.length; j++) {\n var outEdge = nameTable[outEdges[parseInt(j.toString(), 10)]];\n matrixModel.setEdgeMapper({ key: outEdge, value: [] });\n }\n }\n }\n var hierarchyVertices = [];\n //let candidateRoots: Vertex[];\n var candidateRoots = this.findRoots(filledVertexSet);\n for (var i = 0; i < candidateRoots.length; i++) {\n var vertexSet = {};\n hierarchyVertices.push(vertexSet);\n this.traverse(candidateRoots[parseInt(i.toString(), 10)], true, null, vertexSet, hierarchyVertices, filledVertexSet);\n }\n var limit = { marginX: 0, marginY: 0 };\n var tmp = [];\n var checkLinear = false;\n var matrixModelObject;\n for (var i = 0; i < hierarchyVertices.length; i++) {\n var vertexSet = hierarchyVertices[parseInt(i.toString(), 10)];\n // eslint-disable-next-line\n for (var _i = 0, _a = Object.keys(vertexSet); _i < _a.length; _i++) {\n var key = _a[_i];\n tmp.push(vertexSet[\"\" + key]);\n }\n if ((layoutProp.arrangement === 'Linear' && i === hierarchyVertices.length - 1) || canEnableRouting) {\n checkLinear = true;\n }\n model = new MultiParentModel(this, tmp, candidateRoots, layout);\n this.cycleStage(model);\n this.layeringStage(model);\n //897503: Child Nodes position in ComplexHierarchicalTree updated wrongly results in connector overlap\n if ((matrixModel && layoutProp.connectionPointOrigin === 'DifferentPoint') || checkLinear) {\n matrixModelObject = { model: model, matrix: [], rowOffset: [], roots: [] };\n matrixModel.arrangeElements(matrixModelObject, layoutProp);\n layoutProp.ranks = matrixModelObject.model.ranks;\n }\n else {\n if (layoutProp.arrangement === 'Nonlinear') {\n this.crossingStage(model);\n limit = this.placementStage(model, limit.marginX, limit.marginY);\n tmp = [];\n }\n }\n }\n var modelBounds = this.getModelBounds(this.vertices);\n this.updateMargin(layoutProp, layout, modelBounds, viewPort);\n for (var i = 0; i < this.vertices.length; i++) {\n var clnode = this.vertices[parseInt(i.toString(), 10)];\n if (clnode) { //Check what is node.source/node.target - && !clnode.source && !clnode.target) {\n var dnode = this.nameTable[clnode.name];\n dnode.offsetX = 0;\n dnode.offsetY = 0;\n //initialize layout\n var dx = (clnode.geometry.x - (dnode.offsetX - (dnode.actualSize.width / 2))) + layout.marginX;\n var dy = (clnode.geometry.y - (dnode.offsetY - (dnode.actualSize.height / 2))) + layout.marginY;\n var x = dx;\n var y = dy;\n if (layout.orientation === 'BottomToTop') {\n if (canEnableRouting) {\n clnode.geometry.y = modelBounds.height - dy - dnode.actualSize.height / 2;\n }\n y = modelBounds.height - dy;\n }\n else if (layout.orientation === 'RightToLeft') {\n x = modelBounds.width - dx;\n }\n dnode.offsetX += x - dnode.offsetX;\n dnode.offsetY += y - dnode.offsetY;\n }\n }\n if (!checkLinear) {\n for (var i = 0; i < this.vertices.length; i++) {\n this.isNodeOverLap(this.nameTable[this.vertices[parseInt(i.toString(), 10)].name], layoutProp);\n }\n }\n if ((matrixModel && layoutProp.connectionPointOrigin === 'DifferentPoint') || canEnableRouting) {\n matrixModel.updateLayout(viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable);\n }\n if (canEnableRouting) {\n var vertices = {};\n var matrixrow1 = void 0;\n for (var p = 0; p < matrixModelObject.matrix.length; p++) {\n matrixrow1 = matrixModelObject.matrix[parseInt(p.toString(), 10)].value;\n for (var q = 0; q < matrixrow1.length; q++) {\n var matrixCell = matrixrow1[parseInt(q.toString(), 10)];\n for (var r = 0; r < matrixCell.cells.length; r++) {\n var cell = matrixCell.cells[parseInt(r.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n vertices[internalVertex.id] = internalVertex;\n }\n }\n }\n }\n this.updateRankValuess(model);\n for (var i = 0, a = Object.keys(vertices); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n this.setVertexLocationValue(vertices[\"\" + key], layoutProp.orientation, modelBounds);\n }\n this.localEdgeProcessing(model, vertices);\n this.assignRankOffset(model);\n this.updateEdgeSetXYValue(model);\n var edges = this.getValues(model.edgeMapper);\n for (var i = 0; i < edges.length; i++) {\n if ((edges[parseInt(i.toString(), 10)]).x.length > 0) {\n for (var j = 0; j < (edges[parseInt(i.toString(), 10)]).x.length; j++) {\n if (layoutProp.orientation !== 'RightToLeft' && layoutProp.orientation !== 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layout.marginX;\n }\n else if (layoutProp.orientation === 'LeftToRight') {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n else {\n (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)]\n = (edges[parseInt(i.toString(), 10)]).x[parseInt(j.toString(), 10)] + layoutProp.verticalSpacing / 2;\n }\n }\n }\n this.setEdgePosition(edges[parseInt(i.toString(), 10)], model, layout);\n }\n for (var p = 0; p < this.vertices.length; p++) {\n var clnode = this.vertices[parseInt(p.toString(), 10)];\n if (clnode.outEdges.length > 1) {\n this.updateMultiOutEdgesPoints(clnode);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.setEdgeXY = function (ranks, node, spacing, layer) {\n if (ranks && node.source.id) {\n var targetValue = void 0;\n var sourceValue = void 0;\n for (var i = 0; i < ranks.length; i++) {\n for (var k = 0; k < ranks[parseInt(i.toString(), 10)].length; k++) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id\n || ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id) {\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.target.id\n && targetValue === undefined) {\n targetValue = i;\n }\n if (ranks[parseInt(i.toString(), 10)][parseInt(k.toString(), 10)].id === node.source.id\n && sourceValue === undefined) {\n sourceValue = i;\n }\n }\n }\n }\n var rankOffsetValue = void 0;\n for (var m = targetValue; m <= sourceValue; m++) {\n if (rankOffsetValue === undefined) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n if (rankOffsetValue !== undefined && rankOffsetValue < this[m + '_RankOffset']) {\n rankOffsetValue = this[m + '_RankOffset'];\n }\n }\n if (this['edges'] === undefined) {\n this['edges'] = {};\n }\n this['edges'][(node).ids[0]] = { x: node.x, y: 0 };\n var value = this.resetOffsetXValue(rankOffsetValue, spacing / 10);\n node.x[layer - node.minRank - 1] = value;\n for (var k = 0; k < (node).edges.length; k++) {\n (node).edges[parseInt(k.toString(), 10)]['levelSkip'] = true;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.resetOffsetXValue = function (value, spacing) {\n for (var i = 0, a = Object.keys(this['edges']); i < a.length; i++) {\n var key = a[parseInt(i.toString(), 10)];\n var length_1 = this['edges'][\"\" + key].x;\n for (var j = 0; j < length_1.length; j++) {\n var offsetValue = void 0;\n if (this['edges'][\"\" + key].x[parseInt(j.toString(), 10)] === value) {\n offsetValue = value + spacing;\n offsetValue = this.resetOffsetXValue(offsetValue, spacing);\n return offsetValue;\n }\n }\n }\n return value;\n };\n HierarchicalLayoutUtil.prototype.setEdgePosition = function (cell, model, layout) {\n // For parallel edges we need to seperate out the points a\n // little\n var offsetX = 0;\n // Only set the edge control points once\n if (cell.temp[0] !== 101207) {\n if (cell.maxRank === undefined) {\n cell.maxRank = -1;\n }\n if (cell.minRank === undefined) {\n cell.minRank = -1;\n }\n var maxRank = cell.maxRank;\n var minRank = cell.minRank;\n if (maxRank === minRank) {\n maxRank = cell.source.maxRank;\n minRank = cell.target.minRank;\n }\n var parallelEdgeCount = 0;\n var jettys = this.jettyPositions[cell.ids[0]];\n if (cell.isReversed === undefined) {\n cell.isReversed = false;\n }\n else {\n cell.isReversed = true;\n }\n var source = cell.isReversed ? cell.target.cell : cell.source.cell;\n var layoutReversed = false;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'LeftToRight') {\n if (model.layout.orientation === 'TopToBottom') {\n layoutReversed = false;\n }\n if (model.layout.orientation === 'LeftToRight') {\n if (!cell.isReversed) {\n layoutReversed = false;\n }\n else {\n layoutReversed = false;\n }\n }\n }\n else {\n if (!cell.isReversed) {\n layoutReversed = true;\n }\n }\n for (var i = 0; i < cell.edges.length; i++) {\n var realEdge = cell.edges[parseInt(i.toString(), 10)];\n var realSource = this.getVisibleTerminal(realEdge, true);\n //List oldPoints = graph.getPoints(realEdge);\n var newPoints = [];\n // Single length reversed edges end up with the jettys in the wrong\n // places. Since single length edges only have jettys, not segment\n // control points, we just say the edge isn't reversed in this section\n var reversed = cell.isReversed;\n // if(cell.isReversed===undefined){\n // reversed = false\n // }else{\n // reversed =cell.isReversed\n // }\n if (realSource !== source) {\n // The real edges include all core model edges and these can go\n // in both directions. If the source of the hierarchical model edge\n // isn't the source of the specific real edge in this iteration\n // treat if as reversed\n reversed = !reversed;\n }\n // First jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var y = reversed ?\n (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)]\n : this.rankTopY[parseInt(minRank.toString(), 10)])\n : (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)]\n : this.rankBottomY[parseInt(maxRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 1 + arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n y += jetty;\n }\n var x = jettys[parallelEdgeCount * 4 + arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n if (layout.orientation === 'LeftToRight') {\n newPoints.push(this.getPointvalue(y + jetty, x + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n }\n var loopStart = cell.x.length - 1;\n var loopLimit = -1;\n var loopDelta = -1;\n var currentRank = cell.maxRank - 1;\n if (reversed) {\n loopStart = 0;\n loopLimit = cell.x.length;\n loopDelta = 1;\n currentRank = cell.minRank + 1;\n }\n // Reversed edges need the points inserted in\n // reverse order\n for (var j = loopStart; (cell.maxRank !== cell.minRank) && j !== loopLimit; j += loopDelta) {\n // The horizontal position in a vertical layout\n var positionX = cell.x[parseInt(j.toString(), 10)] + offsetX;\n // This cell.x determines the deviated points of the connectors and jetty positions\n //determine the src and targetgeo points .\n // Work out the vertical positions in a vertical layout\n // in the edge buffer channels above and below this rank\n var topChannelY = (this.rankTopY[parseInt(currentRank.toString(), 10)]\n + this.rankBottomY[currentRank + 1]) / 2.0;\n var bottomChannelY = (this.rankTopY[currentRank - 1]\n + this.rankBottomY[parseInt(currentRank.toString(), 10)]) / 2.0;\n if (reversed) {\n var tmp = topChannelY;\n topChannelY = bottomChannelY;\n bottomChannelY = tmp;\n }\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(positionX, topChannelY + layout.marginY));\n newPoints.push(this.getPointvalue(positionX, bottomChannelY + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(topChannelY, positionX + layout.marginY));\n newPoints.push(this.getPointvalue(bottomChannelY, positionX + layout.marginY));\n }\n this.limitX = Math.max(this.limitX, positionX);\n currentRank += loopDelta;\n }\n // Second jetty of edge\n if (jettys != null) {\n var arrayOffset = reversed ? 2 : 0;\n var rankY = reversed ?\n (layoutReversed ? this.rankTopY[parseInt(maxRank.toString(), 10)]\n : this.rankBottomY[parseInt(maxRank.toString(), 10)])\n : (layoutReversed ? this.rankBottomY[parseInt(minRank.toString(), 10)]\n : this.rankTopY[parseInt(minRank.toString(), 10)]);\n var jetty = jettys[parallelEdgeCount * 4 + 3 - arrayOffset];\n if (reversed !== layoutReversed) {\n jetty = -jetty;\n }\n var y = rankY - jetty;\n var x = jettys[parallelEdgeCount * 4 + 2 - arrayOffset];\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n newPoints.push(this.getPointvalue(x, y + layout.marginY));\n }\n else {\n newPoints.push(this.getPointvalue(y, x + layout.marginY));\n }\n }\n this.setEdgePoints(realEdge, newPoints, model);\n // Increase offset so next edge is drawn next to\n // this one\n if (offsetX === 0.0) {\n offsetX = this.parallelEdgeSpacing;\n }\n else if (offsetX > 0) {\n offsetX = -offsetX;\n }\n else {\n offsetX = -offsetX + this.parallelEdgeSpacing;\n }\n parallelEdgeCount++;\n }\n cell.temp[0] = 101207;\n }\n };\n /* tslint:enable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n HierarchicalLayoutUtil.prototype.updateEdgeSetXYValue = function (model) {\n if (model.layout.enableLayoutRouting) {\n var isHorizontal = false;\n if (model.layout.orientation === 'LeftToRight' || model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n for (var i = 0; i < model.ranks.length; i++) {\n var rank = model.ranks[parseInt(i.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n if ((cell).edges && (cell).edges.length > 0) {\n var spacing = model.layout.horizontalSpacing > 0 ? (model.layout.horizontalSpacing / 2) : 15;\n var check = true;\n if (!(cell.minRank === i - 1 || cell.maxRank === i - 1)) {\n check = false;\n }\n if (check) {\n this.setXY(cell, i, undefined, isHorizontal ? true : false, model.ranks, spacing);\n }\n }\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getPreviousLayerConnectedCells = function (layer, cell) {\n if (cell.previousLayerConnectedCells == null) {\n cell.previousLayerConnectedCells = [];\n cell.previousLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsSource.length; i++) {\n var edge = cell.connectsAsSource[parseInt(i.toString(), 10)];\n if (edge.minRank === -1 || edge.minRank === layer - 1) {\n // No dummy nodes in edge, add node of other side of edge\n cell.previousLayerConnectedCells[0].push(edge.target);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.previousLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.previousLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.weightedValue > a.weightedValue) {\n return -1;\n }\n else if (b.weightedValue < a.weightedValue) {\n return 1;\n }\n }\n return 0;\n };\n /* tslint:disable */\n // eslint-disable-next-line\n HierarchicalLayoutUtil.prototype.localEdgeProcessing = function (model, vertices) {\n // Iterate through each vertex, look at the edges connected in\n // both directions.\n for (var rankIndex = 0; rankIndex < model.ranks.length; rankIndex++) {\n var rank = model.ranks[parseInt(rankIndex.toString(), 10)];\n for (var cellIndex = 0; cellIndex < rank.length; cellIndex++) {\n var cell = rank[parseInt(cellIndex.toString(), 10)];\n if (this.crossReduction.isVertex(cell)) {\n var currentCells = this.getPreviousLayerConnectedCells(rankIndex, cell);\n var currentRank = rankIndex - 1;\n // Two loops, last connected cells, and next\n for (var k = 0; k < 2; k++) {\n if (currentRank > -1\n && currentRank < model.ranks.length\n && currentCells != null\n && currentCells.length > 0) {\n var sortedCells = [];\n for (var j = 0; j < currentCells.length; j++) {\n var sorter = this.weightedCellSorter(currentCells[parseInt(j.toString(), 10)], this.getX(currentRank, currentCells[parseInt(j.toString(), 10)]));\n sortedCells.push(sorter);\n }\n sortedCells.sort(this.compare);\n cell.width = vertices[cell.id].cell.geometry.width;\n cell.height = vertices[cell.id].cell.geometry.height;\n var leftLimit = void 0;\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n cell.x[0] = vertices[cell.id].cell.geometry.x + vertices[cell.id].cell.geometry.width / 2;\n leftLimit = cell.x[0] - cell.width / 2 + vertices[cell.id].cell.geometry.height / 2;\n }\n else {\n cell.x[0] = vertices[cell.id].cell.geometry.y;\n leftLimit = cell.x[0];\n }\n var rightLimit = leftLimit + cell.width;\n // Connected edge count starts at 1 to allow for buffer\n // with edge of vertex\n var connectedEdgeCount = 0;\n var connectedEdgeGroupCount = 0;\n var connectedEdges = [];\n // Calculate width requirements for all connected edges\n for (var j = 0; j < sortedCells.length; j++) {\n var innerCell = sortedCells[parseInt(j.toString(), 10)].cell;\n var connections = void 0;\n if (this.crossReduction.isVertex(innerCell)) {\n // Get the connecting edge\n if (k === 0) {\n connections = cell.connectsAsSource;\n }\n else {\n connections = cell.connectsAsTarget;\n }\n for (var connIndex = 0; connIndex < connections.length; connIndex++) {\n if (connections[parseInt(connIndex.toString(), 10)].source === innerCell\n || connections[parseInt(connIndex.toString(), 10)].target === innerCell) {\n connectedEdgeCount += connections[parseInt(connIndex.toString(), 10)].edges\n .length;\n connectedEdgeGroupCount++;\n connectedEdges.push(connections[parseInt(connIndex.toString(), 10)]);\n }\n }\n }\n else {\n connectedEdgeCount += innerCell.edges.length;\n // eslint-disable-next-line\n connectedEdgeGroupCount++;\n connectedEdges.push(innerCell);\n }\n }\n var requiredWidth = (connectedEdgeCount + 1)\n * this.previousEdgeDistance;\n // Add a buffer on the edges of the vertex if the edge count allows\n if (cell.width > requiredWidth\n + (2 * this.previousEdgeDistance)) {\n leftLimit += this.previousEdgeDistance;\n rightLimit -= this.previousEdgeDistance;\n }\n var availableWidth = rightLimit - leftLimit;\n var edgeSpacing = availableWidth / connectedEdgeCount;\n var currentX = leftLimit + edgeSpacing / 2.0;\n var currentYOffset = this.minEdgeJetty - this.previousEdgeOffset;\n var maxYOffset = 0;\n for (var j = 0; j < connectedEdges.length; j++) {\n var numActualEdges = connectedEdges[parseInt(j.toString(), 10)].edges\n .length;\n if (this.jettyPositions === undefined) {\n this.jettyPositions = {};\n }\n var pos = this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]];\n if (pos == null) {\n pos = [];\n this.jettyPositions[connectedEdges[parseInt(j.toString(), 10)].ids[0]] = pos;\n }\n if (j < connectedEdgeCount / 2) {\n currentYOffset += this.previousEdgeOffset;\n }\n else if (j > connectedEdgeCount / 2) {\n currentYOffset -= this.previousEdgeOffset;\n }\n // Ignore the case if equals, this means the second of 2\n // jettys with the same y (even number of edges)\n for (var m = 0; m < numActualEdges; m++) {\n pos[m * 4 + k * 2] = currentX;\n currentX += edgeSpacing;\n pos[m * 4 + k * 2 + 1] = currentYOffset;\n }\n maxYOffset = Math.max(maxYOffset, currentYOffset);\n }\n }\n currentCells = this.getNextLayerConnectedCells(rankIndex, cell);\n currentRank = rankIndex + 1;\n }\n }\n }\n }\n };\n /* tslint:enable */\n HierarchicalLayoutUtil.prototype.updateMultiOutEdgesPoints = function (clnode) {\n for (var i = 0; i < clnode.outEdges.length / 2; i++) {\n var connector1 = this.nameTable[clnode.outEdges[parseInt(i.toString(), 10)]];\n var connector2 = this.nameTable[clnode.outEdges[clnode.outEdges.length - (i + 1)]];\n var geometry = 'geometry';\n //900930: To exclude self-loop in layouts\n if (connector1.sourceID !== connector2.targetID && connector1.targetID !== connector2.sourceID) {\n connector2[\"\" + geometry].points[0].y = connector1[\"\" + geometry].points[0].y;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getNextLayerConnectedCells = function (layer, cell) {\n if (cell.nextLayerConnectedCells == null) {\n cell.nextLayerConnectedCells = [];\n cell.nextLayerConnectedCells[0] = [];\n for (var i = 0; i < cell.connectsAsTarget.length; i++) {\n var edge = cell.connectsAsTarget[parseInt(i.toString(), 10)];\n if (edge.maxRank === -1 || edge.maxRank === layer + 1) {\n // Either edge is not in any rank or\n // no dummy nodes in edge, add node of other side of edge\n cell.nextLayerConnectedCells[0].push(edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell.nextLayerConnectedCells[0].push(edge);\n }\n }\n }\n return cell.nextLayerConnectedCells[0];\n };\n HierarchicalLayoutUtil.prototype.getX = function (layer, cell) {\n if (this.crossReduction.isVertex(cell)) {\n return cell.x[0];\n }\n else if (!this.crossReduction.isVertex(cell)) {\n return cell.x[layer - cell.minRank - 1] || cell.temp[layer - cell.minRank - 1];\n }\n return 0.0;\n };\n HierarchicalLayoutUtil.prototype.getGeometry = function (edge) {\n var geometry = 'geometry';\n return edge[\"\" + geometry];\n };\n HierarchicalLayoutUtil.prototype.setEdgePoints = function (edge, points, model) {\n if (edge != null) {\n var geometryValue = 'geometry';\n var geometry = this.getGeometry(edge);\n if (points != null) {\n for (var i = 0; i < points.length; i++) {\n // eslint-disable-next-line\n points[i].x = points[i].x;\n // eslint-disable-next-line\n points[i].y = points[i].y;\n }\n }\n geometry.points = points;\n edge[\"\" + geometryValue] = geometry;\n }\n };\n HierarchicalLayoutUtil.prototype.assignRankOffset = function (model) {\n if (model) {\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankCoordinatesAssigment(i, model);\n }\n }\n };\n HierarchicalLayoutUtil.prototype.rankCoordinatesAssigment = function (rankValue, model) {\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var spacing = model.layout.horizontalSpacing;\n var localOffset;\n for (var i = 0; i < rank.length; i++) {\n if (this[rankValue + '_' + 'RankOffset'] === undefined) {\n this[rankValue + '_' + 'RankOffset'] = 0;\n }\n localOffset = rank[parseInt(i.toString(), 10)].x[0];\n if (this[rankValue + '_' + 'RankOffset'] < localOffset) {\n this[rankValue + '_' + 'RankOffset'] = localOffset + rank[parseInt(i.toString(), 10)].width / 2 + spacing;\n }\n }\n };\n HierarchicalLayoutUtil.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n HierarchicalLayoutUtil.prototype.updateRankValuess = function (model) {\n this.rankTopY = [];\n this.rankBottomY = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.rankTopY[parseInt(i.toString(), 10)] = Number.MAX_VALUE;\n this.rankBottomY[parseInt(i.toString(), 10)] = -Number.MAX_VALUE;\n }\n };\n HierarchicalLayoutUtil.prototype.setVertexLocationValue = function (cell, orientation, modelBounds) {\n var cellGeomtry = cell.cell.geometry;\n var positionX;\n var positionY;\n if (orientation === 'TopToBottom' || orientation === 'BottomToTop') {\n positionX = cellGeomtry.x;\n positionY = cellGeomtry.y;\n }\n else {\n positionX = cellGeomtry.y;\n positionY = cellGeomtry.x;\n }\n if (orientation === 'RightToLeft') {\n // eslint-disable-next-line\n positionX = cellGeomtry.y;\n positionY = modelBounds.width - cellGeomtry.x - cellGeomtry.height;\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY);\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY + cellGeomtry.height);\n }\n else {\n this.rankTopY[cell.minRank] = Math.min(this.rankTopY[cell.minRank], positionY);\n this.rankBottomY[cell.minRank] = Math.max(this.rankBottomY[cell.minRank], positionY + cellGeomtry.height);\n }\n };\n HierarchicalLayoutUtil.prototype.calculateRectValue = function (dnode) {\n var rect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n rect.x = dnode.offsetX - dnode.actualSize.width / 2;\n rect.right = dnode.offsetX + dnode.actualSize.width / 2;\n rect.y = dnode.offsetY - dnode.actualSize.height / 2;\n rect.bottom = dnode.offsetY + dnode.actualSize.height / 2;\n return rect;\n };\n HierarchicalLayoutUtil.prototype.isNodeOverLap = function (dnode, layoutProp) {\n var nodeRect = { x: 0, y: 0, right: 0, bottom: 0, height: 0, width: 0 };\n for (var i = 0; i < this.vertices.length; i++) {\n var rect = { x: 0, y: 0, width: 0, height: 0 };\n //let tempnode1: INode;\n var tempnode1 = this.nameTable[this.vertices[parseInt(i.toString(), 10)].value];\n if (dnode.id !== tempnode1.id && tempnode1.offsetX !== 0 && tempnode1.offsetY !== 0) {\n nodeRect = this.calculateRectValue(dnode);\n rect = this.calculateRectValue(tempnode1);\n if (this.isIntersect(rect, nodeRect, layoutProp)) {\n if (layoutProp.orientation === 'TopToBottom' || layoutProp.orientation === 'BottomToTop') {\n dnode.offsetX += layoutProp.horizontalSpacing;\n }\n else {\n dnode.offsetY += layoutProp.verticalSpacing;\n }\n this.isNodeOverLap(dnode, layoutProp);\n }\n }\n }\n };\n HierarchicalLayoutUtil.prototype.isIntersect = function (rect, nodeRect, layoutProp) {\n if (!(Math.floor(rect.right + layoutProp.horizontalSpacing) <= Math.floor(nodeRect.x) ||\n Math.floor(rect.x - layoutProp.horizontalSpacing) >= Math.floor(nodeRect.right)\n || Math.floor(rect.y - layoutProp.verticalSpacing) >= Math.floor(nodeRect.bottom)\n || Math.floor(rect.bottom + layoutProp.verticalSpacing) <= Math.floor(nodeRect.y))) {\n return true;\n }\n else {\n return false;\n }\n };\n /* eslint-disable */\n HierarchicalLayoutUtil.prototype.updateMargin = function (layoutProp, layout, modelBounds, viewPort) {\n var viewPortBounds = { x: 0, y: 0, width: viewPort.x, height: viewPort.y };\n //let layoutBounds: Rect;\n var bounds = {\n x: modelBounds.x, y: modelBounds.y,\n right: modelBounds.x + modelBounds.width,\n bottom: modelBounds.y + modelBounds.height\n };\n var layoutBounds = layoutProp.bounds ? layoutProp.bounds : viewPortBounds;\n if (layout.orientation === 'TopToBottom' || layout.orientation === 'BottomToTop') {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n layout.marginX = (layoutBounds.x - bounds.x) + layoutProp.margin.left;\n break;\n case 'Right':\n layout.marginX = layoutBounds.x + layoutBounds.width - layoutProp.margin.right - bounds.right;\n break;\n case 'Center':\n layout.marginX = layoutBounds.x + layoutBounds.width / 2 - (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n //const top: number;\n var top_1 = layoutBounds.y + layoutProp.margin.top;\n layout.marginY = layout.orientation === 'TopToBottom' ? top_1 : -top_1;\n break;\n case 'Bottom':\n //const bottom: number;\n var bottom = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom;\n layout.marginY = layout.orientation === 'TopToBottom' ? bottom - bounds.bottom : -(bottom - bounds.bottom);\n break;\n case 'Auto':\n case 'Center':\n //const center: number;\n var center = layoutBounds.y + layoutBounds.height / 2;\n layout.marginY = layout.orientation === 'TopToBottom' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.y + bounds.bottom) / 2;\n break;\n }\n }\n else {\n switch (layoutProp.horizontalAlignment) {\n case 'Auto':\n case 'Left':\n //let left: number;\n var left = layoutBounds.x + layoutProp.margin.left;\n layout.marginX = layout.orientation === 'LeftToRight' ? left : -left;\n break;\n case 'Right':\n var right = void 0;\n right = layoutBounds.x + layoutBounds.width - layoutProp.margin.right;\n layout.marginX = layout.orientation === 'LeftToRight' ? right - bounds.right : bounds.right - right;\n break;\n case 'Center':\n var center = void 0;\n center = layoutBounds.width / 2 + layoutBounds.x;\n layout.marginX = layout.orientation === 'LeftToRight' ?\n center - (bounds.y + bounds.bottom) / 2 : -center + (bounds.x + bounds.right) / 2;\n break;\n }\n switch (layoutProp.verticalAlignment) {\n case 'Top':\n layout.marginY = layoutBounds.y + layoutProp.margin.top - bounds.y;\n break;\n case 'Auto':\n case 'Center':\n layout.marginY = layoutBounds.y + layoutBounds.height / 2 - (bounds.y + bounds.bottom) / 2;\n break;\n case 'Bottom':\n layout.marginY = layoutBounds.y + layoutBounds.height - layoutProp.margin.bottom - bounds.bottom;\n break;\n }\n }\n };\n /* eslint-enable */\n //Handles positioning the nodes\n HierarchicalLayoutUtil.prototype.placementStage = function (model, marginX, marginY) {\n var placementStage = this.coordinateAssignment(marginX, marginY, parent, model);\n placementStage.model = model;\n placementStage.widestRankValue = null;\n this.placementStageExecute(placementStage);\n return {\n marginX: placementStage.marginX + model.layout.horizontalSpacing,\n marginY: placementStage.marginY + model.layout.verticalSpacing\n };\n };\n //Initializes the layout properties for positioning\n HierarchicalLayoutUtil.prototype.coordinateAssignment = function (marginX, marginY, parent, model) {\n var plalementChange = {};\n if (model.layout.orientation === 'TopToBottom' || model.layout.orientation === 'BottomToTop') {\n plalementChange.horizontalSpacing = model.layout.horizontalSpacing;\n plalementChange.verticalSpacing = model.layout.verticalSpacing;\n }\n else {\n plalementChange.horizontalSpacing = model.layout.verticalSpacing;\n plalementChange.verticalSpacing = model.layout.horizontalSpacing;\n }\n plalementChange.orientation = 'north';\n //Removed the conditions here. So check here in case of any issue\n plalementChange.marginX = plalementChange.marginX = marginX;\n plalementChange.marginY = plalementChange.marginY = marginY;\n return plalementChange;\n };\n //Calculate the largest size of the node either height or width depends upon the layoutorientation\n HierarchicalLayoutUtil.prototype.calculateWidestRank = function (plalementChange, graph, model) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var offset = -plalementChange.verticalSpacing;\n var lastRankMaxCellSize = 0.0;\n plalementChange.rankSizes = [];\n plalementChange.rankOffset = [];\n for (var rankValue = model.maxRank; rankValue >= 0; rankValue--) {\n var maxCellSize = 0.0;\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var localOffset = isHorizontal ? plalementChange.marginY : plalementChange.marginX;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var vertex = node;\n if (vertex.cell && (vertex.cell.inEdges || vertex.cell.outEdges)) {\n var obj = this.nameTable[vertex.cell.name];\n vertex.width = obj.actualSize.width;\n vertex.height = obj.actualSize.height;\n maxCellSize = Math.max(maxCellSize, (isHorizontal ? vertex.width : vertex.height));\n }\n }\n else {\n if (node) {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n node.width = (numEdges - 1) * 10;\n }\n }\n if (isHorizontal) {\n if (!node.height) {\n node.height = 0;\n }\n }\n // Set the initial x-value as being the best result so far\n localOffset += (isHorizontal ? node.height : node.width) / 2.0;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += ((isHorizontal ? node.height : node.width) / 2.0) + plalementChange.horizontalSpacing;\n if (localOffset > plalementChange.widestRankValue) {\n plalementChange.widestRankValue = localOffset;\n plalementChange.widestRank = rankValue;\n }\n plalementChange.rankSizes[parseInt(rankValue.toString(), 10)] = localOffset;\n }\n plalementChange.rankOffset[parseInt(rankValue.toString(), 10)] = offset;\n var distanceToNextRank = maxCellSize / 2.0 + lastRankMaxCellSize / 2.0 + plalementChange.verticalSpacing;\n lastRankMaxCellSize = maxCellSize;\n if (plalementChange.orientation === 'north' || plalementChange.orientation === 'west') {\n offset += distanceToNextRank;\n }\n else {\n offset -= distanceToNextRank;\n }\n for (var i = 0; i < rank.length; i++) {\n var cell = rank[parseInt(i.toString(), 10)];\n this.setXY(cell, rankValue, offset, isHorizontal ? false : true);\n }\n }\n };\n /**\n * Sets the temp position of the node on the layer \\\n *\n * @returns { void } Sets the temp position of the node on the layer \\\n * @param {IVertex} node - provide the nodes value.\n * @param {number} layer - provide the layer value.\n * @param {number} value - provide the value value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.setTempVariable = function (node, layer, value) {\n if (this.crossReduction.isVertex(node)) {\n node.temp[0] = value;\n }\n else {\n node.temp[layer - node.minRank - 1] = value;\n }\n };\n // eslint-disable-next-line valid-jsdoc\n /**\n * setXY method \\\n *\n * @returns { void } setXY method .\\\n * @param {IVertex} node - provide the source value.\n * @param {number} layer - provide the target value.\n * @param {number} value - provide the layoutOrientation value.\n * @param {boolean} isY - provide the layoutOrientation value.\n * @param {IVertex[][]} ranks - provide the layoutOrientation value.\n * @param {number} spacing - provide the layoutOrientation value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.setXY = function (node, layer, value, isY, ranks, spacing) {\n if (node && node.cell) {\n if (node.cell.inEdges.length > 0 || node.cell.outEdges.length > 0) {\n if (isY) {\n node.y[0] = value;\n }\n else {\n node.x[0] = value;\n }\n }\n else {\n if (isY) {\n node.y[layer - node.minRank - 1] = value;\n }\n else {\n node.x[layer - node.minRank - 1] = value;\n }\n }\n }\n else {\n this.setEdgeXY(ranks, node, spacing, layer);\n }\n };\n //Sets geometry position of the layout node on the layout model\n HierarchicalLayoutUtil.prototype.rankCoordinates = function (stage, rankValue, graph, model) {\n var isHorizontal = false;\n if (stage.model.layout.orientation === 'LeftToRight' || stage.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var rank = model.ranks[parseInt(rankValue.toString(), 10)];\n var maxOffset = 0.0;\n var localOffset = (isHorizontal ? stage.marginY : stage.marginX)\n + (stage.widestRankValue - stage.rankSizes[parseInt(rankValue.toString(), 10)]) / 2;\n for (var i = 0; i < rank.length; i++) {\n var node = rank[parseInt(i.toString(), 10)];\n if (this.crossReduction.isVertex(node)) {\n var obj = this.nameTable[node.cell.name];\n node.width = obj.actualSize.width;\n node.height = obj.actualSize.height;\n maxOffset = Math.max(maxOffset, node.height);\n }\n else {\n var edge = node;\n var numEdges = 1;\n if (edge.edges != null) {\n numEdges = edge.edges.length;\n }\n if (isHorizontal) {\n node.height = (numEdges - 1) * 10;\n }\n else {\n node.width = (numEdges - 1) * 10;\n }\n }\n var size = (isHorizontal ? node.height : node.width) / 2.0;\n localOffset += size;\n this.setXY(node, rankValue, localOffset, isHorizontal ? true : false);\n this.setTempVariable(node, rankValue, localOffset);\n localOffset += (size + stage.horizontalSpacing);\n }\n };\n //sets the layout in an initial positioning.it will arange all the ranks as much as possible\n HierarchicalLayoutUtil.prototype.initialCoords = function (plalementChange, facade, model) {\n this.calculateWidestRank(plalementChange, facade, model);\n // Reverse sweep direction each time from widest rank\n for (var i = plalementChange.widestRank; i >= 0; i--) {\n if (i < model.maxRank) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n for (var i = plalementChange.widestRank + 1; i <= model.maxRank; i++) {\n if (i > 0) {\n this.rankCoordinates(plalementChange, i, facade, model);\n }\n }\n };\n /**\n * Checks whether the given node is an ancestor \\\n *\n * @returns { boolean } Checks whether the given node is an ancestor \\\n * @param {IVertex} node - provide the nodes value.\n * @param {IVertex} otherNode - provide the layer value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.isAncestor = function (node, otherNode) {\n // Firstly, the hash code of this node needs to be shorter than the other node\n if (otherNode != null && node.hashCode != null && otherNode.hashCode != null\n && node.hashCode.length < otherNode.hashCode.length) {\n if (node.hashCode === otherNode.hashCode) {\n return true;\n }\n if (node.hashCode == null || node.hashCode == null) {\n return false;\n }\n for (var i = 0; i < node.hashCode.length; i++) {\n if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n //initializes the sorter object\n HierarchicalLayoutUtil.prototype.weightedCellSorter = function (cell, weightedValue) {\n var weightedCellSorter = {};\n weightedCellSorter.cell = cell ? cell : null;\n weightedCellSorter.weightedValue = weightedValue ? weightedValue : 0;\n weightedCellSorter.visited = false;\n weightedCellSorter.rankIndex = null;\n return weightedCellSorter;\n };\n //Performs one node positioning in both directions\n HierarchicalLayoutUtil.prototype.minNode = function (plalementChange, model) {\n var nodeList = [];\n var map = { map: {} };\n var rank = [];\n for (var i = 0; i <= model.maxRank; i++) {\n rank[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)];\n for (var j = 0; j < rank[parseInt(i.toString(), 10)].length; j++) {\n var node = rank[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)];\n var nodeWrapper = this.weightedCellSorter(node, i);\n nodeWrapper.rankIndex = j;\n nodeWrapper.visited = true;\n nodeList.push(nodeWrapper);\n model.setDictionaryForSorter(map, node, nodeWrapper, true);\n }\n }\n var maxTries = nodeList.length * 10;\n var count = 0;\n var tolerance = 1;\n while (nodeList.length > 0 && count <= maxTries) {\n var cellWrapper = nodeList.shift();\n var cell = cellWrapper.cell;\n var rankValue = cellWrapper.weightedValue;\n var rankIndex = cellWrapper.rankIndex;\n var nextLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue);\n var previousLayerConnectedCells = this.crossReduction.getConnectedCellsOnLayer(cell, rankValue, true);\n var nextConnectedCount = nextLayerConnectedCells ? nextLayerConnectedCells.length : 0;\n var prevConnectedCount = previousLayerConnectedCells ? previousLayerConnectedCells.length : 0;\n var medianNextLevel = this.medianXValue(plalementChange, nextLayerConnectedCells, rankValue + 1);\n var medianPreviousLevel = this.medianXValue(plalementChange, previousLayerConnectedCells, rankValue - 1);\n var numConnectedNeighbours = nextConnectedCount + prevConnectedCount;\n var currentPosition = this.crossReduction.getTempVariable(cell, rankValue);\n var cellMedian = currentPosition;\n if (numConnectedNeighbours > 0) {\n cellMedian = (medianNextLevel * nextConnectedCount + medianPreviousLevel * prevConnectedCount) / numConnectedNeighbours;\n }\n if (nextConnectedCount === 1 && prevConnectedCount === 1) {\n cellMedian = (medianPreviousLevel * prevConnectedCount) / prevConnectedCount;\n }\n else if (nextConnectedCount === 1) {\n cellMedian = (medianNextLevel * nextConnectedCount) / nextConnectedCount;\n }\n var positionChanged = false;\n var tempValue = undefined;\n if (cellMedian < currentPosition - tolerance) {\n if (rankIndex === 0) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var leftCell = rank[parseInt(rankValue.toString(), 10)][rankIndex - 1];\n var leftLimit = this.crossReduction.getTempVariable(leftCell, rankValue);\n leftLimit = leftLimit + leftCell.width / 2 + plalementChange.intraCellSpacing + cell.width / 2;\n if (leftLimit < cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (leftLimit < this.crossReduction.getTempVariable(cell, rankValue) - tolerance) {\n tempValue = leftLimit;\n positionChanged = true;\n }\n }\n }\n else if (cellMedian > currentPosition + tolerance) {\n var rankSize = rank[parseInt(rankValue.toString(), 10)].length;\n if (rankIndex === rankSize - 1) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else {\n var rightCell = rank[parseInt(rankValue.toString(), 10)][rankIndex + 1];\n var rightLimit = this.crossReduction.getTempVariable(rightCell, rankValue);\n rightLimit = rightLimit - rightCell.width / 2 - plalementChange.intraCellSpacing - cell.width / 2;\n if (rightLimit > cellMedian) {\n tempValue = cellMedian;\n positionChanged = true;\n }\n else if (rightLimit > this.crossReduction.getTempVariable(cell, rankValue) + tolerance) {\n tempValue = rightLimit;\n positionChanged = true;\n }\n }\n }\n if (positionChanged) {\n this.setTempVariable(cell, rankValue, tempValue);\n // Add connected nodes to map and list\n this.updateNodeList(nodeList, map, nextLayerConnectedCells, model);\n this.updateNodeList(nodeList, map, previousLayerConnectedCells, model);\n }\n if (this.crossReduction.isVertex(cellWrapper.cell)) {\n cellWrapper.visited = false;\n }\n count++;\n }\n };\n //Updates the ndoes collection\n HierarchicalLayoutUtil.prototype.updateNodeList = function (nodeList, map, collection, model) {\n for (var i = 0; i < collection.length; i++) {\n var connectedCell = collection[parseInt(i.toString(), 10)];\n var connectedCellWrapper = model.getDictionaryForSorter(map, connectedCell);\n if (connectedCellWrapper != null) {\n if (connectedCellWrapper.visited === false) {\n connectedCellWrapper.visited = true;\n nodeList.push(connectedCellWrapper);\n }\n }\n }\n };\n //Calculates the node position of the connected cell on the specified rank\n HierarchicalLayoutUtil.prototype.medianXValue = function (plalementChange, connectedCells, rankValue) {\n if (!connectedCells || connectedCells.length === 0) {\n return 0;\n }\n var medianValues = [];\n for (var i = 0; i < connectedCells.length; i++) {\n medianValues[parseInt(i.toString(), 10)]\n = this.crossReduction.getTempVariable(connectedCells[parseInt(i.toString(), 10)], rankValue);\n }\n medianValues.sort(function (a, b) {\n return a - b;\n });\n if (connectedCells.length % 2 === 1) {\n return medianValues[Math.floor(connectedCells.length / 2)];\n }\n else {\n var medianPoint = connectedCells.length / 2;\n var leftMedian = medianValues[medianPoint - 1];\n var rightMedian = medianValues[parseInt(medianPoint.toString(), 10)];\n return ((leftMedian + rightMedian) / 2);\n }\n };\n //Updates the geometry of the vertices\n HierarchicalLayoutUtil.prototype.placementStageExecute = function (plalementChange) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n plalementChange.jettyPositions = {};\n var model = plalementChange.model;\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0.0 : plalementChange.currentXDelta = 0.0;\n this.initialCoords(plalementChange, { model: model }, model);\n this.minNode(plalementChange, model);\n var bestOffsetDelta = 100000000.0;\n if (!plalementChange.maxIterations) {\n plalementChange.maxIterations = 8;\n }\n for (var i = 0; i < plalementChange.maxIterations; i++) {\n // if the total offset is less for the current positioning,\n //there are less heavily angled edges and so the current positioning is used\n if ((isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta) < bestOffsetDelta) {\n for (var j = 0; j < model.ranks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setXY(cell, j, this.crossReduction.getTempVariable(cell, j), isHorizontal ? true : false);\n }\n }\n bestOffsetDelta = isHorizontal ? plalementChange.currentYDelta : plalementChange.currentXDelta;\n }\n // eslint-disable-next-line\n isHorizontal ? plalementChange.currentYDelta = 0 : plalementChange.currentXDelta = 0;\n }\n this.setCellLocations(plalementChange, model);\n };\n //sets the cell position in the after the layout operation\n HierarchicalLayoutUtil.prototype.setCellLocations = function (plalementChange, model) {\n var vertices = this.getValues(model.vertexMapper);\n for (var i = 0; i < vertices.length; i++) {\n this.setVertexLocation(plalementChange, vertices[parseInt(i.toString(), 10)]);\n }\n };\n //used to specify the geometrical position of the layout model cell\n HierarchicalLayoutUtil.prototype.garphModelsetVertexLocation = function (plalementChange, cell, x, y) {\n //let model: MultiParentModel = plalementChange.model;\n var geometry = cell.geometry;\n var result = null;\n if (geometry != null) {\n result = { x: x, y: y, width: geometry.width, height: geometry.height };\n if (geometry.x !== x || geometry.y !== y) {\n cell.geometry = result;\n }\n }\n return result;\n };\n //set the position of the specified node\n HierarchicalLayoutUtil.prototype.setVertexLocation = function (plalementChange, cell) {\n var isHorizontal = false;\n if (plalementChange.model.layout.orientation === 'LeftToRight' || plalementChange.model.layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n var realCell = cell.cell;\n var positionX = cell.x[0] - cell.width / 2;\n var positionY = cell.y[0] - cell.height / 2;\n this.garphModelsetVertexLocation(plalementChange, realCell, positionX, positionY);\n if (isHorizontal) {\n if (!plalementChange.marginY) {\n plalementChange.marginY = 0;\n }\n plalementChange.marginY = Math.max(plalementChange.marginY, positionY + cell.height);\n }\n else {\n if (!plalementChange.marginX) {\n plalementChange.marginX = 0;\n }\n plalementChange.marginX = Math.max(plalementChange.marginX, positionX + cell.width);\n }\n };\n /**\n * get the specific value from the key value pair \\\n *\n * @returns { {}[] } get the specific value from the key value pair \\\n * @param {VertexMapper} mapper - provide the mapper value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getValues = function (mapper) {\n var list = [];\n if (mapper.map) {\n for (var _i = 0, _a = Object.keys(mapper.map); _i < _a.length; _i++) {\n var key = _a[_i];\n list.push(mapper.map[\"\" + key]);\n }\n }\n return list;\n };\n /**\n *Checks and reduces the crosses in between line segments \\\n *\n * @returns { void } Checks and reduces the crosses in between line segments.\\\n * @param {End} model - provide the model value.\n *\n * @private\n */\n HierarchicalLayoutUtil.prototype.crossingStage = function (model) {\n this.crossReduction.execute(model);\n };\n //Initializes the ranks of the vertices\n HierarchicalLayoutUtil.prototype.layeringStage = function (model) {\n this.initialRank(model);\n this.fixRanks(model);\n };\n //determine the initial rank for the each vertex on the relevent direction\n HierarchicalLayoutUtil.prototype.initialRank = function (model) {\n var startNodes = model.startNodes;\n var internalNodes = model.getDictionaryValues(model.vertexMapper);\n var startNodesCopy = startNodes.slice();\n while (startNodes.length > 0) {\n var internalNode = startNodes[0];\n var layerDeterminingEdges = internalNode.connectsAsTarget;\n var edgesToBeMarked = internalNode.connectsAsSource;\n var allEdgesScanned = true;\n var minimumLayer = 100000000;\n for (var i = 0; i < layerDeterminingEdges.length; i++) {\n var internalEdge = layerDeterminingEdges[parseInt(i.toString(), 10)];\n if (internalEdge.temp[0] === 5270620) {\n // This edge has been scanned, get the layer of the node on the other end\n var otherNode = internalEdge.source;\n minimumLayer = Math.min(minimumLayer, otherNode.temp[0] - 1);\n }\n else {\n allEdgesScanned = false;\n break;\n }\n }\n // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list\n if (allEdgesScanned) {\n internalNode.temp[0] = minimumLayer;\n if (!model.maxRank) {\n model.maxRank = 100000000;\n }\n model.maxRank = Math.min(model.maxRank, minimumLayer);\n if (edgesToBeMarked != null) {\n for (var i = 0; i < edgesToBeMarked.length; i++) {\n var internalEdge = edgesToBeMarked[parseInt(i.toString(), 10)];\n internalEdge.temp[0] = 5270620;\n // Add node on other end of edge to LinkedList of nodes to be analysed\n var otherNode = internalEdge.target;\n // Only add node if it hasn't been assigned a layer\n if (otherNode.temp[0] === -1) {\n startNodes.push(otherNode);\n // Mark this other node as neither being unassigned nor assigned\n //so it isn't added to this list again, but it's layer isn't used in any calculation.\n otherNode.temp[0] = -2;\n }\n }\n }\n startNodes.shift();\n }\n else {\n // Not all the edges have been scanned, get to the back of the class and put the dunces cap on\n var removedCell = startNodes.shift();\n startNodes.push(internalNode);\n if (removedCell === internalNode && startNodes.length === 1) {\n // This is an error condition, we can't get out of this loop.\n //It could happen for more than one node but that's a lot harder to detect. Log the error\n break;\n }\n }\n }\n for (var i = 0; i < internalNodes.length; i++) {\n internalNodes[parseInt(i.toString(), 10)].temp[0] -= model.maxRank;\n }\n for (var i = 0; i < startNodesCopy.length; i++) {\n var internalNode = startNodesCopy[parseInt(i.toString(), 10)];\n var currentMaxLayer = 0;\n var layerDeterminingEdges = internalNode.connectsAsSource;\n for (var j = 0; j < layerDeterminingEdges.length; j++) {\n var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)];\n var otherNode = internalEdge.target;\n internalNode.temp[0] = Math.max(currentMaxLayer, otherNode.temp[0] + 1);\n currentMaxLayer = internalNode.temp[0];\n }\n }\n model.maxRank = 100000000 - model.maxRank;\n };\n //used to set the optimum value of each vertex on the layout\n HierarchicalLayoutUtil.prototype.fixRanks = function (model) {\n model.fixRanks();\n };\n //used to determine any cyclic stage have been created on the layout model\n HierarchicalLayoutUtil.prototype.cycleStage = function (model) {\n var seenNodes = {};\n model.startNodes = [];\n var unseenNodesArray = model.getDictionaryValues(model.vertexMapper);\n var unseenNodes = [];\n for (var i = 0; i < unseenNodesArray.length; i++) {\n unseenNodesArray[parseInt(i.toString(), 10)].temp[0] = -1;\n unseenNodes[unseenNodesArray[parseInt(i.toString(), 10)].id] = unseenNodesArray[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (model.roots != null) {\n var modelRoots = model.roots;\n rootsArray = [];\n for (var i = 0; i < modelRoots.length; i++) {\n rootsArray[parseInt(i.toString(), 10)] = model.getDictionary(model.vertexMapper, modelRoots[parseInt(i.toString(), 10)]);\n if (rootsArray[parseInt(i.toString(), 10)] != null) {\n model.startNodes.push(rootsArray[parseInt(i.toString(), 10)]);\n }\n }\n }\n model.visit('removeParentConnection', rootsArray, true, null, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n var seenNodesCopy = model.clone(seenNodes, null, true);\n model.visit('removeNodeConnection', unseenNodes, true, seenNodesCopy, { seenNodes: seenNodes, unseenNodes: unseenNodes });\n };\n /**\n * removes the edge from the given collection \\\n *\n * @returns { IEdge } removes the edge from the given collection .\\\n * @param {IEdge} obj - provide the angle value.\n * @param { IEdge[]} array - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.remove = function (obj, array) {\n var index = array.indexOf(obj);\n if (index !== -1) {\n array.splice(index, 1);\n }\n return obj;\n };\n /**\n * Inverts the source and target of an edge \\\n *\n * @returns { void } Inverts the source and target of an edge .\\\n * @param {IEdge} connectingEdge - provide the angle value.\n * @param { number} layer - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.invert = function (connectingEdge, layer) {\n var temp = connectingEdge.source;\n connectingEdge.source = connectingEdge.target;\n connectingEdge.target = temp;\n connectingEdge.isReversed = !connectingEdge.isReversed;\n };\n /**\n * used to get the edges between the given source and target \\\n *\n * @returns { IConnector[] } used to get the edges between the given source and target .\\\n * @param {Vertex} source - provide the angle value.\n * @param { Vertex} target - provide the angle value.\n * @param { boolean} directed - provide the angle value.\n * @private\n */\n HierarchicalLayoutUtil.prototype.getEdgesBetween = function (source, target, directed) {\n directed = (directed != null) ? directed : false;\n var edges = this.getEdges(source);\n var result = [];\n for (var i = 0; i < edges.length; i++) {\n var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true);\n var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false);\n if ((src === source && trg === target) || (!directed && src === target && trg === source)) {\n result.push(edges[parseInt(i.toString(), 10)]);\n }\n }\n return result;\n };\n return HierarchicalLayoutUtil;\n}());\n/**\n * Handles position the objects in a hierarchical tree structure\n */\nvar MultiParentModel = /** @class */ (function () {\n function MultiParentModel(layout, vertices, roots, dlayout) {\n this.multiObjectIdentityCounter = 0;\n //used to count the no of times the parent have been used\n this.dfsCount = 0;\n this.hierarchicalUtil = new HierarchicalLayoutUtil();\n this.roots = roots;\n this.vertexMapper = { map: {} };\n var internalVertices = [];\n this.layout = dlayout;\n this.maxRank = 100000000;\n this.edgeMapper = { map: {} };\n this.hierarchicalLayout = layout;\n this.createInternalCells(layout, vertices, internalVertices, dlayout);\n for (var i = 0; i < vertices.length; i++) {\n var edges = internalVertices[parseInt(i.toString(), 10)].connectsAsSource;\n for (var j = 0; j < edges.length; j++) {\n var internalEdge = edges[parseInt(j.toString(), 10)];\n var realEdges = internalEdge.edges;\n if (realEdges != null && realEdges.length > 0) {\n var realEdge = realEdges[0];\n var targetCell = layout.getVisibleTerminal(realEdge, false);\n var internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n if (internalVertices[parseInt(i.toString(), 10)] === internalTargetCell) {\n targetCell = layout.getVisibleTerminal(realEdge, true);\n internalTargetCell = this.getDictionary(this.vertexMapper, targetCell);\n }\n if (internalTargetCell != null && internalVertices[parseInt(i.toString(), 10)] !== internalTargetCell) {\n internalEdge.target = internalTargetCell;\n if (internalTargetCell.connectsAsTarget.length === 0) {\n internalTargetCell.connectsAsTarget = [];\n }\n if (internalTargetCell.connectsAsTarget.indexOf(internalEdge) < 0) {\n internalTargetCell.connectsAsTarget.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 1;\n }\n }\n /* tslint:disable */\n MultiParentModel.prototype.resetEdge = function (edge) {\n var geometry = { x: 0, y: 0, width: 0, height: 0, relative: true };\n var geo = geometry;\n edge['geometry'] = geo;\n return edge;\n };\n // eslint-disable-next-line max-len\n MultiParentModel.prototype.createInternalCells = function (layout, vertices, internalVertices, dlayout) {\n for (var i = 0; i < vertices.length; i++) {\n internalVertices[parseInt(i.toString(), 10)] = {\n x: [], y: [], temp: [], cell: vertices[parseInt(i.toString(), 10)],\n id: vertices[parseInt(i.toString(), 10)].name, connectsAsTarget: [], connectsAsSource: [], type: 'internalVertex'\n };\n this.setDictionary(this.vertexMapper, vertices[parseInt(i.toString(), 10)], internalVertices[parseInt(i.toString(), 10)]);\n var conns = layout.getEdges(vertices[parseInt(i.toString(), 10)]);\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n for (var j = 0; j < conns.length; j++) {\n var cell = layout.getVisibleTerminal(conns[parseInt(j.toString(), 10)], false);\n if (cell !== vertices[parseInt(i.toString(), 10)]) {\n var undirectedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, false);\n var directedEdges = layout.getEdgesBetween(vertices[parseInt(i.toString(), 10)], cell, true);\n if (undirectedEdges != null && undirectedEdges.length > 0 && directedEdges.length * 2 >= undirectedEdges.length) {\n var internalEdge = { x: [], y: [], temp: [], edges: undirectedEdges, ids: [] };\n if (dlayout.enableLayoutRouting) {\n for (var k = 0; k < undirectedEdges.length; k++) {\n var edge = undirectedEdges[parseInt(k.toString(), 10)];\n this.setDictionary(this.edgeMapper, undefined, internalEdge, edge.id);\n // Resets all point on the edge and disables the edge style\n // without deleting it from the cell style\n this.resetEdge(edge);\n }\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n for (var m = 0; m < undirectedEdges.length; m++) {\n internalEdge.ids.push(undirectedEdges[parseInt(m.toString(), 10)].id);\n }\n internalEdge.source = internalVertices[parseInt(i.toString(), 10)];\n if (!internalVertices[parseInt(i.toString(), 10)].connectsAsSource) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource = [];\n }\n if (internalVertices[parseInt(i.toString(), 10)].connectsAsSource.indexOf(internalEdge) < 0) {\n internalVertices[parseInt(i.toString(), 10)].connectsAsSource.push(internalEdge);\n }\n }\n }\n }\n internalVertices[parseInt(i.toString(), 10)].temp[0] = 0;\n }\n };\n /* tslint:enable */\n /**\n * used to set the optimum value of each vertex on the layout \\\n *\n * @returns { void } used to set the optimum value of each vertex on the layout .\\\n * @private\n */\n MultiParentModel.prototype.fixRanks = function () {\n var rankList = [];\n this.ranks = [];\n for (var i = 0; i < this.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n this.ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n var rootsArray = null;\n if (this.roots != null) {\n var oldRootsArray = this.roots;\n rootsArray = [];\n for (var i = 0; i < oldRootsArray.length; i++) {\n var cell = oldRootsArray[parseInt(i.toString(), 10)];\n var internalNode = this.getDictionary(this.vertexMapper, cell);\n rootsArray[parseInt(i.toString(), 10)] = internalNode;\n }\n }\n this.visit('updateMinMaxRank', rootsArray, false, null, { seenNodes: null, unseenNodes: null, rankList: rankList });\n };\n //Updates the min/max rank of the layer\n MultiParentModel.prototype.updateMinMaxRank = function (layer, seen, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n var parent = data.parent;\n var node = data.root;\n var edge = data.edge;\n var rankList = data.rankList;\n if (!node.maxRank && node.maxRank !== 0) {\n node.maxRank = -1;\n }\n if (!node.minRank && node.minRank !== 0) {\n node.minRank = -1;\n }\n if (seen === 0 && node.maxRank < 0 && node.minRank < 0) {\n rankList[node.temp[0]].push(node);\n node.maxRank = node.temp[0];\n node.minRank = node.temp[0];\n node.temp[0] = rankList[node.maxRank].length - 1;\n }\n if (parent != null && edge != null) {\n var parentToCellRankDifference = parent.maxRank - node.maxRank;\n if (parentToCellRankDifference > 1) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n edge.temp = [];\n edge.x = [];\n edge.y = [];\n for (var i = edge.minRank + 1; i < edge.maxRank; i++) {\n rankList[parseInt(i.toString(), 10)].push(edge);\n this.hierarchicalUtil.setTempVariable(edge, i, rankList[parseInt(i.toString(), 10)].length - 1);\n }\n }\n }\n };\n //used to store the value of th given key on the object\n MultiParentModel.prototype.setDictionary = function (dic, key, value, edgeId) {\n if (!edgeId) {\n var id = key.name;\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n }\n else {\n var previous = dic.map[\"\" + edgeId];\n dic.map[\"\" + edgeId] = value;\n return previous;\n }\n };\n /**\n * used to store the value of th given key on the objectt \\\n *\n * @returns { IVertex } used to store the value of th given key on the object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @param {WeightedCellSorter} value - provide the angle value.\n * @param {boolean} flag - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.setDictionaryForSorter = function (dic, key, value, flag) {\n var id = key.id;\n if (!id) {\n //id = this._getDictionaryForSorter(dic, key);\n }\n var previous = dic.map[\"\" + id];\n dic.map[\"\" + id] = value;\n return previous;\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionary = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.name;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get the value of the given key \\\n *\n * @returns { IVertex } used to get the value of the given key .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @param {IVertex} key - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryForSorter = function (dic, key) {\n if (!this.multiObjectIdentityCounter && this.multiObjectIdentityCounter !== 0) {\n this.multiObjectIdentityCounter = 0;\n }\n var id = key.id;\n if (!id) {\n if (!key.layoutObjectId) { ///####\n key.layoutObjectId = 'graphHierarchyNode#' + this.multiObjectIdentityCounter++;\n return key.layoutObjectId;\n }\n else {\n return dic.map[key.layoutObjectId];\n }\n }\n return dic.map[\"\" + id];\n };\n /**\n * used to get all the values of the dictionary object \\\n *\n * @returns { IVertex[] } used to get all the values of the dictionary object .\\\n * @param {VertexMapper} dic - provide the angle value.\n * @private\n */\n MultiParentModel.prototype.getDictionaryValues = function (dic) {\n var result = [];\n for (var _i = 0, _a = Object.keys(dic.map); _i < _a.length; _i++) {\n var key = _a[_i];\n result.push(dic.map[\"\" + key]);\n }\n return result;\n };\n /**\n * used to visit all the entries on the given dictionary with given function \\\n *\n * @returns { void } used to visit all the entries on the given dictionary with given function .\\\n * @param {string} visitor - provide the visitor value.\n * @param {IVertex[]} dfsRoots - provide the dfsRoots value.\n * @param {boolean} trackAncestors - provide the trackAncestors value.\n * @param {{}} seenNodes - provide the seenNodes value.\n * @param {TraverseData} data - provide the data value.\n * @private\n */\n MultiParentModel.prototype.visit = function (visitor, dfsRoots, trackAncestors, seenNodes, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n // Run depth first search through on all roots\n if (dfsRoots != null) {\n for (var i = 0; i < dfsRoots.length; i++) {\n var internalNode = dfsRoots[parseInt(i.toString(), 10)];\n if (internalNode != null) {\n if (seenNodes == null) {\n seenNodes = new Object();\n }\n data.parent = null;\n data.root = internalNode;\n data.edge = null;\n if (trackAncestors) {\n // Set up hash code for root\n internalNode.hashCode = [];\n internalNode.hashCode[0] = this.dfsCount;\n internalNode.hashCode[1] = i;\n this.extendedDfs(visitor, seenNodes, i, 0, data);\n }\n else {\n this.depthFirstSearch(visitor, seenNodes, 0, data);\n }\n }\n }\n this.dfsCount++;\n }\n };\n //used to perform the depth fisrt search on the layout model\n MultiParentModel.prototype.depthFirstSearch = function (visitor, seen, layer, data) {\n //let seenNodes1: {} = data.seenNodes;\n //let unseenNodes1: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n //let parent: IVertex = data.parent;\n var root = data.root;\n //let edge: IEdge = data.edge;\n if (root != null) {\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n // Copy the connects as source list so that visitors can change the original for edge direction inversions\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n // Root check is O(|roots|)\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.depthFirstSearch(visitor, seen, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n //Updates the rank of the connection\n MultiParentModel.prototype.updateConnectionRank = function (visitor, layer, seen, traversedList) {\n var parent = traversedList.parent;\n var root = traversedList.root;\n var edge = traversedList.edge;\n if (visitor === 'removeParentConnection' || visitor === 'removeNodeConnection') {\n var remove = visitor === 'removeNodeConnection';\n this.removeConnectionEdge(parent, root, edge, layer, traversedList, remove);\n }\n if (visitor === 'updateMinMaxRank') {\n this.updateMinMaxRank(layer, seen, traversedList);\n }\n };\n //Removes the edge from the collection\n MultiParentModel.prototype.removeConnectionEdge = function (parent, node, edge, layer, data, remove) {\n var seenNodes = data.seenNodes;\n var unseenNodes = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n if (this.hierarchicalUtil.isAncestor(node, parent)) {\n this.hierarchicalUtil.invert(edge, 0);\n this.hierarchicalUtil.remove(edge, parent.connectsAsSource);\n if (remove) {\n node.connectsAsSource.push(edge);\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n }\n else {\n parent.connectsAsTarget.push(edge);\n this.hierarchicalUtil.remove(edge, node.connectsAsTarget);\n node.connectsAsSource.push(edge);\n }\n }\n seenNodes[node.id] = node;\n delete unseenNodes[node.id];\n };\n //the dfs extends the default version by keeping track of cells ancestors, but it should be only used when necessary\n MultiParentModel.prototype.extendedDfs = function (visitor, seen, cHash, layer, data) {\n //let seenNodes: {} = data.seenNodes;\n //let unseenNodes: {} = data.unseenNodes;\n //let rankList: IVertex[][] = data.rankList;\n var parent = data.parent;\n var root = data.root;\n var edge = data.edge;\n if (root != null) {\n if (parent != null) {\n if (root.hashCode == null ||\n root.hashCode[0] !== parent.hashCode[0]) {\n var hashCodeLength = parent.hashCode.length + 1;\n root.hashCode = parent.hashCode.slice();\n root.hashCode[hashCodeLength - 1] = cHash;\n }\n }\n var rootId = root.id;\n if (seen[\"\" + rootId] == null) {\n seen[\"\" + rootId] = root;\n this.updateConnectionRank(visitor, layer, 0, data);\n var outgoingEdges = root.connectsAsSource.slice();\n for (var i = 0; i < outgoingEdges.length; i++) {\n var internalEdge = outgoingEdges[parseInt(i.toString(), 10)];\n var targetNode = internalEdge.target;\n data.parent = root;\n data.root = targetNode;\n data.edge = internalEdge;\n this.extendedDfs(visitor, seen, i, layer + 1, data);\n }\n }\n else {\n this.updateConnectionRank(visitor, layer, 1, data);\n }\n }\n };\n /**\n * used to clone the specified object ignoring all fieldnames in the given array of transient fields \\\n *\n * @returns { void } used to clone the specified object ignoring all fieldnames in the given array of transient fields .\\\n * @param {Object} obj - provide the source value.\n * @param {string[]} transients - provide the target value.\n * @param {boolean} shallow - provide the shallow value.\n *\n * @private\n */\n MultiParentModel.prototype.clone = function (obj, transients, shallow) {\n shallow = (shallow != null) ? shallow : false;\n if (obj != null && typeof (obj.constructor) === 'function') {\n var clonedObj = obj.constructor();\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var i = _a[_i];\n if (i !== 'layoutObjectId' && (transients == null || transients.indexOf(i) < 0)) {\n if (!shallow && typeof (obj[\"\" + i]) === 'object') {\n //not used\n // _clone[i] = $.extend(true, {}, obj[i]);\n }\n else {\n clonedObj[\"\" + i] = obj[\"\" + i];\n }\n }\n }\n return clonedObj;\n }\n return null;\n };\n return MultiParentModel;\n}());\n/**\n * Defines how to reduce the crosses in between the line segments\n */\nvar CrossReduction = /** @class */ (function () {\n function CrossReduction() {\n }\n /**\n * used to calculate the number of edges crossing the layout model \\\n *\n * @returns { number } used to calculate the number of edges crossing the layout model\\\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.calculateCrossings = function (model) {\n var numRanks = model.ranks.length;\n var totalCrossings = 0;\n for (var i = 1; i < numRanks; i++) {\n totalCrossings += this.calculateRankCrossing(i, model);\n }\n return totalCrossings;\n };\n /**\n * used to get the temp value specified for the node or connector. \\\n *\n * @returns { boolean } used to get the temp value specified for the node or connector.\\\n * @param {IVertex} node - provide the node value.\n * @param {IVertex} layer - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.getTempVariable = function (node, layer) {\n if (node) {\n if (this.isVertex(node)) {\n return node.temp[0];\n }\n else {\n return node.temp[layer - node.minRank - 1];\n }\n }\n return 0;\n };\n //used to specify the number of conenctors crossing between the specified rank and its below rank\n CrossReduction.prototype.calculateRankCrossing = function (i, model) {\n var totalCrossings = 0;\n var rank = model.ranks[parseInt(i.toString(), 10)];\n var previousRank = model.ranks[i - 1];\n var tmpIndices = [];\n // Iterate over the top rank and fill in the connection information\n for (var j = 0; j < rank.length; j++) {\n var node = rank[parseInt(j.toString(), 10)];\n var rankPosition = this.getTempVariable(node, i);\n var connectedCells = this.getConnectedCellsOnLayer(node, i, true);\n ///####\n var nodeIndices = [];\n for (var k = 0; k < connectedCells.length; k++) {\n var connectedNode = connectedCells[parseInt(k.toString(), 10)];\n var otherCellRankPosition = this.getTempVariable(connectedNode, i - 1);\n nodeIndices.push(otherCellRankPosition);\n }\n nodeIndices.sort(function (x, y) { return x - y; });\n tmpIndices[parseInt(rankPosition.toString(), 10)] = nodeIndices;\n }\n var indices = [];\n for (var j = 0; j < tmpIndices.length; j++) {\n indices = indices.concat(tmpIndices[parseInt(j.toString(), 10)]);\n }\n var firstIndex = 1;\n while (firstIndex < previousRank.length) {\n firstIndex <<= 1;\n }\n var treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n var tree = [];\n for (var j = 0; j < treeSize; ++j) {\n tree[parseInt(j.toString(), 10)] = 0;\n }\n for (var j = 0; j < indices.length; j++) {\n var index = indices[parseInt(j.toString(), 10)];\n var treeIndex = index + firstIndex;\n ++tree[parseInt(treeIndex.toString(), 10)];\n while (treeIndex > 0) {\n if (treeIndex % 2) {\n totalCrossings += tree[treeIndex + 1];\n }\n treeIndex = (treeIndex - 1) >> 1;\n ++tree[parseInt(treeIndex.toString(), 10)];\n }\n }\n return totalCrossings;\n };\n /**\n * Calculates and reduces the crosses between line segments\n *\n * @returns { void }Calculates and reduces the crosses between line segments.\\\n * @param {MultiParentModel} model - provide the target value.\n * @private\n */\n CrossReduction.prototype.execute = function (model) {\n // Stores initial ordering\n this.nestedBestRanks = [];\n for (var i = 0; i < model.ranks.length; i++) {\n this.nestedBestRanks[parseInt(i.toString(), 10)] = model.ranks[parseInt(i.toString(), 10)].slice();\n }\n var iterationsWithoutImprovement = 0;\n var currentBestCrossings = this.calculateCrossings(model);\n for (var i = 0; i < 24 && iterationsWithoutImprovement < 2; i++) {\n this.weightedMedian(i, model);\n var candidateCrossings = this.calculateCrossings(model);\n if (candidateCrossings < currentBestCrossings) {\n currentBestCrossings = candidateCrossings;\n iterationsWithoutImprovement = 0;\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n var obj = this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]];\n var check = true;\n if (cell.edges && obj && !obj.edges) {\n check = false;\n }\n if (obj && check) {\n this.nestedBestRanks[parseInt(j.toString(), 10)][cell.temp[0]] = cell;\n }\n }\n }\n }\n else {\n // Increase count of iterations\n iterationsWithoutImprovement++;\n // Restore the best values to the cells\n for (var j = 0; j < this.nestedBestRanks.length; j++) {\n var rank = model.ranks[parseInt(j.toString(), 10)];\n for (var k = 0; k < rank.length; k++) {\n var cell = rank[parseInt(k.toString(), 10)];\n this.setTempVariable(cell, j, k);\n }\n }\n }\n if (currentBestCrossings === 0) {\n break;\n }\n }\n // Store the best rankings but in the model\n var ranks = [];\n var rankList = [];\n for (var i = 0; i < model.maxRank + 1; i++) {\n rankList[parseInt(i.toString(), 10)] = [];\n ranks[parseInt(i.toString(), 10)] = rankList[parseInt(i.toString(), 10)];\n }\n for (var i = 0; i < this.nestedBestRanks.length; i++) {\n for (var j = 0; j < this.nestedBestRanks[parseInt(i.toString(), 10)].length; j++) {\n rankList[parseInt(i.toString(), 10)].push(this.nestedBestRanks[parseInt(i.toString(), 10)][parseInt(j.toString(), 10)]);\n }\n }\n model.ranks = ranks;\n };\n /**\n * check whether the object is vertext or edge on the layout model. \\\n *\n * @returns { boolean } check whether the object is vertext or edge on the layout model..\\\n * @param {IVertex} node - provide the iteration value.\n *\n * @private\n */\n CrossReduction.prototype.isVertex = function (node) {\n if (node && node.cell && ((node.cell.inEdges && node.cell.inEdges.length) || (node.cell.outEdges && node.cell.outEdges.length))) {\n return true;\n }\n return false;\n };\n /**\n * used to move up or move down the node position on the adjacent ranks \\\n *\n * @returns { void } used to move up or move down the node position on the adjacent ranks.\\\n * @param {number} iteration - provide the iteration value.\n * @param {MultiParentModel} model - provide the model value.\n *\n * @private\n */\n CrossReduction.prototype.weightedMedian = function (iteration, model) {\n // Reverse sweep direction each time through this method\n var downwardSweep = (iteration % 2 === 0);\n if (downwardSweep) {\n for (var j = model.maxRank - 1; j >= 0; j--) {\n this.medianRank(j, downwardSweep);\n }\n }\n else {\n for (var j = 1; j < model.maxRank; j++) {\n this.medianRank(j, downwardSweep);\n }\n }\n };\n /**\n * used to get the node next(up) connected to the specified node or connector \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex} cell - provide the cell value.\n * @param {number} layer - provide the layer value.\n * @param {boolean} isPrevious - provide the isPrevious value.\n *\n * @private\n */\n CrossReduction.prototype.getConnectedCellsOnLayer = function (cell, layer, isPrevious) {\n if (isPrevious === void 0) { isPrevious = false; }\n var connectedlayer = 'nextLayerConnectedCells';\n var connectedAs = 'connectsAsTarget';\n if (isPrevious) {\n connectedlayer = 'previousLayerConnectedCells';\n connectedAs = 'connectsAsSource';\n }\n if (cell) {\n if (this.isVertex(cell)) {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n cell[\"\" + connectedlayer][0] = [];\n for (var i = 0; i < cell[\"\" + connectedAs].length; i++) {\n var edge = cell[\"\" + connectedAs][parseInt(i.toString(), 10)];\n if (edge.maxRank === undefined) {\n edge.maxRank = -1;\n }\n if (edge.maxRank === -1 || (isPrevious ? (edge.minRank === layer - 1) : (edge.maxRank === layer + 1))) {\n // Either edge is not in any rank or no dummy nodes in edge, add node of other side of edge\n cell[\"\" + connectedlayer][0].push(isPrevious ? edge.target : edge.source);\n }\n else {\n // Edge spans at least two layers, add edge\n cell[\"\" + connectedlayer][0].push(edge);\n }\n }\n }\n return cell[\"\" + connectedlayer][0];\n }\n else {\n if (cell[\"\" + connectedlayer] == null) {\n cell[\"\" + connectedlayer] = [];\n for (var i = 0; i < cell.temp.length; i++) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)] = [];\n if (i === (isPrevious ? 0 : (cell.temp.length - 1))) {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(isPrevious ? cell.target : cell.source);\n }\n else {\n cell[\"\" + connectedlayer][parseInt(i.toString(), 10)].push(cell);\n }\n }\n }\n return cell[\"\" + connectedlayer][layer - cell.minRank - 1];\n }\n }\n return null;\n };\n /**\n * calculates the rank elements on the specified rank \\\n *\n * @returns { void } calculates the rank elements on the specified rank.\\\n * @param {IVertex[]} connectedCells - provide the cell value.\n * @param {number} rankValue - provide the layer value.\n *\n * @private\n */\n CrossReduction.prototype.medianValue = function (connectedCells, rankValue) {\n var medianValues = [];\n var arrayCount = 0;\n for (var i = 0; i < connectedCells.length; i++) {\n var cell = connectedCells[parseInt(i.toString(), 10)];\n medianValues[arrayCount++] = this.getTempVariable(cell, rankValue);\n }\n // sorts numerical order sort\n medianValues.sort(function (a, b) { return a - b; });\n if (arrayCount % 2 === 1) {\n // For odd numbers of adjacent vertices return the median\n return medianValues[Math.floor(arrayCount / 2)];\n }\n else if (arrayCount === 2) {\n return ((medianValues[0] + medianValues[1]) / 2.0);\n }\n else {\n var medianPoint = arrayCount / 2;\n var leftMedian = medianValues[medianPoint - 1] - medianValues[0];\n var rightMedian = medianValues[arrayCount - 1]\n - medianValues[parseInt(medianPoint.toString(), 10)];\n return (medianValues[medianPoint - 1] * rightMedian + medianValues[parseInt(medianPoint.toString(), 10)] * leftMedian)\n / (leftMedian + rightMedian);\n }\n };\n /**\n * get the temp value of the specified layer \\\n *\n * @returns { void } getDirection method .\\\n * @param {IVertex} cell - provide the cell value.\n * @param {layer} layer - provide the layer value.\n * @param {LayoutOrientation} value - provide the value value.\n *\n * @private\n */\n CrossReduction.prototype.setTempVariable = function (cell, layer, value) {\n if (cell) {\n cell.temp[0] = value;\n }\n };\n /**\n * used to minimize the node position on this rank and one of its adjacent ranks\n */\n CrossReduction.prototype.medianRank = function (rankValue, downwardSweep) {\n var numCellsForRank = this.nestedBestRanks[parseInt(rankValue.toString(), 10)].length;\n var medianValues = [];\n var reservedPositions = [];\n for (var i = 0; i < numCellsForRank; i++) {\n var cell = this.nestedBestRanks[parseInt(rankValue.toString(), 10)][parseInt(i.toString(), 10)];\n var sorterEntry = { medianValue: 0 };\n sorterEntry.cell = cell;\n // Flip whether or not equal medians are flipped on up and down sweeps\n //TODO re-implement some kind of nudge medianValues[i].nudge = !downwardSweep;\n var nextLevelConnectedCells = void 0;\n if (downwardSweep) {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue);\n }\n else {\n nextLevelConnectedCells = this.getConnectedCellsOnLayer(cell, rankValue, true);\n }\n var nextRankValue = void 0;\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n downwardSweep ? nextRankValue = rankValue + 1 : nextRankValue = rankValue - 1;\n if (nextLevelConnectedCells != null && nextLevelConnectedCells.length !== 0) {\n sorterEntry.medianValue = this.medianValue(nextLevelConnectedCells, nextRankValue);\n medianValues.push(sorterEntry);\n }\n else {\n // Nodes with no adjacent vertices are flagged in the reserved array to\n //indicate they should be left in their current position.\n reservedPositions[this.getTempVariable(cell, rankValue)] = true;\n }\n }\n medianValues.sort(this.compare);\n // Set the new position of each node within the rank using its temp variable\n for (var i = 0; i < numCellsForRank; i++) {\n if (reservedPositions[parseInt(i.toString(), 10)] == null && medianValues.length > 0) {\n var cell = medianValues.shift().cell;\n this.setTempVariable(cell, rankValue, i);\n }\n }\n };\n //compares two values, it sends the values to the compare function,\n //and sorts the values according to the returned (negative, zero, positive) value\n CrossReduction.prototype.compare = function (a, b) {\n if (a != null && b != null) {\n if (b.medianValue > a.medianValue) {\n return -1;\n }\n else if (b.medianValue < a.medianValue) {\n return 1;\n }\n }\n return 0;\n };\n return CrossReduction;\n}());\nvar MatrixModel = /** @class */ (function () {\n function MatrixModel() {\n this.edgeMapper = [];\n }\n /* tslint:disable */\n /** @private */\n /**\n * Arrange the elements\n *\n * @returns { void } arrange the elements.\\\n * @param {MatrixModelObject} matrixModel - provide the Matrix Model Object.\n * @param {Layout} layout - provide the layout value.\n *\n * @private\n */\n MatrixModel.prototype.arrangeElements = function (matrixModel, layout) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal;\n if (layout.orientation === 'LeftToRight' || layout.orientation === 'RightToLeft') {\n isHorizontal = true;\n }\n else {\n isHorizontal = false;\n }\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n //let spacingInverse: number = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n // Need to group element before\n this.groupLayoutCells(matrixModel);\n this.createMatrixCells(matrixModel);\n for (var j = 0; j < matrixModel.matrix.length; j++) {\n var matrixKey = matrixModel.matrix[parseInt(j.toString(), 10)].key;\n var matrixrow = matrixModel.matrix[parseInt(matrixKey.toString(), 10)].value;\n for (var i = 1; i < matrixrow.length; i++) {\n var cell = matrixrow[parseInt(i.toString(), 10)];\n var prevCell = matrixrow[i - 1];\n cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n }\n // Sort roots based on their indices\n matrixModel.roots.sort(function (a, b) {\n if (a.cells[0] && b.cells[0]) {\n var indexA = matrixModel.model.roots.indexOf(a.cells[0].cell);\n var indexB = matrixModel.model.roots.indexOf(b.cells[0].cell);\n return indexA - indexB;\n }\n return 0;\n });\n for (var j = 0; j < matrixModel.roots.length; j++) {\n var root = matrixModel.roots[parseInt(j.toString(), 10)];\n this.arrangeMatrix(root, null, matrixModel);\n }\n for (var k = 0; k < matrixModel.matrix.length; k++) {\n var row = matrixModel.matrix[parseInt(k.toString(), 10)].value;\n for (var i = 0; i < row.length; i++) {\n var cell = row[parseInt(i.toString(), 10)];\n if (cell.visitedParents.length > 1) {\n var firstParent = cell.visitedParents[0];\n var lastParent = cell.visitedParents[cell.visitedParents.length - 1];\n var firstVertexParent = this.findParentVertexCellGroup(firstParent);\n var lastVertexParent = this.findParentVertexCellGroup(lastParent);\n if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n firstParent = firstVertexParent;\n }\n if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n lastParent = firstVertexParent;\n }\n var newoffset = (lastParent.offset + lastParent.size * 0.5 + firstParent.offset - firstParent.size * 0.5) / 2;\n var availOffsetMin = cell.initialOffset;\n var availOffsetMax = cell.offset;\n if (!(availOffsetMax === availOffsetMin)) {\n if (newoffset >= availOffsetMin && newoffset <= availOffsetMax) {\n this.translateMatrixCells(newoffset - cell.offset, cell);\n }\n else if (newoffset < availOffsetMin) {\n this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n }\n }\n }\n }\n }\n this.setXYforMatrixCell(matrixModel);\n };\n /* tslint:enable */\n MatrixModel.prototype.groupLayoutCells = function (matrixModel) {\n var ranks = matrixModel.model.ranks;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var vertices = [];\n for (var v = 0; v < ranks[parseInt(j.toString(), 10)].length; v++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalVertex') {\n vertices.push(ranks[parseInt(j.toString(), 10)][parseInt(v.toString(), 10)]);\n }\n }\n var edges = [];\n for (var e = 0; e < ranks[parseInt(j.toString(), 10)].length; e++) {\n var rank = ranks[parseInt(j.toString(), 10)][parseInt(e.toString(), 10)];\n var type = this.getType(rank.type);\n if (type === 'internalEdge') {\n edges.push(rank);\n }\n }\n while (vertices.length > 1) {\n var vertex1 = vertices[0];\n var parentset1 = this.selectIds(vertex1.connectsAsTarget, true);\n var childset1 = this.selectIds(vertex1.connectsAsSource, false);\n while (vertices.length > 1) {\n var vertex2 = vertices[1];\n var parentset2 = this.selectIds(vertex2.connectsAsTarget, true);\n var childset2 = this.selectIds(vertex2.connectsAsSource, false);\n var parentequals = this.compareLists(parentset1, parentset2);\n var childequals = this.compareLists(childset1, childset2);\n if (parentequals && childequals) {\n this.updateMutualSharing(vertices[0], vertex2.id);\n this.updateMutualSharing(vertices[1], vertex1.id);\n vertices.splice(1, 1);\n continue;\n }\n break;\n }\n vertices.splice(0, 1);\n }\n while (edges.length > 1) {\n var internalEdge = edges[0];\n var parentset = internalEdge.source;\n var childset = internalEdge.target;\n if (parentset.identicalSibiling != null) {\n var groupedges = [];\n for (var i = 0; i < edges.length; i++) {\n var edge = edges[parseInt(i.toString(), 10)];\n if (edge.target === childset) {\n groupedges.push(edge);\n }\n }\n for (var i = 0; i < groupedges.length; i++) {\n var internalEdgese = groupedges[parseInt(i.toString(), 10)];\n if (this.containsValue(parentset.identicalSibiling, internalEdgese.source.id)) {\n internalEdgese.source.identicalSibiling = null;\n }\n }\n internalEdge.source.identicalSibiling = null;\n }\n edges.splice(0, 1);\n }\n }\n };\n /* tslint:disable */\n MatrixModel.prototype.createMatrixCells = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var spacingInverse = !isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var ranks = matrixModel.model.ranks;\n var matrixCellMapper = [];\n var rowoffset = -spacingInverse;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var maxDimension = 0.0;\n var index = (ranks.length - 1) - j;\n var rank = ranks[parseInt(j.toString(), 10)].slice(); //.ToList();\n // Creating new row and adding it to matrix\n var matrixRow = [];\n matrixModel.matrix.push({ key: index, value: matrixRow });\n // Creating new row mapper\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var tempMatrixRow = [];\n matrixCellMapper.push({ index: index, value: tempMatrixRow });\n while (rank.length > 0) //.Any())\n {\n var layoutCell = rank[0];\n // eslint-disable-next-line max-len\n var matrixCell = { level: index, parents: [], children: [], visitedParents: [], visitedChildren: [], ignoredChildren: [], cells: [], size: 0, offset: 0, initialOffset: 0 };\n matrixRow.push(matrixCell);\n var type = this.getType(layoutCell.type);\n if (type === 'internalVertex') {\n matrixCell.cells.push(layoutCell);\n if (layoutCell.identicalSibiling != null) {\n for (var i = 0; i < rank.length; i++) {\n var internalVertex = rank[parseInt(i.toString(), 10)];\n var type_1 = this.getType(internalVertex.type);\n if (type_1 === 'internalVertex' && this.containsValue(layoutCell.identicalSibiling, internalVertex.id)) {\n matrixCell.cells.push(internalVertex);\n if (matrixCell.cells.length > layoutCell.identicalSibiling.length) {\n break;\n }\n }\n }\n }\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalVertex = matrixCell.cells[parseInt(i.toString(), 10)];\n var type_2 = this.getType(internalVertex.type);\n if (type_2 === 'internalVertex') {\n var geometry = internalVertex.cell.geometry;\n matrixCell.size += isHorizontal ? geometry.height : geometry.width;\n maxDimension = Math.max(maxDimension, !isHorizontal ? geometry.height : geometry.width);\n tempMatrixRow.push({ key: internalVertex.id, value: matrixCell });\n if (internalVertex.connectsAsTarget.length > 0) {\n for (var k = 0; k < internalVertex.connectsAsTarget.length; k++) {\n var internalEdgese = internalVertex.connectsAsTarget[parseInt(k.toString(), 10)];\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.ids)) {\n key = internalEdgese.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdgese.source.id)) {\n key = internalEdgese.source.id;\n }\n if (key != null) {\n var parentcellValue = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcellValue.length; v++) {\n if (parentcellValue[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcellValue[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n else if (type === 'internalEdge') {\n matrixCell.cells.push(layoutCell);\n for (var i = 0; i < matrixCell.cells.length; i++) {\n var internalEdge = matrixCell.cells[parseInt(i.toString(), 10)];\n var type1 = this.getType(internalEdge.type);\n if (type1 === 'internalEdge' && internalEdge.edges != null) {\n // need to spacing based on its source and target Node\n var edgeSpacing = 5;\n var cellSize = -edgeSpacing;\n for (var k = 0; k < internalEdge.edges.length; k++) {\n //const internalConnector = internalEdge.edges[k];\n // need to summ up the line width\n cellSize += 1 + edgeSpacing;\n }\n matrixCell.size += cellSize;\n }\n tempMatrixRow.push({ key: internalEdge.ids, value: matrixCell });\n var key = null;\n if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.ids)) {\n key = internalEdge.ids;\n }\n else if (this.containsValue(matrixCellMapper[index - 1].value, internalEdge.source.id)) {\n key = internalEdge.source.id;\n }\n if (key != null) {\n var parentcell = matrixCellMapper[index - 1].value;\n var parentMartixCell = void 0;\n for (var v = 0; v < parentcell.length; v++) {\n if (parentcell[parseInt(v.toString(), 10)].key === key) {\n parentMartixCell = parentcell[parseInt(v.toString(), 10)].value;\n break;\n }\n }\n if (!this.containsValue(matrixCell.parents, parentMartixCell)) {\n matrixCell.parents.push(parentMartixCell);\n }\n if (!this.containsValue(parentMartixCell.children, matrixCell)) {\n parentMartixCell.children.push(matrixCell);\n }\n }\n rank.reverse();\n rank.pop();\n rank.reverse();\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n if (matrixCell.cells.length) {\n var internalVertices = matrixCell.cells.filter(function (e) { return e.type === 'internalVertex'; });\n if (internalVertices.length > 0) {\n var _loop_1 = function (cell) {\n var vertex = cell.cell;\n if (matrixModel.model.roots.some(function (root) { return root === vertex; })) {\n matrixModel.roots.push(matrixCell);\n return \"break\";\n }\n };\n for (var _i = 0, internalVertices_1 = internalVertices; _i < internalVertices_1.length; _i++) {\n var cell = internalVertices_1[_i];\n var state_1 = _loop_1(cell);\n if (state_1 === \"break\")\n break;\n }\n }\n }\n }\n matrixModel.rowOffset.push(rowoffset + (maxDimension / 2) + spacingInverse);\n rowoffset += maxDimension + spacingInverse;\n }\n };\n MatrixModel.prototype.arrangeMatrix = function (cell, parent, matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[cell.level].value;\n var matrixIndex = matrixRow.indexOf(cell);\n if (cell.visitedParents.length > 0) {\n if (cell.visitedParents.length === 1) {\n cell.initialOffset = cell.offset;\n }\n if (matrixIndex + 1 < matrixRow.length) {\n var nextCell = matrixRow[matrixIndex + 1];\n if (nextCell.visitedParents.length > 0) {\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n parent.ignoredChildren.push(cell);\n return;\n }\n }\n }\n }\n if (!(cell.children.length > 0)) {\n var validOffset = cell.offset;\n if (matrixIndex > 0) {\n var prevCell = matrixRow[matrixIndex - 1];\n validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n this.shiftMatrixCells(validOffset - cell.offset, cell, false, null, matrixModel);\n }\n else {\n for (var i = 0; i < cell.children.length; i++) {\n var matrixCellChild = cell.children[parseInt(i.toString(), 10)];\n if (!this.containsValue(cell.visitedChildren, matrixCellChild)) {\n this.arrangeMatrix(matrixCellChild, cell, matrixModel);\n cell.visitedChildren.push(matrixCellChild);\n }\n }\n if (cell.visitedChildren.length > 0) {\n var children = cell.visitedChildren.slice();\n for (var i = 0; i < cell.ignoredChildren.length; i++) {\n //let cellIgnoredChild: MatrixCellGroupObject = cell.ignoredChildren[i];\n children.splice(0, 1);\n cell.visitedChildren.splice(0, 1);\n }\n if (children.length > 0) {\n var firstChild = cell.visitedChildren[0];\n var lastChild = cell.visitedChildren[cell.visitedChildren.length - 1];\n var x1 = firstChild.offset - (firstChild.size / 2);\n var x2 = lastChild.offset + (lastChild.size / 2);\n var newoffset = (x1 + x2) / 2;\n if (newoffset < cell.offset) {\n this.shiftMatrixCells(cell.offset - newoffset, firstChild, true, cell, matrixModel);\n }\n else if (newoffset > cell.offset) {\n this.shiftMatrixCells(newoffset - cell.offset, cell, false, null, matrixModel);\n }\n }\n }\n }\n if (!this.containsValue(cell.visitedParents, parent)) {\n cell.visitedParents.push(parent);\n }\n };\n MatrixModel.prototype.findParentVertexCellGroup = function (cell) {\n if (cell.cells[0]) {\n return cell;\n }\n if (cell.parents.length > 0) {\n return this.findParentVertexCellGroup(cell.parents[0]);\n }\n return cell;\n };\n MatrixModel.prototype.translateMatrixCells = function (value, cell) {\n if (!(value === 0)) {\n cell.offset += value;\n if (cell.visitedChildren.length > 0) {\n for (var i = 0; i < cell.visitedChildren.length; i++) {\n var cellVisitedChild = cell.visitedChildren[parseInt(i.toString(), 10)];\n this.translateMatrixCells(value, cellVisitedChild);\n }\n }\n }\n };\n MatrixModel.prototype.setXYforMatrixCell = function (matrixModel) {\n var layoutSettings = matrixModel.model.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight'\n || layoutSettings.orientation === 'RightToLeft';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n for (var i = 0; i < matrixModel.matrix.length; i++) {\n var matrixrow1 = matrixModel.matrix[parseInt(i.toString(), 10)].value;\n for (var j = 0; j < matrixrow1.length; j++) {\n var matrixCell = matrixrow1[parseInt(j.toString(), 10)];\n var start = matrixCell.offset - (matrixCell.size / 2);\n for (var k = 0; k < matrixCell.cells.length; k++) {\n var cell = matrixCell.cells[parseInt(k.toString(), 10)];\n var type = this.getType(cell.type);\n if (type === 'internalVertex') {\n var internalVertex = cell;\n var width = internalVertex.cell.geometry.width;\n var height = internalVertex.cell.geometry.height;\n if (isHorizontal) {\n internalVertex.cell.geometry = new RectModel(matrixModel.rowOffset[matrixCell.level] - (width / 2), start, width, height);\n }\n else {\n internalVertex.cell.geometry = new RectModel(start, matrixModel.rowOffset[matrixCell.level] - (height / 2), width, height);\n }\n start += (isHorizontal ? height : width) + spacing;\n }\n else if (type === 'internalEdge') {\n var internalEdges = cell;\n var parent_1 = matrixCell.visitedParents[0];\n var isContainSibilingVertex = false;\n if (parent_1) {\n for (var l = 0; l < parent_1.visitedChildren.length; l++) {\n var children = parent_1.visitedChildren[parseInt(l.toString(), 10)];\n var cells = [];\n for (var m = 0; m < children.cells.length; m++) {\n var cell_1 = children.cells[parseInt(m.toString(), 10)];\n var type_3 = this.getType(cell_1.type);\n if (type_3 === 'internalVertex') {\n cells.push(cell_1);\n }\n }\n if (cells.length > 0) {\n isContainSibilingVertex = true;\n break;\n }\n }\n }\n // Need to updated line width\n var lineWidth = 1;\n var edgeSpacing = 5;\n for (var m = 0; m < internalEdges.edges.length; m++) {\n var internalConnector = internalEdges.edges[parseInt(m.toString(), 10)];\n var pt = this.getPointvalue(start + (lineWidth / 2.0), matrixModel.rowOffset[matrixCell.level]);\n if (isHorizontal) {\n pt = this.getPointvalue(matrixModel.rowOffset[matrixCell.level], start + (lineWidth / 2.0));\n }\n if (this.containsValue(this.getEdgeMapper(), internalConnector)) {\n var key = void 0;\n for (var l = 0; l < this.getEdgeMapper().length; l++) {\n if ((this.getEdgeMapper())[parseInt(l.toString(), 10)].key === internalConnector) {\n key = l;\n break;\n }\n }\n (this.getEdgeMapper())[parseInt(key.toString(), 10)].value.push(pt);\n }\n start += lineWidth + edgeSpacing;\n }\n start += spacing;\n }\n }\n }\n }\n };\n MatrixModel.prototype.getType = function (type) {\n if (type === 'internalVertex') {\n return 'internalVertex';\n }\n else {\n return 'internalEdge';\n }\n };\n MatrixModel.prototype.selectIds = function (node, source) {\n var returnIds = [];\n for (var i = 0; i < node.length; i++) {\n var connector = node[parseInt(i.toString(), 10)];\n if (source) {\n {\n returnIds.push(connector.source.id);\n }\n }\n else {\n returnIds.push(connector.target.id);\n }\n }\n return returnIds;\n };\n MatrixModel.prototype.compareLists = function (list1, list2) {\n var newList1 = list1.slice();\n var newList2 = list2.slice();\n if (newList1.length === newList2.length) {\n if (newList1.length === 0) {\n return true;\n }\n else {\n var isSame = true;\n for (var i = 0; i < newList2.length; i++) {\n var o = newList2[parseInt(i.toString(), 10)];\n // EJ2-63944 - Nodes overlapping in Complex hierarchical tree layout in linear arrangement.\n if (newList1.indexOf(o) === -1) {\n isSame = false;\n break;\n }\n }\n return isSame;\n }\n }\n return false;\n };\n MatrixModel.prototype.updateMutualSharing = function (cell, id) {\n if (cell.identicalSibiling != null) {\n cell.identicalSibiling.push(id);\n }\n else {\n cell.identicalSibiling = [];\n cell.identicalSibiling.push(id);\n }\n };\n MatrixModel.prototype.containsValue = function (list, keyValue) {\n for (var i = 0; i < list.length; i++) {\n if (list[parseInt(i.toString(), 10)].key === keyValue\n || list[parseInt(i.toString(), 10)] === keyValue) {\n return true;\n }\n }\n return false;\n };\n MatrixModel.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell, matrixModel) {\n if (!(value === 0)) {\n var matrix = matrixModel.matrix;\n var matrixRow = matrix[startingCell.level].value;\n var index = matrixRow.indexOf(startingCell);\n for (var i = index; i < matrixRow.length; i++) {\n matrixRow[parseInt(i.toString(), 10)].offset += value;\n }\n if (shiftChildren) {\n if (startingCell.visitedChildren.length > 0) {\n this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell, matrixModel);\n }\n else {\n var i = 1;\n var nextSibilingwithChild = null;\n while (index + i < matrixRow.length) {\n var nextCell = matrixRow[index + i];\n if (parentCell != null && this.containsValue(nextCell.visitedParents, parentCell)) {\n if (nextCell.visitedChildren.length > 0) {\n nextSibilingwithChild = nextCell;\n }\n else {\n i++;\n continue;\n }\n }\n break;\n }\n if (nextSibilingwithChild != null) {\n this.shiftMatrixCells(value, nextSibilingwithChild.visitedChildren[0], true, nextSibilingwithChild, matrixModel);\n }\n }\n }\n }\n };\n MatrixModel.prototype.getPointvalue = function (x, y) {\n return { 'x': Number(x) || 0, 'y': Number(y) || 0 };\n };\n MatrixModel.prototype.getEdgeMapper = function () {\n return this.edgeMapper;\n };\n MatrixModel.prototype.setEdgeMapper = function (value) {\n this.edgeMapper.push(value);\n };\n MatrixModel.prototype.updateLayout = function (viewPort, modelBounds, layoutProp, layout, nodeWithMultiEdges, nameTable) {\n var trnsX = ((viewPort.x - modelBounds.width) / 2) - modelBounds.x;\n var trnsY = ((viewPort.y - modelBounds.height) / 2) - modelBounds.y;\n trnsX = Math.round(trnsX);\n trnsY = Math.round(trnsY);\n var modifiedConnectors = [];\n var transModelBounds = new RectModel(modelBounds.x + trnsX, modelBounds.y + trnsY, modelBounds.width, modelBounds.height);\n var margin = layoutProp.margin;\n var isHorizontal = layout.orientation === 'RightToLeft' || layout.orientation === 'LeftToRight';\n var inversespacing = !isHorizontal ? layout.verticalSpacing : layout.horizontalSpacing;\n for (var i = 0; i < nodeWithMultiEdges.length; i++) {\n var node = nodeWithMultiEdges[parseInt(i.toString(), 10)];\n if (node.outEdges != null && node.outEdges.length > 0) {\n var count = node.outEdges.length;\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.outEdges[parseInt(j.toString(), 10)]];\n internalConnector['pointCollection'] = [];\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var edgeMapper = this.getEdgeMapper();\n for (var k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[parseInt(k.toString(), 10)].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[parseInt(key.toString(), 10)].value.length > 0) {\n var edgePoint = edgeMapper[parseInt(key.toString(), 10)].value[0];\n var dxValue1 = edgePoint.x + margin.left;\n var dyValue1 = edgePoint.y + margin.top;\n var x1 = dxValue1;\n var y1 = dyValue1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dyValue1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dxValue1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var i_1 = 0; i_1 < internalConnector.segments.length; i_1++) {\n var pt = internalConnector.segments[parseInt(i_1.toString(), 10)].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[parseInt(temp.toString(), 10)]);\n }\n }\n // eslint-disable-next-line max-len\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layout.orientation);\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[parseInt(p.toString(), 10)];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector);\n }\n modifiedConnectors.push(internalConnector);\n }\n }\n if (node.inEdges != null && node.inEdges.length > 1) {\n var count = node.inEdges.length;\n var edgeMapper = this.getEdgeMapper();\n for (var j = 0; j < count; j++) {\n var internalConnector = nameTable[node.inEdges[parseInt(j.toString(), 10)]];\n if (!this.containsValue(modifiedConnectors, internalConnector)) {\n internalConnector['pointCollection'] = [];\n }\n if (count > 1) {\n var segmentsize = inversespacing / 2.0;\n var intermediatePoint = null;\n var key = void 0;\n var k = void 0;\n for (k = 0; k < edgeMapper.length; k++) {\n if (edgeMapper[parseInt(k.toString(), 10)].key === internalConnector) {\n key = k;\n break;\n }\n }\n if (edgeMapper[parseInt(key.toString(), 10)].value.length > 0\n && !this.containsValue(modifiedConnectors, internalConnector)) {\n var edgePt = edgeMapper[parseInt(k.toString(), 10)].value[0];\n var dx1 = edgePt.x + margin.left;\n var dy1 = edgePt.y + margin.top;\n // eslint-disable-next-line one-var\n var x1 = dx1, y1 = dy1;\n if (layout.orientation === 'BottomToTop') {\n y1 = modelBounds.height - dy1;\n }\n else if (layout.orientation === 'RightToLeft') {\n x1 = modelBounds.width - dx1;\n }\n x1 += trnsX;\n y1 += trnsY;\n intermediatePoint = this.getPointvalue(x1, y1);\n }\n var pts = [];\n for (var p = 0; p < internalConnector.segments.length; p++) {\n var pt = internalConnector.segments[parseInt(p.toString(), 10)].points;\n // eslint-disable-next-line guard-for-in\n for (var temp in pt) {\n pts.push(pt[parseInt(temp.toString(), 10)]);\n }\n }\n pts.reverse();\n // eslint-disable-next-line\n pts = this.updateConnectorPoints(pts, segmentsize, intermediatePoint, transModelBounds, layoutProp.orientation);\n pts.reverse();\n internalConnector['pointCollection'] = [];\n for (var p = 0; p < pts.length; p++) {\n var pt = pts[parseInt(p.toString(), 10)];\n internalConnector['pointCollection'].push(this.getPointvalue(pt.x, pt.y));\n }\n this.resetConnectorPoints(internalConnector);\n }\n }\n }\n }\n };\n MatrixModel.prototype.inflate = function (rect, x, y) {\n rect.x -= x;\n rect.y -= y;\n rect.width += 2 * x;\n rect.height += 2 * y;\n return rect;\n };\n MatrixModel.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, bounds, orientation) {\n var layoutBounds = bounds;\n var isHorizontal = orientation === 'LeftToRight' || orientation === 'RightToLeft';\n var pts = connectorPoints;\n if (pts.length > 2) {\n var newPt = Point.transform(pts[0], Point.findAngle(pts[0], pts[1]), startSegmentSize);\n var nextPt = Point.transform(newPt, Point.findAngle(pts[1], pts[2]), Point.findLength(pts[1], pts[2]));\n pts.splice(1, 2, newPt, nextPt);\n if (intermediatePoint != null) {\n var index = 2;\n var ptsCount = pts.length;\n var newPt1 = Point.transform(pts[ptsCount - 1], Point.findAngle(pts[ptsCount - 1], pts[ptsCount - 2]), startSegmentSize);\n pts.splice(ptsCount - 1, 0, newPt1);\n while (index < (pts.length - 2)) {\n pts.splice(index, 1);\n }\n var edgePt = intermediatePoint;\n this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height);\n var line1 = [];\n line1[0] = this.getPointvalue(edgePt.x, layoutBounds.y);\n line1[1] = this.getPointvalue(edgePt.x, layoutBounds.y + layoutBounds.height);\n var line2 = [];\n line2[0] = this.getPointvalue(layoutBounds.x, pts[1].y);\n line2[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, pts[1].y);\n var line3 = [];\n line3[0] = this.getPointvalue(layoutBounds.x, newPt1.y);\n line3[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, newPt1.y);\n if (isHorizontal) {\n line1[0] = this.getPointvalue(layoutBounds.x, edgePt.y);\n line1[1] = this.getPointvalue(layoutBounds.x + layoutBounds.width, edgePt.y);\n line2[0] = this.getPointvalue(pts[1].x, layoutBounds.y);\n line2[1] = this.getPointvalue(pts[1].x, layoutBounds.y + layoutBounds.height);\n line3[0] = this.getPointvalue(newPt1.x, layoutBounds.y);\n line2[1] = this.getPointvalue(newPt1.x, layoutBounds.y + layoutBounds.height);\n }\n var intercepts1 = [intersect2(line1[0], line1[1], line2[0], line2[1])];\n var intercepts2 = [intersect2(line1[0], line1[1], line3[0], line3[1])];\n if (intercepts2.length > 0) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length > 0) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n }\n var i = 1;\n while (i < pts.length - 1) {\n if (Point.equals(pts[i - 1], pts[parseInt(i.toString(), 10)])) {\n pts.splice(i, 1);\n }\n else if (Point.findAngle(pts[i - 1], pts[parseInt(i.toString(), 10)])\n === Point.findAngle(pts[parseInt(i.toString(), 10)], pts[i + 1])) {\n pts.splice(i, 1);\n }\n else {\n i++;\n }\n }\n return pts;\n };\n MatrixModel.prototype.resetConnectorPoints = function (edge) {\n var obstacleCollection = 'obstaclePointCollection';\n if (edge.segments[0].points\n && edge.segments[0].points.length > 0 && edge[\"\" + obstacleCollection]) {\n var connector = edge;\n connector.sourcePoint = edge[\"\" + obstacleCollection][0];\n connector.targetPoint = edge[\"\" + obstacleCollection][edge[\"\" + obstacleCollection].length - 1];\n var segments = [];\n for (var i = 0; i < edge[\"\" + obstacleCollection].length - 1; i++) {\n var point1 = edge[\"\" + obstacleCollection][parseInt(i.toString(), 10)];\n var point2 = edge[\"\" + obstacleCollection][i + 1];\n var length_2 = findDistance(point1, point2);\n var direction = getConnectorDirection(point1, point2);\n if (i === edge[\"\" + obstacleCollection].length - 2) {\n if ((this.diagram.layout.orientation === 'RightToLeft' && direction === 'Left')\n || (this.diagram.layout.orientation === 'LeftToRight' && direction === 'Right')\n || (this.diagram.layout.orientation === 'TopToBottom' && direction === 'Bottom')\n || (this.diagram.layout.orientation === 'BottomToTop' && direction === 'Top')) {\n length_2 = length_2 / 2;\n }\n }\n /* tslint:enable */\n var tempSegment = new OrthogonalSegment(edge, 'segments', { type: 'Orthogonal' }, true);\n tempSegment.length = length_2;\n tempSegment.direction = direction;\n segments.push(tempSegment);\n }\n connector.segments = segments;\n connector.type = 'Orthogonal';\n this.diagram.connectorPropertyChange(connector, {}, {\n type: 'Orthogonal',\n segments: connector.segments\n });\n }\n };\n return MatrixModel;\n}());\n","var FlowchartModel = /** @class */ (function () {\n function FlowchartModel(layout, root, vertices) {\n var _this = this;\n this.dfsCount = 0;\n this.maxRank = 100000000;\n this.layout = layout;\n this.vertexMapper = new Map();\n this.ranks = new Map();\n var internalVertices = [];\n this.createInternalCells(vertices, internalVertices);\n internalVertices.forEach(function (internalVertex) {\n var edges = internalVertex.internalOutEdges;\n edges.forEach(function (internalEdge) {\n var realEdges = internalEdge.edges;\n if (realEdges && realEdges.length > 0) {\n var realEdge = realEdges[0];\n var targetCell = _this.layout.getVisibleTerminal(realEdge, false);\n var internalTargetCell = _this.vertexMapper.get(targetCell.id);\n if (internalVertex === internalTargetCell) {\n targetCell = _this.layout.getVisibleTerminal(realEdge, true);\n internalTargetCell = _this.vertexMapper.get(targetCell.id);\n }\n if (internalTargetCell && internalVertex !== internalTargetCell) {\n internalEdge.target = internalTargetCell;\n if (internalVertex.internalInEdges.indexOf(internalEdge) === -1) {\n internalTargetCell.internalInEdges.push(internalEdge);\n }\n }\n }\n });\n });\n this.rootNode = this.vertexMapper.get(root.id);\n }\n FlowchartModel.prototype.createInternalCells = function (vertices, internalVertices) {\n for (var j = 0; j < vertices.length; j++) {\n var vertex = vertices[parseInt(j.toString(), 10)];\n var internalVertex = {\n tempRank: -1, cell: vertex, hashCode: [], maxRank: null, minRank: null,\n id: vertex.id, internalOutEdges: [], internalInEdges: [], identicalSibling: []\n };\n internalVertices.push(internalVertex);\n this.vertexMapper.set(vertex.id, internalVertex);\n var connectors = this.layout.getEdges(vertex);\n var i = 0;\n while (i < connectors.length) {\n var connector = connectors[parseInt(i.toString(), 10)];\n var childVertex = this.layout.getVisibleTerminal(connector, false);\n if (childVertex !== vertex) {\n var undirectedEdges = this.layout.getEdgesBetween(vertex, childVertex, true);\n if (undirectedEdges.length > 0) {\n var internalEdge = {\n connectorIds: [], edges: undirectedEdges, ids: [], isReversed: false,\n source: null, target: null, tempRank: 0, maxRank: null, minRank: null\n };\n for (var k = 0; k < undirectedEdges.length; k++) {\n var undirectedEdge = undirectedEdges[parseInt(k.toString(), 10)];\n // if (!undirectedEdge.id) {\n // undirectedEdge.id = randomId();\n // }\n internalEdge.ids.push(undirectedEdge.id);\n if (connectors.indexOf(undirectedEdge) !== -1) {\n if (connectors.indexOf(undirectedEdge) < i) {\n i--;\n }\n connectors.splice(connectors.indexOf(undirectedEdge), 1);\n }\n }\n internalEdge.source = internalVertex;\n if (internalVertex.internalOutEdges.indexOf(internalEdge) === -1) {\n internalVertex.internalOutEdges.push(internalEdge);\n }\n }\n }\n else {\n i++;\n }\n }\n }\n };\n //Initializes the ranks of the vertices\n /**\n * @Private\n * @returns { void } Initializes the ranks of the vertices .\\\n */\n FlowchartModel.prototype.layeringStage = function () {\n this.recycleConnectors();\n this.initialRank();\n this.fixRanks();\n };\n FlowchartModel.prototype.recycleConnectors = function () {\n var startNodes = [this.rootNode];\n this.visit(startNodes, true);\n };\n FlowchartModel.prototype.initialRank = function () {\n var startNodes = [this.rootNode];\n var internalNodes = Array.from(this.vertexMapper.values());\n while (startNodes.length > 0) {\n var internalNode = startNodes[0];\n var outEdges = internalNode.internalOutEdges;\n var inEdges = internalNode.internalInEdges;\n var allEdgesScanned = true;\n var minimumLayer = 100000000;\n for (var i = 0; i < inEdges.length; i++) {\n var internalEdge = inEdges[parseInt(i.toString(), 10)];\n if (internalEdge.tempRank === 5270620) {\n // This edge has been scanned, get the layer of the node on the other end\n var otherNode = internalEdge.source;\n minimumLayer = otherNode.tempRank ? Math.min(minimumLayer, otherNode.tempRank - 1) : minimumLayer;\n }\n else {\n allEdgesScanned = false;\n break;\n }\n }\n // If all edge have been scanned, assign the layer, mark all edges in the other direction and remove from the nodes list\n if (allEdgesScanned) {\n internalNode.tempRank = minimumLayer;\n this.maxRank = Math.min(this.maxRank, minimumLayer);\n if (outEdges.length) {\n if (internalNode.cell.isDecisionNode) {\n var yesChild = outEdges.find(function (e) { return e.target.cell.isYesChild; });\n if (outEdges.indexOf(yesChild) !== 0) {\n outEdges.reverse();\n }\n if (this.layout.yesBranchDirection === 'RightInFlow'\n || (this.layout.yesBranchDirection === 'SameAsFlow'\n && this.layout.noBranchDirection === 'LeftInFlow')) {\n outEdges.reverse();\n }\n }\n for (var i = 0; i < outEdges.length; i++) {\n var internalEdge = outEdges[parseInt(i.toString(), 10)];\n internalEdge.tempRank = 5270620;\n // Add node on other end of edge to LinkedList of nodes to be analysed\n var otherNode = internalEdge.target;\n // Only add node if it hasn't been assigned a layer\n if (otherNode.tempRank === -1) {\n // Mark this other node as neither being unassigned nor assigned\n //so it isn't added to this list again, but it's layer isn't used in any calculation.\n otherNode.tempRank = -2;\n startNodes.push(otherNode);\n }\n }\n }\n startNodes.shift();\n }\n else {\n // Not all the edges have been scanned, get to the back of the class and put the dunces cap on\n var removedCell = startNodes.shift();\n startNodes.push(internalNode);\n if (removedCell === internalNode && startNodes.length === 1) {\n // This is an error condition, we can't get out of this loop.\n //It could happen for more than one node but that's a lot harder to detect. Log the error\n break;\n }\n }\n }\n for (var i = 0; i < internalNodes.length; i++) {\n internalNodes[parseInt(i.toString(), 10)].tempRank -= this.maxRank;\n }\n var currentMaxLayer = 0;\n var layerDeterminingEdges = this.rootNode.internalOutEdges;\n for (var j = 0; j < layerDeterminingEdges.length; j++) {\n var internalEdge = layerDeterminingEdges[parseInt(j.toString(), 10)];\n var otherNode = internalEdge.target;\n this.rootNode.tempRank = (otherNode.tempRank !== undefined && otherNode.tempRank !== null) ?\n Math.max(currentMaxLayer, otherNode.tempRank + 1) : currentMaxLayer;\n currentMaxLayer = this.rootNode.tempRank;\n }\n this.maxRank = 100000000 - this.maxRank;\n };\n FlowchartModel.prototype.fixRanks = function () {\n var rankList = new Map();\n this.ranks = new Map();\n for (var i = 0; i <= this.maxRank; i++) {\n rankList.set(i, []);\n this.ranks.set(i, rankList.get(i));\n }\n var rootsArray = [this.rootNode];\n this.visit(rootsArray, false, rankList);\n };\n /**\n * used to visit all the entries on the given dictionary with given function \\\n *\n * @returns { void } used to visit all the entries on the given dictionary with given function .\\\n * @param {InternalVertex[]} dfsRoots - provide the dfsRoots value.\n * @param {boolean} trackAncestors - provide the trackAncestors value.\n * @param {Map} rankList - provide the rankList value.\n * @private\n */\n FlowchartModel.prototype.visit = function (dfsRoots, trackAncestors, rankList) {\n if (rankList === void 0) { rankList = null; }\n if (dfsRoots) {\n for (var i = 0; i < dfsRoots.length; i++) {\n var internalNode = dfsRoots[parseInt(i.toString(), 10)];\n if (internalNode) {\n var seenNodes = new Map();\n if (trackAncestors) {\n internalNode.hashCode = [this.dfsCount, i];\n this.extendedDfs(null, internalNode, null, seenNodes, i);\n }\n else {\n this.depthFirstSearch(null, internalNode, null, seenNodes, rankList);\n }\n }\n }\n this.dfsCount++;\n }\n };\n FlowchartModel.prototype.extendedDfs = function (parent, root, connectingEdge, seen, childHash) {\n var _this = this;\n if (parent) {\n if (!root.hashCode || root.hashCode[0] !== parent.hashCode[0]) {\n root.hashCode = parent.hashCode.concat([childHash]);\n }\n }\n var rootId = root.id;\n if (!seen.has(rootId)) {\n seen.set(rootId, root);\n this.removeConnectionEdge(parent, root, connectingEdge);\n var outgoingEdges = root.internalOutEdges.slice();\n outgoingEdges.forEach(function (internalEdge, i) {\n var targetNode = internalEdge.target;\n _this.extendedDfs(root, targetNode, internalEdge, seen, i);\n });\n }\n else {\n this.removeConnectionEdge(parent, root, connectingEdge);\n }\n };\n FlowchartModel.prototype.removeConnectionEdge = function (parent, node, connectingEdge) {\n if (parent && this.isAncestor(node, parent)) {\n this.invert(connectingEdge);\n this.remove(connectingEdge, parent.internalOutEdges);\n parent.internalInEdges.push(connectingEdge);\n this.remove(connectingEdge, node.internalInEdges);\n node.internalOutEdges.push(connectingEdge);\n }\n };\n FlowchartModel.prototype.invert = function (edge) {\n var temp = edge.source;\n edge.source = edge.target;\n edge.target = temp;\n edge.isReversed = !edge.isReversed;\n };\n FlowchartModel.prototype.remove = function (edge, edges) {\n var index = edges.indexOf(edge);\n edges.splice(index, 1);\n };\n FlowchartModel.prototype.isAncestor = function (node, otherNode) {\n // Firstly, the hash code of this node needs to be shorter than the other node\n if (otherNode !== null && node.hashCode !== null && otherNode.hashCode !== null\n && node.hashCode.length < otherNode.hashCode.length) {\n if (node.hashCode === otherNode.hashCode) {\n return true;\n }\n for (var i = 0; i < node.hashCode.length; i++) {\n if (node.hashCode[parseInt(i.toString(), 10)] !== otherNode.hashCode[parseInt(i.toString(), 10)]) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n FlowchartModel.prototype.depthFirstSearch = function (parent, root, connectingEdge, seen, rankList) {\n var _this = this;\n var rootId = root.id;\n if (!seen.has(rootId)) {\n seen.set(rootId, root);\n this.updateMinMaxRank(parent, root, connectingEdge, 0, rankList);\n var outgoingEdges = root.internalOutEdges.slice();\n outgoingEdges.forEach(function (internalEdge) {\n var targetNode = internalEdge.target;\n _this.depthFirstSearch(root, targetNode, internalEdge, seen, rankList);\n });\n }\n else {\n this.updateMinMaxRank(parent, root, connectingEdge, 1, rankList);\n }\n };\n FlowchartModel.prototype.updateMinMaxRank = function (parent, node, edge, seen, rankList) {\n var rankListArray = Array.from(rankList.values());\n if (node.maxRank == null && node.maxRank !== 0) {\n node.maxRank = -1;\n }\n if (node.minRank == null && node.minRank !== 0) {\n node.minRank = -1;\n }\n if (seen === 0 && node.maxRank < 0 && node.minRank < 0) {\n if (node.tempRank >= 0) {\n var rank = node.tempRank;\n rankListArray[parseInt(rank.toString(), 10)].push(node);\n node.maxRank = rank;\n node.minRank = rank;\n node.tempRank = rankListArray[node.maxRank].length - 1;\n }\n }\n if (parent !== null && edge !== null) {\n var parentToCellRankDifference = parent.maxRank - node.maxRank;\n if (parentToCellRankDifference > 1) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n for (var i = edge.minRank + 1; i < edge.maxRank; i++) {\n rankListArray[parseInt(i.toString(), 10)].push(edge);\n // CheckMe\n // this.layout.setTempVariable(edge, i, rankList[i].length - 1);\n }\n }\n else if (edge.isReversed) {\n edge.maxRank = parent.maxRank;\n edge.minRank = node.maxRank;\n for (var i = edge.minRank; i <= edge.maxRank; i++) {\n rankListArray[parseInt(i.toString(), 10)].push(edge);\n }\n }\n }\n };\n return FlowchartModel;\n}());\nexport { FlowchartModel };\n","import { Rect } from '../../primitives/rect';\nvar MatrixModel = /** @class */ (function () {\n function MatrixModel(model) {\n this.flowchartModel = model;\n this.matrix = [];\n this.rowOffset = [];\n this.rowMaxDimension = [];\n this.siblingModel = null;\n }\n /**\n * @private\n * @returns {void} - Arranges the elements in the flowchart layout\n */\n MatrixModel.prototype.arrangeElements = function () {\n if (this.flowchartModel === null) {\n return;\n }\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n this.groupLayoutCells();\n this.createMatrixCells();\n for (var _i = 0, _a = this.matrix; _i < _a.length; _i++) {\n var matrixRow = _a[_i];\n for (var i = 1; i < matrixRow.length; i++) {\n var cell = matrixRow[parseInt(i.toString(), 10)];\n var prevCell = matrixRow[i - 1];\n cell.offset += prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n }\n for (var _b = 0, _c = this.matrix[0]; _b < _c.length; _b++) {\n var root = _c[_b];\n this.arrangeMatrix(root, null);\n }\n for (var _d = 0, _e = this.matrix; _d < _e.length; _d++) {\n var row = _e[_d];\n for (var i = 0; i < row.length; i++) {\n var cell = row[parseInt(i.toString(), 10)];\n if (cell.visitedParents.length > 1) {\n var firstParent = cell.visitedParents[0];\n var lastParent = cell.visitedParents[cell.visitedParents.length - 1];\n var firstVertexParent = this.findParentVertexCellGroup(firstParent);\n var lastVertexParent = this.findParentVertexCellGroup(lastParent);\n if (firstParent !== firstVertexParent && firstVertexParent.offset < firstParent.offset) {\n firstParent = firstVertexParent;\n }\n if (lastParent !== lastVertexParent && lastVertexParent.offset > lastParent.offset) {\n lastParent = firstVertexParent;\n }\n var newOffset = (firstParent.offset + lastParent.offset) / 2;\n var interVertex = cell.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (this.flowchartModel.layout.yesBranchDirection === 'SameAsFlow') {\n var tempVisitedParents = cell.visitedParents.slice();\n if (interVertex && interVertex.cell.isYesChild) {\n for (var _f = 0, tempVisitedParents_1 = tempVisitedParents; _f < tempVisitedParents_1.length; _f++) {\n var tempParent = tempVisitedParents_1[_f];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (!tempParentVertex) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n else {\n if (this.flowchartModel.layout.noBranchDirection === 'LeftInFlow') {\n tempVisitedParents.reverse();\n }\n for (var _g = 0, tempVisitedParents_2 = tempVisitedParents; _g < tempVisitedParents_2.length; _g++) {\n var tempParent = tempVisitedParents_2[_g];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (tempParentVertex) {\n if (tempParentVertex.cell.isYesChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n else {\n var tempSuperParent = this.findParentVertexCellGroup(tempParent);\n if (tempSuperParent) {\n var superParentVertex = tempSuperParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (superParentVertex && superParentVertex.cell.isYesChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n }\n }\n }\n else if (this.flowchartModel.layout.noBranchDirection === 'SameAsFlow') {\n var tempVisitedParents = cell.visitedParents.slice();\n if (interVertex && interVertex.cell.isNoChild) {\n for (var _h = 0, tempVisitedParents_3 = tempVisitedParents; _h < tempVisitedParents_3.length; _h++) {\n var tempParent = tempVisitedParents_3[_h];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (!tempParentVertex) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n else {\n if (this.flowchartModel.layout.yesBranchDirection === 'LeftInFlow') {\n tempVisitedParents.reverse();\n }\n for (var _j = 0, tempVisitedParents_4 = tempVisitedParents; _j < tempVisitedParents_4.length; _j++) {\n var tempParent = tempVisitedParents_4[_j];\n var tempParentVertex = tempParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (tempParentVertex) {\n if (tempParentVertex.cell.isNoChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n else {\n var tempSuperParent = this.findParentVertexCellGroup(tempParent);\n if (tempSuperParent) {\n var superParentVertex = tempSuperParent.cells.find(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; });\n if (superParentVertex && superParentVertex.cell.isNoChild) {\n newOffset = tempParent.offset;\n break;\n }\n }\n }\n }\n }\n }\n var availOffsetMin = cell.initialOffset;\n var availOffsetMax = cell.offset;\n if (availOffsetMax !== availOffsetMin) {\n if (newOffset >= availOffsetMin && newOffset <= availOffsetMax) {\n this.translateMatrixCells(newOffset - cell.offset, cell);\n }\n else if (newOffset < availOffsetMin) {\n this.translateMatrixCells(availOffsetMin - cell.offset, cell);\n }\n }\n }\n }\n }\n this.setXYForMatrixCell();\n };\n MatrixModel.prototype.arrangeMatrix = function (cell, parent) {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var matrixRow = this.matrix[cell.level];\n var matrixIndex = matrixRow.indexOf(cell);\n if (cell.visitedParents.length) {\n if (cell.visitedParents.length === 1) {\n cell.initialOffset = cell.offset;\n }\n if (matrixIndex + 1 < matrixRow.length) {\n var nextCell = matrixRow[matrixIndex + 1];\n if (nextCell.visitedParents.length) {\n if (cell.visitedParents.indexOf(parent) === -1) {\n if (cell.level !== parent.level) {\n cell.visitedParents.push(parent);\n parent.ignoredChildren.push(cell);\n }\n return;\n }\n }\n }\n }\n if (!cell.children.length) {\n var validOffset = cell.offset;\n if (matrixIndex > 0) {\n var prevCell = matrixRow[matrixIndex - 1];\n validOffset = prevCell.offset + (prevCell.size / 2) + spacing + (cell.size / 2);\n }\n this.shiftMatrixCells(validOffset - cell.offset, cell);\n }\n else {\n for (var _i = 0, _a = cell.children; _i < _a.length; _i++) {\n var matrixCellChild = _a[_i];\n if (cell.visitedChildren.indexOf(matrixCellChild)) {\n this.arrangeMatrix(matrixCellChild, cell);\n if (cell.level !== matrixCellChild.level) {\n cell.visitedChildren.push(matrixCellChild);\n }\n else {\n cell.loopChildren.push(matrixCellChild);\n }\n }\n }\n if (cell.visitedChildren.length) {\n var children = cell.visitedChildren.slice();\n var _loop_1 = function (cellIgnoredChild) {\n children = children.filter(function (child) { return child !== cellIgnoredChild; });\n };\n for (var _b = 0, _c = cell.ignoredChildren; _b < _c.length; _b++) {\n var cellIgnoredChild = _c[_b];\n _loop_1(cellIgnoredChild);\n }\n if (children.length) {\n var firstChild = children[0];\n var lastChild = children[children.length - 1];\n var x1 = firstChild.offset;\n var x2 = lastChild.offset;\n var newOffset = (x1 + x2) / 2;\n if (cell.cells.length) {\n var interVertex = cell.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n var firstChildVertex = firstChild.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n var lastChildVertex = lastChild.cells.filter(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })[0];\n if (interVertex && interVertex.cell.isDecisionNode) {\n if (this.flowchartModel.layout.yesBranchDirection === 'SameAsFlow') {\n if (firstChildVertex) {\n newOffset = firstChildVertex.cell.isYesChild ? firstChild.offset : lastChild.offset;\n }\n else if (lastChildVertex) {\n newOffset = lastChildVertex.cell.isYesChild ? lastChild.offset : firstChild.offset;\n }\n }\n else if (this.flowchartModel.layout.noBranchDirection === 'SameAsFlow') {\n if (firstChildVertex) {\n newOffset = firstChildVertex.cell.isNoChild ? firstChild.offset : lastChild.offset;\n }\n else if (lastChildVertex) {\n newOffset = lastChildVertex.cell.isNoChild ? lastChild.offset : firstChild.offset;\n }\n }\n }\n }\n if (newOffset < cell.offset) {\n this.shiftMatrixCells(cell.offset - newOffset, firstChild, true, cell);\n }\n else if (newOffset > cell.offset) {\n this.shiftMatrixCells(newOffset - cell.offset, cell);\n }\n }\n }\n }\n if (cell.visitedParents.indexOf(parent) === -1) {\n if (parent !== null && cell.level !== parent.level) {\n cell.visitedParents.push(parent);\n }\n }\n };\n MatrixModel.prototype.shiftMatrixCells = function (value, startingCell, shiftChildren, parentCell) {\n if (shiftChildren === void 0) { shiftChildren = false; }\n if (parentCell === void 0) { parentCell = null; }\n if (value !== 0) {\n var matrixRow = this.matrix[startingCell.level];\n var index = matrixRow.indexOf(startingCell);\n for (var i = index; i < matrixRow.length; i++) {\n matrixRow[parseInt(i.toString(), 10)].offset += value;\n }\n if (shiftChildren) {\n if (startingCell.visitedChildren.length) {\n this.shiftMatrixCells(value, startingCell.visitedChildren[0], true, startingCell);\n }\n else {\n var i = 1;\n var nextSiblingWithChild = null;\n while (index + i < matrixRow.length) {\n var nextCell = matrixRow[index + i];\n if (parentCell !== null && nextCell.visitedParents.indexOf(parentCell) !== -1) {\n if (nextCell.visitedChildren.length) {\n nextSiblingWithChild = nextCell;\n }\n else {\n i++;\n continue;\n }\n }\n break;\n }\n if (nextSiblingWithChild !== null) {\n this.shiftMatrixCells(value, nextSiblingWithChild.visitedChildren[0], true, nextSiblingWithChild);\n }\n }\n }\n }\n };\n MatrixModel.prototype.findParentVertexCellGroup = function (cell) {\n if ('internalInEdges' in cell.cells[0] && 'internalOutEdges' in cell.cells[0]) {\n return cell;\n }\n if (cell.parents.length) {\n return this.findParentVertexCellGroup(cell.parents[0]);\n }\n return cell;\n };\n MatrixModel.prototype.translateMatrixCells = function (value, cell) {\n if (value !== 0) {\n cell.offset += value;\n if (cell.visitedChildren.length) {\n for (var _i = 0, _a = cell.visitedChildren; _i < _a.length; _i++) {\n var child = _a[_i];\n this.translateMatrixCells(value, child);\n }\n for (var _b = 0, _c = cell.loopChildren; _b < _c.length; _b++) {\n var loopChild = _c[_b];\n this.translateMatrixCells(value, loopChild);\n }\n }\n }\n };\n MatrixModel.prototype.getObjectValues = function (obj) {\n var values = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n values.push(obj[\"\" + key]);\n }\n }\n return values;\n };\n MatrixModel.prototype.setXYForMatrixCell = function () {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var siblingSize = 0;\n if (this.siblingModel) {\n var rowMaxValues = this.getObjectValues(this.rowMaxDimension);\n var maxRowValue = Math.max.apply(Math, rowMaxValues);\n siblingSize = this.siblingModel.getSiblingDimension(maxRowValue);\n }\n for (var _i = 0, _a = this.getObjectValues(this.matrix); _i < _a.length; _i++) {\n var matrixRow1 = _a[_i];\n for (var _b = 0, matrixRow1_1 = matrixRow1; _b < matrixRow1_1.length; _b++) {\n var matrixCell = matrixRow1_1[_b];\n var start = matrixCell.offset - (matrixCell.size / 2);\n if (siblingSize !== 0) {\n start += siblingSize + spacing;\n }\n for (var _c = 0, _d = matrixCell.cells; _c < _d.length; _c++) {\n var cell = _d[_c];\n if ('internalInEdges' in cell && 'internalOutEdges' in cell) {\n var internalVertex = cell;\n var width = internalVertex.cell.geometry.width;\n var height = internalVertex.cell.geometry.height;\n if (isHorizontal) {\n internalVertex.cell.geometry = new Rect(this.rowOffset[matrixCell.level] - (width / 2), start, width, height);\n }\n else {\n internalVertex.cell.geometry = new Rect(start, this.rowOffset[matrixCell.level] - (height / 2), width, height);\n }\n start += (isHorizontal ? height : width) + spacing;\n }\n else if ('edges' in cell) {\n var internalEdges = cell;\n var isContainSiblingVertex = internalEdges.isReversed;\n if (!isContainSiblingVertex) {\n var parent_1 = matrixCell.visitedParents[0];\n if (parent_1) {\n for (var _e = 0, _f = parent_1.visitedChildren; _e < _f.length; _e++) {\n var child = _f[_e];\n if (child.cells.some(function (c) { return 'internalInEdges' in c && 'internalOutEdges' in c; })) {\n isContainSiblingVertex = true;\n break;\n }\n }\n }\n }\n var lineWidth = 1;\n var edgeSpacing = 5;\n for (var _g = 0, _h = internalEdges.edges; _g < _h.length; _g++) {\n var internalConnector = _h[_g];\n if (isContainSiblingVertex) {\n var pt = { x: start + (lineWidth / 2.0), y: this.rowOffset[matrixCell.level] };\n if (isHorizontal) {\n pt = { x: this.rowOffset[matrixCell.level], y: start + (lineWidth / 2.0) };\n }\n if (this.flowchartModel.layout.edgesMapper.has(internalConnector)) {\n this.flowchartModel.layout.edgesMapper.get(internalConnector).push(pt);\n this.flowchartModel.layout.loopedgesMapper.set(internalConnector, internalEdges.isReversed);\n }\n }\n start += lineWidth + edgeSpacing;\n }\n start += spacing;\n }\n }\n }\n }\n };\n MatrixModel.prototype.getSiblingDimension = function (maxHeight) {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.horizontalSpacing : layoutSettings.verticalSpacing;\n var commonRowIndex = 0;\n for (var key in this.rowMaxDimension) {\n if (Object.prototype.hasOwnProperty.call(this.rowMaxDimension, key)) {\n var value = this.rowMaxDimension[\"\" + key];\n if (value < maxHeight) {\n commonRowIndex = parseInt(key, 10);\n }\n else {\n break;\n }\n }\n }\n if (this.rowMaxDimension[parseInt(commonRowIndex.toString(), 10)] + spacing <= maxHeight\n && this.rowMaxDimension[commonRowIndex + 1]) {\n commonRowIndex++;\n }\n var commonRows = [];\n for (var key in this.matrix) {\n if (Object.prototype.hasOwnProperty.call(this.matrix, key) && parseInt(key, 10) <= commonRowIndex) {\n commonRows[\"\" + key] = this.matrix[\"\" + key];\n }\n }\n var maxSize = 0;\n for (var key in commonRows) {\n if (Object.prototype.hasOwnProperty.call(commonRows, key)) {\n var matrixRow1 = commonRows[\"\" + key];\n if (matrixRow1.length) {\n var firstCell = matrixRow1[0].cells[0];\n var rowStart = 0;\n if (firstCell && 'cell' in firstCell) {\n var geometry = firstCell.cell.geometry;\n rowStart = isHorizontal ? geometry.y : geometry.x;\n }\n else if (firstCell && 'edges' in firstCell) {\n var internalConnector = firstCell.edges[firstCell.edges.length - 1];\n var edgePts = this.flowchartModel.layout.edgesMapper.get(internalConnector);\n if (edgePts.length) {\n rowStart = isHorizontal ? edgePts[0].y : edgePts[0].x;\n }\n }\n var rowEnd = 0;\n var lastCell = matrixRow1[matrixRow1.length - 1]\n .cells[matrixRow1[matrixRow1.length - 1].cells.length - 1];\n if (lastCell && 'cell' in lastCell) {\n var geometry = lastCell.cell.geometry;\n rowEnd = isHorizontal ? geometry.y + geometry.height : geometry.x + geometry.width;\n }\n else if (lastCell && 'edges' in lastCell) {\n var internalConnector = lastCell.edges[lastCell.edges.length - 1];\n var edgePts = this.flowchartModel.layout.edgesMapper.get(internalConnector);\n if (edgePts.length) {\n rowEnd = isHorizontal ? edgePts[0].y : edgePts[0].x;\n }\n }\n maxSize = Math.max(maxSize, rowEnd - rowStart);\n }\n }\n }\n return maxSize;\n };\n MatrixModel.prototype.createMatrixCells = function () {\n var layoutSettings = this.flowchartModel.layout;\n var isHorizontal = layoutSettings.orientation === 'LeftToRight';\n var spacing = isHorizontal ? layoutSettings.verticalSpacing : layoutSettings.horizontalSpacing;\n var spacingInverse = isHorizontal ? layoutSettings.horizontalSpacing : layoutSettings.verticalSpacing;\n var rank = this.flowchartModel.ranks;\n var ranks = Array.from(rank.values());\n var matrixCellMapper = {};\n var matrixRowOffset = -spacingInverse;\n for (var j = ranks.length - 1; j >= 0; j--) {\n var maxDimension = 0.0;\n var index = (ranks.length - 1) - j;\n var rank_1 = ranks[parseInt(j.toString(), 10)].slice();\n // Creating new row and adding it to matrix\n var matrixRow = [];\n this.matrix[parseInt(index.toString(), 10)] = matrixRow;\n // Creating new row mapper\n var tempMatrixRow = {};\n matrixCellMapper[parseInt(index.toString(), 10)] = tempMatrixRow;\n while (rank_1.length > 0) {\n var layoutCell = rank_1[0];\n var matrixCell = {\n parents: [],\n children: [],\n visitedParents: [],\n visitedChildren: [],\n ignoredChildren: [],\n loopChildren: [],\n cells: [],\n level: index,\n initialOffset: 0,\n size: 0,\n offset: 0\n };\n matrixRow.push(matrixCell);\n if ('internalInEdges' in layoutCell && 'internalOutEdges' in layoutCell) {\n matrixCell.cells.push(layoutCell);\n if (layoutCell.identicalSibling) {\n for (var i = 0; i < rank_1.length; i++) {\n var internalVertex = rank_1[parseInt(i.toString(), 10)];\n if ('internalInEdges' in internalVertex && 'internalOutEdges' in internalVertex) {\n if (layoutCell.identicalSibling.indexOf(internalVertex.id) !== -1) {\n matrixCell.cells.push(internalVertex);\n if (matrixCell.cells.length > layoutCell.identicalSibling.length) {\n break;\n }\n }\n }\n }\n }\n var cells = matrixCell.cells;\n for (var i = 0; i < cells.length; i++) {\n var internalVertex = cells[parseInt(i.toString(), 10)];\n if ('internalInEdges' in internalVertex && 'internalOutEdges' in internalVertex) {\n var geometry = internalVertex.cell.geometry;\n matrixCell.size += isHorizontal ? geometry.height : geometry.width;\n maxDimension = Math.max(maxDimension, isHorizontal ? geometry.width : geometry.height);\n tempMatrixRow[internalVertex.id] = matrixCell;\n if (internalVertex.internalInEdges.length) {\n var internalInEdges = internalVertex.internalInEdges;\n for (var j_1 = 0; j_1 < internalInEdges.length; j_1++) {\n var internalEdges = internalInEdges[parseInt(j_1.toString(), 10)];\n if (internalEdges.isReversed) {\n continue;\n }\n var key = null;\n if (matrixCellMapper[index - 1] &&\n Object.prototype.hasOwnProperty.call(matrixCellMapper[index - 1], internalEdges.ids)) {\n key = internalEdges.ids;\n }\n else if (matrixCellMapper[index - 1] &&\n Object.prototype.hasOwnProperty.call(matrixCellMapper[index - 1], internalEdges.source.id)) {\n key = internalEdges.source.id;\n }\n if (key !== null) {\n var parentMatrixCell = matrixCellMapper[index - 1][\"\" + key];\n if (matrixCell.parents.indexOf(parentMatrixCell) === -1) {\n matrixCell.parents.push(parentMatrixCell);\n }\n if (parentMatrixCell.children.indexOf(matrixCell) === -1) {\n if (parentMatrixCell.children.length) {\n if (parentMatrixCell.children[0].level === parentMatrixCell.level) {\n parentMatrixCell.children.unshift(matrixCell);\n }\n else {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n else {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n }\n }\n }\n rank_1.splice(rank_1.indexOf(internalVertex), 1);\n }\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n else if ('edges' in layoutCell) {\n matrixCell.cells.push(layoutCell);\n var cells = matrixCell.cells;\n for (var i = 0; i < cells.length; i++) {\n var internalEdge = cells[parseInt(i.toString(), 10)];\n if ('edges' in internalEdge && internalEdge.edges) {\n var lineWidth = 1;\n var edgeSpacing = 5;\n var cellSize = -edgeSpacing;\n for (var j_2 = 0; j_2 < internalEdge.edges.length; j_2++) {\n var internalConnector = internalEdge.edges[parseInt(j_2.toString(), 10)];\n cellSize += lineWidth + edgeSpacing;\n }\n matrixCell.size += cellSize;\n }\n var key = null;\n if (internalEdge.isReversed) {\n if (matrixCellMapper[parseInt(index.toString(), 10)][internalEdge.ids]) {\n key = internalEdge.ids;\n }\n else if (matrixCellMapper[parseInt(index.toString(), 10)][internalEdge.source.id]) {\n key = internalEdge.source.id;\n }\n }\n else {\n if (matrixCellMapper[index - 1][internalEdge.ids]) {\n key = internalEdge.ids;\n }\n else if (matrixCellMapper[index - 1][internalEdge.source.id]) {\n key = internalEdge.source.id;\n }\n }\n if (key !== null) {\n var parentMatrixCell = matrixCellMapper[internalEdge.isReversed ?\n index : index - 1][\"\" + key];\n if (matrixCell.parents.indexOf(parentMatrixCell) === -1) {\n matrixCell.parents.push(parentMatrixCell);\n }\n if (parentMatrixCell.children.indexOf(matrixCell) === -1) {\n parentMatrixCell.children.push(matrixCell);\n }\n }\n tempMatrixRow[internalEdge.ids] = matrixCell;\n rank_1.splice(rank_1.indexOf(internalEdge), 1);\n }\n matrixCell.size += (matrixCell.cells.length - 1) * spacing;\n }\n }\n this.rowOffset[parseInt(index.toString(), 10)] = matrixRowOffset + (maxDimension / 2) + spacingInverse;\n this.rowMaxDimension[parseInt(index.toString(), 10)] = this.rowOffset[parseInt(index.toString(), 10)] + maxDimension / 2;\n matrixRowOffset += maxDimension + spacingInverse;\n }\n };\n MatrixModel.prototype.groupLayoutCells = function () {\n var rank = this.flowchartModel.ranks;\n var ranks = Array.from(rank.values());\n ranks.reverse();\n for (var j = ranks.length - 1; j >= 0; j--) {\n var vertices = ranks[parseInt(j.toString(), 10)].filter(function (v) { return 'internalInEdges' in v && 'internalOutEdges' in v; });\n var edges = ranks[parseInt(j.toString(), 10)].filter(function (e) { return 'edges' in e && 'edges' in e; });\n while (vertices.length > 1) {\n var vertex1 = vertices[0];\n if (vertex1.cell.isYesChild || vertex1.cell.isNoChild) {\n vertices.shift();\n continue;\n }\n var parentSet1 = vertex1.internalInEdges.map(function (e) { return e.source.id; });\n var childSet1 = vertex1.internalOutEdges.map(function (e) { return e.target.id; });\n while (vertices.length > 1) {\n var vertex2 = vertices[1];\n var parentSet2 = vertex2.internalInEdges.map(function (e) { return e.source.id; });\n var childSet2 = vertex2.internalOutEdges.map(function (e) { return e.target.id; });\n var parentEquals = this.compareLists(parentSet1, parentSet2);\n var childEquals = this.compareLists(childSet1, childSet2);\n if (parentEquals && childEquals) {\n this.updateMutualSharing(vertices[0], vertex2.id);\n this.updateMutualSharing(vertices[1], vertex1.id);\n vertices.splice(1, 1);\n continue;\n }\n break;\n }\n vertices.shift();\n }\n var _loop_2 = function () {\n var internalEdge = edges[0];\n var parentSet = internalEdge.source;\n var childSet = internalEdge.target;\n if (parentSet.identicalSibling) {\n var groupEdges = edges.filter(function (e) { return e.target === childSet; });\n for (var _i = 0, groupEdges_1 = groupEdges; _i < groupEdges_1.length; _i++) {\n var internalEdges = groupEdges_1[_i];\n if ((parentSet.identicalSibling).indexOf(internalEdges.source.id) !== -1) {\n internalEdges.source.identicalSibling = null;\n }\n }\n internalEdge.source.identicalSibling = null;\n }\n edges.shift();\n };\n while (edges.length > 1) {\n _loop_2();\n }\n }\n };\n MatrixModel.prototype.updateMutualSharing = function (cell, id) {\n if (cell.identicalSibling) {\n cell.identicalSibling.push(id);\n }\n else {\n cell.identicalSibling = [id];\n }\n };\n MatrixModel.prototype.compareLists = function (list1, list2) {\n var newList1 = list1.slice();\n var newList2 = list2.slice();\n if (newList1.length === newList2.length) {\n if (newList1.length === 0) {\n return true;\n }\n for (var _i = 0, newList2_1 = newList2; _i < newList2_1.length; _i++) {\n var o = newList2_1[_i];\n if (newList1.indexOf(o) === -1) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n return MatrixModel;\n}());\nexport { MatrixModel };\n","import { Diagram } from '../../diagram';\nimport { Rect } from '../../primitives/rect';\nimport { FlowchartModel } from './flow-chart-model';\nimport { MatrixModel } from './matrix-model';\n/**\n * Defines the Flowchart Layout\n */\nvar FlowchartLayout = /** @class */ (function () {\n function FlowchartLayout() {\n this.rootNodes = [];\n this.vertexMapper = new Map();\n this.edgesMapper = new Map();\n this.loopedgesMapper = new Map();\n this.anchorX = 0;\n this.anchorY = 0;\n this.verticalSpacing = 50;\n this.horizontalSpacing = 50;\n this.horizontalAlignment = 'Center';\n this.verticalAlignment = 'Top';\n this.margin = { top: 50, right: 50, bottom: 50, left: 50 };\n this.orientation = 'TopToBottom';\n this.yesBranchDirection = 'SameAsFlow';\n this.noBranchDirection = 'RightInFlow';\n this.yesBranchValues = ['Yes', 'True'];\n this.noBranchValues = ['No', 'False'];\n this.diagram = new Diagram();\n }\n /**\n * To update the layout of the diagram.\n * @private\n * @param {NodeModel[]} nodes - provide the node value.\n * @param {Diagram} diagram - provide the diagram value.\n * @returns { void }\n */\n FlowchartLayout.prototype.updateLayout = function (nodes, diagram) {\n this.diagram = diagram;\n this.yesBranchDirection = this.diagram.layout.flowchartLayoutSettings.yesBranchDirection;\n this.noBranchDirection = this.diagram.layout.flowchartLayoutSettings.noBranchDirection;\n this.yesBranchValues = this.diagram.layout.flowchartLayoutSettings.yesBranchValues;\n this.noBranchValues = this.diagram.layout.flowchartLayoutSettings.noBranchValues;\n this.orientation = this.diagram.layout.orientation === 'TopToBottom' || this.diagram.layout.orientation === 'BottomToTop' ? 'TopToBottom' : 'LeftToRight';\n this.horizontalAlignment = this.diagram.layout.horizontalAlignment;\n this.verticalAlignment = this.diagram.layout.verticalAlignment;\n this.verticalSpacing = this.diagram.layout.verticalSpacing;\n this.horizontalSpacing = this.diagram.layout.horizontalSpacing;\n this.margin = this.diagram.layout.margin;\n var firstLevelNodes = [];\n var unseenVertices = [];\n this.rootNodes = [];\n this.vertexMapper.clear();\n this.edgesMapper.clear();\n this.loopedgesMapper.clear();\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var item = nodes_1[_i];\n if (!item.excludeFromLayout) {\n var vertex = this.createVertex(item);\n this.vertexMapper.set(vertex.id, vertex);\n unseenVertices.push(vertex);\n if (!vertex.inEdges || vertex.inEdges.length === 0) {\n firstLevelNodes.push(vertex);\n this.rootNodes.push(item);\n }\n }\n }\n var previousModel = null;\n for (var _a = 0, firstLevelNodes_1 = firstLevelNodes; _a < firstLevelNodes_1.length; _a++) {\n var firstLevelNode = firstLevelNodes_1[_a];\n var vertexSet = [];\n this.getTreeVertices(firstLevelNode, vertexSet, unseenVertices);\n var layoutModel = new FlowchartModel(this, firstLevelNode, vertexSet);\n layoutModel.layeringStage();\n var matrixModel = new MatrixModel(layoutModel);\n matrixModel.siblingModel = previousModel;\n matrixModel.arrangeElements();\n previousModel = matrixModel;\n }\n var vertices = Array.from(this.vertexMapper.values());\n var modelBounds = this.getModelBounds(vertices);\n this.updateAnchor(modelBounds);\n var isHorizontal = this.orientation === 'LeftToRight';\n var inverseSpacing = !isHorizontal ? this.verticalSpacing : this.horizontalSpacing;\n var nodeWithMultiEdges = [];\n for (var _b = 0, vertices_1 = vertices; _b < vertices_1.length; _b++) {\n var vertex = vertices_1[_b];\n if (vertex) {\n var node = vertex.item;\n if (node) {\n node.offsetX = vertex.geometry.x + (vertex.geometry.width / 2) + this.anchorX;\n node.offsetY = vertex.geometry.y + (vertex.geometry.height / 2) + this.anchorY;\n if ((vertex.inEdges && vertex.inEdges.length > 0) || (vertex.outEdges && vertex.outEdges.length > 0)) {\n nodeWithMultiEdges.push(node);\n }\n }\n diagram.dataBind();\n }\n }\n var transModelBounds = new Rect(modelBounds.x + this.anchorX, modelBounds.y\n + this.anchorY, modelBounds.width, modelBounds.height);\n this.nodeWithMultiEdges = nodeWithMultiEdges;\n this.inverseSpacing = inverseSpacing;\n this.transModelBounds = transModelBounds;\n this.diagram.layout.flowChartData = this;\n };\n /**\n * To re-rout the flowchart connectors.\n * @private\n * @param {FlowchartLayout} layoutData - provide the layoutData value.\n * @param {Diagram} diagram - provide the diagram value.\n * @returns { void }\n */\n FlowchartLayout.prototype.reRouteFlowChartConnectors = function (layoutData, diagram) {\n this.diagram = diagram;\n var nodeWithMultiEdges = layoutData.nodeWithMultiEdges;\n var inverseSpacing = layoutData.inverseSpacing;\n this.orientation = layoutData.orientation;\n var isVertical = this.orientation === 'TopToBottom';\n var transModelBounds = layoutData.transModelBounds;\n this.vertexMapper = layoutData.vertexMapper;\n this.loopedgesMapper = layoutData.loopedgesMapper;\n this.edgesMapper = layoutData.edgesMapper;\n this.anchorX = layoutData.anchorX;\n this.anchorY = layoutData.anchorY;\n var modifiedConnectors = [];\n for (var _i = 0, nodeWithMultiEdges_1 = nodeWithMultiEdges; _i < nodeWithMultiEdges_1.length; _i++) {\n var node = nodeWithMultiEdges_1[_i];\n if (node.outEdges && node.outEdges.length > 0) {\n for (var _a = 0, _b = node.outEdges; _a < _b.length; _a++) {\n var edge = _b[_a];\n var internalConnector = this.diagram.nameTable[\"\" + edge];\n if (this.loopedgesMapper.has(internalConnector) && this.loopedgesMapper.get(internalConnector)) {\n if (modifiedConnectors.indexOf(internalConnector) === -1) {\n this.updateLoopConnector(internalConnector);\n modifiedConnectors.push(internalConnector);\n }\n }\n else {\n var updatedPts = [];\n if (node.outEdges.length > 1) {\n var segmentSize = inverseSpacing / 2.0;\n var intermediatePoint = null;\n if (this.edgesMapper.has(internalConnector)) {\n var edgePt = this.edgesMapper.get(internalConnector)[0];\n if (edgePt) {\n intermediatePoint = { x: edgePt.x + this.anchorX, y: edgePt.y + this.anchorY };\n }\n }\n internalConnector.segments = [];\n internalConnector.intermediatePoints = [];\n var pts = [internalConnector.sourcePoint, internalConnector.targetPoint];\n if (isVertical) {\n updatedPts = this.updateVerticalConnectorSegments(internalConnector, pts);\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n }\n else {\n updatedPts = this.updateHorizontalSegments(internalConnector, pts);\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n }\n if (pts.length > 2) {\n this.updatePoints(pts, internalConnector);\n }\n modifiedConnectors.push(internalConnector);\n }\n }\n }\n }\n if (node.inEdges && node.inEdges.length > 1) {\n for (var _c = 0, _d = node.inEdges; _c < _d.length; _c++) {\n var edge = _d[_c];\n var internalConnector = this.diagram.nameTable[\"\" + edge];\n if (modifiedConnectors.indexOf(internalConnector) === -1) {\n internalConnector.segments[0].points = [];\n if (this.loopedgesMapper.has(internalConnector) && this.loopedgesMapper.get(internalConnector)) {\n this.updateLoopConnector(internalConnector);\n modifiedConnectors.push(internalConnector);\n }\n else {\n if (node.inEdges.length > 1) {\n var segmentSize = inverseSpacing / 2.0;\n var intermediatePoint = null;\n if (this.edgesMapper.has(internalConnector) && modifiedConnectors.indexOf(internalConnector) === -1) {\n var edgePt = this.edgesMapper.get(internalConnector)[0];\n if (edgePt) {\n intermediatePoint = { x: edgePt.x + this.anchorX, y: edgePt.y + this.anchorY };\n }\n }\n internalConnector.segments = [];\n internalConnector.intermediatePoints = [];\n var pts = [internalConnector.targetPoint, internalConnector.sourcePoint];\n var updatedPts = [];\n if (isVertical) {\n updatedPts = this.updateVerticalConnectorSegments(internalConnector, pts);\n }\n else {\n updatedPts = this.updateHorizontalSegments(internalConnector, pts);\n }\n pts = this.updateConnectorPoints(updatedPts, segmentSize, intermediatePoint, transModelBounds);\n pts.reverse();\n if (pts.length > 2) {\n this.updatePoints(pts, internalConnector);\n }\n }\n }\n }\n }\n }\n }\n };\n FlowchartLayout.prototype.updateAnchor = function (bounds) {\n var viewPort = {\n width: this.diagram.scrollSettings.viewPortWidth,\n height: this.diagram.scrollSettings.viewPortHeight\n };\n if (this.orientation === 'TopToBottom') {\n this.anchorX = viewPort.width / 2 - bounds.width / 2 - bounds.x;\n this.anchorY = this.margin.top;\n }\n else {\n this.anchorX = this.margin.left;\n this.anchorY = viewPort.height / 2 - bounds.height / 2 - bounds.y;\n }\n if (this.rootNodes.length === 1) {\n var fixedNode = this.rootNodes[0]; // Assuming rootNodes is defined elsewhere\n var fixedNodeGeometry = this.vertexMapper.get(fixedNode.id).geometry; // Assuming vertexMapper and its usage are defined elsewhere\n var offsetX = fixedNodeGeometry.x + fixedNodeGeometry.width / 2;\n var offsetY = fixedNodeGeometry.y + fixedNodeGeometry.height / 2;\n var dx = offsetX - (bounds.x + bounds.width / 2);\n var dy = offsetY - (bounds.y + bounds.height / 2);\n if (this.orientation === 'TopToBottom') {\n this.anchorX -= dx;\n }\n else {\n this.anchorY -= dy;\n }\n }\n };\n FlowchartLayout.prototype.updateConnectorPoints = function (connectorPoints, startSegmentSize, intermediatePoint, layoutBounds) {\n var isHorizontal = this.orientation === 'LeftToRight';\n var pts = connectorPoints.slice();\n // Helper function to find angle between two points\n function findAngle(point1, point2) {\n return Math.atan2(point2.y - point1.y, point2.x - point1.x) * (180 / Math.PI);\n }\n // Function to find the distance (length) between two points\n function findLength(point1, point2) {\n var dx = point2.x - point1.x;\n var dy = point2.y - point1.y;\n return Math.sqrt(dx * dx + dy * dy);\n }\n // Helper function to transform a point\n function transform(point, length, angle) {\n var rad = angle * (Math.PI / 180);\n var newX = point.x + length * Math.cos(rad);\n var newY = point.y + length * Math.sin(rad);\n return { x: newX, y: newY };\n }\n if (pts.length > 2) {\n var newPt = transform(pts[0], startSegmentSize, findAngle(pts[0], pts[1]));\n var nextPt = transform(newPt, findLength(newPt, pts[1]), findAngle(newPt, pts[2]));\n pts.splice(1, 0, nextPt);\n pts.splice(1, 0, newPt);\n pts.splice(3, 2);\n if (intermediatePoint != null) {\n var index = 2;\n var ptsCount = pts.length;\n var newPt1 = transform(pts[ptsCount - 1], startSegmentSize, findAngle(pts[ptsCount - 1], pts[ptsCount - 2]));\n pts.splice(ptsCount - 1, 0, newPt1);\n while (index < pts.length - 2) {\n pts.splice(index, 1);\n }\n var edgePt = intermediatePoint;\n this.inflate(layoutBounds, layoutBounds.width, layoutBounds.height);\n if (isHorizontal) {\n var line1 = [{ x: layoutBounds.left, y: edgePt.y }, { x: layoutBounds.right, y: edgePt.y }];\n var line2 = [{ x: pts[1].x, y: layoutBounds.top }, { x: pts[1].x, y: layoutBounds.bottom }];\n var line3 = [{ x: newPt1.x, y: layoutBounds.top }, { x: newPt1.x, y: layoutBounds.bottom }];\n var intercepts1 = [];\n var intercepts2 = [];\n // Dummy function calls, replace with actual implementation or mock\n intercepts1 = this.diagram.commandHandler.intersect(line1, line2, false);\n intercepts2 = this.diagram.commandHandler.intersect(line1, line3, false);\n if (intercepts2.length) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n else {\n var line1 = [{ x: edgePt.x, y: layoutBounds.top }, { x: edgePt.x, y: layoutBounds.bottom }];\n var line2 = [{ x: layoutBounds.left, y: pts[1].y }, { x: layoutBounds.right, y: pts[1].y }];\n var line3 = [{ x: layoutBounds.left, y: newPt1.y }, { x: layoutBounds.right, y: newPt1.y }];\n var intercepts1 = [];\n var intercepts2 = [];\n // Dummy function calls, replace with actual implementation or mock\n intercepts1 = this.diagram.commandHandler.intersect(line1, line2, false);\n intercepts2 = this.diagram.commandHandler.intersect(line1, line3, false);\n if (intercepts2.length) {\n pts.splice(2, 0, intercepts2[0]);\n }\n if (intercepts1.length) {\n pts.splice(2, 0, intercepts1[0]);\n }\n }\n }\n }\n else if (pts.length === 2 && intermediatePoint != null) {\n var startPt = pts[0];\n var endPt = pts[1];\n var lineAngle = findAngle(pts[0], pts[1]);\n var newPt1 = transform(startPt, startSegmentSize, lineAngle);\n var newPt2 = transform(endPt, startSegmentSize, (lineAngle + 180) % 360);\n pts.splice(1, 0, newPt2);\n if (isHorizontal) {\n var nextPt1 = { x: newPt1.x, y: intermediatePoint.y };\n var nextPt2 = { x: newPt2.x, y: intermediatePoint.y };\n pts.splice(1, 0, nextPt2);\n pts.splice(1, 0, nextPt1);\n }\n else {\n var nextPt1 = { x: intermediatePoint.x, y: newPt1.y };\n var nextPt2 = { x: intermediatePoint.x, y: newPt2.y };\n pts.splice(1, 0, nextPt2);\n pts.splice(1, 0, nextPt1);\n }\n pts.splice(1, 0, newPt1);\n }\n return pts;\n };\n FlowchartLayout.prototype.inflate = function (rect, width, height) {\n rect.x -= width;\n rect.y -= height;\n rect.width += 2 * width;\n rect.height += 2 * height;\n };\n FlowchartLayout.prototype.updateHorizontalSegments = function (internalConnector, pts) {\n var updatedPts = [];\n var sourcenode = this.diagram.nameTable[internalConnector.sourceID];\n var targetnode = this.diagram.nameTable[internalConnector.targetID];\n var decisionNode = this.vertexMapper.get(sourcenode.id).isDecisionNode;\n if (decisionNode && !this.contains({ x: sourcenode.offsetX, y: targetnode.offsetY }, sourcenode.wrapper.bounds)) {\n if (sourcenode.offsetY < targetnode.offsetY) {\n var spoint1 = sourcenode.wrapper.bounds.bottom;\n var spoint2 = sourcenode.offsetX;\n var tpoint1 = targetnode.wrapper.bounds.left;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint2, y: spoint1 });\n updatedPts.push({ x: spoint2, y: tpoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else if (sourcenode.offsetY > targetnode.offsetY) {\n var spoint1 = sourcenode.wrapper.bounds.top;\n var spoint2 = sourcenode.offsetX;\n var tpoint1 = targetnode.wrapper.bounds.left;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint2, y: spoint1 });\n updatedPts.push({ x: spoint2, y: tpoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else {\n updatedPts = pts;\n }\n }\n else {\n updatedPts = pts;\n }\n return updatedPts;\n };\n FlowchartLayout.prototype.updateVerticalConnectorSegments = function (internalConnector, pts) {\n var _this = this;\n var updatedPts = [];\n var sourcenode = this.diagram.nameTable[internalConnector.sourceID];\n var targetnode = this.diagram.nameTable[internalConnector.targetID];\n var decisionNode = this.vertexMapper.get(sourcenode.id).isDecisionNode;\n if (decisionNode && !this.contains({ x: targetnode.offsetX, y: sourcenode.offsetY }, sourcenode.wrapper.bounds)) {\n if (sourcenode.offsetX < targetnode.offsetX) {\n var spoint1 = sourcenode.wrapper.bounds.right;\n var spoint2 = sourcenode.offsetY;\n var tpoint1 = targetnode.wrapper.bounds.top;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint1, y: spoint2 });\n updatedPts.push({ x: targetnode.offsetX, y: spoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else if (sourcenode.offsetX > targetnode.offsetX) {\n var spoint1 = sourcenode.wrapper.bounds.left;\n var spoint2 = sourcenode.offsetY;\n var tpoint1 = targetnode.wrapper.bounds.top;\n var tpoint2 = targetnode.offsetY;\n updatedPts.push({ x: spoint1, y: spoint2 });\n updatedPts.push({ x: targetnode.offsetX, y: spoint2 });\n updatedPts.push({ x: tpoint1, y: tpoint2 });\n }\n else {\n updatedPts = pts;\n }\n }\n else {\n updatedPts = pts;\n }\n if (updatedPts.length > 2) {\n var point_1 = updatedPts[1];\n this.diagram.nodes.forEach(function (node) {\n if (_this.contains(point_1, node.wrapper.bounds)) {\n updatedPts[1] = { x: node.wrapper.bounds.left - 5, y: node.offsetY };\n updatedPts.splice(2, 0, { x: node.wrapper.bounds.left - 5, y: node.wrapper.bounds.bottom + 5 });\n }\n });\n }\n return updatedPts;\n };\n FlowchartLayout.prototype.getModelBounds = function (nodes) {\n var rect = new Rect(0, 0, 0, 0);\n nodes = Array.from(nodes);\n nodes.forEach(function (vertex) {\n var geo = vertex.geometry;\n rect.uniteRect(geo);\n });\n return rect;\n };\n FlowchartLayout.prototype.createVertex = function (node) {\n var _this = this;\n var nodeWidth = isNaN(node.width) ? node.wrapper.bounds.width : node.width;\n var nodeHeight = isNaN(node.height) ? node.wrapper.bounds.height : node.height;\n var geometry = new Rect(0, 0, nodeWidth, nodeHeight);\n var inEdges = [];\n var outEdges = [];\n var branches = { isYesBranch: false, isNoBranch: false };\n if (node.inEdges != null) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var edge = _a[_i];\n var con = this.diagram.nameTable[\"\" + edge];\n if (con) {\n inEdges.push(con);\n }\n }\n }\n if (node.outEdges != null) {\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var edge = _c[_b];\n var con = this.diagram.nameTable[\"\" + edge];\n if (con) {\n outEdges.push(con);\n }\n }\n }\n var isYesBranch = branches.isYesBranch;\n var isNoBranch = branches.isNoBranch;\n if (inEdges != null) {\n inEdges.forEach(function (inEdge) {\n branches = _this.checkForYesOrNoBranch(inEdge, isYesBranch, isNoBranch);\n });\n }\n if (outEdges != null) {\n outEdges.forEach(function (outEdge) {\n _this.edgesMapper.set(outEdge, []);\n _this.loopedgesMapper.set(outEdge, false);\n });\n }\n var vert = {\n id: node.id,\n geometry: geometry,\n inEdges: inEdges,\n layoutObjectId: {},\n outEdges: outEdges,\n item: node,\n isDecisionNode: false,\n isYesChild: branches.isYesBranch,\n isNoChild: branches.isNoBranch\n };\n return vert;\n };\n FlowchartLayout.prototype.updatePoints = function (pts, internalConnector) {\n var pointSets = [];\n var segCollection = [];\n for (var i = 0; i < pts.length; i++) {\n if (pts[i + 2]) {\n pointSets.push(pts[parseInt(i.toString(), 10)]);\n pointSets.push(pts[i + 1]);\n var seg = {\n type: 'Orthogonal',\n points: pointSets,\n length: pointSets[0].x === pointSets[1].x ? Math.abs(pointSets[0].y - pointSets[1].y)\n : Math.abs(pointSets[0].x - pointSets[1].x),\n direction: pointSets[0].x === pointSets[1].x ? pointSets[0].y > pointSets[1].y ? 'Top' : 'Bottom'\n : pointSets[0].x > pointSets[1].x ? 'Left' : 'Right'\n };\n pointSets = [];\n segCollection.push(seg);\n }\n }\n internalConnector.segments = segCollection;\n };\n FlowchartLayout.prototype.contains = function (point, bounds) {\n return (point.x >= bounds.left && point.x <= bounds.right && point.y >= bounds.top && point.y <= bounds.bottom);\n };\n FlowchartLayout.prototype.updateLoopConnector = function (internalConnector) {\n var loopPts = [];\n if (this.edgesMapper.has(internalConnector)) {\n var loopPoints = this.edgesMapper.get(internalConnector);\n if (loopPoints) {\n for (var _i = 0, loopPoints_1 = loopPoints; _i < loopPoints_1.length; _i++) {\n var loopPt = loopPoints_1[_i];\n var pointX = loopPt.x + this.anchorX;\n var pointY = loopPt.y + this.anchorY;\n loopPts.push({ x: pointX, y: pointY });\n }\n }\n }\n loopPts.reverse();\n var pts = [];\n var firstPt = loopPts[0];\n var lastPt = loopPts[loopPts.length - 1];\n var sourceNode = this.diagram.nameTable[internalConnector.sourceID];\n var targetNode = this.diagram.nameTable[internalConnector.targetID];\n var srcBounds = sourceNode.wrapper.bounds;\n var tarBounds = targetNode.wrapper.bounds;\n var srcNode = sourceNode;\n var tarNode = targetNode;\n if (this.orientation === 'TopToBottom') {\n var target = Array.from(this.vertexMapper.values()).filter(function (e) {\n return e.item.wrapper.bounds.containsPoint({ x: e.item.wrapper.bounds.x, y: srcNode.offsetY }) &&\n srcNode.id !== e.item.id;\n });\n var max = Math.max(firstPt.x, lastPt.x);\n var isSiblingsInRight = (target.length > 0 && target[0].item.wrapper.bounds.x > srcBounds.x);\n pts.push({ x: (!isSiblingsInRight && max > srcBounds.right) ? srcBounds.right : srcBounds.left, y: srcNode.offsetY });\n pts.push({ x: isSiblingsInRight ? pts[0].x - (srcBounds.width / 2) : max, y: srcNode.offsetY });\n pts.push({ x: isSiblingsInRight ? pts[0].x - (srcBounds.width / 2) : max, y: tarNode.offsetY });\n pts.push({ x: (!isSiblingsInRight && max > tarBounds.right) ? tarBounds.right : tarBounds.left, y: tarNode.offsetY });\n }\n else {\n var target = Array.from(this.vertexMapper.values()).filter(function (e) {\n return e.item.wrapper.bounds.containsPoint({ x: srcNode.offsetX, y: e.item.wrapper.bounds.y }) &&\n srcNode.id !== e.item.id;\n });\n var isSiblingsInBottom = (target.length > 0 && target[0].item.wrapper.bounds.y > srcBounds.y);\n var max = Math.max(firstPt.y, lastPt.y);\n pts.push({ x: srcNode.offsetX, y: (!isSiblingsInBottom && max > srcBounds.bottom) ? srcBounds.bottom : srcBounds.top });\n pts.push({ x: srcNode.offsetX, y: isSiblingsInBottom ? pts[0].y - (srcBounds.height / 2) : max });\n pts.push({ x: tarNode.offsetX, y: isSiblingsInBottom ? pts[0].y - (srcBounds.height / 2) : max });\n pts.push({ x: tarNode.offsetX, y: (!isSiblingsInBottom && max > tarBounds.bottom) ? tarBounds.bottom : tarBounds.top });\n }\n this.updatePoints(pts, internalConnector);\n };\n FlowchartLayout.prototype.checkForYesOrNoBranch = function (edge, isYesBranch, isNoBranch) {\n var _this = this;\n if (edge.annotations && edge.annotations.length) {\n edge.annotations.forEach(function (annotation) {\n if (typeof annotation.content === 'string') {\n var text_1 = annotation.content.toString();\n _this.yesBranchValues.forEach(function (branchText) {\n if (text_1.localeCompare(branchText, undefined, { sensitivity: 'accent' }) === 0) {\n isYesBranch = true;\n return;\n }\n });\n _this.noBranchValues.forEach(function (branchText) {\n if (text_1.localeCompare(branchText, undefined, { sensitivity: 'accent' }) === 0) {\n isNoBranch = true;\n return;\n }\n });\n }\n });\n }\n return { isYesBranch: isYesBranch, isNoBranch: isNoBranch };\n };\n FlowchartLayout.prototype.getTreeVertices = function (root, seenVertices, unseenVertices) {\n var _this = this;\n if (root != null && seenVertices.indexOf(root) === -1) {\n seenVertices.push(root);\n unseenVertices = unseenVertices.filter(function (vertex) { return vertex !== root; });\n var children = root.item.outEdges;\n if (children.length === 2) {\n var c1 = this.diagram.nameTable[this.diagram.nameTable[children[0]].targetID];\n var c2 = this.diagram.nameTable[this.diagram.nameTable[children[1]].targetID];\n var childVertex1 = this.vertexMapper.get(c1.id);\n var childVertex2 = this.vertexMapper.get(c2.id);\n if (childVertex1 && childVertex2) {\n var hasYesChild = childVertex1.isYesChild || childVertex2.isYesChild;\n var hasNoChild = childVertex1.isNoChild || childVertex2.isNoChild;\n if (hasYesChild && !hasNoChild) {\n if (childVertex1.isYesChild) {\n childVertex2.isNoChild = true;\n }\n else {\n childVertex1.isNoChild = true;\n }\n hasNoChild = true;\n }\n else if (!hasYesChild && hasNoChild) {\n if (childVertex1.isNoChild) {\n childVertex2.isYesChild = true;\n }\n else {\n childVertex1.isYesChild = true;\n }\n hasYesChild = true;\n }\n root.isDecisionNode = hasYesChild;\n }\n }\n root.outEdges.forEach(function (outConnector) {\n var child = _this.diagram.nameTable[outConnector.targetID];\n var childVertex = _this.vertexMapper.get(child.id);\n if (childVertex != null) {\n if (!root.isDecisionNode) {\n childVertex.isYesChild = false;\n childVertex.isNoChild = false;\n }\n _this.getTreeVertices(childVertex, seenVertices, unseenVertices);\n }\n });\n }\n };\n /**\n * Initializes the edges collection of the vertices\\\n *\n * @returns { IConnector[] } Initializes the edges collection of the vertices\\\n * @param {FlowChartVertex} node - provide the node value.\n * @private\n */\n FlowchartLayout.prototype.getEdges = function (node) {\n var edges = [];\n if (node !== null && node !== undefined) {\n for (var _i = 0, _a = node.inEdges; _i < _a.length; _i++) {\n var inEdge = _a[_i];\n edges.push(inEdge);\n }\n for (var _b = 0, _c = node.outEdges; _b < _c.length; _b++) {\n var outEdge = _c[_b];\n edges.push(outEdge);\n }\n }\n return edges;\n };\n /**\n * Returns the source/target vertex of the given connector \\\n *\n * @returns { FlowChartVertex } Returns the source/target vertex of the given connector \\\n * @param {IConnector} edge - provide the node value.\n * @param {boolean} source - provide the node value.\n * @private\n */\n FlowchartLayout.prototype.getVisibleTerminal = function (edge, source) {\n //differ from complex-hierarchical-tree.ts\n var nodeWrapper = source ? edge.sourceID : edge.targetID;\n return this.vertexMapper.get(nodeWrapper);\n };\n /**\n * used to get the edges between the given source and target \\\n *\n * @returns { IConnector[] } used to get the edges between the given source and target .\\\n * @param {FlowChartVertex} source - provide the angle value.\n * @param { FlowChartVertex} target - provide the angle value.\n * @param { boolean} directed - provide the angle value.\n * @private\n */\n FlowchartLayout.prototype.getEdgesBetween = function (source, target, directed) {\n var edges = this.getEdges(source);\n var result = [];\n for (var i = 0; i < edges.length; i++) {\n var src = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], true);\n var trg = this.getVisibleTerminal(edges[parseInt(i.toString(), 10)], false);\n if ((src.id === source.id && trg.id === target.id)) {\n result.push(edges[parseInt(i.toString(), 10)]);\n }\n }\n return result;\n };\n /**\n *To destroy the FlowchartLayout\n *\n * @returns {void} To destroy the FlowchartLayout\n */\n FlowchartLayout.prototype.destroy = function () {\n /**\n * Destroys the FlowchartLayout module\n */\n };\n /**\n * @returns { string } toBounds method .\\\n * Get getModuleName name.\n */\n FlowchartLayout.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'FlowchartLayout';\n };\n return FlowchartLayout;\n}());\nexport { FlowchartLayout };\n","import { ConnectorConstraints } from '../enum/enum';\nvar ConnectorProperties = /** @class */ (function () {\n function ConnectorProperties(labelProperties) {\n this.labelProperties = labelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n ConnectorProperties.prototype.renderConnectorsCollection = function (convertedData, data) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = [];\n var connectors = [];\n for (var i = 0; i < data.connectors.length; i++) {\n var connector = data.connectors[parseInt(i.toString(), 10)];\n var newConnector = this.convertToConnector(connector);\n connectors.push(newConnector);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n convertedData.connectors = connectors;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector properties from EJ1 to EJ2\n ConnectorProperties.prototype.convertToConnector = function (connector) {\n var newConnector = {};\n newConnector.style = {};\n if (connector.name) {\n newConnector.id = connector.name;\n }\n if (connector.addInfo) {\n newConnector.addInfo = connector.addInfo;\n }\n if (connector.bridgeSpace) {\n newConnector.bridgeSpace = connector.bridgeSpace;\n }\n if (connector.constraints) {\n newConnector.constraints = this.setConnectorConstraints(connector.constraints);\n }\n if (connector.cornerRadius) {\n newConnector.cornerRadius = connector.cornerRadius;\n }\n if (connector.labels) {\n newConnector.annotations = this.labelProperties.setLabelProperties(connector.labels, connector);\n }\n if (connector.lineColor) {\n newConnector.style.fill = connector.lineColor;\n }\n if (connector.lineWidth) {\n newConnector.style.strokeWidth = connector.lineWidth;\n }\n if (connector.lineDashArray) {\n newConnector.style.strokeDashArray = connector.lineDashArray;\n }\n if (connector.opacity) {\n newConnector.style.opacity = connector.opacity;\n }\n if (connector.lineHitPadding) {\n newConnector.hitPadding = connector.lineHitPadding;\n }\n if (connector.margin) {\n // eslint-disable-next-line max-len\n newConnector.margin = { left: connector.margin.left, right: connector.margin.right, top: connector.margin.top, bottom: connector.margin.bottom };\n }\n if (connector.segments) {\n newConnector.type = connector.segments[0].type.charAt(0).toUpperCase() + (connector.segments[0].type).slice(1);\n newConnector.segments = this.setConnectorSegments(connector.segments);\n }\n if (connector.shape) {\n newConnector.shape = this.getConnectorShape(connector.shape);\n }\n if (connector.sourceDecorator) {\n newConnector.sourceDecorator = {\n height: connector.sourceDecorator.height,\n width: connector.sourceDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: (this.getDecoratorShape(connector.sourceDecorator.shape)),\n pathData: connector.sourceDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.sourceDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.sourceDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.sourceDecorator.lineWidth\n }\n };\n }\n if (connector.targetDecorator) {\n newConnector.targetDecorator = {\n height: connector.targetDecorator.height,\n width: connector.targetDecorator.width,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n shape: this.getDecoratorShape(connector.targetDecorator.shape),\n pathData: connector.targetDecorator.pathData,\n style: {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill: connector.targetDecorator.fillColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeColor: connector.targetDecorator.lineColor,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n strokeWidth: connector.targetDecorator.lineWidth\n }\n };\n }\n if (connector.sourceNode) {\n newConnector.sourceID = connector.sourceNode;\n }\n if (connector.targetNode) {\n newConnector.targetID = connector.targetNode;\n }\n if (connector.sourcePoint) {\n newConnector.sourcePoint = { x: connector.sourcePoint.x, y: connector.sourcePoint.y };\n }\n if (connector.targetPoint) {\n newConnector.targetPoint = { x: connector.targetPoint.x, y: connector.targetPoint.y };\n }\n if (connector.sourcePort) {\n newConnector.sourcePortID = connector.sourcePort;\n }\n if (connector.targetPort) {\n newConnector.targetPortID = connector.targetPort;\n }\n if (connector.tooltip) {\n newConnector.tooltip = {\n content: connector.tooltip.content,\n relativeMode: connector.tooltip.relativeMode\n };\n }\n if (connector.visible) {\n newConnector.visible = connector.visible;\n }\n if (connector.zOrder) {\n newConnector.zIndex = connector.zOrder;\n }\n return newConnector;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign the connector shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getConnectorShape = function (shape) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var connectorShape = null;\n if (shape) {\n if (shape.type === 'bpmn') {\n connectorShape = {\n type: 'Bpmn',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)\n };\n if (shape.flow === 'sequence') {\n connectorShape.sequence = (shape.sequence).charAt(0).toUpperCase() + (shape.sequence).slice(1);\n }\n else if (shape.flow === 'association') {\n connectorShape.association = (shape.association).charAt(0).toUpperCase() + (shape.association).slice(1);\n }\n else {\n connectorShape.message = (shape.message).charAt(0).toUpperCase() + (shape.message).slice(1);\n }\n }\n if (shape.type === 'umlclassifier') {\n connectorShape = {\n type: 'UmlClassifier',\n relationship: (shape.relationship).charAt(0).toUpperCase() + (shape.relationship).slice(1),\n multiplicity: {\n type: (shape.multiplicity.type).charAt(0).toUpperCase() + (shape.multiplicity.type).slice(1),\n source: {\n upperBounds: shape.multiplicity.source.upperBounds,\n optional: shape.multiplicity.source.optional,\n lowerBounds: shape.multiplicity.source.lowerBounds\n },\n target: {\n upperBounds: shape.multiplicity.target.upperBounds,\n optional: shape.multiplicity.target.optional,\n lowerBounds: shape.multiplicity.target.lowerBounds\n }\n }\n };\n }\n if (shape.type === 'umlactivity') {\n connectorShape = {\n type: 'UmlActivity',\n flow: (shape.flow).charAt(0).toUpperCase() + (shape.flow).slice(1)\n };\n }\n }\n return connectorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector decorator shapes from EJ1 to EJ2\n ConnectorProperties.prototype.getDecoratorShape = function (shape) {\n var decoratorShape = 'None';\n if (shape === 'path') {\n decoratorShape = 'Custom';\n }\n else {\n decoratorShape = (shape).charAt(0).toUpperCase() + (shape).slice(1);\n }\n return decoratorShape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the connector collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ConnectorProperties.prototype.setConnectorSegments = function (segments) {\n var connectorSegments = [];\n if (segments.length > 0) {\n for (var i = 0; i < segments.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segment = {};\n var segmentProp = segments[parseInt(i.toString(), 10)];\n // eslint-disable-next-line max-len\n segment.direction = segmentProp.direction ? segmentProp.direction.charAt(0).toUpperCase() + segmentProp.direction.slice(1) : segmentProp._direction ? segmentProp._direction.charAt(0).toUpperCase() + segmentProp._direction.slice(1) : null;\n segment.length = segmentProp.length ? segmentProp.length : segmentProp._length ? segmentProp._length : null;\n segment.point = segmentProp.point ? { x: segmentProp.point.x, y: segmentProp.point.y } : null;\n segment.point1 = segmentProp.point1 ? { x: segmentProp.point1.x, y: segmentProp.point1.y } : null;\n segment.point2 = segmentProp.point2 ? { x: segmentProp.point2.x, y: segmentProp.point2.y } : null;\n // eslint-disable-next-line max-len\n segment.vector1 = segmentProp.vector1 ? { angle: segmentProp.vector1.angle, distance: segmentProp.vector1.distance } : null;\n // eslint-disable-next-line max-len\n segment.vector2 = segmentProp.vector2 ? { angle: segmentProp.vector2.angle, distance: segmentProp.vector2.distance } : null;\n if (segmentProp.points) {\n segment.points = this.getSegmentPoints(segmentProp.points);\n }\n if (segmentProp.type) {\n segment.type = (segmentProp.type).charAt(0).toUpperCase() + (segmentProp.type).slice(1);\n }\n connectorSegments.push(segment);\n }\n }\n return connectorSegments;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Render the connector Segment points from EJ1 to EJ2\n ConnectorProperties.prototype.getSegmentPoints = function (points) {\n var pointsCollection = [];\n if (points.length > 0) {\n for (var i = 0; i < points.length; i++) {\n var newPoint = {};\n var point = points[parseInt(i.toString(), 10)];\n newPoint.x = point.x;\n newPoint.y = point.y;\n pointsCollection.push(newPoint);\n }\n }\n return pointsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the connector constraints\n ConnectorProperties.prototype.setConnectorConstraints = function (constraints) {\n var connectorConstraints = ConnectorConstraints.None;\n if (constraints & ConnectorConstraints.Select) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Select;\n }\n if (constraints & ConnectorConstraints.Delete) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Delete;\n }\n if (constraints & ConnectorConstraints.Drag) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Drag;\n }\n if (constraints & ConnectorConstraints.DragSourceEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSourceEnd;\n }\n if (constraints & ConnectorConstraints.DragTargetEnd) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragTargetEnd;\n }\n if (constraints & ConnectorConstraints.DragSegmentThumb) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.DragSegmentThumb;\n }\n if (constraints & ConnectorConstraints.Bridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Bridging;\n }\n if (constraints & ConnectorConstraints.InheritBridging) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritBridging;\n }\n if (constraints & ConnectorConstraints.AllowDrop) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.AllowDrop;\n }\n if (constraints & ConnectorConstraints.InheritTooltip) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.InheritTooltip;\n }\n if (constraints & ConnectorConstraints.PointerEvents) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.PointerEvents;\n }\n if (constraints & ConnectorConstraints.BridgeObstacle) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.BridgeObstacle;\n }\n if (constraints & ConnectorConstraints.Interaction) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Interaction;\n }\n if (constraints & ConnectorConstraints.Default) {\n connectorConstraints = connectorConstraints | ConnectorConstraints.Default;\n }\n return connectorConstraints;\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name\n */\n ConnectorProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'ConnectorProperties';\n };\n return ConnectorProperties;\n}());\nexport { ConnectorProperties };\n","import { AnnotationConstraints } from '../enum/enum';\nvar LabelProperties = /** @class */ (function () {\n function LabelProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update and assign the annotation properties from EJ1 to EJ2\n LabelProperties.prototype.setLabelProperties = function (oldLabels, item) {\n var labelCollection = [];\n if (oldLabels.length > 0) {\n for (var i = 0; i < oldLabels.length; i++) {\n var label = oldLabels[parseInt(i.toString(), 10)];\n var newLabel = {};\n (newLabel).style = {};\n if (label.name) {\n newLabel.id = label.name;\n }\n if (label.addInfo) {\n newLabel.addInfo = label.addInfo;\n }\n if (label.text) {\n newLabel.content = label.text;\n }\n if (label.constraints) {\n newLabel.constraints = this.setLabelConstraints(label.constraints);\n }\n if (label.readOnly) {\n newLabel.constraints = newLabel.constraints | AnnotationConstraints.ReadOnly;\n }\n if (label.dragLimit) {\n newLabel.dragLimit = {\n left: label.dragLimit.left, right: label.dragLimit.right,\n top: label.dragLimit.top, bottom: label.dragLimit.bottom\n };\n }\n if (label.height) {\n newLabel.height = label.height;\n }\n if (label.horizontalAlignment) {\n newLabel.horizontalAlignment = label.horizontalAlignment.charAt(0).toUpperCase() +\n label.horizontalAlignment.slice(1).toLowerCase();\n }\n if (label.verticalAlignment) {\n newLabel.verticalAlignment = label.verticalAlignment.charAt(0).toUpperCase() +\n label.verticalAlignment.slice(1).toLowerCase();\n }\n if (label.hyperlink) {\n newLabel.hyperlink = { link: label.hyperlink, color: 'blue' };\n }\n if (label.margin) {\n newLabel.margin = {\n left: label.margin.left, right: label.margin.right,\n top: label.margin.top, bottom: label.margin.bottom\n };\n }\n newLabel.rotateAngle = label.rotateAngle;\n if (label.offset) {\n if (item) {\n newLabel.offset = label.offset.x;\n }\n else {\n newLabel.offset = { x: label.offset.x, y: label.offset.y };\n }\n }\n newLabel.style.color = label.fontColor;\n newLabel.style.fontFamily = label.fontFamily;\n newLabel.style.fontSize = label.fontSize;\n newLabel.style.italic = label.italic;\n newLabel.style.bold = label.bold;\n if (label.borderColor) {\n newLabel.style.strokeColor = label.borderColor;\n }\n if (label.borderWidth) {\n newLabel.style.strokeWidth = label.borderWidth;\n }\n if (label.textWrapping) {\n newLabel.style.textWrapping = label.textWrapping;\n }\n if (label.textAlign) {\n newLabel.style.textAlign = label.textAlign.charAt(0).toUpperCase() +\n label.textAlign.slice(1).toLowerCase();\n }\n if (label.textDecoration) {\n newLabel.style.textDecoration = label.textDecoration.charAt(0).toUpperCase() +\n label.textDecoration.slice(1).toLowerCase();\n if (newLabel.style.textDecoration === 'Linethrough') {\n newLabel.style.textDecoration = 'LineThrough';\n }\n }\n var appearance = this.setLabelAppearance(newLabel, label);\n newLabel.style.fill = appearance.fill;\n newLabel.style.opacity = appearance.opacity;\n // if (label.templateId)\n // newLabel.template = getTemplateContent(label.templateId);\n newLabel.visibility = appearance.visibility;\n if (label.width) {\n newLabel.width = label.width;\n }\n labelCollection.push(newLabel);\n }\n }\n return labelCollection;\n };\n LabelProperties.prototype.setLabelAppearance = function (newLabel, label) {\n var appearance = {};\n if (label.fillColor) {\n appearance.fill = label.fillColor === 'white' ? 'transparent' : label.fillColor;\n }\n if (label.opacity) {\n appearance.opacity = label.opacity;\n }\n // if (label.templateId)\n // newLabel.template = getTemplateContent(label.templateId);\n if (label.visible) {\n appearance.visibility = label.visible;\n }\n return appearance;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the annotation constraints from EJ1 to EJ2\n LabelProperties.prototype.setLabelConstraints = function (constraints) {\n var annotationConstraints = AnnotationConstraints.None;\n if (constraints & AnnotationConstraints.Select) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Select;\n }\n if (constraints & AnnotationConstraints.Drag) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Drag;\n }\n if (constraints & AnnotationConstraints.Resize) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Resize;\n }\n if (constraints & AnnotationConstraints.Rotate) {\n annotationConstraints = annotationConstraints | AnnotationConstraints.Rotate;\n }\n return annotationConstraints;\n };\n /**\n * Get module name.\n * @returns {string} returns Module name\n */\n LabelProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'LabelProperties';\n };\n return LabelProperties;\n}());\nexport { LabelProperties };\n","import { NodeConstraints } from '../enum/enum';\nvar NodeProperties = /** @class */ (function () {\n function NodeProperties(labelProperties, portProperties) {\n this.labelProperties = labelProperties;\n this.portProperties = portProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and render the node collection from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderNodesCollection = function (convertedData, data) {\n convertedData.nodes = [];\n var nodes = [];\n for (var i = 0; i < data.nodes.length; i++) {\n var node = data.nodes[parseInt(i.toString(), 10)];\n var processCollection = [];\n var newNode = this.convertToNode(node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n // eslint-disable-next-line max-len\n if (newNode.shape && newNode.shape.activity && newNode.shape.activity.subProcess && newNode.shape.activity.subProcess.processes && newNode.shape.activity.subProcess.processes.length > 0) {\n var processName = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var k = 0; k < newNode.shape.activity.subProcess.processes.length; k++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var processes = newNode.shape.activity.subProcess.processes[parseInt(k.toString(), 10)];\n processes.margin.right = 0;\n processes.margin.bottom = 0;\n processes.processId = newNode.id;\n processName.push(processes.id);\n processCollection.push(processes);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess.processes = processName;\n }\n if (node.type === 'group' && !node.isSwimlane) {\n var childCollection = [];\n if (newNode.children && newNode.children.length > 0) {\n for (var j = 0; j < newNode.children.length; j++) {\n var child = newNode.children[parseInt(j.toString(), 10)];\n nodes.push(child);\n childCollection.push(child.id);\n }\n newNode.children = childCollection;\n }\n }\n nodes.push(newNode);\n if (processCollection && processCollection.length > 0) {\n nodes = nodes.concat(processCollection);\n }\n }\n convertedData.nodes = nodes;\n return convertedData.nodes;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert the node from EJ1 to EJ2 and assign all the properties\n NodeProperties.prototype.convertToNode = function (node) {\n var newNode = {};\n newNode.style = {};\n newNode.margin = {};\n if (node.name) {\n newNode.id = node.name;\n }\n if (node.fillColor) {\n newNode.style.fill = node.fillColor;\n }\n if (node.borderColor) {\n newNode.style.strokeColor = node.borderColor;\n }\n if (node.borderWidth) {\n newNode.style.strokeWidth = node.borderWidth;\n }\n if (node.borderDashArray) {\n newNode.style.strokeDashArray = node.borderDashArray;\n }\n if (node.opacity) {\n newNode.style.opacity = node.opacity;\n }\n if (node.gradient) {\n newNode.style.gradient = this.setGradient(node.gradient);\n }\n if (node.isExpanded) {\n newNode.isExpanded = node.isExpanded;\n }\n if (node.width) {\n newNode.width = node.width;\n }\n if (node.height) {\n newNode.height = node.height;\n }\n if (node.offsetX) {\n newNode.offsetX = node.offsetX;\n }\n if (node.offsetY) {\n newNode.offsetY = node.offsetY;\n }\n if (node.visible) {\n newNode.visible = node.visible;\n }\n newNode.zIndex = node.zOrder === -1 ? -1 : node.zOrder;\n if (node.excludeFromLayout) {\n newNode.excludeFromLayout = node.excludeFromLayout;\n }\n if (node.rotateAngle) {\n newNode.rotateAngle = node.rotateAngle;\n }\n if (node.pivot) {\n newNode.pivot = node.pivot;\n }\n if (node.addInfo) {\n newNode.addInfo = node.addInfo;\n }\n if (node.marginLeft) {\n newNode.margin.left = node.marginLeft;\n }\n if (node.marginRight) {\n newNode.margin.right = node.marginRight;\n }\n if (node.marginTop) {\n newNode.margin.top = node.marginTop;\n }\n if (node.marginBottom) {\n newNode.margin.bottom = node.marginBottom;\n }\n if (node.horizontalAlign) {\n newNode.horizontalAlignment = node.horizontalAlign;\n }\n if (node.verticalAlign) {\n newNode.verticalAlignment = node.verticalAlign;\n }\n if (node.constraints) {\n newNode.constraints = this.setNodeConstraints(node.constraints);\n }\n if (node.labels) {\n newNode.annotations = this.labelProperties.setLabelProperties(node.labels, undefined);\n }\n if (node.shadow) {\n newNode.shadow = {\n angle: node.shadow.angle, opacity: node.shadow.opacity, distance: node.shadow.distance\n };\n }\n if (node.tooltip) {\n newNode.tooltip = {\n // content: this.getTemplateContent(node.tooltip.templateId),\n relativeMode: node.tooltip.relativeMode\n };\n }\n if (node.expandIcon) {\n newNode.expandIcon = {\n shape: node.expandIcon.shape.charAt(0).toUpperCase() + (node.expandIcon.shape).slice(1),\n width: node.expandIcon.width, height: node.expandIcon.height,\n margin: {\n left: node.expandIcon.margin.left,\n right: node.expandIcon.margin.right,\n top: node.expandIcon.margin.top,\n bottom: node.expandIcon.margin.bottom\n },\n offset: {\n x: node.expandIcon.offset.x,\n y: node.expandIcon.offset.y\n },\n borderColor: node.expandIcon.borderColor, borderWidth: node.expandIcon.borderWidth,\n cornerRadius: node.expandIcon.cornerRadius,\n //fill: (node.expandIcon as any).fillColor,\n pathData: node.expandIcon.pathData\n // content: getTemplateContent(node.expandIcon.templateId)\n };\n if (newNode.expandIcon.shape === 'Arrowup') {\n newNode.expandIcon.shape = 'ArrowUp';\n }\n else if (newNode.expandIcon.shape === 'Arrowdown') {\n newNode.expandIcon.shape = 'ArrowDown';\n }\n }\n if (node.collapseIcon) {\n newNode.collapseIcon = {\n shape: node.collapseIcon.shape.charAt(0).toUpperCase() + (node.collapseIcon.shape).slice(1),\n width: node.collapseIcon.width, height: node.collapseIcon.height,\n margin: {\n left: node.collapseIcon.margin.left,\n right: node.collapseIcon.margin.right,\n top: node.collapseIcon.margin.top,\n bottom: node.collapseIcon.margin.bottom\n },\n offset: {\n x: node.collapseIcon.offset.x,\n y: node.collapseIcon.offset.y\n },\n borderColor: node.collapseIcon.borderColor, borderWidth: node.collapseIcon.borderWidth,\n cornerRadius: node.collapseIcon.cornerRadius,\n // fill: (node.collapseIcon as any).fillColor,\n pathData: node.collapseIcon.pathData\n // content: getTemplateContent(node.collapseIcon.templateId)\n };\n if (newNode.collapseIcon.shape === 'Arrowup') {\n newNode.collapseIcon.shape = 'ArrowUp';\n }\n else if (newNode.collapseIcon.shape === 'Arrowdown') {\n newNode.collapseIcon.shape = 'ArrowDown';\n }\n }\n if (node.ports) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.ports = this.portProperties.setPortProperties(node.ports);\n }\n if (node.children) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (node.type !== 'bpmn' && !node.isSwimlane) {\n newNode.children = this.getChildren(newNode, node);\n }\n }\n if (!(node.children && node.children.length > 0)) {\n newNode.maxWidth = node.maxWidth;\n newNode.maxHeight = node.maxHeight;\n newNode.minWidth = node.minWidth;\n newNode.minHeight = node.minHeight;\n }\n if (node.shape || node.type) {\n newNode = this.setShape(newNode, node);\n }\n return newNode;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Iterate the swimlane child nodes and assign all the node properties from the EJ1 to EJ2\n NodeProperties.prototype.getChildren = function (newNode, node) {\n if (node.children && node.children.length > 0) {\n var newChild = [];\n for (var i = 0; i < node.children.length; i++) {\n var child = this.convertToNode(node.children[parseInt(i.toString(), 10)]);\n if (child.children) {\n this.getChildren(newNode, child);\n }\n newChild.push(child);\n }\n newNode.children = newChild;\n }\n return newNode.children;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the shapes for all the node from conversion\n NodeProperties.prototype.setShape = function (newNode, node) {\n switch (node.type) {\n case 'basic': {\n var basicShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n if (node.shape === 'path') {\n newNode.shape = { type: 'Path', data: node.pathData };\n }\n else {\n newNode.shape = {\n type: 'Basic', shape: basicShape, cornerRadius: node.cornerRadius, points: node.points\n };\n }\n break;\n }\n case 'flow': {\n var flowShape = (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1);\n newNode.shape = {\n type: 'Flow', shape: flowShape\n };\n break;\n }\n case 'umlactivity':\n newNode.shape = {\n type: 'UmlActivity', shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n };\n break;\n case 'image':\n newNode.shape = {\n type: 'Image', source: node.source, align: this.getImageContentAlignment(node.contentAlignment),\n scale: (node.scale).charAt(0).toUpperCase() + (node.scale).slice(1)\n };\n break;\n case 'html':\n newNode.shape = { type: 'HTML' };\n break;\n case 'native':\n newNode.shape = { type: 'Native' };\n break;\n case 'text':\n newNode.shape = { type: 'Text', content: node.textBlock.text };\n break;\n case 'bpmn':\n newNode.shape = this.renderBpmnShape(newNode, node);\n break;\n case 'group':\n if (node.isSwimlane) {\n newNode.shape = this.renderSwimlaneShape(newNode, node);\n }\n }\n return newNode;\n };\n NodeProperties.prototype.getImageContentAlignment = function (option) {\n if (option) {\n switch (option) {\n case 'xminymin':\n return 'XMinYMin';\n case 'xminymid':\n return 'XMinYMid';\n case 'xminymax':\n return 'XMinYMax';\n case 'xmidymin':\n return 'XMidYMin';\n case 'xmidymid':\n return 'XMidYMid';\n case 'xmidymax':\n return 'XMidYMax';\n case 'xmaxymin':\n return 'XMaxYMin';\n case 'xmaxymid':\n return 'XMaxYMid';\n case 'xmaxymax':\n return 'XMaxYMax';\n case 'none':\n return 'None';\n }\n }\n return 'None';\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n // Sets the node constraints from EJ1 to EJ2\n NodeProperties.prototype.setNodeConstraints = function (constraints) {\n var nodeConstraints = NodeConstraints.None;\n if (constraints & NodeConstraints.Select) {\n nodeConstraints = nodeConstraints | NodeConstraints.Select;\n }\n if (constraints & NodeConstraints.Delete) {\n nodeConstraints = nodeConstraints | NodeConstraints.Delete;\n }\n if (constraints & NodeConstraints.Drag) {\n nodeConstraints = nodeConstraints | NodeConstraints.Drag;\n }\n if (constraints & NodeConstraints.Rotate) {\n nodeConstraints = nodeConstraints | NodeConstraints.Rotate;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthEast;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeEast;\n }\n if (constraints & NodeConstraints.OutConnect) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthEast;\n }\n if (constraints & NodeConstraints.Expandable) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouth;\n }\n if (constraints & NodeConstraints.AllowDrop) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeSouthWest;\n }\n if (constraints & NodeConstraints.ResizeNorthEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeWest;\n }\n if (constraints & NodeConstraints.ResizeEast) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorthWest;\n }\n if (constraints & NodeConstraints.ResizeNorth) {\n nodeConstraints = nodeConstraints | NodeConstraints.ResizeNorth;\n }\n if (constraints & NodeConstraints.Resize) {\n nodeConstraints = nodeConstraints | NodeConstraints.Resize;\n }\n if (constraints & NodeConstraints.Shadow) {\n nodeConstraints = nodeConstraints | NodeConstraints.Shadow;\n }\n if (constraints & NodeConstraints.AspectRatio) {\n nodeConstraints = nodeConstraints | NodeConstraints.AspectRatio;\n }\n if (constraints & NodeConstraints.AllowDrop) {\n nodeConstraints = nodeConstraints | NodeConstraints.AllowDrop;\n }\n if (constraints & NodeConstraints.InheritTooltip) {\n nodeConstraints = nodeConstraints | NodeConstraints.InheritTooltip;\n }\n if (constraints & NodeConstraints.PointerEvents) {\n nodeConstraints = nodeConstraints | NodeConstraints.PointerEvents;\n }\n if (constraints & NodeConstraints.Inherit) {\n nodeConstraints = nodeConstraints | NodeConstraints.Inherit;\n }\n if (constraints & NodeConstraints.Default) {\n nodeConstraints = nodeConstraints | NodeConstraints.Default;\n }\n return nodeConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the gradient for the nodes\n NodeProperties.prototype.setGradient = function (gradient) {\n var newGradient = {};\n if (gradient) {\n if (gradient.type === 'linear') {\n newGradient = {\n type: 'Linear',\n x1: gradient.x1, x2: gradient.x2, y1: gradient.y1, y2: gradient.y2,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n else if (gradient.type === 'radial') {\n newGradient = {\n type: 'Radial',\n cx: gradient.cx, cy: gradient.cy, fx: gradient.fx, fy: gradient.fy,\n stops: this.getGradientStops(gradient.stops)\n };\n }\n }\n return newGradient;\n };\n NodeProperties.prototype.getGradientStops = function (gradientStops) {\n var stopsCollection = [];\n for (var i = 0; i < gradientStops.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newStop = {};\n var stop_1 = gradientStops[parseInt(i.toString(), 10)];\n newStop.color = stop_1.color;\n newStop.offset = stop_1.offset;\n stopsCollection.push(newStop);\n }\n return stopsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Assign the BPMN shape values from the EJ1\n NodeProperties.prototype.renderBpmnShape = function (newNode, node) {\n if (node.shape === 'event') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n event: {\n event: (node.event).charAt(0).toUpperCase() + (node.event).slice(1),\n trigger: (node.trigger).charAt(0).toUpperCase() + (node.trigger).slice(1)\n }\n };\n }\n else if (node.shape === 'gateway') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n gateway: {\n type: (node.gateway).charAt(0).toUpperCase() + (node.gateway).slice(1)\n }\n };\n }\n else if (node.shape === 'activity') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1),\n activity: {\n activity: (node.activity).charAt(0).toUpperCase() + (node.activity).slice(1)\n }\n };\n newNode.shape.activity.activity = newNode.shape.activity.activity === 'Subprocess' ? 'SubProcess' : newNode.shape.activity.activity;\n if (node.activity === 'task') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.task = {\n type: (node.task.type).charAt(0).toUpperCase() + (node.task.type).slice(1),\n loop: (node.task.loop).charAt(0).toUpperCase() + (node.task.loop).slice(1),\n compensation: node.task.compensation,\n call: node.task.call\n };\n }\n if (node.activity === 'subprocess') {\n if (node.subProcess.type === 'event') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subProcess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subProcess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subProcess.type).slice(1),\n event: {\n event: (node.subProcess.event).charAt(0).toUpperCase() + (node.subProcess.event).slice(1),\n trigger: (node.subProcess.trigger).charAt(0).toUpperCase() + (node.subProcess.trigger).slice(1)\n }\n };\n }\n else if (node.subProcess.type === 'transaction') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.activity.subProcess = {\n collapsed: node.subProcess.collapsed,\n compensation: node.subProcess.compensation,\n adhoc: node.subProcess.adhoc,\n loop: (node.subProcess.loop).charAt(0).toUpperCase() + (node.subProcess.loop).slice(1),\n boundary: (node.subProcess.boundary).charAt(0).toUpperCase() + (node.subProcess.boundary).slice(1),\n type: (node.subProcess.type).charAt(0).toUpperCase() + (node.subProcess.type).slice(1),\n events: this.renderEventsCollection(node.subProcess.events),\n processes: this.renderProcessesCollection(node)\n };\n }\n }\n }\n else if (node.shape === 'dataobject') {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n // data: {\n // type: this.getKeyByValue(node.data.type),\n // collection: true\n // }\n };\n if (node.annotation) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newNode.shape.annotation = {\n text: node.annotation.text,\n angle: node.annotation.angle,\n width: node.annotation.width,\n height: node.annotation.height,\n length: node.annotation.length\n };\n }\n }\n else {\n newNode.shape = {\n type: 'Bpmn',\n shape: (node.shape).charAt(0).toUpperCase() + (node.shape).slice(1)\n };\n }\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Renders the swimlane from the conversion\n NodeProperties.prototype.renderSwimlaneShape = function (newNode, node) {\n newNode.shape = {\n type: 'SwimLane', orientation: (node.orientation).charAt(0).toUpperCase() + (node.orientation).slice(1),\n header: {\n annotation: { content: node.header.text },\n height: 50, style: { fontSize: node.header.fontSize, color: node.header.fontColor, fill: node.header.fillColor }\n }\n };\n var lanes = [];\n var phases = [];\n for (var i = 0; i < node.lanes.length; i++) {\n lanes[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.lanes[parseInt(i.toString(), 10)].header.text,\n width: node.lanes[parseInt(i.toString(), 10)].header.width,\n style: {\n fontSize: node.lanes[parseInt(i.toString(), 10)].header.fontSize,\n color: node.lanes[parseInt(i.toString(), 10)].header.fontColor\n }\n }\n },\n style: { fill: node.lanes[parseInt(i.toString(), 10)].fillColor },\n children: []\n };\n for (var j = 0; j < node.lanes[parseInt(i.toString(), 10)].children.length; j++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var childNode = this.convertToNode(node.lanes[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]);\n if (childNode.wrapper == null) {\n childNode.wrapper = {\n actualSize: { width: childNode.width, height: childNode.height },\n offsetX: childNode.offsetX, offsetY: childNode.offsetY\n };\n }\n lanes[parseInt(i.toString(), 10)].children.push(childNode);\n }\n }\n for (var i = 0; i < node.phases.length; i++) {\n phases[parseInt(i.toString(), 10)] = {\n header: {\n annotation: {\n content: node.phases[parseInt(i.toString(), 10)].label.text,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].label.fillColor, fontSize: node.phases[parseInt(i.toString(), 10)].label.fontSize, color: node.phases[parseInt(i.toString(), 10)].label.fontColor }\n }\n },\n offset: node.phases[parseInt(i.toString(), 10)].offset,\n // eslint-disable-next-line max-len\n style: { fill: node.phases[parseInt(i.toString(), 10)].fillColor, strokeColor: node.phases[parseInt(i.toString(), 10)].lineColor, strokeDashArray: node.phases[parseInt(i.toString(), 10)].lineDashArray }\n };\n }\n newNode.shape.lanes = lanes;\n newNode.shape.phases = phases;\n return newNode.shape;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the event collections for the node properties\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n NodeProperties.prototype.renderEventsCollection = function (subProcessEvents) {\n var eventsCollection = [];\n if (subProcessEvents.length > 0) {\n for (var i = 0; i < subProcessEvents.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newEvent = {};\n var eventObject = subProcessEvents[parseInt(i.toString(), 10)];\n newEvent.event = (eventObject.event).charAt(0).toUpperCase() + (eventObject.event).slice(1);\n newEvent.trigger = (eventObject.trigger).charAt(0).toUpperCase() + (eventObject.trigger).slice(1);\n newEvent.offset = { x: eventObject.offset.x, y: eventObject.offset.y };\n eventsCollection.push(newEvent);\n }\n }\n return eventsCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Rendered the process collections for the node properties\n NodeProperties.prototype.renderProcessesCollection = function (node) {\n var processesCollection = [];\n if (node.subProcess && node.subProcess.processes.length > 0) {\n for (var i = 0; i < node.subProcess.processes.length; i++) {\n var processObject = node.subProcess.processes[parseInt(i.toString(), 10)];\n var data = this.convertToNode(processObject);\n processesCollection.push(data);\n }\n }\n return processesCollection;\n };\n /**\n * Get module name.\n * @returns {string} Returns the module name\n */\n NodeProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'NodeProperties';\n };\n return NodeProperties;\n}());\nexport { NodeProperties };\n","import { PortConstraints, PortVisibility } from '../enum/enum';\nvar PortProperties = /** @class */ (function () {\n function PortProperties(modelProperties) {\n this.modelProperties = modelProperties;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Convert and assign EJ1 to EJ2 port properties\n PortProperties.prototype.setPortProperties = function (oldPorts) {\n var portCollection = [];\n if (oldPorts.length > 0) {\n for (var i = 0; i < oldPorts.length; i++) {\n var port = oldPorts[parseInt(i.toString(), 10)];\n var newPort = {};\n newPort.style = {};\n newPort.id = port.name;\n if (port.addInfo) {\n newPort.addInfo = port.addInfo;\n }\n newPort.height = port.size;\n newPort.width = port.size;\n if (port.horizontalAlignment) {\n newPort.horizontalAlignment = port.horizontalAlignment.charAt(0).toUpperCase() +\n port.horizontalAlignment.slice(1);\n }\n if (port.verticalAlignment) {\n newPort.verticalAlignment = port.verticalAlignment.charAt(0).toUpperCase() +\n port.verticalAlignment.slice(1);\n }\n // eslint-disable-next-line max-len\n newPort.margin = { left: port.margin.left, right: port.margin.right, top: port.margin.top, bottom: port.margin.bottom };\n newPort.offset = { x: port.offset.x, y: port.offset.y };\n newPort.style.strokeColor = port.borderColor;\n newPort.style.strokeWidth = port.borderWidth;\n newPort.style.fill = port.fillColor;\n newPort.constraints = this.setPortConstraints(port.constraints);\n if (port.pathData) {\n newPort.pathData = port.pathData;\n }\n if (port.shape === 'path') {\n newPort.shape = 'Custom';\n }\n else {\n newPort.shape = port.shape.charAt(0).toUpperCase() + (port.shape).slice(1);\n }\n newPort.visibility = this.setPortVisibility(port.visibility);\n portCollection.push(newPort);\n }\n }\n return portCollection;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the port constraints from EJ1 to EJ2\n PortProperties.prototype.setPortConstraints = function (constraints) {\n var portConstraints = PortConstraints.Default;\n // if (constraints & PortConstraints.Drag) {\n // portConstraints = portConstraints | PortConstraints.Drag;\n // }\n if (constraints & PortConstraints.Draw) {\n portConstraints = portConstraints | PortConstraints.Draw;\n }\n if (constraints & PortConstraints.None) {\n portConstraints = PortConstraints.None;\n }\n return portConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the portVisibility from EJ1 to EJ2\n PortProperties.prototype.setPortVisibility = function (visibility) {\n var portVisibility;\n if (visibility & PortVisibility.Visible) {\n portVisibility = portVisibility | PortVisibility.Visible;\n }\n if (visibility & PortVisibility.Hidden) {\n portVisibility = portVisibility | PortVisibility.Hidden;\n }\n if (visibility & PortVisibility.Hover) {\n portVisibility = portVisibility | PortVisibility.Hover;\n }\n if (visibility & PortVisibility.Connect) {\n portVisibility = portVisibility | PortVisibility.Connect;\n }\n return portVisibility;\n };\n /**\n * Get module name.\n * @returns {string} Returns the module name\n */\n PortProperties.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'PortProperties';\n };\n return PortProperties;\n}());\nexport { PortProperties };\n","import { DiagramConstraints, DiagramTools, SelectorConstraints, SnapConstraints } from '../enum/enum';\nimport { ConnectorProperties } from './connectorProperties';\nimport { LabelProperties } from './labelProperties';\nimport { NodeProperties } from './nodeProperties';\nimport { PortProperties } from './portProperties';\nvar Ej1Serialization = /** @class */ (function () {\n function Ej1Serialization(diagram) {\n this.labelProperties = new LabelProperties(this);\n this.connectorProperties = new ConnectorProperties(this.labelProperties);\n this.portProperties = new PortProperties(this);\n this.nodeProperties = new NodeProperties(this.labelProperties, this.portProperties);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData = {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.items = [];\n this.diagram = diagram;\n }\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Getting the object data from the load diagram and serialize it into from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.getSerializedData = function (data) {\n this.convertedData.mode = 'SVG';\n this.convertedData.basicElements = [];\n this.convertedData.width = data.width;\n this.convertedData.height = data.height;\n if (data.nodes && data.nodes.length > 0) {\n this.nodeProperties.renderNodesCollection(this.convertedData, data);\n }\n else {\n this.convertedData.nodes = data.nodes;\n }\n if (data.connectors && data.connectors.length > 0) {\n this.connectorProperties.renderConnectorsCollection(this.convertedData, data);\n }\n else {\n this.convertedData.connectors = data.connectors;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (data.defaultSettings !== undefined) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getNodeDefaults = this.getNodeDefaults(data.defaultSettings.node);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.getConnectorDefaults = this.getConnectorDefaults(data.defaultSettings.connector);\n }\n //this.convertedData.setNodeTemplate = this.getNodeTemplate((data as Diagram).nodeTemplate);\n this.setLayers(this.convertedData, data);\n this.setDataSourceSettings(this.convertedData, data);\n this.setRulerSettings(this.convertedData, data);\n this.setSnapSettings(this.convertedData, data);\n if (data.snapSettings.enableSnapToObject) {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints | SnapConstraints.SnapToObject;\n }\n else {\n this.convertedData.snapSettings.constraints = this.convertedData.snapSettings.constraints & ~SnapConstraints.SnapToObject;\n }\n if (data.pageSettings.backgroundImage === undefined) {\n data.pageSettings.pageBackgroundColor = 'transparent';\n data.pageSettings.backgroundImage = {\n source: '',\n scale: 'meet',\n alignment: 'xmidymid'\n };\n data.pageSettings.showPageBreak = false;\n }\n this.setScrollSettings(this.convertedData, data);\n this.setPageSettings(this.convertedData, data);\n this.setContextMenu(this.convertedData, data);\n this.setTooltip(this.convertedData, data);\n this.setModelLayout(this.convertedData, data);\n this.setSelectedItems(this.convertedData, data);\n this.convertedData.constraints = this.setDiagramConstraints(data.constraints);\n this.convertedData.tool = this.setDiagramTool(data.tool);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.convertedData.drawType = data.drawType;\n this.convertedData.commandManager = data.commandManager;\n return this.convertedData;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n Ej1Serialization.prototype.getNodeDefaults = function (node) {\n if (node) {\n return this.nodeProperties.convertToNode(node);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //declare the node default properties\n Ej1Serialization.prototype.getConnectorDefaults = function (connector) {\n if (connector) {\n return this.connectorProperties.convertToConnector(connector);\n }\n else {\n return null;\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the layers from the EJ1 JSON\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setLayers = function (convertedData, data) {\n convertedData.layers = [];\n if (data.layers.length > 0) {\n for (var i = 0; i < data.layers.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var newLayer = {};\n var layer = data.layers[parseInt(i.toString(), 10)];\n newLayer.id = layer.name;\n newLayer.visible = layer.visible;\n newLayer.lock = layer.lock;\n newLayer.objects = layer.objects;\n convertedData.layers.push(newLayer);\n }\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the dataSourceSettings from EJ1 to EJ2\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setDataSourceSettings = function (convertedData, data) {\n convertedData.dataSourceSettings = {};\n convertedData.dataSourceSettings.id = data.dataSourceSettings.id;\n convertedData.dataSourceSettings.dataManager = data.dataSourceSettings.dataSource;\n convertedData.dataSourceSettings.root = data.dataSourceSettings.root;\n convertedData.dataSourceSettings.parentId = data.dataSourceSettings.parent;\n convertedData.dataSourceSettings.crudAction = {\n read: data.dataSourceSettings.crudAction.read,\n create: data.dataSourceSettings.crudAction.create,\n update: data.dataSourceSettings.crudAction.update,\n destroy: data.dataSourceSettings.crudAction.destroy,\n customFields: data.dataSourceSettings.customFields\n };\n if (data.dataSourceSettings.connectionDataSource) {\n convertedData.dataSourceSettings.connectionDataSource = {};\n convertedData.dataSourceSettings.connectionDataSource.id = data.dataSourceSettings.connectionDataSource.id;\n convertedData.dataSourceSettings.connectionDataSource.dataManager = data.dataSourceSettings.connectionDataSource.dataSource;\n convertedData.dataSourceSettings.connectionDataSource.sourceID = data.dataSourceSettings.connectionDataSource.sourceNode;\n convertedData.dataSourceSettings.connectionDataSource.targetID = data.dataSourceSettings.connectionDataSource.targetNode;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointX = data.dataSourceSettings.connectionDataSource.sourcePointX;\n convertedData.dataSourceSettings.connectionDataSource.sourcePointY = data.dataSourceSettings.connectionDataSource.sourcePointY;\n convertedData.dataSourceSettings.connectionDataSource.targetPointX = data.dataSourceSettings.connectionDataSource.targetPointX;\n convertedData.dataSourceSettings.connectionDataSource.targetPointY = data.dataSourceSettings.connectionDataSource.targetPointY;\n convertedData.dataSourceSettings.connectionDataSource.crudAction = {\n read: data.dataSourceSettings.connectionDataSource.crudAction.read,\n create: data.dataSourceSettings.connectionDataSource.crudAction.create,\n update: data.dataSourceSettings.connectionDataSource.crudAction.update,\n destroy: data.dataSourceSettings.connectionDataSource.crudAction.destroy,\n customFields: data.dataSourceSettings.connectionDataSource.customFields\n };\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the ruler settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setRulerSettings = function (convertedData, data) {\n convertedData.rulerSettings = {};\n convertedData.rulerSettings.showRulers = data.rulerSettings.showRulers;\n convertedData.rulerSettings.horizontalRuler = this.setRulerProperties(data.rulerSettings.horizontalRuler);\n convertedData.rulerSettings.verticalRuler = this.setRulerProperties(data.rulerSettings.verticalRuler);\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the orientation of the ruler\n Ej1Serialization.prototype.setRulerProperties = function (ruler) {\n var rulerProperties = {};\n rulerProperties.interval = ruler.interval;\n rulerProperties.segmentWidth = ruler.segmentWidth;\n // rulerProperties.tickAlignment = ruler.tickAlignment === 'rightorbottom' ? 'RightOrBottom' : 'LeftOrTop';\n rulerProperties.markerColor = ruler.markerColor;\n rulerProperties.thickness = ruler.thickness;\n rulerProperties.arrangeTick = ruler.arrangeTick;\n return rulerProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setSnapSettings = function (convertedData, data) {\n convertedData.snapSettings = {};\n if (data.snapSettings) {\n convertedData.snapSettings.horizontalGridLines = this.setGridLines(data.snapSettings.horizontalGridLines);\n convertedData.snapSettings.verticalGridLines = this.setGridLines(data.snapSettings.verticalGridLines);\n convertedData.snapSettings.snapAngle = data.snapSettings.snapAngle;\n convertedData.snapSettings.snapObjectDistance = data.snapSettings.snapObjectDistance;\n convertedData.snapSettings.constraints = this.setSnapConstraints(data.snapSettings.snapConstraints);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the snap constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setSnapConstraints = function (constraints) {\n var snapConstraints = SnapConstraints.None;\n if (constraints & SnapConstraints.ShowHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowHorizontalLines;\n }\n if (constraints & SnapConstraints.ShowVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowVerticalLines;\n }\n if (constraints & SnapConstraints.ShowLines) {\n snapConstraints = snapConstraints | SnapConstraints.ShowLines;\n }\n if (constraints & SnapConstraints.SnapToHorizontalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToHorizontalLines;\n }\n if (constraints & SnapConstraints.SnapToVerticalLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToVerticalLines;\n }\n if (constraints & SnapConstraints.SnapToLines) {\n snapConstraints = snapConstraints | SnapConstraints.SnapToLines;\n }\n return snapConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the gridlines\n Ej1Serialization.prototype.setGridLines = function (gridlines) {\n var gridLinesProperties = {};\n gridLinesProperties.lineColor = gridlines.lineColor;\n gridLinesProperties.lineDashArray = gridlines.lineDashArray;\n gridLinesProperties.lineIntervals = gridlines.lineInterval;\n gridLinesProperties.snapIntervals = gridlines.snapInterval;\n return gridLinesProperties;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the scroll-settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setScrollSettings = function (convertedData, data) {\n convertedData.scrollSettings = {\n horizontalOffset: data.scrollSettings.horizontalOffset,\n verticalOffset: data.scrollSettings.verticalOffset,\n currentZoom: data.scrollSettings.currentZoom,\n viewPortWidth: data.scrollSettings.viewPortWidth,\n viewPortHeight: data.scrollSettings.viewPortHeight,\n minZoom: data.scrollSettings.minZoom,\n maxZoom: data.scrollSettings.maxZoom,\n scrollLimit: (data.pageSettings.scrollLimit).charAt(0).toUpperCase() + (data.pageSettings.scrollLimit).slice(1),\n scrollableArea: data.pageSettings.scrollableArea,\n canAutoScroll: data.enableAutoScroll,\n autoScrollBorder: data.pageSettings.autoScrollBorder\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the page settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setPageSettings = function (convertedData, data) {\n convertedData.pageSettings = {\n width: data.pageSettings.pageWidth,\n height: data.pageSettings.pageHeight,\n // eslint-disable-next-line max-len\n margin: { left: data.pageSettings.pageMargin, right: data.pageSettings.pageMargin, top: data.pageSettings.pageMargin, bottom: data.pageSettings.pageMargin },\n orientation: (data.pageSettings.pageOrientation).charAt(0).toUpperCase() + (data.pageSettings.pageOrientation).slice(1),\n // eslint-disable-next-line max-len\n boundaryConstraints: (data.pageSettings.boundaryConstraints).charAt(0).toUpperCase() + (data.pageSettings.boundaryConstraints).slice(1),\n // eslint-disable-next-line max-len\n background: { color: data.pageSettings.pageBackgroundColor, source: data.backgroundImage.source, scale: data.backgroundImage.scale, align: data.backgroundImage.align },\n multiplePage: data.pageSettings.multiplePage,\n showPageBreaks: data.pageSettings.showPageBreak\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the contextmenu settings\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setContextMenu = function (convertedData, data) {\n convertedData.contextMenuSettings = {};\n convertedData.contextMenuSettings.show = data.enableContextMenu;\n if (data.contextMenu !== undefined) {\n convertedData.contextMenuSettings.showCustomMenuOnly = data.contextMenu.showCustomMenuItemsOnly;\n convertedData.contextMenuSettings.items = this.getContextMenuItems(data.contextMenu.items);\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the contextmenu items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.getContextMenuItems = function (contextMenuItems) {\n var menuItem = {};\n for (var i = 0; i < contextMenuItems.length; i++) {\n var oldMenuItem = contextMenuItems[parseInt(i.toString(), 10)];\n menuItem.id = oldMenuItem.name;\n menuItem.text = oldMenuItem.text;\n this.items.push(menuItem);\n if (contextMenuItems.subItems && contextMenuItems.subItems.length > 0) {\n this.getContextMenuItems(contextMenuItems.subItems);\n }\n }\n return this.items;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the tooltip items\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setTooltip = function (convertedData, data) {\n convertedData.tooltip = {\n content: data.tooltip.templateId,\n relativeMode: data.tooltip.relativeMode\n };\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the model layout for the converted data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setModelLayout = function (convertedData, data) {\n convertedData.layout = {\n fixedNode: data.layout.fixedNode,\n horizontalSpacing: data.layout.horizontalSpacing,\n verticalSpacing: data.layout.verticalSpacing,\n maxIteration: data.layout.maxIteration,\n springFactor: data.layout.springFactor,\n springLength: data.layout.springLength,\n // eslint-disable-next-line max-len\n margin: { left: data.layout.margin.left, right: data.layout.margin.right, top: data.layout.margin.top, bottom: data.layout.margin.bottom },\n horizontalAlignment: (data.layout.horizontalAlignment).charAt(0).toUpperCase() + (data.layout.horizontalAlignment).slice(1),\n verticalAlignment: (data.layout.verticalAlignment).charAt(0).toUpperCase() + (data.layout.verticalAlignment).slice(1),\n orientation: data.layout.orientation === 'toptobottom' ? 'TopToBottom' : data.layout.orientation === 'bottomtotop' ? 'BottomToTop' : data.layout.orientation === 'righttoleft' ? 'RightToLeft' : 'LeftToRight',\n connectorSegments: data.layout.getConnectorSegments,\n type: (data.layout.type).charAt(0).toUpperCase() + (data.layout.type).slice(1),\n getLayoutInfo: data.layout.getLayoutInfo,\n bounds: data.layout.bounds,\n root: data.layout.root\n };\n if (convertedData.layout && convertedData.layout.type === 'Hierarchicaltree') {\n convertedData.layout.type = 'HierarchicalTree';\n }\n else if (convertedData.layout && convertedData.layout.type === 'Organizationalchart') {\n convertedData.layout.type = 'OrganizationalChart';\n }\n else if (convertedData.layout && convertedData.layout.type === 'Radialtree') {\n convertedData.layout.type = 'RadialTree';\n }\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Sets the selected items to convert the data\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Ej1Serialization.prototype.setSelectedItems = function (convertedData, data) {\n convertedData.selectedItems = {};\n var nodes = [];\n var connectors = [];\n convertedData.selectedItems.nodes = nodes;\n convertedData.selectedItems.connectors = connectors;\n convertedData.selectedItems.offsetX = data.selectedItems.offsetX;\n convertedData.selectedItems.offsetY = data.selectedItems.offsetY;\n convertedData.selectedItems.width = data.selectedItems.width;\n convertedData.selectedItems.height = data.selectedItems.height;\n convertedData.selectedItems.rotateAngle = data.selectedItems.rotateAngle;\n convertedData.selectedItems.constraints = this.setSelectorConstraints(data.selectedItems.constraints);\n convertedData.selectedItems.userHandles = data.selectedItems.userHandles;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the selector constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setSelectorConstraints = function (constraints) {\n var selectorConstraints = SelectorConstraints.None;\n if (constraints & SelectorConstraints.ConnectorSourceThumb) {\n selectorConstraints = selectorConstraints | SelectorConstraints.Rotate;\n }\n if (constraints & SelectorConstraints.ResizeAll) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ResizeAll;\n }\n if (constraints & SelectorConstraints.ResizeSouthEast) {\n selectorConstraints = selectorConstraints | SelectorConstraints.UserHandle;\n }\n if (constraints & SelectorConstraints.ToolTip) {\n selectorConstraints = selectorConstraints | SelectorConstraints.ToolTip;\n }\n if (constraints & SelectorConstraints.All) {\n selectorConstraints = selectorConstraints | SelectorConstraints.All;\n }\n return selectorConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram constraints from EJ1 to EJ2\n Ej1Serialization.prototype.setDiagramConstraints = function (constraints) {\n var diagramConstraints = DiagramConstraints.None;\n if (constraints & DiagramConstraints.UserInteraction) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UserInteraction;\n }\n if (constraints & DiagramConstraints.ApiUpdate) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ApiUpdate;\n }\n if (constraints & DiagramConstraints.PageEditable) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PageEditable;\n }\n if (constraints & DiagramConstraints.LineRouting) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Bridging;\n }\n if (constraints & DiagramConstraints.Zoom) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Zoom;\n }\n if (constraints & DiagramConstraints.PanX) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanX;\n }\n if (constraints & DiagramConstraints.PanY) {\n diagramConstraints = diagramConstraints | DiagramConstraints.PanY;\n }\n if (constraints & DiagramConstraints.Pan) {\n diagramConstraints = diagramConstraints | DiagramConstraints.Pan;\n }\n if (constraints & DiagramConstraints.UndoRedo) {\n diagramConstraints = diagramConstraints | DiagramConstraints.UndoRedo;\n }\n if (constraints & DiagramConstraints.ZoomTextEdit) {\n diagramConstraints = diagramConstraints | DiagramConstraints.ZoomTextEdit;\n }\n return diagramConstraints;\n };\n //(EJ2-272287) Provide support to convert the EJ1 diagram to EJ2 diagram\n //Update the diagram tool from EJ1 to EJ2\n Ej1Serialization.prototype.setDiagramTool = function (tool) {\n var diagramTool = DiagramTools.None;\n if (tool & DiagramTools.MultipleSelect) {\n diagramTool = diagramTool | DiagramTools.SingleSelect;\n }\n if (tool & DiagramTools.ZoomPan) {\n diagramTool = diagramTool | DiagramTools.MultipleSelect;\n }\n if (tool & DiagramTools.DrawOnce) {\n diagramTool = diagramTool | DiagramTools.ZoomPan;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.DrawOnce;\n }\n if (tool & DiagramTools.ContinuousDraw) {\n diagramTool = diagramTool | DiagramTools.ContinuousDraw;\n }\n return diagramTool;\n };\n // /* tslint:disable */\n // /**\n // * To provide the array of modules needed for control rendering\n // *\n // * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\\\n // * @private\n // */\n // public requiredModules(): ModuleDeclaration[] {\n // const modules: ModuleDeclaration[] = [];\n // modules.push({\n // member: 'NodeProperties',\n // args: []\n // });\n // return modules;\n // }\n /**\n * To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n Ej1Serialization.prototype.destroy = function () {\n /**\n * Destroys the Print and Export module\n */\n };\n /**\n * Get module name.\n *\n * @returns {string} Returns the module name\n */\n Ej1Serialization.prototype.getModuleName = function () {\n /**\n * Returns the module name\n */\n return 'Ej1Serialization';\n };\n return Ej1Serialization;\n}());\nexport { Ej1Serialization };\n","/**\n * Diagram component exported items\n */\nexport * from './diagram';\nexport * from './print-settings';\n//primitives\nexport * from './primitives/size';\nexport * from './primitives/rect';\nexport * from './primitives/matrix';\nexport * from './primitives/point';\n//enums\nexport * from './enum/enum';\n//core\nexport * from './core/appearance';\nexport * from './core/elements/diagram-element';\nexport * from './core/elements/path-element';\nexport * from './core/elements/image-element';\nexport * from './core/elements/text-element';\nexport * from './core/containers/container';\nexport * from './core/containers/canvas';\nexport * from './core/containers/grid';\nexport * from './core/containers/stack-panel';\n//utility\nexport * from './utility/connector';\nexport * from './utility/path-util';\nexport * from './utility/base-util';\nexport * from './utility/diagram-util';\n//rendering\nexport * from './rendering/canvas-renderer';\nexport * from './rendering/renderer';\n//data binding\nexport * from './data-binding/data-binding';\n//objects\nexport * from './objects/dictionary/basic-shapes';\nexport * from './objects/dictionary/common';\nexport * from './objects/dictionary/flow-shapes';\nexport * from './objects/annotation';\nexport * from './objects/port';\nexport * from './objects/context-menu';\nexport * from './objects/node';\nexport * from './objects/bpmn';\nexport * from './objects/connector';\nexport * from './objects/connector-bridging';\nexport * from './objects/snapping';\nexport * from './objects/undo-redo';\nexport * from './objects/tooltip';\nexport * from './objects/layout-animation';\nexport * from './objects/preview';\nexport * from './objects/fixed-user-handle';\n//interaction\nexport * from './interaction/selector';\nexport * from './interaction/tool';\nexport * from './interaction/event-handlers';\nexport * from './interaction/command-manager';\nexport * from './interaction/actions';\nexport * from './interaction/connector-editing';\nexport * from './interaction/container-interaction';\nexport * from './interaction/line-routing';\nexport * from './interaction/line-distribution';\nexport * from './diagram/data-source';\nexport * from './diagram/grid-lines';\nexport * from './diagram/keyboard-commands';\nexport * from './diagram/custom-cursor';\nexport * from './diagram/data-mapping';\n//layout\nexport * from './layout/layout-base';\nexport * from './layout/mind-map';\nexport * from './layout/hierarchical-tree';\nexport * from './layout/radial-tree';\nexport * from './layout/symmetrical-layout';\nexport * from './layout/complex-hierarchical-tree';\nexport * from './layout/flowChart/flow-chart-layout';\nexport * from './load-utility/connectorProperties';\nexport * from './load-utility/labelProperties';\nexport * from './load-utility/modelProperties';\nexport * from './load-utility/nodeProperties';\nexport * from './load-utility/portProperties';\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/ban-types */\nimport { Component, Property, Complex, CollectionFactory, ChildProperty, Event, L10n, initializeCSPTemplate } from '@syncfusion/ej2-base';\nimport { isBlazor } from '@syncfusion/ej2-base';\nimport { Browser, EventHandler, Draggable, Collection } from '@syncfusion/ej2-base';\nimport { remove } from '@syncfusion/ej2-base';\nimport { Accordion } from '@syncfusion/ej2-navigations';\nimport { Node, Connector, Shape, Size, ConnectorConstraints, NodeConstraints } from '../diagram/index';\nimport { Transform } from '../diagram/index';\nimport { DiagramRenderer, StackPanel, Margin } from '../diagram/index';\nimport { TextElement, Canvas } from '../diagram/index';\nimport { SvgRenderer } from '../diagram/rendering/svg-renderer';\nimport { parentsUntil, createSvgElement, createHtmlElement, createMeasureElements } from '../diagram/utility/dom-util';\nimport { removeElementsByClass, applyStyleAgainstCsp } from '../diagram/utility/dom-util';\nimport { scaleElement, arrangeChild, groupHasType, setUMLActivityDefaults, updateDefaultValues } from '../diagram/utility/diagram-util';\nimport { getFunction, randomId, cloneObject } from '../diagram/utility/base-util';\nimport { getOuterBounds } from '../diagram/utility/connector';\nimport { Point } from '../diagram/primitives/point';\nimport { CanvasRenderer } from '../diagram/rendering/canvas-renderer';\nimport { Tooltip } from '@syncfusion/ej2-popups';\n// eslint-disable-next-line\nvar getObjectType = function (obj) {\n var conn = obj;\n if (conn.sourcePoint || conn.targetPoint || conn.sourceID || conn.targetID\n || conn.sourcePortID || conn.targetPortID || conn.sourceDecorator || conn.targetDecorator) {\n return Connector;\n }\n if (obj.shape && (obj.shape instanceof Shape || obj.shape.type)) {\n return Node;\n }\n return Node;\n};\n/**\n * A palette allows to display a group of related symbols and it textually annotates the group with its header.\n */\nvar Palette = /** @class */ (function (_super) {\n __extends(Palette, _super);\n // eslint-disable-next-line\n function Palette(parent, propName, defaultValue, isArray) {\n return _super.call(this, parent, propName, defaultValue, isArray) || this;\n }\n __decorate([\n Property('')\n ], Palette.prototype, \"id\", void 0);\n __decorate([\n Property()\n ], Palette.prototype, \"height\", void 0);\n __decorate([\n Property(true)\n ], Palette.prototype, \"expanded\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Palette.prototype, \"title\", void 0);\n __decorate([\n CollectionFactory(getObjectType)\n ], Palette.prototype, \"symbols\", void 0);\n return Palette;\n}(ChildProperty));\nexport { Palette };\n/**\n * customize the drag size of the individual palette items.\n */\nvar SymbolDragSize = /** @class */ (function (_super) {\n __extends(SymbolDragSize, _super);\n function SymbolDragSize() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolDragSize.prototype, \"height\", void 0);\n return SymbolDragSize;\n}(ChildProperty));\nexport { SymbolDragSize };\n/**\n * customize the preview size and position of the individual palette items.\n */\nvar SymbolPreview = /** @class */ (function (_super) {\n __extends(SymbolPreview, _super);\n function SymbolPreview() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"width\", void 0);\n __decorate([\n Property()\n ], SymbolPreview.prototype, \"height\", void 0);\n __decorate([\n Complex({}, Point)\n ], SymbolPreview.prototype, \"offset\", void 0);\n return SymbolPreview;\n}(ChildProperty));\nexport { SymbolPreview };\n/**\n * Represents the Symbol Palette Component.\n * ```html\n *
\n * \n * ```\n */\n/**\n * The symbol palette control allows to predefine the frequently used nodes and connectors\n * and to drag and drop those nodes/connectors to drawing area\n */\nvar SymbolPalette = /** @class */ (function (_super) {\n __extends(SymbolPalette, _super);\n //region - protected methods\n /**\n * Constructor for creating the symbol palette Component\n *\n * @param {SymbolPaletteModel} options The symbol palette model.\n * @param {string | HTMLElement} element The symbol palette element.\n */\n function SymbolPalette(options, element) {\n var _this = _super.call(this, options, element) || this;\n /** @private */\n _this.symbolTable = {};\n /** @private */\n _this.childTable = {};\n _this.info = 'info';\n _this.oldObject = null;\n _this.laneTable = {};\n _this.isExpand = false;\n _this.isExpandMode = false;\n _this.isMethod = false;\n _this.paletteid = 88123;\n _this.checkOnRender = false;\n _this.symbolTooltipObject = null;\n // eslint-disable\n _this.helper = function (e) {\n var clonedElement;\n var id = (_this.selectedSymbol && _this.selectedSymbol.id) || e.sender.target.id.split('_container')[0];\n var symbol = _this.symbolTable[\"\" + id];\n if (symbol && _this.selectedSymbol) {\n _this.selectedSymbols = _this.selectedSymbol.id === symbol.id ? symbol : _this.selectedSymbol;\n //const position: PointModel = this.getMousePosition(e.sender);\n clonedElement = _this.getSymbolPreview(_this.selectedSymbols, e.sender, _this.element);\n clonedElement.setAttribute('paletteId', _this.element.id);\n }\n return clonedElement;\n };\n var child;\n var node;\n for (var i = 0; _this && _this.palettes && i < _this.palettes.length; i++) {\n for (var j = 0; j < _this.palettes[parseInt(i.toString(), 10)].symbols.length; j++) {\n child = _this.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n node = options.palettes[parseInt(i.toString(), 10)].symbols[parseInt(j.toString(), 10)];\n if (child && child.shape.type === 'UmlActivity') {\n setUMLActivityDefaults(node, child);\n }\n if (_this.nodeDefaults || _this.connectorDefaults) {\n updateDefaultValues(child, node, child instanceof Node ? _this.nodeDefaults : _this.connectorDefaults);\n }\n }\n }\n return _this;\n }\n /**\n * Refreshes the panel when the symbol palette properties are updated\\\n *\n * @returns { void} Refreshes the panel when the symbol palette properties are updated .\\\n * @param {SymbolPaletteModel} newProp - Defines the new values of the changed properties.\n * @param {SymbolPaletteModel} oldProp - Defines the old values of the changed properties.\n */\n // eslint-disable-next-line\n SymbolPalette.prototype.onPropertyChanged = function (newProp, oldProp) {\n var refresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n this.element.style.width = this.width.toString();\n break;\n case 'height':\n this.element.style.height = this.height.toString();\n break;\n case 'symbolPreview':\n break;\n case 'symbolWidth':\n case 'symbolHeight':\n case 'getSymbolInfo':\n if (this.isReact) {\n refresh = false;\n }\n else {\n refresh = true;\n }\n break;\n case 'enableSearch':\n if (newProp.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n else {\n var divElement = document.getElementById(this.element.id + '_search');\n if (divElement) {\n divElement.parentNode.removeChild(divElement);\n }\n }\n break;\n case 'palettes':\n for (var _b = 0, _c = Object.keys(newProp.palettes); _b < _c.length; _b++) {\n var i = _c[_b];\n var index = Number(i);\n if (!isBlazor() && !this.accordionElement.items[parseInt(index.toString(), 10)]) {\n this.accordionElement.items[parseInt(index.toString(), 10)] = {\n header: newProp.palettes[parseInt(index.toString(), 10)].title || '',\n expanded: newProp.palettes[parseInt(index.toString(), 10)].expanded,\n iconCss: newProp.palettes[parseInt(index.toString(), 10)].iconCss || ''\n };\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].height) {\n var paletteDiv = document.getElementById(this.palettes[parseInt(index.toString(), 10)].id + '_content');\n paletteDiv.style.height = newProp.palettes[parseInt(index.toString(), 10)].height + 'px';\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].iconCss !== undefined) {\n if (!isBlazor()) {\n this.accordionElement.items[parseInt(index.toString(), 10)].iconCss = newProp.palettes[parseInt(index.toString(), 10)].iconCss || '';\n refresh = true;\n }\n }\n if (newProp.palettes[parseInt(index.toString(), 10)].expanded !== undefined && !isBlazor()) {\n if (!this.palettes[parseInt(index.toString(), 10)].isInteraction) {\n this.accordionElement.items[parseInt(index.toString(), 10)].expanded\n = newProp.palettes[parseInt(index.toString(), 10)].expanded;\n this.isExpand = true;\n }\n else {\n this.palettes[parseInt(index.toString(), 10)].isInteraction = false;\n }\n if (!this.isExpandMode && !this.isMethod && !this.isExpand) {\n this.isExpand = true;\n }\n }\n }\n break;\n case 'enableAnimation':\n if (!isBlazor()) {\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n else {\n this.accordionElement.animation = { expand: { duration: 400 }, collapse: { duration: 400 } };\n }\n }\n break;\n case 'expandMode':\n if (!isBlazor()) {\n this.accordionElement.expandMode = this.expandMode;\n refresh = true;\n this.isExpandMode = true;\n }\n break;\n case 'allowDrag':\n this.allowDrag = newProp.allowDrag;\n if (!this.allowDrag) {\n this.draggable.helper = function () {\n return null;\n };\n }\n else {\n this.initDraggable();\n this.draggable.helper = this.helper;\n }\n break;\n }\n }\n if (refresh) {\n this.refreshPalettes();\n }\n if (this.isExpand && !refresh) {\n this.refresh();\n this.isExpand = false;\n for (var p = 0; p < this.palettes.length; p++) {\n var paletteElement = this.palettes[parseInt(p.toString(), 10)].id;\n if (window[\"\" + paletteElement]) {\n if (window[\"\" + paletteElement].length > 1) {\n window[\"\" + paletteElement][1].parentNode.removeChild(window[\"\" + paletteElement][1]);\n window[\"\" + paletteElement][1] = null;\n }\n }\n }\n }\n this.isMethod = false;\n };\n /**\n * updateBlazorProperties method\\\n *\n * @returns {void} updateBlazorProperties method .\\\n * @param {SymbolPaletteModel} newProp - provide the scale value.\n *\n * @private\n */\n // public updateBlazorProperties(newProp: SymbolPaletteModel): void {\n // const blazorInterop: string = 'sfBlazor';\n // const blazor: string = 'Blazor';\n // if (window && window[`${blazor}`]) {\n // const palObj: object = { palette: newProp.palettes };\n // const obj: object = { 'methodName': 'UpdateBlazorProperties', 'paletteobj': palObj };\n // window[`${blazorInterop}`].updateBlazorProperties(obj, this);\n // }\n // }\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} Get the properties to be maintained in the persisted state.\n */\n SymbolPalette.prototype.getPersistData = function () {\n var keyEntity = ['loaded'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Initializes the values of private members.\n *\n * @returns {void} Initializes the values of private members.\n * @private\n */\n SymbolPalette.prototype.preRender = function () {\n var _this = this;\n this.l10n = new L10n(this.getModuleName(), this.defaultLocale(), this.locale);\n if (this.element.id === '') {\n var collection = document.getElementsByClassName('e-symbolpalette').length;\n this.element.id = 'symbolpalette_' + this.paletteid + '_' + collection;\n }\n this.element.style.overflow = 'auto';\n this.element.style.height = this.height.toString();\n this.element.style.width = this.width.toString();\n if (this.enableSearch && !isBlazor()) {\n this.createTextbox();\n }\n //create accordion element\n if (!isBlazor()) {\n var accordionDiv = createHtmlElement('div', { id: this.element.id + '_container' });\n this.accordionElement = new Accordion({\n expandMode: this.expandMode\n });\n if (!this.enableAnimation) {\n this.accordionElement.animation = { expand: { duration: 0 }, collapse: { duration: 0 } };\n }\n this.accordionElement.created = function () {\n _this.checkOnRender = true;\n };\n this.accordionElement.expanded = function (args) {\n var index = _this.accordionElement.items.indexOf(args.item);\n var isAllowDatabind = _this.allowServerDataBinding;\n _this.allowServerDataBinding = false;\n _this.palettes[parseInt(index.toString(), 10)].expanded = args.isExpanded;\n _this.palettes[parseInt(index.toString(), 10)].isInteraction = true;\n _this.allowServerDataBinding = isAllowDatabind;\n };\n this.accordionElement.expanding = function (args) {\n if (_this.checkOnRender) {\n // eslint-disable-next-line\n var diagramArgs = {\n element: args.element, content: args.content, index: args.index, cancel: false,\n isExpanded: args.isExpanded, palette: _this.palettes[args.index]\n };\n var event_1 = 'paletteExpanding';\n _this.trigger(event_1, diagramArgs);\n args.cancel = diagramArgs.cancel;\n }\n };\n this.element.appendChild(accordionDiv);\n }\n var measureWindowElement = 'measureElement';\n if (window[\"\" + measureWindowElement]) {\n window[\"\" + measureWindowElement] = null;\n }\n createMeasureElements();\n this.unWireEvents();\n this.wireEvents();\n };\n /**\n * EJ2-61531- Localization support for the symbol palette search box placeholder.\n * @returns {Object} defaultLocale\n */\n SymbolPalette.prototype.defaultLocale = function () {\n return { SearchShapes: 'Search Shapes' };\n };\n /**\n * Renders the rulers.\n *\n * @returns {void} Renders the rulers.\n * @private\n */\n SymbolPalette.prototype.render = function () {\n this.diagramRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), false);\n this.svgRenderer = new DiagramRenderer(this.element.id, new SvgRenderer(), true);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.appendTo('#' + this.element.id + '_container');\n }\n this.renderComplete();\n };\n /**\n * Core method to return the component name.\n *\n * @returns {string} Core method to return the component name.\n * @private\n */\n SymbolPalette.prototype.getModuleName = function () {\n return 'SymbolPalette';\n };\n /**\n * To provide the array of modules needed for control rendering.\n *\n * @returns {ModuleDeclaration[]} To provide the array of modules needed for control rendering .\n * @private\n */\n SymbolPalette.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'Bpmn',\n args: []\n });\n return modules;\n };\n /**\n *To destroy the ruler\n *\n * @returns {void} To destroy the ruler\n */\n SymbolPalette.prototype.destroy = function () {\n if (this.allowDrag) {\n this.draggable.destroy();\n this.unWireEvents();\n this.notify('destroy', {});\n _super.prototype.destroy.call(this);\n var content = document.getElementById(this.element.id + '_container');\n if (content) {\n this.element.removeChild(content);\n var measureElemnt = 'measureElement';\n if (window[\"\" + measureElemnt]) {\n window[\"\" + measureElemnt].usageCount -= 1;\n var measureElementCount = 'measureElementCount';\n window[\"\" + measureElementCount]--;\n if (window[\"\" + measureElementCount] === 0) {\n window[\"\" + measureElemnt].parentNode.removeChild(window[\"\" + measureElemnt]);\n window[\"\" + measureElemnt] = null;\n }\n }\n }\n content = document.getElementById(this.element.id + '_search');\n if (content) {\n content.parentNode.removeChild(content);\n }\n }\n };\n /**\n * Add particular palettes to symbol palette at runtime.\\\n *\n * @returns { void} Refreshes the ruler when the Ruler properties are updated .\\\n * @param { PaletteModel[]} palettes -Defines the collection of palettes to be added.\n */\n SymbolPalette.prototype.addPalettes = function (palettes) {\n var palette;\n for (var i = 0; i < palettes.length; i++) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.isProtectedOnChange = true;\n this.allowServerDataBinding = false;\n palette = new Palette(this, 'palettes', palettes[parseInt(i.toString(), 10)], true);\n this.palettes.push(palette);\n this.initSymbols(palette);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.isProtectedOnChange = false;\n this.renderPalette(palette);\n }\n this.bulkChanges = {};\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n };\n /**\n * removePalette method\\\n *\n * @returns {void} removePalette method .\\\n * @param {string} paletteId - provide the scale value.\n *\n * @private\n */\n SymbolPalette.prototype.removePalette = function (paletteId) {\n for (var i = 0; i < this.palettes.length; i++) {\n if (this.palettes[parseInt(i.toString(), 10)].id === paletteId) {\n this.palettes.splice(i, 1);\n if (!isBlazor()) {\n this.accordionElement.items.splice(i, 1);\n }\n break;\n }\n }\n };\n /**\n * Remove particular palettes to symbol palette at runtime \\\n *\n * @returns {void} Remove particular palettes to symbol palette at runtime .\\\n * @param {string[]} palettes - provide the scale value.\n */\n SymbolPalette.prototype.removePalettes = function (palettes) {\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n for (var i = 0; i < palettes.length; i++) {\n this.removePalette(palettes[parseInt(i.toString(), 10)]);\n }\n if (!isBlazor()) {\n this.accordionElement.refresh();\n }\n else {\n this.updatePalettes();\n }\n this.allowServerDataBinding = isEnableServerDatabind;\n };\n //end region - protected methods\n //region - private methods to render symbols\n /**\n * Method to initialize the items in the symbols \\\n *\n * @returns {void} Method to initialize the items in the symbols .\\\n * @param {PaletteModel} symbolGroup - provide the scale value.\n *\n */\n SymbolPalette.prototype.initSymbols = function (symbolGroup) {\n var group = [];\n var laneHeight = 0;\n var laneWidth = 0;\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.shape.type === 'SwimLane') {\n var swimLaneObj = symbol;\n var swimLaneShape = symbol.shape;\n var isHorizontal = (swimLaneShape.orientation === 'Horizontal') ? true : false;\n if (swimLaneShape.isLane) {\n laneHeight = isHorizontal ? this.symbolHeight - this.symbolHeight / 2 : this.symbolHeight - this.symbolHeight / 4;\n laneWidth = isHorizontal ? this.symbolWidth - this.symbolWidth / 4 : this.symbolWidth - this.symbolWidth / 2;\n this.laneTable[symbol.id] = { height: laneHeight, width: laneWidth };\n var header = swimLaneShape.lanes[0].header;\n var laneStyle = swimLaneShape.lanes[0].style;\n var headerStyle = header.style;\n var headerObj = {\n id: 'header' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? header.width : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : header.height,\n style: headerStyle,\n annotations: [{ content: header.annotation.content }]\n };\n headerObj.offsetX = headerObj.width / 2;\n headerObj.offsetY = headerObj.height / 2;\n this.addPaletteItem(symbolGroup.id, headerObj);\n var laneObj = {\n id: 'lane' + randomId(), shape: { type: 'Basic', shape: 'Rectangle' },\n width: isHorizontal ? (swimLaneObj.width - header.width) : swimLaneObj.width,\n height: isHorizontal ? swimLaneObj.height : (swimLaneObj.height - header.height),\n style: laneStyle\n };\n laneObj.offsetX = isHorizontal ? (headerObj.width + (laneObj.width / 2)) : laneObj.width / 2;\n laneObj.offsetY = isHorizontal ? laneObj.height / 2 : (headerObj.height + (laneObj.height / 2));\n this.addPaletteItem(symbolGroup.id, laneObj);\n swimLaneObj.children = [headerObj.id, laneObj.id];\n }\n else if (swimLaneShape.isPhase) {\n laneHeight = swimLaneObj.height ? swimLaneObj.height : this.symbolHeight;\n laneWidth = swimLaneObj.width ? swimLaneObj.width : this.symbolWidth;\n symbol.shape.type = 'Path';\n if (isHorizontal) {\n symbol.shape.data = 'M0,0 L' + laneWidth + ',' + '0';\n }\n else {\n symbol.shape.data = 'M0,0 L0,' + laneWidth;\n }\n }\n }\n //Rendering the UML node as an HTML group node ensures that it is visually represented exactly as intended in the diagram\n if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n var umlObj = symbol;\n var newObj = void 0;\n var getStyle = void 0;\n if (symbol.style.fill === 'white') {\n getStyle = {\n fill: '#26A0DA'\n };\n }\n else {\n getStyle = {\n fill: symbol.style.fill\n };\n }\n if (symbol.shape.classifier === 'Class') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
class
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n else if (symbol.shape.classifier === 'Enumeration') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
Enumeration
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n else if (symbol.shape.classifier === 'Interface') {\n newObj = {\n id: 'node' + randomId(), shape: {\n type: 'HTML', content: '
Interface
'\n },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n style: getStyle,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 : 50\n };\n this.addPaletteItem(symbolGroup.id, newObj);\n }\n var memberObj = {\n id: 'member' + randomId(), shape: { type: 'HTML', content: '
' },\n width: umlObj.width ? umlObj.width : 100,\n height: umlObj.height ? umlObj.height : 100,\n offsetX: umlObj.width ? umlObj.width / 2 : 50,\n offsetY: umlObj.height ? umlObj.height / 2 + (newObj.height / 2) : 50 + (newObj.height / 2)\n };\n this.addPaletteItem(symbolGroup.id, memberObj);\n umlObj.children = [newObj.id, memberObj.id];\n }\n //Set the strokeDashArray for specific connectors to ensure that it is visually represented exactly as intended in the diagram\n if (symbol.shape.type === 'UmlClassifier' && symbol.shape.relationship) {\n if (symbol.shape.relationship === 'Inheritance') {\n symbol.style.strokeDashArray = symbol.style.strokeDashArray ? symbol.style.strokeDashArray : '4 4';\n }\n if (symbol.shape.relationship === 'Dependency') {\n symbol.style.strokeDashArray = symbol.style.strokeDashArray ? symbol.style.strokeDashArray : '4 4';\n }\n }\n if (symbol instanceof Node) {\n var getNodeDefaults = getFunction(this.getNodeDefaults);\n if (getNodeDefaults) {\n getNodeDefaults(symbol, this);\n }\n }\n else if (symbol instanceof Connector) {\n var getConnectorDefaults = getFunction(this.getConnectorDefaults);\n if (getConnectorDefaults) {\n getConnectorDefaults(symbol, this);\n }\n }\n this.symbolTable[symbol.id] = symbol;\n if (symbol instanceof Node && symbol.children) {\n group.push(symbol);\n }\n }\n for (var i = 0; i < group.length; i++) {\n var node = void 0;\n for (var j = 0; j < group[parseInt(i.toString(), 10)].children.length; j++) {\n node = (this.symbolTable[group[parseInt(i.toString(), 10)].children[parseInt(j.toString(), 10)]]);\n if (node) {\n this.childTable[node.id] = node;\n node.parentId = group[parseInt(i.toString(), 10)].id;\n }\n }\n }\n for (var _b = 0, _c = symbolGroup.symbols; _b < _c.length; _b++) {\n var symbol = _c[_b];\n if (!(symbol instanceof Node && symbol.children)) {\n this.prepareSymbol(symbol);\n }\n }\n for (var _d = 0, group_1 = group; _d < group_1.length; _d++) {\n var symbol = group_1[_d];\n this.prepareSymbol(symbol);\n }\n };\n SymbolPalette.prototype.renderPalette = function (symbolGroup) {\n var style = 'display:none;overflow:auto;';\n if (symbolGroup.height) {\n style += 'height:' + symbolGroup.height + 'px';\n }\n var paletteParentDiv = document.getElementById(symbolGroup.id);\n var paletteDiv = createHtmlElement('div', { 'id': symbolGroup.id, style: style, class: 'e-remove-palette' });\n this.element.appendChild(paletteDiv);\n if (!isBlazor()) {\n var item = {\n header: symbolGroup.title, expanded: symbolGroup.expanded,\n content: '#' + symbolGroup.id, iconCss: symbolGroup.iconCss\n };\n this.accordionElement.items.push(item);\n }\n this.renderSymbols(symbolGroup, paletteDiv);\n };\n /**\n * Used to add the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to add the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {NodeModel | ConnectorModel} paletteSymbol - provide the scale value.\n * @param {boolean} isChild - provide the scale value.\n */\n SymbolPalette.prototype.addPaletteItem = function (paletteName, paletteSymbol, isChild) {\n paletteSymbol = cloneObject(paletteSymbol);\n //let refresh: boolean;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n // eslint-disable-next-line\n var param = [undefined, symbolPaletteGroup, 'symbols', {}, true];\n // eslint-disable-next-line\n var obj = new (Function.prototype.bind.apply(getObjectType(paletteSymbol), param));\n for (var i_1 = 0; i_1 < Object.keys(paletteSymbol).length; i_1++) {\n var isEnableServerDatabind_1 = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n obj[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]]\n = paletteSymbol[Object.keys(paletteSymbol)[parseInt(i_1.toString(), 10)]];\n this.allowServerDataBinding = isEnableServerDatabind_1;\n }\n updateDefaultValues(obj, paletteSymbol, obj instanceof Node ? this.nodeDefaults : this.connectorDefaults);\n symbolPaletteGroup.symbols.push(obj);\n var isEnableServerDatabind = this.allowServerDataBinding;\n this.allowServerDataBinding = false;\n this.prepareSymbol(obj);\n this.allowServerDataBinding = isEnableServerDatabind;\n this.symbolTable[obj.id] = obj;\n if (isChild) {\n this.childTable[obj.id] = obj;\n }\n else {\n var paletteDiv = document.getElementById(symbolPaletteGroup.id);\n if (paletteDiv) {\n paletteDiv.appendChild(this.getSymbolContainer(obj, paletteDiv));\n }\n }\n break;\n }\n }\n };\n /**\n * Used to remove the palette item as nodes or connectors in palettes \\\n *\n * @returns {void} Used to remove the palette item as nodes or connectors in palettes .\\\n * @param {string} paletteName - provide the scale value.\n * @param {string} symbolId - provide the scale value.\n */\n SymbolPalette.prototype.removePaletteItem = function (paletteName, symbolId) {\n var refresh;\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n if (symbolPaletteGroup.id.indexOf(paletteName) !== -1) {\n for (var _i = 0, _a = symbolPaletteGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (symbol.id.indexOf(symbolId) !== -1) {\n var index = symbolPaletteGroup.symbols.indexOf(symbol);\n symbolPaletteGroup.symbols.splice(index, 1);\n if (symbol.children) {\n var parentNode = symbol.children;\n for (var i_2 = 0; i_2 < parentNode.length; i_2++) {\n delete this.symbolTable[(parentNode[parseInt(i_2.toString(), 10)])];\n }\n }\n delete this.symbolTable[symbol.id];\n var element = document.getElementById(symbol.id + '_container');\n element.parentNode.removeChild(element);\n refresh = true;\n break;\n }\n }\n }\n if (refresh) {\n break;\n }\n }\n };\n SymbolPalette.prototype.prepareSymbol = function (symbol) {\n var width;\n var sw;\n var height;\n var sh;\n var stackPanel = new StackPanel();\n var obj = symbol;\n var content;\n var symbolContainer = new Canvas();\n var container = (symbol instanceof Node) ? symbol.initContainer() : null;\n if (container && !container.children) {\n container.children = [];\n }\n //preparing objects\n var getSymbolTemplate = getFunction(this.getSymbolTemplate);\n if (getSymbolTemplate) {\n content = getSymbolTemplate(symbol);\n }\n if (!content) {\n if (obj.children) {\n content = this.getContainer(obj, container);\n }\n else {\n if (symbol instanceof Connector && symbol.shape.type === 'UmlClassifier' && symbol.shape.relationship) {\n content = symbol.init(this);\n for (var i = content.children.length - 1; i >= 0; i--) {\n if (content.children[parseInt(i.toString(), 10)] instanceof TextElement) {\n content.children.splice(i, 1);\n }\n }\n }\n else {\n content = symbol.init(this);\n }\n if (symbol instanceof Node && symbol.parentId) {\n container.children.push(content);\n }\n }\n }\n if (!symbol.parentId) {\n var symbolInfo = { width: this.symbolWidth, height: this.symbolHeight };\n var getSymbolInfo = getFunction(this.getSymbolInfo);\n if (getSymbolInfo) {\n symbolInfo = getSymbolInfo(symbol);\n }\n symbolInfo = symbolInfo || this.symbolInfo || {};\n if (symbol.shape && symbol.shape.isPhase) {\n symbolInfo.width = symbolInfo.width || this.symbolWidth;\n symbolInfo.height = symbolInfo.height || this.symbolHeight;\n }\n //defining custom templates\n content.relativeMode = 'Object';\n content.horizontalAlignment = content.verticalAlignment = 'Center';\n symbolContainer.style.strokeColor = symbolContainer.style.fill = 'none';\n symbolContainer.children = [content];\n content.measure(new Size());\n content.arrange(content.desiredSize);\n width = symbolInfo.width = symbolInfo.width ||\n (obj.width !== undefined ? content.actualSize.width : undefined) || this.symbolWidth;\n height = symbolInfo.height = symbolInfo.height ||\n (obj.height !== undefined ? content.actualSize.height : undefined) || this.symbolHeight;\n if (width !== undefined && height !== undefined) {\n var actualWidth = width;\n var actualHeight = height;\n //let isLane: boolean = (symbol.shape as SwimLane).isLane ? true : false;\n var isPhase = symbol.shape.isPhase ? true : false;\n if (this.symbolWidth !== undefined) {\n actualWidth = this.symbolWidth - this.symbolMargin.left - this.symbolMargin.right;\n }\n else {\n width += obj.style.strokeWidth;\n }\n if (this.symbolHeight !== undefined) {\n actualHeight = this.symbolHeight - this.symbolMargin.top - this.symbolMargin.bottom;\n }\n else {\n height += obj.style.strokeWidth;\n }\n //Bug 873843: Issue with node height and width in the symbol palette. Checked !== Bpmn to avoid the actual height decrement for bpmn nodes\n if (symbol.shape && symbol.shape.type !== 'Bpmn' && symbolInfo.description && symbolInfo.description.text !== '') {\n actualHeight -= 20; // default height of the text have been reduced from the container.\n }\n sw = actualWidth / ((!isPhase && content.width) || width);\n sh = actualHeight / ((!isPhase && content.height) || height);\n if (symbolInfo.fit) {\n sw = actualWidth / symbolInfo.width;\n sh = actualHeight / symbolInfo.height;\n }\n width = actualWidth;\n height = actualHeight;\n sw = sh = Math.min(sw, sh);\n symbolContainer.width = width;\n symbolContainer.height = height;\n content.width = symbolInfo.width;\n content.height = symbolInfo.height;\n this.scaleSymbol(symbol, symbolContainer, sw, sh, width, height);\n }\n else {\n var outerBounds = void 0;\n if (symbol instanceof Connector) {\n outerBounds = getOuterBounds(symbol);\n }\n content.width = symbol.width || (outerBounds) ? outerBounds.width : content.actualSize.width;\n content.height = symbol.height || (outerBounds) ? outerBounds.height : content.actualSize.height;\n }\n symbol.wrapper = stackPanel;\n stackPanel.children = [symbolContainer];\n content.pivot = stackPanel.pivot = { x: 0, y: 0 };\n stackPanel.id = content.id + '_symbol';\n stackPanel.style.fill = stackPanel.style.strokeColor = 'transparent';\n if (symbol instanceof Node) {\n stackPanel.offsetX = symbol.style.strokeWidth / 2;\n stackPanel.offsetY = symbol.style.strokeWidth / 2;\n }\n else {\n stackPanel.offsetX = 0.5;\n stackPanel.offsetY = 0.5;\n }\n //symbol description-textElement\n this.getSymbolDescription(symbolInfo, width, stackPanel, symbol);\n //EJ2-867827 - In diagram palette symbols, part of the symbol is not visible in left and top side\n stackPanel.padding = { left: 1, right: 1, bottom: 1, top: 1 };\n stackPanel.measure(new Size());\n stackPanel.arrange(stackPanel.desiredSize);\n symbolInfo.width = symbolInfo.width || content.actualSize.width;\n symbolInfo.height = symbolInfo.height || content.actualSize.height;\n symbol[this.info] = symbolInfo;\n }\n if (symbol.parentId) {\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n }\n };\n // private getBlazorSymbolInfo(symbol: NodeModel | ConnectorModel, symbolInfo: SymbolInfo): SymbolInfo {\n // const node: NodeModel | ConnectorModel = symbol as NodeModel | ConnectorModel;\n // const shapeSymbolInfo: SymbolPaletteInfoModel = node.symbolInfo;\n // if (shapeSymbolInfo) {\n // symbolInfo.description = shapeSymbolInfo.description || this.symbolInfo.description;\n // symbolInfo.fit = shapeSymbolInfo.fit || this.symbolInfo.fit;\n // symbolInfo.height = shapeSymbolInfo.height || this.symbolInfo.height;\n // symbolInfo.width = shapeSymbolInfo.width || this.symbolInfo.width;\n // symbolInfo.tooltip = shapeSymbolInfo.tooltip || this.symbolInfo.tooltip;\n // symbolInfo.template = shapeSymbolInfo.template || this.symbolInfo.template;\n // }\n // return symbolInfo;\n // }\n SymbolPalette.prototype.getContainer = function (obj, container) {\n container.measureChildren = false;\n var bounds;\n var child = obj.children;\n container.children = [];\n for (var i = 0; i < child.length; i++) {\n if (this.symbolTable[child[parseInt(i.toString(), 10)]]) {\n container.children.push(this.symbolTable[child[parseInt(i.toString(), 10)]].wrapper);\n }\n }\n container.measure(new Size(obj.width, obj.height));\n container.arrange(container.desiredSize);\n if (container.bounds.x !== 0 || container.bounds.y !== 0) {\n bounds = container.bounds;\n arrangeChild(obj, bounds.x, bounds.y, this.symbolTable, false, this);\n container = this.getContainer(obj, container);\n }\n return container;\n };\n /**\n * Feature [EJ2- 47318] - Support for the change of the symbol description\n * Feature [EJ2- 50705] - Support to add margin between the text and symbols\n */\n SymbolPalette.prototype.getSymbolDescription = function (symbolInfo, width, parent, symbol) {\n if (symbolInfo && symbolInfo.description && symbolInfo.description.text) {\n var textElement = new TextElement();\n //symbol description-textElement\n symbolInfo.description.overflow = symbolInfo.description.overflow || 'Ellipsis';\n symbolInfo.description.wrap = symbolInfo.description.wrap || 'WrapWithOverflow';\n textElement.id = parent.id + '_text';\n textElement.content = symbolInfo.description.text;\n textElement.width = width;\n textElement.height = 20;\n textElement.style.strokeColor = 'transparent';\n textElement.style.color = symbolInfo.description.color || 'black';\n textElement.style.fill = symbolInfo.description.fill || 'transparent';\n textElement.style.fontFamily = symbolInfo.description.fontFamily || 'Arial';\n textElement.style.fontSize = symbolInfo.description.fontSize || 12;\n textElement.style.bold = symbolInfo.description.bold || false;\n textElement.style.italic = symbolInfo.description.italic || false;\n textElement.style.textDecoration = symbolInfo.description.textDecoration || 'None';\n textElement.style.strokeWidth = 0;\n textElement.style.textWrapping = symbolInfo.description.wrap;\n textElement.style.textOverflow = symbolInfo.description.overflow;\n //Bug 873843: Issue with node height and width in the symbol palette. Added below to set margin bottom value for bpmn symbol with description.\n if (symbol.shape && symbol.shape.type === 'Bpmn') {\n textElement.margin = {\n left: 0, right: 0,\n top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0,\n bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : this.symbolMargin.bottom\n };\n }\n else {\n textElement.margin = {\n left: 0, right: 0,\n top: symbolInfo.description.margin ? symbolInfo.description.margin.top : 0,\n bottom: symbolInfo.description.margin ? symbolInfo.description.margin.bottom : 5\n };\n }\n parent.children.push(textElement);\n }\n };\n SymbolPalette.prototype.renderSymbols = function (symbolGroup, parentDiv) {\n for (var _i = 0, _a = symbolGroup.symbols; _i < _a.length; _i++) {\n var symbol = _a[_i];\n if (!symbol.parentId) {\n this.getSymbolContainer(symbol, parentDiv);\n }\n }\n };\n SymbolPalette.prototype.getSymbolPreview = function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n symbol, evt, parentDiv) {\n this.allowServerDataBinding = false;\n var canvas;\n var sw;\n var sh;\n var symbolPreviewWidth = symbol.wrapper.children[0].desiredSize.width + symbol.style.strokeWidth;\n var symbolPreviewHeight = symbol.wrapper.children[0].desiredSize.height + symbol.style.strokeWidth;\n var content = symbol.wrapper.children[0].children[0];\n var symbolPreview = symbol.previewSize;\n if ((symbol && (symbolPreview.width || symbolPreview.height)) ||\n this.symbolPreview.width !== undefined || this.symbolPreview.height !== undefined) {\n symbolPreviewWidth = (symbolPreview.width || this.symbolPreview.width || symbolPreviewWidth) - symbol.style.strokeWidth;\n symbolPreviewHeight = (symbolPreview.height || this.symbolPreview.height || symbolPreviewHeight) - symbol.style.strokeWidth;\n // EJ2-56887 - Connector do not get rendered properly in symbol palette.\n // Added below code to check if connector width is less than strokewidth means then set symbol width for connector.\n if (symbol instanceof Connector) {\n if (content.actualSize.width <= symbol.style.strokeWidth) {\n content.actualSize.width = this.symbolWidth;\n }\n if (content.actualSize.height <= symbol.style.strokeWidth) {\n content.actualSize.height = this.symbolHeight;\n }\n }\n sw = symbolPreviewWidth / content.actualSize.width;\n sh = symbolPreviewHeight / content.actualSize.height;\n sw = sh = Math.min(sw, sh);\n var symbolWidth = content.actualSize.width * sw;\n var symbolHeight = content.actualSize.height * sh;\n symbol.wrapper.children[0].width = symbolPreviewWidth;\n symbol.wrapper.children[0].height = symbolPreviewHeight;\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n this.scaleSymbol(symbol, symbol.wrapper.children[0], sw, sh, symbolWidth, symbolHeight, true);\n symbolPreviewWidth = symbolWidth;\n symbolPreviewHeight = symbolHeight;\n }\n var prevPosition = { x: content.offsetX, y: content.offsetY };\n content.offsetX = content.offsetY = symbol.style.strokeWidth / 2;\n content.pivot = { x: 0, y: 0 };\n this.measureAndArrangeSymbol(content, symbol instanceof Node);\n var previewContainer = createHtmlElement('div', { 'draggable': 'true', 'class': 'e-dragclone', 'style': 'pointer-events:none' });\n var div;\n document.body.appendChild(previewContainer);\n var style = 'margin:5px;';\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbol.id + '_preview',\n width: Math.ceil(symbolPreviewWidth) + 1,\n height: Math.ceil(symbolPreviewHeight) + 1\n });\n var gElement = createSvgElement('g', { id: symbol.id + '_g' });\n canvas.appendChild(gElement);\n previewContainer.appendChild(canvas);\n this.svgRenderer.renderElement(content, gElement, undefined, undefined, canvas);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbolPreviewHeight, symbolPreviewWidth, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getHtmlSymbol(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true);\n this.prepareSymbol(symbol);\n }\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, previewContainer, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, true);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbol.id + '_preview', (Math.ceil(symbolPreviewWidth) + symbol.style.strokeWidth + 1) * 2, (Math.ceil(symbolPreviewHeight) + symbol.style.strokeWidth + 1) * 2);\n previewContainer.appendChild(canvas);\n // BLAZ-3223: translate applied only for Basic and Flow now and need to add for remaining shapes in future\n if (symbol.shape.type === 'Basic' || symbol.shape.type === 'Flow') {\n style += 'transform: scale(0.5) translate(-' + canvas.width / 2 + 'px, -' + canvas.height / 2 + 'px);';\n }\n else {\n style += 'transform:scale(0.5);';\n }\n canvas.setAttribute('transform-origin', '0 0');\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(content, canvas, undefined);\n //EJ2-838575 - for refreshing the symbols after dragged\n this.prepareSymbol(symbol);\n }\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children\n && symbol.children.length > 0)) ? div : canvas), style);\n content.offsetX = prevPosition.x;\n content.offsetY = prevPosition.y;\n this.allowServerDataBinding = true;\n return previewContainer;\n };\n SymbolPalette.prototype.measureAndArrangeSymbol = function (content, isNode) {\n if (content.children && !isNode) {\n content.children[0].transform = Transform.Self;\n }\n content.measure(new Size());\n content.arrange(content.desiredSize);\n if (content.children && content.children.length > 0) {\n content.children[0].transform = Transform.Parent;\n }\n };\n SymbolPalette.prototype.updateSymbolSize = function (symbol, width, height) {\n var element = symbol.wrapper.children[0].children[0];\n var strokeWidth = symbol.style.strokeWidth;\n element.width = (width || element.width) - (strokeWidth + 1);\n element.height = (height || element.height) - (strokeWidth + 1);\n symbol.wrapper.measure(new Size());\n symbol.wrapper.arrange(symbol.wrapper.desiredSize);\n };\n SymbolPalette.prototype.getSymbolContainer = function (symbol, parentDiv, preview) {\n var symbolInfo = this.symbolTable[symbol.id][this.info];\n var size = this.getSymbolSize(symbol, symbolInfo);\n var width = size.width + 1;\n var height = size.height + 1;\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // If the shape is to be rendered in search palette, then the id of the shape is appended with 'SearchSymbol'\n // To create a unique id for the shape in search palette to avoid tooltip issue.\n var symbolId = parentDiv.id === 'SearchPalette' ? symbol.id + 'SearchSymbol' : symbol.id;\n var container = createHtmlElement('div', {\n id: symbolId + '_container',\n style: 'width:' + width + 'px;height:' + height + 'px;float:left;overflow:hidden'\n // title: symbolInfo.tooltip ? symbolInfo.tooltip : symbol.id\n });\n parentDiv.appendChild(container);\n var canvas;\n var gElement;\n var div;\n if (symbol.shape.type === 'Native') {\n canvas = createSvgElement('svg', {\n id: symbolId,\n width: Math.ceil(symbol.wrapper.actualSize.width) + 1,\n height: Math.ceil(symbol.wrapper.actualSize.height) + 1\n });\n gElement = createSvgElement('g', { id: symbolId + '_g' });\n canvas.appendChild(gElement);\n container.appendChild(canvas);\n this.updateSymbolSize(symbol);\n this.svgRenderer.renderElement(symbol.wrapper, gElement, undefined, undefined, canvas);\n }\n else if (symbol.shape.type === 'HTML') {\n div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false, parentDiv.id === 'SearchPalette');\n }\n //This method is responsible for rendering the UML node, as the UML node is displayed as an HTML group node.\n else if (symbol.shape.type === 'UmlClassifier' && !symbol.shape.relationship) {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getHtmlSymbol(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n }\n else {\n if (symbol.children &&\n symbol.children.length > 0 && groupHasType(symbol, 'HTML', this.childTable)) {\n div = this.getGroupParent(symbol, canvas, container, symbol.wrapper.actualSize.height, symbol.wrapper.actualSize.width, false);\n }\n else {\n canvas = CanvasRenderer.createCanvas(symbolId, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n var index = 2;\n if (symbol instanceof Connector) {\n index = 1.9;\n }\n canvas.getContext('2d').setTransform(index, 0, 0, index, 0, 0);\n this.diagramRenderer.renderElement(symbol.wrapper, gElement || canvas, undefined, undefined, undefined, undefined, true, undefined, true);\n }\n }\n if (!preview) {\n var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth;\n var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth;\n var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;';\n if (symbol.shape.isPhase) {\n if (symbol.shape.orientation === 'Horizontal') {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + size.height / 2\n + 'px;';\n }\n else {\n style += 'margin-left:' +\n size.width / 2\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n }\n else {\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n }\n if (canvas instanceof HTMLCanvasElement) {\n style += 'transform:scale(.5,.5);';\n }\n applyStyleAgainstCsp(((div && (symbol.shape.type === 'HTML' || symbol.children &&\n symbol.children.length > 0)) ? div : canvas), style);\n container.classList.add('e-symbol-draggable');\n return container;\n }\n return canvas;\n };\n SymbolPalette.prototype.getGroupParent = function (item, canvas, container, height, width, isPreview) {\n var div = createHtmlElement('div', { 'id': item.id + (isPreview ? '_html_div_preview' : '_html_div') });\n var htmlLayer = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': item.id + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n canvas = CanvasRenderer.createCanvas((isPreview ? (item.id + '_preview') : item.id), Math.ceil(width) + 1, Math.ceil(height) + 1);\n div.appendChild(canvas);\n container.appendChild(div);\n this.diagramRenderer.renderElement(item.wrapper.children[0].children[0], canvas, htmlLayer);\n return div;\n };\n SymbolPalette.prototype.getHtmlSymbol = function (symbol, canvas, container, height, width, isPreview, isSearchSymbol) {\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // If the shape is to be rendered in search palette, then the id of the shape is appended with 'SearchSymbol'\n // To create a unique id for the shape in search palette to avoid tooltip issue.\n var symbolId = isSearchSymbol ? symbol.id + 'SearchSymbol' : symbol.id;\n var div = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_html_div_preview' : '_html_div')\n });\n var htmlLayer = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_htmlLayer_preview' : '_htmlLayer'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute',\n 'class': 'e-html-layer'\n });\n var htmlLayerDiv = createHtmlElement('div', {\n 'id': symbolId + (isPreview ? '_htmlLayer_div_preview' : '_htmlLayer_div'),\n 'style': 'width:' + Math.ceil(width + 1) + 'px;' +\n 'height:' + Math.ceil(height + 1) + 'px;position:absolute'\n });\n htmlLayer.appendChild(htmlLayerDiv);\n div.appendChild(htmlLayer);\n //EJ2-841339 - Html shapes in palette are not rendered properly\n var actualWidth = symbol.wrapper.actualSize.width + symbol.style.strokeWidth;\n var actualHeight = symbol.wrapper.actualSize.height + symbol.style.strokeWidth;\n var style = 'pointer-events:none;transform-origin:0 0;overflow:hidden;';\n style += 'margin-left:' +\n Math.max(this.symbolMargin.left, ((width - actualWidth) / 2))\n + 'px;margin-top:' + Math.max(this.symbolMargin.top, ((height - actualHeight) / 2))\n + 'px;';\n style += 'transform:scale(.5,.5);position:absolute';\n canvas = CanvasRenderer.createCanvas(symbolId, Math.ceil((symbol.wrapper.actualSize.width + symbol.style.strokeWidth) * 2) + 1, Math.ceil((symbol.wrapper.actualSize.height + symbol.style.strokeWidth) * 2) + 1);\n container.appendChild(canvas);\n canvas.getContext('2d').setTransform(2, 0, 0, 2, 0, 0);\n applyStyleAgainstCsp(canvas, style);\n container.appendChild(div);\n //EJ2-70280 - Text description in symbol palette for HTML nodes is not visible.\n if (isPreview) {\n //When dragging the UML node from the palette, set the preview specifically for that UML node\n if (symbol.shape.type === 'UmlClassifier') {\n if (symbol.shape.classifier === 'Class') {\n symbol.wrapper.children[0].children[0].children[0].content = '
class
';\n }\n else if (symbol.shape.classifier === 'Enumeration') {\n symbol.wrapper.children[0].children[0].children[0].content = '
Enumeration
';\n }\n else if (symbol.shape.classifier === 'Interface') {\n symbol.wrapper.children[0].children[0].children[0].content = '
Interface
';\n }\n }\n this.diagramRenderer.renderElement(symbol.wrapper.children[0].children[0], canvas, htmlLayer);\n }\n else {\n this.diagramRenderer.renderElement(symbol.wrapper, canvas, htmlLayer);\n }\n return div;\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.getSymbolSize = function (symbol, symbolInfo) {\n var width = symbol.wrapper.actualSize.width;\n var height = symbol.wrapper.actualSize.height;\n if (!this.symbolWidth && !this.symbolHeight) {\n width += this.symbolMargin.left + this.symbolMargin.right + symbol.style.strokeWidth;\n height += this.symbolMargin.top + this.symbolMargin.bottom + symbol.style.strokeWidth;\n }\n else {\n width = this.symbolWidth;\n height = Math.max(this.symbolHeight, height);\n }\n return new Size(width, height);\n };\n //end region - rendering symbols\n //region event handlers\n SymbolPalette.prototype.getMousePosition = function (e) {\n var offsetY;\n var offsetX;\n var touchArg;\n if (e.type.indexOf('touch') !== -1) {\n touchArg = e;\n var pageY = touchArg.changedTouches[0].clientY;\n var pageX = touchArg.changedTouches[0].clientX;\n offsetY = pageY - this.element.offsetTop;\n offsetX = pageX - this.element.offsetLeft;\n }\n else {\n offsetY = e.clientY - this.element.offsetTop;\n offsetX = e.clientX - this.element.offsetLeft;\n }\n return { x: offsetX, y: offsetY };\n };\n /** Gets the default content of the Tooltip\n *\n * @returns {string | HTMLElement} Returns the default content of the Tooltip.\\\n * @param {object} obj - provide the Symbol object.\n */\n SymbolPalette.prototype.getContent = function (obj) {\n var isPrivateTooltip = ((this.hoverElement instanceof Node) &&\n this.hoverElement.constraints & NodeConstraints.Tooltip) ||\n ((this.hoverElement instanceof Connector) &&\n this.hoverElement.constraints & ConnectorConstraints.Tooltip);\n var content = isPrivateTooltip ? this.hoverElement.tooltip.content :\n obj.id;\n return content;\n };\n /**\n * Initialize the basic properties of Toolip object\n *\n * @returns {Tooltip} Returns the basic properties of Toolip object.\\\n * @param {NodeModel | ConnectorModel} element - provide the Symbol object.\n */\n SymbolPalette.prototype.initTooltip = function (element) {\n var tooltip;\n if (!isBlazor()) {\n var tooltipOption = new Tooltip;\n tooltipOption = this.updateTooltipContent(this.hoverElement.tooltip, tooltipOption);\n tooltip = new Tooltip(tooltipOption);\n tooltip.cssClass = 'e-symbolPalette-tooltip';\n tooltip.opensOn = 'custom';\n tooltip.appendTo('#' + element.id);\n tooltip.close();\n }\n return tooltip;\n };\n /**Method to update Tooltip Content\n *\n * @returns { Tooltip } Returns the basic properties of Toolip object.\\\n *\n * @param {TooltipModel} tooltip - provide the Symbol object.\n * @param {Tooltip} tooltipObject - provide the Symbol object.\n */\n SymbolPalette.prototype.updateTooltipContent = function (tooltip, tooltipObject) {\n tooltipObject.content = tooltip.content;\n tooltipObject.position = 'BottomRight';\n tooltipObject.showTipPointer = tooltip.showTipPointer;\n tooltipObject.width = tooltip.width;\n tooltipObject.height = tooltip.height;\n if (!tooltip.animation) {\n tooltipObject.animation = { close: { effect: 'None' } };\n }\n else {\n tooltipObject.animation = tooltip.animation;\n }\n return tooltipObject;\n };\n /**\n * To open the Tooltip element relevant to the target and relative mode\n *\n * @returns { void} opens the Tooltip element relevant to the target and relative mode.\\\n *\n * @param {PointModel} mousePosition - provide the mousePosition value.\n * @param {boolean} elementOver - provide the elementOver value.\n * @param {boolean} isSearchSymbol - provide the isSearchSymbol value.\n */\n SymbolPalette.prototype.elementEnter = function (mousePosition, elementOver, isSearchSymbol) {\n if (!elementOver) {\n //set the collision target element to given position if enabled\n this.symbolTooltipObject.windowCollision = true;\n //840454 - support to provide isSticky property for tooltip in diagram control\n if (this.hoverElement.tooltip.isSticky) {\n this.symbolTooltipObject.isSticky = true;\n }\n if (this.hoverElement instanceof Node) {\n if (!(this.hoverElement.constraints & (NodeConstraints.Default && NodeConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n //Task 834121: Content-Security-Policy support for diagram\n this.symbolTooltipObject.content = initializeCSPTemplate(function () {\n return this.hoverElement.id;\n }, this);\n }\n }\n else if (this.hoverElement instanceof Connector) {\n if (!(this.hoverElement.constraints & (ConnectorConstraints.Default && ConnectorConstraints.Tooltip))) {\n this.hoverElement.tooltip.content = this.hoverElement.id;\n this.symbolTooltipObject.content = initializeCSPTemplate(function () {\n return this.hoverElement.id;\n }, this);\n }\n }\n if (this.hoverElement.tooltip.content) {\n if (this.hoverElement.tooltip.relativeMode === 'Mouse') {\n //To set relative mode only to object for Symbol Palatte\n this.hoverElement.tooltip.relativeMode = 'Object';\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n else {\n this.symbolTooltipObject.offsetX = 0;\n this.symbolTooltipObject.offsetY = 0;\n }\n }\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To render tooltip for the symbol in search palette, the id of the shape is appended with 'SearchSymbol'.\n var targetId = isSearchSymbol ? this.hoverElement.id + 'SearchSymbol' : this.hoverElement.id;\n var targetEle = document.getElementById(targetId);\n if (this.hoverElement.tooltip.openOn === 'Auto' && this.hoverElement.tooltip.content !== '') {\n this.symbolTooltipObject.close();\n this.symbolTooltipObject.opensOn = this.hoverElement.tooltip.openOn;\n this.symbolTooltipObject.dataBind();\n }\n if (this.hoverElement.tooltip.openOn === 'Auto') {\n this.symbolTooltipObject.target = this.hoverElement.id;\n this.symbolTooltipObject.open(targetEle);\n }\n }\n };\n // eslint-disable-next-line\n SymbolPalette.prototype.mouseMove = function (e, touches) {\n if (this.highlightedSymbol && (!this.selectedSymbol\n || this.selectedSymbol.id + '_container' !== this.highlightedSymbol.id)) {\n this.highlightedSymbol.classList.remove('e-symbol-hover');\n this.highlightedSymbol.style.backgroundColor = '';\n this.highlightedSymbol = null;\n }\n var id = e.target.id.split('_container')[0];\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To render highlighter for the search symbols while hovering over the symbol in search palette.\n if (this.symbolTable[\"\" + id] || (id !== 'SearchPalette' && e.target && e.target.id.includes('SearchSymbol'))) {\n var container = document.getElementById(id + '_container');\n container.classList.add('e-symbol-hover');\n this.highlightedSymbol = container;\n }\n e.preventDefault();\n var isSearchSymbol = false;\n if (e.target && e.target.id.includes('SearchSymbol')) {\n isSearchSymbol = true;\n id = id.split('SearchSymbol')[0];\n }\n //EJ2-66311-tooltip support for Symbolpalette\n var obj = this.symbolTable[\"\" + id];\n if (this.symbolTable[\"\" + id] && obj !== this.hoverElement) {\n this.currentPosition = this.getMousePosition(e);\n var content = this.getContent(obj);\n if (this.hoverElement && this.hoverElement.tooltip.openOn === 'Auto' && content !== '') {\n this.elementLeave();\n }\n this.hoverElement = obj;\n this.symbolTooltipObject = this.initTooltip(this.hoverElement);\n if (content === '') {\n content = this.hoverElement.id;\n }\n if (this.hoverElement.tooltip && content !== '') {\n this.elementEnter(this.currentPosition, false, isSearchSymbol);\n }\n }\n if (obj === undefined && this.hoverElement && !this.hoverElement.tooltip.isSticky && this.hoverElement.tooltip.openOn === 'Auto') {\n this.hoverElement = null;\n this.elementLeave();\n }\n };\n /**\n * When Mouse pointer leaves the symbol palette object Mouse leave event is called and closes Tooltip\n * @returns {void} Function to close symbol tooltip on mouse leave.\n */\n SymbolPalette.prototype.elementLeave = function () {\n if (this.symbolTooltipObject && this.symbolTooltipObject.opensOn !== 'Custom') {\n this.symbolTooltipObject.close();\n }\n };\n /** @private\n * @returns {void} Handles mouse leave events\n * @param {PointerEvent} evt - provide event name\n */\n SymbolPalette.prototype.mouseLeave = function (evt) {\n this.elementLeave();\n evt.preventDefault();\n };\n // eslint-enable\n SymbolPalette.prototype.mouseUp = function (evt) {\n this.isMethod = true;\n if (evt && evt.target) {\n if (evt.srcElement.id === 'iconSearch') {\n var element = document.getElementById('iconSearch');\n if (element.classList.contains('e-clear-searchtext')) {\n element.className = 'e-input-group-icon e-search e-icons';\n document.getElementById('textEnter').value = '';\n this.searchPalette('');\n }\n }\n else {\n var id = evt.target.id.split('_container')[0];\n if (id && this.selectedSymbol) {\n var args = { oldValue: this.oldObject, newValue: id };\n var event_2 = 'paletteSelectionChange';\n this.trigger(event_2, args);\n this.oldObject = id;\n evt.preventDefault();\n }\n else if (this.oldObject !== '') {\n this.oldObject = '';\n }\n }\n }\n };\n SymbolPalette.prototype.keyUp = function (evt) {\n var _this = this;\n if (this.enableSearch) {\n // eslint-disable-next-line\n var palette_1 = this;\n var element = document.getElementById('iconSearch');\n element.className = 'e-input-group-icon e-clear-searchtext e-icons';\n if (evt && (evt.key === 'Enter' || evt.keyCode === 13)) {\n if (evt.target instanceof HTMLInputElement) {\n this.searchPalette(evt.target.value);\n }\n }\n else {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(function () {\n if (evt.target instanceof HTMLInputElement) {\n palette_1.searchPalette(evt.target.value);\n _this.timer = null;\n }\n }, 500);\n }\n }\n };\n SymbolPalette.prototype.mouseDown = function (evt) {\n var id = evt.target.id.split('_container')[0];\n var isSearchSymbol = false;\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To split the original id of shape to find it in symbol table.\n if (id.includes('SearchSymbol')) {\n id = id.split('SearchSymbol')[0];\n isSearchSymbol = true;\n }\n if (this.selectedSymbol) {\n var oldSymbol = document.getElementById(this.selectedSymbol.id + '_container');\n //Bug 857673: Symbol palette tooltip is not rendered properly after search symbols and hover over palette shapes\n // To highlight and remove highlight of the selected symbol in search palette on mouse down.\n var oldSearchSymbol = document.getElementById(this.selectedSymbol.id + 'SearchSymbol' + '_container');\n if ((oldSymbol || oldSearchSymbol)) {\n oldSymbol.classList.remove('e-symbol-selected');\n if (oldSearchSymbol) {\n oldSearchSymbol.classList.remove('e-symbol-selected');\n }\n }\n var container = document.getElementById(this.selectedSymbol.id + '_container');\n if (container) {\n container.style.backgroundColor = '';\n }\n this.selectedSymbol = null;\n }\n if (this.symbolTable[\"\" + id]) {\n var containerId = id;\n if (isSearchSymbol) {\n containerId = id + 'SearchSymbol';\n }\n var container = document.getElementById(containerId + '_container');\n container.classList.add('e-symbol-selected');\n this.selectedSymbol = this.symbolTable[\"\" + id];\n evt.preventDefault();\n }\n };\n SymbolPalette.prototype.keyDown = function (evt) {\n // eslint-disable-next-line\n var palette = this;\n var helperElement = 'helperElement';\n var intDestroy = 'intDestroy';\n if (evt && (evt.key === 'Escape')) {\n var element = palette.draggable[\"\" + helperElement];\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n palette.draggable[\"\" + intDestroy]();\n }\n }\n };\n //end region - event handlers\n // region - draggable\n SymbolPalette.prototype.initDraggable = function () {\n if (this.allowDrag) {\n //let drag: Draggable;\n this.draggable = new Draggable(this.element, {\n dragTarget: '.e-symbol-draggable',\n helper: this.helper,\n dragStart: this.dragStart,\n preventDefault: false,\n dragStop: this.dragStop,\n drag: function (args) {\n var target = 'target';\n var parent = parentsUntil(args[\"\" + target], 'e-droppable');\n if (parent && parent.classList.contains('e-diagram')) {\n var e2eInstance = 'ej2_instances';\n parent[\"\" + e2eInstance][0].droppable.over(args);\n }\n },\n cursorAt: { left: this.symbolPreview.offset.x, top: this.symbolPreview.offset.y }\n });\n }\n };\n // eslint-enable\n SymbolPalette.prototype.dragStart = function (e) {\n var element = this.helper[0];\n if (element) {\n element.setAttribute('paletteId', this.element.id);\n }\n };\n SymbolPalette.prototype.dragStop = function (e) {\n if (!parentsUntil(e.target, 'e-diagram')) {\n remove(e.helper);\n }\n };\n //end region - draggable\n //region - helper methods\n SymbolPalette.prototype.scaleSymbol = function (symbol, symbolContainer, sw, sh, width, height, preview) {\n if (symbol instanceof Connector) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer.children[0];\n var point = symbol.scale(sw, sh, width, height, symbolContainer.children[0]);\n var difX = width / 2 - symbolContainer.children[0].children[0].offsetX + point.x / 2;\n var difY = height / 2 - symbolContainer.children[0].children[0].offsetY + point.y / 2;\n for (var _i = 0, _a = symbolContainer.children[0].children; _i < _a.length; _i++) {\n var child = _a[_i];\n child.offsetX += difX;\n child.offsetY += difY;\n child.staticSize = false;\n }\n symbol.wrapper = wrapper;\n }\n else if (symbol.shape.type === 'Bpmn' && this.bpmnModule) {\n var wrapper = symbol.wrapper;\n symbol.wrapper = symbolContainer;\n symbolContainer.children[0].width = width;\n symbolContainer.children[0].height = height;\n this.bpmnModule.updateBPMN({ width: width, height: height }, symbol, symbol, null);\n symbol.wrapper = wrapper;\n }\n else {\n if (symbol.children) {\n var parentNode = symbol.children;\n var w = 0;\n var h = 0;\n if (!preview) {\n var node = void 0;\n var container = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n container = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (container) {\n if (container.children[0].children) {\n this.measureChild(container);\n }\n node = this.symbolTable[container.id];\n container.width = node.width;\n container.height = node.height;\n container.measure(new Size());\n container.arrange(container.children[0].desiredSize);\n }\n }\n }\n w = width / symbolContainer.children[0].desiredSize.width;\n h = height / symbolContainer.children[0].desiredSize.height;\n symbolContainer.children[0].measure(new Size());\n symbolContainer.children[0].arrange(symbolContainer.children[0].desiredSize);\n if (!preview) {\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, w, h, symbol);\n }\n this.scaleGroup(children, w, h, symbol);\n }\n }\n }\n if (preview) {\n ///let node: Node;\n var scaleWidth = void 0;\n var scaleHeight = void 0;\n var children = void 0;\n for (var i = 0; i < parentNode.length; i++) {\n //const node: Node = this.symbolTable[parentNode[i]];\n scaleWidth = width / symbol.wrapper.children[0].desiredSize.width;\n scaleHeight = height / symbol.wrapper.children[0].desiredSize.height;\n children = symbolContainer.children[0].children[parseInt(i.toString(), 10)];\n if (children) {\n if (children.children[0].children) {\n this.scaleChildren(children, scaleWidth, scaleHeight, symbol, true);\n }\n this.scaleGroup(children, scaleWidth, scaleHeight, symbol, true);\n }\n }\n symbol.wrapper.children[0].measure(new Size());\n symbol.wrapper.children[0].arrange(symbol.wrapper.children[0].desiredSize);\n }\n }\n else {\n scaleElement(symbolContainer.children[0], sw, sh, symbolContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleChildren = function (container, w, h, symbol, preview) {\n var child;\n for (var i = 0; i < container.children.length; i++) {\n child = container.children[parseInt(i.toString(), 10)];\n if (!child.children[0].children) {\n this.scaleGroup(child, w, h, symbol, preview);\n }\n else {\n this.scaleChildren(child, w, h, symbol, preview);\n }\n }\n };\n SymbolPalette.prototype.measureChild = function (container) {\n var childContainer;\n var node;\n for (var i = 0; i < container.children.length; i++) {\n childContainer = container.children[parseInt(i.toString(), 10)];\n if (!childContainer.children[0].children) {\n node = this.symbolTable[childContainer.id];\n childContainer.width = node.width;\n childContainer.height = node.height;\n childContainer.measure(new Size());\n childContainer.arrange(childContainer.children[0].desiredSize);\n }\n else {\n this.measureChild(childContainer);\n }\n }\n };\n SymbolPalette.prototype.scaleGroup = function (child, w, h, symbol, preview) {\n child.width = child.width * w;\n child.height = (child.height * h);\n child.offsetX = preview ? (child.offsetX * w) - symbol.style.strokeWidth : (child.offsetX * w) + symbol.style.strokeWidth / 2;\n child.offsetY = preview ? (child.offsetY * h) - symbol.style.strokeWidth : (child.offsetY * h) + symbol.style.strokeWidth / 2;\n child.measure(new Size());\n child.arrange(child.children[0].desiredSize);\n };\n SymbolPalette.prototype.refreshPalettes = function () {\n if (!isBlazor()) {\n this.accordionElement.items = [];\n }\n removeElementsByClass('e-remove-palette', this.element.id);\n this.updatePalettes();\n if (!isBlazor()) {\n this.accordionElement.dataBind();\n }\n };\n SymbolPalette.prototype.updatePalettes = function () {\n for (var i = 0; i < this.palettes.length; i++) {\n var symGroup = this.palettes[parseInt(i.toString(), 10)];\n //Bug 857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To remove search palette from palette collection.\n if (symGroup.id === 'search_palette') {\n this.palettes.splice(i, 1);\n i--;\n }\n else {\n this.initSymbols(symGroup);\n this.renderPalette(symGroup);\n }\n }\n };\n SymbolPalette.prototype.createTextbox = function () {\n var searchDiv = createHtmlElement('div', { id: this.element.id + '_search' });\n applyStyleAgainstCsp(searchDiv, 'height:30px');\n // searchDiv.setAttribute('style', 'backgroundColor:white;height:30px');\n searchDiv.className = 'e-input-group';\n this.element.appendChild(searchDiv);\n var textBox = createHtmlElement('input', {});\n textBox.placeholder = this.l10n.getConstant('SearchShapes');\n textBox.id = 'textEnter';\n applyStyleAgainstCsp(textBox, 'width:100%;height:auto');\n //textBox.setAttribute('style', 'width:100%;height:auto');\n textBox.className = 'e-input';\n searchDiv.appendChild(textBox);\n var span = createHtmlElement('span', { id: 'iconSearch', className: 'e-input-group-icon e-search e-icons' });\n searchDiv.appendChild(span);\n };\n SymbolPalette.prototype.getFilterSymbol = function (symbol) {\n var _this = this;\n var items = [];\n //884490: filter the symbol based on ignoreSymbolsOnSearch property\n items = symbol.filter(function (element) { return !_this.ignoreSymbolsOnSearch.includes(element.id); });\n return items;\n };\n SymbolPalette.prototype.searchPalette = function (value) {\n var symbolGroup = [];\n var element = document.getElementById('SearchPalette');\n var paletteDiv;\n //remove the existing child in palette\n if (element) {\n for (var i = element.children.length - 1; i >= 0; i--) {\n element.removeChild(element.children[parseInt(i.toString(), 10)]);\n }\n //Bug-857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To remove search palette from palette collection.\n this.palettes.splice(0, 1);\n }\n //add the searched item in array collection\n for (var i = 0; i < this.palettes.length; i++) {\n var symbolPaletteGroup = this.palettes[parseInt(i.toString(), 10)];\n for (var j = 0; j < symbolPaletteGroup.symbols.length; j++) {\n var item = symbolPaletteGroup.symbols[parseInt(j.toString(), 10)];\n if (value !== '' && item.id.toLowerCase().indexOf(value.toLowerCase()) !== -1) {\n symbolGroup.push(item);\n }\n }\n }\n var filterSymbols = getFunction(this.filterSymbols);\n if (filterSymbols) {\n symbolGroup = filterSymbols(symbolGroup) || [];\n }\n if (this.ignoreSymbolsOnSearch && this.ignoreSymbolsOnSearch.length > 0) {\n symbolGroup = this.getFilterSymbol(symbolGroup);\n }\n //Bug 857693: Collapsing the palettes after searching shapes throws wrong arguments in paletteExpanding event.\n //To render search palette and add it to the palettes collection.\n if (value !== '') {\n var searchPalette = { id: 'search_palette', expanded: true, symbols: symbolGroup, title: 'Search Shapes' };\n var palette = new Palette(this, 'palettes', searchPalette, true);\n this.palettes.splice(0, 0, palette);\n }\n //create a palette collection\n if (!element && !isBlazor()) {\n paletteDiv = this.createSearchPalette(paletteDiv);\n element = paletteDiv;\n }\n //add the symbols into search palette\n if (symbolGroup.length > 0) {\n for (var _i = 0, symbolGroup_1 = symbolGroup; _i < symbolGroup_1.length; _i++) {\n var symbol = symbolGroup_1[_i];\n if (symbol.parentId === '') {\n this.getSymbolContainer(symbol, element);\n }\n }\n }\n else if (value !== '') {\n var emptyDiv = createHtmlElement('div', { 'id': 'EmptyDiv', 'style': 'text-align:center;font-style:italic' });\n emptyDiv.innerHTML = 'No Items To Display';\n element.appendChild(emptyDiv);\n }\n else {\n var element_1 = document.getElementById('iconSearch');\n element_1.className = 'e-input-group-icon e-search e-icons';\n if (!isBlazor()) {\n this.accordionElement.removeItem(0);\n var searchPalette = document.getElementById('SearchPalette');\n if (searchPalette) {\n searchPalette.remove();\n }\n }\n }\n };\n SymbolPalette.prototype.createSearchPalette = function (paletteDiv) {\n paletteDiv = createHtmlElement('div', { 'id': 'SearchPalette', 'style': 'display:none;overflow:auto;' });\n this.element.appendChild(paletteDiv);\n var paletteCollection = {\n header: 'Search Results', expanded: true,\n content: '#SearchPalette'\n };\n this.accordionElement.addItem(paletteCollection, 0);\n return paletteDiv;\n };\n SymbolPalette.prototype.wireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.add(this.element, startEvent, this.mouseDown, this);\n EventHandler.add(this.element, moveEvent, this.mouseMove, this);\n EventHandler.add(this.element, stopEvent, this.mouseUp, this);\n EventHandler.add(this.element, cancelEvent, this.mouseLeave, this);\n EventHandler.add(this.element, keyEvent, this.keyUp, this);\n EventHandler.add(document, keyDownEvent, this.keyDown, this);\n // initialize the draggable component\n this.initDraggable();\n };\n SymbolPalette.prototype.unWireEvents = function () {\n var startEvent = Browser.touchStartEvent;\n var stopEvent = Browser.touchEndEvent;\n var moveEvent = Browser.touchMoveEvent;\n var cancelEvent = Browser.isPointer ? 'pointerleave' : 'mouseleave';\n var keyEvent = 'keyup';\n var keyDownEvent = 'keydown';\n EventHandler.remove(this.element, startEvent, this.mouseDown);\n EventHandler.remove(this.element, moveEvent, this.mouseMove);\n EventHandler.remove(this.element, stopEvent, this.mouseUp);\n EventHandler.remove(this.element, cancelEvent, this.mouseLeave);\n EventHandler.remove(this.element, keyEvent, this.keyUp);\n EventHandler.remove(document, keyDownEvent, this.keyDown);\n };\n __decorate([\n Property('S')\n ], SymbolPalette.prototype, \"accessKey\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"width\", void 0);\n __decorate([\n Property('100%')\n ], SymbolPalette.prototype, \"height\", void 0);\n __decorate([\n Collection([], Palette)\n ], SymbolPalette.prototype, \"palettes\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolInfo\", void 0);\n __decorate([\n Property({ fit: true })\n ], SymbolPalette.prototype, \"symbolInfo\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"filterSymbols\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"ignoreSymbolsOnSearch\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getSymbolTemplate\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolWidth\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"symbolHeight\", void 0);\n __decorate([\n Complex({ left: 10, right: 10, top: 10, bottom: 10 }, Margin)\n ], SymbolPalette.prototype, \"symbolMargin\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"allowDrag\", void 0);\n __decorate([\n Complex({}, SymbolPreview)\n ], SymbolPalette.prototype, \"symbolPreview\", void 0);\n __decorate([\n Complex({}, SymbolDragSize)\n ], SymbolPalette.prototype, \"symbolDragSize\", void 0);\n __decorate([\n Property(false)\n ], SymbolPalette.prototype, \"enableSearch\", void 0);\n __decorate([\n Property(true)\n ], SymbolPalette.prototype, \"enableAnimation\", void 0);\n __decorate([\n Property('Multiple')\n ], SymbolPalette.prototype, \"expandMode\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteSelectionChange\", void 0);\n __decorate([\n Event()\n ], SymbolPalette.prototype, \"paletteExpanding\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getNodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"nodeDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"getConnectorDefaults\", void 0);\n __decorate([\n Property()\n ], SymbolPalette.prototype, \"connectorDefaults\", void 0);\n return SymbolPalette;\n}(Component));\nexport { SymbolPalette };\n","/**\n * Exported symbol palette files\n */\nexport * from './symbol-palette';\n","/**\n * Overview Components\n */\nexport * from './overview';\n","/**\n * Diagram component exported items\n */\nexport * from './diagram/index';\nexport * from './symbol-palette/index';\nexport * from './ruler/index';\nexport * from './overview/index';\n","/**\n * index\n */\nexport * from './src/index';\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Range;\n(function (Range) {\n /**\n * Returns the intersection between two ranges as a range itself.\n * Returns `{ start: 0, end: 0 }` if the intersection is empty.\n */\n function intersect(one, other) {\n if (one.start >= other.end || other.start >= one.end) {\n return { start: 0, end: 0 };\n }\n const start = Math.max(one.start, other.start);\n const end = Math.min(one.end, other.end);\n if (end - start <= 0) {\n return { start: 0, end: 0 };\n }\n return { start, end };\n }\n Range.intersect = intersect;\n function isEmpty(range) {\n return range.end - range.start <= 0;\n }\n Range.isEmpty = isEmpty;\n function intersects(one, other) {\n return !isEmpty(intersect(one, other));\n }\n Range.intersects = intersects;\n function relativeComplement(one, other) {\n const result = [];\n const first = { start: one.start, end: Math.min(other.start, one.end) };\n const second = { start: Math.max(other.end, one.start), end: one.end };\n if (!isEmpty(first)) {\n result.push(first);\n }\n if (!isEmpty(second)) {\n result.push(second);\n }\n return result;\n }\n Range.relativeComplement = relativeComplement;\n})(Range || (Range = {}));\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindowId, onDidUnregisterWindow } from './dom.js';\nimport { Emitter, Event } from '../common/event.js';\nimport { Disposable, markAsSingleton } from '../common/lifecycle.js';\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#monitoring_screen_resolution_or_zoom_level_changes\n */\nclass DevicePixelRatioMonitor extends Disposable {\n constructor(targetWindow) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._listener = () => this._handleChange(targetWindow, true);\n this._mediaQueryList = null;\n this._handleChange(targetWindow, false);\n }\n _handleChange(targetWindow, fireEvent) {\n var _a;\n (_a = this._mediaQueryList) === null || _a === void 0 ? void 0 : _a.removeEventListener('change', this._listener);\n this._mediaQueryList = targetWindow.matchMedia(`(resolution: ${targetWindow.devicePixelRatio}dppx)`);\n this._mediaQueryList.addEventListener('change', this._listener);\n if (fireEvent) {\n this._onDidChange.fire();\n }\n }\n}\nclass PixelRatioMonitorImpl extends Disposable {\n get value() {\n return this._value;\n }\n constructor(targetWindow) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._value = this._getPixelRatio(targetWindow);\n const dprMonitor = this._register(new DevicePixelRatioMonitor(targetWindow));\n this._register(dprMonitor.onDidChange(() => {\n this._value = this._getPixelRatio(targetWindow);\n this._onDidChange.fire(this._value);\n }));\n }\n _getPixelRatio(targetWindow) {\n const ctx = document.createElement('canvas').getContext('2d');\n const dpr = targetWindow.devicePixelRatio || 1;\n const bsr = ctx.webkitBackingStorePixelRatio ||\n ctx.mozBackingStorePixelRatio ||\n ctx.msBackingStorePixelRatio ||\n ctx.oBackingStorePixelRatio ||\n ctx.backingStorePixelRatio || 1;\n return dpr / bsr;\n }\n}\nclass PixelRatioMonitorFacade {\n constructor() {\n this.mapWindowIdToPixelRatioMonitor = new Map();\n }\n _getOrCreatePixelRatioMonitor(targetWindow) {\n const targetWindowId = getWindowId(targetWindow);\n let pixelRatioMonitor = this.mapWindowIdToPixelRatioMonitor.get(targetWindowId);\n if (!pixelRatioMonitor) {\n pixelRatioMonitor = markAsSingleton(new PixelRatioMonitorImpl(targetWindow));\n this.mapWindowIdToPixelRatioMonitor.set(targetWindowId, pixelRatioMonitor);\n markAsSingleton(Event.once(onDidUnregisterWindow)(({ vscodeWindowId }) => {\n if (vscodeWindowId === targetWindowId) {\n pixelRatioMonitor === null || pixelRatioMonitor === void 0 ? void 0 : pixelRatioMonitor.dispose();\n this.mapWindowIdToPixelRatioMonitor.delete(targetWindowId);\n }\n }));\n }\n return pixelRatioMonitor;\n }\n getInstance(targetWindow) {\n return this._getOrCreatePixelRatioMonitor(targetWindow);\n }\n}\n/**\n * Returns the pixel ratio.\n *\n * This is useful for rendering elements at native screen resolution or for being used as\n * a cache key when storing font measurements. Fonts might render differently depending on resolution\n * and any measurements need to be discarded for example when a window is moved from a monitor to another.\n */\nexport const PixelRatio = new PixelRatioMonitorFacade();\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class FastDomNode {\n constructor(domNode) {\n this.domNode = domNode;\n this._maxWidth = '';\n this._width = '';\n this._height = '';\n this._top = '';\n this._left = '';\n this._bottom = '';\n this._right = '';\n this._paddingLeft = '';\n this._fontFamily = '';\n this._fontWeight = '';\n this._fontSize = '';\n this._fontStyle = '';\n this._fontFeatureSettings = '';\n this._fontVariationSettings = '';\n this._textDecoration = '';\n this._lineHeight = '';\n this._letterSpacing = '';\n this._className = '';\n this._display = '';\n this._position = '';\n this._visibility = '';\n this._color = '';\n this._backgroundColor = '';\n this._layerHint = false;\n this._contain = 'none';\n this._boxShadow = '';\n }\n setMaxWidth(_maxWidth) {\n const maxWidth = numberAsPixels(_maxWidth);\n if (this._maxWidth === maxWidth) {\n return;\n }\n this._maxWidth = maxWidth;\n this.domNode.style.maxWidth = this._maxWidth;\n }\n setWidth(_width) {\n const width = numberAsPixels(_width);\n if (this._width === width) {\n return;\n }\n this._width = width;\n this.domNode.style.width = this._width;\n }\n setHeight(_height) {\n const height = numberAsPixels(_height);\n if (this._height === height) {\n return;\n }\n this._height = height;\n this.domNode.style.height = this._height;\n }\n setTop(_top) {\n const top = numberAsPixels(_top);\n if (this._top === top) {\n return;\n }\n this._top = top;\n this.domNode.style.top = this._top;\n }\n setLeft(_left) {\n const left = numberAsPixels(_left);\n if (this._left === left) {\n return;\n }\n this._left = left;\n this.domNode.style.left = this._left;\n }\n setBottom(_bottom) {\n const bottom = numberAsPixels(_bottom);\n if (this._bottom === bottom) {\n return;\n }\n this._bottom = bottom;\n this.domNode.style.bottom = this._bottom;\n }\n setRight(_right) {\n const right = numberAsPixels(_right);\n if (this._right === right) {\n return;\n }\n this._right = right;\n this.domNode.style.right = this._right;\n }\n setPaddingLeft(_paddingLeft) {\n const paddingLeft = numberAsPixels(_paddingLeft);\n if (this._paddingLeft === paddingLeft) {\n return;\n }\n this._paddingLeft = paddingLeft;\n this.domNode.style.paddingLeft = this._paddingLeft;\n }\n setFontFamily(fontFamily) {\n if (this._fontFamily === fontFamily) {\n return;\n }\n this._fontFamily = fontFamily;\n this.domNode.style.fontFamily = this._fontFamily;\n }\n setFontWeight(fontWeight) {\n if (this._fontWeight === fontWeight) {\n return;\n }\n this._fontWeight = fontWeight;\n this.domNode.style.fontWeight = this._fontWeight;\n }\n setFontSize(_fontSize) {\n const fontSize = numberAsPixels(_fontSize);\n if (this._fontSize === fontSize) {\n return;\n }\n this._fontSize = fontSize;\n this.domNode.style.fontSize = this._fontSize;\n }\n setFontStyle(fontStyle) {\n if (this._fontStyle === fontStyle) {\n return;\n }\n this._fontStyle = fontStyle;\n this.domNode.style.fontStyle = this._fontStyle;\n }\n setFontFeatureSettings(fontFeatureSettings) {\n if (this._fontFeatureSettings === fontFeatureSettings) {\n return;\n }\n this._fontFeatureSettings = fontFeatureSettings;\n this.domNode.style.fontFeatureSettings = this._fontFeatureSettings;\n }\n setFontVariationSettings(fontVariationSettings) {\n if (this._fontVariationSettings === fontVariationSettings) {\n return;\n }\n this._fontVariationSettings = fontVariationSettings;\n this.domNode.style.fontVariationSettings = this._fontVariationSettings;\n }\n setTextDecoration(textDecoration) {\n if (this._textDecoration === textDecoration) {\n return;\n }\n this._textDecoration = textDecoration;\n this.domNode.style.textDecoration = this._textDecoration;\n }\n setLineHeight(_lineHeight) {\n const lineHeight = numberAsPixels(_lineHeight);\n if (this._lineHeight === lineHeight) {\n return;\n }\n this._lineHeight = lineHeight;\n this.domNode.style.lineHeight = this._lineHeight;\n }\n setLetterSpacing(_letterSpacing) {\n const letterSpacing = numberAsPixels(_letterSpacing);\n if (this._letterSpacing === letterSpacing) {\n return;\n }\n this._letterSpacing = letterSpacing;\n this.domNode.style.letterSpacing = this._letterSpacing;\n }\n setClassName(className) {\n if (this._className === className) {\n return;\n }\n this._className = className;\n this.domNode.className = this._className;\n }\n toggleClassName(className, shouldHaveIt) {\n this.domNode.classList.toggle(className, shouldHaveIt);\n this._className = this.domNode.className;\n }\n setDisplay(display) {\n if (this._display === display) {\n return;\n }\n this._display = display;\n this.domNode.style.display = this._display;\n }\n setPosition(position) {\n if (this._position === position) {\n return;\n }\n this._position = position;\n this.domNode.style.position = this._position;\n }\n setVisibility(visibility) {\n if (this._visibility === visibility) {\n return;\n }\n this._visibility = visibility;\n this.domNode.style.visibility = this._visibility;\n }\n setColor(color) {\n if (this._color === color) {\n return;\n }\n this._color = color;\n this.domNode.style.color = this._color;\n }\n setBackgroundColor(backgroundColor) {\n if (this._backgroundColor === backgroundColor) {\n return;\n }\n this._backgroundColor = backgroundColor;\n this.domNode.style.backgroundColor = this._backgroundColor;\n }\n setLayerHinting(layerHint) {\n if (this._layerHint === layerHint) {\n return;\n }\n this._layerHint = layerHint;\n this.domNode.style.transform = this._layerHint ? 'translate3d(0px, 0px, 0px)' : '';\n }\n setBoxShadow(boxShadow) {\n if (this._boxShadow === boxShadow) {\n return;\n }\n this._boxShadow = boxShadow;\n this.domNode.style.boxShadow = boxShadow;\n }\n setContain(contain) {\n if (this._contain === contain) {\n return;\n }\n this._contain = contain;\n this.domNode.style.contain = this._contain;\n }\n setAttribute(name, value) {\n this.domNode.setAttribute(name, value);\n }\n removeAttribute(name) {\n this.domNode.removeAttribute(name);\n }\n appendChild(child) {\n this.domNode.appendChild(child.domNode);\n }\n removeChild(child) {\n this.domNode.removeChild(child.domNode);\n }\n}\nfunction numberAsPixels(value) {\n return (typeof value === 'number' ? `${value}px` : value);\n}\nexport function createFastDomNode(domNode) {\n return new FastDomNode(domNode);\n}\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var AccumulationSeriesCollectionDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-accumulation-series-collection';\n }\n }\n});\nexport var AccumulationSeriesCollectionPlugin = {\n name: 'e-accumulation-series-collection',\n install: function (Vue) {\n Vue.component(AccumulationSeriesCollectionPlugin.name, AccumulationSeriesCollectionDirective);\n }\n};\nexport var AccumulationSeriesDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-accumulation-series';\n }\n }\n});\nexport var AccumulationSeriesPlugin = {\n name: 'e-accumulation-series',\n install: function (Vue) {\n Vue.component(AccumulationSeriesPlugin.name, AccumulationSeriesDirective);\n }\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { getWindow, scheduleAtNextAnimationFrame } from '../../../base/browser/dom.js';\nexport class ElementSizeObserver extends Disposable {\n constructor(referenceDomElement, dimension) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._referenceDomElement = referenceDomElement;\n this._width = -1;\n this._height = -1;\n this._resizeObserver = null;\n this.measureReferenceDomElement(false, dimension);\n }\n dispose() {\n this.stopObserving();\n super.dispose();\n }\n getWidth() {\n return this._width;\n }\n getHeight() {\n return this._height;\n }\n startObserving() {\n if (!this._resizeObserver && this._referenceDomElement) {\n // We want to react to the resize observer only once per animation frame\n // The first time the resize observer fires, we will react to it immediately.\n // Otherwise we will postpone to the next animation frame.\n // We'll use `observeContentRect` to store the content rect we received.\n let observedDimenstion = null;\n const observeNow = () => {\n if (observedDimenstion) {\n this.observe({ width: observedDimenstion.width, height: observedDimenstion.height });\n }\n else {\n this.observe();\n }\n };\n let shouldObserve = false;\n let alreadyObservedThisAnimationFrame = false;\n const update = () => {\n if (shouldObserve && !alreadyObservedThisAnimationFrame) {\n try {\n shouldObserve = false;\n alreadyObservedThisAnimationFrame = true;\n observeNow();\n }\n finally {\n scheduleAtNextAnimationFrame(getWindow(this._referenceDomElement), () => {\n alreadyObservedThisAnimationFrame = false;\n update();\n });\n }\n }\n };\n this._resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0] && entries[0].contentRect) {\n observedDimenstion = { width: entries[0].contentRect.width, height: entries[0].contentRect.height };\n }\n else {\n observedDimenstion = null;\n }\n shouldObserve = true;\n update();\n });\n this._resizeObserver.observe(this._referenceDomElement);\n }\n }\n stopObserving() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n this._resizeObserver = null;\n }\n }\n observe(dimension) {\n this.measureReferenceDomElement(true, dimension);\n }\n measureReferenceDomElement(emitEvent, dimension) {\n let observedWidth = 0;\n let observedHeight = 0;\n if (dimension) {\n observedWidth = dimension.width;\n observedHeight = dimension.height;\n }\n else if (this._referenceDomElement) {\n observedWidth = this._referenceDomElement.clientWidth;\n observedHeight = this._referenceDomElement.clientHeight;\n }\n observedWidth = Math.max(5, observedWidth);\n observedHeight = Math.max(5, observedHeight);\n if (this._width !== observedWidth || this._height !== observedHeight) {\n this._width = observedWidth;\n this._height = observedHeight;\n if (emitEvent) {\n this._onDidChange.fire();\n }\n }\n }\n}\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport * as nls from '../../../../nls.js';\nconst NLS_CASE_SENSITIVE_TOGGLE_LABEL = nls.localize('caseDescription', \"Match Case\");\nconst NLS_WHOLE_WORD_TOGGLE_LABEL = nls.localize('wordsDescription', \"Match Whole Word\");\nconst NLS_REGEX_TOGGLE_LABEL = nls.localize('regexDescription', \"Use Regular Expression\");\nexport class CaseSensitiveToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.caseSensitive,\n title: NLS_CASE_SENSITIVE_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nexport class WholeWordsToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.wholeWord,\n title: NLS_WHOLE_WORD_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nexport class RegexToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n icon: Codicon.regex,\n title: NLS_REGEX_TOGGLE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst def = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID');\n },\n};\nexports.default = def;\n//# sourceMappingURL=id.js.map","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","import { OffsetRange } from './offsetRange.js';\nimport { TextLength } from './textLength.js';\nexport class PositionOffsetTransformer {\n constructor(text) {\n this.text = text;\n this.lineStartOffsetByLineIdx = [];\n this.lineStartOffsetByLineIdx.push(0);\n for (let i = 0; i < text.length; i++) {\n if (text.charAt(i) === '\\n') {\n this.lineStartOffsetByLineIdx.push(i + 1);\n }\n }\n }\n getOffset(position) {\n return this.lineStartOffsetByLineIdx[position.lineNumber - 1] + position.column - 1;\n }\n getOffsetRange(range) {\n return new OffsetRange(this.getOffset(range.getStartPosition()), this.getOffset(range.getEndPosition()));\n }\n get textLength() {\n const lineIdx = this.lineStartOffsetByLineIdx.length - 1;\n return new TextLength(lineIdx, this.text.length - this.lineStartOffsetByLineIdx[lineIdx]);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn, checkAdjacentItems } from '../../../base/common/assert.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { Position } from './position.js';\nimport { PositionOffsetTransformer } from './positionToOffset.js';\nimport { Range } from './range.js';\nimport { TextLength } from './textLength.js';\nexport class TextEdit {\n constructor(edits) {\n this.edits = edits;\n assertFn(() => checkAdjacentItems(edits, (a, b) => a.range.getEndPosition().isBeforeOrEqual(b.range.getStartPosition())));\n }\n apply(text) {\n let result = '';\n let lastEditEnd = new Position(1, 1);\n for (const edit of this.edits) {\n const editRange = edit.range;\n const editStart = editRange.getStartPosition();\n const editEnd = editRange.getEndPosition();\n const r = rangeFromPositions(lastEditEnd, editStart);\n if (!r.isEmpty()) {\n result += text.getValueOfRange(r);\n }\n result += edit.text;\n lastEditEnd = editEnd;\n }\n const r = rangeFromPositions(lastEditEnd, text.endPositionExclusive);\n if (!r.isEmpty()) {\n result += text.getValueOfRange(r);\n }\n return result;\n }\n applyToString(str) {\n const strText = new StringText(str);\n return this.apply(strText);\n }\n getNewRanges() {\n const newRanges = [];\n let previousEditEndLineNumber = 0;\n let lineOffset = 0;\n let columnOffset = 0;\n for (const edit of this.edits) {\n const textLength = TextLength.ofText(edit.text);\n const newRangeStart = Position.lift({\n lineNumber: edit.range.startLineNumber + lineOffset,\n column: edit.range.startColumn + (edit.range.startLineNumber === previousEditEndLineNumber ? columnOffset : 0)\n });\n const newRange = textLength.createRange(newRangeStart);\n newRanges.push(newRange);\n lineOffset = newRange.endLineNumber - edit.range.endLineNumber;\n columnOffset = newRange.endColumn - edit.range.endColumn;\n previousEditEndLineNumber = edit.range.endLineNumber;\n }\n return newRanges;\n }\n}\nexport class SingleTextEdit {\n constructor(range, text) {\n this.range = range;\n this.text = text;\n }\n}\nfunction rangeFromPositions(start, end) {\n if (start.lineNumber === end.lineNumber && start.column === Number.MAX_SAFE_INTEGER) {\n return Range.fromPositions(end, end);\n }\n else if (!start.isBeforeOrEqual(end)) {\n throw new BugIndicatingError('start must be before end');\n }\n return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n}\nexport class AbstractText {\n get endPositionExclusive() {\n return this.length.addToPosition(new Position(1, 1));\n }\n}\nexport class StringText extends AbstractText {\n constructor(value) {\n super();\n this.value = value;\n this._t = new PositionOffsetTransformer(this.value);\n }\n getValueOfRange(range) {\n return this._t.getOffsetRange(range).substring(this.value);\n }\n get length() {\n return this._t.textLength;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from './findInputToggles.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { DisposableStore, MutableDisposable } from '../../../common/lifecycle.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nexport class FindInput extends Widget {\n constructor(parent, contextViewProvider, options) {\n super();\n this.fixFocusOnOptionClickEnabled = true;\n this.imeSessionInProgress = false;\n this.additionalTogglesDisposables = this._register(new MutableDisposable());\n this.additionalToggles = [];\n this._onDidOptionChange = this._register(new Emitter());\n this.onDidOptionChange = this._onDidOptionChange.event;\n this._onKeyDown = this._register(new Emitter());\n this.onKeyDown = this._onKeyDown.event;\n this._onMouseDown = this._register(new Emitter());\n this.onMouseDown = this._onMouseDown.event;\n this._onInput = this._register(new Emitter());\n this._onKeyUp = this._register(new Emitter());\n this._onCaseSensitiveKeyDown = this._register(new Emitter());\n this.onCaseSensitiveKeyDown = this._onCaseSensitiveKeyDown.event;\n this._onRegexKeyDown = this._register(new Emitter());\n this.onRegexKeyDown = this._onRegexKeyDown.event;\n this._lastHighlightFindOptions = 0;\n this.placeholder = options.placeholder || '';\n this.validation = options.validation;\n this.label = options.label || NLS_DEFAULT_LABEL;\n this.showCommonFindToggles = !!options.showCommonFindToggles;\n const appendCaseSensitiveLabel = options.appendCaseSensitiveLabel || '';\n const appendWholeWordsLabel = options.appendWholeWordsLabel || '';\n const appendRegexLabel = options.appendRegexLabel || '';\n const history = options.history || [];\n const flexibleHeight = !!options.flexibleHeight;\n const flexibleWidth = !!options.flexibleWidth;\n const flexibleMaxHeight = options.flexibleMaxHeight;\n this.domNode = document.createElement('div');\n this.domNode.classList.add('monaco-findInput');\n this.inputBox = this._register(new HistoryInputBox(this.domNode, contextViewProvider, {\n placeholder: this.placeholder || '',\n ariaLabel: this.label || '',\n validationOptions: {\n validation: this.validation\n },\n history,\n showHistoryHint: options.showHistoryHint,\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight,\n inputBoxStyles: options.inputBoxStyles,\n }));\n const hoverDelegate = this._register(createInstantHoverDelegate());\n if (this.showCommonFindToggles) {\n this.regex = this._register(new RegexToggle({\n appendTitle: appendRegexLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.regex.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.regex.onKeyDown(e => {\n this._onRegexKeyDown.fire(e);\n }));\n this.wholeWords = this._register(new WholeWordsToggle({\n appendTitle: appendWholeWordsLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.wholeWords.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this.caseSensitive = this._register(new CaseSensitiveToggle({\n appendTitle: appendCaseSensitiveLabel,\n isChecked: false,\n hoverDelegate,\n ...options.toggleStyles\n }));\n this._register(this.caseSensitive.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.caseSensitive.onKeyDown(e => {\n this._onCaseSensitiveKeyDown.fire(e);\n }));\n // Arrow-Key support to navigate between options\n const indexes = [this.caseSensitive.domNode, this.wholeWords.domNode, this.regex.domNode];\n this.onkeydown(this.domNode, (event) => {\n if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n if (index >= 0) {\n let newIndex = -1;\n if (event.equals(17 /* KeyCode.RightArrow */)) {\n newIndex = (index + 1) % indexes.length;\n }\n else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n if (index === 0) {\n newIndex = indexes.length - 1;\n }\n else {\n newIndex = index - 1;\n }\n }\n if (event.equals(9 /* KeyCode.Escape */)) {\n indexes[index].blur();\n this.inputBox.focus();\n }\n else if (newIndex >= 0) {\n indexes[newIndex].focus();\n }\n dom.EventHelper.stop(event, true);\n }\n }\n });\n }\n this.controls = document.createElement('div');\n this.controls.className = 'controls';\n this.controls.style.display = this.showCommonFindToggles ? '' : 'none';\n if (this.caseSensitive) {\n this.controls.append(this.caseSensitive.domNode);\n }\n if (this.wholeWords) {\n this.controls.appendChild(this.wholeWords.domNode);\n }\n if (this.regex) {\n this.controls.appendChild(this.regex.domNode);\n }\n this.setAdditionalToggles(options === null || options === void 0 ? void 0 : options.additionalToggles);\n if (this.controls) {\n this.domNode.appendChild(this.controls);\n }\n parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionstart', (e) => {\n this.imeSessionInProgress = true;\n }));\n this._register(dom.addDisposableListener(this.inputBox.inputElement, 'compositionend', (e) => {\n this.imeSessionInProgress = false;\n this._onInput.fire();\n }));\n this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n }\n get onDidChange() {\n return this.inputBox.onDidChange;\n }\n layout(style) {\n this.inputBox.layout();\n this.updateInputBoxPadding(style.collapsedFindWidget);\n }\n enable() {\n var _a, _b, _c;\n this.domNode.classList.remove('disabled');\n this.inputBox.enable();\n (_a = this.regex) === null || _a === void 0 ? void 0 : _a.enable();\n (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.enable();\n (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.enable();\n for (const toggle of this.additionalToggles) {\n toggle.enable();\n }\n }\n disable() {\n var _a, _b, _c;\n this.domNode.classList.add('disabled');\n this.inputBox.disable();\n (_a = this.regex) === null || _a === void 0 ? void 0 : _a.disable();\n (_b = this.wholeWords) === null || _b === void 0 ? void 0 : _b.disable();\n (_c = this.caseSensitive) === null || _c === void 0 ? void 0 : _c.disable();\n for (const toggle of this.additionalToggles) {\n toggle.disable();\n }\n }\n setFocusInputOnOptionClick(value) {\n this.fixFocusOnOptionClickEnabled = value;\n }\n setEnabled(enabled) {\n if (enabled) {\n this.enable();\n }\n else {\n this.disable();\n }\n }\n setAdditionalToggles(toggles) {\n for (const currentToggle of this.additionalToggles) {\n currentToggle.domNode.remove();\n }\n this.additionalToggles = [];\n this.additionalTogglesDisposables.value = new DisposableStore();\n for (const toggle of toggles !== null && toggles !== void 0 ? toggles : []) {\n this.additionalTogglesDisposables.value.add(toggle);\n this.controls.appendChild(toggle.domNode);\n this.additionalTogglesDisposables.value.add(toggle.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n }));\n this.additionalToggles.push(toggle);\n }\n if (this.additionalToggles.length > 0) {\n this.controls.style.display = '';\n }\n this.updateInputBoxPadding();\n }\n updateInputBoxPadding(controlsHidden = false) {\n var _a, _b, _c, _d, _e, _f;\n if (controlsHidden) {\n this.inputBox.paddingRight = 0;\n }\n else {\n this.inputBox.paddingRight =\n (((_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.width()) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = this.wholeWords) === null || _c === void 0 ? void 0 : _c.width()) !== null && _d !== void 0 ? _d : 0) + ((_f = (_e = this.regex) === null || _e === void 0 ? void 0 : _e.width()) !== null && _f !== void 0 ? _f : 0))\n + this.additionalToggles.reduce((r, t) => r + t.width(), 0);\n }\n }\n getValue() {\n return this.inputBox.value;\n }\n setValue(value) {\n if (this.inputBox.value !== value) {\n this.inputBox.value = value;\n }\n }\n select() {\n this.inputBox.select();\n }\n focus() {\n this.inputBox.focus();\n }\n getCaseSensitive() {\n var _a, _b;\n return (_b = (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setCaseSensitive(value) {\n if (this.caseSensitive) {\n this.caseSensitive.checked = value;\n }\n }\n getWholeWords() {\n var _a, _b;\n return (_b = (_a = this.wholeWords) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setWholeWords(value) {\n if (this.wholeWords) {\n this.wholeWords.checked = value;\n }\n }\n getRegex() {\n var _a, _b;\n return (_b = (_a = this.regex) === null || _a === void 0 ? void 0 : _a.checked) !== null && _b !== void 0 ? _b : false;\n }\n setRegex(value) {\n if (this.regex) {\n this.regex.checked = value;\n this.validate();\n }\n }\n focusOnCaseSensitive() {\n var _a;\n (_a = this.caseSensitive) === null || _a === void 0 ? void 0 : _a.focus();\n }\n highlightFindOptions() {\n this.domNode.classList.remove('highlight-' + (this._lastHighlightFindOptions));\n this._lastHighlightFindOptions = 1 - this._lastHighlightFindOptions;\n this.domNode.classList.add('highlight-' + (this._lastHighlightFindOptions));\n }\n validate() {\n this.inputBox.validate();\n }\n showMessage(message) {\n this.inputBox.showMessage(message);\n }\n clearMessage() {\n this.inputBox.hideMessage();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { minimapFindMatch, overviewRulerFindMatchForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nexport class FindDecorations {\n constructor(editor) {\n this._editor = editor;\n this._decorations = [];\n this._overviewRulerApproximateDecorations = [];\n this._findScopeDecorationIds = [];\n this._rangeHighlightDecorationId = null;\n this._highlightedDecorationId = null;\n this._startPosition = this._editor.getPosition();\n }\n dispose() {\n this._editor.removeDecorations(this._allDecorations());\n this._decorations = [];\n this._overviewRulerApproximateDecorations = [];\n this._findScopeDecorationIds = [];\n this._rangeHighlightDecorationId = null;\n this._highlightedDecorationId = null;\n }\n reset() {\n this._decorations = [];\n this._overviewRulerApproximateDecorations = [];\n this._findScopeDecorationIds = [];\n this._rangeHighlightDecorationId = null;\n this._highlightedDecorationId = null;\n }\n getCount() {\n return this._decorations.length;\n }\n /** @deprecated use getFindScopes to support multiple selections */\n getFindScope() {\n if (this._findScopeDecorationIds[0]) {\n return this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]);\n }\n return null;\n }\n getFindScopes() {\n if (this._findScopeDecorationIds.length) {\n const scopes = this._findScopeDecorationIds.map(findScopeDecorationId => this._editor.getModel().getDecorationRange(findScopeDecorationId)).filter(element => !!element);\n if (scopes.length) {\n return scopes;\n }\n }\n return null;\n }\n getStartPosition() {\n return this._startPosition;\n }\n setStartPosition(newStartPosition) {\n this._startPosition = newStartPosition;\n this.setCurrentFindMatch(null);\n }\n _getDecorationIndex(decorationId) {\n const index = this._decorations.indexOf(decorationId);\n if (index >= 0) {\n return index + 1;\n }\n return 1;\n }\n getDecorationRangeAt(index) {\n const decorationId = index < this._decorations.length ? this._decorations[index] : null;\n if (decorationId) {\n return this._editor.getModel().getDecorationRange(decorationId);\n }\n return null;\n }\n getCurrentMatchesPosition(desiredRange) {\n const candidates = this._editor.getModel().getDecorationsInRange(desiredRange);\n for (const candidate of candidates) {\n const candidateOpts = candidate.options;\n if (candidateOpts === FindDecorations._FIND_MATCH_DECORATION || candidateOpts === FindDecorations._CURRENT_FIND_MATCH_DECORATION) {\n return this._getDecorationIndex(candidate.id);\n }\n }\n // We don't know the current match position, so returns zero to show '?' in find widget\n return 0;\n }\n setCurrentFindMatch(nextMatch) {\n let newCurrentDecorationId = null;\n let matchPosition = 0;\n if (nextMatch) {\n for (let i = 0, len = this._decorations.length; i < len; i++) {\n const range = this._editor.getModel().getDecorationRange(this._decorations[i]);\n if (nextMatch.equalsRange(range)) {\n newCurrentDecorationId = this._decorations[i];\n matchPosition = (i + 1);\n break;\n }\n }\n }\n if (this._highlightedDecorationId !== null || newCurrentDecorationId !== null) {\n this._editor.changeDecorations((changeAccessor) => {\n if (this._highlightedDecorationId !== null) {\n changeAccessor.changeDecorationOptions(this._highlightedDecorationId, FindDecorations._FIND_MATCH_DECORATION);\n this._highlightedDecorationId = null;\n }\n if (newCurrentDecorationId !== null) {\n this._highlightedDecorationId = newCurrentDecorationId;\n changeAccessor.changeDecorationOptions(this._highlightedDecorationId, FindDecorations._CURRENT_FIND_MATCH_DECORATION);\n }\n if (this._rangeHighlightDecorationId !== null) {\n changeAccessor.removeDecoration(this._rangeHighlightDecorationId);\n this._rangeHighlightDecorationId = null;\n }\n if (newCurrentDecorationId !== null) {\n let rng = this._editor.getModel().getDecorationRange(newCurrentDecorationId);\n if (rng.startLineNumber !== rng.endLineNumber && rng.endColumn === 1) {\n const lineBeforeEnd = rng.endLineNumber - 1;\n const lineBeforeEndMaxColumn = this._editor.getModel().getLineMaxColumn(lineBeforeEnd);\n rng = new Range(rng.startLineNumber, rng.startColumn, lineBeforeEnd, lineBeforeEndMaxColumn);\n }\n this._rangeHighlightDecorationId = changeAccessor.addDecoration(rng, FindDecorations._RANGE_HIGHLIGHT_DECORATION);\n }\n });\n }\n return matchPosition;\n }\n set(findMatches, findScopes) {\n this._editor.changeDecorations((accessor) => {\n let findMatchesOptions = FindDecorations._FIND_MATCH_DECORATION;\n const newOverviewRulerApproximateDecorations = [];\n if (findMatches.length > 1000) {\n // we go into a mode where the overview ruler gets \"approximate\" decorations\n // the reason is that the overview ruler paints all the decorations in the file and we don't want to cause freezes\n findMatchesOptions = FindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION;\n // approximate a distance in lines where matches should be merged\n const lineCount = this._editor.getModel().getLineCount();\n const height = this._editor.getLayoutInfo().height;\n const approxPixelsPerLine = height / lineCount;\n const mergeLinesDelta = Math.max(2, Math.ceil(3 / approxPixelsPerLine));\n // merge decorations as much as possible\n let prevStartLineNumber = findMatches[0].range.startLineNumber;\n let prevEndLineNumber = findMatches[0].range.endLineNumber;\n for (let i = 1, len = findMatches.length; i < len; i++) {\n const range = findMatches[i].range;\n if (prevEndLineNumber + mergeLinesDelta >= range.startLineNumber) {\n if (range.endLineNumber > prevEndLineNumber) {\n prevEndLineNumber = range.endLineNumber;\n }\n }\n else {\n newOverviewRulerApproximateDecorations.push({\n range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n options: FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n });\n prevStartLineNumber = range.startLineNumber;\n prevEndLineNumber = range.endLineNumber;\n }\n }\n newOverviewRulerApproximateDecorations.push({\n range: new Range(prevStartLineNumber, 1, prevEndLineNumber, 1),\n options: FindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION\n });\n }\n // Find matches\n const newFindMatchesDecorations = new Array(findMatches.length);\n for (let i = 0, len = findMatches.length; i < len; i++) {\n newFindMatchesDecorations[i] = {\n range: findMatches[i].range,\n options: findMatchesOptions\n };\n }\n this._decorations = accessor.deltaDecorations(this._decorations, newFindMatchesDecorations);\n // Overview ruler approximate decorations\n this._overviewRulerApproximateDecorations = accessor.deltaDecorations(this._overviewRulerApproximateDecorations, newOverviewRulerApproximateDecorations);\n // Range highlight\n if (this._rangeHighlightDecorationId) {\n accessor.removeDecoration(this._rangeHighlightDecorationId);\n this._rangeHighlightDecorationId = null;\n }\n // Find scope\n if (this._findScopeDecorationIds.length) {\n this._findScopeDecorationIds.forEach(findScopeDecorationId => accessor.removeDecoration(findScopeDecorationId));\n this._findScopeDecorationIds = [];\n }\n if (findScopes === null || findScopes === void 0 ? void 0 : findScopes.length) {\n this._findScopeDecorationIds = findScopes.map(findScope => accessor.addDecoration(findScope, FindDecorations._FIND_SCOPE_DECORATION));\n }\n });\n }\n matchBeforePosition(position) {\n if (this._decorations.length === 0) {\n return null;\n }\n for (let i = this._decorations.length - 1; i >= 0; i--) {\n const decorationId = this._decorations[i];\n const r = this._editor.getModel().getDecorationRange(decorationId);\n if (!r || r.endLineNumber > position.lineNumber) {\n continue;\n }\n if (r.endLineNumber < position.lineNumber) {\n return r;\n }\n if (r.endColumn > position.column) {\n continue;\n }\n return r;\n }\n return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length - 1]);\n }\n matchAfterPosition(position) {\n if (this._decorations.length === 0) {\n return null;\n }\n for (let i = 0, len = this._decorations.length; i < len; i++) {\n const decorationId = this._decorations[i];\n const r = this._editor.getModel().getDecorationRange(decorationId);\n if (!r || r.startLineNumber < position.lineNumber) {\n continue;\n }\n if (r.startLineNumber > position.lineNumber) {\n return r;\n }\n if (r.startColumn < position.column) {\n continue;\n }\n return r;\n }\n return this._editor.getModel().getDecorationRange(this._decorations[0]);\n }\n _allDecorations() {\n let result = [];\n result = result.concat(this._decorations);\n result = result.concat(this._overviewRulerApproximateDecorations);\n if (this._findScopeDecorationIds.length) {\n result.push(...this._findScopeDecorationIds);\n }\n if (this._rangeHighlightDecorationId) {\n result.push(this._rangeHighlightDecorationId);\n }\n return result;\n }\n}\nFindDecorations._CURRENT_FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n description: 'current-find-match',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n zIndex: 13,\n className: 'currentFindMatch',\n inlineClassName: 'currentFindMatchInline',\n showIfCollapsed: true,\n overviewRuler: {\n color: themeColorFromId(overviewRulerFindMatchForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapFindMatch),\n position: 1 /* MinimapPosition.Inline */\n }\n});\nFindDecorations._FIND_MATCH_DECORATION = ModelDecorationOptions.register({\n description: 'find-match',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n zIndex: 10,\n className: 'findMatch',\n inlineClassName: 'findMatchInline',\n showIfCollapsed: true,\n overviewRuler: {\n color: themeColorFromId(overviewRulerFindMatchForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapFindMatch),\n position: 1 /* MinimapPosition.Inline */\n }\n});\nFindDecorations._FIND_MATCH_NO_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n description: 'find-match-no-overview',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'findMatch',\n showIfCollapsed: true\n});\nFindDecorations._FIND_MATCH_ONLY_OVERVIEW_DECORATION = ModelDecorationOptions.register({\n description: 'find-match-only-overview',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n overviewRuler: {\n color: themeColorFromId(overviewRulerFindMatchForeground),\n position: OverviewRulerLane.Center\n }\n});\nFindDecorations._RANGE_HIGHLIGHT_DECORATION = ModelDecorationOptions.register({\n description: 'find-range-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'rangeHighlight',\n isWholeLine: true\n});\nFindDecorations._FIND_SCOPE_DECORATION = ModelDecorationOptions.register({\n description: 'find-scope',\n className: 'findScope',\n isWholeLine: true\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nexport class ReplaceAllCommand {\n constructor(editorSelection, ranges, replaceStrings) {\n this._editorSelection = editorSelection;\n this._ranges = ranges;\n this._replaceStrings = replaceStrings;\n this._trackedEditorSelectionId = null;\n }\n getEditOperations(model, builder) {\n if (this._ranges.length > 0) {\n // Collect all edit operations\n const ops = [];\n for (let i = 0; i < this._ranges.length; i++) {\n ops.push({\n range: this._ranges[i],\n text: this._replaceStrings[i]\n });\n }\n // Sort them in ascending order by range starts\n ops.sort((o1, o2) => {\n return Range.compareRangesUsingStarts(o1.range, o2.range);\n });\n // Merge operations that touch each other\n const resultOps = [];\n let previousOp = ops[0];\n for (let i = 1; i < ops.length; i++) {\n if (previousOp.range.endLineNumber === ops[i].range.startLineNumber && previousOp.range.endColumn === ops[i].range.startColumn) {\n // These operations are one after another and can be merged\n previousOp.range = previousOp.range.plusRange(ops[i].range);\n previousOp.text = previousOp.text + ops[i].text;\n }\n else {\n resultOps.push(previousOp);\n previousOp = ops[i];\n }\n }\n resultOps.push(previousOp);\n for (const op of resultOps) {\n builder.addEditOperation(op.range, op.text);\n }\n }\n this._trackedEditorSelectionId = builder.trackSelection(this._editorSelection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this._trackedEditorSelectionId);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nexport function buildReplaceStringWithCasePreserved(matches, pattern) {\n if (matches && (matches[0] !== '')) {\n const containsHyphens = validateSpecificSpecialCharacter(matches, pattern, '-');\n const containsUnderscores = validateSpecificSpecialCharacter(matches, pattern, '_');\n if (containsHyphens && !containsUnderscores) {\n return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '-');\n }\n else if (!containsHyphens && containsUnderscores) {\n return buildReplaceStringForSpecificSpecialCharacter(matches, pattern, '_');\n }\n if (matches[0].toUpperCase() === matches[0]) {\n return pattern.toUpperCase();\n }\n else if (matches[0].toLowerCase() === matches[0]) {\n return pattern.toLowerCase();\n }\n else if (strings.containsUppercaseCharacter(matches[0][0]) && pattern.length > 0) {\n return pattern[0].toUpperCase() + pattern.substr(1);\n }\n else if (matches[0][0].toUpperCase() !== matches[0][0] && pattern.length > 0) {\n return pattern[0].toLowerCase() + pattern.substr(1);\n }\n else {\n // we don't understand its pattern yet.\n return pattern;\n }\n }\n else {\n return pattern;\n }\n}\nfunction validateSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n const doesContainSpecialCharacter = matches[0].indexOf(specialCharacter) !== -1 && pattern.indexOf(specialCharacter) !== -1;\n return doesContainSpecialCharacter && matches[0].split(specialCharacter).length === pattern.split(specialCharacter).length;\n}\nfunction buildReplaceStringForSpecificSpecialCharacter(matches, pattern, specialCharacter) {\n const splitPatternAtSpecialCharacter = pattern.split(specialCharacter);\n const splitMatchAtSpecialCharacter = matches[0].split(specialCharacter);\n let replaceString = '';\n splitPatternAtSpecialCharacter.forEach((splitValue, index) => {\n replaceString += buildReplaceStringWithCasePreserved([splitMatchAtSpecialCharacter[index]], splitValue) + specialCharacter;\n });\n return replaceString.slice(0, -1);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { buildReplaceStringWithCasePreserved } from '../../../../base/common/search.js';\n/**\n * Assigned when the replace pattern is entirely static.\n */\nclass StaticValueReplacePattern {\n constructor(staticValue) {\n this.staticValue = staticValue;\n this.kind = 0 /* ReplacePatternKind.StaticValue */;\n }\n}\n/**\n * Assigned when the replace pattern has replacement patterns.\n */\nclass DynamicPiecesReplacePattern {\n constructor(pieces) {\n this.pieces = pieces;\n this.kind = 1 /* ReplacePatternKind.DynamicPieces */;\n }\n}\nexport class ReplacePattern {\n static fromStaticValue(value) {\n return new ReplacePattern([ReplacePiece.staticValue(value)]);\n }\n get hasReplacementPatterns() {\n return (this._state.kind === 1 /* ReplacePatternKind.DynamicPieces */);\n }\n constructor(pieces) {\n if (!pieces || pieces.length === 0) {\n this._state = new StaticValueReplacePattern('');\n }\n else if (pieces.length === 1 && pieces[0].staticValue !== null) {\n this._state = new StaticValueReplacePattern(pieces[0].staticValue);\n }\n else {\n this._state = new DynamicPiecesReplacePattern(pieces);\n }\n }\n buildReplaceString(matches, preserveCase) {\n if (this._state.kind === 0 /* ReplacePatternKind.StaticValue */) {\n if (preserveCase) {\n return buildReplaceStringWithCasePreserved(matches, this._state.staticValue);\n }\n else {\n return this._state.staticValue;\n }\n }\n let result = '';\n for (let i = 0, len = this._state.pieces.length; i < len; i++) {\n const piece = this._state.pieces[i];\n if (piece.staticValue !== null) {\n // static value ReplacePiece\n result += piece.staticValue;\n continue;\n }\n // match index ReplacePiece\n let match = ReplacePattern._substitute(piece.matchIndex, matches);\n if (piece.caseOps !== null && piece.caseOps.length > 0) {\n const repl = [];\n const lenOps = piece.caseOps.length;\n let opIdx = 0;\n for (let idx = 0, len = match.length; idx < len; idx++) {\n if (opIdx >= lenOps) {\n repl.push(match.slice(idx));\n break;\n }\n switch (piece.caseOps[opIdx]) {\n case 'U':\n repl.push(match[idx].toUpperCase());\n break;\n case 'u':\n repl.push(match[idx].toUpperCase());\n opIdx++;\n break;\n case 'L':\n repl.push(match[idx].toLowerCase());\n break;\n case 'l':\n repl.push(match[idx].toLowerCase());\n opIdx++;\n break;\n default:\n repl.push(match[idx]);\n }\n }\n match = repl.join('');\n }\n result += match;\n }\n return result;\n }\n static _substitute(matchIndex, matches) {\n if (matches === null) {\n return '';\n }\n if (matchIndex === 0) {\n return matches[0];\n }\n let remainder = '';\n while (matchIndex > 0) {\n if (matchIndex < matches.length) {\n // A match can be undefined\n const match = (matches[matchIndex] || '');\n return match + remainder;\n }\n remainder = String(matchIndex % 10) + remainder;\n matchIndex = Math.floor(matchIndex / 10);\n }\n return '$' + remainder;\n }\n}\n/**\n * A replace piece can either be a static string or an index to a specific match.\n */\nexport class ReplacePiece {\n static staticValue(value) {\n return new ReplacePiece(value, -1, null);\n }\n static caseOps(index, caseOps) {\n return new ReplacePiece(null, index, caseOps);\n }\n constructor(staticValue, matchIndex, caseOps) {\n this.staticValue = staticValue;\n this.matchIndex = matchIndex;\n if (!caseOps || caseOps.length === 0) {\n this.caseOps = null;\n }\n else {\n this.caseOps = caseOps.slice(0);\n }\n }\n}\nclass ReplacePieceBuilder {\n constructor(source) {\n this._source = source;\n this._lastCharIndex = 0;\n this._result = [];\n this._resultLen = 0;\n this._currentStaticPiece = '';\n }\n emitUnchanged(toCharIndex) {\n this._emitStatic(this._source.substring(this._lastCharIndex, toCharIndex));\n this._lastCharIndex = toCharIndex;\n }\n emitStatic(value, toCharIndex) {\n this._emitStatic(value);\n this._lastCharIndex = toCharIndex;\n }\n _emitStatic(value) {\n if (value.length === 0) {\n return;\n }\n this._currentStaticPiece += value;\n }\n emitMatchIndex(index, toCharIndex, caseOps) {\n if (this._currentStaticPiece.length !== 0) {\n this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n this._currentStaticPiece = '';\n }\n this._result[this._resultLen++] = ReplacePiece.caseOps(index, caseOps);\n this._lastCharIndex = toCharIndex;\n }\n finalize() {\n this.emitUnchanged(this._source.length);\n if (this._currentStaticPiece.length !== 0) {\n this._result[this._resultLen++] = ReplacePiece.staticValue(this._currentStaticPiece);\n this._currentStaticPiece = '';\n }\n return new ReplacePattern(this._result);\n }\n}\n/**\n * \\n\t\t\t=> inserts a LF\n * \\t\t\t\t=> inserts a TAB\n * \\\\\t\t\t=> inserts a \"\\\".\n * \\u\t\t\t=> upper-cases one character in a match.\n * \\U\t\t\t=> upper-cases ALL remaining characters in a match.\n * \\l\t\t\t=> lower-cases one character in a match.\n * \\L\t\t\t=> lower-cases ALL remaining characters in a match.\n * $$\t\t\t=> inserts a \"$\".\n * $& and $0\t=> inserts the matched substring.\n * $n\t\t\t=> Where n is a non-negative integer lesser than 100, inserts the nth parenthesized submatch string\n * everything else stays untouched\n *\n * Also see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter\n */\nexport function parseReplaceString(replaceString) {\n if (!replaceString || replaceString.length === 0) {\n return new ReplacePattern(null);\n }\n const caseOps = [];\n const result = new ReplacePieceBuilder(replaceString);\n for (let i = 0, len = replaceString.length; i < len; i++) {\n const chCode = replaceString.charCodeAt(i);\n if (chCode === 92 /* CharCode.Backslash */) {\n // move to next char\n i++;\n if (i >= len) {\n // string ends with a \\\n break;\n }\n const nextChCode = replaceString.charCodeAt(i);\n // let replaceWithCharacter: string | null = null;\n switch (nextChCode) {\n case 92 /* CharCode.Backslash */:\n // \\\\ => inserts a \"\\\"\n result.emitUnchanged(i - 1);\n result.emitStatic('\\\\', i + 1);\n break;\n case 110 /* CharCode.n */:\n // \\n => inserts a LF\n result.emitUnchanged(i - 1);\n result.emitStatic('\\n', i + 1);\n break;\n case 116 /* CharCode.t */:\n // \\t => inserts a TAB\n result.emitUnchanged(i - 1);\n result.emitStatic('\\t', i + 1);\n break;\n // Case modification of string replacements, patterned after Boost, but only applied\n // to the replacement text, not subsequent content.\n case 117 /* CharCode.u */:\n // \\u => upper-cases one character.\n case 85 /* CharCode.U */:\n // \\U => upper-cases ALL following characters.\n case 108 /* CharCode.l */:\n // \\l => lower-cases one character.\n case 76 /* CharCode.L */:\n // \\L => lower-cases ALL following characters.\n result.emitUnchanged(i - 1);\n result.emitStatic('', i + 1);\n caseOps.push(String.fromCharCode(nextChCode));\n break;\n }\n continue;\n }\n if (chCode === 36 /* CharCode.DollarSign */) {\n // move to next char\n i++;\n if (i >= len) {\n // string ends with a $\n break;\n }\n const nextChCode = replaceString.charCodeAt(i);\n if (nextChCode === 36 /* CharCode.DollarSign */) {\n // $$ => inserts a \"$\"\n result.emitUnchanged(i - 1);\n result.emitStatic('$', i + 1);\n continue;\n }\n if (nextChCode === 48 /* CharCode.Digit0 */ || nextChCode === 38 /* CharCode.Ampersand */) {\n // $& and $0 => inserts the matched substring.\n result.emitUnchanged(i - 1);\n result.emitMatchIndex(0, i + 1, caseOps);\n caseOps.length = 0;\n continue;\n }\n if (49 /* CharCode.Digit1 */ <= nextChCode && nextChCode <= 57 /* CharCode.Digit9 */) {\n // $n\n let matchIndex = nextChCode - 48 /* CharCode.Digit0 */;\n // peek next char to probe for $nn\n if (i + 1 < len) {\n const nextNextChCode = replaceString.charCodeAt(i + 1);\n if (48 /* CharCode.Digit0 */ <= nextNextChCode && nextNextChCode <= 57 /* CharCode.Digit9 */) {\n // $nn\n // move to next char\n i++;\n matchIndex = matchIndex * 10 + (nextNextChCode - 48 /* CharCode.Digit0 */);\n result.emitUnchanged(i - 2);\n result.emitMatchIndex(matchIndex, i + 1, caseOps);\n caseOps.length = 0;\n continue;\n }\n }\n result.emitUnchanged(i - 1);\n result.emitMatchIndex(matchIndex, i + 1, caseOps);\n caseOps.length = 0;\n continue;\n }\n }\n }\n return result.finalize();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findFirstIdxMonotonousOrArrLen } from '../../../../base/common/arraysFind.js';\nimport { RunOnceScheduler, TimeoutTimer } from '../../../../base/common/async.js';\nimport { DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { ReplaceCommand, ReplaceCommandThatPreservesSelection } from '../../../common/commands/replaceCommand.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { SearchParams } from '../../../common/model/textModelSearch.js';\nimport { FindDecorations } from './findDecorations.js';\nimport { ReplaceAllCommand } from './replaceAllCommand.js';\nimport { parseReplaceString, ReplacePattern } from './replacePattern.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nexport const CONTEXT_FIND_WIDGET_VISIBLE = new RawContextKey('findWidgetVisible', false);\nexport const CONTEXT_FIND_WIDGET_NOT_VISIBLE = CONTEXT_FIND_WIDGET_VISIBLE.toNegated();\n// Keep ContextKey use of 'Focussed' to not break when clauses\nexport const CONTEXT_FIND_INPUT_FOCUSED = new RawContextKey('findInputFocussed', false);\nexport const CONTEXT_REPLACE_INPUT_FOCUSED = new RawContextKey('replaceInputFocussed', false);\nexport const ToggleCaseSensitiveKeybinding = {\n primary: 512 /* KeyMod.Alt */ | 33 /* KeyCode.KeyC */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 33 /* KeyCode.KeyC */ }\n};\nexport const ToggleWholeWordKeybinding = {\n primary: 512 /* KeyMod.Alt */ | 53 /* KeyCode.KeyW */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 53 /* KeyCode.KeyW */ }\n};\nexport const ToggleRegexKeybinding = {\n primary: 512 /* KeyMod.Alt */ | 48 /* KeyCode.KeyR */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 48 /* KeyCode.KeyR */ }\n};\nexport const ToggleSearchScopeKeybinding = {\n primary: 512 /* KeyMod.Alt */ | 42 /* KeyCode.KeyL */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 42 /* KeyCode.KeyL */ }\n};\nexport const TogglePreserveCaseKeybinding = {\n primary: 512 /* KeyMod.Alt */ | 46 /* KeyCode.KeyP */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 46 /* KeyCode.KeyP */ }\n};\nexport const FIND_IDS = {\n StartFindAction: 'actions.find',\n StartFindWithSelection: 'actions.findWithSelection',\n StartFindWithArgs: 'editor.actions.findWithArgs',\n NextMatchFindAction: 'editor.action.nextMatchFindAction',\n PreviousMatchFindAction: 'editor.action.previousMatchFindAction',\n GoToMatchFindAction: 'editor.action.goToMatchFindAction',\n NextSelectionMatchFindAction: 'editor.action.nextSelectionMatchFindAction',\n PreviousSelectionMatchFindAction: 'editor.action.previousSelectionMatchFindAction',\n StartFindReplaceAction: 'editor.action.startFindReplaceAction',\n CloseFindWidgetCommand: 'closeFindWidget',\n ToggleCaseSensitiveCommand: 'toggleFindCaseSensitive',\n ToggleWholeWordCommand: 'toggleFindWholeWord',\n ToggleRegexCommand: 'toggleFindRegex',\n ToggleSearchScopeCommand: 'toggleFindInSelection',\n TogglePreserveCaseCommand: 'togglePreserveCase',\n ReplaceOneAction: 'editor.action.replaceOne',\n ReplaceAllAction: 'editor.action.replaceAll',\n SelectAllMatchesAction: 'editor.action.selectAllMatches'\n};\nexport const MATCHES_LIMIT = 19999;\nconst RESEARCH_DELAY = 240;\nexport class FindModelBoundToEditorModel {\n constructor(editor, state) {\n this._toDispose = new DisposableStore();\n this._editor = editor;\n this._state = state;\n this._isDisposed = false;\n this._startSearchingTimer = new TimeoutTimer();\n this._decorations = new FindDecorations(editor);\n this._toDispose.add(this._decorations);\n this._updateDecorationsScheduler = new RunOnceScheduler(() => this.research(false), 100);\n this._toDispose.add(this._updateDecorationsScheduler);\n this._toDispose.add(this._editor.onDidChangeCursorPosition((e) => {\n if (e.reason === 3 /* CursorChangeReason.Explicit */\n || e.reason === 5 /* CursorChangeReason.Undo */\n || e.reason === 6 /* CursorChangeReason.Redo */) {\n this._decorations.setStartPosition(this._editor.getPosition());\n }\n }));\n this._ignoreModelContentChanged = false;\n this._toDispose.add(this._editor.onDidChangeModelContent((e) => {\n if (this._ignoreModelContentChanged) {\n return;\n }\n if (e.isFlush) {\n // a model.setValue() was called\n this._decorations.reset();\n }\n this._decorations.setStartPosition(this._editor.getPosition());\n this._updateDecorationsScheduler.schedule();\n }));\n this._toDispose.add(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n this.research(false, this._state.searchScope);\n }\n dispose() {\n this._isDisposed = true;\n dispose(this._startSearchingTimer);\n this._toDispose.dispose();\n }\n _onStateChanged(e) {\n if (this._isDisposed) {\n // The find model is disposed during a find state changed event\n return;\n }\n if (!this._editor.hasModel()) {\n // The find model will be disposed momentarily\n return;\n }\n if (e.searchString || e.isReplaceRevealed || e.isRegex || e.wholeWord || e.matchCase || e.searchScope) {\n const model = this._editor.getModel();\n if (model.isTooLargeForSyncing()) {\n this._startSearchingTimer.cancel();\n this._startSearchingTimer.setIfNotSet(() => {\n if (e.searchScope) {\n this.research(e.moveCursor, this._state.searchScope);\n }\n else {\n this.research(e.moveCursor);\n }\n }, RESEARCH_DELAY);\n }\n else {\n if (e.searchScope) {\n this.research(e.moveCursor, this._state.searchScope);\n }\n else {\n this.research(e.moveCursor);\n }\n }\n }\n }\n static _getSearchRange(model, findScope) {\n // If we have set now or before a find scope, use it for computing the search range\n if (findScope) {\n return findScope;\n }\n return model.getFullModelRange();\n }\n research(moveCursor, newFindScope) {\n let findScopes = null;\n if (typeof newFindScope !== 'undefined') {\n if (newFindScope !== null) {\n if (!Array.isArray(newFindScope)) {\n findScopes = [newFindScope];\n }\n else {\n findScopes = newFindScope;\n }\n }\n }\n else {\n findScopes = this._decorations.getFindScopes();\n }\n if (findScopes !== null) {\n findScopes = findScopes.map(findScope => {\n if (findScope.startLineNumber !== findScope.endLineNumber) {\n let endLineNumber = findScope.endLineNumber;\n if (findScope.endColumn === 1) {\n endLineNumber = endLineNumber - 1;\n }\n return new Range(findScope.startLineNumber, 1, endLineNumber, this._editor.getModel().getLineMaxColumn(endLineNumber));\n }\n return findScope;\n });\n }\n const findMatches = this._findMatches(findScopes, false, MATCHES_LIMIT);\n this._decorations.set(findMatches, findScopes);\n const editorSelection = this._editor.getSelection();\n let currentMatchesPosition = this._decorations.getCurrentMatchesPosition(editorSelection);\n if (currentMatchesPosition === 0 && findMatches.length > 0) {\n // current selection is not on top of a match\n // try to find its nearest result from the top of the document\n const matchAfterSelection = findFirstIdxMonotonousOrArrLen(findMatches.map(match => match.range), range => Range.compareRangesUsingStarts(range, editorSelection) >= 0);\n currentMatchesPosition = matchAfterSelection > 0 ? matchAfterSelection - 1 + 1 /** match position is one based */ : currentMatchesPosition;\n }\n this._state.changeMatchInfo(currentMatchesPosition, this._decorations.getCount(), undefined);\n if (moveCursor && this._editor.getOption(41 /* EditorOption.find */).cursorMoveOnType) {\n this._moveToNextMatch(this._decorations.getStartPosition());\n }\n }\n _hasMatches() {\n return (this._state.matchesCount > 0);\n }\n _cannotFind() {\n if (!this._hasMatches()) {\n const findScope = this._decorations.getFindScope();\n if (findScope) {\n // Reveal the selection so user is reminded that 'selection find' is on.\n this._editor.revealRangeInCenterIfOutsideViewport(findScope, 0 /* ScrollType.Smooth */);\n }\n return true;\n }\n return false;\n }\n _setCurrentFindMatch(match) {\n const matchesPosition = this._decorations.setCurrentFindMatch(match);\n this._state.changeMatchInfo(matchesPosition, this._decorations.getCount(), match);\n this._editor.setSelection(match);\n this._editor.revealRangeInCenterIfOutsideViewport(match, 0 /* ScrollType.Smooth */);\n }\n _prevSearchPosition(before) {\n const isUsingLineStops = this._state.isRegex && (this._state.searchString.indexOf('^') >= 0\n || this._state.searchString.indexOf('$') >= 0);\n let { lineNumber, column } = before;\n const model = this._editor.getModel();\n if (isUsingLineStops || column === 1) {\n if (lineNumber === 1) {\n lineNumber = model.getLineCount();\n }\n else {\n lineNumber--;\n }\n column = model.getLineMaxColumn(lineNumber);\n }\n else {\n column--;\n }\n return new Position(lineNumber, column);\n }\n _moveToPrevMatch(before, isRecursed = false) {\n if (!this._state.canNavigateBack()) {\n // we are beyond the first matched find result\n // instead of doing nothing, we should refocus the first item\n const nextMatchRange = this._decorations.matchAfterPosition(before);\n if (nextMatchRange) {\n this._setCurrentFindMatch(nextMatchRange);\n }\n return;\n }\n if (this._decorations.getCount() < MATCHES_LIMIT) {\n let prevMatchRange = this._decorations.matchBeforePosition(before);\n if (prevMatchRange && prevMatchRange.isEmpty() && prevMatchRange.getStartPosition().equals(before)) {\n before = this._prevSearchPosition(before);\n prevMatchRange = this._decorations.matchBeforePosition(before);\n }\n if (prevMatchRange) {\n this._setCurrentFindMatch(prevMatchRange);\n }\n return;\n }\n if (this._cannotFind()) {\n return;\n }\n const findScope = this._decorations.getFindScope();\n const searchRange = FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n // ...(----)...|...\n if (searchRange.getEndPosition().isBefore(before)) {\n before = searchRange.getEndPosition();\n }\n // ...|...(----)...\n if (before.isBefore(searchRange.getStartPosition())) {\n before = searchRange.getEndPosition();\n }\n const { lineNumber, column } = before;\n const model = this._editor.getModel();\n let position = new Position(lineNumber, column);\n let prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n if (prevMatch && prevMatch.range.isEmpty() && prevMatch.range.getStartPosition().equals(position)) {\n // Looks like we're stuck at this position, unacceptable!\n position = this._prevSearchPosition(position);\n prevMatch = model.findPreviousMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, false);\n }\n if (!prevMatch) {\n // there is precisely one match and selection is on top of it\n return;\n }\n if (!isRecursed && !searchRange.containsRange(prevMatch.range)) {\n return this._moveToPrevMatch(prevMatch.range.getStartPosition(), true);\n }\n this._setCurrentFindMatch(prevMatch.range);\n }\n moveToPrevMatch() {\n this._moveToPrevMatch(this._editor.getSelection().getStartPosition());\n }\n _nextSearchPosition(after) {\n const isUsingLineStops = this._state.isRegex && (this._state.searchString.indexOf('^') >= 0\n || this._state.searchString.indexOf('$') >= 0);\n let { lineNumber, column } = after;\n const model = this._editor.getModel();\n if (isUsingLineStops || column === model.getLineMaxColumn(lineNumber)) {\n if (lineNumber === model.getLineCount()) {\n lineNumber = 1;\n }\n else {\n lineNumber++;\n }\n column = 1;\n }\n else {\n column++;\n }\n return new Position(lineNumber, column);\n }\n _moveToNextMatch(after) {\n if (!this._state.canNavigateForward()) {\n // we are beyond the last matched find result\n // instead of doing nothing, we should refocus the last item\n const prevMatchRange = this._decorations.matchBeforePosition(after);\n if (prevMatchRange) {\n this._setCurrentFindMatch(prevMatchRange);\n }\n return;\n }\n if (this._decorations.getCount() < MATCHES_LIMIT) {\n let nextMatchRange = this._decorations.matchAfterPosition(after);\n if (nextMatchRange && nextMatchRange.isEmpty() && nextMatchRange.getStartPosition().equals(after)) {\n // Looks like we're stuck at this position, unacceptable!\n after = this._nextSearchPosition(after);\n nextMatchRange = this._decorations.matchAfterPosition(after);\n }\n if (nextMatchRange) {\n this._setCurrentFindMatch(nextMatchRange);\n }\n return;\n }\n const nextMatch = this._getNextMatch(after, false, true);\n if (nextMatch) {\n this._setCurrentFindMatch(nextMatch.range);\n }\n }\n _getNextMatch(after, captureMatches, forceMove, isRecursed = false) {\n if (this._cannotFind()) {\n return null;\n }\n const findScope = this._decorations.getFindScope();\n const searchRange = FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), findScope);\n // ...(----)...|...\n if (searchRange.getEndPosition().isBefore(after)) {\n after = searchRange.getStartPosition();\n }\n // ...|...(----)...\n if (after.isBefore(searchRange.getStartPosition())) {\n after = searchRange.getStartPosition();\n }\n const { lineNumber, column } = after;\n const model = this._editor.getModel();\n let position = new Position(lineNumber, column);\n let nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches);\n if (forceMove && nextMatch && nextMatch.range.isEmpty() && nextMatch.range.getStartPosition().equals(position)) {\n // Looks like we're stuck at this position, unacceptable!\n position = this._nextSearchPosition(position);\n nextMatch = model.findNextMatch(this._state.searchString, position, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches);\n }\n if (!nextMatch) {\n // there is precisely one match and selection is on top of it\n return null;\n }\n if (!isRecursed && !searchRange.containsRange(nextMatch.range)) {\n return this._getNextMatch(nextMatch.range.getEndPosition(), captureMatches, forceMove, true);\n }\n return nextMatch;\n }\n moveToNextMatch() {\n this._moveToNextMatch(this._editor.getSelection().getEndPosition());\n }\n _moveToMatch(index) {\n const decorationRange = this._decorations.getDecorationRangeAt(index);\n if (decorationRange) {\n this._setCurrentFindMatch(decorationRange);\n }\n }\n moveToMatch(index) {\n this._moveToMatch(index);\n }\n _getReplacePattern() {\n if (this._state.isRegex) {\n return parseReplaceString(this._state.replaceString);\n }\n return ReplacePattern.fromStaticValue(this._state.replaceString);\n }\n replace() {\n if (!this._hasMatches()) {\n return;\n }\n const replacePattern = this._getReplacePattern();\n const selection = this._editor.getSelection();\n const nextMatch = this._getNextMatch(selection.getStartPosition(), true, false);\n if (nextMatch) {\n if (selection.equalsRange(nextMatch.range)) {\n // selection sits on a find match => replace it!\n const replaceString = replacePattern.buildReplaceString(nextMatch.matches, this._state.preserveCase);\n const command = new ReplaceCommand(selection, replaceString);\n this._executeEditorCommand('replace', command);\n this._decorations.setStartPosition(new Position(selection.startLineNumber, selection.startColumn + replaceString.length));\n this.research(true);\n }\n else {\n this._decorations.setStartPosition(this._editor.getPosition());\n this._setCurrentFindMatch(nextMatch.range);\n }\n }\n }\n _findMatches(findScopes, captureMatches, limitResultCount) {\n const searchRanges = (findScopes || [null]).map((scope) => FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(), scope));\n return this._editor.getModel().findMatches(this._state.searchString, searchRanges, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null, captureMatches, limitResultCount);\n }\n replaceAll() {\n if (!this._hasMatches()) {\n return;\n }\n const findScopes = this._decorations.getFindScopes();\n if (findScopes === null && this._state.matchesCount >= MATCHES_LIMIT) {\n // Doing a replace on the entire file that is over ${MATCHES_LIMIT} matches\n this._largeReplaceAll();\n }\n else {\n this._regularReplaceAll(findScopes);\n }\n this.research(false);\n }\n _largeReplaceAll() {\n const searchParams = new SearchParams(this._state.searchString, this._state.isRegex, this._state.matchCase, this._state.wholeWord ? this._editor.getOption(131 /* EditorOption.wordSeparators */) : null);\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return;\n }\n let searchRegex = searchData.regex;\n if (!searchRegex.multiline) {\n let mod = 'mu';\n if (searchRegex.ignoreCase) {\n mod += 'i';\n }\n if (searchRegex.global) {\n mod += 'g';\n }\n searchRegex = new RegExp(searchRegex.source, mod);\n }\n const model = this._editor.getModel();\n const modelText = model.getValue(1 /* EndOfLinePreference.LF */);\n const fullModelRange = model.getFullModelRange();\n const replacePattern = this._getReplacePattern();\n let resultText;\n const preserveCase = this._state.preserveCase;\n if (replacePattern.hasReplacementPatterns || preserveCase) {\n resultText = modelText.replace(searchRegex, function () {\n return replacePattern.buildReplaceString(arguments, preserveCase);\n });\n }\n else {\n resultText = modelText.replace(searchRegex, replacePattern.buildReplaceString(null, preserveCase));\n }\n const command = new ReplaceCommandThatPreservesSelection(fullModelRange, resultText, this._editor.getSelection());\n this._executeEditorCommand('replaceAll', command);\n }\n _regularReplaceAll(findScopes) {\n const replacePattern = this._getReplacePattern();\n // Get all the ranges (even more than the highlighted ones)\n const matches = this._findMatches(findScopes, replacePattern.hasReplacementPatterns || this._state.preserveCase, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n const replaceStrings = [];\n for (let i = 0, len = matches.length; i < len; i++) {\n replaceStrings[i] = replacePattern.buildReplaceString(matches[i].matches, this._state.preserveCase);\n }\n const command = new ReplaceAllCommand(this._editor.getSelection(), matches.map(m => m.range), replaceStrings);\n this._executeEditorCommand('replaceAll', command);\n }\n selectAllMatches() {\n if (!this._hasMatches()) {\n return;\n }\n const findScopes = this._decorations.getFindScopes();\n // Get all the ranges (even more than the highlighted ones)\n const matches = this._findMatches(findScopes, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n let selections = matches.map(m => new Selection(m.range.startLineNumber, m.range.startColumn, m.range.endLineNumber, m.range.endColumn));\n // If one of the ranges is the editor selection, then maintain it as primary\n const editorSelection = this._editor.getSelection();\n for (let i = 0, len = selections.length; i < len; i++) {\n const sel = selections[i];\n if (sel.equalsRange(editorSelection)) {\n selections = [editorSelection].concat(selections.slice(0, i)).concat(selections.slice(i + 1));\n break;\n }\n }\n this._editor.setSelections(selections);\n }\n _executeEditorCommand(source, command) {\n try {\n this._ignoreModelContentChanged = true;\n this._editor.pushUndoStop();\n this._editor.executeCommand(source, command);\n this._editor.pushUndoStop();\n }\n finally {\n this._ignoreModelContentChanged = false;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport './findOptionsWidget.css';\nimport { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from '../../../../base/browser/ui/findinput/findInputToggles.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { FIND_IDS } from './findModel.js';\nimport { asCssVariable, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { createInstantHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nexport class FindOptionsWidget extends Widget {\n constructor(editor, state, keybindingService) {\n super();\n this._hideSoon = this._register(new RunOnceScheduler(() => this._hide(), 2000));\n this._isVisible = false;\n this._editor = editor;\n this._state = state;\n this._keybindingService = keybindingService;\n this._domNode = document.createElement('div');\n this._domNode.className = 'findOptionsWidget';\n this._domNode.style.display = 'none';\n this._domNode.style.top = '10px';\n this._domNode.style.zIndex = '12';\n this._domNode.setAttribute('role', 'presentation');\n this._domNode.setAttribute('aria-hidden', 'true');\n const toggleStyles = {\n inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n };\n const hoverDelegate = this._register(createInstantHoverDelegate());\n this.caseSensitive = this._register(new CaseSensitiveToggle({\n appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n isChecked: this._state.matchCase,\n hoverDelegate,\n ...toggleStyles\n }));\n this._domNode.appendChild(this.caseSensitive.domNode);\n this._register(this.caseSensitive.onChange(() => {\n this._state.change({\n matchCase: this.caseSensitive.checked\n }, false);\n }));\n this.wholeWords = this._register(new WholeWordsToggle({\n appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n isChecked: this._state.wholeWord,\n hoverDelegate,\n ...toggleStyles\n }));\n this._domNode.appendChild(this.wholeWords.domNode);\n this._register(this.wholeWords.onChange(() => {\n this._state.change({\n wholeWord: this.wholeWords.checked\n }, false);\n }));\n this.regex = this._register(new RegexToggle({\n appendTitle: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n isChecked: this._state.isRegex,\n hoverDelegate,\n ...toggleStyles\n }));\n this._domNode.appendChild(this.regex.domNode);\n this._register(this.regex.onChange(() => {\n this._state.change({\n isRegex: this.regex.checked\n }, false);\n }));\n this._editor.addOverlayWidget(this);\n this._register(this._state.onFindReplaceStateChange((e) => {\n let somethingChanged = false;\n if (e.isRegex) {\n this.regex.checked = this._state.isRegex;\n somethingChanged = true;\n }\n if (e.wholeWord) {\n this.wholeWords.checked = this._state.wholeWord;\n somethingChanged = true;\n }\n if (e.matchCase) {\n this.caseSensitive.checked = this._state.matchCase;\n somethingChanged = true;\n }\n if (!this._state.isRevealed && somethingChanged) {\n this._revealTemporarily();\n }\n }));\n this._register(dom.addDisposableListener(this._domNode, dom.EventType.MOUSE_LEAVE, (e) => this._onMouseLeave()));\n this._register(dom.addDisposableListener(this._domNode, 'mouseover', (e) => this._onMouseOver()));\n }\n _keybindingLabelFor(actionId) {\n const kb = this._keybindingService.lookupKeybinding(actionId);\n if (!kb) {\n return '';\n }\n return ` (${kb.getLabel()})`;\n }\n dispose() {\n this._editor.removeOverlayWidget(this);\n super.dispose();\n }\n // ----- IOverlayWidget API\n getId() {\n return FindOptionsWidget.ID;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n preference: 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n };\n }\n highlightFindOptions() {\n this._revealTemporarily();\n }\n _revealTemporarily() {\n this._show();\n this._hideSoon.schedule();\n }\n _onMouseLeave() {\n this._hideSoon.schedule();\n }\n _onMouseOver() {\n this._hideSoon.cancel();\n }\n _show() {\n if (this._isVisible) {\n return;\n }\n this._isVisible = true;\n this._domNode.style.display = 'block';\n }\n _hide() {\n if (!this._isVisible) {\n return;\n }\n this._isVisible = false;\n this._domNode.style.display = 'none';\n }\n}\nFindOptionsWidget.ID = 'editor.contrib.findOptionsWidget';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../../common/core/range.js';\nimport { MATCHES_LIMIT } from './findModel.js';\nfunction effectiveOptionValue(override, value) {\n if (override === 1 /* FindOptionOverride.True */) {\n return true;\n }\n if (override === 2 /* FindOptionOverride.False */) {\n return false;\n }\n return value;\n}\nexport class FindReplaceState extends Disposable {\n get searchString() { return this._searchString; }\n get replaceString() { return this._replaceString; }\n get isRevealed() { return this._isRevealed; }\n get isReplaceRevealed() { return this._isReplaceRevealed; }\n get isRegex() { return effectiveOptionValue(this._isRegexOverride, this._isRegex); }\n get wholeWord() { return effectiveOptionValue(this._wholeWordOverride, this._wholeWord); }\n get matchCase() { return effectiveOptionValue(this._matchCaseOverride, this._matchCase); }\n get preserveCase() { return effectiveOptionValue(this._preserveCaseOverride, this._preserveCase); }\n get actualIsRegex() { return this._isRegex; }\n get actualWholeWord() { return this._wholeWord; }\n get actualMatchCase() { return this._matchCase; }\n get actualPreserveCase() { return this._preserveCase; }\n get searchScope() { return this._searchScope; }\n get matchesPosition() { return this._matchesPosition; }\n get matchesCount() { return this._matchesCount; }\n get currentMatch() { return this._currentMatch; }\n constructor() {\n super();\n this._onFindReplaceStateChange = this._register(new Emitter());\n this.onFindReplaceStateChange = this._onFindReplaceStateChange.event;\n this._searchString = '';\n this._replaceString = '';\n this._isRevealed = false;\n this._isReplaceRevealed = false;\n this._isRegex = false;\n this._isRegexOverride = 0 /* FindOptionOverride.NotSet */;\n this._wholeWord = false;\n this._wholeWordOverride = 0 /* FindOptionOverride.NotSet */;\n this._matchCase = false;\n this._matchCaseOverride = 0 /* FindOptionOverride.NotSet */;\n this._preserveCase = false;\n this._preserveCaseOverride = 0 /* FindOptionOverride.NotSet */;\n this._searchScope = null;\n this._matchesPosition = 0;\n this._matchesCount = 0;\n this._currentMatch = null;\n this._loop = true;\n this._isSearching = false;\n this._filters = null;\n }\n changeMatchInfo(matchesPosition, matchesCount, currentMatch) {\n const changeEvent = {\n moveCursor: false,\n updateHistory: false,\n searchString: false,\n replaceString: false,\n isRevealed: false,\n isReplaceRevealed: false,\n isRegex: false,\n wholeWord: false,\n matchCase: false,\n preserveCase: false,\n searchScope: false,\n matchesPosition: false,\n matchesCount: false,\n currentMatch: false,\n loop: false,\n isSearching: false,\n filters: false\n };\n let somethingChanged = false;\n if (matchesCount === 0) {\n matchesPosition = 0;\n }\n if (matchesPosition > matchesCount) {\n matchesPosition = matchesCount;\n }\n if (this._matchesPosition !== matchesPosition) {\n this._matchesPosition = matchesPosition;\n changeEvent.matchesPosition = true;\n somethingChanged = true;\n }\n if (this._matchesCount !== matchesCount) {\n this._matchesCount = matchesCount;\n changeEvent.matchesCount = true;\n somethingChanged = true;\n }\n if (typeof currentMatch !== 'undefined') {\n if (!Range.equalsRange(this._currentMatch, currentMatch)) {\n this._currentMatch = currentMatch;\n changeEvent.currentMatch = true;\n somethingChanged = true;\n }\n }\n if (somethingChanged) {\n this._onFindReplaceStateChange.fire(changeEvent);\n }\n }\n change(newState, moveCursor, updateHistory = true) {\n var _a;\n const changeEvent = {\n moveCursor: moveCursor,\n updateHistory: updateHistory,\n searchString: false,\n replaceString: false,\n isRevealed: false,\n isReplaceRevealed: false,\n isRegex: false,\n wholeWord: false,\n matchCase: false,\n preserveCase: false,\n searchScope: false,\n matchesPosition: false,\n matchesCount: false,\n currentMatch: false,\n loop: false,\n isSearching: false,\n filters: false\n };\n let somethingChanged = false;\n const oldEffectiveIsRegex = this.isRegex;\n const oldEffectiveWholeWords = this.wholeWord;\n const oldEffectiveMatchCase = this.matchCase;\n const oldEffectivePreserveCase = this.preserveCase;\n if (typeof newState.searchString !== 'undefined') {\n if (this._searchString !== newState.searchString) {\n this._searchString = newState.searchString;\n changeEvent.searchString = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.replaceString !== 'undefined') {\n if (this._replaceString !== newState.replaceString) {\n this._replaceString = newState.replaceString;\n changeEvent.replaceString = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.isRevealed !== 'undefined') {\n if (this._isRevealed !== newState.isRevealed) {\n this._isRevealed = newState.isRevealed;\n changeEvent.isRevealed = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.isReplaceRevealed !== 'undefined') {\n if (this._isReplaceRevealed !== newState.isReplaceRevealed) {\n this._isReplaceRevealed = newState.isReplaceRevealed;\n changeEvent.isReplaceRevealed = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.isRegex !== 'undefined') {\n this._isRegex = newState.isRegex;\n }\n if (typeof newState.wholeWord !== 'undefined') {\n this._wholeWord = newState.wholeWord;\n }\n if (typeof newState.matchCase !== 'undefined') {\n this._matchCase = newState.matchCase;\n }\n if (typeof newState.preserveCase !== 'undefined') {\n this._preserveCase = newState.preserveCase;\n }\n if (typeof newState.searchScope !== 'undefined') {\n if (!((_a = newState.searchScope) === null || _a === void 0 ? void 0 : _a.every((newSearchScope) => {\n var _a;\n return (_a = this._searchScope) === null || _a === void 0 ? void 0 : _a.some(existingSearchScope => {\n return !Range.equalsRange(existingSearchScope, newSearchScope);\n });\n }))) {\n this._searchScope = newState.searchScope;\n changeEvent.searchScope = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.loop !== 'undefined') {\n if (this._loop !== newState.loop) {\n this._loop = newState.loop;\n changeEvent.loop = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.isSearching !== 'undefined') {\n if (this._isSearching !== newState.isSearching) {\n this._isSearching = newState.isSearching;\n changeEvent.isSearching = true;\n somethingChanged = true;\n }\n }\n if (typeof newState.filters !== 'undefined') {\n if (this._filters) {\n this._filters.update(newState.filters);\n }\n else {\n this._filters = newState.filters;\n }\n changeEvent.filters = true;\n somethingChanged = true;\n }\n // Overrides get set when they explicitly come in and get reset anytime something else changes\n this._isRegexOverride = (typeof newState.isRegexOverride !== 'undefined' ? newState.isRegexOverride : 0 /* FindOptionOverride.NotSet */);\n this._wholeWordOverride = (typeof newState.wholeWordOverride !== 'undefined' ? newState.wholeWordOverride : 0 /* FindOptionOverride.NotSet */);\n this._matchCaseOverride = (typeof newState.matchCaseOverride !== 'undefined' ? newState.matchCaseOverride : 0 /* FindOptionOverride.NotSet */);\n this._preserveCaseOverride = (typeof newState.preserveCaseOverride !== 'undefined' ? newState.preserveCaseOverride : 0 /* FindOptionOverride.NotSet */);\n if (oldEffectiveIsRegex !== this.isRegex) {\n somethingChanged = true;\n changeEvent.isRegex = true;\n }\n if (oldEffectiveWholeWords !== this.wholeWord) {\n somethingChanged = true;\n changeEvent.wholeWord = true;\n }\n if (oldEffectiveMatchCase !== this.matchCase) {\n somethingChanged = true;\n changeEvent.matchCase = true;\n }\n if (oldEffectivePreserveCase !== this.preserveCase) {\n somethingChanged = true;\n changeEvent.preserveCase = true;\n }\n if (somethingChanged) {\n this._onFindReplaceStateChange.fire(changeEvent);\n }\n }\n canNavigateBack() {\n return this.canNavigateInLoop() || (this.matchesPosition !== 1);\n }\n canNavigateForward() {\n return this.canNavigateInLoop() || (this.matchesPosition < this.matchesCount);\n }\n canNavigateInLoop() {\n return this._loop || (this.matchesCount >= MATCHES_LIMIT);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function showHistoryKeybindingHint(keybindingService) {\n var _a, _b;\n return ((_a = keybindingService.lookupKeybinding('history.showPrevious')) === null || _a === void 0 ? void 0 : _a.getElectronAccelerator()) === 'Up' && ((_b = keybindingService.lookupKeybinding('history.showNext')) === null || _b === void 0 ? void 0 : _b.getElectronAccelerator()) === 'Down';\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { alert as alertFn } from '../../../../base/browser/ui/aria/aria.js';\nimport { Toggle } from '../../../../base/browser/ui/toggle/toggle.js';\nimport { Sash } from '../../../../base/browser/ui/sash/sash.js';\nimport { Widget } from '../../../../base/browser/ui/widget.js';\nimport { Delayer } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { toDisposable } from '../../../../base/common/lifecycle.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport './findWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_REPLACE_INPUT_FOCUSED, FIND_IDS, MATCHES_LIMIT } from './findModel.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextScopedFindInput, ContextScopedReplaceInput } from '../../../../platform/history/browser/contextScopedHistoryWidget.js';\nimport { showHistoryKeybindingHint } from '../../../../platform/history/browser/historyWidgetKeybindingHint.js';\nimport { asCssVariable, contrastBorder, editorFindMatchForeground, editorFindMatchHighlightBorder, editorFindMatchHighlightForeground, editorFindRangeHighlightBorder, inputActiveOptionBackground, inputActiveOptionBorder, inputActiveOptionForeground } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon, widgetClose } from '../../../../platform/theme/common/iconRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { assertIsDefined } from '../../../../base/common/types.js';\nimport { defaultInputBoxStyles, defaultToggleStyles } from '../../../../platform/theme/browser/defaultStyles.js';\nimport { createInstantHoverDelegate, getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nconst findCollapsedIcon = registerIcon('find-collapsed', Codicon.chevronRight, nls.localize('findCollapsedIcon', 'Icon to indicate that the editor find widget is collapsed.'));\nconst findExpandedIcon = registerIcon('find-expanded', Codicon.chevronDown, nls.localize('findExpandedIcon', 'Icon to indicate that the editor find widget is expanded.'));\nexport const findSelectionIcon = registerIcon('find-selection', Codicon.selection, nls.localize('findSelectionIcon', 'Icon for \\'Find in Selection\\' in the editor find widget.'));\nexport const findReplaceIcon = registerIcon('find-replace', Codicon.replace, nls.localize('findReplaceIcon', 'Icon for \\'Replace\\' in the editor find widget.'));\nexport const findReplaceAllIcon = registerIcon('find-replace-all', Codicon.replaceAll, nls.localize('findReplaceAllIcon', 'Icon for \\'Replace All\\' in the editor find widget.'));\nexport const findPreviousMatchIcon = registerIcon('find-previous-match', Codicon.arrowUp, nls.localize('findPreviousMatchIcon', 'Icon for \\'Find Previous\\' in the editor find widget.'));\nexport const findNextMatchIcon = registerIcon('find-next-match', Codicon.arrowDown, nls.localize('findNextMatchIcon', 'Icon for \\'Find Next\\' in the editor find widget.'));\nconst NLS_FIND_DIALOG_LABEL = nls.localize('label.findDialog', \"Find / Replace\");\nconst NLS_FIND_INPUT_LABEL = nls.localize('label.find', \"Find\");\nconst NLS_FIND_INPUT_PLACEHOLDER = nls.localize('placeholder.find', \"Find\");\nconst NLS_PREVIOUS_MATCH_BTN_LABEL = nls.localize('label.previousMatchButton', \"Previous Match\");\nconst NLS_NEXT_MATCH_BTN_LABEL = nls.localize('label.nextMatchButton', \"Next Match\");\nconst NLS_TOGGLE_SELECTION_FIND_TITLE = nls.localize('label.toggleSelectionFind', \"Find in Selection\");\nconst NLS_CLOSE_BTN_LABEL = nls.localize('label.closeButton', \"Close\");\nconst NLS_REPLACE_INPUT_LABEL = nls.localize('label.replace', \"Replace\");\nconst NLS_REPLACE_INPUT_PLACEHOLDER = nls.localize('placeholder.replace', \"Replace\");\nconst NLS_REPLACE_BTN_LABEL = nls.localize('label.replaceButton', \"Replace\");\nconst NLS_REPLACE_ALL_BTN_LABEL = nls.localize('label.replaceAllButton', \"Replace All\");\nconst NLS_TOGGLE_REPLACE_MODE_BTN_LABEL = nls.localize('label.toggleReplaceButton', \"Toggle Replace\");\nconst NLS_MATCHES_COUNT_LIMIT_TITLE = nls.localize('title.matchesCountLimit', \"Only the first {0} results are highlighted, but all find operations work on the entire text.\", MATCHES_LIMIT);\nexport const NLS_MATCHES_LOCATION = nls.localize('label.matchesLocation', \"{0} of {1}\");\nexport const NLS_NO_RESULTS = nls.localize('label.noResults', \"No results\");\nconst FIND_WIDGET_INITIAL_WIDTH = 419;\nconst PART_WIDTH = 275;\nconst FIND_INPUT_AREA_WIDTH = PART_WIDTH - 54;\nlet MAX_MATCHES_COUNT_WIDTH = 69;\n// let FIND_ALL_CONTROLS_WIDTH = 17/** Find Input margin-left */ + (MAX_MATCHES_COUNT_WIDTH + 3 + 1) /** Match Results */ + 23 /** Button */ * 4 + 2/** sash */;\nconst FIND_INPUT_AREA_HEIGHT = 33; // The height of Find Widget when Replace Input is not visible.\nconst ctrlEnterReplaceAllWarningPromptedKey = 'ctrlEnterReplaceAll.windows.donotask';\nconst ctrlKeyMod = (platform.isMacintosh ? 256 /* KeyMod.WinCtrl */ : 2048 /* KeyMod.CtrlCmd */);\nexport class FindWidgetViewZone {\n constructor(afterLineNumber) {\n this.afterLineNumber = afterLineNumber;\n this.heightInPx = FIND_INPUT_AREA_HEIGHT;\n this.suppressMouseDown = false;\n this.domNode = document.createElement('div');\n this.domNode.className = 'dock-find-viewzone';\n }\n}\nfunction stopPropagationForMultiLineUpwards(event, value, textarea) {\n const isMultiline = !!value.match(/\\n/);\n if (textarea && isMultiline && textarea.selectionStart > 0) {\n event.stopPropagation();\n return;\n }\n}\nfunction stopPropagationForMultiLineDownwards(event, value, textarea) {\n const isMultiline = !!value.match(/\\n/);\n if (textarea && isMultiline && textarea.selectionEnd < textarea.value.length) {\n event.stopPropagation();\n return;\n }\n}\nexport class FindWidget extends Widget {\n constructor(codeEditor, controller, state, contextViewProvider, keybindingService, contextKeyService, themeService, storageService, notificationService, _hoverService) {\n super();\n this._hoverService = _hoverService;\n this._cachedHeight = null;\n this._revealTimeouts = [];\n this._codeEditor = codeEditor;\n this._controller = controller;\n this._state = state;\n this._contextViewProvider = contextViewProvider;\n this._keybindingService = keybindingService;\n this._contextKeyService = contextKeyService;\n this._storageService = storageService;\n this._notificationService = notificationService;\n this._ctrlEnterReplaceAllWarningPrompted = !!storageService.getBoolean(ctrlEnterReplaceAllWarningPromptedKey, 0 /* StorageScope.PROFILE */);\n this._isVisible = false;\n this._isReplaceVisible = false;\n this._ignoreChangeEvent = false;\n this._updateHistoryDelayer = new Delayer(500);\n this._register(toDisposable(() => this._updateHistoryDelayer.cancel()));\n this._register(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n this._buildDomNode();\n this._updateButtons();\n this._tryUpdateWidgetWidth();\n this._findInput.inputBox.layout();\n this._register(this._codeEditor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(91 /* EditorOption.readOnly */)) {\n if (this._codeEditor.getOption(91 /* EditorOption.readOnly */)) {\n // Hide replace part if editor becomes read only\n this._state.change({ isReplaceRevealed: false }, false);\n }\n this._updateButtons();\n }\n if (e.hasChanged(145 /* EditorOption.layoutInfo */)) {\n this._tryUpdateWidgetWidth();\n }\n if (e.hasChanged(2 /* EditorOption.accessibilitySupport */)) {\n this.updateAccessibilitySupport();\n }\n if (e.hasChanged(41 /* EditorOption.find */)) {\n const supportLoop = this._codeEditor.getOption(41 /* EditorOption.find */).loop;\n this._state.change({ loop: supportLoop }, false);\n const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n if (addExtraSpaceOnTop && !this._viewZone) {\n this._viewZone = new FindWidgetViewZone(0);\n this._showViewZone();\n }\n if (!addExtraSpaceOnTop && this._viewZone) {\n this._removeViewZone();\n }\n }\n }));\n this.updateAccessibilitySupport();\n this._register(this._codeEditor.onDidChangeCursorSelection(() => {\n if (this._isVisible) {\n this._updateToggleSelectionFindButton();\n }\n }));\n this._register(this._codeEditor.onDidFocusEditorWidget(async () => {\n if (this._isVisible) {\n const globalBufferTerm = await this._controller.getGlobalBufferTerm();\n if (globalBufferTerm && globalBufferTerm !== this._state.searchString) {\n this._state.change({ searchString: globalBufferTerm }, false);\n this._findInput.select();\n }\n }\n }));\n this._findInputFocused = CONTEXT_FIND_INPUT_FOCUSED.bindTo(contextKeyService);\n this._findFocusTracker = this._register(dom.trackFocus(this._findInput.inputBox.inputElement));\n this._register(this._findFocusTracker.onDidFocus(() => {\n this._findInputFocused.set(true);\n this._updateSearchScope();\n }));\n this._register(this._findFocusTracker.onDidBlur(() => {\n this._findInputFocused.set(false);\n }));\n this._replaceInputFocused = CONTEXT_REPLACE_INPUT_FOCUSED.bindTo(contextKeyService);\n this._replaceFocusTracker = this._register(dom.trackFocus(this._replaceInput.inputBox.inputElement));\n this._register(this._replaceFocusTracker.onDidFocus(() => {\n this._replaceInputFocused.set(true);\n this._updateSearchScope();\n }));\n this._register(this._replaceFocusTracker.onDidBlur(() => {\n this._replaceInputFocused.set(false);\n }));\n this._codeEditor.addOverlayWidget(this);\n if (this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop) {\n this._viewZone = new FindWidgetViewZone(0); // Put it before the first line then users can scroll beyond the first line.\n }\n this._register(this._codeEditor.onDidChangeModel(() => {\n if (!this._isVisible) {\n return;\n }\n this._viewZoneId = undefined;\n }));\n this._register(this._codeEditor.onDidScrollChange((e) => {\n if (e.scrollTopChanged) {\n this._layoutViewZone();\n return;\n }\n // for other scroll changes, layout the viewzone in next tick to avoid ruining current rendering.\n setTimeout(() => {\n this._layoutViewZone();\n }, 0);\n }));\n }\n // ----- IOverlayWidget API\n getId() {\n return FindWidget.ID;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n if (this._isVisible) {\n return {\n preference: 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */\n };\n }\n return null;\n }\n // ----- React to state changes\n _onStateChanged(e) {\n if (e.searchString) {\n try {\n this._ignoreChangeEvent = true;\n this._findInput.setValue(this._state.searchString);\n }\n finally {\n this._ignoreChangeEvent = false;\n }\n this._updateButtons();\n }\n if (e.replaceString) {\n this._replaceInput.inputBox.value = this._state.replaceString;\n }\n if (e.isRevealed) {\n if (this._state.isRevealed) {\n this._reveal();\n }\n else {\n this._hide(true);\n }\n }\n if (e.isReplaceRevealed) {\n if (this._state.isReplaceRevealed) {\n if (!this._codeEditor.getOption(91 /* EditorOption.readOnly */) && !this._isReplaceVisible) {\n this._isReplaceVisible = true;\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n this._updateButtons();\n this._replaceInput.inputBox.layout();\n }\n }\n else {\n if (this._isReplaceVisible) {\n this._isReplaceVisible = false;\n this._updateButtons();\n }\n }\n }\n if ((e.isRevealed || e.isReplaceRevealed) && (this._state.isRevealed || this._state.isReplaceRevealed)) {\n if (this._tryUpdateHeight()) {\n this._showViewZone();\n }\n }\n if (e.isRegex) {\n this._findInput.setRegex(this._state.isRegex);\n }\n if (e.wholeWord) {\n this._findInput.setWholeWords(this._state.wholeWord);\n }\n if (e.matchCase) {\n this._findInput.setCaseSensitive(this._state.matchCase);\n }\n if (e.preserveCase) {\n this._replaceInput.setPreserveCase(this._state.preserveCase);\n }\n if (e.searchScope) {\n if (this._state.searchScope) {\n this._toggleSelectionFind.checked = true;\n }\n else {\n this._toggleSelectionFind.checked = false;\n }\n this._updateToggleSelectionFindButton();\n }\n if (e.searchString || e.matchesCount || e.matchesPosition) {\n const showRedOutline = (this._state.searchString.length > 0 && this._state.matchesCount === 0);\n this._domNode.classList.toggle('no-results', showRedOutline);\n this._updateMatchesCount();\n this._updateButtons();\n }\n if (e.searchString || e.currentMatch) {\n this._layoutViewZone();\n }\n if (e.updateHistory) {\n this._delayedUpdateHistory();\n }\n if (e.loop) {\n this._updateButtons();\n }\n }\n _delayedUpdateHistory() {\n this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(undefined, onUnexpectedError);\n }\n _updateHistory() {\n if (this._state.searchString) {\n this._findInput.inputBox.addToHistory();\n }\n if (this._state.replaceString) {\n this._replaceInput.inputBox.addToHistory();\n }\n }\n _updateMatchesCount() {\n this._matchesCount.style.minWidth = MAX_MATCHES_COUNT_WIDTH + 'px';\n if (this._state.matchesCount >= MATCHES_LIMIT) {\n this._matchesCount.title = NLS_MATCHES_COUNT_LIMIT_TITLE;\n }\n else {\n this._matchesCount.title = '';\n }\n // remove previous content\n if (this._matchesCount.firstChild) {\n this._matchesCount.removeChild(this._matchesCount.firstChild);\n }\n let label;\n if (this._state.matchesCount > 0) {\n let matchesCount = String(this._state.matchesCount);\n if (this._state.matchesCount >= MATCHES_LIMIT) {\n matchesCount += '+';\n }\n let matchesPosition = String(this._state.matchesPosition);\n if (matchesPosition === '0') {\n matchesPosition = '?';\n }\n label = strings.format(NLS_MATCHES_LOCATION, matchesPosition, matchesCount);\n }\n else {\n label = NLS_NO_RESULTS;\n }\n this._matchesCount.appendChild(document.createTextNode(label));\n alertFn(this._getAriaLabel(label, this._state.currentMatch, this._state.searchString));\n MAX_MATCHES_COUNT_WIDTH = Math.max(MAX_MATCHES_COUNT_WIDTH, this._matchesCount.clientWidth);\n }\n // ----- actions\n _getAriaLabel(label, currentMatch, searchString) {\n if (label === NLS_NO_RESULTS) {\n return searchString === ''\n ? nls.localize('ariaSearchNoResultEmpty', \"{0} found\", label)\n : nls.localize('ariaSearchNoResult', \"{0} found for '{1}'\", label, searchString);\n }\n if (currentMatch) {\n const ariaLabel = nls.localize('ariaSearchNoResultWithLineNum', \"{0} found for '{1}', at {2}\", label, searchString, currentMatch.startLineNumber + ':' + currentMatch.startColumn);\n const model = this._codeEditor.getModel();\n if (model && (currentMatch.startLineNumber <= model.getLineCount()) && (currentMatch.startLineNumber >= 1)) {\n const lineContent = model.getLineContent(currentMatch.startLineNumber);\n return `${lineContent}, ${ariaLabel}`;\n }\n return ariaLabel;\n }\n return nls.localize('ariaSearchNoResultWithLineNumNoCurrentMatch', \"{0} found for '{1}'\", label, searchString);\n }\n /**\n * If 'selection find' is ON we should not disable the button (its function is to cancel 'selection find').\n * If 'selection find' is OFF we enable the button only if there is a selection.\n */\n _updateToggleSelectionFindButton() {\n const selection = this._codeEditor.getSelection();\n const isSelection = selection ? (selection.startLineNumber !== selection.endLineNumber || selection.startColumn !== selection.endColumn) : false;\n const isChecked = this._toggleSelectionFind.checked;\n if (this._isVisible && (isChecked || isSelection)) {\n this._toggleSelectionFind.enable();\n }\n else {\n this._toggleSelectionFind.disable();\n }\n }\n _updateButtons() {\n this._findInput.setEnabled(this._isVisible);\n this._replaceInput.setEnabled(this._isVisible && this._isReplaceVisible);\n this._updateToggleSelectionFindButton();\n this._closeBtn.setEnabled(this._isVisible);\n const findInputIsNonEmpty = (this._state.searchString.length > 0);\n const matchesCount = this._state.matchesCount ? true : false;\n this._prevBtn.setEnabled(this._isVisible && findInputIsNonEmpty && matchesCount && this._state.canNavigateBack());\n this._nextBtn.setEnabled(this._isVisible && findInputIsNonEmpty && matchesCount && this._state.canNavigateForward());\n this._replaceBtn.setEnabled(this._isVisible && this._isReplaceVisible && findInputIsNonEmpty);\n this._replaceAllBtn.setEnabled(this._isVisible && this._isReplaceVisible && findInputIsNonEmpty);\n this._domNode.classList.toggle('replaceToggled', this._isReplaceVisible);\n this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n const canReplace = !this._codeEditor.getOption(91 /* EditorOption.readOnly */);\n this._toggleReplaceBtn.setEnabled(this._isVisible && canReplace);\n }\n _reveal() {\n this._revealTimeouts.forEach(e => {\n clearTimeout(e);\n });\n this._revealTimeouts = [];\n if (!this._isVisible) {\n this._isVisible = true;\n const selection = this._codeEditor.getSelection();\n switch (this._codeEditor.getOption(41 /* EditorOption.find */).autoFindInSelection) {\n case 'always':\n this._toggleSelectionFind.checked = true;\n break;\n case 'never':\n this._toggleSelectionFind.checked = false;\n break;\n case 'multiline': {\n const isSelectionMultipleLine = !!selection && selection.startLineNumber !== selection.endLineNumber;\n this._toggleSelectionFind.checked = isSelectionMultipleLine;\n break;\n }\n default:\n break;\n }\n this._tryUpdateWidgetWidth();\n this._updateButtons();\n this._revealTimeouts.push(setTimeout(() => {\n this._domNode.classList.add('visible');\n this._domNode.setAttribute('aria-hidden', 'false');\n }, 0));\n // validate query again as it's being dismissed when we hide the find widget.\n this._revealTimeouts.push(setTimeout(() => {\n this._findInput.validate();\n }, 200));\n this._codeEditor.layoutOverlayWidget(this);\n let adjustEditorScrollTop = true;\n if (this._codeEditor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection && selection) {\n const domNode = this._codeEditor.getDomNode();\n if (domNode) {\n const editorCoords = dom.getDomNodePagePosition(domNode);\n const startCoords = this._codeEditor.getScrolledVisiblePosition(selection.getStartPosition());\n const startLeft = editorCoords.left + (startCoords ? startCoords.left : 0);\n const startTop = startCoords ? startCoords.top : 0;\n if (this._viewZone && startTop < this._viewZone.heightInPx) {\n if (selection.endLineNumber > selection.startLineNumber) {\n adjustEditorScrollTop = false;\n }\n const leftOfFindWidget = dom.getTopLeftOffset(this._domNode).left;\n if (startLeft > leftOfFindWidget) {\n adjustEditorScrollTop = false;\n }\n const endCoords = this._codeEditor.getScrolledVisiblePosition(selection.getEndPosition());\n const endLeft = editorCoords.left + (endCoords ? endCoords.left : 0);\n if (endLeft > leftOfFindWidget) {\n adjustEditorScrollTop = false;\n }\n }\n }\n }\n this._showViewZone(adjustEditorScrollTop);\n }\n }\n _hide(focusTheEditor) {\n this._revealTimeouts.forEach(e => {\n clearTimeout(e);\n });\n this._revealTimeouts = [];\n if (this._isVisible) {\n this._isVisible = false;\n this._updateButtons();\n this._domNode.classList.remove('visible');\n this._domNode.setAttribute('aria-hidden', 'true');\n this._findInput.clearMessage();\n if (focusTheEditor) {\n this._codeEditor.focus();\n }\n this._codeEditor.layoutOverlayWidget(this);\n this._removeViewZone();\n }\n }\n _layoutViewZone(targetScrollTop) {\n const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n if (!addExtraSpaceOnTop) {\n this._removeViewZone();\n return;\n }\n if (!this._isVisible) {\n return;\n }\n const viewZone = this._viewZone;\n if (this._viewZoneId !== undefined || !viewZone) {\n return;\n }\n this._codeEditor.changeViewZones((accessor) => {\n viewZone.heightInPx = this._getHeight();\n this._viewZoneId = accessor.addZone(viewZone);\n // scroll top adjust to make sure the editor doesn't scroll when adding viewzone at the beginning.\n this._codeEditor.setScrollTop(targetScrollTop || this._codeEditor.getScrollTop() + viewZone.heightInPx);\n });\n }\n _showViewZone(adjustScroll = true) {\n if (!this._isVisible) {\n return;\n }\n const addExtraSpaceOnTop = this._codeEditor.getOption(41 /* EditorOption.find */).addExtraSpaceOnTop;\n if (!addExtraSpaceOnTop) {\n return;\n }\n if (this._viewZone === undefined) {\n this._viewZone = new FindWidgetViewZone(0);\n }\n const viewZone = this._viewZone;\n this._codeEditor.changeViewZones((accessor) => {\n if (this._viewZoneId !== undefined) {\n // the view zone already exists, we need to update the height\n const newHeight = this._getHeight();\n if (newHeight === viewZone.heightInPx) {\n return;\n }\n const scrollAdjustment = newHeight - viewZone.heightInPx;\n viewZone.heightInPx = newHeight;\n accessor.layoutZone(this._viewZoneId);\n if (adjustScroll) {\n this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n }\n return;\n }\n else {\n let scrollAdjustment = this._getHeight();\n // if the editor has top padding, factor that into the zone height\n scrollAdjustment -= this._codeEditor.getOption(84 /* EditorOption.padding */).top;\n if (scrollAdjustment <= 0) {\n return;\n }\n viewZone.heightInPx = scrollAdjustment;\n this._viewZoneId = accessor.addZone(viewZone);\n if (adjustScroll) {\n this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() + scrollAdjustment);\n }\n }\n });\n }\n _removeViewZone() {\n this._codeEditor.changeViewZones((accessor) => {\n if (this._viewZoneId !== undefined) {\n accessor.removeZone(this._viewZoneId);\n this._viewZoneId = undefined;\n if (this._viewZone) {\n this._codeEditor.setScrollTop(this._codeEditor.getScrollTop() - this._viewZone.heightInPx);\n this._viewZone = undefined;\n }\n }\n });\n }\n _tryUpdateWidgetWidth() {\n if (!this._isVisible) {\n return;\n }\n if (!this._domNode.isConnected) {\n // the widget is not in the DOM\n return;\n }\n const layoutInfo = this._codeEditor.getLayoutInfo();\n const editorContentWidth = layoutInfo.contentWidth;\n if (editorContentWidth <= 0) {\n // for example, diff view original editor\n this._domNode.classList.add('hiddenEditor');\n return;\n }\n else if (this._domNode.classList.contains('hiddenEditor')) {\n this._domNode.classList.remove('hiddenEditor');\n }\n const editorWidth = layoutInfo.width;\n const minimapWidth = layoutInfo.minimap.minimapWidth;\n let collapsedFindWidget = false;\n let reducedFindWidget = false;\n let narrowFindWidget = false;\n if (this._resized) {\n const widgetWidth = dom.getTotalWidth(this._domNode);\n if (widgetWidth > FIND_WIDGET_INITIAL_WIDTH) {\n // as the widget is resized by users, we may need to change the max width of the widget as the editor width changes.\n this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n return;\n }\n }\n if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth >= editorWidth) {\n reducedFindWidget = true;\n }\n if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH >= editorWidth) {\n narrowFindWidget = true;\n }\n if (FIND_WIDGET_INITIAL_WIDTH + 28 + minimapWidth - MAX_MATCHES_COUNT_WIDTH >= editorWidth + 50) {\n collapsedFindWidget = true;\n }\n this._domNode.classList.toggle('collapsed-find-widget', collapsedFindWidget);\n this._domNode.classList.toggle('narrow-find-widget', narrowFindWidget);\n this._domNode.classList.toggle('reduced-find-widget', reducedFindWidget);\n if (!narrowFindWidget && !collapsedFindWidget) {\n // the minimal left offset of findwidget is 15px.\n this._domNode.style.maxWidth = `${editorWidth - 28 - minimapWidth - 15}px`;\n }\n this._findInput.layout({ collapsedFindWidget, narrowFindWidget, reducedFindWidget });\n if (this._resized) {\n const findInputWidth = this._findInput.inputBox.element.clientWidth;\n if (findInputWidth > 0) {\n this._replaceInput.width = findInputWidth;\n }\n }\n else if (this._isReplaceVisible) {\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n }\n }\n _getHeight() {\n let totalheight = 0;\n // find input margin top\n totalheight += 4;\n // find input height\n totalheight += this._findInput.inputBox.height + 2 /** input box border */;\n if (this._isReplaceVisible) {\n // replace input margin\n totalheight += 4;\n totalheight += this._replaceInput.inputBox.height + 2 /** input box border */;\n }\n // margin bottom\n totalheight += 4;\n return totalheight;\n }\n _tryUpdateHeight() {\n const totalHeight = this._getHeight();\n if (this._cachedHeight !== null && this._cachedHeight === totalHeight) {\n return false;\n }\n this._cachedHeight = totalHeight;\n this._domNode.style.height = `${totalHeight}px`;\n return true;\n }\n // ----- Public\n focusFindInput() {\n this._findInput.select();\n // Edge browser requires focus() in addition to select()\n this._findInput.focus();\n }\n focusReplaceInput() {\n this._replaceInput.select();\n // Edge browser requires focus() in addition to select()\n this._replaceInput.focus();\n }\n highlightFindOptions() {\n this._findInput.highlightFindOptions();\n }\n _updateSearchScope() {\n if (!this._codeEditor.hasModel()) {\n return;\n }\n if (this._toggleSelectionFind.checked) {\n const selections = this._codeEditor.getSelections();\n selections.map(selection => {\n if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n }\n const currentMatch = this._state.currentMatch;\n if (selection.startLineNumber !== selection.endLineNumber) {\n if (!Range.equalsRange(selection, currentMatch)) {\n return selection;\n }\n }\n return null;\n }).filter(element => !!element);\n if (selections.length) {\n this._state.change({ searchScope: selections }, true);\n }\n }\n }\n _onFindInputMouseDown(e) {\n // on linux, middle key does pasting.\n if (e.middleButton) {\n e.stopPropagation();\n }\n }\n _onFindInputKeyDown(e) {\n if (e.equals(ctrlKeyMod | 3 /* KeyCode.Enter */)) {\n if (this._keybindingService.dispatchEvent(e, e.target)) {\n e.preventDefault();\n return;\n }\n else {\n this._findInput.inputBox.insertAtCursor('\\n');\n e.preventDefault();\n return;\n }\n }\n if (e.equals(2 /* KeyCode.Tab */)) {\n if (this._isReplaceVisible) {\n this._replaceInput.focus();\n }\n else {\n this._findInput.focusOnCaseSensitive();\n }\n e.preventDefault();\n return;\n }\n if (e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)) {\n this._codeEditor.focus();\n e.preventDefault();\n return;\n }\n if (e.equals(16 /* KeyCode.UpArrow */)) {\n return stopPropagationForMultiLineUpwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector('textarea'));\n }\n if (e.equals(18 /* KeyCode.DownArrow */)) {\n return stopPropagationForMultiLineDownwards(e, this._findInput.getValue(), this._findInput.domNode.querySelector('textarea'));\n }\n }\n _onReplaceInputKeyDown(e) {\n if (e.equals(ctrlKeyMod | 3 /* KeyCode.Enter */)) {\n if (this._keybindingService.dispatchEvent(e, e.target)) {\n e.preventDefault();\n return;\n }\n else {\n if (platform.isWindows && platform.isNative && !this._ctrlEnterReplaceAllWarningPrompted) {\n // this is the first time when users press Ctrl + Enter to replace all\n this._notificationService.info(nls.localize('ctrlEnter.keybindingChanged', 'Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.'));\n this._ctrlEnterReplaceAllWarningPrompted = true;\n this._storageService.store(ctrlEnterReplaceAllWarningPromptedKey, true, 0 /* StorageScope.PROFILE */, 0 /* StorageTarget.USER */);\n }\n this._replaceInput.inputBox.insertAtCursor('\\n');\n e.preventDefault();\n return;\n }\n }\n if (e.equals(2 /* KeyCode.Tab */)) {\n this._findInput.focusOnCaseSensitive();\n e.preventDefault();\n return;\n }\n if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n this._findInput.focus();\n e.preventDefault();\n return;\n }\n if (e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)) {\n this._codeEditor.focus();\n e.preventDefault();\n return;\n }\n if (e.equals(16 /* KeyCode.UpArrow */)) {\n return stopPropagationForMultiLineUpwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector('textarea'));\n }\n if (e.equals(18 /* KeyCode.DownArrow */)) {\n return stopPropagationForMultiLineDownwards(e, this._replaceInput.inputBox.value, this._replaceInput.inputBox.element.querySelector('textarea'));\n }\n }\n // ----- sash\n getVerticalSashLeft(_sash) {\n return 0;\n }\n // ----- initialization\n _keybindingLabelFor(actionId) {\n const kb = this._keybindingService.lookupKeybinding(actionId);\n if (!kb) {\n return '';\n }\n return ` (${kb.getLabel()})`;\n }\n _buildDomNode() {\n const flexibleHeight = true;\n const flexibleWidth = true;\n // Find input\n this._findInput = this._register(new ContextScopedFindInput(null, this._contextViewProvider, {\n width: FIND_INPUT_AREA_WIDTH,\n label: NLS_FIND_INPUT_LABEL,\n placeholder: NLS_FIND_INPUT_PLACEHOLDER,\n appendCaseSensitiveLabel: this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),\n appendWholeWordsLabel: this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),\n appendRegexLabel: this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),\n validation: (value) => {\n if (value.length === 0 || !this._findInput.getRegex()) {\n return null;\n }\n try {\n // use `g` and `u` which are also used by the TextModel search\n new RegExp(value, 'gu');\n return null;\n }\n catch (e) {\n return { content: e.message };\n }\n },\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight: 118,\n showCommonFindToggles: true,\n showHistoryHint: () => showHistoryKeybindingHint(this._keybindingService),\n inputBoxStyles: defaultInputBoxStyles,\n toggleStyles: defaultToggleStyles\n }, this._contextKeyService));\n this._findInput.setRegex(!!this._state.isRegex);\n this._findInput.setCaseSensitive(!!this._state.matchCase);\n this._findInput.setWholeWords(!!this._state.wholeWord);\n this._register(this._findInput.onKeyDown((e) => this._onFindInputKeyDown(e)));\n this._register(this._findInput.inputBox.onDidChange(() => {\n if (this._ignoreChangeEvent) {\n return;\n }\n this._state.change({ searchString: this._findInput.getValue() }, true);\n }));\n this._register(this._findInput.onDidOptionChange(() => {\n this._state.change({\n isRegex: this._findInput.getRegex(),\n wholeWord: this._findInput.getWholeWords(),\n matchCase: this._findInput.getCaseSensitive()\n }, true);\n }));\n this._register(this._findInput.onCaseSensitiveKeyDown((e) => {\n if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n if (this._isReplaceVisible) {\n this._replaceInput.focus();\n e.preventDefault();\n }\n }\n }));\n this._register(this._findInput.onRegexKeyDown((e) => {\n if (e.equals(2 /* KeyCode.Tab */)) {\n if (this._isReplaceVisible) {\n this._replaceInput.focusOnPreserve();\n e.preventDefault();\n }\n }\n }));\n this._register(this._findInput.inputBox.onDidHeightChange((e) => {\n if (this._tryUpdateHeight()) {\n this._showViewZone();\n }\n }));\n if (platform.isLinux) {\n this._register(this._findInput.onMouseDown((e) => this._onFindInputMouseDown(e)));\n }\n this._matchesCount = document.createElement('div');\n this._matchesCount.className = 'matchesCount';\n this._updateMatchesCount();\n // Create a scoped hover delegate for all find related buttons\n const hoverDelegate = this._register(createInstantHoverDelegate());\n // Previous button\n this._prevBtn = this._register(new SimpleButton({\n label: NLS_PREVIOUS_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),\n icon: findPreviousMatchIcon,\n hoverDelegate,\n onTrigger: () => {\n assertIsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(undefined, onUnexpectedError);\n }\n }, this._hoverService));\n // Next button\n this._nextBtn = this._register(new SimpleButton({\n label: NLS_NEXT_MATCH_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),\n icon: findNextMatchIcon,\n hoverDelegate,\n onTrigger: () => {\n assertIsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(undefined, onUnexpectedError);\n }\n }, this._hoverService));\n const findPart = document.createElement('div');\n findPart.className = 'find-part';\n findPart.appendChild(this._findInput.domNode);\n const actionsContainer = document.createElement('div');\n actionsContainer.className = 'find-actions';\n findPart.appendChild(actionsContainer);\n actionsContainer.appendChild(this._matchesCount);\n actionsContainer.appendChild(this._prevBtn.domNode);\n actionsContainer.appendChild(this._nextBtn.domNode);\n // Toggle selection button\n this._toggleSelectionFind = this._register(new Toggle({\n icon: findSelectionIcon,\n title: NLS_TOGGLE_SELECTION_FIND_TITLE + this._keybindingLabelFor(FIND_IDS.ToggleSearchScopeCommand),\n isChecked: false,\n hoverDelegate: hoverDelegate,\n inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground),\n inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n }));\n this._register(this._toggleSelectionFind.onChange(() => {\n if (this._toggleSelectionFind.checked) {\n if (this._codeEditor.hasModel()) {\n let selections = this._codeEditor.getSelections();\n selections = selections.map(selection => {\n if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n selection = selection.setEndPosition(selection.endLineNumber - 1, this._codeEditor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n }\n if (!selection.isEmpty()) {\n return selection;\n }\n return null;\n }).filter((element) => !!element);\n if (selections.length) {\n this._state.change({ searchScope: selections }, true);\n }\n }\n }\n else {\n this._state.change({ searchScope: null }, true);\n }\n }));\n actionsContainer.appendChild(this._toggleSelectionFind.domNode);\n // Close button\n this._closeBtn = this._register(new SimpleButton({\n label: NLS_CLOSE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),\n icon: widgetClose,\n hoverDelegate,\n onTrigger: () => {\n this._state.change({ isRevealed: false, searchScope: null }, false);\n },\n onKeyDown: (e) => {\n if (e.equals(2 /* KeyCode.Tab */)) {\n if (this._isReplaceVisible) {\n if (this._replaceBtn.isEnabled()) {\n this._replaceBtn.focus();\n }\n else {\n this._codeEditor.focus();\n }\n e.preventDefault();\n }\n }\n }\n }, this._hoverService));\n // Replace input\n this._replaceInput = this._register(new ContextScopedReplaceInput(null, undefined, {\n label: NLS_REPLACE_INPUT_LABEL,\n placeholder: NLS_REPLACE_INPUT_PLACEHOLDER,\n appendPreserveCaseLabel: this._keybindingLabelFor(FIND_IDS.TogglePreserveCaseCommand),\n history: [],\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight: 118,\n showHistoryHint: () => showHistoryKeybindingHint(this._keybindingService),\n inputBoxStyles: defaultInputBoxStyles,\n toggleStyles: defaultToggleStyles\n }, this._contextKeyService, true));\n this._replaceInput.setPreserveCase(!!this._state.preserveCase);\n this._register(this._replaceInput.onKeyDown((e) => this._onReplaceInputKeyDown(e)));\n this._register(this._replaceInput.inputBox.onDidChange(() => {\n this._state.change({ replaceString: this._replaceInput.inputBox.value }, false);\n }));\n this._register(this._replaceInput.inputBox.onDidHeightChange((e) => {\n if (this._isReplaceVisible && this._tryUpdateHeight()) {\n this._showViewZone();\n }\n }));\n this._register(this._replaceInput.onDidOptionChange(() => {\n this._state.change({\n preserveCase: this._replaceInput.getPreserveCase()\n }, true);\n }));\n this._register(this._replaceInput.onPreserveCaseKeyDown((e) => {\n if (e.equals(2 /* KeyCode.Tab */)) {\n if (this._prevBtn.isEnabled()) {\n this._prevBtn.focus();\n }\n else if (this._nextBtn.isEnabled()) {\n this._nextBtn.focus();\n }\n else if (this._toggleSelectionFind.enabled) {\n this._toggleSelectionFind.focus();\n }\n else if (this._closeBtn.isEnabled()) {\n this._closeBtn.focus();\n }\n e.preventDefault();\n }\n }));\n // Create scoped hover delegate for replace actions\n const replaceHoverDelegate = this._register(createInstantHoverDelegate());\n // Replace one button\n this._replaceBtn = this._register(new SimpleButton({\n label: NLS_REPLACE_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),\n icon: findReplaceIcon,\n hoverDelegate: replaceHoverDelegate,\n onTrigger: () => {\n this._controller.replace();\n },\n onKeyDown: (e) => {\n if (e.equals(1024 /* KeyMod.Shift */ | 2 /* KeyCode.Tab */)) {\n this._closeBtn.focus();\n e.preventDefault();\n }\n }\n }, this._hoverService));\n // Replace all button\n this._replaceAllBtn = this._register(new SimpleButton({\n label: NLS_REPLACE_ALL_BTN_LABEL + this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),\n icon: findReplaceAllIcon,\n hoverDelegate: replaceHoverDelegate,\n onTrigger: () => {\n this._controller.replaceAll();\n }\n }, this._hoverService));\n const replacePart = document.createElement('div');\n replacePart.className = 'replace-part';\n replacePart.appendChild(this._replaceInput.domNode);\n const replaceActionsContainer = document.createElement('div');\n replaceActionsContainer.className = 'replace-actions';\n replacePart.appendChild(replaceActionsContainer);\n replaceActionsContainer.appendChild(this._replaceBtn.domNode);\n replaceActionsContainer.appendChild(this._replaceAllBtn.domNode);\n // Toggle replace button\n this._toggleReplaceBtn = this._register(new SimpleButton({\n label: NLS_TOGGLE_REPLACE_MODE_BTN_LABEL,\n className: 'codicon toggle left',\n onTrigger: () => {\n this._state.change({ isReplaceRevealed: !this._isReplaceVisible }, false);\n if (this._isReplaceVisible) {\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n this._replaceInput.inputBox.layout();\n }\n this._showViewZone();\n }\n }, this._hoverService));\n this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);\n // Widget\n this._domNode = document.createElement('div');\n this._domNode.className = 'editor-widget find-widget';\n this._domNode.setAttribute('aria-hidden', 'true');\n this._domNode.ariaLabel = NLS_FIND_DIALOG_LABEL;\n this._domNode.role = 'dialog';\n // We need to set this explicitly, otherwise on IE11, the width inheritence of flex doesn't work.\n this._domNode.style.width = `${FIND_WIDGET_INITIAL_WIDTH}px`;\n this._domNode.appendChild(this._toggleReplaceBtn.domNode);\n this._domNode.appendChild(findPart);\n this._domNode.appendChild(this._closeBtn.domNode);\n this._domNode.appendChild(replacePart);\n this._resizeSash = this._register(new Sash(this._domNode, this, { orientation: 0 /* Orientation.VERTICAL */, size: 2 }));\n this._resized = false;\n let originalWidth = FIND_WIDGET_INITIAL_WIDTH;\n this._register(this._resizeSash.onDidStart(() => {\n originalWidth = dom.getTotalWidth(this._domNode);\n }));\n this._register(this._resizeSash.onDidChange((evt) => {\n this._resized = true;\n const width = originalWidth + evt.startX - evt.currentX;\n if (width < FIND_WIDGET_INITIAL_WIDTH) {\n // narrow down the find widget should be handled by CSS.\n return;\n }\n const maxWidth = parseFloat(dom.getComputedStyle(this._domNode).maxWidth) || 0;\n if (width > maxWidth) {\n return;\n }\n this._domNode.style.width = `${width}px`;\n if (this._isReplaceVisible) {\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n }\n this._findInput.inputBox.layout();\n this._tryUpdateHeight();\n }));\n this._register(this._resizeSash.onDidReset(() => {\n // users double click on the sash\n const currentWidth = dom.getTotalWidth(this._domNode);\n if (currentWidth < FIND_WIDGET_INITIAL_WIDTH) {\n // The editor is narrow and the width of the find widget is controlled fully by CSS.\n return;\n }\n let width = FIND_WIDGET_INITIAL_WIDTH;\n if (!this._resized || currentWidth === FIND_WIDGET_INITIAL_WIDTH) {\n // 1. never resized before, double click should maximizes it\n // 2. users resized it already but its width is the same as default\n const layoutInfo = this._codeEditor.getLayoutInfo();\n width = layoutInfo.width - 28 - layoutInfo.minimap.minimapWidth - 15;\n this._resized = true;\n }\n else {\n /**\n * no op, the find widget should be shrinked to its default size.\n */\n }\n this._domNode.style.width = `${width}px`;\n if (this._isReplaceVisible) {\n this._replaceInput.width = dom.getTotalWidth(this._findInput.domNode);\n }\n this._findInput.inputBox.layout();\n }));\n }\n updateAccessibilitySupport() {\n const value = this._codeEditor.getOption(2 /* EditorOption.accessibilitySupport */);\n this._findInput.setFocusInputOnOptionClick(value !== 2 /* AccessibilitySupport.Enabled */);\n }\n}\nFindWidget.ID = 'editor.contrib.findWidget';\nexport class SimpleButton extends Widget {\n constructor(opts, hoverService) {\n var _a;\n super();\n this._opts = opts;\n let className = 'button';\n if (this._opts.className) {\n className = className + ' ' + this._opts.className;\n }\n if (this._opts.icon) {\n className = className + ' ' + ThemeIcon.asClassName(this._opts.icon);\n }\n this._domNode = document.createElement('div');\n this._domNode.tabIndex = 0;\n this._domNode.className = className;\n this._domNode.setAttribute('role', 'button');\n this._domNode.setAttribute('aria-label', this._opts.label);\n this._register(hoverService.setupUpdatableHover((_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'), this._domNode, this._opts.label));\n this.onclick(this._domNode, (e) => {\n this._opts.onTrigger();\n e.preventDefault();\n });\n this.onkeydown(this._domNode, (e) => {\n var _a, _b;\n if (e.equals(10 /* KeyCode.Space */) || e.equals(3 /* KeyCode.Enter */)) {\n this._opts.onTrigger();\n e.preventDefault();\n return;\n }\n (_b = (_a = this._opts).onKeyDown) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n });\n }\n get domNode() {\n return this._domNode;\n }\n isEnabled() {\n return (this._domNode.tabIndex >= 0);\n }\n focus() {\n this._domNode.focus();\n }\n setEnabled(enabled) {\n this._domNode.classList.toggle('disabled', !enabled);\n this._domNode.setAttribute('aria-disabled', String(!enabled));\n this._domNode.tabIndex = enabled ? 0 : -1;\n }\n setExpanded(expanded) {\n this._domNode.setAttribute('aria-expanded', String(!!expanded));\n if (expanded) {\n this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n this._domNode.classList.add(...ThemeIcon.asClassNameArray(findExpandedIcon));\n }\n else {\n this._domNode.classList.remove(...ThemeIcon.asClassNameArray(findExpandedIcon));\n this._domNode.classList.add(...ThemeIcon.asClassNameArray(findCollapsedIcon));\n }\n }\n}\n// theming\nregisterThemingParticipant((theme, collector) => {\n const findMatchHighlightBorder = theme.getColor(editorFindMatchHighlightBorder);\n if (findMatchHighlightBorder) {\n collector.addRule(`.monaco-editor .findMatch { border: 1px ${isHighContrast(theme.type) ? 'dotted' : 'solid'} ${findMatchHighlightBorder}; box-sizing: border-box; }`);\n }\n const findRangeHighlightBorder = theme.getColor(editorFindRangeHighlightBorder);\n if (findRangeHighlightBorder) {\n collector.addRule(`.monaco-editor .findScope { border: 1px ${isHighContrast(theme.type) ? 'dashed' : 'solid'} ${findRangeHighlightBorder}; }`);\n }\n const hcBorder = theme.getColor(contrastBorder);\n if (hcBorder) {\n collector.addRule(`.monaco-editor .find-widget { border: 1px solid ${hcBorder}; }`);\n }\n const findMatchForeground = theme.getColor(editorFindMatchForeground);\n if (findMatchForeground) {\n collector.addRule(`.monaco-editor .findMatchInline { color: ${findMatchForeground}; }`);\n }\n const findMatchHighlightForeground = theme.getColor(editorFindMatchHighlightForeground);\n if (findMatchHighlightForeground) {\n collector.addRule(`.monaco-editor .currentFindMatchInline { color: ${findMatchHighlightForeground}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar CommonFindController_1;\nimport { Delayer } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { EditorAction, EditorCommand, MultiEditorAction, registerEditorAction, registerEditorCommand, registerEditorContribution, registerMultiEditorAction } from '../../../browser/editorExtensions.js';\nimport { overviewRulerRangeHighlight } from '../../../common/core/editorColorRegistry.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { CONTEXT_FIND_INPUT_FOCUSED, CONTEXT_FIND_WIDGET_VISIBLE, CONTEXT_REPLACE_INPUT_FOCUSED, FindModelBoundToEditorModel, FIND_IDS, ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleSearchScopeKeybinding, ToggleWholeWordKeybinding } from './findModel.js';\nimport { FindOptionsWidget } from './findOptionsWidget.js';\nimport { FindReplaceState } from './findState.js';\nimport { FindWidget } from './findWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextViewService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService, Severity } from '../../../../platform/notification/common/notification.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nimport { IStorageService } from '../../../../platform/storage/common/storage.js';\nimport { IThemeService, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { IHoverService } from '../../../../platform/hover/browser/hover.js';\nconst SEARCH_STRING_MAX_LENGTH = 524288;\nexport function getSelectionSearchString(editor, seedSearchStringFromSelection = 'single', seedSearchStringFromNonEmptySelection = false) {\n if (!editor.hasModel()) {\n return null;\n }\n const selection = editor.getSelection();\n // if selection spans multiple lines, default search string to empty\n if ((seedSearchStringFromSelection === 'single' && selection.startLineNumber === selection.endLineNumber)\n || seedSearchStringFromSelection === 'multiple') {\n if (selection.isEmpty()) {\n const wordAtPosition = editor.getConfiguredWordAtPosition(selection.getStartPosition());\n if (wordAtPosition && (false === seedSearchStringFromNonEmptySelection)) {\n return wordAtPosition.word;\n }\n }\n else {\n if (editor.getModel().getValueLengthInRange(selection) < SEARCH_STRING_MAX_LENGTH) {\n return editor.getModel().getValueInRange(selection);\n }\n }\n }\n return null;\n}\nlet CommonFindController = CommonFindController_1 = class CommonFindController extends Disposable {\n get editor() {\n return this._editor;\n }\n static get(editor) {\n return editor.getContribution(CommonFindController_1.ID);\n }\n constructor(editor, contextKeyService, storageService, clipboardService, notificationService, hoverService) {\n super();\n this._editor = editor;\n this._findWidgetVisible = CONTEXT_FIND_WIDGET_VISIBLE.bindTo(contextKeyService);\n this._contextKeyService = contextKeyService;\n this._storageService = storageService;\n this._clipboardService = clipboardService;\n this._notificationService = notificationService;\n this._hoverService = hoverService;\n this._updateHistoryDelayer = new Delayer(500);\n this._state = this._register(new FindReplaceState());\n this.loadQueryState();\n this._register(this._state.onFindReplaceStateChange((e) => this._onStateChanged(e)));\n this._model = null;\n this._register(this._editor.onDidChangeModel(() => {\n const shouldRestartFind = (this._editor.getModel() && this._state.isRevealed);\n this.disposeModel();\n this._state.change({\n searchScope: null,\n matchCase: this._storageService.getBoolean('editor.matchCase', 1 /* StorageScope.WORKSPACE */, false),\n wholeWord: this._storageService.getBoolean('editor.wholeWord', 1 /* StorageScope.WORKSPACE */, false),\n isRegex: this._storageService.getBoolean('editor.isRegex', 1 /* StorageScope.WORKSPACE */, false),\n preserveCase: this._storageService.getBoolean('editor.preserveCase', 1 /* StorageScope.WORKSPACE */, false)\n }, false);\n if (shouldRestartFind) {\n this._start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: 'none',\n seedSearchStringFromNonEmptySelection: false,\n seedSearchStringFromGlobalClipboard: false,\n shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n shouldAnimate: false,\n updateSearchScope: false,\n loop: this._editor.getOption(41 /* EditorOption.find */).loop\n });\n }\n }));\n }\n dispose() {\n this.disposeModel();\n super.dispose();\n }\n disposeModel() {\n if (this._model) {\n this._model.dispose();\n this._model = null;\n }\n }\n _onStateChanged(e) {\n this.saveQueryState(e);\n if (e.isRevealed) {\n if (this._state.isRevealed) {\n this._findWidgetVisible.set(true);\n }\n else {\n this._findWidgetVisible.reset();\n this.disposeModel();\n }\n }\n if (e.searchString) {\n this.setGlobalBufferTerm(this._state.searchString);\n }\n }\n saveQueryState(e) {\n if (e.isRegex) {\n this._storageService.store('editor.isRegex', this._state.actualIsRegex, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n }\n if (e.wholeWord) {\n this._storageService.store('editor.wholeWord', this._state.actualWholeWord, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n }\n if (e.matchCase) {\n this._storageService.store('editor.matchCase', this._state.actualMatchCase, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n }\n if (e.preserveCase) {\n this._storageService.store('editor.preserveCase', this._state.actualPreserveCase, 1 /* StorageScope.WORKSPACE */, 1 /* StorageTarget.MACHINE */);\n }\n }\n loadQueryState() {\n this._state.change({\n matchCase: this._storageService.getBoolean('editor.matchCase', 1 /* StorageScope.WORKSPACE */, this._state.matchCase),\n wholeWord: this._storageService.getBoolean('editor.wholeWord', 1 /* StorageScope.WORKSPACE */, this._state.wholeWord),\n isRegex: this._storageService.getBoolean('editor.isRegex', 1 /* StorageScope.WORKSPACE */, this._state.isRegex),\n preserveCase: this._storageService.getBoolean('editor.preserveCase', 1 /* StorageScope.WORKSPACE */, this._state.preserveCase)\n }, false);\n }\n isFindInputFocused() {\n return !!CONTEXT_FIND_INPUT_FOCUSED.getValue(this._contextKeyService);\n }\n getState() {\n return this._state;\n }\n closeFindWidget() {\n this._state.change({\n isRevealed: false,\n searchScope: null\n }, false);\n this._editor.focus();\n }\n toggleCaseSensitive() {\n this._state.change({ matchCase: !this._state.matchCase }, false);\n if (!this._state.isRevealed) {\n this.highlightFindOptions();\n }\n }\n toggleWholeWords() {\n this._state.change({ wholeWord: !this._state.wholeWord }, false);\n if (!this._state.isRevealed) {\n this.highlightFindOptions();\n }\n }\n toggleRegex() {\n this._state.change({ isRegex: !this._state.isRegex }, false);\n if (!this._state.isRevealed) {\n this.highlightFindOptions();\n }\n }\n togglePreserveCase() {\n this._state.change({ preserveCase: !this._state.preserveCase }, false);\n if (!this._state.isRevealed) {\n this.highlightFindOptions();\n }\n }\n toggleSearchScope() {\n if (this._state.searchScope) {\n this._state.change({ searchScope: null }, true);\n }\n else {\n if (this._editor.hasModel()) {\n let selections = this._editor.getSelections();\n selections = selections.map(selection => {\n if (selection.endColumn === 1 && selection.endLineNumber > selection.startLineNumber) {\n selection = selection.setEndPosition(selection.endLineNumber - 1, this._editor.getModel().getLineMaxColumn(selection.endLineNumber - 1));\n }\n if (!selection.isEmpty()) {\n return selection;\n }\n return null;\n }).filter((element) => !!element);\n if (selections.length) {\n this._state.change({ searchScope: selections }, true);\n }\n }\n }\n }\n setSearchString(searchString) {\n if (this._state.isRegex) {\n searchString = strings.escapeRegExpCharacters(searchString);\n }\n this._state.change({ searchString: searchString }, false);\n }\n highlightFindOptions(ignoreWhenVisible = false) {\n // overwritten in subclass\n }\n async _start(opts, newState) {\n this.disposeModel();\n if (!this._editor.hasModel()) {\n // cannot do anything with an editor that doesn't have a model...\n return;\n }\n const stateChanges = {\n ...newState,\n isRevealed: true\n };\n if (opts.seedSearchStringFromSelection === 'single') {\n const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection, opts.seedSearchStringFromNonEmptySelection);\n if (selectionSearchString) {\n if (this._state.isRegex) {\n stateChanges.searchString = strings.escapeRegExpCharacters(selectionSearchString);\n }\n else {\n stateChanges.searchString = selectionSearchString;\n }\n }\n }\n else if (opts.seedSearchStringFromSelection === 'multiple' && !opts.updateSearchScope) {\n const selectionSearchString = getSelectionSearchString(this._editor, opts.seedSearchStringFromSelection);\n if (selectionSearchString) {\n stateChanges.searchString = selectionSearchString;\n }\n }\n if (!stateChanges.searchString && opts.seedSearchStringFromGlobalClipboard) {\n const selectionSearchString = await this.getGlobalBufferTerm();\n if (!this._editor.hasModel()) {\n // the editor has lost its model in the meantime\n return;\n }\n if (selectionSearchString) {\n stateChanges.searchString = selectionSearchString;\n }\n }\n // Overwrite isReplaceRevealed\n if (opts.forceRevealReplace || stateChanges.isReplaceRevealed) {\n stateChanges.isReplaceRevealed = true;\n }\n else if (!this._findWidgetVisible.get()) {\n stateChanges.isReplaceRevealed = false;\n }\n if (opts.updateSearchScope) {\n const currentSelections = this._editor.getSelections();\n if (currentSelections.some(selection => !selection.isEmpty())) {\n stateChanges.searchScope = currentSelections;\n }\n }\n stateChanges.loop = opts.loop;\n this._state.change(stateChanges, false);\n if (!this._model) {\n this._model = new FindModelBoundToEditorModel(this._editor, this._state);\n }\n }\n start(opts, newState) {\n return this._start(opts, newState);\n }\n moveToNextMatch() {\n if (this._model) {\n this._model.moveToNextMatch();\n return true;\n }\n return false;\n }\n moveToPrevMatch() {\n if (this._model) {\n this._model.moveToPrevMatch();\n return true;\n }\n return false;\n }\n goToMatch(index) {\n if (this._model) {\n this._model.moveToMatch(index);\n return true;\n }\n return false;\n }\n replace() {\n if (this._model) {\n this._model.replace();\n return true;\n }\n return false;\n }\n replaceAll() {\n var _a;\n if (this._model) {\n if ((_a = this._editor.getModel()) === null || _a === void 0 ? void 0 : _a.isTooLargeForHeapOperation()) {\n this._notificationService.warn(nls.localize('too.large.for.replaceall', \"The file is too large to perform a replace all operation.\"));\n return false;\n }\n this._model.replaceAll();\n return true;\n }\n return false;\n }\n selectAllMatches() {\n if (this._model) {\n this._model.selectAllMatches();\n this._editor.focus();\n return true;\n }\n return false;\n }\n async getGlobalBufferTerm() {\n if (this._editor.getOption(41 /* EditorOption.find */).globalFindClipboard\n && this._editor.hasModel()\n && !this._editor.getModel().isTooLargeForSyncing()) {\n return this._clipboardService.readFindText();\n }\n return '';\n }\n setGlobalBufferTerm(text) {\n if (this._editor.getOption(41 /* EditorOption.find */).globalFindClipboard\n && this._editor.hasModel()\n && !this._editor.getModel().isTooLargeForSyncing()) {\n // intentionally not awaited\n this._clipboardService.writeFindText(text);\n }\n }\n};\nCommonFindController.ID = 'editor.contrib.findController';\nCommonFindController = CommonFindController_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, IStorageService),\n __param(3, IClipboardService),\n __param(4, INotificationService),\n __param(5, IHoverService)\n], CommonFindController);\nexport { CommonFindController };\nlet FindController = class FindController extends CommonFindController {\n constructor(editor, _contextViewService, _contextKeyService, _keybindingService, _themeService, notificationService, _storageService, clipboardService, hoverService) {\n super(editor, _contextKeyService, _storageService, clipboardService, notificationService, hoverService);\n this._contextViewService = _contextViewService;\n this._keybindingService = _keybindingService;\n this._themeService = _themeService;\n this._widget = null;\n this._findOptionsWidget = null;\n }\n async _start(opts, newState) {\n if (!this._widget) {\n this._createFindWidget();\n }\n const selection = this._editor.getSelection();\n let updateSearchScope = false;\n switch (this._editor.getOption(41 /* EditorOption.find */).autoFindInSelection) {\n case 'always':\n updateSearchScope = true;\n break;\n case 'never':\n updateSearchScope = false;\n break;\n case 'multiline': {\n const isSelectionMultipleLine = !!selection && selection.startLineNumber !== selection.endLineNumber;\n updateSearchScope = isSelectionMultipleLine;\n break;\n }\n default:\n break;\n }\n opts.updateSearchScope = opts.updateSearchScope || updateSearchScope;\n await super._start(opts, newState);\n if (this._widget) {\n if (opts.shouldFocus === 2 /* FindStartFocusAction.FocusReplaceInput */) {\n this._widget.focusReplaceInput();\n }\n else if (opts.shouldFocus === 1 /* FindStartFocusAction.FocusFindInput */) {\n this._widget.focusFindInput();\n }\n }\n }\n highlightFindOptions(ignoreWhenVisible = false) {\n if (!this._widget) {\n this._createFindWidget();\n }\n if (this._state.isRevealed && !ignoreWhenVisible) {\n this._widget.highlightFindOptions();\n }\n else {\n this._findOptionsWidget.highlightFindOptions();\n }\n }\n _createFindWidget() {\n this._widget = this._register(new FindWidget(this._editor, this, this._state, this._contextViewService, this._keybindingService, this._contextKeyService, this._themeService, this._storageService, this._notificationService, this._hoverService));\n this._findOptionsWidget = this._register(new FindOptionsWidget(this._editor, this._state, this._keybindingService));\n }\n};\nFindController = __decorate([\n __param(1, IContextViewService),\n __param(2, IContextKeyService),\n __param(3, IKeybindingService),\n __param(4, IThemeService),\n __param(5, INotificationService),\n __param(6, IStorageService),\n __param(7, IClipboardService),\n __param(8, IHoverService)\n], FindController);\nexport { FindController };\nexport const StartFindAction = registerMultiEditorAction(new MultiEditorAction({\n id: FIND_IDS.StartFindAction,\n label: nls.localize('startFindAction', \"Find\"),\n alias: 'Find',\n precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),\n kbOpts: {\n kbExpr: null,\n primary: 2048 /* KeyMod.CtrlCmd */ | 36 /* KeyCode.KeyF */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarEditMenu,\n group: '3_find',\n title: nls.localize({ key: 'miFind', comment: ['&& denotes a mnemonic'] }, \"&&Find\"),\n order: 1\n }\n}));\nStartFindAction.addImplementation(0, (accessor, editor, args) => {\n const controller = CommonFindController.get(editor);\n if (!controller) {\n return false;\n }\n return controller.start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n seedSearchStringFromGlobalClipboard: editor.getOption(41 /* EditorOption.find */).globalFindClipboard,\n shouldFocus: 1 /* FindStartFocusAction.FocusFindInput */,\n shouldAnimate: true,\n updateSearchScope: false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n });\n});\nconst findArgDescription = {\n description: 'Open a new In-Editor Find Widget.',\n args: [{\n name: 'Open a new In-Editor Find Widget args',\n schema: {\n properties: {\n searchString: { type: 'string' },\n replaceString: { type: 'string' },\n isRegex: { type: 'boolean' },\n matchWholeWord: { type: 'boolean' },\n isCaseSensitive: { type: 'boolean' },\n preserveCase: { type: 'boolean' },\n findInSelection: { type: 'boolean' },\n }\n }\n }]\n};\nexport class StartFindWithArgsAction extends EditorAction {\n constructor() {\n super({\n id: FIND_IDS.StartFindWithArgs,\n label: nls.localize('startFindWithArgsAction', \"Find With Arguments\"),\n alias: 'Find With Arguments',\n precondition: undefined,\n kbOpts: {\n kbExpr: null,\n primary: 0,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: findArgDescription\n });\n }\n async run(accessor, editor, args) {\n const controller = CommonFindController.get(editor);\n if (controller) {\n const newState = args ? {\n searchString: args.searchString,\n replaceString: args.replaceString,\n isReplaceRevealed: args.replaceString !== undefined,\n isRegex: args.isRegex,\n // isRegexOverride: args.regexOverride,\n wholeWord: args.matchWholeWord,\n // wholeWordOverride: args.wholeWordOverride,\n matchCase: args.isCaseSensitive,\n // matchCaseOverride: args.matchCaseOverride,\n preserveCase: args.preserveCase,\n // preserveCaseOverride: args.preserveCaseOverride,\n } : {};\n await controller.start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: (controller.getState().searchString.length === 0) && editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n seedSearchStringFromGlobalClipboard: true,\n shouldFocus: 1 /* FindStartFocusAction.FocusFindInput */,\n shouldAnimate: true,\n updateSearchScope: (args === null || args === void 0 ? void 0 : args.findInSelection) || false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n }, newState);\n controller.setGlobalBufferTerm(controller.getState().searchString);\n }\n }\n}\nexport class StartFindWithSelectionAction extends EditorAction {\n constructor() {\n super({\n id: FIND_IDS.StartFindWithSelection,\n label: nls.localize('startFindWithSelectionAction', \"Find With Selection\"),\n alias: 'Find With Selection',\n precondition: undefined,\n kbOpts: {\n kbExpr: null,\n primary: 0,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 35 /* KeyCode.KeyE */,\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n async run(accessor, editor) {\n const controller = CommonFindController.get(editor);\n if (controller) {\n await controller.start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: 'multiple',\n seedSearchStringFromNonEmptySelection: false,\n seedSearchStringFromGlobalClipboard: false,\n shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n shouldAnimate: true,\n updateSearchScope: false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n });\n controller.setGlobalBufferTerm(controller.getState().searchString);\n }\n }\n}\nexport class MatchFindAction extends EditorAction {\n async run(accessor, editor) {\n const controller = CommonFindController.get(editor);\n if (controller && !this._run(controller)) {\n await controller.start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: (controller.getState().searchString.length === 0) && editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never' ? 'single' : 'none',\n seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n seedSearchStringFromGlobalClipboard: true,\n shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n shouldAnimate: true,\n updateSearchScope: false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n });\n this._run(controller);\n }\n }\n}\nexport class NextMatchFindAction extends MatchFindAction {\n constructor() {\n super({\n id: FIND_IDS.NextMatchFindAction,\n label: nls.localize('findNextMatchAction', \"Find Next\"),\n alias: 'Find Next',\n precondition: undefined,\n kbOpts: [{\n kbExpr: EditorContextKeys.focus,\n primary: 61 /* KeyCode.F3 */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 37 /* KeyCode.KeyG */, secondary: [61 /* KeyCode.F3 */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }, {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n primary: 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }]\n });\n }\n _run(controller) {\n const result = controller.moveToNextMatch();\n if (result) {\n controller.editor.pushUndoStop();\n return true;\n }\n return false;\n }\n}\nexport class PreviousMatchFindAction extends MatchFindAction {\n constructor() {\n super({\n id: FIND_IDS.PreviousMatchFindAction,\n label: nls.localize('findPreviousMatchAction', \"Find Previous\"),\n alias: 'Find Previous',\n precondition: undefined,\n kbOpts: [{\n kbExpr: EditorContextKeys.focus,\n primary: 1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 37 /* KeyCode.KeyG */, secondary: [1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }, {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_FIND_INPUT_FOCUSED),\n primary: 1024 /* KeyMod.Shift */ | 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n ]\n });\n }\n _run(controller) {\n return controller.moveToPrevMatch();\n }\n}\nexport class MoveToMatchFindAction extends EditorAction {\n constructor() {\n super({\n id: FIND_IDS.GoToMatchFindAction,\n label: nls.localize('findMatchAction.goToMatch', \"Go to Match...\"),\n alias: 'Go to Match...',\n precondition: CONTEXT_FIND_WIDGET_VISIBLE\n });\n this._highlightDecorations = [];\n }\n run(accessor, editor, args) {\n const controller = CommonFindController.get(editor);\n if (!controller) {\n return;\n }\n const matchesCount = controller.getState().matchesCount;\n if (matchesCount < 1) {\n const notificationService = accessor.get(INotificationService);\n notificationService.notify({\n severity: Severity.Warning,\n message: nls.localize('findMatchAction.noResults', \"No matches. Try searching for something else.\")\n });\n return;\n }\n const quickInputService = accessor.get(IQuickInputService);\n const inputBox = quickInputService.createInputBox();\n inputBox.placeholder = nls.localize('findMatchAction.inputPlaceHolder', \"Type a number to go to a specific match (between 1 and {0})\", matchesCount);\n const toFindMatchIndex = (value) => {\n const index = parseInt(value);\n if (isNaN(index)) {\n return undefined;\n }\n const matchCount = controller.getState().matchesCount;\n if (index > 0 && index <= matchCount) {\n return index - 1; // zero based\n }\n else if (index < 0 && index >= -matchCount) {\n return matchCount + index;\n }\n return undefined;\n };\n const updatePickerAndEditor = (value) => {\n const index = toFindMatchIndex(value);\n if (typeof index === 'number') {\n // valid\n inputBox.validationMessage = undefined;\n controller.goToMatch(index);\n const currentMatch = controller.getState().currentMatch;\n if (currentMatch) {\n this.addDecorations(editor, currentMatch);\n }\n }\n else {\n inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n this.clearDecorations(editor);\n }\n };\n inputBox.onDidChangeValue(value => {\n updatePickerAndEditor(value);\n });\n inputBox.onDidAccept(() => {\n const index = toFindMatchIndex(inputBox.value);\n if (typeof index === 'number') {\n controller.goToMatch(index);\n inputBox.hide();\n }\n else {\n inputBox.validationMessage = nls.localize('findMatchAction.inputValidationMessage', \"Please type a number between 1 and {0}\", controller.getState().matchesCount);\n }\n });\n inputBox.onDidHide(() => {\n this.clearDecorations(editor);\n inputBox.dispose();\n });\n inputBox.show();\n }\n clearDecorations(editor) {\n editor.changeDecorations(changeAccessor => {\n this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, []);\n });\n }\n addDecorations(editor, range) {\n editor.changeDecorations(changeAccessor => {\n this._highlightDecorations = changeAccessor.deltaDecorations(this._highlightDecorations, [\n {\n range,\n options: {\n description: 'find-match-quick-access-range-highlight',\n className: 'rangeHighlight',\n isWholeLine: true\n }\n },\n {\n range,\n options: {\n description: 'find-match-quick-access-range-highlight-overview',\n overviewRuler: {\n color: themeColorFromId(overviewRulerRangeHighlight),\n position: OverviewRulerLane.Full\n }\n }\n }\n ]);\n });\n }\n}\nexport class SelectionMatchFindAction extends EditorAction {\n async run(accessor, editor) {\n const controller = CommonFindController.get(editor);\n if (!controller) {\n return;\n }\n const selectionSearchString = getSelectionSearchString(editor, 'single', false);\n if (selectionSearchString) {\n controller.setSearchString(selectionSearchString);\n }\n if (!this._run(controller)) {\n await controller.start({\n forceRevealReplace: false,\n seedSearchStringFromSelection: 'none',\n seedSearchStringFromNonEmptySelection: false,\n seedSearchStringFromGlobalClipboard: false,\n shouldFocus: 0 /* FindStartFocusAction.NoFocusChange */,\n shouldAnimate: true,\n updateSearchScope: false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n });\n this._run(controller);\n }\n }\n}\nexport class NextSelectionMatchFindAction extends SelectionMatchFindAction {\n constructor() {\n super({\n id: FIND_IDS.NextSelectionMatchFindAction,\n label: nls.localize('nextSelectionMatchFindAction', \"Find Next Selection\"),\n alias: 'Find Next Selection',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 61 /* KeyCode.F3 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _run(controller) {\n return controller.moveToNextMatch();\n }\n}\nexport class PreviousSelectionMatchFindAction extends SelectionMatchFindAction {\n constructor() {\n super({\n id: FIND_IDS.PreviousSelectionMatchFindAction,\n label: nls.localize('previousSelectionMatchFindAction', \"Find Previous Selection\"),\n alias: 'Find Previous Selection',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 61 /* KeyCode.F3 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _run(controller) {\n return controller.moveToPrevMatch();\n }\n}\nexport const StartFindReplaceAction = registerMultiEditorAction(new MultiEditorAction({\n id: FIND_IDS.StartFindReplaceAction,\n label: nls.localize('startReplace', \"Replace\"),\n alias: 'Replace',\n precondition: ContextKeyExpr.or(EditorContextKeys.focus, ContextKeyExpr.has('editorIsOpen')),\n kbOpts: {\n kbExpr: null,\n primary: 2048 /* KeyMod.CtrlCmd */ | 38 /* KeyCode.KeyH */,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 36 /* KeyCode.KeyF */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarEditMenu,\n group: '3_find',\n title: nls.localize({ key: 'miReplace', comment: ['&& denotes a mnemonic'] }, \"&&Replace\"),\n order: 2\n }\n}));\nStartFindReplaceAction.addImplementation(0, (accessor, editor, args) => {\n if (!editor.hasModel() || editor.getOption(91 /* EditorOption.readOnly */)) {\n return false;\n }\n const controller = CommonFindController.get(editor);\n if (!controller) {\n return false;\n }\n const currentSelection = editor.getSelection();\n const findInputFocused = controller.isFindInputFocused();\n // we only seed search string from selection when the current selection is single line and not empty,\n // + the find input is not focused\n const seedSearchStringFromSelection = !currentSelection.isEmpty()\n && currentSelection.startLineNumber === currentSelection.endLineNumber\n && (editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never')\n && !findInputFocused;\n /*\n * if the existing search string in find widget is empty and we don't seed search string from selection, it means the Find Input is still empty, so we should focus the Find Input instead of Replace Input.\n\n * findInputFocused true -> seedSearchStringFromSelection false, FocusReplaceInput\n * findInputFocused false, seedSearchStringFromSelection true FocusReplaceInput\n * findInputFocused false seedSearchStringFromSelection false FocusFindInput\n */\n const shouldFocus = (findInputFocused || seedSearchStringFromSelection) ?\n 2 /* FindStartFocusAction.FocusReplaceInput */ : 1 /* FindStartFocusAction.FocusFindInput */;\n return controller.start({\n forceRevealReplace: true,\n seedSearchStringFromSelection: seedSearchStringFromSelection ? 'single' : 'none',\n seedSearchStringFromNonEmptySelection: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection === 'selection',\n seedSearchStringFromGlobalClipboard: editor.getOption(41 /* EditorOption.find */).seedSearchStringFromSelection !== 'never',\n shouldFocus: shouldFocus,\n shouldAnimate: true,\n updateSearchScope: false,\n loop: editor.getOption(41 /* EditorOption.find */).loop\n });\n});\nregisterEditorContribution(CommonFindController.ID, FindController, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(StartFindWithArgsAction);\nregisterEditorAction(StartFindWithSelectionAction);\nregisterEditorAction(NextMatchFindAction);\nregisterEditorAction(PreviousMatchFindAction);\nregisterEditorAction(MoveToMatchFindAction);\nregisterEditorAction(NextSelectionMatchFindAction);\nregisterEditorAction(PreviousSelectionMatchFindAction);\nconst FindCommand = EditorCommand.bindToContribution(CommonFindController.get);\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.CloseFindWidgetCommand,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.closeFindWidget(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n primary: 9 /* KeyCode.Escape */,\n secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ToggleCaseSensitiveCommand,\n precondition: undefined,\n handler: x => x.toggleCaseSensitive(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: ToggleCaseSensitiveKeybinding.primary,\n mac: ToggleCaseSensitiveKeybinding.mac,\n win: ToggleCaseSensitiveKeybinding.win,\n linux: ToggleCaseSensitiveKeybinding.linux\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ToggleWholeWordCommand,\n precondition: undefined,\n handler: x => x.toggleWholeWords(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: ToggleWholeWordKeybinding.primary,\n mac: ToggleWholeWordKeybinding.mac,\n win: ToggleWholeWordKeybinding.win,\n linux: ToggleWholeWordKeybinding.linux\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ToggleRegexCommand,\n precondition: undefined,\n handler: x => x.toggleRegex(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: ToggleRegexKeybinding.primary,\n mac: ToggleRegexKeybinding.mac,\n win: ToggleRegexKeybinding.win,\n linux: ToggleRegexKeybinding.linux\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ToggleSearchScopeCommand,\n precondition: undefined,\n handler: x => x.toggleSearchScope(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: ToggleSearchScopeKeybinding.primary,\n mac: ToggleSearchScopeKeybinding.mac,\n win: ToggleSearchScopeKeybinding.win,\n linux: ToggleSearchScopeKeybinding.linux\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.TogglePreserveCaseCommand,\n precondition: undefined,\n handler: x => x.togglePreserveCase(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: TogglePreserveCaseKeybinding.primary,\n mac: TogglePreserveCaseKeybinding.mac,\n win: TogglePreserveCaseKeybinding.win,\n linux: TogglePreserveCaseKeybinding.linux\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ReplaceOneAction,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.replace(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 22 /* KeyCode.Digit1 */\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ReplaceOneAction,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.replace(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n primary: 3 /* KeyCode.Enter */\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ReplaceAllAction,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.replaceAll(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 3 /* KeyCode.Enter */\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.ReplaceAllAction,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.replaceAll(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, CONTEXT_REPLACE_INPUT_FOCUSED),\n primary: undefined,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n }\n }\n}));\nregisterEditorCommand(new FindCommand({\n id: FIND_IDS.SelectAllMatchesAction,\n precondition: CONTEXT_FIND_WIDGET_VISIBLE,\n handler: x => x.selectAllMatches(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 5,\n kbExpr: EditorContextKeys.focus,\n primary: 512 /* KeyMod.Alt */ | 3 /* KeyCode.Enter */\n }\n}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Sash } from '../../../../base/browser/ui/sash/sash.js';\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { IdGenerator } from '../../../../base/common/idGenerator.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport * as objects from '../../../../base/common/objects.js';\nimport './zoneWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nconst defaultColor = new Color(new RGBA(0, 122, 204));\nconst defaultOptions = {\n showArrow: true,\n showFrame: true,\n className: '',\n frameColor: defaultColor,\n arrowColor: defaultColor,\n keepEditorSelection: false\n};\nconst WIDGET_ID = 'vs.editor.contrib.zoneWidget';\nclass ViewZoneDelegate {\n constructor(domNode, afterLineNumber, afterColumn, heightInLines, onDomNodeTop, onComputedHeight, showInHiddenAreas, ordinal) {\n this.id = ''; // A valid zone id should be greater than 0\n this.domNode = domNode;\n this.afterLineNumber = afterLineNumber;\n this.afterColumn = afterColumn;\n this.heightInLines = heightInLines;\n this.showInHiddenAreas = showInHiddenAreas;\n this.ordinal = ordinal;\n this._onDomNodeTop = onDomNodeTop;\n this._onComputedHeight = onComputedHeight;\n }\n onDomNodeTop(top) {\n this._onDomNodeTop(top);\n }\n onComputedHeight(height) {\n this._onComputedHeight(height);\n }\n}\nexport class OverlayWidgetDelegate {\n constructor(id, domNode) {\n this._id = id;\n this._domNode = domNode;\n }\n getId() {\n return this._id;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return null;\n }\n}\nclass Arrow {\n constructor(_editor) {\n this._editor = _editor;\n this._ruleName = Arrow._IdGenerator.nextId();\n this._decorations = this._editor.createDecorationsCollection();\n this._color = null;\n this._height = -1;\n }\n dispose() {\n this.hide();\n dom.removeCSSRulesContainingSelector(this._ruleName);\n }\n set color(value) {\n if (this._color !== value) {\n this._color = value;\n this._updateStyle();\n }\n }\n set height(value) {\n if (this._height !== value) {\n this._height = value;\n this._updateStyle();\n }\n }\n _updateStyle() {\n dom.removeCSSRulesContainingSelector(this._ruleName);\n dom.createCSSRule(`.monaco-editor ${this._ruleName}`, `border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px !important; margin-left: -${this._height}px; `);\n }\n show(where) {\n if (where.column === 1) {\n // the arrow isn't pretty at column 1 and we need to push it out a little\n where = { lineNumber: where.lineNumber, column: 2 };\n }\n this._decorations.set([{\n range: Range.fromPositions(where),\n options: {\n description: 'zone-widget-arrow',\n className: this._ruleName,\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n }\n }]);\n }\n hide() {\n this._decorations.clear();\n }\n}\nArrow._IdGenerator = new IdGenerator('.arrow-decoration-');\nexport class ZoneWidget {\n constructor(editor, options = {}) {\n this._arrow = null;\n this._overlayWidget = null;\n this._resizeSash = null;\n this._viewZone = null;\n this._disposables = new DisposableStore();\n this.container = null;\n this._isShowing = false;\n this.editor = editor;\n this._positionMarkerId = this.editor.createDecorationsCollection();\n this.options = objects.deepClone(options);\n objects.mixin(this.options, defaultOptions, false);\n this.domNode = document.createElement('div');\n if (!this.options.isAccessible) {\n this.domNode.setAttribute('aria-hidden', 'true');\n this.domNode.setAttribute('role', 'presentation');\n }\n this._disposables.add(this.editor.onDidLayoutChange((info) => {\n const width = this._getWidth(info);\n this.domNode.style.width = width + 'px';\n this.domNode.style.left = this._getLeft(info) + 'px';\n this._onWidth(width);\n }));\n }\n dispose() {\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n if (this._viewZone) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n this._viewZone = null;\n });\n }\n this._positionMarkerId.clear();\n this._disposables.dispose();\n }\n create() {\n this.domNode.classList.add('zone-widget');\n if (this.options.className) {\n this.domNode.classList.add(this.options.className);\n }\n this.container = document.createElement('div');\n this.container.classList.add('zone-widget-container');\n this.domNode.appendChild(this.container);\n if (this.options.showArrow) {\n this._arrow = new Arrow(this.editor);\n this._disposables.add(this._arrow);\n }\n this._fillContainer(this.container);\n this._initSash();\n this._applyStyles();\n }\n style(styles) {\n if (styles.frameColor) {\n this.options.frameColor = styles.frameColor;\n }\n if (styles.arrowColor) {\n this.options.arrowColor = styles.arrowColor;\n }\n this._applyStyles();\n }\n _applyStyles() {\n if (this.container && this.options.frameColor) {\n const frameColor = this.options.frameColor.toString();\n this.container.style.borderTopColor = frameColor;\n this.container.style.borderBottomColor = frameColor;\n }\n if (this._arrow && this.options.arrowColor) {\n const arrowColor = this.options.arrowColor.toString();\n this._arrow.color = arrowColor;\n }\n }\n _getWidth(info) {\n return info.width - info.minimap.minimapWidth - info.verticalScrollbarWidth;\n }\n _getLeft(info) {\n // If minimap is to the left, we move beyond it\n if (info.minimap.minimapWidth > 0 && info.minimap.minimapLeft === 0) {\n return info.minimap.minimapWidth;\n }\n return 0;\n }\n _onViewZoneTop(top) {\n this.domNode.style.top = top + 'px';\n }\n _onViewZoneHeight(height) {\n var _a;\n this.domNode.style.height = `${height}px`;\n if (this.container) {\n const containerHeight = height - this._decoratingElementsHeight();\n this.container.style.height = `${containerHeight}px`;\n const layoutInfo = this.editor.getLayoutInfo();\n this._doLayout(containerHeight, this._getWidth(layoutInfo));\n }\n (_a = this._resizeSash) === null || _a === void 0 ? void 0 : _a.layout();\n }\n get position() {\n const range = this._positionMarkerId.getRange(0);\n if (!range) {\n return undefined;\n }\n return range.getStartPosition();\n }\n show(rangeOrPos, heightInLines) {\n const range = Range.isIRange(rangeOrPos) ? Range.lift(rangeOrPos) : Range.fromPositions(rangeOrPos);\n this._isShowing = true;\n this._showImpl(range, heightInLines);\n this._isShowing = false;\n this._positionMarkerId.set([{ range, options: ModelDecorationOptions.EMPTY }]);\n }\n hide() {\n var _a;\n if (this._viewZone) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n });\n this._viewZone = null;\n }\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n (_a = this._arrow) === null || _a === void 0 ? void 0 : _a.hide();\n this._positionMarkerId.clear();\n }\n _decoratingElementsHeight() {\n const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n let result = 0;\n if (this.options.showArrow) {\n const arrowHeight = Math.round(lineHeight / 3);\n result += 2 * arrowHeight;\n }\n if (this.options.showFrame) {\n const frameThickness = Math.round(lineHeight / 9);\n result += 2 * frameThickness;\n }\n return result;\n }\n _showImpl(where, heightInLines) {\n const position = where.getStartPosition();\n const layoutInfo = this.editor.getLayoutInfo();\n const width = this._getWidth(layoutInfo);\n this.domNode.style.width = `${width}px`;\n this.domNode.style.left = this._getLeft(layoutInfo) + 'px';\n // Render the widget as zone (rendering) and widget (lifecycle)\n const viewZoneDomNode = document.createElement('div');\n viewZoneDomNode.style.overflow = 'hidden';\n const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n // adjust heightInLines to viewport\n if (!this.options.allowUnlimitedHeight) {\n const maxHeightInLines = Math.max(12, (this.editor.getLayoutInfo().height / lineHeight) * 0.8);\n heightInLines = Math.min(heightInLines, maxHeightInLines);\n }\n let arrowHeight = 0;\n let frameThickness = 0;\n // Render the arrow one 1/3 of an editor line height\n if (this._arrow && this.options.showArrow) {\n arrowHeight = Math.round(lineHeight / 3);\n this._arrow.height = arrowHeight;\n this._arrow.show(position);\n }\n // Render the frame as 1/9 of an editor line height\n if (this.options.showFrame) {\n frameThickness = Math.round(lineHeight / 9);\n }\n // insert zone widget\n this.editor.changeViewZones((accessor) => {\n if (this._viewZone) {\n accessor.removeZone(this._viewZone.id);\n }\n if (this._overlayWidget) {\n this.editor.removeOverlayWidget(this._overlayWidget);\n this._overlayWidget = null;\n }\n this.domNode.style.top = '-1000px';\n this._viewZone = new ViewZoneDelegate(viewZoneDomNode, position.lineNumber, position.column, heightInLines, (top) => this._onViewZoneTop(top), (height) => this._onViewZoneHeight(height), this.options.showInHiddenAreas, this.options.ordinal);\n this._viewZone.id = accessor.addZone(this._viewZone);\n this._overlayWidget = new OverlayWidgetDelegate(WIDGET_ID + this._viewZone.id, this.domNode);\n this.editor.addOverlayWidget(this._overlayWidget);\n });\n if (this.container && this.options.showFrame) {\n const width = this.options.frameWidth ? this.options.frameWidth : frameThickness;\n this.container.style.borderTopWidth = width + 'px';\n this.container.style.borderBottomWidth = width + 'px';\n }\n const containerHeight = heightInLines * lineHeight - this._decoratingElementsHeight();\n if (this.container) {\n this.container.style.top = arrowHeight + 'px';\n this.container.style.height = containerHeight + 'px';\n this.container.style.overflow = 'hidden';\n }\n this._doLayout(containerHeight, width);\n if (!this.options.keepEditorSelection) {\n this.editor.setSelection(where);\n }\n const model = this.editor.getModel();\n if (model) {\n const range = model.validateRange(new Range(where.startLineNumber, 1, where.endLineNumber + 1, 1));\n this.revealRange(range, range.startLineNumber === model.getLineCount());\n }\n }\n revealRange(range, isLastLine) {\n if (isLastLine) {\n this.editor.revealLineNearTop(range.endLineNumber, 0 /* ScrollType.Smooth */);\n }\n else {\n this.editor.revealRange(range, 0 /* ScrollType.Smooth */);\n }\n }\n setCssClass(className, classToReplace) {\n if (!this.container) {\n return;\n }\n if (classToReplace) {\n this.container.classList.remove(classToReplace);\n }\n this.container.classList.add(className);\n }\n _onWidth(widthInPixel) {\n // implement in subclass\n }\n _doLayout(heightInPixel, widthInPixel) {\n // implement in subclass\n }\n _relayout(newHeightInLines) {\n if (this._viewZone && this._viewZone.heightInLines !== newHeightInLines) {\n this.editor.changeViewZones(accessor => {\n if (this._viewZone) {\n this._viewZone.heightInLines = newHeightInLines;\n accessor.layoutZone(this._viewZone.id);\n }\n });\n }\n }\n // --- sash\n _initSash() {\n if (this._resizeSash) {\n return;\n }\n this._resizeSash = this._disposables.add(new Sash(this.domNode, this, { orientation: 1 /* Orientation.HORIZONTAL */ }));\n if (!this.options.isResizeable) {\n this._resizeSash.state = 0 /* SashState.Disabled */;\n }\n let data;\n this._disposables.add(this._resizeSash.onDidStart((e) => {\n if (this._viewZone) {\n data = {\n startY: e.startY,\n heightInLines: this._viewZone.heightInLines,\n };\n }\n }));\n this._disposables.add(this._resizeSash.onDidEnd(() => {\n data = undefined;\n }));\n this._disposables.add(this._resizeSash.onDidChange((evt) => {\n if (data) {\n const lineDelta = (evt.currentY - data.startY) / this.editor.getOption(67 /* EditorOption.lineHeight */);\n const roundedLineDelta = lineDelta < 0 ? Math.ceil(lineDelta) : Math.floor(lineDelta);\n const newHeightInLines = data.heightInLines + roundedLineDelta;\n if (newHeightInLines > 5 && newHeightInLines < 35) {\n this._relayout(newHeightInLines);\n }\n }\n }));\n }\n getHorizontalSashLeft() {\n return 0;\n }\n getHorizontalSashTop() {\n return (this.domNode.style.height === null ? 0 : parseInt(this.domNode.style.height)) - (this._decoratingElementsHeight() / 2);\n }\n getHorizontalSashWidth() {\n const layoutInfo = this.editor.getLayoutInfo();\n return layoutInfo.width - layoutInfo.minimap.minimapWidth;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { ActionBar } from '../../../../base/browser/ui/actionbar/actionbar.js';\nimport { Action } from '../../../../base/common/actions.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as objects from '../../../../base/common/objects.js';\nimport './media/peekViewWidget.css';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EmbeddedCodeEditorWidget } from '../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { ZoneWidget } from '../../zoneWidget/browser/zoneWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { createActionViewItem } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { createDecorator, IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { activeContrastBorder, contrastBorder, editorForeground, editorInfoForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nexport const IPeekViewService = createDecorator('IPeekViewService');\nregisterSingleton(IPeekViewService, class {\n constructor() {\n this._widgets = new Map();\n }\n addExclusiveWidget(editor, widget) {\n const existing = this._widgets.get(editor);\n if (existing) {\n existing.listener.dispose();\n existing.widget.dispose();\n }\n const remove = () => {\n const data = this._widgets.get(editor);\n if (data && data.widget === widget) {\n data.listener.dispose();\n this._widgets.delete(editor);\n }\n };\n this._widgets.set(editor, { widget, listener: widget.onDidClose(remove) });\n }\n}, 1 /* InstantiationType.Delayed */);\nexport var PeekContext;\n(function (PeekContext) {\n PeekContext.inPeekEditor = new RawContextKey('inReferenceSearchEditor', true, nls.localize('inReferenceSearchEditor', \"Whether the current code editor is embedded inside peek\"));\n PeekContext.notInPeekEditor = PeekContext.inPeekEditor.toNegated();\n})(PeekContext || (PeekContext = {}));\nlet PeekContextController = class PeekContextController {\n constructor(editor, contextKeyService) {\n if (editor instanceof EmbeddedCodeEditorWidget) {\n PeekContext.inPeekEditor.bindTo(contextKeyService);\n }\n }\n dispose() { }\n};\nPeekContextController.ID = 'editor.contrib.referenceController';\nPeekContextController = __decorate([\n __param(1, IContextKeyService)\n], PeekContextController);\nregisterEditorContribution(PeekContextController.ID, PeekContextController, 0 /* EditorContributionInstantiation.Eager */); // eager because it needs to define a context key\nexport function getOuterEditor(accessor) {\n const editor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (editor instanceof EmbeddedCodeEditorWidget) {\n return editor.getParentEditor();\n }\n return editor;\n}\nconst defaultOptions = {\n headerBackgroundColor: Color.white,\n primaryHeadingColor: Color.fromHex('#333333'),\n secondaryHeadingColor: Color.fromHex('#6c6c6cb3')\n};\nlet PeekViewWidget = class PeekViewWidget extends ZoneWidget {\n constructor(editor, options, instantiationService) {\n super(editor, options);\n this.instantiationService = instantiationService;\n this._onDidClose = new Emitter();\n this.onDidClose = this._onDidClose.event;\n objects.mixin(this.options, defaultOptions, false);\n }\n dispose() {\n if (!this.disposed) {\n this.disposed = true; // prevent consumers who dispose on onDidClose from looping\n super.dispose();\n this._onDidClose.fire(this);\n }\n }\n style(styles) {\n const options = this.options;\n if (styles.headerBackgroundColor) {\n options.headerBackgroundColor = styles.headerBackgroundColor;\n }\n if (styles.primaryHeadingColor) {\n options.primaryHeadingColor = styles.primaryHeadingColor;\n }\n if (styles.secondaryHeadingColor) {\n options.secondaryHeadingColor = styles.secondaryHeadingColor;\n }\n super.style(styles);\n }\n _applyStyles() {\n super._applyStyles();\n const options = this.options;\n if (this._headElement && options.headerBackgroundColor) {\n this._headElement.style.backgroundColor = options.headerBackgroundColor.toString();\n }\n if (this._primaryHeading && options.primaryHeadingColor) {\n this._primaryHeading.style.color = options.primaryHeadingColor.toString();\n }\n if (this._secondaryHeading && options.secondaryHeadingColor) {\n this._secondaryHeading.style.color = options.secondaryHeadingColor.toString();\n }\n if (this._bodyElement && options.frameColor) {\n this._bodyElement.style.borderColor = options.frameColor.toString();\n }\n }\n _fillContainer(container) {\n this.setCssClass('peekview-widget');\n this._headElement = dom.$('.head');\n this._bodyElement = dom.$('.body');\n this._fillHead(this._headElement);\n this._fillBody(this._bodyElement);\n container.appendChild(this._headElement);\n container.appendChild(this._bodyElement);\n }\n _fillHead(container, noCloseAction) {\n this._titleElement = dom.$('.peekview-title');\n if (this.options.supportOnTitleClick) {\n this._titleElement.classList.add('clickable');\n dom.addStandardDisposableListener(this._titleElement, 'click', event => this._onTitleClick(event));\n }\n dom.append(this._headElement, this._titleElement);\n this._fillTitleIcon(this._titleElement);\n this._primaryHeading = dom.$('span.filename');\n this._secondaryHeading = dom.$('span.dirname');\n this._metaHeading = dom.$('span.meta');\n dom.append(this._titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);\n const actionsContainer = dom.$('.peekview-actions');\n dom.append(this._headElement, actionsContainer);\n const actionBarOptions = this._getActionBarOptions();\n this._actionbarWidget = new ActionBar(actionsContainer, actionBarOptions);\n this._disposables.add(this._actionbarWidget);\n if (!noCloseAction) {\n this._actionbarWidget.push(new Action('peekview.close', nls.localize('label.close', \"Close\"), ThemeIcon.asClassName(Codicon.close), true, () => {\n this.dispose();\n return Promise.resolve();\n }), { label: false, icon: true });\n }\n }\n _fillTitleIcon(container) {\n }\n _getActionBarOptions() {\n return {\n actionViewItemProvider: createActionViewItem.bind(undefined, this.instantiationService),\n orientation: 0 /* ActionsOrientation.HORIZONTAL */\n };\n }\n _onTitleClick(event) {\n // implement me if supportOnTitleClick option is set\n }\n setTitle(primaryHeading, secondaryHeading) {\n if (this._primaryHeading && this._secondaryHeading) {\n this._primaryHeading.innerText = primaryHeading;\n this._primaryHeading.setAttribute('title', primaryHeading);\n if (secondaryHeading) {\n this._secondaryHeading.innerText = secondaryHeading;\n }\n else {\n dom.clearNode(this._secondaryHeading);\n }\n }\n }\n setMetaTitle(value) {\n if (this._metaHeading) {\n if (value) {\n this._metaHeading.innerText = value;\n dom.show(this._metaHeading);\n }\n else {\n dom.hide(this._metaHeading);\n }\n }\n }\n _doLayout(heightInPixel, widthInPixel) {\n if (!this._isShowing && heightInPixel < 0) {\n // Looks like the view zone got folded away!\n this.dispose();\n return;\n }\n const headHeight = Math.ceil(this.editor.getOption(67 /* EditorOption.lineHeight */) * 1.2);\n const bodyHeight = Math.round(heightInPixel - (headHeight + 2 /* the border-top/bottom width*/));\n this._doLayoutHead(headHeight, widthInPixel);\n this._doLayoutBody(bodyHeight, widthInPixel);\n }\n _doLayoutHead(heightInPixel, widthInPixel) {\n if (this._headElement) {\n this._headElement.style.height = `${heightInPixel}px`;\n this._headElement.style.lineHeight = this._headElement.style.height;\n }\n }\n _doLayoutBody(heightInPixel, widthInPixel) {\n if (this._bodyElement) {\n this._bodyElement.style.height = `${heightInPixel}px`;\n }\n }\n};\nPeekViewWidget = __decorate([\n __param(2, IInstantiationService)\n], PeekViewWidget);\nexport { PeekViewWidget };\nexport const peekViewTitleBackground = registerColor('peekViewTitle.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewTitleBackground', 'Background color of the peek view title area.'));\nexport const peekViewTitleForeground = registerColor('peekViewTitleLabel.foreground', { dark: Color.white, light: Color.black, hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewTitleForeground', 'Color of the peek view title.'));\nexport const peekViewTitleInfoForeground = registerColor('peekViewTitleDescription.foreground', { dark: '#ccccccb3', light: '#616161', hcDark: '#FFFFFF99', hcLight: '#292929' }, nls.localize('peekViewTitleInfoForeground', 'Color of the peek view title info.'));\nexport const peekViewBorder = registerColor('peekView.border', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('peekViewBorder', 'Color of the peek view borders and arrow.'));\nexport const peekViewResultsBackground = registerColor('peekViewResult.background', { dark: '#252526', light: '#F3F3F3', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewResultsBackground', 'Background color of the peek view result list.'));\nexport const peekViewResultsMatchForeground = registerColor('peekViewResult.lineForeground', { dark: '#bbbbbb', light: '#646465', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsMatchForeground', 'Foreground color for line nodes in the peek view result list.'));\nexport const peekViewResultsFileForeground = registerColor('peekViewResult.fileForeground', { dark: Color.white, light: '#1E1E1E', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsFileForeground', 'Foreground color for file nodes in the peek view result list.'));\nexport const peekViewResultsSelectionBackground = registerColor('peekViewResult.selectionBackground', { dark: '#3399ff33', light: '#3399ff33', hcDark: null, hcLight: null }, nls.localize('peekViewResultsSelectionBackground', 'Background color of the selected entry in the peek view result list.'));\nexport const peekViewResultsSelectionForeground = registerColor('peekViewResult.selectionForeground', { dark: Color.white, light: '#6C6C6C', hcDark: Color.white, hcLight: editorForeground }, nls.localize('peekViewResultsSelectionForeground', 'Foreground color of the selected entry in the peek view result list.'));\nexport const peekViewEditorBackground = registerColor('peekViewEditor.background', { dark: '#001F33', light: '#F2F8FC', hcDark: Color.black, hcLight: Color.white }, nls.localize('peekViewEditorBackground', 'Background color of the peek view editor.'));\nexport const peekViewEditorGutterBackground = registerColor('peekViewEditorGutter.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorGutterBackground', 'Background color of the gutter in the peek view editor.'));\nexport const peekViewEditorStickyScrollBackground = registerColor('peekViewEditorStickyScroll.background', { dark: peekViewEditorBackground, light: peekViewEditorBackground, hcDark: peekViewEditorBackground, hcLight: peekViewEditorBackground }, nls.localize('peekViewEditorStickScrollBackground', 'Background color of sticky scroll in the peek view editor.'));\nexport const peekViewResultsMatchHighlight = registerColor('peekViewResult.matchHighlightBackground', { dark: '#ea5c004d', light: '#ea5c004d', hcDark: null, hcLight: null }, nls.localize('peekViewResultsMatchHighlight', 'Match highlight color in the peek view result list.'));\nexport const peekViewEditorMatchHighlight = registerColor('peekViewEditor.matchHighlightBackground', { dark: '#ff8f0099', light: '#f5d802de', hcDark: null, hcLight: null }, nls.localize('peekViewEditorMatchHighlight', 'Match highlight color in the peek view editor.'));\nexport const peekViewEditorMatchHighlightBorder = registerColor('peekViewEditor.matchHighlightBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('peekViewEditorMatchHighlightBorder', 'Match highlight border in the peek view editor.'));\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as buffer from '../../../base/common/buffer.js';\nimport { decodeUTF16LE } from './stringBuilder.js';\nfunction escapeNewLine(str) {\n return (str\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r'));\n}\nexport class TextChange {\n get oldLength() {\n return this.oldText.length;\n }\n get oldEnd() {\n return this.oldPosition + this.oldText.length;\n }\n get newLength() {\n return this.newText.length;\n }\n get newEnd() {\n return this.newPosition + this.newText.length;\n }\n constructor(oldPosition, oldText, newPosition, newText) {\n this.oldPosition = oldPosition;\n this.oldText = oldText;\n this.newPosition = newPosition;\n this.newText = newText;\n }\n toString() {\n if (this.oldText.length === 0) {\n return `(insert@${this.oldPosition} \"${escapeNewLine(this.newText)}\")`;\n }\n if (this.newText.length === 0) {\n return `(delete@${this.oldPosition} \"${escapeNewLine(this.oldText)}\")`;\n }\n return `(replace@${this.oldPosition} \"${escapeNewLine(this.oldText)}\" with \"${escapeNewLine(this.newText)}\")`;\n }\n static _writeStringSize(str) {\n return (4 + 2 * str.length);\n }\n static _writeString(b, str, offset) {\n const len = str.length;\n buffer.writeUInt32BE(b, len, offset);\n offset += 4;\n for (let i = 0; i < len; i++) {\n buffer.writeUInt16LE(b, str.charCodeAt(i), offset);\n offset += 2;\n }\n return offset;\n }\n static _readString(b, offset) {\n const len = buffer.readUInt32BE(b, offset);\n offset += 4;\n return decodeUTF16LE(b, offset, len);\n }\n writeSize() {\n return (+4 // oldPosition\n + 4 // newPosition\n + TextChange._writeStringSize(this.oldText)\n + TextChange._writeStringSize(this.newText));\n }\n write(b, offset) {\n buffer.writeUInt32BE(b, this.oldPosition, offset);\n offset += 4;\n buffer.writeUInt32BE(b, this.newPosition, offset);\n offset += 4;\n offset = TextChange._writeString(b, this.oldText, offset);\n offset = TextChange._writeString(b, this.newText, offset);\n return offset;\n }\n static read(b, offset, dest) {\n const oldPosition = buffer.readUInt32BE(b, offset);\n offset += 4;\n const newPosition = buffer.readUInt32BE(b, offset);\n offset += 4;\n const oldText = TextChange._readString(b, offset);\n offset += TextChange._writeStringSize(oldText);\n const newText = TextChange._readString(b, offset);\n offset += TextChange._writeStringSize(newText);\n dest.push(new TextChange(oldPosition, oldText, newPosition, newText));\n return offset;\n }\n}\nexport function compressConsecutiveTextChanges(prevEdits, currEdits) {\n if (prevEdits === null || prevEdits.length === 0) {\n return currEdits;\n }\n const compressor = new TextChangeCompressor(prevEdits, currEdits);\n return compressor.compress();\n}\nclass TextChangeCompressor {\n constructor(prevEdits, currEdits) {\n this._prevEdits = prevEdits;\n this._currEdits = currEdits;\n this._result = [];\n this._resultLen = 0;\n this._prevLen = this._prevEdits.length;\n this._prevDeltaOffset = 0;\n this._currLen = this._currEdits.length;\n this._currDeltaOffset = 0;\n }\n compress() {\n let prevIndex = 0;\n let currIndex = 0;\n let prevEdit = this._getPrev(prevIndex);\n let currEdit = this._getCurr(currIndex);\n while (prevIndex < this._prevLen || currIndex < this._currLen) {\n if (prevEdit === null) {\n this._acceptCurr(currEdit);\n currEdit = this._getCurr(++currIndex);\n continue;\n }\n if (currEdit === null) {\n this._acceptPrev(prevEdit);\n prevEdit = this._getPrev(++prevIndex);\n continue;\n }\n if (currEdit.oldEnd <= prevEdit.newPosition) {\n this._acceptCurr(currEdit);\n currEdit = this._getCurr(++currIndex);\n continue;\n }\n if (prevEdit.newEnd <= currEdit.oldPosition) {\n this._acceptPrev(prevEdit);\n prevEdit = this._getPrev(++prevIndex);\n continue;\n }\n if (currEdit.oldPosition < prevEdit.newPosition) {\n const [e1, e2] = TextChangeCompressor._splitCurr(currEdit, prevEdit.newPosition - currEdit.oldPosition);\n this._acceptCurr(e1);\n currEdit = e2;\n continue;\n }\n if (prevEdit.newPosition < currEdit.oldPosition) {\n const [e1, e2] = TextChangeCompressor._splitPrev(prevEdit, currEdit.oldPosition - prevEdit.newPosition);\n this._acceptPrev(e1);\n prevEdit = e2;\n continue;\n }\n // At this point, currEdit.oldPosition === prevEdit.newPosition\n let mergePrev;\n let mergeCurr;\n if (currEdit.oldEnd === prevEdit.newEnd) {\n mergePrev = prevEdit;\n mergeCurr = currEdit;\n prevEdit = this._getPrev(++prevIndex);\n currEdit = this._getCurr(++currIndex);\n }\n else if (currEdit.oldEnd < prevEdit.newEnd) {\n const [e1, e2] = TextChangeCompressor._splitPrev(prevEdit, currEdit.oldLength);\n mergePrev = e1;\n mergeCurr = currEdit;\n prevEdit = e2;\n currEdit = this._getCurr(++currIndex);\n }\n else {\n const [e1, e2] = TextChangeCompressor._splitCurr(currEdit, prevEdit.newLength);\n mergePrev = prevEdit;\n mergeCurr = e1;\n prevEdit = this._getPrev(++prevIndex);\n currEdit = e2;\n }\n this._result[this._resultLen++] = new TextChange(mergePrev.oldPosition, mergePrev.oldText, mergeCurr.newPosition, mergeCurr.newText);\n this._prevDeltaOffset += mergePrev.newLength - mergePrev.oldLength;\n this._currDeltaOffset += mergeCurr.newLength - mergeCurr.oldLength;\n }\n const merged = TextChangeCompressor._merge(this._result);\n const cleaned = TextChangeCompressor._removeNoOps(merged);\n return cleaned;\n }\n _acceptCurr(currEdit) {\n this._result[this._resultLen++] = TextChangeCompressor._rebaseCurr(this._prevDeltaOffset, currEdit);\n this._currDeltaOffset += currEdit.newLength - currEdit.oldLength;\n }\n _getCurr(currIndex) {\n return (currIndex < this._currLen ? this._currEdits[currIndex] : null);\n }\n _acceptPrev(prevEdit) {\n this._result[this._resultLen++] = TextChangeCompressor._rebasePrev(this._currDeltaOffset, prevEdit);\n this._prevDeltaOffset += prevEdit.newLength - prevEdit.oldLength;\n }\n _getPrev(prevIndex) {\n return (prevIndex < this._prevLen ? this._prevEdits[prevIndex] : null);\n }\n static _rebaseCurr(prevDeltaOffset, currEdit) {\n return new TextChange(currEdit.oldPosition - prevDeltaOffset, currEdit.oldText, currEdit.newPosition, currEdit.newText);\n }\n static _rebasePrev(currDeltaOffset, prevEdit) {\n return new TextChange(prevEdit.oldPosition, prevEdit.oldText, prevEdit.newPosition + currDeltaOffset, prevEdit.newText);\n }\n static _splitPrev(edit, offset) {\n const preText = edit.newText.substr(0, offset);\n const postText = edit.newText.substr(offset);\n return [\n new TextChange(edit.oldPosition, edit.oldText, edit.newPosition, preText),\n new TextChange(edit.oldEnd, '', edit.newPosition + offset, postText)\n ];\n }\n static _splitCurr(edit, offset) {\n const preText = edit.oldText.substr(0, offset);\n const postText = edit.oldText.substr(offset);\n return [\n new TextChange(edit.oldPosition, preText, edit.newPosition, edit.newText),\n new TextChange(edit.oldPosition + offset, postText, edit.newEnd, '')\n ];\n }\n static _merge(edits) {\n if (edits.length === 0) {\n return edits;\n }\n const result = [];\n let resultLen = 0;\n let prev = edits[0];\n for (let i = 1; i < edits.length; i++) {\n const curr = edits[i];\n if (prev.oldEnd === curr.oldPosition) {\n // Merge into `prev`\n prev = new TextChange(prev.oldPosition, prev.oldText + curr.oldText, prev.newPosition, prev.newText + curr.newText);\n }\n else {\n result[resultLen++] = prev;\n prev = curr;\n }\n }\n result[resultLen++] = prev;\n return result;\n }\n static _removeNoOps(edits) {\n if (edits.length === 0) {\n return edits;\n }\n const result = [];\n let resultLen = 0;\n for (let i = 0; i < edits.length; i++) {\n const edit = edits[i];\n if (edit.oldText === edit.newText) {\n continue;\n }\n result[resultLen++] = edit;\n }\n return result;\n }\n}\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;\n// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nclass _CodeOrName {\n}\nexports._CodeOrName = _CodeOrName;\nexports.IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i;\nclass Name extends _CodeOrName {\n constructor(s) {\n super();\n if (!exports.IDENTIFIER.test(s))\n throw new Error(\"CodeGen: name must be a valid identifier\");\n this.str = s;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n return false;\n }\n get names() {\n return { [this.str]: 1 };\n }\n}\nexports.Name = Name;\nclass _Code extends _CodeOrName {\n constructor(code) {\n super();\n this._items = typeof code === \"string\" ? [code] : code;\n }\n toString() {\n return this.str;\n }\n emptyStr() {\n if (this._items.length > 1)\n return false;\n const item = this._items[0];\n return item === \"\" || item === '\"\"';\n }\n get str() {\n var _a;\n return ((_a = this._str) !== null && _a !== void 0 ? _a : (this._str = this._items.reduce((s, c) => `${s}${c}`, \"\")));\n }\n get names() {\n var _a;\n return ((_a = this._names) !== null && _a !== void 0 ? _a : (this._names = this._items.reduce((names, c) => {\n if (c instanceof Name)\n names[c.str] = (names[c.str] || 0) + 1;\n return names;\n }, {})));\n }\n}\nexports._Code = _Code;\nexports.nil = new _Code(\"\");\nfunction _(strs, ...args) {\n const code = [strs[0]];\n let i = 0;\n while (i < args.length) {\n addCodeArg(code, args[i]);\n code.push(strs[++i]);\n }\n return new _Code(code);\n}\nexports._ = _;\nconst plus = new _Code(\"+\");\nfunction str(strs, ...args) {\n const expr = [safeStringify(strs[0])];\n let i = 0;\n while (i < args.length) {\n expr.push(plus);\n addCodeArg(expr, args[i]);\n expr.push(plus, safeStringify(strs[++i]));\n }\n optimize(expr);\n return new _Code(expr);\n}\nexports.str = str;\nfunction addCodeArg(code, arg) {\n if (arg instanceof _Code)\n code.push(...arg._items);\n else if (arg instanceof Name)\n code.push(arg);\n else\n code.push(interpolate(arg));\n}\nexports.addCodeArg = addCodeArg;\nfunction optimize(expr) {\n let i = 1;\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1]);\n if (res !== undefined) {\n expr.splice(i - 1, 3, res);\n continue;\n }\n expr[i++] = \"+\";\n }\n i++;\n }\n}\nfunction mergeExprItems(a, b) {\n if (b === '\"\"')\n return a;\n if (a === '\"\"')\n return b;\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"')\n return;\n if (typeof b != \"string\")\n return `${a.slice(0, -1)}${b}\"`;\n if (b[0] === '\"')\n return a.slice(0, -1) + b.slice(1);\n return;\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name))\n return `\"${a}${b.slice(1)}`;\n return;\n}\nfunction strConcat(c1, c2) {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str `${c1}${c2}`;\n}\nexports.strConcat = strConcat;\n// TODO do not allow arrays here\nfunction interpolate(x) {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x);\n}\nfunction stringify(x) {\n return new _Code(safeStringify(x));\n}\nexports.stringify = stringify;\nfunction safeStringify(x) {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\");\n}\nexports.safeStringify = safeStringify;\nfunction getProperty(key) {\n return typeof key == \"string\" && exports.IDENTIFIER.test(key) ? new _Code(`.${key}`) : _ `[${key}]`;\n}\nexports.getProperty = getProperty;\n//Does best effort to format the name properly\nfunction getEsmExportName(key) {\n if (typeof key == \"string\" && exports.IDENTIFIER.test(key)) {\n return new _Code(`${key}`);\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`);\n}\nexports.getEsmExportName = getEsmExportName;\nfunction regexpCode(rx) {\n return new _Code(rx.toString());\n}\nexports.regexpCode = regexpCode;\n//# sourceMappingURL=code.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { URI } from '../../../../base/common/uri.js';\nexport class InlayHintAnchor {\n constructor(range, direction) {\n this.range = range;\n this.direction = direction;\n }\n}\nexport class InlayHintItem {\n constructor(hint, anchor, provider) {\n this.hint = hint;\n this.anchor = anchor;\n this.provider = provider;\n this._isResolved = false;\n }\n with(delta) {\n const result = new InlayHintItem(this.hint, delta.anchor, this.provider);\n result._isResolved = this._isResolved;\n result._currentResolve = this._currentResolve;\n return result;\n }\n async resolve(token) {\n if (typeof this.provider.resolveInlayHint !== 'function') {\n return;\n }\n if (this._currentResolve) {\n // wait for an active resolve operation and try again\n // when that's done.\n await this._currentResolve;\n if (token.isCancellationRequested) {\n return;\n }\n return this.resolve(token);\n }\n if (!this._isResolved) {\n this._currentResolve = this._doResolve(token)\n .finally(() => this._currentResolve = undefined);\n }\n await this._currentResolve;\n }\n async _doResolve(token) {\n var _a, _b, _c;\n try {\n const newHint = await Promise.resolve(this.provider.resolveInlayHint(this.hint, token));\n this.hint.tooltip = (_a = newHint === null || newHint === void 0 ? void 0 : newHint.tooltip) !== null && _a !== void 0 ? _a : this.hint.tooltip;\n this.hint.label = (_b = newHint === null || newHint === void 0 ? void 0 : newHint.label) !== null && _b !== void 0 ? _b : this.hint.label;\n this.hint.textEdits = (_c = newHint === null || newHint === void 0 ? void 0 : newHint.textEdits) !== null && _c !== void 0 ? _c : this.hint.textEdits;\n this._isResolved = true;\n }\n catch (err) {\n onUnexpectedExternalError(err);\n this._isResolved = false;\n }\n }\n}\nexport class InlayHintsFragments {\n static async create(registry, model, ranges, token) {\n const data = [];\n const promises = registry.ordered(model).reverse().map(provider => ranges.map(async (range) => {\n try {\n const result = await provider.provideInlayHints(model, range, token);\n if ((result === null || result === void 0 ? void 0 : result.hints.length) || provider.onDidChangeInlayHints) {\n data.push([result !== null && result !== void 0 ? result : InlayHintsFragments._emptyInlayHintList, provider]);\n }\n }\n catch (err) {\n onUnexpectedExternalError(err);\n }\n }));\n await Promise.all(promises.flat());\n if (token.isCancellationRequested || model.isDisposed()) {\n throw new CancellationError();\n }\n return new InlayHintsFragments(ranges, data, model);\n }\n constructor(ranges, data, model) {\n this._disposables = new DisposableStore();\n this.ranges = ranges;\n this.provider = new Set();\n const items = [];\n for (const [list, provider] of data) {\n this._disposables.add(list);\n this.provider.add(provider);\n for (const hint of list.hints) {\n // compute the range to which the item should be attached to\n const position = model.validatePosition(hint.position);\n let direction = 'before';\n const wordRange = InlayHintsFragments._getRangeAtPosition(model, position);\n let range;\n if (wordRange.getStartPosition().isBefore(position)) {\n range = Range.fromPositions(wordRange.getStartPosition(), position);\n direction = 'after';\n }\n else {\n range = Range.fromPositions(position, wordRange.getEndPosition());\n direction = 'before';\n }\n items.push(new InlayHintItem(hint, new InlayHintAnchor(range, direction), provider));\n }\n }\n this.items = items.sort((a, b) => Position.compare(a.hint.position, b.hint.position));\n }\n dispose() {\n this._disposables.dispose();\n }\n static _getRangeAtPosition(model, position) {\n const line = position.lineNumber;\n const word = model.getWordAtPosition(position);\n if (word) {\n // always prefer the word range\n return new Range(line, word.startColumn, line, word.endColumn);\n }\n model.tokenization.tokenizeIfCheap(line);\n const tokens = model.tokenization.getLineTokens(line);\n const offset = position.column - 1;\n const idx = tokens.findTokenIndexAtOffset(offset);\n let start = tokens.getStartOffset(idx);\n let end = tokens.getEndOffset(idx);\n if (end - start === 1) {\n // single character token, when at its end try leading/trailing token instead\n if (start === offset && idx > 1) {\n // leading token\n start = tokens.getStartOffset(idx - 1);\n end = tokens.getEndOffset(idx - 1);\n }\n else if (end === offset && idx < tokens.getCount() - 1) {\n // trailing token\n start = tokens.getStartOffset(idx + 1);\n end = tokens.getEndOffset(idx + 1);\n }\n }\n return new Range(line, start + 1, line, end + 1);\n }\n}\nInlayHintsFragments._emptyInlayHintList = Object.freeze({ dispose() { }, hints: [] });\nexport function asCommandLink(command) {\n return URI.from({\n scheme: Schemas.command,\n path: command.id,\n query: command.arguments && encodeURIComponent(JSON.stringify(command.arguments))\n }).toString();\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace', ['error-stack-parser', 'stack-generator', 'stacktrace-gps'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('error-stack-parser'), require('stack-generator'), require('stacktrace-gps'));\n } else {\n root.StackTrace = factory(root.ErrorStackParser, root.StackGenerator, root.StackTraceGPS);\n }\n}(this, function StackTrace(ErrorStackParser, StackGenerator, StackTraceGPS) {\n var _options = {\n filter: function(stackframe) {\n // Filter out stackframes for this library by default\n return (stackframe.functionName || '').indexOf('StackTrace$$') === -1 &&\n (stackframe.functionName || '').indexOf('ErrorStackParser$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackTraceGPS$$') === -1 &&\n (stackframe.functionName || '').indexOf('StackGenerator$$') === -1;\n },\n sourceCache: {}\n };\n\n var _generateError = function StackTrace$$GenerateError() {\n try {\n // Error must be thrown to get stack in IE\n throw new Error();\n } catch (err) {\n return err;\n }\n };\n\n /**\n * Merge 2 given Objects. If a conflict occurs the second object wins.\n * Does not do deep merges.\n *\n * @param {Object} first base object\n * @param {Object} second overrides\n * @returns {Object} merged first and second\n * @private\n */\n function _merge(first, second) {\n var target = {};\n\n [first, second].forEach(function(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n target[prop] = obj[prop];\n }\n }\n return target;\n });\n\n return target;\n }\n\n function _isShapedLikeParsableError(err) {\n return err.stack || err['opera#sourceloc'];\n }\n\n function _filtered(stackframes, filter) {\n if (typeof filter === 'function') {\n return stackframes.filter(filter);\n }\n return stackframes;\n }\n\n return {\n /**\n * Get a backtrace from invocation point.\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n get: function StackTrace$$get(opts) {\n var err = _generateError();\n return _isShapedLikeParsableError(err) ? this.fromError(err, opts) : this.generateArtificially(opts);\n },\n\n /**\n * Get a backtrace from invocation point.\n * IMPORTANT: Does not handle source maps or guess function names!\n *\n * @param {Object} opts\n * @returns {Array} of StackFrame\n */\n getSync: function StackTrace$$getSync(opts) {\n opts = _merge(_options, opts);\n var err = _generateError();\n var stack = _isShapedLikeParsableError(err) ? ErrorStackParser.parse(err) : StackGenerator.backtrace(opts);\n return _filtered(stack, opts.filter);\n },\n\n /**\n * Given an error object, parse it.\n *\n * @param {Error} error object\n * @param {Object} opts\n * @returns {Promise} for Array[StackFrame}\n */\n fromError: function StackTrace$$fromError(error, opts) {\n opts = _merge(_options, opts);\n var gps = new StackTraceGPS(opts);\n return new Promise(function(resolve) {\n var stackframes = _filtered(ErrorStackParser.parse(error), opts.filter);\n resolve(Promise.all(stackframes.map(function(sf) {\n return new Promise(function(resolve) {\n function resolveOriginal() {\n resolve(sf);\n }\n\n gps.pinpoint(sf).then(resolve, resolveOriginal)['catch'](resolveOriginal);\n });\n })));\n }.bind(this));\n },\n\n /**\n * Use StackGenerator to generate a backtrace.\n *\n * @param {Object} opts\n * @returns {Promise} of Array[StackFrame]\n */\n generateArtificially: function StackTrace$$generateArtificially(opts) {\n opts = _merge(_options, opts);\n var stackFrames = StackGenerator.backtrace(opts);\n if (typeof opts.filter === 'function') {\n stackFrames = stackFrames.filter(opts.filter);\n }\n return Promise.resolve(stackFrames);\n },\n\n /**\n * Given a function, wrap it such that invocations trigger a callback that\n * is called with a stack trace.\n *\n * @param {Function} fn to be instrumented\n * @param {Function} callback function to call with a stack trace on invocation\n * @param {Function} errback optional function to call with error if unable to get stack trace.\n * @param {Object} thisArg optional context object (e.g. window)\n */\n instrument: function StackTrace$$instrument(fn, callback, errback, thisArg) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n // Already instrumented, return given Function\n return fn;\n }\n\n var instrumented = function StackTrace$$instrumented() {\n try {\n this.get().then(callback, errback)['catch'](errback);\n return fn.apply(thisArg || this, arguments);\n } catch (e) {\n if (_isShapedLikeParsableError(e)) {\n this.fromError(e).then(callback, errback)['catch'](errback);\n }\n throw e;\n }\n }.bind(this);\n instrumented.__stacktraceOriginalFn = fn;\n\n return instrumented;\n },\n\n /**\n * Given a function that has been instrumented,\n * revert the function to it's original (non-instrumented) state.\n *\n * @param {Function} fn to de-instrument\n */\n deinstrument: function StackTrace$$deinstrument(fn) {\n if (typeof fn !== 'function') {\n throw new Error('Cannot de-instrument non-function object');\n } else if (typeof fn.__stacktraceOriginalFn === 'function') {\n return fn.__stacktraceOriginalFn;\n } else {\n // Function not instrumented, return original\n return fn;\n }\n },\n\n /**\n * Given an error message and Array of StackFrames, serialize and POST to given URL.\n *\n * @param {Array} stackframes\n * @param {String} url\n * @param {String} errorMsg\n * @param {Object} requestOptions\n */\n report: function StackTrace$$report(stackframes, url, errorMsg, requestOptions) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if (req.status >= 200 && req.status < 400) {\n resolve(req.responseText);\n } else {\n reject(new Error('POST to ' + url + ' failed with status: ' + req.status));\n }\n }\n };\n req.open('post', url);\n\n // Set request headers\n req.setRequestHeader('Content-Type', 'application/json');\n if (requestOptions && typeof requestOptions.headers === 'object') {\n var headers = requestOptions.headers;\n for (var header in headers) {\n if (Object.prototype.hasOwnProperty.call(headers, header)) {\n req.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n var reportPayload = {stack: stackframes};\n if (errorMsg !== undefined && errorMsg !== null) {\n reportPayload.message = errorMsg;\n }\n\n req.send(JSON.stringify(reportPayload));\n });\n }\n };\n}));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","import { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ILabelService = createDecorator('labelService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { renderLabelWithIcons } from '../iconLabel/iconLabels.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as objects from '../../../common/objects.js';\n/**\n * A widget which can render a label with substring highlights, often\n * originating from a filter function like the fuzzy matcher.\n */\nexport class HighlightedLabel extends Disposable {\n /**\n * Create a new {@link HighlightedLabel}.\n *\n * @param container The parent container to append to.\n */\n constructor(container, options) {\n var _a;\n super();\n this.options = options;\n this.text = '';\n this.title = '';\n this.highlights = [];\n this.didEverRender = false;\n this.supportIcons = (_a = options === null || options === void 0 ? void 0 : options.supportIcons) !== null && _a !== void 0 ? _a : false;\n this.domNode = dom.append(container, dom.$('span.monaco-highlighted-label'));\n }\n /**\n * The label's DOM node.\n */\n get element() {\n return this.domNode;\n }\n /**\n * Set the label and highlights.\n *\n * @param text The label to display.\n * @param highlights The ranges to highlight.\n * @param title An optional title for the hover tooltip.\n * @param escapeNewLines Whether to escape new lines.\n * @returns\n */\n set(text, highlights = [], title = '', escapeNewLines) {\n if (!text) {\n text = '';\n }\n if (escapeNewLines) {\n // adjusts highlights inplace\n text = HighlightedLabel.escapeNewLines(text, highlights);\n }\n if (this.didEverRender && this.text === text && this.title === title && objects.equals(this.highlights, highlights)) {\n return;\n }\n this.text = text;\n this.title = title;\n this.highlights = highlights;\n this.render();\n }\n render() {\n var _a, _b, _c, _d;\n const children = [];\n let pos = 0;\n for (const highlight of this.highlights) {\n if (highlight.end === highlight.start) {\n continue;\n }\n if (pos < highlight.start) {\n const substring = this.text.substring(pos, highlight.start);\n if (this.supportIcons) {\n children.push(...renderLabelWithIcons(substring));\n }\n else {\n children.push(substring);\n }\n pos = highlight.start;\n }\n const substring = this.text.substring(pos, highlight.end);\n const element = dom.$('span.highlight', undefined, ...this.supportIcons ? renderLabelWithIcons(substring) : [substring]);\n if (highlight.extraClasses) {\n element.classList.add(...highlight.extraClasses);\n }\n children.push(element);\n pos = highlight.end;\n }\n if (pos < this.text.length) {\n const substring = this.text.substring(pos);\n if (this.supportIcons) {\n children.push(...renderLabelWithIcons(substring));\n }\n else {\n children.push(substring);\n }\n }\n dom.reset(this.domNode, ...children);\n if ((_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n /* While custom hover is not inside custom hover */\n this.domNode.title = this.title;\n }\n else {\n if (!this.customHover && this.title !== '') {\n const hoverDelegate = (_d = (_c = this.options) === null || _c === void 0 ? void 0 : _c.hoverDelegate) !== null && _d !== void 0 ? _d : getDefaultHoverDelegate('mouse');\n this.customHover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.domNode, this.title));\n }\n else if (this.customHover) {\n this.customHover.update(this.title);\n }\n }\n this.didEverRender = true;\n }\n static escapeNewLines(text, highlights) {\n let total = 0;\n let extra = 0;\n return text.replace(/\\r\\n|\\r|\\n/g, (match, offset) => {\n extra = match === '\\r\\n' ? -1 : 0;\n offset += total;\n for (const highlight of highlights) {\n if (highlight.end <= offset) {\n continue;\n }\n if (highlight.start >= offset) {\n highlight.start += extra;\n }\n if (highlight.end >= offset) {\n highlight.end += extra;\n }\n }\n total += extra;\n return '\\u23CE';\n });\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Query, Predicate } from './query';\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\n/**\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\n * This is the base adaptor class that other adaptors can extend.\n *\n * @hidden\n */\nvar Adaptor = /** @class */ (function () {\n /**\n * Constructor for Adaptor class\n *\n * @param {DataOptions} ds?\n * @param ds\n * @hidden\n * @returns aggregates\n */\n function Adaptor(ds) {\n // common options for all the adaptors\n this.options = {\n from: 'table',\n requestType: 'json',\n sortBy: 'sorted',\n select: 'select',\n skip: 'skip',\n group: 'group',\n take: 'take',\n search: 'search',\n count: 'requiresCounts',\n where: 'where',\n aggregates: 'aggregates',\n expand: 'expand'\n };\n /**\n * Specifies the type of adaptor.\n *\n * @default Adaptor\n */\n this.type = Adaptor;\n this.dataSource = ds;\n this.pvt = {};\n }\n /**\n * Returns the data from the query processing.\n *\n * @param {Object} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param ds\n * @param query\n * @param xhr\n * @returns Object\n */\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\n return data;\n };\n return Adaptor;\n}());\nexport { Adaptor };\n/**\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\n *\n * @hidden\n */\nvar JsonAdaptor = /** @class */ (function (_super) {\n __extends(JsonAdaptor, _super);\n function JsonAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dataManager\n * @param {Query} query\n * @returns Object\n */\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\n var result = dataManager.dataSource.json.slice(0);\n var count = result.length;\n var countFlg = true;\n var ret;\n var key;\n var lazyLoad = {};\n var keyCount = 0;\n var group = [];\n var sort = [];\n var page;\n for (var i = 0; i < query.lazyLoad.length; i++) {\n keyCount++;\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n var agg = {};\n var isGroupByFormat = false;\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if (key.fn === 'onGroup' && !isNullOrUndefined(key.e.format)) {\n isGroupByFormat = true;\n break;\n }\n }\n }\n for (var i = 0; i < query.queries.length; i++) {\n key = query.queries[i];\n if ((key.fn === 'onPage' || key.fn === 'onGroup' || (key.fn === 'onSortBy' && !isGroupByFormat)) && query.lazyLoad.length) {\n if (key.fn === 'onGroup') {\n group.push(key.e);\n }\n if (key.fn === 'onPage') {\n page = key.e;\n }\n if (key.fn === 'onSortBy') {\n sort.unshift(key.e);\n }\n continue;\n }\n ret = this[key.fn].call(this, result, key.e, query);\n if (key.fn === 'onAggregates') {\n agg[key.e.field + ' - ' + key.e.type] = ret;\n }\n else {\n result = ret !== undefined ? ret : result;\n }\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\n countFlg = false;\n }\n if (countFlg) {\n count = result.length;\n }\n }\n if (keyCount) {\n var args = {\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page, sort: sort\n };\n var lazyLoadData = this.lazyLoadGroup(args);\n result = lazyLoadData.result;\n count = lazyLoadData.count;\n }\n if (query.isCountRequired) {\n result = {\n result: result,\n count: count,\n aggregates: agg\n };\n }\n return result;\n };\n /**\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\n *\n * @param {LazyLoadGroupArgs} args\n */\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\n var count = 0;\n var agg = this.getAggregate(args.query);\n var result = args.result;\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\n var req = args.lazyLoad.onDemandGroupInfo;\n for (var i = req.where.length - 1; i >= 0; i--) {\n result = this.onWhere(result, req.where[i]);\n }\n if (args.group.length !== req.level) {\n var field = args.group[req.level].fieldName;\n result = DataUtil.group(result, field, agg, null, null, args.group[req.level].comparer, true);\n if (args.sort.length) {\n result = this.onSortBy(result, args.sort[parseInt(req.level.toString(), 10)], args.query, true);\n }\n }\n else {\n for (var i = args.sort.length - 1; i >= req.level; i--) {\n result = this.onSortBy(result, args.sort[parseInt(i.toString(), 10)], args.query, false);\n }\n }\n count = result.length;\n var data = result;\n result = result.slice(req.skip);\n result = result.slice(0, req.take);\n if (args.group.length !== req.level) {\n this.formGroupResult(result, data);\n }\n }\n else {\n var field_1 = args.group[0].fieldName;\n result = DataUtil.group(result, field_1, agg, null, null, args.group[0].comparer, true);\n count = result.length;\n var data = result;\n if (args.sort.length) {\n var sort = args.sort.length > 1 ?\n args.sort.filter(function (x) { return x.fieldName === field_1; })[0] : args.sort[0];\n result = this.onSortBy(result, sort, args.query, true);\n }\n if (args.page) {\n result = this.onPage(result, args.page, args.query);\n }\n this.formGroupResult(result, data);\n }\n return { result: result, count: count };\n };\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\n if (result.length && data.length) {\n var uid = 'GroupGuid';\n var childLevel = 'childLevels';\n var level = 'level';\n var records = 'records';\n result[uid] = data[uid];\n result[childLevel] = data[childLevel];\n result[level] = data[level];\n result[records] = data[records];\n }\n return result;\n };\n /**\n * Separate the aggregate query from the given queries\n *\n * @param {Query} query\n */\n JsonAdaptor.prototype.getAggregate = function (query) {\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\n var agg = [];\n if (aggQuery.length) {\n var tmp = void 0;\n for (var i = 0; i < aggQuery.length; i++) {\n tmp = aggQuery[i].e;\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\n }\n }\n return agg;\n };\n /**\n * Performs batch update in the JSON array which add, remove and update records.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var i;\n var deletedRecordsLen = changes.deletedRecords.length;\n for (i = 0; i < changes.addedRecords.length; i++) {\n this.insert(dm, changes.addedRecords[i]);\n }\n for (i = 0; i < changes.changedRecords.length; i++) {\n this.update(dm, e.key, changes.changedRecords[i]);\n }\n for (i = 0; i < deletedRecordsLen; i++) {\n this.remove(dm, e.key, changes.deletedRecords[i]);\n }\n return changes;\n };\n /**\n * Performs filter operation with the given data and where query.\n *\n * @param {Object[]} ds\n * @param {{validate:Function}} e\n * @param e.validate\n */\n JsonAdaptor.prototype.onWhere = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.filter(function (obj) {\n if (e) {\n return e.validate(obj);\n }\n });\n };\n /**\n * Returns aggregate function based on the aggregate type.\n *\n * @param {Object[]} ds\n * @param e\n * @param {string} } type\n * @param e.field\n * @param e.type\n */\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\n var fn = DataUtil.aggregates[e.type];\n if (!ds || !fn || ds.length === 0) {\n return null;\n }\n return fn(ds, e.field);\n };\n /**\n * Performs search operation based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n */\n JsonAdaptor.prototype.onSearch = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n if (e.fieldNames.length === 0) {\n DataUtil.getFieldList(ds[0], e.fieldNames);\n }\n return ds.filter(function (obj) {\n for (var j = 0; j < e.fieldNames.length; j++) {\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\n return true;\n }\n }\n return false;\n });\n };\n /**\n * Sort the data with given direction and field.\n *\n * @param {Object[]} ds\n * @param e\n * @param {Object} b\n * @param e.comparer\n * @param e.fieldName\n * @param query\n * @param isLazyLoadGroupSort\n */\n JsonAdaptor.prototype.onSortBy = function (ds, e, query, isLazyLoadGroupSort) {\n if (!ds || !ds.length) {\n return ds;\n }\n var fnCompare;\n var field = DataUtil.getValue(e.fieldName, query);\n if (!field) {\n return ds.sort(e.comparer);\n }\n if (field instanceof Array) {\n field = field.slice(0);\n for (var i = field.length - 1; i >= 0; i--) {\n if (!field[i]) {\n continue;\n }\n fnCompare = e.comparer;\n if (DataUtil.endsWith(field[i], ' desc')) {\n fnCompare = DataUtil.fnSort('descending');\n field[i] = field[i].replace(' desc', '');\n }\n ds = DataUtil.sort(ds, field[i], fnCompare);\n }\n return ds;\n }\n return DataUtil.sort(ds, isLazyLoadGroupSort ? 'key' : field, e.comparer);\n };\n /**\n * Group the data based on the given query.\n *\n * @param {Object[]} ds\n * @param {QueryOptions} e\n * @param {Query} query\n */\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\n if (!ds || !ds.length) {\n return ds;\n }\n var agg = this.getAggregate(query);\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\n };\n /**\n * Retrieves records based on the given page index and size.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } pageIndex\n * @param e.pageSize\n * @param {Query} query\n * @param e.pageIndex\n */\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\n var size = DataUtil.getValue(e.pageSize, query);\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\n var end = start + size;\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(start, end);\n };\n /**\n * Retrieves records based on the given start and end index from query.\n *\n * @param {Object[]} ds\n * @param e\n * @param {number} } end\n * @param e.start\n * @param e.end\n */\n JsonAdaptor.prototype.onRange = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\n };\n /**\n * Picks the given count of records from the top of the datasource.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onTake = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(0, DataUtil.getValue(e.nos));\n };\n /**\n * Skips the given count of records from the data source.\n *\n * @param {Object[]} ds\n * @param {{nos:number}} e\n * @param e.nos\n */\n JsonAdaptor.prototype.onSkip = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return ds.slice(DataUtil.getValue(e.nos));\n };\n /**\n * Selects specified columns from the data source.\n *\n * @param {Object[]} ds\n * @param {{fieldNames:string}} e\n * @param e.fieldNames\n */\n JsonAdaptor.prototype.onSelect = function (ds, e) {\n if (!ds || !ds.length) {\n return ds;\n }\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\n };\n /**\n * Inserts new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param tableName\n * @param query\n * @param {number} position\n */\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n if (isNullOrUndefined(position)) {\n return dm.dataSource.json.push(data);\n }\n else {\n return dm.dataSource.json.splice(position, 0, data);\n }\n };\n /**\n * Remove the data from the dataSource based on the key field value.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n if (typeof value === 'object' && !(value instanceof Date)) {\n value = DataUtil.getObject(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (DataUtil.getObject(keyField, ds[i]) === value) {\n break;\n }\n }\n return i !== ds.length ? ds.splice(i, 1) : null;\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @returns null\n */\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n var ds = dm.dataSource.json;\n var i;\n var key;\n if (!isNullOrUndefined(keyField)) {\n key = getValue(keyField, value);\n }\n for (i = 0; i < ds.length; i++) {\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\n break;\n }\n }\n return i < ds.length ? merge(ds[i], value) : null;\n };\n return JsonAdaptor;\n}(Adaptor));\nexport { JsonAdaptor };\n/**\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\n * It interacts with server-side for all DataManager Queries and CRUD operations.\n *\n * @hidden\n */\nvar UrlAdaptor = /** @class */ (function (_super) {\n __extends(UrlAdaptor, _super);\n function UrlAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Process the query to generate request body.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns p\n */\n // tslint:disable-next-line:max-func-body-length\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var params = query.params;\n var url = dm.dataSource.url;\n var temp;\n var skip;\n var take = null;\n var options = this.options;\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n // calc Paging & Range\n if ('onPage' in singles) {\n temp = singles.onPage;\n skip = DataUtil.getValue(temp.pageIndex, query);\n take = DataUtil.getValue(temp.pageSize, query);\n skip = (skip - 1) * take;\n }\n else if ('onRange' in singles) {\n temp = singles.onRange;\n skip = temp.start;\n take = temp.end - temp.start;\n }\n // Sorting\n for (var i = 0; i < queries.sorts.length; i++) {\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\n }\n // hierarchy\n if (hierarchyFilters) {\n temp = this.getFiltersFrom(hierarchyFilters, query);\n if (temp) {\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\n }\n }\n // Filters\n for (var i = 0; i < queries.filters.length; i++) {\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\n if ((this.getModuleName &&\n this.getModuleName() === 'ODataV4Adaptor') &&\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\n res = '(' + res + ')';\n }\n request.filters.push(res);\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n if (DataUtil.isNull((request)[prop])) {\n delete request[prop];\n }\n }\n }\n // Searches\n for (var i = 0; i < queries.searches.length; i++) {\n temp = queries.searches[i].e;\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\n fields: temp.fieldNames,\n operator: temp.operator,\n key: temp.searchKey,\n ignoreCase: temp.ignoreCase\n }, query));\n }\n // Grouping\n for (var i = 0; i < queries.groups.length; i++) {\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\n }\n // aggregates\n for (var i = 0; i < queries.aggregates.length; i++) {\n temp = queries.aggregates[i].e;\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\n }\n var req = {};\n this.getRequestQuery(options, query, singles, request, req);\n // Params\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\n if (query.lazyLoad.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\n }\n }\n // cleanup\n var keys = Object.keys(req);\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\n var prop = keys_2[_a];\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\n delete req[prop];\n }\n }\n if (!(options.skip in req && options.take in req) && take !== null) {\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\n }\n var p = this.pvt;\n this.pvt = {};\n if (this.options.requestType === 'json') {\n return {\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\n url: url,\n pvtData: p,\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n }\n temp = this.convertToQueryString(req, query, dm);\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\n return {\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\n };\n };\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\n var param = 'param';\n var req = request1;\n req[options.from] = query.fromTable;\n if (options.apply && query.distincts.length) {\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\n }\n if (!query.distincts.length && options.expand) {\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\n }\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\n req[options.skip] = 'onSkip' in singles ?\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\n req[options.take] = 'onTake' in singles ?\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\n req[options.where] = request.filters.length || request.searches.length ?\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\n req[options.aggregates] = request.aggregates.length ?\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\n req[param] = [];\n };\n /**\n * Convert the object from processQuery to string which can be added query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n */\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n return '';\n // this needs to be overridden\n };\n /**\n * Return the data from the data manager processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Object} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (xhr && xhr.headers.get('Content-Type') &&\n xhr.headers.get('Content-Type').indexOf('application/json') !== -1) {\n var handleTimeZone = DataUtil.timeZoneHandling;\n if (ds && !ds.timeZoneHandling) {\n DataUtil.timeZoneHandling = false;\n }\n data = DataUtil.parse.parseJson(data);\n DataUtil.timeZoneHandling = handleTimeZone;\n }\n var requests = request;\n var pvt = requests.pvtData || {};\n var groupDs = data ? data.groupDs : [];\n if (xhr && xhr.headers.get('Content-Type') &&\n xhr.headers.get('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n var d = JSON.parse(requests.data);\n if (d && d.action === 'batch' && data && data.addedRecords && !isNullOrUndefined(changes)) {\n changes.addedRecords = data.addedRecords;\n return changes;\n }\n if (data && data.d) {\n data = data.d;\n }\n var args = {};\n if (data && 'count' in data) {\n args.count = data.count;\n }\n args.result = data && data.result ? data.result : data;\n var isExpand = false;\n if (Array.isArray(data.result) && data.result.length) {\n var key = 'key';\n var val = 'value';\n var level = 'level';\n if (!isNullOrUndefined(data.result[0][key])) {\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\n }\n if (query && query.lazyLoad.length && pvt.groups.length) {\n for (var i = 0; i < query.lazyLoad.length; i++) {\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\n var value = query.lazyLoad[i][val][level];\n if (pvt.groups.length === value) {\n isExpand = true;\n }\n }\n }\n }\n }\n if (!isExpand) {\n this.getAggregateResult(pvt, data, args, groupDs, query);\n }\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\n }\n }\n var uid = 'GroupGuid';\n var childLvl = 'childLevels';\n var lvl = 'level';\n var records = 'records';\n data[uid] = consts[uid];\n data[lvl] = level;\n data[childLvl] = childLevel;\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\n return data;\n };\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\n var childGroupedRecords = [];\n var records = 'records';\n for (var i = 0; i < data.length; i++) {\n if (!hasRecords) {\n for (var j = 0; j < data[i].items.length; j++) {\n childGroupedRecords.push(data[i].items[j]);\n }\n }\n else {\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\n }\n }\n return childGroupedRecords;\n };\n /**\n * Add the group query to the adaptor`s option.\n *\n * @param {Object[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return e;\n };\n /**\n * Add the aggregate query to the adaptor`s option.\n *\n * @param {Aggregates[]} e\n * @returns void\n */\n UrlAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param query\n * @param original\n */\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var url;\n var key;\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e[url],\n key: e[key]\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @returns void\n */\n UrlAdaptor.prototype.beforeSend = function (dm, request, settings) {\n // need to extend this method\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number|string} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: value,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n * @param query\n */\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: value,\n action: 'update',\n keyColumn: keyField,\n key: DataUtil.getObject(keyField, value),\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n /**\n * To generate the predicate based on the filtered query.\n *\n * @param {Object[]|string[]|number[]} data\n * @param {Query} query\n * @hidden\n */\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\n var key = query.fKey;\n var value;\n var prop = key;\n var pKey = query.key;\n var predicats = [];\n if (typeof data[0] !== 'object') {\n prop = null;\n }\n for (var i = 0; i < data.length; i++) {\n if (typeof data[0] === 'object') {\n value = DataUtil.getObject(pKey || prop, data[i]);\n }\n else {\n value = data[i];\n }\n predicats.push(new Predicate(key, 'equal', value));\n }\n return Predicate.or(predicats);\n };\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\n var pData = data;\n if (data && data.result) {\n pData = data.result;\n }\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\n var agg = pvt.aggregates;\n var fn = void 0;\n var aggregateData = pData;\n var res = {};\n if (data.aggregate) {\n aggregateData = data.aggregate;\n }\n for (var i = 0; i < agg.length; i++) {\n fn = DataUtil.aggregates[agg[i].type];\n if (fn) {\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\n }\n }\n args.aggregates = res;\n }\n var key = 'key';\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\n var groups = pvt.groups;\n for (var i = 0; i < groups.length; i++) {\n var level = null;\n if (!isNullOrUndefined(groupDs)) {\n groupDs = DataUtil.group(groupDs, groups[i]);\n }\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\n }\n args.result = pData;\n }\n return args;\n };\n UrlAdaptor.prototype.getQueryRequest = function (query) {\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\n req.groups = Query.filterQueries(query.queries, 'onGroup');\n req.filters = Query.filterQueries(query.queries, 'onWhere');\n req.searches = Query.filterQueries(query.queries, 'onSearch');\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\n return req;\n };\n UrlAdaptor.prototype.addParams = function (options) {\n var req = options.reqParams;\n if (options.params.length) {\n req.params = {};\n }\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\n var tmp = _a[_i];\n if (req[tmp.key]) {\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\n }\n req[tmp.key] = tmp.value;\n if (tmp.fn) {\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\n }\n req.params[tmp.key] = req[tmp.key];\n }\n };\n return UrlAdaptor;\n}(Adaptor));\nexport { UrlAdaptor };\n/**\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\n *\n * @hidden\n */\nvar ODataAdaptor = /** @class */ (function (_super) {\n __extends(ODataAdaptor, _super);\n function ODataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$inlinecount',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PUT'\n });\n extend(_this.options, props || {});\n return _this;\n }\n ODataAdaptor.prototype.getModuleName = function () {\n return 'ODataAdaptor';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var operator;\n var guid;\n var val = predicate.value;\n var type = typeof val;\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\n if (val instanceof Date) {\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\n }\n if (type === 'string') {\n val = val.replace(/'/g, '\\'\\'');\n if (predicate.ignoreCase) {\n val = val.toLowerCase();\n }\n if (predicate.operator !== 'like') {\n val = encodeURIComponent(val);\n }\n if (predicate.operator !== 'wildcard' && predicate.operator !== 'like') {\n val = '\\'' + val + '\\'';\n }\n if (requiresCast) {\n field = 'cast(' + field + ', \\'Edm.String\\')';\n }\n if (DataUtil.parse.isGuid(val)) {\n guid = 'guid';\n }\n if (predicate.ignoreCase) {\n if (!guid) {\n field = 'tolower(' + field + ')';\n }\n val = val.toLowerCase();\n }\n }\n if (predicate.operator === 'isempty' || predicate.operator === 'isnull' || predicate.operator === 'isnotempty' ||\n predicate.operator === 'isnotnull') {\n operator = predicate.operator.indexOf('isnot') !== -1 ? DataUtil.odBiOperator['notequal'] : DataUtil.odBiOperator['equal'];\n val = predicate.operator === 'isnull' || predicate.operator === 'isnotnull' ? null : '\\'\\'';\n }\n else {\n operator = DataUtil.odBiOperator[predicate.operator];\n }\n if (operator) {\n returnValue += field;\n returnValue += operator;\n if (guid) {\n returnValue += guid;\n }\n return returnValue + val;\n }\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\n operator = DataUtil.odv4UniOperator[predicate.operator];\n }\n else {\n operator = DataUtil.odUniOperator[predicate.operator];\n }\n if (operator === 'like') {\n val = val;\n if (val.indexOf('%') !== -1) {\n if (val.charAt(0) === '%' && val.lastIndexOf('%') < 2) {\n val = val.substring(1, val.length);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n }\n else if (val.charAt(val.length - 1) === '%' && val.indexOf('%') > val.length - 3) {\n val = val.substring(0, val.length - 1);\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n }\n else if (val.lastIndexOf('%') !== val.indexOf('%') && val.lastIndexOf('%') > val.indexOf('%') + 1) {\n val = val.substring(val.indexOf('%') + 1, val.lastIndexOf('%'));\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n }\n }\n val = encodeURIComponent(val);\n val = '\\'' + val + '\\'';\n }\n else if (operator === 'wildcard') {\n val = val;\n if (val.indexOf('*') !== -1) {\n var splittedStringValue = val.split('*');\n var splittedValue = void 0;\n var count = 0;\n if (val.indexOf('*') !== 0 && splittedStringValue[0].indexOf('%3f') === -1 &&\n splittedStringValue[0].indexOf('?') === -1) {\n splittedValue = splittedStringValue[0];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['startswith'] : DataUtil.odUniOperator['startswith'];\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (val.lastIndexOf('*') !== val.length - 1 && splittedStringValue[splittedStringValue.length - 1].indexOf('%3f') === -1 &&\n splittedStringValue[splittedStringValue.length - 1].indexOf('?') === -1) {\n splittedValue = splittedStringValue[splittedStringValue.length - 1];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['endswith'] : DataUtil.odUniOperator['endswith'];\n if (count > 0) {\n returnValue += ' and ';\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n if (splittedStringValue.length > 2) {\n for (var i = 1; i < splittedStringValue.length - 1; i++) {\n if (splittedStringValue[i].indexOf('%3f') === -1 && splittedStringValue[i].indexOf('?') === -1) {\n splittedValue = splittedStringValue[i];\n splittedValue = '\\'' + splittedValue + '\\'';\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (count > 0) {\n returnValue += ' and ';\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = splittedValue;\n splittedValue = field;\n field = temp;\n }\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += splittedValue + ')';\n count++;\n }\n }\n }\n if (count === 0) {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n else {\n operator = 'wildcard';\n }\n }\n else {\n operator = !isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor' ?\n DataUtil.odv4UniOperator['contains'] : DataUtil.odUniOperator['contains'];\n if (val.indexOf('?') !== -1 || val.indexOf('%3f') !== -1) {\n val = val.indexOf('?') !== -1 ? val.split('?').join('') : val.split('%3f').join('');\n }\n val = '\\'' + val + '\\'';\n }\n }\n if (operator === 'substringof' || operator === 'not substringof') {\n var temp = val;\n val = field;\n field = temp;\n }\n if (operator !== 'wildcard') {\n returnValue += operator + '(';\n returnValue += field + ',';\n if (guid) {\n returnValue += guid;\n }\n returnValue += val + ')';\n }\n return returnValue;\n };\n ODataAdaptor.prototype.addParams = function (options) {\n _super.prototype.addParams.call(this, options);\n delete options.reqParams.params;\n };\n /**\n * Generate request string based on the multiple filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\n var res = [];\n for (var i = 0; i < predicate.predicates.length; i++) {\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\n }\n return res.join(' ' + predicate.condition + ' ');\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {Predicate} filter\n * @param {boolean} requiresCast?\n * @param query\n * @param requiresCast\n */\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\n };\n /**\n * Generate query string based on the multiple filter criteria from query.\n *\n * @param {string[]} filters\n */\n ODataAdaptor.prototype.onWhere = function (filters) {\n if (this.pvt.search) {\n filters.push(this.onEachWhere(this.pvt.search, null, true));\n }\n return filters.join(' and ');\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataAdaptor.prototype.onEachSearch = function (e) {\n if (e.fields && e.fields.length === 0) {\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\n }\n var filter = this.pvt.search || [];\n for (var i = 0; i < e.fields.length; i++) {\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\n }\n this.pvt.search = filter;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataAdaptor.prototype.onSearch = function (e) {\n this.pvt.search = Predicate.or(this.pvt.search);\n return '';\n };\n /**\n * Generate query string based on multiple sort criteria from query.\n *\n * @param {QueryOptions} e\n */\n ODataAdaptor.prototype.onEachSort = function (e) {\n var res = [];\n if (e.name instanceof Array) {\n for (var i = 0; i < e.name.length; i++) {\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\n }\n }\n else {\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\n }\n return res.join(',');\n };\n /**\n * Returns sort query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSortBy = function (e) {\n return e.reverse().join(',');\n };\n /**\n * Adds the group query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onGroup = function (e) {\n this.pvt.groups = e;\n return [];\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataAdaptor.prototype.onSelect = function (e) {\n for (var i = 0; i < e.length; i++) {\n e[i] = ODataAdaptor.getField(e[i]);\n }\n return e.join(',');\n };\n /**\n * Add the aggregate query to the adaptor option.\n *\n * @param {Object[]} e\n * @returns string\n */\n ODataAdaptor.prototype.onAggregates = function (e) {\n this.pvt.aggregates = e;\n return '';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataAdaptor.prototype.onCount = function (e) {\n return e === true ? 'allpages' : '';\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @param settings\n */\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\n request.headers.set('Accept', this.options.multipartAccept);\n request.headers.set('DataServiceVersion', '2.0');\n //request.overrideMimeType('text/plain; charset=x-user-defined');\n }\n else {\n request.headers.set('Accept', this.options.accept);\n }\n request.headers.set('DataServiceVersion', '2.0');\n request.headers.set('MaxDataServiceVersion', '2.0');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaCheck = 'odata.metadata';\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\n var dataUrls = data[metaCheck].split('/$metadata#');\n this.rootUrl = dataUrls[0];\n this.resourceTableName = dataUrls[1];\n }\n var pvtData = 'pvtData';\n if (!isNullOrUndefined(data.d)) {\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\n var metaData = '__metadata';\n if (!isNullOrUndefined(dataCopy)) {\n for (var i = 0; i < dataCopy.length; i++) {\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\n delete dataCopy[i][metaData];\n }\n }\n }\n }\n var pvt = request && request[pvtData];\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var versionCheck = xhr && request.fetchRequest.headers.get('DataServiceVersion');\n var count = null;\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n var oDataCount = '__count';\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n if (data.d) {\n data = data.d;\n }\n if (data[oDataCount] || data['odata.count']) {\n count = data[oDataCount] || data['odata.count'];\n }\n }\n if (version === 3 && data.value) {\n data = data.value;\n }\n if (data.d) {\n data = data.d;\n }\n if (version < 3 && data.results) {\n data = data.results;\n }\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n /**\n * Converts the request object to query string.\n *\n * @param {Object} req\n * @param request\n * @param {Query} query\n * @param {DataManager} dm\n * @returns tableName\n */\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\n var res = [];\n var table = 'table';\n var tableName = request[table] || '';\n var format = '$format';\n delete request[table];\n if (dm.dataSource.requiresFormat) {\n request[format] = 'json';\n }\n var keys = Object.keys(request);\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\n var prop = keys_4[_i];\n res.push(prop + '=' + request[prop]);\n }\n res = res.join('&');\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\n return res;\n }\n return res.length ? tableName + '?' + res : tableName || '';\n };\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((convertObj[prop] instanceof Date)) {\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\n }\n }\n return convertObj;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n var url;\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\n url = \"('\" + value + \"')\";\n }\n else {\n url = \"(\" + value + \")\";\n }\n return {\n type: 'DELETE',\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\n };\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n * @param query\n * @param original\n * @returns this\n */\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\n value = this.compareAndRemove(value, original, keyField);\n }\n var url;\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\n url = \"('\" + value[keyField] + \"')\";\n }\n else {\n url = \"(\" + value[keyField] + \")\";\n }\n return {\n type: this.options.updateType,\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\n accept: this.options.accept\n };\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n * @returns {Object}\n */\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = (dm.dataSource.batchUrl || this.rootUrl) ?\n (dm.dataSource.batchUrl || this.rootUrl) + '/' + this.options.batch :\n (dm.dataSource.batchUrl || dm.dataSource.url).replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var args = {\n url: e.url,\n key: e.key,\n cid: 1,\n cSet: DataUtil.getGuid(this.options.changeSet)\n };\n var req = '--' + initialGuid + '\\n';\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\n this.pvt.changeSet = 0;\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\n req += args.cSet + '--\\n';\n req += '--' + initialGuid + '--';\n return {\n type: 'POST',\n url: url,\n dataType: 'json',\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\n data: req\n };\n };\n /**\n * Generate the string content from the removed records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @returns this\n */\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '(' + url + ')';\n }\n else if (url instanceof Date) {\n var dateTime = data[i][key];\n return '(' + dateTime.toJSON() + ')';\n }\n else {\n return \"('\" + url + \"')\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req + '\\n';\n };\n /**\n * Generate the string content from the inserted records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n */\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\n if (!arr) {\n return '';\n }\n var req = '';\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n /**\n * Generate the string content from the updated records.\n * The result will be send during batch update.\n *\n * @param {Object[]} arr\n * @param {RemoteArgs} e\n * @param dm\n * @param org\n */\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\n var _this = this;\n if (!arr) {\n return '';\n }\n var req = '';\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\n var stat = {\n 'method': this.options.updateType + ' ',\n 'url': function (data, i, key) {\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\n return '(' + data[i][key] + ')';\n }\n else if (data[i][key] instanceof Date) {\n var date = data[i][key];\n return '(' + date.toJSON() + ')';\n }\n else {\n return \"('\" + data[i][key] + \"')\";\n }\n },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req = this.generateBodyContent(arr, e, stat, dm);\n return req;\n };\n ODataAdaptor.getField = function (prop) {\n return prop.replace(/\\./g, '/');\n };\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\n var req = '';\n for (var i = 0; i < arr.length; i++) {\n req += '\\n' + e.cSet + '\\n';\n req += this.options.changeSetContent + '\\n\\n';\n req += stat.method;\n if (stat.method === 'POST ') {\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n else if (stat.method === 'DELETE ') {\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\n }\n req += 'Accept: ' + this.options.accept + '\\n';\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\n req += this.options.batchChangeSetContentType + '\\n';\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\n delete arr[i]['@odata.etag'];\n }\n else {\n req += '\\n';\n }\n req += stat.data(arr, i);\n }\n return req;\n };\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\n if (xhr && xhr.headers.get('Content-Type') && xhr.headers.get('Content-Type').indexOf('xml') !== -1) {\n return (query.isCountRequired ? { result: [], count: 0 } : []);\n }\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\n var guid = xhr.headers.get('Content-Type');\n var cIdx = void 0;\n var jsonObj = void 0;\n var d = data + '';\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\n d = d.split(guid);\n if (d.length < 2) {\n return {};\n }\n d = d[1];\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\n if (exVal) {\n d.replace(exVal[0], '');\n }\n var changeGuid = exVal ? exVal[1] : '';\n d = d.split(changeGuid);\n for (var i = d.length; i > -1; i--) {\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\n continue;\n }\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\n if (changes.addedRecords[cIdx]) {\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\n }\n }\n return changes;\n }\n return null;\n };\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\n var _this = this;\n if (isNullOrUndefined(original)) {\n return data;\n }\n Object.keys(data).forEach(function (prop) {\n if (prop !== key && prop !== '@odata.etag') {\n if (DataUtil.isPlainObject(data[prop])) {\n _this.compareAndRemove(data[prop], original[prop]);\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\n if (final.length === 0) {\n delete data[prop];\n }\n }\n else if (data[prop] === original[prop]) {\n delete data[prop];\n }\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\n delete data[prop];\n }\n }\n });\n return data;\n };\n return ODataAdaptor;\n}(UrlAdaptor));\nexport { ODataAdaptor };\n/**\n * The OData v4 is an improved version of OData protocols.\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\n *\n * @hidden\n */\nvar ODataV4Adaptor = /** @class */ (function (_super) {\n __extends(ODataV4Adaptor, _super);\n function ODataV4Adaptor(props) {\n var _this = _super.call(this, props) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n requestType: 'get',\n accept: 'application/json, text/javascript, */*; q=0.01',\n multipartAccept: 'multipart/mixed',\n sortBy: '$orderby',\n select: '$select',\n skip: '$skip',\n take: '$top',\n count: '$count',\n search: '$search',\n where: '$filter',\n expand: '$expand',\n batch: '$batch',\n changeSet: '--changeset_',\n batchPre: 'batch_',\n contentId: 'Content-Id: ',\n batchContent: 'Content-Type: multipart/mixed; boundary=',\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\n updateType: 'PATCH',\n localTime: false,\n apply: '$apply'\n });\n extend(_this.options, props || {});\n return _this;\n }\n /**\n * @hidden\n */\n ODataV4Adaptor.prototype.getModuleName = function () {\n return 'ODataV4Adaptor';\n };\n /**\n * Returns the query string which requests total count from the data source.\n *\n * @param {boolean} e\n * @returns string\n */\n ODataV4Adaptor.prototype.onCount = function (e) {\n return e === true ? 'true' : '';\n };\n /**\n * Generate request string based on the filter criteria from query.\n *\n * @param {Predicate} pred\n * @param {boolean} requiresCast?\n * @param predicate\n * @param query\n * @param requiresCast\n */\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\n var returnValue = '';\n var val = predicate.value;\n var isDate = val instanceof Date;\n if (query instanceof Query) {\n var queries = this.getQueryRequest(query);\n for (var i = 0; i < queries.filters.length; i++) {\n if (queries.filters[i].e.key === predicate.value) {\n requiresCast = true;\n }\n }\n }\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\n if (isDate) {\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\n }\n if (DataUtil.parse.isGuid(val)) {\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\n }\n return returnValue;\n };\n /**\n * Generate query string based on the multiple search criteria from query.\n *\n * @param e\n * @param {string} operator\n * @param {string} key\n * @param {boolean} } ignoreCase\n * @param e.fields\n * @param e.operator\n * @param e.key\n * @param e.ignoreCase\n */\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\n var search = this.pvt.searches || [];\n search.push(e.key);\n this.pvt.searches = search;\n };\n /**\n * Generate query string based on the search criteria from query.\n *\n * @param {Object} e\n */\n ODataV4Adaptor.prototype.onSearch = function (e) {\n return this.pvt.searches.join(' OR ');\n };\n /**\n * Returns the expand query string.\n *\n * @param {string} e\n * @param e.selects\n * @param e.expands\n */\n ODataV4Adaptor.prototype.onExpand = function (e) {\n var _this = this;\n var selected = {};\n var expanded = {};\n var expands = e.expands.slice();\n var exArr = [];\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\n selects.forEach(function (select) {\n var splits = select.split('.');\n if (!(splits[0] in selected)) {\n selected[splits[0]] = [];\n }\n if (splits.length === 2) {\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1) {\n if (selected[splits[0]][0].indexOf('$expand') !== -1 && selected[splits[0]][0].indexOf(';$select=') === -1) {\n selected[splits[0]][0] = selected[splits[0]][0] + ';' + '$select=' + splits[1];\n }\n else {\n selected[splits[0]][0] = selected[splits[0]][0] + ',' + splits[1];\n }\n }\n else {\n selected[splits[0]].push('$select=' + splits[1]);\n }\n }\n else {\n var sel = '$select=' + splits[splits.length - 1];\n var exp = '';\n var close_1 = '';\n for (var i = 1; i < splits.length - 1; i++) {\n exp = exp + '$expand=' + splits[i] + '(';\n close_1 = close_1 + ')';\n }\n var combineVal = exp + sel + close_1;\n if (selected[splits[0]].length && Object.keys(selected).indexOf(splits[0]) !== -1 &&\n _this.expandQueryIndex(selected[splits[0]], true)) {\n var idx = _this.expandQueryIndex(selected[splits[0]]);\n selected[splits[0]][idx] = selected[splits[0]][idx] + combineVal.replace('$expand=', ',');\n }\n else {\n selected[splits[0]].push(combineVal);\n }\n }\n });\n //Auto expand from select query\n Object.keys(selected).forEach(function (expand) {\n if ((expands.indexOf(expand) === -1)) {\n expands.push(expand);\n }\n });\n expands.forEach(function (expand) {\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\n });\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\n return exArr.join(',');\n };\n ODataV4Adaptor.prototype.expandQueryIndex = function (query, isExpand) {\n for (var i = 0; i < query.length; i++) {\n if (query[i].indexOf('$expand') !== -1) {\n return isExpand ? true : i;\n }\n }\n return isExpand ? false : 0;\n };\n /**\n * Returns the groupby query string.\n *\n * @param {string} e\n * @param distinctFields\n */\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\n return \"groupby((\" + fields + \"))\";\n };\n /**\n * Returns the select query string.\n *\n * @param {string[]} e\n */\n ODataV4Adaptor.prototype.onSelect = function (e) {\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings\n * @returns void\n */\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\n request.headers.set('Prefer', 'return=representation');\n }\n request.headers.set('Accept', this.options.accept);\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var metaName = '@odata.context';\n var metaV4Name = '@context';\n if ((request && request.type === 'GET') && !this.rootUrl && (data[metaName] || data[metaV4Name])) {\n var dataUrl = data[metaName] ? data[metaName].split('/$metadata#') : data[metaV4Name].split('/$metadata#');\n this.rootUrl = dataUrl[0];\n this.resourceTableName = dataUrl[1];\n }\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\n if (emptyAndBatch) {\n return emptyAndBatch;\n }\n var count = null;\n var dataCount = '@odata.count';\n var dataV4Count = '@count';\n if (query && query.isCountRequired) {\n if (dataCount in data) {\n count = data[dataCount];\n }\n else if (dataV4Count in data) {\n count = data[dataV4Count];\n }\n }\n data = !isNullOrUndefined(data.value) ? data.value : data;\n var args = {};\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\n };\n return ODataV4Adaptor;\n}(ODataAdaptor));\nexport { ODataV4Adaptor };\n/**\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\n * The DataManager uses the WebApiAdaptor to consume Web API.\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\n *\n * @hidden\n */\nvar WebApiAdaptor = /** @class */ (function (_super) {\n __extends(WebApiAdaptor, _super);\n function WebApiAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebApiAdaptor.prototype.getModuleName = function () {\n return 'WebApiAdaptor';\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\n return {\n type: 'POST',\n url: dm.dataSource.url,\n data: JSON.stringify(data)\n };\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {number} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n return {\n type: 'DELETE',\n url: dm.dataSource.url + '/' + value,\n data: JSON.stringify(value)\n };\n };\n /**\n * Prepare and return request body which is used to update record.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n return {\n type: 'PUT',\n url: dm.dataSource.url,\n data: JSON.stringify(value)\n };\n };\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\n var _this = this;\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\n var req = [];\n var _loop_1 = function (i, x) {\n changes.addedRecords.forEach(function (j, d) {\n var stat = {\n 'method': 'POST ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //insertion\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\n _loop_1(i, x);\n }\n var _loop_2 = function (i, x) {\n changes.changedRecords.forEach(function (j, d) {\n var stat = {\n 'method': _this.options.updateType + ' ',\n 'url': function (data, i, key) { return ''; },\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //updation\n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\n _loop_2(i, x);\n }\n var _loop_3 = function (i, x) {\n changes.deletedRecords.forEach(function (j, d) {\n var state = {\n 'mtd': 'DELETE ',\n 'url': function (data, i, key) {\n var url = DataUtil.getObject(key, data[i]);\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\n return '/' + url;\n }\n else if (url instanceof Date) {\n var datTime = data[i][key];\n return '/' + datTime.toJSON();\n }\n else {\n return \"/'\" + url + \"'\";\n }\n },\n 'data': function (data, i) { return ''; }\n };\n req.push('--' + initialGuid);\n req.push('Content-Type: application/http; msgtype=request', '');\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\n req.push('Host: ' + location.host);\n req.push('', j ? JSON.stringify(j) : '');\n });\n };\n //deletion\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\n _loop_3(i, x);\n }\n req.push('--' + initialGuid + '--', '');\n return {\n type: 'POST',\n url: url,\n contentType: 'multipart/mixed; boundary=' + initialGuid,\n data: req.join('\\r\\n')\n };\n };\n /**\n * Method will trigger before send the request to server side.\n * Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings\n * @returns void\n */\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\n request.headers.set('Accept', 'application/json, text/javascript, */*; q=0.01');\n };\n /**\n * Returns the data from the query processing.\n *\n * @param {DataResult} data\n * @param {DataOptions} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n * @returns aggregateResult\n */\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n var pvtData = 'pvtData';\n var pvt = request && request[pvtData];\n var count = null;\n var args = {};\n if (request && request.type.toLowerCase() !== 'post') {\n var versionCheck = xhr && request.fetchRequest.headers.get('DataServiceVersion');\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\n if (query && query.isCountRequired) {\n if (!DataUtil.isNull(data.Count)) {\n count = data.Count;\n }\n }\n if (version < 3 && data.Items) {\n data = data.Items;\n }\n args.count = count;\n args.result = data;\n this.getAggregateResult(pvt, data, args, null, query);\n }\n args.result = args.result || data;\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\n };\n return WebApiAdaptor;\n}(ODataAdaptor));\nexport { WebApiAdaptor };\n/**\n * WebMethodAdaptor can be used by DataManager to interact with web method.\n *\n * @hidden\n */\nvar WebMethodAdaptor = /** @class */ (function (_super) {\n __extends(WebMethodAdaptor, _super);\n function WebMethodAdaptor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Prepare the request body based on the query.\n * The query information can be accessed at the WebMethod using variable named `value`.\n *\n * @param {DataManager} dm\n * @param {Query} query\n * @param {Object[]} hierarchyFilters?\n * @param hierarchyFilters\n * @returns application\n */\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\n var getData = 'data';\n var data = DataUtil.parse.parseJson(obj[getData]);\n var result = {};\n var value = 'value';\n if (data.param) {\n for (var i = 0; i < data.param.length; i++) {\n var param = data.param[i];\n var key = Object.keys(param)[0];\n result[key] = param[key];\n }\n }\n result[value] = data;\n var pvtData = 'pvtData';\n var url = 'url';\n return {\n data: JSON.stringify(result, DataUtil.parse.jsonDateReplacer),\n url: obj[url],\n pvtData: obj[pvtData],\n type: 'POST',\n contentType: 'application/json; charset=utf-8'\n };\n };\n return WebMethodAdaptor;\n}(UrlAdaptor));\nexport { WebMethodAdaptor };\n/**\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\n * It interacts with server-side only for CRUD operations.\n *\n * @hidden\n */\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\n __extends(RemoteSaveAdaptor, _super);\n /**\n * @hidden\n */\n function RemoteSaveAdaptor() {\n var _this = _super.call(this) || this;\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\n return _this;\n }\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\n this.pvt.position = position;\n this.updateType = 'add';\n return {\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: data,\n table: tableName,\n action: 'insert'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\n _super.prototype.remove.call(this, dm, keyField, val);\n return {\n type: 'POST',\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n key: val,\n keyColumn: keyField,\n table: tableName,\n action: 'remove'\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\n this.updateType = 'update';\n this.updateKey = keyField;\n return {\n type: 'POST',\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n data: JSON.stringify(extend({}, {\n value: val,\n action: 'update',\n keyColumn: keyField,\n key: val[keyField],\n table: tableName\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\n var i;\n var newData = request ? JSON.parse(request.data) : data;\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\n if (this.updateType === 'add') {\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\n }\n if (this.updateType === 'update') {\n _super.prototype.update.call(this, ds, this.updateKey, data);\n }\n this.updateType = undefined;\n if (data.added) {\n for (i = 0; i < data.added.length; i++) {\n _super.prototype.insert.call(this, ds, data.added[i]);\n }\n }\n if (data.changed) {\n for (i = 0; i < data.changed.length; i++) {\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\n }\n }\n if (data.deleted) {\n for (i = 0; i < data.deleted.length; i++) {\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\n }\n }\n return data;\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * Also perform the changes in the locally cached data to sync with the remote data.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n * @param query\n * @param original\n */\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n return {\n type: 'POST',\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\n contentType: 'application/json; charset=utf-8',\n dataType: 'json',\n data: JSON.stringify(extend({}, {\n changed: changes.changedRecords,\n added: changes.addedRecords,\n deleted: changes.deletedRecords,\n action: 'batch',\n table: e.url,\n key: e.key\n }, DataUtil.getAddParams(this, dm, query)))\n };\n };\n RemoteSaveAdaptor.prototype.addParams = function (options) {\n var urlParams = new UrlAdaptor();\n urlParams.addParams(options);\n };\n return RemoteSaveAdaptor;\n}(JsonAdaptor));\nexport { RemoteSaveAdaptor };\n/**\n * Fetch Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\n *\n * @hidden\n */\nvar CustomDataAdaptor = /** @class */ (function (_super) {\n __extends(CustomDataAdaptor, _super);\n function CustomDataAdaptor(props) {\n var _this = _super.call(this) || this;\n // options replaced the default adaptor options\n _this.options = extend({}, _this.options, {\n getData: function () { },\n addRecord: function () { },\n updateRecord: function () { },\n deleteRecord: function () { },\n batchUpdate: function () { }\n });\n extend(_this.options, props || {});\n return _this;\n }\n CustomDataAdaptor.prototype.getModuleName = function () {\n return 'CustomDataAdaptor';\n };\n return CustomDataAdaptor;\n}(UrlAdaptor));\nexport { CustomDataAdaptor };\n/**\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\n *\n * @hidden\n */\nvar GraphQLAdaptor = /** @class */ (function (_super) {\n __extends(GraphQLAdaptor, _super);\n function GraphQLAdaptor(options) {\n var _this = _super.call(this) || this;\n _this.opt = options;\n _this.schema = _this.opt.response;\n _this.query = _this.opt.query;\n /* eslint-disable @typescript-eslint/no-empty-function */\n // tslint:disable-next-line:no-empty\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\n /* eslint-enable @typescript-eslint/no-empty-function */\n _this.getQuery = function () { return _this.query; };\n return _this;\n }\n GraphQLAdaptor.prototype.getModuleName = function () {\n return 'GraphQLAdaptor';\n };\n /**\n * Process the JSON data based on the provided queries.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param datamanager\n * @param query\n */\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\n var dm = JSON.parse(urlQuery.data);\n // constructing GraphQL parameters\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\n 'search', 'requiresCounts', 'aggregates', 'params'];\n var temp = {};\n var str = 'searchwhereparams';\n keys.filter(function (e) {\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\n });\n var vars = this.getVariables() || {};\n // tslint:disable-next-line:no-string-literal\n vars['datamanager'] = temp;\n var data = JSON.stringify({\n query: this.getQuery(),\n variables: vars\n });\n urlQuery.data = data;\n return urlQuery;\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Object} request?\n * @param resData\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @returns DataResult\n */\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\n var res = resData;\n var count;\n var aggregates;\n var result = getValue(this.schema.result, res.data);\n if (this.schema.count) {\n count = getValue(this.schema.count, res.data);\n }\n if (this.schema.aggregates) {\n aggregates = getValue(this.schema.aggregates, res.data);\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\n }\n var pvt = request.pvtData || {};\n var args = { result: result, aggregates: aggregates };\n var data = args;\n if (pvt && pvt.groups && pvt.groups.length) {\n this.getAggregateResult(pvt, data, args, null, query);\n }\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n */\n GraphQLAdaptor.prototype.insert = function () {\n var inserted = _super.prototype.insert.apply(this, arguments);\n return this.generateCrudData(inserted, 'insert');\n };\n /**\n * Prepare and returns request body which is used to update a new record in the table.\n */\n GraphQLAdaptor.prototype.update = function () {\n var inserted = _super.prototype.update.apply(this, arguments);\n return this.generateCrudData(inserted, 'update');\n };\n /**\n * Prepare and returns request body which is used to remove a new record in the table.\n */\n GraphQLAdaptor.prototype.remove = function () {\n var inserted = _super.prototype.remove.apply(this, arguments);\n return this.generateCrudData(inserted, 'remove');\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {Object} e\n * @param e.key\n * @param {Query} query\n * @param {Object} original\n */\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\n var batch = _super.prototype.batchRequest.apply(this, arguments);\n // tslint:disable-next-line:typedef\n var bData = JSON.parse(batch.data);\n bData.key = e.key;\n batch.data = JSON.stringify(bData);\n return this.generateCrudData(batch, 'batch');\n };\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\n var parsed = JSON.parse(crudData.data);\n crudData.data = JSON.stringify({\n query: this.opt.getMutation(action),\n variables: parsed\n });\n return crudData;\n };\n return GraphQLAdaptor;\n}(UrlAdaptor));\nexport { GraphQLAdaptor };\n/**\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\n *\n * @hidden\n */\nvar CacheAdaptor = /** @class */ (function (_super) {\n __extends(CacheAdaptor, _super);\n /**\n * Constructor for CacheAdaptor class.\n *\n * @param {CacheAdaptor} adaptor?\n * @param {number} timeStamp?\n * @param {number} pageSize?\n * @param adaptor\n * @param timeStamp\n * @param pageSize\n * @hidden\n */\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\n var _this = _super.call(this) || this;\n _this.isCrudAction = false;\n _this.isInsertAction = false;\n if (!isNullOrUndefined(adaptor)) {\n _this.cacheAdaptor = adaptor;\n }\n _this.pageSize = pageSize;\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\n var obj = { keys: [], results: [] };\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\n var guid = _this.guidId;\n if (!isNullOrUndefined(timeStamp)) {\n setInterval(function () {\n var data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\n var forDel = [];\n for (var i = 0; i < data.results.length; i++) {\n var currentTime = +new Date();\n var requestTime = +new Date(data.results[i].timeStamp);\n data.results[i].timeStamp = currentTime - requestTime;\n if (currentTime - requestTime > timeStamp) {\n forDel.push(i);\n }\n }\n for (var i = 0; i < forDel.length; i++) {\n data.results.splice(forDel[i], 1);\n data.keys.splice(forDel[i], 1);\n }\n window.localStorage.removeItem(guid);\n window.localStorage.setItem(guid, JSON.stringify(data));\n }, timeStamp);\n }\n return _this;\n }\n /**\n * It will generate the key based on the URL when we send a request to server.\n *\n * @param {string} url\n * @param {Query} query?\n * @param query\n * @hidden\n */\n CacheAdaptor.prototype.generateKey = function (url, query) {\n var queries = this.getQueryRequest(query);\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\n var key = url;\n var page = 'onPage';\n if (page in singles) {\n key += singles[page].pageIndex;\n }\n queries.sorts.forEach(function (obj) {\n key += obj.e.direction + obj.e.fieldName;\n });\n queries.groups.forEach(function (obj) {\n key += obj.e.fieldName;\n });\n queries.searches.forEach(function (obj) {\n key += obj.e.searchKey;\n });\n for (var filter = 0; filter < queries.filters.length; filter++) {\n var currentFilter = queries.filters[filter];\n if (currentFilter.e.isComplex) {\n var newQuery = query.clone();\n newQuery.queries = [];\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\n }\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\n }\n else {\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\n }\n }\n return key;\n };\n /**\n * Process the query to generate request body.\n * If the data is already cached, it will return the cached data.\n *\n * @param {DataManager} dm\n * @param {Query} query?\n * @param {Object[]} hierarchyFilters?\n * @param query\n * @param hierarchyFilters\n */\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\n var key = this.generateKey(dm.dataSource.url, query);\n var cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\n return data;\n }\n this.isCrudAction = null;\n this.isInsertAction = null;\n /* eslint-disable prefer-spread */\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n };\n /**\n * Returns the data from the query processing.\n * It will also cache the data for later usage.\n *\n * @param {DataResult} data\n * @param {DataManager} ds?\n * @param {Query} query?\n * @param {Request} xhr?\n * @param {Fetch} request?\n * @param {CrudOptions} changes?\n * @param ds\n * @param query\n * @param xhr\n * @param request\n * @param changes\n */\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\n }\n /* eslint-disable prefer-spread */\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\n /* eslint-enable prefer-spread */\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\n var obj = {};\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\n var index = obj.keys.indexOf(key);\n if (index !== -1) {\n obj.results.splice(index, 1);\n obj.keys.splice(index, 1);\n }\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\n while (obj.results.length > this.pageSize) {\n obj.results.splice(0, 1);\n obj.keys.splice(0, 1);\n }\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\n return data;\n };\n /**\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\n *\n * @param {DataManager} dm\n * @param {Request} request\n * @param {Fetch} settings?\n * @param settings\n */\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\n && settings.type.toLowerCase() === 'post') {\n request.headers.set('Accept', this.cacheAdaptor.options.multipartAccept);\n }\n if (!dm.dataSource.crossDomain) {\n request.headers.set('Accept', this.cacheAdaptor.options.accept);\n }\n };\n /**\n * Updates existing record and saves the changes to the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName\n */\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\n };\n /**\n * Prepare and returns request body which is used to insert a new record in the table.\n *\n * @param {DataManager} dm\n * @param {Object} data\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\n this.isInsertAction = true;\n return this.cacheAdaptor.insert(dm, data, tableName);\n };\n /**\n * Prepare and return request body which is used to remove record from the table.\n *\n * @param {DataManager} dm\n * @param {string} keyField\n * @param {Object} value\n * @param {string} tableName?\n * @param tableName\n */\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\n this.isCrudAction = true;\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\n };\n /**\n * Prepare the request body based on the newly added, removed and updated records.\n * The result is used by the batch request.\n *\n * @param {DataManager} dm\n * @param {CrudOptions} changes\n * @param {RemoteArgs} e\n */\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\n return this.cacheAdaptor.batchRequest(dm, changes, e);\n };\n return CacheAdaptor;\n}(UrlAdaptor));\nexport { CacheAdaptor };\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from './arrays.js';\nexport const strictEquals = (a, b) => a === b;\n/**\n * Checks if the items of two arrays are equal.\n * By default, strict equality is used to compare elements, but a custom equality comparer can be provided.\n */\nexport function itemsEquals(itemEquals = strictEquals) {\n return (a, b) => arrays.equals(a, b, itemEquals);\n}\n/**\n * Uses `item.equals(other)` to determine equality.\n */\nexport function itemEquals() {\n return (a, b) => a.equals(b);\n}\nexport function equalsIfDefined(v1, v2, equals) {\n if (!v1 || !v2) {\n return v1 === v2;\n }\n return equals(v1, v2);\n}\nconst objIds = new WeakMap();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { env } from './process.js';\nexport function isHotReloadEnabled() {\n return env && !!env['VSCODE_DEV'];\n}\nexport function registerHotReloadHandler(handler) {\n if (!isHotReloadEnabled()) {\n return { dispose() { } };\n }\n else {\n const handlers = registerGlobalHotReloadHandler();\n handlers.add(handler);\n return {\n dispose() { handlers.delete(handler); }\n };\n }\n}\nfunction registerGlobalHotReloadHandler() {\n if (!hotReloadHandlers) {\n hotReloadHandlers = new Set();\n }\n const g = globalThis;\n if (!g.$hotReload_applyNewExports) {\n g.$hotReload_applyNewExports = args => {\n const args2 = { config: { mode: undefined }, ...args };\n for (const h of hotReloadHandlers) {\n const result = h(args2);\n if (result) {\n return result;\n }\n }\n return undefined;\n };\n }\n return hotReloadHandlers;\n}\nlet hotReloadHandlers = undefined;\nif (isHotReloadEnabled()) {\n // This code does not run in production.\n registerHotReloadHandler(({ oldExports, newSrc, config }) => {\n if (config.mode !== 'patch-prototype') {\n return undefined;\n }\n return newExports => {\n var _a, _b;\n for (const key in newExports) {\n const exportedItem = newExports[key];\n console.log(`[hot-reload] Patching prototype methods of '${key}'`, { exportedItem });\n if (typeof exportedItem === 'function' && exportedItem.prototype) {\n const oldExportedItem = oldExports[key];\n if (oldExportedItem) {\n for (const prop of Object.getOwnPropertyNames(exportedItem.prototype)) {\n const descriptor = Object.getOwnPropertyDescriptor(exportedItem.prototype, prop);\n const oldDescriptor = Object.getOwnPropertyDescriptor(oldExportedItem.prototype, prop);\n if (((_a = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value) === null || _a === void 0 ? void 0 : _a.toString()) !== ((_b = oldDescriptor === null || oldDescriptor === void 0 ? void 0 : oldDescriptor.value) === null || _b === void 0 ? void 0 : _b.toString())) {\n console.log(`[hot-reload] Patching prototype method '${key}.${prop}'`);\n }\n Object.defineProperty(oldExportedItem.prototype, prop, descriptor);\n }\n newExports[key] = oldExportedItem;\n }\n }\n }\n return true;\n };\n });\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findLast } from '../../../../base/common/arraysFind.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isHotReloadEnabled, registerHotReloadHandler } from '../../../../base/common/hotReload.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunHandleChanges, autorunOpts, autorunWithStore, observableSignalFromEvent, observableValue, transaction } from '../../../../base/common/observable.js';\nimport { ElementSizeObserver } from '../../config/elementSizeObserver.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nexport function joinCombine(arr1, arr2, keySelector, combine) {\n if (arr1.length === 0) {\n return arr2;\n }\n if (arr2.length === 0) {\n return arr1;\n }\n const result = [];\n let i = 0;\n let j = 0;\n while (i < arr1.length && j < arr2.length) {\n const val1 = arr1[i];\n const val2 = arr2[j];\n const key1 = keySelector(val1);\n const key2 = keySelector(val2);\n if (key1 < key2) {\n result.push(val1);\n i++;\n }\n else if (key1 > key2) {\n result.push(val2);\n j++;\n }\n else {\n result.push(combine(val1, val2));\n i++;\n j++;\n }\n }\n while (i < arr1.length) {\n result.push(arr1[i]);\n i++;\n }\n while (j < arr2.length) {\n result.push(arr2[j]);\n j++;\n }\n return result;\n}\n// TODO make utility\nexport function applyObservableDecorations(editor, decorations) {\n const d = new DisposableStore();\n const decorationsCollection = editor.createDecorationsCollection();\n d.add(autorunOpts({ debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n const d = decorations.read(reader);\n decorationsCollection.set(d);\n }));\n d.add({\n dispose: () => {\n decorationsCollection.clear();\n }\n });\n return d;\n}\nexport function appendRemoveOnDispose(parent, child) {\n parent.appendChild(child);\n return toDisposable(() => {\n parent.removeChild(child);\n });\n}\nexport function prependRemoveOnDispose(parent, child) {\n parent.prepend(child);\n return toDisposable(() => {\n parent.removeChild(child);\n });\n}\nexport class ObservableElementSizeObserver extends Disposable {\n get width() { return this._width; }\n get height() { return this._height; }\n get automaticLayout() { return this._automaticLayout; }\n constructor(element, dimension) {\n super();\n this._automaticLayout = false;\n this.elementSizeObserver = this._register(new ElementSizeObserver(element, dimension));\n this._width = observableValue(this, this.elementSizeObserver.getWidth());\n this._height = observableValue(this, this.elementSizeObserver.getHeight());\n this._register(this.elementSizeObserver.onDidChange(e => transaction(tx => {\n /** @description Set width/height from elementSizeObserver */\n this._width.set(this.elementSizeObserver.getWidth(), tx);\n this._height.set(this.elementSizeObserver.getHeight(), tx);\n })));\n }\n observe(dimension) {\n this.elementSizeObserver.observe(dimension);\n }\n setAutomaticLayout(automaticLayout) {\n this._automaticLayout = automaticLayout;\n if (automaticLayout) {\n this.elementSizeObserver.startObserving();\n }\n else {\n this.elementSizeObserver.stopObserving();\n }\n }\n}\nexport function animatedObservable(targetWindow, base, store) {\n let targetVal = base.get();\n let startVal = targetVal;\n let curVal = targetVal;\n const result = observableValue('animatedValue', targetVal);\n let animationStartMs = -1;\n const durationMs = 300;\n let animationFrame = undefined;\n store.add(autorunHandleChanges({\n createEmptyChangeSummary: () => ({ animate: false }),\n handleChange: (ctx, s) => {\n if (ctx.didChange(base)) {\n s.animate = s.animate || ctx.change;\n }\n return true;\n }\n }, (reader, s) => {\n /** @description update value */\n if (animationFrame !== undefined) {\n targetWindow.cancelAnimationFrame(animationFrame);\n animationFrame = undefined;\n }\n startVal = curVal;\n targetVal = base.read(reader);\n animationStartMs = Date.now() - (s.animate ? 0 : durationMs);\n update();\n }));\n function update() {\n const passedMs = Date.now() - animationStartMs;\n curVal = Math.floor(easeOutExpo(passedMs, startVal, targetVal - startVal, durationMs));\n if (passedMs < durationMs) {\n animationFrame = targetWindow.requestAnimationFrame(update);\n }\n else {\n curVal = targetVal;\n }\n result.set(curVal, undefined);\n }\n return result;\n}\nfunction easeOutExpo(t, b, c, d) {\n return t === d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n}\nexport class ViewZoneOverlayWidget extends Disposable {\n constructor(editor, viewZone, htmlElement) {\n super();\n this._register(new ManagedOverlayWidget(editor, htmlElement));\n this._register(applyStyle(htmlElement, {\n height: viewZone.actualHeight,\n top: viewZone.actualTop,\n }));\n }\n}\nexport class PlaceholderViewZone {\n get afterLineNumber() { return this._afterLineNumber.get(); }\n constructor(_afterLineNumber, heightInPx) {\n this._afterLineNumber = _afterLineNumber;\n this.heightInPx = heightInPx;\n this.domNode = document.createElement('div');\n this._actualTop = observableValue(this, undefined);\n this._actualHeight = observableValue(this, undefined);\n this.actualTop = this._actualTop;\n this.actualHeight = this._actualHeight;\n this.showInHiddenAreas = true;\n this.onChange = this._afterLineNumber;\n this.onDomNodeTop = (top) => {\n this._actualTop.set(top, undefined);\n };\n this.onComputedHeight = (height) => {\n this._actualHeight.set(height, undefined);\n };\n }\n}\nexport class ManagedOverlayWidget {\n constructor(_editor, _domElement) {\n this._editor = _editor;\n this._domElement = _domElement;\n this._overlayWidgetId = `managedOverlayWidget-${ManagedOverlayWidget._counter++}`;\n this._overlayWidget = {\n getId: () => this._overlayWidgetId,\n getDomNode: () => this._domElement,\n getPosition: () => null\n };\n this._editor.addOverlayWidget(this._overlayWidget);\n }\n dispose() {\n this._editor.removeOverlayWidget(this._overlayWidget);\n }\n}\nManagedOverlayWidget._counter = 0;\nexport function applyStyle(domNode, style) {\n return autorun(reader => {\n /** @description applyStyle */\n for (let [key, val] of Object.entries(style)) {\n if (val && typeof val === 'object' && 'read' in val) {\n val = val.read(reader);\n }\n if (typeof val === 'number') {\n val = `${val}px`;\n }\n key = key.replace(/[A-Z]/g, m => '-' + m.toLowerCase());\n domNode.style[key] = val;\n }\n });\n}\nexport function readHotReloadableExport(value, reader) {\n observeHotReloadableExports([value], reader);\n return value;\n}\nexport function observeHotReloadableExports(values, reader) {\n if (isHotReloadEnabled()) {\n const o = observableSignalFromEvent('reload', event => registerHotReloadHandler(({ oldExports }) => {\n if (![...Object.values(oldExports)].some(v => values.includes(v))) {\n return undefined;\n }\n return (_newExports) => {\n event(undefined);\n return true;\n };\n }));\n o.read(reader);\n }\n}\nexport function applyViewZones(editor, viewZones, setIsUpdating, zoneIds) {\n const store = new DisposableStore();\n const lastViewZoneIds = [];\n store.add(autorunWithStore((reader, store) => {\n /** @description applyViewZones */\n const curViewZones = viewZones.read(reader);\n const viewZonIdsPerViewZone = new Map();\n const viewZoneIdPerOnChangeObservable = new Map();\n // Add/remove view zones\n if (setIsUpdating) {\n setIsUpdating(true);\n }\n editor.changeViewZones(a => {\n for (const id of lastViewZoneIds) {\n a.removeZone(id);\n zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.delete(id);\n }\n lastViewZoneIds.length = 0;\n for (const z of curViewZones) {\n const id = a.addZone(z);\n if (z.setZoneId) {\n z.setZoneId(id);\n }\n lastViewZoneIds.push(id);\n zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.add(id);\n viewZonIdsPerViewZone.set(z, id);\n }\n });\n if (setIsUpdating) {\n setIsUpdating(false);\n }\n // Layout zone on change\n store.add(autorunHandleChanges({\n createEmptyChangeSummary() {\n return { zoneIds: [] };\n },\n handleChange(context, changeSummary) {\n const id = viewZoneIdPerOnChangeObservable.get(context.changedObservable);\n if (id !== undefined) {\n changeSummary.zoneIds.push(id);\n }\n return true;\n },\n }, (reader, changeSummary) => {\n /** @description layoutZone on change */\n for (const vz of curViewZones) {\n if (vz.onChange) {\n viewZoneIdPerOnChangeObservable.set(vz.onChange, viewZonIdsPerViewZone.get(vz));\n vz.onChange.read(reader);\n }\n }\n if (setIsUpdating) {\n setIsUpdating(true);\n }\n editor.changeViewZones(a => { for (const id of changeSummary.zoneIds) {\n a.layoutZone(id);\n } });\n if (setIsUpdating) {\n setIsUpdating(false);\n }\n }));\n }));\n store.add({\n dispose() {\n if (setIsUpdating) {\n setIsUpdating(true);\n }\n editor.changeViewZones(a => { for (const id of lastViewZoneIds) {\n a.removeZone(id);\n } });\n zoneIds === null || zoneIds === void 0 ? void 0 : zoneIds.clear();\n if (setIsUpdating) {\n setIsUpdating(false);\n }\n }\n });\n return store;\n}\nexport class DisposableCancellationTokenSource extends CancellationTokenSource {\n dispose() {\n super.dispose(true);\n }\n}\nexport function translatePosition(posInOriginal, mappings) {\n const mapping = findLast(mappings, m => m.original.startLineNumber <= posInOriginal.lineNumber);\n if (!mapping) {\n // No changes before the position\n return Range.fromPositions(posInOriginal);\n }\n if (mapping.original.endLineNumberExclusive <= posInOriginal.lineNumber) {\n const newLineNumber = posInOriginal.lineNumber - mapping.original.endLineNumberExclusive + mapping.modified.endLineNumberExclusive;\n return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n }\n if (!mapping.innerChanges) {\n // Only for legacy algorithm\n return Range.fromPositions(new Position(mapping.modified.startLineNumber, 1));\n }\n const innerMapping = findLast(mapping.innerChanges, m => m.originalRange.getStartPosition().isBeforeOrEqual(posInOriginal));\n if (!innerMapping) {\n const newLineNumber = posInOriginal.lineNumber - mapping.original.startLineNumber + mapping.modified.startLineNumber;\n return Range.fromPositions(new Position(newLineNumber, posInOriginal.column));\n }\n if (innerMapping.originalRange.containsPosition(posInOriginal)) {\n return innerMapping.modifiedRange;\n }\n else {\n const l = lengthBetweenPositions(innerMapping.originalRange.getEndPosition(), posInOriginal);\n return Range.fromPositions(l.addToPosition(innerMapping.modifiedRange.getEndPosition()));\n }\n}\nfunction lengthBetweenPositions(position1, position2) {\n if (position1.lineNumber === position2.lineNumber) {\n return new TextLength(0, position2.column - position1.column);\n }\n else {\n return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n }\n}\nexport function filterWithPrevious(arr, filter) {\n let prev;\n return arr.filter(cur => {\n const result = filter(cur, prev);\n prev = cur;\n return result;\n });\n}\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","var baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n","export const generateUuid = (function () {\n // use `randomUUID` if possible\n if (typeof crypto === 'object' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID.bind(crypto);\n }\n // use `randomValues` if possible\n let getRandomValues;\n if (typeof crypto === 'object' && typeof crypto.getRandomValues === 'function') {\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n else {\n getRandomValues = function (bucket) {\n for (let i = 0; i < bucket.length; i++) {\n bucket[i] = Math.floor(Math.random() * 256);\n }\n return bucket;\n };\n }\n // prep-work\n const _data = new Uint8Array(16);\n const _hex = [];\n for (let i = 0; i < 256; i++) {\n _hex.push(i.toString(16).padStart(2, '0'));\n }\n return function generateUuid() {\n // get data\n getRandomValues(_data);\n // set version bits\n _data[6] = (_data[6] & 0x0f) | 0x40;\n _data[8] = (_data[8] & 0x3f) | 0x80;\n // print as string\n let i = 0;\n let result = '';\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += '-';\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += '-';\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += '-';\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += '-';\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n result += _hex[_data[i++]];\n return result;\n };\n})();\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Selection } from '../../../common/core/selection.js';\nexport class InPlaceReplaceCommand {\n constructor(editRange, originalSelection, text) {\n this._editRange = editRange;\n this._originalSelection = originalSelection;\n this._text = text;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._editRange, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n if (!this._originalSelection.isEmpty()) {\n // Preserve selection and extends to typed text\n return new Selection(srcRange.endLineNumber, srcRange.endColumn - this._text.length, srcRange.endLineNumber, srcRange.endColumn);\n }\n return new Selection(srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn), srcRange.endLineNumber, Math.min(this._originalSelection.positionColumn, srcRange.endColumn));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InPlaceReplaceController_1;\nimport { createCancelablePromise, timeout } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { EditorState } from '../../editorState/browser/editorState.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport * as nls from '../../../../nls.js';\nimport { InPlaceReplaceCommand } from './inPlaceReplaceCommand.js';\nimport './inPlaceReplace.css';\nlet InPlaceReplaceController = InPlaceReplaceController_1 = class InPlaceReplaceController {\n static get(editor) {\n return editor.getContribution(InPlaceReplaceController_1.ID);\n }\n constructor(editor, editorWorkerService) {\n this.editor = editor;\n this.editorWorkerService = editorWorkerService;\n this.decorations = this.editor.createDecorationsCollection();\n }\n dispose() {\n }\n run(source, up) {\n var _a;\n // cancel any pending request\n (_a = this.currentRequest) === null || _a === void 0 ? void 0 : _a.cancel();\n const editorSelection = this.editor.getSelection();\n const model = this.editor.getModel();\n if (!model || !editorSelection) {\n return undefined;\n }\n let selection = editorSelection;\n if (selection.startLineNumber !== selection.endLineNumber) {\n // Can't accept multiline selection\n return undefined;\n }\n const state = new EditorState(this.editor, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */);\n const modelURI = model.uri;\n if (!this.editorWorkerService.canNavigateValueSet(modelURI)) {\n return Promise.resolve(undefined);\n }\n this.currentRequest = createCancelablePromise(token => this.editorWorkerService.navigateValueSet(modelURI, selection, up));\n return this.currentRequest.then(result => {\n var _a;\n if (!result || !result.range || !result.value) {\n // No proper result\n return;\n }\n if (!state.validate(this.editor)) {\n // state has changed\n return;\n }\n // Selection\n const editRange = Range.lift(result.range);\n let highlightRange = result.range;\n const diff = result.value.length - (selection.endColumn - selection.startColumn);\n // highlight\n highlightRange = {\n startLineNumber: highlightRange.startLineNumber,\n startColumn: highlightRange.startColumn,\n endLineNumber: highlightRange.endLineNumber,\n endColumn: highlightRange.startColumn + result.value.length\n };\n if (diff > 1) {\n selection = new Selection(selection.startLineNumber, selection.startColumn, selection.endLineNumber, selection.endColumn + diff - 1);\n }\n // Insert new text\n const command = new InPlaceReplaceCommand(editRange, selection, result.value);\n this.editor.pushUndoStop();\n this.editor.executeCommand(source, command);\n this.editor.pushUndoStop();\n // add decoration\n this.decorations.set([{\n range: highlightRange,\n options: InPlaceReplaceController_1.DECORATION\n }]);\n // remove decoration after delay\n (_a = this.decorationRemover) === null || _a === void 0 ? void 0 : _a.cancel();\n this.decorationRemover = timeout(350);\n this.decorationRemover.then(() => this.decorations.clear()).catch(onUnexpectedError);\n }).catch(onUnexpectedError);\n }\n};\nInPlaceReplaceController.ID = 'editor.contrib.inPlaceReplaceController';\nInPlaceReplaceController.DECORATION = ModelDecorationOptions.register({\n description: 'in-place-replace',\n className: 'valueSetReplacement'\n});\nInPlaceReplaceController = InPlaceReplaceController_1 = __decorate([\n __param(1, IEditorWorkerService)\n], InPlaceReplaceController);\nclass InPlaceReplaceUp extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inPlaceReplace.up',\n label: nls.localize('InPlaceReplaceAction.previous.label', \"Replace with Previous Value\"),\n alias: 'Replace with Previous Value',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 87 /* KeyCode.Comma */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n const controller = InPlaceReplaceController.get(editor);\n if (!controller) {\n return Promise.resolve(undefined);\n }\n return controller.run(this.id, false);\n }\n}\nclass InPlaceReplaceDown extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inPlaceReplace.down',\n label: nls.localize('InPlaceReplaceAction.next.label', \"Replace with Next Value\"),\n alias: 'Replace with Next Value',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 89 /* KeyCode.Period */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n const controller = InPlaceReplaceController.get(editor);\n if (!controller) {\n return Promise.resolve(undefined);\n }\n return controller.run(this.id, true);\n }\n}\nregisterEditorContribution(InPlaceReplaceController.ID, InPlaceReplaceController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(InPlaceReplaceUp);\nregisterEditorAction(InPlaceReplaceDown);\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isMacintosh, isWindows } from './platform.js';\nlet safeProcess;\n// Native sandbox environment\nconst vscodeGlobal = globalThis.vscode;\nif (typeof vscodeGlobal !== 'undefined' && typeof vscodeGlobal.process !== 'undefined') {\n const sandboxProcess = vscodeGlobal.process;\n safeProcess = {\n get platform() { return sandboxProcess.platform; },\n get arch() { return sandboxProcess.arch; },\n get env() { return sandboxProcess.env; },\n cwd() { return sandboxProcess.cwd(); }\n };\n}\n// Native node.js environment\nelse if (typeof process !== 'undefined') {\n safeProcess = {\n get platform() { return process.platform; },\n get arch() { return process.arch; },\n get env() { return process.env; },\n cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }\n };\n}\n// Web environment\nelse {\n safeProcess = {\n // Supported\n get platform() { return isWindows ? 'win32' : isMacintosh ? 'darwin' : 'linux'; },\n get arch() { return undefined; /* arch is undefined in web */ },\n // Unsupported\n get env() { return {}; },\n cwd() { return '/'; }\n };\n}\n/**\n * Provides safe access to the `cwd` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `/`.\n *\n * @skipMangle\n */\nexport const cwd = safeProcess.cwd;\n/**\n * Provides safe access to the `env` property in node.js, sandboxed or web\n * environments.\n *\n * Note: in web, this property is hardcoded to be `{}`.\n */\nexport const env = safeProcess.env;\n/**\n * Provides safe access to the `platform` property in node.js, sandboxed or web\n * environments.\n */\nexport const platform = safeProcess.platform;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/azcli/azcli.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"azcli\",\n extensions: [\".azcli\"],\n aliases: [\"Azure CLI\", \"azcli\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/azcli/azcli\"], resolve, reject);\n });\n } else {\n return import(\"./azcli.js\");\n }\n }\n});\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { binarySearch, isFalsyOrEmpty } from '../../../../base/common/arrays.js';\nimport { Range } from '../../../common/core/range.js';\nimport { BracketSelectionRangeProvider } from '../../smartSelect/browser/bracketSelections.js';\nexport class WordDistance {\n static async create(service, editor) {\n if (!editor.getOption(118 /* EditorOption.suggest */).localityBonus) {\n return WordDistance.None;\n }\n if (!editor.hasModel()) {\n return WordDistance.None;\n }\n const model = editor.getModel();\n const position = editor.getPosition();\n if (!service.canComputeWordRanges(model.uri)) {\n return WordDistance.None;\n }\n const [ranges] = await new BracketSelectionRangeProvider().provideSelectionRanges(model, [position]);\n if (ranges.length === 0) {\n return WordDistance.None;\n }\n const wordRanges = await service.computeWordRanges(model.uri, ranges[0].range);\n if (!wordRanges) {\n return WordDistance.None;\n }\n // remove current word\n const wordUntilPos = model.getWordUntilPosition(position);\n delete wordRanges[wordUntilPos.word];\n return new class extends WordDistance {\n distance(anchor, item) {\n if (!position.equals(editor.getPosition())) {\n return 0;\n }\n if (item.kind === 17 /* CompletionItemKind.Keyword */) {\n return 2 << 20;\n }\n const word = typeof item.label === 'string' ? item.label : item.label.label;\n const wordLines = wordRanges[word];\n if (isFalsyOrEmpty(wordLines)) {\n return 2 << 20;\n }\n const idx = binarySearch(wordLines, Range.fromPositions(anchor), Range.compareRangesUsingStarts);\n const bestWordRange = idx >= 0 ? wordLines[idx] : wordLines[Math.max(0, ~idx - 1)];\n let blockDistance = ranges.length;\n for (const range of ranges) {\n if (!Range.containsRange(range.range, bestWordRange)) {\n break;\n }\n blockDistance -= 1;\n }\n return blockDistance;\n }\n };\n }\n}\nWordDistance.None = new class extends WordDistance {\n distance() { return 0; }\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/javascript/javascript.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"javascript\",\n extensions: [\".js\", \".es6\", \".jsx\", \".mjs\", \".cjs\"],\n firstLine: \"^#!.*\\\\bnode\",\n filenames: [\"jakefile\"],\n aliases: [\"JavaScript\", \"javascript\", \"js\"],\n mimetypes: [\"text/javascript\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/javascript/javascript\"], resolve, reject);\n });\n } else {\n return import(\"./javascript.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from './dom.js';\nimport { DisposableStore, toDisposable } from '../common/lifecycle.js';\nexport class GlobalPointerMoveMonitor {\n constructor() {\n this._hooks = new DisposableStore();\n this._pointerMoveCallback = null;\n this._onStopCallback = null;\n }\n dispose() {\n this.stopMonitoring(false);\n this._hooks.dispose();\n }\n stopMonitoring(invokeStopCallback, browserEvent) {\n if (!this.isMonitoring()) {\n // Not monitoring\n return;\n }\n // Unhook\n this._hooks.clear();\n this._pointerMoveCallback = null;\n const onStopCallback = this._onStopCallback;\n this._onStopCallback = null;\n if (invokeStopCallback && onStopCallback) {\n onStopCallback(browserEvent);\n }\n }\n isMonitoring() {\n return !!this._pointerMoveCallback;\n }\n startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n if (this.isMonitoring()) {\n this.stopMonitoring(false);\n }\n this._pointerMoveCallback = pointerMoveCallback;\n this._onStopCallback = onStopCallback;\n let eventSource = initialElement;\n try {\n initialElement.setPointerCapture(pointerId);\n this._hooks.add(toDisposable(() => {\n try {\n initialElement.releasePointerCapture(pointerId);\n }\n catch (err) {\n // See https://github.com/microsoft/vscode/issues/161731\n //\n // `releasePointerCapture` sometimes fails when being invoked with the exception:\n // DOMException: Failed to execute 'releasePointerCapture' on 'Element':\n // No active pointer with the given id is found.\n //\n // There's no need to do anything in case of failure\n }\n }));\n }\n catch (err) {\n // See https://github.com/microsoft/vscode/issues/144584\n // See https://github.com/microsoft/vscode/issues/146947\n // `setPointerCapture` sometimes fails when being invoked\n // from a `mousedown` listener on macOS and Windows\n // and it always fails on Linux with the exception:\n // DOMException: Failed to execute 'setPointerCapture' on 'Element':\n // No active pointer with the given id is found.\n // In case of failure, we bind the listeners on the window\n eventSource = dom.getWindow(initialElement);\n }\n this._hooks.add(dom.addDisposableListener(eventSource, dom.EventType.POINTER_MOVE, (e) => {\n if (e.buttons !== initialButtons) {\n // Buttons state has changed in the meantime\n this.stopMonitoring(true);\n return;\n }\n e.preventDefault();\n this._pointerMoveCallback(e);\n }));\n this._hooks.add(dom.addDisposableListener(eventSource, dom.EventType.POINTER_UP, (e) => this.stopMonitoring(true)));\n }\n}\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mdx/mdx.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"mdx\",\n extensions: [\".mdx\"],\n aliases: [\"MDX\", \"mdx\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/mdx/mdx\"], resolve, reject);\n });\n } else {\n return import(\"./mdx.js\");\n }\n }\n});\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pla/pla.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"pla\",\n extensions: [\".pla\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/pla/pla\"], resolve, reject);\n });\n } else {\n return import(\"./pla.js\");\n }\n }\n});\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LanguageAgnosticBracketTokens } from './bracketPairsTree/brackets.js';\nimport { lengthAdd, lengthGetColumnCountIfZeroLineCount, lengthZero } from './bracketPairsTree/length.js';\nimport { parseDocument } from './bracketPairsTree/parser.js';\nimport { DenseKeyProvider } from './bracketPairsTree/smallImmutableSet.js';\nimport { TextBufferTokenizer } from './bracketPairsTree/tokenizer.js';\nexport function fixBracketsInLine(tokens, languageConfigurationService) {\n const denseKeyProvider = new DenseKeyProvider();\n const bracketTokens = new LanguageAgnosticBracketTokens(denseKeyProvider, (languageId) => languageConfigurationService.getLanguageConfiguration(languageId));\n const tokenizer = new TextBufferTokenizer(new StaticTokenizerSource([tokens]), bracketTokens);\n const node = parseDocument(tokenizer, [], undefined, true);\n let str = '';\n const line = tokens.getLineContent();\n function processNode(node, offset) {\n if (node.kind === 2 /* AstNodeKind.Pair */) {\n processNode(node.openingBracket, offset);\n offset = lengthAdd(offset, node.openingBracket.length);\n if (node.child) {\n processNode(node.child, offset);\n offset = lengthAdd(offset, node.child.length);\n }\n if (node.closingBracket) {\n processNode(node.closingBracket, offset);\n offset = lengthAdd(offset, node.closingBracket.length);\n }\n else {\n const singleLangBracketTokens = bracketTokens.getSingleLanguageBracketTokens(node.openingBracket.languageId);\n const closingTokenText = singleLangBracketTokens.findClosingTokenText(node.openingBracket.bracketIds);\n str += closingTokenText;\n }\n }\n else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n // remove the bracket\n }\n else if (node.kind === 0 /* AstNodeKind.Text */ || node.kind === 1 /* AstNodeKind.Bracket */) {\n str += line.substring(lengthGetColumnCountIfZeroLineCount(offset), lengthGetColumnCountIfZeroLineCount(lengthAdd(offset, node.length)));\n }\n else if (node.kind === 4 /* AstNodeKind.List */) {\n for (const child of node.children) {\n processNode(child, offset);\n offset = lengthAdd(offset, child.length);\n }\n }\n }\n processNode(node, lengthZero);\n return str;\n}\nclass StaticTokenizerSource {\n constructor(lines) {\n this.lines = lines;\n this.tokenization = {\n getLineTokens: (lineNumber) => {\n return this.lines[lineNumber - 1];\n }\n };\n }\n getLineCount() {\n return this.lines.length;\n }\n getLineLength(lineNumber) {\n return this.lines[lineNumber - 1].getLineContent().length;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../../../base/common/assert.js';\nimport { DeferredPromise } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { SetMap } from '../../../../base/common/map.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Range } from '../../../common/core/range.js';\nimport { fixBracketsInLine } from '../../../common/model/bracketPairsTextModelPart/fixBrackets.js';\nimport { getReadonlyEmptyArray } from './utils.js';\nimport { SnippetParser, Text } from '../../snippet/browser/snippetParser.js';\nexport async function provideInlineCompletions(registry, position, model, context, token = CancellationToken.None, languageConfigurationService) {\n // Important: Don't use position after the await calls, as the model could have been changed in the meantime!\n const defaultReplaceRange = getDefaultRange(position, model);\n const providers = registry.all(model);\n const multiMap = new SetMap();\n for (const provider of providers) {\n if (provider.groupId) {\n multiMap.add(provider.groupId, provider);\n }\n }\n function getPreferredProviders(provider) {\n if (!provider.yieldsToGroupIds) {\n return [];\n }\n const result = [];\n for (const groupId of provider.yieldsToGroupIds || []) {\n const providers = multiMap.get(groupId);\n for (const p of providers) {\n result.push(p);\n }\n }\n return result;\n }\n const states = new Map();\n const seen = new Set();\n function findPreferredProviderCircle(provider, stack) {\n stack = [...stack, provider];\n if (seen.has(provider)) {\n return stack;\n }\n seen.add(provider);\n try {\n const preferred = getPreferredProviders(provider);\n for (const p of preferred) {\n const c = findPreferredProviderCircle(p, stack);\n if (c) {\n return c;\n }\n }\n }\n finally {\n seen.delete(provider);\n }\n return undefined;\n }\n function processProvider(provider) {\n const state = states.get(provider);\n if (state) {\n return state;\n }\n const circle = findPreferredProviderCircle(provider, []);\n if (circle) {\n onUnexpectedExternalError(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${circle.map(s => s.toString ? s.toString() : ('' + s)).join(' -> ')}`));\n }\n const deferredPromise = new DeferredPromise();\n states.set(provider, deferredPromise.p);\n (async () => {\n if (!circle) {\n const preferred = getPreferredProviders(provider);\n for (const p of preferred) {\n const result = await processProvider(p);\n if (result && result.items.length > 0) {\n // Skip provider\n return undefined;\n }\n }\n }\n try {\n const completions = await provider.provideInlineCompletions(model, position, context, token);\n return completions;\n }\n catch (e) {\n onUnexpectedExternalError(e);\n return undefined;\n }\n })().then(c => deferredPromise.complete(c), e => deferredPromise.error(e));\n return deferredPromise.p;\n }\n const providerResults = await Promise.all(providers.map(async (provider) => ({ provider, completions: await processProvider(provider) })));\n const itemsByHash = new Map();\n const lists = [];\n for (const result of providerResults) {\n const completions = result.completions;\n if (!completions) {\n continue;\n }\n const list = new InlineCompletionList(completions, result.provider);\n lists.push(list);\n for (const item of completions.items) {\n const inlineCompletionItem = InlineCompletionItem.from(item, list, defaultReplaceRange, model, languageConfigurationService);\n itemsByHash.set(inlineCompletionItem.hash(), inlineCompletionItem);\n }\n }\n return new InlineCompletionProviderResult(Array.from(itemsByHash.values()), new Set(itemsByHash.keys()), lists);\n}\nexport class InlineCompletionProviderResult {\n constructor(\n /**\n * Free of duplicates.\n */\n completions, hashs, providerResults) {\n this.completions = completions;\n this.hashs = hashs;\n this.providerResults = providerResults;\n }\n has(item) {\n return this.hashs.has(item.hash());\n }\n dispose() {\n for (const result of this.providerResults) {\n result.removeRef();\n }\n }\n}\n/**\n * A ref counted pointer to the computed `InlineCompletions` and the `InlineCompletionsProvider` that\n * computed them.\n */\nexport class InlineCompletionList {\n constructor(inlineCompletions, provider) {\n this.inlineCompletions = inlineCompletions;\n this.provider = provider;\n this.refCount = 1;\n }\n addRef() {\n this.refCount++;\n }\n removeRef() {\n this.refCount--;\n if (this.refCount === 0) {\n this.provider.freeInlineCompletions(this.inlineCompletions);\n }\n }\n}\nexport class InlineCompletionItem {\n static from(inlineCompletion, source, defaultReplaceRange, textModel, languageConfigurationService) {\n let insertText;\n let snippetInfo;\n let range = inlineCompletion.range ? Range.lift(inlineCompletion.range) : defaultReplaceRange;\n if (typeof inlineCompletion.insertText === 'string') {\n insertText = inlineCompletion.insertText;\n if (languageConfigurationService && inlineCompletion.completeBracketPairs) {\n insertText = closeBrackets(insertText, range.getStartPosition(), textModel, languageConfigurationService);\n // Modify range depending on if brackets are added or removed\n const diff = insertText.length - inlineCompletion.insertText.length;\n if (diff !== 0) {\n range = new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn + diff);\n }\n }\n snippetInfo = undefined;\n }\n else if ('snippet' in inlineCompletion.insertText) {\n const preBracketCompletionLength = inlineCompletion.insertText.snippet.length;\n if (languageConfigurationService && inlineCompletion.completeBracketPairs) {\n inlineCompletion.insertText.snippet = closeBrackets(inlineCompletion.insertText.snippet, range.getStartPosition(), textModel, languageConfigurationService);\n // Modify range depending on if brackets are added or removed\n const diff = inlineCompletion.insertText.snippet.length - preBracketCompletionLength;\n if (diff !== 0) {\n range = new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn + diff);\n }\n }\n const snippet = new SnippetParser().parse(inlineCompletion.insertText.snippet);\n if (snippet.children.length === 1 && snippet.children[0] instanceof Text) {\n insertText = snippet.children[0].value;\n snippetInfo = undefined;\n }\n else {\n insertText = snippet.toString();\n snippetInfo = {\n snippet: inlineCompletion.insertText.snippet,\n range: range\n };\n }\n }\n else {\n assertNever(inlineCompletion.insertText);\n }\n return new InlineCompletionItem(insertText, inlineCompletion.command, range, insertText, snippetInfo, inlineCompletion.additionalTextEdits || getReadonlyEmptyArray(), inlineCompletion, source);\n }\n constructor(filterText, command, range, insertText, snippetInfo, additionalTextEdits, \n /**\n * A reference to the original inline completion this inline completion has been constructed from.\n * Used for event data to ensure referential equality.\n */\n sourceInlineCompletion, \n /**\n * A reference to the original inline completion list this inline completion has been constructed from.\n * Used for event data to ensure referential equality.\n */\n source) {\n this.filterText = filterText;\n this.command = command;\n this.range = range;\n this.insertText = insertText;\n this.snippetInfo = snippetInfo;\n this.additionalTextEdits = additionalTextEdits;\n this.sourceInlineCompletion = sourceInlineCompletion;\n this.source = source;\n filterText = filterText.replace(/\\r\\n|\\r/g, '\\n');\n insertText = filterText.replace(/\\r\\n|\\r/g, '\\n');\n }\n withRange(updatedRange) {\n return new InlineCompletionItem(this.filterText, this.command, updatedRange, this.insertText, this.snippetInfo, this.additionalTextEdits, this.sourceInlineCompletion, this.source);\n }\n hash() {\n return JSON.stringify({ insertText: this.insertText, range: this.range.toString() });\n }\n}\nfunction getDefaultRange(position, model) {\n const word = model.getWordAtPosition(position);\n const maxColumn = model.getLineMaxColumn(position.lineNumber);\n // By default, always replace up until the end of the current line.\n // This default might be subject to change!\n return word\n ? new Range(position.lineNumber, word.startColumn, position.lineNumber, maxColumn)\n : Range.fromPositions(position, position.with(undefined, maxColumn));\n}\nfunction closeBrackets(text, position, model, languageConfigurationService) {\n const lineStart = model.getLineContent(position.lineNumber).substring(0, position.column - 1);\n const newLine = lineStart + text;\n const newTokens = model.tokenization.tokenizeLineWithEdit(position, newLine.length - (position.column - 1), text);\n const slicedTokens = newTokens === null || newTokens === void 0 ? void 0 : newTokens.sliceAndInflate(position.column - 1, newLine.length, 0);\n if (!slicedTokens) {\n return text;\n }\n const newText = fixBracketsInLine(slicedTokens, languageConfigurationService);\n return newText;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LcsDiff } from '../../../../base/common/diff/diff.js';\nimport { commonPrefixLength, getLeadingWhitespace } from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { GhostText, GhostTextPart } from './ghostText.js';\nexport function singleTextRemoveCommonPrefix(edit, model, validModelRange) {\n const modelRange = validModelRange ? edit.range.intersectRanges(validModelRange) : edit.range;\n if (!modelRange) {\n return edit;\n }\n const valueToReplace = model.getValueInRange(modelRange, 1 /* EndOfLinePreference.LF */);\n const commonPrefixLen = commonPrefixLength(valueToReplace, edit.text);\n const start = TextLength.ofText(valueToReplace.substring(0, commonPrefixLen)).addToPosition(edit.range.getStartPosition());\n const text = edit.text.substring(commonPrefixLen);\n const range = Range.fromPositions(start, edit.range.getEndPosition());\n return new SingleTextEdit(range, text);\n}\nexport function singleTextEditAugments(edit, base) {\n // The augmented completion must replace the base range, but can replace even more\n return edit.text.startsWith(base.text) && rangeExtends(edit.range, base.range);\n}\n/**\n * @param previewSuffixLength Sets where to split `inlineCompletion.text`.\n * \tIf the text is `hello` and the suffix length is 2, the non-preview part is `hel` and the preview-part is `lo`.\n*/\nexport function computeGhostText(edit, model, mode, cursorPosition, previewSuffixLength = 0) {\n let e = singleTextRemoveCommonPrefix(edit, model);\n if (e.range.endLineNumber !== e.range.startLineNumber) {\n // This edit might span multiple lines, but the first lines must be a common prefix.\n return undefined;\n }\n const sourceLine = model.getLineContent(e.range.startLineNumber);\n const sourceIndentationLength = getLeadingWhitespace(sourceLine).length;\n const suggestionTouchesIndentation = e.range.startColumn - 1 <= sourceIndentationLength;\n if (suggestionTouchesIndentation) {\n // source: ··········[······abc]\n // ^^^^^^^^^ inlineCompletion.range\n // ^^^^^^^^^^ ^^^^^^ sourceIndentationLength\n // ^^^^^^ replacedIndentation.length\n // ^^^ rangeThatDoesNotReplaceIndentation\n // inlineCompletion.text: '··foo'\n // ^^ suggestionAddedIndentationLength\n const suggestionAddedIndentationLength = getLeadingWhitespace(e.text).length;\n const replacedIndentation = sourceLine.substring(e.range.startColumn - 1, sourceIndentationLength);\n const [startPosition, endPosition] = [e.range.getStartPosition(), e.range.getEndPosition()];\n const newStartPosition = startPosition.column + replacedIndentation.length <= endPosition.column\n ? startPosition.delta(0, replacedIndentation.length)\n : endPosition;\n const rangeThatDoesNotReplaceIndentation = Range.fromPositions(newStartPosition, endPosition);\n const suggestionWithoutIndentationChange = e.text.startsWith(replacedIndentation)\n // Adds more indentation without changing existing indentation: We can add ghost text for this\n ? e.text.substring(replacedIndentation.length)\n // Changes or removes existing indentation. Only add ghost text for the non-indentation part.\n : e.text.substring(suggestionAddedIndentationLength);\n e = new SingleTextEdit(rangeThatDoesNotReplaceIndentation, suggestionWithoutIndentationChange);\n }\n // This is a single line string\n const valueToBeReplaced = model.getValueInRange(e.range);\n const changes = cachingDiff(valueToBeReplaced, e.text);\n if (!changes) {\n // No ghost text in case the diff would be too slow to compute\n return undefined;\n }\n const lineNumber = e.range.startLineNumber;\n const parts = new Array();\n if (mode === 'prefix') {\n const filteredChanges = changes.filter(c => c.originalLength === 0);\n if (filteredChanges.length > 1 || filteredChanges.length === 1 && filteredChanges[0].originalStart !== valueToBeReplaced.length) {\n // Prefixes only have a single change.\n return undefined;\n }\n }\n const previewStartInCompletionText = e.text.length - previewSuffixLength;\n for (const c of changes) {\n const insertColumn = e.range.startColumn + c.originalStart + c.originalLength;\n if (mode === 'subwordSmart' && cursorPosition && cursorPosition.lineNumber === e.range.startLineNumber && insertColumn < cursorPosition.column) {\n // No ghost text before cursor\n return undefined;\n }\n if (c.originalLength > 0) {\n return undefined;\n }\n if (c.modifiedLength === 0) {\n continue;\n }\n const modifiedEnd = c.modifiedStart + c.modifiedLength;\n const nonPreviewTextEnd = Math.max(c.modifiedStart, Math.min(modifiedEnd, previewStartInCompletionText));\n const nonPreviewText = e.text.substring(c.modifiedStart, nonPreviewTextEnd);\n const italicText = e.text.substring(nonPreviewTextEnd, Math.max(c.modifiedStart, modifiedEnd));\n if (nonPreviewText.length > 0) {\n parts.push(new GhostTextPart(insertColumn, nonPreviewText, false));\n }\n if (italicText.length > 0) {\n parts.push(new GhostTextPart(insertColumn, italicText, true));\n }\n }\n return new GhostText(lineNumber, parts);\n}\nfunction rangeExtends(extendingRange, rangeToExtend) {\n return rangeToExtend.getStartPosition().equals(extendingRange.getStartPosition())\n && rangeToExtend.getEndPosition().isBeforeOrEqual(extendingRange.getEndPosition());\n}\nlet lastRequest = undefined;\nfunction cachingDiff(originalValue, newValue) {\n if ((lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.originalValue) === originalValue && (lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.newValue) === newValue) {\n return lastRequest === null || lastRequest === void 0 ? void 0 : lastRequest.changes;\n }\n else {\n let changes = smartDiff(originalValue, newValue, true);\n if (changes) {\n const deletedChars = deletedCharacters(changes);\n if (deletedChars > 0) {\n // For performance reasons, don't compute diff if there is nothing to improve\n const newChanges = smartDiff(originalValue, newValue, false);\n if (newChanges && deletedCharacters(newChanges) < deletedChars) {\n // Disabling smartness seems to be better here\n changes = newChanges;\n }\n }\n }\n lastRequest = {\n originalValue,\n newValue,\n changes\n };\n return changes;\n }\n}\nfunction deletedCharacters(changes) {\n let sum = 0;\n for (const c of changes) {\n sum += c.originalLength;\n }\n return sum;\n}\n/**\n * When matching `if ()` with `if (f() = 1) { g(); }`,\n * align it like this: `if ( )`\n * Not like this:\t\t\t `if ( )`\n * Also not like this:\t\t `if ( )`.\n *\n * The parenthesis are preprocessed to ensure that they match correctly.\n */\nfunction smartDiff(originalValue, newValue, smartBracketMatching) {\n if (originalValue.length > 5000 || newValue.length > 5000) {\n // We don't want to work on strings that are too big\n return undefined;\n }\n function getMaxCharCode(val) {\n let maxCharCode = 0;\n for (let i = 0, len = val.length; i < len; i++) {\n const charCode = val.charCodeAt(i);\n if (charCode > maxCharCode) {\n maxCharCode = charCode;\n }\n }\n return maxCharCode;\n }\n const maxCharCode = Math.max(getMaxCharCode(originalValue), getMaxCharCode(newValue));\n function getUniqueCharCode(id) {\n if (id < 0) {\n throw new Error('unexpected');\n }\n return maxCharCode + id + 1;\n }\n function getElements(source) {\n let level = 0;\n let group = 0;\n const characters = new Int32Array(source.length);\n for (let i = 0, len = source.length; i < len; i++) {\n // TODO support more brackets\n if (smartBracketMatching && source[i] === '(') {\n const id = group * 100 + level;\n characters[i] = getUniqueCharCode(2 * id);\n level++;\n }\n else if (smartBracketMatching && source[i] === ')') {\n level = Math.max(level - 1, 0);\n const id = group * 100 + level;\n characters[i] = getUniqueCharCode(2 * id + 1);\n if (level === 0) {\n group++;\n }\n }\n else {\n characters[i] = source.charCodeAt(i);\n }\n }\n return characters;\n }\n const elements1 = getElements(originalValue);\n const elements2 = getElements(newValue);\n return new LcsDiff({ getElements: () => elements1 }, { getElements: () => elements2 }).ComputeDiff(false).changes;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { equalsIfDefined, itemEquals } from '../../../../base/common/equals.js';\nimport { matchesSubString } from '../../../../base/common/filters.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { derivedOpts, disposableObservableValue, transaction } from '../../../../base/common/observable.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { provideInlineCompletions } from './provideInlineCompletions.js';\nimport { singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nlet InlineCompletionsSource = class InlineCompletionsSource extends Disposable {\n constructor(textModel, versionId, _debounceValue, languageFeaturesService, languageConfigurationService) {\n super();\n this.textModel = textModel;\n this.versionId = versionId;\n this._debounceValue = _debounceValue;\n this.languageFeaturesService = languageFeaturesService;\n this.languageConfigurationService = languageConfigurationService;\n this._updateOperation = this._register(new MutableDisposable());\n this.inlineCompletions = disposableObservableValue('inlineCompletions', undefined);\n this.suggestWidgetInlineCompletions = disposableObservableValue('suggestWidgetInlineCompletions', undefined);\n this._register(this.textModel.onDidChangeContent(() => {\n this._updateOperation.clear();\n }));\n }\n fetch(position, context, activeInlineCompletion) {\n var _a, _b;\n const request = new UpdateRequest(position, context, this.textModel.getVersionId());\n const target = context.selectedSuggestionInfo ? this.suggestWidgetInlineCompletions : this.inlineCompletions;\n if ((_a = this._updateOperation.value) === null || _a === void 0 ? void 0 : _a.request.satisfies(request)) {\n return this._updateOperation.value.promise;\n }\n else if ((_b = target.get()) === null || _b === void 0 ? void 0 : _b.request.satisfies(request)) {\n return Promise.resolve(true);\n }\n const updateOngoing = !!this._updateOperation.value;\n this._updateOperation.clear();\n const source = new CancellationTokenSource();\n const promise = (async () => {\n const shouldDebounce = updateOngoing || context.triggerKind === InlineCompletionTriggerKind.Automatic;\n if (shouldDebounce) {\n // This debounces the operation\n await wait(this._debounceValue.get(this.textModel), source.token);\n }\n if (source.token.isCancellationRequested || this.textModel.getVersionId() !== request.versionId) {\n return false;\n }\n const startTime = new Date();\n const updatedCompletions = await provideInlineCompletions(this.languageFeaturesService.inlineCompletionsProvider, position, this.textModel, context, source.token, this.languageConfigurationService);\n if (source.token.isCancellationRequested || this.textModel.getVersionId() !== request.versionId) {\n return false;\n }\n const endTime = new Date();\n this._debounceValue.update(this.textModel, endTime.getTime() - startTime.getTime());\n const completions = new UpToDateInlineCompletions(updatedCompletions, request, this.textModel, this.versionId);\n if (activeInlineCompletion) {\n const asInlineCompletion = activeInlineCompletion.toInlineCompletion(undefined);\n if (activeInlineCompletion.canBeReused(this.textModel, position) && !updatedCompletions.has(asInlineCompletion)) {\n completions.prepend(activeInlineCompletion.inlineCompletion, asInlineCompletion.range, true);\n }\n }\n this._updateOperation.clear();\n transaction(tx => {\n /** @description Update completions with provider result */\n target.set(completions, tx);\n });\n return true;\n })();\n const updateOperation = new UpdateOperation(request, source, promise);\n this._updateOperation.value = updateOperation;\n return promise;\n }\n clear(tx) {\n this._updateOperation.clear();\n this.inlineCompletions.set(undefined, tx);\n this.suggestWidgetInlineCompletions.set(undefined, tx);\n }\n clearSuggestWidgetInlineCompletions(tx) {\n var _a;\n if ((_a = this._updateOperation.value) === null || _a === void 0 ? void 0 : _a.request.context.selectedSuggestionInfo) {\n this._updateOperation.clear();\n }\n this.suggestWidgetInlineCompletions.set(undefined, tx);\n }\n cancelUpdate() {\n this._updateOperation.clear();\n }\n};\nInlineCompletionsSource = __decorate([\n __param(3, ILanguageFeaturesService),\n __param(4, ILanguageConfigurationService)\n], InlineCompletionsSource);\nexport { InlineCompletionsSource };\nfunction wait(ms, cancellationToken) {\n return new Promise(resolve => {\n let d = undefined;\n const handle = setTimeout(() => {\n if (d) {\n d.dispose();\n }\n resolve();\n }, ms);\n if (cancellationToken) {\n d = cancellationToken.onCancellationRequested(() => {\n clearTimeout(handle);\n if (d) {\n d.dispose();\n }\n resolve();\n });\n }\n });\n}\nclass UpdateRequest {\n constructor(position, context, versionId) {\n this.position = position;\n this.context = context;\n this.versionId = versionId;\n }\n satisfies(other) {\n return this.position.equals(other.position)\n && equalsIfDefined(this.context.selectedSuggestionInfo, other.context.selectedSuggestionInfo, itemEquals())\n && (other.context.triggerKind === InlineCompletionTriggerKind.Automatic\n || this.context.triggerKind === InlineCompletionTriggerKind.Explicit)\n && this.versionId === other.versionId;\n }\n}\nclass UpdateOperation {\n constructor(request, cancellationTokenSource, promise) {\n this.request = request;\n this.cancellationTokenSource = cancellationTokenSource;\n this.promise = promise;\n }\n dispose() {\n this.cancellationTokenSource.cancel();\n }\n}\nexport class UpToDateInlineCompletions {\n get inlineCompletions() { return this._inlineCompletions; }\n constructor(inlineCompletionProviderResult, request, _textModel, _versionId) {\n this.inlineCompletionProviderResult = inlineCompletionProviderResult;\n this.request = request;\n this._textModel = _textModel;\n this._versionId = _versionId;\n this._refCount = 1;\n this._prependedInlineCompletionItems = [];\n const ids = _textModel.deltaDecorations([], inlineCompletionProviderResult.completions.map(i => ({\n range: i.range,\n options: {\n description: 'inline-completion-tracking-range'\n },\n })));\n this._inlineCompletions = inlineCompletionProviderResult.completions.map((i, index) => new InlineCompletionWithUpdatedRange(i, ids[index], this._textModel, this._versionId));\n }\n clone() {\n this._refCount++;\n return this;\n }\n dispose() {\n this._refCount--;\n if (this._refCount === 0) {\n setTimeout(() => {\n // To fix https://github.com/microsoft/vscode/issues/188348\n if (!this._textModel.isDisposed()) {\n // This is just cleanup. It's ok if it happens with a delay.\n this._textModel.deltaDecorations(this._inlineCompletions.map(i => i.decorationId), []);\n }\n }, 0);\n this.inlineCompletionProviderResult.dispose();\n for (const i of this._prependedInlineCompletionItems) {\n i.source.removeRef();\n }\n }\n }\n prepend(inlineCompletion, range, addRefToSource) {\n if (addRefToSource) {\n inlineCompletion.source.addRef();\n }\n const id = this._textModel.deltaDecorations([], [{\n range,\n options: {\n description: 'inline-completion-tracking-range'\n },\n }])[0];\n this._inlineCompletions.unshift(new InlineCompletionWithUpdatedRange(inlineCompletion, id, this._textModel, this._versionId));\n this._prependedInlineCompletionItems.push(inlineCompletion);\n }\n}\nexport class InlineCompletionWithUpdatedRange {\n get forwardStable() {\n var _a;\n return (_a = this.inlineCompletion.source.inlineCompletions.enableForwardStability) !== null && _a !== void 0 ? _a : false;\n }\n constructor(inlineCompletion, decorationId, _textModel, _modelVersion) {\n this.inlineCompletion = inlineCompletion;\n this.decorationId = decorationId;\n this._textModel = _textModel;\n this._modelVersion = _modelVersion;\n this.semanticId = JSON.stringify([\n this.inlineCompletion.filterText,\n this.inlineCompletion.insertText,\n this.inlineCompletion.range.getStartPosition().toString()\n ]);\n this._updatedRange = derivedOpts({ owner: this, equalsFn: Range.equalsRange }, reader => {\n this._modelVersion.read(reader);\n return this._textModel.getDecorationRange(this.decorationId);\n });\n }\n toInlineCompletion(reader) {\n var _a;\n return this.inlineCompletion.withRange((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange);\n }\n toSingleTextEdit(reader) {\n var _a;\n return new SingleTextEdit((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange, this.inlineCompletion.insertText);\n }\n isVisible(model, cursorPosition, reader) {\n const minimizedReplacement = singleTextRemoveCommonPrefix(this._toFilterTextReplacement(reader), model);\n const updatedRange = this._updatedRange.read(reader);\n if (!updatedRange\n || !this.inlineCompletion.range.getStartPosition().equals(updatedRange.getStartPosition())\n || cursorPosition.lineNumber !== minimizedReplacement.range.startLineNumber) {\n return false;\n }\n // We might consider comparing by .toLowerText, but this requires GhostTextReplacement\n const originalValue = model.getValueInRange(minimizedReplacement.range, 1 /* EndOfLinePreference.LF */);\n const filterText = minimizedReplacement.text;\n const cursorPosIndex = Math.max(0, cursorPosition.column - minimizedReplacement.range.startColumn);\n let filterTextBefore = filterText.substring(0, cursorPosIndex);\n let filterTextAfter = filterText.substring(cursorPosIndex);\n let originalValueBefore = originalValue.substring(0, cursorPosIndex);\n let originalValueAfter = originalValue.substring(cursorPosIndex);\n const originalValueIndent = model.getLineIndentColumn(minimizedReplacement.range.startLineNumber);\n if (minimizedReplacement.range.startColumn <= originalValueIndent) {\n // Remove indentation\n originalValueBefore = originalValueBefore.trimStart();\n if (originalValueBefore.length === 0) {\n originalValueAfter = originalValueAfter.trimStart();\n }\n filterTextBefore = filterTextBefore.trimStart();\n if (filterTextBefore.length === 0) {\n filterTextAfter = filterTextAfter.trimStart();\n }\n }\n return filterTextBefore.startsWith(originalValueBefore)\n && !!matchesSubString(originalValueAfter, filterTextAfter);\n }\n canBeReused(model, position) {\n const updatedRange = this._updatedRange.read(undefined);\n const result = !!updatedRange\n && updatedRange.containsPosition(position)\n && this.isVisible(model, position, undefined)\n && TextLength.ofRange(updatedRange).isGreaterThanOrEqualTo(TextLength.ofRange(this.inlineCompletion.range));\n return result;\n }\n _toFilterTextReplacement(reader) {\n var _a;\n return new SingleTextEdit((_a = this._updatedRange.read(reader)) !== null && _a !== void 0 ? _a : emptyRange, this.inlineCompletion.filterText);\n }\n}\nconst emptyRange = new Range(1, 1, 1, 1);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Permutation } from '../../../../base/common/arrays.js';\nimport { mapFindFirst } from '../../../../base/common/arraysFind.js';\nimport { itemsEquals } from '../../../../base/common/equals.js';\nimport { BugIndicatingError, onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, derivedHandleChanges, derivedOpts, observableSignal, observableValue, recomputeInitiallyAndOnChange, subtransaction, transaction } from '../../../../base/common/observable.js';\nimport { commonPrefixLength, splitLinesIncludeSeparators } from '../../../../base/common/strings.js';\nimport { isDefined } from '../../../../base/common/types.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { SingleTextEdit, TextEdit } from '../../../common/core/textEdit.js';\nimport { TextLength } from '../../../common/core/textLength.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { GhostText, ghostTextOrReplacementEquals, ghostTextsOrReplacementsEqual } from './ghostText.js';\nimport { InlineCompletionsSource } from './inlineCompletionsSource.js';\nimport { computeGhostText, singleTextEditAugments, singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nimport { addPositions, subtractPositions } from './utils.js';\nimport { SnippetController2 } from '../../snippet/browser/snippetController2.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nexport var VersionIdChangeReason;\n(function (VersionIdChangeReason) {\n VersionIdChangeReason[VersionIdChangeReason[\"Undo\"] = 0] = \"Undo\";\n VersionIdChangeReason[VersionIdChangeReason[\"Redo\"] = 1] = \"Redo\";\n VersionIdChangeReason[VersionIdChangeReason[\"AcceptWord\"] = 2] = \"AcceptWord\";\n VersionIdChangeReason[VersionIdChangeReason[\"Other\"] = 3] = \"Other\";\n})(VersionIdChangeReason || (VersionIdChangeReason = {}));\nlet InlineCompletionsModel = class InlineCompletionsModel extends Disposable {\n get isAcceptingPartially() { return this._isAcceptingPartially; }\n constructor(textModel, selectedSuggestItem, textModelVersionId, _positions, _debounceValue, _suggestPreviewEnabled, _suggestPreviewMode, _inlineSuggestMode, _enabled, _instantiationService, _commandService, _languageConfigurationService) {\n super();\n this.textModel = textModel;\n this.selectedSuggestItem = selectedSuggestItem;\n this.textModelVersionId = textModelVersionId;\n this._positions = _positions;\n this._debounceValue = _debounceValue;\n this._suggestPreviewEnabled = _suggestPreviewEnabled;\n this._suggestPreviewMode = _suggestPreviewMode;\n this._inlineSuggestMode = _inlineSuggestMode;\n this._enabled = _enabled;\n this._instantiationService = _instantiationService;\n this._commandService = _commandService;\n this._languageConfigurationService = _languageConfigurationService;\n this._source = this._register(this._instantiationService.createInstance(InlineCompletionsSource, this.textModel, this.textModelVersionId, this._debounceValue));\n this._isActive = observableValue(this, false);\n this._forceUpdateExplicitlySignal = observableSignal(this);\n // We use a semantic id to keep the same inline completion selected even if the provider reorders the completions.\n this._selectedInlineCompletionId = observableValue(this, undefined);\n this._primaryPosition = derived(this, reader => { var _a; return (_a = this._positions.read(reader)[0]) !== null && _a !== void 0 ? _a : new Position(1, 1); });\n this._isAcceptingPartially = false;\n this._preserveCurrentCompletionReasons = new Set([\n VersionIdChangeReason.Redo,\n VersionIdChangeReason.Undo,\n VersionIdChangeReason.AcceptWord,\n ]);\n this._fetchInlineCompletionsPromise = derivedHandleChanges({\n owner: this,\n createEmptyChangeSummary: () => ({\n preserveCurrentCompletion: false,\n inlineCompletionTriggerKind: InlineCompletionTriggerKind.Automatic\n }),\n handleChange: (ctx, changeSummary) => {\n /** @description fetch inline completions */\n if (ctx.didChange(this.textModelVersionId) && this._preserveCurrentCompletionReasons.has(ctx.change)) {\n changeSummary.preserveCurrentCompletion = true;\n }\n else if (ctx.didChange(this._forceUpdateExplicitlySignal)) {\n changeSummary.inlineCompletionTriggerKind = InlineCompletionTriggerKind.Explicit;\n }\n return true;\n },\n }, (reader, changeSummary) => {\n this._forceUpdateExplicitlySignal.read(reader);\n const shouldUpdate = (this._enabled.read(reader) && this.selectedSuggestItem.read(reader)) || this._isActive.read(reader);\n if (!shouldUpdate) {\n this._source.cancelUpdate();\n return undefined;\n }\n this.textModelVersionId.read(reader); // Refetch on text change\n const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.get();\n const suggestItem = this.selectedSuggestItem.read(reader);\n if (suggestWidgetInlineCompletions && !suggestItem) {\n const inlineCompletions = this._source.inlineCompletions.get();\n transaction(tx => {\n /** @description Seed inline completions with (newer) suggest widget inline completions */\n if (!inlineCompletions || suggestWidgetInlineCompletions.request.versionId > inlineCompletions.request.versionId) {\n this._source.inlineCompletions.set(suggestWidgetInlineCompletions.clone(), tx);\n }\n this._source.clearSuggestWidgetInlineCompletions(tx);\n });\n }\n const cursorPosition = this._primaryPosition.read(reader);\n const context = {\n triggerKind: changeSummary.inlineCompletionTriggerKind,\n selectedSuggestionInfo: suggestItem === null || suggestItem === void 0 ? void 0 : suggestItem.toSelectedSuggestionInfo(),\n };\n const itemToPreserveCandidate = this.selectedInlineCompletion.get();\n const itemToPreserve = changeSummary.preserveCurrentCompletion || (itemToPreserveCandidate === null || itemToPreserveCandidate === void 0 ? void 0 : itemToPreserveCandidate.forwardStable)\n ? itemToPreserveCandidate : undefined;\n return this._source.fetch(cursorPosition, context, itemToPreserve);\n });\n this._filteredInlineCompletionItems = derivedOpts({ owner: this, equalsFn: itemsEquals() }, reader => {\n const c = this._source.inlineCompletions.read(reader);\n if (!c) {\n return [];\n }\n const cursorPosition = this._primaryPosition.read(reader);\n const filteredCompletions = c.inlineCompletions.filter(c => c.isVisible(this.textModel, cursorPosition, reader));\n return filteredCompletions;\n });\n this.selectedInlineCompletionIndex = derived(this, (reader) => {\n const selectedInlineCompletionId = this._selectedInlineCompletionId.read(reader);\n const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n const idx = this._selectedInlineCompletionId === undefined ? -1\n : filteredCompletions.findIndex(v => v.semanticId === selectedInlineCompletionId);\n if (idx === -1) {\n // Reset the selection so that the selection does not jump back when it appears again\n this._selectedInlineCompletionId.set(undefined, undefined);\n return 0;\n }\n return idx;\n });\n this.selectedInlineCompletion = derived(this, (reader) => {\n const filteredCompletions = this._filteredInlineCompletionItems.read(reader);\n const idx = this.selectedInlineCompletionIndex.read(reader);\n return filteredCompletions[idx];\n });\n this.activeCommands = derivedOpts({ owner: this, equalsFn: itemsEquals() }, r => { var _a, _b; return (_b = (_a = this.selectedInlineCompletion.read(r)) === null || _a === void 0 ? void 0 : _a.inlineCompletion.source.inlineCompletions.commands) !== null && _b !== void 0 ? _b : []; });\n this.lastTriggerKind = this._source.inlineCompletions.map(this, v => v === null || v === void 0 ? void 0 : v.request.context.triggerKind);\n this.inlineCompletionsCount = derived(this, reader => {\n if (this.lastTriggerKind.read(reader) === InlineCompletionTriggerKind.Explicit) {\n return this._filteredInlineCompletionItems.read(reader).length;\n }\n else {\n return undefined;\n }\n });\n this.state = derivedOpts({\n owner: this,\n equalsFn: (a, b) => {\n if (!a || !b) {\n return a === b;\n }\n return ghostTextsOrReplacementsEqual(a.ghostTexts, b.ghostTexts)\n && a.inlineCompletion === b.inlineCompletion\n && a.suggestItem === b.suggestItem;\n }\n }, (reader) => {\n var _a, _b;\n const model = this.textModel;\n const suggestItem = this.selectedSuggestItem.read(reader);\n if (suggestItem) {\n const suggestCompletionEdit = singleTextRemoveCommonPrefix(suggestItem.toSingleTextEdit(), model);\n const augmentation = this._computeAugmentation(suggestCompletionEdit, reader);\n const isSuggestionPreviewEnabled = this._suggestPreviewEnabled.read(reader);\n if (!isSuggestionPreviewEnabled && !augmentation) {\n return undefined;\n }\n const fullEdit = (_a = augmentation === null || augmentation === void 0 ? void 0 : augmentation.edit) !== null && _a !== void 0 ? _a : suggestCompletionEdit;\n const fullEditPreviewLength = augmentation ? augmentation.edit.text.length - suggestCompletionEdit.text.length : 0;\n const mode = this._suggestPreviewMode.read(reader);\n const positions = this._positions.read(reader);\n const edits = [fullEdit, ...getSecondaryEdits(this.textModel, positions, fullEdit)];\n const ghostTexts = edits\n .map((edit, idx) => computeGhostText(edit, model, mode, positions[idx], fullEditPreviewLength))\n .filter(isDefined);\n const primaryGhostText = (_b = ghostTexts[0]) !== null && _b !== void 0 ? _b : new GhostText(fullEdit.range.endLineNumber, []);\n return { edits, primaryGhostText, ghostTexts, inlineCompletion: augmentation === null || augmentation === void 0 ? void 0 : augmentation.completion, suggestItem };\n }\n else {\n if (!this._isActive.read(reader)) {\n return undefined;\n }\n const inlineCompletion = this.selectedInlineCompletion.read(reader);\n if (!inlineCompletion) {\n return undefined;\n }\n const replacement = inlineCompletion.toSingleTextEdit(reader);\n const mode = this._inlineSuggestMode.read(reader);\n const positions = this._positions.read(reader);\n const edits = [replacement, ...getSecondaryEdits(this.textModel, positions, replacement)];\n const ghostTexts = edits\n .map((edit, idx) => computeGhostText(edit, model, mode, positions[idx], 0))\n .filter(isDefined);\n if (!ghostTexts[0]) {\n return undefined;\n }\n return { edits, primaryGhostText: ghostTexts[0], ghostTexts, inlineCompletion, suggestItem: undefined };\n }\n });\n this.ghostTexts = derivedOpts({\n owner: this,\n equalsFn: ghostTextsOrReplacementsEqual\n }, reader => {\n const v = this.state.read(reader);\n if (!v) {\n return undefined;\n }\n return v.ghostTexts;\n });\n this.primaryGhostText = derivedOpts({\n owner: this,\n equalsFn: ghostTextOrReplacementEquals\n }, reader => {\n const v = this.state.read(reader);\n if (!v) {\n return undefined;\n }\n return v === null || v === void 0 ? void 0 : v.primaryGhostText;\n });\n this._register(recomputeInitiallyAndOnChange(this._fetchInlineCompletionsPromise));\n let lastItem = undefined;\n this._register(autorun(reader => {\n var _a, _b;\n /** @description call handleItemDidShow */\n const item = this.state.read(reader);\n const completion = item === null || item === void 0 ? void 0 : item.inlineCompletion;\n if ((completion === null || completion === void 0 ? void 0 : completion.semanticId) !== (lastItem === null || lastItem === void 0 ? void 0 : lastItem.semanticId)) {\n lastItem = completion;\n if (completion) {\n const i = completion.inlineCompletion;\n const src = i.source;\n (_b = (_a = src.provider).handleItemDidShow) === null || _b === void 0 ? void 0 : _b.call(_a, src.inlineCompletions, i.sourceInlineCompletion, i.insertText);\n }\n }\n }));\n }\n async trigger(tx) {\n this._isActive.set(true, tx);\n await this._fetchInlineCompletionsPromise.get();\n }\n async triggerExplicitly(tx) {\n subtransaction(tx, tx => {\n this._isActive.set(true, tx);\n this._forceUpdateExplicitlySignal.trigger(tx);\n });\n await this._fetchInlineCompletionsPromise.get();\n }\n stop(tx) {\n subtransaction(tx, tx => {\n this._isActive.set(false, tx);\n this._source.clear(tx);\n });\n }\n _computeAugmentation(suggestCompletion, reader) {\n const model = this.textModel;\n const suggestWidgetInlineCompletions = this._source.suggestWidgetInlineCompletions.read(reader);\n const candidateInlineCompletions = suggestWidgetInlineCompletions\n ? suggestWidgetInlineCompletions.inlineCompletions\n : [this.selectedInlineCompletion.read(reader)].filter(isDefined);\n const augmentedCompletion = mapFindFirst(candidateInlineCompletions, completion => {\n let r = completion.toSingleTextEdit(reader);\n r = singleTextRemoveCommonPrefix(r, model, Range.fromPositions(r.range.getStartPosition(), suggestCompletion.range.getEndPosition()));\n return singleTextEditAugments(r, suggestCompletion) ? { completion, edit: r } : undefined;\n });\n return augmentedCompletion;\n }\n async _deltaSelectedInlineCompletionIndex(delta) {\n await this.triggerExplicitly();\n const completions = this._filteredInlineCompletionItems.get() || [];\n if (completions.length > 0) {\n const newIdx = (this.selectedInlineCompletionIndex.get() + delta + completions.length) % completions.length;\n this._selectedInlineCompletionId.set(completions[newIdx].semanticId, undefined);\n }\n else {\n this._selectedInlineCompletionId.set(undefined, undefined);\n }\n }\n async next() {\n await this._deltaSelectedInlineCompletionIndex(1);\n }\n async previous() {\n await this._deltaSelectedInlineCompletionIndex(-1);\n }\n async accept(editor) {\n var _a;\n if (editor.getModel() !== this.textModel) {\n throw new BugIndicatingError();\n }\n const state = this.state.get();\n if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n return;\n }\n const completion = state.inlineCompletion.toInlineCompletion(undefined);\n editor.pushUndoStop();\n if (completion.snippetInfo) {\n editor.executeEdits('inlineSuggestion.accept', [\n EditOperation.replace(completion.range, ''),\n ...completion.additionalTextEdits\n ]);\n editor.setPosition(completion.snippetInfo.range.getStartPosition(), 'inlineCompletionAccept');\n (_a = SnippetController2.get(editor)) === null || _a === void 0 ? void 0 : _a.insert(completion.snippetInfo.snippet, { undoStopBefore: false });\n }\n else {\n const edits = state.edits;\n const selections = getEndPositionsAfterApplying(edits).map(p => Selection.fromPositions(p));\n editor.executeEdits('inlineSuggestion.accept', [\n ...edits.map(edit => EditOperation.replace(edit.range, edit.text)),\n ...completion.additionalTextEdits\n ]);\n editor.setSelections(selections, 'inlineCompletionAccept');\n }\n if (completion.command) {\n // Make sure the completion list will not be disposed.\n completion.source.addRef();\n }\n // Reset before invoking the command, since the command might cause a follow up trigger.\n transaction(tx => {\n this._source.clear(tx);\n // Potentially, isActive will get set back to true by the typing or accept inline suggest event\n // if automatic inline suggestions are enabled.\n this._isActive.set(false, tx);\n });\n if (completion.command) {\n await this._commandService\n .executeCommand(completion.command.id, ...(completion.command.arguments || []))\n .then(undefined, onUnexpectedExternalError);\n completion.source.removeRef();\n }\n }\n async acceptNextWord(editor) {\n await this._acceptNext(editor, (pos, text) => {\n const langId = this.textModel.getLanguageIdAtPosition(pos.lineNumber, pos.column);\n const config = this._languageConfigurationService.getLanguageConfiguration(langId);\n const wordRegExp = new RegExp(config.wordDefinition.source, config.wordDefinition.flags.replace('g', ''));\n const m1 = text.match(wordRegExp);\n let acceptUntilIndexExclusive = 0;\n if (m1 && m1.index !== undefined) {\n if (m1.index === 0) {\n acceptUntilIndexExclusive = m1[0].length;\n }\n else {\n acceptUntilIndexExclusive = m1.index;\n }\n }\n else {\n acceptUntilIndexExclusive = text.length;\n }\n const wsRegExp = /\\s+/g;\n const m2 = wsRegExp.exec(text);\n if (m2 && m2.index !== undefined) {\n if (m2.index + m2[0].length < acceptUntilIndexExclusive) {\n acceptUntilIndexExclusive = m2.index + m2[0].length;\n }\n }\n return acceptUntilIndexExclusive;\n }, 0 /* PartialAcceptTriggerKind.Word */);\n }\n async acceptNextLine(editor) {\n await this._acceptNext(editor, (pos, text) => {\n const m = text.match(/\\n/);\n if (m && m.index !== undefined) {\n return m.index + 1;\n }\n return text.length;\n }, 1 /* PartialAcceptTriggerKind.Line */);\n }\n async _acceptNext(editor, getAcceptUntilIndex, kind) {\n if (editor.getModel() !== this.textModel) {\n throw new BugIndicatingError();\n }\n const state = this.state.get();\n if (!state || state.primaryGhostText.isEmpty() || !state.inlineCompletion) {\n return;\n }\n const ghostText = state.primaryGhostText;\n const completion = state.inlineCompletion.toInlineCompletion(undefined);\n if (completion.snippetInfo || completion.filterText !== completion.insertText) {\n // not in WYSIWYG mode, partial commit might change completion, thus it is not supported\n await this.accept(editor);\n return;\n }\n const firstPart = ghostText.parts[0];\n const ghostTextPos = new Position(ghostText.lineNumber, firstPart.column);\n const ghostTextVal = firstPart.text;\n const acceptUntilIndexExclusive = getAcceptUntilIndex(ghostTextPos, ghostTextVal);\n if (acceptUntilIndexExclusive === ghostTextVal.length && ghostText.parts.length === 1) {\n this.accept(editor);\n return;\n }\n const partialGhostTextVal = ghostTextVal.substring(0, acceptUntilIndexExclusive);\n const positions = this._positions.get();\n const cursorPosition = positions[0];\n // Executing the edit might free the completion, so we have to hold a reference on it.\n completion.source.addRef();\n try {\n this._isAcceptingPartially = true;\n try {\n editor.pushUndoStop();\n const replaceRange = Range.fromPositions(cursorPosition, ghostTextPos);\n const newText = editor.getModel().getValueInRange(replaceRange) + partialGhostTextVal;\n const primaryEdit = new SingleTextEdit(replaceRange, newText);\n const edits = [primaryEdit, ...getSecondaryEdits(this.textModel, positions, primaryEdit)];\n const selections = getEndPositionsAfterApplying(edits).map(p => Selection.fromPositions(p));\n editor.executeEdits('inlineSuggestion.accept', edits.map(edit => EditOperation.replace(edit.range, edit.text)));\n editor.setSelections(selections, 'inlineCompletionPartialAccept');\n editor.revealPositionInCenterIfOutsideViewport(editor.getPosition(), 1 /* ScrollType.Immediate */);\n }\n finally {\n this._isAcceptingPartially = false;\n }\n if (completion.source.provider.handlePartialAccept) {\n const acceptedRange = Range.fromPositions(completion.range.getStartPosition(), TextLength.ofText(partialGhostTextVal).addToPosition(ghostTextPos));\n // This assumes that the inline completion and the model use the same EOL style.\n const text = editor.getModel().getValueInRange(acceptedRange, 1 /* EndOfLinePreference.LF */);\n completion.source.provider.handlePartialAccept(completion.source.inlineCompletions, completion.sourceInlineCompletion, text.length, {\n kind,\n });\n }\n }\n finally {\n completion.source.removeRef();\n }\n }\n handleSuggestAccepted(item) {\n var _a, _b;\n const itemEdit = singleTextRemoveCommonPrefix(item.toSingleTextEdit(), this.textModel);\n const augmentedCompletion = this._computeAugmentation(itemEdit, undefined);\n if (!augmentedCompletion) {\n return;\n }\n const inlineCompletion = augmentedCompletion.completion.inlineCompletion;\n (_b = (_a = inlineCompletion.source.provider).handlePartialAccept) === null || _b === void 0 ? void 0 : _b.call(_a, inlineCompletion.source.inlineCompletions, inlineCompletion.sourceInlineCompletion, itemEdit.text.length, {\n kind: 2 /* PartialAcceptTriggerKind.Suggest */,\n });\n }\n};\nInlineCompletionsModel = __decorate([\n __param(9, IInstantiationService),\n __param(10, ICommandService),\n __param(11, ILanguageConfigurationService)\n], InlineCompletionsModel);\nexport { InlineCompletionsModel };\nexport function getSecondaryEdits(textModel, positions, primaryEdit) {\n if (positions.length === 1) {\n // No secondary cursor positions\n return [];\n }\n const primaryPosition = positions[0];\n const secondaryPositions = positions.slice(1);\n const primaryEditStartPosition = primaryEdit.range.getStartPosition();\n const primaryEditEndPosition = primaryEdit.range.getEndPosition();\n const replacedTextAfterPrimaryCursor = textModel.getValueInRange(Range.fromPositions(primaryPosition, primaryEditEndPosition));\n const positionWithinTextEdit = subtractPositions(primaryPosition, primaryEditStartPosition);\n if (positionWithinTextEdit.lineNumber < 1) {\n onUnexpectedError(new BugIndicatingError(`positionWithinTextEdit line number should be bigger than 0.\n\t\t\tInvalid subtraction between ${primaryPosition.toString()} and ${primaryEditStartPosition.toString()}`));\n return [];\n }\n const secondaryEditText = substringPos(primaryEdit.text, positionWithinTextEdit);\n return secondaryPositions.map(pos => {\n const posEnd = addPositions(subtractPositions(pos, primaryEditStartPosition), primaryEditEndPosition);\n const textAfterSecondaryCursor = textModel.getValueInRange(Range.fromPositions(pos, posEnd));\n const l = commonPrefixLength(replacedTextAfterPrimaryCursor, textAfterSecondaryCursor);\n const range = Range.fromPositions(pos, pos.delta(0, l));\n return new SingleTextEdit(range, secondaryEditText);\n });\n}\nfunction substringPos(text, pos) {\n let subtext = '';\n const lines = splitLinesIncludeSeparators(text);\n for (let i = pos.lineNumber - 1; i < lines.length; i++) {\n subtext += lines[i].substring(i === pos.lineNumber - 1 ? pos.column - 1 : 0);\n }\n return subtext;\n}\nfunction getEndPositionsAfterApplying(edits) {\n const sortPerm = Permutation.createSortPermutation(edits, (edit1, edit2) => Range.compareRangesUsingStarts(edit1.range, edit2.range));\n const edit = new TextEdit(sortPerm.apply(edits));\n const sortedNewRanges = edit.getNewRanges();\n const newRanges = sortPerm.inverse().apply(sortedNewRanges);\n return newRanges.map(range => range.getEndPosition());\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { SelectedSuggestionInfo } from '../../../common/languages.js';\nimport { SnippetParser } from '../../snippet/browser/snippetParser.js';\nimport { SnippetSession } from '../../snippet/browser/snippetSession.js';\nimport { SuggestController } from '../../suggest/browser/suggestController.js';\nimport { observableValue, transaction } from '../../../../base/common/observable.js';\nimport { SingleTextEdit } from '../../../common/core/textEdit.js';\nimport { compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { findFirstMax } from '../../../../base/common/arraysFind.js';\nimport { singleTextEditAugments, singleTextRemoveCommonPrefix } from './singleTextEdit.js';\nexport class SuggestWidgetAdaptor extends Disposable {\n get selectedItem() {\n return this._selectedItem;\n }\n constructor(editor, suggestControllerPreselector, checkModelVersion, onWillAccept) {\n super();\n this.editor = editor;\n this.suggestControllerPreselector = suggestControllerPreselector;\n this.checkModelVersion = checkModelVersion;\n this.onWillAccept = onWillAccept;\n this.isSuggestWidgetVisible = false;\n this.isShiftKeyPressed = false;\n this._isActive = false;\n this._currentSuggestItemInfo = undefined;\n this._selectedItem = observableValue(this, undefined);\n // See the command acceptAlternativeSelectedSuggestion that is bound to shift+tab\n this._register(editor.onKeyDown(e => {\n if (e.shiftKey && !this.isShiftKeyPressed) {\n this.isShiftKeyPressed = true;\n this.update(this._isActive);\n }\n }));\n this._register(editor.onKeyUp(e => {\n if (e.shiftKey && this.isShiftKeyPressed) {\n this.isShiftKeyPressed = false;\n this.update(this._isActive);\n }\n }));\n const suggestController = SuggestController.get(this.editor);\n if (suggestController) {\n this._register(suggestController.registerSelector({\n priority: 100,\n select: (model, pos, suggestItems) => {\n transaction(tx => this.checkModelVersion(tx));\n const textModel = this.editor.getModel();\n if (!textModel) {\n // Should not happen\n return -1;\n }\n const i = this.suggestControllerPreselector();\n const itemToPreselect = i ? singleTextRemoveCommonPrefix(i, textModel) : undefined;\n if (!itemToPreselect) {\n return -1;\n }\n const position = Position.lift(pos);\n const candidates = suggestItems\n .map((suggestItem, index) => {\n const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, textModel, position, suggestItem, this.isShiftKeyPressed);\n const suggestItemTextEdit = singleTextRemoveCommonPrefix(suggestItemInfo.toSingleTextEdit(), textModel);\n const valid = singleTextEditAugments(itemToPreselect, suggestItemTextEdit);\n return { index, valid, prefixLength: suggestItemTextEdit.text.length, suggestItem };\n })\n .filter(item => item && item.valid && item.prefixLength > 0);\n const result = findFirstMax(candidates, compareBy(s => s.prefixLength, numberComparator));\n return result ? result.index : -1;\n }\n }));\n let isBoundToSuggestWidget = false;\n const bindToSuggestWidget = () => {\n if (isBoundToSuggestWidget) {\n return;\n }\n isBoundToSuggestWidget = true;\n this._register(suggestController.widget.value.onDidShow(() => {\n this.isSuggestWidgetVisible = true;\n this.update(true);\n }));\n this._register(suggestController.widget.value.onDidHide(() => {\n this.isSuggestWidgetVisible = false;\n this.update(false);\n }));\n this._register(suggestController.widget.value.onDidFocus(() => {\n this.isSuggestWidgetVisible = true;\n this.update(true);\n }));\n };\n this._register(Event.once(suggestController.model.onDidTrigger)(e => {\n bindToSuggestWidget();\n }));\n this._register(suggestController.onWillInsertSuggestItem(e => {\n const position = this.editor.getPosition();\n const model = this.editor.getModel();\n if (!position || !model) {\n return undefined;\n }\n const suggestItemInfo = SuggestItemInfo.fromSuggestion(suggestController, model, position, e.item, this.isShiftKeyPressed);\n this.onWillAccept(suggestItemInfo);\n }));\n }\n this.update(this._isActive);\n }\n update(newActive) {\n const newInlineCompletion = this.getSuggestItemInfo();\n if (this._isActive !== newActive || !suggestItemInfoEquals(this._currentSuggestItemInfo, newInlineCompletion)) {\n this._isActive = newActive;\n this._currentSuggestItemInfo = newInlineCompletion;\n transaction(tx => {\n /** @description Update state from suggest widget */\n this.checkModelVersion(tx);\n this._selectedItem.set(this._isActive ? this._currentSuggestItemInfo : undefined, tx);\n });\n }\n }\n getSuggestItemInfo() {\n const suggestController = SuggestController.get(this.editor);\n if (!suggestController || !this.isSuggestWidgetVisible) {\n return undefined;\n }\n const focusedItem = suggestController.widget.value.getFocusedItem();\n const position = this.editor.getPosition();\n const model = this.editor.getModel();\n if (!focusedItem || !position || !model) {\n return undefined;\n }\n return SuggestItemInfo.fromSuggestion(suggestController, model, position, focusedItem.item, this.isShiftKeyPressed);\n }\n stopForceRenderingAbove() {\n const suggestController = SuggestController.get(this.editor);\n suggestController === null || suggestController === void 0 ? void 0 : suggestController.stopForceRenderingAbove();\n }\n forceRenderingAbove() {\n const suggestController = SuggestController.get(this.editor);\n suggestController === null || suggestController === void 0 ? void 0 : suggestController.forceRenderingAbove();\n }\n}\nexport class SuggestItemInfo {\n static fromSuggestion(suggestController, model, position, item, toggleMode) {\n let { insertText } = item.completion;\n let isSnippetText = false;\n if (item.completion.insertTextRules & 4 /* CompletionItemInsertTextRule.InsertAsSnippet */) {\n const snippet = new SnippetParser().parse(insertText);\n if (snippet.children.length < 100) {\n // Adjust whitespace is expensive.\n SnippetSession.adjustWhitespace(model, position, true, snippet);\n }\n insertText = snippet.toString();\n isSnippetText = true;\n }\n const info = suggestController.getOverwriteInfo(item, toggleMode);\n return new SuggestItemInfo(Range.fromPositions(position.delta(0, -info.overwriteBefore), position.delta(0, Math.max(info.overwriteAfter, 0))), insertText, item.completion.kind, isSnippetText);\n }\n constructor(range, insertText, completionItemKind, isSnippetText) {\n this.range = range;\n this.insertText = insertText;\n this.completionItemKind = completionItemKind;\n this.isSnippetText = isSnippetText;\n }\n equals(other) {\n return this.range.equalsRange(other.range)\n && this.insertText === other.insertText\n && this.completionItemKind === other.completionItemKind\n && this.isSnippetText === other.isSnippetText;\n }\n toSelectedSuggestionInfo() {\n return new SelectedSuggestionInfo(this.range, this.insertText, this.completionItemKind, this.isSnippetText);\n }\n toSingleTextEdit() {\n return new SingleTextEdit(this.range, this.insertText);\n }\n}\nfunction suggestItemInfoEquals(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.equals(b);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineCompletionsController_1;\nimport { createStyleSheet2 } from '../../../../base/browser/dom.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { timeout } from '../../../../base/common/async.js';\nimport { cancelOnDispose } from '../../../../base/common/cancellation.js';\nimport { itemEquals, itemsEquals } from '../../../../base/common/equals.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunHandleChanges, constObservable, derived, disposableObservableValue, observableFromEvent, observableSignal, observableValue, transaction, waitForState } from '../../../../base/common/observable.js';\nimport { observableValueOpts } from '../../../../base/common/observableInternal/base.js';\nimport { mapObservableArrayCached } from '../../../../base/common/observableInternal/utils.js';\nimport { isUndefined } from '../../../../base/common/types.js';\nimport { CoreEditingCommands } from '../../../browser/coreCommands.js';\nimport { Position } from '../../../common/core/position.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { inlineSuggestCommitId } from './commandIds.js';\nimport { GhostTextWidget } from './ghostTextWidget.js';\nimport { InlineCompletionContextKeys } from './inlineCompletionContextKeys.js';\nimport { InlineCompletionsHintsWidget, InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';\nimport { InlineCompletionsModel, VersionIdChangeReason } from './inlineCompletionsModel.js';\nimport { SuggestWidgetAdaptor } from './suggestWidgetInlineCompletionProvider.js';\nimport { localize } from '../../../../nls.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nlet InlineCompletionsController = InlineCompletionsController_1 = class InlineCompletionsController extends Disposable {\n static get(editor) {\n return editor.getContribution(InlineCompletionsController_1.ID);\n }\n constructor(editor, _instantiationService, _contextKeyService, _configurationService, _commandService, _debounceService, _languageFeaturesService, _accessibilitySignalService, _keybindingService, _accessibilityService) {\n super();\n this.editor = editor;\n this._instantiationService = _instantiationService;\n this._contextKeyService = _contextKeyService;\n this._configurationService = _configurationService;\n this._commandService = _commandService;\n this._debounceService = _debounceService;\n this._languageFeaturesService = _languageFeaturesService;\n this._accessibilitySignalService = _accessibilitySignalService;\n this._keybindingService = _keybindingService;\n this._accessibilityService = _accessibilityService;\n this.model = this._register(disposableObservableValue('inlineCompletionModel', undefined));\n this._textModelVersionId = observableValue(this, -1);\n this._positions = observableValueOpts({ owner: this, equalsFn: itemsEquals(itemEquals()) }, [new Position(1, 1)]);\n this._suggestWidgetAdaptor = this._register(new SuggestWidgetAdaptor(this.editor, () => { var _a, _b; return (_b = (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.selectedInlineCompletion.get()) === null || _b === void 0 ? void 0 : _b.toSingleTextEdit(undefined); }, (tx) => this.updateObservables(tx, VersionIdChangeReason.Other), (item) => {\n transaction(tx => {\n var _a;\n /** @description InlineCompletionsController.handleSuggestAccepted */\n this.updateObservables(tx, VersionIdChangeReason.Other);\n (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.handleSuggestAccepted(item);\n });\n }));\n this._enabledInConfig = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).enabled);\n this._isScreenReaderEnabled = observableFromEvent(this._accessibilityService.onDidChangeScreenReaderOptimized, () => this._accessibilityService.isScreenReaderOptimized());\n this._editorDictationInProgress = observableFromEvent(this._contextKeyService.onDidChangeContext, () => this._contextKeyService.getContext(this.editor.getDomNode()).getValue('editorDictation.inProgress') === true);\n this._enabled = derived(this, reader => this._enabledInConfig.read(reader) && (!this._isScreenReaderEnabled.read(reader) || !this._editorDictationInProgress.read(reader)));\n this._fontFamily = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).fontFamily);\n this._ghostTexts = derived(this, (reader) => {\n var _a;\n const model = this.model.read(reader);\n return (_a = model === null || model === void 0 ? void 0 : model.ghostTexts.read(reader)) !== null && _a !== void 0 ? _a : [];\n });\n this._stablizedGhostTexts = convertItemsToStableObservables(this._ghostTexts, this._store);\n this._ghostTextWidgets = mapObservableArrayCached(this, this._stablizedGhostTexts, (ghostText, store) => {\n return store.add(this._instantiationService.createInstance(GhostTextWidget, this.editor, {\n ghostText: ghostText,\n minReservedLineCount: constObservable(0),\n targetTextModel: this.model.map(v => v === null || v === void 0 ? void 0 : v.textModel),\n }));\n }).recomputeInitiallyAndOnChange(this._store);\n this._debounceValue = this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider, 'InlineCompletionsDebounce', { min: 50, max: 50 });\n this._playAccessibilitySignal = observableSignal(this);\n this._isReadonly = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(91 /* EditorOption.readOnly */));\n this._textModel = observableFromEvent(this.editor.onDidChangeModel, () => this.editor.getModel());\n this._textModelIfWritable = derived(reader => this._isReadonly.read(reader) ? undefined : this._textModel.read(reader));\n this._register(new InlineCompletionContextKeys(this._contextKeyService, this.model));\n this._register(autorun(reader => {\n /** @description InlineCompletionsController.update model */\n const textModel = this._textModelIfWritable.read(reader);\n transaction(tx => {\n /** @description InlineCompletionsController.onDidChangeModel/readonly */\n this.model.set(undefined, tx);\n this.updateObservables(tx, VersionIdChangeReason.Other);\n if (textModel) {\n const model = _instantiationService.createInstance(InlineCompletionsModel, textModel, this._suggestWidgetAdaptor.selectedItem, this._textModelVersionId, this._positions, this._debounceValue, observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(118 /* EditorOption.suggest */).preview), observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(118 /* EditorOption.suggest */).previewMode), observableFromEvent(editor.onDidChangeConfiguration, () => editor.getOption(62 /* EditorOption.inlineSuggest */).mode), this._enabled);\n this.model.set(model, tx);\n }\n });\n }));\n const styleElement = this._register(createStyleSheet2());\n this._register(autorun(reader => {\n const fontFamily = this._fontFamily.read(reader);\n styleElement.setStyle(fontFamily === '' || fontFamily === 'default' ? `` : `\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n\tfont-family: ${fontFamily};\n}`);\n }));\n const getReason = (e) => {\n var _a;\n if (e.isUndoing) {\n return VersionIdChangeReason.Undo;\n }\n if (e.isRedoing) {\n return VersionIdChangeReason.Redo;\n }\n if ((_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.isAcceptingPartially) {\n return VersionIdChangeReason.AcceptWord;\n }\n return VersionIdChangeReason.Other;\n };\n this._register(editor.onDidChangeModelContent((e) => transaction(tx => \n /** @description InlineCompletionsController.onDidChangeModelContent */\n this.updateObservables(tx, getReason(e)))));\n this._register(editor.onDidChangeCursorPosition(e => transaction(tx => {\n var _a;\n /** @description InlineCompletionsController.onDidChangeCursorPosition */\n this.updateObservables(tx, VersionIdChangeReason.Other);\n if (e.reason === 3 /* CursorChangeReason.Explicit */ || e.source === 'api') {\n (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n }\n })));\n this._register(editor.onDidType(() => transaction(tx => {\n var _a;\n /** @description InlineCompletionsController.onDidType */\n this.updateObservables(tx, VersionIdChangeReason.Other);\n if (this._enabled.get()) {\n (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.trigger(tx);\n }\n })));\n this._register(this._commandService.onDidExecuteCommand((e) => {\n // These commands don't trigger onDidType.\n const commands = new Set([\n CoreEditingCommands.Tab.id,\n CoreEditingCommands.DeleteLeft.id,\n CoreEditingCommands.DeleteRight.id,\n inlineSuggestCommitId,\n 'acceptSelectedSuggestion',\n ]);\n if (commands.has(e.commandId) && editor.hasTextFocus() && this._enabled.get()) {\n transaction(tx => {\n var _a;\n /** @description onDidExecuteCommand */\n (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.trigger(tx);\n });\n }\n }));\n this._register(this.editor.onDidBlurEditorWidget(() => {\n // This is a hidden setting very useful for debugging\n if (this._contextKeyService.getContextKeyValue('accessibleViewIsShown') || this._configurationService.getValue('editor.inlineSuggest.keepOnBlur') ||\n editor.getOption(62 /* EditorOption.inlineSuggest */).keepOnBlur) {\n return;\n }\n if (InlineSuggestionHintsContentWidget.dropDownVisible) {\n return;\n }\n transaction(tx => {\n var _a;\n /** @description InlineCompletionsController.onDidBlurEditorWidget */\n (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n });\n }));\n this._register(autorun(reader => {\n var _a;\n /** @description InlineCompletionsController.forceRenderingAbove */\n const state = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.state.read(reader);\n if (state === null || state === void 0 ? void 0 : state.suggestItem) {\n if (state.primaryGhostText.lineCount >= 2) {\n this._suggestWidgetAdaptor.forceRenderingAbove();\n }\n }\n else {\n this._suggestWidgetAdaptor.stopForceRenderingAbove();\n }\n }));\n this._register(toDisposable(() => {\n this._suggestWidgetAdaptor.stopForceRenderingAbove();\n }));\n const cancellationStore = this._register(new DisposableStore());\n let lastInlineCompletionId = undefined;\n this._register(autorunHandleChanges({\n handleChange: (context, changeSummary) => {\n if (context.didChange(this._playAccessibilitySignal)) {\n lastInlineCompletionId = undefined;\n }\n return true;\n },\n }, async (reader, _) => {\n /** @description InlineCompletionsController.playAccessibilitySignalAndReadSuggestion */\n this._playAccessibilitySignal.read(reader);\n const model = this.model.read(reader);\n const state = model === null || model === void 0 ? void 0 : model.state.read(reader);\n if (!model || !state || !state.inlineCompletion) {\n lastInlineCompletionId = undefined;\n return;\n }\n if (state.inlineCompletion.semanticId !== lastInlineCompletionId) {\n cancellationStore.clear();\n lastInlineCompletionId = state.inlineCompletion.semanticId;\n const lineText = model.textModel.getLineContent(state.primaryGhostText.lineNumber);\n await timeout(50, cancelOnDispose(cancellationStore));\n await waitForState(this._suggestWidgetAdaptor.selectedItem, isUndefined, () => false, cancelOnDispose(cancellationStore));\n await this._accessibilitySignalService.playSignal(AccessibilitySignal.inlineSuggestion);\n if (this.editor.getOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */)) {\n this.provideScreenReaderUpdate(state.primaryGhostText.renderForScreenReader(lineText));\n }\n }\n }));\n this._register(new InlineCompletionsHintsWidget(this.editor, this.model, this._instantiationService));\n this._register(this._configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration('accessibility.verbosity.inlineCompletions')) {\n this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue('accessibility.verbosity.inlineCompletions') });\n }\n }));\n this.editor.updateOptions({ inlineCompletionsAccessibilityVerbose: this._configurationService.getValue('accessibility.verbosity.inlineCompletions') });\n }\n playAccessibilitySignal(tx) {\n this._playAccessibilitySignal.trigger(tx);\n }\n provideScreenReaderUpdate(content) {\n const accessibleViewShowing = this._contextKeyService.getContextKeyValue('accessibleViewIsShown');\n const accessibleViewKeybinding = this._keybindingService.lookupKeybinding('editor.action.accessibleView');\n let hint;\n if (!accessibleViewShowing && accessibleViewKeybinding && this.editor.getOption(149 /* EditorOption.inlineCompletionsAccessibilityVerbose */)) {\n hint = localize('showAccessibleViewHint', \"Inspect this in the accessible view ({0})\", accessibleViewKeybinding.getAriaLabel());\n }\n hint ? alert(content + ', ' + hint) : alert(content);\n }\n /**\n * Copies over the relevant state from the text model to observables.\n * This solves all kind of eventing issues, as we make sure we always operate on the latest state,\n * regardless of who calls into us.\n */\n updateObservables(tx, changeReason) {\n var _a, _b, _c;\n const newModel = this.editor.getModel();\n this._textModelVersionId.set((_a = newModel === null || newModel === void 0 ? void 0 : newModel.getVersionId()) !== null && _a !== void 0 ? _a : -1, tx, changeReason);\n this._positions.set((_c = (_b = this.editor.getSelections()) === null || _b === void 0 ? void 0 : _b.map(selection => selection.getPosition())) !== null && _c !== void 0 ? _c : [new Position(1, 1)], tx);\n }\n shouldShowHoverAt(range) {\n var _a;\n const ghostText = (_a = this.model.get()) === null || _a === void 0 ? void 0 : _a.primaryGhostText.get();\n if (ghostText) {\n return ghostText.parts.some(p => range.containsPosition(new Position(ghostText.lineNumber, p.column)));\n }\n return false;\n }\n shouldShowHoverAtViewZone(viewZoneId) {\n var _a, _b;\n return (_b = (_a = this._ghostTextWidgets.get()[0]) === null || _a === void 0 ? void 0 : _a.ownsViewZone(viewZoneId)) !== null && _b !== void 0 ? _b : false;\n }\n};\nInlineCompletionsController.ID = 'editor.contrib.inlineCompletionsController';\nInlineCompletionsController = InlineCompletionsController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IContextKeyService),\n __param(3, IConfigurationService),\n __param(4, ICommandService),\n __param(5, ILanguageFeatureDebounceService),\n __param(6, ILanguageFeaturesService),\n __param(7, IAccessibilitySignalService),\n __param(8, IKeybindingService),\n __param(9, IAccessibilityService)\n], InlineCompletionsController);\nexport { InlineCompletionsController };\nfunction convertItemsToStableObservables(items, store) {\n const result = observableValue('result', []);\n const innerObservables = [];\n store.add(autorun(reader => {\n const itemsValue = items.read(reader);\n transaction(tx => {\n if (itemsValue.length !== innerObservables.length) {\n innerObservables.length = itemsValue.length;\n for (let i = 0; i < innerObservables.length; i++) {\n if (!innerObservables[i]) {\n innerObservables[i] = observableValue('item', itemsValue[i]);\n }\n }\n result.set([...innerObservables], tx);\n }\n innerObservables.forEach((o, i) => o.set(itemsValue[i], tx));\n });\n }));\n return result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { transaction } from '../../../../base/common/observable.js';\nimport { asyncTransaction } from '../../../../base/common/observableInternal/base.js';\nimport { EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { showNextInlineSuggestionActionId, showPreviousInlineSuggestionActionId, inlineSuggestCommitId } from './commandIds.js';\nimport { InlineCompletionContextKeys } from './inlineCompletionContextKeys.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { Context as SuggestContext } from '../../suggest/browser/suggest.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, Action2 } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nexport class ShowNextInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: ShowNextInlineSuggestionAction.ID,\n label: nls.localize('action.inlineSuggest.showNext', \"Show Next Inline Suggestion\"),\n alias: 'Show Next Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n kbOpts: {\n weight: 100,\n primary: 512 /* KeyMod.Alt */ | 94 /* KeyCode.BracketRight */,\n },\n });\n }\n async run(accessor, editor) {\n var _a;\n const controller = InlineCompletionsController.get(editor);\n (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.next();\n }\n}\nShowNextInlineSuggestionAction.ID = showNextInlineSuggestionActionId;\nexport class ShowPreviousInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: ShowPreviousInlineSuggestionAction.ID,\n label: nls.localize('action.inlineSuggest.showPrevious', \"Show Previous Inline Suggestion\"),\n alias: 'Show Previous Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n kbOpts: {\n weight: 100,\n primary: 512 /* KeyMod.Alt */ | 92 /* KeyCode.BracketLeft */,\n },\n });\n }\n async run(accessor, editor) {\n var _a;\n const controller = InlineCompletionsController.get(editor);\n (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.previous();\n }\n}\nShowPreviousInlineSuggestionAction.ID = showPreviousInlineSuggestionActionId;\nexport class TriggerInlineSuggestionAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inlineSuggest.trigger',\n label: nls.localize('action.inlineSuggest.trigger', \"Trigger Inline Suggestion\"),\n alias: 'Trigger Inline Suggestion',\n precondition: EditorContextKeys.writable\n });\n }\n async run(accessor, editor) {\n const controller = InlineCompletionsController.get(editor);\n await asyncTransaction(async (tx) => {\n var _a;\n /** @description triggerExplicitly from command */\n await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.triggerExplicitly(tx));\n controller === null || controller === void 0 ? void 0 : controller.playAccessibilitySignal(tx);\n });\n }\n}\nexport class AcceptNextWordOfInlineCompletion extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inlineSuggest.acceptNextWord',\n label: nls.localize('action.inlineSuggest.acceptNextWord', \"Accept Next Word Of Inline Suggestion\"),\n alias: 'Accept Next Word Of Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n primary: 2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n },\n menuOpts: [{\n menuId: MenuId.InlineSuggestionToolbar,\n title: nls.localize('acceptWord', 'Accept Word'),\n group: 'primary',\n order: 2,\n }],\n });\n }\n async run(accessor, editor) {\n var _a;\n const controller = InlineCompletionsController.get(editor);\n await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.acceptNextWord(controller.editor));\n }\n}\nexport class AcceptNextLineOfInlineCompletion extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.inlineSuggest.acceptNextLine',\n label: nls.localize('action.inlineSuggest.acceptNextLine', \"Accept Next Line Of Inline Suggestion\"),\n alias: 'Accept Next Line Of Inline Suggestion',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineCompletionContextKeys.inlineSuggestionVisible),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n },\n menuOpts: [{\n menuId: MenuId.InlineSuggestionToolbar,\n title: nls.localize('acceptLine', 'Accept Line'),\n group: 'secondary',\n order: 2,\n }],\n });\n }\n async run(accessor, editor) {\n var _a;\n const controller = InlineCompletionsController.get(editor);\n await ((_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.acceptNextLine(controller.editor));\n }\n}\nexport class AcceptInlineCompletion extends EditorAction {\n constructor() {\n super({\n id: inlineSuggestCommitId,\n label: nls.localize('action.inlineSuggest.accept', \"Accept Inline Suggestion\"),\n alias: 'Accept Inline Suggestion',\n precondition: InlineCompletionContextKeys.inlineSuggestionVisible,\n menuOpts: [{\n menuId: MenuId.InlineSuggestionToolbar,\n title: nls.localize('accept', \"Accept\"),\n group: 'primary',\n order: 1,\n }],\n kbOpts: {\n primary: 2 /* KeyCode.Tab */,\n weight: 200,\n kbExpr: ContextKeyExpr.and(InlineCompletionContextKeys.inlineSuggestionVisible, EditorContextKeys.tabMovesFocus.toNegated(), InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize, SuggestContext.Visible.toNegated(), EditorContextKeys.hoverFocused.toNegated()),\n }\n });\n }\n async run(accessor, editor) {\n var _a;\n const controller = InlineCompletionsController.get(editor);\n if (controller) {\n (_a = controller.model.get()) === null || _a === void 0 ? void 0 : _a.accept(controller.editor);\n controller.editor.focus();\n }\n }\n}\nexport class HideInlineCompletion extends EditorAction {\n constructor() {\n super({\n id: HideInlineCompletion.ID,\n label: nls.localize('action.inlineSuggest.hide', \"Hide Inline Suggestion\"),\n alias: 'Hide Inline Suggestion',\n precondition: InlineCompletionContextKeys.inlineSuggestionVisible,\n kbOpts: {\n weight: 100,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n async run(accessor, editor) {\n const controller = InlineCompletionsController.get(editor);\n transaction(tx => {\n var _a;\n (_a = controller === null || controller === void 0 ? void 0 : controller.model.get()) === null || _a === void 0 ? void 0 : _a.stop(tx);\n });\n }\n}\nHideInlineCompletion.ID = 'editor.action.inlineSuggest.hide';\nexport class ToggleAlwaysShowInlineSuggestionToolbar extends Action2 {\n constructor() {\n super({\n id: ToggleAlwaysShowInlineSuggestionToolbar.ID,\n title: nls.localize('action.inlineSuggest.alwaysShowToolbar', \"Always Show Toolbar\"),\n f1: false,\n precondition: undefined,\n menu: [{\n id: MenuId.InlineSuggestionToolbar,\n group: 'secondary',\n order: 10,\n }],\n toggled: ContextKeyExpr.equals('config.editor.inlineSuggest.showToolbar', 'always')\n });\n }\n async run(accessor, editor) {\n const configService = accessor.get(IConfigurationService);\n const currentValue = configService.getValue('editor.inlineSuggest.showToolbar');\n const newValue = currentValue === 'always' ? 'onHover' : 'always';\n configService.updateValue('editor.inlineSuggest.showToolbar', newValue);\n }\n}\nToggleAlwaysShowInlineSuggestionToolbar.ID = 'editor.action.inlineSuggest.toggleAlwaysShowToolbar';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorun, constObservable } from '../../../../base/common/observable.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { HoverForeignElementAnchor } from '../../hover/browser/hoverTypes.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { InlineSuggestionHintsContentWidget } from './inlineCompletionsHintsWidget.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport * as nls from '../../../../nls.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nexport class InlineCompletionsHover {\n constructor(owner, range, controller) {\n this.owner = owner;\n this.range = range;\n this.controller = controller;\n }\n isValidForHoverAnchor(anchor) {\n return (anchor.type === 1 /* HoverAnchorType.Range */\n && this.range.startColumn <= anchor.range.startColumn\n && this.range.endColumn >= anchor.range.endColumn);\n }\n}\nlet InlineCompletionsHoverParticipant = class InlineCompletionsHoverParticipant {\n constructor(_editor, _languageService, _openerService, accessibilityService, _instantiationService, _telemetryService) {\n this._editor = _editor;\n this._languageService = _languageService;\n this._openerService = _openerService;\n this.accessibilityService = accessibilityService;\n this._instantiationService = _instantiationService;\n this._telemetryService = _telemetryService;\n this.hoverOrdinal = 4;\n }\n suggestHoverAnchor(mouseEvent) {\n const controller = InlineCompletionsController.get(this._editor);\n if (!controller) {\n return null;\n }\n const target = mouseEvent.target;\n if (target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n // handle the case where the mouse is over the view zone\n const viewZoneData = target.detail;\n if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {\n return new HoverForeignElementAnchor(1000, this, Range.fromPositions(this._editor.getModel().validatePosition(viewZoneData.positionBefore || viewZoneData.position)), mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n // handle the case where the mouse is over the empty portion of a line following ghost text\n if (controller.shouldShowHoverAt(target.range)) {\n return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n // handle the case where the mouse is directly over ghost text\n const mightBeForeignElement = target.detail.mightBeForeignElement;\n if (mightBeForeignElement && controller.shouldShowHoverAt(target.range)) {\n return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n return null;\n }\n computeSync(anchor, lineDecorations) {\n if (this._editor.getOption(62 /* EditorOption.inlineSuggest */).showToolbar !== 'onHover') {\n return [];\n }\n const controller = InlineCompletionsController.get(this._editor);\n if (controller && controller.shouldShowHoverAt(anchor.range)) {\n return [new InlineCompletionsHover(this, anchor.range, controller)];\n }\n return [];\n }\n renderHoverParts(context, hoverParts) {\n const disposableStore = new DisposableStore();\n const part = hoverParts[0];\n this._telemetryService.publicLog2('inlineCompletionHover.shown');\n if (this.accessibilityService.isScreenReaderOptimized() && !this._editor.getOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */)) {\n this.renderScreenReaderText(context, part, disposableStore);\n }\n const model = part.controller.model.get();\n const w = this._instantiationService.createInstance(InlineSuggestionHintsContentWidget, this._editor, false, constObservable(null), model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands);\n context.fragment.appendChild(w.getDomNode());\n model.triggerExplicitly();\n disposableStore.add(w);\n return disposableStore;\n }\n renderScreenReaderText(context, part, disposableStore) {\n const $ = dom.$;\n const markdownHoverElement = $('div.hover-row.markdown-hover');\n const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents', { ['aria-live']: 'assertive' }));\n const renderer = disposableStore.add(new MarkdownRenderer({ editor: this._editor }, this._languageService, this._openerService));\n const render = (code) => {\n disposableStore.add(renderer.onDidRenderAsync(() => {\n hoverContentsElement.className = 'hover-contents code-hover-contents';\n context.onContentsChanged();\n }));\n const inlineSuggestionAvailable = nls.localize('inlineSuggestionFollows', \"Suggestion:\");\n const renderedContents = disposableStore.add(renderer.render(new MarkdownString().appendText(inlineSuggestionAvailable).appendCodeblock('text', code)));\n hoverContentsElement.replaceChildren(renderedContents.element);\n };\n disposableStore.add(autorun(reader => {\n var _a;\n /** @description update hover */\n const ghostText = (_a = part.controller.model.read(reader)) === null || _a === void 0 ? void 0 : _a.primaryGhostText.read(reader);\n if (ghostText) {\n const lineText = this._editor.getModel().getLineContent(ghostText.lineNumber);\n render(ghostText.renderForScreenReader(lineText));\n }\n else {\n dom.reset(hoverContentsElement);\n }\n }));\n context.fragment.appendChild(markdownHoverElement);\n }\n};\nInlineCompletionsHoverParticipant = __decorate([\n __param(1, ILanguageService),\n __param(2, IOpenerService),\n __param(3, IAccessibilityService),\n __param(4, IInstantiationService),\n __param(5, ITelemetryService)\n], InlineCompletionsHoverParticipant);\nexport { InlineCompletionsHoverParticipant };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class InlineCompletionsAccessibleView extends Disposable {\n constructor() {\n super();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { TriggerInlineSuggestionAction, ShowNextInlineSuggestionAction, ShowPreviousInlineSuggestionAction, AcceptNextWordOfInlineCompletion, AcceptInlineCompletion, HideInlineCompletion, ToggleAlwaysShowInlineSuggestionToolbar, AcceptNextLineOfInlineCompletion } from './commands.js';\nimport { InlineCompletionsHoverParticipant } from './hoverParticipant.js';\nimport { InlineCompletionsAccessibleView } from './inlineCompletionsAccessibleView.js';\nimport { InlineCompletionsController } from './inlineCompletionsController.js';\nimport { AccessibleViewRegistry } from '../../../../platform/accessibility/browser/accessibleViewRegistry.js';\nimport { registerAction2 } from '../../../../platform/actions/common/actions.js';\nregisterEditorContribution(InlineCompletionsController.ID, InlineCompletionsController, 3 /* EditorContributionInstantiation.Eventually */);\nregisterEditorAction(TriggerInlineSuggestionAction);\nregisterEditorAction(ShowNextInlineSuggestionAction);\nregisterEditorAction(ShowPreviousInlineSuggestionAction);\nregisterEditorAction(AcceptNextWordOfInlineCompletion);\nregisterEditorAction(AcceptNextLineOfInlineCompletion);\nregisterEditorAction(AcceptInlineCompletion);\nregisterEditorAction(HideInlineCompletion);\nregisterAction2(ToggleAlwaysShowInlineSuggestionToolbar);\nHoverParticipantRegistry.register(InlineCompletionsHoverParticipant);\nAccessibleViewRegistry.register(new InlineCompletionsAccessibleView());\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst ucs2length_1 = require(\"../../runtime/ucs2length\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} characters`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode, it } = cxt;\n const op = keyword === \"maxLength\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n const len = it.opts.unicode === false ? (0, codegen_1._) `${data}.length` : (0, codegen_1._) `${(0, util_1.useFunc)(cxt.gen, ucs2length_1.default)}(${data})`;\n cxt.fail$data((0, codegen_1._) `${len} ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitLength.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","import { createSingleCallFunction } from './functional.js';\nimport { Iterable } from './iterator.js';\n// #region Disposable Tracking\n/**\n * Enables logging of potentially leaked disposables.\n *\n * A disposable is considered leaked if it is not disposed or not registered as the child of\n * another disposable. This tracking is very simple an only works for classes that either\n * extend Disposable or use a DisposableStore. This means there are a lot of false positives.\n */\nconst TRACK_DISPOSABLES = false;\nlet disposableTracker = null;\nexport function setDisposableTracker(tracker) {\n disposableTracker = tracker;\n}\nif (TRACK_DISPOSABLES) {\n const __is_disposable_tracked__ = '__is_disposable_tracked__';\n setDisposableTracker(new class {\n trackDisposable(x) {\n const stack = new Error('Potentially leaked disposable').stack;\n setTimeout(() => {\n if (!x[__is_disposable_tracked__]) {\n console.log(stack);\n }\n }, 3000);\n }\n setParent(child, parent) {\n if (child && child !== Disposable.None) {\n try {\n child[__is_disposable_tracked__] = true;\n }\n catch (_a) {\n // noop\n }\n }\n }\n markAsDisposed(disposable) {\n if (disposable && disposable !== Disposable.None) {\n try {\n disposable[__is_disposable_tracked__] = true;\n }\n catch (_a) {\n // noop\n }\n }\n }\n markAsSingleton(disposable) { }\n });\n}\nexport function trackDisposable(x) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.trackDisposable(x);\n return x;\n}\nexport function markAsDisposed(disposable) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsDisposed(disposable);\n}\nfunction setParentOfDisposable(child, parent) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.setParent(child, parent);\n}\nfunction setParentOfDisposables(children, parent) {\n if (!disposableTracker) {\n return;\n }\n for (const child of children) {\n disposableTracker.setParent(child, parent);\n }\n}\n/**\n * Indicates that the given object is a singleton which does not need to be disposed.\n*/\nexport function markAsSingleton(singleton) {\n disposableTracker === null || disposableTracker === void 0 ? void 0 : disposableTracker.markAsSingleton(singleton);\n return singleton;\n}\n/**\n * Check if `thing` is {@link IDisposable disposable}.\n */\nexport function isDisposable(thing) {\n return typeof thing === 'object' && thing !== null && typeof thing.dispose === 'function' && thing.dispose.length === 0;\n}\nexport function dispose(arg) {\n if (Iterable.is(arg)) {\n const errors = [];\n for (const d of arg) {\n if (d) {\n try {\n d.dispose();\n }\n catch (e) {\n errors.push(e);\n }\n }\n }\n if (errors.length === 1) {\n throw errors[0];\n }\n else if (errors.length > 1) {\n throw new AggregateError(errors, 'Encountered errors while disposing of store');\n }\n return Array.isArray(arg) ? [] : arg;\n }\n else if (arg) {\n arg.dispose();\n return arg;\n }\n}\n/**\n * Combine multiple disposable values into a single {@link IDisposable}.\n */\nexport function combinedDisposable(...disposables) {\n const parent = toDisposable(() => dispose(disposables));\n setParentOfDisposables(disposables, parent);\n return parent;\n}\n/**\n * Turn a function that implements dispose into an {@link IDisposable}.\n *\n * @param fn Clean up function, guaranteed to be called only **once**.\n */\nexport function toDisposable(fn) {\n const self = trackDisposable({\n dispose: createSingleCallFunction(() => {\n markAsDisposed(self);\n fn();\n })\n });\n return self;\n}\n/**\n * Manages a collection of disposable values.\n *\n * This is the preferred way to manage multiple disposables. A `DisposableStore` is safer to work with than an\n * `IDisposable[]` as it considers edge cases, such as registering the same value multiple times or adding an item to a\n * store that has already been disposed of.\n */\nexport class DisposableStore {\n constructor() {\n this._toDispose = new Set();\n this._isDisposed = false;\n trackDisposable(this);\n }\n /**\n * Dispose of all registered disposables and mark this object as disposed.\n *\n * Any future disposables added to this object will be disposed of on `add`.\n */\n dispose() {\n if (this._isDisposed) {\n return;\n }\n markAsDisposed(this);\n this._isDisposed = true;\n this.clear();\n }\n /**\n * @return `true` if this object has been disposed of.\n */\n get isDisposed() {\n return this._isDisposed;\n }\n /**\n * Dispose of all registered disposables but do not mark this object as disposed.\n */\n clear() {\n if (this._toDispose.size === 0) {\n return;\n }\n try {\n dispose(this._toDispose);\n }\n finally {\n this._toDispose.clear();\n }\n }\n /**\n * Add a new {@link IDisposable disposable} to the collection.\n */\n add(o) {\n if (!o) {\n return o;\n }\n if (o === this) {\n throw new Error('Cannot register a disposable on itself!');\n }\n setParentOfDisposable(o, this);\n if (this._isDisposed) {\n if (!DisposableStore.DISABLE_DISPOSED_WARNING) {\n console.warn(new Error('Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!').stack);\n }\n }\n else {\n this._toDispose.add(o);\n }\n return o;\n }\n /**\n * Deletes the value from the store, but does not dispose it.\n */\n deleteAndLeak(o) {\n if (!o) {\n return;\n }\n if (this._toDispose.has(o)) {\n this._toDispose.delete(o);\n setParentOfDisposable(o, null);\n }\n }\n}\nDisposableStore.DISABLE_DISPOSED_WARNING = false;\n/**\n * Abstract base class for a {@link IDisposable disposable} object.\n *\n * Subclasses can {@linkcode _register} disposables that will be automatically cleaned up when this object is disposed of.\n */\nexport class Disposable {\n constructor() {\n this._store = new DisposableStore();\n trackDisposable(this);\n setParentOfDisposable(this._store, this);\n }\n dispose() {\n markAsDisposed(this);\n this._store.dispose();\n }\n /**\n * Adds `o` to the collection of disposables managed by this object.\n */\n _register(o) {\n if (o === this) {\n throw new Error('Cannot register a disposable on itself!');\n }\n return this._store.add(o);\n }\n}\n/**\n * A disposable that does nothing when it is disposed of.\n *\n * TODO: This should not be a static property.\n */\nDisposable.None = Object.freeze({ dispose() { } });\n/**\n * Manages the lifecycle of a disposable value that may be changed.\n *\n * This ensures that when the disposable value is changed, the previously held disposable is disposed of. You can\n * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up.\n */\nexport class MutableDisposable {\n constructor() {\n this._isDisposed = false;\n trackDisposable(this);\n }\n get value() {\n return this._isDisposed ? undefined : this._value;\n }\n set value(value) {\n var _a;\n if (this._isDisposed || value === this._value) {\n return;\n }\n (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n if (value) {\n setParentOfDisposable(value, this);\n }\n this._value = value;\n }\n /**\n * Resets the stored value and disposed of the previously stored value.\n */\n clear() {\n this.value = undefined;\n }\n dispose() {\n var _a;\n this._isDisposed = true;\n markAsDisposed(this);\n (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n this._value = undefined;\n }\n}\nexport class RefCountedDisposable {\n constructor(_disposable) {\n this._disposable = _disposable;\n this._counter = 1;\n }\n acquire() {\n this._counter++;\n return this;\n }\n release() {\n if (--this._counter === 0) {\n this._disposable.dispose();\n }\n return this;\n }\n}\nexport class ImmortalReference {\n constructor(object) {\n this.object = object;\n }\n dispose() { }\n}\n/**\n * A map the manages the lifecycle of the values that it stores.\n */\nexport class DisposableMap {\n constructor() {\n this._store = new Map();\n this._isDisposed = false;\n trackDisposable(this);\n }\n /**\n * Disposes of all stored values and mark this object as disposed.\n *\n * Trying to use this object after it has been disposed of is an error.\n */\n dispose() {\n markAsDisposed(this);\n this._isDisposed = true;\n this.clearAndDisposeAll();\n }\n /**\n * Disposes of all stored values and clear the map, but DO NOT mark this object as disposed.\n */\n clearAndDisposeAll() {\n if (!this._store.size) {\n return;\n }\n try {\n dispose(this._store.values());\n }\n finally {\n this._store.clear();\n }\n }\n get(key) {\n return this._store.get(key);\n }\n set(key, value, skipDisposeOnOverwrite = false) {\n var _a;\n if (this._isDisposed) {\n console.warn(new Error('Trying to add a disposable to a DisposableMap that has already been disposed of. The added object will be leaked!').stack);\n }\n if (!skipDisposeOnOverwrite) {\n (_a = this._store.get(key)) === null || _a === void 0 ? void 0 : _a.dispose();\n }\n this._store.set(key, value);\n }\n /**\n * Delete the value stored for `key` from this map and also dispose of it.\n */\n deleteAndDispose(key) {\n var _a;\n (_a = this._store.get(key)) === null || _a === void 0 ? void 0 : _a.dispose();\n this._store.delete(key);\n }\n [Symbol.iterator]() {\n return this._store[Symbol.iterator]();\n }\n}\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Codicon } from '../../../base/common/codicons.js';\nimport { getCodiconFontCharacters } from '../../../base/common/codiconsUtil.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { isString } from '../../../base/common/types.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { localize } from '../../../nls.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n// ------ API types\n// icon registry\nexport const Extensions = {\n IconContribution: 'base.contributions.icons'\n};\nexport var IconContribution;\n(function (IconContribution) {\n function getDefinition(contribution, registry) {\n let definition = contribution.defaults;\n while (ThemeIcon.isThemeIcon(definition)) {\n const c = iconRegistry.getIcon(definition.id);\n if (!c) {\n return undefined;\n }\n definition = c.defaults;\n }\n return definition;\n }\n IconContribution.getDefinition = getDefinition;\n})(IconContribution || (IconContribution = {}));\nexport var IconFontDefinition;\n(function (IconFontDefinition) {\n function toJSONObject(iconFont) {\n return {\n weight: iconFont.weight,\n style: iconFont.style,\n src: iconFont.src.map(s => ({ format: s.format, location: s.location.toString() }))\n };\n }\n IconFontDefinition.toJSONObject = toJSONObject;\n function fromJSONObject(json) {\n const stringOrUndef = (s) => isString(s) ? s : undefined;\n if (json && Array.isArray(json.src) && json.src.every((s) => isString(s.format) && isString(s.location))) {\n return {\n weight: stringOrUndef(json.weight),\n style: stringOrUndef(json.style),\n src: json.src.map((s) => ({ format: s.format, location: URI.parse(s.location) }))\n };\n }\n return undefined;\n }\n IconFontDefinition.fromJSONObject = fromJSONObject;\n})(IconFontDefinition || (IconFontDefinition = {}));\nclass IconRegistry {\n constructor() {\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.iconSchema = {\n definitions: {\n icons: {\n type: 'object',\n properties: {\n fontId: { type: 'string', description: localize('iconDefinition.fontId', 'The id of the font to use. If not set, the font that is defined first is used.') },\n fontCharacter: { type: 'string', description: localize('iconDefinition.fontCharacter', 'The font character associated with the icon definition.') }\n },\n additionalProperties: false,\n defaultSnippets: [{ body: { fontCharacter: '\\\\\\\\e030' } }]\n }\n },\n type: 'object',\n properties: {}\n };\n this.iconReferenceSchema = { type: 'string', pattern: `^${ThemeIcon.iconNameExpression}$`, enum: [], enumDescriptions: [] };\n this.iconsById = {};\n this.iconFontsById = {};\n }\n registerIcon(id, defaults, description, deprecationMessage) {\n const existing = this.iconsById[id];\n if (existing) {\n if (description && !existing.description) {\n existing.description = description;\n this.iconSchema.properties[id].markdownDescription = `${description} $(${id})`;\n const enumIndex = this.iconReferenceSchema.enum.indexOf(id);\n if (enumIndex !== -1) {\n this.iconReferenceSchema.enumDescriptions[enumIndex] = description;\n }\n this._onDidChange.fire();\n }\n return existing;\n }\n const iconContribution = { id, description, defaults, deprecationMessage };\n this.iconsById[id] = iconContribution;\n const propertySchema = { $ref: '#/definitions/icons' };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n if (description) {\n propertySchema.markdownDescription = `${description}: $(${id})`;\n }\n this.iconSchema.properties[id] = propertySchema;\n this.iconReferenceSchema.enum.push(id);\n this.iconReferenceSchema.enumDescriptions.push(description || '');\n this._onDidChange.fire();\n return { id };\n }\n getIcons() {\n return Object.keys(this.iconsById).map(id => this.iconsById[id]);\n }\n getIcon(id) {\n return this.iconsById[id];\n }\n getIconSchema() {\n return this.iconSchema;\n }\n toString() {\n const sorter = (i1, i2) => {\n return i1.id.localeCompare(i2.id);\n };\n const classNames = (i) => {\n while (ThemeIcon.isThemeIcon(i.defaults)) {\n i = this.iconsById[i.defaults.id];\n }\n return `codicon codicon-${i ? i.id : ''}`;\n };\n const reference = [];\n reference.push(`| preview | identifier | default codicon ID | description`);\n reference.push(`| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |`);\n const contributions = Object.keys(this.iconsById).map(key => this.iconsById[key]);\n for (const i of contributions.filter(i => !!i.description).sort(sorter)) {\n reference.push(`||${i.id}|${ThemeIcon.isThemeIcon(i.defaults) ? i.defaults.id : i.id}|${i.description || ''}|`);\n }\n reference.push(`| preview | identifier `);\n reference.push(`| ----------- | --------------------------------- |`);\n for (const i of contributions.filter(i => !ThemeIcon.isThemeIcon(i.defaults)).sort(sorter)) {\n reference.push(`||${i.id}|`);\n }\n return reference.join('\\n');\n }\n}\nconst iconRegistry = new IconRegistry();\nplatform.Registry.add(Extensions.IconContribution, iconRegistry);\nexport function registerIcon(id, defaults, description, deprecationMessage) {\n return iconRegistry.registerIcon(id, defaults, description, deprecationMessage);\n}\nexport function getIconRegistry() {\n return iconRegistry;\n}\nfunction initialize() {\n const codiconFontCharacters = getCodiconFontCharacters();\n for (const icon in codiconFontCharacters) {\n const fontCharacter = '\\\\' + codiconFontCharacters[icon].toString(16);\n iconRegistry.registerIcon(icon, { fontCharacter });\n }\n}\ninitialize();\nexport const iconsSchemaId = 'vscode://schemas/icons';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(iconsSchemaId, iconRegistry.getIconSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(iconsSchemaId), 200);\niconRegistry.onDidChange(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n//setTimeout(_ => console.log(iconRegistry.toString()), 5000);\n// common icons\nexport const widgetClose = registerIcon('widget-close', Codicon.close, localize('widgetClose', 'Icon for the close action in widgets.'));\nexport const gotoPreviousLocation = registerIcon('goto-previous-location', Codicon.arrowUp, localize('previousChangeIcon', 'Icon for goto previous editor location.'));\nexport const gotoNextLocation = registerIcon('goto-next-location', Codicon.arrowDown, localize('nextChangeIcon', 'Icon for goto next editor location.'));\nexport const syncing = ThemeIcon.modify(Codicon.sync, 'spin');\nexport const spinningLoading = ThemeIcon.modify(Codicon.loading, 'spin');\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/typescript/typescript.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"typescript\",\n extensions: [\".ts\", \".tsx\", \".cts\", \".mts\"],\n aliases: [\"TypeScript\", \"ts\", \"typescript\"],\n mimetypes: [\"text/typescript\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/typescript/typescript\"], resolve, reject);\n });\n } else {\n return import(\"./typescript.js\");\n }\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../base/common/arrays.js';\nimport * as strings from '../../base/common/strings.js';\nimport { Range } from './core/range.js';\nexport class Viewport {\n constructor(top, left, width, height) {\n this._viewportBrand = undefined;\n this.top = top | 0;\n this.left = left | 0;\n this.width = width | 0;\n this.height = height | 0;\n }\n}\nexport class MinimapLinesRenderingData {\n constructor(tabSize, data) {\n this.tabSize = tabSize;\n this.data = data;\n }\n}\nexport class ViewLineData {\n constructor(content, continuesWithWrappedLine, minColumn, maxColumn, startVisibleColumn, tokens, inlineDecorations) {\n this._viewLineDataBrand = undefined;\n this.content = content;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.minColumn = minColumn;\n this.maxColumn = maxColumn;\n this.startVisibleColumn = startVisibleColumn;\n this.tokens = tokens;\n this.inlineDecorations = inlineDecorations;\n }\n}\nexport class ViewLineRenderingData {\n constructor(minColumn, maxColumn, content, continuesWithWrappedLine, mightContainRTL, mightContainNonBasicASCII, tokens, inlineDecorations, tabSize, startVisibleColumn) {\n this.minColumn = minColumn;\n this.maxColumn = maxColumn;\n this.content = content;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.isBasicASCII = ViewLineRenderingData.isBasicASCII(content, mightContainNonBasicASCII);\n this.containsRTL = ViewLineRenderingData.containsRTL(content, this.isBasicASCII, mightContainRTL);\n this.tokens = tokens;\n this.inlineDecorations = inlineDecorations;\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n }\n static isBasicASCII(lineContent, mightContainNonBasicASCII) {\n if (mightContainNonBasicASCII) {\n return strings.isBasicASCII(lineContent);\n }\n return true;\n }\n static containsRTL(lineContent, isBasicASCII, mightContainRTL) {\n if (!isBasicASCII && mightContainRTL) {\n return strings.containsRTL(lineContent);\n }\n return false;\n }\n}\nexport class InlineDecoration {\n constructor(range, inlineClassName, type) {\n this.range = range;\n this.inlineClassName = inlineClassName;\n this.type = type;\n }\n}\nexport class SingleLineInlineDecoration {\n constructor(startOffset, endOffset, inlineClassName, inlineClassNameAffectsLetterSpacing) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.inlineClassName = inlineClassName;\n this.inlineClassNameAffectsLetterSpacing = inlineClassNameAffectsLetterSpacing;\n }\n toInlineDecoration(lineNumber) {\n return new InlineDecoration(new Range(lineNumber, this.startOffset + 1, lineNumber, this.endOffset + 1), this.inlineClassName, this.inlineClassNameAffectsLetterSpacing ? 3 /* InlineDecorationType.RegularAffectingLetterSpacing */ : 0 /* InlineDecorationType.Regular */);\n }\n}\nexport class ViewModelDecoration {\n constructor(range, options) {\n this._viewModelDecorationBrand = undefined;\n this.range = range;\n this.options = options;\n }\n}\nexport class OverviewRulerDecorationsGroup {\n constructor(color, zIndex, \n /**\n * Decorations are encoded in a number array using the following scheme:\n * - 3*i = lane\n * - 3*i+1 = startLineNumber\n * - 3*i+2 = endLineNumber\n */\n data) {\n this.color = color;\n this.zIndex = zIndex;\n this.data = data;\n }\n static compareByRenderingProps(a, b) {\n if (a.zIndex === b.zIndex) {\n if (a.color < b.color) {\n return -1;\n }\n if (a.color > b.color) {\n return 1;\n }\n return 0;\n }\n return a.zIndex - b.zIndex;\n }\n static equals(a, b) {\n return (a.color === b.color\n && a.zIndex === b.zIndex\n && arrays.equals(a.data, b.data));\n }\n static equalsArr(a, b) {\n return arrays.equals(a, b, OverviewRulerDecorationsGroup.equals);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const inlineSuggestCommitId = 'editor.action.inlineSuggest.commit';\nexport const showPreviousInlineSuggestionActionId = 'editor.action.inlineSuggest.showPrevious';\nexport const showNextInlineSuggestionActionId = 'editor.action.inlineSuggest.showNext';\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = void 0;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nconst validation_error_1 = require(\"./runtime/validation_error\");\nconst ref_error_1 = require(\"./compile/ref_error\");\nconst rules_1 = require(\"./compile/rules\");\nconst compile_1 = require(\"./compile\");\nconst codegen_2 = require(\"./compile/codegen\");\nconst resolve_1 = require(\"./compile/resolve\");\nconst dataType_1 = require(\"./compile/validate/dataType\");\nconst util_1 = require(\"./compile/util\");\nconst $dataRefSchema = require(\"./refs/data.json\");\nconst uri_1 = require(\"./runtime/uri\");\nconst defaultRegExp = (str, flags) => new RegExp(str, flags);\ndefaultRegExp.code = \"new RegExp\";\nconst META_IGNORE_OPTIONS = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"];\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n]);\nconst removedOptions = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n};\nconst deprecatedOptions = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n};\nconst MAX_EXPRESSION = 200;\n// eslint-disable-next-line complexity\nfunction requiredOptions(o) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;\n const s = o.strict;\n const _optz = (_a = o.code) === null || _a === void 0 ? void 0 : _a.optimize;\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0;\n const regExp = (_c = (_b = o.code) === null || _b === void 0 ? void 0 : _b.regExp) !== null && _c !== void 0 ? _c : defaultRegExp;\n const uriResolver = (_d = o.uriResolver) !== null && _d !== void 0 ? _d : uri_1.default;\n return {\n strictSchema: (_f = (_e = o.strictSchema) !== null && _e !== void 0 ? _e : s) !== null && _f !== void 0 ? _f : true,\n strictNumbers: (_h = (_g = o.strictNumbers) !== null && _g !== void 0 ? _g : s) !== null && _h !== void 0 ? _h : true,\n strictTypes: (_k = (_j = o.strictTypes) !== null && _j !== void 0 ? _j : s) !== null && _k !== void 0 ? _k : \"log\",\n strictTuples: (_m = (_l = o.strictTuples) !== null && _l !== void 0 ? _l : s) !== null && _m !== void 0 ? _m : \"log\",\n strictRequired: (_p = (_o = o.strictRequired) !== null && _o !== void 0 ? _o : s) !== null && _p !== void 0 ? _p : false,\n code: o.code ? { ...o.code, optimize, regExp } : { optimize, regExp },\n loopRequired: (_q = o.loopRequired) !== null && _q !== void 0 ? _q : MAX_EXPRESSION,\n loopEnum: (_r = o.loopEnum) !== null && _r !== void 0 ? _r : MAX_EXPRESSION,\n meta: (_s = o.meta) !== null && _s !== void 0 ? _s : true,\n messages: (_t = o.messages) !== null && _t !== void 0 ? _t : true,\n inlineRefs: (_u = o.inlineRefs) !== null && _u !== void 0 ? _u : true,\n schemaId: (_v = o.schemaId) !== null && _v !== void 0 ? _v : \"$id\",\n addUsedSchema: (_w = o.addUsedSchema) !== null && _w !== void 0 ? _w : true,\n validateSchema: (_x = o.validateSchema) !== null && _x !== void 0 ? _x : true,\n validateFormats: (_y = o.validateFormats) !== null && _y !== void 0 ? _y : true,\n unicodeRegExp: (_z = o.unicodeRegExp) !== null && _z !== void 0 ? _z : true,\n int32range: (_0 = o.int32range) !== null && _0 !== void 0 ? _0 : true,\n uriResolver: uriResolver,\n };\n}\nclass Ajv {\n constructor(opts = {}) {\n this.schemas = {};\n this.refs = {};\n this.formats = {};\n this._compilations = new Set();\n this._loading = {};\n this._cache = new Map();\n opts = this.opts = { ...opts, ...requiredOptions(opts) };\n const { es5, lines } = this.opts.code;\n this.scope = new codegen_2.ValueScope({ scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines });\n this.logger = getLogger(opts.logger);\n const formatOpt = opts.validateFormats;\n opts.validateFormats = false;\n this.RULES = (0, rules_1.getRules)();\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\");\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\");\n this._metaOpts = getMetaSchemaOptions.call(this);\n if (opts.formats)\n addInitialFormats.call(this);\n this._addVocabularies();\n this._addDefaultMetaSchema();\n if (opts.keywords)\n addInitialKeywords.call(this, opts.keywords);\n if (typeof opts.meta == \"object\")\n this.addMetaSchema(opts.meta);\n addInitialSchemas.call(this);\n opts.validateFormats = formatOpt;\n }\n _addVocabularies() {\n this.addKeyword(\"$async\");\n }\n _addDefaultMetaSchema() {\n const { $data, meta, schemaId } = this.opts;\n let _dataRefSchema = $dataRefSchema;\n if (schemaId === \"id\") {\n _dataRefSchema = { ...$dataRefSchema };\n _dataRefSchema.id = _dataRefSchema.$id;\n delete _dataRefSchema.$id;\n }\n if (meta && $data)\n this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false);\n }\n defaultMeta() {\n const { meta, schemaId } = this.opts;\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined);\n }\n validate(schemaKeyRef, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data // to be validated\n ) {\n let v;\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema(schemaKeyRef);\n if (!v)\n throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`);\n }\n else {\n v = this.compile(schemaKeyRef);\n }\n const valid = v(data);\n if (!(\"$async\" in v))\n this.errors = v.errors;\n return valid;\n }\n compile(schema, _meta) {\n const sch = this._addSchema(schema, _meta);\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n compileAsync(schema, meta) {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\");\n }\n const { loadSchema } = this.opts;\n return runCompileAsync.call(this, schema, meta);\n async function runCompileAsync(_schema, _meta) {\n await loadMetaSchema.call(this, _schema.$schema);\n const sch = this._addSchema(_schema, _meta);\n return sch.validate || _compileAsync.call(this, sch);\n }\n async function loadMetaSchema($ref) {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, { $ref }, true);\n }\n }\n async function _compileAsync(sch) {\n try {\n return this._compileSchemaEnv(sch);\n }\n catch (e) {\n if (!(e instanceof ref_error_1.default))\n throw e;\n checkLoaded.call(this, e);\n await loadMissingSchema.call(this, e.missingSchema);\n return _compileAsync.call(this, sch);\n }\n }\n function checkLoaded({ missingSchema: ref, missingRef }) {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`);\n }\n }\n async function loadMissingSchema(ref) {\n const _schema = await _loadSchema.call(this, ref);\n if (!this.refs[ref])\n await loadMetaSchema.call(this, _schema.$schema);\n if (!this.refs[ref])\n this.addSchema(_schema, ref, meta);\n }\n async function _loadSchema(ref) {\n const p = this._loading[ref];\n if (p)\n return p;\n try {\n return await (this._loading[ref] = loadSchema(ref));\n }\n finally {\n delete this._loading[ref];\n }\n }\n }\n // Adds schema to the instance\n addSchema(schema, // If array is passed, `key` will be ignored\n key, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ) {\n if (Array.isArray(schema)) {\n for (const sch of schema)\n this.addSchema(sch, undefined, _meta, _validateSchema);\n return this;\n }\n let id;\n if (typeof schema === \"object\") {\n const { schemaId } = this.opts;\n id = schema[schemaId];\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`);\n }\n }\n key = (0, resolve_1.normalizeId)(key || id);\n this._checkUnique(key);\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true);\n return this;\n }\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(schema, key, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ) {\n this.addSchema(schema, key, true, _validateSchema);\n return this;\n }\n // Validate schema against its meta-schema\n validateSchema(schema, throwOrLogError) {\n if (typeof schema == \"boolean\")\n return true;\n let $schema;\n $schema = schema.$schema;\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\");\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta();\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\");\n this.errors = null;\n return true;\n }\n const valid = this.validate($schema, schema);\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText();\n if (this.opts.validateSchema === \"log\")\n this.logger.error(message);\n else\n throw new Error(message);\n }\n return valid;\n }\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema(keyRef) {\n let sch;\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\")\n keyRef = sch;\n if (sch === undefined) {\n const { schemaId } = this.opts;\n const root = new compile_1.SchemaEnv({ schema: {}, schemaId });\n sch = compile_1.resolveSchema.call(this, root, keyRef);\n if (!sch)\n return;\n this.refs[keyRef] = sch;\n }\n return (sch.validate || this._compileSchemaEnv(sch));\n }\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef) {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef);\n this._removeAllSchemas(this.refs, schemaKeyRef);\n return this;\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas);\n this._removeAllSchemas(this.refs);\n this._cache.clear();\n return this;\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef);\n if (typeof sch == \"object\")\n this._cache.delete(sch.schema);\n delete this.schemas[schemaKeyRef];\n delete this.refs[schemaKeyRef];\n return this;\n }\n case \"object\": {\n const cacheKey = schemaKeyRef;\n this._cache.delete(cacheKey);\n let id = schemaKeyRef[this.opts.schemaId];\n if (id) {\n id = (0, resolve_1.normalizeId)(id);\n delete this.schemas[id];\n delete this.refs[id];\n }\n return this;\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\");\n }\n }\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions) {\n for (const def of definitions)\n this.addKeyword(def);\n return this;\n }\n addKeyword(kwdOrDef, def // deprecated\n ) {\n let keyword;\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef;\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\");\n def.keyword = keyword;\n }\n }\n else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef;\n keyword = def.keyword;\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\");\n }\n }\n else {\n throw new Error(\"invalid addKeywords parameters\");\n }\n checkKeyword.call(this, keyword, def);\n if (!def) {\n (0, util_1.eachItem)(keyword, (kwd) => addRule.call(this, kwd));\n return this;\n }\n keywordMetaschema.call(this, def);\n const definition = {\n ...def,\n type: (0, dataType_1.getJSONTypes)(def.type),\n schemaType: (0, dataType_1.getJSONTypes)(def.schemaType),\n };\n (0, util_1.eachItem)(keyword, definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t)));\n return this;\n }\n getKeyword(keyword) {\n const rule = this.RULES.all[keyword];\n return typeof rule == \"object\" ? rule.definition : !!rule;\n }\n // Remove keyword\n removeKeyword(keyword) {\n // TODO return type should be Ajv\n const { RULES } = this;\n delete RULES.keywords[keyword];\n delete RULES.all[keyword];\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword);\n if (i >= 0)\n group.rules.splice(i, 1);\n }\n return this;\n }\n // Add format\n addFormat(name, format) {\n if (typeof format == \"string\")\n format = new RegExp(format);\n this.formats[name] = format;\n return this;\n }\n errorsText(errors = this.errors, // optional array of validation errors\n { separator = \", \", dataVar = \"data\" } = {} // optional options with properties `separator` and `dataVar`\n ) {\n if (!errors || errors.length === 0)\n return \"No errors\";\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg);\n }\n $dataMetaSchema(metaSchema, keywordsJsonPointers) {\n const rules = this.RULES.all;\n metaSchema = JSON.parse(JSON.stringify(metaSchema));\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1); // first segment is an empty string\n let keywords = metaSchema;\n for (const seg of segments)\n keywords = keywords[seg];\n for (const key in rules) {\n const rule = rules[key];\n if (typeof rule != \"object\")\n continue;\n const { $data } = rule.definition;\n const schema = keywords[key];\n if ($data && schema)\n keywords[key] = schemaOrData(schema);\n }\n }\n return metaSchema;\n }\n _removeAllSchemas(schemas, regex) {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef];\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef];\n }\n else if (sch && !sch.meta) {\n this._cache.delete(sch.schema);\n delete schemas[keyRef];\n }\n }\n }\n }\n _addSchema(schema, meta, baseId, validateSchema = this.opts.validateSchema, addSchema = this.opts.addUsedSchema) {\n let id;\n const { schemaId } = this.opts;\n if (typeof schema == \"object\") {\n id = schema[schemaId];\n }\n else {\n if (this.opts.jtd)\n throw new Error(\"schema must be object\");\n else if (typeof schema != \"boolean\")\n throw new Error(\"schema must be object or boolean\");\n }\n let sch = this._cache.get(schema);\n if (sch !== undefined)\n return sch;\n baseId = (0, resolve_1.normalizeId)(id || baseId);\n const localRefs = resolve_1.getSchemaRefs.call(this, schema, baseId);\n sch = new compile_1.SchemaEnv({ schema, schemaId, meta, baseId, localRefs });\n this._cache.set(sch.schema, sch);\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId)\n this._checkUnique(baseId);\n this.refs[baseId] = sch;\n }\n if (validateSchema)\n this.validateSchema(schema, true);\n return sch;\n }\n _checkUnique(id) {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`);\n }\n }\n _compileSchemaEnv(sch) {\n if (sch.meta)\n this._compileMetaSchema(sch);\n else\n compile_1.compileSchema.call(this, sch);\n /* istanbul ignore if */\n if (!sch.validate)\n throw new Error(\"ajv implementation error\");\n return sch.validate;\n }\n _compileMetaSchema(sch) {\n const currentOpts = this.opts;\n this.opts = this._metaOpts;\n try {\n compile_1.compileSchema.call(this, sch);\n }\n finally {\n this.opts = currentOpts;\n }\n }\n}\nAjv.ValidationError = validation_error_1.default;\nAjv.MissingRefError = ref_error_1.default;\nexports.default = Ajv;\nfunction checkOptions(checkOpts, options, msg, log = \"error\") {\n for (const key in checkOpts) {\n const opt = key;\n if (opt in options)\n this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`);\n }\n}\nfunction getSchEnv(keyRef) {\n keyRef = (0, resolve_1.normalizeId)(keyRef); // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef];\n}\nfunction addInitialSchemas() {\n const optsSchemas = this.opts.schemas;\n if (!optsSchemas)\n return;\n if (Array.isArray(optsSchemas))\n this.addSchema(optsSchemas);\n else\n for (const key in optsSchemas)\n this.addSchema(optsSchemas[key], key);\n}\nfunction addInitialFormats() {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name];\n if (format)\n this.addFormat(name, format);\n }\n}\nfunction addInitialKeywords(defs) {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs);\n return;\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\");\n for (const keyword in defs) {\n const def = defs[keyword];\n if (!def.keyword)\n def.keyword = keyword;\n this.addKeyword(def);\n }\n}\nfunction getMetaSchemaOptions() {\n const metaOpts = { ...this.opts };\n for (const opt of META_IGNORE_OPTIONS)\n delete metaOpts[opt];\n return metaOpts;\n}\nconst noLogs = { log() { }, warn() { }, error() { } };\nfunction getLogger(logger) {\n if (logger === false)\n return noLogs;\n if (logger === undefined)\n return console;\n if (logger.log && logger.warn && logger.error)\n return logger;\n throw new Error(\"logger must implement log, warn and error methods\");\n}\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;\nfunction checkKeyword(keyword, def) {\n const { RULES } = this;\n (0, util_1.eachItem)(keyword, (kwd) => {\n if (RULES.keywords[kwd])\n throw new Error(`Keyword ${kwd} is already defined`);\n if (!KEYWORD_NAME.test(kwd))\n throw new Error(`Keyword ${kwd} has invalid name`);\n });\n if (!def)\n return;\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function');\n }\n}\nfunction addRule(keyword, definition, dataType) {\n var _a;\n const post = definition === null || definition === void 0 ? void 0 : definition.post;\n if (dataType && post)\n throw new Error('keyword with \"post\" flag cannot have \"type\"');\n const { RULES } = this;\n let ruleGroup = post ? RULES.post : RULES.rules.find(({ type: t }) => t === dataType);\n if (!ruleGroup) {\n ruleGroup = { type: dataType, rules: [] };\n RULES.rules.push(ruleGroup);\n }\n RULES.keywords[keyword] = true;\n if (!definition)\n return;\n const rule = {\n keyword,\n definition: {\n ...definition,\n type: (0, dataType_1.getJSONTypes)(definition.type),\n schemaType: (0, dataType_1.getJSONTypes)(definition.schemaType),\n },\n };\n if (definition.before)\n addBeforeRule.call(this, ruleGroup, rule, definition.before);\n else\n ruleGroup.rules.push(rule);\n RULES.all[keyword] = rule;\n (_a = definition.implements) === null || _a === void 0 ? void 0 : _a.forEach((kwd) => this.addKeyword(kwd));\n}\nfunction addBeforeRule(ruleGroup, rule, before) {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before);\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule);\n }\n else {\n ruleGroup.rules.push(rule);\n this.logger.warn(`rule ${before} is not defined`);\n }\n}\nfunction keywordMetaschema(def) {\n let { metaSchema } = def;\n if (metaSchema === undefined)\n return;\n if (def.$data && this.opts.$data)\n metaSchema = schemaOrData(metaSchema);\n def.validateSchema = this.compile(metaSchema, true);\n}\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n};\nfunction schemaOrData(schema) {\n return { anyOf: [schema, $dataRef] };\n}\n//# sourceMappingURL=core.js.map","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class HoverProviderResult {\n constructor(provider, hover, ordinal) {\n this.provider = provider;\n this.hover = hover;\n this.ordinal = ordinal;\n }\n}\n/**\n * Does not throw or return a rejected promise (returns undefined instead).\n */\nasync function executeProvider(provider, ordinal, model, position, token) {\n const result = await Promise\n .resolve(provider.provideHover(model, position, token))\n .catch(onUnexpectedExternalError);\n if (!result || !isValid(result)) {\n return undefined;\n }\n return new HoverProviderResult(provider, result, ordinal);\n}\nexport function getHoverProviderResultsAsAsyncIterable(registry, model, position, token) {\n const providers = registry.ordered(model);\n const promises = providers.map((provider, index) => executeProvider(provider, index, model, position, token));\n return AsyncIterableObject.fromPromises(promises).coalesce();\n}\nexport function getHoversPromise(registry, model, position, token) {\n return getHoverProviderResultsAsAsyncIterable(registry, model, position, token).map(item => item.hover).toPromise();\n}\nregisterModelAndPositionCommand('_executeHoverProvider', (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n return getHoversPromise(languageFeaturesService.hoverProvider, model, position, CancellationToken.None);\n});\nfunction isValid(result) {\n const hasRange = (typeof result.range !== 'undefined');\n const hasHtmlContent = typeof result.contents !== 'undefined' && result.contents && result.contents.length > 0;\n return hasRange && hasHtmlContent;\n}\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseIndexOfWith;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { doHash } from '../../../base/common/hash.js';\nimport { LRUCache } from '../../../base/common/map.js';\nimport { clamp, MovingAverage, SlidingWindowAverage } from '../../../base/common/numbers.js';\nimport { IEnvironmentService } from '../../../platform/environment/common/environment.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { matchesScheme } from '../../../base/common/network.js';\nexport const ILanguageFeatureDebounceService = createDecorator('ILanguageFeatureDebounceService');\nvar IdentityHash;\n(function (IdentityHash) {\n const _hashes = new WeakMap();\n let pool = 0;\n function of(obj) {\n let value = _hashes.get(obj);\n if (value === undefined) {\n value = ++pool;\n _hashes.set(obj, value);\n }\n return value;\n }\n IdentityHash.of = of;\n})(IdentityHash || (IdentityHash = {}));\nclass NullDebounceInformation {\n constructor(_default) {\n this._default = _default;\n }\n get(_model) {\n return this._default;\n }\n update(_model, _value) {\n return this._default;\n }\n default() {\n return this._default;\n }\n}\nclass FeatureDebounceInformation {\n constructor(_logService, _name, _registry, _default, _min, _max) {\n this._logService = _logService;\n this._name = _name;\n this._registry = _registry;\n this._default = _default;\n this._min = _min;\n this._max = _max;\n this._cache = new LRUCache(50, 0.7);\n }\n _key(model) {\n return model.id + this._registry.all(model).reduce((hashVal, obj) => doHash(IdentityHash.of(obj), hashVal), 0);\n }\n get(model) {\n const key = this._key(model);\n const avg = this._cache.get(key);\n return avg\n ? clamp(avg.value, this._min, this._max)\n : this.default();\n }\n update(model, value) {\n const key = this._key(model);\n let avg = this._cache.get(key);\n if (!avg) {\n avg = new SlidingWindowAverage(6);\n this._cache.set(key, avg);\n }\n const newValue = clamp(avg.update(value), this._min, this._max);\n if (!matchesScheme(model.uri, 'output')) {\n this._logService.trace(`[DEBOUNCE: ${this._name}] for ${model.uri.toString()} is ${newValue}ms`);\n }\n return newValue;\n }\n _overall() {\n const result = new MovingAverage();\n for (const [, avg] of this._cache) {\n result.update(avg.value);\n }\n return result.value;\n }\n default() {\n const value = (this._overall() | 0) || this._default;\n return clamp(value, this._min, this._max);\n }\n}\nlet LanguageFeatureDebounceService = class LanguageFeatureDebounceService {\n constructor(_logService, envService) {\n this._logService = _logService;\n this._data = new Map();\n this._isDev = envService.isExtensionDevelopment || !envService.isBuilt;\n }\n for(feature, name, config) {\n var _a, _b, _c;\n const min = (_a = config === null || config === void 0 ? void 0 : config.min) !== null && _a !== void 0 ? _a : 50;\n const max = (_b = config === null || config === void 0 ? void 0 : config.max) !== null && _b !== void 0 ? _b : min ** 2;\n const extra = (_c = config === null || config === void 0 ? void 0 : config.key) !== null && _c !== void 0 ? _c : undefined;\n const key = `${IdentityHash.of(feature)},${min}${extra ? ',' + extra : ''}`;\n let info = this._data.get(key);\n if (!info) {\n if (this._isDev) {\n this._logService.debug(`[DEBOUNCE: ${name}] is disabled in developed mode`);\n info = new NullDebounceInformation(min * 1.5);\n }\n else {\n info = new FeatureDebounceInformation(this._logService, name, feature, (this._overallAverage() | 0) || (min * 1.5), // default is overall default or derived from min-value\n min, max);\n }\n this._data.set(key, info);\n }\n return info;\n }\n _overallAverage() {\n // Average of all language features. Not a great value but an approximation\n const result = new MovingAverage();\n for (const info of this._data.values()) {\n result.update(info.default());\n }\n return result.value;\n }\n};\nLanguageFeatureDebounceService = __decorate([\n __param(0, ILogService),\n __param(1, IEnvironmentService)\n], LanguageFeatureDebounceService);\nexport { LanguageFeatureDebounceService };\nregisterSingleton(ILanguageFeatureDebounceService, LanguageFeatureDebounceService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Dimension } from '../../dom.js';\nimport { OrthogonalEdge, Sash } from '../sash/sash.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { DisposableStore } from '../../../common/lifecycle.js';\nexport class ResizableHTMLElement {\n constructor() {\n this._onDidWillResize = new Emitter();\n this.onDidWillResize = this._onDidWillResize.event;\n this._onDidResize = new Emitter();\n this.onDidResize = this._onDidResize.event;\n this._sashListener = new DisposableStore();\n this._size = new Dimension(0, 0);\n this._minSize = new Dimension(0, 0);\n this._maxSize = new Dimension(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);\n this.domNode = document.createElement('div');\n this._eastSash = new Sash(this.domNode, { getVerticalSashLeft: () => this._size.width }, { orientation: 0 /* Orientation.VERTICAL */ });\n this._westSash = new Sash(this.domNode, { getVerticalSashLeft: () => 0 }, { orientation: 0 /* Orientation.VERTICAL */ });\n this._northSash = new Sash(this.domNode, { getHorizontalSashTop: () => 0 }, { orientation: 1 /* Orientation.HORIZONTAL */, orthogonalEdge: OrthogonalEdge.North });\n this._southSash = new Sash(this.domNode, { getHorizontalSashTop: () => this._size.height }, { orientation: 1 /* Orientation.HORIZONTAL */, orthogonalEdge: OrthogonalEdge.South });\n this._northSash.orthogonalStartSash = this._westSash;\n this._northSash.orthogonalEndSash = this._eastSash;\n this._southSash.orthogonalStartSash = this._westSash;\n this._southSash.orthogonalEndSash = this._eastSash;\n let currentSize;\n let deltaY = 0;\n let deltaX = 0;\n this._sashListener.add(Event.any(this._northSash.onDidStart, this._eastSash.onDidStart, this._southSash.onDidStart, this._westSash.onDidStart)(() => {\n if (currentSize === undefined) {\n this._onDidWillResize.fire();\n currentSize = this._size;\n deltaY = 0;\n deltaX = 0;\n }\n }));\n this._sashListener.add(Event.any(this._northSash.onDidEnd, this._eastSash.onDidEnd, this._southSash.onDidEnd, this._westSash.onDidEnd)(() => {\n if (currentSize !== undefined) {\n currentSize = undefined;\n deltaY = 0;\n deltaX = 0;\n this._onDidResize.fire({ dimension: this._size, done: true });\n }\n }));\n this._sashListener.add(this._eastSash.onDidChange(e => {\n if (currentSize) {\n deltaX = e.currentX - e.startX;\n this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n this._onDidResize.fire({ dimension: this._size, done: false, east: true });\n }\n }));\n this._sashListener.add(this._westSash.onDidChange(e => {\n if (currentSize) {\n deltaX = -(e.currentX - e.startX);\n this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n this._onDidResize.fire({ dimension: this._size, done: false, west: true });\n }\n }));\n this._sashListener.add(this._northSash.onDidChange(e => {\n if (currentSize) {\n deltaY = -(e.currentY - e.startY);\n this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n this._onDidResize.fire({ dimension: this._size, done: false, north: true });\n }\n }));\n this._sashListener.add(this._southSash.onDidChange(e => {\n if (currentSize) {\n deltaY = e.currentY - e.startY;\n this.layout(currentSize.height + deltaY, currentSize.width + deltaX);\n this._onDidResize.fire({ dimension: this._size, done: false, south: true });\n }\n }));\n this._sashListener.add(Event.any(this._eastSash.onDidReset, this._westSash.onDidReset)(e => {\n if (this._preferredSize) {\n this.layout(this._size.height, this._preferredSize.width);\n this._onDidResize.fire({ dimension: this._size, done: true });\n }\n }));\n this._sashListener.add(Event.any(this._northSash.onDidReset, this._southSash.onDidReset)(e => {\n if (this._preferredSize) {\n this.layout(this._preferredSize.height, this._size.width);\n this._onDidResize.fire({ dimension: this._size, done: true });\n }\n }));\n }\n dispose() {\n this._northSash.dispose();\n this._southSash.dispose();\n this._eastSash.dispose();\n this._westSash.dispose();\n this._sashListener.dispose();\n this._onDidResize.dispose();\n this._onDidWillResize.dispose();\n this.domNode.remove();\n }\n enableSashes(north, east, south, west) {\n this._northSash.state = north ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n this._eastSash.state = east ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n this._southSash.state = south ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n this._westSash.state = west ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n }\n layout(height = this.size.height, width = this.size.width) {\n const { height: minHeight, width: minWidth } = this._minSize;\n const { height: maxHeight, width: maxWidth } = this._maxSize;\n height = Math.max(minHeight, Math.min(maxHeight, height));\n width = Math.max(minWidth, Math.min(maxWidth, width));\n const newSize = new Dimension(width, height);\n if (!Dimension.equals(newSize, this._size)) {\n this.domNode.style.height = height + 'px';\n this.domNode.style.width = width + 'px';\n this._size = newSize;\n this._northSash.layout();\n this._eastSash.layout();\n this._southSash.layout();\n this._westSash.layout();\n }\n }\n clearSashHoverState() {\n this._eastSash.clearSashHoverState();\n this._westSash.clearSashHoverState();\n this._northSash.clearSashHoverState();\n this._southSash.clearSashHoverState();\n }\n get size() {\n return this._size;\n }\n set maxSize(value) {\n this._maxSize = value;\n }\n get maxSize() {\n return this._maxSize;\n }\n set minSize(value) {\n this._minSize = value;\n }\n get minSize() {\n return this._minSize;\n }\n set preferredSize(value) {\n this._preferredSize = value;\n }\n get preferredSize() {\n return this._preferredSize;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Event } from '../event.js';\nimport { DisposableStore, toDisposable } from '../lifecycle.js';\nimport { BaseObservable, ConvenientObservable, _setKeepObserved, _setRecomputeInitiallyAndOnChange, subtransaction, transaction } from './base.js';\nimport { DebugNameData, getFunctionName } from './debugName.js';\nimport { derived, derivedOpts } from './derived.js';\nimport { getLogger } from './logging.js';\n/**\n * Represents an efficient observable whose value never changes.\n */\nexport function constObservable(value) {\n return new ConstObservable(value);\n}\nclass ConstObservable extends ConvenientObservable {\n constructor(value) {\n super();\n this.value = value;\n }\n get debugName() {\n return this.toString();\n }\n get() {\n return this.value;\n }\n addObserver(observer) {\n // NO OP\n }\n removeObserver(observer) {\n // NO OP\n }\n toString() {\n return `Const: ${this.value}`;\n }\n}\nexport function observableFromEvent(event, getValue) {\n return new FromEventObservable(event, getValue);\n}\nexport class FromEventObservable extends BaseObservable {\n constructor(event, _getValue) {\n super();\n this.event = event;\n this._getValue = _getValue;\n this.hasValue = false;\n this.handleEvent = (args) => {\n var _a;\n const newValue = this._getValue(args);\n const oldValue = this.value;\n const didChange = !this.hasValue || oldValue !== newValue;\n let didRunTransaction = false;\n if (didChange) {\n this.value = newValue;\n if (this.hasValue) {\n didRunTransaction = true;\n subtransaction(FromEventObservable.globalTransaction, (tx) => {\n var _a;\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleFromEventObservableTriggered(this, { oldValue, newValue, change: undefined, didChange, hadValue: this.hasValue });\n for (const o of this.observers) {\n tx.updateObserver(o, this);\n o.handleChange(this, undefined);\n }\n }, () => {\n const name = this.getDebugName();\n return 'Event fired' + (name ? `: ${name}` : '');\n });\n }\n this.hasValue = true;\n }\n if (!didRunTransaction) {\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleFromEventObservableTriggered(this, { oldValue, newValue, change: undefined, didChange, hadValue: this.hasValue });\n }\n };\n }\n getDebugName() {\n return getFunctionName(this._getValue);\n }\n get debugName() {\n const name = this.getDebugName();\n return 'From Event' + (name ? `: ${name}` : '');\n }\n onFirstObserverAdded() {\n this.subscription = this.event(this.handleEvent);\n }\n onLastObserverRemoved() {\n this.subscription.dispose();\n this.subscription = undefined;\n this.hasValue = false;\n this.value = undefined;\n }\n get() {\n if (this.subscription) {\n if (!this.hasValue) {\n this.handleEvent(undefined);\n }\n return this.value;\n }\n else {\n // no cache, as there are no subscribers to keep it updated\n const value = this._getValue(undefined);\n return value;\n }\n }\n}\n(function (observableFromEvent) {\n observableFromEvent.Observer = FromEventObservable;\n function batchEventsGlobally(tx, fn) {\n let didSet = false;\n if (FromEventObservable.globalTransaction === undefined) {\n FromEventObservable.globalTransaction = tx;\n didSet = true;\n }\n try {\n fn();\n }\n finally {\n if (didSet) {\n FromEventObservable.globalTransaction = undefined;\n }\n }\n }\n observableFromEvent.batchEventsGlobally = batchEventsGlobally;\n})(observableFromEvent || (observableFromEvent = {}));\nexport function observableSignalFromEvent(debugName, event) {\n return new FromEventObservableSignal(debugName, event);\n}\nclass FromEventObservableSignal extends BaseObservable {\n constructor(debugName, event) {\n super();\n this.debugName = debugName;\n this.event = event;\n this.handleEvent = () => {\n transaction((tx) => {\n for (const o of this.observers) {\n tx.updateObserver(o, this);\n o.handleChange(this, undefined);\n }\n }, () => this.debugName);\n };\n }\n onFirstObserverAdded() {\n this.subscription = this.event(this.handleEvent);\n }\n onLastObserverRemoved() {\n this.subscription.dispose();\n this.subscription = undefined;\n }\n get() {\n // NO OP\n }\n}\nexport function observableSignal(debugNameOrOwner) {\n if (typeof debugNameOrOwner === 'string') {\n return new ObservableSignal(debugNameOrOwner);\n }\n else {\n return new ObservableSignal(undefined, debugNameOrOwner);\n }\n}\nclass ObservableSignal extends BaseObservable {\n get debugName() {\n var _a;\n return (_a = new DebugNameData(this._owner, this._debugName, undefined).getDebugName(this)) !== null && _a !== void 0 ? _a : 'Observable Signal';\n }\n constructor(_debugName, _owner) {\n super();\n this._debugName = _debugName;\n this._owner = _owner;\n }\n trigger(tx, change) {\n if (!tx) {\n transaction(tx => {\n this.trigger(tx, change);\n }, () => `Trigger signal ${this.debugName}`);\n return;\n }\n for (const o of this.observers) {\n tx.updateObserver(o, this);\n o.handleChange(this, change);\n }\n }\n get() {\n // NO OP\n }\n}\n/**\n * This makes sure the observable is being observed and keeps its cache alive.\n */\nexport function keepObserved(observable) {\n const o = new KeepAliveObserver(false, undefined);\n observable.addObserver(o);\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setKeepObserved(keepObserved);\n/**\n * This converts the given observable into an autorun.\n */\nexport function recomputeInitiallyAndOnChange(observable, handleValue) {\n const o = new KeepAliveObserver(true, handleValue);\n observable.addObserver(o);\n if (handleValue) {\n handleValue(observable.get());\n }\n else {\n observable.reportChanges();\n }\n return toDisposable(() => {\n observable.removeObserver(o);\n });\n}\n_setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);\nexport class KeepAliveObserver {\n constructor(_forceRecompute, _handleValue) {\n this._forceRecompute = _forceRecompute;\n this._handleValue = _handleValue;\n this._counter = 0;\n }\n beginUpdate(observable) {\n this._counter++;\n }\n endUpdate(observable) {\n this._counter--;\n if (this._counter === 0 && this._forceRecompute) {\n if (this._handleValue) {\n this._handleValue(observable.get());\n }\n else {\n observable.reportChanges();\n }\n }\n }\n handlePossibleChange(observable) {\n // NO OP\n }\n handleChange(observable, change) {\n // NO OP\n }\n}\nexport function derivedObservableWithCache(owner, computeFn) {\n let lastValue = undefined;\n const observable = derived(owner, reader => {\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return observable;\n}\nexport function derivedObservableWithWritableCache(owner, computeFn) {\n let lastValue = undefined;\n const onChange = observableSignal('derivedObservableWithWritableCache');\n const observable = derived(owner, reader => {\n onChange.read(reader);\n lastValue = computeFn(reader, lastValue);\n return lastValue;\n });\n return Object.assign(observable, {\n clearCache: (tx) => {\n lastValue = undefined;\n onChange.trigger(tx);\n },\n setCache: (newValue, tx) => {\n lastValue = newValue;\n onChange.trigger(tx);\n }\n });\n}\n/**\n * When the items array changes, referential equal items are not mapped again.\n */\nexport function mapObservableArrayCached(owner, items, map, keySelector) {\n let m = new ArrayMap(map, keySelector);\n const self = derivedOpts({\n debugReferenceFn: map,\n owner,\n onLastObserverRemoved: () => {\n m.dispose();\n m = new ArrayMap(map);\n }\n }, (reader) => {\n m.setItems(items.read(reader));\n return m.getItems();\n });\n return self;\n}\nclass ArrayMap {\n constructor(_map, _keySelector) {\n this._map = _map;\n this._keySelector = _keySelector;\n this._cache = new Map();\n this._items = [];\n }\n dispose() {\n this._cache.forEach(entry => entry.store.dispose());\n this._cache.clear();\n }\n setItems(items) {\n const newItems = [];\n const itemsToRemove = new Set(this._cache.keys());\n for (const item of items) {\n const key = this._keySelector ? this._keySelector(item) : item;\n let entry = this._cache.get(key);\n if (!entry) {\n const store = new DisposableStore();\n const out = this._map(item, store);\n entry = { out, store };\n this._cache.set(key, entry);\n }\n else {\n itemsToRemove.delete(key);\n }\n newItems.push(entry.out);\n }\n for (const item of itemsToRemove) {\n const entry = this._cache.get(item);\n entry.store.dispose();\n this._cache.delete(item);\n }\n this._items = newItems;\n }\n getItems() {\n return this._items;\n }\n}\nexport class ValueWithChangeEventFromObservable {\n constructor(observable) {\n this.observable = observable;\n }\n get onDidChange() {\n return Event.fromObservableLight(this.observable);\n }\n get value() {\n return this.observable.get();\n }\n}\nexport function observableFromValueWithChangeEvent(_owner, value) {\n if (value instanceof ValueWithChangeEventFromObservable) {\n return value.observable;\n }\n return observableFromEvent(value.onDidChange, () => value.value);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","var basePullAll = require('./_basePullAll');\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nmodule.exports = pullAll;\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventHandler, Property, Event, KeyboardEvents, rippleEffect, animationMode } from '@syncfusion/ej2-base';\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\nimport { isVisible, closest, attributes, detach, select, addClass, removeClass, append } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\nvar CLS_ROOT = 'e-accordion';\nvar CLS_ITEM = 'e-acrdn-item';\nvar CLS_ITEMFOCUS = 'e-item-focus';\nvar CLS_ITEMHIDE = 'e-hide';\nvar CLS_HEADER = 'e-acrdn-header';\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\nvar CLS_CONTENT = 'e-acrdn-panel';\nvar CLS_CTENT = 'e-acrdn-content';\nvar CLS_TOOGLEICN = 'e-toggle-icon';\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\nvar CLS_EXPANDICN = 'e-expand-icon';\nvar CLS_RTL = 'e-rtl';\nvar CLS_CTNHIDE = 'e-content-hide';\nvar CLS_SLCT = 'e-select';\nvar CLS_SLCTED = 'e-selected';\nvar CLS_ACTIVE = 'e-active';\nvar CLS_ANIMATE = 'e-animate';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_TOGANIMATE = 'e-toggle-animation';\nvar CLS_NEST = 'e-nested';\nvar CLS_EXPANDSTATE = 'e-expand-state';\nvar CLS_CONTAINER = 'e-accordion-container';\n/**\n * Objects used for configuring the Accordion expanding item action properties.\n */\nvar AccordionActionSettings = /** @class */ (function (_super) {\n __extends(AccordionActionSettings, _super);\n function AccordionActionSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], AccordionActionSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], AccordionActionSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('linear')\n ], AccordionActionSettings.prototype, \"easing\", void 0);\n return AccordionActionSettings;\n}(ChildProperty));\nexport { AccordionActionSettings };\n/**\n * Objects used for configuring the Accordion animation properties.\n */\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\n __extends(AccordionAnimationSettings, _super);\n function AccordionAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\n __decorate([\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\n return AccordionAnimationSettings;\n}(ChildProperty));\nexport { AccordionAnimationSettings };\n/**\n * An item object that is used to configure Accordion items.\n */\nvar AccordionItem = /** @class */ (function (_super) {\n __extends(AccordionItem, _super);\n function AccordionItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"content\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"header\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"cssClass\", void 0);\n __decorate([\n Property(null)\n ], AccordionItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"expanded\", void 0);\n __decorate([\n Property(true)\n ], AccordionItem.prototype, \"visible\", void 0);\n __decorate([\n Property(false)\n ], AccordionItem.prototype, \"disabled\", void 0);\n __decorate([\n Property()\n ], AccordionItem.prototype, \"id\", void 0);\n return AccordionItem;\n}(ChildProperty));\nexport { AccordionItem };\n/**\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\n * ```html\n *
\n * \n * ```\n */\nvar Accordion = /** @class */ (function (_super) {\n __extends(Accordion, _super);\n /**\n * Initializes a new instance of the Accordion class.\n *\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\n */\n function Accordion(options, element) {\n var _this = _super.call(this, options, element) || this;\n /**\n * Contains the keyboard configuration of the Accordion.\n */\n _this.keyConfigs = {\n moveUp: 'uparrow',\n moveDown: 'downarrow',\n enter: 'enter',\n space: 'space',\n home: 'home',\n end: 'end'\n };\n return _this;\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Accordion.prototype.destroy = function () {\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n var ele = this.element;\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.isDestroy = true;\n this.restoreContent(null);\n [].slice.call(ele.children).forEach(function (el) {\n ele.removeChild(el);\n });\n if (this.trgtEle) {\n this.trgtEle = null;\n while (this.ctrlTem.firstElementChild) {\n ele.appendChild(this.ctrlTem.firstElementChild);\n }\n this.ctrlTem = null;\n }\n ele.classList.remove(CLS_ACRDN_ROOT);\n ele.removeAttribute('style');\n this.element.removeAttribute('data-ripple');\n if (!this.isNested && isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n Accordion.prototype.preRender = function () {\n var nested = closest(this.element, '.' + CLS_CONTENT);\n this.isNested = false;\n this.templateEle = [];\n if (!this.isDestroy) {\n this.isDestroy = false;\n }\n if (nested && nested.firstElementChild && nested.firstElementChild.firstElementChild) {\n if (nested.firstElementChild.firstElementChild.classList.contains(CLS_ROOT)) {\n nested.classList.add(CLS_NEST);\n this.isNested = true;\n }\n }\n else {\n this.element.classList.add(CLS_ACRDN_ROOT);\n }\n if (this.enableRtl) {\n this.add(this.element, CLS_RTL);\n }\n };\n Accordion.prototype.add = function (ele, val) {\n ele.classList.add(val);\n };\n Accordion.prototype.remove = function (ele, val) {\n ele.classList.remove(val);\n };\n /**\n * To initialize the control rendering\n *\n * @private\n * @returns {void}\n */\n Accordion.prototype.render = function () {\n this.initializeHeaderTemplate();\n this.initializeItemTemplate();\n this.initialize();\n this.renderControl();\n this.wireEvents();\n this.renderComplete();\n };\n Accordion.prototype.initialize = function () {\n var width = formatUnit(this.width);\n var height = formatUnit(this.height);\n setStyle(this.element, { 'width': width, 'height': height });\n if (isNOU(this.initExpand)) {\n this.initExpand = [];\n }\n if (!isNOU(this.expandedIndices) && this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n };\n Accordion.prototype.renderControl = function () {\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\n this.renderItems();\n this.initItemExpand();\n };\n Accordion.prototype.wireFocusEvents = function () {\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\n var item = acrdItem_1[_i];\n var headerEle = item.querySelector('.' + CLS_HEADER);\n if (item.childElementCount > 0 && headerEle) {\n EventHandler.clearEvents(headerEle);\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\n }\n }\n };\n Accordion.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n if (!isNOU(this.keyModule)) {\n this.keyModule.destroy();\n }\n };\n Accordion.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n if (!this.isNested && !this.isDestroy) {\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\n }\n if (!this.isNested) {\n this.keyModule = new KeyboardEvents(this.element, {\n keyAction: this.keyActionHandler.bind(this),\n keyConfigs: this.keyConfigs,\n eventName: 'keydown'\n });\n }\n };\n Accordion.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return templateCompiler(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n Accordion.prototype.initializeHeaderTemplate = function () {\n if (this.headerTemplate) {\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\n }\n };\n Accordion.prototype.initializeItemTemplate = function () {\n if (this.itemTemplate) {\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\n }\n };\n Accordion.prototype.getHeaderTemplate = function () {\n return this.headerTemplateFn;\n };\n Accordion.prototype.getItemTemplate = function () {\n return this.itemTemplateFn;\n };\n Accordion.prototype.focusIn = function (e) {\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\n };\n Accordion.prototype.focusOut = function (e) {\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\n };\n Accordion.prototype.ctrlTemplate = function () {\n this.ctrlTem = this.element.cloneNode(true);\n var innerEles;\n var rootEle = select('.' + CLS_CONTAINER, this.element);\n if (rootEle) {\n innerEles = rootEle.children;\n }\n else {\n innerEles = this.element.children;\n }\n var items = [];\n [].slice.call(innerEles).forEach(function (el) {\n items.push({\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\n });\n el.parentNode.removeChild(el);\n });\n if (rootEle) {\n this.element.removeChild(rootEle);\n }\n this.setProperties({ items: items }, true);\n };\n Accordion.prototype.toggleIconGenerate = function () {\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\n tglIcon.appendChild(hdrColIcon);\n return tglIcon;\n };\n Accordion.prototype.initItemExpand = function () {\n var len = this.initExpand.length;\n if (len === 0) {\n return;\n }\n if (this.expandMode === 'Single') {\n this.expandItem(true, this.initExpand[len - 1]);\n }\n else {\n for (var i = 0; i < len; i++) {\n this.expandItem(true, this.initExpand[parseInt(i.toString(), 10)]);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.renderItems = function () {\n var _this = this;\n var ele = this.element;\n var innerItem;\n var innerDataSourceItem;\n if (!isNOU(this.trgtEle)) {\n this.ctrlTemplate();\n }\n if (!isNOU(this.dataSource) && this.dataSource.length > 0) {\n this.dataSource.forEach(function (item, index) {\n innerDataSourceItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerDataSourceItem);\n if (innerDataSourceItem.childElementCount > 0) {\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n else {\n var items = this.items;\n if (ele && items.length > 0) {\n items.forEach(function (item, index) {\n innerItem = _this.renderInnerItem(item, index);\n ele.appendChild(innerItem);\n if (innerItem.childElementCount > 0) {\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n }\n });\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clickHandler = function (e) {\n var trgt = e.target;\n var items = this.getItems();\n var eventArgs = {};\n var tglIcon;\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\n if (acrdEle !== this.element) {\n return;\n }\n trgt.classList.add('e-target');\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\n acrdnHdr = acrdnItem.children[0];\n acrdnCtn = acrdnItem.children[1];\n }\n if (acrdnHdr) {\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\n }\n var acrdnCtnItem;\n if (acrdnHdr) {\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\n }\n else if (acrdnCtn) {\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\n }\n var index = this.getIndexByItem(acrdnItem);\n if (acrdnCtnItem) {\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\n }\n eventArgs.originalEvent = e;\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\n acrdnItem.appendChild(this.contentRendering(index));\n this.ariaAttrUpdate(acrdnItem);\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n else {\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\n var _this = this;\n var acrdActive = [];\n this.trigger('clicked', eventArgs);\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\n trgt.classList.remove('e-target');\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\n return;\n }\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\n [].slice.call(acrdnchild).forEach(function (el) {\n if (el.classList.contains(CLS_ACTIVE)) {\n acrdActive.push(el);\n }\n });\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\n if (acrdAniEle.length > 0) {\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\n var el = acrdAniEle_1[_i];\n acrdActive.push(el.parentElement);\n }\n }\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\n var sameHeader = false;\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n if (isNOU(acrdnCtn_1)) {\n return;\n }\n sameHeader = (expandState === acrdnItem);\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\n this.collapse(acrdnCtn_1);\n }\n else {\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\n acrdActive.forEach(function (el) {\n _this.collapse(select('.' + CLS_CONTENT, el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n }\n this.expand(acrdnCtn_1);\n }\n if (!isNOU(expandState) && !sameHeader) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n }\n };\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\n var clst;\n var clstItem = closest(trgt, '.' + CLS_ITEM);\n if (trgt === root) {\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\n }\n else if (trgt.classList.contains(CLS_HEADER)) {\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\n if (clstItem) {\n clst = select('.' + CLS_HEADER, clstItem);\n }\n }\n if (clst) {\n clst.focus();\n }\n };\n Accordion.prototype.keyActionHandler = function (e) {\n var trgt = e.target;\n var header = closest(e.target, CLS_HEADER);\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\n return;\n }\n var clst;\n var root = this.element;\n var content;\n switch (e.action) {\n case 'moveUp':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'moveDown':\n this.eleMoveFocus(e.action, root, trgt);\n break;\n case 'space':\n case 'enter':\n content = trgt.nextElementSibling;\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\n if (content.getAttribute('e-animate') !== 'true') {\n trgt.click();\n }\n }\n else {\n trgt.click();\n }\n e.preventDefault();\n break;\n case 'home':\n case 'end':\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\n clst.focus();\n e.preventDefault();\n break;\n }\n };\n Accordion.prototype.headerEleGenerate = function () {\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\n var ariaAttr = {\n 'tabindex': '0', 'role': 'button', 'aria-disabled': 'false', 'aria-expanded': 'false'\n };\n attributes(header, ariaAttr);\n return header;\n };\n Accordion.prototype.renderInnerItem = function (item, index) {\n var innerEle = this.createElement('div', {\n className: CLS_ITEM, id: item.id || getUniqueID('acrdn_item')\n });\n if (this.headerTemplate) {\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\n innerEle.appendChild(ctnEle);\n ctnEle.appendChild(this.toggleIconGenerate());\n this.add(innerEle, CLS_SLCT);\n return innerEle;\n }\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\n var header = item.header;\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\n header = SanitizeHtmlHelper.sanitize(item.header);\n }\n var ctnEle = this.headerEleGenerate();\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\n ctnEle.appendChild(hdrEle);\n ctnEle.appendChild(this.fetchElement(hdrEle, header, index));\n innerEle.appendChild(ctnEle);\n }\n var hdr = select('.' + CLS_HEADER, innerEle);\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\n if (this.initExpand.indexOf(index) === -1) {\n this.initExpand.push(index);\n }\n }\n if (item.cssClass) {\n addClass([innerEle], item.cssClass.split(' '));\n }\n if (item.disabled) {\n addClass([innerEle], CLS_DISABLE);\n }\n if (item.visible === false) {\n addClass([innerEle], CLS_ITEMHIDE);\n }\n if (item.iconCss) {\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\n hdrIcnEle.appendChild(icon);\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n hdr.appendChild(hdrIcnEle);\n innerEle.appendChild(hdr);\n }\n else {\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\n }\n }\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\n var hdrIcon = this.toggleIconGenerate();\n if (isNOU(hdr)) {\n hdr = this.headerEleGenerate();\n innerEle.appendChild(hdr);\n }\n hdr.appendChild(hdrIcon);\n this.add(innerEle, CLS_SLCT);\n }\n return innerEle;\n };\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\n var property = prop === 'content' ? item.content : item.header;\n var content = property;\n if (this.isAngular && !isNOU(content.elementRef)) {\n var data = content.elementRef.nativeElement.data;\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\n return true;\n }\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n return true;\n }\n };\n Accordion.prototype.fetchElement = function (ele, value, index) {\n var templateFn;\n var temString;\n try {\n if (document.querySelectorAll(value).length && value !== 'Button') {\n var eleVal = document.querySelector(value);\n temString = eleVal.outerHTML.trim();\n ele.appendChild(eleVal);\n eleVal.style.display = '';\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n catch (e) {\n if (typeof (value) === 'string') {\n ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;\n }\n else if (value instanceof (HTMLElement)) {\n ele.appendChild(value);\n if (this.trgtEle) {\n ele.firstElementChild.style.display = '';\n }\n }\n else {\n templateFn = templateCompiler(value);\n }\n }\n var tempArray;\n if (!isNOU(templateFn)) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n var templateProps = void 0;\n var templateName = void 0;\n if (ele.classList.contains(CLS_HEADERCTN)) {\n templateProps = this.element.id + index + '_header';\n templateName = 'header';\n }\n else if (ele.classList.contains(CLS_CTENT)) {\n templateProps = this.element.id + index + '_content';\n templateName = 'content';\n }\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\n }\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\n [].slice.call(tempArray).forEach(function (el) {\n if (!isNOU(el.tagName)) {\n el.style.display = '';\n }\n ele.appendChild(el);\n });\n }\n else if (ele.childElementCount === 0) {\n ele.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(value) : value;\n }\n if (!isNOU(temString)) {\n if (this.templateEle.indexOf(value) === -1) {\n this.templateEle.push(value);\n }\n }\n return ele;\n };\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\n var header = select('.' + CLS_HEADER, itemEle);\n var content = select('.' + CLS_CONTENT, itemEle);\n header.setAttribute('aria-controls', content.id);\n content.setAttribute('aria-labelledby', header.id);\n content.setAttribute('role', 'region');\n };\n Accordion.prototype.contentRendering = function (index) {\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\n attributes(itemcnt, { 'aria-hidden': 'true' });\n var ctn = this.createElement('div', { className: CLS_CTENT });\n if (!isNOU(this.dataSource) && this.dataSource.length > 0) {\n if (this.isReact) {\n this.renderReactTemplates();\n }\n append(this.getItemTemplate()(this.dataSource[parseInt(index.toString(), 10)], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\n itemcnt.appendChild(ctn);\n }\n else {\n var content = this.items[parseInt(index.toString(), 10)].content;\n if (this.enableHtmlSanitizer && typeof (content) === 'string') {\n content = SanitizeHtmlHelper.sanitize(content);\n }\n itemcnt.appendChild(this.fetchElement(ctn, content, index));\n }\n return itemcnt;\n };\n Accordion.prototype.expand = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\n var animation = {\n name: this.animation.expand.effect,\n duration: this.animation.expand.duration,\n timingFunction: this.animation.expand.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: true\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n icon.classList.add(CLS_TOGANIMATE);\n _this.expandedItemsPush(trgtItemEle);\n if (!isNOU(expandState)) {\n expandState.classList.remove(CLS_EXPANDSTATE);\n }\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\n if ((animation.name === 'None' && animationMode !== 'Enable') || (animationMode === 'Disable')) {\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\n var _this = this;\n if (ef === 'None' && animationMode === 'Enable') {\n ef = 'SlideDown';\n animate.name = 'SlideDown';\n }\n var height;\n this.lastActiveItemId = trgtItemEle.id;\n if (ef === 'SlideDown') {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n trgt.style.position = 'absolute';\n height = trgtItemEle.offsetHeight;\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\n trgtItemEle.style.maxHeight = '';\n };\n animate.progress = function () {\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\n };\n animate.end = function () {\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\n trgtItemEle.style.minHeight = '';\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n else {\n animate.begin = function () {\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\n };\n animate.end = function () {\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(trgt, CLS_CTNHIDE);\n this.add(trgtItemEle, CLS_SLCTED);\n this.add(icon, CLS_EXPANDICN);\n if (progress === 'end') {\n this.add(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'false');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'true' });\n icon.classList.remove(CLS_TOGANIMATE);\n this.trigger('expanded', eventArgs);\n }\n };\n Accordion.prototype.expandedItemsPush = function (item) {\n var index = this.getIndexByItem(item);\n if (this.expandedIndices.indexOf(index) === -1) {\n var temp = [].slice.call(this.expandedIndices);\n temp.push(index);\n this.setProperties({ expandedIndices: temp }, true);\n }\n };\n Accordion.prototype.getIndexByItem = function (item) {\n var itemEle = this.getItemElements();\n return [].slice.call(itemEle).indexOf(item);\n };\n Accordion.prototype.getItemElements = function () {\n var itemEle = [];\n var itemCollection = this.element.children;\n [].slice.call(itemCollection).forEach(function (el) {\n if (el.classList.contains(CLS_ITEM)) {\n itemEle.push(el);\n }\n });\n return itemEle;\n };\n Accordion.prototype.expandedItemsPop = function (item) {\n var index = this.getIndexByItem(item);\n var temp = [].slice.call(this.expandedIndices);\n temp.splice(temp.indexOf(index), 1);\n this.setProperties({ expandedIndices: temp }, true);\n };\n Accordion.prototype.collapse = function (trgt) {\n var _this = this;\n var items = this.getItems();\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\n return;\n }\n var animation = {\n name: this.animation.collapse.effect,\n duration: this.animation.collapse.duration,\n timingFunction: this.animation.collapse.easing\n };\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\n var eventArgs = {\n element: trgtItemEle,\n item: items[this.getIndexByItem(trgtItemEle)],\n index: this.getIndexByItem(trgtItemEle),\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\n isExpanded: false\n };\n this.trigger('expanding', eventArgs, function (expandArgs) {\n if (!expandArgs.cancel) {\n _this.expandedItemsPop(trgtItemEle);\n trgtItemEle.classList.remove(CLS_EXPANDSTATE);\n icon.classList.add(CLS_TOGANIMATE);\n if ((animation.name === 'None' && animationMode !== 'Enable') || (animationMode === 'Disable')) {\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\n }\n else {\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\n }\n }\n });\n };\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\n var _this = this;\n if (ef === 'None' && animationMode === 'Enable') {\n ef = 'SlideUp';\n animate.name = 'SlideUp';\n }\n var height;\n var trgtHeight;\n var itemHeight;\n var remain;\n this.lastActiveItemId = trgtItEl.id;\n if (ef === 'SlideUp') {\n animate.begin = function () {\n itemHeight = trgtItEl.offsetHeight;\n trgtItEl.style.minHeight = itemHeight + 'px';\n trgt.style.position = 'absolute';\n height = trgtItEl.offsetHeight;\n trgtHeight = trgt.offsetHeight;\n trgt.style.maxHeight = trgtHeight + 'px';\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.progress = function () {\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\n if (remain < itemHeight) {\n trgtItEl.style.minHeight = remain + 'px';\n }\n };\n animate.end = function () {\n trgt.style.display = 'none';\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n trgtItEl.style.minHeight = '';\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\n };\n }\n else {\n animate.begin = function () {\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\n };\n animate.end = function () {\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\n };\n }\n new Animation(animate).animate(trgt);\n };\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\n this.remove(icon, CLS_EXPANDICN);\n this.remove(trgtItemEle, CLS_SLCTED);\n if (progress === 'end') {\n this.add(trgt, CLS_CTNHIDE);\n icon.classList.remove(CLS_TOGANIMATE);\n this.remove(trgtItemEle, CLS_ACTIVE);\n trgt.setAttribute('aria-hidden', 'true');\n attributes(trgt.previousElementSibling, { 'aria-expanded': 'false' });\n this.trigger('expanded', eventArgs);\n }\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n Accordion.prototype.getModuleName = function () {\n return 'accordion';\n };\n Accordion.prototype.getItems = function () {\n var items;\n if (this.itemTemplate && this.headerTemplate) {\n items = this.dataSource;\n }\n else {\n items = this.items;\n }\n return items;\n };\n /**\n * Adds new item to the Accordion with the specified index of the Accordion.\n *\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\n * @param {number} index - Number value that determines where the item should be added.\n * By default, item is added at the last index if the index is not specified.\n * @returns {void}\n */\n Accordion.prototype.addItem = function (item, index) {\n var _this = this;\n var ele = this.element;\n var itemEle = this.getItemElements();\n var items = this.getItems();\n if (isNOU(index)) {\n index = items.length;\n }\n if (ele.childElementCount >= index) {\n var addItems = (item instanceof Array) ? item : [item];\n addItems.forEach(function (addItem, i) {\n var itemIndex = index + i;\n items.splice(itemIndex, 0, addItem);\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\n if (ele.childElementCount === itemIndex) {\n ele.appendChild(innerItemEle);\n }\n else {\n ele.insertBefore(innerItemEle, itemEle[parseInt(itemIndex.toString(), 10)]);\n }\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\n _this.expandedIndices = [];\n _this.expandedItemRefresh();\n if (addItem && addItem.expanded) {\n _this.expandItem(true, itemIndex);\n }\n });\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.expandedItemRefresh = function () {\n var _this = this;\n var itemEle = this.getItemElements();\n [].slice.call(itemEle).forEach(function (el) {\n if (el.classList.contains(CLS_SLCTED)) {\n _this.expandedItemsPush(el);\n }\n });\n };\n /**\n * Dynamically removes item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be removed.\n * @returns {void}.\n */\n Accordion.prototype.removeItem = function (index) {\n if (this.isReact || this.isAngular) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n this.clearAccordionTemplate(header, this.dataSource.length > 0 ? 'headerTemplate' : 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, this.dataSource.length > 0 ? 'itemTemplate' : 'content', CLS_CTENT);\n }\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n var items = this.getItems();\n if (isNOU(ele)) {\n return;\n }\n this.restoreContent(index);\n detach(ele);\n items.splice(index, 1);\n this.expandedIndices = [];\n this.expandedItemRefresh();\n };\n /**\n * Sets focus to the specified index item header in Accordion.\n *\n * @param {number} index - Number value that determines which item should be focused.\n * @returns {void}.\n */\n Accordion.prototype.select = function (index) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\n return;\n }\n ele.children[0].focus();\n };\n /**\n * Shows or hides the specified item from Accordion.\n *\n * @param {number} index - Number value that determines which item should be hidden/shown.\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\n * @returns {void}.\n */\n Accordion.prototype.hideItem = function (index, isHidden) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n if (isNOU(isHidden)) {\n isHidden = true;\n }\n if (isHidden) {\n this.add(ele, CLS_ITEMHIDE);\n }\n else {\n this.remove(ele, CLS_ITEMHIDE);\n }\n };\n /**\n * Enables/Disables the specified Accordion item.\n *\n * @param {number} index - Number value that determines which item should be enabled/disabled.\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\n * @returns {void}.\n */\n Accordion.prototype.enableItem = function (index, isEnable) {\n var itemEle = this.getItemElements();\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele)) {\n return;\n }\n var eleHeader = ele.firstElementChild;\n if (isEnable) {\n this.remove(ele, CLS_DISABLE);\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\n eleHeader.focus();\n }\n else {\n if (ele.classList.contains(CLS_ACTIVE)) {\n this.expandItem(false, index);\n this.eleMoveFocus('movedown', this.element, eleHeader);\n }\n this.add(ele, CLS_DISABLE);\n eleHeader.setAttribute('aria-disabled', 'true');\n eleHeader.removeAttribute('tabindex');\n }\n };\n /**\n * Expands/Collapses the specified Accordion item.\n *\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\n * @returns {void}.\n */\n Accordion.prototype.expandItem = function (isExpand, index) {\n var _this = this;\n var itemEle = this.getItemElements();\n if (isNOU(index)) {\n if (this.expandMode === 'Single' && isExpand) {\n var ele = itemEle[itemEle.length - 1];\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\n }\n else {\n var item = select('#' + this.lastActiveItemId, this.element);\n [].slice.call(itemEle).forEach(function (el) {\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\n el.classList.remove(CLS_EXPANDSTATE);\n });\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\n if (expandedItem) {\n expandedItem.classList.remove(CLS_EXPANDSTATE);\n }\n if (item) {\n item.classList.add(CLS_EXPANDSTATE);\n }\n }\n }\n else {\n var ele = itemEle[parseInt(index.toString(), 10)];\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\n return;\n }\n else {\n if (this.expandMode === 'Single') {\n this.expandItem(false);\n }\n this.itemExpand(isExpand, ele, index);\n }\n }\n };\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\n var ctn = ele.children[1];\n if (ele.classList.contains(CLS_DISABLE)) {\n return;\n }\n if (isNOU(ctn) && isExpand) {\n ctn = this.contentRendering(index);\n ele.appendChild(ctn);\n this.ariaAttrUpdate(ele);\n this.expand(ctn);\n }\n else if (!isNOU(ctn)) {\n if (isExpand) {\n this.expand(ctn);\n }\n else {\n this.collapse(ctn);\n }\n }\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.destroyItems = function () {\n this.restoreContent(null);\n if (this.isReact || this.isAngular || this.isVue) {\n this.clearTemplate();\n }\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\n detach(el);\n });\n };\n Accordion.prototype.restoreContent = function (index) {\n var ctnElePos;\n if (isNOU(index)) {\n ctnElePos = this.element;\n }\n else {\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[parseInt(index.toString(), 10)];\n }\n this.templateEle.forEach(function (eleStr) {\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\n }\n });\n };\n Accordion.prototype.updateItem = function (item, index) {\n if (!isNOU(item)) {\n var items = this.getItems();\n var itemObj = items[parseInt(index.toString(), 10)];\n items.splice(index, 1);\n this.restoreContent(index);\n var header = select('.' + CLS_HEADERCTN, item);\n var content = select('.' + CLS_CTENT, item);\n if (this.isReact || this.isAngular) {\n this.clearAccordionTemplate(header, 'header', CLS_HEADERCTN);\n this.clearAccordionTemplate(content, 'content', CLS_CTENT);\n }\n detach(item);\n this.addItem(itemObj, index);\n }\n };\n Accordion.prototype.setTemplate = function (template, toElement, index) {\n this.fetchElement(toElement, template, index);\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n Accordion.prototype.clearAccordionTemplate = function (templateEle, templateName, className) {\n if (this.registeredTemplate && this.registeredTemplate[\"\" + templateName]) {\n var registeredTemplates = this.registeredTemplate;\n for (var index = 0; index < registeredTemplates[\"\" + templateName].length; index++) {\n var registeredItem = registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)].rootNodes[0];\n var closestItem = closest(registeredItem, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle || isNOU(registeredItem.parentNode)) {\n this.clearTemplate([templateName], [registeredTemplates[\"\" + templateName][parseInt(index.toString(), 10)]]);\n break;\n }\n }\n }\n else if (this.portals && this.portals.length > 0) {\n var portals = this.portals;\n for (var index = 0; index < portals.length; index++) {\n var portalItem = portals[parseInt(index.toString(), 10)];\n var closestItem = closest(portalItem.containerInfo, '.' + className);\n if (!isNOU(closestItem) && closestItem === templateEle) {\n this.clearTemplate([templateName], index);\n break;\n }\n }\n }\n };\n Accordion.prototype.getPersistData = function () {\n var keyEntity = ['expandedIndices'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {AccordionModel} newProp - It contains the new value of data.\n * @param {AccordionModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\n var acrdn = this.element;\n var isRefresh = false;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'items':\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\n var changedProp = Object.keys(newProp.items);\n for (var j = 0; j < changedProp.length; j++) {\n var index = parseInt(Object.keys(newProp.items)[parseInt(j.toString(), 10)], 10);\n var property = Object.keys(newProp.items[parseInt(index.toString(), 10)]);\n for (var k = 0; k < property.length; k++) {\n var item = selectAll('.' + CLS_ITEM, this.element)[parseInt(index.toString(), 10)];\n var oldVal = Object(oldProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var newVal = Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]];\n var temp = property[parseInt(k.toString(), 10)];\n var content = select('.' + CLS_CTENT, item);\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\n this.updateItem(item, index);\n }\n if (property[parseInt(k.toString(), 10)] === 'cssClass' && !isNOU(item)) {\n if (oldVal) {\n removeClass([item], oldVal.split(' '));\n }\n if (newVal) {\n addClass([item], newVal.split(' '));\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'visible' && !isNOU(item)) {\n if (Object(newProp.items[parseInt(index.toString(), 10)])[\"\" + property[parseInt(k.toString(), 10)]] === false) {\n item.classList.add(CLS_ITEMHIDE);\n }\n else {\n item.classList.remove(CLS_ITEMHIDE);\n }\n }\n if (property[parseInt(k.toString(), 10)] === 'disabled' && !isNOU(item)) {\n this.enableItem(index, !newVal);\n }\n if (property.indexOf('header') < 0 && property[parseInt(k.toString(), 10)] === 'content'\n && !isNOU(item) && item.children.length === 2) {\n if (typeof newVal === 'function') {\n if (this.isAngular || this.isReact) {\n this.clearAccordionTemplate(content, property[parseInt(k.toString(), 10)], CLS_CTENT);\n }\n var activeContent = item.querySelector('.' + CLS_CTENT);\n activeContent.innerHTML = '';\n this.setTemplate(newVal, activeContent, index);\n }\n else {\n if (item.classList.contains(CLS_SLCTED)) {\n this.expandItem(false, index);\n }\n detach(item.querySelector('.' + CLS_CONTENT));\n }\n }\n }\n }\n }\n else {\n isRefresh = true;\n }\n break;\n case 'dataSource':\n case 'expandedIndices':\n if (this.expandedIndices === null) {\n this.expandedIndices = [];\n }\n isRefresh = true;\n break;\n case 'headerTemplate':\n this.initializeHeaderTemplate();\n isRefresh = true;\n break;\n case 'itemTemplate':\n this.initializeItemTemplate();\n isRefresh = true;\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.add(acrdn, CLS_RTL);\n }\n else {\n this.remove(acrdn, CLS_RTL);\n }\n break;\n case 'height':\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'width':\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'expandMode':\n if (newProp.expandMode === 'Single' && !isNOU(this.expandedIndices) && this.expandedIndices.length > 1) {\n this.expandItem(false);\n }\n break;\n }\n }\n if (isRefresh) {\n this.initExpand = [];\n if (!isNOU(this.expandedIndices) && this.expandedIndices.length > 0) {\n this.initExpand = this.expandedIndices;\n }\n this.destroyItems();\n this.renderItems();\n this.initItemExpand();\n }\n };\n __decorate([\n Collection([], AccordionItem)\n ], Accordion.prototype, \"items\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"dataSource\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property()\n ], Accordion.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('100%')\n ], Accordion.prototype, \"width\", void 0);\n __decorate([\n Property('auto')\n ], Accordion.prototype, \"height\", void 0);\n __decorate([\n Property([])\n ], Accordion.prototype, \"expandedIndices\", void 0);\n __decorate([\n Property('Multiple')\n ], Accordion.prototype, \"expandMode\", void 0);\n __decorate([\n Property(true)\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, AccordionAnimationSettings)\n ], Accordion.prototype, \"animation\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"clicked\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanding\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"expanded\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Accordion.prototype, \"destroyed\", void 0);\n Accordion = __decorate([\n NotifyPropertyChanges\n ], Accordion);\n return Accordion;\n}(Component));\nexport { Accordion };\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/bicep/bicep.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"bicep\",\n extensions: [\".bicep\"],\n aliases: [\"Bicep\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/bicep/bicep\"], resolve, reject);\n });\n } else {\n return import(\"./bicep.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const EDITOR_MODEL_DEFAULTS = {\n tabSize: 4,\n indentSize: 4,\n insertSpaces: true,\n detectIndentation: true,\n trimAutoWhitespace: true,\n largeFileOptimizations: true,\n bracketPairColorizationOptions: {\n enabled: true,\n independentColorPoolPerBracketType: false,\n },\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * The type of the `IEditor`.\n */\nexport const EditorType = {\n ICodeEditor: 'vs.editor.ICodeEditor',\n IDiffEditor: 'vs.editor.IDiffEditor'\n};\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createTrustedTypesPolicy } from '../../../../base/browser/trustedTypes.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, derived, observableFromEvent, observableSignalFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport './ghostText.css';\nimport { applyFontInfo } from '../../../browser/config/domFontInfo.js';\nimport { EditorFontLigatures } from '../../../common/config/editorOptions.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { StringBuilder } from '../../../common/core/stringBuilder.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { InjectedTextCursorStops } from '../../../common/model.js';\nimport { LineTokens } from '../../../common/tokens/lineTokens.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../../common/viewLayout/viewLineRenderer.js';\nimport { GhostTextReplacement } from './ghostText.js';\nimport { ColumnRange, applyObservableDecorations } from './utils.js';\nexport const GHOST_TEXT_DESCRIPTION = 'ghost-text';\nlet GhostTextWidget = class GhostTextWidget extends Disposable {\n constructor(editor, model, languageService) {\n super();\n this.editor = editor;\n this.model = model;\n this.languageService = languageService;\n this.isDisposed = observableValue(this, false);\n this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => /** @description editor.model */ this.editor.getModel());\n this.uiState = derived(this, reader => {\n if (this.isDisposed.read(reader)) {\n return undefined;\n }\n const textModel = this.currentTextModel.read(reader);\n if (textModel !== this.model.targetTextModel.read(reader)) {\n return undefined;\n }\n const ghostText = this.model.ghostText.read(reader);\n if (!ghostText) {\n return undefined;\n }\n const replacedRange = ghostText instanceof GhostTextReplacement ? ghostText.columnRange : undefined;\n const inlineTexts = [];\n const additionalLines = [];\n function addToAdditionalLines(lines, className) {\n if (additionalLines.length > 0) {\n const lastLine = additionalLines[additionalLines.length - 1];\n if (className) {\n lastLine.decorations.push(new LineDecoration(lastLine.content.length + 1, lastLine.content.length + 1 + lines[0].length, className, 0 /* InlineDecorationType.Regular */));\n }\n lastLine.content += lines[0];\n lines = lines.slice(1);\n }\n for (const line of lines) {\n additionalLines.push({\n content: line,\n decorations: className ? [new LineDecoration(1, line.length + 1, className, 0 /* InlineDecorationType.Regular */)] : []\n });\n }\n }\n const textBufferLine = textModel.getLineContent(ghostText.lineNumber);\n let hiddenTextStartColumn = undefined;\n let lastIdx = 0;\n for (const part of ghostText.parts) {\n let lines = part.lines;\n if (hiddenTextStartColumn === undefined) {\n inlineTexts.push({\n column: part.column,\n text: lines[0],\n preview: part.preview,\n });\n lines = lines.slice(1);\n }\n else {\n addToAdditionalLines([textBufferLine.substring(lastIdx, part.column - 1)], undefined);\n }\n if (lines.length > 0) {\n addToAdditionalLines(lines, GHOST_TEXT_DESCRIPTION);\n if (hiddenTextStartColumn === undefined && part.column <= textBufferLine.length) {\n hiddenTextStartColumn = part.column;\n }\n }\n lastIdx = part.column - 1;\n }\n if (hiddenTextStartColumn !== undefined) {\n addToAdditionalLines([textBufferLine.substring(lastIdx)], undefined);\n }\n const hiddenRange = hiddenTextStartColumn !== undefined ? new ColumnRange(hiddenTextStartColumn, textBufferLine.length + 1) : undefined;\n return {\n replacedRange,\n inlineTexts,\n additionalLines,\n hiddenRange,\n lineNumber: ghostText.lineNumber,\n additionalReservedLineCount: this.model.minReservedLineCount.read(reader),\n targetTextModel: textModel,\n };\n });\n this.decorations = derived(this, reader => {\n const uiState = this.uiState.read(reader);\n if (!uiState) {\n return [];\n }\n const decorations = [];\n if (uiState.replacedRange) {\n decorations.push({\n range: uiState.replacedRange.toRange(uiState.lineNumber),\n options: { inlineClassName: 'inline-completion-text-to-replace', description: 'GhostTextReplacement' }\n });\n }\n if (uiState.hiddenRange) {\n decorations.push({\n range: uiState.hiddenRange.toRange(uiState.lineNumber),\n options: { inlineClassName: 'ghost-text-hidden', description: 'ghost-text-hidden', }\n });\n }\n for (const p of uiState.inlineTexts) {\n decorations.push({\n range: Range.fromPositions(new Position(uiState.lineNumber, p.column)),\n options: {\n description: GHOST_TEXT_DESCRIPTION,\n after: { content: p.text, inlineClassName: p.preview ? 'ghost-text-decoration-preview' : 'ghost-text-decoration', cursorStops: InjectedTextCursorStops.Left },\n showIfCollapsed: true,\n }\n });\n }\n return decorations;\n });\n this.additionalLinesWidget = this._register(new AdditionalLinesWidget(this.editor, this.languageService.languageIdCodec, derived(reader => {\n /** @description lines */\n const uiState = this.uiState.read(reader);\n return uiState ? {\n lineNumber: uiState.lineNumber,\n additionalLines: uiState.additionalLines,\n minReservedLineCount: uiState.additionalReservedLineCount,\n targetTextModel: uiState.targetTextModel,\n } : undefined;\n })));\n this._register(toDisposable(() => { this.isDisposed.set(true, undefined); }));\n this._register(applyObservableDecorations(this.editor, this.decorations));\n }\n ownsViewZone(viewZoneId) {\n return this.additionalLinesWidget.viewZoneId === viewZoneId;\n }\n};\nGhostTextWidget = __decorate([\n __param(2, ILanguageService)\n], GhostTextWidget);\nexport { GhostTextWidget };\nexport class AdditionalLinesWidget extends Disposable {\n get viewZoneId() { return this._viewZoneId; }\n constructor(editor, languageIdCodec, lines) {\n super();\n this.editor = editor;\n this.languageIdCodec = languageIdCodec;\n this.lines = lines;\n this._viewZoneId = undefined;\n this.editorOptionsChanged = observableSignalFromEvent('editorOptionChanged', Event.filter(this.editor.onDidChangeConfiguration, e => e.hasChanged(33 /* EditorOption.disableMonospaceOptimizations */)\n || e.hasChanged(117 /* EditorOption.stopRenderingLineAfter */)\n || e.hasChanged(99 /* EditorOption.renderWhitespace */)\n || e.hasChanged(94 /* EditorOption.renderControlCharacters */)\n || e.hasChanged(51 /* EditorOption.fontLigatures */)\n || e.hasChanged(50 /* EditorOption.fontInfo */)\n || e.hasChanged(67 /* EditorOption.lineHeight */)));\n this._register(autorun(reader => {\n /** @description update view zone */\n const lines = this.lines.read(reader);\n this.editorOptionsChanged.read(reader);\n if (lines) {\n this.updateLines(lines.lineNumber, lines.additionalLines, lines.minReservedLineCount);\n }\n else {\n this.clear();\n }\n }));\n }\n dispose() {\n super.dispose();\n this.clear();\n }\n clear() {\n this.editor.changeViewZones((changeAccessor) => {\n if (this._viewZoneId) {\n changeAccessor.removeZone(this._viewZoneId);\n this._viewZoneId = undefined;\n }\n });\n }\n updateLines(lineNumber, additionalLines, minReservedLineCount) {\n const textModel = this.editor.getModel();\n if (!textModel) {\n return;\n }\n const { tabSize } = textModel.getOptions();\n this.editor.changeViewZones((changeAccessor) => {\n if (this._viewZoneId) {\n changeAccessor.removeZone(this._viewZoneId);\n this._viewZoneId = undefined;\n }\n const heightInLines = Math.max(additionalLines.length, minReservedLineCount);\n if (heightInLines > 0) {\n const domNode = document.createElement('div');\n renderLines(domNode, tabSize, additionalLines, this.editor.getOptions(), this.languageIdCodec);\n this._viewZoneId = changeAccessor.addZone({\n afterLineNumber: lineNumber,\n heightInLines: heightInLines,\n domNode,\n afterColumnAffinity: 1 /* PositionAffinity.Right */\n });\n }\n });\n }\n}\nfunction renderLines(domNode, tabSize, lines, opts, languageIdCodec) {\n const disableMonospaceOptimizations = opts.get(33 /* EditorOption.disableMonospaceOptimizations */);\n const stopRenderingLineAfter = opts.get(117 /* EditorOption.stopRenderingLineAfter */);\n // To avoid visual confusion, we don't want to render visible whitespace\n const renderWhitespace = 'none';\n const renderControlCharacters = opts.get(94 /* EditorOption.renderControlCharacters */);\n const fontLigatures = opts.get(51 /* EditorOption.fontLigatures */);\n const fontInfo = opts.get(50 /* EditorOption.fontInfo */);\n const lineHeight = opts.get(67 /* EditorOption.lineHeight */);\n const sb = new StringBuilder(10000);\n sb.appendString('
');\n for (let i = 0, len = lines.length; i < len; i++) {\n const lineData = lines[i];\n const line = lineData.content;\n sb.appendString('
');\n const isBasicASCII = strings.isBasicASCII(line);\n const containsRTL = strings.containsRTL(line);\n const lineTokens = LineTokens.createEmpty(line, languageIdCodec);\n renderViewLine(new RenderLineInput((fontInfo.isMonospace && !disableMonospaceOptimizations), fontInfo.canUseHalfwidthRightwardsArrow, line, false, isBasicASCII, containsRTL, 0, lineTokens, lineData.decorations, tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures !== EditorFontLigatures.OFF, null), sb);\n sb.appendString('
');\n }\n sb.appendString('
');\n applyFontInfo(domNode, fontInfo);\n const html = sb.build();\n const trustedhtml = ttPolicy ? ttPolicy.createHTML(html) : html;\n domNode.innerHTML = trustedhtml;\n}\nexport const ttPolicy = createTrustedTypesPolicy('editorGhostText', { createHTML: value => value });\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorCommand, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { localize } from '../../../../nls.js';\nconst IEditorCancellationTokens = createDecorator('IEditorCancelService');\nconst ctxCancellableOperation = new RawContextKey('cancellableOperation', false, localize('cancellableOperation', 'Whether the editor runs a cancellable operation, e.g. like \\'Peek References\\''));\nregisterSingleton(IEditorCancellationTokens, class {\n constructor() {\n this._tokens = new WeakMap();\n }\n add(editor, cts) {\n let data = this._tokens.get(editor);\n if (!data) {\n data = editor.invokeWithinContext(accessor => {\n const key = ctxCancellableOperation.bindTo(accessor.get(IContextKeyService));\n const tokens = new LinkedList();\n return { key, tokens };\n });\n this._tokens.set(editor, data);\n }\n let removeFn;\n data.key.set(true);\n removeFn = data.tokens.push(cts);\n return () => {\n // remove w/o cancellation\n if (removeFn) {\n removeFn();\n data.key.set(!data.tokens.isEmpty());\n removeFn = undefined;\n }\n };\n }\n cancel(editor) {\n const data = this._tokens.get(editor);\n if (!data) {\n return;\n }\n // remove with cancellation\n const cts = data.tokens.pop();\n if (cts) {\n cts.cancel();\n data.key.set(!data.tokens.isEmpty());\n }\n }\n}, 1 /* InstantiationType.Delayed */);\nexport class EditorKeybindingCancellationTokenSource extends CancellationTokenSource {\n constructor(editor, parent) {\n super(parent);\n this.editor = editor;\n this._unregister = editor.invokeWithinContext(accessor => accessor.get(IEditorCancellationTokens).add(editor, this));\n }\n dispose() {\n this._unregister();\n super.dispose();\n }\n}\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.cancelOperation',\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */\n },\n precondition: ctxCancellableOperation\n });\n }\n runEditorCommand(accessor, editor) {\n accessor.get(IEditorCancellationTokens).cancel(editor);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../../common/core/range.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { EditorKeybindingCancellationTokenSource } from './keybindingCancellation.js';\nexport class EditorState {\n constructor(editor, flags) {\n this.flags = flags;\n if ((this.flags & 1 /* CodeEditorStateFlag.Value */) !== 0) {\n const model = editor.getModel();\n this.modelVersionId = model ? strings.format('{0}#{1}', model.uri.toString(), model.getVersionId()) : null;\n }\n else {\n this.modelVersionId = null;\n }\n if ((this.flags & 4 /* CodeEditorStateFlag.Position */) !== 0) {\n this.position = editor.getPosition();\n }\n else {\n this.position = null;\n }\n if ((this.flags & 2 /* CodeEditorStateFlag.Selection */) !== 0) {\n this.selection = editor.getSelection();\n }\n else {\n this.selection = null;\n }\n if ((this.flags & 8 /* CodeEditorStateFlag.Scroll */) !== 0) {\n this.scrollLeft = editor.getScrollLeft();\n this.scrollTop = editor.getScrollTop();\n }\n else {\n this.scrollLeft = -1;\n this.scrollTop = -1;\n }\n }\n _equals(other) {\n if (!(other instanceof EditorState)) {\n return false;\n }\n const state = other;\n if (this.modelVersionId !== state.modelVersionId) {\n return false;\n }\n if (this.scrollLeft !== state.scrollLeft || this.scrollTop !== state.scrollTop) {\n return false;\n }\n if (!this.position && state.position || this.position && !state.position || this.position && state.position && !this.position.equals(state.position)) {\n return false;\n }\n if (!this.selection && state.selection || this.selection && !state.selection || this.selection && state.selection && !this.selection.equalsRange(state.selection)) {\n return false;\n }\n return true;\n }\n validate(editor) {\n return this._equals(new EditorState(editor, this.flags));\n }\n}\n/**\n * A cancellation token source that cancels when the editor changes as expressed\n * by the provided flags\n * @param range If provided, changes in position and selection within this range will not trigger cancellation\n */\nexport class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource {\n constructor(editor, flags, range, parent) {\n super(editor, parent);\n this._listener = new DisposableStore();\n if (flags & 4 /* CodeEditorStateFlag.Position */) {\n this._listener.add(editor.onDidChangeCursorPosition(e => {\n if (!range || !Range.containsPosition(range, e.position)) {\n this.cancel();\n }\n }));\n }\n if (flags & 2 /* CodeEditorStateFlag.Selection */) {\n this._listener.add(editor.onDidChangeCursorSelection(e => {\n if (!range || !Range.containsRange(range, e.selection)) {\n this.cancel();\n }\n }));\n }\n if (flags & 8 /* CodeEditorStateFlag.Scroll */) {\n this._listener.add(editor.onDidScrollChange(_ => this.cancel()));\n }\n if (flags & 1 /* CodeEditorStateFlag.Value */) {\n this._listener.add(editor.onDidChangeModel(_ => this.cancel()));\n this._listener.add(editor.onDidChangeModelContent(_ => this.cancel()));\n }\n }\n dispose() {\n this._listener.dispose();\n super.dispose();\n }\n}\n/**\n * A cancellation token source that cancels when the provided model changes\n */\nexport class TextModelCancellationTokenSource extends CancellationTokenSource {\n constructor(model, parent) {\n super(parent);\n this._listener = model.onDidChangeContent(() => this.cancel());\n }\n dispose() {\n this._listener.dispose();\n super.dispose();\n }\n}\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ThrottledDelayer } from '../../../common/async.js';\nimport { Event, PauseableEmitter } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { stringify } from '../../../common/marshalling.js';\nimport { isObject, isUndefinedOrNull } from '../../../common/types.js';\nexport var StorageHint;\n(function (StorageHint) {\n // A hint to the storage that the storage\n // does not exist on disk yet. This allows\n // the storage library to improve startup\n // time by not checking the storage for data.\n StorageHint[StorageHint[\"STORAGE_DOES_NOT_EXIST\"] = 0] = \"STORAGE_DOES_NOT_EXIST\";\n // A hint to the storage that the storage\n // is backed by an in-memory storage.\n StorageHint[StorageHint[\"STORAGE_IN_MEMORY\"] = 1] = \"STORAGE_IN_MEMORY\";\n})(StorageHint || (StorageHint = {}));\nexport var StorageState;\n(function (StorageState) {\n StorageState[StorageState[\"None\"] = 0] = \"None\";\n StorageState[StorageState[\"Initialized\"] = 1] = \"Initialized\";\n StorageState[StorageState[\"Closed\"] = 2] = \"Closed\";\n})(StorageState || (StorageState = {}));\nexport class Storage extends Disposable {\n constructor(database, options = Object.create(null)) {\n super();\n this.database = database;\n this.options = options;\n this._onDidChangeStorage = this._register(new PauseableEmitter());\n this.onDidChangeStorage = this._onDidChangeStorage.event;\n this.state = StorageState.None;\n this.cache = new Map();\n this.flushDelayer = this._register(new ThrottledDelayer(Storage.DEFAULT_FLUSH_DELAY));\n this.pendingDeletes = new Set();\n this.pendingInserts = new Map();\n this.whenFlushedCallbacks = [];\n this.registerListeners();\n }\n registerListeners() {\n this._register(this.database.onDidChangeItemsExternal(e => this.onDidChangeItemsExternal(e)));\n }\n onDidChangeItemsExternal(e) {\n var _a, _b;\n this._onDidChangeStorage.pause();\n try {\n // items that change external require us to update our\n // caches with the values. we just accept the value and\n // emit an event if there is a change.\n (_a = e.changed) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => this.acceptExternal(key, value));\n (_b = e.deleted) === null || _b === void 0 ? void 0 : _b.forEach(key => this.acceptExternal(key, undefined));\n }\n finally {\n this._onDidChangeStorage.resume();\n }\n }\n acceptExternal(key, value) {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n let changed = false;\n // Item got removed, check for deletion\n if (isUndefinedOrNull(value)) {\n changed = this.cache.delete(key);\n }\n // Item got updated, check for change\n else {\n const currentValue = this.cache.get(key);\n if (currentValue !== value) {\n this.cache.set(key, value);\n changed = true;\n }\n }\n // Signal to outside listeners\n if (changed) {\n this._onDidChangeStorage.fire({ key, external: true });\n }\n }\n get(key, fallbackValue) {\n const value = this.cache.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return value;\n }\n getBoolean(key, fallbackValue) {\n const value = this.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return value === 'true';\n }\n getNumber(key, fallbackValue) {\n const value = this.get(key);\n if (isUndefinedOrNull(value)) {\n return fallbackValue;\n }\n return parseInt(value, 10);\n }\n async set(key, value, external = false) {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n // We remove the key for undefined/null values\n if (isUndefinedOrNull(value)) {\n return this.delete(key, external);\n }\n // Otherwise, convert to String and store\n const valueStr = isObject(value) || Array.isArray(value) ? stringify(value) : String(value);\n // Return early if value already set\n const currentValue = this.cache.get(key);\n if (currentValue === valueStr) {\n return;\n }\n // Update in cache and pending\n this.cache.set(key, valueStr);\n this.pendingInserts.set(key, valueStr);\n this.pendingDeletes.delete(key);\n // Event\n this._onDidChangeStorage.fire({ key, external });\n // Accumulate work by scheduling after timeout\n return this.doFlush();\n }\n async delete(key, external = false) {\n if (this.state === StorageState.Closed) {\n return; // Return early if we are already closed\n }\n // Remove from cache and add to pending\n const wasDeleted = this.cache.delete(key);\n if (!wasDeleted) {\n return; // Return early if value already deleted\n }\n if (!this.pendingDeletes.has(key)) {\n this.pendingDeletes.add(key);\n }\n this.pendingInserts.delete(key);\n // Event\n this._onDidChangeStorage.fire({ key, external });\n // Accumulate work by scheduling after timeout\n return this.doFlush();\n }\n get hasPending() {\n return this.pendingInserts.size > 0 || this.pendingDeletes.size > 0;\n }\n async flushPending() {\n if (!this.hasPending) {\n return; // return early if nothing to do\n }\n // Get pending data\n const updateRequest = { insert: this.pendingInserts, delete: this.pendingDeletes };\n // Reset pending data for next run\n this.pendingDeletes = new Set();\n this.pendingInserts = new Map();\n // Update in storage and release any\n // waiters we have once done\n return this.database.updateItems(updateRequest).finally(() => {\n var _a;\n if (!this.hasPending) {\n while (this.whenFlushedCallbacks.length) {\n (_a = this.whenFlushedCallbacks.pop()) === null || _a === void 0 ? void 0 : _a();\n }\n }\n });\n }\n async doFlush(delay) {\n if (this.options.hint === StorageHint.STORAGE_IN_MEMORY) {\n return this.flushPending(); // return early if in-memory\n }\n return this.flushDelayer.trigger(() => this.flushPending(), delay);\n }\n}\nStorage.DEFAULT_FLUSH_DELAY = 100;\nexport class InMemoryStorageDatabase {\n constructor() {\n this.onDidChangeItemsExternal = Event.None;\n this.items = new Map();\n }\n async updateItems(request) {\n var _a, _b;\n (_a = request.insert) === null || _a === void 0 ? void 0 : _a.forEach((value, key) => this.items.set(key, value));\n (_b = request.delete) === null || _b === void 0 ? void 0 : _b.forEach(key => this.items.delete(key));\n }\n}\n","import { Emitter, Event, PauseableEmitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { isUndefinedOrNull } from '../../../base/common/types.js';\nimport { InMemoryStorageDatabase, Storage, StorageHint } from '../../../base/parts/storage/common/storage.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const TARGET_KEY = '__$__targetStorageMarker';\nexport const IStorageService = createDecorator('storageService');\nexport var WillSaveStateReason;\n(function (WillSaveStateReason) {\n /**\n * No specific reason to save state.\n */\n WillSaveStateReason[WillSaveStateReason[\"NONE\"] = 0] = \"NONE\";\n /**\n * A hint that the workbench is about to shutdown.\n */\n WillSaveStateReason[WillSaveStateReason[\"SHUTDOWN\"] = 1] = \"SHUTDOWN\";\n})(WillSaveStateReason || (WillSaveStateReason = {}));\nexport function loadKeyTargets(storage) {\n const keysRaw = storage.get(TARGET_KEY);\n if (keysRaw) {\n try {\n return JSON.parse(keysRaw);\n }\n catch (error) {\n // Fail gracefully\n }\n }\n return Object.create(null);\n}\nexport class AbstractStorageService extends Disposable {\n constructor(options = { flushInterval: AbstractStorageService.DEFAULT_FLUSH_INTERVAL }) {\n super();\n this.options = options;\n this._onDidChangeValue = this._register(new PauseableEmitter());\n this._onDidChangeTarget = this._register(new PauseableEmitter());\n this._onWillSaveState = this._register(new Emitter());\n this.onWillSaveState = this._onWillSaveState.event;\n this._workspaceKeyTargets = undefined;\n this._profileKeyTargets = undefined;\n this._applicationKeyTargets = undefined;\n }\n onDidChangeValue(scope, key, disposable) {\n return Event.filter(this._onDidChangeValue.event, e => e.scope === scope && (key === undefined || e.key === key), disposable);\n }\n emitDidChangeValue(scope, event) {\n const { key, external } = event;\n // Specially handle `TARGET_KEY`\n if (key === TARGET_KEY) {\n // Clear our cached version which is now out of date\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n this._applicationKeyTargets = undefined;\n break;\n case 0 /* StorageScope.PROFILE */:\n this._profileKeyTargets = undefined;\n break;\n case 1 /* StorageScope.WORKSPACE */:\n this._workspaceKeyTargets = undefined;\n break;\n }\n // Emit as `didChangeTarget` event\n this._onDidChangeTarget.fire({ scope });\n }\n // Emit any other key to outside\n else {\n this._onDidChangeValue.fire({ scope, key, target: this.getKeyTargets(scope)[key], external });\n }\n }\n get(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.get(key, fallbackValue);\n }\n getBoolean(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getBoolean(key, fallbackValue);\n }\n getNumber(key, scope, fallbackValue) {\n var _a;\n return (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.getNumber(key, fallbackValue);\n }\n store(key, value, scope, target, external = false) {\n // We remove the key for undefined/null values\n if (isUndefinedOrNull(value)) {\n this.remove(key, scope, external);\n return;\n }\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, target);\n // Store actual value\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(key, value, external);\n });\n }\n remove(key, scope, external = false) {\n // Update our datastructures but send events only after\n this.withPausedEmitters(() => {\n var _a;\n // Update key-target map\n this.updateKeyTarget(key, scope, undefined);\n // Remove actual key\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.delete(key, external);\n });\n }\n withPausedEmitters(fn) {\n // Pause emitters\n this._onDidChangeValue.pause();\n this._onDidChangeTarget.pause();\n try {\n fn();\n }\n finally {\n // Resume emitters\n this._onDidChangeValue.resume();\n this._onDidChangeTarget.resume();\n }\n }\n updateKeyTarget(key, scope, target, external = false) {\n var _a, _b;\n // Add\n const keyTargets = this.getKeyTargets(scope);\n if (typeof target === 'number') {\n if (keyTargets[key] !== target) {\n keyTargets[key] = target;\n (_a = this.getStorage(scope)) === null || _a === void 0 ? void 0 : _a.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n }\n }\n // Remove\n else {\n if (typeof keyTargets[key] === 'number') {\n delete keyTargets[key];\n (_b = this.getStorage(scope)) === null || _b === void 0 ? void 0 : _b.set(TARGET_KEY, JSON.stringify(keyTargets), external);\n }\n }\n }\n get workspaceKeyTargets() {\n if (!this._workspaceKeyTargets) {\n this._workspaceKeyTargets = this.loadKeyTargets(1 /* StorageScope.WORKSPACE */);\n }\n return this._workspaceKeyTargets;\n }\n get profileKeyTargets() {\n if (!this._profileKeyTargets) {\n this._profileKeyTargets = this.loadKeyTargets(0 /* StorageScope.PROFILE */);\n }\n return this._profileKeyTargets;\n }\n get applicationKeyTargets() {\n if (!this._applicationKeyTargets) {\n this._applicationKeyTargets = this.loadKeyTargets(-1 /* StorageScope.APPLICATION */);\n }\n return this._applicationKeyTargets;\n }\n getKeyTargets(scope) {\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n return this.applicationKeyTargets;\n case 0 /* StorageScope.PROFILE */:\n return this.profileKeyTargets;\n default:\n return this.workspaceKeyTargets;\n }\n }\n loadKeyTargets(scope) {\n const storage = this.getStorage(scope);\n return storage ? loadKeyTargets(storage) : Object.create(null);\n }\n}\nAbstractStorageService.DEFAULT_FLUSH_INTERVAL = 60 * 1000; // every minute\nexport class InMemoryStorageService extends AbstractStorageService {\n constructor() {\n super();\n this.applicationStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this.profileStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this.workspaceStorage = this._register(new Storage(new InMemoryStorageDatabase(), { hint: StorageHint.STORAGE_IN_MEMORY }));\n this._register(this.workspaceStorage.onDidChangeStorage(e => this.emitDidChangeValue(1 /* StorageScope.WORKSPACE */, e)));\n this._register(this.profileStorage.onDidChangeStorage(e => this.emitDidChangeValue(0 /* StorageScope.PROFILE */, e)));\n this._register(this.applicationStorage.onDidChangeStorage(e => this.emitDidChangeValue(-1 /* StorageScope.APPLICATION */, e)));\n }\n getStorage(scope) {\n switch (scope) {\n case -1 /* StorageScope.APPLICATION */:\n return this.applicationStorage;\n case 0 /* StorageScope.PROFILE */:\n return this.profileStorage;\n default:\n return this.workspaceStorage;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from './window.js';\nimport { onUnexpectedError } from '../common/errors.js';\nexport function createTrustedTypesPolicy(policyName, policyOptions) {\n var _a;\n const monacoEnvironment = globalThis.MonacoEnvironment;\n if (monacoEnvironment === null || monacoEnvironment === void 0 ? void 0 : monacoEnvironment.createTrustedTypesPolicy) {\n try {\n return monacoEnvironment.createTrustedTypesPolicy(policyName, policyOptions);\n }\n catch (err) {\n onUnexpectedError(err);\n return undefined;\n }\n }\n try {\n return (_a = mainWindow.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy(policyName, policyOptions);\n }\n catch (err) {\n onUnexpectedError(err);\n return undefined;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isIOS, isLinux, isMacintosh, isMobile, isWeb, isWindows } from '../../../base/common/platform.js';\nimport { localize } from '../../../nls.js';\nimport { RawContextKey } from './contextkey.js';\nexport const IsMacContext = new RawContextKey('isMac', isMacintosh, localize('isMac', \"Whether the operating system is macOS\"));\nexport const IsLinuxContext = new RawContextKey('isLinux', isLinux, localize('isLinux', \"Whether the operating system is Linux\"));\nexport const IsWindowsContext = new RawContextKey('isWindows', isWindows, localize('isWindows', \"Whether the operating system is Windows\"));\nexport const IsWebContext = new RawContextKey('isWeb', isWeb, localize('isWeb', \"Whether the platform is a web browser\"));\nexport const IsMacNativeContext = new RawContextKey('isMacNative', isMacintosh && !isWeb, localize('isMacNative', \"Whether the operating system is macOS on a non-browser platform\"));\nexport const IsIOSContext = new RawContextKey('isIOS', isIOS, localize('isIOS', \"Whether the operating system is iOS\"));\nexport const IsMobileContext = new RawContextKey('isMobile', isMobile, localize('isMobile', \"Whether the platform is a mobile web browser\"));\nexport const IsDevelopmentContext = new RawContextKey('isDevelopment', false, true);\nexport const ProductQualityContext = new RawContextKey('productQualityType', '', localize('productQualityType', \"Quality type of VS Code\"));\nexport const InputFocusedContextKey = 'inputFocus';\nexport const InputFocusedContext = new RawContextKey(InputFocusedContextKey, false, localize('inputFocus', \"Whether keyboard focus is inside an input box\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, append, clearNode, createStyleSheet, getWindow, h, hasParentWithClass, asCssValueWithDefault, isKeyboardEvent } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport { FindInput } from '../findinput/findInput.js';\nimport { unthemedInboxStyles } from '../inputbox/inputBox.js';\nimport { ElementsDragAndDropData } from '../list/listView.js';\nimport { isActionItem, isButton, isInputElement, isMonacoCustomToggle, isMonacoEditor, isStickyScrollContainer, isStickyScrollElement, List, MouseController } from '../list/listWidget.js';\nimport { Toggle, unthemedToggleStyles } from '../toggle/toggle.js';\nimport { getVisibleState, isFilterResult } from './indexTreeModel.js';\nimport { TreeMouseEventTarget } from './tree.js';\nimport { Action } from '../../../common/actions.js';\nimport { distinct, equals, range } from '../../../common/arrays.js';\nimport { Delayer, disposableTimeout, timeout } from '../../../common/async.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { SetMap } from '../../../common/map.js';\nimport { Emitter, Event, EventBufferer, Relay } from '../../../common/event.js';\nimport { fuzzyScore, FuzzyScore } from '../../../common/filters.js';\nimport { Disposable, DisposableStore, dispose, toDisposable } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { isNumber } from '../../../common/types.js';\nimport './media/tree.css';\nimport { localize } from '../../../../nls.js';\nimport { createInstantHoverDelegate, getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { autorun, constObservable } from '../../../common/observable.js';\nclass TreeElementsDragAndDropData extends ElementsDragAndDropData {\n constructor(data) {\n super(data.elements.map(node => node.element));\n this.data = data;\n }\n}\nfunction asTreeDragAndDropData(data) {\n if (data instanceof ElementsDragAndDropData) {\n return new TreeElementsDragAndDropData(data);\n }\n return data;\n}\nclass TreeNodeListDragAndDrop {\n constructor(modelProvider, dnd) {\n this.modelProvider = modelProvider;\n this.dnd = dnd;\n this.autoExpandDisposable = Disposable.None;\n this.disposables = new DisposableStore();\n }\n getDragURI(node) {\n return this.dnd.getDragURI(node.element);\n }\n getDragLabel(nodes, originalEvent) {\n if (this.dnd.getDragLabel) {\n return this.dnd.getDragLabel(nodes.map(node => node.element), originalEvent);\n }\n return undefined;\n }\n onDragStart(data, originalEvent) {\n var _a, _b;\n (_b = (_a = this.dnd).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, asTreeDragAndDropData(data), originalEvent);\n }\n onDragOver(data, targetNode, targetIndex, targetSector, originalEvent, raw = true) {\n const result = this.dnd.onDragOver(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n const didChangeAutoExpandNode = this.autoExpandNode !== targetNode;\n if (didChangeAutoExpandNode) {\n this.autoExpandDisposable.dispose();\n this.autoExpandNode = targetNode;\n }\n if (typeof targetNode === 'undefined') {\n return result;\n }\n if (didChangeAutoExpandNode && typeof result !== 'boolean' && result.autoExpand) {\n this.autoExpandDisposable = disposableTimeout(() => {\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n if (model.isCollapsed(ref)) {\n model.setCollapsed(ref, false);\n }\n this.autoExpandNode = undefined;\n }, 500, this.disposables);\n }\n if (typeof result === 'boolean' || !result.accept || typeof result.bubble === 'undefined' || result.feedback) {\n if (!raw) {\n const accept = typeof result === 'boolean' ? result : result.accept;\n const effect = typeof result === 'boolean' ? undefined : result.effect;\n return { accept, effect, feedback: [targetIndex] };\n }\n return result;\n }\n if (result.bubble === 1 /* TreeDragOverBubble.Up */) {\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n const parentRef = model.getParentNodeLocation(ref);\n const parentNode = model.getNode(parentRef);\n const parentIndex = parentRef && model.getListIndex(parentRef);\n return this.onDragOver(data, parentNode, parentIndex, targetSector, originalEvent, false);\n }\n const model = this.modelProvider();\n const ref = model.getNodeLocation(targetNode);\n const start = model.getListIndex(ref);\n const length = model.getListRenderCount(ref);\n return { ...result, feedback: range(start, start + length) };\n }\n drop(data, targetNode, targetIndex, targetSector, originalEvent) {\n this.autoExpandDisposable.dispose();\n this.autoExpandNode = undefined;\n this.dnd.drop(asTreeDragAndDropData(data), targetNode && targetNode.element, targetIndex, targetSector, originalEvent);\n }\n onDragEnd(originalEvent) {\n var _a, _b;\n (_b = (_a = this.dnd).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, originalEvent);\n }\n dispose() {\n this.disposables.dispose();\n this.dnd.dispose();\n }\n}\nfunction asListOptions(modelProvider, options) {\n return options && {\n ...options,\n identityProvider: options.identityProvider && {\n getId(el) {\n return options.identityProvider.getId(el.element);\n }\n },\n dnd: options.dnd && new TreeNodeListDragAndDrop(modelProvider, options.dnd),\n multipleSelectionController: options.multipleSelectionController && {\n isSelectionSingleChangeEvent(e) {\n return options.multipleSelectionController.isSelectionSingleChangeEvent({ ...e, element: e.element });\n },\n isSelectionRangeChangeEvent(e) {\n return options.multipleSelectionController.isSelectionRangeChangeEvent({ ...e, element: e.element });\n }\n },\n accessibilityProvider: options.accessibilityProvider && {\n ...options.accessibilityProvider,\n getSetSize(node) {\n const model = modelProvider();\n const ref = model.getNodeLocation(node);\n const parentRef = model.getParentNodeLocation(ref);\n const parentNode = model.getNode(parentRef);\n return parentNode.visibleChildrenCount;\n },\n getPosInSet(node) {\n return node.visibleChildIndex + 1;\n },\n isChecked: options.accessibilityProvider && options.accessibilityProvider.isChecked ? (node) => {\n return options.accessibilityProvider.isChecked(node.element);\n } : undefined,\n getRole: options.accessibilityProvider && options.accessibilityProvider.getRole ? (node) => {\n return options.accessibilityProvider.getRole(node.element);\n } : () => 'treeitem',\n getAriaLabel(e) {\n return options.accessibilityProvider.getAriaLabel(e.element);\n },\n getWidgetAriaLabel() {\n return options.accessibilityProvider.getWidgetAriaLabel();\n },\n getWidgetRole: options.accessibilityProvider && options.accessibilityProvider.getWidgetRole ? () => options.accessibilityProvider.getWidgetRole() : () => 'tree',\n getAriaLevel: options.accessibilityProvider && options.accessibilityProvider.getAriaLevel ? (node) => options.accessibilityProvider.getAriaLevel(node.element) : (node) => {\n return node.depth;\n },\n getActiveDescendantId: options.accessibilityProvider.getActiveDescendantId && (node => {\n return options.accessibilityProvider.getActiveDescendantId(node.element);\n })\n },\n keyboardNavigationLabelProvider: options.keyboardNavigationLabelProvider && {\n ...options.keyboardNavigationLabelProvider,\n getKeyboardNavigationLabel(node) {\n return options.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(node.element);\n }\n }\n };\n}\nexport class ComposedTreeDelegate {\n constructor(delegate) {\n this.delegate = delegate;\n }\n getHeight(element) {\n return this.delegate.getHeight(element.element);\n }\n getTemplateId(element) {\n return this.delegate.getTemplateId(element.element);\n }\n hasDynamicHeight(element) {\n return !!this.delegate.hasDynamicHeight && this.delegate.hasDynamicHeight(element.element);\n }\n setDynamicHeight(element, height) {\n var _a, _b;\n (_b = (_a = this.delegate).setDynamicHeight) === null || _b === void 0 ? void 0 : _b.call(_a, element.element, height);\n }\n}\nexport var RenderIndentGuides;\n(function (RenderIndentGuides) {\n RenderIndentGuides[\"None\"] = \"none\";\n RenderIndentGuides[\"OnHover\"] = \"onHover\";\n RenderIndentGuides[\"Always\"] = \"always\";\n})(RenderIndentGuides || (RenderIndentGuides = {}));\nclass EventCollection {\n get elements() {\n return this._elements;\n }\n constructor(onDidChange, _elements = []) {\n this._elements = _elements;\n this.disposables = new DisposableStore();\n this.onDidChange = Event.forEach(onDidChange, elements => this._elements = elements, this.disposables);\n }\n dispose() {\n this.disposables.dispose();\n }\n}\nexport class TreeRenderer {\n constructor(renderer, modelProvider, onDidChangeCollapseState, activeNodes, renderedIndentGuides, options = {}) {\n var _a;\n this.renderer = renderer;\n this.modelProvider = modelProvider;\n this.activeNodes = activeNodes;\n this.renderedIndentGuides = renderedIndentGuides;\n this.renderedElements = new Map();\n this.renderedNodes = new Map();\n this.indent = TreeRenderer.DefaultIndent;\n this.hideTwistiesOfChildlessElements = false;\n this.shouldRenderIndentGuides = false;\n this.activeIndentNodes = new Set();\n this.indentGuidesDisposable = Disposable.None;\n this.disposables = new DisposableStore();\n this.templateId = renderer.templateId;\n this.updateOptions(options);\n Event.map(onDidChangeCollapseState, e => e.node)(this.onDidChangeNodeTwistieState, this, this.disposables);\n (_a = renderer.onDidChangeTwistieState) === null || _a === void 0 ? void 0 : _a.call(renderer, this.onDidChangeTwistieState, this, this.disposables);\n }\n updateOptions(options = {}) {\n if (typeof options.indent !== 'undefined') {\n const indent = clamp(options.indent, 0, 40);\n if (indent !== this.indent) {\n this.indent = indent;\n for (const [node, templateData] of this.renderedNodes) {\n this.renderTreeElement(node, templateData);\n }\n }\n }\n if (typeof options.renderIndentGuides !== 'undefined') {\n const shouldRenderIndentGuides = options.renderIndentGuides !== RenderIndentGuides.None;\n if (shouldRenderIndentGuides !== this.shouldRenderIndentGuides) {\n this.shouldRenderIndentGuides = shouldRenderIndentGuides;\n for (const [node, templateData] of this.renderedNodes) {\n this._renderIndentGuides(node, templateData);\n }\n this.indentGuidesDisposable.dispose();\n if (shouldRenderIndentGuides) {\n const disposables = new DisposableStore();\n this.activeNodes.onDidChange(this._onDidChangeActiveNodes, this, disposables);\n this.indentGuidesDisposable = disposables;\n this._onDidChangeActiveNodes(this.activeNodes.elements);\n }\n }\n }\n if (typeof options.hideTwistiesOfChildlessElements !== 'undefined') {\n this.hideTwistiesOfChildlessElements = options.hideTwistiesOfChildlessElements;\n }\n }\n renderTemplate(container) {\n const el = append(container, $('.monaco-tl-row'));\n const indent = append(el, $('.monaco-tl-indent'));\n const twistie = append(el, $('.monaco-tl-twistie'));\n const contents = append(el, $('.monaco-tl-contents'));\n const templateData = this.renderer.renderTemplate(contents);\n return { container, indent, twistie, indentGuidesDisposable: Disposable.None, templateData };\n }\n renderElement(node, index, templateData, height) {\n this.renderedNodes.set(node, templateData);\n this.renderedElements.set(node.element, node);\n this.renderTreeElement(node, templateData);\n this.renderer.renderElement(node, index, templateData.templateData, height);\n }\n disposeElement(node, index, templateData, height) {\n var _a, _b;\n templateData.indentGuidesDisposable.dispose();\n (_b = (_a = this.renderer).disposeElement) === null || _b === void 0 ? void 0 : _b.call(_a, node, index, templateData.templateData, height);\n if (typeof height === 'number') {\n this.renderedNodes.delete(node);\n this.renderedElements.delete(node.element);\n }\n }\n disposeTemplate(templateData) {\n this.renderer.disposeTemplate(templateData.templateData);\n }\n onDidChangeTwistieState(element) {\n const node = this.renderedElements.get(element);\n if (!node) {\n return;\n }\n this.onDidChangeNodeTwistieState(node);\n }\n onDidChangeNodeTwistieState(node) {\n const templateData = this.renderedNodes.get(node);\n if (!templateData) {\n return;\n }\n this._onDidChangeActiveNodes(this.activeNodes.elements);\n this.renderTreeElement(node, templateData);\n }\n renderTreeElement(node, templateData) {\n const indent = TreeRenderer.DefaultIndent + (node.depth - 1) * this.indent;\n templateData.twistie.style.paddingLeft = `${indent}px`;\n templateData.indent.style.width = `${indent + this.indent - 16}px`;\n if (node.collapsible) {\n templateData.container.setAttribute('aria-expanded', String(!node.collapsed));\n }\n else {\n templateData.container.removeAttribute('aria-expanded');\n }\n templateData.twistie.classList.remove(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n let twistieRendered = false;\n if (this.renderer.renderTwistie) {\n twistieRendered = this.renderer.renderTwistie(node.element, templateData.twistie);\n }\n if (node.collapsible && (!this.hideTwistiesOfChildlessElements || node.visibleChildrenCount > 0)) {\n if (!twistieRendered) {\n templateData.twistie.classList.add(...ThemeIcon.asClassNameArray(Codicon.treeItemExpanded));\n }\n templateData.twistie.classList.add('collapsible');\n templateData.twistie.classList.toggle('collapsed', node.collapsed);\n }\n else {\n templateData.twistie.classList.remove('collapsible', 'collapsed');\n }\n this._renderIndentGuides(node, templateData);\n }\n _renderIndentGuides(node, templateData) {\n clearNode(templateData.indent);\n templateData.indentGuidesDisposable.dispose();\n if (!this.shouldRenderIndentGuides) {\n return;\n }\n const disposableStore = new DisposableStore();\n const model = this.modelProvider();\n while (true) {\n const ref = model.getNodeLocation(node);\n const parentRef = model.getParentNodeLocation(ref);\n if (!parentRef) {\n break;\n }\n const parent = model.getNode(parentRef);\n const guide = $('.indent-guide', { style: `width: ${this.indent}px` });\n if (this.activeIndentNodes.has(parent)) {\n guide.classList.add('active');\n }\n if (templateData.indent.childElementCount === 0) {\n templateData.indent.appendChild(guide);\n }\n else {\n templateData.indent.insertBefore(guide, templateData.indent.firstElementChild);\n }\n this.renderedIndentGuides.add(parent, guide);\n disposableStore.add(toDisposable(() => this.renderedIndentGuides.delete(parent, guide)));\n node = parent;\n }\n templateData.indentGuidesDisposable = disposableStore;\n }\n _onDidChangeActiveNodes(nodes) {\n if (!this.shouldRenderIndentGuides) {\n return;\n }\n const set = new Set();\n const model = this.modelProvider();\n nodes.forEach(node => {\n const ref = model.getNodeLocation(node);\n try {\n const parentRef = model.getParentNodeLocation(ref);\n if (node.collapsible && node.children.length > 0 && !node.collapsed) {\n set.add(node);\n }\n else if (parentRef) {\n set.add(model.getNode(parentRef));\n }\n }\n catch (_a) {\n // noop\n }\n });\n this.activeIndentNodes.forEach(node => {\n if (!set.has(node)) {\n this.renderedIndentGuides.forEach(node, line => line.classList.remove('active'));\n }\n });\n set.forEach(node => {\n if (!this.activeIndentNodes.has(node)) {\n this.renderedIndentGuides.forEach(node, line => line.classList.add('active'));\n }\n });\n this.activeIndentNodes = set;\n }\n dispose() {\n this.renderedNodes.clear();\n this.renderedElements.clear();\n this.indentGuidesDisposable.dispose();\n dispose(this.disposables);\n }\n}\nTreeRenderer.DefaultIndent = 8;\nclass FindFilter {\n get totalCount() { return this._totalCount; }\n get matchCount() { return this._matchCount; }\n constructor(tree, keyboardNavigationLabelProvider, _filter) {\n this.tree = tree;\n this.keyboardNavigationLabelProvider = keyboardNavigationLabelProvider;\n this._filter = _filter;\n this._totalCount = 0;\n this._matchCount = 0;\n this._pattern = '';\n this._lowercasePattern = '';\n this.disposables = new DisposableStore();\n tree.onWillRefilter(this.reset, this, this.disposables);\n }\n filter(element, parentVisibility) {\n let visibility = 1 /* TreeVisibility.Visible */;\n if (this._filter) {\n const result = this._filter.filter(element, parentVisibility);\n if (typeof result === 'boolean') {\n visibility = result ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;\n }\n else if (isFilterResult(result)) {\n visibility = getVisibleState(result.visibility);\n }\n else {\n visibility = result;\n }\n if (visibility === 0 /* TreeVisibility.Hidden */) {\n return false;\n }\n }\n this._totalCount++;\n if (!this._pattern) {\n this._matchCount++;\n return { data: FuzzyScore.Default, visibility };\n }\n const label = this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(element);\n const labels = Array.isArray(label) ? label : [label];\n for (const l of labels) {\n const labelStr = l && l.toString();\n if (typeof labelStr === 'undefined') {\n return { data: FuzzyScore.Default, visibility };\n }\n let score;\n if (this.tree.findMatchType === TreeFindMatchType.Contiguous) {\n const index = labelStr.toLowerCase().indexOf(this._lowercasePattern);\n if (index > -1) {\n score = [Number.MAX_SAFE_INTEGER, 0];\n for (let i = this._lowercasePattern.length; i > 0; i--) {\n score.push(index + i - 1);\n }\n }\n }\n else {\n score = fuzzyScore(this._pattern, this._lowercasePattern, 0, labelStr, labelStr.toLowerCase(), 0, { firstMatchCanBeWeak: true, boostFullMatch: true });\n }\n if (score) {\n this._matchCount++;\n return labels.length === 1 ?\n { data: score, visibility } :\n { data: { label: labelStr, score: score }, visibility };\n }\n }\n if (this.tree.findMode === TreeFindMode.Filter) {\n if (typeof this.tree.options.defaultFindVisibility === 'number') {\n return this.tree.options.defaultFindVisibility;\n }\n else if (this.tree.options.defaultFindVisibility) {\n return this.tree.options.defaultFindVisibility(element);\n }\n else {\n return 2 /* TreeVisibility.Recurse */;\n }\n }\n else {\n return { data: FuzzyScore.Default, visibility };\n }\n }\n reset() {\n this._totalCount = 0;\n this._matchCount = 0;\n }\n dispose() {\n dispose(this.disposables);\n }\n}\nexport class ModeToggle extends Toggle {\n constructor(opts) {\n var _a, _b;\n super({\n icon: Codicon.listFilter,\n title: localize('filter', \"Filter\"),\n isChecked: (_a = opts.isChecked) !== null && _a !== void 0 ? _a : false,\n hoverDelegate: (_b = opts.hoverDelegate) !== null && _b !== void 0 ? _b : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nexport class FuzzyToggle extends Toggle {\n constructor(opts) {\n var _a, _b;\n super({\n icon: Codicon.searchFuzzy,\n title: localize('fuzzySearch', \"Fuzzy Match\"),\n isChecked: (_a = opts.isChecked) !== null && _a !== void 0 ? _a : false,\n hoverDelegate: (_b = opts.hoverDelegate) !== null && _b !== void 0 ? _b : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground\n });\n }\n}\nconst unthemedFindWidgetStyles = {\n inputBoxStyles: unthemedInboxStyles,\n toggleStyles: unthemedToggleStyles,\n listFilterWidgetBackground: undefined,\n listFilterWidgetNoMatchesOutline: undefined,\n listFilterWidgetOutline: undefined,\n listFilterWidgetShadow: undefined\n};\nexport var TreeFindMode;\n(function (TreeFindMode) {\n TreeFindMode[TreeFindMode[\"Highlight\"] = 0] = \"Highlight\";\n TreeFindMode[TreeFindMode[\"Filter\"] = 1] = \"Filter\";\n})(TreeFindMode || (TreeFindMode = {}));\nexport var TreeFindMatchType;\n(function (TreeFindMatchType) {\n TreeFindMatchType[TreeFindMatchType[\"Fuzzy\"] = 0] = \"Fuzzy\";\n TreeFindMatchType[TreeFindMatchType[\"Contiguous\"] = 1] = \"Contiguous\";\n})(TreeFindMatchType || (TreeFindMatchType = {}));\nclass FindWidget extends Disposable {\n set mode(mode) {\n this.modeToggle.checked = mode === TreeFindMode.Filter;\n this.findInput.inputBox.setPlaceHolder(mode === TreeFindMode.Filter ? localize('type to filter', \"Type to filter\") : localize('type to search', \"Type to search\"));\n }\n set matchType(matchType) {\n this.matchTypeToggle.checked = matchType === TreeFindMatchType.Fuzzy;\n }\n constructor(container, tree, contextViewProvider, mode, matchType, options) {\n var _a;\n super();\n this.tree = tree;\n this.elements = h('.monaco-tree-type-filter', [\n h('.monaco-tree-type-filter-grab.codicon.codicon-debug-gripper@grab', { tabIndex: 0 }),\n h('.monaco-tree-type-filter-input@findInput'),\n h('.monaco-tree-type-filter-actionbar@actionbar'),\n ]);\n this.width = 0;\n this.right = 0;\n this.top = 0;\n this._onDidDisable = new Emitter();\n container.appendChild(this.elements.root);\n this._register(toDisposable(() => container.removeChild(this.elements.root)));\n const styles = (_a = options === null || options === void 0 ? void 0 : options.styles) !== null && _a !== void 0 ? _a : unthemedFindWidgetStyles;\n if (styles.listFilterWidgetBackground) {\n this.elements.root.style.backgroundColor = styles.listFilterWidgetBackground;\n }\n if (styles.listFilterWidgetShadow) {\n this.elements.root.style.boxShadow = `0 0 8px 2px ${styles.listFilterWidgetShadow}`;\n }\n const toggleHoverDelegate = this._register(createInstantHoverDelegate());\n this.modeToggle = this._register(new ModeToggle({ ...styles.toggleStyles, isChecked: mode === TreeFindMode.Filter, hoverDelegate: toggleHoverDelegate }));\n this.matchTypeToggle = this._register(new FuzzyToggle({ ...styles.toggleStyles, isChecked: matchType === TreeFindMatchType.Fuzzy, hoverDelegate: toggleHoverDelegate }));\n this.onDidChangeMode = Event.map(this.modeToggle.onChange, () => this.modeToggle.checked ? TreeFindMode.Filter : TreeFindMode.Highlight, this._store);\n this.onDidChangeMatchType = Event.map(this.matchTypeToggle.onChange, () => this.matchTypeToggle.checked ? TreeFindMatchType.Fuzzy : TreeFindMatchType.Contiguous, this._store);\n this.findInput = this._register(new FindInput(this.elements.findInput, contextViewProvider, {\n label: localize('type to search', \"Type to search\"),\n additionalToggles: [this.modeToggle, this.matchTypeToggle],\n showCommonFindToggles: false,\n inputBoxStyles: styles.inputBoxStyles,\n toggleStyles: styles.toggleStyles,\n history: options === null || options === void 0 ? void 0 : options.history\n }));\n this.actionbar = this._register(new ActionBar(this.elements.actionbar));\n this.mode = mode;\n const emitter = this._register(new DomEmitter(this.findInput.inputBox.inputElement, 'keydown'));\n const onKeyDown = Event.chain(emitter.event, $ => $.map(e => new StandardKeyboardEvent(e)));\n this._register(onKeyDown((e) => {\n // Using equals() so we reserve modified keys for future use\n if (e.equals(3 /* KeyCode.Enter */)) {\n // This is the only keyboard way to return to the tree from a history item that isn't the last one\n e.preventDefault();\n e.stopPropagation();\n this.findInput.inputBox.addToHistory();\n this.tree.domFocus();\n return;\n }\n if (e.equals(18 /* KeyCode.DownArrow */)) {\n e.preventDefault();\n e.stopPropagation();\n if (this.findInput.inputBox.isAtLastInHistory() || this.findInput.inputBox.isNowhereInHistory()) {\n // Retain original pre-history DownArrow behavior\n this.findInput.inputBox.addToHistory();\n this.tree.domFocus();\n }\n else {\n // Downward through history\n this.findInput.inputBox.showNextValue();\n }\n return;\n }\n if (e.equals(16 /* KeyCode.UpArrow */)) {\n e.preventDefault();\n e.stopPropagation();\n // Upward through history\n this.findInput.inputBox.showPreviousValue();\n return;\n }\n }));\n const closeAction = this._register(new Action('close', localize('close', \"Close\"), 'codicon codicon-close', true, () => this.dispose()));\n this.actionbar.push(closeAction, { icon: true, label: false });\n const onGrabMouseDown = this._register(new DomEmitter(this.elements.grab, 'mousedown'));\n this._register(onGrabMouseDown.event(e => {\n const disposables = new DisposableStore();\n const onWindowMouseMove = disposables.add(new DomEmitter(getWindow(e), 'mousemove'));\n const onWindowMouseUp = disposables.add(new DomEmitter(getWindow(e), 'mouseup'));\n const startRight = this.right;\n const startX = e.pageX;\n const startTop = this.top;\n const startY = e.pageY;\n this.elements.grab.classList.add('grabbing');\n const transition = this.elements.root.style.transition;\n this.elements.root.style.transition = 'unset';\n const update = (e) => {\n const deltaX = e.pageX - startX;\n this.right = startRight - deltaX;\n const deltaY = e.pageY - startY;\n this.top = startTop + deltaY;\n this.layout();\n };\n disposables.add(onWindowMouseMove.event(update));\n disposables.add(onWindowMouseUp.event(e => {\n update(e);\n this.elements.grab.classList.remove('grabbing');\n this.elements.root.style.transition = transition;\n disposables.dispose();\n }));\n }));\n const onGrabKeyDown = Event.chain(this._register(new DomEmitter(this.elements.grab, 'keydown')).event, $ => $.map(e => new StandardKeyboardEvent(e)));\n this._register(onGrabKeyDown((e) => {\n let right;\n let top;\n if (e.keyCode === 15 /* KeyCode.LeftArrow */) {\n right = Number.POSITIVE_INFINITY;\n }\n else if (e.keyCode === 17 /* KeyCode.RightArrow */) {\n right = 0;\n }\n else if (e.keyCode === 10 /* KeyCode.Space */) {\n right = this.right === 0 ? Number.POSITIVE_INFINITY : 0;\n }\n if (e.keyCode === 16 /* KeyCode.UpArrow */) {\n top = 0;\n }\n else if (e.keyCode === 18 /* KeyCode.DownArrow */) {\n top = Number.POSITIVE_INFINITY;\n }\n if (right !== undefined) {\n e.preventDefault();\n e.stopPropagation();\n this.right = right;\n this.layout();\n }\n if (top !== undefined) {\n e.preventDefault();\n e.stopPropagation();\n this.top = top;\n const transition = this.elements.root.style.transition;\n this.elements.root.style.transition = 'unset';\n this.layout();\n setTimeout(() => {\n this.elements.root.style.transition = transition;\n }, 0);\n }\n }));\n this.onDidChangeValue = this.findInput.onDidChange;\n }\n layout(width = this.width) {\n this.width = width;\n this.right = clamp(this.right, 0, Math.max(0, width - 212));\n this.elements.root.style.right = `${this.right}px`;\n this.top = clamp(this.top, 0, 24);\n this.elements.root.style.top = `${this.top}px`;\n }\n showMessage(message) {\n this.findInput.showMessage(message);\n }\n clearMessage() {\n this.findInput.clearMessage();\n }\n async dispose() {\n this._onDidDisable.fire();\n this.elements.root.classList.add('disabled');\n await timeout(300);\n super.dispose();\n }\n}\nclass FindController {\n get pattern() { return this._pattern; }\n get mode() { return this._mode; }\n set mode(mode) {\n if (mode === this._mode) {\n return;\n }\n this._mode = mode;\n if (this.widget) {\n this.widget.mode = this._mode;\n }\n this.tree.refilter();\n this.render();\n this._onDidChangeMode.fire(mode);\n }\n get matchType() { return this._matchType; }\n set matchType(matchType) {\n if (matchType === this._matchType) {\n return;\n }\n this._matchType = matchType;\n if (this.widget) {\n this.widget.matchType = this._matchType;\n }\n this.tree.refilter();\n this.render();\n this._onDidChangeMatchType.fire(matchType);\n }\n constructor(tree, model, view, filter, contextViewProvider, options = {}) {\n var _a, _b;\n this.tree = tree;\n this.view = view;\n this.filter = filter;\n this.contextViewProvider = contextViewProvider;\n this.options = options;\n this._pattern = '';\n this.width = 0;\n this._onDidChangeMode = new Emitter();\n this.onDidChangeMode = this._onDidChangeMode.event;\n this._onDidChangeMatchType = new Emitter();\n this.onDidChangeMatchType = this._onDidChangeMatchType.event;\n this._onDidChangePattern = new Emitter();\n this._onDidChangeOpenState = new Emitter();\n this.onDidChangeOpenState = this._onDidChangeOpenState.event;\n this.enabledDisposables = new DisposableStore();\n this.disposables = new DisposableStore();\n this._mode = (_a = tree.options.defaultFindMode) !== null && _a !== void 0 ? _a : TreeFindMode.Highlight;\n this._matchType = (_b = tree.options.defaultFindMatchType) !== null && _b !== void 0 ? _b : TreeFindMatchType.Fuzzy;\n model.onDidSplice(this.onDidSpliceModel, this, this.disposables);\n }\n updateOptions(optionsUpdate = {}) {\n if (optionsUpdate.defaultFindMode !== undefined) {\n this.mode = optionsUpdate.defaultFindMode;\n }\n if (optionsUpdate.defaultFindMatchType !== undefined) {\n this.matchType = optionsUpdate.defaultFindMatchType;\n }\n }\n onDidSpliceModel() {\n if (!this.widget || this.pattern.length === 0) {\n return;\n }\n this.tree.refilter();\n this.render();\n }\n render() {\n var _a, _b, _c, _d;\n const noMatches = this.filter.totalCount > 0 && this.filter.matchCount === 0;\n if (this.pattern && noMatches) {\n if ((_a = this.tree.options.showNotFoundMessage) !== null && _a !== void 0 ? _a : true) {\n (_b = this.widget) === null || _b === void 0 ? void 0 : _b.showMessage({ type: 2 /* MessageType.WARNING */, content: localize('not found', \"No elements found.\") });\n }\n else {\n (_c = this.widget) === null || _c === void 0 ? void 0 : _c.showMessage({ type: 2 /* MessageType.WARNING */ });\n }\n }\n else {\n (_d = this.widget) === null || _d === void 0 ? void 0 : _d.clearMessage();\n }\n }\n shouldAllowFocus(node) {\n if (!this.widget || !this.pattern) {\n return true;\n }\n if (this.filter.totalCount > 0 && this.filter.matchCount <= 1) {\n return true;\n }\n return !FuzzyScore.isDefault(node.filterData);\n }\n layout(width) {\n var _a;\n this.width = width;\n (_a = this.widget) === null || _a === void 0 ? void 0 : _a.layout(width);\n }\n dispose() {\n this._history = undefined;\n this._onDidChangePattern.dispose();\n this.enabledDisposables.dispose();\n this.disposables.dispose();\n }\n}\nfunction stickyScrollNodeStateEquals(node1, node2) {\n return node1.position === node2.position && stickyScrollNodeEquals(node1, node2);\n}\nfunction stickyScrollNodeEquals(node1, node2) {\n return node1.node.element === node2.node.element &&\n node1.startIndex === node2.startIndex &&\n node1.height === node2.height &&\n node1.endIndex === node2.endIndex;\n}\nclass StickyScrollState {\n constructor(stickyNodes = []) {\n this.stickyNodes = stickyNodes;\n }\n get count() { return this.stickyNodes.length; }\n equal(state) {\n return equals(this.stickyNodes, state.stickyNodes, stickyScrollNodeStateEquals);\n }\n lastNodePartiallyVisible() {\n if (this.count === 0) {\n return false;\n }\n const lastStickyNode = this.stickyNodes[this.count - 1];\n if (this.count === 1) {\n return lastStickyNode.position !== 0;\n }\n const secondLastStickyNode = this.stickyNodes[this.count - 2];\n return secondLastStickyNode.position + secondLastStickyNode.height !== lastStickyNode.position;\n }\n animationStateChanged(previousState) {\n if (!equals(this.stickyNodes, previousState.stickyNodes, stickyScrollNodeEquals)) {\n return false;\n }\n if (this.count === 0) {\n return false;\n }\n const lastStickyNode = this.stickyNodes[this.count - 1];\n const previousLastStickyNode = previousState.stickyNodes[previousState.count - 1];\n return lastStickyNode.position !== previousLastStickyNode.position;\n }\n}\nclass DefaultStickyScrollDelegate {\n constrainStickyScrollNodes(stickyNodes, stickyScrollMaxItemCount, maxWidgetHeight) {\n for (let i = 0; i < stickyNodes.length; i++) {\n const stickyNode = stickyNodes[i];\n const stickyNodeBottom = stickyNode.position + stickyNode.height;\n if (stickyNodeBottom > maxWidgetHeight || i >= stickyScrollMaxItemCount) {\n return stickyNodes.slice(0, i);\n }\n }\n return stickyNodes;\n }\n}\nclass StickyScrollController extends Disposable {\n constructor(tree, model, view, renderers, treeDelegate, options = {}) {\n var _a;\n super();\n this.tree = tree;\n this.model = model;\n this.view = view;\n this.treeDelegate = treeDelegate;\n this.maxWidgetViewRatio = 0.4;\n const stickyScrollOptions = this.validateStickySettings(options);\n this.stickyScrollMaxItemCount = stickyScrollOptions.stickyScrollMaxItemCount;\n this.stickyScrollDelegate = (_a = options.stickyScrollDelegate) !== null && _a !== void 0 ? _a : new DefaultStickyScrollDelegate();\n this._widget = this._register(new StickyScrollWidget(view.getScrollableElement(), view, tree, renderers, treeDelegate, options.accessibilityProvider));\n this.onDidChangeHasFocus = this._widget.onDidChangeHasFocus;\n this.onContextMenu = this._widget.onContextMenu;\n this._register(view.onDidScroll(() => this.update()));\n this._register(view.onDidChangeContentHeight(() => this.update()));\n this._register(tree.onDidChangeCollapseState(() => this.update()));\n this.update();\n }\n get height() {\n return this._widget.height;\n }\n getNodeAtHeight(height) {\n let index;\n if (height === 0) {\n index = this.view.firstVisibleIndex;\n }\n else {\n index = this.view.indexAt(height + this.view.scrollTop);\n }\n if (index < 0 || index >= this.view.length) {\n return undefined;\n }\n return this.view.element(index);\n }\n update() {\n const firstVisibleNode = this.getNodeAtHeight(0);\n // Don't render anything if there are no elements\n if (!firstVisibleNode || this.tree.scrollTop === 0) {\n this._widget.setState(undefined);\n return;\n }\n const stickyState = this.findStickyState(firstVisibleNode);\n this._widget.setState(stickyState);\n }\n findStickyState(firstVisibleNode) {\n const stickyNodes = [];\n let firstVisibleNodeUnderWidget = firstVisibleNode;\n let stickyNodesHeight = 0;\n let nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, undefined, stickyNodesHeight);\n while (nextStickyNode) {\n stickyNodes.push(nextStickyNode);\n stickyNodesHeight += nextStickyNode.height;\n if (stickyNodes.length <= this.stickyScrollMaxItemCount) {\n firstVisibleNodeUnderWidget = this.getNextVisibleNode(nextStickyNode);\n if (!firstVisibleNodeUnderWidget) {\n break;\n }\n }\n nextStickyNode = this.getNextStickyNode(firstVisibleNodeUnderWidget, nextStickyNode.node, stickyNodesHeight);\n }\n const contrainedStickyNodes = this.constrainStickyNodes(stickyNodes);\n return contrainedStickyNodes.length ? new StickyScrollState(contrainedStickyNodes) : undefined;\n }\n getNextVisibleNode(previousStickyNode) {\n return this.getNodeAtHeight(previousStickyNode.position + previousStickyNode.height);\n }\n getNextStickyNode(firstVisibleNodeUnderWidget, previousStickyNode, stickyNodesHeight) {\n const nextStickyNode = this.getAncestorUnderPrevious(firstVisibleNodeUnderWidget, previousStickyNode);\n if (!nextStickyNode) {\n return undefined;\n }\n if (nextStickyNode === firstVisibleNodeUnderWidget) {\n if (!this.nodeIsUncollapsedParent(firstVisibleNodeUnderWidget)) {\n return undefined;\n }\n if (this.nodeTopAlignsWithStickyNodesBottom(firstVisibleNodeUnderWidget, stickyNodesHeight)) {\n return undefined;\n }\n }\n return this.createStickyScrollNode(nextStickyNode, stickyNodesHeight);\n }\n nodeTopAlignsWithStickyNodesBottom(node, stickyNodesHeight) {\n const nodeIndex = this.getNodeIndex(node);\n const elementTop = this.view.getElementTop(nodeIndex);\n const stickyPosition = stickyNodesHeight;\n return this.view.scrollTop === elementTop - stickyPosition;\n }\n createStickyScrollNode(node, currentStickyNodesHeight) {\n const height = this.treeDelegate.getHeight(node);\n const { startIndex, endIndex } = this.getNodeRange(node);\n const position = this.calculateStickyNodePosition(endIndex, currentStickyNodesHeight, height);\n return { node, position, height, startIndex, endIndex };\n }\n getAncestorUnderPrevious(node, previousAncestor = undefined) {\n let currentAncestor = node;\n let parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n while (parentOfcurrentAncestor) {\n if (parentOfcurrentAncestor === previousAncestor) {\n return currentAncestor;\n }\n currentAncestor = parentOfcurrentAncestor;\n parentOfcurrentAncestor = this.getParentNode(currentAncestor);\n }\n if (previousAncestor === undefined) {\n return currentAncestor;\n }\n return undefined;\n }\n calculateStickyNodePosition(lastDescendantIndex, stickyRowPositionTop, stickyNodeHeight) {\n let lastChildRelativeTop = this.view.getRelativeTop(lastDescendantIndex);\n // If the last descendant is only partially visible at the top of the view, getRelativeTop() returns null\n // In that case, utilize the next node's relative top to calculate the sticky node's position\n if (lastChildRelativeTop === null && this.view.firstVisibleIndex === lastDescendantIndex && lastDescendantIndex + 1 < this.view.length) {\n const nodeHeight = this.treeDelegate.getHeight(this.view.element(lastDescendantIndex));\n const nextNodeRelativeTop = this.view.getRelativeTop(lastDescendantIndex + 1);\n lastChildRelativeTop = nextNodeRelativeTop ? nextNodeRelativeTop - nodeHeight / this.view.renderHeight : null;\n }\n if (lastChildRelativeTop === null) {\n return stickyRowPositionTop;\n }\n const lastChildNode = this.view.element(lastDescendantIndex);\n const lastChildHeight = this.treeDelegate.getHeight(lastChildNode);\n const topOfLastChild = lastChildRelativeTop * this.view.renderHeight;\n const bottomOfLastChild = topOfLastChild + lastChildHeight;\n if (stickyRowPositionTop + stickyNodeHeight > bottomOfLastChild && stickyRowPositionTop <= bottomOfLastChild) {\n return bottomOfLastChild - stickyNodeHeight;\n }\n return stickyRowPositionTop;\n }\n constrainStickyNodes(stickyNodes) {\n if (stickyNodes.length === 0) {\n return [];\n }\n // Check if sticky nodes need to be constrained\n const maximumStickyWidgetHeight = this.view.renderHeight * this.maxWidgetViewRatio;\n const lastStickyNode = stickyNodes[stickyNodes.length - 1];\n if (stickyNodes.length <= this.stickyScrollMaxItemCount && lastStickyNode.position + lastStickyNode.height <= maximumStickyWidgetHeight) {\n return stickyNodes;\n }\n // constrain sticky nodes\n const constrainedStickyNodes = this.stickyScrollDelegate.constrainStickyScrollNodes(stickyNodes, this.stickyScrollMaxItemCount, maximumStickyWidgetHeight);\n if (!constrainedStickyNodes.length) {\n return [];\n }\n // Validate constraints\n const lastConstrainedStickyNode = constrainedStickyNodes[constrainedStickyNodes.length - 1];\n if (constrainedStickyNodes.length > this.stickyScrollMaxItemCount || lastConstrainedStickyNode.position + lastConstrainedStickyNode.height > maximumStickyWidgetHeight) {\n throw new Error('stickyScrollDelegate violates constraints');\n }\n return constrainedStickyNodes;\n }\n getParentNode(node) {\n const nodeLocation = this.model.getNodeLocation(node);\n const parentLocation = this.model.getParentNodeLocation(nodeLocation);\n return parentLocation ? this.model.getNode(parentLocation) : undefined;\n }\n nodeIsUncollapsedParent(node) {\n const nodeLocation = this.model.getNodeLocation(node);\n return this.model.getListRenderCount(nodeLocation) > 1;\n }\n getNodeIndex(node) {\n const nodeLocation = this.model.getNodeLocation(node);\n const nodeIndex = this.model.getListIndex(nodeLocation);\n return nodeIndex;\n }\n getNodeRange(node) {\n const nodeLocation = this.model.getNodeLocation(node);\n const startIndex = this.model.getListIndex(nodeLocation);\n if (startIndex < 0) {\n throw new Error('Node not found in tree');\n }\n const renderCount = this.model.getListRenderCount(nodeLocation);\n const endIndex = startIndex + renderCount - 1;\n return { startIndex, endIndex };\n }\n nodePositionTopBelowWidget(node) {\n const ancestors = [];\n let currentAncestor = this.getParentNode(node);\n while (currentAncestor) {\n ancestors.push(currentAncestor);\n currentAncestor = this.getParentNode(currentAncestor);\n }\n let widgetHeight = 0;\n for (let i = 0; i < ancestors.length && i < this.stickyScrollMaxItemCount; i++) {\n widgetHeight += this.treeDelegate.getHeight(ancestors[i]);\n }\n return widgetHeight;\n }\n domFocus() {\n this._widget.domFocus();\n }\n // Whether sticky scroll was the last focused part in the tree or not\n focusedLast() {\n return this._widget.focusedLast();\n }\n updateOptions(optionsUpdate = {}) {\n if (!optionsUpdate.stickyScrollMaxItemCount) {\n return;\n }\n const validatedOptions = this.validateStickySettings(optionsUpdate);\n if (this.stickyScrollMaxItemCount !== validatedOptions.stickyScrollMaxItemCount) {\n this.stickyScrollMaxItemCount = validatedOptions.stickyScrollMaxItemCount;\n this.update();\n }\n }\n validateStickySettings(options) {\n let stickyScrollMaxItemCount = 7;\n if (typeof options.stickyScrollMaxItemCount === 'number') {\n stickyScrollMaxItemCount = Math.max(options.stickyScrollMaxItemCount, 1);\n }\n return { stickyScrollMaxItemCount };\n }\n}\nclass StickyScrollWidget {\n constructor(container, view, tree, treeRenderers, treeDelegate, accessibilityProvider) {\n this.view = view;\n this.tree = tree;\n this.treeRenderers = treeRenderers;\n this.treeDelegate = treeDelegate;\n this.accessibilityProvider = accessibilityProvider;\n this._previousElements = [];\n this._previousStateDisposables = new DisposableStore();\n this._rootDomNode = $('.monaco-tree-sticky-container.empty');\n container.appendChild(this._rootDomNode);\n const shadow = $('.monaco-tree-sticky-container-shadow');\n this._rootDomNode.appendChild(shadow);\n this.stickyScrollFocus = new StickyScrollFocus(this._rootDomNode, view);\n this.onDidChangeHasFocus = this.stickyScrollFocus.onDidChangeHasFocus;\n this.onContextMenu = this.stickyScrollFocus.onContextMenu;\n }\n get height() {\n if (!this._previousState) {\n return 0;\n }\n const lastElement = this._previousState.stickyNodes[this._previousState.count - 1];\n return lastElement.position + lastElement.height;\n }\n setState(state) {\n const wasVisible = !!this._previousState && this._previousState.count > 0;\n const isVisible = !!state && state.count > 0;\n // If state has not changed, do nothing\n if ((!wasVisible && !isVisible) || (wasVisible && isVisible && this._previousState.equal(state))) {\n return;\n }\n // Update visibility of the widget if changed\n if (wasVisible !== isVisible) {\n this.setVisible(isVisible);\n }\n if (!isVisible) {\n this._previousState = undefined;\n this._previousElements = [];\n this._previousStateDisposables.clear();\n return;\n }\n const lastStickyNode = state.stickyNodes[state.count - 1];\n // If the new state is only a change in the last node's position, update the position of the last element\n if (this._previousState && state.animationStateChanged(this._previousState)) {\n this._previousElements[this._previousState.count - 1].style.top = `${lastStickyNode.position}px`;\n }\n // create new dom elements\n else {\n this._previousStateDisposables.clear();\n const elements = Array(state.count);\n for (let stickyIndex = state.count - 1; stickyIndex >= 0; stickyIndex--) {\n const stickyNode = state.stickyNodes[stickyIndex];\n const { element, disposable } = this.createElement(stickyNode, stickyIndex, state.count);\n elements[stickyIndex] = element;\n this._rootDomNode.appendChild(element);\n this._previousStateDisposables.add(disposable);\n }\n this.stickyScrollFocus.updateElements(elements, state);\n this._previousElements = elements;\n }\n this._previousState = state;\n // Set the height of the widget to the bottom of the last sticky node\n this._rootDomNode.style.height = `${lastStickyNode.position + lastStickyNode.height}px`;\n }\n createElement(stickyNode, stickyIndex, stickyNodesTotal) {\n const nodeIndex = stickyNode.startIndex;\n // Sticky element container\n const stickyElement = document.createElement('div');\n stickyElement.style.top = `${stickyNode.position}px`;\n if (this.tree.options.setRowHeight !== false) {\n stickyElement.style.height = `${stickyNode.height}px`;\n }\n if (this.tree.options.setRowLineHeight !== false) {\n stickyElement.style.lineHeight = `${stickyNode.height}px`;\n }\n stickyElement.classList.add('monaco-tree-sticky-row');\n stickyElement.classList.add('monaco-list-row');\n stickyElement.setAttribute('data-index', `${nodeIndex}`);\n stickyElement.setAttribute('data-parity', nodeIndex % 2 === 0 ? 'even' : 'odd');\n stickyElement.setAttribute('id', this.view.getElementID(nodeIndex));\n const accessibilityDisposable = this.setAccessibilityAttributes(stickyElement, stickyNode.node.element, stickyIndex, stickyNodesTotal);\n // Get the renderer for the node\n const nodeTemplateId = this.treeDelegate.getTemplateId(stickyNode.node);\n const renderer = this.treeRenderers.find((renderer) => renderer.templateId === nodeTemplateId);\n if (!renderer) {\n throw new Error(`No renderer found for template id ${nodeTemplateId}`);\n }\n // To make sure we do not influence the original node, we create a copy of the node\n // We need to check if it is already a unique instance of the node by the delegate\n let nodeCopy = stickyNode.node;\n if (nodeCopy === this.tree.getNode(this.tree.getNodeLocation(stickyNode.node))) {\n nodeCopy = new Proxy(stickyNode.node, {});\n }\n // Render the element\n const templateData = renderer.renderTemplate(stickyElement);\n renderer.renderElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);\n // Remove the element from the DOM when state is disposed\n const disposable = toDisposable(() => {\n accessibilityDisposable.dispose();\n renderer.disposeElement(nodeCopy, stickyNode.startIndex, templateData, stickyNode.height);\n renderer.disposeTemplate(templateData);\n stickyElement.remove();\n });\n return { element: stickyElement, disposable };\n }\n setAccessibilityAttributes(container, element, stickyIndex, stickyNodesTotal) {\n var _a;\n if (!this.accessibilityProvider) {\n return Disposable.None;\n }\n if (this.accessibilityProvider.getSetSize) {\n container.setAttribute('aria-setsize', String(this.accessibilityProvider.getSetSize(element, stickyIndex, stickyNodesTotal)));\n }\n if (this.accessibilityProvider.getPosInSet) {\n container.setAttribute('aria-posinset', String(this.accessibilityProvider.getPosInSet(element, stickyIndex)));\n }\n if (this.accessibilityProvider.getRole) {\n container.setAttribute('role', (_a = this.accessibilityProvider.getRole(element)) !== null && _a !== void 0 ? _a : 'treeitem');\n }\n const ariaLabel = this.accessibilityProvider.getAriaLabel(element);\n const observable = (ariaLabel && typeof ariaLabel !== 'string') ? ariaLabel : constObservable(ariaLabel);\n const result = autorun(reader => {\n const value = reader.readObservable(observable);\n if (value) {\n container.setAttribute('aria-label', value);\n }\n else {\n container.removeAttribute('aria-label');\n }\n });\n if (typeof ariaLabel === 'string') {\n }\n else if (ariaLabel) {\n container.setAttribute('aria-label', ariaLabel.get());\n }\n const ariaLevel = this.accessibilityProvider.getAriaLevel && this.accessibilityProvider.getAriaLevel(element);\n if (typeof ariaLevel === 'number') {\n container.setAttribute('aria-level', `${ariaLevel}`);\n }\n // Sticky Scroll elements can not be selected\n container.setAttribute('aria-selected', String(false));\n return result;\n }\n setVisible(visible) {\n this._rootDomNode.classList.toggle('empty', !visible);\n if (!visible) {\n this.stickyScrollFocus.updateElements([], undefined);\n }\n }\n domFocus() {\n this.stickyScrollFocus.domFocus();\n }\n focusedLast() {\n return this.stickyScrollFocus.focusedLast();\n }\n dispose() {\n this.stickyScrollFocus.dispose();\n this._previousStateDisposables.dispose();\n this._rootDomNode.remove();\n }\n}\nclass StickyScrollFocus extends Disposable {\n get domHasFocus() { return this._domHasFocus; }\n set domHasFocus(hasFocus) {\n if (hasFocus !== this._domHasFocus) {\n this._onDidChangeHasFocus.fire(hasFocus);\n this._domHasFocus = hasFocus;\n }\n }\n constructor(container, view) {\n super();\n this.container = container;\n this.view = view;\n this.focusedIndex = -1;\n this.elements = [];\n this._onDidChangeHasFocus = new Emitter();\n this.onDidChangeHasFocus = this._onDidChangeHasFocus.event;\n this._onContextMenu = new Emitter();\n this.onContextMenu = this._onContextMenu.event;\n this._domHasFocus = false;\n this.container.addEventListener('focus', () => this.onFocus());\n this.container.addEventListener('blur', () => this.onBlur());\n this._register(this.view.onDidFocus(() => this.toggleStickyScrollFocused(false)));\n this._register(this.view.onKeyDown((e) => this.onKeyDown(e)));\n this._register(this.view.onMouseDown((e) => this.onMouseDown(e)));\n this._register(this.view.onContextMenu((e) => this.handleContextMenu(e)));\n }\n handleContextMenu(e) {\n const target = e.browserEvent.target;\n if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n if (this.focusedLast()) {\n this.view.domFocus();\n }\n return;\n }\n // The list handles the context menu triggered by a mouse event\n // In that case only set the focus of the element clicked and leave the rest to the list to handle\n if (!isKeyboardEvent(e.browserEvent)) {\n if (!this.state) {\n throw new Error('Context menu should not be triggered when state is undefined');\n }\n const stickyIndex = this.state.stickyNodes.findIndex(stickyNode => { var _a; return stickyNode.node.element === ((_a = e.element) === null || _a === void 0 ? void 0 : _a.element); });\n if (stickyIndex === -1) {\n throw new Error('Context menu should not be triggered when element is not in sticky scroll widget');\n }\n this.container.focus();\n this.setFocus(stickyIndex);\n return;\n }\n if (!this.state || this.focusedIndex < 0) {\n throw new Error('Context menu key should not be triggered when focus is not in sticky scroll widget');\n }\n const stickyNode = this.state.stickyNodes[this.focusedIndex];\n const element = stickyNode.node.element;\n const anchor = this.elements[this.focusedIndex];\n this._onContextMenu.fire({ element, anchor, browserEvent: e.browserEvent, isStickyScroll: true });\n }\n onKeyDown(e) {\n // Sticky Scroll Navigation\n if (this.domHasFocus && this.state) {\n // Move up\n if (e.key === 'ArrowUp') {\n this.setFocusedElement(Math.max(0, this.focusedIndex - 1));\n e.preventDefault();\n e.stopPropagation();\n }\n // Move down, if last sticky node is focused, move focus into first child of last sticky node\n else if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n if (this.focusedIndex >= this.state.count - 1) {\n const nodeIndexToFocus = this.state.stickyNodes[this.state.count - 1].startIndex + 1;\n this.view.domFocus();\n this.view.setFocus([nodeIndexToFocus]);\n this.scrollNodeUnderWidget(nodeIndexToFocus, this.state);\n }\n else {\n this.setFocusedElement(this.focusedIndex + 1);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n }\n onMouseDown(e) {\n const target = e.browserEvent.target;\n if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n return;\n }\n e.browserEvent.preventDefault();\n e.browserEvent.stopPropagation();\n }\n updateElements(elements, state) {\n if (state && state.count === 0) {\n throw new Error('Sticky scroll state must be undefined when there are no sticky nodes');\n }\n if (state && state.count !== elements.length) {\n throw new Error('Sticky scroll focus received illigel state');\n }\n const previousIndex = this.focusedIndex;\n this.removeFocus();\n this.elements = elements;\n this.state = state;\n if (state) {\n const newFocusedIndex = clamp(previousIndex, 0, state.count - 1);\n this.setFocus(newFocusedIndex);\n }\n else {\n if (this.domHasFocus) {\n this.view.domFocus();\n }\n }\n // must come last as it calls blur()\n this.container.tabIndex = state ? 0 : -1;\n }\n setFocusedElement(stickyIndex) {\n // doesn't imply that the widget has (or will have) focus\n const state = this.state;\n if (!state) {\n throw new Error('Cannot set focus when state is undefined');\n }\n this.setFocus(stickyIndex);\n if (stickyIndex < state.count - 1) {\n return;\n }\n // If the last sticky node is not fully visible, scroll it into view\n if (state.lastNodePartiallyVisible()) {\n const lastStickyNode = state.stickyNodes[stickyIndex];\n this.scrollNodeUnderWidget(lastStickyNode.endIndex + 1, state);\n }\n }\n scrollNodeUnderWidget(nodeIndex, state) {\n const lastStickyNode = state.stickyNodes[state.count - 1];\n const secondLastStickyNode = state.count > 1 ? state.stickyNodes[state.count - 2] : undefined;\n const elementScrollTop = this.view.getElementTop(nodeIndex);\n const elementTargetViewTop = secondLastStickyNode ? secondLastStickyNode.position + secondLastStickyNode.height + lastStickyNode.height : lastStickyNode.height;\n this.view.scrollTop = elementScrollTop - elementTargetViewTop;\n }\n domFocus() {\n if (!this.state) {\n throw new Error('Cannot focus when state is undefined');\n }\n this.container.focus();\n }\n focusedLast() {\n if (!this.state) {\n return false;\n }\n return this.view.getHTMLElement().classList.contains('sticky-scroll-focused');\n }\n removeFocus() {\n if (this.focusedIndex === -1) {\n return;\n }\n this.toggleElementFocus(this.elements[this.focusedIndex], false);\n this.focusedIndex = -1;\n }\n setFocus(newFocusIndex) {\n if (0 > newFocusIndex) {\n throw new Error('addFocus() can not remove focus');\n }\n if (!this.state && newFocusIndex >= 0) {\n throw new Error('Cannot set focus index when state is undefined');\n }\n if (this.state && newFocusIndex >= this.state.count) {\n throw new Error('Cannot set focus index to an index that does not exist');\n }\n const oldIndex = this.focusedIndex;\n if (oldIndex >= 0) {\n this.toggleElementFocus(this.elements[oldIndex], false);\n }\n if (newFocusIndex >= 0) {\n this.toggleElementFocus(this.elements[newFocusIndex], true);\n }\n this.focusedIndex = newFocusIndex;\n }\n toggleElementFocus(element, focused) {\n this.toggleElementActiveFocus(element, focused && this.domHasFocus);\n this.toggleElementPassiveFocus(element, focused);\n }\n toggleCurrentElementActiveFocus(focused) {\n if (this.focusedIndex === -1) {\n return;\n }\n this.toggleElementActiveFocus(this.elements[this.focusedIndex], focused);\n }\n toggleElementActiveFocus(element, focused) {\n // active focus is set when sticky scroll has focus\n element.classList.toggle('focused', focused);\n }\n toggleElementPassiveFocus(element, focused) {\n // passive focus allows to show focus when sticky scroll does not have focus\n // for example when the context menu has focus\n element.classList.toggle('passive-focused', focused);\n }\n toggleStickyScrollFocused(focused) {\n // Weather the last focus in the view was sticky scroll and not the list\n // Is only removed when the focus is back in the tree an no longer in sticky scroll\n this.view.getHTMLElement().classList.toggle('sticky-scroll-focused', focused);\n }\n onFocus() {\n if (!this.state || this.elements.length === 0) {\n throw new Error('Cannot focus when state is undefined or elements are empty');\n }\n this.domHasFocus = true;\n this.toggleStickyScrollFocused(true);\n this.toggleCurrentElementActiveFocus(true);\n if (this.focusedIndex === -1) {\n this.setFocus(0);\n }\n }\n onBlur() {\n this.domHasFocus = false;\n this.toggleCurrentElementActiveFocus(false);\n }\n dispose() {\n this.toggleStickyScrollFocused(false);\n this._onDidChangeHasFocus.fire(false);\n super.dispose();\n }\n}\nfunction asTreeMouseEvent(event) {\n let target = TreeMouseEventTarget.Unknown;\n if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-twistie', 'monaco-tl-row')) {\n target = TreeMouseEventTarget.Twistie;\n }\n else if (hasParentWithClass(event.browserEvent.target, 'monaco-tl-contents', 'monaco-tl-row')) {\n target = TreeMouseEventTarget.Element;\n }\n else if (hasParentWithClass(event.browserEvent.target, 'monaco-tree-type-filter', 'monaco-list')) {\n target = TreeMouseEventTarget.Filter;\n }\n return {\n browserEvent: event.browserEvent,\n element: event.element ? event.element.element : null,\n target\n };\n}\nfunction asTreeContextMenuEvent(event) {\n const isStickyScroll = isStickyScrollContainer(event.browserEvent.target);\n return {\n element: event.element ? event.element.element : null,\n browserEvent: event.browserEvent,\n anchor: event.anchor,\n isStickyScroll\n };\n}\nfunction dfs(node, fn) {\n fn(node);\n node.children.forEach(child => dfs(child, fn));\n}\n/**\n * The trait concept needs to exist at the tree level, because collapsed\n * tree nodes will not be known by the list.\n */\nclass Trait {\n get nodeSet() {\n if (!this._nodeSet) {\n this._nodeSet = this.createNodeSet();\n }\n return this._nodeSet;\n }\n constructor(getFirstViewElementWithTrait, identityProvider) {\n this.getFirstViewElementWithTrait = getFirstViewElementWithTrait;\n this.identityProvider = identityProvider;\n this.nodes = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n }\n set(nodes, browserEvent) {\n if (!(browserEvent === null || browserEvent === void 0 ? void 0 : browserEvent.__forceEvent) && equals(this.nodes, nodes)) {\n return;\n }\n this._set(nodes, false, browserEvent);\n }\n _set(nodes, silent, browserEvent) {\n this.nodes = [...nodes];\n this.elements = undefined;\n this._nodeSet = undefined;\n if (!silent) {\n const that = this;\n this._onDidChange.fire({ get elements() { return that.get(); }, browserEvent });\n }\n }\n get() {\n if (!this.elements) {\n this.elements = this.nodes.map(node => node.element);\n }\n return [...this.elements];\n }\n getNodes() {\n return this.nodes;\n }\n has(node) {\n return this.nodeSet.has(node);\n }\n onDidModelSplice({ insertedNodes, deletedNodes }) {\n if (!this.identityProvider) {\n const set = this.createNodeSet();\n const visit = (node) => set.delete(node);\n deletedNodes.forEach(node => dfs(node, visit));\n this.set([...set.values()]);\n return;\n }\n const deletedNodesIdSet = new Set();\n const deletedNodesVisitor = (node) => deletedNodesIdSet.add(this.identityProvider.getId(node.element).toString());\n deletedNodes.forEach(node => dfs(node, deletedNodesVisitor));\n const insertedNodesMap = new Map();\n const insertedNodesVisitor = (node) => insertedNodesMap.set(this.identityProvider.getId(node.element).toString(), node);\n insertedNodes.forEach(node => dfs(node, insertedNodesVisitor));\n const nodes = [];\n for (const node of this.nodes) {\n const id = this.identityProvider.getId(node.element).toString();\n const wasDeleted = deletedNodesIdSet.has(id);\n if (!wasDeleted) {\n nodes.push(node);\n }\n else {\n const insertedNode = insertedNodesMap.get(id);\n if (insertedNode && insertedNode.visible) {\n nodes.push(insertedNode);\n }\n }\n }\n if (this.nodes.length > 0 && nodes.length === 0) {\n const node = this.getFirstViewElementWithTrait();\n if (node) {\n nodes.push(node);\n }\n }\n this._set(nodes, true);\n }\n createNodeSet() {\n const set = new Set();\n for (const node of this.nodes) {\n set.add(node);\n }\n return set;\n }\n}\nclass TreeNodeListMouseController extends MouseController {\n constructor(list, tree, stickyScrollProvider) {\n super(list);\n this.tree = tree;\n this.stickyScrollProvider = stickyScrollProvider;\n }\n onViewPointer(e) {\n if (isButton(e.browserEvent.target) ||\n isInputElement(e.browserEvent.target) ||\n isMonacoEditor(e.browserEvent.target)) {\n return;\n }\n if (e.browserEvent.isHandledByList) {\n return;\n }\n const node = e.element;\n if (!node) {\n return super.onViewPointer(e);\n }\n if (this.isSelectionRangeChangeEvent(e) || this.isSelectionSingleChangeEvent(e)) {\n return super.onViewPointer(e);\n }\n const target = e.browserEvent.target;\n const onTwistie = target.classList.contains('monaco-tl-twistie')\n || (target.classList.contains('monaco-icon-label') && target.classList.contains('folder-icon') && e.browserEvent.offsetX < 16);\n const isStickyElement = isStickyScrollElement(e.browserEvent.target);\n let expandOnlyOnTwistieClick = false;\n if (isStickyElement) {\n expandOnlyOnTwistieClick = true;\n }\n else if (typeof this.tree.expandOnlyOnTwistieClick === 'function') {\n expandOnlyOnTwistieClick = this.tree.expandOnlyOnTwistieClick(node.element);\n }\n else {\n expandOnlyOnTwistieClick = !!this.tree.expandOnlyOnTwistieClick;\n }\n if (!isStickyElement) {\n if (expandOnlyOnTwistieClick && !onTwistie && e.browserEvent.detail !== 2) {\n return super.onViewPointer(e);\n }\n if (!this.tree.expandOnDoubleClick && e.browserEvent.detail === 2) {\n return super.onViewPointer(e);\n }\n }\n else {\n this.handleStickyScrollMouseEvent(e, node);\n }\n if (node.collapsible && (!isStickyElement || onTwistie)) {\n const location = this.tree.getNodeLocation(node);\n const recursive = e.browserEvent.altKey;\n this.tree.setFocus([location]);\n this.tree.toggleCollapsed(location, recursive);\n if (onTwistie) {\n // Do not set this before calling a handler on the super class, because it will reject it as handled\n e.browserEvent.isHandledByList = true;\n return;\n }\n }\n if (!isStickyElement) {\n super.onViewPointer(e);\n }\n }\n handleStickyScrollMouseEvent(e, node) {\n if (isMonacoCustomToggle(e.browserEvent.target) || isActionItem(e.browserEvent.target)) {\n return;\n }\n const stickyScrollController = this.stickyScrollProvider();\n if (!stickyScrollController) {\n throw new Error('Sticky scroll controller not found');\n }\n const nodeIndex = this.list.indexOf(node);\n const elementScrollTop = this.list.getElementTop(nodeIndex);\n const elementTargetViewTop = stickyScrollController.nodePositionTopBelowWidget(node);\n this.tree.scrollTop = elementScrollTop - elementTargetViewTop;\n this.list.domFocus();\n this.list.setFocus([nodeIndex]);\n this.list.setSelection([nodeIndex]);\n }\n onDoubleClick(e) {\n const onTwistie = e.browserEvent.target.classList.contains('monaco-tl-twistie');\n if (onTwistie || !this.tree.expandOnDoubleClick) {\n return;\n }\n if (e.browserEvent.isHandledByList) {\n return;\n }\n super.onDoubleClick(e);\n }\n // to make sure dom focus is not stolen (for example with context menu)\n onMouseDown(e) {\n const target = e.browserEvent.target;\n if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n super.onMouseDown(e);\n return;\n }\n }\n onContextMenu(e) {\n const target = e.browserEvent.target;\n if (!isStickyScrollContainer(target) && !isStickyScrollElement(target)) {\n super.onContextMenu(e);\n return;\n }\n }\n}\n/**\n * We use this List subclass to restore selection and focus as nodes\n * get rendered in the list, possibly due to a node expand() call.\n */\nclass TreeNodeList extends List {\n constructor(user, container, virtualDelegate, renderers, focusTrait, selectionTrait, anchorTrait, options) {\n super(user, container, virtualDelegate, renderers, options);\n this.focusTrait = focusTrait;\n this.selectionTrait = selectionTrait;\n this.anchorTrait = anchorTrait;\n }\n createMouseController(options) {\n return new TreeNodeListMouseController(this, options.tree, options.stickyScrollProvider);\n }\n splice(start, deleteCount, elements = []) {\n super.splice(start, deleteCount, elements);\n if (elements.length === 0) {\n return;\n }\n const additionalFocus = [];\n const additionalSelection = [];\n let anchor;\n elements.forEach((node, index) => {\n if (this.focusTrait.has(node)) {\n additionalFocus.push(start + index);\n }\n if (this.selectionTrait.has(node)) {\n additionalSelection.push(start + index);\n }\n if (this.anchorTrait.has(node)) {\n anchor = start + index;\n }\n });\n if (additionalFocus.length > 0) {\n super.setFocus(distinct([...super.getFocus(), ...additionalFocus]));\n }\n if (additionalSelection.length > 0) {\n super.setSelection(distinct([...super.getSelection(), ...additionalSelection]));\n }\n if (typeof anchor === 'number') {\n super.setAnchor(anchor);\n }\n }\n setFocus(indexes, browserEvent, fromAPI = false) {\n super.setFocus(indexes, browserEvent);\n if (!fromAPI) {\n this.focusTrait.set(indexes.map(i => this.element(i)), browserEvent);\n }\n }\n setSelection(indexes, browserEvent, fromAPI = false) {\n super.setSelection(indexes, browserEvent);\n if (!fromAPI) {\n this.selectionTrait.set(indexes.map(i => this.element(i)), browserEvent);\n }\n }\n setAnchor(index, fromAPI = false) {\n super.setAnchor(index);\n if (!fromAPI) {\n if (typeof index === 'undefined') {\n this.anchorTrait.set([]);\n }\n else {\n this.anchorTrait.set([this.element(index)]);\n }\n }\n }\n}\nexport class AbstractTree {\n get onDidScroll() { return this.view.onDidScroll; }\n get onDidChangeFocus() { return this.eventBufferer.wrapEvent(this.focus.onDidChange); }\n get onDidChangeSelection() { return this.eventBufferer.wrapEvent(this.selection.onDidChange); }\n get onMouseDblClick() { return Event.filter(Event.map(this.view.onMouseDblClick, asTreeMouseEvent), e => e.target !== TreeMouseEventTarget.Filter); }\n get onMouseOver() { return Event.map(this.view.onMouseOver, asTreeMouseEvent); }\n get onMouseOut() { return Event.map(this.view.onMouseOut, asTreeMouseEvent); }\n get onContextMenu() { var _a, _b; return Event.any(Event.filter(Event.map(this.view.onContextMenu, asTreeContextMenuEvent), e => !e.isStickyScroll), (_b = (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.onContextMenu) !== null && _b !== void 0 ? _b : Event.None); }\n get onPointer() { return Event.map(this.view.onPointer, asTreeMouseEvent); }\n get onKeyDown() { return this.view.onKeyDown; }\n get onDidFocus() { return this.view.onDidFocus; }\n get onDidChangeModel() { return Event.signal(this.model.onDidSplice); }\n get onDidChangeCollapseState() { return this.model.onDidChangeCollapseState; }\n get findMode() { var _a, _b; return (_b = (_a = this.findController) === null || _a === void 0 ? void 0 : _a.mode) !== null && _b !== void 0 ? _b : TreeFindMode.Highlight; }\n set findMode(findMode) { if (this.findController) {\n this.findController.mode = findMode;\n } }\n get findMatchType() { var _a, _b; return (_b = (_a = this.findController) === null || _a === void 0 ? void 0 : _a.matchType) !== null && _b !== void 0 ? _b : TreeFindMatchType.Fuzzy; }\n set findMatchType(findFuzzy) { if (this.findController) {\n this.findController.matchType = findFuzzy;\n } }\n get expandOnDoubleClick() { return typeof this._options.expandOnDoubleClick === 'undefined' ? true : this._options.expandOnDoubleClick; }\n get expandOnlyOnTwistieClick() { return typeof this._options.expandOnlyOnTwistieClick === 'undefined' ? true : this._options.expandOnlyOnTwistieClick; }\n get onDidDispose() { return this.view.onDidDispose; }\n constructor(_user, container, delegate, renderers, _options = {}) {\n var _a;\n this._user = _user;\n this._options = _options;\n this.eventBufferer = new EventBufferer();\n this.onDidChangeFindOpenState = Event.None;\n this.onDidChangeStickyScrollFocused = Event.None;\n this.disposables = new DisposableStore();\n this._onWillRefilter = new Emitter();\n this.onWillRefilter = this._onWillRefilter.event;\n this._onDidUpdateOptions = new Emitter();\n this.treeDelegate = new ComposedTreeDelegate(delegate);\n const onDidChangeCollapseStateRelay = new Relay();\n const onDidChangeActiveNodes = new Relay();\n const activeNodes = this.disposables.add(new EventCollection(onDidChangeActiveNodes.event));\n const renderedIndentGuides = new SetMap();\n this.renderers = renderers.map(r => new TreeRenderer(r, () => this.model, onDidChangeCollapseStateRelay.event, activeNodes, renderedIndentGuides, _options));\n for (const r of this.renderers) {\n this.disposables.add(r);\n }\n let filter;\n if (_options.keyboardNavigationLabelProvider) {\n filter = new FindFilter(this, _options.keyboardNavigationLabelProvider, _options.filter);\n _options = { ..._options, filter: filter }; // TODO need typescript help here\n this.disposables.add(filter);\n }\n this.focus = new Trait(() => this.view.getFocusedElements()[0], _options.identityProvider);\n this.selection = new Trait(() => this.view.getSelectedElements()[0], _options.identityProvider);\n this.anchor = new Trait(() => this.view.getAnchorElement(), _options.identityProvider);\n this.view = new TreeNodeList(_user, container, this.treeDelegate, this.renderers, this.focus, this.selection, this.anchor, { ...asListOptions(() => this.model, _options), tree: this, stickyScrollProvider: () => this.stickyScrollController });\n this.model = this.createModel(_user, this.view, _options);\n onDidChangeCollapseStateRelay.input = this.model.onDidChangeCollapseState;\n const onDidModelSplice = Event.forEach(this.model.onDidSplice, e => {\n this.eventBufferer.bufferEvents(() => {\n this.focus.onDidModelSplice(e);\n this.selection.onDidModelSplice(e);\n });\n }, this.disposables);\n // Make sure the `forEach` always runs\n onDidModelSplice(() => null, null, this.disposables);\n // Active nodes can change when the model changes or when focus or selection change.\n // We debounce it with 0 delay since these events may fire in the same stack and we only\n // want to run this once. It also doesn't matter if it runs on the next tick since it's only\n // a nice to have UI feature.\n const activeNodesEmitter = this.disposables.add(new Emitter());\n const activeNodesDebounce = this.disposables.add(new Delayer(0));\n this.disposables.add(Event.any(onDidModelSplice, this.focus.onDidChange, this.selection.onDidChange)(() => {\n activeNodesDebounce.trigger(() => {\n const set = new Set();\n for (const node of this.focus.getNodes()) {\n set.add(node);\n }\n for (const node of this.selection.getNodes()) {\n set.add(node);\n }\n activeNodesEmitter.fire([...set.values()]);\n });\n }));\n onDidChangeActiveNodes.input = activeNodesEmitter.event;\n if (_options.keyboardSupport !== false) {\n const onKeyDown = Event.chain(this.view.onKeyDown, $ => $.filter(e => !isInputElement(e.target))\n .map(e => new StandardKeyboardEvent(e)));\n Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 15 /* KeyCode.LeftArrow */))(this.onLeftArrow, this, this.disposables);\n Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 17 /* KeyCode.RightArrow */))(this.onRightArrow, this, this.disposables);\n Event.chain(onKeyDown, $ => $.filter(e => e.keyCode === 10 /* KeyCode.Space */))(this.onSpace, this, this.disposables);\n }\n if (((_a = _options.findWidgetEnabled) !== null && _a !== void 0 ? _a : true) && _options.keyboardNavigationLabelProvider && _options.contextViewProvider) {\n const opts = this.options.findWidgetStyles ? { styles: this.options.findWidgetStyles } : undefined;\n this.findController = new FindController(this, this.model, this.view, filter, _options.contextViewProvider, opts);\n this.focusNavigationFilter = node => this.findController.shouldAllowFocus(node);\n this.onDidChangeFindOpenState = this.findController.onDidChangeOpenState;\n this.disposables.add(this.findController);\n this.onDidChangeFindMode = this.findController.onDidChangeMode;\n this.onDidChangeFindMatchType = this.findController.onDidChangeMatchType;\n }\n else {\n this.onDidChangeFindMode = Event.None;\n this.onDidChangeFindMatchType = Event.None;\n }\n if (_options.enableStickyScroll) {\n this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, _options);\n this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n }\n this.styleElement = createStyleSheet(this.view.getHTMLElement());\n this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n }\n updateOptions(optionsUpdate = {}) {\n var _a;\n this._options = { ...this._options, ...optionsUpdate };\n for (const renderer of this.renderers) {\n renderer.updateOptions(optionsUpdate);\n }\n this.view.updateOptions(this._options);\n (_a = this.findController) === null || _a === void 0 ? void 0 : _a.updateOptions(optionsUpdate);\n this.updateStickyScroll(optionsUpdate);\n this._onDidUpdateOptions.fire(this._options);\n this.getHTMLElement().classList.toggle('always', this._options.renderIndentGuides === RenderIndentGuides.Always);\n }\n get options() {\n return this._options;\n }\n updateStickyScroll(optionsUpdate) {\n var _a;\n if (!this.stickyScrollController && this._options.enableStickyScroll) {\n this.stickyScrollController = new StickyScrollController(this, this.model, this.view, this.renderers, this.treeDelegate, this._options);\n this.onDidChangeStickyScrollFocused = this.stickyScrollController.onDidChangeHasFocus;\n }\n else if (this.stickyScrollController && !this._options.enableStickyScroll) {\n this.onDidChangeStickyScrollFocused = Event.None;\n this.stickyScrollController.dispose();\n this.stickyScrollController = undefined;\n }\n (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.updateOptions(optionsUpdate);\n }\n // Widget\n getHTMLElement() {\n return this.view.getHTMLElement();\n }\n get scrollTop() {\n return this.view.scrollTop;\n }\n set scrollTop(scrollTop) {\n this.view.scrollTop = scrollTop;\n }\n get scrollHeight() {\n return this.view.scrollHeight;\n }\n get renderHeight() {\n return this.view.renderHeight;\n }\n get ariaLabel() {\n return this.view.ariaLabel;\n }\n set ariaLabel(value) {\n this.view.ariaLabel = value;\n }\n domFocus() {\n var _a;\n if ((_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.focusedLast()) {\n this.stickyScrollController.domFocus();\n }\n else {\n this.view.domFocus();\n }\n }\n layout(height, width) {\n var _a;\n this.view.layout(height, width);\n if (isNumber(width)) {\n (_a = this.findController) === null || _a === void 0 ? void 0 : _a.layout(width);\n }\n }\n style(styles) {\n var _a, _b;\n const suffix = `.${this.view.domId}`;\n const content = [];\n if (styles.treeIndentGuidesStroke) {\n content.push(`.monaco-list${suffix}:hover .monaco-tl-indent > .indent-guide, .monaco-list${suffix}.always .monaco-tl-indent > .indent-guide { border-color: ${styles.treeInactiveIndentGuidesStroke}; }`);\n content.push(`.monaco-list${suffix} .monaco-tl-indent > .indent-guide.active { border-color: ${styles.treeIndentGuidesStroke}; }`);\n }\n // Sticky Scroll Background\n const stickyScrollBackground = (_a = styles.treeStickyScrollBackground) !== null && _a !== void 0 ? _a : styles.listBackground;\n if (stickyScrollBackground) {\n content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${stickyScrollBackground}; }`);\n content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${stickyScrollBackground}; }`);\n }\n // Sticky Scroll Border\n if (styles.treeStickyScrollBorder) {\n content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ${styles.treeStickyScrollBorder}; }`);\n }\n // Sticky Scroll Shadow\n if (styles.treeStickyScrollShadow) {\n content.push(`.monaco-list${suffix} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ${styles.treeStickyScrollShadow} 0 6px 6px -6px inset; height: 3px; }`);\n }\n // Sticky Scroll Focus\n if (styles.listFocusForeground) {\n content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${styles.listFocusForeground}; }`);\n content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`);\n }\n // Sticky Scroll Focus Outlines\n const focusAndSelectionOutline = asCssValueWithDefault(styles.listFocusAndSelectionOutline, asCssValueWithDefault(styles.listSelectionOutline, (_b = styles.listFocusOutline) !== null && _b !== void 0 ? _b : ''));\n if (focusAndSelectionOutline) { // default: listFocusOutline\n content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${focusAndSelectionOutline}; outline-offset: -1px;}`);\n content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`);\n }\n if (styles.listFocusOutline) { // default: set\n content.push(`.monaco-list${suffix}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n content.push(`.monaco-list${suffix}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`);\n content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ${styles.listFocusOutline}; outline-offset: -1px; }`);\n content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n content.push(`.monaco-workbench.context-menu-visible .monaco-list${suffix}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`);\n }\n this.styleElement.textContent = content.join('\\n');\n this.view.style(styles);\n }\n // Tree navigation\n getParentElement(location) {\n const parentRef = this.model.getParentNodeLocation(location);\n const parentNode = this.model.getNode(parentRef);\n return parentNode.element;\n }\n getFirstElementChild(location) {\n return this.model.getFirstElementChild(location);\n }\n // Tree\n getNode(location) {\n return this.model.getNode(location);\n }\n getNodeLocation(node) {\n return this.model.getNodeLocation(node);\n }\n collapse(location, recursive = false) {\n return this.model.setCollapsed(location, true, recursive);\n }\n expand(location, recursive = false) {\n return this.model.setCollapsed(location, false, recursive);\n }\n toggleCollapsed(location, recursive = false) {\n return this.model.setCollapsed(location, undefined, recursive);\n }\n isCollapsible(location) {\n return this.model.isCollapsible(location);\n }\n setCollapsible(location, collapsible) {\n return this.model.setCollapsible(location, collapsible);\n }\n isCollapsed(location) {\n return this.model.isCollapsed(location);\n }\n refilter() {\n this._onWillRefilter.fire(undefined);\n this.model.refilter();\n }\n setSelection(elements, browserEvent) {\n this.eventBufferer.bufferEvents(() => {\n const nodes = elements.map(e => this.model.getNode(e));\n this.selection.set(nodes, browserEvent);\n const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n this.view.setSelection(indexes, browserEvent, true);\n });\n }\n getSelection() {\n return this.selection.get();\n }\n setFocus(elements, browserEvent) {\n this.eventBufferer.bufferEvents(() => {\n const nodes = elements.map(e => this.model.getNode(e));\n this.focus.set(nodes, browserEvent);\n const indexes = elements.map(e => this.model.getListIndex(e)).filter(i => i > -1);\n this.view.setFocus(indexes, browserEvent, true);\n });\n }\n focusNext(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n this.view.focusNext(n, loop, browserEvent, filter);\n }\n focusPrevious(n = 1, loop = false, browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n this.view.focusPrevious(n, loop, browserEvent, filter);\n }\n focusNextPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n return this.view.focusNextPage(browserEvent, filter);\n }\n focusPreviousPage(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n return this.view.focusPreviousPage(browserEvent, filter, () => { var _a, _b; return (_b = (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0; });\n }\n focusFirst(browserEvent, filter = (isKeyboardEvent(browserEvent) && browserEvent.altKey) ? undefined : this.focusNavigationFilter) {\n this.view.focusFirst(browserEvent, filter);\n }\n getFocus() {\n return this.focus.get();\n }\n reveal(location, relativeTop) {\n this.model.expandTo(location);\n const index = this.model.getListIndex(location);\n if (index === -1) {\n return;\n }\n if (!this.stickyScrollController) {\n this.view.reveal(index, relativeTop);\n }\n else {\n const paddingTop = this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(location));\n this.view.reveal(index, relativeTop, paddingTop);\n }\n }\n // List\n onLeftArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const didChange = this.model.setCollapsed(location, true);\n if (!didChange) {\n const parentLocation = this.model.getParentNodeLocation(location);\n if (!parentLocation) {\n return;\n }\n const parentListIndex = this.model.getListIndex(parentLocation);\n this.view.reveal(parentListIndex);\n this.view.setFocus([parentListIndex]);\n }\n }\n onRightArrow(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const didChange = this.model.setCollapsed(location, false);\n if (!didChange) {\n if (!node.children.some(child => child.visible)) {\n return;\n }\n const [focusedIndex] = this.view.getFocus();\n const firstChildIndex = focusedIndex + 1;\n this.view.reveal(firstChildIndex);\n this.view.setFocus([firstChildIndex]);\n }\n }\n onSpace(e) {\n e.preventDefault();\n e.stopPropagation();\n const nodes = this.view.getFocusedElements();\n if (nodes.length === 0) {\n return;\n }\n const node = nodes[0];\n const location = this.model.getNodeLocation(node);\n const recursive = e.browserEvent.altKey;\n this.model.setCollapsed(location, undefined, recursive);\n }\n dispose() {\n var _a;\n dispose(this.disposables);\n (_a = this.stickyScrollController) === null || _a === void 0 ? void 0 : _a.dispose();\n this.view.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as errors from './errors.js';\nimport * as platform from './platform.js';\nimport { equalsIgnoreCase, startsWithIgnoreCase } from './strings.js';\nimport { URI } from './uri.js';\nimport * as paths from './path.js';\nexport var Schemas;\n(function (Schemas) {\n /**\n * A schema that is used for models that exist in memory\n * only and that have no correspondence on a server or such.\n */\n Schemas.inMemory = 'inmemory';\n /**\n * A schema that is used for setting files\n */\n Schemas.vscode = 'vscode';\n /**\n * A schema that is used for internal private files\n */\n Schemas.internal = 'private';\n /**\n * A walk-through document.\n */\n Schemas.walkThrough = 'walkThrough';\n /**\n * An embedded code snippet.\n */\n Schemas.walkThroughSnippet = 'walkThroughSnippet';\n Schemas.http = 'http';\n Schemas.https = 'https';\n Schemas.file = 'file';\n Schemas.mailto = 'mailto';\n Schemas.untitled = 'untitled';\n Schemas.data = 'data';\n Schemas.command = 'command';\n Schemas.vscodeRemote = 'vscode-remote';\n Schemas.vscodeRemoteResource = 'vscode-remote-resource';\n Schemas.vscodeManagedRemoteResource = 'vscode-managed-remote-resource';\n Schemas.vscodeUserData = 'vscode-userdata';\n Schemas.vscodeCustomEditor = 'vscode-custom-editor';\n Schemas.vscodeNotebookCell = 'vscode-notebook-cell';\n Schemas.vscodeNotebookCellMetadata = 'vscode-notebook-cell-metadata';\n Schemas.vscodeNotebookCellOutput = 'vscode-notebook-cell-output';\n Schemas.vscodeInteractiveInput = 'vscode-interactive-input';\n Schemas.vscodeSettings = 'vscode-settings';\n Schemas.vscodeWorkspaceTrust = 'vscode-workspace-trust';\n Schemas.vscodeTerminal = 'vscode-terminal';\n /** Scheme used for code blocks in chat. */\n Schemas.vscodeChatCodeBlock = 'vscode-chat-code-block';\n /**\n * Scheme used for backing documents created by copilot for chat.\n */\n Schemas.vscodeCopilotBackingChatCodeBlock = 'vscode-copilot-chat-code-block';\n /** Scheme used for LHS of code compare (aka diff) blocks in chat. */\n Schemas.vscodeChatCodeCompareBlock = 'vscode-chat-code-compare-block';\n /** Scheme used for the chat input editor. */\n Schemas.vscodeChatSesssion = 'vscode-chat-editor';\n /**\n * Scheme used internally for webviews that aren't linked to a resource (i.e. not custom editors)\n */\n Schemas.webviewPanel = 'webview-panel';\n /**\n * Scheme used for loading the wrapper html and script in webviews.\n */\n Schemas.vscodeWebview = 'vscode-webview';\n /**\n * Scheme used for extension pages\n */\n Schemas.extension = 'extension';\n /**\n * Scheme used as a replacement of `file` scheme to load\n * files with our custom protocol handler (desktop only).\n */\n Schemas.vscodeFileResource = 'vscode-file';\n /**\n * Scheme used for temporary resources\n */\n Schemas.tmp = 'tmp';\n /**\n * Scheme used vs live share\n */\n Schemas.vsls = 'vsls';\n /**\n * Scheme used for the Source Control commit input's text document\n */\n Schemas.vscodeSourceControl = 'vscode-scm';\n /**\n * Scheme used for input box for creating comments.\n */\n Schemas.commentsInput = 'comment';\n /**\n * Scheme used for special rendering of settings in the release notes\n */\n Schemas.codeSetting = 'code-setting';\n})(Schemas || (Schemas = {}));\nexport function matchesScheme(target, scheme) {\n if (URI.isUri(target)) {\n return equalsIgnoreCase(target.scheme, scheme);\n }\n else {\n return startsWithIgnoreCase(target, scheme + ':');\n }\n}\nexport function matchesSomeScheme(target, ...schemes) {\n return schemes.some(scheme => matchesScheme(target, scheme));\n}\nexport const connectionTokenQueryName = 'tkn';\nclass RemoteAuthoritiesImpl {\n constructor() {\n this._hosts = Object.create(null);\n this._ports = Object.create(null);\n this._connectionTokens = Object.create(null);\n this._preferredWebSchema = 'http';\n this._delegate = null;\n this._serverRootPath = '/';\n }\n setPreferredWebSchema(schema) {\n this._preferredWebSchema = schema;\n }\n get _remoteResourcesPath() {\n return paths.posix.join(this._serverRootPath, Schemas.vscodeRemoteResource);\n }\n rewrite(uri) {\n if (this._delegate) {\n try {\n return this._delegate(uri);\n }\n catch (err) {\n errors.onUnexpectedError(err);\n return uri;\n }\n }\n const authority = uri.authority;\n let host = this._hosts[authority];\n if (host && host.indexOf(':') !== -1 && host.indexOf('[') === -1) {\n host = `[${host}]`;\n }\n const port = this._ports[authority];\n const connectionToken = this._connectionTokens[authority];\n let query = `path=${encodeURIComponent(uri.path)}`;\n if (typeof connectionToken === 'string') {\n query += `&${connectionTokenQueryName}=${encodeURIComponent(connectionToken)}`;\n }\n return URI.from({\n scheme: platform.isWeb ? this._preferredWebSchema : Schemas.vscodeRemoteResource,\n authority: `${host}:${port}`,\n path: this._remoteResourcesPath,\n query\n });\n }\n}\nexport const RemoteAuthorities = new RemoteAuthoritiesImpl();\nexport const VSCODE_AUTHORITY = 'vscode-app';\nclass FileAccessImpl {\n /**\n * Returns a URI to use in contexts where the browser is responsible\n * for loading (e.g. fetch()) or when used within the DOM.\n *\n * **Note:** use `dom.ts#asCSSUrl` whenever the URL is to be used in CSS context.\n */\n uriToBrowserUri(uri) {\n // Handle remote URIs via `RemoteAuthorities`\n if (uri.scheme === Schemas.vscodeRemote) {\n return RemoteAuthorities.rewrite(uri);\n }\n // Convert to `vscode-file` resource..\n if (\n // ...only ever for `file` resources\n uri.scheme === Schemas.file &&\n (\n // ...and we run in native environments\n platform.isNative ||\n // ...or web worker extensions on desktop\n (platform.webWorkerOrigin === `${Schemas.vscodeFileResource}://${FileAccessImpl.FALLBACK_AUTHORITY}`))) {\n return uri.with({\n scheme: Schemas.vscodeFileResource,\n // We need to provide an authority here so that it can serve\n // as origin for network and loading matters in chromium.\n // If the URI is not coming with an authority already, we\n // add our own\n authority: uri.authority || FileAccessImpl.FALLBACK_AUTHORITY,\n query: null,\n fragment: null\n });\n }\n return uri;\n }\n}\nFileAccessImpl.FALLBACK_AUTHORITY = VSCODE_AUTHORITY;\nexport const FileAccess = new FileAccessImpl();\nexport var COI;\n(function (COI) {\n const coiHeaders = new Map([\n ['1', { 'Cross-Origin-Opener-Policy': 'same-origin' }],\n ['2', { 'Cross-Origin-Embedder-Policy': 'require-corp' }],\n ['3', { 'Cross-Origin-Opener-Policy': 'same-origin', 'Cross-Origin-Embedder-Policy': 'require-corp' }],\n ]);\n COI.CoopAndCoep = Object.freeze(coiHeaders.get('3'));\n const coiSearchParamName = 'vscode-coi';\n /**\n * Extract desired headers from `vscode-coi` invocation\n */\n function getHeadersFromQuery(url) {\n let params;\n if (typeof url === 'string') {\n params = new URL(url).searchParams;\n }\n else if (url instanceof URL) {\n params = url.searchParams;\n }\n else if (URI.isUri(url)) {\n params = new URL(url.toString(true)).searchParams;\n }\n const value = params === null || params === void 0 ? void 0 : params.get(coiSearchParamName);\n if (!value) {\n return undefined;\n }\n return coiHeaders.get(value);\n }\n COI.getHeadersFromQuery = getHeadersFromQuery;\n /**\n * Add the `vscode-coi` query attribute based on wanting `COOP` and `COEP`. Will be a noop when `crossOriginIsolated`\n * isn't enabled the current context\n */\n function addSearchParam(urlOrSearch, coop, coep) {\n if (!globalThis.crossOriginIsolated) {\n // depends on the current context being COI\n return;\n }\n const value = coop && coep ? '3' : coep ? '2' : '1';\n if (urlOrSearch instanceof URLSearchParams) {\n urlOrSearch.set(coiSearchParamName, value);\n }\n else {\n urlOrSearch[coiSearchParamName] = value;\n }\n }\n COI.addSearchParam = addSearchParam;\n})(COI || (COI = {}));\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","/**\n * Returns the last element of an array.\n * @param array The array.\n * @param n Which element from the end (default is zero).\n */\nexport function tail(array, n = 0) {\n return array[array.length - (1 + n)];\n}\nexport function tail2(arr) {\n if (arr.length === 0) {\n throw new Error('Invalid tail call');\n }\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function equals(one, other, itemEquals = (a, b) => a === b) {\n if (one === other) {\n return true;\n }\n if (!one || !other) {\n return false;\n }\n if (one.length !== other.length) {\n return false;\n }\n for (let i = 0, len = one.length; i < len; i++) {\n if (!itemEquals(one[i], other[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Remove the element at `index` by replacing it with the last element. This is faster than `splice`\n * but changes the order of the array\n */\nexport function removeFastWithoutKeepingOrder(array, index) {\n const last = array.length - 1;\n if (index < last) {\n array[index] = array[last];\n }\n array.pop();\n}\n/**\n * Performs a binary search algorithm over a sorted array.\n *\n * @param array The array being searched.\n * @param key The value we search for.\n * @param comparator A function that takes two array elements and returns zero\n * if they are equal, a negative number if the first element precedes the\n * second one in the sorting order, or a positive number if the second element\n * precedes the first one.\n * @return See {@link binarySearch2}\n */\nexport function binarySearch(array, key, comparator) {\n return binarySearch2(array.length, i => comparator(array[i], key));\n}\n/**\n * Performs a binary search algorithm over a sorted collection. Useful for cases\n * when we need to perform a binary search over something that isn't actually an\n * array, and converting data to an array would defeat the use of binary search\n * in the first place.\n *\n * @param length The collection length.\n * @param compareToKey A function that takes an index of an element in the\n * collection and returns zero if the value at this index is equal to the\n * search key, a negative number if the value precedes the search key in the\n * sorting order, or a positive number if the search key precedes the value.\n * @return A non-negative index of an element, if found. If not found, the\n * result is -(n+1) (or ~n, using bitwise notation), where n is the index\n * where the key should be inserted to maintain the sorting order.\n */\nexport function binarySearch2(length, compareToKey) {\n let low = 0, high = length - 1;\n while (low <= high) {\n const mid = ((low + high) / 2) | 0;\n const comp = compareToKey(mid);\n if (comp < 0) {\n low = mid + 1;\n }\n else if (comp > 0) {\n high = mid - 1;\n }\n else {\n return mid;\n }\n }\n return -(low + 1);\n}\nexport function quickSelect(nth, data, compare) {\n nth = nth | 0;\n if (nth >= data.length) {\n throw new TypeError('invalid index');\n }\n const pivotValue = data[Math.floor(data.length * Math.random())];\n const lower = [];\n const higher = [];\n const pivots = [];\n for (const value of data) {\n const val = compare(value, pivotValue);\n if (val < 0) {\n lower.push(value);\n }\n else if (val > 0) {\n higher.push(value);\n }\n else {\n pivots.push(value);\n }\n }\n if (nth < lower.length) {\n return quickSelect(nth, lower, compare);\n }\n else if (nth < lower.length + pivots.length) {\n return pivots[0];\n }\n else {\n return quickSelect(nth - (lower.length + pivots.length), higher, compare);\n }\n}\nexport function groupBy(data, compare) {\n const result = [];\n let currentGroup = undefined;\n for (const element of data.slice(0).sort(compare)) {\n if (!currentGroup || compare(currentGroup[0], element) !== 0) {\n currentGroup = [element];\n result.push(currentGroup);\n }\n else {\n currentGroup.push(element);\n }\n }\n return result;\n}\n/**\n * Splits the given items into a list of (non-empty) groups.\n * `shouldBeGrouped` is used to decide if two consecutive items should be in the same group.\n * The order of the items is preserved.\n */\nexport function* groupAdjacentBy(items, shouldBeGrouped) {\n let currentGroup;\n let last;\n for (const item of items) {\n if (last !== undefined && shouldBeGrouped(last, item)) {\n currentGroup.push(item);\n }\n else {\n if (currentGroup) {\n yield currentGroup;\n }\n currentGroup = [item];\n }\n last = item;\n }\n if (currentGroup) {\n yield currentGroup;\n }\n}\nexport function forEachAdjacent(arr, f) {\n for (let i = 0; i <= arr.length; i++) {\n f(i === 0 ? undefined : arr[i - 1], i === arr.length ? undefined : arr[i]);\n }\n}\nexport function forEachWithNeighbors(arr, f) {\n for (let i = 0; i < arr.length; i++) {\n f(i === 0 ? undefined : arr[i - 1], arr[i], i + 1 === arr.length ? undefined : arr[i + 1]);\n }\n}\n/**\n * @returns New array with all falsy values removed. The original array IS NOT modified.\n */\nexport function coalesce(array) {\n return array.filter((e) => !!e);\n}\n/**\n * Remove all falsy values from `array`. The original array IS modified.\n */\nexport function coalesceInPlace(array) {\n let to = 0;\n for (let i = 0; i < array.length; i++) {\n if (!!array[i]) {\n array[to] = array[i];\n to += 1;\n }\n }\n array.length = to;\n}\n/**\n * @returns false if the provided object is an array and not empty.\n */\nexport function isFalsyOrEmpty(obj) {\n return !Array.isArray(obj) || obj.length === 0;\n}\nexport function isNonEmptyArray(obj) {\n return Array.isArray(obj) && obj.length > 0;\n}\n/**\n * Removes duplicates from the given array. The optional keyFn allows to specify\n * how elements are checked for equality by returning an alternate value for each.\n */\nexport function distinct(array, keyFn = value => value) {\n const seen = new Set();\n return array.filter(element => {\n const key = keyFn(element);\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n}\nexport function firstOrDefault(array, notFoundValue) {\n return array.length > 0 ? array[0] : notFoundValue;\n}\nexport function range(arg, to) {\n let from = typeof to === 'number' ? arg : 0;\n if (typeof to === 'number') {\n from = arg;\n }\n else {\n from = 0;\n to = arg;\n }\n const result = [];\n if (from <= to) {\n for (let i = from; i < to; i++) {\n result.push(i);\n }\n }\n else {\n for (let i = from; i > to; i--) {\n result.push(i);\n }\n }\n return result;\n}\n/**\n * Insert `insertArr` inside `target` at `insertIndex`.\n * Please don't touch unless you understand https://jsperf.com/inserting-an-array-within-an-array\n */\nexport function arrayInsert(target, insertIndex, insertArr) {\n const before = target.slice(0, insertIndex);\n const after = target.slice(insertIndex);\n return before.concat(insertArr, after);\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.unshift(value);\n }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.push(value);\n }\n}\nexport function pushMany(arr, items) {\n for (const item of items) {\n arr.push(item);\n }\n}\nexport function asArray(x) {\n return Array.isArray(x) ? x : [x];\n}\n/**\n * Insert the new items in the array.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start inserting elements.\n * @param newItems The items to be inserted\n */\nexport function insertInto(array, start, newItems) {\n const startIdx = getActualStartIndex(array, start);\n const originalLength = array.length;\n const newItemsLength = newItems.length;\n array.length = originalLength + newItemsLength;\n // Move the items after the start index, start from the end so that we don't overwrite any value.\n for (let i = originalLength - 1; i >= startIdx; i--) {\n array[i + newItemsLength] = array[i];\n }\n for (let i = 0; i < newItemsLength; i++) {\n array[i + startIdx] = newItems[i];\n }\n}\n/**\n * Removes elements from an array and inserts new elements in their place, returning the deleted elements. Alternative to the native Array.splice method, it\n * can only support limited number of items due to the maximum call stack size limit.\n * @param array The original array.\n * @param start The zero-based location in the array from which to start removing elements.\n * @param deleteCount The number of elements to remove.\n * @returns An array containing the elements that were deleted.\n */\nexport function splice(array, start, deleteCount, newItems) {\n const index = getActualStartIndex(array, start);\n let result = array.splice(index, deleteCount);\n if (result === undefined) {\n // see https://bugs.webkit.org/show_bug.cgi?id=261140\n result = [];\n }\n insertInto(array, index, newItems);\n return result;\n}\n/**\n * Determine the actual start index (same logic as the native splice() or slice())\n * If greater than the length of the array, start will be set to the length of the array. In this case, no element will be deleted but the method will behave as an adding function, adding as many element as item[n*] provided.\n * If negative, it will begin that many elements from the end of the array. (In this case, the origin -1, meaning -n is the index of the nth last element, and is therefore equivalent to the index of array.length - n.) If array.length + start is less than 0, it will begin from index 0.\n * @param array The target array.\n * @param start The operation index.\n */\nfunction getActualStartIndex(array, start) {\n return start < 0 ? Math.max(start + array.length, 0) : Math.min(start, array.length);\n}\nexport var CompareResult;\n(function (CompareResult) {\n function isLessThan(result) {\n return result < 0;\n }\n CompareResult.isLessThan = isLessThan;\n function isLessThanOrEqual(result) {\n return result <= 0;\n }\n CompareResult.isLessThanOrEqual = isLessThanOrEqual;\n function isGreaterThan(result) {\n return result > 0;\n }\n CompareResult.isGreaterThan = isGreaterThan;\n function isNeitherLessOrGreaterThan(result) {\n return result === 0;\n }\n CompareResult.isNeitherLessOrGreaterThan = isNeitherLessOrGreaterThan;\n CompareResult.greaterThan = 1;\n CompareResult.lessThan = -1;\n CompareResult.neitherLessOrGreaterThan = 0;\n})(CompareResult || (CompareResult = {}));\nexport function compareBy(selector, comparator) {\n return (a, b) => comparator(selector(a), selector(b));\n}\nexport function tieBreakComparators(...comparators) {\n return (item1, item2) => {\n for (const comparator of comparators) {\n const result = comparator(item1, item2);\n if (!CompareResult.isNeitherLessOrGreaterThan(result)) {\n return result;\n }\n }\n return CompareResult.neitherLessOrGreaterThan;\n };\n}\n/**\n * The natural order on numbers.\n*/\nexport const numberComparator = (a, b) => a - b;\nexport const booleanComparator = (a, b) => numberComparator(a ? 1 : 0, b ? 1 : 0);\nexport function reverseOrder(comparator) {\n return (a, b) => -comparator(a, b);\n}\nexport class ArrayQueue {\n /**\n * Constructs a queue that is backed by the given array. Runtime is O(1).\n */\n constructor(items) {\n this.items = items;\n this.firstIdx = 0;\n this.lastIdx = this.items.length - 1;\n }\n get length() {\n return this.lastIdx - this.firstIdx + 1;\n }\n /**\n * Consumes elements from the beginning of the queue as long as the predicate returns true.\n * If no elements were consumed, `null` is returned. Has a runtime of O(result.length).\n */\n takeWhile(predicate) {\n // P(k) := k <= this.lastIdx && predicate(this.items[k])\n // Find s := min { k | k >= this.firstIdx && !P(k) } and return this.data[this.firstIdx...s)\n let startIdx = this.firstIdx;\n while (startIdx < this.items.length && predicate(this.items[startIdx])) {\n startIdx++;\n }\n const result = startIdx === this.firstIdx ? null : this.items.slice(this.firstIdx, startIdx);\n this.firstIdx = startIdx;\n return result;\n }\n /**\n * Consumes elements from the end of the queue as long as the predicate returns true.\n * If no elements were consumed, `null` is returned.\n * The result has the same order as the underlying array!\n */\n takeFromEndWhile(predicate) {\n // P(k) := this.firstIdx >= k && predicate(this.items[k])\n // Find s := max { k | k <= this.lastIdx && !P(k) } and return this.data(s...this.lastIdx]\n let endIdx = this.lastIdx;\n while (endIdx >= 0 && predicate(this.items[endIdx])) {\n endIdx--;\n }\n const result = endIdx === this.lastIdx ? null : this.items.slice(endIdx + 1, this.lastIdx + 1);\n this.lastIdx = endIdx;\n return result;\n }\n peek() {\n if (this.length === 0) {\n return undefined;\n }\n return this.items[this.firstIdx];\n }\n dequeue() {\n const result = this.items[this.firstIdx];\n this.firstIdx++;\n return result;\n }\n takeCount(count) {\n const result = this.items.slice(this.firstIdx, this.firstIdx + count);\n this.firstIdx += count;\n return result;\n }\n}\n/**\n * This class is faster than an iterator and array for lazy computed data.\n*/\nexport class CallbackIterable {\n constructor(\n /**\n * Calls the callback for every item.\n * Stops when the callback returns false.\n */\n iterate) {\n this.iterate = iterate;\n }\n toArray() {\n const result = [];\n this.iterate(item => { result.push(item); return true; });\n return result;\n }\n filter(predicate) {\n return new CallbackIterable(cb => this.iterate(item => predicate(item) ? cb(item) : true));\n }\n map(mapFn) {\n return new CallbackIterable(cb => this.iterate(item => cb(mapFn(item))));\n }\n findLast(predicate) {\n let result;\n this.iterate(item => {\n if (predicate(item)) {\n result = item;\n }\n return true;\n });\n return result;\n }\n findLastMaxBy(comparator) {\n let result;\n let first = true;\n this.iterate(item => {\n if (first || CompareResult.isGreaterThan(comparator(item, result))) {\n first = false;\n result = item;\n }\n return true;\n });\n return result;\n }\n}\nCallbackIterable.empty = new CallbackIterable(_callback => { });\n/**\n * Represents a re-arrangement of items in an array.\n */\nexport class Permutation {\n constructor(_indexMap) {\n this._indexMap = _indexMap;\n }\n /**\n * Returns a permutation that sorts the given array according to the given compare function.\n */\n static createSortPermutation(arr, compareFn) {\n const sortIndices = Array.from(arr.keys()).sort((index1, index2) => compareFn(arr[index1], arr[index2]));\n return new Permutation(sortIndices);\n }\n /**\n * Returns a new array with the elements of the given array re-arranged according to this permutation.\n */\n apply(arr) {\n return arr.map((_, index) => arr[this._indexMap[index]]);\n }\n /**\n * Returns a new permutation that undoes the re-arrangement of this permutation.\n */\n inverse() {\n const inverseIndexMap = this._indexMap.slice();\n for (let i = 0; i < this._indexMap.length; i++) {\n inverseIndexMap[this._indexMap[i]] = i;\n }\n return new Permutation(inverseIndexMap);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../../common/core/range.js';\nexport const _debugComposition = false;\nexport class TextAreaState {\n constructor(value, \n /** the offset where selection starts inside `value` */\n selectionStart, \n /** the offset where selection ends inside `value` */\n selectionEnd, \n /** the editor range in the view coordinate system that matches the selection inside `value` */\n selection, \n /** the visible line count (wrapped, not necessarily matching \\n characters) for the text in `value` before `selectionStart` */\n newlineCountBeforeSelection) {\n this.value = value;\n this.selectionStart = selectionStart;\n this.selectionEnd = selectionEnd;\n this.selection = selection;\n this.newlineCountBeforeSelection = newlineCountBeforeSelection;\n }\n toString() {\n return `[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`;\n }\n static readFromTextArea(textArea, previousState) {\n const value = textArea.getValue();\n const selectionStart = textArea.getSelectionStart();\n const selectionEnd = textArea.getSelectionEnd();\n let newlineCountBeforeSelection = undefined;\n if (previousState) {\n const valueBeforeSelectionStart = value.substring(0, selectionStart);\n const previousValueBeforeSelectionStart = previousState.value.substring(0, previousState.selectionStart);\n if (valueBeforeSelectionStart === previousValueBeforeSelectionStart) {\n newlineCountBeforeSelection = previousState.newlineCountBeforeSelection;\n }\n }\n return new TextAreaState(value, selectionStart, selectionEnd, null, newlineCountBeforeSelection);\n }\n collapseSelection() {\n if (this.selectionStart === this.value.length) {\n return this;\n }\n return new TextAreaState(this.value, this.value.length, this.value.length, null, undefined);\n }\n writeToTextArea(reason, textArea, select) {\n if (_debugComposition) {\n console.log(`writeToTextArea ${reason}: ${this.toString()}`);\n }\n textArea.setValue(reason, this.value);\n if (select) {\n textArea.setSelectionRange(reason, this.selectionStart, this.selectionEnd);\n }\n }\n deduceEditorPosition(offset) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (offset <= this.selectionStart) {\n const str = this.value.substring(offset, this.selectionStart);\n return this._finishDeduceEditorPosition((_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.getStartPosition()) !== null && _b !== void 0 ? _b : null, str, -1);\n }\n if (offset >= this.selectionEnd) {\n const str = this.value.substring(this.selectionEnd, offset);\n return this._finishDeduceEditorPosition((_d = (_c = this.selection) === null || _c === void 0 ? void 0 : _c.getEndPosition()) !== null && _d !== void 0 ? _d : null, str, 1);\n }\n const str1 = this.value.substring(this.selectionStart, offset);\n if (str1.indexOf(String.fromCharCode(8230)) === -1) {\n return this._finishDeduceEditorPosition((_f = (_e = this.selection) === null || _e === void 0 ? void 0 : _e.getStartPosition()) !== null && _f !== void 0 ? _f : null, str1, 1);\n }\n const str2 = this.value.substring(offset, this.selectionEnd);\n return this._finishDeduceEditorPosition((_h = (_g = this.selection) === null || _g === void 0 ? void 0 : _g.getEndPosition()) !== null && _h !== void 0 ? _h : null, str2, -1);\n }\n _finishDeduceEditorPosition(anchor, deltaText, signum) {\n let lineFeedCnt = 0;\n let lastLineFeedIndex = -1;\n while ((lastLineFeedIndex = deltaText.indexOf('\\n', lastLineFeedIndex + 1)) !== -1) {\n lineFeedCnt++;\n }\n return [anchor, signum * deltaText.length, lineFeedCnt];\n }\n static deduceInput(previousState, currentState, couldBeEmojiInput) {\n if (!previousState) {\n // This is the EMPTY state\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n if (_debugComposition) {\n console.log('------------------------deduceInput');\n console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n console.log(`CURRENT STATE: ${currentState.toString()}`);\n }\n const prefixLength = Math.min(strings.commonPrefixLength(previousState.value, currentState.value), previousState.selectionStart, currentState.selectionStart);\n const suffixLength = Math.min(strings.commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd, currentState.value.length - currentState.selectionEnd);\n const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n const previousSelectionStart = previousState.selectionStart - prefixLength;\n const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n const currentSelectionStart = currentState.selectionStart - prefixLength;\n const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n if (_debugComposition) {\n console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n }\n if (currentSelectionStart === currentSelectionEnd) {\n // no current selection\n const replacePreviousCharacters = (previousState.selectionStart - prefixLength);\n if (_debugComposition) {\n console.log(`REMOVE PREVIOUS: ${replacePreviousCharacters} chars`);\n }\n return {\n text: currentValue,\n replacePrevCharCnt: replacePreviousCharacters,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n // there is a current selection => composition case\n const replacePreviousCharacters = previousSelectionEnd - previousSelectionStart;\n return {\n text: currentValue,\n replacePrevCharCnt: replacePreviousCharacters,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n static deduceAndroidCompositionInput(previousState, currentState) {\n if (!previousState) {\n // This is the EMPTY state\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: 0\n };\n }\n if (_debugComposition) {\n console.log('------------------------deduceAndroidCompositionInput');\n console.log(`PREVIOUS STATE: ${previousState.toString()}`);\n console.log(`CURRENT STATE: ${currentState.toString()}`);\n }\n if (previousState.value === currentState.value) {\n return {\n text: '',\n replacePrevCharCnt: 0,\n replaceNextCharCnt: 0,\n positionDelta: currentState.selectionEnd - previousState.selectionEnd\n };\n }\n const prefixLength = Math.min(strings.commonPrefixLength(previousState.value, currentState.value), previousState.selectionEnd);\n const suffixLength = Math.min(strings.commonSuffixLength(previousState.value, currentState.value), previousState.value.length - previousState.selectionEnd);\n const previousValue = previousState.value.substring(prefixLength, previousState.value.length - suffixLength);\n const currentValue = currentState.value.substring(prefixLength, currentState.value.length - suffixLength);\n const previousSelectionStart = previousState.selectionStart - prefixLength;\n const previousSelectionEnd = previousState.selectionEnd - prefixLength;\n const currentSelectionStart = currentState.selectionStart - prefixLength;\n const currentSelectionEnd = currentState.selectionEnd - prefixLength;\n if (_debugComposition) {\n console.log(`AFTER DIFFING PREVIOUS STATE: <${previousValue}>, selectionStart: ${previousSelectionStart}, selectionEnd: ${previousSelectionEnd}`);\n console.log(`AFTER DIFFING CURRENT STATE: <${currentValue}>, selectionStart: ${currentSelectionStart}, selectionEnd: ${currentSelectionEnd}`);\n }\n return {\n text: currentValue,\n replacePrevCharCnt: previousSelectionEnd,\n replaceNextCharCnt: previousValue.length - previousSelectionEnd,\n positionDelta: currentSelectionEnd - currentValue.length\n };\n }\n}\nTextAreaState.EMPTY = new TextAreaState('', 0, 0, null, undefined);\nexport class PagedScreenReaderStrategy {\n static _getPageOfLine(lineNumber, linesPerPage) {\n return Math.floor((lineNumber - 1) / linesPerPage);\n }\n static _getRangeForPage(page, linesPerPage) {\n const offset = page * linesPerPage;\n const startLineNumber = offset + 1;\n const endLineNumber = offset + linesPerPage;\n return new Range(startLineNumber, 1, endLineNumber + 1, 1);\n }\n static fromEditorSelection(model, selection, linesPerPage, trimLongText) {\n // Chromium handles very poorly text even of a few thousand chars\n // Cut text to avoid stalling the entire UI\n const LIMIT_CHARS = 500;\n const selectionStartPage = PagedScreenReaderStrategy._getPageOfLine(selection.startLineNumber, linesPerPage);\n const selectionStartPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionStartPage, linesPerPage);\n const selectionEndPage = PagedScreenReaderStrategy._getPageOfLine(selection.endLineNumber, linesPerPage);\n const selectionEndPageRange = PagedScreenReaderStrategy._getRangeForPage(selectionEndPage, linesPerPage);\n let pretextRange = selectionStartPageRange.intersectRanges(new Range(1, 1, selection.startLineNumber, selection.startColumn));\n if (trimLongText && model.getValueLengthInRange(pretextRange, 1 /* EndOfLinePreference.LF */) > LIMIT_CHARS) {\n const pretextStart = model.modifyPosition(pretextRange.getEndPosition(), -LIMIT_CHARS);\n pretextRange = Range.fromPositions(pretextStart, pretextRange.getEndPosition());\n }\n const pretext = model.getValueInRange(pretextRange, 1 /* EndOfLinePreference.LF */);\n const lastLine = model.getLineCount();\n const lastLineMaxColumn = model.getLineMaxColumn(lastLine);\n let posttextRange = selectionEndPageRange.intersectRanges(new Range(selection.endLineNumber, selection.endColumn, lastLine, lastLineMaxColumn));\n if (trimLongText && model.getValueLengthInRange(posttextRange, 1 /* EndOfLinePreference.LF */) > LIMIT_CHARS) {\n const posttextEnd = model.modifyPosition(posttextRange.getStartPosition(), LIMIT_CHARS);\n posttextRange = Range.fromPositions(posttextRange.getStartPosition(), posttextEnd);\n }\n const posttext = model.getValueInRange(posttextRange, 1 /* EndOfLinePreference.LF */);\n let text;\n if (selectionStartPage === selectionEndPage || selectionStartPage + 1 === selectionEndPage) {\n // take full selection\n text = model.getValueInRange(selection, 1 /* EndOfLinePreference.LF */);\n }\n else {\n const selectionRange1 = selectionStartPageRange.intersectRanges(selection);\n const selectionRange2 = selectionEndPageRange.intersectRanges(selection);\n text = (model.getValueInRange(selectionRange1, 1 /* EndOfLinePreference.LF */)\n + String.fromCharCode(8230)\n + model.getValueInRange(selectionRange2, 1 /* EndOfLinePreference.LF */));\n }\n if (trimLongText && text.length > 2 * LIMIT_CHARS) {\n text = text.substring(0, LIMIT_CHARS) + String.fromCharCode(8230) + text.substring(text.length - LIMIT_CHARS, text.length);\n }\n return new TextAreaState(pretext + text + posttext, pretext.length, pretext.length + text.length, selection, pretextRange.endLineNumber - pretextRange.startLineNumber);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUnion = exports.validateArray = exports.usePattern = exports.callValidateCode = exports.schemaProperties = exports.allSchemaProperties = exports.noPropertyInData = exports.propertyInData = exports.isOwnProperty = exports.hasPropFunc = exports.reportMissingProp = exports.checkMissingProp = exports.checkReportMissingProp = void 0;\nconst codegen_1 = require(\"../compile/codegen\");\nconst util_1 = require(\"../compile/util\");\nconst names_1 = require(\"../compile/names\");\nconst util_2 = require(\"../compile/util\");\nfunction checkReportMissingProp(cxt, prop) {\n const { gen, data, it } = cxt;\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({ missingProperty: (0, codegen_1._) `${prop}` }, true);\n cxt.error();\n });\n}\nexports.checkReportMissingProp = checkReportMissingProp;\nfunction checkMissingProp({ gen, data, it: { opts } }, properties, missing) {\n return (0, codegen_1.or)(...properties.map((prop) => (0, codegen_1.and)(noPropertyInData(gen, data, prop, opts.ownProperties), (0, codegen_1._) `${missing} = ${prop}`)));\n}\nexports.checkMissingProp = checkMissingProp;\nfunction reportMissingProp(cxt, missing) {\n cxt.setParams({ missingProperty: missing }, true);\n cxt.error();\n}\nexports.reportMissingProp = reportMissingProp;\nfunction hasPropFunc(gen) {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: (0, codegen_1._) `Object.prototype.hasOwnProperty`,\n });\n}\nexports.hasPropFunc = hasPropFunc;\nfunction isOwnProperty(gen, data, property) {\n return (0, codegen_1._) `${hasPropFunc(gen)}.call(${data}, ${property})`;\n}\nexports.isOwnProperty = isOwnProperty;\nfunction propertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} !== undefined`;\n return ownProperties ? (0, codegen_1._) `${cond} && ${isOwnProperty(gen, data, property)}` : cond;\n}\nexports.propertyInData = propertyInData;\nfunction noPropertyInData(gen, data, property, ownProperties) {\n const cond = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(property)} === undefined`;\n return ownProperties ? (0, codegen_1.or)(cond, (0, codegen_1.not)(isOwnProperty(gen, data, property))) : cond;\n}\nexports.noPropertyInData = noPropertyInData;\nfunction allSchemaProperties(schemaMap) {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : [];\n}\nexports.allSchemaProperties = allSchemaProperties;\nfunction schemaProperties(it, schemaMap) {\n return allSchemaProperties(schemaMap).filter((p) => !(0, util_1.alwaysValidSchema)(it, schemaMap[p]));\n}\nexports.schemaProperties = schemaProperties;\nfunction callValidateCode({ schemaCode, data, it: { gen, topSchemaRef, schemaPath, errorPath }, it }, func, context, passSchema) {\n const dataAndSchema = passSchema ? (0, codegen_1._) `${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data;\n const valCxt = [\n [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, errorPath)],\n [names_1.default.parentData, it.parentData],\n [names_1.default.parentDataProperty, it.parentDataProperty],\n [names_1.default.rootData, names_1.default.rootData],\n ];\n if (it.opts.dynamicRef)\n valCxt.push([names_1.default.dynamicAnchors, names_1.default.dynamicAnchors]);\n const args = (0, codegen_1._) `${dataAndSchema}, ${gen.object(...valCxt)}`;\n return context !== codegen_1.nil ? (0, codegen_1._) `${func}.call(${context}, ${args})` : (0, codegen_1._) `${func}(${args})`;\n}\nexports.callValidateCode = callValidateCode;\nconst newRegExp = (0, codegen_1._) `new RegExp`;\nfunction usePattern({ gen, it: { opts } }, pattern) {\n const u = opts.unicodeRegExp ? \"u\" : \"\";\n const { regExp } = opts.code;\n const rx = regExp(pattern, u);\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: (0, codegen_1._) `${regExp.code === \"new RegExp\" ? newRegExp : (0, util_2.useFunc)(gen, regExp)}(${pattern}, ${u})`,\n });\n}\nexports.usePattern = usePattern;\nfunction validateArray(cxt) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true);\n validateItems(() => gen.assign(validArr, false));\n return validArr;\n }\n gen.var(valid, true);\n validateItems(() => gen.break());\n return valid;\n function validateItems(notValid) {\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword,\n dataProp: i,\n dataPropType: util_1.Type.Num,\n }, valid);\n gen.if((0, codegen_1.not)(valid), notValid);\n });\n }\n}\nexports.validateArray = validateArray;\nfunction validateUnion(cxt) {\n const { gen, schema, keyword, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const alwaysValid = schema.some((sch) => (0, util_1.alwaysValidSchema)(it, sch));\n if (alwaysValid && !it.opts.unevaluated)\n return;\n const valid = gen.let(\"valid\", false);\n const schValid = gen.name(\"_valid\");\n gen.block(() => schema.forEach((_sch, i) => {\n const schCxt = cxt.subschema({\n keyword,\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n gen.assign(valid, (0, codegen_1._) `${valid} || ${schValid}`);\n const merged = cxt.mergeValidEvaluated(schCxt, schValid);\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged)\n gen.if((0, codegen_1.not)(valid));\n }));\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n}\nexports.validateUnion = validateUnion;\n//# sourceMappingURL=code.js.map","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './highlightDecorations.css';\nimport { OverviewRulerLane } from '../../../common/model.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport { activeContrastBorder, editorSelectionHighlight, minimapSelectionOccurrenceHighlight, overviewRulerSelectionHighlightForeground, registerColor } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerThemingParticipant, themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nconst wordHighlightBackground = registerColor('editor.wordHighlightBackground', { dark: '#575757B8', light: '#57575740', hcDark: null, hcLight: null }, nls.localize('wordHighlight', 'Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations.'), true);\nregisterColor('editor.wordHighlightStrongBackground', { dark: '#004972B8', light: '#0e639c40', hcDark: null, hcLight: null }, nls.localize('wordHighlightStrong', 'Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations.'), true);\nregisterColor('editor.wordHighlightTextBackground', { light: wordHighlightBackground, dark: wordHighlightBackground, hcDark: wordHighlightBackground, hcLight: wordHighlightBackground }, nls.localize('wordHighlightText', 'Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst wordHighlightBorder = registerColor('editor.wordHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightBorder', 'Border color of a symbol during read-access, like reading a variable.'));\nregisterColor('editor.wordHighlightStrongBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('wordHighlightStrongBorder', 'Border color of a symbol during write-access, like writing to a variable.'));\nregisterColor('editor.wordHighlightTextBorder', { light: wordHighlightBorder, dark: wordHighlightBorder, hcDark: wordHighlightBorder, hcLight: wordHighlightBorder }, nls.localize('wordHighlightTextBorder', \"Border color of a textual occurrence for a symbol.\"));\nconst overviewRulerWordHighlightForeground = registerColor('editorOverviewRuler.wordHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerWordHighlightForeground', 'Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightStrongForeground = registerColor('editorOverviewRuler.wordHighlightStrongForeground', { dark: '#C0A0C0CC', light: '#C0A0C0CC', hcDark: '#C0A0C0CC', hcLight: '#C0A0C0CC' }, nls.localize('overviewRulerWordHighlightStrongForeground', 'Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst overviewRulerWordHighlightTextForeground = registerColor('editorOverviewRuler.wordHighlightTextForeground', { dark: overviewRulerSelectionHighlightForeground, light: overviewRulerSelectionHighlightForeground, hcDark: overviewRulerSelectionHighlightForeground, hcLight: overviewRulerSelectionHighlightForeground }, nls.localize('overviewRulerWordHighlightTextForeground', 'Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations.'), true);\nconst _WRITE_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight-strong',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlightStrong',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightStrongForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _TEXT_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight-text',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlightText',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightTextForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS = ModelDecorationOptions.register({\n description: 'selection-highlight-overview',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'selectionHighlight',\n overviewRuler: {\n color: themeColorFromId(overviewRulerSelectionHighlightForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nconst _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW = ModelDecorationOptions.register({\n description: 'selection-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'selectionHighlight',\n});\nconst _REGULAR_OPTIONS = ModelDecorationOptions.register({\n description: 'word-highlight',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'wordHighlight',\n overviewRuler: {\n color: themeColorFromId(overviewRulerWordHighlightForeground),\n position: OverviewRulerLane.Center\n },\n minimap: {\n color: themeColorFromId(minimapSelectionOccurrenceHighlight),\n position: 1 /* MinimapPosition.Inline */\n },\n});\nexport function getHighlightDecorationOptions(kind) {\n if (kind === DocumentHighlightKind.Write) {\n return _WRITE_OPTIONS;\n }\n else if (kind === DocumentHighlightKind.Text) {\n return _TEXT_OPTIONS;\n }\n else {\n return _REGULAR_OPTIONS;\n }\n}\nexport function getSelectionHighlightDecorationOptions(hasSemanticHighlights) {\n // Show in overviewRuler only if model has no semantic highlighting\n return (hasSemanticHighlights ? _SELECTION_HIGHLIGHT_OPTIONS_NO_OVERVIEW : _SELECTION_HIGHLIGHT_OPTIONS);\n}\nregisterThemingParticipant((theme, collector) => {\n const selectionHighlight = theme.getColor(editorSelectionHighlight);\n if (selectionHighlight) {\n collector.addRule(`.monaco-editor .selectionHighlight { background-color: ${selectionHighlight.transparent(0.5)}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from '../../../../base/common/observable.js';\nimport { firstNonWhitespaceIndex } from '../../../../base/common/strings.js';\nimport { CursorColumns } from '../../../common/core/cursorColumns.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { localize } from '../../../../nls.js';\nexport class InlineCompletionContextKeys extends Disposable {\n constructor(contextKeyService, model) {\n super();\n this.contextKeyService = contextKeyService;\n this.model = model;\n this.inlineCompletionVisible = InlineCompletionContextKeys.inlineSuggestionVisible.bindTo(this.contextKeyService);\n this.inlineCompletionSuggestsIndentation = InlineCompletionContextKeys.inlineSuggestionHasIndentation.bindTo(this.contextKeyService);\n this.inlineCompletionSuggestsIndentationLessThanTabSize = InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService);\n this.suppressSuggestions = InlineCompletionContextKeys.suppressSuggestions.bindTo(this.contextKeyService);\n this._register(autorun(reader => {\n /** @description update context key: inlineCompletionVisible, suppressSuggestions */\n const model = this.model.read(reader);\n const state = model === null || model === void 0 ? void 0 : model.state.read(reader);\n const isInlineCompletionVisible = !!(state === null || state === void 0 ? void 0 : state.inlineCompletion) && (state === null || state === void 0 ? void 0 : state.primaryGhostText) !== undefined && !(state === null || state === void 0 ? void 0 : state.primaryGhostText.isEmpty());\n this.inlineCompletionVisible.set(isInlineCompletionVisible);\n if ((state === null || state === void 0 ? void 0 : state.primaryGhostText) && (state === null || state === void 0 ? void 0 : state.inlineCompletion)) {\n this.suppressSuggestions.set(state.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions);\n }\n }));\n this._register(autorun(reader => {\n /** @description update context key: inlineCompletionSuggestsIndentation, inlineCompletionSuggestsIndentationLessThanTabSize */\n const model = this.model.read(reader);\n let startsWithIndentation = false;\n let startsWithIndentationLessThanTabSize = true;\n const ghostText = model === null || model === void 0 ? void 0 : model.primaryGhostText.read(reader);\n if (!!(model === null || model === void 0 ? void 0 : model.selectedSuggestItem) && ghostText && ghostText.parts.length > 0) {\n const { column, lines } = ghostText.parts[0];\n const firstLine = lines[0];\n const indentationEndColumn = model.textModel.getLineIndentColumn(ghostText.lineNumber);\n const inIndentation = column <= indentationEndColumn;\n if (inIndentation) {\n let firstNonWsIdx = firstNonWhitespaceIndex(firstLine);\n if (firstNonWsIdx === -1) {\n firstNonWsIdx = firstLine.length - 1;\n }\n startsWithIndentation = firstNonWsIdx > 0;\n const tabSize = model.textModel.getOptions().tabSize;\n const visibleColumnIndentation = CursorColumns.visibleColumnFromColumn(firstLine, firstNonWsIdx + 1, tabSize);\n startsWithIndentationLessThanTabSize = visibleColumnIndentation < tabSize;\n }\n }\n this.inlineCompletionSuggestsIndentation.set(startsWithIndentation);\n this.inlineCompletionSuggestsIndentationLessThanTabSize.set(startsWithIndentationLessThanTabSize);\n }));\n }\n}\nInlineCompletionContextKeys.inlineSuggestionVisible = new RawContextKey('inlineSuggestionVisible', false, localize('inlineSuggestionVisible', \"Whether an inline suggestion is visible\"));\nInlineCompletionContextKeys.inlineSuggestionHasIndentation = new RawContextKey('inlineSuggestionHasIndentation', false, localize('inlineSuggestionHasIndentation', \"Whether the inline suggestion starts with whitespace\"));\nInlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize = new RawContextKey('inlineSuggestionHasIndentationLessThanTabSize', true, localize('inlineSuggestionHasIndentationLessThanTabSize', \"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab\"));\nInlineCompletionContextKeys.suppressSuggestions = new RawContextKey('inlineSuggestionSuppressSuggestions', undefined, localize('suppressSuggestions', \"Whether suggestions should be suppressed for the current suggestion\"));\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var PanelsDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-panels';\n }\n }\n});\nexport var PanelsPlugin = {\n name: 'e-panels',\n install: function (Vue) {\n Vue.component(PanelsPlugin.name, PanelsDirective);\n }\n};\n/**\n * 'e-panels' directive represent a presets of VueJS dashboardlayout component\n * It must be contained in a dashboardlayout component(`ejs-dashboardlayout`).\n * ```html\n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var PanelDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-panel';\n }\n }\n});\nexport var PanelPlugin = {\n name: 'e-panel',\n install: function (Vue) {\n Vue.component(PanelPlugin.name, PanelDirective);\n }\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../../base/common/errors.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { autorunOpts } from '../../../../base/common/observable.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nconst array = [];\nexport function getReadonlyEmptyArray() {\n return array;\n}\nexport class ColumnRange {\n constructor(startColumn, endColumnExclusive) {\n this.startColumn = startColumn;\n this.endColumnExclusive = endColumnExclusive;\n if (startColumn > endColumnExclusive) {\n throw new BugIndicatingError(`startColumn ${startColumn} cannot be after endColumnExclusive ${endColumnExclusive}`);\n }\n }\n toRange(lineNumber) {\n return new Range(lineNumber, this.startColumn, lineNumber, this.endColumnExclusive);\n }\n equals(other) {\n return this.startColumn === other.startColumn\n && this.endColumnExclusive === other.endColumnExclusive;\n }\n}\nexport function applyObservableDecorations(editor, decorations) {\n const d = new DisposableStore();\n const decorationsCollection = editor.createDecorationsCollection();\n d.add(autorunOpts({ debugName: () => `Apply decorations from ${decorations.debugName}` }, reader => {\n const d = decorations.read(reader);\n decorationsCollection.set(d);\n }));\n d.add({\n dispose: () => {\n decorationsCollection.clear();\n }\n });\n return d;\n}\nexport function addPositions(pos1, pos2) {\n return new Position(pos1.lineNumber + pos2.lineNumber - 1, pos2.lineNumber === 1 ? pos1.column + pos2.column - 1 : pos2.column);\n}\nexport function subtractPositions(pos1, pos2) {\n return new Position(pos1.lineNumber - pos2.lineNumber + 1, pos1.lineNumber - pos2.lineNumber === 0 ? pos1.column - pos2.column + 1 : pos1.column);\n}\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n}(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code])?$/;\n\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?::(\\d+))?(?::(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[()]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^()]*)|(,.*$)/g, '');\n }\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').replace(/^.*?\\s+/, '');\n\n // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n var location = sanitizedLine.match(/ (\\(.+\\)$)/);\n\n // remove the parenthesized location from the line, if it was matched\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n\n // if a location was matched, pass it to extractLocation() otherwise pass all sanitizedLine\n // because this line doesn't have function name\n var locationParts = this.extractLocation(location ? location[1] : sanitizedLine);\n var functionName = location && sanitizedLine || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return filtered.map(function(line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n e.message.split('\\n').length > e.stacktrace.split('\\n').length)) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n if (match) {\n result.push(\n new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n })\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return filtered.map(function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^(]+\\(([^)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { asArray, compareBy, numberComparator } from '../../../../base/common/arrays.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { isEmptyMarkdownString, MarkdownString } from '../../../../base/common/htmlContent.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID } from './hoverActionIds.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport * as nls from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IOpenerService } from '../../../../platform/opener/common/opener.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { HoverVerbosityAction } from '../../../common/languages.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ClickAction, KeyDownAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { IHoverService, WorkbenchHoverDelegate } from '../../../../platform/hover/browser/hover.js';\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nimport { getHoverProviderResultsAsAsyncIterable } from './getHover.js';\nconst $ = dom.$;\nconst increaseHoverVerbosityIcon = registerIcon('hover-increase-verbosity', Codicon.add, nls.localize('increaseHoverVerbosity', 'Icon for increaseing hover verbosity.'));\nconst decreaseHoverVerbosityIcon = registerIcon('hover-decrease-verbosity', Codicon.remove, nls.localize('decreaseHoverVerbosity', 'Icon for decreasing hover verbosity.'));\nexport class MarkdownHover {\n constructor(owner, range, contents, isBeforeContent, ordinal, source = undefined) {\n this.owner = owner;\n this.range = range;\n this.contents = contents;\n this.isBeforeContent = isBeforeContent;\n this.ordinal = ordinal;\n this.source = source;\n }\n isValidForHoverAnchor(anchor) {\n return (anchor.type === 1 /* HoverAnchorType.Range */\n && this.range.startColumn <= anchor.range.startColumn\n && this.range.endColumn >= anchor.range.endColumn);\n }\n}\nclass HoverSource {\n constructor(hover, hoverProvider, hoverPosition) {\n this.hover = hover;\n this.hoverProvider = hoverProvider;\n this.hoverPosition = hoverPosition;\n }\n supportsVerbosityAction(hoverVerbosityAction) {\n var _a, _b;\n switch (hoverVerbosityAction) {\n case HoverVerbosityAction.Increase:\n return (_a = this.hover.canIncreaseVerbosity) !== null && _a !== void 0 ? _a : false;\n case HoverVerbosityAction.Decrease:\n return (_b = this.hover.canDecreaseVerbosity) !== null && _b !== void 0 ? _b : false;\n }\n }\n}\nlet MarkdownHoverParticipant = class MarkdownHoverParticipant {\n constructor(_editor, _languageService, _openerService, _configurationService, _languageFeaturesService, _keybindingService, _hoverService) {\n this._editor = _editor;\n this._languageService = _languageService;\n this._openerService = _openerService;\n this._configurationService = _configurationService;\n this._languageFeaturesService = _languageFeaturesService;\n this._keybindingService = _keybindingService;\n this._hoverService = _hoverService;\n this.hoverOrdinal = 3;\n }\n createLoadingMessage(anchor) {\n return new MarkdownHover(this, anchor.range, [new MarkdownString().appendText(nls.localize('modesContentHover.loading', \"Loading...\"))], false, 2000);\n }\n computeSync(anchor, lineDecorations) {\n if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n return [];\n }\n const model = this._editor.getModel();\n const lineNumber = anchor.range.startLineNumber;\n const maxColumn = model.getLineMaxColumn(lineNumber);\n const result = [];\n let index = 1000;\n const lineLength = model.getLineLength(lineNumber);\n const languageId = model.getLanguageIdAtPosition(anchor.range.startLineNumber, anchor.range.startColumn);\n const stopRenderingLineAfter = this._editor.getOption(117 /* EditorOption.stopRenderingLineAfter */);\n const maxTokenizationLineLength = this._configurationService.getValue('editor.maxTokenizationLineLength', {\n overrideIdentifier: languageId\n });\n let stopRenderingMessage = false;\n if (stopRenderingLineAfter >= 0 && lineLength > stopRenderingLineAfter && anchor.range.startColumn >= stopRenderingLineAfter) {\n stopRenderingMessage = true;\n result.push(new MarkdownHover(this, anchor.range, [{\n value: nls.localize('stopped rendering', \"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.\")\n }], false, index++));\n }\n if (!stopRenderingMessage && typeof maxTokenizationLineLength === 'number' && lineLength >= maxTokenizationLineLength) {\n result.push(new MarkdownHover(this, anchor.range, [{\n value: nls.localize('too many characters', \"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.\")\n }], false, index++));\n }\n let isBeforeContent = false;\n for (const d of lineDecorations) {\n const startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n const endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n const hoverMessage = d.options.hoverMessage;\n if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n continue;\n }\n if (d.options.beforeContentClassName) {\n isBeforeContent = true;\n }\n const range = new Range(anchor.range.startLineNumber, startColumn, anchor.range.startLineNumber, endColumn);\n result.push(new MarkdownHover(this, range, asArray(hoverMessage), isBeforeContent, index++));\n }\n return result;\n }\n computeAsync(anchor, lineDecorations, token) {\n if (!this._editor.hasModel() || anchor.type !== 1 /* HoverAnchorType.Range */) {\n return AsyncIterableObject.EMPTY;\n }\n const model = this._editor.getModel();\n const hoverProviderRegistry = this._languageFeaturesService.hoverProvider;\n if (!hoverProviderRegistry.has(model)) {\n return AsyncIterableObject.EMPTY;\n }\n const markdownHovers = this._getMarkdownHovers(hoverProviderRegistry, model, anchor, token);\n return markdownHovers;\n }\n _getMarkdownHovers(hoverProviderRegistry, model, anchor, token) {\n const position = anchor.range.getStartPosition();\n const hoverProviderResults = getHoverProviderResultsAsAsyncIterable(hoverProviderRegistry, model, position, token);\n const markdownHovers = hoverProviderResults.filter(item => !isEmptyMarkdownString(item.hover.contents))\n .map(item => {\n const range = item.hover.range ? Range.lift(item.hover.range) : anchor.range;\n const hoverSource = new HoverSource(item.hover, item.provider, position);\n return new MarkdownHover(this, range, item.hover.contents, false, item.ordinal, hoverSource);\n });\n return markdownHovers;\n }\n renderHoverParts(context, hoverParts) {\n this._renderedHoverParts = new MarkdownRenderedHoverParts(hoverParts, context.fragment, this._editor, this._languageService, this._openerService, this._keybindingService, this._hoverService, this._configurationService, context.onContentsChanged);\n return this._renderedHoverParts;\n }\n markdownHoverContentAtIndex(index) {\n var _a, _b;\n return (_b = (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.markdownHoverContentAtIndex(index)) !== null && _b !== void 0 ? _b : '';\n }\n doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n var _a, _b;\n return (_b = (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action)) !== null && _b !== void 0 ? _b : false;\n }\n updateMarkdownHoverVerbosityLevel(action, index, focus) {\n var _a;\n (_a = this._renderedHoverParts) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverPartVerbosityLevel(action, index, focus);\n }\n};\nMarkdownHoverParticipant = __decorate([\n __param(1, ILanguageService),\n __param(2, IOpenerService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeaturesService),\n __param(5, IKeybindingService),\n __param(6, IHoverService)\n], MarkdownHoverParticipant);\nexport { MarkdownHoverParticipant };\nclass MarkdownRenderedHoverParts extends Disposable {\n constructor(hoverParts, // we own!\n hoverPartsContainer, _editor, _languageService, _openerService, _keybindingService, _hoverService, _configurationService, _onFinishedRendering) {\n super();\n this._editor = _editor;\n this._languageService = _languageService;\n this._openerService = _openerService;\n this._keybindingService = _keybindingService;\n this._hoverService = _hoverService;\n this._configurationService = _configurationService;\n this._onFinishedRendering = _onFinishedRendering;\n this._focusedHoverPartIndex = -1;\n this._ongoingHoverOperations = new Map();\n this._renderedHoverParts = this._renderHoverParts(hoverParts, hoverPartsContainer, this._onFinishedRendering);\n this._register(toDisposable(() => {\n this._renderedHoverParts.forEach(renderedHoverPart => {\n renderedHoverPart.disposables.dispose();\n });\n }));\n this._register(toDisposable(() => {\n this._ongoingHoverOperations.forEach(operation => { operation.tokenSource.dispose(true); });\n }));\n }\n _renderHoverParts(hoverParts, hoverPartsContainer, onFinishedRendering) {\n hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n return hoverParts.map((hoverPart, hoverIndex) => {\n const renderedHoverPart = this._renderHoverPart(hoverIndex, hoverPart.contents, hoverPart.source, onFinishedRendering);\n hoverPartsContainer.appendChild(renderedHoverPart.renderedMarkdown);\n return renderedHoverPart;\n });\n }\n _renderHoverPart(hoverPartIndex, hoverContents, hoverSource, onFinishedRendering) {\n const { renderedMarkdown, disposables } = this._renderMarkdownContent(hoverContents, onFinishedRendering);\n if (!hoverSource) {\n return { renderedMarkdown, disposables };\n }\n const canIncreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Increase);\n const canDecreaseVerbosity = hoverSource.supportsVerbosityAction(HoverVerbosityAction.Decrease);\n if (!canIncreaseVerbosity && !canDecreaseVerbosity) {\n return { renderedMarkdown, disposables, hoverSource };\n }\n const actionsContainer = $('div.verbosity-actions');\n renderedMarkdown.prepend(actionsContainer);\n disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Increase, canIncreaseVerbosity));\n disposables.add(this._renderHoverExpansionAction(actionsContainer, HoverVerbosityAction.Decrease, canDecreaseVerbosity));\n this._register(dom.addDisposableListener(renderedMarkdown, dom.EventType.FOCUS_IN, (event) => {\n event.stopPropagation();\n this._focusedHoverPartIndex = hoverPartIndex;\n }));\n this._register(dom.addDisposableListener(renderedMarkdown, dom.EventType.FOCUS_OUT, (event) => {\n event.stopPropagation();\n this._focusedHoverPartIndex = -1;\n }));\n return { renderedMarkdown, disposables, hoverSource };\n }\n _renderMarkdownContent(markdownContent, onFinishedRendering) {\n const renderedMarkdown = $('div.hover-row');\n renderedMarkdown.tabIndex = 0;\n const renderedMarkdownContents = $('div.hover-row-contents');\n renderedMarkdown.appendChild(renderedMarkdownContents);\n const disposables = new DisposableStore();\n disposables.add(renderMarkdownInContainer(this._editor, renderedMarkdownContents, markdownContent, this._languageService, this._openerService, onFinishedRendering));\n return { renderedMarkdown, disposables };\n }\n _renderHoverExpansionAction(container, action, actionEnabled) {\n const store = new DisposableStore();\n const isActionIncrease = action === HoverVerbosityAction.Increase;\n const actionElement = dom.append(container, $(ThemeIcon.asCSSSelector(isActionIncrease ? increaseHoverVerbosityIcon : decreaseHoverVerbosityIcon)));\n actionElement.tabIndex = 0;\n const hoverDelegate = new WorkbenchHoverDelegate('mouse', false, { target: container, position: { hoverPosition: 0 /* HoverPosition.LEFT */ } }, this._configurationService, this._hoverService);\n store.add(this._hoverService.setupUpdatableHover(hoverDelegate, actionElement, labelForHoverVerbosityAction(this._keybindingService, action)));\n if (!actionEnabled) {\n actionElement.classList.add('disabled');\n return store;\n }\n actionElement.classList.add('enabled');\n const actionFunction = () => this.updateMarkdownHoverPartVerbosityLevel(action);\n store.add(new ClickAction(actionElement, actionFunction));\n store.add(new KeyDownAction(actionElement, actionFunction, [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]));\n return store;\n }\n async updateMarkdownHoverPartVerbosityLevel(action, index = -1, focus = true) {\n var _a;\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n const indexOfInterest = index !== -1 ? index : this._focusedHoverPartIndex;\n const hoverRenderedPart = this._getRenderedHoverPartAtIndex(indexOfInterest);\n if (!hoverRenderedPart || !((_a = hoverRenderedPart.hoverSource) === null || _a === void 0 ? void 0 : _a.supportsVerbosityAction(action))) {\n return;\n }\n const hoverSource = hoverRenderedPart.hoverSource;\n const newHover = await this._fetchHover(hoverSource, model, action);\n if (!newHover) {\n return;\n }\n const newHoverSource = new HoverSource(newHover, hoverSource.hoverProvider, hoverSource.hoverPosition);\n const newHoverRenderedPart = this._renderHoverPart(indexOfInterest, newHover.contents, newHoverSource, this._onFinishedRendering);\n this._replaceRenderedHoverPartAtIndex(indexOfInterest, newHoverRenderedPart);\n if (focus) {\n this._focusOnHoverPartWithIndex(indexOfInterest);\n }\n this._onFinishedRendering();\n }\n markdownHoverContentAtIndex(index) {\n var _a;\n const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n return (_a = hoverRenderedPart === null || hoverRenderedPart === void 0 ? void 0 : hoverRenderedPart.renderedMarkdown.innerText) !== null && _a !== void 0 ? _a : '';\n }\n doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n var _a;\n const hoverRenderedPart = this._getRenderedHoverPartAtIndex(index);\n if (!hoverRenderedPart || !((_a = hoverRenderedPart.hoverSource) === null || _a === void 0 ? void 0 : _a.supportsVerbosityAction(action))) {\n return false;\n }\n return true;\n }\n async _fetchHover(hoverSource, model, action) {\n let verbosityDelta = action === HoverVerbosityAction.Increase ? 1 : -1;\n const provider = hoverSource.hoverProvider;\n const ongoingHoverOperation = this._ongoingHoverOperations.get(provider);\n if (ongoingHoverOperation) {\n ongoingHoverOperation.tokenSource.cancel();\n verbosityDelta += ongoingHoverOperation.verbosityDelta;\n }\n const tokenSource = new CancellationTokenSource();\n this._ongoingHoverOperations.set(provider, { verbosityDelta, tokenSource });\n const context = { verbosityRequest: { verbosityDelta, previousHover: hoverSource.hover } };\n let hover;\n try {\n hover = await Promise.resolve(provider.provideHover(model, hoverSource.hoverPosition, tokenSource.token, context));\n }\n catch (e) {\n onUnexpectedExternalError(e);\n }\n tokenSource.dispose();\n this._ongoingHoverOperations.delete(provider);\n return hover;\n }\n _replaceRenderedHoverPartAtIndex(index, renderedHoverPart) {\n if (index >= this._renderHoverParts.length || index < 0) {\n return;\n }\n const currentRenderedHoverPart = this._renderedHoverParts[index];\n const currentRenderedMarkdown = currentRenderedHoverPart.renderedMarkdown;\n currentRenderedMarkdown.replaceWith(renderedHoverPart.renderedMarkdown);\n currentRenderedHoverPart.disposables.dispose();\n this._renderedHoverParts[index] = renderedHoverPart;\n }\n _focusOnHoverPartWithIndex(index) {\n this._renderedHoverParts[index].renderedMarkdown.focus();\n }\n _getRenderedHoverPartAtIndex(index) {\n return this._renderedHoverParts[index];\n }\n}\nexport function renderMarkdownHovers(context, hoverParts, editor, languageService, openerService) {\n // Sort hover parts to keep them stable since they might come in async, out-of-order\n hoverParts.sort(compareBy(hover => hover.ordinal, numberComparator));\n const disposables = new DisposableStore();\n for (const hoverPart of hoverParts) {\n disposables.add(renderMarkdownInContainer(editor, context.fragment, hoverPart.contents, languageService, openerService, context.onContentsChanged));\n }\n return disposables;\n}\nfunction renderMarkdownInContainer(editor, container, markdownStrings, languageService, openerService, onFinishedRendering) {\n const store = new DisposableStore();\n for (const contents of markdownStrings) {\n if (isEmptyMarkdownString(contents)) {\n continue;\n }\n const markdownHoverElement = $('div.markdown-hover');\n const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n const renderer = store.add(new MarkdownRenderer({ editor }, languageService, openerService));\n store.add(renderer.onDidRenderAsync(() => {\n hoverContentsElement.className = 'hover-contents code-hover-contents';\n onFinishedRendering();\n }));\n const renderedContents = store.add(renderer.render(contents));\n hoverContentsElement.appendChild(renderedContents.element);\n container.appendChild(markdownHoverElement);\n }\n return store;\n}\nexport function labelForHoverVerbosityAction(keybindingService, action) {\n switch (action) {\n case HoverVerbosityAction.Increase: {\n const kb = keybindingService.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);\n return kb ?\n nls.localize('increaseVerbosityWithKb', \"Increase Hover Verbosity ({0})\", kb.getLabel()) :\n nls.localize('increaseVerbosity', \"Increase Hover Verbosity\");\n }\n case HoverVerbosityAction.Decrease: {\n const kb = keybindingService.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);\n return kb ?\n nls.localize('decreaseVerbosityWithKb', \"Decrease Hover Verbosity ({0})\", kb.getLabel()) :\n nls.localize('decreaseVerbosity', \"Decrease Hover Verbosity\");\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from './browser.js';\nimport { BrowserFeatures } from './canIUse.js';\nimport { StandardKeyboardEvent } from './keyboardEvent.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { AbstractIdleValue, IntervalTimer, _runWhenIdle } from '../common/async.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport * as event from '../common/event.js';\nimport * as dompurify from './dompurify/dompurify.js';\nimport { Disposable, DisposableStore, toDisposable } from '../common/lifecycle.js';\nimport { FileAccess, RemoteAuthorities } from '../common/network.js';\nimport * as platform from '../common/platform.js';\nimport { hash } from '../common/hash.js';\nimport { ensureCodeWindow, mainWindow } from './window.js';\n//# region Multi-Window Support Utilities\nexport const { registerWindow, getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, hasWindow, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow } = (function () {\n const windows = new Map();\n ensureCodeWindow(mainWindow, 1);\n const mainWindowRegistration = { window: mainWindow, disposables: new DisposableStore() };\n windows.set(mainWindow.vscodeWindowId, mainWindowRegistration);\n const onDidRegisterWindow = new event.Emitter();\n const onDidUnregisterWindow = new event.Emitter();\n const onWillUnregisterWindow = new event.Emitter();\n function getWindowById(windowId, fallbackToMain) {\n const window = typeof windowId === 'number' ? windows.get(windowId) : undefined;\n return window !== null && window !== void 0 ? window : (fallbackToMain ? mainWindowRegistration : undefined);\n }\n return {\n onDidRegisterWindow: onDidRegisterWindow.event,\n onWillUnregisterWindow: onWillUnregisterWindow.event,\n onDidUnregisterWindow: onDidUnregisterWindow.event,\n registerWindow(window) {\n if (windows.has(window.vscodeWindowId)) {\n return Disposable.None;\n }\n const disposables = new DisposableStore();\n const registeredWindow = {\n window,\n disposables: disposables.add(new DisposableStore())\n };\n windows.set(window.vscodeWindowId, registeredWindow);\n disposables.add(toDisposable(() => {\n windows.delete(window.vscodeWindowId);\n onDidUnregisterWindow.fire(window);\n }));\n disposables.add(addDisposableListener(window, EventType.BEFORE_UNLOAD, () => {\n onWillUnregisterWindow.fire(window);\n }));\n onDidRegisterWindow.fire(registeredWindow);\n return disposables;\n },\n getWindows() {\n return windows.values();\n },\n getWindowsCount() {\n return windows.size;\n },\n getWindowId(targetWindow) {\n return targetWindow.vscodeWindowId;\n },\n hasWindow(windowId) {\n return windows.has(windowId);\n },\n getWindowById,\n getWindow(e) {\n var _a;\n const candidateNode = e;\n if ((_a = candidateNode === null || candidateNode === void 0 ? void 0 : candidateNode.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) {\n return candidateNode.ownerDocument.defaultView.window;\n }\n const candidateEvent = e;\n if (candidateEvent === null || candidateEvent === void 0 ? void 0 : candidateEvent.view) {\n return candidateEvent.view.window;\n }\n return mainWindow;\n },\n getDocument(e) {\n const candidateNode = e;\n return getWindow(candidateNode).document;\n }\n };\n})();\n//#endregion\nexport function clearNode(node) {\n while (node.firstChild) {\n node.firstChild.remove();\n }\n}\nclass DomListener {\n constructor(node, type, handler, options) {\n this._node = node;\n this._type = type;\n this._handler = handler;\n this._options = (options || false);\n this._node.addEventListener(this._type, this._handler, this._options);\n }\n dispose() {\n if (!this._handler) {\n // Already disposed\n return;\n }\n this._node.removeEventListener(this._type, this._handler, this._options);\n // Prevent leakers from holding on to the dom or handler func\n this._node = null;\n this._handler = null;\n }\n}\nexport function addDisposableListener(node, type, handler, useCaptureOrOptions) {\n return new DomListener(node, type, handler, useCaptureOrOptions);\n}\nfunction _wrapAsStandardMouseEvent(targetWindow, handler) {\n return function (e) {\n return handler(new StandardMouseEvent(targetWindow, e));\n };\n}\nfunction _wrapAsStandardKeyboardEvent(handler) {\n return function (e) {\n return handler(new StandardKeyboardEvent(e));\n };\n}\nexport const addStandardDisposableListener = function addStandardDisposableListener(node, type, handler, useCapture) {\n let wrapHandler = handler;\n if (type === 'click' || type === 'mousedown' || type === 'contextmenu') {\n wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n }\n else if (type === 'keydown' || type === 'keypress' || type === 'keyup') {\n wrapHandler = _wrapAsStandardKeyboardEvent(handler);\n }\n return addDisposableListener(node, type, wrapHandler, useCapture);\n};\nexport const addStandardDisposableGenericMouseDownListener = function addStandardDisposableListener(node, handler, useCapture) {\n const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n return addDisposableGenericMouseDownListener(node, wrapHandler, useCapture);\n};\nexport const addStandardDisposableGenericMouseUpListener = function addStandardDisposableListener(node, handler, useCapture) {\n const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);\n return addDisposableGenericMouseUpListener(node, wrapHandler, useCapture);\n};\nexport function addDisposableGenericMouseDownListener(node, handler, useCapture) {\n return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);\n}\nexport function addDisposableGenericMouseUpListener(node, handler, useCapture) {\n return addDisposableListener(node, platform.isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);\n}\n/**\n * Execute the callback the next time the browser is idle, returning an\n * {@link IDisposable} that will cancel the callback when disposed. This wraps\n * [requestIdleCallback] so it will fallback to [setTimeout] if the environment\n * doesn't support it.\n *\n * @param targetWindow The window for which to run the idle callback\n * @param callback The callback to run when idle, this includes an\n * [IdleDeadline] that provides the time alloted for the idle callback by the\n * browser. Not respecting this deadline will result in a degraded user\n * experience.\n * @param timeout A timeout at which point to queue no longer wait for an idle\n * callback but queue it on the regular event loop (like setTimeout). Typically\n * this should not be used.\n *\n * [IdleDeadline]: https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline\n * [requestIdleCallback]: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n * [setTimeout]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout\n */\nexport function runWhenWindowIdle(targetWindow, callback, timeout) {\n return _runWhenIdle(targetWindow, callback, timeout);\n}\n/**\n * An implementation of the \"idle-until-urgent\"-strategy as introduced\n * here: https://philipwalton.com/articles/idle-until-urgent/\n */\nexport class WindowIdleValue extends AbstractIdleValue {\n constructor(targetWindow, executor) {\n super(targetWindow, executor);\n }\n}\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed immediately.\n * @return token that can be used to cancel the scheduled runner (only if `runner` was not executed immediately).\n */\nexport let runAtThisOrScheduleAtNextAnimationFrame;\n/**\n * Schedule a callback to be run at the next animation frame.\n * This allows multiple parties to register callbacks that should run at the next animation frame.\n * If currently in an animation frame, `runner` will be executed at the next animation frame.\n * @return token that can be used to cancel the scheduled runner.\n */\nexport let scheduleAtNextAnimationFrame;\nexport class WindowIntervalTimer extends IntervalTimer {\n /**\n *\n * @param node The optional node from which the target window is determined\n */\n constructor(node) {\n super();\n this.defaultTarget = node && getWindow(node);\n }\n cancelAndSet(runner, interval, targetWindow) {\n return super.cancelAndSet(runner, interval, targetWindow !== null && targetWindow !== void 0 ? targetWindow : this.defaultTarget);\n }\n}\nclass AnimationFrameQueueItem {\n constructor(runner, priority = 0) {\n this._runner = runner;\n this.priority = priority;\n this._canceled = false;\n }\n dispose() {\n this._canceled = true;\n }\n execute() {\n if (this._canceled) {\n return;\n }\n try {\n this._runner();\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n // Sort by priority (largest to lowest)\n static sort(a, b) {\n return b.priority - a.priority;\n }\n}\n(function () {\n /**\n * The runners scheduled at the next animation frame\n */\n const NEXT_QUEUE = new Map();\n /**\n * The runners scheduled at the current animation frame\n */\n const CURRENT_QUEUE = new Map();\n /**\n * A flag to keep track if the native requestAnimationFrame was already called\n */\n const animFrameRequested = new Map();\n /**\n * A flag to indicate if currently handling a native requestAnimationFrame callback\n */\n const inAnimationFrameRunner = new Map();\n const animationFrameRunner = (targetWindowId) => {\n var _a;\n animFrameRequested.set(targetWindowId, false);\n const currentQueue = (_a = NEXT_QUEUE.get(targetWindowId)) !== null && _a !== void 0 ? _a : [];\n CURRENT_QUEUE.set(targetWindowId, currentQueue);\n NEXT_QUEUE.set(targetWindowId, []);\n inAnimationFrameRunner.set(targetWindowId, true);\n while (currentQueue.length > 0) {\n currentQueue.sort(AnimationFrameQueueItem.sort);\n const top = currentQueue.shift();\n top.execute();\n }\n inAnimationFrameRunner.set(targetWindowId, false);\n };\n scheduleAtNextAnimationFrame = (targetWindow, runner, priority = 0) => {\n const targetWindowId = getWindowId(targetWindow);\n const item = new AnimationFrameQueueItem(runner, priority);\n let nextQueue = NEXT_QUEUE.get(targetWindowId);\n if (!nextQueue) {\n nextQueue = [];\n NEXT_QUEUE.set(targetWindowId, nextQueue);\n }\n nextQueue.push(item);\n if (!animFrameRequested.get(targetWindowId)) {\n animFrameRequested.set(targetWindowId, true);\n targetWindow.requestAnimationFrame(() => animationFrameRunner(targetWindowId));\n }\n return item;\n };\n runAtThisOrScheduleAtNextAnimationFrame = (targetWindow, runner, priority) => {\n const targetWindowId = getWindowId(targetWindow);\n if (inAnimationFrameRunner.get(targetWindowId)) {\n const item = new AnimationFrameQueueItem(runner, priority);\n let currentQueue = CURRENT_QUEUE.get(targetWindowId);\n if (!currentQueue) {\n currentQueue = [];\n CURRENT_QUEUE.set(targetWindowId, currentQueue);\n }\n currentQueue.push(item);\n return item;\n }\n else {\n return scheduleAtNextAnimationFrame(targetWindow, runner, priority);\n }\n };\n})();\nexport function getComputedStyle(el) {\n return getWindow(el).getComputedStyle(el, null);\n}\nexport function getClientArea(element, fallback) {\n const elWindow = getWindow(element);\n const elDocument = elWindow.document;\n // Try with DOM clientWidth / clientHeight\n if (element !== elDocument.body) {\n return new Dimension(element.clientWidth, element.clientHeight);\n }\n // If visual view port exits and it's on mobile, it should be used instead of window innerWidth / innerHeight, or document.body.clientWidth / document.body.clientHeight\n if (platform.isIOS && (elWindow === null || elWindow === void 0 ? void 0 : elWindow.visualViewport)) {\n return new Dimension(elWindow.visualViewport.width, elWindow.visualViewport.height);\n }\n // Try innerWidth / innerHeight\n if ((elWindow === null || elWindow === void 0 ? void 0 : elWindow.innerWidth) && elWindow.innerHeight) {\n return new Dimension(elWindow.innerWidth, elWindow.innerHeight);\n }\n // Try with document.body.clientWidth / document.body.clientHeight\n if (elDocument.body && elDocument.body.clientWidth && elDocument.body.clientHeight) {\n return new Dimension(elDocument.body.clientWidth, elDocument.body.clientHeight);\n }\n // Try with document.documentElement.clientWidth / document.documentElement.clientHeight\n if (elDocument.documentElement && elDocument.documentElement.clientWidth && elDocument.documentElement.clientHeight) {\n return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);\n }\n if (fallback) {\n return getClientArea(fallback);\n }\n throw new Error('Unable to figure out browser width and height');\n}\nclass SizeUtils {\n // Adapted from WinJS\n // Converts a CSS positioning string for the specified element to pixels.\n static convertToPixels(element, value) {\n return parseFloat(value) || 0;\n }\n static getDimension(element, cssPropertyName, jsPropertyName) {\n const computedStyle = getComputedStyle(element);\n const value = computedStyle ? computedStyle.getPropertyValue(cssPropertyName) : '0';\n return SizeUtils.convertToPixels(element, value);\n }\n static getBorderLeftWidth(element) {\n return SizeUtils.getDimension(element, 'border-left-width', 'borderLeftWidth');\n }\n static getBorderRightWidth(element) {\n return SizeUtils.getDimension(element, 'border-right-width', 'borderRightWidth');\n }\n static getBorderTopWidth(element) {\n return SizeUtils.getDimension(element, 'border-top-width', 'borderTopWidth');\n }\n static getBorderBottomWidth(element) {\n return SizeUtils.getDimension(element, 'border-bottom-width', 'borderBottomWidth');\n }\n static getPaddingLeft(element) {\n return SizeUtils.getDimension(element, 'padding-left', 'paddingLeft');\n }\n static getPaddingRight(element) {\n return SizeUtils.getDimension(element, 'padding-right', 'paddingRight');\n }\n static getPaddingTop(element) {\n return SizeUtils.getDimension(element, 'padding-top', 'paddingTop');\n }\n static getPaddingBottom(element) {\n return SizeUtils.getDimension(element, 'padding-bottom', 'paddingBottom');\n }\n static getMarginLeft(element) {\n return SizeUtils.getDimension(element, 'margin-left', 'marginLeft');\n }\n static getMarginTop(element) {\n return SizeUtils.getDimension(element, 'margin-top', 'marginTop');\n }\n static getMarginRight(element) {\n return SizeUtils.getDimension(element, 'margin-right', 'marginRight');\n }\n static getMarginBottom(element) {\n return SizeUtils.getDimension(element, 'margin-bottom', 'marginBottom');\n }\n}\nexport class Dimension {\n constructor(width, height) {\n this.width = width;\n this.height = height;\n }\n with(width = this.width, height = this.height) {\n if (width !== this.width || height !== this.height) {\n return new Dimension(width, height);\n }\n else {\n return this;\n }\n }\n static is(obj) {\n return typeof obj === 'object' && typeof obj.height === 'number' && typeof obj.width === 'number';\n }\n static lift(obj) {\n if (obj instanceof Dimension) {\n return obj;\n }\n else {\n return new Dimension(obj.width, obj.height);\n }\n }\n static equals(a, b) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.width === b.width && a.height === b.height;\n }\n}\nDimension.None = new Dimension(0, 0);\nexport function getTopLeftOffset(element) {\n // Adapted from WinJS.Utilities.getPosition\n // and added borders to the mix\n let offsetParent = element.offsetParent;\n let top = element.offsetTop;\n let left = element.offsetLeft;\n while ((element = element.parentNode) !== null\n && element !== element.ownerDocument.body\n && element !== element.ownerDocument.documentElement) {\n top -= element.scrollTop;\n const c = isShadowRoot(element) ? null : getComputedStyle(element);\n if (c) {\n left -= c.direction !== 'rtl' ? element.scrollLeft : -element.scrollLeft;\n }\n if (element === offsetParent) {\n left += SizeUtils.getBorderLeftWidth(element);\n top += SizeUtils.getBorderTopWidth(element);\n top += element.offsetTop;\n left += element.offsetLeft;\n offsetParent = element.offsetParent;\n }\n }\n return {\n left: left,\n top: top\n };\n}\nexport function size(element, width, height) {\n if (typeof width === 'number') {\n element.style.width = `${width}px`;\n }\n if (typeof height === 'number') {\n element.style.height = `${height}px`;\n }\n}\n/**\n * Returns the position of a dom node relative to the entire page.\n */\nexport function getDomNodePagePosition(domNode) {\n const bb = domNode.getBoundingClientRect();\n const window = getWindow(domNode);\n return {\n left: bb.left + window.scrollX,\n top: bb.top + window.scrollY,\n width: bb.width,\n height: bb.height\n };\n}\n/**\n * Returns the effective zoom on a given element before window zoom level is applied\n */\nexport function getDomNodeZoomLevel(domNode) {\n let testElement = domNode;\n let zoom = 1.0;\n do {\n const elementZoomLevel = getComputedStyle(testElement).zoom;\n if (elementZoomLevel !== null && elementZoomLevel !== undefined && elementZoomLevel !== '1') {\n zoom *= elementZoomLevel;\n }\n testElement = testElement.parentElement;\n } while (testElement !== null && testElement !== testElement.ownerDocument.documentElement);\n return zoom;\n}\n// Adapted from WinJS\n// Gets the width of the element, including margins.\nexport function getTotalWidth(element) {\n const margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);\n return element.offsetWidth + margin;\n}\nexport function getContentWidth(element) {\n const border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);\n const padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);\n return element.offsetWidth - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the content of the specified element. The content height does not include borders or padding.\nexport function getContentHeight(element) {\n const border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);\n const padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);\n return element.offsetHeight - border - padding;\n}\n// Adapted from WinJS\n// Gets the height of the element, including its margins.\nexport function getTotalHeight(element) {\n const margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);\n return element.offsetHeight + margin;\n}\n// ----------------------------------------------------------------------------------------\nexport function isAncestor(testChild, testAncestor) {\n return Boolean(testAncestor === null || testAncestor === void 0 ? void 0 : testAncestor.contains(testChild));\n}\nexport function findParentWithClass(node, clazz, stopAtClazzOrNode) {\n while (node && node.nodeType === node.ELEMENT_NODE) {\n if (node.classList.contains(clazz)) {\n return node;\n }\n if (stopAtClazzOrNode) {\n if (typeof stopAtClazzOrNode === 'string') {\n if (node.classList.contains(stopAtClazzOrNode)) {\n return null;\n }\n }\n else {\n if (node === stopAtClazzOrNode) {\n return null;\n }\n }\n }\n node = node.parentNode;\n }\n return null;\n}\nexport function hasParentWithClass(node, clazz, stopAtClazzOrNode) {\n return !!findParentWithClass(node, clazz, stopAtClazzOrNode);\n}\nexport function isShadowRoot(node) {\n return (node && !!node.host && !!node.mode);\n}\nexport function isInShadowDOM(domNode) {\n return !!getShadowRoot(domNode);\n}\nexport function getShadowRoot(domNode) {\n var _a;\n while (domNode.parentNode) {\n if (domNode === ((_a = domNode.ownerDocument) === null || _a === void 0 ? void 0 : _a.body)) {\n // reached the body\n return null;\n }\n domNode = domNode.parentNode;\n }\n return isShadowRoot(domNode) ? domNode : null;\n}\n/**\n * Returns the active element across all child windows\n * based on document focus. Falls back to the main\n * window if no window has focus.\n */\nexport function getActiveElement() {\n let result = getActiveDocument().activeElement;\n while (result === null || result === void 0 ? void 0 : result.shadowRoot) {\n result = result.shadowRoot.activeElement;\n }\n return result;\n}\n/**\n * Returns true if the focused window active element matches\n * the provided element. Falls back to the main window if no\n * window has focus.\n */\nexport function isActiveElement(element) {\n return getActiveElement() === element;\n}\n/**\n * Returns true if the focused window active element is contained in\n * `ancestor`. Falls back to the main window if no window has focus.\n */\nexport function isAncestorOfActiveElement(ancestor) {\n return isAncestor(getActiveElement(), ancestor);\n}\n/**\n * Returns the active document across main and child windows.\n * Prefers the window with focus, otherwise falls back to\n * the main windows document.\n */\nexport function getActiveDocument() {\n var _a;\n if (getWindowsCount() <= 1) {\n return mainWindow.document;\n }\n const documents = Array.from(getWindows()).map(({ window }) => window.document);\n return (_a = documents.find(doc => doc.hasFocus())) !== null && _a !== void 0 ? _a : mainWindow.document;\n}\n/**\n * Returns the active window across main and child windows.\n * Prefers the window with focus, otherwise falls back to\n * the main window.\n */\nexport function getActiveWindow() {\n var _a, _b;\n const document = getActiveDocument();\n return ((_b = (_a = document.defaultView) === null || _a === void 0 ? void 0 : _a.window) !== null && _b !== void 0 ? _b : mainWindow);\n}\nconst globalStylesheets = new Map();\n/**\n * A version of createStyleSheet which has a unified API to initialize/set the style content.\n */\nexport function createStyleSheet2() {\n return new WrappedStyleElement();\n}\nclass WrappedStyleElement {\n constructor() {\n this._currentCssStyle = '';\n this._styleSheet = undefined;\n }\n setStyle(cssStyle) {\n if (cssStyle === this._currentCssStyle) {\n return;\n }\n this._currentCssStyle = cssStyle;\n if (!this._styleSheet) {\n this._styleSheet = createStyleSheet(mainWindow.document.head, (s) => s.innerText = cssStyle);\n }\n else {\n this._styleSheet.innerText = cssStyle;\n }\n }\n dispose() {\n if (this._styleSheet) {\n this._styleSheet.remove();\n this._styleSheet = undefined;\n }\n }\n}\nexport function createStyleSheet(container = mainWindow.document.head, beforeAppend, disposableStore) {\n const style = document.createElement('style');\n style.type = 'text/css';\n style.media = 'screen';\n beforeAppend === null || beforeAppend === void 0 ? void 0 : beforeAppend(style);\n container.appendChild(style);\n if (disposableStore) {\n disposableStore.add(toDisposable(() => container.removeChild(style)));\n }\n // With as container, the stylesheet becomes global and is tracked\n // to support auxiliary windows to clone the stylesheet.\n if (container === mainWindow.document.head) {\n const globalStylesheetClones = new Set();\n globalStylesheets.set(style, globalStylesheetClones);\n for (const { window: targetWindow, disposables } of getWindows()) {\n if (targetWindow === mainWindow) {\n continue; // main window is already tracked\n }\n const cloneDisposable = disposables.add(cloneGlobalStyleSheet(style, globalStylesheetClones, targetWindow));\n disposableStore === null || disposableStore === void 0 ? void 0 : disposableStore.add(cloneDisposable);\n }\n }\n return style;\n}\nfunction cloneGlobalStyleSheet(globalStylesheet, globalStylesheetClones, targetWindow) {\n var _a, _b;\n const disposables = new DisposableStore();\n const clone = globalStylesheet.cloneNode(true);\n targetWindow.document.head.appendChild(clone);\n disposables.add(toDisposable(() => targetWindow.document.head.removeChild(clone)));\n for (const rule of getDynamicStyleSheetRules(globalStylesheet)) {\n (_a = clone.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(rule.cssText, (_b = clone.sheet) === null || _b === void 0 ? void 0 : _b.cssRules.length);\n }\n disposables.add(sharedMutationObserver.observe(globalStylesheet, disposables, { childList: true })(() => {\n clone.textContent = globalStylesheet.textContent;\n }));\n globalStylesheetClones.add(clone);\n disposables.add(toDisposable(() => globalStylesheetClones.delete(clone)));\n return disposables;\n}\nexport const sharedMutationObserver = new class {\n constructor() {\n this.mutationObservers = new Map();\n }\n observe(target, disposables, options) {\n let mutationObserversPerTarget = this.mutationObservers.get(target);\n if (!mutationObserversPerTarget) {\n mutationObserversPerTarget = new Map();\n this.mutationObservers.set(target, mutationObserversPerTarget);\n }\n const optionsHash = hash(options);\n let mutationObserverPerOptions = mutationObserversPerTarget.get(optionsHash);\n if (!mutationObserverPerOptions) {\n const onDidMutate = new event.Emitter();\n const observer = new MutationObserver(mutations => onDidMutate.fire(mutations));\n observer.observe(target, options);\n const resolvedMutationObserverPerOptions = mutationObserverPerOptions = {\n users: 1,\n observer,\n onDidMutate: onDidMutate.event\n };\n disposables.add(toDisposable(() => {\n resolvedMutationObserverPerOptions.users -= 1;\n if (resolvedMutationObserverPerOptions.users === 0) {\n onDidMutate.dispose();\n observer.disconnect();\n mutationObserversPerTarget === null || mutationObserversPerTarget === void 0 ? void 0 : mutationObserversPerTarget.delete(optionsHash);\n if ((mutationObserversPerTarget === null || mutationObserversPerTarget === void 0 ? void 0 : mutationObserversPerTarget.size) === 0) {\n this.mutationObservers.delete(target);\n }\n }\n }));\n mutationObserversPerTarget.set(optionsHash, mutationObserverPerOptions);\n }\n else {\n mutationObserverPerOptions.users += 1;\n }\n return mutationObserverPerOptions.onDidMutate;\n }\n};\nlet _sharedStyleSheet = null;\nfunction getSharedStyleSheet() {\n if (!_sharedStyleSheet) {\n _sharedStyleSheet = createStyleSheet();\n }\n return _sharedStyleSheet;\n}\nfunction getDynamicStyleSheetRules(style) {\n var _a, _b;\n if ((_a = style === null || style === void 0 ? void 0 : style.sheet) === null || _a === void 0 ? void 0 : _a.rules) {\n // Chrome, IE\n return style.sheet.rules;\n }\n if ((_b = style === null || style === void 0 ? void 0 : style.sheet) === null || _b === void 0 ? void 0 : _b.cssRules) {\n // FF\n return style.sheet.cssRules;\n }\n return [];\n}\nexport function createCSSRule(selector, cssText, style = getSharedStyleSheet()) {\n var _a, _b;\n if (!style || !cssText) {\n return;\n }\n (_a = style.sheet) === null || _a === void 0 ? void 0 : _a.insertRule(`${selector} {${cssText}}`, 0);\n // Apply rule also to all cloned global stylesheets\n for (const clonedGlobalStylesheet of (_b = globalStylesheets.get(style)) !== null && _b !== void 0 ? _b : []) {\n createCSSRule(selector, cssText, clonedGlobalStylesheet);\n }\n}\nexport function removeCSSRulesContainingSelector(ruleName, style = getSharedStyleSheet()) {\n var _a, _b;\n if (!style) {\n return;\n }\n const rules = getDynamicStyleSheetRules(style);\n const toDelete = [];\n for (let i = 0; i < rules.length; i++) {\n const rule = rules[i];\n if (isCSSStyleRule(rule) && rule.selectorText.indexOf(ruleName) !== -1) {\n toDelete.push(i);\n }\n }\n for (let i = toDelete.length - 1; i >= 0; i--) {\n (_a = style.sheet) === null || _a === void 0 ? void 0 : _a.deleteRule(toDelete[i]);\n }\n // Remove rules also from all cloned global stylesheets\n for (const clonedGlobalStylesheet of (_b = globalStylesheets.get(style)) !== null && _b !== void 0 ? _b : []) {\n removeCSSRulesContainingSelector(ruleName, clonedGlobalStylesheet);\n }\n}\nfunction isCSSStyleRule(rule) {\n return typeof rule.selectorText === 'string';\n}\nexport function isHTMLElement(e) {\n // eslint-disable-next-line no-restricted-syntax\n return e instanceof HTMLElement || e instanceof getWindow(e).HTMLElement;\n}\nexport function isHTMLAnchorElement(e) {\n // eslint-disable-next-line no-restricted-syntax\n return e instanceof HTMLAnchorElement || e instanceof getWindow(e).HTMLAnchorElement;\n}\nexport function isMouseEvent(e) {\n // eslint-disable-next-line no-restricted-syntax\n return e instanceof MouseEvent || e instanceof getWindow(e).MouseEvent;\n}\nexport function isKeyboardEvent(e) {\n // eslint-disable-next-line no-restricted-syntax\n return e instanceof KeyboardEvent || e instanceof getWindow(e).KeyboardEvent;\n}\nexport const EventType = {\n // Mouse\n CLICK: 'click',\n AUXCLICK: 'auxclick',\n DBLCLICK: 'dblclick',\n MOUSE_UP: 'mouseup',\n MOUSE_DOWN: 'mousedown',\n MOUSE_OVER: 'mouseover',\n MOUSE_MOVE: 'mousemove',\n MOUSE_OUT: 'mouseout',\n MOUSE_ENTER: 'mouseenter',\n MOUSE_LEAVE: 'mouseleave',\n MOUSE_WHEEL: 'wheel',\n POINTER_UP: 'pointerup',\n POINTER_DOWN: 'pointerdown',\n POINTER_MOVE: 'pointermove',\n POINTER_LEAVE: 'pointerleave',\n CONTEXT_MENU: 'contextmenu',\n WHEEL: 'wheel',\n // Keyboard\n KEY_DOWN: 'keydown',\n KEY_PRESS: 'keypress',\n KEY_UP: 'keyup',\n // HTML Document\n LOAD: 'load',\n BEFORE_UNLOAD: 'beforeunload',\n UNLOAD: 'unload',\n PAGE_SHOW: 'pageshow',\n PAGE_HIDE: 'pagehide',\n PASTE: 'paste',\n ABORT: 'abort',\n ERROR: 'error',\n RESIZE: 'resize',\n SCROLL: 'scroll',\n FULLSCREEN_CHANGE: 'fullscreenchange',\n WK_FULLSCREEN_CHANGE: 'webkitfullscreenchange',\n // Form\n SELECT: 'select',\n CHANGE: 'change',\n SUBMIT: 'submit',\n RESET: 'reset',\n FOCUS: 'focus',\n FOCUS_IN: 'focusin',\n FOCUS_OUT: 'focusout',\n BLUR: 'blur',\n INPUT: 'input',\n // Local Storage\n STORAGE: 'storage',\n // Drag\n DRAG_START: 'dragstart',\n DRAG: 'drag',\n DRAG_ENTER: 'dragenter',\n DRAG_LEAVE: 'dragleave',\n DRAG_OVER: 'dragover',\n DROP: 'drop',\n DRAG_END: 'dragend',\n // Animation\n ANIMATION_START: browser.isWebKit ? 'webkitAnimationStart' : 'animationstart',\n ANIMATION_END: browser.isWebKit ? 'webkitAnimationEnd' : 'animationend',\n ANIMATION_ITERATION: browser.isWebKit ? 'webkitAnimationIteration' : 'animationiteration'\n};\nexport function isEventLike(obj) {\n const candidate = obj;\n return !!(candidate && typeof candidate.preventDefault === 'function' && typeof candidate.stopPropagation === 'function');\n}\nexport const EventHelper = {\n stop: (e, cancelBubble) => {\n e.preventDefault();\n if (cancelBubble) {\n e.stopPropagation();\n }\n return e;\n }\n};\nexport function saveParentsScrollTop(node) {\n const r = [];\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n r[i] = node.scrollTop;\n node = node.parentNode;\n }\n return r;\n}\nexport function restoreParentsScrollTop(node, state) {\n for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {\n if (node.scrollTop !== state[i]) {\n node.scrollTop = state[i];\n }\n node = node.parentNode;\n }\n}\nclass FocusTracker extends Disposable {\n static hasFocusWithin(element) {\n if (isHTMLElement(element)) {\n const shadowRoot = getShadowRoot(element);\n const activeElement = (shadowRoot ? shadowRoot.activeElement : element.ownerDocument.activeElement);\n return isAncestor(activeElement, element);\n }\n else {\n const window = element;\n return isAncestor(window.document.activeElement, window.document);\n }\n }\n constructor(element) {\n super();\n this._onDidFocus = this._register(new event.Emitter());\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = this._register(new event.Emitter());\n this.onDidBlur = this._onDidBlur.event;\n let hasFocus = FocusTracker.hasFocusWithin(element);\n let loosingFocus = false;\n const onFocus = () => {\n loosingFocus = false;\n if (!hasFocus) {\n hasFocus = true;\n this._onDidFocus.fire();\n }\n };\n const onBlur = () => {\n if (hasFocus) {\n loosingFocus = true;\n (isHTMLElement(element) ? getWindow(element) : element).setTimeout(() => {\n if (loosingFocus) {\n loosingFocus = false;\n hasFocus = false;\n this._onDidBlur.fire();\n }\n }, 0);\n }\n };\n this._refreshStateHandler = () => {\n const currentNodeHasFocus = FocusTracker.hasFocusWithin(element);\n if (currentNodeHasFocus !== hasFocus) {\n if (hasFocus) {\n onBlur();\n }\n else {\n onFocus();\n }\n }\n };\n this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));\n this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));\n if (isHTMLElement(element)) {\n this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler()));\n this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler()));\n }\n }\n}\n/**\n * Creates a new `IFocusTracker` instance that tracks focus changes on the given `element` and its descendants.\n *\n * @param element The `HTMLElement` or `Window` to track focus changes on.\n * @returns An `IFocusTracker` instance.\n */\nexport function trackFocus(element) {\n return new FocusTracker(element);\n}\nexport function after(sibling, child) {\n sibling.after(child);\n return child;\n}\nexport function append(parent, ...children) {\n parent.append(...children);\n if (children.length === 1 && typeof children[0] !== 'string') {\n return children[0];\n }\n}\nexport function prepend(parent, child) {\n parent.insertBefore(child, parent.firstChild);\n return child;\n}\n/**\n * Removes all children from `parent` and appends `children`\n */\nexport function reset(parent, ...children) {\n parent.innerText = '';\n append(parent, ...children);\n}\nconst SELECTOR_REGEX = /([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;\nexport var Namespace;\n(function (Namespace) {\n Namespace[\"HTML\"] = \"http://www.w3.org/1999/xhtml\";\n Namespace[\"SVG\"] = \"http://www.w3.org/2000/svg\";\n})(Namespace || (Namespace = {}));\nfunction _$(namespace, description, attrs, ...children) {\n const match = SELECTOR_REGEX.exec(description);\n if (!match) {\n throw new Error('Bad use of emmet');\n }\n const tagName = match[1] || 'div';\n let result;\n if (namespace !== Namespace.HTML) {\n result = document.createElementNS(namespace, tagName);\n }\n else {\n result = document.createElement(tagName);\n }\n if (match[3]) {\n result.id = match[3];\n }\n if (match[4]) {\n result.className = match[4].replace(/\\./g, ' ').trim();\n }\n if (attrs) {\n Object.entries(attrs).forEach(([name, value]) => {\n if (typeof value === 'undefined') {\n return;\n }\n if (/^on\\w+$/.test(name)) {\n result[name] = value;\n }\n else if (name === 'selected') {\n if (value) {\n result.setAttribute(name, 'true');\n }\n }\n else {\n result.setAttribute(name, value);\n }\n });\n }\n result.append(...children);\n return result;\n}\nexport function $(description, attrs, ...children) {\n return _$(Namespace.HTML, description, attrs, ...children);\n}\n$.SVG = function (description, attrs, ...children) {\n return _$(Namespace.SVG, description, attrs, ...children);\n};\nexport function setVisibility(visible, ...elements) {\n if (visible) {\n show(...elements);\n }\n else {\n hide(...elements);\n }\n}\nexport function show(...elements) {\n for (const element of elements) {\n element.style.display = '';\n element.removeAttribute('aria-hidden');\n }\n}\nexport function hide(...elements) {\n for (const element of elements) {\n element.style.display = 'none';\n element.setAttribute('aria-hidden', 'true');\n }\n}\n/**\n * Find a value usable for a dom node size such that the likelihood that it would be\n * displayed with constant screen pixels size is as high as possible.\n *\n * e.g. We would desire for the cursors to be 2px (CSS px) wide. Under a devicePixelRatio\n * of 1.25, the cursor will be 2.5 screen pixels wide. Depending on how the dom node aligns/\"snaps\"\n * with the screen pixels, it will sometimes be rendered with 2 screen pixels, and sometimes with 3 screen pixels.\n */\nexport function computeScreenAwareSize(window, cssPx) {\n const screenPx = window.devicePixelRatio * cssPx;\n return Math.max(1, Math.floor(screenPx)) / window.devicePixelRatio;\n}\n/**\n * Open safely a new window. This is the best way to do so, but you cannot tell\n * if the window was opened or if it was blocked by the browser's popup blocker.\n * If you want to tell if the browser blocked the new window, use {@link windowOpenWithSuccess}.\n *\n * See https://github.com/microsoft/monaco-editor/issues/601\n * To protect against malicious code in the linked site, particularly phishing attempts,\n * the window.opener should be set to null to prevent the linked site from having access\n * to change the location of the current page.\n * See https://mathiasbynens.github.io/rel-noopener/\n */\nexport function windowOpenNoOpener(url) {\n // By using 'noopener' in the `windowFeatures` argument, the newly created window will\n // not be able to use `window.opener` to reach back to the current page.\n // See https://stackoverflow.com/a/46958731\n // See https://developer.mozilla.org/en-US/docs/Web/API/Window/open#noopener\n // However, this also doesn't allow us to realize if the browser blocked\n // the creation of the window.\n mainWindow.open(url, '_blank', 'noopener');\n}\nexport function animate(targetWindow, fn) {\n const step = () => {\n fn();\n stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n };\n let stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);\n return toDisposable(() => stepDisposable.dispose());\n}\nRemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href) ? 'https' : 'http');\n/**\n * returns url('...')\n */\nexport function asCSSUrl(uri) {\n if (!uri) {\n return `url('')`;\n }\n return `url('${FileAccess.uriToBrowserUri(uri).toString(true).replace(/'/g, '%27')}')`;\n}\nexport function asCSSPropertyValue(value) {\n return `'${value.replace(/'/g, '%27')}'`;\n}\nexport function asCssValueWithDefault(cssPropertyValue, dflt) {\n if (cssPropertyValue !== undefined) {\n const variableMatch = cssPropertyValue.match(/^\\s*var\\((.+)\\)$/);\n if (variableMatch) {\n const varArguments = variableMatch[1].split(',', 2);\n if (varArguments.length === 2) {\n dflt = asCssValueWithDefault(varArguments[1].trim(), dflt);\n }\n return `var(${varArguments[0]}, ${dflt})`;\n }\n return cssPropertyValue;\n }\n return dflt;\n}\n// -- sanitize and trusted html\n/**\n * Hooks dompurify using `afterSanitizeAttributes` to check that all `href` and `src`\n * attributes are valid.\n */\nexport function hookDomPurifyHrefAndSrcSanitizer(allowedProtocols, allowDataImages = false) {\n // https://github.com/cure53/DOMPurify/blob/main/demos/hooks-scheme-allowlist.html\n // build an anchor to map URLs to\n const anchor = document.createElement('a');\n dompurify.addHook('afterSanitizeAttributes', (node) => {\n // check all href/src attributes for validity\n for (const attr of ['href', 'src']) {\n if (node.hasAttribute(attr)) {\n const attrValue = node.getAttribute(attr);\n if (attr === 'href' && attrValue.startsWith('#')) {\n // Allow fragment links\n continue;\n }\n anchor.href = attrValue;\n if (!allowedProtocols.includes(anchor.protocol.replace(/:$/, ''))) {\n if (allowDataImages && attr === 'src' && anchor.href.startsWith('data:')) {\n continue;\n }\n node.removeAttribute(attr);\n }\n }\n }\n });\n return toDisposable(() => {\n dompurify.removeHook('afterSanitizeAttributes');\n });\n}\n/**\n * List of safe, non-input html tags.\n */\nexport const basicMarkupHtmlTags = Object.freeze([\n 'a',\n 'abbr',\n 'b',\n 'bdo',\n 'blockquote',\n 'br',\n 'caption',\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'figcaption',\n 'figure',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hr',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'li',\n 'mark',\n 'ol',\n 'p',\n 'pre',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 'samp',\n 'small',\n 'small',\n 'source',\n 'span',\n 'strike',\n 'strong',\n 'sub',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'tt',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\nconst defaultDomPurifyConfig = Object.freeze({\n ALLOWED_TAGS: ['a', 'button', 'blockquote', 'code', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'input', 'label', 'li', 'p', 'pre', 'select', 'small', 'span', 'strong', 'textarea', 'ul', 'ol'],\n ALLOWED_ATTR: ['href', 'data-href', 'data-command', 'target', 'title', 'name', 'src', 'alt', 'class', 'id', 'role', 'tabindex', 'style', 'data-code', 'width', 'height', 'align', 'x-dispatch', 'required', 'checked', 'placeholder', 'type', 'start'],\n RETURN_DOM: false,\n RETURN_DOM_FRAGMENT: false,\n RETURN_TRUSTED_TYPE: true\n});\nexport class ModifierKeyEmitter extends event.Emitter {\n constructor() {\n super();\n this._subscriptions = new DisposableStore();\n this._keyStatus = {\n altKey: false,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false\n };\n this._subscriptions.add(event.Event.runAndSubscribe(onDidRegisterWindow, ({ window, disposables }) => this.registerListeners(window, disposables), { window: mainWindow, disposables: this._subscriptions }));\n }\n registerListeners(window, disposables) {\n disposables.add(addDisposableListener(window, 'keydown', e => {\n if (e.defaultPrevented) {\n return;\n }\n const event = new StandardKeyboardEvent(e);\n // If Alt-key keydown event is repeated, ignore it #112347\n // Only known to be necessary for Alt-Key at the moment #115810\n if (event.keyCode === 6 /* KeyCode.Alt */ && e.repeat) {\n return;\n }\n if (e.altKey && !this._keyStatus.altKey) {\n this._keyStatus.lastKeyPressed = 'alt';\n }\n else if (e.ctrlKey && !this._keyStatus.ctrlKey) {\n this._keyStatus.lastKeyPressed = 'ctrl';\n }\n else if (e.metaKey && !this._keyStatus.metaKey) {\n this._keyStatus.lastKeyPressed = 'meta';\n }\n else if (e.shiftKey && !this._keyStatus.shiftKey) {\n this._keyStatus.lastKeyPressed = 'shift';\n }\n else if (event.keyCode !== 6 /* KeyCode.Alt */) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n else {\n return;\n }\n this._keyStatus.altKey = e.altKey;\n this._keyStatus.ctrlKey = e.ctrlKey;\n this._keyStatus.metaKey = e.metaKey;\n this._keyStatus.shiftKey = e.shiftKey;\n if (this._keyStatus.lastKeyPressed) {\n this._keyStatus.event = e;\n this.fire(this._keyStatus);\n }\n }, true));\n disposables.add(addDisposableListener(window, 'keyup', e => {\n if (e.defaultPrevented) {\n return;\n }\n if (!e.altKey && this._keyStatus.altKey) {\n this._keyStatus.lastKeyReleased = 'alt';\n }\n else if (!e.ctrlKey && this._keyStatus.ctrlKey) {\n this._keyStatus.lastKeyReleased = 'ctrl';\n }\n else if (!e.metaKey && this._keyStatus.metaKey) {\n this._keyStatus.lastKeyReleased = 'meta';\n }\n else if (!e.shiftKey && this._keyStatus.shiftKey) {\n this._keyStatus.lastKeyReleased = 'shift';\n }\n else {\n this._keyStatus.lastKeyReleased = undefined;\n }\n if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n this._keyStatus.altKey = e.altKey;\n this._keyStatus.ctrlKey = e.ctrlKey;\n this._keyStatus.metaKey = e.metaKey;\n this._keyStatus.shiftKey = e.shiftKey;\n if (this._keyStatus.lastKeyReleased) {\n this._keyStatus.event = e;\n this.fire(this._keyStatus);\n }\n }, true));\n disposables.add(addDisposableListener(window.document.body, 'mousedown', () => {\n this._keyStatus.lastKeyPressed = undefined;\n }, true));\n disposables.add(addDisposableListener(window.document.body, 'mouseup', () => {\n this._keyStatus.lastKeyPressed = undefined;\n }, true));\n disposables.add(addDisposableListener(window.document.body, 'mousemove', e => {\n if (e.buttons) {\n this._keyStatus.lastKeyPressed = undefined;\n }\n }, true));\n disposables.add(addDisposableListener(window, 'blur', () => {\n this.resetKeyStatus();\n }));\n }\n get keyStatus() {\n return this._keyStatus;\n }\n /**\n * Allows to explicitly reset the key status based on more knowledge (#109062)\n */\n resetKeyStatus() {\n this.doResetKeyStatus();\n this.fire(this._keyStatus);\n }\n doResetKeyStatus() {\n this._keyStatus = {\n altKey: false,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false\n };\n }\n static getInstance() {\n if (!ModifierKeyEmitter.instance) {\n ModifierKeyEmitter.instance = new ModifierKeyEmitter();\n }\n return ModifierKeyEmitter.instance;\n }\n dispose() {\n super.dispose();\n this._subscriptions.dispose();\n }\n}\nexport class DragAndDropObserver extends Disposable {\n constructor(element, callbacks) {\n super();\n this.element = element;\n this.callbacks = callbacks;\n // A helper to fix issues with repeated DRAG_ENTER / DRAG_LEAVE\n // calls see https://github.com/microsoft/vscode/issues/14470\n // when the element has child elements where the events are fired\n // repeadedly.\n this.counter = 0;\n // Allows to measure the duration of the drag operation.\n this.dragStartTime = 0;\n this.registerListeners();\n }\n registerListeners() {\n if (this.callbacks.onDragStart) {\n this._register(addDisposableListener(this.element, EventType.DRAG_START, (e) => {\n var _a, _b;\n (_b = (_a = this.callbacks).onDragStart) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }));\n }\n if (this.callbacks.onDrag) {\n this._register(addDisposableListener(this.element, EventType.DRAG, (e) => {\n var _a, _b;\n (_b = (_a = this.callbacks).onDrag) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }));\n }\n this._register(addDisposableListener(this.element, EventType.DRAG_ENTER, (e) => {\n var _a, _b;\n this.counter++;\n this.dragStartTime = e.timeStamp;\n (_b = (_a = this.callbacks).onDragEnter) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }));\n this._register(addDisposableListener(this.element, EventType.DRAG_OVER, (e) => {\n var _a, _b;\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n (_b = (_a = this.callbacks).onDragOver) === null || _b === void 0 ? void 0 : _b.call(_a, e, e.timeStamp - this.dragStartTime);\n }));\n this._register(addDisposableListener(this.element, EventType.DRAG_LEAVE, (e) => {\n var _a, _b;\n this.counter--;\n if (this.counter === 0) {\n this.dragStartTime = 0;\n (_b = (_a = this.callbacks).onDragLeave) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }\n }));\n this._register(addDisposableListener(this.element, EventType.DRAG_END, (e) => {\n var _a, _b;\n this.counter = 0;\n this.dragStartTime = 0;\n (_b = (_a = this.callbacks).onDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }));\n this._register(addDisposableListener(this.element, EventType.DROP, (e) => {\n var _a, _b;\n this.counter = 0;\n this.dragStartTime = 0;\n (_b = (_a = this.callbacks).onDrop) === null || _b === void 0 ? void 0 : _b.call(_a, e);\n }));\n }\n}\nconst H_REGEX = /(?[\\w\\-]+)?(?:#(?[\\w\\-]+))?(?(?:\\.(?:[\\w\\-]+))*)(?:@(?(?:[\\w\\_])+))?/;\nexport function h(tag, ...args) {\n let attributes;\n let children;\n if (Array.isArray(args[0])) {\n attributes = {};\n children = args[0];\n }\n else {\n attributes = args[0] || {};\n children = args[1];\n }\n const match = H_REGEX.exec(tag);\n if (!match || !match.groups) {\n throw new Error('Bad use of h');\n }\n const tagName = match.groups['tag'] || 'div';\n const el = document.createElement(tagName);\n if (match.groups['id']) {\n el.id = match.groups['id'];\n }\n const classNames = [];\n if (match.groups['class']) {\n for (const className of match.groups['class'].split('.')) {\n if (className !== '') {\n classNames.push(className);\n }\n }\n }\n if (attributes.className !== undefined) {\n for (const className of attributes.className.split('.')) {\n if (className !== '') {\n classNames.push(className);\n }\n }\n }\n if (classNames.length > 0) {\n el.className = classNames.join(' ');\n }\n const result = {};\n if (match.groups['name']) {\n result[match.groups['name']] = el;\n }\n if (children) {\n for (const c of children) {\n if (isHTMLElement(c)) {\n el.appendChild(c);\n }\n else if (typeof c === 'string') {\n el.append(c);\n }\n else if ('root' in c) {\n Object.assign(result, c);\n el.appendChild(c.root);\n }\n }\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (key === 'className') {\n continue;\n }\n else if (key === 'style') {\n for (const [cssKey, cssValue] of Object.entries(value)) {\n el.style.setProperty(camelCaseToHyphenCase(cssKey), typeof cssValue === 'number' ? cssValue + 'px' : '' + cssValue);\n }\n }\n else if (key === 'tabIndex') {\n el.tabIndex = value;\n }\n else {\n el.setAttribute(camelCaseToHyphenCase(key), value.toString());\n }\n }\n result['root'] = el;\n return result;\n}\nfunction camelCaseToHyphenCase(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class LinePart {\n constructor(\n /**\n * last char index of this token (not inclusive).\n */\n endIndex, type, metadata, containsRTL) {\n this.endIndex = endIndex;\n this.type = type;\n this.metadata = metadata;\n this.containsRTL = containsRTL;\n this._linePartBrand = undefined;\n }\n isWhitespace() {\n return (this.metadata & 1 /* LinePartMetadata.IS_WHITESPACE_MASK */ ? true : false);\n }\n isPseudoAfter() {\n return (this.metadata & 4 /* LinePartMetadata.PSEUDO_AFTER_MASK */ ? true : false);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { StringBuilder } from '../core/stringBuilder.js';\nimport { LineDecoration, LineDecorationsNormalizer } from './lineDecorations.js';\nimport { LinePart } from './linePart.js';\nexport class LineRange {\n constructor(startIndex, endIndex) {\n this.startOffset = startIndex;\n this.endOffset = endIndex;\n }\n equals(otherLineRange) {\n return this.startOffset === otherLineRange.startOffset\n && this.endOffset === otherLineRange.endOffset;\n }\n}\nexport class RenderLineInput {\n constructor(useMonospaceOptimizations, canUseHalfwidthRightwardsArrow, lineContent, continuesWithWrappedLine, isBasicASCII, containsRTL, fauxIndentLength, lineTokens, lineDecorations, tabSize, startVisibleColumn, spaceWidth, middotWidth, wsmiddotWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures, selectionsOnLine) {\n this.useMonospaceOptimizations = useMonospaceOptimizations;\n this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n this.lineContent = lineContent;\n this.continuesWithWrappedLine = continuesWithWrappedLine;\n this.isBasicASCII = isBasicASCII;\n this.containsRTL = containsRTL;\n this.fauxIndentLength = fauxIndentLength;\n this.lineTokens = lineTokens;\n this.lineDecorations = lineDecorations.sort(LineDecoration.compare);\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n this.spaceWidth = spaceWidth;\n this.stopRenderingLineAfter = stopRenderingLineAfter;\n this.renderWhitespace = (renderWhitespace === 'all'\n ? 4 /* RenderWhitespace.All */\n : renderWhitespace === 'boundary'\n ? 1 /* RenderWhitespace.Boundary */\n : renderWhitespace === 'selection'\n ? 2 /* RenderWhitespace.Selection */\n : renderWhitespace === 'trailing'\n ? 3 /* RenderWhitespace.Trailing */\n : 0 /* RenderWhitespace.None */);\n this.renderControlCharacters = renderControlCharacters;\n this.fontLigatures = fontLigatures;\n this.selectionsOnLine = selectionsOnLine && selectionsOnLine.sort((a, b) => a.startOffset < b.startOffset ? -1 : 1);\n const wsmiddotDiff = Math.abs(wsmiddotWidth - spaceWidth);\n const middotDiff = Math.abs(middotWidth - spaceWidth);\n if (wsmiddotDiff < middotDiff) {\n this.renderSpaceWidth = wsmiddotWidth;\n this.renderSpaceCharCode = 0x2E31; // U+2E31 - WORD SEPARATOR MIDDLE DOT\n }\n else {\n this.renderSpaceWidth = middotWidth;\n this.renderSpaceCharCode = 0xB7; // U+00B7 - MIDDLE DOT\n }\n }\n sameSelection(otherSelections) {\n if (this.selectionsOnLine === null) {\n return otherSelections === null;\n }\n if (otherSelections === null) {\n return false;\n }\n if (otherSelections.length !== this.selectionsOnLine.length) {\n return false;\n }\n for (let i = 0; i < this.selectionsOnLine.length; i++) {\n if (!this.selectionsOnLine[i].equals(otherSelections[i])) {\n return false;\n }\n }\n return true;\n }\n equals(other) {\n return (this.useMonospaceOptimizations === other.useMonospaceOptimizations\n && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n && this.lineContent === other.lineContent\n && this.continuesWithWrappedLine === other.continuesWithWrappedLine\n && this.isBasicASCII === other.isBasicASCII\n && this.containsRTL === other.containsRTL\n && this.fauxIndentLength === other.fauxIndentLength\n && this.tabSize === other.tabSize\n && this.startVisibleColumn === other.startVisibleColumn\n && this.spaceWidth === other.spaceWidth\n && this.renderSpaceWidth === other.renderSpaceWidth\n && this.renderSpaceCharCode === other.renderSpaceCharCode\n && this.stopRenderingLineAfter === other.stopRenderingLineAfter\n && this.renderWhitespace === other.renderWhitespace\n && this.renderControlCharacters === other.renderControlCharacters\n && this.fontLigatures === other.fontLigatures\n && LineDecoration.equalsArr(this.lineDecorations, other.lineDecorations)\n && this.lineTokens.equals(other.lineTokens)\n && this.sameSelection(other.selectionsOnLine));\n }\n}\nexport class DomPosition {\n constructor(partIndex, charIndex) {\n this.partIndex = partIndex;\n this.charIndex = charIndex;\n }\n}\n/**\n * Provides a both direction mapping between a line's character and its rendered position.\n */\nexport class CharacterMapping {\n static getPartIndex(partData) {\n return (partData & 4294901760 /* CharacterMappingConstants.PART_INDEX_MASK */) >>> 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */;\n }\n static getCharIndex(partData) {\n return (partData & 65535 /* CharacterMappingConstants.CHAR_INDEX_MASK */) >>> 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */;\n }\n constructor(length, partCount) {\n this.length = length;\n this._data = new Uint32Array(this.length);\n this._horizontalOffset = new Uint32Array(this.length);\n }\n setColumnInfo(column, partIndex, charIndex, horizontalOffset) {\n const partData = ((partIndex << 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */)\n | (charIndex << 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */)) >>> 0;\n this._data[column - 1] = partData;\n this._horizontalOffset[column - 1] = horizontalOffset;\n }\n getHorizontalOffset(column) {\n if (this._horizontalOffset.length === 0) {\n // No characters on this line\n return 0;\n }\n return this._horizontalOffset[column - 1];\n }\n charOffsetToPartData(charOffset) {\n if (this.length === 0) {\n return 0;\n }\n if (charOffset < 0) {\n return this._data[0];\n }\n if (charOffset >= this.length) {\n return this._data[this.length - 1];\n }\n return this._data[charOffset];\n }\n getDomPosition(column) {\n const partData = this.charOffsetToPartData(column - 1);\n const partIndex = CharacterMapping.getPartIndex(partData);\n const charIndex = CharacterMapping.getCharIndex(partData);\n return new DomPosition(partIndex, charIndex);\n }\n getColumn(domPosition, partLength) {\n const charOffset = this.partDataToCharOffset(domPosition.partIndex, partLength, domPosition.charIndex);\n return charOffset + 1;\n }\n partDataToCharOffset(partIndex, partLength, charIndex) {\n if (this.length === 0) {\n return 0;\n }\n const searchEntry = ((partIndex << 16 /* CharacterMappingConstants.PART_INDEX_OFFSET */)\n | (charIndex << 0 /* CharacterMappingConstants.CHAR_INDEX_OFFSET */)) >>> 0;\n let min = 0;\n let max = this.length - 1;\n while (min + 1 < max) {\n const mid = ((min + max) >>> 1);\n const midEntry = this._data[mid];\n if (midEntry === searchEntry) {\n return mid;\n }\n else if (midEntry > searchEntry) {\n max = mid;\n }\n else {\n min = mid;\n }\n }\n if (min === max) {\n return min;\n }\n const minEntry = this._data[min];\n const maxEntry = this._data[max];\n if (minEntry === searchEntry) {\n return min;\n }\n if (maxEntry === searchEntry) {\n return max;\n }\n const minPartIndex = CharacterMapping.getPartIndex(minEntry);\n const minCharIndex = CharacterMapping.getCharIndex(minEntry);\n const maxPartIndex = CharacterMapping.getPartIndex(maxEntry);\n let maxCharIndex;\n if (minPartIndex !== maxPartIndex) {\n // sitting between parts\n maxCharIndex = partLength;\n }\n else {\n maxCharIndex = CharacterMapping.getCharIndex(maxEntry);\n }\n const minEntryDistance = charIndex - minCharIndex;\n const maxEntryDistance = maxCharIndex - charIndex;\n if (minEntryDistance <= maxEntryDistance) {\n return min;\n }\n return max;\n }\n}\nexport class RenderLineOutput {\n constructor(characterMapping, containsRTL, containsForeignElements) {\n this._renderLineOutputBrand = undefined;\n this.characterMapping = characterMapping;\n this.containsRTL = containsRTL;\n this.containsForeignElements = containsForeignElements;\n }\n}\nexport function renderViewLine(input, sb) {\n if (input.lineContent.length === 0) {\n if (input.lineDecorations.length > 0) {\n // This line is empty, but it contains inline decorations\n sb.appendString(``);\n let beforeCount = 0;\n let afterCount = 0;\n let containsForeignElements = 0 /* ForeignElementType.None */;\n for (const lineDecoration of input.lineDecorations) {\n if (lineDecoration.type === 1 /* InlineDecorationType.Before */ || lineDecoration.type === 2 /* InlineDecorationType.After */) {\n sb.appendString(``);\n if (lineDecoration.type === 1 /* InlineDecorationType.Before */) {\n containsForeignElements |= 1 /* ForeignElementType.Before */;\n beforeCount++;\n }\n if (lineDecoration.type === 2 /* InlineDecorationType.After */) {\n containsForeignElements |= 2 /* ForeignElementType.After */;\n afterCount++;\n }\n }\n }\n sb.appendString(``);\n const characterMapping = new CharacterMapping(1, beforeCount + afterCount);\n characterMapping.setColumnInfo(1, beforeCount, 0, 0);\n return new RenderLineOutput(characterMapping, false, containsForeignElements);\n }\n // completely empty line\n sb.appendString('');\n return new RenderLineOutput(new CharacterMapping(0, 0), false, 0 /* ForeignElementType.None */);\n }\n return _renderLine(resolveRenderLineInput(input), sb);\n}\nexport class RenderLineOutput2 {\n constructor(characterMapping, html, containsRTL, containsForeignElements) {\n this.characterMapping = characterMapping;\n this.html = html;\n this.containsRTL = containsRTL;\n this.containsForeignElements = containsForeignElements;\n }\n}\nexport function renderViewLine2(input) {\n const sb = new StringBuilder(10000);\n const out = renderViewLine(input, sb);\n return new RenderLineOutput2(out.characterMapping, sb.build(), out.containsRTL, out.containsForeignElements);\n}\nclass ResolvedRenderLineInput {\n constructor(fontIsMonospace, canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, parts, containsForeignElements, fauxIndentLength, tabSize, startVisibleColumn, containsRTL, spaceWidth, renderSpaceCharCode, renderWhitespace, renderControlCharacters) {\n this.fontIsMonospace = fontIsMonospace;\n this.canUseHalfwidthRightwardsArrow = canUseHalfwidthRightwardsArrow;\n this.lineContent = lineContent;\n this.len = len;\n this.isOverflowing = isOverflowing;\n this.overflowingCharCount = overflowingCharCount;\n this.parts = parts;\n this.containsForeignElements = containsForeignElements;\n this.fauxIndentLength = fauxIndentLength;\n this.tabSize = tabSize;\n this.startVisibleColumn = startVisibleColumn;\n this.containsRTL = containsRTL;\n this.spaceWidth = spaceWidth;\n this.renderSpaceCharCode = renderSpaceCharCode;\n this.renderWhitespace = renderWhitespace;\n this.renderControlCharacters = renderControlCharacters;\n //\n }\n}\nfunction resolveRenderLineInput(input) {\n const lineContent = input.lineContent;\n let isOverflowing;\n let overflowingCharCount;\n let len;\n if (input.stopRenderingLineAfter !== -1 && input.stopRenderingLineAfter < lineContent.length) {\n isOverflowing = true;\n overflowingCharCount = lineContent.length - input.stopRenderingLineAfter;\n len = input.stopRenderingLineAfter;\n }\n else {\n isOverflowing = false;\n overflowingCharCount = 0;\n len = lineContent.length;\n }\n let tokens = transformAndRemoveOverflowing(lineContent, input.containsRTL, input.lineTokens, input.fauxIndentLength, len);\n if (input.renderControlCharacters && !input.isBasicASCII) {\n // Calling `extractControlCharacters` before adding (possibly empty) line parts\n // for inline decorations. `extractControlCharacters` removes empty line parts.\n tokens = extractControlCharacters(lineContent, tokens);\n }\n if (input.renderWhitespace === 4 /* RenderWhitespace.All */ ||\n input.renderWhitespace === 1 /* RenderWhitespace.Boundary */ ||\n (input.renderWhitespace === 2 /* RenderWhitespace.Selection */ && !!input.selectionsOnLine) ||\n (input.renderWhitespace === 3 /* RenderWhitespace.Trailing */ && !input.continuesWithWrappedLine)) {\n tokens = _applyRenderWhitespace(input, lineContent, len, tokens);\n }\n let containsForeignElements = 0 /* ForeignElementType.None */;\n if (input.lineDecorations.length > 0) {\n for (let i = 0, len = input.lineDecorations.length; i < len; i++) {\n const lineDecoration = input.lineDecorations[i];\n if (lineDecoration.type === 3 /* InlineDecorationType.RegularAffectingLetterSpacing */) {\n // Pretend there are foreign elements... although not 100% accurate.\n containsForeignElements |= 1 /* ForeignElementType.Before */;\n }\n else if (lineDecoration.type === 1 /* InlineDecorationType.Before */) {\n containsForeignElements |= 1 /* ForeignElementType.Before */;\n }\n else if (lineDecoration.type === 2 /* InlineDecorationType.After */) {\n containsForeignElements |= 2 /* ForeignElementType.After */;\n }\n }\n tokens = _applyInlineDecorations(lineContent, len, tokens, input.lineDecorations);\n }\n if (!input.containsRTL) {\n // We can never split RTL text, as it ruins the rendering\n tokens = splitLargeTokens(lineContent, tokens, !input.isBasicASCII || input.fontLigatures);\n }\n return new ResolvedRenderLineInput(input.useMonospaceOptimizations, input.canUseHalfwidthRightwardsArrow, lineContent, len, isOverflowing, overflowingCharCount, tokens, containsForeignElements, input.fauxIndentLength, input.tabSize, input.startVisibleColumn, input.containsRTL, input.spaceWidth, input.renderSpaceCharCode, input.renderWhitespace, input.renderControlCharacters);\n}\n/**\n * In the rendering phase, characters are always looped until token.endIndex.\n * Ensure that all tokens end before `len` and the last one ends precisely at `len`.\n */\nfunction transformAndRemoveOverflowing(lineContent, lineContainsRTL, tokens, fauxIndentLength, len) {\n const result = [];\n let resultLen = 0;\n // The faux indent part of the line should have no token type\n if (fauxIndentLength > 0) {\n result[resultLen++] = new LinePart(fauxIndentLength, '', 0, false);\n }\n let startOffset = fauxIndentLength;\n for (let tokenIndex = 0, tokensLen = tokens.getCount(); tokenIndex < tokensLen; tokenIndex++) {\n const endIndex = tokens.getEndOffset(tokenIndex);\n if (endIndex <= fauxIndentLength) {\n // The faux indent part of the line should have no token type\n continue;\n }\n const type = tokens.getClassName(tokenIndex);\n if (endIndex >= len) {\n const tokenContainsRTL = (lineContainsRTL ? strings.containsRTL(lineContent.substring(startOffset, len)) : false);\n result[resultLen++] = new LinePart(len, type, 0, tokenContainsRTL);\n break;\n }\n const tokenContainsRTL = (lineContainsRTL ? strings.containsRTL(lineContent.substring(startOffset, endIndex)) : false);\n result[resultLen++] = new LinePart(endIndex, type, 0, tokenContainsRTL);\n startOffset = endIndex;\n }\n return result;\n}\n/**\n * See https://github.com/microsoft/vscode/issues/6885.\n * It appears that having very large spans causes very slow reading of character positions.\n * So here we try to avoid that.\n */\nfunction splitLargeTokens(lineContent, tokens, onlyAtSpaces) {\n let lastTokenEndIndex = 0;\n const result = [];\n let resultLen = 0;\n if (onlyAtSpaces) {\n // Split only at spaces => we need to walk each character\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n const tokenEndIndex = token.endIndex;\n if (lastTokenEndIndex + 50 /* Constants.LongToken */ < tokenEndIndex) {\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n const tokenContainsRTL = token.containsRTL;\n let lastSpaceOffset = -1;\n let currTokenStart = lastTokenEndIndex;\n for (let j = lastTokenEndIndex; j < tokenEndIndex; j++) {\n if (lineContent.charCodeAt(j) === 32 /* CharCode.Space */) {\n lastSpaceOffset = j;\n }\n if (lastSpaceOffset !== -1 && j - currTokenStart >= 50 /* Constants.LongToken */) {\n // Split at `lastSpaceOffset` + 1\n result[resultLen++] = new LinePart(lastSpaceOffset + 1, tokenType, tokenMetadata, tokenContainsRTL);\n currTokenStart = lastSpaceOffset + 1;\n lastSpaceOffset = -1;\n }\n }\n if (currTokenStart !== tokenEndIndex) {\n result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n }\n }\n else {\n result[resultLen++] = token;\n }\n lastTokenEndIndex = tokenEndIndex;\n }\n }\n else {\n // Split anywhere => we don't need to walk each character\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n const tokenEndIndex = token.endIndex;\n const diff = (tokenEndIndex - lastTokenEndIndex);\n if (diff > 50 /* Constants.LongToken */) {\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n const tokenContainsRTL = token.containsRTL;\n const piecesCount = Math.ceil(diff / 50 /* Constants.LongToken */);\n for (let j = 1; j < piecesCount; j++) {\n const pieceEndIndex = lastTokenEndIndex + (j * 50 /* Constants.LongToken */);\n result[resultLen++] = new LinePart(pieceEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n }\n result[resultLen++] = new LinePart(tokenEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n }\n else {\n result[resultLen++] = token;\n }\n lastTokenEndIndex = tokenEndIndex;\n }\n }\n return result;\n}\nfunction isControlCharacter(charCode) {\n if (charCode < 32) {\n return (charCode !== 9 /* CharCode.Tab */);\n }\n if (charCode === 127) {\n // DEL\n return true;\n }\n if ((charCode >= 0x202A && charCode <= 0x202E)\n || (charCode >= 0x2066 && charCode <= 0x2069)\n || (charCode >= 0x200E && charCode <= 0x200F)\n || charCode === 0x061C) {\n // Unicode Directional Formatting Characters\n // LRE\tU+202A\tLEFT-TO-RIGHT EMBEDDING\n // RLE\tU+202B\tRIGHT-TO-LEFT EMBEDDING\n // PDF\tU+202C\tPOP DIRECTIONAL FORMATTING\n // LRO\tU+202D\tLEFT-TO-RIGHT OVERRIDE\n // RLO\tU+202E\tRIGHT-TO-LEFT OVERRIDE\n // LRI\tU+2066\tLEFT-TO-RIGHT ISOLATE\n // RLI\tU+2067\tRIGHT-TO-LEFT ISOLATE\n // FSI\tU+2068\tFIRST STRONG ISOLATE\n // PDI\tU+2069\tPOP DIRECTIONAL ISOLATE\n // LRM\tU+200E\tLEFT-TO-RIGHT MARK\n // RLM\tU+200F\tRIGHT-TO-LEFT MARK\n // ALM\tU+061C\tARABIC LETTER MARK\n return true;\n }\n return false;\n}\nfunction extractControlCharacters(lineContent, tokens) {\n const result = [];\n let lastLinePart = new LinePart(0, '', 0, false);\n let charOffset = 0;\n for (const token of tokens) {\n const tokenEndIndex = token.endIndex;\n for (; charOffset < tokenEndIndex; charOffset++) {\n const charCode = lineContent.charCodeAt(charOffset);\n if (isControlCharacter(charCode)) {\n if (charOffset > lastLinePart.endIndex) {\n // emit previous part if it has text\n lastLinePart = new LinePart(charOffset, token.type, token.metadata, token.containsRTL);\n result.push(lastLinePart);\n }\n lastLinePart = new LinePart(charOffset + 1, 'mtkcontrol', token.metadata, false);\n result.push(lastLinePart);\n }\n }\n if (charOffset > lastLinePart.endIndex) {\n // emit previous part if it has text\n lastLinePart = new LinePart(tokenEndIndex, token.type, token.metadata, token.containsRTL);\n result.push(lastLinePart);\n }\n }\n return result;\n}\n/**\n * Whitespace is rendered by \"replacing\" tokens with a special-purpose `mtkw` type that is later recognized in the rendering phase.\n * Moreover, a token is created for every visual indent because on some fonts the glyphs used for rendering whitespace (→ or ·) do not have the same width as  .\n * The rendering phase will generate `style=\"width:...\"` for these tokens.\n */\nfunction _applyRenderWhitespace(input, lineContent, len, tokens) {\n const continuesWithWrappedLine = input.continuesWithWrappedLine;\n const fauxIndentLength = input.fauxIndentLength;\n const tabSize = input.tabSize;\n const startVisibleColumn = input.startVisibleColumn;\n const useMonospaceOptimizations = input.useMonospaceOptimizations;\n const selections = input.selectionsOnLine;\n const onlyBoundary = (input.renderWhitespace === 1 /* RenderWhitespace.Boundary */);\n const onlyTrailing = (input.renderWhitespace === 3 /* RenderWhitespace.Trailing */);\n const generateLinePartForEachWhitespace = (input.renderSpaceWidth !== input.spaceWidth);\n const result = [];\n let resultLen = 0;\n let tokenIndex = 0;\n let tokenType = tokens[tokenIndex].type;\n let tokenContainsRTL = tokens[tokenIndex].containsRTL;\n let tokenEndIndex = tokens[tokenIndex].endIndex;\n const tokensLength = tokens.length;\n let lineIsEmptyOrWhitespace = false;\n let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(lineContent);\n let lastNonWhitespaceIndex;\n if (firstNonWhitespaceIndex === -1) {\n lineIsEmptyOrWhitespace = true;\n firstNonWhitespaceIndex = len;\n lastNonWhitespaceIndex = len;\n }\n else {\n lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n }\n let wasInWhitespace = false;\n let currentSelectionIndex = 0;\n let currentSelection = selections && selections[currentSelectionIndex];\n let tmpIndent = startVisibleColumn % tabSize;\n for (let charIndex = fauxIndentLength; charIndex < len; charIndex++) {\n const chCode = lineContent.charCodeAt(charIndex);\n if (currentSelection && charIndex >= currentSelection.endOffset) {\n currentSelectionIndex++;\n currentSelection = selections && selections[currentSelectionIndex];\n }\n let isInWhitespace;\n if (charIndex < firstNonWhitespaceIndex || charIndex > lastNonWhitespaceIndex) {\n // in leading or trailing whitespace\n isInWhitespace = true;\n }\n else if (chCode === 9 /* CharCode.Tab */) {\n // a tab character is rendered both in all and boundary cases\n isInWhitespace = true;\n }\n else if (chCode === 32 /* CharCode.Space */) {\n // hit a space character\n if (onlyBoundary) {\n // rendering only boundary whitespace\n if (wasInWhitespace) {\n isInWhitespace = true;\n }\n else {\n const nextChCode = (charIndex + 1 < len ? lineContent.charCodeAt(charIndex + 1) : 0 /* CharCode.Null */);\n isInWhitespace = (nextChCode === 32 /* CharCode.Space */ || nextChCode === 9 /* CharCode.Tab */);\n }\n }\n else {\n isInWhitespace = true;\n }\n }\n else {\n isInWhitespace = false;\n }\n // If rendering whitespace on selection, check that the charIndex falls within a selection\n if (isInWhitespace && selections) {\n isInWhitespace = !!currentSelection && currentSelection.startOffset <= charIndex && currentSelection.endOffset > charIndex;\n }\n // If rendering only trailing whitespace, check that the charIndex points to trailing whitespace.\n if (isInWhitespace && onlyTrailing) {\n isInWhitespace = lineIsEmptyOrWhitespace || charIndex > lastNonWhitespaceIndex;\n }\n if (isInWhitespace && tokenContainsRTL) {\n // If the token contains RTL text, breaking it up into multiple line parts\n // to render whitespace might affect the browser's bidi layout.\n //\n // We render whitespace in such tokens only if the whitespace\n // is the leading or the trailing whitespace of the line,\n // which doesn't affect the browser's bidi layout.\n if (charIndex >= firstNonWhitespaceIndex && charIndex <= lastNonWhitespaceIndex) {\n isInWhitespace = false;\n }\n }\n if (wasInWhitespace) {\n // was in whitespace token\n if (!isInWhitespace || (!useMonospaceOptimizations && tmpIndent >= tabSize)) {\n // leaving whitespace token or entering a new indent\n if (generateLinePartForEachWhitespace) {\n const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n for (let i = lastEndIndex + 1; i <= charIndex; i++) {\n result[resultLen++] = new LinePart(i, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n }\n }\n else {\n result[resultLen++] = new LinePart(charIndex, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n }\n tmpIndent = tmpIndent % tabSize;\n }\n }\n else {\n // was in regular token\n if (charIndex === tokenEndIndex || (isInWhitespace && charIndex > fauxIndentLength)) {\n result[resultLen++] = new LinePart(charIndex, tokenType, 0, tokenContainsRTL);\n tmpIndent = tmpIndent % tabSize;\n }\n }\n if (chCode === 9 /* CharCode.Tab */) {\n tmpIndent = tabSize;\n }\n else if (strings.isFullWidthCharacter(chCode)) {\n tmpIndent += 2;\n }\n else {\n tmpIndent++;\n }\n wasInWhitespace = isInWhitespace;\n while (charIndex === tokenEndIndex) {\n tokenIndex++;\n if (tokenIndex < tokensLength) {\n tokenType = tokens[tokenIndex].type;\n tokenContainsRTL = tokens[tokenIndex].containsRTL;\n tokenEndIndex = tokens[tokenIndex].endIndex;\n }\n else {\n break;\n }\n }\n }\n let generateWhitespace = false;\n if (wasInWhitespace) {\n // was in whitespace token\n if (continuesWithWrappedLine && onlyBoundary) {\n const lastCharCode = (len > 0 ? lineContent.charCodeAt(len - 1) : 0 /* CharCode.Null */);\n const prevCharCode = (len > 1 ? lineContent.charCodeAt(len - 2) : 0 /* CharCode.Null */);\n const isSingleTrailingSpace = (lastCharCode === 32 /* CharCode.Space */ && (prevCharCode !== 32 /* CharCode.Space */ && prevCharCode !== 9 /* CharCode.Tab */));\n if (!isSingleTrailingSpace) {\n generateWhitespace = true;\n }\n }\n else {\n generateWhitespace = true;\n }\n }\n if (generateWhitespace) {\n if (generateLinePartForEachWhitespace) {\n const lastEndIndex = (resultLen > 0 ? result[resultLen - 1].endIndex : fauxIndentLength);\n for (let i = lastEndIndex + 1; i <= len; i++) {\n result[resultLen++] = new LinePart(i, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n }\n }\n else {\n result[resultLen++] = new LinePart(len, 'mtkw', 1 /* LinePartMetadata.IS_WHITESPACE */, false);\n }\n }\n else {\n result[resultLen++] = new LinePart(len, tokenType, 0, tokenContainsRTL);\n }\n return result;\n}\n/**\n * Inline decorations are \"merged\" on top of tokens.\n * Special care must be taken when multiple inline decorations are at play and they overlap.\n */\nfunction _applyInlineDecorations(lineContent, len, tokens, _lineDecorations) {\n _lineDecorations.sort(LineDecoration.compare);\n const lineDecorations = LineDecorationsNormalizer.normalize(lineContent, _lineDecorations);\n const lineDecorationsLen = lineDecorations.length;\n let lineDecorationIndex = 0;\n const result = [];\n let resultLen = 0;\n let lastResultEndIndex = 0;\n for (let tokenIndex = 0, len = tokens.length; tokenIndex < len; tokenIndex++) {\n const token = tokens[tokenIndex];\n const tokenEndIndex = token.endIndex;\n const tokenType = token.type;\n const tokenMetadata = token.metadata;\n const tokenContainsRTL = token.containsRTL;\n while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset < tokenEndIndex) {\n const lineDecoration = lineDecorations[lineDecorationIndex];\n if (lineDecoration.startOffset > lastResultEndIndex) {\n lastResultEndIndex = lineDecoration.startOffset;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n }\n if (lineDecoration.endOffset + 1 <= tokenEndIndex) {\n // This line decoration ends before this token ends\n lastResultEndIndex = lineDecoration.endOffset + 1;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n lineDecorationIndex++;\n }\n else {\n // This line decoration continues on to the next token\n lastResultEndIndex = tokenEndIndex;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType + ' ' + lineDecoration.className, tokenMetadata | lineDecoration.metadata, tokenContainsRTL);\n break;\n }\n }\n if (tokenEndIndex > lastResultEndIndex) {\n lastResultEndIndex = tokenEndIndex;\n result[resultLen++] = new LinePart(lastResultEndIndex, tokenType, tokenMetadata, tokenContainsRTL);\n }\n }\n const lastTokenEndIndex = tokens[tokens.length - 1].endIndex;\n if (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n while (lineDecorationIndex < lineDecorationsLen && lineDecorations[lineDecorationIndex].startOffset === lastTokenEndIndex) {\n const lineDecoration = lineDecorations[lineDecorationIndex];\n result[resultLen++] = new LinePart(lastResultEndIndex, lineDecoration.className, lineDecoration.metadata, false);\n lineDecorationIndex++;\n }\n }\n return result;\n}\n/**\n * This function is on purpose not split up into multiple functions to allow runtime type inference (i.e. performance reasons).\n * Notice how all the needed data is fully resolved and passed in (i.e. no other calls).\n */\nfunction _renderLine(input, sb) {\n const fontIsMonospace = input.fontIsMonospace;\n const canUseHalfwidthRightwardsArrow = input.canUseHalfwidthRightwardsArrow;\n const containsForeignElements = input.containsForeignElements;\n const lineContent = input.lineContent;\n const len = input.len;\n const isOverflowing = input.isOverflowing;\n const overflowingCharCount = input.overflowingCharCount;\n const parts = input.parts;\n const fauxIndentLength = input.fauxIndentLength;\n const tabSize = input.tabSize;\n const startVisibleColumn = input.startVisibleColumn;\n const containsRTL = input.containsRTL;\n const spaceWidth = input.spaceWidth;\n const renderSpaceCharCode = input.renderSpaceCharCode;\n const renderWhitespace = input.renderWhitespace;\n const renderControlCharacters = input.renderControlCharacters;\n const characterMapping = new CharacterMapping(len + 1, parts.length);\n let lastCharacterMappingDefined = false;\n let charIndex = 0;\n let visibleColumn = startVisibleColumn;\n let charOffsetInPart = 0; // the character offset in the current part\n let charHorizontalOffset = 0; // the character horizontal position in terms of chars relative to line start\n let partDisplacement = 0;\n if (containsRTL) {\n sb.appendString('');\n }\n else {\n sb.appendString('');\n }\n for (let partIndex = 0, tokensLen = parts.length; partIndex < tokensLen; partIndex++) {\n const part = parts[partIndex];\n const partEndIndex = part.endIndex;\n const partType = part.type;\n const partContainsRTL = part.containsRTL;\n const partRendersWhitespace = (renderWhitespace !== 0 /* RenderWhitespace.None */ && part.isWhitespace());\n const partRendersWhitespaceWithWidth = partRendersWhitespace && !fontIsMonospace && (partType === 'mtkw' /*only whitespace*/ || !containsForeignElements);\n const partIsEmptyAndHasPseudoAfter = (charIndex === partEndIndex && part.isPseudoAfter());\n charOffsetInPart = 0;\n sb.appendString('= fauxIndentLength) {\n _visibleColumn += charWidth;\n }\n }\n }\n if (partRendersWhitespaceWithWidth) {\n sb.appendString(' style=\"width:');\n sb.appendString(String(spaceWidth * partWidth));\n sb.appendString('px\"');\n }\n sb.appendASCIICharCode(62 /* CharCode.GreaterThan */);\n for (; charIndex < partEndIndex; charIndex++) {\n characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n partDisplacement = 0;\n const charCode = lineContent.charCodeAt(charIndex);\n let producedCharacters;\n let charWidth;\n if (charCode === 9 /* CharCode.Tab */) {\n producedCharacters = (tabSize - (visibleColumn % tabSize)) | 0;\n charWidth = producedCharacters;\n if (!canUseHalfwidthRightwardsArrow || charWidth > 1) {\n sb.appendCharCode(0x2192); // RIGHTWARDS ARROW\n }\n else {\n sb.appendCharCode(0xFFEB); // HALFWIDTH RIGHTWARDS ARROW\n }\n for (let space = 2; space <= charWidth; space++) {\n sb.appendCharCode(0xA0); //  \n }\n }\n else { // must be CharCode.Space\n producedCharacters = 2;\n charWidth = 1;\n sb.appendCharCode(renderSpaceCharCode); // · or word separator middle dot\n sb.appendCharCode(0x200C); // ZERO WIDTH NON-JOINER\n }\n charOffsetInPart += producedCharacters;\n charHorizontalOffset += charWidth;\n if (charIndex >= fauxIndentLength) {\n visibleColumn += charWidth;\n }\n }\n }\n else {\n sb.appendASCIICharCode(62 /* CharCode.GreaterThan */);\n for (; charIndex < partEndIndex; charIndex++) {\n characterMapping.setColumnInfo(charIndex + 1, partIndex - partDisplacement, charOffsetInPart, charHorizontalOffset);\n partDisplacement = 0;\n const charCode = lineContent.charCodeAt(charIndex);\n let producedCharacters = 1;\n let charWidth = 1;\n switch (charCode) {\n case 9 /* CharCode.Tab */:\n producedCharacters = (tabSize - (visibleColumn % tabSize));\n charWidth = producedCharacters;\n for (let space = 1; space <= producedCharacters; space++) {\n sb.appendCharCode(0xA0); //  \n }\n break;\n case 32 /* CharCode.Space */:\n sb.appendCharCode(0xA0); //  \n break;\n case 60 /* CharCode.LessThan */:\n sb.appendString('<');\n break;\n case 62 /* CharCode.GreaterThan */:\n sb.appendString('>');\n break;\n case 38 /* CharCode.Ampersand */:\n sb.appendString('&');\n break;\n case 0 /* CharCode.Null */:\n if (renderControlCharacters) {\n // See https://unicode-table.com/en/blocks/control-pictures/\n sb.appendCharCode(9216);\n }\n else {\n sb.appendString('�');\n }\n break;\n case 65279 /* CharCode.UTF8_BOM */:\n case 8232 /* CharCode.LINE_SEPARATOR */:\n case 8233 /* CharCode.PARAGRAPH_SEPARATOR */:\n case 133 /* CharCode.NEXT_LINE */:\n sb.appendCharCode(0xFFFD);\n break;\n default:\n if (strings.isFullWidthCharacter(charCode)) {\n charWidth++;\n }\n // See https://unicode-table.com/en/blocks/control-pictures/\n if (renderControlCharacters && charCode < 32) {\n sb.appendCharCode(9216 + charCode);\n }\n else if (renderControlCharacters && charCode === 127) {\n // DEL\n sb.appendCharCode(9249);\n }\n else if (renderControlCharacters && isControlCharacter(charCode)) {\n sb.appendString('[U+');\n sb.appendString(to4CharHex(charCode));\n sb.appendString(']');\n producedCharacters = 8;\n charWidth = producedCharacters;\n }\n else {\n sb.appendCharCode(charCode);\n }\n }\n charOffsetInPart += producedCharacters;\n charHorizontalOffset += charWidth;\n if (charIndex >= fauxIndentLength) {\n visibleColumn += charWidth;\n }\n }\n }\n if (partIsEmptyAndHasPseudoAfter) {\n partDisplacement++;\n }\n else {\n partDisplacement = 0;\n }\n if (charIndex >= len && !lastCharacterMappingDefined && part.isPseudoAfter()) {\n lastCharacterMappingDefined = true;\n characterMapping.setColumnInfo(charIndex + 1, partIndex, charOffsetInPart, charHorizontalOffset);\n }\n sb.appendString('');\n }\n if (!lastCharacterMappingDefined) {\n // When getting client rects for the last character, we will position the\n // text range at the end of the span, insteaf of at the beginning of next span\n characterMapping.setColumnInfo(len + 1, parts.length - 1, charOffsetInPart, charHorizontalOffset);\n }\n if (isOverflowing) {\n sb.appendString('');\n sb.appendString(nls.localize('showMore', \"Show more ({0})\", renderOverflowingCharCount(overflowingCharCount)));\n sb.appendString('');\n }\n sb.appendString('');\n return new RenderLineOutput(characterMapping, containsRTL, containsForeignElements);\n}\nfunction to4CharHex(n) {\n return n.toString(16).toUpperCase().padStart(4, '0');\n}\nfunction renderOverflowingCharCount(n) {\n if (n < 1024) {\n return nls.localize('overflow.chars', \"{0} chars\", n);\n }\n if (n < 1024 * 1024) {\n return `${(n / 1024).toFixed(1)} KB`;\n }\n return `${(n / 1024 / 1024).toFixed(1)} MB`;\n}\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { InlayHintsController } from './inlayHintsController.js';\nimport { InlayHintsHover } from './inlayHintsHover.js';\nregisterEditorContribution(InlayHintsController.ID, InlayHintsController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nHoverParticipantRegistry.register(InlayHintsHover);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { equals } from '../../../../base/common/arrays.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { LRUCache } from '../../../../base/common/map.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { createDecorator } from '../../../../platform/instantiation/common/instantiation.js';\nimport { registerSingleton } from '../../../../platform/instantiation/common/extensions.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nexport class TreeElement {\n remove() {\n var _a;\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.children.delete(this.id);\n }\n static findId(candidate, container) {\n // complex id-computation which contains the origin/extension,\n // the parent path, and some dedupe logic when names collide\n let candidateId;\n if (typeof candidate === 'string') {\n candidateId = `${container.id}/${candidate}`;\n }\n else {\n candidateId = `${container.id}/${candidate.name}`;\n if (container.children.get(candidateId) !== undefined) {\n candidateId = `${container.id}/${candidate.name}_${candidate.range.startLineNumber}_${candidate.range.startColumn}`;\n }\n }\n let id = candidateId;\n for (let i = 0; container.children.get(id) !== undefined; i++) {\n id = `${candidateId}_${i}`;\n }\n return id;\n }\n static empty(element) {\n return element.children.size === 0;\n }\n}\nexport class OutlineElement extends TreeElement {\n constructor(id, parent, symbol) {\n super();\n this.id = id;\n this.parent = parent;\n this.symbol = symbol;\n this.children = new Map();\n }\n}\nexport class OutlineGroup extends TreeElement {\n constructor(id, parent, label, order) {\n super();\n this.id = id;\n this.parent = parent;\n this.label = label;\n this.order = order;\n this.children = new Map();\n }\n}\nexport class OutlineModel extends TreeElement {\n static create(registry, textModel, token) {\n const cts = new CancellationTokenSource(token);\n const result = new OutlineModel(textModel.uri);\n const provider = registry.ordered(textModel);\n const promises = provider.map((provider, index) => {\n var _a;\n const id = TreeElement.findId(`provider_${index}`, result);\n const group = new OutlineGroup(id, result, (_a = provider.displayName) !== null && _a !== void 0 ? _a : 'Unknown Outline Provider', index);\n return Promise.resolve(provider.provideDocumentSymbols(textModel, cts.token)).then(result => {\n for (const info of result || []) {\n OutlineModel._makeOutlineElement(info, group);\n }\n return group;\n }, err => {\n onUnexpectedExternalError(err);\n return group;\n }).then(group => {\n if (!TreeElement.empty(group)) {\n result._groups.set(id, group);\n }\n else {\n group.remove();\n }\n });\n });\n const listener = registry.onDidChange(() => {\n const newProvider = registry.ordered(textModel);\n if (!equals(newProvider, provider)) {\n cts.cancel();\n }\n });\n return Promise.all(promises).then(() => {\n if (cts.token.isCancellationRequested && !token.isCancellationRequested) {\n return OutlineModel.create(registry, textModel, token);\n }\n else {\n return result._compact();\n }\n }).finally(() => {\n cts.dispose();\n listener.dispose();\n cts.dispose();\n });\n }\n static _makeOutlineElement(info, container) {\n const id = TreeElement.findId(info, container);\n const res = new OutlineElement(id, container, info);\n if (info.children) {\n for (const childInfo of info.children) {\n OutlineModel._makeOutlineElement(childInfo, res);\n }\n }\n container.children.set(res.id, res);\n }\n constructor(uri) {\n super();\n this.uri = uri;\n this.id = 'root';\n this.parent = undefined;\n this._groups = new Map();\n this.children = new Map();\n this.id = 'root';\n this.parent = undefined;\n }\n _compact() {\n let count = 0;\n for (const [key, group] of this._groups) {\n if (group.children.size === 0) { // empty\n this._groups.delete(key);\n }\n else {\n count += 1;\n }\n }\n if (count !== 1) {\n //\n this.children = this._groups;\n }\n else {\n // adopt all elements of the first group\n const group = Iterable.first(this._groups.values());\n for (const [, child] of group.children) {\n child.parent = this;\n this.children.set(child.id, child);\n }\n }\n return this;\n }\n getTopLevelSymbols() {\n const roots = [];\n for (const child of this.children.values()) {\n if (child instanceof OutlineElement) {\n roots.push(child.symbol);\n }\n else {\n roots.push(...Iterable.map(child.children.values(), child => child.symbol));\n }\n }\n return roots.sort((a, b) => Range.compareRangesUsingStarts(a.range, b.range));\n }\n asListOfDocumentSymbols() {\n const roots = this.getTopLevelSymbols();\n const bucket = [];\n OutlineModel._flattenDocumentSymbols(bucket, roots, '');\n return bucket.sort((a, b) => Position.compare(Range.getStartPosition(a.range), Range.getStartPosition(b.range)) || Position.compare(Range.getEndPosition(b.range), Range.getEndPosition(a.range)));\n }\n static _flattenDocumentSymbols(bucket, entries, overrideContainerLabel) {\n for (const entry of entries) {\n bucket.push({\n kind: entry.kind,\n tags: entry.tags,\n name: entry.name,\n detail: entry.detail,\n containerName: entry.containerName || overrideContainerLabel,\n range: entry.range,\n selectionRange: entry.selectionRange,\n children: undefined, // we flatten it...\n });\n // Recurse over children\n if (entry.children) {\n OutlineModel._flattenDocumentSymbols(bucket, entry.children, entry.name);\n }\n }\n }\n}\nexport const IOutlineModelService = createDecorator('IOutlineModelService');\nlet OutlineModelService = class OutlineModelService {\n constructor(_languageFeaturesService, debounces, modelService) {\n this._languageFeaturesService = _languageFeaturesService;\n this._disposables = new DisposableStore();\n this._cache = new LRUCache(10, 0.7);\n this._debounceInformation = debounces.for(_languageFeaturesService.documentSymbolProvider, 'DocumentSymbols', { min: 350 });\n // don't cache outline models longer than their text model\n this._disposables.add(modelService.onModelRemoved(textModel => {\n this._cache.delete(textModel.id);\n }));\n }\n dispose() {\n this._disposables.dispose();\n }\n async getOrCreate(textModel, token) {\n const registry = this._languageFeaturesService.documentSymbolProvider;\n const provider = registry.ordered(textModel);\n let data = this._cache.get(textModel.id);\n if (!data || data.versionId !== textModel.getVersionId() || !equals(data.provider, provider)) {\n const source = new CancellationTokenSource();\n data = {\n versionId: textModel.getVersionId(),\n provider,\n promiseCnt: 0,\n source,\n promise: OutlineModel.create(registry, textModel, source.token),\n model: undefined,\n };\n this._cache.set(textModel.id, data);\n const now = Date.now();\n data.promise.then(outlineModel => {\n data.model = outlineModel;\n this._debounceInformation.update(textModel, Date.now() - now);\n }).catch(_err => {\n this._cache.delete(textModel.id);\n });\n }\n if (data.model) {\n // resolved -> return data\n return data.model;\n }\n // increase usage counter\n data.promiseCnt += 1;\n const listener = token.onCancellationRequested(() => {\n // last -> cancel provider request, remove cached promise\n if (--data.promiseCnt === 0) {\n data.source.cancel();\n this._cache.delete(textModel.id);\n }\n });\n try {\n return await data.promise;\n }\n finally {\n listener.dispose();\n }\n }\n};\nOutlineModelService = __decorate([\n __param(0, ILanguageFeaturesService),\n __param(1, ILanguageFeatureDebounceService),\n __param(2, IModelService)\n], OutlineModelService);\nexport { OutlineModelService };\nregisterSingleton(IOutlineModelService, OutlineModelService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class HierarchicalKind {\n constructor(value) {\n this.value = value;\n }\n equals(other) {\n return this.value === other.value;\n }\n contains(other) {\n return this.equals(other) || this.value === '' || other.value.startsWith(this.value + HierarchicalKind.sep);\n }\n intersects(other) {\n return this.contains(other) || other.contains(this);\n }\n append(...parts) {\n return new HierarchicalKind((this.value ? [this.value, ...parts] : parts).join(HierarchicalKind.sep));\n }\n}\nHierarchicalKind.sep = '.';\nHierarchicalKind.None = new HierarchicalKind('@@none@@'); // Special kind that matches nothing\nHierarchicalKind.Empty = new HierarchicalKind('');\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.assignDefaults = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction assignDefaults(it, ty) {\n const { properties, items } = it.schema;\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default);\n }\n }\n else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i) => assignDefault(it, i, sch.default));\n }\n}\nexports.assignDefaults = assignDefaults;\nfunction assignDefault(it, prop, defaultValue) {\n const { gen, compositeRule, data, opts } = it;\n if (defaultValue === undefined)\n return;\n const childData = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(prop)}`;\n if (compositeRule) {\n (0, util_1.checkStrictMode)(it, `default is ignored for: ${childData}`);\n return;\n }\n let condition = (0, codegen_1._) `${childData} === undefined`;\n if (opts.useDefaults === \"empty\") {\n condition = (0, codegen_1._) `${condition} || ${childData} === null || ${childData} === \"\"`;\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, (0, codegen_1._) `${childData} = ${(0, codegen_1.stringify)(defaultValue)}`);\n}\n//# sourceMappingURL=defaults.js.map","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/tcl/tcl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"tcl\",\n extensions: [\".tcl\"],\n aliases: [\"tcl\", \"Tcl\", \"tcltk\", \"TclTk\", \"tcl/tk\", \"Tcl/Tk\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/tcl/tcl\"], resolve, reject);\n });\n } else {\n return import(\"./tcl.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const AccessibleViewRegistry = new class AccessibleViewRegistry {\n constructor() {\n this._implementations = [];\n }\n register(implementation) {\n this._implementations.push(implementation);\n return {\n dispose: () => {\n const idx = this._implementations.indexOf(implementation);\n if (idx !== -1) {\n this._implementations.splice(idx, 1);\n }\n implementation.dispose();\n }\n };\n }\n getImplementations() {\n return this._implementations;\n }\n};\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n * A position in the editor.\n */\nexport class Position {\n constructor(lineNumber, column) {\n this.lineNumber = lineNumber;\n this.column = column;\n }\n /**\n * Create a new position from this position.\n *\n * @param newLineNumber new line number\n * @param newColumn new column\n */\n with(newLineNumber = this.lineNumber, newColumn = this.column) {\n if (newLineNumber === this.lineNumber && newColumn === this.column) {\n return this;\n }\n else {\n return new Position(newLineNumber, newColumn);\n }\n }\n /**\n * Derive a new position from this position.\n *\n * @param deltaLineNumber line number delta\n * @param deltaColumn column delta\n */\n delta(deltaLineNumber = 0, deltaColumn = 0) {\n return this.with(this.lineNumber + deltaLineNumber, this.column + deltaColumn);\n }\n /**\n * Test if this position equals other position\n */\n equals(other) {\n return Position.equals(this, other);\n }\n /**\n * Test if position `a` equals position `b`\n */\n static equals(a, b) {\n if (!a && !b) {\n return true;\n }\n return (!!a &&\n !!b &&\n a.lineNumber === b.lineNumber &&\n a.column === b.column);\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be false.\n */\n isBefore(other) {\n return Position.isBefore(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be false.\n */\n static isBefore(a, b) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column < b.column;\n }\n /**\n * Test if this position is before other position.\n * If the two positions are equal, the result will be true.\n */\n isBeforeOrEqual(other) {\n return Position.isBeforeOrEqual(this, other);\n }\n /**\n * Test if position `a` is before position `b`.\n * If the two positions are equal, the result will be true.\n */\n static isBeforeOrEqual(a, b) {\n if (a.lineNumber < b.lineNumber) {\n return true;\n }\n if (b.lineNumber < a.lineNumber) {\n return false;\n }\n return a.column <= b.column;\n }\n /**\n * A function that compares positions, useful for sorting\n */\n static compare(a, b) {\n const aLineNumber = a.lineNumber | 0;\n const bLineNumber = b.lineNumber | 0;\n if (aLineNumber === bLineNumber) {\n const aColumn = a.column | 0;\n const bColumn = b.column | 0;\n return aColumn - bColumn;\n }\n return aLineNumber - bLineNumber;\n }\n /**\n * Clone this position.\n */\n clone() {\n return new Position(this.lineNumber, this.column);\n }\n /**\n * Convert to a human-readable representation.\n */\n toString() {\n return '(' + this.lineNumber + ',' + this.column + ')';\n }\n // ---\n /**\n * Create a `Position` from an `IPosition`.\n */\n static lift(pos) {\n return new Position(pos.lineNumber, pos.column);\n }\n /**\n * Test if `obj` is an `IPosition`.\n */\n static isIPosition(obj) {\n return (obj\n && (typeof obj.lineNumber === 'number')\n && (typeof obj.column === 'number'));\n }\n toJSON() {\n return {\n lineNumber: this.lineNumber,\n column: this.column\n };\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-hscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\nvar CLS_HSCROLLCON = 'e-hscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
\n * \n * ```\n */\nvar HScroll = /** @class */ (function (_super) {\n __extends(HScroll, _super);\n /**\n * Initializes a new instance of the HScroll class.\n *\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\n */\n function HScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var element = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (element.id === '') {\n element.id = getUniqueID('hscroll');\n this.uniqueId = true;\n }\n element.style.display = 'block';\n if (this.enableRtl) {\n element.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the horizontal scroll rendering\n *\n * @private\n * @returns {void}\n */\n HScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlay(this.element);\n }\n this.setScrollState();\n };\n HScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetWidth;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n HScroll.prototype.initialize = function () {\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\n scrollDiv.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollEle.appendChild(ele_1);\n }\n scrollDiv.appendChild(scrollEle);\n ele.appendChild(scrollDiv);\n scrollDiv.style.overflowX = 'hidden';\n this.scrollEle = scrollDiv;\n this.scrollItems = scrollEle;\n };\n HScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n HScroll.prototype.getModuleName = function () {\n return 'hScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n HScroll.prototype.destroy = function () {\n var ele = this.element;\n ele.style.display = '';\n ele.classList.remove(CLS_ROOT);\n ele.classList.remove(CLS_DEVICE);\n ele.classList.remove(CLS_RTL);\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\n [].slice.call(overlay).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n ele.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (nav.length > 0) {\n detach(nav[0]);\n if (!isNullOrUndefined(nav[1])) {\n detach(nav[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the HScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n HScroll.prototype.disable = function (value) {\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEles).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n HScroll.prototype.createOverlay = function (element) {\n var id = element.id.concat('_nav');\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n rightEle.appendChild(navItem);\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\n if (this.ieCheck) {\n rightEle.classList.add('e-ie-align');\n }\n element.appendChild(rightOverlayEle);\n element.appendChild(rightEle);\n element.insertBefore(leftEle, element.firstChild);\n this.eventBinding([rightEle]);\n };\n HScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\n var rightAttributes = { 'role': 'button', 'id': id.concat('_right'), 'aria-label': 'Scroll right' };\n var nav = this.createElement('div', { className: clsRight, attrs: rightAttributes });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\n var leftAttributes = { 'role': 'button', 'id': id.concat('_left'), 'aria-label': 'Scroll left' };\n var navEle = this.createElement('div', { className: clsLeft + ' ' + CLS_DISABLE, attrs: leftAttributes });\n navEle.setAttribute('aria-disabled', 'true');\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navEle.appendChild(navLeftItem);\n nav.appendChild(navItem);\n element.appendChild(nav);\n element.insertBefore(navEle, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navEle.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navEle]);\n };\n HScroll.prototype.onKeyPress = function (e) {\n var _this = this;\n if (e.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, e.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n HScroll.prototype.onKeyUp = function (e) {\n if (e.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n e.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n HScroll.prototype.eventBinding = function (ele) {\n var _this = this;\n [].slice.call(ele).forEach(function (el) {\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\n el.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\n });\n };\n HScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n HScroll.prototype.tabHoldHandler = function (e) {\n var _this = this;\n var trgt = e.originalEvent.target;\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDis = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDis, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n HScroll.prototype.contains = function (ele, className) {\n return ele.classList.contains(className);\n };\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var rootEle = this.element;\n var classList = trgt.classList;\n if (classList.contains(CLS_HSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\n scrollDis = -scrollDis;\n }\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\n if (classList.contains(CLS_NAVRIGHTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n else {\n if (classList.contains(CLS_NAVLEFTARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n }\n };\n HScroll.prototype.clickEventHandler = function (e) {\n this.eleScrolling(this.scrollStep, e.target, false);\n };\n HScroll.prototype.swipeHandler = function (e) {\n var swipeEle = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceX / (e.velocity * 10);\n }\n else {\n distance = e.distanceX / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Left') {\n swipeEle.scrollLeft += distance * step;\n }\n else if (e.swipeDirection === 'Right') {\n swipeEle.scrollLeft -= distance * step;\n }\n start -= 0.5;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollLeft += scrollVal;\n }\n else {\n this.scrollEle.scrollLeft -= scrollVal;\n }\n if (this.enableRtl && this.scrollEle.scrollLeft > 0) {\n this.scrollEle.scrollLeft = 0;\n }\n };\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollVal, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollVal -= el.offsetWidth;\n });\n }\n var animate = function () {\n var scrollValue;\n var scrollStep;\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\n scrollValue = -scrollVal;\n scrollStep = -step;\n }\n else {\n scrollValue = scrollVal;\n scrollStep = step;\n }\n if (scrollValue < step) {\n window.cancelAnimationFrame(scrollStep);\n }\n else {\n _this.scrollUpdating(scrollStep, action);\n scrollVal -= scrollStep;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n HScroll.prototype.touchHandler = function (e) {\n var ele = this.scrollEle;\n var distance = e.distanceX;\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\n distance = -distance;\n }\n if (e.scrollDirection === 'Left') {\n ele.scrollLeft = ele.scrollLeft + distance;\n }\n else if (e.scrollDirection === 'Right') {\n ele.scrollLeft = ele.scrollLeft - distance;\n }\n };\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisable)) {\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\n }\n }\n else if (addDisable && removeDisable) {\n addDisable.classList.add(CLS_DISABLE);\n addDisable.setAttribute('aria-disabled', 'true');\n addDisable.removeAttribute('tabindex');\n removeDisable.classList.remove(CLS_DISABLE);\n removeDisable.setAttribute('aria-disabled', 'false');\n removeDisable.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n HScroll.prototype.scrollHandler = function (e) {\n var target = e.target;\n var width = target.offsetWidth;\n var rootEle = this.element;\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n var scrollLeft = target.scrollLeft;\n if (scrollLeft <= 0) {\n scrollLeft = -scrollLeft;\n }\n if (this.isDevice) {\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\n }\n if (scrollLeft < OVERLAY_MAXWID) {\n leftOverlay.style.width = scrollLeft + 'px';\n }\n else {\n leftOverlay.style.width = '40px';\n }\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\n }\n else {\n rightOverlay.style.width = '40px';\n }\n }\n if (scrollLeft === 0) {\n this.arrowDisabling(navLeftEle, navRightEle);\n }\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\n this.arrowDisabling(navRightEle, navLeftEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {HScrollModel} newProp - It contains the new value of data.\n * @param {HScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], HScroll.prototype, \"scrollStep\", void 0);\n HScroll = __decorate([\n NotifyPropertyChanges\n ], HScroll);\n return HScroll;\n}(Component));\nexport { HScroll };\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redshift/redshift.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"redshift\",\n extensions: [],\n aliases: [\"Redshift\", \"redshift\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/redshift/redshift\"], resolve, reject);\n });\n } else {\n return import(\"./redshift.js\");\n }\n }\n});\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/**\n */\nexport class TokenMetadata {\n static getLanguageId(metadata) {\n return (metadata & 255 /* MetadataConsts.LANGUAGEID_MASK */) >>> 0 /* MetadataConsts.LANGUAGEID_OFFSET */;\n }\n static getTokenType(metadata) {\n return (metadata & 768 /* MetadataConsts.TOKEN_TYPE_MASK */) >>> 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */;\n }\n static containsBalancedBrackets(metadata) {\n return (metadata & 1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */) !== 0;\n }\n static getFontStyle(metadata) {\n return (metadata & 30720 /* MetadataConsts.FONT_STYLE_MASK */) >>> 11 /* MetadataConsts.FONT_STYLE_OFFSET */;\n }\n static getForeground(metadata) {\n return (metadata & 16744448 /* MetadataConsts.FOREGROUND_MASK */) >>> 15 /* MetadataConsts.FOREGROUND_OFFSET */;\n }\n static getBackground(metadata) {\n return (metadata & 4278190080 /* MetadataConsts.BACKGROUND_MASK */) >>> 24 /* MetadataConsts.BACKGROUND_OFFSET */;\n }\n static getClassNameFromMetadata(metadata) {\n const foreground = this.getForeground(metadata);\n let className = 'mtk' + foreground;\n const fontStyle = this.getFontStyle(metadata);\n if (fontStyle & 1 /* FontStyle.Italic */) {\n className += ' mtki';\n }\n if (fontStyle & 2 /* FontStyle.Bold */) {\n className += ' mtkb';\n }\n if (fontStyle & 4 /* FontStyle.Underline */) {\n className += ' mtku';\n }\n if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n className += ' mtks';\n }\n return className;\n }\n static getInlineStyleFromMetadata(metadata, colorMap) {\n const foreground = this.getForeground(metadata);\n const fontStyle = this.getFontStyle(metadata);\n let result = `color: ${colorMap[foreground]};`;\n if (fontStyle & 1 /* FontStyle.Italic */) {\n result += 'font-style: italic;';\n }\n if (fontStyle & 2 /* FontStyle.Bold */) {\n result += 'font-weight: bold;';\n }\n let textDecoration = '';\n if (fontStyle & 4 /* FontStyle.Underline */) {\n textDecoration += ' underline';\n }\n if (fontStyle & 8 /* FontStyle.Strikethrough */) {\n textDecoration += ' line-through';\n }\n if (textDecoration) {\n result += `text-decoration:${textDecoration};`;\n }\n return result;\n }\n static getPresentationFromMetadata(metadata) {\n const foreground = this.getForeground(metadata);\n const fontStyle = this.getFontStyle(metadata);\n return {\n foreground: foreground,\n italic: Boolean(fontStyle & 1 /* FontStyle.Italic */),\n bold: Boolean(fontStyle & 2 /* FontStyle.Bold */),\n underline: Boolean(fontStyle & 4 /* FontStyle.Underline */),\n strikethrough: Boolean(fontStyle & 8 /* FontStyle.Strikethrough */),\n };\n }\n}\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Error = Error;\nvar replace = uncurryThis(''.replace);\n\nvar TEST = (function (arg) { return String(new $Error(arg).stack); })('zxcasd');\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar V8_OR_CHAKRA_STACK_ENTRY = /\\n\\s*at [^:]*:[^\\n]*/;\nvar IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST);\n\nmodule.exports = function (stack, dropEntries) {\n if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error.prepareStackTrace) {\n while (dropEntries--) stack = replace(stack, V8_OR_CHAKRA_STACK_ENTRY, '');\n } return stack;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StandardAutoClosingPairConditional } from '../languageConfiguration.js';\nexport class CharacterPairSupport {\n constructor(config) {\n if (config.autoClosingPairs) {\n this._autoClosingPairs = config.autoClosingPairs.map(el => new StandardAutoClosingPairConditional(el));\n }\n else if (config.brackets) {\n this._autoClosingPairs = config.brackets.map(b => new StandardAutoClosingPairConditional({ open: b[0], close: b[1] }));\n }\n else {\n this._autoClosingPairs = [];\n }\n if (config.__electricCharacterSupport && config.__electricCharacterSupport.docComment) {\n const docComment = config.__electricCharacterSupport.docComment;\n // IDocComment is legacy, only partially supported\n this._autoClosingPairs.push(new StandardAutoClosingPairConditional({ open: docComment.open, close: docComment.close || '' }));\n }\n this._autoCloseBeforeForQuotes = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES;\n this._autoCloseBeforeForBrackets = typeof config.autoCloseBefore === 'string' ? config.autoCloseBefore : CharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS;\n this._surroundingPairs = config.surroundingPairs || this._autoClosingPairs;\n }\n getAutoClosingPairs() {\n return this._autoClosingPairs;\n }\n getAutoCloseBeforeSet(forQuotes) {\n return (forQuotes ? this._autoCloseBeforeForQuotes : this._autoCloseBeforeForBrackets);\n }\n getSurroundingPairs() {\n return this._surroundingPairs;\n }\n}\nCharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES = ';:.,=}])> \\n\\t';\nCharacterPairSupport.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS = '\\'\"`;:.,=}])> \\n\\t';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { distinct } from '../../../../base/common/arrays.js';\nimport { ignoreBracketsInToken } from '../supports.js';\nimport { BracketsUtils } from './richEditBrackets.js';\nexport class BracketElectricCharacterSupport {\n constructor(richEditBrackets) {\n this._richEditBrackets = richEditBrackets;\n }\n getElectricCharacters() {\n const result = [];\n if (this._richEditBrackets) {\n for (const bracket of this._richEditBrackets.brackets) {\n for (const close of bracket.close) {\n const lastChar = close.charAt(close.length - 1);\n result.push(lastChar);\n }\n }\n }\n return distinct(result);\n }\n onElectricCharacter(character, context, column) {\n if (!this._richEditBrackets || this._richEditBrackets.brackets.length === 0) {\n return null;\n }\n const tokenIndex = context.findTokenIndexAtOffset(column - 1);\n if (ignoreBracketsInToken(context.getStandardTokenType(tokenIndex))) {\n return null;\n }\n const reversedBracketRegex = this._richEditBrackets.reversedRegex;\n const text = context.getLineContent().substring(0, column - 1) + character;\n const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, 1, text, 0, text.length);\n if (!r) {\n return null;\n }\n const bracketText = text.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n const isOpen = this._richEditBrackets.textIsOpenBracket[bracketText];\n if (isOpen) {\n return null;\n }\n const textBeforeBracket = context.getActualLineContentBefore(r.startColumn - 1);\n if (!/^\\s*$/.test(textBeforeBracket)) {\n // There is other text on the line before the bracket\n return null;\n }\n return {\n matchOpenBracket: bracketText\n };\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction resetGlobalRegex(reg) {\n if (reg.global) {\n reg.lastIndex = 0;\n }\n return true;\n}\nexport class IndentRulesSupport {\n constructor(indentationRules) {\n this._indentationRules = indentationRules;\n }\n shouldIncrease(text) {\n if (this._indentationRules) {\n if (this._indentationRules.increaseIndentPattern && resetGlobalRegex(this._indentationRules.increaseIndentPattern) && this._indentationRules.increaseIndentPattern.test(text)) {\n return true;\n }\n // if (this._indentationRules.indentNextLinePattern && this._indentationRules.indentNextLinePattern.test(text)) {\n // \treturn true;\n // }\n }\n return false;\n }\n shouldDecrease(text) {\n if (this._indentationRules && this._indentationRules.decreaseIndentPattern && resetGlobalRegex(this._indentationRules.decreaseIndentPattern) && this._indentationRules.decreaseIndentPattern.test(text)) {\n return true;\n }\n return false;\n }\n shouldIndentNextLine(text) {\n if (this._indentationRules && this._indentationRules.indentNextLinePattern && resetGlobalRegex(this._indentationRules.indentNextLinePattern) && this._indentationRules.indentNextLinePattern.test(text)) {\n return true;\n }\n return false;\n }\n shouldIgnore(text) {\n // the text matches `unIndentedLinePattern`\n if (this._indentationRules && this._indentationRules.unIndentedLinePattern && resetGlobalRegex(this._indentationRules.unIndentedLinePattern) && this._indentationRules.unIndentedLinePattern.test(text)) {\n return true;\n }\n return false;\n }\n getIndentMetadata(text) {\n let ret = 0;\n if (this.shouldIncrease(text)) {\n ret += 1 /* IndentConsts.INCREASE_MASK */;\n }\n if (this.shouldDecrease(text)) {\n ret += 2 /* IndentConsts.DECREASE_MASK */;\n }\n if (this.shouldIndentNextLine(text)) {\n ret += 4 /* IndentConsts.INDENT_NEXTLINE_MASK */;\n }\n if (this.shouldIgnore(text)) {\n ret += 8 /* IndentConsts.UNINDENT_MASK */;\n }\n return ret;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { IndentAction } from '../languageConfiguration.js';\nexport class OnEnterSupport {\n constructor(opts) {\n opts = opts || {};\n opts.brackets = opts.brackets || [\n ['(', ')'],\n ['{', '}'],\n ['[', ']']\n ];\n this._brackets = [];\n opts.brackets.forEach((bracket) => {\n const openRegExp = OnEnterSupport._createOpenBracketRegExp(bracket[0]);\n const closeRegExp = OnEnterSupport._createCloseBracketRegExp(bracket[1]);\n if (openRegExp && closeRegExp) {\n this._brackets.push({\n open: bracket[0],\n openRegExp: openRegExp,\n close: bracket[1],\n closeRegExp: closeRegExp,\n });\n }\n });\n this._regExpRules = opts.onEnterRules || [];\n }\n onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n // (1): `regExpRules`\n if (autoIndent >= 3 /* EditorAutoIndentStrategy.Advanced */) {\n for (let i = 0, len = this._regExpRules.length; i < len; i++) {\n const rule = this._regExpRules[i];\n const regResult = [{\n reg: rule.beforeText,\n text: beforeEnterText\n }, {\n reg: rule.afterText,\n text: afterEnterText\n }, {\n reg: rule.previousLineText,\n text: previousLineText\n }].every((obj) => {\n if (!obj.reg) {\n return true;\n }\n obj.reg.lastIndex = 0; // To disable the effect of the \"g\" flag.\n return obj.reg.test(obj.text);\n });\n if (regResult) {\n return rule.action;\n }\n }\n }\n // (2): Special indent-outdent\n if (autoIndent >= 2 /* EditorAutoIndentStrategy.Brackets */) {\n if (beforeEnterText.length > 0 && afterEnterText.length > 0) {\n for (let i = 0, len = this._brackets.length; i < len; i++) {\n const bracket = this._brackets[i];\n if (bracket.openRegExp.test(beforeEnterText) && bracket.closeRegExp.test(afterEnterText)) {\n return { indentAction: IndentAction.IndentOutdent };\n }\n }\n }\n }\n // (4): Open bracket based logic\n if (autoIndent >= 2 /* EditorAutoIndentStrategy.Brackets */) {\n if (beforeEnterText.length > 0) {\n for (let i = 0, len = this._brackets.length; i < len; i++) {\n const bracket = this._brackets[i];\n if (bracket.openRegExp.test(beforeEnterText)) {\n return { indentAction: IndentAction.Indent };\n }\n }\n }\n }\n return null;\n }\n static _createOpenBracketRegExp(bracket) {\n let str = strings.escapeRegExpCharacters(bracket);\n if (!/\\B/.test(str.charAt(0))) {\n str = '\\\\b' + str;\n }\n str += '\\\\s*$';\n return OnEnterSupport._safeRegExp(str);\n }\n static _createCloseBracketRegExp(bracket) {\n let str = strings.escapeRegExpCharacters(bracket);\n if (!/\\B/.test(str.charAt(str.length - 1))) {\n str = str + '\\\\b';\n }\n str = '^\\\\s*' + str;\n return OnEnterSupport._safeRegExp(str);\n }\n static _safeRegExp(def) {\n try {\n return new RegExp(def);\n }\n catch (err) {\n onUnexpectedError(err);\n return null;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CachedFunction } from '../../../../base/common/cache.js';\nimport { createBracketOrRegExp } from './richEditBrackets.js';\n/**\n * Captures all bracket related configurations for a single language.\n * Immutable.\n*/\nexport class LanguageBracketsConfiguration {\n constructor(languageId, config) {\n this.languageId = languageId;\n const bracketPairs = config.brackets ? filterValidBrackets(config.brackets) : [];\n const openingBracketInfos = new CachedFunction((bracket) => {\n const closing = new Set();\n return {\n info: new OpeningBracketKind(this, bracket, closing),\n closing,\n };\n });\n const closingBracketInfos = new CachedFunction((bracket) => {\n const opening = new Set();\n const openingColorized = new Set();\n return {\n info: new ClosingBracketKind(this, bracket, opening, openingColorized),\n opening,\n openingColorized,\n };\n });\n for (const [open, close] of bracketPairs) {\n const opening = openingBracketInfos.get(open);\n const closing = closingBracketInfos.get(close);\n opening.closing.add(closing.info);\n closing.opening.add(opening.info);\n }\n // Treat colorized brackets as brackets, and mark them as colorized.\n const colorizedBracketPairs = config.colorizedBracketPairs\n ? filterValidBrackets(config.colorizedBracketPairs)\n // If not configured: Take all brackets except `<` ... `>`\n // Many languages set < ... > as bracket pair, even though they also use it as comparison operator.\n // This leads to problems when colorizing this bracket, so we exclude it if not explicitly configured otherwise.\n // https://github.com/microsoft/vscode/issues/132476\n : bracketPairs.filter((p) => !(p[0] === '<' && p[1] === '>'));\n for (const [open, close] of colorizedBracketPairs) {\n const opening = openingBracketInfos.get(open);\n const closing = closingBracketInfos.get(close);\n opening.closing.add(closing.info);\n closing.openingColorized.add(opening.info);\n closing.opening.add(opening.info);\n }\n this._openingBrackets = new Map([...openingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));\n this._closingBrackets = new Map([...closingBracketInfos.cachedValues].map(([k, v]) => [k, v.info]));\n }\n /**\n * No two brackets have the same bracket text.\n */\n get openingBrackets() {\n return [...this._openingBrackets.values()];\n }\n /**\n * No two brackets have the same bracket text.\n */\n get closingBrackets() {\n return [...this._closingBrackets.values()];\n }\n getOpeningBracketInfo(bracketText) {\n return this._openingBrackets.get(bracketText);\n }\n getClosingBracketInfo(bracketText) {\n return this._closingBrackets.get(bracketText);\n }\n getBracketInfo(bracketText) {\n return this.getOpeningBracketInfo(bracketText) || this.getClosingBracketInfo(bracketText);\n }\n getBracketRegExp(options) {\n const brackets = Array.from([...this._openingBrackets.keys(), ...this._closingBrackets.keys()]);\n return createBracketOrRegExp(brackets, options);\n }\n}\nfunction filterValidBrackets(bracketPairs) {\n return bracketPairs.filter(([open, close]) => open !== '' && close !== '');\n}\nexport class BracketKindBase {\n constructor(config, bracketText) {\n this.config = config;\n this.bracketText = bracketText;\n }\n get languageId() {\n return this.config.languageId;\n }\n}\nexport class OpeningBracketKind extends BracketKindBase {\n constructor(config, bracketText, openedBrackets) {\n super(config, bracketText);\n this.openedBrackets = openedBrackets;\n this.isOpeningBracket = true;\n }\n}\nexport class ClosingBracketKind extends BracketKindBase {\n constructor(config, bracketText, \n /**\n * Non empty array of all opening brackets this bracket closes.\n */\n openingBrackets, openingColorizedBrackets) {\n super(config, bracketText);\n this.openingBrackets = openingBrackets;\n this.openingColorizedBrackets = openingColorizedBrackets;\n this.isOpeningBracket = false;\n }\n /**\n * Checks if this bracket closes the given other bracket.\n * If the bracket infos come from different configurations, this method will return false.\n */\n closes(other) {\n if (other['config'] !== this.config) {\n return false;\n }\n return this.openingBrackets.has(other);\n }\n closesColorized(other) {\n if (other['config'] !== this.config) {\n return false;\n }\n return this.openingColorizedBrackets.has(other);\n }\n getOpeningBrackets() {\n return [...this.openingBrackets];\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { DEFAULT_WORD_REGEXP, ensureValidWordDefinition } from '../core/wordHelper.js';\nimport { AutoClosingPairs } from './languageConfiguration.js';\nimport { CharacterPairSupport } from './supports/characterPair.js';\nimport { BracketElectricCharacterSupport } from './supports/electricCharacter.js';\nimport { IndentRulesSupport } from './supports/indentRules.js';\nimport { OnEnterSupport } from './supports/onEnter.js';\nimport { RichEditBrackets } from './supports/richEditBrackets.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { IConfigurationService } from '../../../platform/configuration/common/configuration.js';\nimport { ILanguageService } from './language.js';\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { PLAINTEXT_LANGUAGE_ID } from './modesRegistry.js';\nimport { LanguageBracketsConfiguration } from './supports/languageBracketsConfiguration.js';\nexport class LanguageConfigurationServiceChangeEvent {\n constructor(languageId) {\n this.languageId = languageId;\n }\n affects(languageId) {\n return !this.languageId ? true : this.languageId === languageId;\n }\n}\nexport const ILanguageConfigurationService = createDecorator('languageConfigurationService');\nlet LanguageConfigurationService = class LanguageConfigurationService extends Disposable {\n constructor(configurationService, languageService) {\n super();\n this.configurationService = configurationService;\n this.languageService = languageService;\n this._registry = this._register(new LanguageConfigurationRegistry());\n this.onDidChangeEmitter = this._register(new Emitter());\n this.onDidChange = this.onDidChangeEmitter.event;\n this.configurations = new Map();\n const languageConfigKeys = new Set(Object.values(customizedLanguageConfigKeys));\n this._register(this.configurationService.onDidChangeConfiguration((e) => {\n const globalConfigChanged = e.change.keys.some((k) => languageConfigKeys.has(k));\n const localConfigChanged = e.change.overrides\n .filter(([overrideLangName, keys]) => keys.some((k) => languageConfigKeys.has(k)))\n .map(([overrideLangName]) => overrideLangName);\n if (globalConfigChanged) {\n this.configurations.clear();\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(undefined));\n }\n else {\n for (const languageId of localConfigChanged) {\n if (this.languageService.isRegisteredLanguageId(languageId)) {\n this.configurations.delete(languageId);\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(languageId));\n }\n }\n }\n }));\n this._register(this._registry.onDidChange((e) => {\n this.configurations.delete(e.languageId);\n this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(e.languageId));\n }));\n }\n register(languageId, configuration, priority) {\n return this._registry.register(languageId, configuration, priority);\n }\n getLanguageConfiguration(languageId) {\n let result = this.configurations.get(languageId);\n if (!result) {\n result = computeConfig(languageId, this._registry, this.configurationService, this.languageService);\n this.configurations.set(languageId, result);\n }\n return result;\n }\n};\nLanguageConfigurationService = __decorate([\n __param(0, IConfigurationService),\n __param(1, ILanguageService)\n], LanguageConfigurationService);\nexport { LanguageConfigurationService };\nfunction computeConfig(languageId, registry, configurationService, languageService) {\n let languageConfig = registry.getLanguageConfiguration(languageId);\n if (!languageConfig) {\n if (!languageService.isRegisteredLanguageId(languageId)) {\n // this happens for the null language, which can be returned by monarch.\n // Instead of throwing an error, we just return a default config.\n return new ResolvedLanguageConfiguration(languageId, {});\n }\n languageConfig = new ResolvedLanguageConfiguration(languageId, {});\n }\n const customizedConfig = getCustomizedLanguageConfig(languageConfig.languageId, configurationService);\n const data = combineLanguageConfigurations([languageConfig.underlyingConfig, customizedConfig]);\n const config = new ResolvedLanguageConfiguration(languageConfig.languageId, data);\n return config;\n}\nconst customizedLanguageConfigKeys = {\n brackets: 'editor.language.brackets',\n colorizedBracketPairs: 'editor.language.colorizedBracketPairs'\n};\nfunction getCustomizedLanguageConfig(languageId, configurationService) {\n const brackets = configurationService.getValue(customizedLanguageConfigKeys.brackets, {\n overrideIdentifier: languageId,\n });\n const colorizedBracketPairs = configurationService.getValue(customizedLanguageConfigKeys.colorizedBracketPairs, {\n overrideIdentifier: languageId,\n });\n return {\n brackets: validateBracketPairs(brackets),\n colorizedBracketPairs: validateBracketPairs(colorizedBracketPairs),\n };\n}\nfunction validateBracketPairs(data) {\n if (!Array.isArray(data)) {\n return undefined;\n }\n return data.map(pair => {\n if (!Array.isArray(pair) || pair.length !== 2) {\n return undefined;\n }\n return [pair[0], pair[1]];\n }).filter((p) => !!p);\n}\nexport function getIndentationAtPosition(model, lineNumber, column) {\n const lineText = model.getLineContent(lineNumber);\n let indentation = strings.getLeadingWhitespace(lineText);\n if (indentation.length > column - 1) {\n indentation = indentation.substring(0, column - 1);\n }\n return indentation;\n}\nclass ComposedLanguageConfiguration {\n constructor(languageId) {\n this.languageId = languageId;\n this._resolved = null;\n this._entries = [];\n this._order = 0;\n this._resolved = null;\n }\n register(configuration, priority) {\n const entry = new LanguageConfigurationContribution(configuration, priority, ++this._order);\n this._entries.push(entry);\n this._resolved = null;\n return toDisposable(() => {\n for (let i = 0; i < this._entries.length; i++) {\n if (this._entries[i] === entry) {\n this._entries.splice(i, 1);\n this._resolved = null;\n break;\n }\n }\n });\n }\n getResolvedConfiguration() {\n if (!this._resolved) {\n const config = this._resolve();\n if (config) {\n this._resolved = new ResolvedLanguageConfiguration(this.languageId, config);\n }\n }\n return this._resolved;\n }\n _resolve() {\n if (this._entries.length === 0) {\n return null;\n }\n this._entries.sort(LanguageConfigurationContribution.cmp);\n return combineLanguageConfigurations(this._entries.map(e => e.configuration));\n }\n}\nfunction combineLanguageConfigurations(configs) {\n let result = {\n comments: undefined,\n brackets: undefined,\n wordPattern: undefined,\n indentationRules: undefined,\n onEnterRules: undefined,\n autoClosingPairs: undefined,\n surroundingPairs: undefined,\n autoCloseBefore: undefined,\n folding: undefined,\n colorizedBracketPairs: undefined,\n __electricCharacterSupport: undefined,\n };\n for (const entry of configs) {\n result = {\n comments: entry.comments || result.comments,\n brackets: entry.brackets || result.brackets,\n wordPattern: entry.wordPattern || result.wordPattern,\n indentationRules: entry.indentationRules || result.indentationRules,\n onEnterRules: entry.onEnterRules || result.onEnterRules,\n autoClosingPairs: entry.autoClosingPairs || result.autoClosingPairs,\n surroundingPairs: entry.surroundingPairs || result.surroundingPairs,\n autoCloseBefore: entry.autoCloseBefore || result.autoCloseBefore,\n folding: entry.folding || result.folding,\n colorizedBracketPairs: entry.colorizedBracketPairs || result.colorizedBracketPairs,\n __electricCharacterSupport: entry.__electricCharacterSupport || result.__electricCharacterSupport,\n };\n }\n return result;\n}\nclass LanguageConfigurationContribution {\n constructor(configuration, priority, order) {\n this.configuration = configuration;\n this.priority = priority;\n this.order = order;\n }\n static cmp(a, b) {\n if (a.priority === b.priority) {\n // higher order last\n return a.order - b.order;\n }\n // higher priority last\n return a.priority - b.priority;\n }\n}\nexport class LanguageConfigurationChangeEvent {\n constructor(languageId) {\n this.languageId = languageId;\n }\n}\nexport class LanguageConfigurationRegistry extends Disposable {\n constructor() {\n super();\n this._entries = new Map();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._register(this.register(PLAINTEXT_LANGUAGE_ID, {\n brackets: [\n ['(', ')'],\n ['[', ']'],\n ['{', '}'],\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '<', close: '>' },\n { open: '\\\"', close: '\\\"' },\n { open: '\\'', close: '\\'' },\n { open: '`', close: '`' },\n ],\n colorizedBracketPairs: [],\n folding: {\n offSide: true\n }\n }, 0));\n }\n /**\n * @param priority Use a higher number for higher priority\n */\n register(languageId, configuration, priority = 0) {\n let entries = this._entries.get(languageId);\n if (!entries) {\n entries = new ComposedLanguageConfiguration(languageId);\n this._entries.set(languageId, entries);\n }\n const disposable = entries.register(configuration, priority);\n this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n return toDisposable(() => {\n disposable.dispose();\n this._onDidChange.fire(new LanguageConfigurationChangeEvent(languageId));\n });\n }\n getLanguageConfiguration(languageId) {\n const entries = this._entries.get(languageId);\n return (entries === null || entries === void 0 ? void 0 : entries.getResolvedConfiguration()) || null;\n }\n}\n/**\n * Immutable.\n*/\nexport class ResolvedLanguageConfiguration {\n constructor(languageId, underlyingConfig) {\n this.languageId = languageId;\n this.underlyingConfig = underlyingConfig;\n this._brackets = null;\n this._electricCharacter = null;\n this._onEnterSupport =\n this.underlyingConfig.brackets ||\n this.underlyingConfig.indentationRules ||\n this.underlyingConfig.onEnterRules\n ? new OnEnterSupport(this.underlyingConfig)\n : null;\n this.comments = ResolvedLanguageConfiguration._handleComments(this.underlyingConfig);\n this.characterPair = new CharacterPairSupport(this.underlyingConfig);\n this.wordDefinition = this.underlyingConfig.wordPattern || DEFAULT_WORD_REGEXP;\n this.indentationRules = this.underlyingConfig.indentationRules;\n if (this.underlyingConfig.indentationRules) {\n this.indentRulesSupport = new IndentRulesSupport(this.underlyingConfig.indentationRules);\n }\n else {\n this.indentRulesSupport = null;\n }\n this.foldingRules = this.underlyingConfig.folding || {};\n this.bracketsNew = new LanguageBracketsConfiguration(languageId, this.underlyingConfig);\n }\n getWordDefinition() {\n return ensureValidWordDefinition(this.wordDefinition);\n }\n get brackets() {\n if (!this._brackets && this.underlyingConfig.brackets) {\n this._brackets = new RichEditBrackets(this.languageId, this.underlyingConfig.brackets);\n }\n return this._brackets;\n }\n get electricCharacter() {\n if (!this._electricCharacter) {\n this._electricCharacter = new BracketElectricCharacterSupport(this.brackets);\n }\n return this._electricCharacter;\n }\n onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText) {\n if (!this._onEnterSupport) {\n return null;\n }\n return this._onEnterSupport.onEnter(autoIndent, previousLineText, beforeEnterText, afterEnterText);\n }\n getAutoClosingPairs() {\n return new AutoClosingPairs(this.characterPair.getAutoClosingPairs());\n }\n getAutoCloseBeforeSet(forQuotes) {\n return this.characterPair.getAutoCloseBeforeSet(forQuotes);\n }\n getSurroundingPairs() {\n return this.characterPair.getSurroundingPairs();\n }\n static _handleComments(conf) {\n const commentRule = conf.comments;\n if (!commentRule) {\n return null;\n }\n // comment configuration\n const comments = {};\n if (commentRule.lineComment) {\n comments.lineCommentToken = commentRule.lineComment;\n }\n if (commentRule.blockComment) {\n const [blockStart, blockEnd] = commentRule.blockComment;\n comments.blockCommentStartToken = blockStart;\n comments.blockCommentEndToken = blockEnd;\n }\n return comments;\n }\n}\nregisterSingleton(ILanguageConfigurationService, LanguageConfigurationService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findFirstIdxMonotonousOrArrLen } from '../../../../base/common/arraysFind.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Range } from '../../../common/core/range.js';\nimport { countEOL } from '../../../common/core/eolCounter.js';\nexport class HiddenRangeModel {\n get onDidChange() { return this._updateEventEmitter.event; }\n get hiddenRanges() { return this._hiddenRanges; }\n constructor(model) {\n this._updateEventEmitter = new Emitter();\n this._hasLineChanges = false;\n this._foldingModel = model;\n this._foldingModelListener = model.onDidChange(_ => this.updateHiddenRanges());\n this._hiddenRanges = [];\n if (model.regions.length) {\n this.updateHiddenRanges();\n }\n }\n notifyChangeModelContent(e) {\n if (this._hiddenRanges.length && !this._hasLineChanges) {\n this._hasLineChanges = e.changes.some(change => {\n return change.range.endLineNumber !== change.range.startLineNumber || countEOL(change.text)[0] !== 0;\n });\n }\n }\n updateHiddenRanges() {\n let updateHiddenAreas = false;\n const newHiddenAreas = [];\n let i = 0; // index into hidden\n let k = 0;\n let lastCollapsedStart = Number.MAX_VALUE;\n let lastCollapsedEnd = -1;\n const ranges = this._foldingModel.regions;\n for (; i < ranges.length; i++) {\n if (!ranges.isCollapsed(i)) {\n continue;\n }\n const startLineNumber = ranges.getStartLineNumber(i) + 1; // the first line is not hidden\n const endLineNumber = ranges.getEndLineNumber(i);\n if (lastCollapsedStart <= startLineNumber && endLineNumber <= lastCollapsedEnd) {\n // ignore ranges contained in collapsed regions\n continue;\n }\n if (!updateHiddenAreas && k < this._hiddenRanges.length && this._hiddenRanges[k].startLineNumber === startLineNumber && this._hiddenRanges[k].endLineNumber === endLineNumber) {\n // reuse the old ranges\n newHiddenAreas.push(this._hiddenRanges[k]);\n k++;\n }\n else {\n updateHiddenAreas = true;\n newHiddenAreas.push(new Range(startLineNumber, 1, endLineNumber, 1));\n }\n lastCollapsedStart = startLineNumber;\n lastCollapsedEnd = endLineNumber;\n }\n if (this._hasLineChanges || updateHiddenAreas || k < this._hiddenRanges.length) {\n this.applyHiddenRanges(newHiddenAreas);\n }\n }\n applyHiddenRanges(newHiddenAreas) {\n this._hiddenRanges = newHiddenAreas;\n this._hasLineChanges = false;\n this._updateEventEmitter.fire(newHiddenAreas);\n }\n hasRanges() {\n return this._hiddenRanges.length > 0;\n }\n isHidden(line) {\n return findRange(this._hiddenRanges, line) !== null;\n }\n adjustSelections(selections) {\n let hasChanges = false;\n const editorModel = this._foldingModel.textModel;\n let lastRange = null;\n const adjustLine = (line) => {\n if (!lastRange || !isInside(line, lastRange)) {\n lastRange = findRange(this._hiddenRanges, line);\n }\n if (lastRange) {\n return lastRange.startLineNumber - 1;\n }\n return null;\n };\n for (let i = 0, len = selections.length; i < len; i++) {\n let selection = selections[i];\n const adjustedStartLine = adjustLine(selection.startLineNumber);\n if (adjustedStartLine) {\n selection = selection.setStartPosition(adjustedStartLine, editorModel.getLineMaxColumn(adjustedStartLine));\n hasChanges = true;\n }\n const adjustedEndLine = adjustLine(selection.endLineNumber);\n if (adjustedEndLine) {\n selection = selection.setEndPosition(adjustedEndLine, editorModel.getLineMaxColumn(adjustedEndLine));\n hasChanges = true;\n }\n selections[i] = selection;\n }\n return hasChanges;\n }\n dispose() {\n if (this.hiddenRanges.length > 0) {\n this._hiddenRanges = [];\n this._updateEventEmitter.fire(this._hiddenRanges);\n }\n if (this._foldingModelListener) {\n this._foldingModelListener.dispose();\n this._foldingModelListener = null;\n }\n }\n}\nfunction isInside(line, range) {\n return line >= range.startLineNumber && line <= range.endLineNumber;\n}\nfunction findRange(ranges, line) {\n const i = findFirstIdxMonotonousOrArrLen(ranges, r => line < r.startLineNumber) - 1;\n if (i >= 0 && ranges[i].endLineNumber >= line) {\n return ranges[i];\n }\n return null;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FoldingController_1;\nimport { createCancelablePromise, Delayer, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { escapeRegExpCharacters } from '../../../../base/common/strings.js';\nimport * as types from '../../../../base/common/types.js';\nimport './folding.css';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution, registerInstantiatedEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { FoldingRangeKind } from '../../../common/languages.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { FoldingModel, getNextFoldLine, getParentFoldLine as getParentFoldLine, getPreviousFoldLine, setCollapseStateAtLevel, setCollapseStateForMatchingLines, setCollapseStateForRest, setCollapseStateForType, setCollapseStateLevelsDown, setCollapseStateLevelsUp, setCollapseStateUp, toggleCollapseState } from './foldingModel.js';\nimport { HiddenRangeModel } from './hiddenRangeModel.js';\nimport { IndentRangeProvider } from './indentRangeProvider.js';\nimport * as nls from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { FoldingDecorationProvider } from './foldingDecorations.js';\nimport { FoldingRegions } from './foldingRanges.js';\nimport { SyntaxRangeProvider } from './syntaxRangeProvider.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nconst CONTEXT_FOLDING_ENABLED = new RawContextKey('foldingEnabled', false);\nlet FoldingController = FoldingController_1 = class FoldingController extends Disposable {\n static get(editor) {\n return editor.getContribution(FoldingController_1.ID);\n }\n static getFoldingRangeProviders(languageFeaturesService, model) {\n var _a, _b;\n const foldingRangeProviders = languageFeaturesService.foldingRangeProvider.ordered(model);\n return (_b = ((_a = FoldingController_1._foldingRangeSelector) === null || _a === void 0 ? void 0 : _a.call(FoldingController_1, foldingRangeProviders, model))) !== null && _b !== void 0 ? _b : foldingRangeProviders;\n }\n constructor(editor, contextKeyService, languageConfigurationService, notificationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this.contextKeyService = contextKeyService;\n this.languageConfigurationService = languageConfigurationService;\n this.languageFeaturesService = languageFeaturesService;\n this.localToDispose = this._register(new DisposableStore());\n this.editor = editor;\n this._foldingLimitReporter = new RangesLimitReporter(editor);\n const options = this.editor.getOptions();\n this._isEnabled = options.get(43 /* EditorOption.folding */);\n this._useFoldingProviders = options.get(44 /* EditorOption.foldingStrategy */) !== 'indentation';\n this._unfoldOnClickAfterEndOfLine = options.get(48 /* EditorOption.unfoldOnClickAfterEndOfLine */);\n this._restoringViewState = false;\n this._currentModelHasFoldedImports = false;\n this._foldingImportsByDefault = options.get(46 /* EditorOption.foldingImportsByDefault */);\n this.updateDebounceInfo = languageFeatureDebounceService.for(languageFeaturesService.foldingRangeProvider, 'Folding', { min: 200 });\n this.foldingModel = null;\n this.hiddenRangeModel = null;\n this.rangeProvider = null;\n this.foldingRegionPromise = null;\n this.foldingModelPromise = null;\n this.updateScheduler = null;\n this.cursorChangedScheduler = null;\n this.mouseDownInfo = null;\n this.foldingDecorationProvider = new FoldingDecorationProvider(editor);\n this.foldingDecorationProvider.showFoldingControls = options.get(110 /* EditorOption.showFoldingControls */);\n this.foldingDecorationProvider.showFoldingHighlights = options.get(45 /* EditorOption.foldingHighlight */);\n this.foldingEnabled = CONTEXT_FOLDING_ENABLED.bindTo(this.contextKeyService);\n this.foldingEnabled.set(this._isEnabled);\n this._register(this.editor.onDidChangeModel(() => this.onModelChanged()));\n this._register(this.editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(43 /* EditorOption.folding */)) {\n this._isEnabled = this.editor.getOptions().get(43 /* EditorOption.folding */);\n this.foldingEnabled.set(this._isEnabled);\n this.onModelChanged();\n }\n if (e.hasChanged(47 /* EditorOption.foldingMaximumRegions */)) {\n this.onModelChanged();\n }\n if (e.hasChanged(110 /* EditorOption.showFoldingControls */) || e.hasChanged(45 /* EditorOption.foldingHighlight */)) {\n const options = this.editor.getOptions();\n this.foldingDecorationProvider.showFoldingControls = options.get(110 /* EditorOption.showFoldingControls */);\n this.foldingDecorationProvider.showFoldingHighlights = options.get(45 /* EditorOption.foldingHighlight */);\n this.triggerFoldingModelChanged();\n }\n if (e.hasChanged(44 /* EditorOption.foldingStrategy */)) {\n this._useFoldingProviders = this.editor.getOptions().get(44 /* EditorOption.foldingStrategy */) !== 'indentation';\n this.onFoldingStrategyChanged();\n }\n if (e.hasChanged(48 /* EditorOption.unfoldOnClickAfterEndOfLine */)) {\n this._unfoldOnClickAfterEndOfLine = this.editor.getOptions().get(48 /* EditorOption.unfoldOnClickAfterEndOfLine */);\n }\n if (e.hasChanged(46 /* EditorOption.foldingImportsByDefault */)) {\n this._foldingImportsByDefault = this.editor.getOptions().get(46 /* EditorOption.foldingImportsByDefault */);\n }\n }));\n this.onModelChanged();\n }\n /**\n * Store view state.\n */\n saveViewState() {\n const model = this.editor.getModel();\n if (!model || !this._isEnabled || model.isTooLargeForTokenization()) {\n return {};\n }\n if (this.foldingModel) { // disposed ?\n const collapsedRegions = this.foldingModel.getMemento();\n const provider = this.rangeProvider ? this.rangeProvider.id : undefined;\n return { collapsedRegions, lineCount: model.getLineCount(), provider, foldedImports: this._currentModelHasFoldedImports };\n }\n return undefined;\n }\n /**\n * Restore view state.\n */\n restoreViewState(state) {\n const model = this.editor.getModel();\n if (!model || !this._isEnabled || model.isTooLargeForTokenization() || !this.hiddenRangeModel) {\n return;\n }\n if (!state) {\n return;\n }\n this._currentModelHasFoldedImports = !!state.foldedImports;\n if (state.collapsedRegions && state.collapsedRegions.length > 0 && this.foldingModel) {\n this._restoringViewState = true;\n try {\n this.foldingModel.applyMemento(state.collapsedRegions);\n }\n finally {\n this._restoringViewState = false;\n }\n }\n }\n onModelChanged() {\n this.localToDispose.clear();\n const model = this.editor.getModel();\n if (!this._isEnabled || !model || model.isTooLargeForTokenization()) {\n // huge files get no view model, so they cannot support hidden areas\n return;\n }\n this._currentModelHasFoldedImports = false;\n this.foldingModel = new FoldingModel(model, this.foldingDecorationProvider);\n this.localToDispose.add(this.foldingModel);\n this.hiddenRangeModel = new HiddenRangeModel(this.foldingModel);\n this.localToDispose.add(this.hiddenRangeModel);\n this.localToDispose.add(this.hiddenRangeModel.onDidChange(hr => this.onHiddenRangesChanges(hr)));\n this.updateScheduler = new Delayer(this.updateDebounceInfo.get(model));\n this.cursorChangedScheduler = new RunOnceScheduler(() => this.revealCursor(), 200);\n this.localToDispose.add(this.cursorChangedScheduler);\n this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(() => this.onFoldingStrategyChanged()));\n this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(() => this.onFoldingStrategyChanged())); // covers model language changes as well\n this.localToDispose.add(this.editor.onDidChangeModelContent(e => this.onDidChangeModelContent(e)));\n this.localToDispose.add(this.editor.onDidChangeCursorPosition(() => this.onCursorPositionChanged()));\n this.localToDispose.add(this.editor.onMouseDown(e => this.onEditorMouseDown(e)));\n this.localToDispose.add(this.editor.onMouseUp(e => this.onEditorMouseUp(e)));\n this.localToDispose.add({\n dispose: () => {\n var _a, _b;\n if (this.foldingRegionPromise) {\n this.foldingRegionPromise.cancel();\n this.foldingRegionPromise = null;\n }\n (_a = this.updateScheduler) === null || _a === void 0 ? void 0 : _a.cancel();\n this.updateScheduler = null;\n this.foldingModel = null;\n this.foldingModelPromise = null;\n this.hiddenRangeModel = null;\n this.cursorChangedScheduler = null;\n (_b = this.rangeProvider) === null || _b === void 0 ? void 0 : _b.dispose();\n this.rangeProvider = null;\n }\n });\n this.triggerFoldingModelChanged();\n }\n onFoldingStrategyChanged() {\n var _a;\n (_a = this.rangeProvider) === null || _a === void 0 ? void 0 : _a.dispose();\n this.rangeProvider = null;\n this.triggerFoldingModelChanged();\n }\n getRangeProvider(editorModel) {\n if (this.rangeProvider) {\n return this.rangeProvider;\n }\n const indentRangeProvider = new IndentRangeProvider(editorModel, this.languageConfigurationService, this._foldingLimitReporter);\n this.rangeProvider = indentRangeProvider; // fallback\n if (this._useFoldingProviders && this.foldingModel) {\n const selectedProviders = FoldingController_1.getFoldingRangeProviders(this.languageFeaturesService, editorModel);\n if (selectedProviders.length > 0) {\n this.rangeProvider = new SyntaxRangeProvider(editorModel, selectedProviders, () => this.triggerFoldingModelChanged(), this._foldingLimitReporter, indentRangeProvider);\n }\n }\n return this.rangeProvider;\n }\n getFoldingModel() {\n return this.foldingModelPromise;\n }\n onDidChangeModelContent(e) {\n var _a;\n (_a = this.hiddenRangeModel) === null || _a === void 0 ? void 0 : _a.notifyChangeModelContent(e);\n this.triggerFoldingModelChanged();\n }\n triggerFoldingModelChanged() {\n if (this.updateScheduler) {\n if (this.foldingRegionPromise) {\n this.foldingRegionPromise.cancel();\n this.foldingRegionPromise = null;\n }\n this.foldingModelPromise = this.updateScheduler.trigger(() => {\n const foldingModel = this.foldingModel;\n if (!foldingModel) { // null if editor has been disposed, or folding turned off\n return null;\n }\n const sw = new StopWatch();\n const provider = this.getRangeProvider(foldingModel.textModel);\n const foldingRegionPromise = this.foldingRegionPromise = createCancelablePromise(token => provider.compute(token));\n return foldingRegionPromise.then(foldingRanges => {\n if (foldingRanges && foldingRegionPromise === this.foldingRegionPromise) { // new request or cancelled in the meantime?\n let scrollState;\n if (this._foldingImportsByDefault && !this._currentModelHasFoldedImports) {\n const hasChanges = foldingRanges.setCollapsedAllOfType(FoldingRangeKind.Imports.value, true);\n if (hasChanges) {\n scrollState = StableEditorScrollState.capture(this.editor);\n this._currentModelHasFoldedImports = hasChanges;\n }\n }\n // some cursors might have moved into hidden regions, make sure they are in expanded regions\n const selections = this.editor.getSelections();\n const selectionLineNumbers = selections ? selections.map(s => s.startLineNumber) : [];\n foldingModel.update(foldingRanges, selectionLineNumbers);\n scrollState === null || scrollState === void 0 ? void 0 : scrollState.restore(this.editor);\n // update debounce info\n const newValue = this.updateDebounceInfo.update(foldingModel.textModel, sw.elapsed());\n if (this.updateScheduler) {\n this.updateScheduler.defaultDelay = newValue;\n }\n }\n return foldingModel;\n });\n }).then(undefined, (err) => {\n onUnexpectedError(err);\n return null;\n });\n }\n }\n onHiddenRangesChanges(hiddenRanges) {\n if (this.hiddenRangeModel && hiddenRanges.length && !this._restoringViewState) {\n const selections = this.editor.getSelections();\n if (selections) {\n if (this.hiddenRangeModel.adjustSelections(selections)) {\n this.editor.setSelections(selections);\n }\n }\n }\n this.editor.setHiddenAreas(hiddenRanges, this);\n }\n onCursorPositionChanged() {\n if (this.hiddenRangeModel && this.hiddenRangeModel.hasRanges()) {\n this.cursorChangedScheduler.schedule();\n }\n }\n revealCursor() {\n const foldingModel = this.getFoldingModel();\n if (!foldingModel) {\n return;\n }\n foldingModel.then(foldingModel => {\n if (foldingModel) {\n const selections = this.editor.getSelections();\n if (selections && selections.length > 0) {\n const toToggle = [];\n for (const selection of selections) {\n const lineNumber = selection.selectionStartLineNumber;\n if (this.hiddenRangeModel && this.hiddenRangeModel.isHidden(lineNumber)) {\n toToggle.push(...foldingModel.getAllRegionsAtLine(lineNumber, r => r.isCollapsed && lineNumber > r.startLineNumber));\n }\n }\n if (toToggle.length) {\n foldingModel.toggleCollapseState(toToggle);\n this.reveal(selections[0].getPosition());\n }\n }\n }\n }).then(undefined, onUnexpectedError);\n }\n onEditorMouseDown(e) {\n this.mouseDownInfo = null;\n if (!this.hiddenRangeModel || !e.target || !e.target.range) {\n return;\n }\n if (!e.event.leftButton && !e.event.middleButton) {\n return;\n }\n const range = e.target.range;\n let iconClicked = false;\n switch (e.target.type) {\n case 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */: {\n const data = e.target.detail;\n const offsetLeftInGutter = e.target.element.offsetLeft;\n const gutterOffsetX = data.offsetX - offsetLeftInGutter;\n // const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft;\n // TODO@joao TODO@alex TODO@martin this is such that we don't collide with dirty diff\n if (gutterOffsetX < 4) { // the whitespace between the border and the real folding icon border is 4px\n return;\n }\n iconClicked = true;\n break;\n }\n case 7 /* MouseTargetType.CONTENT_EMPTY */: {\n if (this._unfoldOnClickAfterEndOfLine && this.hiddenRangeModel.hasRanges()) {\n const data = e.target.detail;\n if (!data.isAfterLines) {\n break;\n }\n }\n return;\n }\n case 6 /* MouseTargetType.CONTENT_TEXT */: {\n if (this.hiddenRangeModel.hasRanges()) {\n const model = this.editor.getModel();\n if (model && range.startColumn === model.getLineMaxColumn(range.startLineNumber)) {\n break;\n }\n }\n return;\n }\n default:\n return;\n }\n this.mouseDownInfo = { lineNumber: range.startLineNumber, iconClicked };\n }\n onEditorMouseUp(e) {\n const foldingModel = this.foldingModel;\n if (!foldingModel || !this.mouseDownInfo || !e.target) {\n return;\n }\n const lineNumber = this.mouseDownInfo.lineNumber;\n const iconClicked = this.mouseDownInfo.iconClicked;\n const range = e.target.range;\n if (!range || range.startLineNumber !== lineNumber) {\n return;\n }\n if (iconClicked) {\n if (e.target.type !== 4 /* MouseTargetType.GUTTER_LINE_DECORATIONS */) {\n return;\n }\n }\n else {\n const model = this.editor.getModel();\n if (!model || range.startColumn !== model.getLineMaxColumn(lineNumber)) {\n return;\n }\n }\n const region = foldingModel.getRegionAtLine(lineNumber);\n if (region && region.startLineNumber === lineNumber) {\n const isCollapsed = region.isCollapsed;\n if (iconClicked || isCollapsed) {\n const surrounding = e.event.altKey;\n let toToggle = [];\n if (surrounding) {\n const filter = (otherRegion) => !otherRegion.containedBy(region) && !region.containedBy(otherRegion);\n const toMaybeToggle = foldingModel.getRegionsInside(null, filter);\n for (const r of toMaybeToggle) {\n if (r.isCollapsed) {\n toToggle.push(r);\n }\n }\n // if any surrounding regions are folded, unfold those. Otherwise, fold all surrounding\n if (toToggle.length === 0) {\n toToggle = toMaybeToggle;\n }\n }\n else {\n const recursive = e.event.middleButton || e.event.shiftKey;\n if (recursive) {\n for (const r of foldingModel.getRegionsInside(region)) {\n if (r.isCollapsed === isCollapsed) {\n toToggle.push(r);\n }\n }\n }\n // when recursive, first only collapse all children. If all are already folded or there are no children, also fold parent.\n if (isCollapsed || !recursive || toToggle.length === 0) {\n toToggle.push(region);\n }\n }\n foldingModel.toggleCollapseState(toToggle);\n this.reveal({ lineNumber, column: 1 });\n }\n }\n }\n reveal(position) {\n this.editor.revealPositionInCenterIfOutsideViewport(position, 0 /* ScrollType.Smooth */);\n }\n};\nFoldingController.ID = 'editor.contrib.folding';\nFoldingController = FoldingController_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, ILanguageConfigurationService),\n __param(3, INotificationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], FoldingController);\nexport { FoldingController };\nexport class RangesLimitReporter {\n constructor(editor) {\n this.editor = editor;\n this._onDidChange = new Emitter();\n this._computed = 0;\n this._limited = false;\n }\n get limit() {\n return this.editor.getOptions().get(47 /* EditorOption.foldingMaximumRegions */);\n }\n update(computed, limited) {\n if (computed !== this._computed || limited !== this._limited) {\n this._computed = computed;\n this._limited = limited;\n this._onDidChange.fire();\n }\n }\n}\nclass FoldingAction extends EditorAction {\n runEditorCommand(accessor, editor, args) {\n const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n const foldingController = FoldingController.get(editor);\n if (!foldingController) {\n return;\n }\n const foldingModelPromise = foldingController.getFoldingModel();\n if (foldingModelPromise) {\n this.reportTelemetry(accessor, editor);\n return foldingModelPromise.then(foldingModel => {\n if (foldingModel) {\n this.invoke(foldingController, foldingModel, editor, args, languageConfigurationService);\n const selection = editor.getSelection();\n if (selection) {\n foldingController.reveal(selection.getStartPosition());\n }\n }\n });\n }\n }\n getSelectedLines(editor) {\n const selections = editor.getSelections();\n return selections ? selections.map(s => s.startLineNumber) : [];\n }\n getLineNumbers(args, editor) {\n if (args && args.selectionLines) {\n return args.selectionLines.map(l => l + 1); // to 0-bases line numbers\n }\n return this.getSelectedLines(editor);\n }\n run(_accessor, _editor) {\n }\n}\nfunction foldingArgumentsConstraint(args) {\n if (!types.isUndefined(args)) {\n if (!types.isObject(args)) {\n return false;\n }\n const foldingArgs = args;\n if (!types.isUndefined(foldingArgs.levels) && !types.isNumber(foldingArgs.levels)) {\n return false;\n }\n if (!types.isUndefined(foldingArgs.direction) && !types.isString(foldingArgs.direction)) {\n return false;\n }\n if (!types.isUndefined(foldingArgs.selectionLines) && (!Array.isArray(foldingArgs.selectionLines) || !foldingArgs.selectionLines.every(types.isNumber))) {\n return false;\n }\n }\n return true;\n}\nclass UnfoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.unfold',\n label: nls.localize('unfoldAction.label', \"Unfold\"),\n alias: 'Unfold',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 94 /* KeyCode.BracketRight */,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 94 /* KeyCode.BracketRight */\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: 'Unfold the content in the editor',\n args: [\n {\n name: 'Unfold editor argument',\n description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t* 'levels': Number of levels to unfold. If not set, defaults to 1.\n\t\t\t\t\t\t* 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t`,\n constraint: foldingArgumentsConstraint,\n schema: {\n 'type': 'object',\n 'properties': {\n 'levels': {\n 'type': 'number',\n 'default': 1\n },\n 'direction': {\n 'type': 'string',\n 'enum': ['up', 'down'],\n 'default': 'down'\n },\n 'selectionLines': {\n 'type': 'array',\n 'items': {\n 'type': 'number'\n }\n }\n }\n }\n }\n ]\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, args) {\n const levels = args && args.levels || 1;\n const lineNumbers = this.getLineNumbers(args, editor);\n if (args && args.direction === 'up') {\n setCollapseStateLevelsUp(foldingModel, false, levels, lineNumbers);\n }\n else {\n setCollapseStateLevelsDown(foldingModel, false, levels, lineNumbers);\n }\n }\n}\nclass UnFoldRecursivelyAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.unfoldRecursively',\n label: nls.localize('unFoldRecursivelyAction.label', \"Unfold Recursively\"),\n alias: 'Unfold Recursively',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 94 /* KeyCode.BracketRight */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, _args) {\n setCollapseStateLevelsDown(foldingModel, false, Number.MAX_VALUE, this.getSelectedLines(editor));\n }\n}\nclass FoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.fold',\n label: nls.localize('foldAction.label', \"Fold\"),\n alias: 'Fold',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 92 /* KeyCode.BracketLeft */,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 92 /* KeyCode.BracketLeft */\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: 'Fold the content in the editor',\n args: [\n {\n name: 'Fold editor argument',\n description: `Property-value pairs that can be passed through this argument:\n\t\t\t\t\t\t\t* 'levels': Number of levels to fold.\n\t\t\t\t\t\t\t* 'direction': If 'up', folds given number of levels up otherwise folds down.\n\t\t\t\t\t\t\t* 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used.\n\t\t\t\t\t\t\tIf no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n\t\t\t\t\t\t`,\n constraint: foldingArgumentsConstraint,\n schema: {\n 'type': 'object',\n 'properties': {\n 'levels': {\n 'type': 'number',\n },\n 'direction': {\n 'type': 'string',\n 'enum': ['up', 'down'],\n },\n 'selectionLines': {\n 'type': 'array',\n 'items': {\n 'type': 'number'\n }\n }\n }\n }\n }\n ]\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, args) {\n const lineNumbers = this.getLineNumbers(args, editor);\n const levels = args && args.levels;\n const direction = args && args.direction;\n if (typeof levels !== 'number' && typeof direction !== 'string') {\n // fold the region at the location or if already collapsed, the first uncollapsed parent instead.\n setCollapseStateUp(foldingModel, true, lineNumbers);\n }\n else {\n if (direction === 'up') {\n setCollapseStateLevelsUp(foldingModel, true, levels || 1, lineNumbers);\n }\n else {\n setCollapseStateLevelsDown(foldingModel, true, levels || 1, lineNumbers);\n }\n }\n }\n}\nclass ToggleFoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.toggleFold',\n label: nls.localize('toggleFoldAction.label', \"Toggle Fold\"),\n alias: 'Toggle Fold',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 42 /* KeyCode.KeyL */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n toggleCollapseState(foldingModel, 1, selectedLines);\n }\n}\nclass FoldRecursivelyAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.foldRecursively',\n label: nls.localize('foldRecursivelyAction.label', \"Fold Recursively\"),\n alias: 'Fold Recursively',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 92 /* KeyCode.BracketLeft */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n setCollapseStateLevelsDown(foldingModel, true, Number.MAX_VALUE, selectedLines);\n }\n}\nclass FoldAllBlockCommentsAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.foldAllBlockComments',\n label: nls.localize('foldAllBlockComments.label', \"Fold All Block Comments\"),\n alias: 'Fold All Block Comments',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 90 /* KeyCode.Slash */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n if (foldingModel.regions.hasTypes()) {\n setCollapseStateForType(foldingModel, FoldingRangeKind.Comment.value, true);\n }\n else {\n const editorModel = editor.getModel();\n if (!editorModel) {\n return;\n }\n const comments = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).comments;\n if (comments && comments.blockCommentStartToken) {\n const regExp = new RegExp('^\\\\s*' + escapeRegExpCharacters(comments.blockCommentStartToken));\n setCollapseStateForMatchingLines(foldingModel, regExp, true);\n }\n }\n }\n}\nclass FoldAllRegionsAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.foldAllMarkerRegions',\n label: nls.localize('foldAllMarkerRegions.label', \"Fold All Regions\"),\n alias: 'Fold All Regions',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 29 /* KeyCode.Digit8 */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n if (foldingModel.regions.hasTypes()) {\n setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, true);\n }\n else {\n const editorModel = editor.getModel();\n if (!editorModel) {\n return;\n }\n const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n if (foldingRules && foldingRules.markers && foldingRules.markers.start) {\n const regExp = new RegExp(foldingRules.markers.start);\n setCollapseStateForMatchingLines(foldingModel, regExp, true);\n }\n }\n }\n}\nclass UnfoldAllRegionsAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.unfoldAllMarkerRegions',\n label: nls.localize('unfoldAllMarkerRegions.label', \"Unfold All Regions\"),\n alias: 'Unfold All Regions',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 30 /* KeyCode.Digit9 */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor, args, languageConfigurationService) {\n if (foldingModel.regions.hasTypes()) {\n setCollapseStateForType(foldingModel, FoldingRangeKind.Region.value, false);\n }\n else {\n const editorModel = editor.getModel();\n if (!editorModel) {\n return;\n }\n const foldingRules = languageConfigurationService.getLanguageConfiguration(editorModel.getLanguageId()).foldingRules;\n if (foldingRules && foldingRules.markers && foldingRules.markers.start) {\n const regExp = new RegExp(foldingRules.markers.start);\n setCollapseStateForMatchingLines(foldingModel, regExp, false);\n }\n }\n }\n}\nclass FoldAllExceptAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.foldAllExcept',\n label: nls.localize('foldAllExcept.label', \"Fold All Except Selected\"),\n alias: 'Fold All Except Selected',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 88 /* KeyCode.Minus */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n setCollapseStateForRest(foldingModel, true, selectedLines);\n }\n}\nclass UnfoldAllExceptAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.unfoldAllExcept',\n label: nls.localize('unfoldAllExcept.label', \"Unfold All Except Selected\"),\n alias: 'Unfold All Except Selected',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 86 /* KeyCode.Equal */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n setCollapseStateForRest(foldingModel, false, selectedLines);\n }\n}\nclass FoldAllAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.foldAll',\n label: nls.localize('foldAllAction.label', \"Fold All\"),\n alias: 'Fold All',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 21 /* KeyCode.Digit0 */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, _editor) {\n setCollapseStateLevelsDown(foldingModel, true);\n }\n}\nclass UnfoldAllAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.unfoldAll',\n label: nls.localize('unfoldAllAction.label', \"Unfold All\"),\n alias: 'Unfold All',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 40 /* KeyCode.KeyJ */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, _editor) {\n setCollapseStateLevelsDown(foldingModel, false);\n }\n}\nclass FoldLevelAction extends FoldingAction {\n getFoldingLevel() {\n return parseInt(this.id.substr(FoldLevelAction.ID_PREFIX.length));\n }\n invoke(_foldingController, foldingModel, editor) {\n setCollapseStateAtLevel(foldingModel, this.getFoldingLevel(), true, this.getSelectedLines(editor));\n }\n}\nFoldLevelAction.ID_PREFIX = 'editor.foldLevel';\nFoldLevelAction.ID = (level) => FoldLevelAction.ID_PREFIX + level;\n/** Action to go to the parent fold of current line */\nclass GotoParentFoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.gotoParentFold',\n label: nls.localize('gotoParentFold.label', \"Go to Parent Fold\"),\n alias: 'Go to Parent Fold',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n if (selectedLines.length > 0) {\n const startLineNumber = getParentFoldLine(selectedLines[0], foldingModel);\n if (startLineNumber !== null) {\n editor.setSelection({\n startLineNumber: startLineNumber,\n startColumn: 1,\n endLineNumber: startLineNumber,\n endColumn: 1\n });\n }\n }\n }\n}\n/** Action to go to the previous fold of current line */\nclass GotoPreviousFoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.gotoPreviousFold',\n label: nls.localize('gotoPreviousFold.label', \"Go to Previous Folding Range\"),\n alias: 'Go to Previous Folding Range',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n if (selectedLines.length > 0) {\n const startLineNumber = getPreviousFoldLine(selectedLines[0], foldingModel);\n if (startLineNumber !== null) {\n editor.setSelection({\n startLineNumber: startLineNumber,\n startColumn: 1,\n endLineNumber: startLineNumber,\n endColumn: 1\n });\n }\n }\n }\n}\n/** Action to go to the next fold of current line */\nclass GotoNextFoldAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.gotoNextFold',\n label: nls.localize('gotoNextFold.label', \"Go to Next Folding Range\"),\n alias: 'Go to Next Folding Range',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n const selectedLines = this.getSelectedLines(editor);\n if (selectedLines.length > 0) {\n const startLineNumber = getNextFoldLine(selectedLines[0], foldingModel);\n if (startLineNumber !== null) {\n editor.setSelection({\n startLineNumber: startLineNumber,\n startColumn: 1,\n endLineNumber: startLineNumber,\n endColumn: 1\n });\n }\n }\n }\n}\nclass FoldRangeFromSelectionAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.createFoldingRangeFromSelection',\n label: nls.localize('createManualFoldRange.label', \"Create Folding Range from Selection\"),\n alias: 'Create Folding Range from Selection',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 87 /* KeyCode.Comma */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(_foldingController, foldingModel, editor) {\n var _a;\n const collapseRanges = [];\n const selections = editor.getSelections();\n if (selections) {\n for (const selection of selections) {\n let endLineNumber = selection.endLineNumber;\n if (selection.endColumn === 1) {\n --endLineNumber;\n }\n if (endLineNumber > selection.startLineNumber) {\n collapseRanges.push({\n startLineNumber: selection.startLineNumber,\n endLineNumber: endLineNumber,\n type: undefined,\n isCollapsed: true,\n source: 1 /* FoldSource.userDefined */\n });\n editor.setSelection({\n startLineNumber: selection.startLineNumber,\n startColumn: 1,\n endLineNumber: selection.startLineNumber,\n endColumn: 1\n });\n }\n }\n if (collapseRanges.length > 0) {\n collapseRanges.sort((a, b) => {\n return a.startLineNumber - b.startLineNumber;\n });\n const newRanges = FoldingRegions.sanitizeAndMerge(foldingModel.regions, collapseRanges, (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLineCount());\n foldingModel.updatePost(FoldingRegions.fromFoldRanges(newRanges));\n }\n }\n }\n}\nclass RemoveFoldRangeFromSelectionAction extends FoldingAction {\n constructor() {\n super({\n id: 'editor.removeManualFoldingRanges',\n label: nls.localize('removeManualFoldingRanges.label', \"Remove Manual Folding Ranges\"),\n alias: 'Remove Manual Folding Ranges',\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n invoke(foldingController, foldingModel, editor) {\n const selections = editor.getSelections();\n if (selections) {\n const ranges = [];\n for (const selection of selections) {\n const { startLineNumber, endLineNumber } = selection;\n ranges.push(endLineNumber >= startLineNumber ? { startLineNumber, endLineNumber } : { endLineNumber, startLineNumber });\n }\n foldingModel.removeManualRanges(ranges);\n foldingController.triggerFoldingModelChanged();\n }\n }\n}\nregisterEditorContribution(FoldingController.ID, FoldingController, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(UnfoldAction);\nregisterEditorAction(UnFoldRecursivelyAction);\nregisterEditorAction(FoldAction);\nregisterEditorAction(FoldRecursivelyAction);\nregisterEditorAction(FoldAllAction);\nregisterEditorAction(UnfoldAllAction);\nregisterEditorAction(FoldAllBlockCommentsAction);\nregisterEditorAction(FoldAllRegionsAction);\nregisterEditorAction(UnfoldAllRegionsAction);\nregisterEditorAction(FoldAllExceptAction);\nregisterEditorAction(UnfoldAllExceptAction);\nregisterEditorAction(ToggleFoldAction);\nregisterEditorAction(GotoParentFoldAction);\nregisterEditorAction(GotoPreviousFoldAction);\nregisterEditorAction(GotoNextFoldAction);\nregisterEditorAction(FoldRangeFromSelectionAction);\nregisterEditorAction(RemoveFoldRangeFromSelectionAction);\nfor (let i = 1; i <= 7; i++) {\n registerInstantiatedEditorAction(new FoldLevelAction({\n id: FoldLevelAction.ID(i),\n label: nls.localize('foldLevelAction.label', \"Fold Level {0}\", i),\n alias: `Fold Level ${i}`,\n precondition: CONTEXT_FOLDING_ENABLED,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | (21 /* KeyCode.Digit0 */ + i)),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n }));\n}\nCommandsRegistry.registerCommand('_executeFoldingRangeProvider', async function (accessor, ...args) {\n const [resource] = args;\n if (!(resource instanceof URI)) {\n throw illegalArgument();\n }\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const model = accessor.get(IModelService).getModel(resource);\n if (!model) {\n throw illegalArgument();\n }\n const configurationService = accessor.get(IConfigurationService);\n if (!configurationService.getValue('editor.folding', { resource })) {\n return [];\n }\n const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n const strategy = configurationService.getValue('editor.foldingStrategy', { resource });\n const foldingLimitReporter = {\n get limit() {\n return configurationService.getValue('editor.foldingMaximumRegions', { resource });\n },\n update: (computed, limited) => { }\n };\n const indentRangeProvider = new IndentRangeProvider(model, languageConfigurationService, foldingLimitReporter);\n let rangeProvider = indentRangeProvider;\n if (strategy !== 'indentation') {\n const providers = FoldingController.getFoldingRangeProviders(languageFeaturesService, model);\n if (providers.length) {\n rangeProvider = new SyntaxRangeProvider(model, providers, () => { }, foldingLimitReporter, indentRangeProvider);\n }\n }\n const ranges = await rangeProvider.compute(CancellationToken.None);\n const result = [];\n try {\n if (ranges) {\n for (let i = 0; i < ranges.length; i++) {\n const type = ranges.getType(i);\n result.push({ start: ranges.getStartLineNumber(i), end: ranges.getEndLineNumber(i), kind: type ? FoldingRangeKind.fromValue(type) : undefined });\n }\n }\n return result;\n }\n finally {\n rangeProvider.dispose();\n }\n});\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ActionRunner } from '../../../../base/common/actions.js';\nexport class ActionRunnerWithContext extends ActionRunner {\n constructor(_getContext) {\n super();\n this._getContext = _getContext;\n }\n runAction(action, _context) {\n const ctx = this._getContext();\n return super.runAction(action, ctx);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getActiveElement } from '../../../../base/browser/dom.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { EditorAction2 } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { DiffEditorWidget } from './diffEditorWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\nimport { Action2, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\nexport class ToggleCollapseUnchangedRegions extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleCollapseUnchangedRegions',\n title: localize2('toggleCollapseUnchangedRegions', 'Toggle Collapse Unchanged Regions'),\n icon: Codicon.map,\n toggled: ContextKeyExpr.has('config.diffEditor.hideUnchangedRegions.enabled'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n menu: {\n when: ContextKeyExpr.has('isInDiffEditor'),\n id: MenuId.EditorTitle,\n order: 22,\n group: 'navigation',\n },\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.hideUnchangedRegions.enabled');\n configurationService.updateValue('diffEditor.hideUnchangedRegions.enabled', newValue);\n }\n}\nexport class ToggleShowMovedCodeBlocks extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleShowMovedCodeBlocks',\n title: localize2('toggleShowMovedCodeBlocks', 'Toggle Show Moved Code Blocks'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.experimental.showMoves');\n configurationService.updateValue('diffEditor.experimental.showMoves', newValue);\n }\n}\nexport class ToggleUseInlineViewWhenSpaceIsLimited extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleUseInlineViewWhenSpaceIsLimited',\n title: localize2('toggleUseInlineViewWhenSpaceIsLimited', 'Toggle Use Inline View When Space Is Limited'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.useInlineViewWhenSpaceIsLimited');\n configurationService.updateValue('diffEditor.useInlineViewWhenSpaceIsLimited', newValue);\n }\n}\nconst diffEditorCategory = localize2('diffEditor', \"Diff Editor\");\nexport class SwitchSide extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.switchSide',\n title: localize2('switchSide', 'Switch Side'),\n icon: Codicon.arrowSwap,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, arg) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n if (arg && arg.dryRun) {\n return { destinationSelection: diffEditor.mapToOtherSide().destinationSelection };\n }\n else {\n diffEditor.switchSide();\n }\n }\n return undefined;\n }\n}\nexport class ExitCompareMove extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.exitCompareMove',\n title: localize2('exitCompareMove', 'Exit Compare Move'),\n icon: Codicon.close,\n precondition: EditorContextKeys.comparingMovedCode,\n f1: false,\n category: diffEditorCategory,\n keybinding: {\n weight: 10000,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.exitCompareMove();\n }\n }\n}\nexport class CollapseAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.collapseAllUnchangedRegions',\n title: localize2('collapseAllUnchangedRegions', 'Collapse All Unchanged Regions'),\n icon: Codicon.fold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.collapseAllUnchangedRegions();\n }\n }\n}\nexport class ShowAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.showAllUnchangedRegions',\n title: localize2('showAllUnchangedRegions', 'Show All Unchanged Regions'),\n icon: Codicon.unfold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.showAllUnchangedRegions();\n }\n }\n}\nexport class RevertHunkOrSelection extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.revert',\n title: localize2('revert', 'Revert'),\n f1: false,\n category: diffEditorCategory,\n });\n }\n run(accessor, arg) {\n var _a;\n const diffEditor = findDiffEditor(accessor, arg.originalUri, arg.modifiedUri);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.revertRangeMappings((_a = arg.mapping.innerChanges) !== null && _a !== void 0 ? _a : []);\n }\n return undefined;\n }\n}\nconst accessibleDiffViewerCategory = localize2('accessibleDiffViewer', \"Accessible Diff Viewer\");\nexport class AccessibleDiffViewerNext extends Action2 {\n constructor() {\n super({\n id: AccessibleDiffViewerNext.id,\n title: localize2('editor.action.accessibleDiffViewer.next', 'Go to Next Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerNext();\n }\n}\nAccessibleDiffViewerNext.id = 'editor.action.accessibleDiffViewer.next';\nexport class AccessibleDiffViewerPrev extends Action2 {\n constructor() {\n super({\n id: AccessibleDiffViewerPrev.id,\n title: localize2('editor.action.accessibleDiffViewer.prev', 'Go to Previous Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerPrev();\n }\n}\nAccessibleDiffViewerPrev.id = 'editor.action.accessibleDiffViewer.prev';\nexport function findDiffEditor(accessor, originalUri, modifiedUri) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n return diffEditors.find(diffEditor => {\n var _a, _b;\n const modified = diffEditor.getModifiedEditor();\n const original = diffEditor.getOriginalEditor();\n return modified && ((_a = modified.getModel()) === null || _a === void 0 ? void 0 : _a.uri.toString()) === modifiedUri.toString()\n && original && ((_b = original.getModel()) === null || _b === void 0 ? void 0 : _b.uri.toString()) === originalUri.toString();\n }) || null;\n}\nexport function findFocusedDiffEditor(accessor) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n const activeElement = getActiveElement();\n if (activeElement) {\n for (const d of diffEditors) {\n const container = d.getContainerDomNode();\n if (isElementOrParentOf(container, activeElement)) {\n return d;\n }\n }\n }\n return null;\n}\nfunction isElementOrParentOf(elementOrParent, element) {\n let e = element;\n while (e) {\n if (e === elementOrParent) {\n return true;\n }\n e = e.parentElement;\n }\n return false;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { AccessibleDiffViewerNext, AccessibleDiffViewerPrev, CollapseAllUnchangedRegions, ExitCompareMove, RevertHunkOrSelection, ShowAllUnchangedRegions, SwitchSide, ToggleCollapseUnchangedRegions, ToggleShowMovedCodeBlocks, ToggleUseInlineViewWhenSpaceIsLimited } from './commands.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuId, MenuRegistry, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ContextKeyEqualsExpr, ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\nregisterAction2(ToggleCollapseUnchangedRegions);\nregisterAction2(ToggleShowMovedCodeBlocks);\nregisterAction2(ToggleUseInlineViewWhenSpaceIsLimited);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,\n title: localize('useInlineViewWhenSpaceIsLimited', \"Use Inline View When Space Is Limited\"),\n toggled: ContextKeyExpr.has('config.diffEditor.useInlineViewWhenSpaceIsLimited'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 11,\n group: '1_diff',\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached, ContextKeyExpr.has('isInDiffEditor')),\n});\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: new ToggleShowMovedCodeBlocks().desc.id,\n title: localize('showMoves', \"Show Moved Code Blocks\"),\n icon: Codicon.move,\n toggled: ContextKeyEqualsExpr.create('config.diffEditor.experimental.showMoves', true),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 10,\n group: '1_diff',\n when: ContextKeyExpr.has('isInDiffEditor'),\n});\nregisterAction2(RevertHunkOrSelection);\nfor (const ctx of [\n { icon: Codicon.arrowRight, key: EditorContextKeys.diffEditorInlineMode.toNegated() },\n { icon: Codicon.discard, key: EditorContextKeys.diffEditorInlineMode }\n]) {\n MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar, {\n command: {\n id: new RevertHunkOrSelection().desc.id,\n title: localize('revertHunk', \"Revert Block\"),\n icon: ctx.icon,\n },\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n order: 5,\n group: 'primary',\n });\n MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar, {\n command: {\n id: new RevertHunkOrSelection().desc.id,\n title: localize('revertSelection', \"Revert Selection\"),\n icon: ctx.icon,\n },\n when: ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable, ctx.key),\n order: 5,\n group: 'primary',\n });\n}\nregisterAction2(SwitchSide);\nregisterAction2(ExitCompareMove);\nregisterAction2(CollapseAllUnchangedRegions);\nregisterAction2(ShowAllUnchangedRegions);\nMenuRegistry.appendMenuItem(MenuId.EditorTitle, {\n command: {\n id: AccessibleDiffViewerNext.id,\n title: localize('Open Accessible Diff Viewer', \"Open Accessible Diff Viewer\"),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n },\n order: 10,\n group: '2_diff',\n when: ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(), ContextKeyExpr.has('isInDiffEditor')),\n});\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.next', AccessibleDiffViewerNext.id);\nregisterAction2(AccessibleDiffViewerNext);\nCommandsRegistry.registerCommandAlias('editor.action.diffReview.prev', AccessibleDiffViewerPrev.id);\nregisterAction2(AccessibleDiffViewerPrev);\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { IStandaloneThemeService } from '../../common/standaloneTheme.js';\nimport { ToggleHighContrastNLS } from '../../../common/standaloneStrings.js';\nimport { isDark, isHighContrast } from '../../../../platform/theme/common/theme.js';\nimport { HC_BLACK_THEME_NAME, HC_LIGHT_THEME_NAME, VS_DARK_THEME_NAME, VS_LIGHT_THEME_NAME } from '../standaloneThemeService.js';\nclass ToggleHighContrast extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.toggleHighContrast',\n label: ToggleHighContrastNLS.toggleHighContrast,\n alias: 'Toggle High Contrast Theme',\n precondition: undefined\n });\n this._originalThemeName = null;\n }\n run(accessor, editor) {\n const standaloneThemeService = accessor.get(IStandaloneThemeService);\n const currentTheme = standaloneThemeService.getColorTheme();\n if (isHighContrast(currentTheme.type)) {\n // We must toggle back to the integrator's theme\n standaloneThemeService.setTheme(this._originalThemeName || (isDark(currentTheme.type) ? VS_DARK_THEME_NAME : VS_LIGHT_THEME_NAME));\n this._originalThemeName = null;\n }\n else {\n standaloneThemeService.setTheme(isDark(currentTheme.type) ? HC_BLACK_THEME_NAME : HC_LIGHT_THEME_NAME);\n this._originalThemeName = currentTheme.themeName;\n }\n }\n}\nregisterEditorAction(ToggleHighContrast);\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { LRUCachedFunction } from './cache.js';\nimport { Lazy } from './lazy.js';\nexport function isFalsyOrWhitespace(str) {\n if (!str || typeof str !== 'string') {\n return true;\n }\n return str.trim().length === 0;\n}\nconst _formatRegexp = /{(\\d+)}/g;\n/**\n * Helper to produce a string with a variable number of arguments. Insert variable segments\n * into the string using the {n} notation where N is the index of the argument following the string.\n * @param value string to which formatting is applied\n * @param args replacements for {n}-entries\n */\nexport function format(value, ...args) {\n if (args.length === 0) {\n return value;\n }\n return value.replace(_formatRegexp, function (match, group) {\n const idx = parseInt(group, 10);\n return isNaN(idx) || idx < 0 || idx >= args.length ?\n match :\n args[idx];\n });\n}\n/**\n * Encodes the given value so that it can be used as literal value in html attributes.\n *\n * In other words, computes `$val`, such that `attr` in `
` has the runtime value `value`.\n * This prevents XSS injection.\n */\nexport function htmlAttributeEncodeValue(value) {\n return value.replace(/[<>\"'&]/g, ch => {\n switch (ch) {\n case '<': return '<';\n case '>': return '>';\n case '\"': return '"';\n case '\\'': return ''';\n case '&': return '&';\n }\n return ch;\n });\n}\n/**\n * Converts HTML characters inside the string to use entities instead. Makes the string safe from\n * being used e.g. in HTMLElement.innerHTML.\n */\nexport function escape(html) {\n return html.replace(/[<>&]/g, function (match) {\n switch (match) {\n case '<': return '<';\n case '>': return '>';\n case '&': return '&';\n default: return match;\n }\n });\n}\n/**\n * Escapes regular expression characters in a given string\n */\nexport function escapeRegExpCharacters(value) {\n return value.replace(/[\\\\\\{\\}\\*\\+\\?\\|\\^\\$\\.\\[\\]\\(\\)]/g, '\\\\$&');\n}\n/**\n * Removes all occurrences of needle from the beginning and end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim (default is a blank)\n */\nexport function trim(haystack, needle = ' ') {\n const trimmed = ltrim(haystack, needle);\n return rtrim(trimmed, needle);\n}\n/**\n * Removes all occurrences of needle from the beginning of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function ltrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length;\n if (needleLen === 0 || haystack.length === 0) {\n return haystack;\n }\n let offset = 0;\n while (haystack.indexOf(needle, offset) === offset) {\n offset = offset + needleLen;\n }\n return haystack.substring(offset);\n}\n/**\n * Removes all occurrences of needle from the end of haystack.\n * @param haystack string to trim\n * @param needle the thing to trim\n */\nexport function rtrim(haystack, needle) {\n if (!haystack || !needle) {\n return haystack;\n }\n const needleLen = needle.length, haystackLen = haystack.length;\n if (needleLen === 0 || haystackLen === 0) {\n return haystack;\n }\n let offset = haystackLen, idx = -1;\n while (true) {\n idx = haystack.lastIndexOf(needle, offset - 1);\n if (idx === -1 || idx + needleLen !== offset) {\n break;\n }\n if (idx === 0) {\n return '';\n }\n offset = idx;\n }\n return haystack.substring(0, offset);\n}\nexport function convertSimple2RegExpPattern(pattern) {\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function stripWildcards(pattern) {\n return pattern.replace(/\\*/g, '');\n}\nexport function createRegExp(searchString, isRegex, options = {}) {\n if (!searchString) {\n throw new Error('Cannot create regex from empty string');\n }\n if (!isRegex) {\n searchString = escapeRegExpCharacters(searchString);\n }\n if (options.wholeWord) {\n if (!/\\B/.test(searchString.charAt(0))) {\n searchString = '\\\\b' + searchString;\n }\n if (!/\\B/.test(searchString.charAt(searchString.length - 1))) {\n searchString = searchString + '\\\\b';\n }\n }\n let modifiers = '';\n if (options.global) {\n modifiers += 'g';\n }\n if (!options.matchCase) {\n modifiers += 'i';\n }\n if (options.multiline) {\n modifiers += 'm';\n }\n if (options.unicode) {\n modifiers += 'u';\n }\n return new RegExp(searchString, modifiers);\n}\nexport function regExpLeadsToEndlessLoop(regexp) {\n // Exit early if it's one of these special cases which are meant to match\n // against an empty string\n if (regexp.source === '^' || regexp.source === '^$' || regexp.source === '$' || regexp.source === '^\\\\s*$') {\n return false;\n }\n // We check against an empty string. If the regular expression doesn't advance\n // (e.g. ends in an endless loop) it will match an empty string.\n const match = regexp.exec('');\n return !!(match && regexp.lastIndex === 0);\n}\nexport function splitLines(str) {\n return str.split(/\\r\\n|\\r|\\n/);\n}\nexport function splitLinesIncludeSeparators(str) {\n var _b;\n const linesWithSeparators = [];\n const splitLinesAndSeparators = str.split(/(\\r\\n|\\r|\\n)/);\n for (let i = 0; i < Math.ceil(splitLinesAndSeparators.length / 2); i++) {\n linesWithSeparators.push(splitLinesAndSeparators[2 * i] + ((_b = splitLinesAndSeparators[2 * i + 1]) !== null && _b !== void 0 ? _b : ''));\n }\n return linesWithSeparators;\n}\n/**\n * Returns first index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function firstNonWhitespaceIndex(str) {\n for (let i = 0, len = str.length; i < len; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return i;\n }\n }\n return -1;\n}\n/**\n * Returns the leading whitespace of the string.\n * If the string contains only whitespaces, returns entire string\n */\nexport function getLeadingWhitespace(str, start = 0, end = str.length) {\n for (let i = start; i < end; i++) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return str.substring(start, i);\n }\n }\n return str.substring(start, end);\n}\n/**\n * Returns last index of the string that is not whitespace.\n * If string is empty or contains only whitespaces, returns -1\n */\nexport function lastNonWhitespaceIndex(str, startIndex = str.length - 1) {\n for (let i = startIndex; i >= 0; i--) {\n const chCode = str.charCodeAt(i);\n if (chCode !== 32 /* CharCode.Space */ && chCode !== 9 /* CharCode.Tab */) {\n return i;\n }\n }\n return -1;\n}\nexport function compare(a, b) {\n if (a < b) {\n return -1;\n }\n else if (a > b) {\n return 1;\n }\n else {\n return 0;\n }\n}\nexport function compareSubstring(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n const codeA = a.charCodeAt(aStart);\n const codeB = b.charCodeAt(bStart);\n if (codeA < codeB) {\n return -1;\n }\n else if (codeA > codeB) {\n return 1;\n }\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function compareIgnoreCase(a, b) {\n return compareSubstringIgnoreCase(a, b, 0, a.length, 0, b.length);\n}\nexport function compareSubstringIgnoreCase(a, b, aStart = 0, aEnd = a.length, bStart = 0, bEnd = b.length) {\n for (; aStart < aEnd && bStart < bEnd; aStart++, bStart++) {\n let codeA = a.charCodeAt(aStart);\n let codeB = b.charCodeAt(bStart);\n if (codeA === codeB) {\n // equal\n continue;\n }\n if (codeA >= 128 || codeB >= 128) {\n // not ASCII letters -> fallback to lower-casing strings\n return compareSubstring(a.toLowerCase(), b.toLowerCase(), aStart, aEnd, bStart, bEnd);\n }\n // mapper lower-case ascii letter onto upper-case varinats\n // [97-122] (lower ascii) --> [65-90] (upper ascii)\n if (isLowerAsciiLetter(codeA)) {\n codeA -= 32;\n }\n if (isLowerAsciiLetter(codeB)) {\n codeB -= 32;\n }\n // compare both code points\n const diff = codeA - codeB;\n if (diff === 0) {\n continue;\n }\n return diff;\n }\n const aLen = aEnd - aStart;\n const bLen = bEnd - bStart;\n if (aLen < bLen) {\n return -1;\n }\n else if (aLen > bLen) {\n return 1;\n }\n return 0;\n}\nexport function isAsciiDigit(code) {\n return code >= 48 /* CharCode.Digit0 */ && code <= 57 /* CharCode.Digit9 */;\n}\nexport function isLowerAsciiLetter(code) {\n return code >= 97 /* CharCode.a */ && code <= 122 /* CharCode.z */;\n}\nexport function isUpperAsciiLetter(code) {\n return code >= 65 /* CharCode.A */ && code <= 90 /* CharCode.Z */;\n}\nexport function equalsIgnoreCase(a, b) {\n return a.length === b.length && compareSubstringIgnoreCase(a, b) === 0;\n}\nexport function startsWithIgnoreCase(str, candidate) {\n const candidateLength = candidate.length;\n if (candidate.length > str.length) {\n return false;\n }\n return compareSubstringIgnoreCase(str, candidate, 0, candidateLength) === 0;\n}\n/**\n * @returns the length of the common prefix of the two strings.\n */\nexport function commonPrefixLength(a, b) {\n const len = Math.min(a.length, b.length);\n let i;\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(i) !== b.charCodeAt(i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * @returns the length of the common suffix of the two strings.\n */\nexport function commonSuffixLength(a, b) {\n const len = Math.min(a.length, b.length);\n let i;\n const aLastIndex = a.length - 1;\n const bLastIndex = b.length - 1;\n for (i = 0; i < len; i++) {\n if (a.charCodeAt(aLastIndex - i) !== b.charCodeAt(bLastIndex - i)) {\n return i;\n }\n }\n return len;\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isHighSurrogate(charCode) {\n return (0xD800 <= charCode && charCode <= 0xDBFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function isLowSurrogate(charCode) {\n return (0xDC00 <= charCode && charCode <= 0xDFFF);\n}\n/**\n * See http://en.wikipedia.org/wiki/Surrogate_pair\n */\nexport function computeCodePoint(highSurrogate, lowSurrogate) {\n return ((highSurrogate - 0xD800) << 10) + (lowSurrogate - 0xDC00) + 0x10000;\n}\n/**\n * get the code point that begins at offset `offset`\n */\nexport function getNextCodePoint(str, len, offset) {\n const charCode = str.charCodeAt(offset);\n if (isHighSurrogate(charCode) && offset + 1 < len) {\n const nextCharCode = str.charCodeAt(offset + 1);\n if (isLowSurrogate(nextCharCode)) {\n return computeCodePoint(charCode, nextCharCode);\n }\n }\n return charCode;\n}\n/**\n * get the code point that ends right before offset `offset`\n */\nfunction getPrevCodePoint(str, offset) {\n const charCode = str.charCodeAt(offset - 1);\n if (isLowSurrogate(charCode) && offset > 1) {\n const prevCharCode = str.charCodeAt(offset - 2);\n if (isHighSurrogate(prevCharCode)) {\n return computeCodePoint(prevCharCode, charCode);\n }\n }\n return charCode;\n}\nexport class CodePointIterator {\n get offset() {\n return this._offset;\n }\n constructor(str, offset = 0) {\n this._str = str;\n this._len = str.length;\n this._offset = offset;\n }\n setOffset(offset) {\n this._offset = offset;\n }\n prevCodePoint() {\n const codePoint = getPrevCodePoint(this._str, this._offset);\n this._offset -= (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n return codePoint;\n }\n nextCodePoint() {\n const codePoint = getNextCodePoint(this._str, this._len, this._offset);\n this._offset += (codePoint >= 65536 /* Constants.UNICODE_SUPPLEMENTARY_PLANE_BEGIN */ ? 2 : 1);\n return codePoint;\n }\n eol() {\n return (this._offset >= this._len);\n }\n}\nexport class GraphemeIterator {\n get offset() {\n return this._iterator.offset;\n }\n constructor(str, offset = 0) {\n this._iterator = new CodePointIterator(str, offset);\n }\n nextGraphemeLength() {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const iterator = this._iterator;\n const initialOffset = iterator.offset;\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n while (!iterator.eol()) {\n const offset = iterator.offset;\n const nextGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.nextCodePoint());\n if (breakBetweenGraphemeBreakType(graphemeBreakType, nextGraphemeBreakType)) {\n // move iterator back\n iterator.setOffset(offset);\n break;\n }\n graphemeBreakType = nextGraphemeBreakType;\n }\n return (iterator.offset - initialOffset);\n }\n prevGraphemeLength() {\n const graphemeBreakTree = GraphemeBreakTree.getInstance();\n const iterator = this._iterator;\n const initialOffset = iterator.offset;\n let graphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n while (iterator.offset > 0) {\n const offset = iterator.offset;\n const prevGraphemeBreakType = graphemeBreakTree.getGraphemeBreakType(iterator.prevCodePoint());\n if (breakBetweenGraphemeBreakType(prevGraphemeBreakType, graphemeBreakType)) {\n // move iterator back\n iterator.setOffset(offset);\n break;\n }\n graphemeBreakType = prevGraphemeBreakType;\n }\n return (initialOffset - iterator.offset);\n }\n eol() {\n return this._iterator.eol();\n }\n}\nexport function nextCharLength(str, initialOffset) {\n const iterator = new GraphemeIterator(str, initialOffset);\n return iterator.nextGraphemeLength();\n}\nexport function prevCharLength(str, initialOffset) {\n const iterator = new GraphemeIterator(str, initialOffset);\n return iterator.prevGraphemeLength();\n}\nexport function getCharContainingOffset(str, offset) {\n if (offset > 0 && isLowSurrogate(str.charCodeAt(offset))) {\n offset--;\n }\n const endOffset = offset + nextCharLength(str, offset);\n const startOffset = endOffset - prevCharLength(str, endOffset);\n return [startOffset, endOffset];\n}\nlet CONTAINS_RTL = undefined;\nfunction makeContainsRtl() {\n // Generated using https://github.com/alexdima/unicode-utils/blob/main/rtl-test.js\n return /(?:[\\u05BE\\u05C0\\u05C3\\u05C6\\u05D0-\\u05F4\\u0608\\u060B\\u060D\\u061B-\\u064A\\u066D-\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1-\\u07EA\\u07F4\\u07F5\\u07FA\\u07FE-\\u0815\\u081A\\u0824\\u0828\\u0830-\\u0858\\u085E-\\u088E\\u08A0-\\u08C9\\u200F\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFD3D\\uFD50-\\uFDC7\\uFDF0-\\uFDFC\\uFE70-\\uFEFC]|\\uD802[\\uDC00-\\uDD1B\\uDD20-\\uDE00\\uDE10-\\uDE35\\uDE40-\\uDEE4\\uDEEB-\\uDF35\\uDF40-\\uDFFF]|\\uD803[\\uDC00-\\uDD23\\uDE80-\\uDEA9\\uDEAD-\\uDF45\\uDF51-\\uDF81\\uDF86-\\uDFF6]|\\uD83A[\\uDC00-\\uDCCF\\uDD00-\\uDD43\\uDD4B-\\uDFFF]|\\uD83B[\\uDC00-\\uDEBB])/;\n}\n/**\n * Returns true if `str` contains any Unicode character that is classified as \"R\" or \"AL\".\n */\nexport function containsRTL(str) {\n if (!CONTAINS_RTL) {\n CONTAINS_RTL = makeContainsRtl();\n }\n return CONTAINS_RTL.test(str);\n}\nconst IS_BASIC_ASCII = /^[\\t\\n\\r\\x20-\\x7E]*$/;\n/**\n * Returns true if `str` contains only basic ASCII characters in the range 32 - 126 (including 32 and 126) or \\n, \\r, \\t\n */\nexport function isBasicASCII(str) {\n return IS_BASIC_ASCII.test(str);\n}\nexport const UNUSUAL_LINE_TERMINATORS = /[\\u2028\\u2029]/; // LINE SEPARATOR (LS) or PARAGRAPH SEPARATOR (PS)\n/**\n * Returns true if `str` contains unusual line terminators, like LS or PS\n */\nexport function containsUnusualLineTerminators(str) {\n return UNUSUAL_LINE_TERMINATORS.test(str);\n}\nexport function isFullWidthCharacter(charCode) {\n // Do a cheap trick to better support wrapping of wide characters, treat them as 2 columns\n // http://jrgraphix.net/research/unicode_blocks.php\n // 2E80 - 2EFF CJK Radicals Supplement\n // 2F00 - 2FDF Kangxi Radicals\n // 2FF0 - 2FFF Ideographic Description Characters\n // 3000 - 303F CJK Symbols and Punctuation\n // 3040 - 309F Hiragana\n // 30A0 - 30FF Katakana\n // 3100 - 312F Bopomofo\n // 3130 - 318F Hangul Compatibility Jamo\n // 3190 - 319F Kanbun\n // 31A0 - 31BF Bopomofo Extended\n // 31F0 - 31FF Katakana Phonetic Extensions\n // 3200 - 32FF Enclosed CJK Letters and Months\n // 3300 - 33FF CJK Compatibility\n // 3400 - 4DBF CJK Unified Ideographs Extension A\n // 4DC0 - 4DFF Yijing Hexagram Symbols\n // 4E00 - 9FFF CJK Unified Ideographs\n // A000 - A48F Yi Syllables\n // A490 - A4CF Yi Radicals\n // AC00 - D7AF Hangul Syllables\n // [IGNORE] D800 - DB7F High Surrogates\n // [IGNORE] DB80 - DBFF High Private Use Surrogates\n // [IGNORE] DC00 - DFFF Low Surrogates\n // [IGNORE] E000 - F8FF Private Use Area\n // F900 - FAFF CJK Compatibility Ideographs\n // [IGNORE] FB00 - FB4F Alphabetic Presentation Forms\n // [IGNORE] FB50 - FDFF Arabic Presentation Forms-A\n // [IGNORE] FE00 - FE0F Variation Selectors\n // [IGNORE] FE20 - FE2F Combining Half Marks\n // [IGNORE] FE30 - FE4F CJK Compatibility Forms\n // [IGNORE] FE50 - FE6F Small Form Variants\n // [IGNORE] FE70 - FEFF Arabic Presentation Forms-B\n // FF00 - FFEF Halfwidth and Fullwidth Forms\n // [https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms]\n // of which FF01 - FF5E fullwidth ASCII of 21 to 7E\n // [IGNORE] and FF65 - FFDC halfwidth of Katakana and Hangul\n // [IGNORE] FFF0 - FFFF Specials\n return ((charCode >= 0x2E80 && charCode <= 0xD7AF)\n || (charCode >= 0xF900 && charCode <= 0xFAFF)\n || (charCode >= 0xFF01 && charCode <= 0xFF5E));\n}\n/**\n * A fast function (therefore imprecise) to check if code points are emojis.\n * Generated using https://github.com/alexdima/unicode-utils/blob/main/emoji-test.js\n */\nexport function isEmojiImprecise(x) {\n return ((x >= 0x1F1E6 && x <= 0x1F1FF) || (x === 8986) || (x === 8987) || (x === 9200)\n || (x === 9203) || (x >= 9728 && x <= 10175) || (x === 11088) || (x === 11093)\n || (x >= 127744 && x <= 128591) || (x >= 128640 && x <= 128764)\n || (x >= 128992 && x <= 129008) || (x >= 129280 && x <= 129535)\n || (x >= 129648 && x <= 129782));\n}\n// -- UTF-8 BOM\nexport const UTF8_BOM_CHARACTER = String.fromCharCode(65279 /* CharCode.UTF8_BOM */);\nexport function startsWithUTF8BOM(str) {\n return !!(str && str.length > 0 && str.charCodeAt(0) === 65279 /* CharCode.UTF8_BOM */);\n}\nexport function containsUppercaseCharacter(target, ignoreEscapedChars = false) {\n if (!target) {\n return false;\n }\n if (ignoreEscapedChars) {\n target = target.replace(/\\\\./g, '');\n }\n return target.toLowerCase() !== target;\n}\n/**\n * Produces 'a'-'z', followed by 'A'-'Z'... followed by 'a'-'z', etc.\n */\nexport function singleLetterHash(n) {\n const LETTERS_CNT = (90 /* CharCode.Z */ - 65 /* CharCode.A */ + 1);\n n = n % (2 * LETTERS_CNT);\n if (n < LETTERS_CNT) {\n return String.fromCharCode(97 /* CharCode.a */ + n);\n }\n return String.fromCharCode(65 /* CharCode.A */ + n - LETTERS_CNT);\n}\nfunction breakBetweenGraphemeBreakType(breakTypeA, breakTypeB) {\n // http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundary_Rules\n // !!! Let's make the common case a bit faster\n if (breakTypeA === 0 /* GraphemeBreakType.Other */) {\n // see https://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakTest-13.0.0d10.html#table\n return (breakTypeB !== 5 /* GraphemeBreakType.Extend */ && breakTypeB !== 7 /* GraphemeBreakType.SpacingMark */);\n }\n // Do not break between a CR and LF. Otherwise, break before and after controls.\n // GB3 CR × LF\n // GB4 (Control | CR | LF) ÷\n // GB5 ÷ (Control | CR | LF)\n if (breakTypeA === 2 /* GraphemeBreakType.CR */) {\n if (breakTypeB === 3 /* GraphemeBreakType.LF */) {\n return false; // GB3\n }\n }\n if (breakTypeA === 4 /* GraphemeBreakType.Control */ || breakTypeA === 2 /* GraphemeBreakType.CR */ || breakTypeA === 3 /* GraphemeBreakType.LF */) {\n return true; // GB4\n }\n if (breakTypeB === 4 /* GraphemeBreakType.Control */ || breakTypeB === 2 /* GraphemeBreakType.CR */ || breakTypeB === 3 /* GraphemeBreakType.LF */) {\n return true; // GB5\n }\n // Do not break Hangul syllable sequences.\n // GB6 L × (L | V | LV | LVT)\n // GB7 (LV | V) × (V | T)\n // GB8 (LVT | T) × T\n if (breakTypeA === 8 /* GraphemeBreakType.L */) {\n if (breakTypeB === 8 /* GraphemeBreakType.L */ || breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 11 /* GraphemeBreakType.LV */ || breakTypeB === 12 /* GraphemeBreakType.LVT */) {\n return false; // GB6\n }\n }\n if (breakTypeA === 11 /* GraphemeBreakType.LV */ || breakTypeA === 9 /* GraphemeBreakType.V */) {\n if (breakTypeB === 9 /* GraphemeBreakType.V */ || breakTypeB === 10 /* GraphemeBreakType.T */) {\n return false; // GB7\n }\n }\n if (breakTypeA === 12 /* GraphemeBreakType.LVT */ || breakTypeA === 10 /* GraphemeBreakType.T */) {\n if (breakTypeB === 10 /* GraphemeBreakType.T */) {\n return false; // GB8\n }\n }\n // Do not break before extending characters or ZWJ.\n // GB9 × (Extend | ZWJ)\n if (breakTypeB === 5 /* GraphemeBreakType.Extend */ || breakTypeB === 13 /* GraphemeBreakType.ZWJ */) {\n return false; // GB9\n }\n // The GB9a and GB9b rules only apply to extended grapheme clusters:\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a × SpacingMark\n // GB9b Prepend ×\n if (breakTypeB === 7 /* GraphemeBreakType.SpacingMark */) {\n return false; // GB9a\n }\n if (breakTypeA === 1 /* GraphemeBreakType.Prepend */) {\n return false; // GB9b\n }\n // Do not break within emoji modifier sequences or emoji zwj sequences.\n // GB11 \\p{Extended_Pictographic} Extend* ZWJ × \\p{Extended_Pictographic}\n if (breakTypeA === 13 /* GraphemeBreakType.ZWJ */ && breakTypeB === 14 /* GraphemeBreakType.Extended_Pictographic */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB11\n }\n // GB12 sot (RI RI)* RI × RI\n // GB13 [^RI] (RI RI)* RI × RI\n if (breakTypeA === 6 /* GraphemeBreakType.Regional_Indicator */ && breakTypeB === 6 /* GraphemeBreakType.Regional_Indicator */) {\n // Note: we are not implementing the rule entirely here to avoid introducing states\n return false; // GB12 & GB13\n }\n // GB999 Any ÷ Any\n return true;\n}\nclass GraphemeBreakTree {\n static getInstance() {\n if (!GraphemeBreakTree._INSTANCE) {\n GraphemeBreakTree._INSTANCE = new GraphemeBreakTree();\n }\n return GraphemeBreakTree._INSTANCE;\n }\n constructor() {\n this._data = getGraphemeBreakRawData();\n }\n getGraphemeBreakType(codePoint) {\n // !!! Let's make 7bit ASCII a bit faster: 0..31\n if (codePoint < 32) {\n if (codePoint === 10 /* CharCode.LineFeed */) {\n return 3 /* GraphemeBreakType.LF */;\n }\n if (codePoint === 13 /* CharCode.CarriageReturn */) {\n return 2 /* GraphemeBreakType.CR */;\n }\n return 4 /* GraphemeBreakType.Control */;\n }\n // !!! Let's make 7bit ASCII a bit faster: 32..126\n if (codePoint < 127) {\n return 0 /* GraphemeBreakType.Other */;\n }\n const data = this._data;\n const nodeCount = data.length / 3;\n let nodeIndex = 1;\n while (nodeIndex <= nodeCount) {\n if (codePoint < data[3 * nodeIndex]) {\n // go left\n nodeIndex = 2 * nodeIndex;\n }\n else if (codePoint > data[3 * nodeIndex + 1]) {\n // go right\n nodeIndex = 2 * nodeIndex + 1;\n }\n else {\n // hit\n return data[3 * nodeIndex + 2];\n }\n }\n return 0 /* GraphemeBreakType.Other */;\n }\n}\nGraphemeBreakTree._INSTANCE = null;\nfunction getGraphemeBreakRawData() {\n // generated using https://github.com/alexdima/unicode-utils/blob/main/grapheme-break.js\n return JSON.parse('[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]');\n}\n//#endregion\n/**\n * Computes the offset after performing a left delete on the given string,\n * while considering unicode grapheme/emoji rules.\n*/\nexport function getLeftDeleteOffset(offset, str) {\n if (offset === 0) {\n return 0;\n }\n // Try to delete emoji part.\n const emojiOffset = getOffsetBeforeLastEmojiComponent(offset, str);\n if (emojiOffset !== undefined) {\n return emojiOffset;\n }\n // Otherwise, just skip a single code point.\n const iterator = new CodePointIterator(str, offset);\n iterator.prevCodePoint();\n return iterator.offset;\n}\nfunction getOffsetBeforeLastEmojiComponent(initialOffset, str) {\n // See https://www.unicode.org/reports/tr51/tr51-14.html#EBNF_and_Regex for the\n // structure of emojis.\n const iterator = new CodePointIterator(str, initialOffset);\n let codePoint = iterator.prevCodePoint();\n // Skip modifiers\n while ((isEmojiModifier(codePoint) || codePoint === 65039 /* CodePoint.emojiVariantSelector */ || codePoint === 8419 /* CodePoint.enclosingKeyCap */)) {\n if (iterator.offset === 0) {\n // Cannot skip modifier, no preceding emoji base.\n return undefined;\n }\n codePoint = iterator.prevCodePoint();\n }\n // Expect base emoji\n if (!isEmojiImprecise(codePoint)) {\n // Unexpected code point, not a valid emoji.\n return undefined;\n }\n let resultOffset = iterator.offset;\n if (resultOffset > 0) {\n // Skip optional ZWJ code points that combine multiple emojis.\n // In theory, we should check if that ZWJ actually combines multiple emojis\n // to prevent deleting ZWJs in situations we didn't account for.\n const optionalZwjCodePoint = iterator.prevCodePoint();\n if (optionalZwjCodePoint === 8205 /* CodePoint.zwj */) {\n resultOffset = iterator.offset;\n }\n }\n return resultOffset;\n}\nfunction isEmojiModifier(codePoint) {\n return 0x1F3FB <= codePoint && codePoint <= 0x1F3FF;\n}\nexport const noBreakWhitespace = '\\xa0';\nexport class AmbiguousCharacters {\n static getInstance(locales) {\n return _a.cache.get(Array.from(locales));\n }\n static getLocales() {\n return _a._locales.value;\n }\n constructor(confusableDictionary) {\n this.confusableDictionary = confusableDictionary;\n }\n isAmbiguous(codePoint) {\n return this.confusableDictionary.has(codePoint);\n }\n /**\n * Returns the non basic ASCII code point that the given code point can be confused,\n * or undefined if such code point does note exist.\n */\n getPrimaryConfusable(codePoint) {\n return this.confusableDictionary.get(codePoint);\n }\n getConfusableCodePoints() {\n return new Set(this.confusableDictionary.keys());\n }\n}\n_a = AmbiguousCharacters;\nAmbiguousCharacters.ambiguousCharacterData = new Lazy(() => {\n // Generated using https://github.com/hediet/vscode-unicode-data\n // Stored as key1, value1, key2, value2, ...\n return JSON.parse('{\\\"_common\\\":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],\\\"_default\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"cs\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"de\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"es\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"fr\\\":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"it\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ja\\\":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],\\\"ko\\\":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pl\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"pt-BR\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"qps-ploc\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"ru\\\":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"tr\\\":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],\\\"zh-hans\\\":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],\\\"zh-hant\\\":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}');\n});\nAmbiguousCharacters.cache = new LRUCachedFunction({ getCacheKey: JSON.stringify }, (locales) => {\n function arrayToMap(arr) {\n const result = new Map();\n for (let i = 0; i < arr.length; i += 2) {\n result.set(arr[i], arr[i + 1]);\n }\n return result;\n }\n function mergeMaps(map1, map2) {\n const result = new Map(map1);\n for (const [key, value] of map2) {\n result.set(key, value);\n }\n return result;\n }\n function intersectMaps(map1, map2) {\n if (!map1) {\n return map2;\n }\n const result = new Map();\n for (const [key, value] of map1) {\n if (map2.has(key)) {\n result.set(key, value);\n }\n }\n return result;\n }\n const data = _a.ambiguousCharacterData.value;\n let filteredLocales = locales.filter((l) => !l.startsWith('_') && l in data);\n if (filteredLocales.length === 0) {\n filteredLocales = ['_default'];\n }\n let languageSpecificMap = undefined;\n for (const locale of filteredLocales) {\n const map = arrayToMap(data[locale]);\n languageSpecificMap = intersectMaps(languageSpecificMap, map);\n }\n const commonMap = arrayToMap(data['_common']);\n const map = mergeMaps(commonMap, languageSpecificMap);\n return new _a(map);\n});\nAmbiguousCharacters._locales = new Lazy(() => Object.keys(_a.ambiguousCharacterData.value).filter((k) => !k.startsWith('_')));\nexport class InvisibleCharacters {\n static getRawData() {\n // Generated using https://github.com/hediet/vscode-unicode-data\n return JSON.parse('[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]');\n }\n static getData() {\n if (!this._data) {\n this._data = new Set(InvisibleCharacters.getRawData());\n }\n return this._data;\n }\n static isInvisibleCharacter(codePoint) {\n return InvisibleCharacters.getData().has(codePoint);\n }\n static get codePoints() {\n return InvisibleCharacters.getData();\n }\n}\nInvisibleCharacters._data = undefined;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.boolOrEmptySchema = exports.topBoolOrEmptySchema = void 0;\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst boolError = {\n message: \"boolean schema is false\",\n};\nfunction topBoolOrEmptySchema(it) {\n const { gen, schema, validateName } = it;\n if (schema === false) {\n falseSchemaError(it, false);\n }\n else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(names_1.default.data);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, null);\n gen.return(true);\n }\n}\nexports.topBoolOrEmptySchema = topBoolOrEmptySchema;\nfunction boolOrEmptySchema(it, valid) {\n const { gen, schema } = it;\n if (schema === false) {\n gen.var(valid, false); // TODO var\n falseSchemaError(it);\n }\n else {\n gen.var(valid, true); // TODO var\n }\n}\nexports.boolOrEmptySchema = boolOrEmptySchema;\nfunction falseSchemaError(it, overrideAllErrors) {\n const { gen, data } = it;\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n };\n (0, errors_1.reportError)(cxt, boolError, undefined, overrideAllErrors);\n}\n//# sourceMappingURL=boolSchema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must be multiple of ${schemaCode}`,\n params: ({ schemaCode }) => (0, codegen_1._) `{multipleOf: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, schemaCode, it } = cxt;\n // const bdt = bad$DataType(schemaCode, def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision;\n const res = gen.let(\"res\");\n const invalid = prec\n ? (0, codegen_1._) `Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : (0, codegen_1._) `${res} !== parseInt(${res})`;\n cxt.fail$data((0, codegen_1._) `(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=multipleOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst def = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: code_1.validateUnion,\n error: { message: \"must match a schema in anyOf\" },\n};\nexports.default = def;\n//# sourceMappingURL=anyOf.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst uri = require(\"fast-uri\");\nuri.code = 'require(\"ajv/dist/runtime/uri\").default';\nexports.default = uri;\n//# sourceMappingURL=uri.js.map","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nfunction roundFloat(number, decimalPoints) {\n const decimal = Math.pow(10, decimalPoints);\n return Math.round(number * decimal) / decimal;\n}\nexport class RGBA {\n constructor(r, g, b, a = 1) {\n this._rgbaBrand = undefined;\n this.r = Math.min(255, Math.max(0, r)) | 0;\n this.g = Math.min(255, Math.max(0, g)) | 0;\n this.b = Math.min(255, Math.max(0, b)) | 0;\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.r === b.r && a.g === b.g && a.b === b.b && a.a === b.a;\n }\n}\nexport class HSLA {\n constructor(h, s, l, a) {\n this._hslaBrand = undefined;\n this.h = Math.max(Math.min(360, h), 0) | 0;\n this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n this.l = roundFloat(Math.max(Math.min(1, l), 0), 3);\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.h === b.h && a.s === b.s && a.l === b.l && a.a === b.a;\n }\n /**\n * Converts an RGB color value to HSL. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes r, g, and b are contained in the set [0, 255] and\n * returns h in the set [0, 360], s, and l in the set [0, 1].\n */\n static fromRGBA(rgba) {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const a = rgba.a;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = 0;\n let s = 0;\n const l = (min + max) / 2;\n const chroma = max - min;\n if (chroma > 0) {\n s = Math.min((l <= 0.5 ? chroma / (2 * l) : chroma / (2 - (2 * l))), 1);\n switch (max) {\n case r:\n h = (g - b) / chroma + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / chroma + 2;\n break;\n case b:\n h = (r - g) / chroma + 4;\n break;\n }\n h *= 60;\n h = Math.round(h);\n }\n return new HSLA(h, s, l, a);\n }\n static _hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n /**\n * Converts an HSL color value to RGB. Conversion formula\n * adapted from http://en.wikipedia.org/wiki/HSL_color_space.\n * Assumes h in the set [0, 360] s, and l are contained in the set [0, 1] and\n * returns r, g, and b in the set [0, 255].\n */\n static toRGBA(hsla) {\n const h = hsla.h / 360;\n const { s, l, a } = hsla;\n let r, g, b;\n if (s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = HSLA._hue2rgb(p, q, h + 1 / 3);\n g = HSLA._hue2rgb(p, q, h);\n b = HSLA._hue2rgb(p, q, h - 1 / 3);\n }\n return new RGBA(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a);\n }\n}\nexport class HSVA {\n constructor(h, s, v, a) {\n this._hsvaBrand = undefined;\n this.h = Math.max(Math.min(360, h), 0) | 0;\n this.s = roundFloat(Math.max(Math.min(1, s), 0), 3);\n this.v = roundFloat(Math.max(Math.min(1, v), 0), 3);\n this.a = roundFloat(Math.max(Math.min(1, a), 0), 3);\n }\n static equals(a, b) {\n return a.h === b.h && a.s === b.s && a.v === b.v && a.a === b.a;\n }\n // from http://www.rapidtables.com/convert/color/rgb-to-hsv.htm\n static fromRGBA(rgba) {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n const cmax = Math.max(r, g, b);\n const cmin = Math.min(r, g, b);\n const delta = cmax - cmin;\n const s = cmax === 0 ? 0 : (delta / cmax);\n let m;\n if (delta === 0) {\n m = 0;\n }\n else if (cmax === r) {\n m = ((((g - b) / delta) % 6) + 6) % 6;\n }\n else if (cmax === g) {\n m = ((b - r) / delta) + 2;\n }\n else {\n m = ((r - g) / delta) + 4;\n }\n return new HSVA(Math.round(m * 60), s, cmax, rgba.a);\n }\n // from http://www.rapidtables.com/convert/color/hsv-to-rgb.htm\n static toRGBA(hsva) {\n const { h, s, v, a } = hsva;\n const c = v * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = v - c;\n let [r, g, b] = [0, 0, 0];\n if (h < 60) {\n r = c;\n g = x;\n }\n else if (h < 120) {\n r = x;\n g = c;\n }\n else if (h < 180) {\n g = c;\n b = x;\n }\n else if (h < 240) {\n g = x;\n b = c;\n }\n else if (h < 300) {\n r = x;\n b = c;\n }\n else if (h <= 360) {\n r = c;\n b = x;\n }\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n return new RGBA(r, g, b, a);\n }\n}\nexport class Color {\n static fromHex(hex) {\n return Color.Format.CSS.parseHex(hex) || Color.red;\n }\n static equals(a, b) {\n if (!a && !b) {\n return true;\n }\n if (!a || !b) {\n return false;\n }\n return a.equals(b);\n }\n get hsla() {\n if (this._hsla) {\n return this._hsla;\n }\n else {\n return HSLA.fromRGBA(this.rgba);\n }\n }\n get hsva() {\n if (this._hsva) {\n return this._hsva;\n }\n return HSVA.fromRGBA(this.rgba);\n }\n constructor(arg) {\n if (!arg) {\n throw new Error('Color needs a value');\n }\n else if (arg instanceof RGBA) {\n this.rgba = arg;\n }\n else if (arg instanceof HSLA) {\n this._hsla = arg;\n this.rgba = HSLA.toRGBA(arg);\n }\n else if (arg instanceof HSVA) {\n this._hsva = arg;\n this.rgba = HSVA.toRGBA(arg);\n }\n else {\n throw new Error('Invalid color ctor argument');\n }\n }\n equals(other) {\n return !!other && RGBA.equals(this.rgba, other.rgba) && HSLA.equals(this.hsla, other.hsla) && HSVA.equals(this.hsva, other.hsva);\n }\n /**\n * http://www.w3.org/TR/WCAG20/#relativeluminancedef\n * Returns the number in the set [0, 1]. O => Darkest Black. 1 => Lightest white.\n */\n getRelativeLuminance() {\n const R = Color._relativeLuminanceForComponent(this.rgba.r);\n const G = Color._relativeLuminanceForComponent(this.rgba.g);\n const B = Color._relativeLuminanceForComponent(this.rgba.b);\n const luminance = 0.2126 * R + 0.7152 * G + 0.0722 * B;\n return roundFloat(luminance, 4);\n }\n static _relativeLuminanceForComponent(color) {\n const c = color / 255;\n return (c <= 0.03928) ? c / 12.92 : Math.pow(((c + 0.055) / 1.055), 2.4);\n }\n /**\n *\thttp://24ways.org/2010/calculating-color-contrast\n * Return 'true' if lighter color otherwise 'false'\n */\n isLighter() {\n const yiq = (this.rgba.r * 299 + this.rgba.g * 587 + this.rgba.b * 114) / 1000;\n return yiq >= 128;\n }\n isLighterThan(another) {\n const lum1 = this.getRelativeLuminance();\n const lum2 = another.getRelativeLuminance();\n return lum1 > lum2;\n }\n isDarkerThan(another) {\n const lum1 = this.getRelativeLuminance();\n const lum2 = another.getRelativeLuminance();\n return lum1 < lum2;\n }\n lighten(factor) {\n return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l + this.hsla.l * factor, this.hsla.a));\n }\n darken(factor) {\n return new Color(new HSLA(this.hsla.h, this.hsla.s, this.hsla.l - this.hsla.l * factor, this.hsla.a));\n }\n transparent(factor) {\n const { r, g, b, a } = this.rgba;\n return new Color(new RGBA(r, g, b, a * factor));\n }\n isTransparent() {\n return this.rgba.a === 0;\n }\n isOpaque() {\n return this.rgba.a === 1;\n }\n opposite() {\n return new Color(new RGBA(255 - this.rgba.r, 255 - this.rgba.g, 255 - this.rgba.b, this.rgba.a));\n }\n makeOpaque(opaqueBackground) {\n if (this.isOpaque() || opaqueBackground.rgba.a !== 1) {\n // only allow to blend onto a non-opaque color onto a opaque color\n return this;\n }\n const { r, g, b, a } = this.rgba;\n // https://stackoverflow.com/questions/12228548/finding-equivalent-color-with-opacity\n return new Color(new RGBA(opaqueBackground.rgba.r - a * (opaqueBackground.rgba.r - r), opaqueBackground.rgba.g - a * (opaqueBackground.rgba.g - g), opaqueBackground.rgba.b - a * (opaqueBackground.rgba.b - b), 1));\n }\n toString() {\n if (!this._toString) {\n this._toString = Color.Format.CSS.format(this);\n }\n return this._toString;\n }\n static getLighterColor(of, relative, factor) {\n if (of.isLighterThan(relative)) {\n return of;\n }\n factor = factor ? factor : 0.5;\n const lum1 = of.getRelativeLuminance();\n const lum2 = relative.getRelativeLuminance();\n factor = factor * (lum2 - lum1) / lum2;\n return of.lighten(factor);\n }\n static getDarkerColor(of, relative, factor) {\n if (of.isDarkerThan(relative)) {\n return of;\n }\n factor = factor ? factor : 0.5;\n const lum1 = of.getRelativeLuminance();\n const lum2 = relative.getRelativeLuminance();\n factor = factor * (lum1 - lum2) / lum1;\n return of.darken(factor);\n }\n}\nColor.white = new Color(new RGBA(255, 255, 255, 1));\nColor.black = new Color(new RGBA(0, 0, 0, 1));\nColor.red = new Color(new RGBA(255, 0, 0, 1));\nColor.blue = new Color(new RGBA(0, 0, 255, 1));\nColor.green = new Color(new RGBA(0, 255, 0, 1));\nColor.cyan = new Color(new RGBA(0, 255, 255, 1));\nColor.lightgrey = new Color(new RGBA(211, 211, 211, 1));\nColor.transparent = new Color(new RGBA(0, 0, 0, 0));\n(function (Color) {\n let Format;\n (function (Format) {\n let CSS;\n (function (CSS) {\n function formatRGB(color) {\n if (color.rgba.a === 1) {\n return `rgb(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b})`;\n }\n return Color.Format.CSS.formatRGBA(color);\n }\n CSS.formatRGB = formatRGB;\n function formatRGBA(color) {\n return `rgba(${color.rgba.r}, ${color.rgba.g}, ${color.rgba.b}, ${+(color.rgba.a).toFixed(2)})`;\n }\n CSS.formatRGBA = formatRGBA;\n function formatHSL(color) {\n if (color.hsla.a === 1) {\n return `hsl(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%)`;\n }\n return Color.Format.CSS.formatHSLA(color);\n }\n CSS.formatHSL = formatHSL;\n function formatHSLA(color) {\n return `hsla(${color.hsla.h}, ${(color.hsla.s * 100).toFixed(2)}%, ${(color.hsla.l * 100).toFixed(2)}%, ${color.hsla.a.toFixed(2)})`;\n }\n CSS.formatHSLA = formatHSLA;\n function _toTwoDigitHex(n) {\n const r = n.toString(16);\n return r.length !== 2 ? '0' + r : r;\n }\n /**\n * Formats the color as #RRGGBB\n */\n function formatHex(color) {\n return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}`;\n }\n CSS.formatHex = formatHex;\n /**\n * Formats the color as #RRGGBBAA\n * If 'compact' is set, colors without transparancy will be printed as #RRGGBB\n */\n function formatHexA(color, compact = false) {\n if (compact && color.rgba.a === 1) {\n return Color.Format.CSS.formatHex(color);\n }\n return `#${_toTwoDigitHex(color.rgba.r)}${_toTwoDigitHex(color.rgba.g)}${_toTwoDigitHex(color.rgba.b)}${_toTwoDigitHex(Math.round(color.rgba.a * 255))}`;\n }\n CSS.formatHexA = formatHexA;\n /**\n * The default format will use HEX if opaque and RGBA otherwise.\n */\n function format(color) {\n if (color.isOpaque()) {\n return Color.Format.CSS.formatHex(color);\n }\n return Color.Format.CSS.formatRGBA(color);\n }\n CSS.format = format;\n /**\n * Converts an Hex color value to a Color.\n * returns r, g, and b are contained in the set [0, 255]\n * @param hex string (#RGB, #RGBA, #RRGGBB or #RRGGBBAA).\n */\n function parseHex(hex) {\n const length = hex.length;\n if (length === 0) {\n // Invalid color\n return null;\n }\n if (hex.charCodeAt(0) !== 35 /* CharCode.Hash */) {\n // Does not begin with a #\n return null;\n }\n if (length === 7) {\n // #RRGGBB format\n const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n return new Color(new RGBA(r, g, b, 1));\n }\n if (length === 9) {\n // #RRGGBBAA format\n const r = 16 * _parseHexDigit(hex.charCodeAt(1)) + _parseHexDigit(hex.charCodeAt(2));\n const g = 16 * _parseHexDigit(hex.charCodeAt(3)) + _parseHexDigit(hex.charCodeAt(4));\n const b = 16 * _parseHexDigit(hex.charCodeAt(5)) + _parseHexDigit(hex.charCodeAt(6));\n const a = 16 * _parseHexDigit(hex.charCodeAt(7)) + _parseHexDigit(hex.charCodeAt(8));\n return new Color(new RGBA(r, g, b, a / 255));\n }\n if (length === 4) {\n // #RGB format\n const r = _parseHexDigit(hex.charCodeAt(1));\n const g = _parseHexDigit(hex.charCodeAt(2));\n const b = _parseHexDigit(hex.charCodeAt(3));\n return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b));\n }\n if (length === 5) {\n // #RGBA format\n const r = _parseHexDigit(hex.charCodeAt(1));\n const g = _parseHexDigit(hex.charCodeAt(2));\n const b = _parseHexDigit(hex.charCodeAt(3));\n const a = _parseHexDigit(hex.charCodeAt(4));\n return new Color(new RGBA(16 * r + r, 16 * g + g, 16 * b + b, (16 * a + a) / 255));\n }\n // Invalid color\n return null;\n }\n CSS.parseHex = parseHex;\n function _parseHexDigit(charCode) {\n switch (charCode) {\n case 48 /* CharCode.Digit0 */: return 0;\n case 49 /* CharCode.Digit1 */: return 1;\n case 50 /* CharCode.Digit2 */: return 2;\n case 51 /* CharCode.Digit3 */: return 3;\n case 52 /* CharCode.Digit4 */: return 4;\n case 53 /* CharCode.Digit5 */: return 5;\n case 54 /* CharCode.Digit6 */: return 6;\n case 55 /* CharCode.Digit7 */: return 7;\n case 56 /* CharCode.Digit8 */: return 8;\n case 57 /* CharCode.Digit9 */: return 9;\n case 97 /* CharCode.a */: return 10;\n case 65 /* CharCode.A */: return 10;\n case 98 /* CharCode.b */: return 11;\n case 66 /* CharCode.B */: return 11;\n case 99 /* CharCode.c */: return 12;\n case 67 /* CharCode.C */: return 12;\n case 100 /* CharCode.d */: return 13;\n case 68 /* CharCode.D */: return 13;\n case 101 /* CharCode.e */: return 14;\n case 69 /* CharCode.E */: return 14;\n case 102 /* CharCode.f */: return 15;\n case 70 /* CharCode.F */: return 15;\n }\n return 0;\n }\n })(CSS = Format.CSS || (Format.CSS = {}));\n })(Format = Color.Format || (Color.Format = {}));\n})(Color || (Color = {}));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({ keyword, parentSchema, it }) {\n if (parentSchema.if === undefined)\n (0, util_1.checkStrictMode)(it, `\"${keyword}\" without \"if\" is ignored`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=thenElse.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { illegalState } from '../../../base/common/errors.js';\nimport { localize } from '../../../nls.js';\nfunction hintDidYouMean(...meant) {\n switch (meant.length) {\n case 1:\n return localize('contextkey.scanner.hint.didYouMean1', \"Did you mean {0}?\", meant[0]);\n case 2:\n return localize('contextkey.scanner.hint.didYouMean2', \"Did you mean {0} or {1}?\", meant[0], meant[1]);\n case 3:\n return localize('contextkey.scanner.hint.didYouMean3', \"Did you mean {0}, {1} or {2}?\", meant[0], meant[1], meant[2]);\n default: // we just don't expect that many\n return undefined;\n }\n}\nconst hintDidYouForgetToOpenOrCloseQuote = localize('contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote', \"Did you forget to open or close the quote?\");\nconst hintDidYouForgetToEscapeSlash = localize('contextkey.scanner.hint.didYouForgetToEscapeSlash', \"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\\\\\/\\'.\");\n/**\n * A simple scanner for context keys.\n *\n * Example:\n *\n * ```ts\n * const scanner = new Scanner().reset('resourceFileName =~ /docker/ && !config.docker.enabled');\n * const tokens = [...scanner];\n * if (scanner.errorTokens.length > 0) {\n * scanner.errorTokens.forEach(err => console.error(`Unexpected token at ${err.offset}: ${err.lexeme}\\nHint: ${err.additional}`));\n * } else {\n * // process tokens\n * }\n * ```\n */\nexport class Scanner {\n constructor() {\n this._input = '';\n this._start = 0;\n this._current = 0;\n this._tokens = [];\n this._errors = [];\n // u - unicode, y - sticky // TODO@ulugbekna: we accept double quotes as part of the string rather than as a delimiter (to preserve old parser's behavior)\n this.stringRe = /[a-zA-Z0-9_<>\\-\\./\\\\:\\*\\?\\+\\[\\]\\^,#@;\"%\\$\\p{L}-]+/uy;\n }\n static getLexeme(token) {\n switch (token.type) {\n case 0 /* TokenType.LParen */:\n return '(';\n case 1 /* TokenType.RParen */:\n return ')';\n case 2 /* TokenType.Neg */:\n return '!';\n case 3 /* TokenType.Eq */:\n return token.isTripleEq ? '===' : '==';\n case 4 /* TokenType.NotEq */:\n return token.isTripleEq ? '!==' : '!=';\n case 5 /* TokenType.Lt */:\n return '<';\n case 6 /* TokenType.LtEq */:\n return '<=';\n case 7 /* TokenType.Gt */:\n return '>=';\n case 8 /* TokenType.GtEq */:\n return '>=';\n case 9 /* TokenType.RegexOp */:\n return '=~';\n case 10 /* TokenType.RegexStr */:\n return token.lexeme;\n case 11 /* TokenType.True */:\n return 'true';\n case 12 /* TokenType.False */:\n return 'false';\n case 13 /* TokenType.In */:\n return 'in';\n case 14 /* TokenType.Not */:\n return 'not';\n case 15 /* TokenType.And */:\n return '&&';\n case 16 /* TokenType.Or */:\n return '||';\n case 17 /* TokenType.Str */:\n return token.lexeme;\n case 18 /* TokenType.QuotedStr */:\n return token.lexeme;\n case 19 /* TokenType.Error */:\n return token.lexeme;\n case 20 /* TokenType.EOF */:\n return 'EOF';\n default:\n throw illegalState(`unhandled token type: ${JSON.stringify(token)}; have you forgotten to add a case?`);\n }\n }\n reset(value) {\n this._input = value;\n this._start = 0;\n this._current = 0;\n this._tokens = [];\n this._errors = [];\n return this;\n }\n scan() {\n while (!this._isAtEnd()) {\n this._start = this._current;\n const ch = this._advance();\n switch (ch) {\n case 40 /* CharCode.OpenParen */:\n this._addToken(0 /* TokenType.LParen */);\n break;\n case 41 /* CharCode.CloseParen */:\n this._addToken(1 /* TokenType.RParen */);\n break;\n case 33 /* CharCode.ExclamationMark */:\n if (this._match(61 /* CharCode.Equals */)) {\n const isTripleEq = this._match(61 /* CharCode.Equals */); // eat last `=` if `!==`\n this._tokens.push({ type: 4 /* TokenType.NotEq */, offset: this._start, isTripleEq });\n }\n else {\n this._addToken(2 /* TokenType.Neg */);\n }\n break;\n case 39 /* CharCode.SingleQuote */:\n this._quotedString();\n break;\n case 47 /* CharCode.Slash */:\n this._regex();\n break;\n case 61 /* CharCode.Equals */:\n if (this._match(61 /* CharCode.Equals */)) { // support `==`\n const isTripleEq = this._match(61 /* CharCode.Equals */); // eat last `=` if `===`\n this._tokens.push({ type: 3 /* TokenType.Eq */, offset: this._start, isTripleEq });\n }\n else if (this._match(126 /* CharCode.Tilde */)) {\n this._addToken(9 /* TokenType.RegexOp */);\n }\n else {\n this._error(hintDidYouMean('==', '=~'));\n }\n break;\n case 60 /* CharCode.LessThan */:\n this._addToken(this._match(61 /* CharCode.Equals */) ? 6 /* TokenType.LtEq */ : 5 /* TokenType.Lt */);\n break;\n case 62 /* CharCode.GreaterThan */:\n this._addToken(this._match(61 /* CharCode.Equals */) ? 8 /* TokenType.GtEq */ : 7 /* TokenType.Gt */);\n break;\n case 38 /* CharCode.Ampersand */:\n if (this._match(38 /* CharCode.Ampersand */)) {\n this._addToken(15 /* TokenType.And */);\n }\n else {\n this._error(hintDidYouMean('&&'));\n }\n break;\n case 124 /* CharCode.Pipe */:\n if (this._match(124 /* CharCode.Pipe */)) {\n this._addToken(16 /* TokenType.Or */);\n }\n else {\n this._error(hintDidYouMean('||'));\n }\n break;\n // TODO@ulugbekna: 1) rewrite using a regex 2) reconsider what characters are considered whitespace, including unicode, nbsp, etc.\n case 32 /* CharCode.Space */:\n case 13 /* CharCode.CarriageReturn */:\n case 9 /* CharCode.Tab */:\n case 10 /* CharCode.LineFeed */:\n case 160 /* CharCode.NoBreakSpace */: //  \n break;\n default:\n this._string();\n }\n }\n this._start = this._current;\n this._addToken(20 /* TokenType.EOF */);\n return Array.from(this._tokens);\n }\n _match(expected) {\n if (this._isAtEnd()) {\n return false;\n }\n if (this._input.charCodeAt(this._current) !== expected) {\n return false;\n }\n this._current++;\n return true;\n }\n _advance() {\n return this._input.charCodeAt(this._current++);\n }\n _peek() {\n return this._isAtEnd() ? 0 /* CharCode.Null */ : this._input.charCodeAt(this._current);\n }\n _addToken(type) {\n this._tokens.push({ type, offset: this._start });\n }\n _error(additional) {\n const offset = this._start;\n const lexeme = this._input.substring(this._start, this._current);\n const errToken = { type: 19 /* TokenType.Error */, offset: this._start, lexeme };\n this._errors.push({ offset, lexeme, additionalInfo: additional });\n this._tokens.push(errToken);\n }\n _string() {\n this.stringRe.lastIndex = this._start;\n const match = this.stringRe.exec(this._input);\n if (match) {\n this._current = this._start + match[0].length;\n const lexeme = this._input.substring(this._start, this._current);\n const keyword = Scanner._keywords.get(lexeme);\n if (keyword) {\n this._addToken(keyword);\n }\n else {\n this._tokens.push({ type: 17 /* TokenType.Str */, lexeme, offset: this._start });\n }\n }\n }\n // captures the lexeme without the leading and trailing '\n _quotedString() {\n while (this._peek() !== 39 /* CharCode.SingleQuote */ && !this._isAtEnd()) { // TODO@ulugbekna: add support for escaping ' ?\n this._advance();\n }\n if (this._isAtEnd()) {\n this._error(hintDidYouForgetToOpenOrCloseQuote);\n return;\n }\n // consume the closing '\n this._advance();\n this._tokens.push({ type: 18 /* TokenType.QuotedStr */, lexeme: this._input.substring(this._start + 1, this._current - 1), offset: this._start + 1 });\n }\n /*\n * Lexing a regex expression: /.../[igsmyu]*\n * Based on https://github.com/microsoft/TypeScript/blob/9247ef115e617805983740ba795d7a8164babf89/src/compiler/scanner.ts#L2129-L2181\n *\n * Note that we want slashes within a regex to be escaped, e.g., /file:\\\\/\\\\/\\\\// should match `file:///`\n */\n _regex() {\n let p = this._current;\n let inEscape = false;\n let inCharacterClass = false;\n while (true) {\n if (p >= this._input.length) {\n this._current = p;\n this._error(hintDidYouForgetToEscapeSlash);\n return;\n }\n const ch = this._input.charCodeAt(p);\n if (inEscape) { // parsing an escape character\n inEscape = false;\n }\n else if (ch === 47 /* CharCode.Slash */ && !inCharacterClass) { // end of regex\n p++;\n break;\n }\n else if (ch === 91 /* CharCode.OpenSquareBracket */) {\n inCharacterClass = true;\n }\n else if (ch === 92 /* CharCode.Backslash */) {\n inEscape = true;\n }\n else if (ch === 93 /* CharCode.CloseSquareBracket */) {\n inCharacterClass = false;\n }\n p++;\n }\n // Consume flags // TODO@ulugbekna: use regex instead\n while (p < this._input.length && Scanner._regexFlags.has(this._input.charCodeAt(p))) {\n p++;\n }\n this._current = p;\n const lexeme = this._input.substring(this._start, this._current);\n this._tokens.push({ type: 10 /* TokenType.RegexStr */, lexeme, offset: this._start });\n }\n _isAtEnd() {\n return this._current >= this._input.length;\n }\n}\nScanner._regexFlags = new Set(['i', 'g', 's', 'm', 'y', 'u'].map(ch => ch.charCodeAt(0)));\nScanner._keywords = new Map([\n ['not', 14 /* TokenType.Not */],\n ['in', 13 /* TokenType.In */],\n ['false', 12 /* TokenType.False */],\n ['true', 11 /* TokenType.True */],\n]);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isChrome, isEdge, isFirefox, isLinux, isMacintosh, isSafari, isWeb, isWindows } from '../../../base/common/platform.js';\nimport { isFalsyOrWhitespace } from '../../../base/common/strings.js';\nimport { Scanner } from './scanner.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { localize } from '../../../nls.js';\nconst CONSTANT_VALUES = new Map();\nCONSTANT_VALUES.set('false', false);\nCONSTANT_VALUES.set('true', true);\nCONSTANT_VALUES.set('isMac', isMacintosh);\nCONSTANT_VALUES.set('isLinux', isLinux);\nCONSTANT_VALUES.set('isWindows', isWindows);\nCONSTANT_VALUES.set('isWeb', isWeb);\nCONSTANT_VALUES.set('isMacNative', isMacintosh && !isWeb);\nCONSTANT_VALUES.set('isEdge', isEdge);\nCONSTANT_VALUES.set('isFirefox', isFirefox);\nCONSTANT_VALUES.set('isChrome', isChrome);\nCONSTANT_VALUES.set('isSafari', isSafari);\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst defaultConfig = {\n regexParsingWithErrorRecovery: true\n};\nconst errorEmptyString = localize('contextkey.parser.error.emptyString', \"Empty context key expression\");\nconst hintEmptyString = localize('contextkey.parser.error.emptyString.hint', \"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively.\");\nconst errorNoInAfterNot = localize('contextkey.parser.error.noInAfterNot', \"'in' after 'not'.\");\nconst errorClosingParenthesis = localize('contextkey.parser.error.closingParenthesis', \"closing parenthesis ')'\");\nconst errorUnexpectedToken = localize('contextkey.parser.error.unexpectedToken', \"Unexpected token\");\nconst hintUnexpectedToken = localize('contextkey.parser.error.unexpectedToken.hint', \"Did you forget to put && or || before the token?\");\nconst errorUnexpectedEOF = localize('contextkey.parser.error.unexpectedEOF', \"Unexpected end of expression\");\nconst hintUnexpectedEOF = localize('contextkey.parser.error.unexpectedEOF.hint', \"Did you forget to put a context key?\");\n/**\n * A parser for context key expressions.\n *\n * Example:\n * ```ts\n * const parser = new Parser();\n * const expr = parser.parse('foo == \"bar\" && baz == true');\n *\n * if (expr === undefined) {\n * \t// there were lexing or parsing errors\n * \t// process lexing errors with `parser.lexingErrors`\n * // process parsing errors with `parser.parsingErrors`\n * } else {\n * \t// expr is a valid expression\n * }\n * ```\n */\nexport class Parser {\n constructor(_config = defaultConfig) {\n this._config = _config;\n // lifetime note: `_scanner` lives as long as the parser does, i.e., is not reset between calls to `parse`\n this._scanner = new Scanner();\n // lifetime note: `_tokens`, `_current`, and `_parsingErrors` must be reset between calls to `parse`\n this._tokens = [];\n this._current = 0; // invariant: 0 <= this._current < this._tokens.length ; any incrementation of this value must first call `_isAtEnd`\n this._parsingErrors = [];\n this._flagsGYRe = /g|y/g;\n }\n /**\n * Parse a context key expression.\n *\n * @param input the expression to parse\n * @returns the parsed expression or `undefined` if there's an error - call `lexingErrors` and `parsingErrors` to see the errors\n */\n parse(input) {\n if (input === '') {\n this._parsingErrors.push({ message: errorEmptyString, offset: 0, lexeme: '', additionalInfo: hintEmptyString });\n return undefined;\n }\n this._tokens = this._scanner.reset(input).scan();\n // @ulugbekna: we do not stop parsing if there are lexing errors to be able to reconstruct regexes with unescaped slashes; TODO@ulugbekna: make this respect config option for recovery\n this._current = 0;\n this._parsingErrors = [];\n try {\n const expr = this._expr();\n if (!this._isAtEnd()) {\n const peek = this._peek();\n const additionalInfo = peek.type === 17 /* TokenType.Str */ ? hintUnexpectedToken : undefined;\n this._parsingErrors.push({ message: errorUnexpectedToken, offset: peek.offset, lexeme: Scanner.getLexeme(peek), additionalInfo });\n throw Parser._parseError;\n }\n return expr;\n }\n catch (e) {\n if (!(e === Parser._parseError)) {\n throw e;\n }\n return undefined;\n }\n }\n _expr() {\n return this._or();\n }\n _or() {\n const expr = [this._and()];\n while (this._matchOne(16 /* TokenType.Or */)) {\n const right = this._and();\n expr.push(right);\n }\n return expr.length === 1 ? expr[0] : ContextKeyExpr.or(...expr);\n }\n _and() {\n const expr = [this._term()];\n while (this._matchOne(15 /* TokenType.And */)) {\n const right = this._term();\n expr.push(right);\n }\n return expr.length === 1 ? expr[0] : ContextKeyExpr.and(...expr);\n }\n _term() {\n if (this._matchOne(2 /* TokenType.Neg */)) {\n const peek = this._peek();\n switch (peek.type) {\n case 11 /* TokenType.True */:\n this._advance();\n return ContextKeyFalseExpr.INSTANCE;\n case 12 /* TokenType.False */:\n this._advance();\n return ContextKeyTrueExpr.INSTANCE;\n case 0 /* TokenType.LParen */: {\n this._advance();\n const expr = this._expr();\n this._consume(1 /* TokenType.RParen */, errorClosingParenthesis);\n return expr === null || expr === void 0 ? void 0 : expr.negate();\n }\n case 17 /* TokenType.Str */:\n this._advance();\n return ContextKeyNotExpr.create(peek.lexeme);\n default:\n throw this._errExpectedButGot(`KEY | true | false | '(' expression ')'`, peek);\n }\n }\n return this._primary();\n }\n _primary() {\n const peek = this._peek();\n switch (peek.type) {\n case 11 /* TokenType.True */:\n this._advance();\n return ContextKeyExpr.true();\n case 12 /* TokenType.False */:\n this._advance();\n return ContextKeyExpr.false();\n case 0 /* TokenType.LParen */: {\n this._advance();\n const expr = this._expr();\n this._consume(1 /* TokenType.RParen */, errorClosingParenthesis);\n return expr;\n }\n case 17 /* TokenType.Str */: {\n // KEY\n const key = peek.lexeme;\n this._advance();\n // =~ regex\n if (this._matchOne(9 /* TokenType.RegexOp */)) {\n // @ulugbekna: we need to reconstruct the regex from the tokens because some extensions use unescaped slashes in regexes\n const expr = this._peek();\n if (!this._config.regexParsingWithErrorRecovery) {\n this._advance();\n if (expr.type !== 10 /* TokenType.RegexStr */) {\n throw this._errExpectedButGot(`REGEX`, expr);\n }\n const regexLexeme = expr.lexeme;\n const closingSlashIndex = regexLexeme.lastIndexOf('/');\n const flags = closingSlashIndex === regexLexeme.length - 1 ? undefined : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n let regexp;\n try {\n regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n }\n catch (e) {\n throw this._errExpectedButGot(`REGEX`, expr);\n }\n return ContextKeyRegexExpr.create(key, regexp);\n }\n switch (expr.type) {\n case 10 /* TokenType.RegexStr */:\n case 19 /* TokenType.Error */: { // also handle an ErrorToken in case of smth such as /(/file)/\n const lexemeReconstruction = [expr.lexeme]; // /REGEX/ or /REGEX/FLAGS\n this._advance();\n let followingToken = this._peek();\n let parenBalance = 0;\n for (let i = 0; i < expr.lexeme.length; i++) {\n if (expr.lexeme.charCodeAt(i) === 40 /* CharCode.OpenParen */) {\n parenBalance++;\n }\n else if (expr.lexeme.charCodeAt(i) === 41 /* CharCode.CloseParen */) {\n parenBalance--;\n }\n }\n while (!this._isAtEnd() && followingToken.type !== 15 /* TokenType.And */ && followingToken.type !== 16 /* TokenType.Or */) {\n switch (followingToken.type) {\n case 0 /* TokenType.LParen */:\n parenBalance++;\n break;\n case 1 /* TokenType.RParen */:\n parenBalance--;\n break;\n case 10 /* TokenType.RegexStr */:\n case 18 /* TokenType.QuotedStr */:\n for (let i = 0; i < followingToken.lexeme.length; i++) {\n if (followingToken.lexeme.charCodeAt(i) === 40 /* CharCode.OpenParen */) {\n parenBalance++;\n }\n else if (expr.lexeme.charCodeAt(i) === 41 /* CharCode.CloseParen */) {\n parenBalance--;\n }\n }\n }\n if (parenBalance < 0) {\n break;\n }\n lexemeReconstruction.push(Scanner.getLexeme(followingToken));\n this._advance();\n followingToken = this._peek();\n }\n const regexLexeme = lexemeReconstruction.join('');\n const closingSlashIndex = regexLexeme.lastIndexOf('/');\n const flags = closingSlashIndex === regexLexeme.length - 1 ? undefined : this._removeFlagsGY(regexLexeme.substring(closingSlashIndex + 1));\n let regexp;\n try {\n regexp = new RegExp(regexLexeme.substring(1, closingSlashIndex), flags);\n }\n catch (e) {\n throw this._errExpectedButGot(`REGEX`, expr);\n }\n return ContextKeyExpr.regex(key, regexp);\n }\n case 18 /* TokenType.QuotedStr */: {\n const serializedValue = expr.lexeme;\n this._advance();\n // replicate old regex parsing behavior\n let regex = null;\n if (!isFalsyOrWhitespace(serializedValue)) {\n const start = serializedValue.indexOf('/');\n const end = serializedValue.lastIndexOf('/');\n if (start !== end && start >= 0) {\n const value = serializedValue.slice(start + 1, end);\n const caseIgnoreFlag = serializedValue[end + 1] === 'i' ? 'i' : '';\n try {\n regex = new RegExp(value, caseIgnoreFlag);\n }\n catch (_e) {\n throw this._errExpectedButGot(`REGEX`, expr);\n }\n }\n }\n if (regex === null) {\n throw this._errExpectedButGot('REGEX', expr);\n }\n return ContextKeyRegexExpr.create(key, regex);\n }\n default:\n throw this._errExpectedButGot('REGEX', this._peek());\n }\n }\n // [ 'not' 'in' value ]\n if (this._matchOne(14 /* TokenType.Not */)) {\n this._consume(13 /* TokenType.In */, errorNoInAfterNot);\n const right = this._value();\n return ContextKeyExpr.notIn(key, right);\n }\n // [ ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in') value ]\n const maybeOp = this._peek().type;\n switch (maybeOp) {\n case 3 /* TokenType.Eq */: {\n this._advance();\n const right = this._value();\n if (this._previous().type === 18 /* TokenType.QuotedStr */) { // to preserve old parser behavior: \"foo == 'true'\" is preserved as \"foo == 'true'\", but \"foo == true\" is optimized as \"foo\"\n return ContextKeyExpr.equals(key, right);\n }\n switch (right) {\n case 'true':\n return ContextKeyExpr.has(key);\n case 'false':\n return ContextKeyExpr.not(key);\n default:\n return ContextKeyExpr.equals(key, right);\n }\n }\n case 4 /* TokenType.NotEq */: {\n this._advance();\n const right = this._value();\n if (this._previous().type === 18 /* TokenType.QuotedStr */) { // same as above with \"foo != 'true'\"\n return ContextKeyExpr.notEquals(key, right);\n }\n switch (right) {\n case 'true':\n return ContextKeyExpr.not(key);\n case 'false':\n return ContextKeyExpr.has(key);\n default:\n return ContextKeyExpr.notEquals(key, right);\n }\n }\n // TODO: ContextKeyExpr.smaller(key, right) accepts only `number` as `right` AND during eval of this node, we just eval to `false` if `right` is not a number\n // consequently, package.json linter should _warn_ the user if they're passing undesired things to ops\n case 5 /* TokenType.Lt */:\n this._advance();\n return ContextKeySmallerExpr.create(key, this._value());\n case 6 /* TokenType.LtEq */:\n this._advance();\n return ContextKeySmallerEqualsExpr.create(key, this._value());\n case 7 /* TokenType.Gt */:\n this._advance();\n return ContextKeyGreaterExpr.create(key, this._value());\n case 8 /* TokenType.GtEq */:\n this._advance();\n return ContextKeyGreaterEqualsExpr.create(key, this._value());\n case 13 /* TokenType.In */:\n this._advance();\n return ContextKeyExpr.in(key, this._value());\n default:\n return ContextKeyExpr.has(key);\n }\n }\n case 20 /* TokenType.EOF */:\n this._parsingErrors.push({ message: errorUnexpectedEOF, offset: peek.offset, lexeme: '', additionalInfo: hintUnexpectedEOF });\n throw Parser._parseError;\n default:\n throw this._errExpectedButGot(`true | false | KEY \\n\\t| KEY '=~' REGEX \\n\\t| KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`, this._peek());\n }\n }\n _value() {\n const token = this._peek();\n switch (token.type) {\n case 17 /* TokenType.Str */:\n case 18 /* TokenType.QuotedStr */:\n this._advance();\n return token.lexeme;\n case 11 /* TokenType.True */:\n this._advance();\n return 'true';\n case 12 /* TokenType.False */:\n this._advance();\n return 'false';\n case 13 /* TokenType.In */: // we support `in` as a value, e.g., \"when\": \"languageId == in\" - exists in existing extensions\n this._advance();\n return 'in';\n default:\n // this allows \"when\": \"foo == \" which's used by existing extensions\n // we do not call `_advance` on purpose - we don't want to eat unintended tokens\n return '';\n }\n }\n _removeFlagsGY(flags) {\n return flags.replaceAll(this._flagsGYRe, '');\n }\n // careful: this can throw if current token is the initial one (ie index = 0)\n _previous() {\n return this._tokens[this._current - 1];\n }\n _matchOne(token) {\n if (this._check(token)) {\n this._advance();\n return true;\n }\n return false;\n }\n _advance() {\n if (!this._isAtEnd()) {\n this._current++;\n }\n return this._previous();\n }\n _consume(type, message) {\n if (this._check(type)) {\n return this._advance();\n }\n throw this._errExpectedButGot(message, this._peek());\n }\n _errExpectedButGot(expected, got, additionalInfo) {\n const message = localize('contextkey.parser.error.expectedButGot', \"Expected: {0}\\nReceived: '{1}'.\", expected, Scanner.getLexeme(got));\n const offset = got.offset;\n const lexeme = Scanner.getLexeme(got);\n this._parsingErrors.push({ message, offset, lexeme, additionalInfo });\n return Parser._parseError;\n }\n _check(type) {\n return this._peek().type === type;\n }\n _peek() {\n return this._tokens[this._current];\n }\n _isAtEnd() {\n return this._peek().type === 20 /* TokenType.EOF */;\n }\n}\n// Note: this doesn't produce an exact syntax tree but a normalized one\n// ContextKeyExpression's that we use as AST nodes do not expose constructors that do not normalize\nParser._parseError = new Error();\nexport class ContextKeyExpr {\n static false() {\n return ContextKeyFalseExpr.INSTANCE;\n }\n static true() {\n return ContextKeyTrueExpr.INSTANCE;\n }\n static has(key) {\n return ContextKeyDefinedExpr.create(key);\n }\n static equals(key, value) {\n return ContextKeyEqualsExpr.create(key, value);\n }\n static notEquals(key, value) {\n return ContextKeyNotEqualsExpr.create(key, value);\n }\n static regex(key, value) {\n return ContextKeyRegexExpr.create(key, value);\n }\n static in(key, value) {\n return ContextKeyInExpr.create(key, value);\n }\n static notIn(key, value) {\n return ContextKeyNotInExpr.create(key, value);\n }\n static not(key) {\n return ContextKeyNotExpr.create(key);\n }\n static and(...expr) {\n return ContextKeyAndExpr.create(expr, null, true);\n }\n static or(...expr) {\n return ContextKeyOrExpr.create(expr, null, true);\n }\n static deserialize(serialized) {\n if (serialized === undefined || serialized === null) { // an empty string needs to be handled by the parser to get a corresponding parsing error reported\n return undefined;\n }\n const expr = this._parser.parse(serialized);\n return expr;\n }\n}\nContextKeyExpr._parser = new Parser({ regexParsingWithErrorRecovery: false });\nexport function expressionsAreEqualWithConstantSubstitution(a, b) {\n const aExpr = a ? a.substituteConstants() : undefined;\n const bExpr = b ? b.substituteConstants() : undefined;\n if (!aExpr && !bExpr) {\n return true;\n }\n if (!aExpr || !bExpr) {\n return false;\n }\n return aExpr.equals(bExpr);\n}\nfunction cmp(a, b) {\n return a.cmp(b);\n}\nexport class ContextKeyFalseExpr {\n constructor() {\n this.type = 0 /* ContextKeyExprType.False */;\n }\n cmp(other) {\n return this.type - other.type;\n }\n equals(other) {\n return (other.type === this.type);\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return false;\n }\n serialize() {\n return 'false';\n }\n keys() {\n return [];\n }\n negate() {\n return ContextKeyTrueExpr.INSTANCE;\n }\n}\nContextKeyFalseExpr.INSTANCE = new ContextKeyFalseExpr();\nexport class ContextKeyTrueExpr {\n constructor() {\n this.type = 1 /* ContextKeyExprType.True */;\n }\n cmp(other) {\n return this.type - other.type;\n }\n equals(other) {\n return (other.type === this.type);\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return true;\n }\n serialize() {\n return 'true';\n }\n keys() {\n return [];\n }\n negate() {\n return ContextKeyFalseExpr.INSTANCE;\n }\n}\nContextKeyTrueExpr.INSTANCE = new ContextKeyTrueExpr();\nexport class ContextKeyDefinedExpr {\n static create(key, negated = null) {\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n }\n return new ContextKeyDefinedExpr(key, negated);\n }\n constructor(key, negated) {\n this.key = key;\n this.negated = negated;\n this.type = 2 /* ContextKeyExprType.Defined */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp1(this.key, other.key);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n return constantValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE;\n }\n return this;\n }\n evaluate(context) {\n return (!!context.getValue(this.key));\n }\n serialize() {\n return this.key;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotExpr.create(this.key, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyEqualsExpr {\n static create(key, value, negated = null) {\n if (typeof value === 'boolean') {\n return (value ? ContextKeyDefinedExpr.create(key, negated) : ContextKeyNotExpr.create(key, negated));\n }\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n const trueValue = constantValue ? 'true' : 'false';\n return (value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n }\n return new ContextKeyEqualsExpr(key, value, negated);\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 4 /* ContextKeyExprType.Equals */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n const trueValue = constantValue ? 'true' : 'false';\n return (this.value === trueValue ? ContextKeyTrueExpr.INSTANCE : ContextKeyFalseExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n // Intentional ==\n // eslint-disable-next-line eqeqeq\n return (context.getValue(this.key) == this.value);\n }\n serialize() {\n return `${this.key} == '${this.value}'`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyInExpr {\n static create(key, valueKey) {\n return new ContextKeyInExpr(key, valueKey);\n }\n constructor(key, valueKey) {\n this.key = key;\n this.valueKey = valueKey;\n this.type = 10 /* ContextKeyExprType.In */;\n this.negated = null;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.valueKey, other.key, other.valueKey);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.valueKey === other.valueKey);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n const source = context.getValue(this.valueKey);\n const item = context.getValue(this.key);\n if (Array.isArray(source)) {\n return source.includes(item);\n }\n if (typeof item === 'string' && typeof source === 'object' && source !== null) {\n return hasOwnProperty.call(source, item);\n }\n return false;\n }\n serialize() {\n return `${this.key} in '${this.valueKey}'`;\n }\n keys() {\n return [this.key, this.valueKey];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotInExpr.create(this.key, this.valueKey);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotInExpr {\n static create(key, valueKey) {\n return new ContextKeyNotInExpr(key, valueKey);\n }\n constructor(key, valueKey) {\n this.key = key;\n this.valueKey = valueKey;\n this.type = 11 /* ContextKeyExprType.NotIn */;\n this._negated = ContextKeyInExpr.create(key, valueKey);\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return this._negated.cmp(other._negated);\n }\n equals(other) {\n if (other.type === this.type) {\n return this._negated.equals(other._negated);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return !this._negated.evaluate(context);\n }\n serialize() {\n return `${this.key} not in '${this.valueKey}'`;\n }\n keys() {\n return this._negated.keys();\n }\n negate() {\n return this._negated;\n }\n}\nexport class ContextKeyNotEqualsExpr {\n static create(key, value, negated = null) {\n if (typeof value === 'boolean') {\n if (value) {\n return ContextKeyNotExpr.create(key, negated);\n }\n return ContextKeyDefinedExpr.create(key, negated);\n }\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n const falseValue = constantValue ? 'true' : 'false';\n return (value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return new ContextKeyNotEqualsExpr(key, value, negated);\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 5 /* ContextKeyExprType.NotEquals */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n const falseValue = constantValue ? 'true' : 'false';\n return (this.value === falseValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n // Intentional !=\n // eslint-disable-next-line eqeqeq\n return (context.getValue(this.key) != this.value);\n }\n serialize() {\n return `${this.key} != '${this.value}'`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotExpr {\n static create(key, negated = null) {\n const constantValue = CONSTANT_VALUES.get(key);\n if (typeof constantValue === 'boolean') {\n return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return new ContextKeyNotExpr(key, negated);\n }\n constructor(key, negated) {\n this.key = key;\n this.negated = negated;\n this.type = 3 /* ContextKeyExprType.Not */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp1(this.key, other.key);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key);\n }\n return false;\n }\n substituteConstants() {\n const constantValue = CONSTANT_VALUES.get(this.key);\n if (typeof constantValue === 'boolean') {\n return (constantValue ? ContextKeyFalseExpr.INSTANCE : ContextKeyTrueExpr.INSTANCE);\n }\n return this;\n }\n evaluate(context) {\n return (!context.getValue(this.key));\n }\n serialize() {\n return `!${this.key}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyDefinedExpr.create(this.key, this);\n }\n return this.negated;\n }\n}\nfunction withFloatOrStr(value, callback) {\n if (typeof value === 'string') {\n const n = parseFloat(value);\n if (!isNaN(n)) {\n value = n;\n }\n }\n if (typeof value === 'string' || typeof value === 'number') {\n return callback(value);\n }\n return ContextKeyFalseExpr.INSTANCE;\n}\nexport class ContextKeyGreaterExpr {\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeyGreaterExpr(key, value, negated));\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 12 /* ContextKeyExprType.Greater */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) > this.value);\n }\n serialize() {\n return `${this.key} > ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeySmallerEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyGreaterEqualsExpr {\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeyGreaterEqualsExpr(key, value, negated));\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 13 /* ContextKeyExprType.GreaterEquals */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) >= this.value);\n }\n serialize() {\n return `${this.key} >= ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeySmallerExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeySmallerExpr {\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeySmallerExpr(key, value, negated));\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 14 /* ContextKeyExprType.Smaller */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) < this.value);\n }\n serialize() {\n return `${this.key} < ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyGreaterEqualsExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeySmallerEqualsExpr {\n static create(key, _value, negated = null) {\n return withFloatOrStr(_value, (value) => new ContextKeySmallerEqualsExpr(key, value, negated));\n }\n constructor(key, value, negated) {\n this.key = key;\n this.value = value;\n this.negated = negated;\n this.type = 15 /* ContextKeyExprType.SmallerEquals */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return cmp2(this.key, this.value, other.key, other.value);\n }\n equals(other) {\n if (other.type === this.type) {\n return (this.key === other.key && this.value === other.value);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n if (typeof this.value === 'string') {\n return false;\n }\n return (parseFloat(context.getValue(this.key)) <= this.value);\n }\n serialize() {\n return `${this.key} <= ${this.value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyGreaterExpr.create(this.key, this.value, this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyRegexExpr {\n static create(key, regexp) {\n return new ContextKeyRegexExpr(key, regexp);\n }\n constructor(key, regexp) {\n this.key = key;\n this.regexp = regexp;\n this.type = 7 /* ContextKeyExprType.Regex */;\n this.negated = null;\n //\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.key < other.key) {\n return -1;\n }\n if (this.key > other.key) {\n return 1;\n }\n const thisSource = this.regexp ? this.regexp.source : '';\n const otherSource = other.regexp ? other.regexp.source : '';\n if (thisSource < otherSource) {\n return -1;\n }\n if (thisSource > otherSource) {\n return 1;\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n const thisSource = this.regexp ? this.regexp.source : '';\n const otherSource = other.regexp ? other.regexp.source : '';\n return (this.key === other.key && thisSource === otherSource);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n const value = context.getValue(this.key);\n return this.regexp ? this.regexp.test(value) : false;\n }\n serialize() {\n const value = this.regexp\n ? `/${this.regexp.source}/${this.regexp.flags}`\n : '/invalid/';\n return `${this.key} =~ ${value}`;\n }\n keys() {\n return [this.key];\n }\n negate() {\n if (!this.negated) {\n this.negated = ContextKeyNotRegexExpr.create(this);\n }\n return this.negated;\n }\n}\nexport class ContextKeyNotRegexExpr {\n static create(actual) {\n return new ContextKeyNotRegexExpr(actual);\n }\n constructor(_actual) {\n this._actual = _actual;\n this.type = 8 /* ContextKeyExprType.NotRegex */;\n //\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n return this._actual.cmp(other._actual);\n }\n equals(other) {\n if (other.type === this.type) {\n return this._actual.equals(other._actual);\n }\n return false;\n }\n substituteConstants() {\n return this;\n }\n evaluate(context) {\n return !this._actual.evaluate(context);\n }\n serialize() {\n return `!(${this._actual.serialize()})`;\n }\n keys() {\n return this._actual.keys();\n }\n negate() {\n return this._actual;\n }\n}\n/**\n * @returns the same instance if nothing changed.\n */\nfunction eliminateConstantsInArray(arr) {\n // Allocate array only if there is a difference\n let newArr = null;\n for (let i = 0, len = arr.length; i < len; i++) {\n const newExpr = arr[i].substituteConstants();\n if (arr[i] !== newExpr) {\n // something has changed!\n // allocate array on first difference\n if (newArr === null) {\n newArr = [];\n for (let j = 0; j < i; j++) {\n newArr[j] = arr[j];\n }\n }\n }\n if (newArr !== null) {\n newArr[i] = newExpr;\n }\n }\n if (newArr === null) {\n return arr;\n }\n return newArr;\n}\nexport class ContextKeyAndExpr {\n static create(_expr, negated, extraRedundantCheck) {\n return ContextKeyAndExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n }\n constructor(expr, negated) {\n this.expr = expr;\n this.negated = negated;\n this.type = 6 /* ContextKeyExprType.And */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.expr.length < other.expr.length) {\n return -1;\n }\n if (this.expr.length > other.expr.length) {\n return 1;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n const r = cmp(this.expr[i], other.expr[i]);\n if (r !== 0) {\n return r;\n }\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n if (this.expr.length !== other.expr.length) {\n return false;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].equals(other.expr[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n substituteConstants() {\n const exprArr = eliminateConstantsInArray(this.expr);\n if (exprArr === this.expr) {\n // no change\n return this;\n }\n return ContextKeyAndExpr.create(exprArr, this.negated, false);\n }\n evaluate(context) {\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].evaluate(context)) {\n return false;\n }\n }\n return true;\n }\n static _normalizeArr(arr, negated, extraRedundantCheck) {\n const expr = [];\n let hasTrue = false;\n for (const e of arr) {\n if (!e) {\n continue;\n }\n if (e.type === 1 /* ContextKeyExprType.True */) {\n // anything && true ==> anything\n hasTrue = true;\n continue;\n }\n if (e.type === 0 /* ContextKeyExprType.False */) {\n // anything && false ==> false\n return ContextKeyFalseExpr.INSTANCE;\n }\n if (e.type === 6 /* ContextKeyExprType.And */) {\n expr.push(...e.expr);\n continue;\n }\n expr.push(e);\n }\n if (expr.length === 0 && hasTrue) {\n return ContextKeyTrueExpr.INSTANCE;\n }\n if (expr.length === 0) {\n return undefined;\n }\n if (expr.length === 1) {\n return expr[0];\n }\n expr.sort(cmp);\n // eliminate duplicate terms\n for (let i = 1; i < expr.length; i++) {\n if (expr[i - 1].equals(expr[i])) {\n expr.splice(i, 1);\n i--;\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // We must distribute any OR expression because we don't support parens\n // OR extensions will be at the end (due to sorting rules)\n while (expr.length > 1) {\n const lastElement = expr[expr.length - 1];\n if (lastElement.type !== 9 /* ContextKeyExprType.Or */) {\n break;\n }\n // pop the last element\n expr.pop();\n // pop the second to last element\n const secondToLastElement = expr.pop();\n const isFinished = (expr.length === 0);\n // distribute `lastElement` over `secondToLastElement`\n const resultElement = ContextKeyOrExpr.create(lastElement.expr.map(el => ContextKeyAndExpr.create([el, secondToLastElement], null, extraRedundantCheck)), null, isFinished);\n if (resultElement) {\n expr.push(resultElement);\n expr.sort(cmp);\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // resolve false AND expressions\n if (extraRedundantCheck) {\n for (let i = 0; i < expr.length; i++) {\n for (let j = i + 1; j < expr.length; j++) {\n if (expr[i].negate().equals(expr[j])) {\n // A && !A case\n return ContextKeyFalseExpr.INSTANCE;\n }\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n }\n return new ContextKeyAndExpr(expr, negated);\n }\n serialize() {\n return this.expr.map(e => e.serialize()).join(' && ');\n }\n keys() {\n const result = [];\n for (const expr of this.expr) {\n result.push(...expr.keys());\n }\n return result;\n }\n negate() {\n if (!this.negated) {\n const result = [];\n for (const expr of this.expr) {\n result.push(expr.negate());\n }\n this.negated = ContextKeyOrExpr.create(result, this, true);\n }\n return this.negated;\n }\n}\nexport class ContextKeyOrExpr {\n static create(_expr, negated, extraRedundantCheck) {\n return ContextKeyOrExpr._normalizeArr(_expr, negated, extraRedundantCheck);\n }\n constructor(expr, negated) {\n this.expr = expr;\n this.negated = negated;\n this.type = 9 /* ContextKeyExprType.Or */;\n }\n cmp(other) {\n if (other.type !== this.type) {\n return this.type - other.type;\n }\n if (this.expr.length < other.expr.length) {\n return -1;\n }\n if (this.expr.length > other.expr.length) {\n return 1;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n const r = cmp(this.expr[i], other.expr[i]);\n if (r !== 0) {\n return r;\n }\n }\n return 0;\n }\n equals(other) {\n if (other.type === this.type) {\n if (this.expr.length !== other.expr.length) {\n return false;\n }\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (!this.expr[i].equals(other.expr[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n substituteConstants() {\n const exprArr = eliminateConstantsInArray(this.expr);\n if (exprArr === this.expr) {\n // no change\n return this;\n }\n return ContextKeyOrExpr.create(exprArr, this.negated, false);\n }\n evaluate(context) {\n for (let i = 0, len = this.expr.length; i < len; i++) {\n if (this.expr[i].evaluate(context)) {\n return true;\n }\n }\n return false;\n }\n static _normalizeArr(arr, negated, extraRedundantCheck) {\n let expr = [];\n let hasFalse = false;\n if (arr) {\n for (let i = 0, len = arr.length; i < len; i++) {\n const e = arr[i];\n if (!e) {\n continue;\n }\n if (e.type === 0 /* ContextKeyExprType.False */) {\n // anything || false ==> anything\n hasFalse = true;\n continue;\n }\n if (e.type === 1 /* ContextKeyExprType.True */) {\n // anything || true ==> true\n return ContextKeyTrueExpr.INSTANCE;\n }\n if (e.type === 9 /* ContextKeyExprType.Or */) {\n expr = expr.concat(e.expr);\n continue;\n }\n expr.push(e);\n }\n if (expr.length === 0 && hasFalse) {\n return ContextKeyFalseExpr.INSTANCE;\n }\n expr.sort(cmp);\n }\n if (expr.length === 0) {\n return undefined;\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // eliminate duplicate terms\n for (let i = 1; i < expr.length; i++) {\n if (expr[i - 1].equals(expr[i])) {\n expr.splice(i, 1);\n i--;\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n // resolve true OR expressions\n if (extraRedundantCheck) {\n for (let i = 0; i < expr.length; i++) {\n for (let j = i + 1; j < expr.length; j++) {\n if (expr[i].negate().equals(expr[j])) {\n // A || !A case\n return ContextKeyTrueExpr.INSTANCE;\n }\n }\n }\n if (expr.length === 1) {\n return expr[0];\n }\n }\n return new ContextKeyOrExpr(expr, negated);\n }\n serialize() {\n return this.expr.map(e => e.serialize()).join(' || ');\n }\n keys() {\n const result = [];\n for (const expr of this.expr) {\n result.push(...expr.keys());\n }\n return result;\n }\n negate() {\n if (!this.negated) {\n const result = [];\n for (const expr of this.expr) {\n result.push(expr.negate());\n }\n // We don't support parens, so here we distribute the AND over the OR terminals\n // We always take the first 2 AND pairs and distribute them\n while (result.length > 1) {\n const LEFT = result.shift();\n const RIGHT = result.shift();\n const all = [];\n for (const left of getTerminals(LEFT)) {\n for (const right of getTerminals(RIGHT)) {\n all.push(ContextKeyAndExpr.create([left, right], null, false));\n }\n }\n result.unshift(ContextKeyOrExpr.create(all, null, false));\n }\n this.negated = ContextKeyOrExpr.create(result, this, true);\n }\n return this.negated;\n }\n}\nexport class RawContextKey extends ContextKeyDefinedExpr {\n static all() {\n return RawContextKey._info.values();\n }\n constructor(key, defaultValue, metaOrHide) {\n super(key, null);\n this._defaultValue = defaultValue;\n // collect all context keys into a central place\n if (typeof metaOrHide === 'object') {\n RawContextKey._info.push({ ...metaOrHide, key });\n }\n else if (metaOrHide !== true) {\n RawContextKey._info.push({ key, description: metaOrHide, type: defaultValue !== null && defaultValue !== undefined ? typeof defaultValue : undefined });\n }\n }\n bindTo(target) {\n return target.createKey(this.key, this._defaultValue);\n }\n getValue(target) {\n return target.getContextKeyValue(this.key);\n }\n toNegated() {\n return this.negate();\n }\n isEqualTo(value) {\n return ContextKeyEqualsExpr.create(this.key, value);\n }\n}\nRawContextKey._info = [];\nexport const IContextKeyService = createDecorator('contextKeyService');\nfunction cmp1(key1, key2) {\n if (key1 < key2) {\n return -1;\n }\n if (key1 > key2) {\n return 1;\n }\n return 0;\n}\nfunction cmp2(key1, value1, key2, value2) {\n if (key1 < key2) {\n return -1;\n }\n if (key1 > key2) {\n return 1;\n }\n if (value1 < value2) {\n return -1;\n }\n if (value1 > value2) {\n return 1;\n }\n return 0;\n}\n/**\n * Returns true if it is provable `p` implies `q`.\n */\nexport function implies(p, q) {\n if (p.type === 0 /* ContextKeyExprType.False */ || q.type === 1 /* ContextKeyExprType.True */) {\n // false implies anything\n // anything implies true\n return true;\n }\n if (p.type === 9 /* ContextKeyExprType.Or */) {\n if (q.type === 9 /* ContextKeyExprType.Or */) {\n // `a || b || c` can only imply something like `a || b || c || d`\n return allElementsIncluded(p.expr, q.expr);\n }\n return false;\n }\n if (q.type === 9 /* ContextKeyExprType.Or */) {\n for (const element of q.expr) {\n if (implies(p, element)) {\n return true;\n }\n }\n return false;\n }\n if (p.type === 6 /* ContextKeyExprType.And */) {\n if (q.type === 6 /* ContextKeyExprType.And */) {\n // `a && b && c` implies `a && c`\n return allElementsIncluded(q.expr, p.expr);\n }\n for (const element of p.expr) {\n if (implies(element, q)) {\n return true;\n }\n }\n return false;\n }\n return p.equals(q);\n}\n/**\n * Returns true if all elements in `p` are also present in `q`.\n * The two arrays are assumed to be sorted\n */\nfunction allElementsIncluded(p, q) {\n let pIndex = 0;\n let qIndex = 0;\n while (pIndex < p.length && qIndex < q.length) {\n const cmp = p[pIndex].cmp(q[qIndex]);\n if (cmp < 0) {\n // an element from `p` is missing from `q`\n return false;\n }\n else if (cmp === 0) {\n pIndex++;\n qIndex++;\n }\n else {\n qIndex++;\n }\n }\n return (pIndex === p.length);\n}\nfunction getTerminals(node) {\n if (node.type === 9 /* ContextKeyExprType.Or */) {\n return node.expr;\n }\n return [node];\n}\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateKeywordUsage = exports.validSchemaType = exports.funcKeywordCode = exports.macroKeywordCode = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst code_1 = require(\"../../vocabularies/code\");\nconst errors_1 = require(\"../errors\");\nfunction macroKeywordCode(cxt, def) {\n const { gen, keyword, schema, parentSchema, it } = cxt;\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it);\n const schemaRef = useKeyword(gen, keyword, macroSchema);\n if (it.opts.validateSchema !== false)\n it.self.validateSchema(macroSchema, true);\n const valid = gen.name(\"valid\");\n cxt.subschema({\n schema: macroSchema,\n schemaPath: codegen_1.nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n }, valid);\n cxt.pass(valid, () => cxt.error(true));\n}\nexports.macroKeywordCode = macroKeywordCode;\nfunction funcKeywordCode(cxt, def) {\n var _a;\n const { gen, keyword, schema, parentSchema, $data, it } = cxt;\n checkAsyncKeyword(it, def);\n const validate = !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate;\n const validateRef = useKeyword(gen, keyword, validate);\n const valid = gen.let(\"valid\");\n cxt.block$data(valid, validateKeyword);\n cxt.ok((_a = def.valid) !== null && _a !== void 0 ? _a : valid);\n function validateKeyword() {\n if (def.errors === false) {\n assignValid();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => cxt.error());\n }\n else {\n const ruleErrs = def.async ? validateAsync() : validateSync();\n if (def.modifying)\n modifyData(cxt);\n reportErrs(() => addErrs(cxt, ruleErrs));\n }\n }\n function validateAsync() {\n const ruleErrs = gen.let(\"ruleErrs\", null);\n gen.try(() => assignValid((0, codegen_1._) `await `), (e) => gen.assign(valid, false).if((0, codegen_1._) `${e} instanceof ${it.ValidationError}`, () => gen.assign(ruleErrs, (0, codegen_1._) `${e}.errors`), () => gen.throw(e)));\n return ruleErrs;\n }\n function validateSync() {\n const validateErrs = (0, codegen_1._) `${validateRef}.errors`;\n gen.assign(validateErrs, null);\n assignValid(codegen_1.nil);\n return validateErrs;\n }\n function assignValid(_await = def.async ? (0, codegen_1._) `await ` : codegen_1.nil) {\n const passCxt = it.opts.passContext ? names_1.default.this : names_1.default.self;\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false);\n gen.assign(valid, (0, codegen_1._) `${_await}${(0, code_1.callValidateCode)(cxt, validateRef, passCxt, passSchema)}`, def.modifying);\n }\n function reportErrs(errors) {\n var _a;\n gen.if((0, codegen_1.not)((_a = def.valid) !== null && _a !== void 0 ? _a : valid), errors);\n }\n}\nexports.funcKeywordCode = funcKeywordCode;\nfunction modifyData(cxt) {\n const { gen, data, it } = cxt;\n gen.if(it.parentData, () => gen.assign(data, (0, codegen_1._) `${it.parentData}[${it.parentDataProperty}]`));\n}\nfunction addErrs(cxt, errs) {\n const { gen } = cxt;\n gen.if((0, codegen_1._) `Array.isArray(${errs})`, () => {\n gen\n .assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`)\n .assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n (0, errors_1.extendErrors)(cxt);\n }, () => cxt.error());\n}\nfunction checkAsyncKeyword({ schemaEnv }, def) {\n if (def.async && !schemaEnv.$async)\n throw new Error(\"async keyword in sync schema\");\n}\nfunction useKeyword(gen, keyword, result) {\n if (result === undefined)\n throw new Error(`keyword \"${keyword}\" failed to compile`);\n return gen.scopeValue(\"keyword\", typeof result == \"function\" ? { ref: result } : { ref: result, code: (0, codegen_1.stringify)(result) });\n}\nfunction validSchemaType(schema, schemaType, allowUndefined = false) {\n // TODO add tests\n return (!schemaType.length ||\n schemaType.some((st) => st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")));\n}\nexports.validSchemaType = validSchemaType;\nfunction validateKeywordUsage({ schema, opts, self, errSchemaPath }, def, keyword) {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\");\n }\n const deps = def.dependencies;\n if (deps === null || deps === void 0 ? void 0 : deps.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`);\n }\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword]);\n if (!valid) {\n const msg = `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors);\n if (opts.validateSchema === \"log\")\n self.logger.error(msg);\n else\n throw new Error(msg);\n }\n }\n}\nexports.validateKeywordUsage = validateKeywordUsage;\n//# sourceMappingURL=keyword.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stacktrace-gps', ['source-map', 'stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('source-map/lib/source-map-consumer'), require('stackframe'));\n } else {\n root.StackTraceGPS = factory(root.SourceMap || root.sourceMap, root.StackFrame);\n }\n}(this, function(SourceMap, StackFrame) {\n 'use strict';\n\n /**\n * Make a X-Domain request to url and callback.\n *\n * @param {String} url\n * @returns {Promise} with response text if fulfilled\n */\n function _xdr(url) {\n return new Promise(function(resolve, reject) {\n var req = new XMLHttpRequest();\n req.open('get', url);\n req.onerror = reject;\n req.onreadystatechange = function onreadystatechange() {\n if (req.readyState === 4) {\n if ((req.status >= 200 && req.status < 300) ||\n (url.substr(0, 7) === 'file://' && req.responseText)) {\n resolve(req.responseText);\n } else {\n reject(new Error('HTTP status: ' + req.status + ' retrieving ' + url));\n }\n }\n };\n req.send();\n });\n\n }\n\n /**\n * Convert a Base64-encoded string into its original representation.\n * Used for inline sourcemaps.\n *\n * @param {String} b64str Base-64 encoded string\n * @returns {String} original representation of the base64-encoded string.\n */\n function _atob(b64str) {\n if (typeof window !== 'undefined' && window.atob) {\n return window.atob(b64str);\n } else {\n throw new Error('You must supply a polyfill for window.atob in this environment');\n }\n }\n\n function _parseJson(string) {\n if (typeof JSON !== 'undefined' && JSON.parse) {\n return JSON.parse(string);\n } else {\n throw new Error('You must supply a polyfill for JSON.parse in this environment');\n }\n }\n\n function _findFunctionName(source, lineNumber/*, columnNumber*/) {\n var syntaxes = [\n // {name} = function ({args}) TODO args capture\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*function\\b/,\n // function {name}({args}) m[1]=name m[2]=args\n /function\\s+([^('\"`]*?)\\s*\\(([^)]*)\\)/,\n // {name} = eval()\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*(?:eval|new Function)\\b/,\n // fn_name() {\n /\\b(?!(?:if|for|switch|while|with|catch)\\b)(?:(?:static)\\s+)?(\\S+)\\s*\\(.*?\\)\\s*\\{/,\n // {name} = () => {\n /['\"]?([$_A-Za-z][$_A-Za-z0-9]*)['\"]?\\s*[:=]\\s*\\(.*?\\)\\s*=>/\n ];\n var lines = source.split('\\n');\n\n // Walk backwards in the source lines until we find the line which matches one of the patterns above\n var code = '';\n var maxLines = Math.min(lineNumber, 20);\n for (var i = 0; i < maxLines; ++i) {\n // lineNo is 1-based, source[] is 0-based\n var line = lines[lineNumber - i - 1];\n var commentPos = line.indexOf('//');\n if (commentPos >= 0) {\n line = line.substr(0, commentPos);\n }\n\n if (line) {\n code = line + code;\n var len = syntaxes.length;\n for (var index = 0; index < len; index++) {\n var m = syntaxes[index].exec(code);\n if (m && m[1]) {\n return m[1];\n }\n }\n }\n }\n return undefined;\n }\n\n function _ensureSupportedEnvironment() {\n if (typeof Object.defineProperty !== 'function' || typeof Object.create !== 'function') {\n throw new Error('Unable to consume source maps in older browsers');\n }\n }\n\n function _ensureStackFrameIsLegit(stackframe) {\n if (typeof stackframe !== 'object') {\n throw new TypeError('Given StackFrame is not an object');\n } else if (typeof stackframe.fileName !== 'string') {\n throw new TypeError('Given file name is not a String');\n } else if (typeof stackframe.lineNumber !== 'number' ||\n stackframe.lineNumber % 1 !== 0 ||\n stackframe.lineNumber < 1) {\n throw new TypeError('Given line number must be a positive integer');\n } else if (typeof stackframe.columnNumber !== 'number' ||\n stackframe.columnNumber % 1 !== 0 ||\n stackframe.columnNumber < 0) {\n throw new TypeError('Given column number must be a non-negative integer');\n }\n return true;\n }\n\n function _findSourceMappingURL(source) {\n var sourceMappingUrlRegExp = /\\/\\/[#@] ?sourceMappingURL=([^\\s'\"]+)\\s*$/mg;\n var lastSourceMappingUrl;\n var matchSourceMappingUrl;\n // eslint-disable-next-line no-cond-assign\n while (matchSourceMappingUrl = sourceMappingUrlRegExp.exec(source)) {\n lastSourceMappingUrl = matchSourceMappingUrl[1];\n }\n if (lastSourceMappingUrl) {\n return lastSourceMappingUrl;\n } else {\n throw new Error('sourceMappingURL not found');\n }\n }\n\n function _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache) {\n return new Promise(function(resolve, reject) {\n var loc = sourceMapConsumer.originalPositionFor({\n line: stackframe.lineNumber,\n column: stackframe.columnNumber\n });\n\n if (loc.source) {\n // cache mapped sources\n var mappedSource = sourceMapConsumer.sourceContentFor(loc.source);\n if (mappedSource) {\n sourceCache[loc.source] = mappedSource;\n }\n\n resolve(\n // given stackframe and source location, update stackframe\n new StackFrame({\n functionName: loc.name || stackframe.functionName,\n args: stackframe.args,\n fileName: loc.source,\n lineNumber: loc.line,\n columnNumber: loc.column\n }));\n } else {\n reject(new Error('Could not get original source for given stackframe and source map'));\n }\n });\n }\n\n /**\n * @constructor\n * @param {Object} opts\n * opts.sourceCache = {url: \"Source String\"} => preload source cache\n * opts.sourceMapConsumerCache = {/path/file.js.map: SourceMapConsumer}\n * opts.offline = True to prevent network requests.\n * Best effort without sources or source maps.\n * opts.ajax = Promise returning function to make X-Domain requests\n */\n return function StackTraceGPS(opts) {\n if (!(this instanceof StackTraceGPS)) {\n return new StackTraceGPS(opts);\n }\n opts = opts || {};\n\n this.sourceCache = opts.sourceCache || {};\n this.sourceMapConsumerCache = opts.sourceMapConsumerCache || {};\n\n this.ajax = opts.ajax || _xdr;\n\n this._atob = opts.atob || _atob;\n\n this._get = function _get(location) {\n return new Promise(function(resolve, reject) {\n var isDataUrl = location.substr(0, 5) === 'data:';\n if (this.sourceCache[location]) {\n resolve(this.sourceCache[location]);\n } else if (opts.offline && !isDataUrl) {\n reject(new Error('Cannot make network requests in offline mode'));\n } else {\n if (isDataUrl) {\n // data URLs can have parameters.\n // see http://tools.ietf.org/html/rfc2397\n var supportedEncodingRegexp =\n /^data:application\\/json;([\\w=:\"-]+;)*base64,/;\n var match = location.match(supportedEncodingRegexp);\n if (match) {\n var sourceMapStart = match[0].length;\n var encodedSource = location.substr(sourceMapStart);\n var source = this._atob(encodedSource);\n this.sourceCache[location] = source;\n resolve(source);\n } else {\n reject(new Error('The encoding of the inline sourcemap is not supported'));\n }\n } else {\n var xhrPromise = this.ajax(location, {method: 'get'});\n // Cache the Promise to prevent duplicate in-flight requests\n this.sourceCache[location] = xhrPromise;\n xhrPromise.then(resolve, reject);\n }\n }\n }.bind(this));\n };\n\n /**\n * Creating SourceMapConsumers is expensive, so this wraps the creation of a\n * SourceMapConsumer in a per-instance cache.\n *\n * @param {String} sourceMappingURL = URL to fetch source map from\n * @param {String} defaultSourceRoot = Default source root for source map if undefined\n * @returns {Promise} that resolves a SourceMapConsumer\n */\n this._getSourceMapConsumer = function _getSourceMapConsumer(sourceMappingURL, defaultSourceRoot) {\n return new Promise(function(resolve) {\n if (this.sourceMapConsumerCache[sourceMappingURL]) {\n resolve(this.sourceMapConsumerCache[sourceMappingURL]);\n } else {\n var sourceMapConsumerPromise = new Promise(function(resolve, reject) {\n return this._get(sourceMappingURL).then(function(sourceMapSource) {\n if (typeof sourceMapSource === 'string') {\n sourceMapSource = _parseJson(sourceMapSource.replace(/^\\)\\]\\}'/, ''));\n }\n if (typeof sourceMapSource.sourceRoot === 'undefined') {\n sourceMapSource.sourceRoot = defaultSourceRoot;\n }\n\n resolve(new SourceMap.SourceMapConsumer(sourceMapSource));\n }).catch(reject);\n }.bind(this));\n this.sourceMapConsumerCache[sourceMappingURL] = sourceMapConsumerPromise;\n resolve(sourceMapConsumerPromise);\n }\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, enhance function name and use source maps for a\n * better StackFrame.\n *\n * @param {StackFrame} stackframe object\n * @returns {Promise} that resolves with with source-mapped StackFrame\n */\n this.pinpoint = function StackTraceGPS$$pinpoint(stackframe) {\n return new Promise(function(resolve, reject) {\n this.getMappedLocation(stackframe).then(function(mappedStackFrame) {\n function resolveMappedStackFrame() {\n resolve(mappedStackFrame);\n }\n\n this.findFunctionName(mappedStackFrame)\n .then(resolve, resolveMappedStackFrame)\n // eslint-disable-next-line no-unexpected-multiline\n ['catch'](resolveMappedStackFrame);\n }.bind(this), reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, guess function name from location information.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.findFunctionName = function StackTraceGPS$$findFunctionName(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureStackFrameIsLegit(stackframe);\n this._get(stackframe.fileName).then(function getSourceCallback(source) {\n var lineNumber = stackframe.lineNumber;\n var columnNumber = stackframe.columnNumber;\n var guessedFunctionName = _findFunctionName(source, lineNumber, columnNumber);\n // Only replace functionName if we found something\n if (guessedFunctionName) {\n resolve(new StackFrame({\n functionName: guessedFunctionName,\n args: stackframe.args,\n fileName: stackframe.fileName,\n lineNumber: lineNumber,\n columnNumber: columnNumber\n }));\n } else {\n resolve(stackframe);\n }\n }, reject)['catch'](reject);\n }.bind(this));\n };\n\n /**\n * Given a StackFrame, seek source-mapped location and return new enhanced StackFrame.\n *\n * @param {StackFrame} stackframe\n * @returns {Promise} that resolves with enhanced StackFrame.\n */\n this.getMappedLocation = function StackTraceGPS$$getMappedLocation(stackframe) {\n return new Promise(function(resolve, reject) {\n _ensureSupportedEnvironment();\n _ensureStackFrameIsLegit(stackframe);\n\n var sourceCache = this.sourceCache;\n var fileName = stackframe.fileName;\n this._get(fileName).then(function(source) {\n var sourceMappingURL = _findSourceMappingURL(source);\n var isDataUrl = sourceMappingURL.substr(0, 5) === 'data:';\n var defaultSourceRoot = fileName.substring(0, fileName.lastIndexOf('/') + 1);\n\n if (sourceMappingURL[0] !== '/' && !isDataUrl && !(/^https?:\\/\\/|^\\/\\//i).test(sourceMappingURL)) {\n sourceMappingURL = defaultSourceRoot + sourceMappingURL;\n }\n\n return this._getSourceMapConsumer(sourceMappingURL, defaultSourceRoot)\n .then(function(sourceMapConsumer) {\n return _extractLocationInfoFromSourceMapSource(stackframe, sourceMapConsumer, sourceCache)\n .then(resolve)['catch'](function() {\n resolve(stackframe);\n });\n });\n }.bind(this), reject)['catch'](reject);\n }.bind(this));\n };\n };\n}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var Iterable;\n(function (Iterable) {\n function is(thing) {\n return thing && typeof thing === 'object' && typeof thing[Symbol.iterator] === 'function';\n }\n Iterable.is = is;\n const _empty = Object.freeze([]);\n function empty() {\n return _empty;\n }\n Iterable.empty = empty;\n function* single(element) {\n yield element;\n }\n Iterable.single = single;\n function wrap(iterableOrElement) {\n if (is(iterableOrElement)) {\n return iterableOrElement;\n }\n else {\n return single(iterableOrElement);\n }\n }\n Iterable.wrap = wrap;\n function from(iterable) {\n return iterable || _empty;\n }\n Iterable.from = from;\n function* reverse(array) {\n for (let i = array.length - 1; i >= 0; i--) {\n yield array[i];\n }\n }\n Iterable.reverse = reverse;\n function isEmpty(iterable) {\n return !iterable || iterable[Symbol.iterator]().next().done === true;\n }\n Iterable.isEmpty = isEmpty;\n function first(iterable) {\n return iterable[Symbol.iterator]().next().value;\n }\n Iterable.first = first;\n function some(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n return true;\n }\n }\n return false;\n }\n Iterable.some = some;\n function find(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n return element;\n }\n }\n return undefined;\n }\n Iterable.find = find;\n function* filter(iterable, predicate) {\n for (const element of iterable) {\n if (predicate(element)) {\n yield element;\n }\n }\n }\n Iterable.filter = filter;\n function* map(iterable, fn) {\n let index = 0;\n for (const element of iterable) {\n yield fn(element, index++);\n }\n }\n Iterable.map = map;\n function* concat(...iterables) {\n for (const iterable of iterables) {\n yield* iterable;\n }\n }\n Iterable.concat = concat;\n function reduce(iterable, reducer, initialValue) {\n let value = initialValue;\n for (const element of iterable) {\n value = reducer(value, element);\n }\n return value;\n }\n Iterable.reduce = reduce;\n /**\n * Returns an iterable slice of the array, with the same semantics as `array.slice()`.\n */\n function* slice(arr, from, to = arr.length) {\n if (from < 0) {\n from += arr.length;\n }\n if (to < 0) {\n to += arr.length;\n }\n else if (to > arr.length) {\n to = arr.length;\n }\n for (; from < to; from++) {\n yield arr[from];\n }\n }\n Iterable.slice = slice;\n /**\n * Consumes `atMost` elements from iterable and returns the consumed elements,\n * and an iterable for the rest of the elements.\n */\n function consume(iterable, atMost = Number.POSITIVE_INFINITY) {\n const consumed = [];\n if (atMost === 0) {\n return [consumed, iterable];\n }\n const iterator = iterable[Symbol.iterator]();\n for (let i = 0; i < atMost; i++) {\n const next = iterator.next();\n if (next.done) {\n return [consumed, Iterable.empty()];\n }\n consumed.push(next.value);\n }\n return [consumed, { [Symbol.iterator]() { return iterator; } }];\n }\n Iterable.consume = consume;\n async function asyncToArray(iterable) {\n const result = [];\n for await (const item of iterable) {\n result.push(item);\n }\n return Promise.resolve(result);\n }\n Iterable.asyncToArray = asyncToArray;\n})(Iterable || (Iterable = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst validate_1 = require(\"../../compile/validate\");\nconst code_1 = require(\"../code\");\nconst util_1 = require(\"../../compile/util\");\nconst additionalProperties_1 = require(\"./additionalProperties\");\nconst def = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n additionalProperties_1.default.code(new validate_1.KeywordCxt(it, additionalProperties_1.default, \"additionalProperties\"));\n }\n const allProps = (0, code_1.allSchemaProperties)(schema);\n for (const prop of allProps) {\n it.definedProperties.add(prop);\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = util_1.mergeEvaluated.props(gen, (0, util_1.toHash)(allProps), it.props);\n }\n const properties = allProps.filter((p) => !(0, util_1.alwaysValidSchema)(it, schema[p]));\n if (properties.length === 0)\n return;\n const valid = gen.name(\"valid\");\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop);\n }\n else {\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties));\n applyPropertySchema(prop);\n if (!it.allErrors)\n gen.else().var(valid, true);\n gen.endIf();\n }\n cxt.it.definedProperties.add(prop);\n cxt.ok(valid);\n }\n function hasDefault(prop) {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined;\n }\n function applyPropertySchema(prop) {\n cxt.subschema({\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n }, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=properties.js.map","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// NOTE: VSCode's copy of nodejs path library to be usable in common (non-node) namespace\n// Copied from: https://github.com/nodejs/node/blob/v16.14.2/lib/path.js\n/**\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nimport * as process from './process.js';\nconst CHAR_UPPERCASE_A = 65; /* A */\nconst CHAR_LOWERCASE_A = 97; /* a */\nconst CHAR_UPPERCASE_Z = 90; /* Z */\nconst CHAR_LOWERCASE_Z = 122; /* z */\nconst CHAR_DOT = 46; /* . */\nconst CHAR_FORWARD_SLASH = 47; /* / */\nconst CHAR_BACKWARD_SLASH = 92; /* \\ */\nconst CHAR_COLON = 58; /* : */\nconst CHAR_QUESTION_MARK = 63; /* ? */\nclass ErrorInvalidArgType extends Error {\n constructor(name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && expected.indexOf('not ') === 0) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n }\n else {\n determiner = 'must be';\n }\n const type = name.indexOf('.') !== -1 ? 'property' : 'argument';\n let msg = `The \"${name}\" ${type} ${determiner} of type ${expected}`;\n msg += `. Received type ${typeof actual}`;\n super(msg);\n this.code = 'ERR_INVALID_ARG_TYPE';\n }\n}\nfunction validateObject(pathObject, name) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new ErrorInvalidArgType(name, 'Object', pathObject);\n }\n}\nfunction validateString(value, name) {\n if (typeof value !== 'string') {\n throw new ErrorInvalidArgType(name, 'string', value);\n }\n}\nconst platformIsWin32 = (process.platform === 'win32');\nfunction isPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n}\nfunction isPosixPathSeparator(code) {\n return code === CHAR_FORWARD_SLASH;\n}\nfunction isWindowsDeviceRoot(code) {\n return (code >= CHAR_UPPERCASE_A && code <= CHAR_UPPERCASE_Z) ||\n (code >= CHAR_LOWERCASE_A && code <= CHAR_LOWERCASE_Z);\n}\n// Resolves . and .. elements in a path with directory names\nfunction normalizeString(path, allowAboveRoot, separator, isPathSeparator) {\n let res = '';\n let lastSegmentLength = 0;\n let lastSlash = -1;\n let dots = 0;\n let code = 0;\n for (let i = 0; i <= path.length; ++i) {\n if (i < path.length) {\n code = path.charCodeAt(i);\n }\n else if (isPathSeparator(code)) {\n break;\n }\n else {\n code = CHAR_FORWARD_SLASH;\n }\n if (isPathSeparator(code)) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n }\n else if (dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 ||\n res.charCodeAt(res.length - 1) !== CHAR_DOT ||\n res.charCodeAt(res.length - 2) !== CHAR_DOT) {\n if (res.length > 2) {\n const lastSlashIndex = res.lastIndexOf(separator);\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n }\n else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf(separator);\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n else if (res.length !== 0) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n res += res.length > 0 ? `${separator}..` : '..';\n lastSegmentLength = 2;\n }\n }\n else {\n if (res.length > 0) {\n res += `${separator}${path.slice(lastSlash + 1, i)}`;\n }\n else {\n res = path.slice(lastSlash + 1, i);\n }\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n }\n else if (code === CHAR_DOT && dots !== -1) {\n ++dots;\n }\n else {\n dots = -1;\n }\n }\n return res;\n}\nfunction _format(sep, pathObject) {\n validateObject(pathObject, 'pathObject');\n const dir = pathObject.dir || pathObject.root;\n const base = pathObject.base ||\n `${pathObject.name || ''}${pathObject.ext || ''}`;\n if (!dir) {\n return base;\n }\n return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`;\n}\nexport const win32 = {\n // path.resolve([from ...], to)\n resolve(...pathSegments) {\n let resolvedDevice = '';\n let resolvedTail = '';\n let resolvedAbsolute = false;\n for (let i = pathSegments.length - 1; i >= -1; i--) {\n let path;\n if (i >= 0) {\n path = pathSegments[i];\n validateString(path, 'path');\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n }\n else if (resolvedDevice.length === 0) {\n path = process.cwd();\n }\n else {\n // Windows has the concept of drive-specific current working\n // directories. If we've resolved a drive letter but not yet an\n // absolute path, get cwd for that drive, or the process cwd if\n // the drive cwd is not available. We're sure the device is not\n // a UNC path at this points, because UNC paths are always absolute.\n path = process.env[`=${resolvedDevice}`] || process.cwd();\n // Verify that a cwd was found and that it actually points\n // to our drive. If not, default to the drive's root.\n if (path === undefined ||\n (path.slice(0, 2).toLowerCase() !== resolvedDevice.toLowerCase() &&\n path.charCodeAt(2) === CHAR_BACKWARD_SLASH)) {\n path = `${resolvedDevice}\\\\`;\n }\n }\n const len = path.length;\n let rootEnd = 0;\n let device = '';\n let isAbsolute = false;\n const code = path.charCodeAt(0);\n // Try to match a root\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator\n rootEnd = 1;\n isAbsolute = true;\n }\n }\n else if (isPathSeparator(code)) {\n // Possible UNC root\n // If we started with a separator, we know we at least have an\n // absolute path of some kind (UNC or otherwise)\n isAbsolute = true;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = path.slice(last, j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len || j !== last) {\n // We matched a UNC root\n device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n rootEnd = j;\n }\n }\n }\n }\n else {\n rootEnd = 1;\n }\n }\n else if (isWindowsDeviceRoot(code) &&\n path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n device = path.slice(0, 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n if (device.length > 0) {\n if (resolvedDevice.length > 0) {\n if (device.toLowerCase() !== resolvedDevice.toLowerCase()) {\n // This path points to another device so it is not applicable\n continue;\n }\n }\n else {\n resolvedDevice = device;\n }\n }\n if (resolvedAbsolute) {\n if (resolvedDevice.length > 0) {\n break;\n }\n }\n else {\n resolvedTail = `${path.slice(rootEnd)}\\\\${resolvedTail}`;\n resolvedAbsolute = isAbsolute;\n if (isAbsolute && resolvedDevice.length > 0) {\n break;\n }\n }\n }\n // At this point the path should be resolved to a full absolute path,\n // but handle relative paths to be safe (might happen when process.cwd()\n // fails)\n // Normalize the tail path\n resolvedTail = normalizeString(resolvedTail, !resolvedAbsolute, '\\\\', isPathSeparator);\n return resolvedAbsolute ?\n `${resolvedDevice}\\\\${resolvedTail}` :\n `${resolvedDevice}${resolvedTail}` || '.';\n },\n normalize(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return '.';\n }\n let rootEnd = 0;\n let device;\n let isAbsolute = false;\n const code = path.charCodeAt(0);\n // Try to match a root\n if (len === 1) {\n // `path` contains just a single char, exit early to avoid\n // unnecessary work\n return isPosixPathSeparator(code) ? '\\\\' : path;\n }\n if (isPathSeparator(code)) {\n // Possible UNC root\n // If we started with a separator, we know we at least have an absolute\n // path of some kind (UNC or otherwise)\n isAbsolute = true;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n const firstPart = path.slice(last, j);\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n // Return the normalized version of the UNC root since there\n // is nothing left to process\n return `\\\\\\\\${firstPart}\\\\${path.slice(last)}\\\\`;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n device = `\\\\\\\\${firstPart}\\\\${path.slice(last, j)}`;\n rootEnd = j;\n }\n }\n }\n }\n else {\n rootEnd = 1;\n }\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n device = path.slice(0, 2);\n rootEnd = 2;\n if (len > 2 && isPathSeparator(path.charCodeAt(2))) {\n // Treat separator following drive name as an absolute path\n // indicator\n isAbsolute = true;\n rootEnd = 3;\n }\n }\n let tail = rootEnd < len ?\n normalizeString(path.slice(rootEnd), !isAbsolute, '\\\\', isPathSeparator) :\n '';\n if (tail.length === 0 && !isAbsolute) {\n tail = '.';\n }\n if (tail.length > 0 && isPathSeparator(path.charCodeAt(len - 1))) {\n tail += '\\\\';\n }\n if (device === undefined) {\n return isAbsolute ? `\\\\${tail}` : tail;\n }\n return isAbsolute ? `${device}\\\\${tail}` : `${device}${tail}`;\n },\n isAbsolute(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return false;\n }\n const code = path.charCodeAt(0);\n return isPathSeparator(code) ||\n // Possible device root\n (len > 2 &&\n isWindowsDeviceRoot(code) &&\n path.charCodeAt(1) === CHAR_COLON &&\n isPathSeparator(path.charCodeAt(2)));\n },\n join(...paths) {\n if (paths.length === 0) {\n return '.';\n }\n let joined;\n let firstPart;\n for (let i = 0; i < paths.length; ++i) {\n const arg = paths[i];\n validateString(arg, 'path');\n if (arg.length > 0) {\n if (joined === undefined) {\n joined = firstPart = arg;\n }\n else {\n joined += `\\\\${arg}`;\n }\n }\n }\n if (joined === undefined) {\n return '.';\n }\n // Make sure that the joined path doesn't start with two slashes, because\n // normalize() will mistake it for a UNC path then.\n //\n // This step is skipped when it is very clear that the user actually\n // intended to point at a UNC path. This is assumed when the first\n // non-empty string arguments starts with exactly two slashes followed by\n // at least one more non-slash character.\n //\n // Note that for normalize() to treat a path as a UNC path it needs to\n // have at least 2 components, so we don't filter for that here.\n // This means that the user can use join to construct UNC paths from\n // a server name and a share name; for example:\n // path.join('//server', 'share') -> '\\\\\\\\server\\\\share\\\\')\n let needsReplace = true;\n let slashCount = 0;\n if (typeof firstPart === 'string' && isPathSeparator(firstPart.charCodeAt(0))) {\n ++slashCount;\n const firstLen = firstPart.length;\n if (firstLen > 1 && isPathSeparator(firstPart.charCodeAt(1))) {\n ++slashCount;\n if (firstLen > 2) {\n if (isPathSeparator(firstPart.charCodeAt(2))) {\n ++slashCount;\n }\n else {\n // We matched a UNC path in the first part\n needsReplace = false;\n }\n }\n }\n }\n if (needsReplace) {\n // Find any more consecutive slashes we need to replace\n while (slashCount < joined.length &&\n isPathSeparator(joined.charCodeAt(slashCount))) {\n slashCount++;\n }\n // Replace the slashes if needed\n if (slashCount >= 2) {\n joined = `\\\\${joined.slice(slashCount)}`;\n }\n }\n return win32.normalize(joined);\n },\n // It will solve the relative path from `from` to `to`, for instance:\n // from = 'C:\\\\orandea\\\\test\\\\aaa'\n // to = 'C:\\\\orandea\\\\impl\\\\bbb'\n // The output of the function should be: '..\\\\..\\\\impl\\\\bbb'\n relative(from, to) {\n validateString(from, 'from');\n validateString(to, 'to');\n if (from === to) {\n return '';\n }\n const fromOrig = win32.resolve(from);\n const toOrig = win32.resolve(to);\n if (fromOrig === toOrig) {\n return '';\n }\n from = fromOrig.toLowerCase();\n to = toOrig.toLowerCase();\n if (from === to) {\n return '';\n }\n // Trim any leading backslashes\n let fromStart = 0;\n while (fromStart < from.length &&\n from.charCodeAt(fromStart) === CHAR_BACKWARD_SLASH) {\n fromStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let fromEnd = from.length;\n while (fromEnd - 1 > fromStart &&\n from.charCodeAt(fromEnd - 1) === CHAR_BACKWARD_SLASH) {\n fromEnd--;\n }\n const fromLen = fromEnd - fromStart;\n // Trim any leading backslashes\n let toStart = 0;\n while (toStart < to.length &&\n to.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n toStart++;\n }\n // Trim trailing backslashes (applicable to UNC paths only)\n let toEnd = to.length;\n while (toEnd - 1 > toStart &&\n to.charCodeAt(toEnd - 1) === CHAR_BACKWARD_SLASH) {\n toEnd--;\n }\n const toLen = toEnd - toStart;\n // Compare paths to find the longest common path from root\n const length = fromLen < toLen ? fromLen : toLen;\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = from.charCodeAt(fromStart + i);\n if (fromCode !== to.charCodeAt(toStart + i)) {\n break;\n }\n else if (fromCode === CHAR_BACKWARD_SLASH) {\n lastCommonSep = i;\n }\n }\n // We found a mismatch before the first common path separator was seen, so\n // return the original `to`.\n if (i !== length) {\n if (lastCommonSep === -1) {\n return toOrig;\n }\n }\n else {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === CHAR_BACKWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo\\\\bar\\\\baz'\n return toOrig.slice(toStart + i + 1);\n }\n if (i === 2) {\n // We get here if `from` is the device root.\n // For example: from='C:\\\\'; to='C:\\\\foo'\n return toOrig.slice(toStart + i);\n }\n }\n if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === CHAR_BACKWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\foo'\n lastCommonSep = i;\n }\n else if (i === 2) {\n // We get here if `to` is the device root.\n // For example: from='C:\\\\foo\\\\bar'; to='C:\\\\'\n lastCommonSep = 3;\n }\n }\n if (lastCommonSep === -1) {\n lastCommonSep = 0;\n }\n }\n let out = '';\n // Generate the relative path based on the path difference between `to` and\n // `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === CHAR_BACKWARD_SLASH) {\n out += out.length === 0 ? '..' : '\\\\..';\n }\n }\n toStart += lastCommonSep;\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0) {\n return `${out}${toOrig.slice(toStart, toEnd)}`;\n }\n if (toOrig.charCodeAt(toStart) === CHAR_BACKWARD_SLASH) {\n ++toStart;\n }\n return toOrig.slice(toStart, toEnd);\n },\n toNamespacedPath(path) {\n // Note: this will *probably* throw somewhere.\n if (typeof path !== 'string' || path.length === 0) {\n return path;\n }\n const resolvedPath = win32.resolve(path);\n if (resolvedPath.length <= 2) {\n return path;\n }\n if (resolvedPath.charCodeAt(0) === CHAR_BACKWARD_SLASH) {\n // Possible UNC root\n if (resolvedPath.charCodeAt(1) === CHAR_BACKWARD_SLASH) {\n const code = resolvedPath.charCodeAt(2);\n if (code !== CHAR_QUESTION_MARK && code !== CHAR_DOT) {\n // Matched non-long UNC root, convert the path to a long UNC path\n return `\\\\\\\\?\\\\UNC\\\\${resolvedPath.slice(2)}`;\n }\n }\n }\n else if (isWindowsDeviceRoot(resolvedPath.charCodeAt(0)) &&\n resolvedPath.charCodeAt(1) === CHAR_COLON &&\n resolvedPath.charCodeAt(2) === CHAR_BACKWARD_SLASH) {\n // Matched device root, convert the path to a long UNC path\n return `\\\\\\\\?\\\\${resolvedPath}`;\n }\n return path;\n },\n dirname(path) {\n validateString(path, 'path');\n const len = path.length;\n if (len === 0) {\n return '.';\n }\n let rootEnd = -1;\n let offset = 0;\n const code = path.charCodeAt(0);\n if (len === 1) {\n // `path` contains just a path separator, exit early to avoid\n // unnecessary work or a dot.\n return isPathSeparator(code) ? path : '.';\n }\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n rootEnd = offset = 1;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n return path;\n }\n if (j !== last) {\n // We matched a UNC root with leftovers\n // Offset by 1 to include the separator after the UNC root to\n // treat it as a \"normal root\" on top of a (UNC) root\n rootEnd = offset = j + 1;\n }\n }\n }\n }\n // Possible device root\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n rootEnd = len > 2 && isPathSeparator(path.charCodeAt(2)) ? 3 : 2;\n offset = rootEnd;\n }\n let end = -1;\n let matchedSlash = true;\n for (let i = len - 1; i >= offset; --i) {\n if (isPathSeparator(path.charCodeAt(i))) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n }\n else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) {\n if (rootEnd === -1) {\n return '.';\n }\n end = rootEnd;\n }\n return path.slice(0, end);\n },\n basename(path, ext) {\n if (ext !== undefined) {\n validateString(ext, 'ext');\n }\n validateString(path, 'path');\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n let i;\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n if (path.length >= 2 &&\n isWindowsDeviceRoot(path.charCodeAt(0)) &&\n path.charCodeAt(1) === CHAR_COLON) {\n start = 2;\n }\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path) {\n return '';\n }\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n }\n else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n }\n else if (end === -1) {\n end = path.length;\n }\n return path.slice(start, end);\n }\n for (i = path.length - 1; i >= start; --i) {\n if (isPathSeparator(path.charCodeAt(i))) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) {\n return '';\n }\n return path.slice(start, end);\n },\n extname(path) {\n validateString(path, 'path');\n let start = 0;\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Check for a drive letter prefix so as not to mistake the following\n // path separator as an extra separator at the end of the path that can be\n // disregarded\n if (path.length >= 2 &&\n path.charCodeAt(1) === CHAR_COLON &&\n isWindowsDeviceRoot(path.charCodeAt(0))) {\n start = startPart = 2;\n }\n for (let i = path.length - 1; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return path.slice(startDot, end);\n },\n format: _format.bind(null, '\\\\'),\n parse(path) {\n validateString(path, 'path');\n const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) {\n return ret;\n }\n const len = path.length;\n let rootEnd = 0;\n let code = path.charCodeAt(0);\n if (len === 1) {\n if (isPathSeparator(code)) {\n // `path` contains just a path separator, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n ret.base = ret.name = path;\n return ret;\n }\n // Try to match a root\n if (isPathSeparator(code)) {\n // Possible UNC root\n rootEnd = 1;\n if (isPathSeparator(path.charCodeAt(1))) {\n // Matched double path separator at beginning\n let j = 2;\n let last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more path separators\n while (j < len && isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j < len && j !== last) {\n // Matched!\n last = j;\n // Match 1 or more non-path separators\n while (j < len && !isPathSeparator(path.charCodeAt(j))) {\n j++;\n }\n if (j === len) {\n // We matched a UNC root only\n rootEnd = j;\n }\n else if (j !== last) {\n // We matched a UNC root with leftovers\n rootEnd = j + 1;\n }\n }\n }\n }\n }\n else if (isWindowsDeviceRoot(code) && path.charCodeAt(1) === CHAR_COLON) {\n // Possible device root\n if (len <= 2) {\n // `path` contains just a drive root, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 2;\n if (isPathSeparator(path.charCodeAt(2))) {\n if (len === 3) {\n // `path` contains just a drive root, exit early to avoid\n // unnecessary work\n ret.root = ret.dir = path;\n return ret;\n }\n rootEnd = 3;\n }\n }\n if (rootEnd > 0) {\n ret.root = path.slice(0, rootEnd);\n }\n let startDot = -1;\n let startPart = rootEnd;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Get non-dir info\n for (; i >= rootEnd; --i) {\n code = path.charCodeAt(i);\n if (isPathSeparator(code)) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (end !== -1) {\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = path.slice(startPart, end);\n }\n else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n ret.ext = path.slice(startDot, end);\n }\n }\n // If the directory is the root, use the entire root as the `dir` including\n // the trailing slash if any (`C:\\abc` -> `C:\\`). Otherwise, strip out the\n // trailing slash (`C:\\abc\\def` -> `C:\\abc`).\n if (startPart > 0 && startPart !== rootEnd) {\n ret.dir = path.slice(0, startPart - 1);\n }\n else {\n ret.dir = ret.root;\n }\n return ret;\n },\n sep: '\\\\',\n delimiter: ';',\n win32: null,\n posix: null\n};\nconst posixCwd = (() => {\n if (platformIsWin32) {\n // Converts Windows' backslash path separators to POSIX forward slashes\n // and truncates any drive indicator\n const regexp = /\\\\/g;\n return () => {\n const cwd = process.cwd().replace(regexp, '/');\n return cwd.slice(cwd.indexOf('/'));\n };\n }\n // We're already on POSIX, no need for any transformations\n return () => process.cwd();\n})();\nexport const posix = {\n // path.resolve([from ...], to)\n resolve(...pathSegments) {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n for (let i = pathSegments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? pathSegments[i] : posixCwd();\n validateString(path, 'path');\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n }\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', isPosixPathSeparator);\n if (resolvedAbsolute) {\n return `/${resolvedPath}`;\n }\n return resolvedPath.length > 0 ? resolvedPath : '.';\n },\n normalize(path) {\n validateString(path, 'path');\n if (path.length === 0) {\n return '.';\n }\n const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH;\n // Normalize the path\n path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator);\n if (path.length === 0) {\n if (isAbsolute) {\n return '/';\n }\n return trailingSeparator ? './' : '.';\n }\n if (trailingSeparator) {\n path += '/';\n }\n return isAbsolute ? `/${path}` : path;\n },\n isAbsolute(path) {\n validateString(path, 'path');\n return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n },\n join(...paths) {\n if (paths.length === 0) {\n return '.';\n }\n let joined;\n for (let i = 0; i < paths.length; ++i) {\n const arg = paths[i];\n validateString(arg, 'path');\n if (arg.length > 0) {\n if (joined === undefined) {\n joined = arg;\n }\n else {\n joined += `/${arg}`;\n }\n }\n }\n if (joined === undefined) {\n return '.';\n }\n return posix.normalize(joined);\n },\n relative(from, to) {\n validateString(from, 'from');\n validateString(to, 'to');\n if (from === to) {\n return '';\n }\n // Trim leading forward slashes.\n from = posix.resolve(from);\n to = posix.resolve(to);\n if (from === to) {\n return '';\n }\n const fromStart = 1;\n const fromEnd = from.length;\n const fromLen = fromEnd - fromStart;\n const toStart = 1;\n const toLen = to.length - toStart;\n // Compare paths to find the longest common path from root\n const length = (fromLen < toLen ? fromLen : toLen);\n let lastCommonSep = -1;\n let i = 0;\n for (; i < length; i++) {\n const fromCode = from.charCodeAt(fromStart + i);\n if (fromCode !== to.charCodeAt(toStart + i)) {\n break;\n }\n else if (fromCode === CHAR_FORWARD_SLASH) {\n lastCommonSep = i;\n }\n }\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n }\n if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n }\n else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n }\n else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo/bar'; to='/'\n lastCommonSep = 0;\n }\n }\n }\n let out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`.\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n out += out.length === 0 ? '..' : '/..';\n }\n }\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts.\n return `${out}${to.slice(toStart + lastCommonSep)}`;\n },\n toNamespacedPath(path) {\n // Non-op on posix systems\n return path;\n },\n dirname(path) {\n validateString(path, 'path');\n if (path.length === 0) {\n return '.';\n }\n const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n let end = -1;\n let matchedSlash = true;\n for (let i = path.length - 1; i >= 1; --i) {\n if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n }\n else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n if (end === -1) {\n return hasRoot ? '/' : '.';\n }\n if (hasRoot && end === 1) {\n return '//';\n }\n return path.slice(0, end);\n },\n basename(path, ext) {\n if (ext !== undefined) {\n validateString(ext, 'ext');\n }\n validateString(path, 'path');\n let start = 0;\n let end = -1;\n let matchedSlash = true;\n let i;\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext === path) {\n return '';\n }\n let extIdx = ext.length - 1;\n let firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n }\n else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n if (start === end) {\n end = firstNonSlashEnd;\n }\n else if (end === -1) {\n end = path.length;\n }\n return path.slice(start, end);\n }\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n }\n else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n if (end === -1) {\n return '';\n }\n return path.slice(start, end);\n },\n extname(path) {\n validateString(path, 'path');\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n for (let i = path.length - 1; i >= 0; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (startDot === -1 ||\n end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n return '';\n }\n return path.slice(startDot, end);\n },\n format: _format.bind(null, '/'),\n parse(path) {\n validateString(path, 'path');\n const ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) {\n return ret;\n }\n const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH;\n let start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n }\n else {\n start = 0;\n }\n let startDot = -1;\n let startPart = 0;\n let end = -1;\n let matchedSlash = true;\n let i = path.length - 1;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n let preDotState = 0;\n // Get non-dir info\n for (; i >= start; --i) {\n const code = path.charCodeAt(i);\n if (code === CHAR_FORWARD_SLASH) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === CHAR_DOT) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) {\n startDot = i;\n }\n else if (preDotState !== 1) {\n preDotState = 1;\n }\n }\n else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n if (end !== -1) {\n const start = startPart === 0 && isAbsolute ? 1 : startPart;\n if (startDot === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n (preDotState === 1 &&\n startDot === end - 1 &&\n startDot === startPart + 1)) {\n ret.base = ret.name = path.slice(start, end);\n }\n else {\n ret.name = path.slice(start, startDot);\n ret.base = path.slice(start, end);\n ret.ext = path.slice(startDot, end);\n }\n }\n if (startPart > 0) {\n ret.dir = path.slice(0, startPart - 1);\n }\n else if (isAbsolute) {\n ret.dir = '/';\n }\n return ret;\n },\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\nposix.win32 = win32.win32 = win32;\nposix.posix = win32.posix = posix;\nexport const normalize = (platformIsWin32 ? win32.normalize : posix.normalize);\nexport const resolve = (platformIsWin32 ? win32.resolve : posix.resolve);\nexport const relative = (platformIsWin32 ? win32.relative : posix.relative);\nexport const dirname = (platformIsWin32 ? win32.dirname : posix.dirname);\nexport const basename = (platformIsWin32 ? win32.basename : posix.basename);\nexport const extname = (platformIsWin32 ? win32.extname : posix.extname);\nexport const sep = (platformIsWin32 ? win32.sep : posix.sep);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const foldSourceAbbr = {\n [0 /* FoldSource.provider */]: ' ',\n [1 /* FoldSource.userDefined */]: 'u',\n [2 /* FoldSource.recovered */]: 'r',\n};\nexport const MAX_FOLDING_REGIONS = 0xFFFF;\nexport const MAX_LINE_NUMBER = 0xFFFFFF;\nconst MASK_INDENT = 0xFF000000;\nclass BitField {\n constructor(size) {\n const numWords = Math.ceil(size / 32);\n this._states = new Uint32Array(numWords);\n }\n get(index) {\n const arrayIndex = (index / 32) | 0;\n const bit = index % 32;\n return (this._states[arrayIndex] & (1 << bit)) !== 0;\n }\n set(index, newState) {\n const arrayIndex = (index / 32) | 0;\n const bit = index % 32;\n const value = this._states[arrayIndex];\n if (newState) {\n this._states[arrayIndex] = value | (1 << bit);\n }\n else {\n this._states[arrayIndex] = value & ~(1 << bit);\n }\n }\n}\nexport class FoldingRegions {\n constructor(startIndexes, endIndexes, types) {\n if (startIndexes.length !== endIndexes.length || startIndexes.length > MAX_FOLDING_REGIONS) {\n throw new Error('invalid startIndexes or endIndexes size');\n }\n this._startIndexes = startIndexes;\n this._endIndexes = endIndexes;\n this._collapseStates = new BitField(startIndexes.length);\n this._userDefinedStates = new BitField(startIndexes.length);\n this._recoveredStates = new BitField(startIndexes.length);\n this._types = types;\n this._parentsComputed = false;\n }\n ensureParentIndices() {\n if (!this._parentsComputed) {\n this._parentsComputed = true;\n const parentIndexes = [];\n const isInsideLast = (startLineNumber, endLineNumber) => {\n const index = parentIndexes[parentIndexes.length - 1];\n return this.getStartLineNumber(index) <= startLineNumber && this.getEndLineNumber(index) >= endLineNumber;\n };\n for (let i = 0, len = this._startIndexes.length; i < len; i++) {\n const startLineNumber = this._startIndexes[i];\n const endLineNumber = this._endIndexes[i];\n if (startLineNumber > MAX_LINE_NUMBER || endLineNumber > MAX_LINE_NUMBER) {\n throw new Error('startLineNumber or endLineNumber must not exceed ' + MAX_LINE_NUMBER);\n }\n while (parentIndexes.length > 0 && !isInsideLast(startLineNumber, endLineNumber)) {\n parentIndexes.pop();\n }\n const parentIndex = parentIndexes.length > 0 ? parentIndexes[parentIndexes.length - 1] : -1;\n parentIndexes.push(i);\n this._startIndexes[i] = startLineNumber + ((parentIndex & 0xFF) << 24);\n this._endIndexes[i] = endLineNumber + ((parentIndex & 0xFF00) << 16);\n }\n }\n }\n get length() {\n return this._startIndexes.length;\n }\n getStartLineNumber(index) {\n return this._startIndexes[index] & MAX_LINE_NUMBER;\n }\n getEndLineNumber(index) {\n return this._endIndexes[index] & MAX_LINE_NUMBER;\n }\n getType(index) {\n return this._types ? this._types[index] : undefined;\n }\n hasTypes() {\n return !!this._types;\n }\n isCollapsed(index) {\n return this._collapseStates.get(index);\n }\n setCollapsed(index, newState) {\n this._collapseStates.set(index, newState);\n }\n isUserDefined(index) {\n return this._userDefinedStates.get(index);\n }\n setUserDefined(index, newState) {\n return this._userDefinedStates.set(index, newState);\n }\n isRecovered(index) {\n return this._recoveredStates.get(index);\n }\n setRecovered(index, newState) {\n return this._recoveredStates.set(index, newState);\n }\n getSource(index) {\n if (this.isUserDefined(index)) {\n return 1 /* FoldSource.userDefined */;\n }\n else if (this.isRecovered(index)) {\n return 2 /* FoldSource.recovered */;\n }\n return 0 /* FoldSource.provider */;\n }\n setSource(index, source) {\n if (source === 1 /* FoldSource.userDefined */) {\n this.setUserDefined(index, true);\n this.setRecovered(index, false);\n }\n else if (source === 2 /* FoldSource.recovered */) {\n this.setUserDefined(index, false);\n this.setRecovered(index, true);\n }\n else {\n this.setUserDefined(index, false);\n this.setRecovered(index, false);\n }\n }\n setCollapsedAllOfType(type, newState) {\n let hasChanged = false;\n if (this._types) {\n for (let i = 0; i < this._types.length; i++) {\n if (this._types[i] === type) {\n this.setCollapsed(i, newState);\n hasChanged = true;\n }\n }\n }\n return hasChanged;\n }\n toRegion(index) {\n return new FoldingRegion(this, index);\n }\n getParentIndex(index) {\n this.ensureParentIndices();\n const parent = ((this._startIndexes[index] & MASK_INDENT) >>> 24) + ((this._endIndexes[index] & MASK_INDENT) >>> 16);\n if (parent === MAX_FOLDING_REGIONS) {\n return -1;\n }\n return parent;\n }\n contains(index, line) {\n return this.getStartLineNumber(index) <= line && this.getEndLineNumber(index) >= line;\n }\n findIndex(line) {\n let low = 0, high = this._startIndexes.length;\n if (high === 0) {\n return -1; // no children\n }\n while (low < high) {\n const mid = Math.floor((low + high) / 2);\n if (line < this.getStartLineNumber(mid)) {\n high = mid;\n }\n else {\n low = mid + 1;\n }\n }\n return low - 1;\n }\n findRange(line) {\n let index = this.findIndex(line);\n if (index >= 0) {\n const endLineNumber = this.getEndLineNumber(index);\n if (endLineNumber >= line) {\n return index;\n }\n index = this.getParentIndex(index);\n while (index !== -1) {\n if (this.contains(index, line)) {\n return index;\n }\n index = this.getParentIndex(index);\n }\n }\n return -1;\n }\n toString() {\n const res = [];\n for (let i = 0; i < this.length; i++) {\n res[i] = `[${foldSourceAbbr[this.getSource(i)]}${this.isCollapsed(i) ? '+' : '-'}] ${this.getStartLineNumber(i)}/${this.getEndLineNumber(i)}`;\n }\n return res.join(', ');\n }\n toFoldRange(index) {\n return {\n startLineNumber: this._startIndexes[index] & MAX_LINE_NUMBER,\n endLineNumber: this._endIndexes[index] & MAX_LINE_NUMBER,\n type: this._types ? this._types[index] : undefined,\n isCollapsed: this.isCollapsed(index),\n source: this.getSource(index)\n };\n }\n static fromFoldRanges(ranges) {\n const rangesLength = ranges.length;\n const startIndexes = new Uint32Array(rangesLength);\n const endIndexes = new Uint32Array(rangesLength);\n let types = [];\n let gotTypes = false;\n for (let i = 0; i < rangesLength; i++) {\n const range = ranges[i];\n startIndexes[i] = range.startLineNumber;\n endIndexes[i] = range.endLineNumber;\n types.push(range.type);\n if (range.type) {\n gotTypes = true;\n }\n }\n if (!gotTypes) {\n types = undefined;\n }\n const regions = new FoldingRegions(startIndexes, endIndexes, types);\n for (let i = 0; i < rangesLength; i++) {\n if (ranges[i].isCollapsed) {\n regions.setCollapsed(i, true);\n }\n regions.setSource(i, ranges[i].source);\n }\n return regions;\n }\n /**\n * Two inputs, each a FoldingRegions or a FoldRange[], are merged.\n * Each input must be pre-sorted on startLineNumber.\n * The first list is assumed to always include all regions currently defined by range providers.\n * The second list only contains the previously collapsed and all manual ranges.\n * If the line position matches, the range of the new range is taken, and the range is no longer manual\n * When an entry in one list overlaps an entry in the other, the second list's entry \"wins\" and\n * overlapping entries in the first list are discarded.\n * Invalid entries are discarded. An entry is invalid if:\n * \t\tthe start and end line numbers aren't a valid range of line numbers,\n * \t\tit is out of sequence or has the same start line as a preceding entry,\n * \t\tit overlaps a preceding entry and is not fully contained by that entry.\n */\n static sanitizeAndMerge(rangesA, rangesB, maxLineNumber) {\n maxLineNumber = maxLineNumber !== null && maxLineNumber !== void 0 ? maxLineNumber : Number.MAX_VALUE;\n const getIndexedFunction = (r, limit) => {\n return Array.isArray(r)\n ? ((i) => { return (i < limit) ? r[i] : undefined; })\n : ((i) => { return (i < limit) ? r.toFoldRange(i) : undefined; });\n };\n const getA = getIndexedFunction(rangesA, rangesA.length);\n const getB = getIndexedFunction(rangesB, rangesB.length);\n let indexA = 0;\n let indexB = 0;\n let nextA = getA(0);\n let nextB = getB(0);\n const stackedRanges = [];\n let topStackedRange;\n let prevLineNumber = 0;\n const resultRanges = [];\n while (nextA || nextB) {\n let useRange = undefined;\n if (nextB && (!nextA || nextA.startLineNumber >= nextB.startLineNumber)) {\n if (nextA && nextA.startLineNumber === nextB.startLineNumber) {\n if (nextB.source === 1 /* FoldSource.userDefined */) {\n // a user defined range (possibly unfolded)\n useRange = nextB;\n }\n else {\n // a previously folded range or a (possibly unfolded) recovered range\n useRange = nextA;\n useRange.isCollapsed = nextB.isCollapsed && nextA.endLineNumber === nextB.endLineNumber;\n useRange.source = 0 /* FoldSource.provider */;\n }\n nextA = getA(++indexA); // not necessary, just for speed\n }\n else {\n useRange = nextB;\n if (nextB.isCollapsed && nextB.source === 0 /* FoldSource.provider */) {\n // a previously collapsed range\n useRange.source = 2 /* FoldSource.recovered */;\n }\n }\n nextB = getB(++indexB);\n }\n else {\n // nextA is next. The user folded B set takes precedence and we sometimes need to look\n // ahead in it to check for an upcoming conflict.\n let scanIndex = indexB;\n let prescanB = nextB;\n while (true) {\n if (!prescanB || prescanB.startLineNumber > nextA.endLineNumber) {\n useRange = nextA;\n break; // no conflict, use this nextA\n }\n if (prescanB.source === 1 /* FoldSource.userDefined */ && prescanB.endLineNumber > nextA.endLineNumber) {\n // we found a user folded range, it wins\n break; // without setting nextResult, so this nextA gets skipped\n }\n prescanB = getB(++scanIndex);\n }\n nextA = getA(++indexA);\n }\n if (useRange) {\n while (topStackedRange\n && topStackedRange.endLineNumber < useRange.startLineNumber) {\n topStackedRange = stackedRanges.pop();\n }\n if (useRange.endLineNumber > useRange.startLineNumber\n && useRange.startLineNumber > prevLineNumber\n && useRange.endLineNumber <= maxLineNumber\n && (!topStackedRange\n || topStackedRange.endLineNumber >= useRange.endLineNumber)) {\n resultRanges.push(useRange);\n prevLineNumber = useRange.startLineNumber;\n if (topStackedRange) {\n stackedRanges.push(topStackedRange);\n }\n topStackedRange = useRange;\n }\n }\n }\n return resultRanges;\n }\n}\nexport class FoldingRegion {\n constructor(ranges, index) {\n this.ranges = ranges;\n this.index = index;\n }\n get startLineNumber() {\n return this.ranges.getStartLineNumber(this.index);\n }\n get endLineNumber() {\n return this.ranges.getEndLineNumber(this.index);\n }\n get regionIndex() {\n return this.index;\n }\n get parentIndex() {\n return this.ranges.getParentIndex(this.index);\n }\n get isCollapsed() {\n return this.ranges.isCollapsed(this.index);\n }\n containedBy(range) {\n return range.startLineNumber <= this.startLineNumber && range.endLineNumber >= this.endLineNumber;\n }\n containsLine(lineNumber) {\n return this.startLineNumber <= lineNumber && lineNumber <= this.endLineNumber;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkStrictMode = exports.getErrorPath = exports.Type = exports.useFunc = exports.setEvaluated = exports.evaluatedPropsToName = exports.mergeEvaluated = exports.eachItem = exports.unescapeJsonPointer = exports.escapeJsonPointer = exports.escapeFragment = exports.unescapeFragment = exports.schemaRefOrVal = exports.schemaHasRulesButRef = exports.schemaHasRules = exports.checkUnknownRules = exports.alwaysValidSchema = exports.toHash = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst code_1 = require(\"./codegen/code\");\n// TODO refactor to use Set\nfunction toHash(arr) {\n const hash = {};\n for (const item of arr)\n hash[item] = true;\n return hash;\n}\nexports.toHash = toHash;\nfunction alwaysValidSchema(it, schema) {\n if (typeof schema == \"boolean\")\n return schema;\n if (Object.keys(schema).length === 0)\n return true;\n checkUnknownRules(it, schema);\n return !schemaHasRules(schema, it.self.RULES.all);\n}\nexports.alwaysValidSchema = alwaysValidSchema;\nfunction checkUnknownRules(it, schema = it.schema) {\n const { opts, self } = it;\n if (!opts.strictSchema)\n return;\n if (typeof schema === \"boolean\")\n return;\n const rules = self.RULES.keywords;\n for (const key in schema) {\n if (!rules[key])\n checkStrictMode(it, `unknown keyword: \"${key}\"`);\n }\n}\nexports.checkUnknownRules = checkUnknownRules;\nfunction schemaHasRules(schema, rules) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (rules[key])\n return true;\n return false;\n}\nexports.schemaHasRules = schemaHasRules;\nfunction schemaHasRulesButRef(schema, RULES) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (key !== \"$ref\" && RULES.all[key])\n return true;\n return false;\n}\nexports.schemaHasRulesButRef = schemaHasRulesButRef;\nfunction schemaRefOrVal({ topSchemaRef, schemaPath }, schema, keyword, $data) {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\")\n return schema;\n if (typeof schema == \"string\")\n return (0, codegen_1._) `${schema}`;\n }\n return (0, codegen_1._) `${topSchemaRef}${schemaPath}${(0, codegen_1.getProperty)(keyword)}`;\n}\nexports.schemaRefOrVal = schemaRefOrVal;\nfunction unescapeFragment(str) {\n return unescapeJsonPointer(decodeURIComponent(str));\n}\nexports.unescapeFragment = unescapeFragment;\nfunction escapeFragment(str) {\n return encodeURIComponent(escapeJsonPointer(str));\n}\nexports.escapeFragment = escapeFragment;\nfunction escapeJsonPointer(str) {\n if (typeof str == \"number\")\n return `${str}`;\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\");\n}\nexports.escapeJsonPointer = escapeJsonPointer;\nfunction unescapeJsonPointer(str) {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\");\n}\nexports.unescapeJsonPointer = unescapeJsonPointer;\nfunction eachItem(xs, f) {\n if (Array.isArray(xs)) {\n for (const x of xs)\n f(x);\n }\n else {\n f(xs);\n }\n}\nexports.eachItem = eachItem;\nfunction makeMergeEvaluated({ mergeNames, mergeToName, mergeValues, resultToName, }) {\n return (gen, from, to, toName) => {\n const res = to === undefined\n ? from\n : to instanceof codegen_1.Name\n ? (from instanceof codegen_1.Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof codegen_1.Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to);\n return toName === codegen_1.Name && !(res instanceof codegen_1.Name) ? resultToName(gen, res) : res;\n };\n}\nexports.mergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => {\n gen.if((0, codegen_1._) `${from} === true`, () => gen.assign(to, true), () => gen.assign(to, (0, codegen_1._) `${to} || {}`).code((0, codegen_1._) `Object.assign(${to}, ${from})`));\n }),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true);\n }\n else {\n gen.assign(to, (0, codegen_1._) `${to} || {}`);\n setEvaluated(gen, to, from);\n }\n }),\n mergeValues: (from, to) => (from === true ? true : { ...from, ...to }),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true && ${from} !== undefined`, () => gen.assign(to, (0, codegen_1._) `${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)),\n mergeToName: (gen, from, to) => gen.if((0, codegen_1._) `${to} !== true`, () => gen.assign(to, from === true ? true : (0, codegen_1._) `${to} > ${from} ? ${to} : ${from}`)),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n};\nfunction evaluatedPropsToName(gen, ps) {\n if (ps === true)\n return gen.var(\"props\", true);\n const props = gen.var(\"props\", (0, codegen_1._) `{}`);\n if (ps !== undefined)\n setEvaluated(gen, props, ps);\n return props;\n}\nexports.evaluatedPropsToName = evaluatedPropsToName;\nfunction setEvaluated(gen, props, ps) {\n Object.keys(ps).forEach((p) => gen.assign((0, codegen_1._) `${props}${(0, codegen_1.getProperty)(p)}`, true));\n}\nexports.setEvaluated = setEvaluated;\nconst snippets = {};\nfunction useFunc(gen, f) {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new code_1._Code(f.code)),\n });\n}\nexports.useFunc = useFunc;\nvar Type;\n(function (Type) {\n Type[Type[\"Num\"] = 0] = \"Num\";\n Type[Type[\"Str\"] = 1] = \"Str\";\n})(Type || (exports.Type = Type = {}));\nfunction getErrorPath(dataProp, dataPropType, jsPropertySyntax) {\n // let path\n if (dataProp instanceof codegen_1.Name) {\n const isNumber = dataPropType === Type.Num;\n return jsPropertySyntax\n ? isNumber\n ? (0, codegen_1._) `\"[\" + ${dataProp} + \"]\"`\n : (0, codegen_1._) `\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? (0, codegen_1._) `\"/\" + ${dataProp}`\n : (0, codegen_1._) `\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")`; // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? (0, codegen_1.getProperty)(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp);\n}\nexports.getErrorPath = getErrorPath;\nfunction checkStrictMode(it, msg, mode = it.opts.strictSchema) {\n if (!mode)\n return;\n msg = `strict mode: ${msg}`;\n if (mode === true)\n throw new Error(msg);\n it.self.logger.warn(msg);\n}\nexports.checkStrictMode = checkStrictMode;\n//# sourceMappingURL=util.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn } from '../assert.js';\nimport { strictEquals } from '../equals.js';\nimport { DisposableStore } from '../lifecycle.js';\nimport { BaseObservable, _setDerivedOpts } from './base.js';\nimport { DebugNameData } from './debugName.js';\nimport { getLogger } from './logging.js';\nexport function derived(computeFnOrOwner, computeFn) {\n if (computeFn !== undefined) {\n return new Derived(new DebugNameData(computeFnOrOwner, undefined, computeFn), computeFn, undefined, undefined, undefined, strictEquals);\n }\n return new Derived(new DebugNameData(undefined, undefined, computeFnOrOwner), computeFnOrOwner, undefined, undefined, undefined, strictEquals);\n}\nexport function derivedWithSetter(owner, computeFn, setter) {\n return new DerivedWithSetter(new DebugNameData(owner, undefined, computeFn), computeFn, undefined, undefined, undefined, strictEquals, setter);\n}\nexport function derivedOpts(options, computeFn) {\n var _a;\n return new Derived(new DebugNameData(options.owner, options.debugName, options.debugReferenceFn), computeFn, undefined, undefined, options.onLastObserverRemoved, (_a = options.equalsFn) !== null && _a !== void 0 ? _a : strictEquals);\n}\n_setDerivedOpts(derivedOpts);\n/**\n * Represents an observable that is derived from other observables.\n * The value is only recomputed when absolutely needed.\n *\n * {@link computeFn} should start with a JS Doc using `@description` to name the derived.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The compute function is given the last change summary.\n * The change summary is discarded after the compute function was called.\n *\n * @see derived\n */\nexport function derivedHandleChanges(options, computeFn) {\n var _a;\n return new Derived(new DebugNameData(options.owner, options.debugName, undefined), computeFn, options.createEmptyChangeSummary, options.handleChange, undefined, (_a = options.equalityComparer) !== null && _a !== void 0 ? _a : strictEquals);\n}\nexport function derivedWithStore(computeFnOrOwner, computeFnOrUndefined) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n const store = new DisposableStore();\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n store.clear();\n return computeFn(r, store);\n }, undefined, undefined, () => store.dispose(), strictEquals);\n}\nexport function derivedDisposable(computeFnOrOwner, computeFnOrUndefined) {\n let computeFn;\n let owner;\n if (computeFnOrUndefined === undefined) {\n computeFn = computeFnOrOwner;\n owner = undefined;\n }\n else {\n owner = computeFnOrOwner;\n computeFn = computeFnOrUndefined;\n }\n const store = new DisposableStore();\n return new Derived(new DebugNameData(owner, undefined, computeFn), r => {\n store.clear();\n const result = computeFn(r);\n if (result) {\n store.add(result);\n }\n return result;\n }, undefined, undefined, () => store.dispose(), strictEquals);\n}\nexport class Derived extends BaseObservable {\n get debugName() {\n var _a;\n return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : '(anonymous)';\n }\n constructor(_debugNameData, _computeFn, createChangeSummary, _handleChange, _handleLastObserverRemoved = undefined, _equalityComparator) {\n var _a, _b;\n super();\n this._debugNameData = _debugNameData;\n this._computeFn = _computeFn;\n this.createChangeSummary = createChangeSummary;\n this._handleChange = _handleChange;\n this._handleLastObserverRemoved = _handleLastObserverRemoved;\n this._equalityComparator = _equalityComparator;\n this.state = 0 /* DerivedState.initial */;\n this.value = undefined;\n this.updateCount = 0;\n this.dependencies = new Set();\n this.dependenciesToBeRemoved = new Set();\n this.changeSummary = undefined;\n this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleDerivedCreated(this);\n }\n onLastObserverRemoved() {\n var _a;\n /**\n * We are not tracking changes anymore, thus we have to assume\n * that our cache is invalid.\n */\n this.state = 0 /* DerivedState.initial */;\n this.value = undefined;\n for (const d of this.dependencies) {\n d.removeObserver(this);\n }\n this.dependencies.clear();\n (_a = this._handleLastObserverRemoved) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n get() {\n var _a;\n if (this.observers.size === 0) {\n // Without observers, we don't know when to clean up stuff.\n // Thus, we don't cache anything to prevent memory leaks.\n const result = this._computeFn(this, (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this));\n // Clear new dependencies\n this.onLastObserverRemoved();\n return result;\n }\n else {\n do {\n // We might not get a notification for a dependency that changed while it is updating,\n // thus we also have to ask all our depedencies if they changed in this case.\n if (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n for (const d of this.dependencies) {\n /** might call {@link handleChange} indirectly, which could make us stale */\n d.reportChanges();\n if (this.state === 2 /* DerivedState.stale */) {\n // The other dependencies will refresh on demand, so early break\n break;\n }\n }\n }\n // We called report changes of all dependencies.\n // If we are still not stale, we can assume to be up to date again.\n if (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */) {\n this.state = 3 /* DerivedState.upToDate */;\n }\n this._recomputeIfNeeded();\n // In case recomputation changed one of our dependencies, we need to recompute again.\n } while (this.state !== 3 /* DerivedState.upToDate */);\n return this.value;\n }\n }\n _recomputeIfNeeded() {\n var _a, _b;\n if (this.state === 3 /* DerivedState.upToDate */) {\n return;\n }\n const emptySet = this.dependenciesToBeRemoved;\n this.dependenciesToBeRemoved = this.dependencies;\n this.dependencies = emptySet;\n const hadValue = this.state !== 0 /* DerivedState.initial */;\n const oldValue = this.value;\n this.state = 3 /* DerivedState.upToDate */;\n const changeSummary = this.changeSummary;\n this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n try {\n /** might call {@link handleChange} indirectly, which could invalidate us */\n this.value = this._computeFn(this, changeSummary);\n }\n finally {\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this.dependenciesToBeRemoved) {\n o.removeObserver(this);\n }\n this.dependenciesToBeRemoved.clear();\n }\n const didChange = hadValue && !(this._equalityComparator(oldValue, this.value));\n (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleDerivedRecomputed(this, {\n oldValue,\n newValue: this.value,\n change: undefined,\n didChange,\n hadValue,\n });\n if (didChange) {\n for (const r of this.observers) {\n r.handleChange(this, undefined);\n }\n }\n }\n toString() {\n return `LazyDerived<${this.debugName}>`;\n }\n // IObserver Implementation\n beginUpdate(_observable) {\n this.updateCount++;\n const propagateBeginUpdate = this.updateCount === 1;\n if (this.state === 3 /* DerivedState.upToDate */) {\n this.state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n // If we propagate begin update, that will already signal a possible change.\n if (!propagateBeginUpdate) {\n for (const r of this.observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n if (propagateBeginUpdate) {\n for (const r of this.observers) {\n r.beginUpdate(this); // This signals a possible change\n }\n }\n }\n endUpdate(_observable) {\n this.updateCount--;\n if (this.updateCount === 0) {\n // End update could change the observer list.\n const observers = [...this.observers];\n for (const r of observers) {\n r.endUpdate(this);\n }\n }\n assertFn(() => this.updateCount >= 0);\n }\n handlePossibleChange(observable) {\n // In all other states, observers already know that we might have changed.\n if (this.state === 3 /* DerivedState.upToDate */ && this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n this.state = 1 /* DerivedState.dependenciesMightHaveChanged */;\n for (const r of this.observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n handleChange(observable, change) {\n if (this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n const shouldReact = this._handleChange ? this._handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this.changeSummary) : true;\n const wasUpToDate = this.state === 3 /* DerivedState.upToDate */;\n if (shouldReact && (this.state === 1 /* DerivedState.dependenciesMightHaveChanged */ || wasUpToDate)) {\n this.state = 2 /* DerivedState.stale */;\n if (wasUpToDate) {\n for (const r of this.observers) {\n r.handlePossibleChange(this);\n }\n }\n }\n }\n }\n // IReader Implementation\n readObservable(observable) {\n // Subscribe before getting the value to enable caching\n observable.addObserver(this);\n /** This might call {@link handleChange} indirectly, which could invalidate us */\n const value = observable.get();\n // Which is why we only add the observable to the dependencies now.\n this.dependencies.add(observable);\n this.dependenciesToBeRemoved.delete(observable);\n return value;\n }\n addObserver(observer) {\n const shouldCallBeginUpdate = !this.observers.has(observer) && this.updateCount > 0;\n super.addObserver(observer);\n if (shouldCallBeginUpdate) {\n observer.beginUpdate(this);\n }\n }\n removeObserver(observer) {\n const shouldCallEndUpdate = this.observers.has(observer) && this.updateCount > 0;\n super.removeObserver(observer);\n if (shouldCallEndUpdate) {\n // Calling end update after removing the observer makes sure endUpdate cannot be called twice here.\n observer.endUpdate(this);\n }\n }\n}\nexport class DerivedWithSetter extends Derived {\n constructor(debugNameData, computeFn, createChangeSummary, handleChange, handleLastObserverRemoved = undefined, equalityComparator, set) {\n super(debugNameData, computeFn, createChangeSummary, handleChange, handleLastObserverRemoved, equalityComparator);\n this.set = set;\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cypher/cypher.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"cypher\",\n extensions: [\".cypher\", \".cyp\"],\n aliases: [\"Cypher\", \"OpenCypher\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/cypher/cypher\"], resolve, reject);\n });\n } else {\n return import(\"./cypher.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nexport const USUAL_WORD_SEPARATORS = '`~!@#$%^&*()-=+[{]}\\\\|;:\\'\",.<>/?';\n/**\n * Create a word definition regular expression based on default word separators.\n * Optionally provide allowed separators that should be included in words.\n *\n * The default would look like this:\n * /(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>\\/\\?\\s]+)/g\n */\nfunction createWordRegExp(allowInWords = '') {\n let source = '(-?\\\\d*\\\\.\\\\d\\\\w*)|([^';\n for (const sep of USUAL_WORD_SEPARATORS) {\n if (allowInWords.indexOf(sep) >= 0) {\n continue;\n }\n source += '\\\\' + sep;\n }\n source += '\\\\s]+)';\n return new RegExp(source, 'g');\n}\n// catches numbers (including floating numbers) in the first group, and alphanum in the second\nexport const DEFAULT_WORD_REGEXP = createWordRegExp();\nexport function ensureValidWordDefinition(wordDefinition) {\n let result = DEFAULT_WORD_REGEXP;\n if (wordDefinition && (wordDefinition instanceof RegExp)) {\n if (!wordDefinition.global) {\n let flags = 'g';\n if (wordDefinition.ignoreCase) {\n flags += 'i';\n }\n if (wordDefinition.multiline) {\n flags += 'm';\n }\n if (wordDefinition.unicode) {\n flags += 'u';\n }\n result = new RegExp(wordDefinition.source, flags);\n }\n else {\n result = wordDefinition;\n }\n }\n result.lastIndex = 0;\n return result;\n}\nconst _defaultConfig = new LinkedList();\n_defaultConfig.unshift({\n maxLen: 1000,\n windowSize: 15,\n timeBudget: 150\n});\nexport function getWordAtText(column, wordDefinition, text, textOffset, config) {\n // Ensure the regex has the 'g' flag, otherwise this will loop forever\n wordDefinition = ensureValidWordDefinition(wordDefinition);\n if (!config) {\n config = Iterable.first(_defaultConfig);\n }\n if (text.length > config.maxLen) {\n // don't throw strings that long at the regexp\n // but use a sub-string in which a word must occur\n let start = column - config.maxLen / 2;\n if (start < 0) {\n start = 0;\n }\n else {\n textOffset += start;\n }\n text = text.substring(start, column + config.maxLen / 2);\n return getWordAtText(column, wordDefinition, text, textOffset, config);\n }\n const t1 = Date.now();\n const pos = column - 1 - textOffset;\n let prevRegexIndex = -1;\n let match = null;\n for (let i = 1;; i++) {\n // check time budget\n if (Date.now() - t1 >= config.timeBudget) {\n break;\n }\n // reset the index at which the regexp should start matching, also know where it\n // should stop so that subsequent search don't repeat previous searches\n const regexIndex = pos - config.windowSize * i;\n wordDefinition.lastIndex = Math.max(0, regexIndex);\n const thisMatch = _findRegexMatchEnclosingPosition(wordDefinition, text, pos, prevRegexIndex);\n if (!thisMatch && match) {\n // stop: we have something\n break;\n }\n match = thisMatch;\n // stop: searched at start\n if (regexIndex <= 0) {\n break;\n }\n prevRegexIndex = regexIndex;\n }\n if (match) {\n const result = {\n word: match[0],\n startColumn: textOffset + 1 + match.index,\n endColumn: textOffset + 1 + match.index + match[0].length\n };\n wordDefinition.lastIndex = 0;\n return result;\n }\n return null;\n}\nfunction _findRegexMatchEnclosingPosition(wordDefinition, text, pos, stopPos) {\n let match;\n while (match = wordDefinition.exec(text)) {\n const matchIndex = match.index || 0;\n if (matchIndex <= pos && wordDefinition.lastIndex >= pos) {\n return match;\n }\n else if (stopPos > 0 && matchIndex > stopPos) {\n return null;\n }\n }\n return null;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { localize } from '../../../../nls.js';\nimport { editorSelectionBackground, iconForeground, registerColor, transparent } from '../../../../platform/theme/common/colorRegistry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nimport { themeColorFromId } from '../../../../platform/theme/common/themeService.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nconst foldBackground = registerColor('editor.foldBackground', { light: transparent(editorSelectionBackground, 0.3), dark: transparent(editorSelectionBackground, 0.3), hcDark: null, hcLight: null }, localize('foldBackgroundBackground', \"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations.\"), true);\nregisterColor('editorGutter.foldingControlForeground', { dark: iconForeground, light: iconForeground, hcDark: iconForeground, hcLight: iconForeground }, localize('editorGutter.foldingControlForeground', 'Color of the folding control in the editor gutter.'));\nexport const foldingExpandedIcon = registerIcon('folding-expanded', Codicon.chevronDown, localize('foldingExpandedIcon', 'Icon for expanded ranges in the editor glyph margin.'));\nexport const foldingCollapsedIcon = registerIcon('folding-collapsed', Codicon.chevronRight, localize('foldingCollapsedIcon', 'Icon for collapsed ranges in the editor glyph margin.'));\nexport const foldingManualCollapsedIcon = registerIcon('folding-manual-collapsed', foldingCollapsedIcon, localize('foldingManualCollapedIcon', 'Icon for manually collapsed ranges in the editor glyph margin.'));\nexport const foldingManualExpandedIcon = registerIcon('folding-manual-expanded', foldingExpandedIcon, localize('foldingManualExpandedIcon', 'Icon for manually expanded ranges in the editor glyph margin.'));\nconst foldedBackgroundMinimap = { color: themeColorFromId(foldBackground), position: 1 /* MinimapPosition.Inline */ };\nconst collapsed = localize('linesCollapsed', \"Click to expand the range.\");\nconst expanded = localize('linesExpanded', \"Click to collapse the range.\");\nexport class FoldingDecorationProvider {\n constructor(editor) {\n this.editor = editor;\n this.showFoldingControls = 'mouseover';\n this.showFoldingHighlights = true;\n }\n getDecorationOption(isCollapsed, isHidden, isManual) {\n if (isHidden) { // is inside another collapsed region\n return FoldingDecorationProvider.HIDDEN_RANGE_DECORATION;\n }\n if (this.showFoldingControls === 'never') {\n if (isCollapsed) {\n return this.showFoldingHighlights ? FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION : FoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION;\n }\n return FoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION;\n }\n if (isCollapsed) {\n return isManual ?\n (this.showFoldingHighlights ? FoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION)\n : (this.showFoldingHighlights ? FoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION : FoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION);\n }\n else if (this.showFoldingControls === 'mouseover') {\n return isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION;\n }\n else {\n return isManual ? FoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION : FoldingDecorationProvider.EXPANDED_VISUAL_DECORATION;\n }\n }\n changeDecorations(callback) {\n return this.editor.changeDecorations(callback);\n }\n removeDecorations(decorationIds) {\n this.editor.removeDecorations(decorationIds);\n }\n}\nFoldingDecorationProvider.COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-collapsed-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon),\n});\nFoldingDecorationProvider.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-collapsed-highlighted-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n className: 'folded-background',\n minimap: foldedBackgroundMinimap,\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingCollapsedIcon)\n});\nFoldingDecorationProvider.MANUALLY_COLLAPSED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-manually-collapsed-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n});\nFoldingDecorationProvider.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-manually-collapsed-highlighted-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n className: 'folded-background',\n minimap: foldedBackgroundMinimap,\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualCollapsedIcon)\n});\nFoldingDecorationProvider.NO_CONTROLS_COLLAPSED_RANGE_DECORATION = ModelDecorationOptions.register({\n description: 'folding-no-controls-range-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n});\nFoldingDecorationProvider.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION = ModelDecorationOptions.register({\n description: 'folding-no-controls-range-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n afterContentClassName: 'inline-folded',\n className: 'folded-background',\n minimap: foldedBackgroundMinimap,\n isWholeLine: true,\n linesDecorationsTooltip: collapsed,\n});\nFoldingDecorationProvider.EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-expanded-visual-decoration',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n isWholeLine: true,\n firstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingExpandedIcon),\n linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-expanded-auto-hide-visual-decoration',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n isWholeLine: true,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingExpandedIcon),\n linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.MANUALLY_EXPANDED_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-manually-expanded-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n isWholeLine: true,\n firstLineDecorationClassName: 'alwaysShowFoldIcons ' + ThemeIcon.asClassName(foldingManualExpandedIcon),\n linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION = ModelDecorationOptions.register({\n description: 'folding-manually-expanded-auto-hide-visual-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n isWholeLine: true,\n firstLineDecorationClassName: ThemeIcon.asClassName(foldingManualExpandedIcon),\n linesDecorationsTooltip: expanded,\n});\nFoldingDecorationProvider.NO_CONTROLS_EXPANDED_RANGE_DECORATION = ModelDecorationOptions.register({\n description: 'folding-no-controls-range-decoration',\n stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */,\n isWholeLine: true\n});\nFoldingDecorationProvider.HIDDEN_RANGE_DECORATION = ModelDecorationOptions.register({\n description: 'folding-hidden-range-decoration',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n});\n","import { select, detach } from '@syncfusion/ej2-base';\nimport { VScroll } from './v-scroll';\nimport { HScroll } from './h-scroll';\n/**\n * Used to add scroll in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\n var containerOffset;\n var contentOffset;\n var parentElem = container.parentElement;\n if (scrollType === 'vscroll') {\n containerOffset = offset || container.getBoundingClientRect().height;\n contentOffset = content.getBoundingClientRect().height;\n }\n else {\n containerOffset = container.getBoundingClientRect().width;\n contentOffset = content.getBoundingClientRect().width;\n }\n if (containerOffset < contentOffset) {\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n else if (parentElem) {\n var width = parentElem.getBoundingClientRect().width;\n if (width < containerOffset && scrollType === 'hscroll') {\n contentOffset = width;\n container.style.maxWidth = width + 'px';\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\n }\n return content;\n }\n else {\n return content;\n }\n}\n/**\n * Used to create scroll bar in menu.\n *\n * @param {createElementType} createElement - Specifies the create element model\n * @param {HTMLElement} container - Specifies the element container\n * @param {HTMLElement} content - Specifies the content element\n * @param {string} scrollType - Specifies the scroll type\n * @param {boolean} enableRtl - Specifies the enable RTL property\n * @param {boolean} offset - Specifies the offset value\n * @returns {HTMLElement} - Element\n * @hidden\n */\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\n container.appendChild(scrollEle);\n scrollEle.appendChild(content);\n if (offset) {\n scrollEle.style.overflow = 'hidden';\n scrollEle.style.height = offset + 'px';\n }\n else {\n scrollEle.style.maxHeight = container.style.maxHeight;\n container.style.overflow = 'hidden';\n }\n var scrollObj;\n if (scrollType === 'vscroll') {\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\n }\n else {\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\n }\n return scrollEle;\n}\n/**\n * Used to destroy the scroll option.\n *\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\n * @param {Element} element - Specifies the element\n * @param {HTMLElement} skipEle - Specifies the skip element\n * @returns {void}\n * @hidden\n */\nexport function destroyScroll(scrollObj, element, skipEle) {\n if (scrollObj) {\n var menu = select('.e-menu-parent', element);\n if (menu) {\n if (!skipEle || skipEle === menu) {\n scrollObj.destroy();\n element.parentElement.appendChild(menu);\n detach(element);\n }\n }\n else {\n scrollObj.destroy();\n detach(element);\n }\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\nimport { Animation } from '@syncfusion/ej2-base';\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { ListBase } from '@syncfusion/ej2-lists';\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\nimport { HScroll } from '../common/h-scroll';\nimport { VScroll } from '../common/v-scroll';\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\nvar ENTER = 'enter';\nvar ESCAPE = 'escape';\nvar FOCUSED = 'e-focused';\nvar HEADER = 'e-menu-header';\nvar SELECTED = 'e-selected';\nvar SEPARATOR = 'e-separator';\nvar UPARROW = 'uparrow';\nvar DOWNARROW = 'downarrow';\nvar LEFTARROW = 'leftarrow';\nvar RIGHTARROW = 'rightarrow';\nvar HOME = 'home';\nvar END = 'end';\nvar TAB = 'tab';\nvar CARET = 'e-caret';\nvar ITEM = 'e-menu-item';\nvar DISABLED = 'e-disabled';\nvar HIDE = 'e-menu-hide';\nvar ICONS = 'e-icons';\nvar RTL = 'e-rtl';\nvar POPUP = 'e-menu-popup';\nvar TEMPLATE_PROPERTY = 'Template';\n/**\n * Configures the field options of the Menu.\n */\nvar FieldSettings = /** @class */ (function (_super) {\n __extends(FieldSettings, _super);\n function FieldSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('id')\n ], FieldSettings.prototype, \"itemId\", void 0);\n __decorate([\n Property('parentId')\n ], FieldSettings.prototype, \"parentId\", void 0);\n __decorate([\n Property('text')\n ], FieldSettings.prototype, \"text\", void 0);\n __decorate([\n Property('iconCss')\n ], FieldSettings.prototype, \"iconCss\", void 0);\n __decorate([\n Property('url')\n ], FieldSettings.prototype, \"url\", void 0);\n __decorate([\n Property('separator')\n ], FieldSettings.prototype, \"separator\", void 0);\n __decorate([\n Property('items')\n ], FieldSettings.prototype, \"children\", void 0);\n return FieldSettings;\n}(ChildProperty));\nexport { FieldSettings };\n/**\n * Specifies menu items.\n */\nvar MenuItem = /** @class */ (function (_super) {\n __extends(MenuItem, _super);\n function MenuItem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], MenuItem.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], MenuItem.prototype, \"separator\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuItem.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], MenuItem.prototype, \"url\", void 0);\n return MenuItem;\n}(ChildProperty));\nexport { MenuItem };\n/**\n * Animation configuration settings.\n */\nvar MenuAnimationSettings = /** @class */ (function (_super) {\n __extends(MenuAnimationSettings, _super);\n function MenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\n return MenuAnimationSettings;\n}(ChildProperty));\nexport { MenuAnimationSettings };\n/**\n * Base class for Menu and ContextMenu components.\n *\n * @private\n */\nvar MenuBase = /** @class */ (function (_super) {\n __extends(MenuBase, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {MenuBaseModel} options - Specifies the menu base model\n * @param {string | HTMLUListElement} element - Specifies the element\n */\n function MenuBase(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.navIdx = [];\n _this.animation = new Animation({});\n _this.isTapHold = false;\n _this.tempItem = [];\n _this.showSubMenuOn = 'Auto';\n _this.isAnimationNone = false;\n return _this;\n }\n /**\n * Initialized third party configuration settings.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.preRender = function () {\n if (!this.isMenu) {\n var ul = void 0;\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\n ul = this.createElement('ul', {\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\n });\n var ejInst = getValue('ej2_instances', this.element);\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.clonedElement = this.element;\n this.element = ul;\n setValue('ej2_instances', ejInst, this.element);\n }\n else {\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\n append([].slice.call(this.element.cloneNode(true).children), ul);\n var refEle = this.element.nextElementSibling;\n if (refEle) {\n this.element.parentElement.insertBefore(ul, refEle);\n }\n else {\n this.element.parentElement.appendChild(ul);\n }\n this.clonedElement = ul;\n }\n this.clonedElement.style.display = 'none';\n }\n if (this.element.tagName === 'EJS-MENU') {\n var ele = this.element;\n var ejInstance = getValue('ej2_instances', ele);\n var ul = this.createElement('ul');\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = ul;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.clonedElement = wrapper;\n this.element = ele;\n if (!this.element.id) {\n this.element.id = getUniqueID(this.getModuleName());\n }\n }\n };\n /**\n * Initialize the control rendering.\n *\n * @private\n * @returns {void}\n */\n MenuBase.prototype.render = function () {\n var _this = this;\n this.initialize();\n this.renderItems();\n this.wireEvents();\n this.renderComplete();\n var wrapper = this.getWrapper();\n // eslint-disable-next-line\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\n requestAnimationFrame(function () {\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\n });\n }\n };\n MenuBase.prototype.initialize = function () {\n var wrapper = this.getWrapper();\n if (!wrapper) {\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n if (this.isMenu) {\n this.element.parentElement.insertBefore(wrapper, this.element);\n }\n else {\n document.body.appendChild(wrapper);\n }\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n wrapper.appendChild(this.element);\n if (this.isMenu && this.hamburgerMode) {\n if (!this.target) {\n this.createHeaderContainer(wrapper);\n }\n }\n this.defaultOption = this.showItemOnClick;\n };\n MenuBase.prototype.renderItems = function () {\n if (!this.items.length) {\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\n this.setProperties({ items: items }, true);\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n }\n var ul = this.createItems(this.items);\n append(Array.prototype.slice.call(ul.children), this.element);\n this.element.classList.add('e-menu-parent');\n if (this.isMenu) {\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\n this.setBlankIconStyle(this.element);\n }\n if (this.enableScrolling) {\n var wrapper = this.getWrapper();\n if (this.element.classList.contains('e-vertical')) {\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\n }\n else {\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\n }\n }\n }\n else {\n this.element.parentElement.setAttribute('role', 'dialog');\n this.element.parentElement.setAttribute('aria-label', 'context menu');\n }\n };\n MenuBase.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n if (this.target) {\n var target = void 0;\n var targetElems = selectAll(this.target);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\n }\n else {\n if (Browser.isIos) {\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\n }\n else {\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\n }\n }\n }\n this.targetElement = target;\n if (!this.isMenu) {\n EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);\n }\n }\n }\n if (!Browser.isDevice) {\n this.delegateMoverHandler = this.moverHandler.bind(this);\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\n if (!this.isMenu && !this.target) {\n EventHandler.add(document, 'scroll', this.scrollHandler, this);\n }\n }\n this.delegateClickHandler = this.clickHandler.bind(this);\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\n this.wireKeyboardEvent(wrapper);\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\n };\n MenuBase.prototype.wireKeyboardEvent = function (element) {\n var keyConfigs = {\n downarrow: DOWNARROW,\n uparrow: UPARROW,\n enter: ENTER,\n leftarrow: LEFTARROW,\n rightarrow: RIGHTARROW,\n escape: ESCAPE\n };\n if (this.isMenu) {\n keyConfigs.home = HOME;\n keyConfigs.end = END;\n keyConfigs.tab = TAB;\n }\n new KeyboardEvents(element, {\n keyAction: this.keyBoardHandler.bind(this),\n keyConfigs: keyConfigs\n });\n };\n MenuBase.prototype.mouseDownHandler = function (e) {\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\n }\n };\n MenuBase.prototype.keyHandler = function (e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n if (e.target && (e.target.classList.contains('e-contextmenu') || e.target.classList.contains('e-menu-item'))) {\n e.preventDefault();\n }\n }\n };\n MenuBase.prototype.keyBoardHandler = function (e) {\n var actionName = '';\n var trgt = e.target;\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\n && this.navIdx.length < 1;\n e.preventDefault();\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\n }\n if (actionNeeded) {\n switch (e.action) {\n case RIGHTARROW:\n actionName = RIGHTARROW;\n e.action = DOWNARROW;\n break;\n case LEFTARROW:\n actionName = LEFTARROW;\n e.action = UPARROW;\n break;\n case DOWNARROW:\n actionName = DOWNARROW;\n e.action = RIGHTARROW;\n break;\n case UPARROW:\n actionName = UPARROW;\n e.action = '';\n break;\n }\n }\n else if (this.enableRtl) {\n switch (e.action) {\n case LEFTARROW:\n actionNeeded = true;\n actionName = LEFTARROW;\n e.action = RIGHTARROW;\n break;\n case RIGHTARROW:\n actionNeeded = true;\n actionName = RIGHTARROW;\n e.action = LEFTARROW;\n break;\n }\n }\n switch (e.action) {\n case DOWNARROW:\n case UPARROW:\n case END:\n case HOME:\n case TAB:\n this.upDownKeyHandler(e);\n break;\n case RIGHTARROW:\n this.rightEnterKeyHandler(e);\n break;\n case LEFTARROW:\n this.leftEscKeyHandler(e);\n break;\n case ENTER:\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n this.rightEnterKeyHandler(e);\n }\n break;\n case ESCAPE:\n this.leftEscKeyHandler(e);\n break;\n }\n if (actionNeeded) {\n e.action = actionName;\n }\n };\n MenuBase.prototype.upDownKeyHandler = function (e) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME || e.action === TAB) ? 0 : cul.childElementCount - 1;\n var fliIdx = defaultIdx;\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n if (e.action !== END && e.action !== HOME) {\n fliIdx = this.getIdx(cul, fli);\n }\n fli.classList.remove(FOCUSED);\n if (e.action !== END && e.action !== HOME) {\n if (e.action === DOWNARROW) {\n fliIdx++;\n }\n else {\n fliIdx--;\n }\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\n fliIdx = defaultIdx;\n }\n }\n }\n var cli = cul.children[fliIdx];\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\n cul.children[fliIdx].classList.add(FOCUSED);\n cul.children[fliIdx].focus();\n };\n MenuBase.prototype.isValidLI = function (cli, index, action) {\n var cul = this.getUlByNavIdx();\n var defaultIdx = (action === DOWNARROW || action === HOME || action === TAB) ? 0 : cul.childElementCount - 1;\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\n if (action === DOWNARROW && index === cul.childElementCount - 1) {\n index = defaultIdx;\n }\n else if (action === UPARROW && index === 0) {\n index = defaultIdx;\n }\n else if ((action === DOWNARROW) || (action === RIGHTARROW)) {\n index++;\n }\n else if (action === 'tab' && cli.classList.contains(SEPARATOR)) {\n index++;\n }\n else {\n index--;\n }\n }\n cli = cul.children[index];\n if (cli && (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE))) {\n index = this.isValidLI(cli, index, action);\n }\n return index;\n };\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\n var _this = this;\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\n if (this.isMenu) {\n var popup = [this.getWrapper()].concat([].slice.call(selectAll('.' + POPUP)))[navIdxLen];\n var popups_1 = [];\n var allPopup = selectAll('.' + POPUP);\n allPopup.forEach(function (elem) {\n if (_this.element.id === elem.id.split('-')[2] || elem.id.split('-')[2] + '-' + elem.id.split('-')[3]) {\n popups_1.push(elem);\n }\n });\n popup = [this.getWrapper()].concat([].slice.call(popups_1))[navIdxLen];\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\n }\n else {\n if (!document.body.contains(this.element) && navIdxLen === 0) {\n return null;\n }\n return this.getWrapper().children[navIdxLen];\n }\n };\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\n var eventArgs;\n var cul = this.getUlByNavIdx();\n var fli = this.getLIByClass(cul, FOCUSED);\n if (fli) {\n var fliIdx = this.getIdx(cul, fli);\n var navIdx = this.navIdx.concat(fliIdx);\n var item = this.getItem(navIdx);\n if (item.items.length) {\n this.navIdx.push(fliIdx);\n this.keyType = 'right';\n this.action = e.action;\n this.openMenu(fli, item, -1, -1, e);\n }\n else {\n if (e.action === ENTER) {\n if (this.isMenu && this.navIdx.length === 0) {\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\n }\n else {\n fli.classList.remove(FOCUSED);\n }\n fli.classList.add(SELECTED);\n eventArgs = { element: fli, item: item, event: e };\n this.trigger('select', eventArgs);\n var aEle = fli.querySelector('.e-menu-url');\n if (item.url && aEle) {\n switch (aEle.getAttribute('target')) {\n case '_blank':\n window.open(item.url, '_blank');\n break;\n case '_parent':\n window.parent.location.href = item.url;\n break;\n default:\n window.location.href = item.url;\n }\n }\n this.closeMenu(null, e);\n var sli = this.getLIByClass(this.getUlByNavIdx(), SELECTED);\n if (sli) {\n sli.classList.add(FOCUSED);\n sli.focus();\n }\n }\n }\n }\n };\n MenuBase.prototype.leftEscKeyHandler = function (e) {\n if (this.navIdx.length) {\n this.keyType = 'left';\n this.closeMenu(this.navIdx.length, e);\n }\n else {\n if (e.action === ESCAPE) {\n this.closeMenu(null, e);\n }\n }\n };\n MenuBase.prototype.scrollHandler = function (e) {\n this.closeMenu(null, e);\n };\n MenuBase.prototype.touchHandler = function (e) {\n this.isTapHold = true;\n this.cmenuHandler(e.originalEvent);\n };\n MenuBase.prototype.cmenuHandler = function (e) {\n e.preventDefault();\n this.currentTarget = e.target;\n this.isCMenu = true;\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\n this.closeMenu(null, e);\n if (this.isCMenu) {\n if (this.canOpen(e.target)) {\n this.openMenu(null, null, this.pageY, this.pageX, e);\n }\n this.isCMenu = false;\n }\n };\n // eslint:disable-next-line:max-func-body-length\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\n var _this = this;\n if (ulIndex === void 0) { ulIndex = 0; }\n if (e === void 0) { e = null; }\n if (this.isMenuVisible()) {\n var sli = void 0;\n var item_1;\n var wrapper_1 = this.getWrapper();\n var beforeCloseArgs = void 0;\n var items_1;\n var popups = this.getPopups();\n var isClose = false;\n var cnt = this.isMenu ? popups.length + 1 : wrapper_1.childElementCount;\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\n : selectAll('.e-menu-parent', wrapper_1)[cnt - 1];\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\n sli = this.getLIByClass(ul_1, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n isClose = true;\n }\n if (!isClose) {\n var liElem_1 = e && e.target && this.getLI(e.target);\n if (liElem_1) {\n this.cli = liElem_1;\n }\n else {\n this.cli = ul_1.children[0];\n }\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\n items_1 = item_1 ? item_1.items : this.items;\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\n var popupEle;\n var closeArgs;\n var popupId = '';\n var popupObj;\n var isOpen = !observedCloseArgs.cancel;\n if (isOpen || _this.isCMenu) {\n if (_this.isMenu) {\n popupEle = closest(ul_1, '.' + POPUP);\n if (_this.hamburgerMode) {\n popupEle.parentElement.style.minHeight = '';\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\n }\n _this.unWireKeyboardEvent(popupEle);\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\n popupObj = getInstance(popupEle, Popup);\n popupObj.hide();\n popupId = popupEle.id;\n popupObj.destroy();\n detach(popupEle);\n }\n else {\n _this.isContextMenuClosed = false;\n _this.toggleAnimation(ul_1, false);\n }\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\n _this.trigger('onClose', closeArgs);\n _this.navIdx.pop();\n if (_this.navIdx.length === 0 && e && e.type === 'keyup') {\n _this.showSubMenu = false;\n }\n if (!_this.isMenu) {\n EventHandler.remove(ul_1, 'keydown', _this.keyHandler);\n if (_this.keyType === 'right') {\n _this.keyType = '';\n }\n }\n }\n _this.updateReactTemplate();\n var trgtliId;\n var closedLi;\n var trgtLi;\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\n if (_this.isCMenu) {\n if (_this.canOpen(e.target)) {\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\n }\n _this.isCMenu = false;\n }\n if (_this.isMenu && trgtpopUp && popupId.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n trgtliId = new regExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n else if (trgtpopUp) {\n closedLi = trgtpopUp.querySelector('.e-menu-item.e-selected');\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\n }\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\n _this.afterCloseMenu(e);\n }\n else if (isOpen && !_this.hamburgerMode && closedLi && !trgtLi && _this.keyType !== 'left' && (_this.navIdx.length || !_this.isMenu && _this.navIdx.length === 0)) {\n var ele = (e && e.target.classList && (e.target.classList.contains('e-vscroll') || e.target.classList.contains('e-scroll-nav')))\n ? closest(e.target, '.e-menu-wrapper') : null;\n if (ele) {\n ele = ele.querySelector('.e-menu-item');\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\n }\n }\n else {\n if (!(e && e.target.classList && e.target.classList.contains('e-nav-arrow'))) {\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\n }\n }\n }\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\n _this.navIdx.length === 1 && liElem_1 && trgtpopUp !== liElem_1.parentElement)) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\n _this.closeMenu(null, e);\n }\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 &&\n !_this.isMenusClosed && !_this.isCmenuHover) {\n _this.isMenusClosed = true;\n _this.closeMenu(0, e);\n }\n else if (isOpen && _this.isMenu && e && e.target &&\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\n _this.closeMenu(0, e);\n }\n else if (isOpen && !_this.isMenu && selectAll('.e-menu-parent', wrapper_1)[ulIndex - 1] && e.which === 3) {\n _this.closeMenu(null, e);\n }\n else {\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\n _this.afterCloseMenu(e);\n }\n else {\n var cul = _this.getUlByNavIdx();\n var sli_1 = _this.getLIByClass(cul, SELECTED);\n if (sli_1) {\n sli_1.setAttribute('aria-expanded', 'false');\n sli_1.classList.remove(SELECTED);\n if (observedCloseArgs.isFocused && liElem_1 || _this.keyType === 'left') {\n sli_1.classList.add(FOCUSED);\n if (!e.target || !e.target.classList.contains('e-edit-template')) {\n sli_1.focus();\n }\n }\n }\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\n liElem_1.getAttribute('aria-haspopup') === 'true') {\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\n _this.navIdx = [];\n }\n else {\n _this.navIdx.pop();\n }\n _this.navIdx.push(_this.cliIdx);\n var item_2 = _this.getItem(_this.navIdx);\n liElem_1.setAttribute('aria-expanded', 'true');\n _this.openMenu(liElem_1, item_2, -1, -1, e);\n }\n }\n if (_this.navIdx.length < 1) {\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\n _this.showItemOnClick = _this.defaultOption;\n _this.showSubMenuOn = 'Auto';\n }\n }\n }\n _this.removeStateWrapper();\n });\n }\n }\n };\n MenuBase.prototype.updateReactTemplate = function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && this.template && this.navIdx.length === 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var portals = void 0;\n if (this.portals) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n portals = this.portals.splice(0, this.items.length);\n }\n this.clearTemplate(['template']);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.portals = portals;\n this.renderReactTemplates();\n }\n };\n MenuBase.prototype.getMenuItemModel = function (item, level) {\n if (isNullOrUndefined(item)) {\n return null;\n }\n if (isNullOrUndefined(level)) {\n level = 0;\n }\n var fields = this.getFields(level);\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\n iconCss: item[fields.iconCss], url: item[fields.url] };\n };\n MenuBase.prototype.getPopups = function () {\n var _this = this;\n var popups = [];\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\n popups.push(elem);\n }\n });\n return popups;\n };\n MenuBase.prototype.isMenuVisible = function () {\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\n };\n MenuBase.prototype.canOpen = function (target) {\n var canOpen = true;\n if (this.filter) {\n canOpen = false;\n var filter = this.filter.split(' ');\n for (var i = 0, len = filter.length; i < len; i++) {\n if (closest(target, '.' + filter[i])) {\n canOpen = true;\n break;\n }\n }\n }\n return canOpen;\n };\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\n var _this = this;\n if (top === void 0) { top = 0; }\n if (left === void 0) { left = 0; }\n if (e === void 0) { e = null; }\n if (target === void 0) { target = this.targetElement; }\n var wrapper = this.getWrapper();\n this.lItem = li;\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\n this.isMenusClosed = false;\n if (isNullOrUndefined(top)) {\n top = -1;\n }\n if (isNullOrUndefined(left)) {\n left = -1;\n }\n if (li) {\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\n if (!this.isMenu && Browser.isDevice) {\n wrapper.lastChild.style.display = 'none';\n var data = {\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\n };\n var hdata = new MenuItem(this.items[0], 'items', data, true);\n var hli = this.createItems([hdata]).children[0];\n hli.classList.add(HEADER);\n this.uList.insertBefore(hli, this.uList.children[0]);\n }\n if (this.isMenu) {\n this.popupWrapper = this.createElement('div', {\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\n });\n if (this.hamburgerMode) {\n top = li.offsetHeight;\n li.appendChild(this.popupWrapper);\n }\n else {\n document.body.appendChild(this.popupWrapper);\n }\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\n if (this.template) {\n this.renderReactTemplates();\n }\n if (this.hamburgerMode) {\n this.calculateIndentSize(this.uList, li);\n }\n else {\n if (this.cssClass) {\n addClass([this.popupWrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.popupObj.hide();\n }\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\n }\n }\n else {\n this.uList.style.zIndex = this.element.style.zIndex;\n wrapper.appendChild(this.uList);\n if (!this.showItemOnClick && this.hoverDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n }\n else {\n this.uList = this.element;\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\n if (isNullOrUndefined(e)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ev = document.createEvent('MouseEvents');\n ev.initEvent('click', true, false);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var targetEvent = this.copyObject(ev, {});\n targetEvent.target = targetEvent.srcElement = target;\n targetEvent.currentTarget = target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.triggerBeforeOpen(li, this.uList, item, targetEvent, top, left, 'none');\n }\n else {\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n MenuBase.prototype.copyObject = function (source, destination) {\n // eslint-disable-next-line guard-for-in\n for (var prop in source) {\n destination[\"\" + prop] = source[\"\" + prop];\n }\n return destination;\n };\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\n var liStyle = getComputedStyle(li);\n var liIndent = parseInt(liStyle.textIndent, 10);\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\n liIndent *= 2;\n }\n else {\n liIndent += (liIndent / 4);\n }\n ul.style.textIndent = liIndent + 'px';\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\n if (blankIconElem && blankIconElem.length) {\n var menuIconElem = ul.querySelector('.e-menu-icon');\n var menuIconElemStyle = getComputedStyle(menuIconElem);\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\n for (var i = 0; i < blankIconElem.length; i++) {\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\n }\n }\n };\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\n var _this = this;\n var popupObj = new Popup(popupWrapper, {\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\n relateTo: li,\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n enableRtl: this.enableRtl,\n content: ul,\n open: function () {\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\n if (scrollEle) {\n scrollEle.style.height = 'inherit';\n scrollEle.style.maxHeight = '';\n }\n var ul = select('.e-ul', popupObj.element);\n popupObj.element.style.maxHeight = '';\n ul.focus();\n _this.triggerOpen(ul);\n }\n });\n return popupObj;\n };\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\n wrapper = wrapper || this.getWrapper();\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\n var spanTitle = this.createElement('span', {\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\n });\n var spanIcon = this.createElement('span', {\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\n });\n spanElem.appendChild(spanTitle);\n spanElem.appendChild(spanIcon);\n wrapper.insertBefore(spanElem, this.element);\n };\n MenuBase.prototype.openHamburgerMenu = function (e) {\n if (this.hamburgerMode) {\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\n }\n };\n MenuBase.prototype.closeHamburgerMenu = function (e) {\n var _this = this;\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\n items: this.items, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\n if (!observedHamburgerCloseArgs.cancel) {\n _this.closeMenu(null, e);\n _this.element.classList.add('e-hide-menu');\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\n }\n });\n };\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\n };\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\n var _this = this;\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\n var eventArgs = {\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\n };\n var menuType = type;\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\n switch (menuType) {\n case 'menu':\n if (!_this.hamburgerMode) {\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\n _this.showItemOnClick = !_this.defaultOption;\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\n }\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n }\n _this.popupWrapper.style.display = 'block';\n if (!_this.hamburgerMode) {\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\n if (_this.enableScrolling) {\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\n }\n _this.checkScrollOffset(e);\n }\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\n _this.popupObj.refreshPosition(_this.lItem, true);\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\n if (_this.enableRtl) {\n _this.left =\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\n }\n // eslint-disable-next-line\n if (_this.template && (_this.isReact || _this.isAngular)) {\n requestAnimationFrame(function () {\n _this.collision();\n _this.popupWrapper.style.display = '';\n });\n }\n else {\n _this.collision();\n _this.popupWrapper.style.display = '';\n }\n }\n else {\n _this.popupObj.collision = { X: 'none', Y: 'none' };\n _this.popupWrapper.style.display = '';\n }\n break;\n case 'none':\n _this.top = observedOpenArgs.top;\n _this.left = observedOpenArgs.left;\n _this.isContextMenuClosed = true;\n break;\n case 'hamburger':\n if (!observedOpenArgs.cancel) {\n _this.element.classList.remove('e-hide-menu');\n _this.triggerOpen(_this.element);\n }\n break;\n }\n if (menuType !== 'hamburger') {\n if (observedOpenArgs.cancel) {\n if (_this.isMenu) {\n _this.popupObj.destroy();\n detach(_this.popupWrapper);\n }\n else if (ul.className.indexOf('e-ul') > -1) {\n detach(ul);\n }\n _this.navIdx.pop();\n }\n else {\n if (_this.isMenu) {\n if (_this.hamburgerMode) {\n _this.popupWrapper.style.top = _this.top + 'px';\n _this.popupWrapper.style.left = 0 + 'px';\n _this.toggleAnimation(_this.popupWrapper);\n }\n else {\n _this.setBlankIconStyle(_this.popupWrapper);\n _this.wireKeyboardEvent(_this.popupWrapper);\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\n _this.popupWrapper.style.left = _this.left + 'px';\n _this.popupWrapper.style.top = _this.top + 'px';\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n _this.popupObj.show(animationOptions, _this.lItem);\n }\n }\n else {\n _this.setBlankIconStyle(_this.uList);\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\n _this.toggleAnimation(_this.uList);\n }\n }\n }\n if (_this.keyType === 'right') {\n var cul = _this.getUlByNavIdx();\n li.classList.remove(FOCUSED);\n if (_this.isMenu && _this.navIdx.length === 1) {\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\n }\n li.classList.add(SELECTED);\n if (_this.action === ENTER) {\n var eventArgs_1 = { element: li, item: item, event: e };\n _this.trigger('select', eventArgs_1);\n }\n li.focus();\n cul = _this.getUlByNavIdx();\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\n cul.children[index].classList.add(FOCUSED);\n cul.children[index].focus();\n }\n });\n };\n MenuBase.prototype.collision = function () {\n var collide;\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\n || collide.indexOf('left') > -1)) {\n this.popupObj.collision.X = 'none';\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\n this.left =\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\n }\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\n }\n this.popupWrapper.style.left = this.left + 'px';\n };\n MenuBase.prototype.setBlankIconStyle = function (menu) {\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\n if (!blankIconList.length) {\n return;\n }\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\n if (!iconLi) {\n return;\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n if (!icon) {\n return;\n }\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\n { padding: 'paddingLeft', margin: 'marginRight' };\n var iconCssProps = getComputedStyle(icon);\n var iconSize = parseInt(iconCssProps.fontSize, 10);\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\n iconSize = parseInt(iconCssProps.width, 10);\n }\n // eslint:disable\n var size = iconSize + parseInt(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\n blankIconList.forEach(function (li) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n li.style[cssProp.padding] = size;\n });\n // eslint:enable\n };\n MenuBase.prototype.checkScrollOffset = function (e) {\n var wrapper = this.getWrapper();\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\n var offsetEle = select('.e-hscroll-bar', wrapper);\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\n }\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\n if (offsetLeft < offsetRight) {\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\n }\n }\n };\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\n var px = 'px';\n this.toggleVisiblity(ul);\n if (ul === this.element || (left > -1 && top > -1)) {\n var collide = isCollide(ul, null, left, top);\n if (collide.indexOf('right') > -1) {\n left = left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n var offset = this.callFit(ul, false, true, top, left);\n top = offset.top - 20;\n if (top < 0) {\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\n if (newTop > -1) {\n top = newTop;\n }\n }\n }\n collide = isCollide(ul, null, left, top);\n if (collide.indexOf('left') > -1) {\n var offset = this.callFit(ul, true, false, top, left);\n left = offset.left;\n }\n }\n else {\n if (Browser.isDevice) {\n top = Number(this.element.style.top.replace(px, ''));\n left = Number(this.element.style.left.replace(px, ''));\n }\n else {\n var x = this.enableRtl ? 'left' : 'right';\n var offset = calculatePosition(li, x, 'top');\n top = offset.top;\n left = offset.left;\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\n if (xCollision) {\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\n left = offset.left;\n }\n if (this.enableRtl || xCollision) {\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\n }\n if (collide.indexOf('bottom') > -1) {\n offset = this.callFit(ul, false, true, top, left);\n top = offset.top;\n }\n }\n }\n this.toggleVisiblity(ul, false);\n ul.style.top = top + px;\n ul.style.left = left + px;\n };\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\n if (isVisible === void 0) { isVisible = true; }\n ul.style.visibility = isVisible ? 'hidden' : '';\n ul.style.display = isVisible ? 'block' : 'none';\n };\n MenuBase.prototype.createItems = function (items) {\n var _this = this;\n var level = this.navIdx ? this.navIdx.length : 0;\n var fields = this.getFields(level);\n var showIcon = this.hasField(items, this.getField('iconCss', level));\n var listBaseOptions = {\n showIcon: showIcon,\n moduleName: 'menu',\n fields: fields,\n template: this.template,\n itemNavigable: true,\n itemCreating: function (args) {\n if (!args.curData[args.fields[fields.id]]) {\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\n }\n if (isNullOrUndefined(args.curData.htmlAttributes)) {\n args.curData.htmlAttributes = {};\n }\n if (Browser.isIE) {\n args.curData.htmlAttributes.role = 'menuitem';\n args.curData.htmlAttributes.tabindex = '-1';\n }\n else {\n Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });\n }\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?\n args.curData[args.fields.text] : args.curData[args.fields.id];\n }\n if (args.curData[args.fields[fields.iconCss]] === '') {\n args.curData[args.fields[fields.iconCss]] = null;\n }\n },\n itemCreated: function (args) {\n if (args.curData[_this.getField('separator', level)]) {\n args.item.classList.add(SEPARATOR);\n args.item.setAttribute('role', 'separator');\n }\n if (showIcon && !args.curData[args.fields.iconCss]\n && !args.curData[_this.getField('separator', level)]) {\n args.item.classList.add('e-blankicon');\n }\n if (args.curData[args.fields.child]\n && args.curData[args.fields.child].length) {\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\n args.item.appendChild(span);\n args.item.setAttribute('aria-haspopup', 'true');\n args.item.setAttribute('aria-expanded', 'false');\n args.item.classList.add('e-menu-caret-icon');\n }\n if (_this.isMenu && _this.template) {\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\n args.item.removeAttribute('data-uid');\n if (args.item.classList.contains('e-level-1')) {\n args.item.classList.remove('e-level-1');\n }\n if (args.item.classList.contains('e-has-child')) {\n args.item.classList.remove('e-has-child');\n }\n args.item.removeAttribute('aria-level');\n }\n var eventArgs = { item: args.curData, element: args.item };\n _this.trigger('beforeItemRender', eventArgs);\n }\n };\n this.setProperties({ 'items': this.items }, true);\n if (this.isMenu) {\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\n }\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\n ul.setAttribute('tabindex', '0');\n if (this.isMenu) {\n ul.setAttribute('role', 'menu');\n }\n else {\n ul.setAttribute('role', 'menubar');\n }\n return ul;\n };\n MenuBase.prototype.moverHandler = function (e) {\n var trgt = e.target;\n this.liTrgt = trgt;\n if (!this.isMenu) {\n this.isCmenuHover = true;\n }\n var cli = this.getLI(trgt);\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\n var hdrWrapper = this.getWrapper();\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var ulId;\n var isDifferentElem = false;\n if (!wrapper) {\n return;\n }\n if (wrapper.id !== '') {\n ulId = regex.exec(wrapper.id)[1];\n }\n else {\n ulId = wrapper.querySelector('ul').id;\n }\n if (ulId !== this.element.id) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\n if (this.navIdx.length) {\n isDifferentElem = true;\n }\n else {\n return;\n }\n }\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\n cli.classList.add(FOCUSED);\n if (!this.showItemOnClick) {\n this.clickHandler(e);\n }\n }\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n }\n if (this.isMenu) {\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\n this.removeLIStateByClass([FOCUSED], [wrapper]);\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n else if (isDifferentElem && !this.showItemOnClick) {\n if (this.navIdx.length) {\n this.isClosed = true;\n this.closeMenu(null, e);\n }\n }\n if (!this.isClosed) {\n this.removeStateWrapper();\n }\n this.isClosed = false;\n }\n if (!this.isMenu) {\n this.isCmenuHover = false;\n }\n };\n MenuBase.prototype.removeStateWrapper = function () {\n if (this.liTrgt) {\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\n }\n }\n };\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\n var li;\n var _loop_1 = function (i) {\n classList.forEach(function (className) {\n li = select('.' + className, element[i]);\n if (li) {\n li.classList.remove(className);\n }\n });\n };\n for (var i = 0; i < element.length; i++) {\n _loop_1(i);\n }\n };\n MenuBase.prototype.getField = function (propName, level) {\n if (level === void 0) { level = 0; }\n var fieldName = this.fields[\"\" + propName];\n return typeof fieldName === 'string' ? fieldName :\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\n : fieldName[level].toString());\n };\n MenuBase.prototype.getFields = function (level) {\n if (level === void 0) { level = 0; }\n return {\n id: this.getField('itemId', level),\n iconCss: this.getField('iconCss', level),\n text: this.getField('text', level),\n url: this.getField('url', level),\n child: this.getField('children', level),\n separator: this.getField('separator', level)\n };\n };\n MenuBase.prototype.hasField = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\n var menuWrapper = closest(e.target, '.e-menu-wrapper');\n if (menuWrapper && menuWrapper.querySelector('ul.e-menu-parent').id !== this.element.id) {\n return;\n }\n if (this.element.className.indexOf('e-hide-menu') > -1) {\n this.openHamburgerMenu(e);\n }\n else {\n this.closeHamburgerMenu(e);\n }\n };\n MenuBase.prototype.clickHandler = function (e) {\n this.isTapHold = this.isTapHold ? false : this.isTapHold;\n var wrapper = this.getWrapper();\n var trgt = e.target;\n var cli = this.cli = this.getLI(trgt);\n var regex = new RegExp('-ej2menu-(.*)-popup');\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\n if (Browser.isDevice && this.isMenu) {\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\n this.mouseDownHandler(e);\n }\n if (cli && cliWrapper && this.isMenu) {\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\n if (this.element.id !== cliWrapperId) {\n return;\n }\n }\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\n this.setLISelected(cli);\n var navIdx = this.getIndex(cli.id, true);\n var item = this.getItem(navIdx);\n var eventArgs = { element: cli, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\n var ul = void 0;\n if (cli.classList.contains(HEADER)) {\n ul = wrapper.children[this.navIdx.length - 1];\n this.toggleAnimation(ul);\n var sli = this.getLIByClass(ul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n detach(cli.parentNode);\n this.navIdx.pop();\n }\n else {\n if (!cli.classList.contains(SEPARATOR)) {\n this.showSubMenu = true;\n var cul = cli.parentNode;\n if (isNullOrUndefined(cul)) {\n return;\n }\n this.cliIdx = this.getIdx(cul, cli);\n if (this.isMenu || !Browser.isDevice) {\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\n : this.getIdx(wrapper, cul);\n if (this.navIdx[culIdx] === this.cliIdx) {\n this.showSubMenu = false;\n }\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n this.isClosed = true;\n this.keyType = 'click';\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n if (!this.isMenu) {\n this.isCmenuHover = true;\n }\n }\n this.closeMenu(culIdx + 1, e);\n if (this.showItemOnClick) {\n this.setLISelected(cli);\n if (!this.isMenu) {\n this.isCmenuHover = false;\n }\n }\n }\n }\n if (!this.isClosed) {\n this.afterCloseMenu(e);\n }\n this.isClosed = false;\n }\n }\n }\n else {\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\n var popupEle = closest(trgt, '.' + POPUP);\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\n if (cIdx < this.navIdx.length) {\n this.closeMenu(cIdx + 1, e);\n if (popupEle) {\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\n }\n }\n }\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\n && trgt.classList.contains('e-menu-icon')) {\n this.menuHeaderClickHandler(e);\n }\n else {\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\n if (!cli) {\n this.removeLIStateByClass([SELECTED], [wrapper]);\n }\n if (!this.isAnimationNone && !cli || (cli && !cli.querySelector('.' + CARET))) {\n if (navigator.platform.toUpperCase().indexOf('MAC') < 0 || (navigator.platform.toUpperCase().indexOf('MAC') >= 0 && !e.ctrlKey)) {\n this.closeMenu(null, e);\n }\n }\n }\n }\n }\n };\n MenuBase.prototype.afterCloseMenu = function (e) {\n if (isNullOrUndefined(e)) {\n return;\n }\n var isHeader;\n if (this.showSubMenu) {\n if (this.showItemOnClick && this.navIdx.length === 0) {\n isHeader = closest(e.target, '.e-menu-parent.e-control');\n }\n else {\n isHeader = closest(this.element, '.e-menu-parent.e-control');\n }\n var idx = this.navIdx.concat(this.cliIdx);\n var item = this.getItem(idx);\n if (item && item[this.getField('children', idx.length - 1)] &&\n item[this.getField('children', idx.length - 1)].length) {\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\n this.setLISelected(this.cli);\n }\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\n this.cli.setAttribute('aria-expanded', 'true');\n this.navIdx.push(this.cliIdx);\n this.openMenu(this.cli, item, null, null, e);\n }\n }\n else {\n if (e.type !== 'mouseover') {\n this.closeMenu(null, e);\n }\n }\n if (!isHeader) {\n var cul = this.getUlByNavIdx();\n var sli = this.getLIByClass(cul, SELECTED);\n if (sli) {\n sli.setAttribute('aria-expanded', 'false');\n sli.classList.remove(SELECTED);\n }\n }\n }\n this.keyType = '';\n };\n MenuBase.prototype.setLISelected = function (li) {\n var sli = this.getLIByClass(li.parentElement, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n if (!this.isMenu) {\n li.classList.remove(FOCUSED);\n }\n li.classList.add(SELECTED);\n };\n MenuBase.prototype.getLIByClass = function (ul, classname) {\n if (ul && ul.children) {\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains(classname)) {\n return ul.children[i];\n }\n }\n }\n return null;\n };\n /**\n * This method is used to get the index of the menu item in the Menu based on the argument.\n *\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\n var idx;\n if (typeof item === 'string') {\n idx = item;\n }\n else {\n idx = item.id;\n }\n var isText = (isUniqueId === false) ? false : true;\n var navIdx = this.getIndex(idx, isText);\n return navIdx;\n };\n /**\n * This method is used to set the menu item in the Menu based on the argument.\n *\n * @param {MenuItem} item - item need to be updated.\n * @param {string} id - id / text to be passed to update the item.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\n var idx;\n if (isUniqueId) {\n idx = id ? id : item.id;\n }\n else {\n idx = id ? id : item.text;\n }\n var navIdx = this.getIndex(idx, isUniqueId);\n var newItem = this.getItem(navIdx);\n Object.assign(newItem, item);\n };\n MenuBase.prototype.getItem = function (navIdx) {\n navIdx = navIdx.slice();\n var idx = navIdx.pop();\n var items = this.getItems(navIdx);\n return items[idx];\n };\n MenuBase.prototype.getItems = function (navIdx) {\n var items = this.items;\n for (var i = 0; i < navIdx.length; i++) {\n items = items[navIdx[i]][this.getField('children', i)];\n }\n return items;\n };\n MenuBase.prototype.setItems = function (newItems, navIdx) {\n var items = this.getItems(navIdx);\n items.splice(0, items.length);\n for (var i = 0; i < newItems.length; i++) {\n items.splice(i, 0, newItems[i]);\n }\n };\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\n if (skipHdr === void 0) { skipHdr = true; }\n var idx = Array.prototype.indexOf.call(ul.children, li);\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\n idx--;\n }\n return idx;\n };\n MenuBase.prototype.getLI = function (elem) {\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\n return elem;\n }\n return closest(elem, 'li.e-menu-item');\n };\n MenuBase.prototype.updateItemsByNavIdx = function () {\n var items = this.items;\n var count = 0;\n for (var index = 0; index < this.navIdx.length; index++) {\n items = items[index].items;\n if (!items) {\n break;\n }\n count++;\n var ul = this.getUlByNavIdx(count);\n if (!ul) {\n break;\n }\n this.updateItem(ul, items);\n }\n };\n MenuBase.prototype.removeChildElement = function (elem) {\n while (elem.firstElementChild) {\n elem.removeChild(elem.firstElementChild);\n }\n return elem;\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {MenuBaseModel} newProp - Specifies the new properties\n * @param {MenuBaseModel} oldProp - Specifies the old properties\n * @returns {void}\n */\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\n var _this = this;\n var wrapper = this.getWrapper();\n var _loop_2 = function (prop) {\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (this_1.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'showItemOnClick':\n this_1.unWireEvents();\n this_1.showItemOnClick = newProp.showItemOnClick;\n this_1.wireEvents();\n break;\n case 'enableScrolling':\n if (newProp.enableScrolling) {\n var ul_2;\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n this_1.getPopups().forEach(function (wrapper) {\n ul_2 = select('.e-ul', wrapper);\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\n });\n }\n else {\n var ul_3 = wrapper.children[0];\n if (this_1.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n }\n else {\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\n }\n wrapper.style.overflow = '';\n wrapper.appendChild(this_1.element);\n this_1.getPopups().forEach(function (wrapper) {\n ul_3 = wrapper.children[0];\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\n wrapper.style.overflow = '';\n });\n }\n break;\n case 'items': {\n var idx = void 0;\n var navIdx = void 0;\n var item = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this_1.isReact && this_1.template) {\n this_1.clearTemplate(['template']);\n }\n if (!Object.keys(oldProp.items).length) {\n this_1.updateItem(this_1.element, this_1.items);\n if (this_1.enableScrolling && this_1.element.parentElement.classList.contains('e-custom-scroll')) {\n if (this_1.element.classList.contains('e-vertical')) {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\n }\n else {\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\n }\n }\n if (!this_1.hamburgerMode) {\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\n detach(wrapper.lastElementChild);\n }\n }\n this_1.navIdx = [];\n }\n else {\n var keys = Object.keys(newProp.items);\n for (var i = 0; i < keys.length; i++) {\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\n if (navIdx.length <= this_1.getWrapper().children.length) {\n idx = navIdx.pop();\n item = this_1.getItems(navIdx);\n this_1.insertAfter([item[idx]], item[idx].text);\n this_1.removeItem(item, navIdx, idx);\n this_1.setItems(item, navIdx);\n }\n navIdx.length = 0;\n }\n }\n break;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n _loop_2(prop);\n }\n };\n MenuBase.prototype.updateItem = function (ul, items) {\n if (isBlazor() && !this.isMenu) {\n ul = this.removeChildElement(ul);\n }\n else {\n if (this.enableScrolling) {\n var wrapper1 = this.getWrapper();\n var ul1 = wrapper1.children[0];\n if (this.element.classList.contains('e-vertical')) {\n destroyScroll(getInstance(ul1, VScroll), ul1);\n }\n else {\n destroyScroll(getInstance(ul1, HScroll), ul1);\n }\n }\n ul.innerHTML = '';\n }\n var lis = [].slice.call(this.createItems(items).children);\n lis.forEach(function (li) {\n ul.appendChild(li);\n });\n };\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\n index.push(idx);\n var key = Object.keys(newProp.items[idx]).pop();\n if (key === 'items') {\n var item = newProp.items[idx];\n var popStr = Object.keys(item.items).pop();\n if (popStr) {\n this.getChangedItemIndex(item, index, Number(popStr));\n }\n }\n else {\n if (key === 'isParentArray' && index.length > 1) {\n index.pop();\n }\n }\n return index;\n };\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\n item.splice(idx, 1);\n var uls = this.getWrapper().children;\n if (navIdx.length < uls.length) {\n detach(uls[navIdx.length].children[idx]);\n }\n };\n /**\n * Used to unwire the bind events.\n *\n * @private\n * @param {string} targetSelctor - Specifies the target selector\n * @returns {void}\n */\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\n if (targetSelctor === void 0) { targetSelctor = this.target; }\n var wrapper = this.getWrapper();\n if (targetSelctor) {\n var target = void 0;\n var touchModule = void 0;\n var targetElems = selectAll(targetSelctor);\n for (var i = 0, len = targetElems.length; i < len; i++) {\n target = targetElems[i];\n if (this.isMenu) {\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\n }\n else {\n if (Browser.isIos) {\n touchModule = getInstance(target, Touch);\n if (touchModule) {\n touchModule.destroy();\n }\n }\n else {\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\n }\n }\n }\n if (!this.isMenu) {\n EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollHandler);\n }\n }\n }\n if (!Browser.isDevice) {\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\n if (!this.isMenu && !this.target) {\n EventHandler.remove(document, 'scroll', this.scrollHandler);\n }\n }\n EventHandler.remove(document, 'click', this.delegateClickHandler);\n this.unWireKeyboardEvent(wrapper);\n this.rippleFn();\n };\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\n var keyboardModule = getInstance(element, KeyboardEvents);\n if (keyboardModule) {\n keyboardModule.destroy();\n }\n };\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\n var _this = this;\n if (isMenuOpen === void 0) { isMenuOpen = true; }\n var pUlHeight;\n var pElement;\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\n if (this.hamburgerMode && ul) {\n ul.style.top = '0px';\n }\n this.isAnimationNone = this.animationSettings.effect === 'None';\n this.end(ul, isMenuOpen);\n }\n else {\n this.animation.animate(ul, {\n name: this.animationSettings.effect,\n duration: this.animationSettings.duration,\n timingFunction: this.animationSettings.easing,\n begin: function (options) {\n if (_this.hamburgerMode) {\n pElement = options.element.parentElement;\n options.element.style.position = 'absolute';\n if (pElement) {\n pUlHeight = pElement.offsetHeight;\n }\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\n if (pElement) {\n pElement.style.maxHeight = '';\n }\n }\n else {\n options.element.style.display = 'block';\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\n }\n },\n progress: function (options) {\n if (_this.hamburgerMode && pElement) {\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\n }\n },\n end: function (options) {\n if (_this.hamburgerMode) {\n options.element.style.position = '';\n options.element.style.maxHeight = '';\n if (pElement) {\n pElement.style.minHeight = '';\n }\n options.element.style.top = 0 + 'px';\n options.element.children[0].focus();\n _this.triggerOpen(options.element.children[0]);\n }\n else {\n _this.end(options.element, isMenuOpen);\n }\n }\n });\n }\n };\n MenuBase.prototype.triggerOpen = function (ul) {\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\n var eventArgs = {\n element: ul, parentItem: item, items: item ? item.items : this.items\n };\n this.trigger('onOpen', eventArgs);\n if (!this.isMenu) {\n EventHandler.add(ul, 'keydown', this.keyHandler, this);\n }\n };\n MenuBase.prototype.end = function (ul, isMenuOpen) {\n if (isMenuOpen && (this.isMenu || (!this.isMenu && this.isContextMenuClosed))) {\n if (this.isMenu || !Browser.isDevice) {\n ul.style.display = 'block';\n }\n ul.style.maxHeight = '';\n this.triggerOpen(ul);\n if (ul.querySelector('.' + FOCUSED)) {\n ul.querySelector('.' + FOCUSED).focus();\n }\n else {\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\n if (this.currentTarget) {\n if (!(this.currentTarget.classList.contains('e-numerictextbox') || this.currentTarget.classList.contains('e-textbox') || this.currentTarget.tagName === 'INPUT')) {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n else {\n if (ele) {\n ele.querySelector('.' + SELECTED).focus();\n }\n else {\n this.element.focus();\n }\n }\n }\n }\n else {\n if (ul === this.element) {\n var fli = this.getLIByClass(this.element, FOCUSED);\n if (fli) {\n fli.classList.remove(FOCUSED);\n }\n var sli = this.getLIByClass(this.element, SELECTED);\n if (sli) {\n sli.classList.remove(SELECTED);\n }\n ul.style.display = 'none';\n this.isAnimationNone = false;\n }\n else {\n detach(ul);\n }\n }\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n MenuBase.prototype.getPersistData = function () {\n return '';\n };\n /**\n * Get wrapper element.\n *\n * @returns {Element} - Wrapper element\n * @private\n */\n MenuBase.prototype.getWrapper = function () {\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\n };\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\n if (items === void 0) { items = this.items; }\n if (nIndex === void 0) { nIndex = []; }\n if (isCallBack === void 0) { isCallBack = false; }\n if (level === void 0) { level = 0; }\n var item;\n level = isCallBack ? level + 1 : 0;\n for (var i = 0, len = items.length; i < len; i++) {\n item = items[i];\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\n nIndex.push(i);\n break;\n }\n else if (item[this.getField('children', level)]\n && item[this.getField('children', level)].length) {\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\n if (nIndex[nIndex.length - 1] === -1) {\n if (i !== len - 1) {\n nIndex.pop();\n }\n }\n else {\n nIndex.unshift(i);\n break;\n }\n }\n else {\n if (i === len - 1) {\n nIndex.push(-1);\n }\n }\n }\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\n };\n /**\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\n *\n * @param {string[]} items - Text items that needs to be enabled/disabled.\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\n if (enable === void 0) { enable = true; }\n var ul;\n var idx;\n var navIdx;\n var disabled = DISABLED;\n var skipItem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n if (this.navIdx.length) {\n if (navIdx.length !== 1) {\n skipItem = false;\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\n if (navIdx[i_1] !== this.navIdx[i_1]) {\n skipItem = true;\n break;\n }\n }\n if (skipItem) {\n continue;\n }\n }\n }\n else {\n if (navIdx.length !== 1) {\n continue;\n }\n }\n idx = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n if (ul && !isNullOrUndefined(idx)) {\n if (enable) {\n if (this.isMenu) {\n ul.children[idx].classList.remove(disabled);\n ul.children[idx].removeAttribute('aria-disabled');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.remove(disabled);\n }\n else {\n ul.children[idx].classList.remove(disabled);\n }\n }\n }\n else {\n if (this.isMenu) {\n ul.children[idx].classList.add(disabled);\n ul.children[idx].setAttribute('aria-disabled', 'true');\n }\n else {\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\n ul.children[idx + 1].classList.add(disabled);\n }\n else {\n ul.children[idx].classList.add(disabled);\n }\n }\n }\n }\n }\n };\n /**\n * This method is used to show the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be shown.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.showItems = function (items, isUniqueId) {\n this.showHideItems(items, false, isUniqueId);\n };\n /**\n * This method is used to hide the menu items in the Menu based on the items text.\n *\n * @param {string[]} items - Text items that needs to be hidden.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\n this.showHideItems(items, true, isUniqueId);\n };\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\n var ul;\n var index;\n var navIdx;\n var item;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n index = navIdx.pop();\n ul = this.getUlByNavIdx(navIdx.length);\n item = this.getItems(navIdx);\n if (ul) {\n var validUl = isUniqueId ? ul.children[index].id : item[index].text.toString();\n if (ishide && validUl === items[i]) {\n ul.children[index].classList.add(HIDE);\n }\n else if (!ishide && validUl === items[i]) {\n ul.children[index].classList.remove(HIDE);\n }\n }\n }\n };\n /**\n * It is used to remove the menu items from the Menu based on the items text.\n *\n * @param {string[]} items Text items that needs to be removed.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\n var idx;\n var navIdx;\n var iitems;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(items[i], isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n if (!isNullOrUndefined(idx)) {\n this.removeItem(iitems, navIdx, idx);\n }\n }\n };\n /**\n * It is used to insert the menu items after the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item after that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId);\n };\n /**\n * It is used to insert the menu items before the specified menu item text.\n *\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\n * @param {string} text - Text item before that the element to be inserted.\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\n * @returns {void}\n */\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\n this.insertItems(items, text, isUniqueId, false);\n };\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\n if (isAfter === void 0) { isAfter = true; }\n var li;\n var idx;\n var navIdx;\n var iitems;\n var menuitem;\n for (var i = 0; i < items.length; i++) {\n navIdx = this.getIndex(text, isUniqueId);\n idx = navIdx.pop();\n iitems = this.getItems(navIdx);\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n menuitem.parentObj = iitems[0].parentObj;\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\n if (!isNullOrUndefined(idx) && navIdx.length < uls.length) {\n idx = isAfter ? idx + 1 : idx;\n li = this.createItems(iitems).children[idx];\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\n ul.insertBefore(li, ul.children[idx]);\n if (i === items.length - 1 && !this.isMenu && ul.style.display === 'block') {\n this.setPosition(null, ul, parseFloat(ul.style.top), parseFloat(ul.style.left));\n ul.style.display = 'block';\n }\n }\n }\n };\n MenuBase.prototype.removeAttributes = function () {\n var _this = this;\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\n _this.element.style.removeProperty(key);\n });\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\n _this.element.classList.remove('e-menu-parent');\n }\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\n _this.element.removeAttribute(key);\n }\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\n _this.element.classList.remove('e-vertical');\n }\n });\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n MenuBase.prototype.destroy = function () {\n var wrapper = this.getWrapper();\n if (wrapper) {\n this.unWireEvents();\n if (!this.isMenu) {\n this.clonedElement.style.display = '';\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\n this.element = this.clonedElement;\n }\n else {\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\n this.setProperties({ 'items': [] }, true);\n }\n if (document.getElementById(this.clonedElement.id)) {\n var refEle = this.clonedElement.nextElementSibling;\n if (refEle && refEle !== wrapper) {\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\n }\n else {\n this.clonedElement.parentElement.appendChild(this.element);\n }\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n append([].slice.call(this.clonedElement.children), this.element);\n detach(this.clonedElement);\n this.removeAttributes();\n }\n }\n this.clonedElement = null;\n }\n else {\n this.closeMenu();\n if (isBlazor() && !this.isMenu) {\n this.element = this.removeChildElement(this.element);\n }\n else {\n this.element.innerHTML = '';\n }\n this.removeAttributes();\n wrapper.parentNode.insertBefore(this.element, wrapper);\n this.clonedElement = null;\n }\n detach(wrapper);\n _super.prototype.destroy.call(this);\n if (this.template) {\n this.clearTemplate(['template']);\n }\n }\n this.rippleFn = null;\n };\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onOpen\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"onClose\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], MenuBase.prototype, \"created\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"cssClass\", void 0);\n __decorate([\n Property(0)\n ], MenuBase.prototype, \"hoverDelay\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], MenuBase.prototype, \"filter\", void 0);\n __decorate([\n Property(null)\n ], MenuBase.prototype, \"template\", void 0);\n __decorate([\n Property(false)\n ], MenuBase.prototype, \"enableScrolling\", void 0);\n __decorate([\n Property(true)\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\n ], MenuBase.prototype, \"fields\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], MenuBase.prototype, \"items\", void 0);\n __decorate([\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\n ], MenuBase.prototype, \"animationSettings\", void 0);\n MenuBase = __decorate([\n NotifyPropertyChanges\n ], MenuBase);\n return MenuBase;\n}(Component));\nexport { MenuBase };\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/php/php.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"php\",\n extensions: [\".php\", \".php4\", \".php5\", \".phtml\", \".ctp\"],\n aliases: [\"PHP\", \"php\"],\n mimetypes: [\"application/x-php\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/php/php\"], resolve, reject);\n });\n } else {\n return import(\"./php.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertNever } from '../../../base/common/assert.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Extensions as JSONExtensions } from '../../jsonschemas/common/jsonContributionRegistry.js';\nimport * as platform from '../../registry/common/platform.js';\n/**\n * Returns the css variable name for the given color identifier. Dots (`.`) are replaced with hyphens (`-`) and\n * everything is prefixed with `--vscode-`.\n *\n * @sample `editorSuggestWidget.background` is `--vscode-editorSuggestWidget-background`.\n */\nexport function asCssVariableName(colorIdent) {\n return `--vscode-${colorIdent.replace(/\\./g, '-')}`;\n}\nexport function asCssVariable(color) {\n return `var(${asCssVariableName(color)})`;\n}\nexport function asCssVariableWithDefault(color, defaultCssValue) {\n return `var(${asCssVariableName(color)}, ${defaultCssValue})`;\n}\n// color registry\nexport const Extensions = {\n ColorContribution: 'base.contributions.colors'\n};\nclass ColorRegistry {\n constructor() {\n this._onDidChangeSchema = new Emitter();\n this.onDidChangeSchema = this._onDidChangeSchema.event;\n this.colorSchema = { type: 'object', properties: {} };\n this.colorReferenceSchema = { type: 'string', enum: [], enumDescriptions: [] };\n this.colorsById = {};\n }\n registerColor(id, defaults, description, needsTransparency = false, deprecationMessage) {\n const colorContribution = { id, description, defaults, needsTransparency, deprecationMessage };\n this.colorsById[id] = colorContribution;\n const propertySchema = { type: 'string', description, format: 'color-hex', defaultSnippets: [{ body: '${1:#ff0000}' }] };\n if (deprecationMessage) {\n propertySchema.deprecationMessage = deprecationMessage;\n }\n if (needsTransparency) {\n propertySchema.pattern = '^#(?:(?[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$';\n propertySchema.patternErrorMessage = 'This color must be transparent or it will obscure content';\n }\n this.colorSchema.properties[id] = propertySchema;\n this.colorReferenceSchema.enum.push(id);\n this.colorReferenceSchema.enumDescriptions.push(description);\n this._onDidChangeSchema.fire();\n return id;\n }\n getColors() {\n return Object.keys(this.colorsById).map(id => this.colorsById[id]);\n }\n resolveDefaultColor(id, theme) {\n const colorDesc = this.colorsById[id];\n if (colorDesc && colorDesc.defaults) {\n const colorValue = colorDesc.defaults[theme.type];\n return resolveColorValue(colorValue, theme);\n }\n return undefined;\n }\n getColorSchema() {\n return this.colorSchema;\n }\n toString() {\n const sorter = (a, b) => {\n const cat1 = a.indexOf('.') === -1 ? 0 : 1;\n const cat2 = b.indexOf('.') === -1 ? 0 : 1;\n if (cat1 !== cat2) {\n return cat1 - cat2;\n }\n return a.localeCompare(b);\n };\n return Object.keys(this.colorsById).sort(sorter).map(k => `- \\`${k}\\`: ${this.colorsById[k].description}`).join('\\n');\n }\n}\nconst colorRegistry = new ColorRegistry();\nplatform.Registry.add(Extensions.ColorContribution, colorRegistry);\nexport function registerColor(id, defaults, description, needsTransparency, deprecationMessage) {\n return colorRegistry.registerColor(id, defaults, description, needsTransparency, deprecationMessage);\n}\n// ----- color functions\nexport function executeTransform(transform, theme) {\n var _a, _b, _c, _d;\n switch (transform.op) {\n case 0 /* ColorTransformType.Darken */:\n return (_a = resolveColorValue(transform.value, theme)) === null || _a === void 0 ? void 0 : _a.darken(transform.factor);\n case 1 /* ColorTransformType.Lighten */:\n return (_b = resolveColorValue(transform.value, theme)) === null || _b === void 0 ? void 0 : _b.lighten(transform.factor);\n case 2 /* ColorTransformType.Transparent */:\n return (_c = resolveColorValue(transform.value, theme)) === null || _c === void 0 ? void 0 : _c.transparent(transform.factor);\n case 3 /* ColorTransformType.Opaque */: {\n const backgroundColor = resolveColorValue(transform.background, theme);\n if (!backgroundColor) {\n return resolveColorValue(transform.value, theme);\n }\n return (_d = resolveColorValue(transform.value, theme)) === null || _d === void 0 ? void 0 : _d.makeOpaque(backgroundColor);\n }\n case 4 /* ColorTransformType.OneOf */:\n for (const candidate of transform.values) {\n const color = resolveColorValue(candidate, theme);\n if (color) {\n return color;\n }\n }\n return undefined;\n case 6 /* ColorTransformType.IfDefinedThenElse */:\n return resolveColorValue(theme.defines(transform.if) ? transform.then : transform.else, theme);\n case 5 /* ColorTransformType.LessProminent */: {\n const from = resolveColorValue(transform.value, theme);\n if (!from) {\n return undefined;\n }\n const backgroundColor = resolveColorValue(transform.background, theme);\n if (!backgroundColor) {\n return from.transparent(transform.factor * transform.transparency);\n }\n return from.isDarkerThan(backgroundColor)\n ? Color.getLighterColor(from, backgroundColor, transform.factor).transparent(transform.transparency)\n : Color.getDarkerColor(from, backgroundColor, transform.factor).transparent(transform.transparency);\n }\n default:\n throw assertNever(transform);\n }\n}\nexport function darken(colorValue, factor) {\n return { op: 0 /* ColorTransformType.Darken */, value: colorValue, factor };\n}\nexport function lighten(colorValue, factor) {\n return { op: 1 /* ColorTransformType.Lighten */, value: colorValue, factor };\n}\nexport function transparent(colorValue, factor) {\n return { op: 2 /* ColorTransformType.Transparent */, value: colorValue, factor };\n}\nexport function oneOf(...colorValues) {\n return { op: 4 /* ColorTransformType.OneOf */, values: colorValues };\n}\nexport function ifDefinedThenElse(ifArg, thenArg, elseArg) {\n return { op: 6 /* ColorTransformType.IfDefinedThenElse */, if: ifArg, then: thenArg, else: elseArg };\n}\nexport function lessProminent(colorValue, backgroundColorValue, factor, transparency) {\n return { op: 5 /* ColorTransformType.LessProminent */, value: colorValue, background: backgroundColorValue, factor, transparency };\n}\n// ----- implementation\n/**\n * @param colorValue Resolve a color value in the context of a theme\n */\nexport function resolveColorValue(colorValue, theme) {\n if (colorValue === null) {\n return undefined;\n }\n else if (typeof colorValue === 'string') {\n if (colorValue[0] === '#') {\n return Color.fromHex(colorValue);\n }\n return theme.getColor(colorValue);\n }\n else if (colorValue instanceof Color) {\n return colorValue;\n }\n else if (typeof colorValue === 'object') {\n return executeTransform(colorValue, theme);\n }\n return undefined;\n}\nexport const workbenchColorsSchemaId = 'vscode://schemas/workbench-colors';\nconst schemaRegistry = platform.Registry.as(JSONExtensions.JSONContribution);\nschemaRegistry.registerSchema(workbenchColorsSchemaId, colorRegistry.getColorSchema());\nconst delayer = new RunOnceScheduler(() => schemaRegistry.notifySchemaChanged(workbenchColorsSchemaId), 200);\ncolorRegistry.onDidChangeSchema(() => {\n if (!delayer.isScheduled()) {\n delayer.schedule();\n }\n});\n// setTimeout(_ => console.log(colorRegistry.toString()), 5000);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nexport const foreground = registerColor('foreground', { dark: '#CCCCCC', light: '#616161', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('foreground', \"Overall foreground color. This color is only used if not overridden by a component.\"));\nexport const disabledForeground = registerColor('disabledForeground', { dark: '#CCCCCC80', light: '#61616180', hcDark: '#A5A5A5', hcLight: '#7F7F7F' }, nls.localize('disabledForeground', \"Overall foreground for disabled elements. This color is only used if not overridden by a component.\"));\nexport const errorForeground = registerColor('errorForeground', { dark: '#F48771', light: '#A1260D', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('errorForeground', \"Overall foreground color for error messages. This color is only used if not overridden by a component.\"));\nexport const descriptionForeground = registerColor('descriptionForeground', { light: '#717171', dark: transparent(foreground, 0.7), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('descriptionForeground', \"Foreground color for description text providing additional information, for example for a label.\"));\nexport const iconForeground = registerColor('icon.foreground', { dark: '#C5C5C5', light: '#424242', hcDark: '#FFFFFF', hcLight: '#292929' }, nls.localize('iconForeground', \"The default color for icons in the workbench.\"));\nexport const focusBorder = registerColor('focusBorder', { dark: '#007FD4', light: '#0090F1', hcDark: '#F38518', hcLight: '#006BBD' }, nls.localize('focusBorder', \"Overall border color for focused elements. This color is only used if not overridden by a component.\"));\nexport const contrastBorder = registerColor('contrastBorder', { light: null, dark: null, hcDark: '#6FC3DF', hcLight: '#0F4A85' }, nls.localize('contrastBorder', \"An extra border around elements to separate them from others for greater contrast.\"));\nexport const activeContrastBorder = registerColor('contrastActiveBorder', { light: null, dark: null, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('activeContrastBorder', \"An extra border around active elements to separate them from others for greater contrast.\"));\nexport const selectionBackground = registerColor('selection.background', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('selectionBackground', \"The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.\"));\n// ------ text link\nexport const textLinkForeground = registerColor('textLink.foreground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkForeground', \"Foreground color for links in text.\"));\nexport const textLinkActiveForeground = registerColor('textLink.activeForeground', { light: '#006AB1', dark: '#3794FF', hcDark: '#21A6FF', hcLight: '#0F4A85' }, nls.localize('textLinkActiveForeground', \"Foreground color for links in text when clicked on and on mouse hover.\"));\nexport const textSeparatorForeground = registerColor('textSeparator.foreground', { light: '#0000002e', dark: '#ffffff2e', hcDark: Color.black, hcLight: '#292929' }, nls.localize('textSeparatorForeground', \"Color for text separators.\"));\n// ------ text preformat\nexport const textPreformatForeground = registerColor('textPreformat.foreground', { light: '#A31515', dark: '#D7BA7D', hcDark: '#000000', hcLight: '#FFFFFF' }, nls.localize('textPreformatForeground', \"Foreground color for preformatted text segments.\"));\nexport const textPreformatBackground = registerColor('textPreformat.background', { light: '#0000001A', dark: '#FFFFFF1A', hcDark: '#FFFFFF', hcLight: '#09345f' }, nls.localize('textPreformatBackground', \"Background color for preformatted text segments.\"));\n// ------ text block quote\nexport const textBlockQuoteBackground = registerColor('textBlockQuote.background', { light: '#f2f2f2', dark: '#222222', hcDark: null, hcLight: '#F2F2F2' }, nls.localize('textBlockQuoteBackground', \"Background color for block quotes in text.\"));\nexport const textBlockQuoteBorder = registerColor('textBlockQuote.border', { light: '#007acc80', dark: '#007acc80', hcDark: Color.white, hcLight: '#292929' }, nls.localize('textBlockQuoteBorder', \"Border color for block quotes in text.\"));\n// ------ text code block\nexport const textCodeBlockBackground = registerColor('textCodeBlock.background', { light: '#dcdcdc66', dark: '#0a0a0a66', hcDark: Color.black, hcLight: '#F2F2F2' }, nls.localize('textCodeBlockBackground', \"Background color for code blocks in text.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, focusBorder } from './baseColors.js';\n// ----- sash\nexport const sashHoverBorder = registerColor('sash.hoverBorder', { dark: focusBorder, light: focusBorder, hcDark: focusBorder, hcLight: focusBorder }, nls.localize('sashActiveBorder', \"Border color of active sashes.\"));\n// ----- badge\nexport const badgeBackground = registerColor('badge.background', { dark: '#4D4D4D', light: '#C4C4C4', hcDark: Color.black, hcLight: '#0F4A85' }, nls.localize('badgeBackground', \"Badge background color. Badges are small information labels, e.g. for search results count.\"));\nexport const badgeForeground = registerColor('badge.foreground', { dark: Color.white, light: '#333', hcDark: Color.white, hcLight: Color.white }, nls.localize('badgeForeground', \"Badge foreground color. Badges are small information labels, e.g. for search results count.\"));\n// ----- scrollbar\nexport const scrollbarShadow = registerColor('scrollbar.shadow', { dark: '#000000', light: '#DDDDDD', hcDark: null, hcLight: null }, nls.localize('scrollbarShadow', \"Scrollbar shadow to indicate that the view is scrolled.\"));\nexport const scrollbarSliderBackground = registerColor('scrollbarSlider.background', { dark: Color.fromHex('#797979').transparent(0.4), light: Color.fromHex('#646464').transparent(0.4), hcDark: transparent(contrastBorder, 0.6), hcLight: transparent(contrastBorder, 0.4) }, nls.localize('scrollbarSliderBackground', \"Scrollbar slider background color.\"));\nexport const scrollbarSliderHoverBackground = registerColor('scrollbarSlider.hoverBackground', { dark: Color.fromHex('#646464').transparent(0.7), light: Color.fromHex('#646464').transparent(0.7), hcDark: transparent(contrastBorder, 0.8), hcLight: transparent(contrastBorder, 0.8) }, nls.localize('scrollbarSliderHoverBackground', \"Scrollbar slider background color when hovering.\"));\nexport const scrollbarSliderActiveBackground = registerColor('scrollbarSlider.activeBackground', { dark: Color.fromHex('#BFBFBF').transparent(0.4), light: Color.fromHex('#000000').transparent(0.6), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('scrollbarSliderActiveBackground', \"Scrollbar slider background color when clicked on.\"));\n// ----- progress bar\nexport const progressBarBackground = registerColor('progressBar.background', { dark: Color.fromHex('#0E70C0'), light: Color.fromHex('#0E70C0'), hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('progressBarBackground', \"Background color of the progress bar that can show for long running operations.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lessProminent, darken, lighten } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { scrollbarShadow, badgeBackground } from './miscColors.js';\n// ----- editor\nexport const editorBackground = registerColor('editor.background', { light: '#ffffff', dark: '#1E1E1E', hcDark: Color.black, hcLight: Color.white }, nls.localize('editorBackground', \"Editor background color.\"));\nexport const editorForeground = registerColor('editor.foreground', { light: '#333333', dark: '#BBBBBB', hcDark: Color.white, hcLight: foreground }, nls.localize('editorForeground', \"Editor default foreground color.\"));\nexport const editorStickyScrollBackground = registerColor('editorStickyScroll.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('editorStickyScrollBackground', \"Background color of sticky scroll in the editor\"));\nexport const editorStickyScrollHoverBackground = registerColor('editorStickyScrollHover.background', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('editorStickyScrollHoverBackground', \"Background color of sticky scroll on hover in the editor\"));\nexport const editorStickyScrollBorder = registerColor('editorStickyScroll.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorStickyScrollBorder', \"Border color of sticky scroll in the editor\"));\nexport const editorStickyScrollShadow = registerColor('editorStickyScroll.shadow', { dark: scrollbarShadow, light: scrollbarShadow, hcDark: scrollbarShadow, hcLight: scrollbarShadow }, nls.localize('editorStickyScrollShadow', \" Shadow color of sticky scroll in the editor\"));\nexport const editorWidgetBackground = registerColor('editorWidget.background', { dark: '#252526', light: '#F3F3F3', hcDark: '#0C141F', hcLight: Color.white }, nls.localize('editorWidgetBackground', 'Background color of editor widgets, such as find/replace.'));\nexport const editorWidgetForeground = registerColor('editorWidget.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('editorWidgetForeground', 'Foreground color of editor widgets, such as find/replace.'));\nexport const editorWidgetBorder = registerColor('editorWidget.border', { dark: '#454545', light: '#C8C8C8', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('editorWidgetBorder', 'Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget.'));\nexport const editorWidgetResizeBorder = registerColor('editorWidget.resizeBorder', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorWidgetResizeBorder', \"Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget.\"));\nexport const editorErrorBackground = registerColor('editorError.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorError.background', 'Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorErrorForeground = registerColor('editorError.foreground', { dark: '#F14C4C', light: '#E51400', hcDark: '#F48771', hcLight: '#B5200D' }, nls.localize('editorError.foreground', 'Foreground color of error squigglies in the editor.'));\nexport const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hcDark: Color.fromHex('#E47777').transparent(0.8), hcLight: '#B5200D' }, nls.localize('errorBorder', 'If set, color of double underlines for errors in the editor.'));\nexport const editorWarningBackground = registerColor('editorWarning.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorWarning.background', 'Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#CCA700', light: '#BF8803', hcDark: '#FFD370', hcLight: '#895503' }, nls.localize('editorWarning.foreground', 'Foreground color of warning squigglies in the editor.'));\nexport const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hcDark: Color.fromHex('#FFCC00').transparent(0.8), hcLight: Color.fromHex('#FFCC00').transparent(0.8) }, nls.localize('warningBorder', 'If set, color of double underlines for warnings in the editor.'));\nexport const editorInfoBackground = registerColor('editorInfo.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('editorInfo.background', 'Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#3794FF', light: '#1a85ff', hcDark: '#3794FF', hcLight: '#1a85ff' }, nls.localize('editorInfo.foreground', 'Foreground color of info squigglies in the editor.'));\nexport const editorInfoBorder = registerColor('editorInfo.border', { dark: null, light: null, hcDark: Color.fromHex('#3794FF').transparent(0.8), hcLight: '#292929' }, nls.localize('infoBorder', 'If set, color of double underlines for infos in the editor.'));\nexport const editorHintForeground = registerColor('editorHint.foreground', { dark: Color.fromHex('#eeeeee').transparent(0.7), light: '#6c6c6c', hcDark: null, hcLight: null }, nls.localize('editorHint.foreground', 'Foreground color of hint squigglies in the editor.'));\nexport const editorHintBorder = registerColor('editorHint.border', { dark: null, light: null, hcDark: Color.fromHex('#eeeeee').transparent(0.8), hcLight: '#292929' }, nls.localize('hintBorder', 'If set, color of double underlines for hints in the editor.'));\nexport const editorActiveLinkForeground = registerColor('editorLink.activeForeground', { dark: '#4E94CE', light: Color.blue, hcDark: Color.cyan, hcLight: '#292929' }, nls.localize('activeLinkForeground', 'Color of active links.'));\n// ----- editor selection\nexport const editorSelectionBackground = registerColor('editor.selectionBackground', { light: '#ADD6FF', dark: '#264F78', hcDark: '#f3f518', hcLight: '#0F4A85' }, nls.localize('editorSelectionBackground', \"Color of the editor selection.\"));\nexport const editorSelectionForeground = registerColor('editor.selectionForeground', { light: null, dark: null, hcDark: '#000000', hcLight: Color.white }, nls.localize('editorSelectionForeground', \"Color of the selected text for high contrast.\"));\nexport const editorInactiveSelection = registerColor('editor.inactiveSelectionBackground', { light: transparent(editorSelectionBackground, 0.5), dark: transparent(editorSelectionBackground, 0.5), hcDark: transparent(editorSelectionBackground, 0.7), hcLight: transparent(editorSelectionBackground, 0.5) }, nls.localize('editorInactiveSelection', \"Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorSelectionHighlight = registerColor('editor.selectionHighlightBackground', { light: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), dark: lessProminent(editorSelectionBackground, editorBackground, 0.3, 0.6), hcDark: null, hcLight: null }, nls.localize('editorSelectionHighlight', 'Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorSelectionHighlightBorder = registerColor('editor.selectionHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorSelectionHighlightBorder', \"Border color for regions with the same content as the selection.\"));\n// ----- editor find\nexport const editorFindMatch = registerColor('editor.findMatchBackground', { light: '#A8AC94', dark: '#515C6A', hcDark: null, hcLight: null }, nls.localize('editorFindMatch', \"Color of the current search match.\"));\nexport const editorFindMatchForeground = registerColor('editor.findMatchForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('editorFindMatchForeground', \"Text color of the current search match.\"));\nexport const editorFindMatchHighlight = registerColor('editor.findMatchHighlightBackground', { light: '#EA5C0055', dark: '#EA5C0055', hcDark: null, hcLight: null }, nls.localize('findMatchHighlight', \"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchHighlightForeground = registerColor('editor.findMatchHighlightForeground', { light: null, dark: null, hcDark: null, hcLight: null }, nls.localize('findMatchHighlightForeground', \"Foreground color of the other search matches.\"), true);\nexport const editorFindRangeHighlight = registerColor('editor.findRangeHighlightBackground', { dark: '#3a3d4166', light: '#b4b4b44d', hcDark: null, hcLight: null }, nls.localize('findRangeHighlight', \"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\nexport const editorFindMatchBorder = registerColor('editor.findMatchBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('editorFindMatchBorder', \"Border color of the current search match.\"));\nexport const editorFindMatchHighlightBorder = registerColor('editor.findMatchHighlightBorder', { light: null, dark: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('findMatchHighlightBorder', \"Border color of the other search matches.\"));\nexport const editorFindRangeHighlightBorder = registerColor('editor.findRangeHighlightBorder', { dark: null, light: null, hcDark: transparent(activeContrastBorder, 0.4), hcLight: transparent(activeContrastBorder, 0.4) }, nls.localize('findRangeHighlightBorder', \"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations.\"), true);\n// ----- editor hover\nexport const editorHoverHighlight = registerColor('editor.hoverHighlightBackground', { light: '#ADD6FF26', dark: '#264f7840', hcDark: '#ADD6FF26', hcLight: null }, nls.localize('hoverHighlight', 'Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const editorHoverBackground = registerColor('editorHoverWidget.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('hoverBackground', 'Background color of the editor hover.'));\nexport const editorHoverForeground = registerColor('editorHoverWidget.foreground', { light: editorWidgetForeground, dark: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('hoverForeground', 'Foreground color of the editor hover.'));\nexport const editorHoverBorder = registerColor('editorHoverWidget.border', { light: editorWidgetBorder, dark: editorWidgetBorder, hcDark: editorWidgetBorder, hcLight: editorWidgetBorder }, nls.localize('hoverBorder', 'Border color of the editor hover.'));\nexport const editorHoverStatusBarBackground = registerColor('editorHoverWidget.statusBarBackground', { dark: lighten(editorHoverBackground, 0.2), light: darken(editorHoverBackground, 0.05), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('statusBarBackground', \"Background color of the editor hover status bar.\"));\n// ----- editor inlay hint\nexport const editorInlayHintForeground = registerColor('editorInlayHint.foreground', { dark: '#969696', light: '#969696', hcDark: Color.white, hcLight: Color.black }, nls.localize('editorInlayHintForeground', 'Foreground color of inline hints'));\nexport const editorInlayHintBackground = registerColor('editorInlayHint.background', { dark: transparent(badgeBackground, .10), light: transparent(badgeBackground, .10), hcDark: transparent(Color.white, .10), hcLight: transparent(badgeBackground, .10) }, nls.localize('editorInlayHintBackground', 'Background color of inline hints'));\nexport const editorInlayHintTypeForeground = registerColor('editorInlayHint.typeForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundTypes', 'Foreground color of inline hints for types'));\nexport const editorInlayHintTypeBackground = registerColor('editorInlayHint.typeBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundTypes', 'Background color of inline hints for types'));\nexport const editorInlayHintParameterForeground = registerColor('editorInlayHint.parameterForeground', { dark: editorInlayHintForeground, light: editorInlayHintForeground, hcDark: editorInlayHintForeground, hcLight: editorInlayHintForeground }, nls.localize('editorInlayHintForegroundParameter', 'Foreground color of inline hints for parameters'));\nexport const editorInlayHintParameterBackground = registerColor('editorInlayHint.parameterBackground', { dark: editorInlayHintBackground, light: editorInlayHintBackground, hcDark: editorInlayHintBackground, hcLight: editorInlayHintBackground }, nls.localize('editorInlayHintBackgroundParameter', 'Background color of inline hints for parameters'));\n// ----- editor lightbulb\nexport const editorLightBulbForeground = registerColor('editorLightBulb.foreground', { dark: '#FFCC00', light: '#DDB100', hcDark: '#FFCC00', hcLight: '#007ACC' }, nls.localize('editorLightBulbForeground', \"The color used for the lightbulb actions icon.\"));\nexport const editorLightBulbAutoFixForeground = registerColor('editorLightBulbAutoFix.foreground', { dark: '#75BEFF', light: '#007ACC', hcDark: '#75BEFF', hcLight: '#007ACC' }, nls.localize('editorLightBulbAutoFixForeground', \"The color used for the lightbulb auto fix actions icon.\"));\nexport const editorLightBulbAiForeground = registerColor('editorLightBulbAi.foreground', { dark: editorLightBulbForeground, light: editorLightBulbForeground, hcDark: editorLightBulbForeground, hcLight: editorLightBulbForeground }, nls.localize('editorLightBulbAiForeground', \"The color used for the lightbulb AI icon.\"));\n// ----- editor snippet\nexport const snippetTabstopHighlightBackground = registerColor('editor.snippetTabstopHighlightBackground', { dark: new Color(new RGBA(124, 124, 124, 0.3)), light: new Color(new RGBA(10, 50, 100, 0.2)), hcDark: new Color(new RGBA(124, 124, 124, 0.3)), hcLight: new Color(new RGBA(10, 50, 100, 0.2)) }, nls.localize('snippetTabstopHighlightBackground', \"Highlight background color of a snippet tabstop.\"));\nexport const snippetTabstopHighlightBorder = registerColor('editor.snippetTabstopHighlightBorder', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetTabstopHighlightBorder', \"Highlight border color of a snippet tabstop.\"));\nexport const snippetFinalTabstopHighlightBackground = registerColor('editor.snippetFinalTabstopHighlightBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('snippetFinalTabstopHighlightBackground', \"Highlight background color of the final tabstop of a snippet.\"));\nexport const snippetFinalTabstopHighlightBorder = registerColor('editor.snippetFinalTabstopHighlightBorder', { dark: '#525252', light: new Color(new RGBA(10, 50, 100, 0.5)), hcDark: '#525252', hcLight: '#292929' }, nls.localize('snippetFinalTabstopHighlightBorder', \"Highlight border color of the final tabstop of a snippet.\"));\n// ----- diff editor\nexport const defaultInsertColor = new Color(new RGBA(155, 185, 85, .2));\nexport const defaultRemoveColor = new Color(new RGBA(255, 0, 0, .2));\nexport const diffInserted = registerColor('diffEditor.insertedTextBackground', { dark: '#9ccc2c33', light: '#9ccc2c40', hcDark: null, hcLight: null }, nls.localize('diffEditorInserted', 'Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemoved = registerColor('diffEditor.removedTextBackground', { dark: '#ff000033', light: '#ff000033', hcDark: null, hcLight: null }, nls.localize('diffEditorRemoved', 'Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLine = registerColor('diffEditor.insertedLineBackground', { dark: defaultInsertColor, light: defaultInsertColor, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLines', 'Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffRemovedLine = registerColor('diffEditor.removedLineBackground', { dark: defaultRemoveColor, light: defaultRemoveColor, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLines', 'Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const diffInsertedLineGutter = registerColor('diffEditorGutter.insertedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorInsertedLineGutter', 'Background color for the margin where lines got inserted.'));\nexport const diffRemovedLineGutter = registerColor('diffEditorGutter.removedLineBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorRemovedLineGutter', 'Background color for the margin where lines got removed.'));\nexport const diffOverviewRulerInserted = registerColor('diffEditorOverview.insertedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewInserted', 'Diff overview ruler foreground for inserted content.'));\nexport const diffOverviewRulerRemoved = registerColor('diffEditorOverview.removedForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('diffEditorOverviewRemoved', 'Diff overview ruler foreground for removed content.'));\nexport const diffInsertedOutline = registerColor('diffEditor.insertedTextBorder', { dark: null, light: null, hcDark: '#33ff2eff', hcLight: '#374E06' }, nls.localize('diffEditorInsertedOutline', 'Outline color for the text that got inserted.'));\nexport const diffRemovedOutline = registerColor('diffEditor.removedTextBorder', { dark: null, light: null, hcDark: '#FF008F', hcLight: '#AD0707' }, nls.localize('diffEditorRemovedOutline', 'Outline color for text that got removed.'));\nexport const diffBorder = registerColor('diffEditor.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('diffEditorBorder', 'Border color between the two text editors.'));\nexport const diffDiagonalFill = registerColor('diffEditor.diagonalFill', { dark: '#cccccc33', light: '#22222233', hcDark: null, hcLight: null }, nls.localize('diffDiagonalFill', \"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.\"));\nexport const diffUnchangedRegionBackground = registerColor('diffEditor.unchangedRegionBackground', { dark: 'sideBar.background', light: 'sideBar.background', hcDark: 'sideBar.background', hcLight: 'sideBar.background' }, nls.localize('diffEditor.unchangedRegionBackground', \"The background color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedRegionForeground = registerColor('diffEditor.unchangedRegionForeground', { dark: 'foreground', light: 'foreground', hcDark: 'foreground', hcLight: 'foreground' }, nls.localize('diffEditor.unchangedRegionForeground', \"The foreground color of unchanged blocks in the diff editor.\"));\nexport const diffUnchangedTextBackground = registerColor('diffEditor.unchangedCodeBackground', { dark: '#74747429', light: '#b8b8b829', hcDark: null, hcLight: null }, nls.localize('diffEditor.unchangedCodeBackground', \"The background color of unchanged code in the diff editor.\"));\n// ----- widget\nexport const widgetShadow = registerColor('widget.shadow', { dark: transparent(Color.black, .36), light: transparent(Color.black, .16), hcDark: null, hcLight: null }, nls.localize('widgetShadow', 'Shadow color of widgets such as find/replace inside the editor.'));\nexport const widgetBorder = registerColor('widget.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('widgetBorder', 'Border color of widgets such as find/replace inside the editor.'));\n// ----- toolbar\nexport const toolbarHoverBackground = registerColor('toolbar.hoverBackground', { dark: '#5a5d5e50', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('toolbarHoverBackground', \"Toolbar background when hovering over actions using the mouse\"));\nexport const toolbarHoverOutline = registerColor('toolbar.hoverOutline', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('toolbarHoverOutline', \"Toolbar outline when hovering over actions using the mouse\"));\nexport const toolbarActiveBackground = registerColor('toolbar.activeBackground', { dark: lighten(toolbarHoverBackground, 0.1), light: darken(toolbarHoverBackground, 0.1), hcDark: null, hcLight: null }, nls.localize('toolbarActiveBackground', \"Toolbar background when holding the mouse over actions\"));\n// ----- breadcumbs\nexport const breadcrumbsForeground = registerColor('breadcrumb.foreground', { light: transparent(foreground, 0.8), dark: transparent(foreground, 0.8), hcDark: transparent(foreground, 0.8), hcLight: transparent(foreground, 0.8) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsBackground = registerColor('breadcrumb.background', { light: editorBackground, dark: editorBackground, hcDark: editorBackground, hcLight: editorBackground }, nls.localize('breadcrumbsBackground', \"Background color of breadcrumb items.\"));\nexport const breadcrumbsFocusForeground = registerColor('breadcrumb.focusForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsFocusForeground', \"Color of focused breadcrumb items.\"));\nexport const breadcrumbsActiveSelectionForeground = registerColor('breadcrumb.activeSelectionForeground', { light: darken(foreground, 0.2), dark: lighten(foreground, 0.1), hcDark: lighten(foreground, 0.1), hcLight: lighten(foreground, 0.1) }, nls.localize('breadcrumbsSelectedForeground', \"Color of selected breadcrumb items.\"));\nexport const breadcrumbsPickerBackground = registerColor('breadcrumbPicker.background', { light: editorWidgetBackground, dark: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('breadcrumbsSelectedBackground', \"Background color of breadcrumb item picker.\"));\n// ----- merge\nconst headerTransparency = 0.5;\nconst currentBaseColor = Color.fromHex('#40C8AE').transparent(headerTransparency);\nconst incomingBaseColor = Color.fromHex('#40A6FF').transparent(headerTransparency);\nconst commonBaseColor = Color.fromHex('#606060').transparent(0.4);\nconst contentTransparency = 0.4;\nconst rulerTransparency = 1;\nexport const mergeCurrentHeaderBackground = registerColor('merge.currentHeaderBackground', { dark: currentBaseColor, light: currentBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCurrentHeaderBackground', 'Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCurrentContentBackground = registerColor('merge.currentContentBackground', { dark: transparent(mergeCurrentHeaderBackground, contentTransparency), light: transparent(mergeCurrentHeaderBackground, contentTransparency), hcDark: transparent(mergeCurrentHeaderBackground, contentTransparency), hcLight: transparent(mergeCurrentHeaderBackground, contentTransparency) }, nls.localize('mergeCurrentContentBackground', 'Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingHeaderBackground = registerColor('merge.incomingHeaderBackground', { dark: incomingBaseColor, light: incomingBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeIncomingHeaderBackground', 'Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeIncomingContentBackground = registerColor('merge.incomingContentBackground', { dark: transparent(mergeIncomingHeaderBackground, contentTransparency), light: transparent(mergeIncomingHeaderBackground, contentTransparency), hcDark: transparent(mergeIncomingHeaderBackground, contentTransparency), hcLight: transparent(mergeIncomingHeaderBackground, contentTransparency) }, nls.localize('mergeIncomingContentBackground', 'Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonHeaderBackground = registerColor('merge.commonHeaderBackground', { dark: commonBaseColor, light: commonBaseColor, hcDark: null, hcLight: null }, nls.localize('mergeCommonHeaderBackground', 'Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeCommonContentBackground = registerColor('merge.commonContentBackground', { dark: transparent(mergeCommonHeaderBackground, contentTransparency), light: transparent(mergeCommonHeaderBackground, contentTransparency), hcDark: transparent(mergeCommonHeaderBackground, contentTransparency), hcLight: transparent(mergeCommonHeaderBackground, contentTransparency) }, nls.localize('mergeCommonContentBackground', 'Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const mergeBorder = registerColor('merge.border', { dark: null, light: null, hcDark: '#C3DF6F', hcLight: '#007ACC' }, nls.localize('mergeBorder', 'Border color on headers and the splitter in inline merge-conflicts.'));\nexport const overviewRulerCurrentContentForeground = registerColor('editorOverviewRuler.currentContentForeground', { dark: transparent(mergeCurrentHeaderBackground, rulerTransparency), light: transparent(mergeCurrentHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCurrentContentForeground', 'Current overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerIncomingContentForeground = registerColor('editorOverviewRuler.incomingContentForeground', { dark: transparent(mergeIncomingHeaderBackground, rulerTransparency), light: transparent(mergeIncomingHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerIncomingContentForeground', 'Incoming overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerCommonContentForeground = registerColor('editorOverviewRuler.commonContentForeground', { dark: transparent(mergeCommonHeaderBackground, rulerTransparency), light: transparent(mergeCommonHeaderBackground, rulerTransparency), hcDark: mergeBorder, hcLight: mergeBorder }, nls.localize('overviewRulerCommonContentForeground', 'Common ancestor overview ruler foreground for inline merge-conflicts.'));\nexport const overviewRulerFindMatchForeground = registerColor('editorOverviewRuler.findMatchForeground', { dark: '#d186167e', light: '#d186167e', hcDark: '#AB5A00', hcLight: '' }, nls.localize('overviewRulerFindMatchForeground', 'Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations.'), true);\nexport const overviewRulerSelectionHighlightForeground = registerColor('editorOverviewRuler.selectionHighlightForeground', { dark: '#A0A0A0CC', light: '#A0A0A0CC', hcDark: '#A0A0A0CC', hcLight: '#A0A0A0CC' }, nls.localize('overviewRulerSelectionHighlightForeground', 'Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations.'), true);\n// ----- problems\nexport const problemsErrorIconForeground = registerColor('problemsErrorIcon.foreground', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('problemsErrorIconForeground', \"The color used for the problems error icon.\"));\nexport const problemsWarningIconForeground = registerColor('problemsWarningIcon.foreground', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('problemsWarningIconForeground', \"The color used for the problems warning icon.\"));\nexport const problemsInfoIconForeground = registerColor('problemsInfoIcon.foreground', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('problemsInfoIconForeground', \"The color used for the problems info icon.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { editorInfoForeground, editorWarningForeground, editorWarningBorder, editorInfoBorder } from './editorColors.js';\nimport { scrollbarSliderBackground, scrollbarSliderHoverBackground, scrollbarSliderActiveBackground } from './miscColors.js';\nexport const minimapFindMatch = registerColor('minimap.findMatchHighlight', { light: '#d18616', dark: '#d18616', hcDark: '#AB5A00', hcLight: '#0F4A85' }, nls.localize('minimapFindMatchHighlight', 'Minimap marker color for find matches.'), true);\nexport const minimapSelectionOccurrenceHighlight = registerColor('minimap.selectionOccurrenceHighlight', { light: '#c9c9c9', dark: '#676767', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionOccurrenceHighlight', 'Minimap marker color for repeating editor selections.'), true);\nexport const minimapSelection = registerColor('minimap.selectionHighlight', { light: '#ADD6FF', dark: '#264F78', hcDark: '#ffffff', hcLight: '#0F4A85' }, nls.localize('minimapSelectionHighlight', 'Minimap marker color for the editor selection.'), true);\nexport const minimapInfo = registerColor('minimap.infoHighlight', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoBorder, hcLight: editorInfoBorder }, nls.localize('minimapInfo', 'Minimap marker color for infos.'));\nexport const minimapWarning = registerColor('minimap.warningHighlight', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningBorder, hcLight: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Minimap marker color for warnings.'));\nexport const minimapError = registerColor('minimap.errorHighlight', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hcDark: new Color(new RGBA(255, 50, 50, 1)), hcLight: '#B5200D' }, nls.localize('minimapError', 'Minimap marker color for errors.'));\nexport const minimapBackground = registerColor('minimap.background', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('minimapBackground', \"Minimap background color.\"));\nexport const minimapForegroundOpacity = registerColor('minimap.foregroundOpacity', { dark: Color.fromHex('#000f'), light: Color.fromHex('#000f'), hcDark: Color.fromHex('#000f'), hcLight: Color.fromHex('#000f') }, nls.localize('minimapForegroundOpacity', 'Opacity of foreground elements rendered in the minimap. For example, \"#000000c0\" will render the elements with 75% opacity.'));\nexport const minimapSliderBackground = registerColor('minimapSlider.background', { light: transparent(scrollbarSliderBackground, 0.5), dark: transparent(scrollbarSliderBackground, 0.5), hcDark: transparent(scrollbarSliderBackground, 0.5), hcLight: transparent(scrollbarSliderBackground, 0.5) }, nls.localize('minimapSliderBackground', \"Minimap slider background color.\"));\nexport const minimapSliderHoverBackground = registerColor('minimapSlider.hoverBackground', { light: transparent(scrollbarSliderHoverBackground, 0.5), dark: transparent(scrollbarSliderHoverBackground, 0.5), hcDark: transparent(scrollbarSliderHoverBackground, 0.5), hcLight: transparent(scrollbarSliderHoverBackground, 0.5) }, nls.localize('minimapSliderHoverBackground', \"Minimap slider background color when hovering.\"));\nexport const minimapSliderActiveBackground = registerColor('minimapSlider.activeBackground', { light: transparent(scrollbarSliderActiveBackground, 0.5), dark: transparent(scrollbarSliderActiveBackground, 0.5), hcDark: transparent(scrollbarSliderActiveBackground, 0.5), hcLight: transparent(scrollbarSliderActiveBackground, 0.5) }, nls.localize('minimapSliderActiveBackground', \"Minimap slider background color when clicked on.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\nimport { registerColor, transparent } from '../colorUtils.js';\nimport { foreground } from './baseColors.js';\nimport { editorErrorForeground, editorInfoForeground, editorWarningForeground } from './editorColors.js';\nimport { minimapFindMatch } from './minimapColors.js';\nexport const chartsForeground = registerColor('charts.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('chartsForeground', \"The foreground color used in charts.\"));\nexport const chartsLines = registerColor('charts.lines', { dark: transparent(foreground, .5), light: transparent(foreground, .5), hcDark: transparent(foreground, .5), hcLight: transparent(foreground, .5) }, nls.localize('chartsLines', \"The color used for horizontal lines in charts.\"));\nexport const chartsRed = registerColor('charts.red', { dark: editorErrorForeground, light: editorErrorForeground, hcDark: editorErrorForeground, hcLight: editorErrorForeground }, nls.localize('chartsRed', \"The red color used in chart visualizations.\"));\nexport const chartsBlue = registerColor('charts.blue', { dark: editorInfoForeground, light: editorInfoForeground, hcDark: editorInfoForeground, hcLight: editorInfoForeground }, nls.localize('chartsBlue', \"The blue color used in chart visualizations.\"));\nexport const chartsYellow = registerColor('charts.yellow', { dark: editorWarningForeground, light: editorWarningForeground, hcDark: editorWarningForeground, hcLight: editorWarningForeground }, nls.localize('chartsYellow', \"The yellow color used in chart visualizations.\"));\nexport const chartsOrange = registerColor('charts.orange', { dark: minimapFindMatch, light: minimapFindMatch, hcDark: minimapFindMatch, hcLight: minimapFindMatch }, nls.localize('chartsOrange', \"The orange color used in chart visualizations.\"));\nexport const chartsGreen = registerColor('charts.green', { dark: '#89D185', light: '#388A34', hcDark: '#89D185', hcLight: '#374e06' }, nls.localize('chartsGreen', \"The green color used in chart visualizations.\"));\nexport const chartsPurple = registerColor('charts.purple', { dark: '#B180D7', light: '#652D90', hcDark: '#B180D7', hcLight: '#652D90' }, nls.localize('chartsPurple', \"The purple color used in chart visualizations.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, transparent, lighten, darken } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground } from './editorColors.js';\n// ----- input\nexport const inputBackground = registerColor('input.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('inputBoxBackground', \"Input box background.\"));\nexport const inputForeground = registerColor('input.foreground', { dark: foreground, light: foreground, hcDark: foreground, hcLight: foreground }, nls.localize('inputBoxForeground', \"Input box foreground.\"));\nexport const inputBorder = registerColor('input.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxBorder', \"Input box border.\"));\nexport const inputActiveOptionBorder = registerColor('inputOption.activeBorder', { dark: '#007ACC', light: '#007ACC', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputBoxActiveOptionBorder', \"Border color of activated options in input fields.\"));\nexport const inputActiveOptionHoverBackground = registerColor('inputOption.hoverBackground', { dark: '#5a5d5e80', light: '#b8b8b850', hcDark: null, hcLight: null }, nls.localize('inputOption.hoverBackground', \"Background color of activated options in input fields.\"));\nexport const inputActiveOptionBackground = registerColor('inputOption.activeBackground', { dark: transparent(focusBorder, 0.4), light: transparent(focusBorder, 0.2), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('inputOption.activeBackground', \"Background hover color of options in input fields.\"));\nexport const inputActiveOptionForeground = registerColor('inputOption.activeForeground', { dark: Color.white, light: Color.black, hcDark: foreground, hcLight: foreground }, nls.localize('inputOption.activeForeground', \"Foreground color of activated options in input fields.\"));\nexport const inputPlaceholderForeground = registerColor('input.placeholderForeground', { light: transparent(foreground, 0.5), dark: transparent(foreground, 0.5), hcDark: transparent(foreground, 0.7), hcLight: transparent(foreground, 0.7) }, nls.localize('inputPlaceholderForeground', \"Input box foreground color for placeholder text.\"));\n// ----- input validation\nexport const inputValidationInfoBackground = registerColor('inputValidation.infoBackground', { dark: '#063B49', light: '#D6ECF2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationInfoBackground', \"Input validation background color for information severity.\"));\nexport const inputValidationInfoForeground = registerColor('inputValidation.infoForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationInfoForeground', \"Input validation foreground color for information severity.\"));\nexport const inputValidationInfoBorder = registerColor('inputValidation.infoBorder', { dark: '#007acc', light: '#007acc', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationInfoBorder', \"Input validation border color for information severity.\"));\nexport const inputValidationWarningBackground = registerColor('inputValidation.warningBackground', { dark: '#352A05', light: '#F6F5D2', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationWarningBackground', \"Input validation background color for warning severity.\"));\nexport const inputValidationWarningForeground = registerColor('inputValidation.warningForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationWarningForeground', \"Input validation foreground color for warning severity.\"));\nexport const inputValidationWarningBorder = registerColor('inputValidation.warningBorder', { dark: '#B89500', light: '#B89500', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationWarningBorder', \"Input validation border color for warning severity.\"));\nexport const inputValidationErrorBackground = registerColor('inputValidation.errorBackground', { dark: '#5A1D1D', light: '#F2DEDE', hcDark: Color.black, hcLight: Color.white }, nls.localize('inputValidationErrorBackground', \"Input validation background color for error severity.\"));\nexport const inputValidationErrorForeground = registerColor('inputValidation.errorForeground', { dark: null, light: null, hcDark: null, hcLight: foreground }, nls.localize('inputValidationErrorForeground', \"Input validation foreground color for error severity.\"));\nexport const inputValidationErrorBorder = registerColor('inputValidation.errorBorder', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('inputValidationErrorBorder', \"Input validation border color for error severity.\"));\n// ----- select\nexport const selectBackground = registerColor('dropdown.background', { dark: '#3C3C3C', light: Color.white, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownBackground', \"Dropdown background.\"));\nexport const selectListBackground = registerColor('dropdown.listBackground', { dark: null, light: null, hcDark: Color.black, hcLight: Color.white }, nls.localize('dropdownListBackground', \"Dropdown list background.\"));\nexport const selectForeground = registerColor('dropdown.foreground', { dark: '#F0F0F0', light: foreground, hcDark: Color.white, hcLight: foreground }, nls.localize('dropdownForeground', \"Dropdown foreground.\"));\nexport const selectBorder = registerColor('dropdown.border', { dark: selectBackground, light: '#CECECE', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('dropdownBorder', \"Dropdown border.\"));\n// ------ button\nexport const buttonForeground = registerColor('button.foreground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: Color.white }, nls.localize('buttonForeground', \"Button foreground color.\"));\nexport const buttonSeparator = registerColor('button.separator', { dark: transparent(buttonForeground, .4), light: transparent(buttonForeground, .4), hcDark: transparent(buttonForeground, .4), hcLight: transparent(buttonForeground, .4) }, nls.localize('buttonSeparator', \"Button separator color.\"));\nexport const buttonBackground = registerColor('button.background', { dark: '#0E639C', light: '#007ACC', hcDark: null, hcLight: '#0F4A85' }, nls.localize('buttonBackground', \"Button background color.\"));\nexport const buttonHoverBackground = registerColor('button.hoverBackground', { dark: lighten(buttonBackground, 0.2), light: darken(buttonBackground, 0.2), hcDark: buttonBackground, hcLight: buttonBackground }, nls.localize('buttonHoverBackground', \"Button background color when hovering.\"));\nexport const buttonBorder = registerColor('button.border', { dark: contrastBorder, light: contrastBorder, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('buttonBorder', \"Button border color.\"));\nexport const buttonSecondaryForeground = registerColor('button.secondaryForeground', { dark: Color.white, light: Color.white, hcDark: Color.white, hcLight: foreground }, nls.localize('buttonSecondaryForeground', \"Secondary button foreground color.\"));\nexport const buttonSecondaryBackground = registerColor('button.secondaryBackground', { dark: '#3A3D41', light: '#5F6A79', hcDark: null, hcLight: Color.white }, nls.localize('buttonSecondaryBackground', \"Secondary button background color.\"));\nexport const buttonSecondaryHoverBackground = registerColor('button.secondaryHoverBackground', { dark: lighten(buttonSecondaryBackground, 0.2), light: darken(buttonSecondaryBackground, 0.2), hcDark: null, hcLight: null }, nls.localize('buttonSecondaryHoverBackground', \"Secondary button background color when hovering.\"));\n// ------ checkbox\nexport const checkboxBackground = registerColor('checkbox.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('checkbox.background', \"Background color of checkbox widget.\"));\nexport const checkboxSelectBackground = registerColor('checkbox.selectBackground', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('checkbox.select.background', \"Background color of checkbox widget when the element it's in is selected.\"));\nexport const checkboxForeground = registerColor('checkbox.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('checkbox.foreground', \"Foreground color of checkbox widget.\"));\nexport const checkboxBorder = registerColor('checkbox.border', { dark: selectBorder, light: selectBorder, hcDark: selectBorder, hcLight: selectBorder }, nls.localize('checkbox.border', \"Border color of checkbox widget.\"));\nexport const checkboxSelectBorder = registerColor('checkbox.selectBorder', { dark: iconForeground, light: iconForeground, hcDark: iconForeground, hcLight: iconForeground }, nls.localize('checkbox.select.border', \"Border color of checkbox widget when the element it's in is selected.\"));\n// ------ keybinding label\nexport const keybindingLabelBackground = registerColor('keybindingLabel.background', { dark: new Color(new RGBA(128, 128, 128, 0.17)), light: new Color(new RGBA(221, 221, 221, 0.4)), hcDark: Color.transparent, hcLight: Color.transparent }, nls.localize('keybindingLabelBackground', \"Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelForeground = registerColor('keybindingLabel.foreground', { dark: Color.fromHex('#CCCCCC'), light: Color.fromHex('#555555'), hcDark: Color.white, hcLight: foreground }, nls.localize('keybindingLabelForeground', \"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBorder = registerColor('keybindingLabel.border', { dark: new Color(new RGBA(51, 51, 51, 0.6)), light: new Color(new RGBA(204, 204, 204, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: contrastBorder }, nls.localize('keybindingLabelBorder', \"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.\"));\nexport const keybindingLabelBottomBorder = registerColor('keybindingLabel.bottomBorder', { dark: new Color(new RGBA(68, 68, 68, 0.6)), light: new Color(new RGBA(187, 187, 187, 0.4)), hcDark: new Color(new RGBA(111, 195, 223)), hcLight: foreground }, nls.localize('keybindingLabelBottomBorder', \"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color } from '../../../../base/common/color.js';\nimport { registerColor, darken, lighten, transparent, ifDefinedThenElse } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground, contrastBorder, activeContrastBorder, focusBorder, iconForeground } from './baseColors.js';\nimport { editorWidgetBackground, editorFindMatchHighlightBorder, editorFindMatchHighlight, widgetShadow } from './editorColors.js';\nexport const listFocusBackground = registerColor('list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusBackground', \"List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusForeground = registerColor('list.focusForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusForeground', \"List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusOutline = registerColor('list.focusOutline', { dark: focusBorder, light: focusBorder, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('listFocusOutline', \"List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listFocusAndSelectionOutline = registerColor('list.focusAndSelectionOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listFocusAndSelectionOutline', \"List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionBackground = registerColor('list.activeSelectionBackground', { dark: '#04395E', light: '#0060C0', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listActiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionForeground = registerColor('list.activeSelectionForeground', { dark: Color.white, light: Color.white, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listActiveSelectionIconForeground = registerColor('list.activeSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listActiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionBackground = registerColor('list.inactiveSelectionBackground', { dark: '#37373D', light: '#E4E6F1', hcDark: null, hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listInactiveSelectionBackground', \"List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionForeground = registerColor('list.inactiveSelectionForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionForeground', \"List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveSelectionIconForeground = registerColor('list.inactiveSelectionIconForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveSelectionIconForeground', \"List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusBackground = registerColor('list.inactiveFocusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusBackground', \"List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listInactiveFocusOutline = registerColor('list.inactiveFocusOutline', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listInactiveFocusOutline', \"List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.\"));\nexport const listHoverBackground = registerColor('list.hoverBackground', { dark: '#2A2D2E', light: '#F0F0F0', hcDark: Color.white.transparent(0.1), hcLight: Color.fromHex('#0F4A85').transparent(0.1) }, nls.localize('listHoverBackground', \"List/Tree background when hovering over items using the mouse.\"));\nexport const listHoverForeground = registerColor('list.hoverForeground', { dark: null, light: null, hcDark: null, hcLight: null }, nls.localize('listHoverForeground', \"List/Tree foreground when hovering over items using the mouse.\"));\nexport const listDropOverBackground = registerColor('list.dropBackground', { dark: '#062F4A', light: '#D6EBFF', hcDark: null, hcLight: null }, nls.localize('listDropBackground', \"List/Tree drag and drop background when moving items over other items when using the mouse.\"));\nexport const listDropBetweenBackground = registerColor('list.dropBetweenBackground', { dark: iconForeground, light: iconForeground, hcDark: null, hcLight: null }, nls.localize('listDropBetweenBackground', \"List/Tree drag and drop border color when moving items between items when using the mouse.\"));\nexport const listHighlightForeground = registerColor('list.highlightForeground', { dark: '#2AAAFF', light: '#0066BF', hcDark: focusBorder, hcLight: focusBorder }, nls.localize('highlight', 'List/Tree foreground color of the match highlights when searching inside the list/tree.'));\nexport const listFocusHighlightForeground = registerColor('list.focusHighlightForeground', { dark: listHighlightForeground, light: ifDefinedThenElse(listActiveSelectionBackground, listHighlightForeground, '#BBE7FF'), hcDark: listHighlightForeground, hcLight: listHighlightForeground }, nls.localize('listFocusHighlightForeground', 'List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree.'));\nexport const listInvalidItemForeground = registerColor('list.invalidItemForeground', { dark: '#B89500', light: '#B89500', hcDark: '#B89500', hcLight: '#B5200D' }, nls.localize('invalidItemForeground', 'List/Tree foreground color for invalid items, for example an unresolved root in explorer.'));\nexport const listErrorForeground = registerColor('list.errorForeground', { dark: '#F88070', light: '#B01011', hcDark: null, hcLight: null }, nls.localize('listErrorForeground', 'Foreground color of list items containing errors.'));\nexport const listWarningForeground = registerColor('list.warningForeground', { dark: '#CCA700', light: '#855F00', hcDark: null, hcLight: null }, nls.localize('listWarningForeground', 'Foreground color of list items containing warnings.'));\nexport const listFilterWidgetBackground = registerColor('listFilterWidget.background', { light: darken(editorWidgetBackground, 0), dark: lighten(editorWidgetBackground, 0), hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('listFilterWidgetBackground', 'Background color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetOutline = registerColor('listFilterWidget.outline', { dark: Color.transparent, light: Color.transparent, hcDark: '#f38518', hcLight: '#007ACC' }, nls.localize('listFilterWidgetOutline', 'Outline color of the type filter widget in lists and trees.'));\nexport const listFilterWidgetNoMatchesOutline = registerColor('listFilterWidget.noMatchesOutline', { dark: '#BE1100', light: '#BE1100', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('listFilterWidgetNoMatchesOutline', 'Outline color of the type filter widget in lists and trees, when there are no matches.'));\nexport const listFilterWidgetShadow = registerColor('listFilterWidget.shadow', { dark: widgetShadow, light: widgetShadow, hcDark: widgetShadow, hcLight: widgetShadow }, nls.localize('listFilterWidgetShadow', 'Shadow color of the type filter widget in lists and trees.'));\nexport const listFilterMatchHighlight = registerColor('list.filterMatchBackground', { dark: editorFindMatchHighlight, light: editorFindMatchHighlight, hcDark: null, hcLight: null }, nls.localize('listFilterMatchHighlight', 'Background color of the filtered match.'));\nexport const listFilterMatchHighlightBorder = registerColor('list.filterMatchBorder', { dark: editorFindMatchHighlightBorder, light: editorFindMatchHighlightBorder, hcDark: contrastBorder, hcLight: activeContrastBorder }, nls.localize('listFilterMatchHighlightBorder', 'Border color of the filtered match.'));\nexport const listDeemphasizedForeground = registerColor('list.deemphasizedForeground', { dark: '#8C8C8C', light: '#8E8E90', hcDark: '#A7A8A9', hcLight: '#666666' }, nls.localize('listDeemphasizedForeground', \"List/Tree foreground color for items that are deemphasized.\"));\n// ------ tree\nexport const treeIndentGuidesStroke = registerColor('tree.indentGuidesStroke', { dark: '#585858', light: '#a9a9a9', hcDark: '#a9a9a9', hcLight: '#a5a5a5' }, nls.localize('treeIndentGuidesStroke', \"Tree stroke color for the indentation guides.\"));\nexport const treeInactiveIndentGuidesStroke = registerColor('tree.inactiveIndentGuidesStroke', { dark: transparent(treeIndentGuidesStroke, 0.4), light: transparent(treeIndentGuidesStroke, 0.4), hcDark: transparent(treeIndentGuidesStroke, 0.4), hcLight: transparent(treeIndentGuidesStroke, 0.4) }, nls.localize('treeInactiveIndentGuidesStroke', \"Tree stroke color for the indentation guides that are not active.\"));\n// ------ table\nexport const tableColumnsBorder = registerColor('tree.tableColumnsBorder', { dark: '#CCCCCC20', light: '#61616120', hcDark: null, hcLight: null }, nls.localize('tableColumnsBorder', \"Table border color between columns.\"));\nexport const tableOddRowsBackgroundColor = registerColor('tree.tableOddRowsBackground', { dark: transparent(foreground, 0.04), light: transparent(foreground, 0.04), hcDark: null, hcLight: null }, nls.localize('tableOddRowsBackgroundColor', \"Background color for odd table rows.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor } from '../colorUtils.js';\n// Import the colors we need\nimport { contrastBorder, activeContrastBorder } from './baseColors.js';\nimport { selectForeground, selectBackground } from './inputColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground } from './listColors.js';\nexport const menuBorder = registerColor('menu.border', { dark: null, light: null, hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuBorder', \"Border color of menus.\"));\nexport const menuForeground = registerColor('menu.foreground', { dark: selectForeground, light: selectForeground, hcDark: selectForeground, hcLight: selectForeground }, nls.localize('menuForeground', \"Foreground color of menu items.\"));\nexport const menuBackground = registerColor('menu.background', { dark: selectBackground, light: selectBackground, hcDark: selectBackground, hcLight: selectBackground }, nls.localize('menuBackground', \"Background color of menu items.\"));\nexport const menuSelectionForeground = registerColor('menu.selectionForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('menuSelectionForeground', \"Foreground color of the selected menu item in menus.\"));\nexport const menuSelectionBackground = registerColor('menu.selectionBackground', { dark: listActiveSelectionBackground, light: listActiveSelectionBackground, hcDark: listActiveSelectionBackground, hcLight: listActiveSelectionBackground }, nls.localize('menuSelectionBackground', \"Background color of the selected menu item in menus.\"));\nexport const menuSelectionBorder = registerColor('menu.selectionBorder', { dark: null, light: null, hcDark: activeContrastBorder, hcLight: activeContrastBorder }, nls.localize('menuSelectionBorder', \"Border color of the selected menu item in menus.\"));\nexport const menuSeparatorBackground = registerColor('menu.separatorBackground', { dark: '#606060', light: '#D4D4D4', hcDark: contrastBorder, hcLight: contrastBorder }, nls.localize('menuSeparatorBackground', \"Color of a separator menu item in menus.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { registerColor, oneOf } from '../colorUtils.js';\n// Import the colors we need\nimport { editorWidgetBackground, editorWidgetForeground } from './editorColors.js';\nimport { listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground } from './listColors.js';\nexport const quickInputBackground = registerColor('quickInput.background', { dark: editorWidgetBackground, light: editorWidgetBackground, hcDark: editorWidgetBackground, hcLight: editorWidgetBackground }, nls.localize('pickerBackground', \"Quick picker background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputForeground = registerColor('quickInput.foreground', { dark: editorWidgetForeground, light: editorWidgetForeground, hcDark: editorWidgetForeground, hcLight: editorWidgetForeground }, nls.localize('pickerForeground', \"Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const quickInputTitleBackground = registerColor('quickInputTitle.background', { dark: new Color(new RGBA(255, 255, 255, 0.105)), light: new Color(new RGBA(0, 0, 0, 0.06)), hcDark: '#000000', hcLight: Color.white }, nls.localize('pickerTitleBackground', \"Quick picker title background color. The quick picker widget is the container for pickers like the command palette.\"));\nexport const pickerGroupForeground = registerColor('pickerGroup.foreground', { dark: '#3794FF', light: '#0066BF', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupForeground', \"Quick picker color for grouping labels.\"));\nexport const pickerGroupBorder = registerColor('pickerGroup.border', { dark: '#3F3F46', light: '#CCCEDB', hcDark: Color.white, hcLight: '#0F4A85' }, nls.localize('pickerGroupBorder', \"Quick picker color for grouping borders.\"));\nexport const _deprecatedQuickInputListFocusBackground = registerColor('quickInput.list.focusBackground', { dark: null, light: null, hcDark: null, hcLight: null }, '', undefined, nls.localize('quickInput.list.focusBackground deprecation', \"Please use quickInputList.focusBackground instead\"));\nexport const quickInputListFocusForeground = registerColor('quickInputList.focusForeground', { dark: listActiveSelectionForeground, light: listActiveSelectionForeground, hcDark: listActiveSelectionForeground, hcLight: listActiveSelectionForeground }, nls.localize('quickInput.listFocusForeground', \"Quick picker foreground color for the focused item.\"));\nexport const quickInputListFocusIconForeground = registerColor('quickInputList.focusIconForeground', { dark: listActiveSelectionIconForeground, light: listActiveSelectionIconForeground, hcDark: listActiveSelectionIconForeground, hcLight: listActiveSelectionIconForeground }, nls.localize('quickInput.listFocusIconForeground', \"Quick picker icon foreground color for the focused item.\"));\nexport const quickInputListFocusBackground = registerColor('quickInputList.focusBackground', { dark: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), light: oneOf(_deprecatedQuickInputListFocusBackground, listActiveSelectionBackground), hcDark: null, hcLight: null }, nls.localize('quickInput.listFocusBackground', \"Quick picker background color for the focused item.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../../nls.js';\n// Import the effects we need\nimport { registerColor, transparent } from '../colorUtils.js';\n// Import the colors we need\nimport { foreground } from './baseColors.js';\nimport { editorFindMatchHighlight, editorFindMatchHighlightBorder } from './editorColors.js';\nexport const searchResultsInfoForeground = registerColor('search.resultsInfoForeground', { light: foreground, dark: transparent(foreground, 0.65), hcDark: foreground, hcLight: foreground }, nls.localize('search.resultsInfoForeground', \"Color of the text in the search viewlet's completion message.\"));\n// ----- search editor (Distinct from normal editor find match to allow for better differentiation)\nexport const searchEditorFindMatch = registerColor('searchEditor.findMatchBackground', { light: transparent(editorFindMatchHighlight, 0.66), dark: transparent(editorFindMatchHighlight, 0.66), hcDark: editorFindMatchHighlight, hcLight: editorFindMatchHighlight }, nls.localize('searchEditor.queryMatch', \"Color of the Search Editor query matches.\"));\nexport const searchEditorFindMatchBorder = registerColor('searchEditor.findMatchBorder', { light: transparent(editorFindMatchHighlightBorder, 0.66), dark: transparent(editorFindMatchHighlightBorder, 0.66), hcDark: editorFindMatchHighlightBorder, hcLight: editorFindMatchHighlightBorder }, nls.localize('searchEditor.editorFindMatchBorder', \"Border color of the Search Editor query matches.\"));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport * from './colorUtils.js';\n// Make sure all color files are exported\nexport * from './colors/baseColors.js';\nexport * from './colors/chartsColors.js';\nexport * from './colors/editorColors.js';\nexport * from './colors/inputColors.js';\nexport * from './colors/listColors.js';\nexport * from './colors/menuColors.js';\nexport * from './colors/minimapColors.js';\nexport * from './colors/miscColors.js';\nexport * from './colors/quickpickColors.js';\nexport * from './colors/searchColors.js';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { DomScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport './hoverWidget.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nexport class HoverWidget extends Disposable {\n constructor() {\n super();\n this.containerDomNode = document.createElement('div');\n this.containerDomNode.className = 'monaco-hover';\n this.containerDomNode.tabIndex = 0;\n this.containerDomNode.setAttribute('role', 'tooltip');\n this.contentsDomNode = document.createElement('div');\n this.contentsDomNode.className = 'monaco-hover-content';\n this.scrollbar = this._register(new DomScrollableElement(this.contentsDomNode, {\n consumeMouseWheelIfScrollbarIsNeeded: true\n }));\n this.containerDomNode.appendChild(this.scrollbar.getDomNode());\n }\n onContentsChanged() {\n this.scrollbar.scanDomNode();\n }\n}\nexport class HoverAction extends Disposable {\n static render(parent, actionOptions, keybindingLabel) {\n return new HoverAction(parent, actionOptions, keybindingLabel);\n }\n constructor(parent, actionOptions, keybindingLabel) {\n super();\n this.actionContainer = dom.append(parent, $('div.action-container'));\n this.actionContainer.setAttribute('tabindex', '0');\n this.action = dom.append(this.actionContainer, $('a.action'));\n this.action.setAttribute('role', 'button');\n if (actionOptions.iconClass) {\n dom.append(this.action, $(`span.icon.${actionOptions.iconClass}`));\n }\n const label = dom.append(this.action, $('span'));\n label.textContent = keybindingLabel ? `${actionOptions.label} (${keybindingLabel})` : actionOptions.label;\n this._store.add(new ClickAction(this.actionContainer, actionOptions.run));\n this._store.add(new KeyDownAction(this.actionContainer, actionOptions.run, [3 /* KeyCode.Enter */, 10 /* KeyCode.Space */]));\n this.setEnabled(true);\n }\n setEnabled(enabled) {\n if (enabled) {\n this.actionContainer.classList.remove('disabled');\n this.actionContainer.removeAttribute('aria-disabled');\n }\n else {\n this.actionContainer.classList.add('disabled');\n this.actionContainer.setAttribute('aria-disabled', 'true');\n }\n }\n}\nexport function getHoverAccessibleViewHint(shouldHaveHint, keybinding) {\n return shouldHaveHint && keybinding ? localize('acessibleViewHint', \"Inspect this in the accessible view with {0}.\", keybinding) : shouldHaveHint ? localize('acessibleViewHintNoKbOpen', \"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding.\") : '';\n}\nexport class ClickAction extends Disposable {\n constructor(container, run) {\n super();\n this._register(dom.addDisposableListener(container, dom.EventType.CLICK, e => {\n e.stopPropagation();\n e.preventDefault();\n run(container);\n }));\n }\n}\nexport class KeyDownAction extends Disposable {\n constructor(container, run, keyCodes) {\n super();\n this._register(dom.addDisposableListener(container, dom.EventType.KEY_DOWN, e => {\n const event = new StandardKeyboardEvent(e);\n if (keyCodes.some(keyCode => event.equals(keyCode))) {\n e.stopPropagation();\n e.preventDefault();\n run(container);\n }\n }));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createScopedLineTokens(context, offset) {\n const tokenCount = context.getCount();\n const tokenIndex = context.findTokenIndexAtOffset(offset);\n const desiredLanguageId = context.getLanguageId(tokenIndex);\n let lastTokenIndex = tokenIndex;\n while (lastTokenIndex + 1 < tokenCount && context.getLanguageId(lastTokenIndex + 1) === desiredLanguageId) {\n lastTokenIndex++;\n }\n let firstTokenIndex = tokenIndex;\n while (firstTokenIndex > 0 && context.getLanguageId(firstTokenIndex - 1) === desiredLanguageId) {\n firstTokenIndex--;\n }\n return new ScopedLineTokens(context, desiredLanguageId, firstTokenIndex, lastTokenIndex + 1, context.getStartOffset(firstTokenIndex), context.getEndOffset(lastTokenIndex));\n}\nexport class ScopedLineTokens {\n constructor(actual, languageId, firstTokenIndex, lastTokenIndex, firstCharOffset, lastCharOffset) {\n this._scopedLineTokensBrand = undefined;\n this._actual = actual;\n this.languageId = languageId;\n this._firstTokenIndex = firstTokenIndex;\n this._lastTokenIndex = lastTokenIndex;\n this.firstCharOffset = firstCharOffset;\n this._lastCharOffset = lastCharOffset;\n this.languageIdCodec = actual.languageIdCodec;\n }\n getLineContent() {\n const actualLineContent = this._actual.getLineContent();\n return actualLineContent.substring(this.firstCharOffset, this._lastCharOffset);\n }\n getLineLength() {\n return this._lastCharOffset - this.firstCharOffset;\n }\n getActualLineContentBefore(offset) {\n const actualLineContent = this._actual.getLineContent();\n return actualLineContent.substring(0, this.firstCharOffset + offset);\n }\n getTokenCount() {\n return this._lastTokenIndex - this._firstTokenIndex;\n }\n findTokenIndexAtOffset(offset) {\n return this._actual.findTokenIndexAtOffset(offset + this.firstCharOffset) - this._firstTokenIndex;\n }\n getStandardTokenType(tokenIndex) {\n return this._actual.getStandardTokenType(tokenIndex + this._firstTokenIndex);\n }\n toIViewLineTokens() {\n return this._actual.sliceAndInflate(this.firstCharOffset, this._lastCharOffset, 0);\n }\n}\nexport function ignoreBracketsInToken(standardTokenType) {\n return (standardTokenType & 3 /* IgnoreBracketsInTokens.value */) !== 0;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar FileReferencesRenderer_1;\nimport * as dom from '../../../../../base/browser/dom.js';\nimport { CountBadge } from '../../../../../base/browser/ui/countBadge/countBadge.js';\nimport { HighlightedLabel } from '../../../../../base/browser/ui/highlightedlabel/highlightedLabel.js';\nimport { IconLabel } from '../../../../../base/browser/ui/iconLabel/iconLabel.js';\nimport { createMatches, FuzzyScore } from '../../../../../base/common/filters.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { basename, dirname } from '../../../../../base/common/resources.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nimport { ILabelService } from '../../../../../platform/label/common/label.js';\nimport { defaultCountBadgeStyles } from '../../../../../platform/theme/browser/defaultStyles.js';\nimport { FileReferences, OneReference, ReferencesModel } from '../referencesModel.js';\nlet DataSource = class DataSource {\n constructor(_resolverService) {\n this._resolverService = _resolverService;\n }\n hasChildren(element) {\n if (element instanceof ReferencesModel) {\n return true;\n }\n if (element instanceof FileReferences) {\n return true;\n }\n return false;\n }\n getChildren(element) {\n if (element instanceof ReferencesModel) {\n return element.groups;\n }\n if (element instanceof FileReferences) {\n return element.resolve(this._resolverService).then(val => {\n // if (element.failure) {\n // \t// refresh the element on failure so that\n // \t// we can update its rendering\n // \treturn tree.refresh(element).then(() => val.children);\n // }\n return val.children;\n });\n }\n throw new Error('bad tree');\n }\n};\nDataSource = __decorate([\n __param(0, ITextModelService)\n], DataSource);\nexport { DataSource };\n//#endregion\nexport class Delegate {\n getHeight() {\n return 23;\n }\n getTemplateId(element) {\n if (element instanceof FileReferences) {\n return FileReferencesRenderer.id;\n }\n else {\n return OneReferenceRenderer.id;\n }\n }\n}\nlet StringRepresentationProvider = class StringRepresentationProvider {\n constructor(_keybindingService) {\n this._keybindingService = _keybindingService;\n }\n getKeyboardNavigationLabel(element) {\n var _a;\n if (element instanceof OneReference) {\n const parts = (_a = element.parent.getPreview(element)) === null || _a === void 0 ? void 0 : _a.preview(element.range);\n if (parts) {\n return parts.value;\n }\n }\n // FileReferences or unresolved OneReference\n return basename(element.uri);\n }\n};\nStringRepresentationProvider = __decorate([\n __param(0, IKeybindingService)\n], StringRepresentationProvider);\nexport { StringRepresentationProvider };\nexport class IdentityProvider {\n getId(element) {\n return element instanceof OneReference ? element.id : element.uri;\n }\n}\n//#region render: File\nlet FileReferencesTemplate = class FileReferencesTemplate extends Disposable {\n constructor(container, _labelService) {\n super();\n this._labelService = _labelService;\n const parent = document.createElement('div');\n parent.classList.add('reference-file');\n this.file = this._register(new IconLabel(parent, { supportHighlights: true }));\n this.badge = new CountBadge(dom.append(parent, dom.$('.count')), {}, defaultCountBadgeStyles);\n container.appendChild(parent);\n }\n set(element, matches) {\n const parent = dirname(element.uri);\n this.file.setLabel(this._labelService.getUriBasenameLabel(element.uri), this._labelService.getUriLabel(parent, { relative: true }), { title: this._labelService.getUriLabel(element.uri), matches });\n const len = element.children.length;\n this.badge.setCount(len);\n if (len > 1) {\n this.badge.setTitleFormat(localize('referencesCount', \"{0} references\", len));\n }\n else {\n this.badge.setTitleFormat(localize('referenceCount', \"{0} reference\", len));\n }\n }\n};\nFileReferencesTemplate = __decorate([\n __param(1, ILabelService)\n], FileReferencesTemplate);\nlet FileReferencesRenderer = FileReferencesRenderer_1 = class FileReferencesRenderer {\n constructor(_instantiationService) {\n this._instantiationService = _instantiationService;\n this.templateId = FileReferencesRenderer_1.id;\n }\n renderTemplate(container) {\n return this._instantiationService.createInstance(FileReferencesTemplate, container);\n }\n renderElement(node, index, template) {\n template.set(node.element, createMatches(node.filterData));\n }\n disposeTemplate(templateData) {\n templateData.dispose();\n }\n};\nFileReferencesRenderer.id = 'FileReferencesRenderer';\nFileReferencesRenderer = FileReferencesRenderer_1 = __decorate([\n __param(0, IInstantiationService)\n], FileReferencesRenderer);\nexport { FileReferencesRenderer };\n//#endregion\n//#region render: Reference\nclass OneReferenceTemplate extends Disposable {\n constructor(container) {\n super();\n this.label = this._register(new HighlightedLabel(container));\n }\n set(element, score) {\n var _a;\n const preview = (_a = element.parent.getPreview(element)) === null || _a === void 0 ? void 0 : _a.preview(element.range);\n if (!preview || !preview.value) {\n // this means we FAILED to resolve the document or the value is the empty string\n this.label.set(`${basename(element.uri)}:${element.range.startLineNumber + 1}:${element.range.startColumn + 1}`);\n }\n else {\n // render search match as highlight unless\n // we have score, then render the score\n const { value, highlight } = preview;\n if (score && !FuzzyScore.isDefault(score)) {\n this.label.element.classList.toggle('referenceMatch', false);\n this.label.set(value, createMatches(score));\n }\n else {\n this.label.element.classList.toggle('referenceMatch', true);\n this.label.set(value, [highlight]);\n }\n }\n }\n}\nexport class OneReferenceRenderer {\n constructor() {\n this.templateId = OneReferenceRenderer.id;\n }\n renderTemplate(container) {\n return new OneReferenceTemplate(container);\n }\n renderElement(node, index, templateData) {\n templateData.set(node.element, node.filterData);\n }\n disposeTemplate(templateData) {\n templateData.dispose();\n }\n}\nOneReferenceRenderer.id = 'OneReferenceRenderer';\n//#endregion\nexport class AccessibilityProvider {\n getWidgetAriaLabel() {\n return localize('treeAriaLabel', \"References\");\n }\n getAriaLabel(element) {\n return element.ariaMessage;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../../base/browser/dom.js';\nimport { Sizing, SplitView } from '../../../../../base/browser/ui/splitview/splitview.js';\nimport { Color } from '../../../../../base/common/color.js';\nimport { Emitter, Event } from '../../../../../base/common/event.js';\nimport { DisposableStore, dispose } from '../../../../../base/common/lifecycle.js';\nimport { Schemas } from '../../../../../base/common/network.js';\nimport { basenameOrAuthority, dirname } from '../../../../../base/common/resources.js';\nimport './referencesWidget.css';\nimport { EmbeddedCodeEditorWidget } from '../../../../browser/widget/codeEditor/embeddedCodeEditorWidget.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { ModelDecorationOptions, TextModel } from '../../../../common/model/textModel.js';\nimport { ILanguageConfigurationService } from '../../../../common/languages/languageConfigurationRegistry.js';\nimport { PLAINTEXT_LANGUAGE_ID } from '../../../../common/languages/modesRegistry.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { ITextModelService } from '../../../../common/services/resolverService.js';\nimport { AccessibilityProvider, DataSource, Delegate, FileReferencesRenderer, IdentityProvider, OneReferenceRenderer, StringRepresentationProvider } from './referencesTree.js';\nimport * as peekView from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nimport { ILabelService } from '../../../../../platform/label/common/label.js';\nimport { WorkbenchAsyncDataTree } from '../../../../../platform/list/browser/listService.js';\nimport { IThemeService } from '../../../../../platform/theme/common/themeService.js';\nimport { IUndoRedoService } from '../../../../../platform/undoRedo/common/undoRedo.js';\nimport { FileReferences, OneReference } from '../referencesModel.js';\nclass DecorationsManager {\n constructor(_editor, _model) {\n this._editor = _editor;\n this._model = _model;\n this._decorations = new Map();\n this._decorationIgnoreSet = new Set();\n this._callOnDispose = new DisposableStore();\n this._callOnModelChange = new DisposableStore();\n this._callOnDispose.add(this._editor.onDidChangeModel(() => this._onModelChanged()));\n this._onModelChanged();\n }\n dispose() {\n this._callOnModelChange.dispose();\n this._callOnDispose.dispose();\n this.removeDecorations();\n }\n _onModelChanged() {\n this._callOnModelChange.clear();\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n for (const ref of this._model.references) {\n if (ref.uri.toString() === model.uri.toString()) {\n this._addDecorations(ref.parent);\n return;\n }\n }\n }\n _addDecorations(reference) {\n if (!this._editor.hasModel()) {\n return;\n }\n this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(() => this._onDecorationChanged()));\n const newDecorations = [];\n const newDecorationsActualIndex = [];\n for (let i = 0, len = reference.children.length; i < len; i++) {\n const oneReference = reference.children[i];\n if (this._decorationIgnoreSet.has(oneReference.id)) {\n continue;\n }\n if (oneReference.uri.toString() !== this._editor.getModel().uri.toString()) {\n continue;\n }\n newDecorations.push({\n range: oneReference.range,\n options: DecorationsManager.DecorationOptions\n });\n newDecorationsActualIndex.push(i);\n }\n this._editor.changeDecorations((changeAccessor) => {\n const decorations = changeAccessor.deltaDecorations([], newDecorations);\n for (let i = 0; i < decorations.length; i++) {\n this._decorations.set(decorations[i], reference.children[newDecorationsActualIndex[i]]);\n }\n });\n }\n _onDecorationChanged() {\n const toRemove = [];\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n for (const [decorationId, reference] of this._decorations) {\n const newRange = model.getDecorationRange(decorationId);\n if (!newRange) {\n continue;\n }\n let ignore = false;\n if (Range.equalsRange(newRange, reference.range)) {\n continue;\n }\n if (Range.spansMultipleLines(newRange)) {\n ignore = true;\n }\n else {\n const lineLength = reference.range.endColumn - reference.range.startColumn;\n const newLineLength = newRange.endColumn - newRange.startColumn;\n if (lineLength !== newLineLength) {\n ignore = true;\n }\n }\n if (ignore) {\n this._decorationIgnoreSet.add(reference.id);\n toRemove.push(decorationId);\n }\n else {\n reference.range = newRange;\n }\n }\n for (let i = 0, len = toRemove.length; i < len; i++) {\n this._decorations.delete(toRemove[i]);\n }\n this._editor.removeDecorations(toRemove);\n }\n removeDecorations() {\n this._editor.removeDecorations([...this._decorations.keys()]);\n this._decorations.clear();\n }\n}\nDecorationsManager.DecorationOptions = ModelDecorationOptions.register({\n description: 'reference-decoration',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n className: 'reference-decoration'\n});\nexport class LayoutData {\n constructor() {\n this.ratio = 0.7;\n this.heightInLines = 18;\n }\n static fromJSON(raw) {\n let ratio;\n let heightInLines;\n try {\n const data = JSON.parse(raw);\n ratio = data.ratio;\n heightInLines = data.heightInLines;\n }\n catch (_a) {\n //\n }\n return {\n ratio: ratio || 0.7,\n heightInLines: heightInLines || 18\n };\n }\n}\nclass ReferencesTree extends WorkbenchAsyncDataTree {\n}\n/**\n * ZoneWidget that is shown inside the editor\n */\nlet ReferenceWidget = class ReferenceWidget extends peekView.PeekViewWidget {\n constructor(editor, _defaultTreeKeyboardSupport, layoutData, themeService, _textModelResolverService, _instantiationService, _peekViewService, _uriLabel, _undoRedoService, _keybindingService, _languageService, _languageConfigurationService) {\n super(editor, { showFrame: false, showArrow: true, isResizeable: true, isAccessible: true, supportOnTitleClick: true }, _instantiationService);\n this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n this.layoutData = layoutData;\n this._textModelResolverService = _textModelResolverService;\n this._instantiationService = _instantiationService;\n this._peekViewService = _peekViewService;\n this._uriLabel = _uriLabel;\n this._undoRedoService = _undoRedoService;\n this._keybindingService = _keybindingService;\n this._languageService = _languageService;\n this._languageConfigurationService = _languageConfigurationService;\n this._disposeOnNewModel = new DisposableStore();\n this._callOnDispose = new DisposableStore();\n this._onDidSelectReference = new Emitter();\n this.onDidSelectReference = this._onDidSelectReference.event;\n this._dim = new dom.Dimension(0, 0);\n this._applyTheme(themeService.getColorTheme());\n this._callOnDispose.add(themeService.onDidColorThemeChange(this._applyTheme.bind(this)));\n this._peekViewService.addExclusiveWidget(editor, this);\n this.create();\n }\n dispose() {\n this.setModel(undefined);\n this._callOnDispose.dispose();\n this._disposeOnNewModel.dispose();\n dispose(this._preview);\n dispose(this._previewNotAvailableMessage);\n dispose(this._tree);\n dispose(this._previewModelReference);\n this._splitView.dispose();\n super.dispose();\n }\n _applyTheme(theme) {\n const borderColor = theme.getColor(peekView.peekViewBorder) || Color.transparent;\n this.style({\n arrowColor: borderColor,\n frameColor: borderColor,\n headerBackgroundColor: theme.getColor(peekView.peekViewTitleBackground) || Color.transparent,\n primaryHeadingColor: theme.getColor(peekView.peekViewTitleForeground),\n secondaryHeadingColor: theme.getColor(peekView.peekViewTitleInfoForeground)\n });\n }\n show(where) {\n super.show(where, this.layoutData.heightInLines || 18);\n }\n focusOnReferenceTree() {\n this._tree.domFocus();\n }\n focusOnPreviewEditor() {\n this._preview.focus();\n }\n isPreviewEditorFocused() {\n return this._preview.hasTextFocus();\n }\n _onTitleClick(e) {\n if (this._preview && this._preview.getModel()) {\n this._onDidSelectReference.fire({\n element: this._getFocusedReference(),\n kind: e.ctrlKey || e.metaKey || e.altKey ? 'side' : 'open',\n source: 'title'\n });\n }\n }\n _fillBody(containerElement) {\n this.setCssClass('reference-zone-widget');\n // message pane\n this._messageContainer = dom.append(containerElement, dom.$('div.messages'));\n dom.hide(this._messageContainer);\n this._splitView = new SplitView(containerElement, { orientation: 1 /* Orientation.HORIZONTAL */ });\n // editor\n this._previewContainer = dom.append(containerElement, dom.$('div.preview.inline'));\n const options = {\n scrollBeyondLastLine: false,\n scrollbar: {\n verticalScrollbarSize: 14,\n horizontal: 'auto',\n useShadows: true,\n verticalHasArrows: false,\n horizontalHasArrows: false,\n alwaysConsumeMouseWheel: true\n },\n overviewRulerLanes: 2,\n fixedOverflowWidgets: true,\n minimap: {\n enabled: false\n }\n };\n this._preview = this._instantiationService.createInstance(EmbeddedCodeEditorWidget, this._previewContainer, options, {}, this.editor);\n dom.hide(this._previewContainer);\n this._previewNotAvailableMessage = new TextModel(nls.localize('missingPreviewMessage', \"no preview available\"), PLAINTEXT_LANGUAGE_ID, TextModel.DEFAULT_CREATION_OPTIONS, null, this._undoRedoService, this._languageService, this._languageConfigurationService);\n // tree\n this._treeContainer = dom.append(containerElement, dom.$('div.ref-tree.inline'));\n const treeOptions = {\n keyboardSupport: this._defaultTreeKeyboardSupport,\n accessibilityProvider: new AccessibilityProvider(),\n keyboardNavigationLabelProvider: this._instantiationService.createInstance(StringRepresentationProvider),\n identityProvider: new IdentityProvider(),\n openOnSingleClick: true,\n selectionNavigation: true,\n overrideStyles: {\n listBackground: peekView.peekViewResultsBackground\n }\n };\n if (this._defaultTreeKeyboardSupport) {\n // the tree will consume `Escape` and prevent the widget from closing\n this._callOnDispose.add(dom.addStandardDisposableListener(this._treeContainer, 'keydown', (e) => {\n if (e.equals(9 /* KeyCode.Escape */)) {\n this._keybindingService.dispatchEvent(e, e.target);\n e.stopPropagation();\n }\n }, true));\n }\n this._tree = this._instantiationService.createInstance(ReferencesTree, 'ReferencesWidget', this._treeContainer, new Delegate(), [\n this._instantiationService.createInstance(FileReferencesRenderer),\n this._instantiationService.createInstance(OneReferenceRenderer),\n ], this._instantiationService.createInstance(DataSource), treeOptions);\n // split stuff\n this._splitView.addView({\n onDidChange: Event.None,\n element: this._previewContainer,\n minimumSize: 200,\n maximumSize: Number.MAX_VALUE,\n layout: (width) => {\n this._preview.layout({ height: this._dim.height, width });\n }\n }, Sizing.Distribute);\n this._splitView.addView({\n onDidChange: Event.None,\n element: this._treeContainer,\n minimumSize: 100,\n maximumSize: Number.MAX_VALUE,\n layout: (width) => {\n this._treeContainer.style.height = `${this._dim.height}px`;\n this._treeContainer.style.width = `${width}px`;\n this._tree.layout(this._dim.height, width);\n }\n }, Sizing.Distribute);\n this._disposables.add(this._splitView.onDidSashChange(() => {\n if (this._dim.width) {\n this.layoutData.ratio = this._splitView.getViewSize(0) / this._dim.width;\n }\n }, undefined));\n // listen on selection and focus\n const onEvent = (element, kind) => {\n if (element instanceof OneReference) {\n if (kind === 'show') {\n this._revealReference(element, false);\n }\n this._onDidSelectReference.fire({ element, kind, source: 'tree' });\n }\n };\n this._tree.onDidOpen(e => {\n if (e.sideBySide) {\n onEvent(e.element, 'side');\n }\n else if (e.editorOptions.pinned) {\n onEvent(e.element, 'goto');\n }\n else {\n onEvent(e.element, 'show');\n }\n });\n dom.hide(this._treeContainer);\n }\n _onWidth(width) {\n if (this._dim) {\n this._doLayoutBody(this._dim.height, width);\n }\n }\n _doLayoutBody(heightInPixel, widthInPixel) {\n super._doLayoutBody(heightInPixel, widthInPixel);\n this._dim = new dom.Dimension(widthInPixel, heightInPixel);\n this.layoutData.heightInLines = this._viewZone ? this._viewZone.heightInLines : this.layoutData.heightInLines;\n this._splitView.layout(widthInPixel);\n this._splitView.resizeView(0, widthInPixel * this.layoutData.ratio);\n }\n setSelection(selection) {\n return this._revealReference(selection, true).then(() => {\n if (!this._model) {\n // disposed\n return;\n }\n // show in tree\n this._tree.setSelection([selection]);\n this._tree.setFocus([selection]);\n });\n }\n setModel(newModel) {\n // clean up\n this._disposeOnNewModel.clear();\n this._model = newModel;\n if (this._model) {\n return this._onNewModel();\n }\n return Promise.resolve();\n }\n _onNewModel() {\n if (!this._model) {\n return Promise.resolve(undefined);\n }\n if (this._model.isEmpty) {\n this.setTitle('');\n this._messageContainer.innerText = nls.localize('noResults', \"No results\");\n dom.show(this._messageContainer);\n return Promise.resolve(undefined);\n }\n dom.hide(this._messageContainer);\n this._decorationsManager = new DecorationsManager(this._preview, this._model);\n this._disposeOnNewModel.add(this._decorationsManager);\n // listen on model changes\n this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(reference => this._tree.rerender(reference)));\n // listen on editor\n this._disposeOnNewModel.add(this._preview.onMouseDown(e => {\n const { event, target } = e;\n if (event.detail !== 2) {\n return;\n }\n const element = this._getFocusedReference();\n if (!element) {\n return;\n }\n this._onDidSelectReference.fire({\n element: { uri: element.uri, range: target.range },\n kind: (event.ctrlKey || event.metaKey || event.altKey) ? 'side' : 'open',\n source: 'editor'\n });\n }));\n // make sure things are rendered\n this.container.classList.add('results-loaded');\n dom.show(this._treeContainer);\n dom.show(this._previewContainer);\n this._splitView.layout(this._dim.width);\n this.focusOnReferenceTree();\n // pick input and a reference to begin with\n return this._tree.setInput(this._model.groups.length === 1 ? this._model.groups[0] : this._model);\n }\n _getFocusedReference() {\n const [element] = this._tree.getFocus();\n if (element instanceof OneReference) {\n return element;\n }\n else if (element instanceof FileReferences) {\n if (element.children.length > 0) {\n return element.children[0];\n }\n }\n return undefined;\n }\n async revealReference(reference) {\n await this._revealReference(reference, false);\n this._onDidSelectReference.fire({ element: reference, kind: 'goto', source: 'tree' });\n }\n async _revealReference(reference, revealParent) {\n // check if there is anything to do...\n if (this._revealedReference === reference) {\n return;\n }\n this._revealedReference = reference;\n // Update widget header\n if (reference.uri.scheme !== Schemas.inMemory) {\n this.setTitle(basenameOrAuthority(reference.uri), this._uriLabel.getUriLabel(dirname(reference.uri)));\n }\n else {\n this.setTitle(nls.localize('peekView.alternateTitle', \"References\"));\n }\n const promise = this._textModelResolverService.createModelReference(reference.uri);\n if (this._tree.getInput() === reference.parent) {\n this._tree.reveal(reference);\n }\n else {\n if (revealParent) {\n this._tree.reveal(reference.parent);\n }\n await this._tree.expand(reference.parent);\n this._tree.reveal(reference);\n }\n const ref = await promise;\n if (!this._model) {\n // disposed\n ref.dispose();\n return;\n }\n dispose(this._previewModelReference);\n // show in editor\n const model = ref.object;\n if (model) {\n const scrollType = this._preview.getModel() === model.textEditorModel ? 0 /* ScrollType.Smooth */ : 1 /* ScrollType.Immediate */;\n const sel = Range.lift(reference.range).collapseToStart();\n this._previewModelReference = ref;\n this._preview.setModel(model.textEditorModel);\n this._preview.setSelection(sel);\n this._preview.revealRangeInCenter(sel, scrollType);\n }\n else {\n this._preview.setModel(this._previewNotAvailableMessage);\n ref.dispose();\n }\n }\n};\nReferenceWidget = __decorate([\n __param(3, IThemeService),\n __param(4, ITextModelService),\n __param(5, IInstantiationService),\n __param(6, peekView.IPeekViewService),\n __param(7, ILabelService),\n __param(8, IUndoRedoService),\n __param(9, IKeybindingService),\n __param(10, ILanguageService),\n __param(11, ILanguageConfigurationService)\n], ReferenceWidget);\nexport { ReferenceWidget };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ReferencesController_1;\nimport { createCancelablePromise } from '../../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../../base/common/errors.js';\nimport { KeyChord } from '../../../../../base/common/keyCodes.js';\nimport { DisposableStore } from '../../../../../base/common/lifecycle.js';\nimport { ICodeEditorService } from '../../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { getOuterEditor, PeekContext } from '../../../peekView/browser/peekView.js';\nimport * as nls from '../../../../../nls.js';\nimport { CommandsRegistry } from '../../../../../platform/commands/common/commands.js';\nimport { IConfigurationService } from '../../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../../../../platform/keybinding/common/keybindingsRegistry.js';\nimport { IListService, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse, WorkbenchTreeElementCanExpand } from '../../../../../platform/list/browser/listService.js';\nimport { INotificationService } from '../../../../../platform/notification/common/notification.js';\nimport { IStorageService } from '../../../../../platform/storage/common/storage.js';\nimport { OneReference } from '../referencesModel.js';\nimport { LayoutData, ReferenceWidget } from './referencesWidget.js';\nimport { EditorContextKeys } from '../../../../common/editorContextKeys.js';\nimport { InputFocusedContext } from '../../../../../platform/contextkey/common/contextkeys.js';\nexport const ctxReferenceSearchVisible = new RawContextKey('referenceSearchVisible', false, nls.localize('referenceSearchVisible', \"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'\"));\nlet ReferencesController = ReferencesController_1 = class ReferencesController {\n static get(editor) {\n return editor.getContribution(ReferencesController_1.ID);\n }\n constructor(_defaultTreeKeyboardSupport, _editor, contextKeyService, _editorService, _notificationService, _instantiationService, _storageService, _configurationService) {\n this._defaultTreeKeyboardSupport = _defaultTreeKeyboardSupport;\n this._editor = _editor;\n this._editorService = _editorService;\n this._notificationService = _notificationService;\n this._instantiationService = _instantiationService;\n this._storageService = _storageService;\n this._configurationService = _configurationService;\n this._disposables = new DisposableStore();\n this._requestIdPool = 0;\n this._ignoreModelChangeEvent = false;\n this._referenceSearchVisible = ctxReferenceSearchVisible.bindTo(contextKeyService);\n }\n dispose() {\n var _a, _b;\n this._referenceSearchVisible.reset();\n this._disposables.dispose();\n (_a = this._widget) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this._model) === null || _b === void 0 ? void 0 : _b.dispose();\n this._widget = undefined;\n this._model = undefined;\n }\n toggleWidget(range, modelPromise, peekMode) {\n // close current widget and return early is position didn't change\n let widgetPosition;\n if (this._widget) {\n widgetPosition = this._widget.position;\n }\n this.closeWidget();\n if (!!widgetPosition && range.containsPosition(widgetPosition)) {\n return;\n }\n this._peekMode = peekMode;\n this._referenceSearchVisible.set(true);\n // close the widget on model/mode changes\n this._disposables.add(this._editor.onDidChangeModelLanguage(() => { this.closeWidget(); }));\n this._disposables.add(this._editor.onDidChangeModel(() => {\n if (!this._ignoreModelChangeEvent) {\n this.closeWidget();\n }\n }));\n const storageKey = 'peekViewLayout';\n const data = LayoutData.fromJSON(this._storageService.get(storageKey, 0 /* StorageScope.PROFILE */, '{}'));\n this._widget = this._instantiationService.createInstance(ReferenceWidget, this._editor, this._defaultTreeKeyboardSupport, data);\n this._widget.setTitle(nls.localize('labelLoading', \"Loading...\"));\n this._widget.show(range);\n this._disposables.add(this._widget.onDidClose(() => {\n modelPromise.cancel();\n if (this._widget) {\n this._storageService.store(storageKey, JSON.stringify(this._widget.layoutData), 0 /* StorageScope.PROFILE */, 1 /* StorageTarget.MACHINE */);\n this._widget = undefined;\n }\n this.closeWidget();\n }));\n this._disposables.add(this._widget.onDidSelectReference(event => {\n const { element, kind } = event;\n if (!element) {\n return;\n }\n switch (kind) {\n case 'open':\n if (event.source !== 'editor' || !this._configurationService.getValue('editor.stablePeek')) {\n // when stable peek is configured we don't close\n // the peek window on selecting the editor\n this.openReference(element, false, false);\n }\n break;\n case 'side':\n this.openReference(element, true, false);\n break;\n case 'goto':\n if (peekMode) {\n this._gotoReference(element, true);\n }\n else {\n this.openReference(element, false, true);\n }\n break;\n }\n }));\n const requestId = ++this._requestIdPool;\n modelPromise.then(model => {\n var _a;\n // still current request? widget still open?\n if (requestId !== this._requestIdPool || !this._widget) {\n model.dispose();\n return undefined;\n }\n (_a = this._model) === null || _a === void 0 ? void 0 : _a.dispose();\n this._model = model;\n // show widget\n return this._widget.setModel(this._model).then(() => {\n if (this._widget && this._model && this._editor.hasModel()) { // might have been closed\n // set title\n if (!this._model.isEmpty) {\n this._widget.setMetaTitle(nls.localize('metaTitle.N', \"{0} ({1})\", this._model.title, this._model.references.length));\n }\n else {\n this._widget.setMetaTitle('');\n }\n // set 'best' selection\n const uri = this._editor.getModel().uri;\n const pos = new Position(range.startLineNumber, range.startColumn);\n const selection = this._model.nearestReference(uri, pos);\n if (selection) {\n return this._widget.setSelection(selection).then(() => {\n if (this._widget && this._editor.getOption(87 /* EditorOption.peekWidgetDefaultFocus */) === 'editor') {\n this._widget.focusOnPreviewEditor();\n }\n });\n }\n }\n return undefined;\n });\n }, error => {\n this._notificationService.error(error);\n });\n }\n changeFocusBetweenPreviewAndReferences() {\n if (!this._widget) {\n // can be called while still resolving...\n return;\n }\n if (this._widget.isPreviewEditorFocused()) {\n this._widget.focusOnReferenceTree();\n }\n else {\n this._widget.focusOnPreviewEditor();\n }\n }\n async goToNextOrPreviousReference(fwd) {\n if (!this._editor.hasModel() || !this._model || !this._widget) {\n // can be called while still resolving...\n return;\n }\n const currentPosition = this._widget.position;\n if (!currentPosition) {\n return;\n }\n const source = this._model.nearestReference(this._editor.getModel().uri, currentPosition);\n if (!source) {\n return;\n }\n const target = this._model.nextOrPreviousReference(source, fwd);\n const editorFocus = this._editor.hasTextFocus();\n const previewEditorFocus = this._widget.isPreviewEditorFocused();\n await this._widget.setSelection(target);\n await this._gotoReference(target, false);\n if (editorFocus) {\n this._editor.focus();\n }\n else if (this._widget && previewEditorFocus) {\n this._widget.focusOnPreviewEditor();\n }\n }\n async revealReference(reference) {\n if (!this._editor.hasModel() || !this._model || !this._widget) {\n // can be called while still resolving...\n return;\n }\n await this._widget.revealReference(reference);\n }\n closeWidget(focusEditor = true) {\n var _a, _b;\n (_a = this._widget) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this._model) === null || _b === void 0 ? void 0 : _b.dispose();\n this._referenceSearchVisible.reset();\n this._disposables.clear();\n this._widget = undefined;\n this._model = undefined;\n if (focusEditor) {\n this._editor.focus();\n }\n this._requestIdPool += 1; // Cancel pending requests\n }\n _gotoReference(ref, pinned) {\n var _a;\n (_a = this._widget) === null || _a === void 0 ? void 0 : _a.hide();\n this._ignoreModelChangeEvent = true;\n const range = Range.lift(ref.range).collapseToStart();\n return this._editorService.openCodeEditor({\n resource: ref.uri,\n options: { selection: range, selectionSource: \"code.jump\" /* TextEditorSelectionSource.JUMP */, pinned }\n }, this._editor).then(openedEditor => {\n var _a;\n this._ignoreModelChangeEvent = false;\n if (!openedEditor || !this._widget) {\n // something went wrong...\n this.closeWidget();\n return;\n }\n if (this._editor === openedEditor) {\n //\n this._widget.show(range);\n this._widget.focusOnReferenceTree();\n }\n else {\n // we opened a different editor instance which means a different controller instance.\n // therefore we stop with this controller and continue with the other\n const other = ReferencesController_1.get(openedEditor);\n const model = this._model.clone();\n this.closeWidget();\n openedEditor.focus();\n other === null || other === void 0 ? void 0 : other.toggleWidget(range, createCancelablePromise(_ => Promise.resolve(model)), (_a = this._peekMode) !== null && _a !== void 0 ? _a : false);\n }\n }, (err) => {\n this._ignoreModelChangeEvent = false;\n onUnexpectedError(err);\n });\n }\n openReference(ref, sideBySide, pinned) {\n // clear stage\n if (!sideBySide) {\n this.closeWidget();\n }\n const { uri, range } = ref;\n this._editorService.openCodeEditor({\n resource: uri,\n options: { selection: range, selectionSource: \"code.jump\" /* TextEditorSelectionSource.JUMP */, pinned }\n }, this._editor, sideBySide);\n }\n};\nReferencesController.ID = 'editor.contrib.referencesController';\nReferencesController = ReferencesController_1 = __decorate([\n __param(2, IContextKeyService),\n __param(3, ICodeEditorService),\n __param(4, INotificationService),\n __param(5, IInstantiationService),\n __param(6, IStorageService),\n __param(7, IConfigurationService)\n], ReferencesController);\nexport { ReferencesController };\nfunction withController(accessor, fn) {\n const outerEditor = getOuterEditor(accessor);\n if (!outerEditor) {\n return;\n }\n const controller = ReferencesController.get(outerEditor);\n if (controller) {\n fn(controller);\n }\n}\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'togglePeekWidgetFocus',\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 60 /* KeyCode.F2 */),\n when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n handler(accessor) {\n withController(accessor, controller => {\n controller.changeFocusBetweenPreviewAndReferences();\n });\n }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'goToNextReference',\n weight: 100 /* KeybindingWeight.EditorContrib */ - 10,\n primary: 62 /* KeyCode.F4 */,\n secondary: [70 /* KeyCode.F12 */],\n when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n handler(accessor) {\n withController(accessor, controller => {\n controller.goToNextOrPreviousReference(true);\n });\n }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'goToPreviousReference',\n weight: 100 /* KeybindingWeight.EditorContrib */ - 10,\n primary: 1024 /* KeyMod.Shift */ | 62 /* KeyCode.F4 */,\n secondary: [1024 /* KeyMod.Shift */ | 70 /* KeyCode.F12 */],\n when: ContextKeyExpr.or(ctxReferenceSearchVisible, PeekContext.inPeekEditor),\n handler(accessor) {\n withController(accessor, controller => {\n controller.goToNextOrPreviousReference(false);\n });\n }\n});\n// commands that aren't needed anymore because there is now ContextKeyExpr.OR\nCommandsRegistry.registerCommandAlias('goToNextReferenceFromEmbeddedEditor', 'goToNextReference');\nCommandsRegistry.registerCommandAlias('goToPreviousReferenceFromEmbeddedEditor', 'goToPreviousReference');\n// close\nCommandsRegistry.registerCommandAlias('closeReferenceSearchEditor', 'closeReferenceSearch');\nCommandsRegistry.registerCommand('closeReferenceSearch', accessor => withController(accessor, controller => controller.closeWidget()));\nKeybindingsRegistry.registerKeybindingRule({\n id: 'closeReferenceSearch',\n weight: 100 /* KeybindingWeight.EditorContrib */ - 101,\n primary: 9 /* KeyCode.Escape */,\n secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */],\n when: ContextKeyExpr.and(PeekContext.inPeekEditor, ContextKeyExpr.not('config.editor.stablePeek'))\n});\nKeybindingsRegistry.registerKeybindingRule({\n id: 'closeReferenceSearch',\n weight: 200 /* KeybindingWeight.WorkbenchContrib */ + 50,\n primary: 9 /* KeyCode.Escape */,\n secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */],\n when: ContextKeyExpr.and(ctxReferenceSearchVisible, ContextKeyExpr.not('config.editor.stablePeek'), ContextKeyExpr.or(EditorContextKeys.editorTextFocus, InputFocusedContext.negate()))\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'revealReference',\n weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n primary: 3 /* KeyCode.Enter */,\n mac: {\n primary: 3 /* KeyCode.Enter */,\n secondary: [2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */]\n },\n when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n handler(accessor) {\n var _a;\n const listService = accessor.get(IListService);\n const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n withController(accessor, controller => controller.revealReference(focus[0]));\n }\n }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'openReferenceToSide',\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n mac: {\n primary: 256 /* KeyMod.WinCtrl */ | 3 /* KeyCode.Enter */\n },\n when: ContextKeyExpr.and(ctxReferenceSearchVisible, WorkbenchListFocusContextKey, WorkbenchTreeElementCanCollapse.negate(), WorkbenchTreeElementCanExpand.negate()),\n handler(accessor) {\n var _a;\n const listService = accessor.get(IListService);\n const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n withController(accessor, controller => controller.openReference(focus[0], true, true));\n }\n }\n});\nCommandsRegistry.registerCommand('openReference', (accessor) => {\n var _a;\n const listService = accessor.get(IListService);\n const focus = (_a = listService.lastFocusedList) === null || _a === void 0 ? void 0 : _a.getFocus();\n if (Array.isArray(focus) && focus[0] instanceof OneReference) {\n withController(accessor, controller => controller.openReference(focus[0], false, true));\n }\n});\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../base/common/arrays.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { Registry } from '../../registry/common/platform.js';\nexport var DefaultQuickAccessFilterValue;\n(function (DefaultQuickAccessFilterValue) {\n /**\n * Keep the value as it is given to quick access.\n */\n DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"PRESERVE\"] = 0] = \"PRESERVE\";\n /**\n * Use the value that was used last time something was accepted from the picker.\n */\n DefaultQuickAccessFilterValue[DefaultQuickAccessFilterValue[\"LAST\"] = 1] = \"LAST\";\n})(DefaultQuickAccessFilterValue || (DefaultQuickAccessFilterValue = {}));\nexport const Extensions = {\n Quickaccess: 'workbench.contributions.quickaccess'\n};\nexport class QuickAccessRegistry {\n constructor() {\n this.providers = [];\n this.defaultProvider = undefined;\n }\n registerQuickAccessProvider(provider) {\n // Extract the default provider when no prefix is present\n if (provider.prefix.length === 0) {\n this.defaultProvider = provider;\n }\n else {\n this.providers.push(provider);\n }\n // sort the providers by decreasing prefix length, such that longer\n // prefixes take priority: 'ext' vs 'ext install' - the latter should win\n this.providers.sort((providerA, providerB) => providerB.prefix.length - providerA.prefix.length);\n return toDisposable(() => {\n this.providers.splice(this.providers.indexOf(provider), 1);\n if (this.defaultProvider === provider) {\n this.defaultProvider = undefined;\n }\n });\n }\n getQuickAccessProviders() {\n return coalesce([this.defaultProvider, ...this.providers]);\n }\n getQuickAccessProvider(prefix) {\n const result = prefix ? (this.providers.find(provider => prefix.startsWith(provider.prefix)) || undefined) : undefined;\n return result || this.defaultProvider;\n }\n}\nRegistry.add(Extensions.Quickaccess, new QuickAccessRegistry());\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var ColumnsDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-columns';\n }\n }\n});\nexport var ColumnsPlugin = {\n name: 'e-columns',\n install: function (Vue) {\n Vue.component(ColumnsPlugin.name, ColumnsDirective);\n }\n};\n/**\n * `e-column` directive represent a column of the VueJS QueryBuilder.\n * It must be contained in a QueryBuilder component(`ejs-querybuilder`).\n * ```vue\n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var ColumnDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-column';\n }\n }\n});\nexport var ColumnPlugin = {\n name: 'e-column',\n install: function (Vue) {\n Vue.component(ColumnPlugin.name, ColumnDirective);\n }\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/language/typescript/lib/typescriptServicesMetadata.ts\nvar typescriptVersion = \"5.4.5\";\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/typescript/monaco.contribution.ts\nvar ModuleKind = /* @__PURE__ */ ((ModuleKind2) => {\n ModuleKind2[ModuleKind2[\"None\"] = 0] = \"None\";\n ModuleKind2[ModuleKind2[\"CommonJS\"] = 1] = \"CommonJS\";\n ModuleKind2[ModuleKind2[\"AMD\"] = 2] = \"AMD\";\n ModuleKind2[ModuleKind2[\"UMD\"] = 3] = \"UMD\";\n ModuleKind2[ModuleKind2[\"System\"] = 4] = \"System\";\n ModuleKind2[ModuleKind2[\"ES2015\"] = 5] = \"ES2015\";\n ModuleKind2[ModuleKind2[\"ESNext\"] = 99] = \"ESNext\";\n return ModuleKind2;\n})(ModuleKind || {});\nvar JsxEmit = /* @__PURE__ */ ((JsxEmit2) => {\n JsxEmit2[JsxEmit2[\"None\"] = 0] = \"None\";\n JsxEmit2[JsxEmit2[\"Preserve\"] = 1] = \"Preserve\";\n JsxEmit2[JsxEmit2[\"React\"] = 2] = \"React\";\n JsxEmit2[JsxEmit2[\"ReactNative\"] = 3] = \"ReactNative\";\n JsxEmit2[JsxEmit2[\"ReactJSX\"] = 4] = \"ReactJSX\";\n JsxEmit2[JsxEmit2[\"ReactJSXDev\"] = 5] = \"ReactJSXDev\";\n return JsxEmit2;\n})(JsxEmit || {});\nvar NewLineKind = /* @__PURE__ */ ((NewLineKind2) => {\n NewLineKind2[NewLineKind2[\"CarriageReturnLineFeed\"] = 0] = \"CarriageReturnLineFeed\";\n NewLineKind2[NewLineKind2[\"LineFeed\"] = 1] = \"LineFeed\";\n return NewLineKind2;\n})(NewLineKind || {});\nvar ScriptTarget = /* @__PURE__ */ ((ScriptTarget2) => {\n ScriptTarget2[ScriptTarget2[\"ES3\"] = 0] = \"ES3\";\n ScriptTarget2[ScriptTarget2[\"ES5\"] = 1] = \"ES5\";\n ScriptTarget2[ScriptTarget2[\"ES2015\"] = 2] = \"ES2015\";\n ScriptTarget2[ScriptTarget2[\"ES2016\"] = 3] = \"ES2016\";\n ScriptTarget2[ScriptTarget2[\"ES2017\"] = 4] = \"ES2017\";\n ScriptTarget2[ScriptTarget2[\"ES2018\"] = 5] = \"ES2018\";\n ScriptTarget2[ScriptTarget2[\"ES2019\"] = 6] = \"ES2019\";\n ScriptTarget2[ScriptTarget2[\"ES2020\"] = 7] = \"ES2020\";\n ScriptTarget2[ScriptTarget2[\"ESNext\"] = 99] = \"ESNext\";\n ScriptTarget2[ScriptTarget2[\"JSON\"] = 100] = \"JSON\";\n ScriptTarget2[ScriptTarget2[\"Latest\"] = 99 /* ESNext */] = \"Latest\";\n return ScriptTarget2;\n})(ScriptTarget || {});\nvar ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind2) => {\n ModuleResolutionKind2[ModuleResolutionKind2[\"Classic\"] = 1] = \"Classic\";\n ModuleResolutionKind2[ModuleResolutionKind2[\"NodeJs\"] = 2] = \"NodeJs\";\n return ModuleResolutionKind2;\n})(ModuleResolutionKind || {});\nvar LanguageServiceDefaultsImpl = class {\n constructor(compilerOptions, diagnosticsOptions, workerOptions, inlayHintsOptions, modeConfiguration) {\n this._onDidChange = new monaco_editor_core_exports.Emitter();\n this._onDidExtraLibsChange = new monaco_editor_core_exports.Emitter();\n this._extraLibs = /* @__PURE__ */ Object.create(null);\n this._removedExtraLibs = /* @__PURE__ */ Object.create(null);\n this._eagerModelSync = false;\n this.setCompilerOptions(compilerOptions);\n this.setDiagnosticsOptions(diagnosticsOptions);\n this.setWorkerOptions(workerOptions);\n this.setInlayHintsOptions(inlayHintsOptions);\n this.setModeConfiguration(modeConfiguration);\n this._onDidExtraLibsChangeTimeout = -1;\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get onDidExtraLibsChange() {\n return this._onDidExtraLibsChange.event;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get workerOptions() {\n return this._workerOptions;\n }\n get inlayHintsOptions() {\n return this._inlayHintsOptions;\n }\n getExtraLibs() {\n return this._extraLibs;\n }\n addExtraLib(content, _filePath) {\n let filePath;\n if (typeof _filePath === \"undefined\") {\n filePath = `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;\n } else {\n filePath = _filePath;\n }\n if (this._extraLibs[filePath] && this._extraLibs[filePath].content === content) {\n return {\n dispose: () => {\n }\n };\n }\n let myVersion = 1;\n if (this._removedExtraLibs[filePath]) {\n myVersion = this._removedExtraLibs[filePath] + 1;\n }\n if (this._extraLibs[filePath]) {\n myVersion = this._extraLibs[filePath].version + 1;\n }\n this._extraLibs[filePath] = {\n content,\n version: myVersion\n };\n this._fireOnDidExtraLibsChangeSoon();\n return {\n dispose: () => {\n let extraLib = this._extraLibs[filePath];\n if (!extraLib) {\n return;\n }\n if (extraLib.version !== myVersion) {\n return;\n }\n delete this._extraLibs[filePath];\n this._removedExtraLibs[filePath] = myVersion;\n this._fireOnDidExtraLibsChangeSoon();\n }\n };\n }\n setExtraLibs(libs) {\n for (const filePath in this._extraLibs) {\n this._removedExtraLibs[filePath] = this._extraLibs[filePath].version;\n }\n this._extraLibs = /* @__PURE__ */ Object.create(null);\n if (libs && libs.length > 0) {\n for (const lib of libs) {\n const filePath = lib.filePath || `ts:extralib-${Math.random().toString(36).substring(2, 15)}`;\n const content = lib.content;\n let myVersion = 1;\n if (this._removedExtraLibs[filePath]) {\n myVersion = this._removedExtraLibs[filePath] + 1;\n }\n this._extraLibs[filePath] = {\n content,\n version: myVersion\n };\n }\n }\n this._fireOnDidExtraLibsChangeSoon();\n }\n _fireOnDidExtraLibsChangeSoon() {\n if (this._onDidExtraLibsChangeTimeout !== -1) {\n return;\n }\n this._onDidExtraLibsChangeTimeout = window.setTimeout(() => {\n this._onDidExtraLibsChangeTimeout = -1;\n this._onDidExtraLibsChange.fire(void 0);\n }, 0);\n }\n getCompilerOptions() {\n return this._compilerOptions;\n }\n setCompilerOptions(options) {\n this._compilerOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(void 0);\n }\n getDiagnosticsOptions() {\n return this._diagnosticsOptions;\n }\n setDiagnosticsOptions(options) {\n this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(void 0);\n }\n setWorkerOptions(options) {\n this._workerOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(void 0);\n }\n setInlayHintsOptions(options) {\n this._inlayHintsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(void 0);\n }\n setMaximumWorkerIdleTime(value) {\n }\n setEagerModelSync(value) {\n this._eagerModelSync = value;\n }\n getEagerModelSync() {\n return this._eagerModelSync;\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(void 0);\n }\n};\nvar typescriptVersion2 = typescriptVersion;\nvar modeConfigurationDefault = {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n definitions: true,\n references: true,\n documentHighlights: true,\n rename: true,\n diagnostics: true,\n documentRangeFormattingEdits: true,\n signatureHelp: true,\n onTypeFormattingEdits: true,\n codeActions: true,\n inlayHints: true\n};\nvar typescriptDefaults = new LanguageServiceDefaultsImpl(\n { allowNonTsExtensions: true, target: 99 /* Latest */ },\n { noSemanticValidation: false, noSyntaxValidation: false, onlyVisible: false },\n {},\n {},\n modeConfigurationDefault\n);\nvar javascriptDefaults = new LanguageServiceDefaultsImpl(\n { allowNonTsExtensions: true, allowJs: true, target: 99 /* Latest */ },\n { noSemanticValidation: true, noSyntaxValidation: false, onlyVisible: false },\n {},\n {},\n modeConfigurationDefault\n);\nvar getTypeScriptWorker = () => {\n return getMode().then((mode) => mode.getTypeScriptWorker());\n};\nvar getJavaScriptWorker = () => {\n return getMode().then((mode) => mode.getJavaScriptWorker());\n};\nmonaco_editor_core_exports.languages.typescript = {\n ModuleKind,\n JsxEmit,\n NewLineKind,\n ScriptTarget,\n ModuleResolutionKind,\n typescriptVersion: typescriptVersion2,\n typescriptDefaults,\n javascriptDefaults,\n getTypeScriptWorker,\n getJavaScriptWorker\n};\nfunction getMode() {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/language/typescript/tsMode\"], resolve, reject);\n });\n } else {\n return import(\"./tsMode.js\");\n }\n}\nmonaco_editor_core_exports.languages.onLanguage(\"typescript\", () => {\n return getMode().then((mode) => mode.setupTypeScript(typescriptDefaults));\n});\nmonaco_editor_core_exports.languages.onLanguage(\"javascript\", () => {\n return getMode().then((mode) => mode.setupJavaScript(javascriptDefaults));\n});\nexport {\n JsxEmit,\n ModuleKind,\n ModuleResolutionKind,\n NewLineKind,\n ScriptTarget,\n getJavaScriptWorker,\n getTypeScriptWorker,\n javascriptDefaults,\n typescriptDefaults,\n typescriptVersion2 as typescriptVersion\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst format_1 = require(\"./format\");\nconst format = [format_1.default];\nexports.default = format;\n//# sourceMappingURL=index.js.map","/**\n * **!Do not construct directly!**\n *\n * **!Only static methods because it gets serialized!**\n *\n * This represents the \"canonical\" version for an extension identifier. Extension ids\n * have to be case-insensitive (due to the marketplace), but we must ensure case\n * preservation because the extension API is already public at this time.\n *\n * For example, given an extension with the publisher `\"Hello\"` and the name `\"World\"`,\n * its canonical extension identifier is `\"Hello.World\"`. This extension could be\n * referenced in some other extension's dependencies using the string `\"hello.world\"`.\n *\n * To make matters more complicated, an extension can optionally have an UUID. When two\n * extensions have the same UUID, they are considered equal even if their identifier is different.\n */\nexport class ExtensionIdentifier {\n constructor(value) {\n this.value = value;\n this._lower = value.toLowerCase();\n }\n /**\n * Gives the value by which to index (for equality).\n */\n static toKey(id) {\n if (typeof id === 'string') {\n return id.toLowerCase();\n }\n return id._lower;\n }\n}\nexport class ExtensionIdentifierSet {\n constructor(iterable) {\n this._set = new Set();\n if (iterable) {\n for (const value of iterable) {\n this.add(value);\n }\n }\n }\n add(id) {\n this._set.add(ExtensionIdentifier.toKey(id));\n }\n has(id) {\n return this._set.has(ExtensionIdentifier.toKey(id));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asArray, isNonEmptyArray } from '../../../../base/common/arrays.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Iterable } from '../../../../base/common/iterator.js';\nimport { LinkedList } from '../../../../base/common/linkedList.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorStateCancellationTokenSource, TextModelCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { isCodeEditor } from '../../../browser/editorBrowser.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { FormattingEdit } from './formattingEdit.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ExtensionIdentifierSet } from '../../../../platform/extensions/common/extensions.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nexport function getRealAndSyntheticDocumentFormattersOrdered(documentFormattingEditProvider, documentRangeFormattingEditProvider, model) {\n const result = [];\n const seen = new ExtensionIdentifierSet();\n // (1) add all document formatter\n const docFormatter = documentFormattingEditProvider.ordered(model);\n for (const formatter of docFormatter) {\n result.push(formatter);\n if (formatter.extensionId) {\n seen.add(formatter.extensionId);\n }\n }\n // (2) add all range formatter as document formatter (unless the same extension already did that)\n const rangeFormatter = documentRangeFormattingEditProvider.ordered(model);\n for (const formatter of rangeFormatter) {\n if (formatter.extensionId) {\n if (seen.has(formatter.extensionId)) {\n continue;\n }\n seen.add(formatter.extensionId);\n }\n result.push({\n displayName: formatter.displayName,\n extensionId: formatter.extensionId,\n provideDocumentFormattingEdits(model, options, token) {\n return formatter.provideDocumentRangeFormattingEdits(model, model.getFullModelRange(), options, token);\n }\n });\n }\n return result;\n}\nexport class FormattingConflicts {\n static setFormatterSelector(selector) {\n const remove = FormattingConflicts._selectors.unshift(selector);\n return { dispose: remove };\n }\n static async select(formatter, document, mode, kind) {\n if (formatter.length === 0) {\n return undefined;\n }\n const selector = Iterable.first(FormattingConflicts._selectors);\n if (selector) {\n return await selector(formatter, document, mode, kind);\n }\n return undefined;\n }\n}\nFormattingConflicts._selectors = new LinkedList();\nexport async function formatDocumentRangesWithSelectedProvider(accessor, editorOrModel, rangeOrRanges, mode, progress, token, userGesture) {\n const instaService = accessor.get(IInstantiationService);\n const { documentRangeFormattingEditProvider: documentRangeFormattingEditProviderRegistry } = accessor.get(ILanguageFeaturesService);\n const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n const provider = documentRangeFormattingEditProviderRegistry.ordered(model);\n const selected = await FormattingConflicts.select(provider, model, mode, 2 /* FormattingKind.Selection */);\n if (selected) {\n progress.report(selected);\n await instaService.invokeFunction(formatDocumentRangesWithProvider, selected, editorOrModel, rangeOrRanges, token, userGesture);\n }\n}\nexport async function formatDocumentRangesWithProvider(accessor, provider, editorOrModel, rangeOrRanges, token, userGesture) {\n var _a, _b;\n const workerService = accessor.get(IEditorWorkerService);\n const logService = accessor.get(ILogService);\n const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n let model;\n let cts;\n if (isCodeEditor(editorOrModel)) {\n model = editorOrModel.getModel();\n cts = new EditorStateCancellationTokenSource(editorOrModel, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */, undefined, token);\n }\n else {\n model = editorOrModel;\n cts = new TextModelCancellationTokenSource(editorOrModel, token);\n }\n // make sure that ranges don't overlap nor touch each other\n const ranges = [];\n let len = 0;\n for (const range of asArray(rangeOrRanges).sort(Range.compareRangesUsingStarts)) {\n if (len > 0 && Range.areIntersectingOrTouching(ranges[len - 1], range)) {\n ranges[len - 1] = Range.fromPositions(ranges[len - 1].getStartPosition(), range.getEndPosition());\n }\n else {\n len = ranges.push(range);\n }\n }\n const computeEdits = async (range) => {\n var _a, _b;\n logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, (_a = provider.extensionId) === null || _a === void 0 ? void 0 : _a.value, range);\n const result = (await provider.provideDocumentRangeFormattingEdits(model, range, model.getFormattingOptions(), cts.token)) || [];\n logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, (_b = provider.extensionId) === null || _b === void 0 ? void 0 : _b.value, result);\n return result;\n };\n const hasIntersectingEdit = (a, b) => {\n if (!a.length || !b.length) {\n return false;\n }\n // quick exit if the list of ranges are completely unrelated [O(n)]\n const mergedA = a.reduce((acc, val) => { return Range.plusRange(acc, val.range); }, a[0].range);\n if (!b.some(x => { return Range.intersectRanges(mergedA, x.range); })) {\n return false;\n }\n // fallback to a complete check [O(n^2)]\n for (const edit of a) {\n for (const otherEdit of b) {\n if (Range.intersectRanges(edit.range, otherEdit.range)) {\n return true;\n }\n }\n }\n return false;\n };\n const allEdits = [];\n const rawEditsList = [];\n try {\n if (typeof provider.provideDocumentRangesFormattingEdits === 'function') {\n logService.trace(`[format][provideDocumentRangeFormattingEdits] (request)`, (_a = provider.extensionId) === null || _a === void 0 ? void 0 : _a.value, ranges);\n const result = (await provider.provideDocumentRangesFormattingEdits(model, ranges, model.getFormattingOptions(), cts.token)) || [];\n logService.trace(`[format][provideDocumentRangeFormattingEdits] (response)`, (_b = provider.extensionId) === null || _b === void 0 ? void 0 : _b.value, result);\n rawEditsList.push(result);\n }\n else {\n for (const range of ranges) {\n if (cts.token.isCancellationRequested) {\n return true;\n }\n rawEditsList.push(await computeEdits(range));\n }\n for (let i = 0; i < ranges.length; ++i) {\n for (let j = i + 1; j < ranges.length; ++j) {\n if (cts.token.isCancellationRequested) {\n return true;\n }\n if (hasIntersectingEdit(rawEditsList[i], rawEditsList[j])) {\n // Merge ranges i and j into a single range, recompute the associated edits\n const mergedRange = Range.plusRange(ranges[i], ranges[j]);\n const edits = await computeEdits(mergedRange);\n ranges.splice(j, 1);\n ranges.splice(i, 1);\n ranges.push(mergedRange);\n rawEditsList.splice(j, 1);\n rawEditsList.splice(i, 1);\n rawEditsList.push(edits);\n // Restart scanning\n i = 0;\n j = 0;\n }\n }\n }\n }\n for (const rawEdits of rawEditsList) {\n if (cts.token.isCancellationRequested) {\n return true;\n }\n const minimalEdits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n if (minimalEdits) {\n allEdits.push(...minimalEdits);\n }\n }\n }\n finally {\n cts.dispose();\n }\n if (allEdits.length === 0) {\n return false;\n }\n if (isCodeEditor(editorOrModel)) {\n // use editor to apply edits\n FormattingEdit.execute(editorOrModel, allEdits, true);\n editorOrModel.revealPositionInCenterIfOutsideViewport(editorOrModel.getPosition(), 1 /* ScrollType.Immediate */);\n }\n else {\n // use model to apply edits\n const [{ range }] = allEdits;\n const initialSelection = new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n model.pushEditOperations([initialSelection], allEdits.map(edit => {\n return {\n text: edit.text,\n range: Range.lift(edit.range),\n forceMoveMarkers: true\n };\n }), undoEdits => {\n for (const { range } of undoEdits) {\n if (Range.areIntersectingOrTouching(range, initialSelection)) {\n return [new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn)];\n }\n }\n return null;\n });\n }\n accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n return true;\n}\nexport async function formatDocumentWithSelectedProvider(accessor, editorOrModel, mode, progress, token, userGesture) {\n const instaService = accessor.get(IInstantiationService);\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const model = isCodeEditor(editorOrModel) ? editorOrModel.getModel() : editorOrModel;\n const provider = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n const selected = await FormattingConflicts.select(provider, model, mode, 1 /* FormattingKind.File */);\n if (selected) {\n progress.report(selected);\n await instaService.invokeFunction(formatDocumentWithProvider, selected, editorOrModel, mode, token, userGesture);\n }\n}\nexport async function formatDocumentWithProvider(accessor, provider, editorOrModel, mode, token, userGesture) {\n const workerService = accessor.get(IEditorWorkerService);\n const accessibilitySignalService = accessor.get(IAccessibilitySignalService);\n let model;\n let cts;\n if (isCodeEditor(editorOrModel)) {\n model = editorOrModel.getModel();\n cts = new EditorStateCancellationTokenSource(editorOrModel, 1 /* CodeEditorStateFlag.Value */ | 4 /* CodeEditorStateFlag.Position */, undefined, token);\n }\n else {\n model = editorOrModel;\n cts = new TextModelCancellationTokenSource(editorOrModel, token);\n }\n let edits;\n try {\n const rawEdits = await provider.provideDocumentFormattingEdits(model, model.getFormattingOptions(), cts.token);\n edits = await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n if (cts.token.isCancellationRequested) {\n return true;\n }\n }\n finally {\n cts.dispose();\n }\n if (!edits || edits.length === 0) {\n return false;\n }\n if (isCodeEditor(editorOrModel)) {\n // use editor to apply edits\n FormattingEdit.execute(editorOrModel, edits, mode !== 2 /* FormattingMode.Silent */);\n if (mode !== 2 /* FormattingMode.Silent */) {\n editorOrModel.revealPositionInCenterIfOutsideViewport(editorOrModel.getPosition(), 1 /* ScrollType.Immediate */);\n }\n }\n else {\n // use model to apply edits\n const [{ range }] = edits;\n const initialSelection = new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n model.pushEditOperations([initialSelection], edits.map(edit => {\n return {\n text: edit.text,\n range: Range.lift(edit.range),\n forceMoveMarkers: true\n };\n }), undoEdits => {\n for (const { range } of undoEdits) {\n if (Range.areIntersectingOrTouching(range, initialSelection)) {\n return [new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn)];\n }\n }\n return null;\n });\n }\n accessibilitySignalService.playSignal(AccessibilitySignal.format, { userGesture });\n return true;\n}\nexport async function getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, model, range, options, token) {\n const providers = languageFeaturesService.documentRangeFormattingEditProvider.ordered(model);\n for (const provider of providers) {\n const rawEdits = await Promise.resolve(provider.provideDocumentRangeFormattingEdits(model, range, options, token)).catch(onUnexpectedExternalError);\n if (isNonEmptyArray(rawEdits)) {\n return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n }\n }\n return undefined;\n}\nexport async function getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, model, options, token) {\n const providers = getRealAndSyntheticDocumentFormattersOrdered(languageFeaturesService.documentFormattingEditProvider, languageFeaturesService.documentRangeFormattingEditProvider, model);\n for (const provider of providers) {\n const rawEdits = await Promise.resolve(provider.provideDocumentFormattingEdits(model, options, token)).catch(onUnexpectedExternalError);\n if (isNonEmptyArray(rawEdits)) {\n return await workerService.computeMoreMinimalEdits(model.uri, rawEdits);\n }\n }\n return undefined;\n}\nexport function getOnTypeFormattingEdits(workerService, languageFeaturesService, model, position, ch, options, token) {\n const providers = languageFeaturesService.onTypeFormattingEditProvider.ordered(model);\n if (providers.length === 0) {\n return Promise.resolve(undefined);\n }\n if (providers[0].autoFormatTriggerCharacters.indexOf(ch) < 0) {\n return Promise.resolve(undefined);\n }\n return Promise.resolve(providers[0].provideOnTypeFormattingEdits(model, position, ch, options, token)).catch(onUnexpectedExternalError).then(edits => {\n return workerService.computeMoreMinimalEdits(model.uri, edits);\n });\n}\nCommandsRegistry.registerCommand('_executeFormatRangeProvider', async function (accessor, ...args) {\n const [resource, range, options] = args;\n assertType(URI.isUri(resource));\n assertType(Range.isIRange(range));\n const resolverService = accessor.get(ITextModelService);\n const workerService = accessor.get(IEditorWorkerService);\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const reference = await resolverService.createModelReference(resource);\n try {\n return getDocumentRangeFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, Range.lift(range), options, CancellationToken.None);\n }\n finally {\n reference.dispose();\n }\n});\nCommandsRegistry.registerCommand('_executeFormatDocumentProvider', async function (accessor, ...args) {\n const [resource, options] = args;\n assertType(URI.isUri(resource));\n const resolverService = accessor.get(ITextModelService);\n const workerService = accessor.get(IEditorWorkerService);\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const reference = await resolverService.createModelReference(resource);\n try {\n return getDocumentFormattingEditsUntilResult(workerService, languageFeaturesService, reference.object.textEditorModel, options, CancellationToken.None);\n }\n finally {\n reference.dispose();\n }\n});\nCommandsRegistry.registerCommand('_executeFormatOnTypeProvider', async function (accessor, ...args) {\n const [resource, position, ch, options] = args;\n assertType(URI.isUri(resource));\n assertType(Position.isIPosition(position));\n assertType(typeof ch === 'string');\n const resolverService = accessor.get(ITextModelService);\n const workerService = accessor.get(IEditorWorkerService);\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const reference = await resolverService.createModelReference(resource);\n try {\n return getOnTypeFormattingEdits(workerService, languageFeaturesService, reference.object.textEditorModel, Position.lift(position), ch, options, CancellationToken.None);\n }\n finally {\n reference.dispose();\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nfunction ucs2length(str) {\n const len = str.length;\n let length = 0;\n let pos = 0;\n let value;\n while (pos < len) {\n length++;\n value = str.charCodeAt(pos++);\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos);\n if ((value & 0xfc00) === 0xdc00)\n pos++; // low surrogate\n }\n }\n return length;\n}\nexports.default = ucs2length;\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default';\n//# sourceMappingURL=ucs2length.js.map","import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/html/monaco.contribution.ts\nvar LanguageServiceDefaultsImpl = class {\n constructor(languageId, options, modeConfiguration) {\n this._onDidChange = new monaco_editor_core_exports.Emitter();\n this._languageId = languageId;\n this.setOptions(options);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get options() {\n return this._options;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n setOptions(options) {\n this._options = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n};\nvar formatDefaults = {\n tabSize: 4,\n insertSpaces: false,\n wrapLineLength: 120,\n unformatted: 'default\": \"a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',\n contentUnformatted: \"pre\",\n indentInnerHtml: false,\n preserveNewLines: true,\n maxPreserveNewLines: void 0,\n indentHandlebars: false,\n endWithNewline: false,\n extraLiners: \"head, body, /html\",\n wrapAttributes: \"auto\"\n};\nvar optionsDefault = {\n format: formatDefaults,\n suggest: {},\n data: { useDefaultDataProvider: true }\n};\nfunction getConfigurationDefault(languageId) {\n return {\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n links: true,\n documentHighlights: true,\n rename: true,\n colors: true,\n foldingRanges: true,\n selectionRanges: true,\n diagnostics: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentFormattingEdits: languageId === htmlLanguageId,\n // turned off for Razor and Handlebar\n documentRangeFormattingEdits: languageId === htmlLanguageId\n // turned off for Razor and Handlebar\n };\n}\nvar htmlLanguageId = \"html\";\nvar handlebarsLanguageId = \"handlebars\";\nvar razorLanguageId = \"razor\";\nvar htmlLanguageService = registerHTMLLanguageService(\n htmlLanguageId,\n optionsDefault,\n getConfigurationDefault(htmlLanguageId)\n);\nvar htmlDefaults = htmlLanguageService.defaults;\nvar handlebarLanguageService = registerHTMLLanguageService(\n handlebarsLanguageId,\n optionsDefault,\n getConfigurationDefault(handlebarsLanguageId)\n);\nvar handlebarDefaults = handlebarLanguageService.defaults;\nvar razorLanguageService = registerHTMLLanguageService(\n razorLanguageId,\n optionsDefault,\n getConfigurationDefault(razorLanguageId)\n);\nvar razorDefaults = razorLanguageService.defaults;\nmonaco_editor_core_exports.languages.html = {\n htmlDefaults,\n razorDefaults,\n handlebarDefaults,\n htmlLanguageService,\n handlebarLanguageService,\n razorLanguageService,\n registerHTMLLanguageService\n};\nfunction getMode() {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/language/html/htmlMode\"], resolve, reject);\n });\n } else {\n return import(\"./htmlMode.js\");\n }\n}\nfunction registerHTMLLanguageService(languageId, options = optionsDefault, modeConfiguration = getConfigurationDefault(languageId)) {\n const defaults = new LanguageServiceDefaultsImpl(languageId, options, modeConfiguration);\n let mode;\n const onLanguageListener = monaco_editor_core_exports.languages.onLanguage(languageId, async () => {\n mode = (await getMode()).setupMode(defaults);\n });\n return {\n defaults,\n dispose() {\n onLanguageListener.dispose();\n mode?.dispose();\n mode = void 0;\n }\n };\n}\nexport {\n handlebarDefaults,\n handlebarLanguageService,\n htmlDefaults,\n htmlLanguageService,\n razorDefaults,\n razorLanguageService,\n registerHTMLLanguageService\n};\n","import { isString } from './types.js';\nconst _codiconFontCharacters = Object.create(null);\nexport function register(id, fontCharacter) {\n if (isString(fontCharacter)) {\n const val = _codiconFontCharacters[fontCharacter];\n if (val === undefined) {\n throw new Error(`${id} references an unknown codicon: ${fontCharacter}`);\n }\n fontCharacter = val;\n }\n _codiconFontCharacters[id] = fontCharacter;\n return { id };\n}\n/**\n * Only to be used by the iconRegistry.\n */\nexport function getCodiconFontCharacters() {\n return _codiconFontCharacters;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// \nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\nimport { MenuBase, MenuItem } from '../common/menu-base';\n/**\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\n * ```html\n *
\n *
    \n * ```\n * ```typescript\n * \n * ```\n */\nvar ContextMenu = /** @class */ (function (_super) {\n __extends(ContextMenu, _super);\n /**\n * Constructor for creating the widget.\n *\n * @private\n * @param {ContextMenuModel} options - Specifies the context menu model\n * @param {string} element - Specifies the element\n */\n function ContextMenu(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * For internal use only - prerender processing.\n *\n * @private\n * @returns {void}\n */\n ContextMenu.prototype.preRender = function () {\n this.isMenu = false;\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\n _super.prototype.preRender.call(this);\n };\n ContextMenu.prototype.initialize = function () {\n _super.prototype.initialize.call(this);\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\n this.element.style.zIndex = getZindexPartial(this.element).toString();\n };\n /**\n * This method is used to open the ContextMenu in specified position.\n *\n * @param {number} top - To specify ContextMenu vertical positioning.\n * @param {number} left - To specify ContextMenu horizontal positioning.\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\n * @function open\n * @returns {void}\n */\n ContextMenu.prototype.open = function (top, left, target) {\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\n };\n /**\n * Closes the ContextMenu if it is opened.\n *\n * @function close\n * @returns {void}\n */\n ContextMenu.prototype.close = function () {\n _super.prototype.closeMenu.call(this);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @private\n * @param {ContextMenuModel} newProp - Specifies new properties\n * @param {ContextMenuModel} oldProp - Specifies old properties\n * @returns {void}\n */\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'filter':\n this.close();\n this.filter = newProp.filter;\n break;\n case 'target':\n this.unWireEvents(oldProp.target);\n this.wireEvents();\n break;\n }\n }\n };\n /**\n * Get module name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ContextMenu.prototype.getModuleName = function () {\n return 'contextmenu';\n };\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], ContextMenu.prototype, \"filter\", void 0);\n __decorate([\n Collection([], MenuItem)\n ], ContextMenu.prototype, \"items\", void 0);\n ContextMenu = __decorate([\n NotifyPropertyChanges\n ], ContextMenu);\n return ContextMenu;\n}(MenuBase));\nexport { ContextMenu };\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n const set = []\n let first = null\n let prev = null\n const v = versions.sort((a, b) => compare(a, b, options))\n for (const version of v) {\n const included = satisfies(version, range, options)\n if (included) {\n prev = version\n if (!first) {\n first = version\n }\n } else {\n if (prev) {\n set.push([first, prev])\n }\n prev = null\n first = null\n }\n }\n if (first) {\n set.push([first, null])\n }\n\n const ranges = []\n for (const [min, max] of set) {\n if (min === max) {\n ranges.push(min)\n } else if (!max && min === v[0]) {\n ranges.push('*')\n } else if (!max) {\n ranges.push(`>=${min}`)\n } else if (min === v[0]) {\n ranges.push(`<=${max}`)\n } else {\n ranges.push(`${min} - ${max}`)\n }\n }\n const simplified = ranges.join(' || ')\n const original = typeof range.raw === 'string' ? range.raw : String(range)\n return simplified.length < original.length ? simplified : range\n}\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet baseHoverDelegate = {\n showHover: () => undefined,\n hideHover: () => undefined,\n showAndFocusLastHover: () => undefined,\n setupUpdatableHover: () => null,\n triggerUpdatableHover: () => undefined\n};\n/**\n * Sets the hover delegate for use **only in the `base/` layer**.\n */\nexport function setBaseLayerHoverDelegate(hoverDelegate) {\n baseHoverDelegate = hoverDelegate;\n}\n/**\n * Gets the hover delegate for use **only in the `base/` layer**.\n *\n * Since the hover service depends on various platform services, this delegate essentially bypasses\n * the standard dependency injection mechanism by injecting a global hover service at start up. The\n * only reason this should be used is if `IHoverService` is not available.\n */\nexport function getBaseLayerHoverDelegate() {\n return baseHoverDelegate;\n}\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ini/ini.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"ini\",\n extensions: [\".ini\", \".properties\", \".gitconfig\"],\n filenames: [\"config\", \".gitattributes\", \".gitconfig\", \".editorconfig\"],\n aliases: [\"Ini\", \"ini\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/ini/ini\"], resolve, reject);\n });\n } else {\n return import(\"./ini.js\");\n }\n }\n});\n","/* eslint-disable valid-jsdoc */\n/* eslint-disable security/detect-object-injection */\nimport { Fetch } from '@syncfusion/ej2-base';\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { DataUtil } from './util';\nimport { Predicate, Query } from './query';\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\n/**\n * DataManager is used to manage and manipulate relational data.\n */\nvar DataManager = /** @class */ (function () {\n /**\n * Constructor for DataManager class\n *\n * @param {DataOptions|JSON[]} dataSource?\n * @param {Query} query?\n * @param {AdaptorOptions|string} adaptor?\n * @param dataSource\n * @param query\n * @param adaptor\n * @hidden\n */\n function DataManager(dataSource, query, adaptor) {\n var _this = this;\n /** @hidden */\n this.dateParse = true;\n /** @hidden */\n this.timeZoneHandling = true;\n this.persistQuery = {};\n this.isInitialLoad = false;\n this.requests = [];\n this.isInitialLoad = true;\n if (!dataSource && !this.dataSource) {\n dataSource = [];\n }\n adaptor = adaptor || dataSource.adaptor;\n if (dataSource && dataSource.timeZoneHandling === false) {\n this.timeZoneHandling = dataSource.timeZoneHandling;\n }\n var data;\n if (dataSource instanceof Array) {\n data = {\n json: dataSource,\n offline: true\n };\n }\n else if (typeof dataSource === 'object') {\n if (!dataSource.json) {\n dataSource.json = [];\n }\n if (!dataSource.enablePersistence) {\n dataSource.enablePersistence = false;\n }\n if (!dataSource.id) {\n dataSource.id = '';\n }\n if (!dataSource.ignoreOnPersist) {\n dataSource.ignoreOnPersist = [];\n }\n data = {\n url: dataSource.url,\n insertUrl: dataSource.insertUrl,\n removeUrl: dataSource.removeUrl,\n updateUrl: dataSource.updateUrl,\n crudUrl: dataSource.crudUrl,\n batchUrl: dataSource.batchUrl,\n json: dataSource.json,\n headers: dataSource.headers,\n accept: dataSource.accept,\n data: dataSource.data,\n timeTillExpiration: dataSource.timeTillExpiration,\n cachingPageSize: dataSource.cachingPageSize,\n enableCaching: dataSource.enableCaching,\n requestType: dataSource.requestType,\n key: dataSource.key,\n crossDomain: dataSource.crossDomain,\n jsonp: dataSource.jsonp,\n dataType: dataSource.dataType,\n offline: dataSource.offline !== undefined ? dataSource.offline\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\n false : dataSource.url ? false : true,\n requiresFormat: dataSource.requiresFormat,\n enablePersistence: dataSource.enablePersistence,\n id: dataSource.id,\n ignoreOnPersist: dataSource.ignoreOnPersist\n };\n }\n else {\n DataUtil.throwError('DataManager: Invalid arguments');\n }\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\n }\n if (data.dataType === undefined) {\n data.dataType = 'json';\n }\n this.dataSource = data;\n this.defaultQuery = query;\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n window.addEventListener('unload', this.setPersistData.bind(this));\n }\n if (data.url && data.offline && !data.json.length) {\n this.isDataAvailable = false;\n this.adaptor = adaptor || new ODataAdaptor();\n this.dataSource.offline = false;\n this.ready = this.executeQuery(query || new Query());\n this.ready.then(function (e) {\n _this.dataSource.offline = true;\n _this.isDataAvailable = true;\n data.json = e.result;\n _this.adaptor = new JsonAdaptor();\n });\n }\n else {\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\n }\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\n data.jsonp = 'callback';\n }\n this.adaptor = adaptor || this.adaptor;\n if (data.enableCaching) {\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\n }\n return this;\n }\n Object.defineProperty(DataManager.prototype, \"moduleName\", {\n /** @hidden */\n get: function () { return 'datamanager'; },\n enumerable: true,\n configurable: true\n });\n ;\n /**\n * Get the queries maintained in the persisted state.\n * @param {string} id - The identifier of the persisted query to retrieve.\n * @returns {object} The persisted data object.\n */\n DataManager.prototype.getPersistedData = function (id) {\n var persistedData = localStorage.getItem(id || this.dataSource.id);\n return JSON.parse(persistedData);\n };\n /**\n * Set the queries to be maintained in the persisted state.\n * @param {Event} e - The event parameter that triggers the setPersistData method.\n * @param {string} id - The identifier of the persisted query to set.\n * @param {object} persistData - The data to be persisted.\n * @returns {void} .\n */\n DataManager.prototype.setPersistData = function (e, id, persistData) {\n localStorage.setItem(id || this.dataSource.id, JSON.stringify(persistData || this.persistQuery));\n };\n DataManager.prototype.setPersistQuery = function (query) {\n var _this = this;\n var persistedQuery = this.getPersistedData();\n if (this.isInitialLoad && persistedQuery && Object.keys(persistedQuery).length) {\n this.persistQuery = persistedQuery;\n this.persistQuery.queries = this.persistQuery.queries.filter(function (query) {\n if (_this.dataSource.ignoreOnPersist && _this.dataSource.ignoreOnPersist.length) {\n if (query.fn && _this.dataSource.ignoreOnPersist.some(function (keyword) { return query.fn === keyword; })) {\n return false; // Exclude the matching query\n }\n }\n if (query.fn === 'onWhere') {\n var e = query.e;\n if (e && e.isComplex && e.predicates instanceof Array) {\n var allPredicates = e.predicates.map(function (predicateObj) {\n if (predicateObj.predicates && predicateObj.predicates instanceof Array) {\n // Process nested predicate array\n var nestedPredicates = predicateObj.predicates.map(function (nestedPredicate) {\n var field = nestedPredicate.field, operator = nestedPredicate.operator, value = nestedPredicate.value, ignoreCase = nestedPredicate.ignoreCase, ignoreAccent = nestedPredicate.ignoreAccent, matchCase = nestedPredicate.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n });\n return predicateObj.condition === 'and' ? Predicate.and(nestedPredicates) : Predicate.or(nestedPredicates);\n }\n else {\n // Process individual predicate\n var field = predicateObj.field, operator = predicateObj.operator, value = predicateObj.value, ignoreCase = predicateObj.ignoreCase, ignoreAccent = predicateObj.ignoreAccent, matchCase = predicateObj.matchCase;\n return new Predicate(field, operator, value, ignoreCase, ignoreAccent, matchCase);\n }\n });\n query.e = new Predicate(allPredicates[0], e.condition, allPredicates.slice(1));\n }\n }\n return true; // Keep all other queries\n });\n var newQuery = extend(new Query(), this.persistQuery);\n this.isInitialLoad = false;\n return (newQuery);\n }\n else {\n this.persistQuery = query;\n this.isInitialLoad = false;\n return query;\n }\n };\n /**\n * Overrides DataManager's default query with given query.\n *\n * @param {Query} query - Defines the new default query.\n */\n DataManager.prototype.setDefaultQuery = function (query) {\n this.defaultQuery = query;\n return this;\n };\n /**\n * Executes the given query with local data source.\n *\n * @param {Query} query - Defines the query to retrieve data.\n */\n DataManager.prototype.executeLocal = function (query) {\n if (!this.defaultQuery && !(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\n }\n if (!this.dataSource.json) {\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\n }\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n query = query || this.defaultQuery;\n var result = this.adaptor.processQuery(this, query);\n if (query.subQuery) {\n var from = query.subQuery.fromTable;\n var lookup = query.subQuery.lookups;\n var res = query.isCountRequired ? result.result :\n result;\n if (lookup && lookup instanceof Array) {\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\n }\n for (var j = 0; j < res.length; j++) {\n if (res[j][from] instanceof Array) {\n res[j] = extend({}, {}, res[j]);\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\n }\n }\n }\n return this.adaptor.processResponse(result, this, query);\n };\n /**\n * Executes the given query with either local or remote data source.\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\n *\n * @param {Query|Function} query - Defines the query to retrieve data.\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\n */\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\n var _this = this;\n var makeRequest = 'makeRequest';\n if (this.dataSource.enablePersistence && this.dataSource.id) {\n query = this.setPersistQuery(query);\n }\n if (typeof query === 'function') {\n always = fail;\n fail = done;\n done = query;\n query = null;\n }\n if (!query) {\n query = this.defaultQuery;\n }\n if (!(query instanceof Query)) {\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\n }\n var deffered = new Deferred();\n var args = { query: query };\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\n var result = this.adaptor.processQuery(this, query);\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\n this.adaptor[makeRequest](result, deffered, args, query);\n }\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\n this.requests = [];\n this.makeRequest(result, deffered, args, query);\n }\n else {\n args = DataManager.getDeferedArgs(query, result, args);\n deffered.resolve(args);\n }\n }\n else {\n DataManager.nextTick(function () {\n var res = _this.executeLocal(query);\n args = DataManager.getDeferedArgs(query, res, args);\n deffered.resolve(args);\n });\n }\n if (done || fail) {\n deffered.promise.then(done, fail);\n }\n if (always) {\n deffered.promise.then(always, always);\n }\n return deffered.promise;\n };\n DataManager.getDeferedArgs = function (query, result, args) {\n if (query.isCountRequired) {\n args.result = result.result;\n args.count = result.count;\n args.aggregates = result.aggregates;\n }\n else {\n args.result = result;\n }\n return args;\n };\n DataManager.nextTick = function (fn) {\n /* eslint-disable @typescript-eslint/no-explicit-any */\n // tslint:disable-next-line:no-any\n (window.setImmediate || window.setTimeout)(fn, 0);\n /* eslint-enable @typescript-eslint/no-explicit-any */\n };\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\n return extend({}, {\n type: 'GET',\n dataType: this.dataSource.dataType,\n crossDomain: this.dataSource.crossDomain,\n jsonp: this.dataSource.jsonp,\n cache: true,\n processData: false,\n onSuccess: fnSuccess,\n onFailure: fnFail\n }, url);\n };\n // tslint:disable-next-line:max-func-body-length\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\n var _this = this;\n var isSelector = !!query.subQuerySelector;\n var fnFail = function (e) {\n args.error = e;\n deffered.reject(args);\n };\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\n args.xhr = xhr;\n args.count = count ? parseInt(count.toString(), 10) : 0;\n args.result = data;\n args.request = request;\n args.aggregates = aggregates;\n args.actual = actual;\n args.virtualSelectRecords = virtualSelectRecords;\n deffered.resolve(args);\n };\n var fnQueryChild = function (data, selector) {\n var subDeffer = new Deferred();\n var childArgs = { parent: args };\n query.subQuery.isChild = true;\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\n if (!isSelector) {\n subDeffer.then(function (subData) {\n if (data) {\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\n process(data, subData.count, subData.xhr);\n }\n }, fnFail);\n }\n return childReq;\n };\n var fnSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n return fnFail(data['errors'], request);\n }\n }\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\n request = extend({}, _this.fetchReqOption, request);\n }\n if (request.contentType.indexOf('xml') === -1 && _this.dateParse) {\n data = DataUtil.parse.parseJson(data);\n }\n var result = _this.adaptor.processResponse(data, _this, query, request.fetchRequest, request);\n var count = 0;\n var aggregates = null;\n var virtualSelectRecords = 'virtualSelectRecords';\n var virtualRecords = data[virtualSelectRecords];\n if (query.isCountRequired) {\n count = result.count;\n aggregates = result.aggregates;\n result = result.result;\n }\n if (!query.subQuery) {\n process(result, count, request.fetchRequest, request.type, data, aggregates, virtualRecords);\n return;\n }\n if (!isSelector) {\n fnQueryChild(result, request);\n }\n };\n var req = this.extendRequest(url, fnSuccess, fnFail);\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var fetch_1 = new Fetch(req);\n fetch_1.beforeSend = function () {\n _this.beforeSend(fetch_1.fetchRequest, fetch_1);\n };\n req = fetch_1.send();\n req.catch(function (e) { return true; }); // to handle failure remote requests.\n this.requests.push(fetch_1);\n }\n else {\n this.fetchReqOption = req;\n var request = req;\n this.adaptor.options.getData({\n data: request.data,\n onSuccess: request.onSuccess, onFailure: request.onFailure\n });\n }\n if (isSelector) {\n var promise = void 0;\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\n if (res && res.length) {\n promise = Promise.all([req, fnQueryChild(null, res)]);\n promise.then(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = args[0];\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].fetchRequest, _this.requests[0]);\n var count = 0;\n if (query.isCountRequired) {\n count = pResult.count;\n pResult = pResult.result;\n }\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].fetchRequest, _this.requests[1]);\n count = 0;\n if (query.subQuery.isCountRequired) {\n count = cResult.count;\n cResult = cResult.result;\n }\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\n isSelector = false;\n process(pResult, count, _this.requests[0].fetchRequest);\n });\n }\n else {\n isSelector = false;\n }\n }\n return req;\n };\n DataManager.prototype.beforeSend = function (request, settings) {\n this.adaptor.beforeSend(this, request, settings);\n var headers = this.dataSource.headers;\n var props;\n for (var i = 0; headers && i < headers.length; i++) {\n props = [];\n var keys = Object.keys(headers[i]);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var prop = keys_1[_i];\n props.push(prop);\n request.headers.set(prop, headers[i][prop]);\n }\n }\n };\n /**\n * Save bulk changes to the given table name.\n * User can add a new record, edit an existing record, and delete a record at the same time.\n * If the datasource from remote, then updated in a single post.\n *\n * @param {Object} changes - Defines the CrudOptions.\n * @param {string} key - Defines the column field.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\n var _this = this;\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var args = {\n url: tableName,\n key: key || this.dataSource.key\n };\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](req);\n }\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\n var deff_1 = new Deferred();\n var fetch_2 = new Fetch(req);\n fetch_2.beforeSend = function () {\n _this.beforeSend(fetch_2.fetchRequest, fetch_2);\n };\n fetch_2.onSuccess = function (data, request) {\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n fetch_2.onFailure(JSON.stringify(data['errors']));\n }\n }\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.fetchRequest, request, changes, args));\n };\n fetch_2.onFailure = function (e) {\n deff_1.reject([{ error: e }]);\n };\n fetch_2.send().catch(function (e) { return true; }); // to handle the failure requests.\n return deff_1.promise;\n }\n else {\n return this.dofetchRequest(req, this.adaptor.options.batchUpdate, changes);\n }\n };\n /**\n * Inserts new record in the given table.\n *\n * @param {Object} data - Defines the data to insert.\n * @param {string|Query} tableName - Defines the table name.\n * @param {Query} query - Sets default query for the DataManager.\n * @param position\n */\n DataManager.prototype.insert = function (data, tableName, query, position) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var req = this.adaptor.insert(this, data, tableName, query, position);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return req;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](req);\n }\n else {\n return this.dofetchRequest(req, this.adaptor.options.addRecord);\n }\n };\n /**\n * Removes data from the table with the given key.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n */\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\n if (typeof value === 'object') {\n value = DataUtil.getObject(keyField, value);\n }\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](res);\n }\n else {\n var remove = this.adaptor.options.deleteRecord;\n return this.dofetchRequest(res, remove);\n }\n };\n /**\n * Updates existing record in the given table.\n *\n * @param {string} keyField - Defines the column field.\n * @param {Object} value - Defines the value to find the data in the specified column.\n * @param {string|Query} tableName - Defines the table name\n * @param {Query} query - Sets default query for the DataManager.\n * @param original\n */\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\n if (tableName instanceof Query) {\n query = tableName;\n tableName = null;\n }\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\n var dofetchRequest = 'dofetchRequest';\n if (this.dataSource.offline) {\n return res;\n }\n if (!isNullOrUndefined(this.adaptor[dofetchRequest])) {\n return this.adaptor[dofetchRequest](res);\n }\n else {\n var update = this.adaptor.options.updateRecord;\n return this.dofetchRequest(res, update);\n }\n };\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\n };\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\n return this.adaptor.getModuleName &&\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\n };\n DataManager.prototype.successFunc = function (record, request, changes) {\n if (this.isGraphQLAdaptor(this.adaptor)) {\n var data = typeof record === 'object' ? record : JSON.parse(record);\n // tslint:disable-next-line:no-string-literal\n if (!isNullOrUndefined(data['errors'])) {\n // tslint:disable-next-line:no-string-literal\n this.failureFunc(JSON.stringify(data['errors']));\n }\n }\n if (this.isCustomDataAdaptor(this.adaptor)) {\n request = extend({}, this.fetchReqOption, request);\n }\n try {\n DataUtil.parse.parseJson(record);\n }\n catch (e) {\n record = [];\n }\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.fetchRequest, request, changes);\n this.fetchDeffered.resolve(record);\n };\n DataManager.prototype.failureFunc = function (e) {\n this.fetchDeffered.reject([{ error: e }]);\n };\n DataManager.prototype.dofetchRequest = function (res, fetchFunc, changes) {\n var _this = this;\n res = extend({}, {\n type: 'POST',\n contentType: 'application/json; charset=utf-8',\n processData: false\n }, res);\n this.fetchDeffered = new Deferred();\n if (!this.isCustomDataAdaptor(this.adaptor)) {\n var fetch_3 = new Fetch(res);\n fetch_3.beforeSend = function () {\n _this.beforeSend(fetch_3.fetchRequest, fetch_3);\n };\n fetch_3.onSuccess = this.successFunc.bind(this);\n fetch_3.onFailure = this.failureFunc.bind(this);\n fetch_3.send().catch(function (e) { return true; }); // to handle the failure requests.\n }\n else {\n this.fetchReqOption = res;\n fetchFunc.call(this, {\n data: res.data, onSuccess: this.successFunc.bind(this),\n onFailure: this.failureFunc.bind(this),\n changes: changes\n });\n }\n return this.fetchDeffered.promise;\n };\n DataManager.prototype.clearPersistence = function () {\n window.removeEventListener('unload', this.setPersistData.bind(this));\n this.dataSource.enablePersistence = false;\n this.persistQuery = {};\n window.localStorage.setItem(this.dataSource.id, '[]');\n };\n return DataManager;\n}());\nexport { DataManager };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n anObject(this);\n aCallable(mapper);\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: mapper\n });\n};\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst util_2 = require(\"../../compile/util\");\nconst def = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt) {\n const { gen, schema, data, parentSchema, it } = cxt;\n const { opts } = it;\n const patterns = (0, code_1.allSchemaProperties)(schema);\n const alwaysValidPatterns = patterns.filter((p) => (0, util_1.alwaysValidSchema)(it, schema[p]));\n if (patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))) {\n return;\n }\n const checkProperties = opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties;\n const valid = gen.name(\"valid\");\n if (it.props !== true && !(it.props instanceof codegen_1.Name)) {\n it.props = (0, util_2.evaluatedPropsToName)(gen, it.props);\n }\n const { props } = it;\n validatePatternProperties();\n function validatePatternProperties() {\n for (const pat of patterns) {\n if (checkProperties)\n checkMatchingProperties(pat);\n if (it.allErrors) {\n validateProperties(pat);\n }\n else {\n gen.var(valid, true); // TODO var\n validateProperties(pat);\n gen.if(valid);\n }\n }\n }\n function checkMatchingProperties(pat) {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n (0, util_1.checkStrictMode)(it, `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`);\n }\n }\n }\n function validateProperties(pat) {\n gen.forIn(\"key\", data, (key) => {\n gen.if((0, codegen_1._) `${(0, code_1.usePattern)(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat);\n if (!alwaysValid) {\n cxt.subschema({\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: util_2.Type.Str,\n }, valid);\n }\n if (it.opts.unevaluated && props !== true) {\n gen.assign((0, codegen_1._) `${props}[${key}]`, true);\n }\n else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=patternProperties.js.map","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ColorDetector_1;\nimport { createCancelablePromise, TimeoutTimer } from '../../../../base/common/async.js';\nimport { RGBA } from '../../../../base/common/color.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { noBreakWhitespace } from '../../../../base/common/strings.js';\nimport { DynamicCssRules } from '../../../browser/editorDom.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getColors } from './color.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nexport const ColorDecorationInjectedTextMarker = Object.create({});\nlet ColorDetector = ColorDetector_1 = class ColorDetector extends Disposable {\n constructor(_editor, _configurationService, _languageFeaturesService, languageFeatureDebounceService) {\n super();\n this._editor = _editor;\n this._configurationService = _configurationService;\n this._languageFeaturesService = _languageFeaturesService;\n this._localToDispose = this._register(new DisposableStore());\n this._decorationsIds = [];\n this._colorDatas = new Map();\n this._colorDecoratorIds = this._editor.createDecorationsCollection();\n this._ruleFactory = new DynamicCssRules(this._editor);\n this._decoratorLimitReporter = new DecoratorLimitReporter();\n this._colorDecorationClassRefs = this._register(new DisposableStore());\n this._debounceInformation = languageFeatureDebounceService.for(_languageFeaturesService.colorProvider, 'Document Colors', { min: ColorDetector_1.RECOMPUTE_TIME });\n this._register(_editor.onDidChangeModel(() => {\n this._isColorDecoratorsEnabled = this.isEnabled();\n this.updateColors();\n }));\n this._register(_editor.onDidChangeModelLanguage(() => this.updateColors()));\n this._register(_languageFeaturesService.colorProvider.onDidChange(() => this.updateColors()));\n this._register(_editor.onDidChangeConfiguration((e) => {\n const prevIsEnabled = this._isColorDecoratorsEnabled;\n this._isColorDecoratorsEnabled = this.isEnabled();\n this._isDefaultColorDecoratorsEnabled = this._editor.getOption(147 /* EditorOption.defaultColorDecorators */);\n const updatedColorDecoratorsSetting = prevIsEnabled !== this._isColorDecoratorsEnabled || e.hasChanged(21 /* EditorOption.colorDecoratorsLimit */);\n const updatedDefaultColorDecoratorsSetting = e.hasChanged(147 /* EditorOption.defaultColorDecorators */);\n if (updatedColorDecoratorsSetting || updatedDefaultColorDecoratorsSetting) {\n if (this._isColorDecoratorsEnabled) {\n this.updateColors();\n }\n else {\n this.removeAllDecorations();\n }\n }\n }));\n this._timeoutTimer = null;\n this._computePromise = null;\n this._isColorDecoratorsEnabled = this.isEnabled();\n this._isDefaultColorDecoratorsEnabled = this._editor.getOption(147 /* EditorOption.defaultColorDecorators */);\n this.updateColors();\n }\n isEnabled() {\n const model = this._editor.getModel();\n if (!model) {\n return false;\n }\n const languageId = model.getLanguageId();\n // handle deprecated settings. [languageId].colorDecorators.enable\n const deprecatedConfig = this._configurationService.getValue(languageId);\n if (deprecatedConfig && typeof deprecatedConfig === 'object') {\n const colorDecorators = deprecatedConfig['colorDecorators']; // deprecatedConfig.valueOf('.colorDecorators.enable');\n if (colorDecorators && colorDecorators['enable'] !== undefined && !colorDecorators['enable']) {\n return colorDecorators['enable'];\n }\n }\n return this._editor.getOption(20 /* EditorOption.colorDecorators */);\n }\n static get(editor) {\n return editor.getContribution(this.ID);\n }\n dispose() {\n this.stop();\n this.removeAllDecorations();\n super.dispose();\n }\n updateColors() {\n this.stop();\n if (!this._isColorDecoratorsEnabled) {\n return;\n }\n const model = this._editor.getModel();\n if (!model || !this._languageFeaturesService.colorProvider.has(model)) {\n return;\n }\n this._localToDispose.add(this._editor.onDidChangeModelContent(() => {\n if (!this._timeoutTimer) {\n this._timeoutTimer = new TimeoutTimer();\n this._timeoutTimer.cancelAndSet(() => {\n this._timeoutTimer = null;\n this.beginCompute();\n }, this._debounceInformation.get(model));\n }\n }));\n this.beginCompute();\n }\n async beginCompute() {\n this._computePromise = createCancelablePromise(async (token) => {\n const model = this._editor.getModel();\n if (!model) {\n return [];\n }\n const sw = new StopWatch(false);\n const colors = await getColors(this._languageFeaturesService.colorProvider, model, token, this._isDefaultColorDecoratorsEnabled);\n this._debounceInformation.update(model, sw.elapsed());\n return colors;\n });\n try {\n const colors = await this._computePromise;\n this.updateDecorations(colors);\n this.updateColorDecorators(colors);\n this._computePromise = null;\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n stop() {\n if (this._timeoutTimer) {\n this._timeoutTimer.cancel();\n this._timeoutTimer = null;\n }\n if (this._computePromise) {\n this._computePromise.cancel();\n this._computePromise = null;\n }\n this._localToDispose.clear();\n }\n updateDecorations(colorDatas) {\n const decorations = colorDatas.map(c => ({\n range: {\n startLineNumber: c.colorInfo.range.startLineNumber,\n startColumn: c.colorInfo.range.startColumn,\n endLineNumber: c.colorInfo.range.endLineNumber,\n endColumn: c.colorInfo.range.endColumn\n },\n options: ModelDecorationOptions.EMPTY\n }));\n this._editor.changeDecorations((changeAccessor) => {\n this._decorationsIds = changeAccessor.deltaDecorations(this._decorationsIds, decorations);\n this._colorDatas = new Map();\n this._decorationsIds.forEach((id, i) => this._colorDatas.set(id, colorDatas[i]));\n });\n }\n updateColorDecorators(colorData) {\n this._colorDecorationClassRefs.clear();\n const decorations = [];\n const limit = this._editor.getOption(21 /* EditorOption.colorDecoratorsLimit */);\n for (let i = 0; i < colorData.length && decorations.length < limit; i++) {\n const { red, green, blue, alpha } = colorData[i].colorInfo.color;\n const rgba = new RGBA(Math.round(red * 255), Math.round(green * 255), Math.round(blue * 255), alpha);\n const color = `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n const ref = this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({\n backgroundColor: color\n }));\n decorations.push({\n range: {\n startLineNumber: colorData[i].colorInfo.range.startLineNumber,\n startColumn: colorData[i].colorInfo.range.startColumn,\n endLineNumber: colorData[i].colorInfo.range.endLineNumber,\n endColumn: colorData[i].colorInfo.range.endColumn\n },\n options: {\n description: 'colorDetector',\n before: {\n content: noBreakWhitespace,\n inlineClassName: `${ref.className} colorpicker-color-decoration`,\n inlineClassNameAffectsLetterSpacing: true,\n attachedData: ColorDecorationInjectedTextMarker\n }\n }\n });\n }\n const limited = limit < colorData.length ? limit : false;\n this._decoratorLimitReporter.update(colorData.length, limited);\n this._colorDecoratorIds.set(decorations);\n }\n removeAllDecorations() {\n this._editor.removeDecorations(this._decorationsIds);\n this._decorationsIds = [];\n this._colorDecoratorIds.clear();\n this._colorDecorationClassRefs.clear();\n }\n getColorData(position) {\n const model = this._editor.getModel();\n if (!model) {\n return null;\n }\n const decorations = model\n .getDecorationsInRange(Range.fromPositions(position, position))\n .filter(d => this._colorDatas.has(d.id));\n if (decorations.length === 0) {\n return null;\n }\n return this._colorDatas.get(decorations[0].id);\n }\n isColorDecoration(decoration) {\n return this._colorDecoratorIds.has(decoration);\n }\n};\nColorDetector.ID = 'editor.contrib.colorDetector';\nColorDetector.RECOMPUTE_TIME = 1000; // ms\nColorDetector = ColorDetector_1 = __decorate([\n __param(1, IConfigurationService),\n __param(2, ILanguageFeaturesService),\n __param(3, ILanguageFeatureDebounceService)\n], ColorDetector);\nexport { ColorDetector };\nexport class DecoratorLimitReporter {\n constructor() {\n this._onDidChange = new Emitter();\n this._computed = 0;\n this._limited = false;\n }\n update(computed, limited) {\n if (computed !== this._computed || limited !== this._limited) {\n this._computed = computed;\n this._limited = limited;\n this._onDidChange.fire();\n }\n }\n}\nregisterEditorContribution(ColorDetector.ID, ColorDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand } from '../../../common/commands/replaceCommand.js';\nimport { EditorOptions } from '../../../common/config/editorOptions.js';\nimport { CursorState } from '../../../common/cursorCommon.js';\nimport { WordOperations } from '../../../common/cursor/cursorWordOperations.js';\nimport { getMapForWordSeparators } from '../../../common/core/wordCharacterClassifier.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as nls from '../../../../nls.js';\nimport { CONTEXT_ACCESSIBILITY_MODE_ENABLED } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IsWindowsContext } from '../../../../platform/contextkey/common/contextkeys.js';\nexport class MoveWordCommand extends EditorCommand {\n constructor(opts) {\n super(opts);\n this._inSelectionMode = opts.inSelectionMode;\n this._wordNavigationType = opts.wordNavigationType;\n }\n runEditorCommand(accessor, editor, args) {\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const result = selections.map((sel) => {\n const inPosition = new Position(sel.positionLineNumber, sel.positionColumn);\n const outPosition = this._move(wordSeparators, model, inPosition, this._wordNavigationType);\n return this._moveTo(sel, outPosition, this._inSelectionMode);\n });\n model.pushStackElement();\n editor._getViewModel().setCursorStates('moveWordCommand', 3 /* CursorChangeReason.Explicit */, result.map(r => CursorState.fromModelSelection(r)));\n if (result.length === 1) {\n const pos = new Position(result[0].positionLineNumber, result[0].positionColumn);\n editor.revealPosition(pos, 0 /* ScrollType.Smooth */);\n }\n }\n _moveTo(from, to, inSelectionMode) {\n if (inSelectionMode) {\n // move just position\n return new Selection(from.selectionStartLineNumber, from.selectionStartColumn, to.lineNumber, to.column);\n }\n else {\n // move everything\n return new Selection(to.lineNumber, to.column, to.lineNumber, to.column);\n }\n }\n}\nexport class WordLeftCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordOperations.moveWordLeft(wordSeparators, model, position, wordNavigationType);\n }\n}\nexport class WordRightCommand extends MoveWordCommand {\n _move(wordSeparators, model, position, wordNavigationType) {\n return WordOperations.moveWordRight(wordSeparators, model, position, wordNavigationType);\n }\n}\nexport class CursorWordStartLeft extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartLeft',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndLeft extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndLeft',\n precondition: undefined\n });\n }\n}\nexport class CursorWordLeft extends WordLeftCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: false,\n wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n id: 'cursorWordLeft',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 15 /* KeyCode.LeftArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordStartLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartLeftSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndLeftSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordLeftSelect extends WordLeftCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: true,\n wordNavigationType: 1 /* WordNavigationType.WordStartFast */,\n id: 'cursorWordLeftSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 15 /* KeyCode.LeftArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\n// Accessibility navigation commands should only be enabled on windows since they are tuned to what NVDA expects\nexport class CursorWordAccessibilityLeft extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityLeft',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordAccessibilityLeftSelect extends WordLeftCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityLeftSelect',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordStartRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartRight',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndRight extends WordRightCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndRight',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 17 /* KeyCode.RightArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordRight',\n precondition: undefined\n });\n }\n}\nexport class CursorWordStartRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'cursorWordStartRightSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordEndRightSelect extends WordRightCommand {\n constructor() {\n var _a;\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordEndRightSelect',\n precondition: undefined,\n kbOpts: {\n kbExpr: ContextKeyExpr.and(EditorContextKeys.textInputFocus, (_a = ContextKeyExpr.and(CONTEXT_ACCESSIBILITY_MODE_ENABLED, IsWindowsContext)) === null || _a === void 0 ? void 0 : _a.negate()),\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 17 /* KeyCode.RightArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class CursorWordRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'cursorWordRightSelect',\n precondition: undefined\n });\n }\n}\nexport class CursorWordAccessibilityRight extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: false,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityRight',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class CursorWordAccessibilityRightSelect extends WordRightCommand {\n constructor() {\n super({\n inSelectionMode: true,\n wordNavigationType: 3 /* WordNavigationType.WordAccessibility */,\n id: 'cursorWordAccessibilityRightSelect',\n precondition: undefined\n });\n }\n _move(wordCharacterClassifier, model, position, wordNavigationType) {\n return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue, wordCharacterClassifier.intlSegmenterLocales), model, position, wordNavigationType);\n }\n}\nexport class DeleteWordCommand extends EditorCommand {\n constructor(opts) {\n super(opts);\n this._whitespaceHeuristics = opts.whitespaceHeuristics;\n this._wordNavigationType = opts.wordNavigationType;\n }\n runEditorCommand(accessor, editor, args) {\n const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const autoClosingBrackets = editor.getOption(6 /* EditorOption.autoClosingBrackets */);\n const autoClosingQuotes = editor.getOption(11 /* EditorOption.autoClosingQuotes */);\n const autoClosingPairs = languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getAutoClosingPairs();\n const viewModel = editor._getViewModel();\n const commands = selections.map((sel) => {\n const deleteRange = this._delete({\n wordSeparators,\n model,\n selection: sel,\n whitespaceHeuristics: this._whitespaceHeuristics,\n autoClosingDelete: editor.getOption(9 /* EditorOption.autoClosingDelete */),\n autoClosingBrackets,\n autoClosingQuotes,\n autoClosingPairs,\n autoClosedCharacters: viewModel.getCursorAutoClosedCharacters(),\n }, this._wordNavigationType);\n return new ReplaceCommand(deleteRange, '');\n });\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nexport class DeleteWordLeftCommand extends DeleteWordCommand {\n _delete(ctx, wordNavigationType) {\n const r = WordOperations.deleteWordLeft(ctx, wordNavigationType);\n if (r) {\n return r;\n }\n return new Range(1, 1, 1, 1);\n }\n}\nexport class DeleteWordRightCommand extends DeleteWordCommand {\n _delete(ctx, wordNavigationType) {\n const r = WordOperations.deleteWordRight(ctx, wordNavigationType);\n if (r) {\n return r;\n }\n const lineCount = ctx.model.getLineCount();\n const maxColumn = ctx.model.getLineMaxColumn(lineCount);\n return new Range(lineCount, maxColumn, lineCount, maxColumn);\n }\n}\nexport class DeleteWordStartLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordStartLeft',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordEndLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordEndLeft',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordLeft extends DeleteWordLeftCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordLeft',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1 /* KeyCode.Backspace */,\n mac: { primary: 512 /* KeyMod.Alt */ | 1 /* KeyCode.Backspace */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class DeleteWordStartRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 0 /* WordNavigationType.WordStart */,\n id: 'deleteWordStartRight',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordEndRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: false,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordEndRight',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteWordRight extends DeleteWordRightCommand {\n constructor() {\n super({\n whitespaceHeuristics: true,\n wordNavigationType: 2 /* WordNavigationType.WordEnd */,\n id: 'deleteWordRight',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 20 /* KeyCode.Delete */,\n mac: { primary: 512 /* KeyMod.Alt */ | 20 /* KeyCode.Delete */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nexport class DeleteInsideWord extends EditorAction {\n constructor() {\n super({\n id: 'deleteInsideWord',\n precondition: EditorContextKeys.writable,\n label: nls.localize('deleteInsideWord', \"Delete Word\"),\n alias: 'Delete Word'\n });\n }\n run(accessor, editor, args) {\n if (!editor.hasModel()) {\n return;\n }\n const wordSeparators = getMapForWordSeparators(editor.getOption(131 /* EditorOption.wordSeparators */), editor.getOption(130 /* EditorOption.wordSegmenterLocales */));\n const model = editor.getModel();\n const selections = editor.getSelections();\n const commands = selections.map((sel) => {\n const deleteRange = WordOperations.deleteInsideWord(wordSeparators, model, sel);\n return new ReplaceCommand(deleteRange, '');\n });\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nregisterEditorCommand(new CursorWordStartLeft());\nregisterEditorCommand(new CursorWordEndLeft());\nregisterEditorCommand(new CursorWordLeft());\nregisterEditorCommand(new CursorWordStartLeftSelect());\nregisterEditorCommand(new CursorWordEndLeftSelect());\nregisterEditorCommand(new CursorWordLeftSelect());\nregisterEditorCommand(new CursorWordStartRight());\nregisterEditorCommand(new CursorWordEndRight());\nregisterEditorCommand(new CursorWordRight());\nregisterEditorCommand(new CursorWordStartRightSelect());\nregisterEditorCommand(new CursorWordEndRightSelect());\nregisterEditorCommand(new CursorWordRightSelect());\nregisterEditorCommand(new CursorWordAccessibilityLeft());\nregisterEditorCommand(new CursorWordAccessibilityLeftSelect());\nregisterEditorCommand(new CursorWordAccessibilityRight());\nregisterEditorCommand(new CursorWordAccessibilityRightSelect());\nregisterEditorCommand(new DeleteWordStartLeft());\nregisterEditorCommand(new DeleteWordEndLeft());\nregisterEditorCommand(new DeleteWordLeft());\nregisterEditorCommand(new DeleteWordStartRight());\nregisterEditorCommand(new DeleteWordEndRight());\nregisterEditorCommand(new DeleteWordRight());\nregisterEditorAction(DeleteInsideWord);\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/hcl/hcl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"hcl\",\n extensions: [\".tf\", \".tfvars\", \".hcl\"],\n aliases: [\"Terraform\", \"tf\", \"HCL\", \"hcl\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/hcl/hcl\"], resolve, reject);\n });\n } else {\n return import(\"./hcl.js\");\n }\n }\n});\n","/**\n * Position library\n */\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nvar elementRect;\nvar popupRect;\nvar element;\nvar parentDocument;\nvar fixedParent = false;\n/**\n *\n * @param {HTMLElement} anchor - specifies the element\n * @param {HTMLElement} element - specifies the element\n * @returns {OffsetPosition} - returns the value\n */\nexport function calculateRelativeBasedPosition(anchor, element) {\n var fixedElement = false;\n var anchorPos = { left: 0, top: 0 };\n var tempAnchor = anchor;\n if (!anchor || !element) {\n return anchorPos;\n }\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\n fixedElement = true;\n }\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left += anchor.offsetLeft;\n anchorPos.top += anchor.offsetTop;\n anchor = anchor.offsetParent;\n }\n anchor = tempAnchor;\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\n anchorPos.left -= anchor.scrollLeft;\n anchorPos.top -= anchor.scrollTop;\n anchor = anchor.parentElement;\n }\n return anchorPos;\n}\n/**\n *\n * @param {Element} currentElement - specifies the element\n * @param {string} positionX - specifies the position\n * @param {string} positionY - specifies the position\n * @param {boolean} parentElement - specifies the boolean\n * @param {ClientRect} targetValues - specifies the client\n * @returns {OffsetPosition} - returns the position\n */\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\n popupRect = undefined;\n popupRect = targetValues;\n fixedParent = parentElement ? true : false;\n if (!currentElement) {\n return { left: 0, top: 0 };\n }\n if (!positionX) {\n positionX = 'left';\n }\n if (!positionY) {\n positionY = 'top';\n }\n parentDocument = currentElement.ownerDocument;\n element = currentElement;\n var pos = { left: 0, top: 0 };\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosx(value, pos) {\n pos.left = value;\n}\n/**\n *\n * @param {number} value - specifies the number\n * @param {OffsetPosition} pos - specifies the position\n * @returns {void}\n */\nfunction setPosy(value, pos) {\n pos.top = value;\n}\n/**\n *\n * @param {string} posX - specifies the position\n * @param {string} posY - specifies the position\n * @param {OffsetPosition} pos - specifies the position\n * @returns {OffsetPosition} - returns the postion\n */\nfunction updatePosition(posX, posY, pos) {\n elementRect = element.getBoundingClientRect();\n switch (posY + posX) {\n case 'topcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'topright':\n setPosx(getElementRight(), pos);\n setPosy(getElementTop(), pos);\n break;\n case 'centercenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerright':\n setPosx(getElementRight(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'centerleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementVCenter(), pos);\n break;\n case 'bottomcenter':\n setPosx(getElementHCenter(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomright':\n setPosx(getElementRight(), pos);\n setPosy(getElementBottom(), pos);\n break;\n case 'bottomleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementBottom(), pos);\n break;\n default:\n case 'topleft':\n setPosx(getElementLeft(), pos);\n setPosy(getElementTop(), pos);\n break;\n }\n element = null;\n return pos;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollTop() {\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getBodyScrollLeft() {\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementBottom() {\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementVCenter() {\n return getElementTop() + (elementRect.height / 2);\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementTop() {\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementLeft() {\n return elementRect.left + getBodyScrollLeft();\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementRight() {\n var popupWidth = (element && (element.classList.contains('e-date-wrapper') || element.classList.contains('e-datetime-wrapper') || (element.classList.contains('e-ddl') && element.classList.contains('e-rtl')) || element.classList.contains('e-date-range-wrapper'))) ? (popupRect ? popupRect.width : 0) :\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\n return elementRect.right + getBodyScrollLeft() - popupWidth;\n}\n/**\n * @returns {number} - specifies the number value\n */\nfunction getElementHCenter() {\n return getElementLeft() + (elementRect.width / 2);\n}\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var arrayMap = require('./_arrayMap'),\n baseIndexOf = require('./_baseIndexOf'),\n baseIndexOfWith = require('./_baseIndexOfWith'),\n baseUnary = require('./_baseUnary'),\n copyArray = require('./_copyArray');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nmodule.exports = basePullAll;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\n/**\n * Return a hash value for an object.\n */\nexport function hash(obj) {\n return doHash(obj, 0);\n}\nexport function doHash(obj, hashVal) {\n switch (typeof obj) {\n case 'object':\n if (obj === null) {\n return numberHash(349, hashVal);\n }\n else if (Array.isArray(obj)) {\n return arrayHash(obj, hashVal);\n }\n return objectHash(obj, hashVal);\n case 'string':\n return stringHash(obj, hashVal);\n case 'boolean':\n return booleanHash(obj, hashVal);\n case 'number':\n return numberHash(obj, hashVal);\n case 'undefined':\n return numberHash(937, hashVal);\n default:\n return numberHash(617, hashVal);\n }\n}\nexport function numberHash(val, initialHashVal) {\n return (((initialHashVal << 5) - initialHashVal) + val) | 0; // hashVal * 31 + ch, keep as int32\n}\nfunction booleanHash(b, initialHashVal) {\n return numberHash(b ? 433 : 863, initialHashVal);\n}\nexport function stringHash(s, hashVal) {\n hashVal = numberHash(149417, hashVal);\n for (let i = 0, length = s.length; i < length; i++) {\n hashVal = numberHash(s.charCodeAt(i), hashVal);\n }\n return hashVal;\n}\nfunction arrayHash(arr, initialHashVal) {\n initialHashVal = numberHash(104579, initialHashVal);\n return arr.reduce((hashVal, item) => doHash(item, hashVal), initialHashVal);\n}\nfunction objectHash(obj, initialHashVal) {\n initialHashVal = numberHash(181387, initialHashVal);\n return Object.keys(obj).sort().reduce((hashVal, key) => {\n hashVal = stringHash(key, hashVal);\n return doHash(obj[key], hashVal);\n }, initialHashVal);\n}\nfunction leftRotate(value, bits, totalBits = 32) {\n // delta + bits = totalBits\n const delta = totalBits - bits;\n // All ones, expect `delta` zeros aligned to the right\n const mask = ~((1 << delta) - 1);\n // Join (value left-shifted `bits` bits) with (masked value right-shifted `delta` bits)\n return ((value << bits) | ((mask & value) >>> delta)) >>> 0;\n}\nfunction fill(dest, index = 0, count = dest.byteLength, value = 0) {\n for (let i = 0; i < count; i++) {\n dest[index + i] = value;\n }\n}\nfunction leftPad(value, length, char = '0') {\n while (value.length < length) {\n value = char + value;\n }\n return value;\n}\nexport function toHexString(bufferOrValue, bitsize = 32) {\n if (bufferOrValue instanceof ArrayBuffer) {\n return Array.from(new Uint8Array(bufferOrValue)).map(b => b.toString(16).padStart(2, '0')).join('');\n }\n return leftPad((bufferOrValue >>> 0).toString(16), bitsize / 4);\n}\n/**\n * A SHA1 implementation that works with strings and does not allocate.\n */\nexport class StringSHA1 {\n constructor() {\n this._h0 = 0x67452301;\n this._h1 = 0xEFCDAB89;\n this._h2 = 0x98BADCFE;\n this._h3 = 0x10325476;\n this._h4 = 0xC3D2E1F0;\n this._buff = new Uint8Array(64 /* SHA1Constant.BLOCK_SIZE */ + 3 /* to fit any utf-8 */);\n this._buffDV = new DataView(this._buff.buffer);\n this._buffLen = 0;\n this._totalLen = 0;\n this._leftoverHighSurrogate = 0;\n this._finished = false;\n }\n update(str) {\n const strLen = str.length;\n if (strLen === 0) {\n return;\n }\n const buff = this._buff;\n let buffLen = this._buffLen;\n let leftoverHighSurrogate = this._leftoverHighSurrogate;\n let charCode;\n let offset;\n if (leftoverHighSurrogate !== 0) {\n charCode = leftoverHighSurrogate;\n offset = -1;\n leftoverHighSurrogate = 0;\n }\n else {\n charCode = str.charCodeAt(0);\n offset = 0;\n }\n while (true) {\n let codePoint = charCode;\n if (strings.isHighSurrogate(charCode)) {\n if (offset + 1 < strLen) {\n const nextCharCode = str.charCodeAt(offset + 1);\n if (strings.isLowSurrogate(nextCharCode)) {\n offset++;\n codePoint = strings.computeCodePoint(charCode, nextCharCode);\n }\n else {\n // illegal => unicode replacement character\n codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */;\n }\n }\n else {\n // last character is a surrogate pair\n leftoverHighSurrogate = charCode;\n break;\n }\n }\n else if (strings.isLowSurrogate(charCode)) {\n // illegal => unicode replacement character\n codePoint = 65533 /* SHA1Constant.UNICODE_REPLACEMENT */;\n }\n buffLen = this._push(buff, buffLen, codePoint);\n offset++;\n if (offset < strLen) {\n charCode = str.charCodeAt(offset);\n }\n else {\n break;\n }\n }\n this._buffLen = buffLen;\n this._leftoverHighSurrogate = leftoverHighSurrogate;\n }\n _push(buff, buffLen, codePoint) {\n if (codePoint < 0x0080) {\n buff[buffLen++] = codePoint;\n }\n else if (codePoint < 0x0800) {\n buff[buffLen++] = 0b11000000 | ((codePoint & 0b00000000000000000000011111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else if (codePoint < 0x10000) {\n buff[buffLen++] = 0b11100000 | ((codePoint & 0b00000000000000001111000000000000) >>> 12);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n else {\n buff[buffLen++] = 0b11110000 | ((codePoint & 0b00000000000111000000000000000000) >>> 18);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000111111000000000000) >>> 12);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000111111000000) >>> 6);\n buff[buffLen++] = 0b10000000 | ((codePoint & 0b00000000000000000000000000111111) >>> 0);\n }\n if (buffLen >= 64 /* SHA1Constant.BLOCK_SIZE */) {\n this._step();\n buffLen -= 64 /* SHA1Constant.BLOCK_SIZE */;\n this._totalLen += 64 /* SHA1Constant.BLOCK_SIZE */;\n // take last 3 in case of UTF8 overflow\n buff[0] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 0];\n buff[1] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 1];\n buff[2] = buff[64 /* SHA1Constant.BLOCK_SIZE */ + 2];\n }\n return buffLen;\n }\n digest() {\n if (!this._finished) {\n this._finished = true;\n if (this._leftoverHighSurrogate) {\n // illegal => unicode replacement character\n this._leftoverHighSurrogate = 0;\n this._buffLen = this._push(this._buff, this._buffLen, 65533 /* SHA1Constant.UNICODE_REPLACEMENT */);\n }\n this._totalLen += this._buffLen;\n this._wrapUp();\n }\n return toHexString(this._h0) + toHexString(this._h1) + toHexString(this._h2) + toHexString(this._h3) + toHexString(this._h4);\n }\n _wrapUp() {\n this._buff[this._buffLen++] = 0x80;\n fill(this._buff, this._buffLen);\n if (this._buffLen > 56) {\n this._step();\n fill(this._buff);\n }\n // this will fit because the mantissa can cover up to 52 bits\n const ml = 8 * this._totalLen;\n this._buffDV.setUint32(56, Math.floor(ml / 4294967296), false);\n this._buffDV.setUint32(60, ml % 4294967296, false);\n this._step();\n }\n _step() {\n const bigBlock32 = StringSHA1._bigBlock32;\n const data = this._buffDV;\n for (let j = 0; j < 64 /* 16*4 */; j += 4) {\n bigBlock32.setUint32(j, data.getUint32(j, false), false);\n }\n for (let j = 64; j < 320 /* 80*4 */; j += 4) {\n bigBlock32.setUint32(j, leftRotate((bigBlock32.getUint32(j - 12, false) ^ bigBlock32.getUint32(j - 32, false) ^ bigBlock32.getUint32(j - 56, false) ^ bigBlock32.getUint32(j - 64, false)), 1), false);\n }\n let a = this._h0;\n let b = this._h1;\n let c = this._h2;\n let d = this._h3;\n let e = this._h4;\n let f, k;\n let temp;\n for (let j = 0; j < 80; j++) {\n if (j < 20) {\n f = (b & c) | ((~b) & d);\n k = 0x5A827999;\n }\n else if (j < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (j < 60) {\n f = (b & c) | (b & d) | (c & d);\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n temp = (leftRotate(a, 5) + f + e + k + bigBlock32.getUint32(j * 4, false)) & 0xffffffff;\n e = d;\n d = c;\n c = leftRotate(b, 30);\n b = a;\n a = temp;\n }\n this._h0 = (this._h0 + a) & 0xffffffff;\n this._h1 = (this._h1 + b) & 0xffffffff;\n this._h2 = (this._h2 + c) & 0xffffffff;\n this._h3 = (this._h3 + d) & 0xffffffff;\n this._h4 = (this._h4 + e) & 0xffffffff;\n }\n}\nStringSHA1._bigBlock32 = new DataView(new ArrayBuffer(320)); // 80 * 4 = 320\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as extpath from './extpath.js';\nimport { Schemas } from './network.js';\nimport * as paths from './path.js';\nimport { isLinux, isWindows } from './platform.js';\nimport { compare as strCompare, equalsIgnoreCase } from './strings.js';\nimport { URI, uriToFsPath } from './uri.js';\nexport function originalFSPath(uri) {\n return uriToFsPath(uri, true);\n}\nexport class ExtUri {\n constructor(_ignorePathCasing) {\n this._ignorePathCasing = _ignorePathCasing;\n }\n compare(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return 0;\n }\n return strCompare(this.getComparisonKey(uri1, ignoreFragment), this.getComparisonKey(uri2, ignoreFragment));\n }\n isEqual(uri1, uri2, ignoreFragment = false) {\n if (uri1 === uri2) {\n return true;\n }\n if (!uri1 || !uri2) {\n return false;\n }\n return this.getComparisonKey(uri1, ignoreFragment) === this.getComparisonKey(uri2, ignoreFragment);\n }\n getComparisonKey(uri, ignoreFragment = false) {\n return uri.with({\n path: this._ignorePathCasing(uri) ? uri.path.toLowerCase() : undefined,\n fragment: ignoreFragment ? null : undefined\n }).toString();\n }\n isEqualOrParent(base, parentCandidate, ignoreFragment = false) {\n if (base.scheme === parentCandidate.scheme) {\n if (base.scheme === Schemas.file) {\n return extpath.isEqualOrParent(originalFSPath(base), originalFSPath(parentCandidate), this._ignorePathCasing(base)) && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n }\n if (isEqualAuthority(base.authority, parentCandidate.authority)) {\n return extpath.isEqualOrParent(base.path, parentCandidate.path, this._ignorePathCasing(base), '/') && base.query === parentCandidate.query && (ignoreFragment || base.fragment === parentCandidate.fragment);\n }\n }\n return false;\n }\n // --- path math\n joinPath(resource, ...pathFragment) {\n return URI.joinPath(resource, ...pathFragment);\n }\n basenameOrAuthority(resource) {\n return basename(resource) || resource.authority;\n }\n basename(resource) {\n return paths.posix.basename(resource.path);\n }\n extname(resource) {\n return paths.posix.extname(resource.path);\n }\n dirname(resource) {\n if (resource.path.length === 0) {\n return resource;\n }\n let dirname;\n if (resource.scheme === Schemas.file) {\n dirname = URI.file(paths.dirname(originalFSPath(resource))).path;\n }\n else {\n dirname = paths.posix.dirname(resource.path);\n if (resource.authority && dirname.length && dirname.charCodeAt(0) !== 47 /* CharCode.Slash */) {\n console.error(`dirname(\"${resource.toString})) resulted in a relative path`);\n dirname = '/'; // If a URI contains an authority component, then the path component must either be empty or begin with a CharCode.Slash (\"/\") character\n }\n }\n return resource.with({\n path: dirname\n });\n }\n normalizePath(resource) {\n if (!resource.path.length) {\n return resource;\n }\n let normalizedPath;\n if (resource.scheme === Schemas.file) {\n normalizedPath = URI.file(paths.normalize(originalFSPath(resource))).path;\n }\n else {\n normalizedPath = paths.posix.normalize(resource.path);\n }\n return resource.with({\n path: normalizedPath\n });\n }\n relativePath(from, to) {\n if (from.scheme !== to.scheme || !isEqualAuthority(from.authority, to.authority)) {\n return undefined;\n }\n if (from.scheme === Schemas.file) {\n const relativePath = paths.relative(originalFSPath(from), originalFSPath(to));\n return isWindows ? extpath.toSlashes(relativePath) : relativePath;\n }\n let fromPath = from.path || '/';\n const toPath = to.path || '/';\n if (this._ignorePathCasing(from)) {\n // make casing of fromPath match toPath\n let i = 0;\n for (const len = Math.min(fromPath.length, toPath.length); i < len; i++) {\n if (fromPath.charCodeAt(i) !== toPath.charCodeAt(i)) {\n if (fromPath.charAt(i).toLowerCase() !== toPath.charAt(i).toLowerCase()) {\n break;\n }\n }\n }\n fromPath = toPath.substr(0, i) + fromPath.substr(i);\n }\n return paths.posix.relative(fromPath, toPath);\n }\n resolvePath(base, path) {\n if (base.scheme === Schemas.file) {\n const newURI = URI.file(paths.resolve(originalFSPath(base), path));\n return base.with({\n authority: newURI.authority,\n path: newURI.path\n });\n }\n path = extpath.toPosixPath(path); // we allow path to be a windows path\n return base.with({\n path: paths.posix.resolve(base.path, path)\n });\n }\n // --- misc\n isAbsolutePath(resource) {\n return !!resource.path && resource.path[0] === '/';\n }\n isEqualAuthority(a1, a2) {\n return a1 === a2 || (a1 !== undefined && a2 !== undefined && equalsIgnoreCase(a1, a2));\n }\n hasTrailingPathSeparator(resource, sep = paths.sep) {\n if (resource.scheme === Schemas.file) {\n const fsp = originalFSPath(resource);\n return fsp.length > extpath.getRoot(fsp).length && fsp[fsp.length - 1] === sep;\n }\n else {\n const p = resource.path;\n return (p.length > 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */) && !(/^[a-zA-Z]:(\\/$|\\\\$)/.test(resource.fsPath)); // ignore the slash at offset 0\n }\n }\n removeTrailingPathSeparator(resource, sep = paths.sep) {\n // Make sure that the path isn't a drive letter. A trailing separator there is not removable.\n if (hasTrailingPathSeparator(resource, sep)) {\n return resource.with({ path: resource.path.substr(0, resource.path.length - 1) });\n }\n return resource;\n }\n addTrailingPathSeparator(resource, sep = paths.sep) {\n let isRootSep = false;\n if (resource.scheme === Schemas.file) {\n const fsp = originalFSPath(resource);\n isRootSep = ((fsp !== undefined) && (fsp.length === extpath.getRoot(fsp).length) && (fsp[fsp.length - 1] === sep));\n }\n else {\n sep = '/';\n const p = resource.path;\n isRootSep = p.length === 1 && p.charCodeAt(p.length - 1) === 47 /* CharCode.Slash */;\n }\n if (!isRootSep && !hasTrailingPathSeparator(resource, sep)) {\n return resource.with({ path: resource.path + '/' });\n }\n return resource;\n }\n}\n/**\n * Unbiased utility that takes uris \"as they are\". This means it can be interchanged with\n * uri#toString() usages. The following is true\n * ```\n * assertEqual(aUri.toString() === bUri.toString(), exturi.isEqual(aUri, bUri))\n * ```\n */\nexport const extUri = new ExtUri(() => false);\n/**\n * BIASED utility that _mostly_ ignored the case of urs paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriBiasedIgnorePathCase = new ExtUri(uri => {\n // A file scheme resource is in the same platform as code, so ignore case for non linux platforms\n // Resource can be from another platform. Lowering the case as an hack. Should come from File system provider\n return uri.scheme === Schemas.file ? !isLinux : true;\n});\n/**\n * BIASED utility that always ignores the casing of uris paths. ONLY use this util if you\n * understand what you are doing.\n *\n * This utility is INCOMPATIBLE with `uri.toString()`-usages and both CANNOT be used interchanged.\n *\n * When dealing with uris from files or documents, `extUri` (the unbiased friend)is sufficient\n * because those uris come from a \"trustworthy source\". When creating unknown uris it's always\n * better to use `IUriIdentityService` which exposes an `IExtUri`-instance which knows when path\n * casing matters.\n */\nexport const extUriIgnorePathCase = new ExtUri(_ => true);\nexport const isEqual = extUri.isEqual.bind(extUri);\nexport const isEqualOrParent = extUri.isEqualOrParent.bind(extUri);\nexport const getComparisonKey = extUri.getComparisonKey.bind(extUri);\nexport const basenameOrAuthority = extUri.basenameOrAuthority.bind(extUri);\nexport const basename = extUri.basename.bind(extUri);\nexport const extname = extUri.extname.bind(extUri);\nexport const dirname = extUri.dirname.bind(extUri);\nexport const joinPath = extUri.joinPath.bind(extUri);\nexport const normalizePath = extUri.normalizePath.bind(extUri);\nexport const relativePath = extUri.relativePath.bind(extUri);\nexport const resolvePath = extUri.resolvePath.bind(extUri);\nexport const isAbsolutePath = extUri.isAbsolutePath.bind(extUri);\nexport const isEqualAuthority = extUri.isEqualAuthority.bind(extUri);\nexport const hasTrailingPathSeparator = extUri.hasTrailingPathSeparator.bind(extUri);\nexport const removeTrailingPathSeparator = extUri.removeTrailingPathSeparator.bind(extUri);\nexport const addTrailingPathSeparator = extUri.addTrailingPathSeparator.bind(extUri);\n/**\n * Data URI related helpers.\n */\nexport var DataUri;\n(function (DataUri) {\n DataUri.META_DATA_LABEL = 'label';\n DataUri.META_DATA_DESCRIPTION = 'description';\n DataUri.META_DATA_SIZE = 'size';\n DataUri.META_DATA_MIME = 'mime';\n function parseMetaData(dataUri) {\n const metadata = new Map();\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the metadata is: size:2313;label:SomeLabel;description:SomeDescription\n const meta = dataUri.path.substring(dataUri.path.indexOf(';') + 1, dataUri.path.lastIndexOf(';'));\n meta.split(';').forEach(property => {\n const [key, value] = property.split(':');\n if (key && value) {\n metadata.set(key, value);\n }\n });\n // Given a URI of: data:image/png;size:2313;label:SomeLabel;description:SomeDescription;base64,77+9UE5...\n // the mime is: image/png\n const mime = dataUri.path.substring(0, dataUri.path.indexOf(';'));\n if (mime) {\n metadata.set(DataUri.META_DATA_MIME, mime);\n }\n return metadata;\n }\n DataUri.parseMetaData = parseMetaData;\n})(DataUri || (DataUri = {}));\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/solidity/solidity.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"sol\",\n extensions: [\".sol\"],\n aliases: [\"sol\", \"solidity\", \"Solidity\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/solidity/solidity\"], resolve, reject);\n });\n } else {\n return import(\"./solidity.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class InternalEditorAction {\n constructor(id, label, alias, metadata, _precondition, _run, _contextKeyService) {\n this.id = id;\n this.label = label;\n this.alias = alias;\n this.metadata = metadata;\n this._precondition = _precondition;\n this._run = _run;\n this._contextKeyService = _contextKeyService;\n }\n isSupported() {\n return this._contextKeyService.contextMatchesRules(this._precondition);\n }\n run(args) {\n if (!this.isSupported()) {\n return Promise.resolve(undefined);\n }\n return this._run(args);\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/xml/xml.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"xml\",\n extensions: [\n \".xml\",\n \".xsd\",\n \".dtd\",\n \".ascx\",\n \".csproj\",\n \".config\",\n \".props\",\n \".targets\",\n \".wxi\",\n \".wxl\",\n \".wxs\",\n \".xaml\",\n \".svg\",\n \".svgz\",\n \".opf\",\n \".xslt\",\n \".xsl\"\n ],\n firstLine: \"(\\\\<\\\\?xml.*)|(\\\\ {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/xml/xml\"], resolve, reject);\n });\n } else {\n return import(\"./xml.js\");\n }\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../core/range.js';\nimport { lengthAdd, lengthDiffNonNegative, lengthLessThanEqual, lengthOfString, lengthToObj, positionToLength, toLength } from './length.js';\nexport class TextEditInfo {\n static fromModelContentChanges(changes) {\n // Must be sorted in ascending order\n const edits = changes.map(c => {\n const range = Range.lift(c.range);\n return new TextEditInfo(positionToLength(range.getStartPosition()), positionToLength(range.getEndPosition()), lengthOfString(c.text));\n }).reverse();\n return edits;\n }\n constructor(startOffset, endOffset, newLength) {\n this.startOffset = startOffset;\n this.endOffset = endOffset;\n this.newLength = newLength;\n }\n toString() {\n return `[${lengthToObj(this.startOffset)}...${lengthToObj(this.endOffset)}) -> ${lengthToObj(this.newLength)}`;\n }\n}\nexport class BeforeEditPositionMapper {\n /**\n * @param edits Must be sorted by offset in ascending order.\n */\n constructor(edits) {\n this.nextEditIdx = 0;\n this.deltaOldToNewLineCount = 0;\n this.deltaOldToNewColumnCount = 0;\n this.deltaLineIdxInOld = -1;\n this.edits = edits.map(edit => TextEditInfoCache.from(edit));\n }\n /**\n * @param offset Must be equal to or greater than the last offset this method has been called with.\n */\n getOffsetBeforeChange(offset) {\n this.adjustNextEdit(offset);\n return this.translateCurToOld(offset);\n }\n /**\n * @param offset Must be equal to or greater than the last offset this method has been called with.\n * Returns null if there is no edit anymore.\n */\n getDistanceToNextChange(offset) {\n this.adjustNextEdit(offset);\n const nextEdit = this.edits[this.nextEditIdx];\n const nextChangeOffset = nextEdit ? this.translateOldToCur(nextEdit.offsetObj) : null;\n if (nextChangeOffset === null) {\n return null;\n }\n return lengthDiffNonNegative(offset, nextChangeOffset);\n }\n translateOldToCur(oldOffsetObj) {\n if (oldOffsetObj.lineCount === this.deltaLineIdxInOld) {\n return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount + this.deltaOldToNewColumnCount);\n }\n else {\n return toLength(oldOffsetObj.lineCount + this.deltaOldToNewLineCount, oldOffsetObj.columnCount);\n }\n }\n translateCurToOld(newOffset) {\n const offsetObj = lengthToObj(newOffset);\n if (offsetObj.lineCount - this.deltaOldToNewLineCount === this.deltaLineIdxInOld) {\n return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount - this.deltaOldToNewColumnCount);\n }\n else {\n return toLength(offsetObj.lineCount - this.deltaOldToNewLineCount, offsetObj.columnCount);\n }\n }\n adjustNextEdit(offset) {\n while (this.nextEditIdx < this.edits.length) {\n const nextEdit = this.edits[this.nextEditIdx];\n // After applying the edit, what is its end offset (considering all previous edits)?\n const nextEditEndOffsetInCur = this.translateOldToCur(nextEdit.endOffsetAfterObj);\n if (lengthLessThanEqual(nextEditEndOffsetInCur, offset)) {\n // We are after the edit, skip it\n this.nextEditIdx++;\n const nextEditEndOffsetInCurObj = lengthToObj(nextEditEndOffsetInCur);\n // Before applying the edit, what is its end offset (considering all previous edits)?\n const nextEditEndOffsetBeforeInCurObj = lengthToObj(this.translateOldToCur(nextEdit.endOffsetBeforeObj));\n const lineDelta = nextEditEndOffsetInCurObj.lineCount - nextEditEndOffsetBeforeInCurObj.lineCount;\n this.deltaOldToNewLineCount += lineDelta;\n const previousColumnDelta = this.deltaLineIdxInOld === nextEdit.endOffsetBeforeObj.lineCount ? this.deltaOldToNewColumnCount : 0;\n const columnDelta = nextEditEndOffsetInCurObj.columnCount - nextEditEndOffsetBeforeInCurObj.columnCount;\n this.deltaOldToNewColumnCount = previousColumnDelta + columnDelta;\n this.deltaLineIdxInOld = nextEdit.endOffsetBeforeObj.lineCount;\n }\n else {\n // We are in or before the edit.\n break;\n }\n }\n }\n}\nclass TextEditInfoCache {\n static from(edit) {\n return new TextEditInfoCache(edit.startOffset, edit.endOffset, edit.newLength);\n }\n constructor(startOffset, endOffset, textLength) {\n this.endOffsetBeforeObj = lengthToObj(endOffset);\n this.endOffsetAfterObj = lengthToObj(lengthAdd(startOffset, textLength));\n this.offsetObj = lengthToObj(startOffset);\n }\n}\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst hasPerformanceNow = (globalThis.performance && typeof globalThis.performance.now === 'function');\nexport class StopWatch {\n static create(highResolution) {\n return new StopWatch(highResolution);\n }\n constructor(highResolution) {\n this._now = hasPerformanceNow && highResolution === false ? Date.now : globalThis.performance.now.bind(globalThis.performance);\n this._startTime = this._now();\n this._stopTime = -1;\n }\n stop() {\n this._stopTime = this._now();\n }\n reset() {\n this._startTime = this._now();\n this._stopTime = -1;\n }\n elapsed() {\n if (this._stopTime !== -1) {\n return this._stopTime - this._startTime;\n }\n return this._now() - this._startTime;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reportTypeError = exports.checkDataTypes = exports.checkDataType = exports.coerceAndCheckDataType = exports.getJSONTypes = exports.getSchemaTypes = exports.DataType = void 0;\nconst rules_1 = require(\"../rules\");\nconst applicability_1 = require(\"./applicability\");\nconst errors_1 = require(\"../errors\");\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"Correct\"] = 0] = \"Correct\";\n DataType[DataType[\"Wrong\"] = 1] = \"Wrong\";\n})(DataType || (exports.DataType = DataType = {}));\nfunction getSchemaTypes(schema) {\n const types = getJSONTypes(schema.type);\n const hasNull = types.includes(\"null\");\n if (hasNull) {\n if (schema.nullable === false)\n throw new Error(\"type: null contradicts nullable: false\");\n }\n else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"');\n }\n if (schema.nullable === true)\n types.push(\"null\");\n }\n return types;\n}\nexports.getSchemaTypes = getSchemaTypes;\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nfunction getJSONTypes(ts) {\n const types = Array.isArray(ts) ? ts : ts ? [ts] : [];\n if (types.every(rules_1.isJSONType))\n return types;\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"));\n}\nexports.getJSONTypes = getJSONTypes;\nfunction coerceAndCheckDataType(it, types) {\n const { gen, data, opts } = it;\n const coerceTo = coerceToTypes(types, opts.coerceTypes);\n const checkTypes = types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && (0, applicability_1.schemaHasRulesForType)(it, types[0]));\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong);\n gen.if(wrongType, () => {\n if (coerceTo.length)\n coerceData(it, types, coerceTo);\n else\n reportTypeError(it);\n });\n }\n return checkTypes;\n}\nexports.coerceAndCheckDataType = coerceAndCheckDataType;\nconst COERCIBLE = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"]);\nfunction coerceToTypes(types, coerceTypes) {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : [];\n}\nfunction coerceData(it, types, coerceTo) {\n const { gen, data, opts } = it;\n const dataType = gen.let(\"dataType\", (0, codegen_1._) `typeof ${data}`);\n const coerced = gen.let(\"coerced\", (0, codegen_1._) `undefined`);\n if (opts.coerceTypes === \"array\") {\n gen.if((0, codegen_1._) `${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () => gen\n .assign(data, (0, codegen_1._) `${data}[0]`)\n .assign(dataType, (0, codegen_1._) `typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data)));\n }\n gen.if((0, codegen_1._) `${coerced} !== undefined`);\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t);\n }\n }\n gen.else();\n reportTypeError(it);\n gen.endIf();\n gen.if((0, codegen_1._) `${coerced} !== undefined`, () => {\n gen.assign(data, coerced);\n assignParentData(it, coerced);\n });\n function coerceSpecificType(t) {\n switch (t) {\n case \"string\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, (0, codegen_1._) `\"\" + ${data}`)\n .elseIf((0, codegen_1._) `${data} === null`)\n .assign(coerced, (0, codegen_1._) `\"\"`);\n return;\n case \"number\":\n gen\n .elseIf((0, codegen_1._) `${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"integer\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`)\n .assign(coerced, (0, codegen_1._) `+${data}`);\n return;\n case \"boolean\":\n gen\n .elseIf((0, codegen_1._) `${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf((0, codegen_1._) `${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true);\n return;\n case \"null\":\n gen.elseIf((0, codegen_1._) `${data} === \"\" || ${data} === 0 || ${data} === false`);\n gen.assign(coerced, null);\n return;\n case \"array\":\n gen\n .elseIf((0, codegen_1._) `${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`)\n .assign(coerced, (0, codegen_1._) `[${data}]`);\n }\n }\n}\nfunction assignParentData({ gen, parentData, parentDataProperty }, expr) {\n // TODO use gen.property\n gen.if((0, codegen_1._) `${parentData} !== undefined`, () => gen.assign((0, codegen_1._) `${parentData}[${parentDataProperty}]`, expr));\n}\nfunction checkDataType(dataType, data, strictNums, correct = DataType.Correct) {\n const EQ = correct === DataType.Correct ? codegen_1.operators.EQ : codegen_1.operators.NEQ;\n let cond;\n switch (dataType) {\n case \"null\":\n return (0, codegen_1._) `${data} ${EQ} null`;\n case \"array\":\n cond = (0, codegen_1._) `Array.isArray(${data})`;\n break;\n case \"object\":\n cond = (0, codegen_1._) `${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`;\n break;\n case \"integer\":\n cond = numCond((0, codegen_1._) `!(${data} % 1) && !isNaN(${data})`);\n break;\n case \"number\":\n cond = numCond();\n break;\n default:\n return (0, codegen_1._) `typeof ${data} ${EQ} ${dataType}`;\n }\n return correct === DataType.Correct ? cond : (0, codegen_1.not)(cond);\n function numCond(_cond = codegen_1.nil) {\n return (0, codegen_1.and)((0, codegen_1._) `typeof ${data} == \"number\"`, _cond, strictNums ? (0, codegen_1._) `isFinite(${data})` : codegen_1.nil);\n }\n}\nexports.checkDataType = checkDataType;\nfunction checkDataTypes(dataTypes, data, strictNums, correct) {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct);\n }\n let cond;\n const types = (0, util_1.toHash)(dataTypes);\n if (types.array && types.object) {\n const notObj = (0, codegen_1._) `typeof ${data} != \"object\"`;\n cond = types.null ? notObj : (0, codegen_1._) `!${data} || ${notObj}`;\n delete types.null;\n delete types.array;\n delete types.object;\n }\n else {\n cond = codegen_1.nil;\n }\n if (types.number)\n delete types.integer;\n for (const t in types)\n cond = (0, codegen_1.and)(cond, checkDataType(t, data, strictNums, correct));\n return cond;\n}\nexports.checkDataTypes = checkDataTypes;\nconst typeError = {\n message: ({ schema }) => `must be ${schema}`,\n params: ({ schema, schemaValue }) => typeof schema == \"string\" ? (0, codegen_1._) `{type: ${schema}}` : (0, codegen_1._) `{type: ${schemaValue}}`,\n};\nfunction reportTypeError(it) {\n const cxt = getTypeErrorContext(it);\n (0, errors_1.reportError)(cxt, typeError);\n}\nexports.reportTypeError = reportTypeError;\nfunction getTypeErrorContext(it) {\n const { gen, data, schema } = it;\n const schemaCode = (0, util_1.schemaRefOrVal)(it, schema, \"type\");\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n };\n}\n//# sourceMappingURL=dataType.js.map","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n anObject(this);\n aCallable(predicate);\n var record = getIteratorDirect(this);\n var counter = 0;\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.resolveSchema = exports.getCompilingSchema = exports.resolveRef = exports.compileSchema = exports.SchemaEnv = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst validation_error_1 = require(\"../runtime/validation_error\");\nconst names_1 = require(\"./names\");\nconst resolve_1 = require(\"./resolve\");\nconst util_1 = require(\"./util\");\nconst validate_1 = require(\"./validate\");\nclass SchemaEnv {\n constructor(env) {\n var _a;\n this.refs = {};\n this.dynamicAnchors = {};\n let schema;\n if (typeof env.schema == \"object\")\n schema = env.schema;\n this.schema = env.schema;\n this.schemaId = env.schemaId;\n this.root = env.root || this;\n this.baseId = (_a = env.baseId) !== null && _a !== void 0 ? _a : (0, resolve_1.normalizeId)(schema === null || schema === void 0 ? void 0 : schema[env.schemaId || \"$id\"]);\n this.schemaPath = env.schemaPath;\n this.localRefs = env.localRefs;\n this.meta = env.meta;\n this.$async = schema === null || schema === void 0 ? void 0 : schema.$async;\n this.refs = {};\n }\n}\nexports.SchemaEnv = SchemaEnv;\n// let codeSize = 0\n// let nodeCount = 0\n// Compiles schema in SchemaEnv\nfunction compileSchema(sch) {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch);\n if (_sch)\n return _sch;\n const rootId = (0, resolve_1.getFullPath)(this.opts.uriResolver, sch.root.baseId); // TODO if getFullPath removed 1 tests fails\n const { es5, lines } = this.opts.code;\n const { ownProperties } = this.opts;\n const gen = new codegen_1.CodeGen(this.scope, { es5, lines, ownProperties });\n let _ValidationError;\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: validation_error_1.default,\n code: (0, codegen_1._) `require(\"ajv/dist/runtime/validation_error\").default`,\n });\n }\n const validateName = gen.scopeName(\"validate\");\n sch.validateName = validateName;\n const schemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: names_1.default.data,\n parentData: names_1.default.parentData,\n parentDataProperty: names_1.default.parentDataProperty,\n dataNames: [names_1.default.data],\n dataPathArr: [codegen_1.nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set(),\n topSchemaRef: gen.scopeValue(\"schema\", this.opts.code.source === true\n ? { ref: sch.schema, code: (0, codegen_1.stringify)(sch.schema) }\n : { ref: sch.schema }),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: codegen_1.nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: (0, codegen_1._) `\"\"`,\n opts: this.opts,\n self: this,\n };\n let sourceCode;\n try {\n this._compilations.add(sch);\n (0, validate_1.validateFunctionCode)(schemaCxt);\n gen.optimize(this.opts.code.optimize);\n // gen.optimize(1)\n const validateCode = gen.toString();\n sourceCode = `${gen.scopeRefs(names_1.default.scope)}return ${validateCode}`;\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process)\n sourceCode = this.opts.code.process(sourceCode, sch);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${names_1.default.self}`, `${names_1.default.scope}`, sourceCode);\n const validate = makeValidate(this, this.scope.get());\n this.scope.value(validateName, { ref: validate });\n validate.errors = null;\n validate.schema = sch.schema;\n validate.schemaEnv = sch;\n if (sch.$async)\n validate.$async = true;\n if (this.opts.code.source === true) {\n validate.source = { validateName, validateCode, scopeValues: gen._values };\n }\n if (this.opts.unevaluated) {\n const { props, items } = schemaCxt;\n validate.evaluated = {\n props: props instanceof codegen_1.Name ? undefined : props,\n items: items instanceof codegen_1.Name ? undefined : items,\n dynamicProps: props instanceof codegen_1.Name,\n dynamicItems: items instanceof codegen_1.Name,\n };\n if (validate.source)\n validate.source.evaluated = (0, codegen_1.stringify)(validate.evaluated);\n }\n sch.validate = validate;\n return sch;\n }\n catch (e) {\n delete sch.validate;\n delete sch.validateName;\n if (sourceCode)\n this.logger.error(\"Error compiling schema, function code:\", sourceCode);\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e;\n }\n finally {\n this._compilations.delete(sch);\n }\n}\nexports.compileSchema = compileSchema;\nfunction resolveRef(root, baseId, ref) {\n var _a;\n ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, ref);\n const schOrFunc = root.refs[ref];\n if (schOrFunc)\n return schOrFunc;\n let _sch = resolve.call(this, root, ref);\n if (_sch === undefined) {\n const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref]; // TODO maybe localRefs should hold SchemaEnv\n const { schemaId } = this.opts;\n if (schema)\n _sch = new SchemaEnv({ schema, schemaId, root, baseId });\n }\n if (_sch === undefined)\n return;\n return (root.refs[ref] = inlineOrCompile.call(this, _sch));\n}\nexports.resolveRef = resolveRef;\nfunction inlineOrCompile(sch) {\n if ((0, resolve_1.inlineRef)(sch.schema, this.opts.inlineRefs))\n return sch.schema;\n return sch.validate ? sch : compileSchema.call(this, sch);\n}\n// Index of schema compilation in the currently compiled list\nfunction getCompilingSchema(schEnv) {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv))\n return sch;\n }\n}\nexports.getCompilingSchema = getCompilingSchema;\nfunction sameSchemaEnv(s1, s2) {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;\n}\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(root, // information about the root schema for the current schema\nref // reference to resolve\n) {\n let sch;\n while (typeof (sch = this.refs[ref]) == \"string\")\n ref = sch;\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref);\n}\n// Resolve schema, its root and baseId\nfunction resolveSchema(root, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\nref // reference to resolve\n) {\n const p = this.opts.uriResolver.parse(ref);\n const refPath = (0, resolve_1._getFullPath)(this.opts.uriResolver, p);\n let baseId = (0, resolve_1.getFullPath)(this.opts.uriResolver, root.baseId, undefined);\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root);\n }\n const id = (0, resolve_1.normalizeId)(refPath);\n const schOrRef = this.refs[id] || this.schemas[id];\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef);\n if (typeof (sch === null || sch === void 0 ? void 0 : sch.schema) !== \"object\")\n return;\n return getJsonPointer.call(this, p, sch);\n }\n if (typeof (schOrRef === null || schOrRef === void 0 ? void 0 : schOrRef.schema) !== \"object\")\n return;\n if (!schOrRef.validate)\n compileSchema.call(this, schOrRef);\n if (id === (0, resolve_1.normalizeId)(ref)) {\n const { schema } = schOrRef;\n const { schemaId } = this.opts;\n const schId = schema[schemaId];\n if (schId)\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n return new SchemaEnv({ schema, schemaId, root, baseId });\n }\n return getJsonPointer.call(this, p, schOrRef);\n}\nexports.resolveSchema = resolveSchema;\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n]);\nfunction getJsonPointer(parsedRef, { baseId, schema, root }) {\n var _a;\n if (((_a = parsedRef.fragment) === null || _a === void 0 ? void 0 : _a[0]) !== \"/\")\n return;\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\")\n return;\n const partSchema = schema[(0, util_1.unescapeFragment)(part)];\n if (partSchema === undefined)\n return;\n schema = partSchema;\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId];\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schId);\n }\n }\n let env;\n if (typeof schema != \"boolean\" && schema.$ref && !(0, util_1.schemaHasRulesButRef)(schema, this.RULES)) {\n const $ref = (0, resolve_1.resolveUrl)(this.opts.uriResolver, baseId, schema.$ref);\n env = resolveSchema.call(this, root, $ref);\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const { schemaId } = this.opts;\n env = env || new SchemaEnv({ schema, schemaId, root, baseId });\n if (env.schema !== env.root.schema)\n return env;\n return undefined;\n}\n//# sourceMappingURL=index.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport * as nls from '../../../../nls.js';\nclass CursorState {\n constructor(selections) {\n this.selections = selections;\n }\n equals(other) {\n const thisLen = this.selections.length;\n const otherLen = other.selections.length;\n if (thisLen !== otherLen) {\n return false;\n }\n for (let i = 0; i < thisLen; i++) {\n if (!this.selections[i].equalsSelection(other.selections[i])) {\n return false;\n }\n }\n return true;\n }\n}\nclass StackElement {\n constructor(cursorState, scrollTop, scrollLeft) {\n this.cursorState = cursorState;\n this.scrollTop = scrollTop;\n this.scrollLeft = scrollLeft;\n }\n}\nexport class CursorUndoRedoController extends Disposable {\n static get(editor) {\n return editor.getContribution(CursorUndoRedoController.ID);\n }\n constructor(editor) {\n super();\n this._editor = editor;\n this._isCursorUndoRedo = false;\n this._undoStack = [];\n this._redoStack = [];\n this._register(editor.onDidChangeModel((e) => {\n this._undoStack = [];\n this._redoStack = [];\n }));\n this._register(editor.onDidChangeModelContent((e) => {\n this._undoStack = [];\n this._redoStack = [];\n }));\n this._register(editor.onDidChangeCursorSelection((e) => {\n if (this._isCursorUndoRedo) {\n return;\n }\n if (!e.oldSelections) {\n return;\n }\n if (e.oldModelVersionId !== e.modelVersionId) {\n return;\n }\n const prevState = new CursorState(e.oldSelections);\n const isEqualToLastUndoStack = (this._undoStack.length > 0 && this._undoStack[this._undoStack.length - 1].cursorState.equals(prevState));\n if (!isEqualToLastUndoStack) {\n this._undoStack.push(new StackElement(prevState, editor.getScrollTop(), editor.getScrollLeft()));\n this._redoStack = [];\n if (this._undoStack.length > 50) {\n // keep the cursor undo stack bounded\n this._undoStack.shift();\n }\n }\n }));\n }\n cursorUndo() {\n if (!this._editor.hasModel() || this._undoStack.length === 0) {\n return;\n }\n this._redoStack.push(new StackElement(new CursorState(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n this._applyState(this._undoStack.pop());\n }\n cursorRedo() {\n if (!this._editor.hasModel() || this._redoStack.length === 0) {\n return;\n }\n this._undoStack.push(new StackElement(new CursorState(this._editor.getSelections()), this._editor.getScrollTop(), this._editor.getScrollLeft()));\n this._applyState(this._redoStack.pop());\n }\n _applyState(stackElement) {\n this._isCursorUndoRedo = true;\n this._editor.setSelections(stackElement.cursorState.selections);\n this._editor.setScrollPosition({\n scrollTop: stackElement.scrollTop,\n scrollLeft: stackElement.scrollLeft\n });\n this._isCursorUndoRedo = false;\n }\n}\nCursorUndoRedoController.ID = 'editor.contrib.cursorUndoRedoController';\nexport class CursorUndo extends EditorAction {\n constructor() {\n super({\n id: 'cursorUndo',\n label: nls.localize('cursor.undo', \"Cursor Undo\"),\n alias: 'Cursor Undo',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 51 /* KeyCode.KeyU */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor, args) {\n var _a;\n (_a = CursorUndoRedoController.get(editor)) === null || _a === void 0 ? void 0 : _a.cursorUndo();\n }\n}\nexport class CursorRedo extends EditorAction {\n constructor() {\n super({\n id: 'cursorRedo',\n label: nls.localize('cursor.redo', \"Cursor Redo\"),\n alias: 'Cursor Redo',\n precondition: undefined\n });\n }\n run(accessor, editor, args) {\n var _a;\n (_a = CursorUndoRedoController.get(editor)) === null || _a === void 0 ? void 0 : _a.cursorRedo();\n }\n}\nregisterEditorContribution(CursorUndoRedoController.ID, CursorUndoRedoController, 0 /* EditorContributionInstantiation.Eager */); // eager because it needs to listen to record cursor state ASAP\nregisterEditorAction(CursorUndo);\nregisterEditorAction(CursorRedo);\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/vb/vb.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"vb\",\n extensions: [\".vb\"],\n aliases: [\"Visual Basic\", \"vb\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/vb/vb\"], resolve, reject);\n });\n } else {\n return import(\"./vb.js\");\n }\n }\n});\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class LinesDiff {\n constructor(changes, \n /**\n * Sorted by original line ranges.\n * The original line ranges and the modified line ranges must be disjoint (but can be touching).\n */\n moves, \n /**\n * Indicates if the time out was reached.\n * In that case, the diffs might be an approximation and the user should be asked to rerun the diff with more time.\n */\n hitTimeout) {\n this.changes = changes;\n this.moves = moves;\n this.hitTimeout = hitTimeout;\n }\n}\nexport class MovedText {\n constructor(lineRangeMapping, changes) {\n this.lineRangeMapping = lineRangeMapping;\n this.changes = changes;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from './range.js';\nexport class EditOperation {\n static insert(position, text) {\n return {\n range: new Range(position.lineNumber, position.column, position.lineNumber, position.column),\n text: text,\n forceMoveMarkers: true\n };\n }\n static delete(range) {\n return {\n range: range,\n text: null\n };\n }\n static replace(range, text) {\n return {\n range: range,\n text: text\n };\n }\n static replaceMove(range, text) {\n return {\n range: range,\n text: text,\n forceMoveMarkers: true\n };\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/lexon/lexon.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"lexon\",\n extensions: [\".lex\"],\n aliases: [\"Lexon\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/lexon/lexon\"], resolve, reject);\n });\n } else {\n return import(\"./lexon.js\");\n }\n }\n});\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params }) => (0, codegen_1.str) `must match \"${params.ifClause}\" schema`,\n params: ({ params }) => (0, codegen_1._) `{failingKeyword: ${params.ifClause}}`,\n};\nconst def = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, parentSchema, it } = cxt;\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n (0, util_1.checkStrictMode)(it, '\"if\" without \"then\" and \"else\" is ignored');\n }\n const hasThen = hasSchema(it, \"then\");\n const hasElse = hasSchema(it, \"else\");\n if (!hasThen && !hasElse)\n return;\n const valid = gen.let(\"valid\", true);\n const schValid = gen.name(\"_valid\");\n validateIf();\n cxt.reset();\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\");\n cxt.setParams({ ifClause });\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause));\n }\n else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"));\n }\n else {\n gen.if((0, codegen_1.not)(schValid), validateClause(\"else\"));\n }\n cxt.pass(valid, () => cxt.error(true));\n function validateIf() {\n const schCxt = cxt.subschema({\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n }, schValid);\n cxt.mergeEvaluated(schCxt);\n }\n function validateClause(keyword, ifClause) {\n return () => {\n const schCxt = cxt.subschema({ keyword }, schValid);\n gen.assign(valid, schValid);\n cxt.mergeValidEvaluated(schCxt, valid);\n if (ifClause)\n gen.assign(ifClause, (0, codegen_1._) `${keyword}`);\n else\n cxt.setParams({ ifClause: keyword });\n };\n }\n },\n};\nfunction hasSchema(it, keyword) {\n const schema = it.schema[keyword];\n return schema !== undefined && !(0, util_1.alwaysValidSchema)(it, schema);\n}\nexports.default = def;\n//# sourceMappingURL=if.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { matchesFuzzy } from './filters.js';\nimport { ltrim } from './strings.js';\nimport { ThemeIcon } from './themables.js';\nconst iconStartMarker = '$(';\nconst iconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameExpression}(?:${ThemeIcon.iconModifierExpression})?\\\\)`, 'g'); // no capturing groups\nconst escapeIconsRegex = new RegExp(`(\\\\\\\\)?${iconsRegex.source}`, 'g');\nexport function escapeIcons(text) {\n return text.replace(escapeIconsRegex, (match, escaped) => escaped ? match : `\\\\${match}`);\n}\nconst markdownEscapedIconsRegex = new RegExp(`\\\\\\\\${iconsRegex.source}`, 'g');\nexport function markdownEscapeEscapedIcons(text) {\n // Need to add an extra \\ for escaping in markdown\n return text.replace(markdownEscapedIconsRegex, match => `\\\\${match}`);\n}\nconst stripIconsRegex = new RegExp(`(\\\\s)?(\\\\\\\\)?${iconsRegex.source}(\\\\s)?`, 'g');\n/**\n * Takes a label with icons (`$(iconId)xyz`) and strips the icons out (`xyz`)\n */\nexport function stripIcons(text) {\n if (text.indexOf(iconStartMarker) === -1) {\n return text;\n }\n return text.replace(stripIconsRegex, (match, preWhitespace, escaped, postWhitespace) => escaped ? match : preWhitespace || postWhitespace || '');\n}\n/**\n * Takes a label with icons (`$(iconId)xyz`), removes the icon syntax adds whitespace so that screen readers can read the text better.\n */\nexport function getCodiconAriaLabel(text) {\n if (!text) {\n return '';\n }\n return text.replace(/\\$\\((.*?)\\)/g, (_match, codiconName) => ` ${codiconName} `).trim();\n}\nconst _parseIconsRegex = new RegExp(`\\\\$\\\\(${ThemeIcon.iconNameCharacter}+\\\\)`, 'g');\n/**\n * Takes a label with icons (`abc $(iconId)xyz`) and returns the text (`abc xyz`) and the offsets of the icons (`[3]`)\n */\nexport function parseLabelWithIcons(input) {\n _parseIconsRegex.lastIndex = 0;\n let text = '';\n const iconOffsets = [];\n let iconsOffset = 0;\n while (true) {\n const pos = _parseIconsRegex.lastIndex;\n const match = _parseIconsRegex.exec(input);\n const chars = input.substring(pos, match === null || match === void 0 ? void 0 : match.index);\n if (chars.length > 0) {\n text += chars;\n for (let i = 0; i < chars.length; i++) {\n iconOffsets.push(iconsOffset);\n }\n }\n if (!match) {\n break;\n }\n iconsOffset += match[0].length;\n }\n return { text, iconOffsets };\n}\nexport function matchesFuzzyIconAware(query, target, enableSeparateSubstringMatching = false) {\n const { text, iconOffsets } = target;\n // Return early if there are no icon markers in the word to match against\n if (!iconOffsets || iconOffsets.length === 0) {\n return matchesFuzzy(query, text, enableSeparateSubstringMatching);\n }\n // Trim the word to match against because it could have leading\n // whitespace now if the word started with an icon\n const wordToMatchAgainstWithoutIconsTrimmed = ltrim(text, ' ');\n const leadingWhitespaceOffset = text.length - wordToMatchAgainstWithoutIconsTrimmed.length;\n // match on value without icon\n const matches = matchesFuzzy(query, wordToMatchAgainstWithoutIconsTrimmed, enableSeparateSubstringMatching);\n // Map matches back to offsets with icon and trimming\n if (matches) {\n for (const match of matches) {\n const iconOffset = iconOffsets[match.start + leadingWhitespaceOffset] /* icon offsets at index */ + leadingWhitespaceOffset /* overall leading whitespace offset */;\n match.start += iconOffset;\n match.end += iconOffset;\n }\n }\n return matches;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as objects from '../../../../base/common/objects.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { CodeEditorWidget } from './codeEditorWidget.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nlet EmbeddedCodeEditorWidget = class EmbeddedCodeEditorWidget extends CodeEditorWidget {\n constructor(domElement, options, codeEditorWidgetOptions, parentEditor, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService) {\n super(domElement, { ...parentEditor.getRawOptions(), overflowWidgetsDomNode: parentEditor.getOverflowWidgetsDomNode() }, codeEditorWidgetOptions, instantiationService, codeEditorService, commandService, contextKeyService, themeService, notificationService, accessibilityService, languageConfigurationService, languageFeaturesService);\n this._parentEditor = parentEditor;\n this._overwriteOptions = options;\n // Overwrite parent's options\n super.updateOptions(this._overwriteOptions);\n this._register(parentEditor.onDidChangeConfiguration((e) => this._onParentConfigurationChanged(e)));\n }\n getParentEditor() {\n return this._parentEditor;\n }\n _onParentConfigurationChanged(e) {\n super.updateOptions(this._parentEditor.getRawOptions());\n super.updateOptions(this._overwriteOptions);\n }\n updateOptions(newOptions) {\n objects.mixin(this._overwriteOptions, newOptions, true);\n super.updateOptions(this._overwriteOptions);\n }\n};\nEmbeddedCodeEditorWidget = __decorate([\n __param(4, IInstantiationService),\n __param(5, ICodeEditorService),\n __param(6, ICommandService),\n __param(7, IContextKeyService),\n __param(8, IThemeService),\n __param(9, INotificationService),\n __param(10, IAccessibilityService),\n __param(11, ILanguageConfigurationService),\n __param(12, ILanguageFeaturesService)\n], EmbeddedCodeEditorWidget);\nexport { EmbeddedCodeEditorWidget };\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class MoveCaretCommand {\n constructor(selection, isMovingLeft) {\n this._selection = selection;\n this._isMovingLeft = isMovingLeft;\n }\n getEditOperations(model, builder) {\n if (this._selection.startLineNumber !== this._selection.endLineNumber || this._selection.isEmpty()) {\n return;\n }\n const lineNumber = this._selection.startLineNumber;\n const startColumn = this._selection.startColumn;\n const endColumn = this._selection.endColumn;\n if (this._isMovingLeft && startColumn === 1) {\n return;\n }\n if (!this._isMovingLeft && endColumn === model.getLineMaxColumn(lineNumber)) {\n return;\n }\n if (this._isMovingLeft) {\n const rangeBefore = new Range(lineNumber, startColumn - 1, lineNumber, startColumn);\n const charBefore = model.getValueInRange(rangeBefore);\n builder.addEditOperation(rangeBefore, null);\n builder.addEditOperation(new Range(lineNumber, endColumn, lineNumber, endColumn), charBefore);\n }\n else {\n const rangeAfter = new Range(lineNumber, endColumn, lineNumber, endColumn + 1);\n const charAfter = model.getValueInRange(rangeAfter);\n builder.addEditOperation(rangeAfter, null);\n builder.addEditOperation(new Range(lineNumber, startColumn, lineNumber, startColumn), charAfter);\n }\n }\n computeCursorState(model, helper) {\n if (this._isMovingLeft) {\n return new Selection(this._selection.startLineNumber, this._selection.startColumn - 1, this._selection.endLineNumber, this._selection.endColumn - 1);\n }\n else {\n return new Selection(this._selection.startLineNumber, this._selection.startColumn + 1, this._selection.endLineNumber, this._selection.endColumn + 1);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { MoveCaretCommand } from './moveCaretCommand.js';\nimport * as nls from '../../../../nls.js';\nclass MoveCaretAction extends EditorAction {\n constructor(left, opts) {\n super(opts);\n this.left = left;\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const commands = [];\n const selections = editor.getSelections();\n for (const selection of selections) {\n commands.push(new MoveCaretCommand(selection, this.left));\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nclass MoveCaretLeftAction extends MoveCaretAction {\n constructor() {\n super(true, {\n id: 'editor.action.moveCarretLeftAction',\n label: nls.localize('caret.moveLeft', \"Move Selected Text Left\"),\n alias: 'Move Selected Text Left',\n precondition: EditorContextKeys.writable\n });\n }\n}\nclass MoveCaretRightAction extends MoveCaretAction {\n constructor() {\n super(false, {\n id: 'editor.action.moveCarretRightAction',\n label: nls.localize('caret.moveRight', \"Move Selected Text Right\"),\n alias: 'Move Selected Text Right',\n precondition: EditorContextKeys.writable\n });\n }\n}\nregisterEditorAction(MoveCaretLeftAction);\nregisterEditorAction(MoveCaretRightAction);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport const inlineEditAcceptId = 'editor.action.inlineEdit.accept';\nexport const inlineEditRejectId = 'editor.action.inlineEdit.reject';\nexport const inlineEditJumpToId = 'editor.action.inlineEdit.jumpTo';\nexport const inlineEditJumpBackId = 'editor.action.inlineEdit.jumpBack';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { derived, observableFromEvent, observableValue } from '../../../../base/common/observable.js';\nimport './inlineEdit.css';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageService } from '../../../common/languages/language.js';\nimport { InjectedTextCursorStops } from '../../../common/model.js';\nimport { LineDecoration } from '../../../common/viewLayout/lineDecorations.js';\nimport { AdditionalLinesWidget } from '../../inlineCompletions/browser/ghostTextWidget.js';\nimport { ColumnRange, applyObservableDecorations } from '../../inlineCompletions/browser/utils.js';\nexport const INLINE_EDIT_DESCRIPTION = 'inline-edit';\nlet GhostTextWidget = class GhostTextWidget extends Disposable {\n constructor(editor, model, languageService) {\n super();\n this.editor = editor;\n this.model = model;\n this.languageService = languageService;\n this.isDisposed = observableValue(this, false);\n this.currentTextModel = observableFromEvent(this.editor.onDidChangeModel, () => /** @description editor.model */ this.editor.getModel());\n this.uiState = derived(this, reader => {\n var _a;\n if (this.isDisposed.read(reader)) {\n return undefined;\n }\n const textModel = this.currentTextModel.read(reader);\n if (textModel !== this.model.targetTextModel.read(reader)) {\n return undefined;\n }\n const ghostText = this.model.ghostText.read(reader);\n if (!ghostText) {\n return undefined;\n }\n let range = (_a = this.model.range) === null || _a === void 0 ? void 0 : _a.read(reader);\n //if range is empty, we want to remove it\n if (range && range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n range = undefined;\n }\n //check if both range and text are single line - in this case we want to do inline replacement\n //rather than replacing whole lines\n const isSingleLine = (range ? range.startLineNumber === range.endLineNumber : true) && ghostText.parts.length === 1 && ghostText.parts[0].lines.length === 1;\n //check if we're just removing code\n const isPureRemove = ghostText.parts.length === 1 && ghostText.parts[0].lines.every(l => l.length === 0);\n const inlineTexts = [];\n const additionalLines = [];\n function addToAdditionalLines(lines, className) {\n if (additionalLines.length > 0) {\n const lastLine = additionalLines[additionalLines.length - 1];\n if (className) {\n lastLine.decorations.push(new LineDecoration(lastLine.content.length + 1, lastLine.content.length + 1 + lines[0].length, className, 0 /* InlineDecorationType.Regular */));\n }\n lastLine.content += lines[0];\n lines = lines.slice(1);\n }\n for (const line of lines) {\n additionalLines.push({\n content: line,\n decorations: className ? [new LineDecoration(1, line.length + 1, className, 0 /* InlineDecorationType.Regular */)] : []\n });\n }\n }\n const textBufferLine = textModel.getLineContent(ghostText.lineNumber);\n let hiddenTextStartColumn = undefined;\n let lastIdx = 0;\n if (!isPureRemove) {\n for (const part of ghostText.parts) {\n let lines = part.lines;\n //If remove range is set, we want to push all new liens to virtual area\n if (range && !isSingleLine) {\n addToAdditionalLines(lines, INLINE_EDIT_DESCRIPTION);\n lines = [];\n }\n if (hiddenTextStartColumn === undefined) {\n inlineTexts.push({\n column: part.column,\n text: lines[0],\n preview: part.preview,\n });\n lines = lines.slice(1);\n }\n else {\n addToAdditionalLines([textBufferLine.substring(lastIdx, part.column - 1)], undefined);\n }\n if (lines.length > 0) {\n addToAdditionalLines(lines, INLINE_EDIT_DESCRIPTION);\n if (hiddenTextStartColumn === undefined && part.column <= textBufferLine.length) {\n hiddenTextStartColumn = part.column;\n }\n }\n lastIdx = part.column - 1;\n }\n if (hiddenTextStartColumn !== undefined) {\n addToAdditionalLines([textBufferLine.substring(lastIdx)], undefined);\n }\n }\n const hiddenRange = hiddenTextStartColumn !== undefined ? new ColumnRange(hiddenTextStartColumn, textBufferLine.length + 1) : undefined;\n const lineNumber = (isSingleLine || !range) ? ghostText.lineNumber : range.endLineNumber - 1;\n return {\n inlineTexts,\n additionalLines,\n hiddenRange,\n lineNumber,\n additionalReservedLineCount: this.model.minReservedLineCount.read(reader),\n targetTextModel: textModel,\n range,\n isSingleLine,\n isPureRemove,\n backgroundColoring: this.model.backgroundColoring.read(reader)\n };\n });\n this.decorations = derived(this, reader => {\n const uiState = this.uiState.read(reader);\n if (!uiState) {\n return [];\n }\n const decorations = [];\n if (uiState.hiddenRange) {\n decorations.push({\n range: uiState.hiddenRange.toRange(uiState.lineNumber),\n options: { inlineClassName: 'inline-edit-hidden', description: 'inline-edit-hidden', }\n });\n }\n if (uiState.range) {\n const ranges = [];\n if (uiState.isSingleLine) {\n ranges.push(uiState.range);\n }\n else if (uiState.isPureRemove) {\n const lines = uiState.range.endLineNumber - uiState.range.startLineNumber;\n for (let i = 0; i < lines; i++) {\n const line = uiState.range.startLineNumber + i;\n const firstNonWhitespace = uiState.targetTextModel.getLineFirstNonWhitespaceColumn(line);\n const lastNonWhitespace = uiState.targetTextModel.getLineLastNonWhitespaceColumn(line);\n const range = new Range(line, firstNonWhitespace, line, lastNonWhitespace);\n ranges.push(range);\n }\n }\n else {\n const lines = uiState.range.endLineNumber - uiState.range.startLineNumber;\n for (let i = 0; i < lines; i++) {\n const line = uiState.range.startLineNumber + i;\n const firstNonWhitespace = uiState.targetTextModel.getLineFirstNonWhitespaceColumn(line);\n const lastNonWhitespace = uiState.targetTextModel.getLineLastNonWhitespaceColumn(line);\n const range = new Range(line, firstNonWhitespace, line, lastNonWhitespace);\n ranges.push(range);\n }\n }\n const className = uiState.backgroundColoring ? 'inline-edit-remove backgroundColoring' : 'inline-edit-remove';\n for (const range of ranges) {\n decorations.push({\n range,\n options: { inlineClassName: className, description: 'inline-edit-remove', }\n });\n }\n }\n for (const p of uiState.inlineTexts) {\n decorations.push({\n range: Range.fromPositions(new Position(uiState.lineNumber, p.column)),\n options: {\n description: INLINE_EDIT_DESCRIPTION,\n after: { content: p.text, inlineClassName: p.preview ? 'inline-edit-decoration-preview' : 'inline-edit-decoration', cursorStops: InjectedTextCursorStops.Left },\n showIfCollapsed: true,\n }\n });\n }\n return decorations;\n });\n this.additionalLinesWidget = this._register(new AdditionalLinesWidget(this.editor, this.languageService.languageIdCodec, derived(reader => {\n /** @description lines */\n const uiState = this.uiState.read(reader);\n return uiState && !uiState.isPureRemove ? {\n lineNumber: uiState.lineNumber,\n additionalLines: uiState.additionalLines,\n minReservedLineCount: uiState.additionalReservedLineCount,\n targetTextModel: uiState.targetTextModel,\n } : undefined;\n })));\n this._register(toDisposable(() => { this.isDisposed.set(true, undefined); }));\n this._register(applyObservableDecorations(this.editor, this.decorations));\n }\n ownsViewZone(viewZoneId) {\n return this.additionalLinesWidget.viewZoneId === viewZoneId;\n }\n};\nGhostTextWidget = __decorate([\n __param(2, ILanguageService)\n], GhostTextWidget);\nexport { GhostTextWidget };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineEditHintsContentWidget_1;\nimport { h } from '../../../../base/browser/dom.js';\nimport { KeybindingLabel, unthemedKeybindingLabelOptions } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { Separator } from '../../../../base/common/actions.js';\nimport { equals } from '../../../../base/common/arrays.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, observableFromEvent } from '../../../../base/common/observable.js';\nimport { OS } from '../../../../base/common/platform.js';\nimport './inlineEditHintsWidget.css';\nimport { Position } from '../../../common/core/position.js';\nimport { MenuEntryActionViewItem, createAndFillInActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { WorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { IMenuService, MenuId, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nlet InlineEditHintsWidget = class InlineEditHintsWidget extends Disposable {\n constructor(editor, model, instantiationService) {\n super();\n this.editor = editor;\n this.model = model;\n this.instantiationService = instantiationService;\n this.alwaysShowToolbar = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).showToolbar === 'always');\n this.sessionPosition = undefined;\n this.position = derived(this, reader => {\n var _a, _b, _c;\n const ghostText = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.widget.model.ghostText.read(reader);\n if (!this.alwaysShowToolbar.read(reader) || !ghostText || ghostText.parts.length === 0) {\n this.sessionPosition = undefined;\n return null;\n }\n const firstColumn = ghostText.parts[0].column;\n if (this.sessionPosition && this.sessionPosition.lineNumber !== ghostText.lineNumber) {\n this.sessionPosition = undefined;\n }\n const position = new Position(ghostText.lineNumber, Math.min(firstColumn, (_c = (_b = this.sessionPosition) === null || _b === void 0 ? void 0 : _b.column) !== null && _c !== void 0 ? _c : Number.MAX_SAFE_INTEGER));\n this.sessionPosition = position;\n return position;\n });\n this._register(autorunWithStore((reader, store) => {\n /** @description setup content widget */\n const model = this.model.read(reader);\n if (!model || !this.alwaysShowToolbar.read(reader)) {\n return;\n }\n const contentWidget = store.add(this.instantiationService.createInstance(InlineEditHintsContentWidget, this.editor, true, this.position));\n editor.addContentWidget(contentWidget);\n store.add(toDisposable(() => editor.removeContentWidget(contentWidget)));\n }));\n }\n};\nInlineEditHintsWidget = __decorate([\n __param(2, IInstantiationService)\n], InlineEditHintsWidget);\nexport { InlineEditHintsWidget };\nlet InlineEditHintsContentWidget = InlineEditHintsContentWidget_1 = class InlineEditHintsContentWidget extends Disposable {\n constructor(editor, withBorder, _position, instantiationService, _contextKeyService, _menuService) {\n super();\n this.editor = editor;\n this.withBorder = withBorder;\n this._position = _position;\n this._contextKeyService = _contextKeyService;\n this._menuService = _menuService;\n this.id = `InlineEditHintsContentWidget${InlineEditHintsContentWidget_1.id++}`;\n this.allowEditorOverflow = true;\n this.suppressMouseDown = false;\n this.nodes = h('div.inlineEditHints', { className: this.withBorder ? '.withBorder' : '' }, [\n h('div@toolBar'),\n ]);\n this.inlineCompletionsActionsMenus = this._register(this._menuService.createMenu(MenuId.InlineEditActions, this._contextKeyService));\n this.toolBar = this._register(instantiationService.createInstance(CustomizedMenuWorkbenchToolBar, this.nodes.toolBar, this.editor, MenuId.InlineEditToolbar, {\n menuOptions: { renderShortTitle: true },\n toolbarOptions: { primaryGroup: g => g.startsWith('primary') },\n actionViewItemProvider: (action, options) => {\n if (action instanceof MenuItemAction) {\n return instantiationService.createInstance(StatusBarViewItem, action, undefined);\n }\n return undefined;\n },\n telemetrySource: 'InlineEditToolbar',\n }));\n this._register(this.toolBar.onDidChangeDropdownVisibility(e => {\n InlineEditHintsContentWidget_1._dropDownVisible = e;\n }));\n this._register(autorun(reader => {\n /** @description update position */\n this._position.read(reader);\n this.editor.layoutContentWidget(this);\n }));\n this._register(autorun(reader => {\n /** @description actions menu */\n const extraActions = [];\n for (const [_, group] of this.inlineCompletionsActionsMenus.getActions()) {\n for (const action of group) {\n if (action instanceof MenuItemAction) {\n extraActions.push(action);\n }\n }\n }\n if (extraActions.length > 0) {\n extraActions.unshift(new Separator());\n }\n this.toolBar.setAdditionalSecondaryActions(extraActions);\n }));\n }\n getId() { return this.id; }\n getDomNode() {\n return this.nodes.root;\n }\n getPosition() {\n return {\n position: this._position.get(),\n preference: [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */],\n positionAffinity: 3 /* PositionAffinity.LeftOfInjectedText */,\n };\n }\n};\nInlineEditHintsContentWidget._dropDownVisible = false;\nInlineEditHintsContentWidget.id = 0;\nInlineEditHintsContentWidget = InlineEditHintsContentWidget_1 = __decorate([\n __param(3, IInstantiationService),\n __param(4, IContextKeyService),\n __param(5, IMenuService)\n], InlineEditHintsContentWidget);\nexport { InlineEditHintsContentWidget };\nclass StatusBarViewItem extends MenuEntryActionViewItem {\n updateLabel() {\n const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n if (!kb) {\n return super.updateLabel();\n }\n if (this.label) {\n const div = h('div.keybinding').root;\n const k = this._register(new KeybindingLabel(div, OS, { disableTitle: true, ...unthemedKeybindingLabelOptions }));\n k.set(kb);\n this.label.textContent = this._action.label;\n this.label.appendChild(div);\n this.label.classList.add('inlineEditStatusBarItemLabel');\n }\n }\n updateTooltip() {\n // NOOP, disable tooltip\n }\n}\nlet CustomizedMenuWorkbenchToolBar = class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {\n constructor(container, editor, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n super(container, { resetMenu: menuId, ...options2 }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n this.editor = editor;\n this.menuId = menuId;\n this.options2 = options2;\n this.menuService = menuService;\n this.contextKeyService = contextKeyService;\n this.menu = this._store.add(this.menuService.createMenu(this.menuId, this.contextKeyService, { emitEventsForSubmenuChanges: true }));\n this.additionalActions = [];\n this.prependedPrimaryActions = [];\n this._store.add(this.menu.onDidChange(() => this.updateToolbar()));\n this._store.add(this.editor.onDidChangeCursorPosition(() => this.updateToolbar()));\n this.updateToolbar();\n }\n updateToolbar() {\n var _a, _b, _c, _d, _e, _f, _g;\n const primary = [];\n const secondary = [];\n createAndFillInActionBarActions(this.menu, (_a = this.options2) === null || _a === void 0 ? void 0 : _a.menuOptions, { primary, secondary }, (_c = (_b = this.options2) === null || _b === void 0 ? void 0 : _b.toolbarOptions) === null || _c === void 0 ? void 0 : _c.primaryGroup, (_e = (_d = this.options2) === null || _d === void 0 ? void 0 : _d.toolbarOptions) === null || _e === void 0 ? void 0 : _e.shouldInlineSubmenu, (_g = (_f = this.options2) === null || _f === void 0 ? void 0 : _f.toolbarOptions) === null || _g === void 0 ? void 0 : _g.useSeparatorsInPrimaryActions);\n secondary.push(...this.additionalActions);\n primary.unshift(...this.prependedPrimaryActions);\n this.setActions(primary, secondary);\n }\n setAdditionalSecondaryActions(actions) {\n if (equals(this.additionalActions, actions, (a, b) => a === b)) {\n return;\n }\n this.additionalActions = actions;\n this.updateToolbar();\n }\n};\nCustomizedMenuWorkbenchToolBar = __decorate([\n __param(4, IMenuService),\n __param(5, IContextKeyService),\n __param(6, IContextMenuService),\n __param(7, IKeybindingService),\n __param(8, ICommandService),\n __param(9, ITelemetryService)\n], CustomizedMenuWorkbenchToolBar);\nexport { CustomizedMenuWorkbenchToolBar };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineEditController_1;\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, constObservable, disposableObservableValue, observableFromEvent, observableSignalFromEvent, observableValue, transaction } from '../../../../base/common/observable.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { GhostTextWidget } from './ghostTextWidget.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { InlineEditTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { GhostText, GhostTextPart } from '../../inlineCompletions/browser/ghostText.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { InlineEditHintsWidget } from './inlineEditHintsWidget.js';\nimport { createStyleSheet2 } from '../../../../base/browser/dom.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nexport class InlineEditWidget {\n constructor(widget, edit) {\n this.widget = widget;\n this.edit = edit;\n }\n dispose() {\n this.widget.dispose();\n }\n}\nlet InlineEditController = InlineEditController_1 = class InlineEditController extends Disposable {\n static get(editor) {\n return editor.getContribution(InlineEditController_1.ID);\n }\n constructor(editor, instantiationService, contextKeyService, languageFeaturesService, _commandService, _configurationService) {\n super();\n this.editor = editor;\n this.instantiationService = instantiationService;\n this.contextKeyService = contextKeyService;\n this.languageFeaturesService = languageFeaturesService;\n this._commandService = _commandService;\n this._configurationService = _configurationService;\n this._isVisibleContext = InlineEditController_1.inlineEditVisibleContext.bindTo(this.contextKeyService);\n this._isCursorAtInlineEditContext = InlineEditController_1.cursorAtInlineEditContext.bindTo(this.contextKeyService);\n this._currentEdit = this._register(disposableObservableValue(this, undefined));\n this._isAccepting = observableValue(this, false);\n this._enabled = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).enabled);\n this._fontFamily = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).fontFamily);\n this._backgroundColoring = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(63 /* EditorOption.inlineEdit */).backgroundColoring);\n //Automatically request inline edit when the content was changed\n //Cancel the previous request if there is one\n //Remove the previous ghost text\n const modelChangedSignal = observableSignalFromEvent('InlineEditController.modelContentChangedSignal', editor.onDidChangeModelContent);\n this._register(autorun(reader => {\n /** @description InlineEditController.modelContentChanged model */\n if (!this._enabled.read(reader)) {\n return;\n }\n modelChangedSignal.read(reader);\n if (this._isAccepting.read(reader)) {\n return;\n }\n this.getInlineEdit(editor, true);\n }));\n //Check if the cursor is at the ghost text\n const cursorPosition = observableFromEvent(editor.onDidChangeCursorPosition, () => editor.getPosition());\n this._register(autorun(reader => {\n /** @description InlineEditController.cursorPositionChanged model */\n if (!this._enabled.read(reader)) {\n return;\n }\n const pos = cursorPosition.read(reader);\n if (pos) {\n this.checkCursorPosition(pos);\n }\n }));\n //Perform stuff when the current edit has changed\n this._register(autorun((reader) => {\n /** @description InlineEditController.update model */\n const currentEdit = this._currentEdit.read(reader);\n this._isCursorAtInlineEditContext.set(false);\n if (!currentEdit) {\n this._isVisibleContext.set(false);\n return;\n }\n this._isVisibleContext.set(true);\n const pos = editor.getPosition();\n if (pos) {\n this.checkCursorPosition(pos);\n }\n }));\n //Clear suggestions on lost focus\n const editorBlurSingal = observableSignalFromEvent('InlineEditController.editorBlurSignal', editor.onDidBlurEditorWidget);\n this._register(autorun(async (reader) => {\n var _a;\n /** @description InlineEditController.editorBlur */\n if (!this._enabled.read(reader)) {\n return;\n }\n editorBlurSingal.read(reader);\n // This is a hidden setting very useful for debugging\n if (this._configurationService.getValue('editor.experimentalInlineEdit.keepOnBlur') || editor.getOption(63 /* EditorOption.inlineEdit */).keepOnBlur) {\n return;\n }\n (_a = this._currentRequestCts) === null || _a === void 0 ? void 0 : _a.dispose(true);\n this._currentRequestCts = undefined;\n await this.clear(false);\n }));\n //Invoke provider on focus\n const editorFocusSignal = observableSignalFromEvent('InlineEditController.editorFocusSignal', editor.onDidFocusEditorText);\n this._register(autorun(reader => {\n /** @description InlineEditController.editorFocus */\n if (!this._enabled.read(reader)) {\n return;\n }\n editorFocusSignal.read(reader);\n this.getInlineEdit(editor, true);\n }));\n //handle changes of font setting\n const styleElement = this._register(createStyleSheet2());\n this._register(autorun(reader => {\n const fontFamily = this._fontFamily.read(reader);\n styleElement.setStyle(fontFamily === '' || fontFamily === 'default' ? `` : `\n.monaco-editor .inline-edit-decoration,\n.monaco-editor .inline-edit-decoration-preview,\n.monaco-editor .inline-edit {\n\tfont-family: ${fontFamily};\n}`);\n }));\n this._register(new InlineEditHintsWidget(this.editor, this._currentEdit, this.instantiationService));\n }\n checkCursorPosition(position) {\n var _a;\n if (!this._currentEdit) {\n this._isCursorAtInlineEditContext.set(false);\n return;\n }\n const gt = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n if (!gt) {\n this._isCursorAtInlineEditContext.set(false);\n return;\n }\n this._isCursorAtInlineEditContext.set(Range.containsPosition(gt.range, position));\n }\n validateInlineEdit(editor, edit) {\n var _a, _b;\n //Multiline inline replacing edit must replace whole lines\n if (edit.text.includes('\\n') && edit.range.startLineNumber !== edit.range.endLineNumber && edit.range.startColumn !== edit.range.endColumn) {\n const firstColumn = edit.range.startColumn;\n if (firstColumn !== 1) {\n return false;\n }\n const lastLine = edit.range.endLineNumber;\n const lastColumn = edit.range.endColumn;\n const lineLength = (_b = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLineLength(lastLine)) !== null && _b !== void 0 ? _b : 0;\n if (lastColumn !== lineLength + 1) {\n return false;\n }\n }\n return true;\n }\n async fetchInlineEdit(editor, auto) {\n if (this._currentRequestCts) {\n this._currentRequestCts.dispose(true);\n }\n const model = editor.getModel();\n if (!model) {\n return;\n }\n const modelVersion = model.getVersionId();\n const providers = this.languageFeaturesService.inlineEditProvider.all(model);\n if (providers.length === 0) {\n return;\n }\n const provider = providers[0];\n this._currentRequestCts = new CancellationTokenSource();\n const token = this._currentRequestCts.token;\n const triggerKind = auto ? InlineEditTriggerKind.Automatic : InlineEditTriggerKind.Invoke;\n const shouldDebounce = auto;\n if (shouldDebounce) {\n await wait(50, token);\n }\n if (token.isCancellationRequested || model.isDisposed() || model.getVersionId() !== modelVersion) {\n return;\n }\n const edit = await provider.provideInlineEdit(model, { triggerKind }, token);\n if (!edit) {\n return;\n }\n if (token.isCancellationRequested || model.isDisposed() || model.getVersionId() !== modelVersion) {\n return;\n }\n if (!this.validateInlineEdit(editor, edit)) {\n return;\n }\n return edit;\n }\n async getInlineEdit(editor, auto) {\n var _a;\n this._isCursorAtInlineEditContext.set(false);\n await this.clear();\n const edit = await this.fetchInlineEdit(editor, auto);\n if (!edit) {\n return;\n }\n const line = edit.range.endLineNumber;\n const column = edit.range.endColumn;\n const textToDisplay = edit.text.endsWith('\\n') && !(edit.range.startLineNumber === edit.range.endLineNumber && edit.range.startColumn === edit.range.endColumn) ? edit.text.slice(0, -1) : edit.text;\n const ghostText = new GhostText(line, [new GhostTextPart(column, textToDisplay, false)]);\n const instance = this.instantiationService.createInstance(GhostTextWidget, this.editor, {\n ghostText: constObservable(ghostText),\n minReservedLineCount: constObservable(0),\n targetTextModel: constObservable((_a = this.editor.getModel()) !== null && _a !== void 0 ? _a : undefined),\n range: constObservable(edit.range),\n backgroundColoring: this._backgroundColoring\n });\n this._currentEdit.set(new InlineEditWidget(instance, edit), undefined);\n }\n async trigger() {\n await this.getInlineEdit(this.editor, false);\n }\n async jumpBack() {\n if (!this._jumpBackPosition) {\n return;\n }\n this.editor.setPosition(this._jumpBackPosition);\n //if position is outside viewports, scroll to it\n this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition);\n }\n async accept() {\n var _a;\n this._isAccepting.set(true, undefined);\n const data = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n if (!data) {\n return;\n }\n //It should only happen in case of last line suggestion\n let text = data.text;\n if (data.text.startsWith('\\n')) {\n text = data.text.substring(1);\n }\n this.editor.pushUndoStop();\n this.editor.executeEdits('acceptCurrent', [EditOperation.replace(Range.lift(data.range), text)]);\n if (data.accepted) {\n await this._commandService\n .executeCommand(data.accepted.id, ...(data.accepted.arguments || []))\n .then(undefined, onUnexpectedExternalError);\n }\n this.freeEdit(data);\n transaction((tx) => {\n this._currentEdit.set(undefined, tx);\n this._isAccepting.set(false, tx);\n });\n }\n jumpToCurrent() {\n var _a, _b;\n this._jumpBackPosition = (_a = this.editor.getSelection()) === null || _a === void 0 ? void 0 : _a.getStartPosition();\n const data = (_b = this._currentEdit.get()) === null || _b === void 0 ? void 0 : _b.edit;\n if (!data) {\n return;\n }\n const position = Position.lift({ lineNumber: data.range.startLineNumber, column: data.range.startColumn });\n this.editor.setPosition(position);\n //if position is outside viewports, scroll to it\n this.editor.revealPositionInCenterIfOutsideViewport(position);\n }\n async clear(sendRejection = true) {\n var _a;\n const edit = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.edit;\n if (edit && (edit === null || edit === void 0 ? void 0 : edit.rejected) && sendRejection) {\n await this._commandService\n .executeCommand(edit.rejected.id, ...(edit.rejected.arguments || []))\n .then(undefined, onUnexpectedExternalError);\n }\n if (edit) {\n this.freeEdit(edit);\n }\n this._currentEdit.set(undefined, undefined);\n }\n freeEdit(edit) {\n const model = this.editor.getModel();\n if (!model) {\n return;\n }\n const providers = this.languageFeaturesService.inlineEditProvider.all(model);\n if (providers.length === 0) {\n return;\n }\n providers[0].freeInlineEdit(edit);\n }\n shouldShowHoverAt(range) {\n const currentEdit = this._currentEdit.get();\n if (!currentEdit) {\n return false;\n }\n const edit = currentEdit.edit;\n const model = currentEdit.widget.model;\n const overReplaceRange = Range.containsPosition(edit.range, range.getStartPosition()) || Range.containsPosition(edit.range, range.getEndPosition());\n if (overReplaceRange) {\n return true;\n }\n const ghostText = model.ghostText.get();\n if (ghostText) {\n return ghostText.parts.some(p => range.containsPosition(new Position(ghostText.lineNumber, p.column)));\n }\n return false;\n }\n shouldShowHoverAtViewZone(viewZoneId) {\n var _a, _b;\n return (_b = (_a = this._currentEdit.get()) === null || _a === void 0 ? void 0 : _a.widget.ownsViewZone(viewZoneId)) !== null && _b !== void 0 ? _b : false;\n }\n};\nInlineEditController.ID = 'editor.contrib.inlineEditController';\nInlineEditController.inlineEditVisibleKey = 'inlineEditVisible';\nInlineEditController.inlineEditVisibleContext = new RawContextKey(InlineEditController_1.inlineEditVisibleKey, false);\nInlineEditController.cursorAtInlineEditKey = 'cursorAtInlineEdit';\nInlineEditController.cursorAtInlineEditContext = new RawContextKey(InlineEditController_1.cursorAtInlineEditKey, false);\nInlineEditController = InlineEditController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IContextKeyService),\n __param(3, ILanguageFeaturesService),\n __param(4, ICommandService),\n __param(5, IConfigurationService)\n], InlineEditController);\nexport { InlineEditController };\nfunction wait(ms, cancellationToken) {\n return new Promise(resolve => {\n let d = undefined;\n const handle = setTimeout(() => {\n if (d) {\n d.dispose();\n }\n resolve();\n }, ms);\n if (cancellationToken) {\n d = cancellationToken.onCancellationRequested(() => {\n clearTimeout(handle);\n if (d) {\n d.dispose();\n }\n resolve();\n });\n }\n });\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { inlineEditAcceptId, inlineEditJumpBackId, inlineEditJumpToId, inlineEditRejectId } from './commandIds.js';\nimport { InlineEditController } from './inlineEditController.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nexport class AcceptInlineEdit extends EditorAction {\n constructor() {\n super({\n id: inlineEditAcceptId,\n label: 'Accept Inline Edit',\n alias: 'Accept Inline Edit',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext),\n kbOpts: [\n {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n primary: 2 /* KeyCode.Tab */,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext, InlineEditController.cursorAtInlineEditContext)\n }\n ],\n menuOpts: [{\n menuId: MenuId.InlineEditToolbar,\n title: 'Accept',\n group: 'primary',\n order: 1,\n }],\n });\n }\n async run(accessor, editor) {\n const controller = InlineEditController.get(editor);\n await (controller === null || controller === void 0 ? void 0 : controller.accept());\n }\n}\nexport class TriggerInlineEdit extends EditorAction {\n constructor() {\n const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, ContextKeyExpr.not(InlineEditController.inlineEditVisibleKey));\n super({\n id: 'editor.action.inlineEdit.trigger',\n label: 'Trigger Inline Edit',\n alias: 'Trigger Inline Edit',\n precondition: activeExpr,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n kbExpr: activeExpr\n },\n });\n }\n async run(accessor, editor) {\n const controller = InlineEditController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.trigger();\n }\n}\nexport class JumpToInlineEdit extends EditorAction {\n constructor() {\n const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext, ContextKeyExpr.not(InlineEditController.cursorAtInlineEditKey));\n super({\n id: inlineEditJumpToId,\n label: 'Jump to Inline Edit',\n alias: 'Jump to Inline Edit',\n precondition: activeExpr,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 1,\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n kbExpr: activeExpr\n },\n menuOpts: [{\n menuId: MenuId.InlineEditToolbar,\n title: 'Jump To Edit',\n group: 'primary',\n order: 3,\n when: activeExpr\n }],\n });\n }\n async run(accessor, editor) {\n const controller = InlineEditController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.jumpToCurrent();\n }\n}\nexport class JumpBackInlineEdit extends EditorAction {\n constructor() {\n const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.cursorAtInlineEditContext);\n super({\n id: inlineEditJumpBackId,\n label: 'Jump Back from Inline Edit',\n alias: 'Jump Back from Inline Edit',\n precondition: activeExpr,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 10,\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 86 /* KeyCode.Equal */,\n kbExpr: activeExpr\n },\n menuOpts: [{\n menuId: MenuId.InlineEditToolbar,\n title: 'Jump Back',\n group: 'primary',\n order: 3,\n when: activeExpr\n }],\n });\n }\n async run(accessor, editor) {\n const controller = InlineEditController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.jumpBack();\n }\n}\nexport class RejectInlineEdit extends EditorAction {\n constructor() {\n const activeExpr = ContextKeyExpr.and(EditorContextKeys.writable, InlineEditController.inlineEditVisibleContext);\n super({\n id: inlineEditRejectId,\n label: 'Reject Inline Edit',\n alias: 'Reject Inline Edit',\n precondition: activeExpr,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */,\n kbExpr: activeExpr\n },\n menuOpts: [{\n menuId: MenuId.InlineEditToolbar,\n title: 'Reject',\n group: 'secondary',\n order: 2,\n }],\n });\n }\n async run(accessor, editor) {\n const controller = InlineEditController.get(editor);\n await (controller === null || controller === void 0 ? void 0 : controller.clear());\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { constObservable } from '../../../../base/common/observable.js';\nimport { HoverForeignElementAnchor } from '../../hover/browser/hoverTypes.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { InlineEditController } from './inlineEditController.js';\nimport { InlineEditHintsContentWidget } from './inlineEditHintsWidget.js';\nexport class InlineEditHover {\n constructor(owner, range, controller) {\n this.owner = owner;\n this.range = range;\n this.controller = controller;\n }\n isValidForHoverAnchor(anchor) {\n return (anchor.type === 1 /* HoverAnchorType.Range */\n && this.range.startColumn <= anchor.range.startColumn\n && this.range.endColumn >= anchor.range.endColumn);\n }\n}\nlet InlineEditHoverParticipant = class InlineEditHoverParticipant {\n constructor(_editor, _instantiationService, _telemetryService) {\n this._editor = _editor;\n this._instantiationService = _instantiationService;\n this._telemetryService = _telemetryService;\n this.hoverOrdinal = 5;\n }\n suggestHoverAnchor(mouseEvent) {\n const controller = InlineEditController.get(this._editor);\n if (!controller) {\n return null;\n }\n const target = mouseEvent.target;\n if (target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */) {\n // handle the case where the mouse is over the view zone\n const viewZoneData = target.detail;\n if (controller.shouldShowHoverAtViewZone(viewZoneData.viewZoneId)) {\n // const range = Range.fromPositions(this._editor.getModel()!.validatePosition(viewZoneData.positionBefore || viewZoneData.position));\n const range = target.range;\n return new HoverForeignElementAnchor(1000, this, range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n // handle the case where the mouse is over the empty portion of a line following ghost text\n if (controller.shouldShowHoverAt(target.range)) {\n return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n // handle the case where the mouse is directly over ghost text\n const mightBeForeignElement = target.detail.mightBeForeignElement;\n if (mightBeForeignElement && controller.shouldShowHoverAt(target.range)) {\n return new HoverForeignElementAnchor(1000, this, target.range, mouseEvent.event.posx, mouseEvent.event.posy, false);\n }\n }\n return null;\n }\n computeSync(anchor, lineDecorations) {\n if (this._editor.getOption(63 /* EditorOption.inlineEdit */).showToolbar !== 'onHover') {\n return [];\n }\n const controller = InlineEditController.get(this._editor);\n if (controller && controller.shouldShowHoverAt(anchor.range)) {\n return [new InlineEditHover(this, anchor.range, controller)];\n }\n return [];\n }\n renderHoverParts(context, hoverParts) {\n const disposableStore = new DisposableStore();\n this._telemetryService.publicLog2('inlineEditHover.shown');\n const w = this._instantiationService.createInstance(InlineEditHintsContentWidget, this._editor, false, constObservable(null));\n context.fragment.appendChild(w.getDomNode());\n disposableStore.add(w);\n return disposableStore;\n }\n};\nInlineEditHoverParticipant = __decorate([\n __param(1, IInstantiationService),\n __param(2, ITelemetryService)\n], InlineEditHoverParticipant);\nexport { InlineEditHoverParticipant };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { HoverParticipantRegistry } from '../../hover/browser/hoverTypes.js';\nimport { AcceptInlineEdit, JumpBackInlineEdit, JumpToInlineEdit, RejectInlineEdit, TriggerInlineEdit } from './commands.js';\nimport { InlineEditHoverParticipant } from './hoverParticipant.js';\nimport { InlineEditController } from './inlineEditController.js';\nregisterEditorAction(AcceptInlineEdit);\nregisterEditorAction(RejectInlineEdit);\nregisterEditorAction(JumpToInlineEdit);\nregisterEditorAction(JumpBackInlineEdit);\nregisterEditorAction(TriggerInlineEdit);\nregisterEditorContribution(InlineEditController.ID, InlineEditController, 3 /* EditorContributionInstantiation.Eventually */);\nHoverParticipantRegistry.register(InlineEditHoverParticipant);\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { createCancelablePromise, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { getDocumentRangeSemanticTokens, hasDocumentRangeSemanticTokensProvider } from '../common/getSemanticTokens.js';\nimport { isSemanticColoringEnabled, SEMANTIC_HIGHLIGHTING_SETTING_ID } from '../common/semanticTokensConfig.js';\nimport { toMultilineTokens2 } from '../../../common/services/semanticTokensProviderStyling.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\nimport { ILanguageFeatureDebounceService } from '../../../common/services/languageFeatureDebounce.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ISemanticTokensStylingService } from '../../../common/services/semanticTokensStyling.js';\nlet ViewportSemanticTokensContribution = class ViewportSemanticTokensContribution extends Disposable {\n constructor(editor, _semanticTokensStylingService, _themeService, _configurationService, languageFeatureDebounceService, languageFeaturesService) {\n super();\n this._semanticTokensStylingService = _semanticTokensStylingService;\n this._themeService = _themeService;\n this._configurationService = _configurationService;\n this._editor = editor;\n this._provider = languageFeaturesService.documentRangeSemanticTokensProvider;\n this._debounceInformation = languageFeatureDebounceService.for(this._provider, 'DocumentRangeSemanticTokens', { min: 100, max: 500 });\n this._tokenizeViewport = this._register(new RunOnceScheduler(() => this._tokenizeViewportNow(), 100));\n this._outstandingRequests = [];\n const scheduleTokenizeViewport = () => {\n if (this._editor.hasModel()) {\n this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()));\n }\n };\n this._register(this._editor.onDidScrollChange(() => {\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModel(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._editor.onDidChangeModelContent((e) => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._provider.onDidChange(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n this._register(this._configurationService.onDidChangeConfiguration(e => {\n if (e.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)) {\n this._cancelAll();\n scheduleTokenizeViewport();\n }\n }));\n this._register(this._themeService.onDidColorThemeChange(() => {\n this._cancelAll();\n scheduleTokenizeViewport();\n }));\n scheduleTokenizeViewport();\n }\n _cancelAll() {\n for (const request of this._outstandingRequests) {\n request.cancel();\n }\n this._outstandingRequests = [];\n }\n _removeOutstandingRequest(req) {\n for (let i = 0, len = this._outstandingRequests.length; i < len; i++) {\n if (this._outstandingRequests[i] === req) {\n this._outstandingRequests.splice(i, 1);\n return;\n }\n }\n }\n _tokenizeViewportNow() {\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n if (model.tokenization.hasCompleteSemanticTokens()) {\n return;\n }\n if (!isSemanticColoringEnabled(model, this._themeService, this._configurationService)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n if (!hasDocumentRangeSemanticTokensProvider(this._provider, model)) {\n if (model.tokenization.hasSomeSemanticTokens()) {\n model.tokenization.setSemanticTokens(null, false);\n }\n return;\n }\n const visibleRanges = this._editor.getVisibleRangesPlusViewportAboveBelow();\n this._outstandingRequests = this._outstandingRequests.concat(visibleRanges.map(range => this._requestRange(model, range)));\n }\n _requestRange(model, range) {\n const requestVersionId = model.getVersionId();\n const request = createCancelablePromise(token => Promise.resolve(getDocumentRangeSemanticTokens(this._provider, model, range, token)));\n const sw = new StopWatch(false);\n request.then((r) => {\n this._debounceInformation.update(model, sw.elapsed());\n if (!r || !r.tokens || model.isDisposed() || model.getVersionId() !== requestVersionId) {\n return;\n }\n const { provider, tokens: result } = r;\n const styling = this._semanticTokensStylingService.getStyling(provider);\n model.tokenization.setPartialSemanticTokens(range, toMultilineTokens2(result, styling, model.getLanguageId()));\n }).then(() => this._removeOutstandingRequest(request), () => this._removeOutstandingRequest(request));\n return request;\n }\n};\nViewportSemanticTokensContribution.ID = 'editor.contrib.viewportSemanticTokens';\nViewportSemanticTokensContribution = __decorate([\n __param(1, ISemanticTokensStylingService),\n __param(2, IThemeService),\n __param(3, IConfigurationService),\n __param(4, ILanguageFeatureDebounceService),\n __param(5, ILanguageFeaturesService)\n], ViewportSemanticTokensContribution);\nexport { ViewportSemanticTokensContribution };\nregisterEditorContribution(ViewportSemanticTokensContribution.ID, ViewportSemanticTokensContribution, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nclass TabFocusImpl {\n constructor() {\n this._tabFocus = false;\n this._onDidChangeTabFocus = new Emitter();\n this.onDidChangeTabFocus = this._onDidChangeTabFocus.event;\n }\n getTabFocusMode() {\n return this._tabFocus;\n }\n setTabFocusMode(tabFocusMode) {\n this._tabFocus = tabFocusMode;\n this._onDidChangeTabFocus.fire(this._tabFocus);\n }\n}\n/**\n * Control what pressing Tab does.\n * If it is false, pressing Tab or Shift-Tab will be handled by the editor.\n * If it is true, pressing Tab or Shift-Tab will move the browser focus.\n * Defaults to false.\n */\nexport const TabFocus = new TabFocusImpl();\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","const SPACE_CHARACTERS = /\\s+/g\n\n// hoisted class for cyclic dependency\nclass Range {\n constructor (range, options) {\n options = parseOptions(options)\n\n if (range instanceof Range) {\n if (\n range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease\n ) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n // just put it in the set and return\n this.raw = range.value\n this.set = [[range]]\n this.formatted = undefined\n return this\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range.trim().replace(SPACE_CHARACTERS, ' ')\n\n // First, split on ||\n this.set = this.raw\n .split('||')\n // map the range to a 2d array of comparators\n .map(r => this.parseRange(r.trim()))\n // throw out any comparator lists that are empty\n // this generally means that it was not a valid range, which is allowed\n // in loose mode, but will still throw if the WHOLE range is invalid.\n .filter(c => c.length)\n\n if (!this.set.length) {\n throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n }\n\n // if we have any that are not the null set, throw out null sets.\n if (this.set.length > 1) {\n // keep the first one, in case they're all null sets\n const first = this.set[0]\n this.set = this.set.filter(c => !isNullSet(c[0]))\n if (this.set.length === 0) {\n this.set = [first]\n } else if (this.set.length > 1) {\n // if we have any that are *, then the range is just *\n for (const c of this.set) {\n if (c.length === 1 && isAny(c[0])) {\n this.set = [c]\n break\n }\n }\n }\n }\n\n this.formatted = undefined\n }\n\n get range () {\n if (this.formatted === undefined) {\n this.formatted = ''\n for (let i = 0; i < this.set.length; i++) {\n if (i > 0) {\n this.formatted += '||'\n }\n const comps = this.set[i]\n for (let k = 0; k < comps.length; k++) {\n if (k > 0) {\n this.formatted += ' '\n }\n this.formatted += comps[k].toString().trim()\n }\n }\n }\n return this.formatted\n }\n\n format () {\n return this.range\n }\n\n toString () {\n return this.range\n }\n\n parseRange (range) {\n // memoize range parsing for performance.\n // this is a very hot path, and fully deterministic.\n const memoOpts =\n (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n (this.options.loose && FLAG_LOOSE)\n const memoKey = memoOpts + ':' + range\n const cached = cache.get(memoKey)\n if (cached) {\n return cached\n }\n\n const loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n debug('hyphen replace', range)\n\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range)\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n debug('tilde trim', range)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n debug('caret trim', range)\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n let rangeList = range\n .split(' ')\n .map(comp => parseComparator(comp, this.options))\n .join(' ')\n .split(/\\s+/)\n // >=0.0.0 is equivalent to *\n .map(comp => replaceGTE0(comp, this.options))\n\n if (loose) {\n // in loose mode, throw out any that are not valid comparators\n rangeList = rangeList.filter(comp => {\n debug('loose invalid filter', comp, this.options)\n return !!comp.match(re[t.COMPARATORLOOSE])\n })\n }\n debug('range list', rangeList)\n\n // if any comparators are the null set, then replace with JUST null set\n // if more than one comparator, remove any * comparators\n // also, don't include the same comparator more than once\n const rangeMap = new Map()\n const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n for (const comp of comparators) {\n if (isNullSet(comp)) {\n return [comp]\n }\n rangeMap.set(comp.value, comp)\n }\n if (rangeMap.size > 1 && rangeMap.has('')) {\n rangeMap.delete('')\n }\n\n const result = [...rangeMap.values()]\n cache.set(memoKey, result)\n return result\n }\n\n intersects (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some((thisComparators) => {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some((rangeComparators) => {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every((thisComparator) => {\n return rangeComparators.every((rangeComparator) => {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n }\n\n // if ANY of the sets match ALL of its comparators, then pass\n test (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (let i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n }\n}\n\nmodule.exports = Range\n\nconst LRU = require('../internal/lrucache')\nconst cache = new LRU()\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n safeRe: re,\n t,\n comparatorTrimReplace,\n tildeTrimReplace,\n caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n let result = true\n const remainingComparators = comparators.slice()\n let testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every((otherComparator) => {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceTilde(c, options))\n .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('tilde', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n return comp\n .trim()\n .split(/\\s+/)\n .map((c) => replaceCaret(c, options))\n .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n debug('caret', comp, options)\n const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n const z = options.includePrerelease ? '-0' : ''\n return comp.replace(r, (_, M, m, p, pr) => {\n debug('caret', comp, _, M, m, p, pr)\n let ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr\n } <${+M + 1}.0.0-0`\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${m}.${+p + 1}-0`\n } else {\n ret = `>=${M}.${m}.${p\n }${z} <${M}.${+m + 1}.0-0`\n }\n } else {\n ret = `>=${M}.${m}.${p\n } <${+M + 1}.0.0-0`\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nconst replaceXRanges = (comp, options) => {\n debug('replaceXRanges', comp, options)\n return comp\n .split(/\\s+/)\n .map((c) => replaceXRange(c, options))\n .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n comp = comp.trim()\n const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n const xM = isX(M)\n const xm = xM || isX(m)\n const xp = xm || isX(p)\n const anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n if (gtlt === '<') {\n pr = '-0'\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr\n } <${M}.${+m + 1}.0-0`\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp\n .trim()\n .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n debug('replaceGTE0', comp, options)\n return comp\n .trim()\n .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\n// TODO build?\nconst hyphenReplace = incPr => ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n } else if (fpr) {\n from = `>=${from}`\n } else {\n from = `>=${from}${incPr ? '-0' : ''}`\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`\n } else if (incPr) {\n to = `<${tM}.${tm}.${+tp + 1}-0`\n } else {\n to = `<=${to}`\n }\n\n return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n for (let i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (let i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === Comparator.ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n const allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst core_1 = require(\"./core\");\nconst validation_1 = require(\"./validation\");\nconst applicator_1 = require(\"./applicator\");\nconst format_1 = require(\"./format\");\nconst metadata_1 = require(\"./metadata\");\nconst draft7Vocabularies = [\n core_1.default,\n validation_1.default,\n (0, applicator_1.default)(),\n format_1.default,\n metadata_1.metadataVocabulary,\n metadata_1.contentVocabulary,\n];\nexports.default = draft7Vocabularies;\n//# sourceMappingURL=draft7.js.map","'use strict';\n\nvar escapedChars = {\n 'b': '\\b',\n 'f': '\\f',\n 'n': '\\n',\n 'r': '\\r',\n 't': '\\t',\n '\"': '\"',\n '/': '/',\n '\\\\': '\\\\'\n};\n\nvar A_CODE = 'a'.charCodeAt();\n\n\nexports.parse = function (source, _, options) {\n var pointers = {};\n var line = 0;\n var column = 0;\n var pos = 0;\n var bigint = options && options.bigint && typeof BigInt != 'undefined';\n return {\n data: _parse('', true),\n pointers: pointers\n };\n\n function _parse(ptr, topLevel) {\n whitespace();\n var data;\n map(ptr, 'value');\n var char = getChar();\n switch (char) {\n case 't': read('rue'); data = true; break;\n case 'f': read('alse'); data = false; break;\n case 'n': read('ull'); data = null; break;\n case '\"': data = parseString(); break;\n case '[': data = parseArray(ptr); break;\n case '{': data = parseObject(ptr); break;\n default:\n backChar();\n if ('-0123456789'.indexOf(char) >= 0)\n data = parseNumber();\n else\n unexpectedToken();\n }\n map(ptr, 'valueEnd');\n whitespace();\n if (topLevel && pos < source.length) unexpectedToken();\n return data;\n }\n\n function whitespace() {\n loop:\n while (pos < source.length) {\n switch (source[pos]) {\n case ' ': column++; break;\n case '\\t': column += 4; break;\n case '\\r': column = 0; break;\n case '\\n': column = 0; line++; break;\n default: break loop;\n }\n pos++;\n }\n }\n\n function parseString() {\n var str = '';\n var char;\n while (true) {\n char = getChar();\n if (char == '\"') {\n break;\n } else if (char == '\\\\') {\n char = getChar();\n if (char in escapedChars)\n str += escapedChars[char];\n else if (char == 'u')\n str += getCharCode();\n else\n wasUnexpectedToken();\n } else {\n str += char;\n }\n }\n return str;\n }\n\n function parseNumber() {\n var numStr = '';\n var integer = true;\n if (source[pos] == '-') numStr += getChar();\n\n numStr += source[pos] == '0'\n ? getChar()\n : getDigits();\n\n if (source[pos] == '.') {\n numStr += getChar() + getDigits();\n integer = false;\n }\n\n if (source[pos] == 'e' || source[pos] == 'E') {\n numStr += getChar();\n if (source[pos] == '+' || source[pos] == '-') numStr += getChar();\n numStr += getDigits();\n integer = false;\n }\n\n var result = +numStr;\n return bigint && integer && (result > Number.MAX_SAFE_INTEGER || result < Number.MIN_SAFE_INTEGER)\n ? BigInt(numStr)\n : result;\n }\n\n function parseArray(ptr) {\n whitespace();\n var arr = [];\n var i = 0;\n if (getChar() == ']') return arr;\n backChar();\n\n while (true) {\n var itemPtr = ptr + '/' + i;\n arr.push(_parse(itemPtr));\n whitespace();\n var char = getChar();\n if (char == ']') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n i++;\n }\n return arr;\n }\n\n function parseObject(ptr) {\n whitespace();\n var obj = {};\n if (getChar() == '}') return obj;\n backChar();\n\n while (true) {\n var loc = getLoc();\n if (getChar() != '\"') wasUnexpectedToken();\n var key = parseString();\n var propPtr = ptr + '/' + escapeJsonPointer(key);\n mapLoc(propPtr, 'key', loc);\n map(propPtr, 'keyEnd');\n whitespace();\n if (getChar() != ':') wasUnexpectedToken();\n whitespace();\n obj[key] = _parse(propPtr);\n whitespace();\n var char = getChar();\n if (char == '}') break;\n if (char != ',') wasUnexpectedToken();\n whitespace();\n }\n return obj;\n }\n\n function read(str) {\n for (var i=0; i= 'a' && char <= 'f')\n code += char.charCodeAt() - A_CODE + 10;\n else if (char >= '0' && char <= '9')\n code += +char;\n else\n wasUnexpectedToken();\n }\n return String.fromCharCode(code);\n }\n\n function getDigits() {\n var digits = '';\n while (source[pos] >= '0' && source[pos] <= '9')\n digits += getChar();\n\n if (digits.length) return digits;\n checkUnexpectedEnd();\n unexpectedToken();\n }\n\n function map(ptr, prop) {\n mapLoc(ptr, prop, getLoc());\n }\n\n function mapLoc(ptr, prop, loc) {\n pointers[ptr] = pointers[ptr] || {};\n pointers[ptr][prop] = loc;\n }\n\n function getLoc() {\n return {\n line: line,\n column: column,\n pos: pos\n };\n }\n\n function unexpectedToken() {\n throw new SyntaxError('Unexpected token ' + source[pos] + ' in JSON at position ' + pos);\n }\n\n function wasUnexpectedToken() {\n backChar();\n unexpectedToken();\n }\n\n function checkUnexpectedEnd() {\n if (pos >= source.length)\n throw new SyntaxError('Unexpected end of JSON input');\n }\n};\n\n\nexports.stringify = function (data, _, options) {\n if (!validType(data)) return;\n var wsLine = 0;\n var wsPos, wsColumn;\n var whitespace = typeof options == 'object'\n ? options.space\n : options;\n switch (typeof whitespace) {\n case 'number':\n var len = whitespace > 10\n ? 10\n : whitespace < 0\n ? 0\n : Math.floor(whitespace);\n whitespace = len && repeat(len, ' ');\n wsPos = len;\n wsColumn = len;\n break;\n case 'string':\n whitespace = whitespace.slice(0, 10);\n wsPos = 0;\n wsColumn = 0;\n for (var j=0; j= 0;\n}\n\n\nvar ESC_QUOTE = /\"|\\\\/g;\nvar ESC_B = /[\\b]/g;\nvar ESC_F = /\\f/g;\nvar ESC_N = /\\n/g;\nvar ESC_R = /\\r/g;\nvar ESC_T = /\\t/g;\nfunction quoted(str) {\n str = str.replace(ESC_QUOTE, '\\\\$&')\n .replace(ESC_F, '\\\\f')\n .replace(ESC_B, '\\\\b')\n .replace(ESC_N, '\\\\n')\n .replace(ESC_R, '\\\\r')\n .replace(ESC_T, '\\\\t');\n return '\"' + str + '\"';\n}\n\n\nvar ESC_0 = /~/g;\nvar ESC_1 = /\\//g;\nfunction escapeJsonPointer(str) {\n return str.replace(ESC_0, '~0')\n .replace(ESC_1, '~1');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { Toggle } from '../toggle/toggle.js';\nimport { HistoryInputBox } from '../inputbox/inputBox.js';\nimport { Widget } from '../widget.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { Emitter } from '../../../common/event.js';\nimport './findInput.css';\nimport * as nls from '../../../../nls.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nconst NLS_DEFAULT_LABEL = nls.localize('defaultLabel', \"input\");\nconst NLS_PRESERVE_CASE_LABEL = nls.localize('label.preserveCaseToggle', \"Preserve Case\");\nclass PreserveCaseToggle extends Toggle {\n constructor(opts) {\n var _a;\n super({\n // TODO: does this need its own icon?\n icon: Codicon.preserveCase,\n title: NLS_PRESERVE_CASE_LABEL + opts.appendTitle,\n isChecked: opts.isChecked,\n hoverDelegate: (_a = opts.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('element'),\n inputActiveOptionBorder: opts.inputActiveOptionBorder,\n inputActiveOptionForeground: opts.inputActiveOptionForeground,\n inputActiveOptionBackground: opts.inputActiveOptionBackground,\n });\n }\n}\nexport class ReplaceInput extends Widget {\n constructor(parent, contextViewProvider, _showOptionButtons, options) {\n super();\n this._showOptionButtons = _showOptionButtons;\n this.fixFocusOnOptionClickEnabled = true;\n this.cachedOptionsWidth = 0;\n this._onDidOptionChange = this._register(new Emitter());\n this.onDidOptionChange = this._onDidOptionChange.event;\n this._onKeyDown = this._register(new Emitter());\n this.onKeyDown = this._onKeyDown.event;\n this._onMouseDown = this._register(new Emitter());\n this._onInput = this._register(new Emitter());\n this._onKeyUp = this._register(new Emitter());\n this._onPreserveCaseKeyDown = this._register(new Emitter());\n this.onPreserveCaseKeyDown = this._onPreserveCaseKeyDown.event;\n this.contextViewProvider = contextViewProvider;\n this.placeholder = options.placeholder || '';\n this.validation = options.validation;\n this.label = options.label || NLS_DEFAULT_LABEL;\n const appendPreserveCaseLabel = options.appendPreserveCaseLabel || '';\n const history = options.history || [];\n const flexibleHeight = !!options.flexibleHeight;\n const flexibleWidth = !!options.flexibleWidth;\n const flexibleMaxHeight = options.flexibleMaxHeight;\n this.domNode = document.createElement('div');\n this.domNode.classList.add('monaco-findInput');\n this.inputBox = this._register(new HistoryInputBox(this.domNode, this.contextViewProvider, {\n ariaLabel: this.label || '',\n placeholder: this.placeholder || '',\n validationOptions: {\n validation: this.validation\n },\n history,\n showHistoryHint: options.showHistoryHint,\n flexibleHeight,\n flexibleWidth,\n flexibleMaxHeight,\n inputBoxStyles: options.inputBoxStyles\n }));\n this.preserveCase = this._register(new PreserveCaseToggle({\n appendTitle: appendPreserveCaseLabel,\n isChecked: false,\n ...options.toggleStyles\n }));\n this._register(this.preserveCase.onChange(viaKeyboard => {\n this._onDidOptionChange.fire(viaKeyboard);\n if (!viaKeyboard && this.fixFocusOnOptionClickEnabled) {\n this.inputBox.focus();\n }\n this.validate();\n }));\n this._register(this.preserveCase.onKeyDown(e => {\n this._onPreserveCaseKeyDown.fire(e);\n }));\n if (this._showOptionButtons) {\n this.cachedOptionsWidth = this.preserveCase.width();\n }\n else {\n this.cachedOptionsWidth = 0;\n }\n // Arrow-Key support to navigate between options\n const indexes = [this.preserveCase.domNode];\n this.onkeydown(this.domNode, (event) => {\n if (event.equals(15 /* KeyCode.LeftArrow */) || event.equals(17 /* KeyCode.RightArrow */) || event.equals(9 /* KeyCode.Escape */)) {\n const index = indexes.indexOf(this.domNode.ownerDocument.activeElement);\n if (index >= 0) {\n let newIndex = -1;\n if (event.equals(17 /* KeyCode.RightArrow */)) {\n newIndex = (index + 1) % indexes.length;\n }\n else if (event.equals(15 /* KeyCode.LeftArrow */)) {\n if (index === 0) {\n newIndex = indexes.length - 1;\n }\n else {\n newIndex = index - 1;\n }\n }\n if (event.equals(9 /* KeyCode.Escape */)) {\n indexes[index].blur();\n this.inputBox.focus();\n }\n else if (newIndex >= 0) {\n indexes[newIndex].focus();\n }\n dom.EventHelper.stop(event, true);\n }\n }\n });\n const controls = document.createElement('div');\n controls.className = 'controls';\n controls.style.display = this._showOptionButtons ? 'block' : 'none';\n controls.appendChild(this.preserveCase.domNode);\n this.domNode.appendChild(controls);\n parent === null || parent === void 0 ? void 0 : parent.appendChild(this.domNode);\n this.onkeydown(this.inputBox.inputElement, (e) => this._onKeyDown.fire(e));\n this.onkeyup(this.inputBox.inputElement, (e) => this._onKeyUp.fire(e));\n this.oninput(this.inputBox.inputElement, (e) => this._onInput.fire());\n this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e));\n }\n enable() {\n this.domNode.classList.remove('disabled');\n this.inputBox.enable();\n this.preserveCase.enable();\n }\n disable() {\n this.domNode.classList.add('disabled');\n this.inputBox.disable();\n this.preserveCase.disable();\n }\n setEnabled(enabled) {\n if (enabled) {\n this.enable();\n }\n else {\n this.disable();\n }\n }\n select() {\n this.inputBox.select();\n }\n focus() {\n this.inputBox.focus();\n }\n getPreserveCase() {\n return this.preserveCase.checked;\n }\n setPreserveCase(value) {\n this.preserveCase.checked = value;\n }\n focusOnPreserve() {\n this.preserveCase.focus();\n }\n validate() {\n var _a;\n (_a = this.inputBox) === null || _a === void 0 ? void 0 : _a.validate();\n }\n set width(newWidth) {\n this.inputBox.paddingRight = this.cachedOptionsWidth;\n this.domNode.style.width = newWidth + 'px';\n }\n dispose() {\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { FindInput } from '../../../base/browser/ui/findinput/findInput.js';\nimport { ReplaceInput } from '../../../base/browser/ui/findinput/replaceInput.js';\nimport { ContextKeyExpr, IContextKeyService, RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nimport { localize } from '../../../nls.js';\nimport { DisposableStore, toDisposable } from '../../../base/common/lifecycle.js';\nimport { isActiveElement } from '../../../base/browser/dom.js';\nexport const historyNavigationVisible = new RawContextKey('suggestWidgetVisible', false, localize('suggestWidgetVisible', \"Whether suggestion are visible\"));\nconst HistoryNavigationWidgetFocusContext = 'historyNavigationWidgetFocus';\nconst HistoryNavigationForwardsEnablementContext = 'historyNavigationForwardsEnabled';\nconst HistoryNavigationBackwardsEnablementContext = 'historyNavigationBackwardsEnabled';\nlet lastFocusedWidget = undefined;\nconst widgets = [];\nexport function registerAndCreateHistoryNavigationContext(scopedContextKeyService, widget) {\n if (widgets.includes(widget)) {\n throw new Error('Cannot register the same widget multiple times');\n }\n widgets.push(widget);\n const disposableStore = new DisposableStore();\n const historyNavigationWidgetFocus = new RawContextKey(HistoryNavigationWidgetFocusContext, false).bindTo(scopedContextKeyService);\n const historyNavigationForwardsEnablement = new RawContextKey(HistoryNavigationForwardsEnablementContext, true).bindTo(scopedContextKeyService);\n const historyNavigationBackwardsEnablement = new RawContextKey(HistoryNavigationBackwardsEnablementContext, true).bindTo(scopedContextKeyService);\n const onDidFocus = () => {\n historyNavigationWidgetFocus.set(true);\n lastFocusedWidget = widget;\n };\n const onDidBlur = () => {\n historyNavigationWidgetFocus.set(false);\n if (lastFocusedWidget === widget) {\n lastFocusedWidget = undefined;\n }\n };\n // Check for currently being focused\n if (isActiveElement(widget.element)) {\n onDidFocus();\n }\n disposableStore.add(widget.onDidFocus(() => onDidFocus()));\n disposableStore.add(widget.onDidBlur(() => onDidBlur()));\n disposableStore.add(toDisposable(() => {\n widgets.splice(widgets.indexOf(widget), 1);\n onDidBlur();\n }));\n return {\n historyNavigationForwardsEnablement,\n historyNavigationBackwardsEnablement,\n dispose() {\n disposableStore.dispose();\n }\n };\n}\nlet ContextScopedFindInput = class ContextScopedFindInput extends FindInput {\n constructor(container, contextViewProvider, options, contextKeyService) {\n super(container, contextViewProvider, options);\n const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n }\n};\nContextScopedFindInput = __decorate([\n __param(3, IContextKeyService)\n], ContextScopedFindInput);\nexport { ContextScopedFindInput };\nlet ContextScopedReplaceInput = class ContextScopedReplaceInput extends ReplaceInput {\n constructor(container, contextViewProvider, options, contextKeyService, showReplaceOptions = false) {\n super(container, contextViewProvider, showReplaceOptions, options);\n const scopedContextKeyService = this._register(contextKeyService.createScoped(this.inputBox.element));\n this._register(registerAndCreateHistoryNavigationContext(scopedContextKeyService, this.inputBox));\n }\n};\nContextScopedReplaceInput = __decorate([\n __param(3, IContextKeyService)\n], ContextScopedReplaceInput);\nexport { ContextScopedReplaceInput };\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'history.showPrevious',\n weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationBackwardsEnablementContext, true), ContextKeyExpr.not('isComposing'), historyNavigationVisible.isEqualTo(false)),\n primary: 16 /* KeyCode.UpArrow */,\n secondary: [512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */],\n handler: (accessor) => {\n lastFocusedWidget === null || lastFocusedWidget === void 0 ? void 0 : lastFocusedWidget.showPreviousValue();\n }\n});\nKeybindingsRegistry.registerCommandAndKeybindingRule({\n id: 'history.showNext',\n weight: 200 /* KeybindingWeight.WorkbenchContrib */,\n when: ContextKeyExpr.and(ContextKeyExpr.has(HistoryNavigationWidgetFocusContext), ContextKeyExpr.equals(HistoryNavigationForwardsEnablementContext, true), ContextKeyExpr.not('isComposing'), historyNavigationVisible.isEqualTo(false)),\n primary: 18 /* KeyCode.DownArrow */,\n secondary: [512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */],\n handler: (accessor) => {\n lastFocusedWidget === null || lastFocusedWidget === void 0 ? void 0 : lastFocusedWidget.showNextValue();\n }\n});\n","import { keybindingLabelBackground, keybindingLabelBorder, keybindingLabelBottomBorder, keybindingLabelForeground, asCssVariable, widgetShadow, buttonForeground, buttonSeparator, buttonBackground, buttonHoverBackground, buttonSecondaryForeground, buttonSecondaryBackground, buttonSecondaryHoverBackground, buttonBorder, progressBarBackground, inputActiveOptionBorder, inputActiveOptionForeground, inputActiveOptionBackground, editorWidgetBackground, editorWidgetForeground, contrastBorder, checkboxBorder, checkboxBackground, checkboxForeground, problemsErrorIconForeground, problemsWarningIconForeground, problemsInfoIconForeground, inputBackground, inputForeground, inputBorder, textLinkForeground, inputValidationInfoBorder, inputValidationInfoBackground, inputValidationInfoForeground, inputValidationWarningBorder, inputValidationWarningBackground, inputValidationWarningForeground, inputValidationErrorBorder, inputValidationErrorBackground, inputValidationErrorForeground, listFilterWidgetBackground, listFilterWidgetNoMatchesOutline, listFilterWidgetOutline, listFilterWidgetShadow, badgeBackground, badgeForeground, breadcrumbsBackground, breadcrumbsForeground, breadcrumbsFocusForeground, breadcrumbsActiveSelectionForeground, activeContrastBorder, listActiveSelectionBackground, listActiveSelectionForeground, listActiveSelectionIconForeground, listDropOverBackground, listFocusAndSelectionOutline, listFocusBackground, listFocusForeground, listFocusOutline, listHoverBackground, listHoverForeground, listInactiveFocusBackground, listInactiveFocusOutline, listInactiveSelectionBackground, listInactiveSelectionForeground, listInactiveSelectionIconForeground, tableColumnsBorder, tableOddRowsBackgroundColor, treeIndentGuidesStroke, asCssVariableWithDefault, editorWidgetBorder, focusBorder, pickerGroupForeground, quickInputListFocusBackground, quickInputListFocusForeground, quickInputListFocusIconForeground, selectBackground, selectBorder, selectForeground, selectListBackground, treeInactiveIndentGuidesStroke, menuBorder, menuForeground, menuBackground, menuSelectionForeground, menuSelectionBackground, menuSelectionBorder, menuSeparatorBackground, scrollbarShadow, scrollbarSliderActiveBackground, scrollbarSliderBackground, scrollbarSliderHoverBackground, listDropBetweenBackground } from '../common/colorRegistry.js';\nimport { Color } from '../../../base/common/color.js';\nfunction overrideStyles(override, styles) {\n const result = { ...styles };\n for (const key in override) {\n const val = override[key];\n result[key] = val !== undefined ? asCssVariable(val) : undefined;\n }\n return result;\n}\nexport const defaultKeybindingLabelStyles = {\n keybindingLabelBackground: asCssVariable(keybindingLabelBackground),\n keybindingLabelForeground: asCssVariable(keybindingLabelForeground),\n keybindingLabelBorder: asCssVariable(keybindingLabelBorder),\n keybindingLabelBottomBorder: asCssVariable(keybindingLabelBottomBorder),\n keybindingLabelShadow: asCssVariable(widgetShadow)\n};\nexport const defaultButtonStyles = {\n buttonForeground: asCssVariable(buttonForeground),\n buttonSeparator: asCssVariable(buttonSeparator),\n buttonBackground: asCssVariable(buttonBackground),\n buttonHoverBackground: asCssVariable(buttonHoverBackground),\n buttonSecondaryForeground: asCssVariable(buttonSecondaryForeground),\n buttonSecondaryBackground: asCssVariable(buttonSecondaryBackground),\n buttonSecondaryHoverBackground: asCssVariable(buttonSecondaryHoverBackground),\n buttonBorder: asCssVariable(buttonBorder),\n};\nexport const defaultProgressBarStyles = {\n progressBarBackground: asCssVariable(progressBarBackground)\n};\nexport const defaultToggleStyles = {\n inputActiveOptionBorder: asCssVariable(inputActiveOptionBorder),\n inputActiveOptionForeground: asCssVariable(inputActiveOptionForeground),\n inputActiveOptionBackground: asCssVariable(inputActiveOptionBackground)\n};\nexport const defaultCheckboxStyles = {\n checkboxBackground: asCssVariable(checkboxBackground),\n checkboxBorder: asCssVariable(checkboxBorder),\n checkboxForeground: asCssVariable(checkboxForeground)\n};\nexport const defaultDialogStyles = {\n dialogBackground: asCssVariable(editorWidgetBackground),\n dialogForeground: asCssVariable(editorWidgetForeground),\n dialogShadow: asCssVariable(widgetShadow),\n dialogBorder: asCssVariable(contrastBorder),\n errorIconForeground: asCssVariable(problemsErrorIconForeground),\n warningIconForeground: asCssVariable(problemsWarningIconForeground),\n infoIconForeground: asCssVariable(problemsInfoIconForeground),\n textLinkForeground: asCssVariable(textLinkForeground)\n};\nexport const defaultInputBoxStyles = {\n inputBackground: asCssVariable(inputBackground),\n inputForeground: asCssVariable(inputForeground),\n inputBorder: asCssVariable(inputBorder),\n inputValidationInfoBorder: asCssVariable(inputValidationInfoBorder),\n inputValidationInfoBackground: asCssVariable(inputValidationInfoBackground),\n inputValidationInfoForeground: asCssVariable(inputValidationInfoForeground),\n inputValidationWarningBorder: asCssVariable(inputValidationWarningBorder),\n inputValidationWarningBackground: asCssVariable(inputValidationWarningBackground),\n inputValidationWarningForeground: asCssVariable(inputValidationWarningForeground),\n inputValidationErrorBorder: asCssVariable(inputValidationErrorBorder),\n inputValidationErrorBackground: asCssVariable(inputValidationErrorBackground),\n inputValidationErrorForeground: asCssVariable(inputValidationErrorForeground)\n};\nexport const defaultFindWidgetStyles = {\n listFilterWidgetBackground: asCssVariable(listFilterWidgetBackground),\n listFilterWidgetOutline: asCssVariable(listFilterWidgetOutline),\n listFilterWidgetNoMatchesOutline: asCssVariable(listFilterWidgetNoMatchesOutline),\n listFilterWidgetShadow: asCssVariable(listFilterWidgetShadow),\n inputBoxStyles: defaultInputBoxStyles,\n toggleStyles: defaultToggleStyles\n};\nexport const defaultCountBadgeStyles = {\n badgeBackground: asCssVariable(badgeBackground),\n badgeForeground: asCssVariable(badgeForeground),\n badgeBorder: asCssVariable(contrastBorder)\n};\nexport const defaultBreadcrumbsWidgetStyles = {\n breadcrumbsBackground: asCssVariable(breadcrumbsBackground),\n breadcrumbsForeground: asCssVariable(breadcrumbsForeground),\n breadcrumbsHoverForeground: asCssVariable(breadcrumbsFocusForeground),\n breadcrumbsFocusForeground: asCssVariable(breadcrumbsFocusForeground),\n breadcrumbsFocusAndSelectionForeground: asCssVariable(breadcrumbsActiveSelectionForeground)\n};\nexport const defaultListStyles = {\n listBackground: undefined,\n listInactiveFocusForeground: undefined,\n listFocusBackground: asCssVariable(listFocusBackground),\n listFocusForeground: asCssVariable(listFocusForeground),\n listFocusOutline: asCssVariable(listFocusOutline),\n listActiveSelectionBackground: asCssVariable(listActiveSelectionBackground),\n listActiveSelectionForeground: asCssVariable(listActiveSelectionForeground),\n listActiveSelectionIconForeground: asCssVariable(listActiveSelectionIconForeground),\n listFocusAndSelectionOutline: asCssVariable(listFocusAndSelectionOutline),\n listFocusAndSelectionBackground: asCssVariable(listActiveSelectionBackground),\n listFocusAndSelectionForeground: asCssVariable(listActiveSelectionForeground),\n listInactiveSelectionBackground: asCssVariable(listInactiveSelectionBackground),\n listInactiveSelectionIconForeground: asCssVariable(listInactiveSelectionIconForeground),\n listInactiveSelectionForeground: asCssVariable(listInactiveSelectionForeground),\n listInactiveFocusBackground: asCssVariable(listInactiveFocusBackground),\n listInactiveFocusOutline: asCssVariable(listInactiveFocusOutline),\n listHoverBackground: asCssVariable(listHoverBackground),\n listHoverForeground: asCssVariable(listHoverForeground),\n listDropOverBackground: asCssVariable(listDropOverBackground),\n listDropBetweenBackground: asCssVariable(listDropBetweenBackground),\n listSelectionOutline: asCssVariable(activeContrastBorder),\n listHoverOutline: asCssVariable(activeContrastBorder),\n treeIndentGuidesStroke: asCssVariable(treeIndentGuidesStroke),\n treeInactiveIndentGuidesStroke: asCssVariable(treeInactiveIndentGuidesStroke),\n treeStickyScrollBackground: undefined,\n treeStickyScrollBorder: undefined,\n treeStickyScrollShadow: undefined,\n tableColumnsBorder: asCssVariable(tableColumnsBorder),\n tableOddRowsBackgroundColor: asCssVariable(tableOddRowsBackgroundColor),\n};\nexport function getListStyles(override) {\n return overrideStyles(override, defaultListStyles);\n}\nexport const defaultSelectBoxStyles = {\n selectBackground: asCssVariable(selectBackground),\n selectListBackground: asCssVariable(selectListBackground),\n selectForeground: asCssVariable(selectForeground),\n decoratorRightForeground: asCssVariable(pickerGroupForeground),\n selectBorder: asCssVariable(selectBorder),\n focusBorder: asCssVariable(focusBorder),\n listFocusBackground: asCssVariable(quickInputListFocusBackground),\n listInactiveSelectionIconForeground: asCssVariable(quickInputListFocusIconForeground),\n listFocusForeground: asCssVariable(quickInputListFocusForeground),\n listFocusOutline: asCssVariableWithDefault(activeContrastBorder, Color.transparent.toString()),\n listHoverBackground: asCssVariable(listHoverBackground),\n listHoverForeground: asCssVariable(listHoverForeground),\n listHoverOutline: asCssVariable(activeContrastBorder),\n selectListBorder: asCssVariable(editorWidgetBorder),\n listBackground: undefined,\n listActiveSelectionBackground: undefined,\n listActiveSelectionForeground: undefined,\n listActiveSelectionIconForeground: undefined,\n listFocusAndSelectionBackground: undefined,\n listDropOverBackground: undefined,\n listDropBetweenBackground: undefined,\n listInactiveSelectionBackground: undefined,\n listInactiveSelectionForeground: undefined,\n listInactiveFocusBackground: undefined,\n listInactiveFocusOutline: undefined,\n listSelectionOutline: undefined,\n listFocusAndSelectionForeground: undefined,\n listFocusAndSelectionOutline: undefined,\n listInactiveFocusForeground: undefined,\n tableColumnsBorder: undefined,\n tableOddRowsBackgroundColor: undefined,\n treeIndentGuidesStroke: undefined,\n treeInactiveIndentGuidesStroke: undefined,\n treeStickyScrollBackground: undefined,\n treeStickyScrollBorder: undefined,\n treeStickyScrollShadow: undefined\n};\nexport const defaultMenuStyles = {\n shadowColor: asCssVariable(widgetShadow),\n borderColor: asCssVariable(menuBorder),\n foregroundColor: asCssVariable(menuForeground),\n backgroundColor: asCssVariable(menuBackground),\n selectionForegroundColor: asCssVariable(menuSelectionForeground),\n selectionBackgroundColor: asCssVariable(menuSelectionBackground),\n selectionBorderColor: asCssVariable(menuSelectionBorder),\n separatorColor: asCssVariable(menuSeparatorBackground),\n scrollbarShadow: asCssVariable(scrollbarShadow),\n scrollbarSliderBackground: asCssVariable(scrollbarSliderBackground),\n scrollbarSliderHoverBackground: asCssVariable(scrollbarSliderHoverBackground),\n scrollbarSliderActiveBackground: asCssVariable(scrollbarSliderActiveBackground)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.33.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.33.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/java/java.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"java\",\n extensions: [\".java\", \".jav\"],\n aliases: [\"Java\", \"java\"],\n mimetypes: [\"text/x-java-source\", \"text/x-java\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/java/java\"], resolve, reject);\n });\n } else {\n return import(\"./java.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { FastDomNode } from '../../../base/browser/fastDomNode.js';\nexport function applyFontInfo(domNode, fontInfo) {\n if (domNode instanceof FastDomNode) {\n domNode.setFontFamily(fontInfo.getMassagedFontFamily());\n domNode.setFontWeight(fontInfo.fontWeight);\n domNode.setFontSize(fontInfo.fontSize);\n domNode.setFontFeatureSettings(fontInfo.fontFeatureSettings);\n domNode.setFontVariationSettings(fontInfo.fontVariationSettings);\n domNode.setLineHeight(fontInfo.lineHeight);\n domNode.setLetterSpacing(fontInfo.letterSpacing);\n }\n else {\n domNode.style.fontFamily = fontInfo.getMassagedFontFamily();\n domNode.style.fontWeight = fontInfo.fontWeight;\n domNode.style.fontSize = fontInfo.fontSize + 'px';\n domNode.style.fontFeatureSettings = fontInfo.fontFeatureSettings;\n domNode.style.fontVariationSettings = fontInfo.fontVariationSettings;\n domNode.style.lineHeight = fontInfo.lineHeight + 'px';\n domNode.style.letterSpacing = fontInfo.letterSpacing + 'px';\n }\n}\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/redis/redis.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"redis\",\n extensions: [\".redis\"],\n aliases: [\"redis\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/redis/redis\"], resolve, reject);\n });\n } else {\n return import(\"./redis.js\");\n }\n }\n});\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nmodule.exports = {};\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","(function(t,e){\"object\"===typeof exports&&\"object\"===typeof module?module.exports=e(require(\"vue\")):\"function\"===typeof define&&define.amd?define([],e):\"object\"===typeof exports?exports[\"vue3-youtube\"]=e(require(\"vue\")):t[\"vue3-youtube\"]=e(t[\"Vue\"])})(\"undefined\"!==typeof self?self:this,(function(t){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t[\"default\"]}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=\"fb15\")}({\"00ee\":function(t,e,n){var r=n(\"b622\"),o=r(\"toStringTag\"),i={};i[o]=\"z\",t.exports=\"[object z]\"===String(i)},\"0366\":function(t,e,n){var r=n(\"1c0b\");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},\"06cf\":function(t,e,n){var r=n(\"83ab\"),o=n(\"d1e7\"),i=n(\"5c6c\"),c=n(\"fc6a\"),u=n(\"c04e\"),a=n(\"5135\"),f=n(\"0cfb\"),s=Object.getOwnPropertyDescriptor;e.f=r?s:function(t,e){if(t=c(t),e=u(e,!0),f)try{return s(t,e)}catch(n){}if(a(t,e))return i(!o.f.call(t,e),t[e])}},\"0cfb\":function(t,e,n){var r=n(\"83ab\"),o=n(\"d039\"),i=n(\"cc12\");t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i(\"div\"),\"a\",{get:function(){return 7}}).a}))},\"159b\":function(t,e,n){var r=n(\"da84\"),o=n(\"fdbc\"),i=n(\"17c2\"),c=n(\"9112\");for(var u in o){var a=r[u],f=a&&a.prototype;if(f&&f.forEach!==i)try{c(f,\"forEach\",i)}catch(s){f.forEach=i}}},\"17c2\":function(t,e,n){\"use strict\";var r=n(\"b727\").forEach,o=n(\"a640\"),i=n(\"ae40\"),c=o(\"forEach\"),u=i(\"forEach\");t.exports=c&&u?[].forEach:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}},\"19aa\":function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(\"Incorrect \"+(n?n+\" \":\"\")+\"invocation\");return t}},\"1be4\":function(t,e,n){var r=n(\"d066\");t.exports=r(\"document\",\"documentElement\")},\"1c0b\":function(t,e){t.exports=function(t){if(\"function\"!=typeof t)throw TypeError(String(t)+\" is not a function\");return t}},\"1c7e\":function(t,e,n){var r=n(\"b622\"),o=r(\"iterator\"),i=!1;try{var c=0,u={next:function(){return{done:!!c++}},return:function(){i=!0}};u[o]=function(){return this},Array.from(u,(function(){throw 2}))}catch(a){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(a){}return n}},\"1cdc\":function(t,e,n){var r=n(\"342f\");t.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},\"1d80\":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError(\"Can't call method on \"+t);return t}},2266:function(t,e,n){var r=n(\"825a\"),o=n(\"e95a\"),i=n(\"50c4\"),c=n(\"0366\"),u=n(\"35a1\"),a=n(\"9bdd\"),f=function(t,e){this.stopped=t,this.result=e},s=t.exports=function(t,e,n,s,l){var p,d,v,h,y,b,g,m=c(e,n,s?2:1);if(l)p=t;else{if(d=u(t),\"function\"!=typeof d)throw TypeError(\"Target is not iterable\");if(o(d)){for(v=0,h=i(t.length);h>v;v++)if(y=s?m(r(g=t[v])[0],g[1]):m(t[v]),y&&y instanceof f)return y;return new f(!1)}p=d.call(t)}b=p.next;while(!(g=b.call(p)).done)if(y=a(p,m,g.value,s),\"object\"==typeof y&&y&&y instanceof f)return y;return new f(!1)};s.stop=function(t){return new f(!0,t)}},\"23cb\":function(t,e,n){var r=n(\"a691\"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},\"23e7\":function(t,e,n){var r=n(\"da84\"),o=n(\"06cf\").f,i=n(\"9112\"),c=n(\"6eeb\"),u=n(\"ce4e\"),a=n(\"e893\"),f=n(\"94ca\");t.exports=function(t,e){var n,s,l,p,d,v,h=t.target,y=t.global,b=t.stat;if(s=y?r:b?r[h]||u(h,{}):(r[h]||{}).prototype,s)for(l in e){if(d=e[l],t.noTargetGet?(v=o(s,l),p=v&&v.value):p=s[l],n=f(y?l:h+(b?\".\":\"#\")+l,t.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;a(d,p)}(t.sham||p&&p.sham)&&i(d,\"sham\",!0),c(s,l,d,t)}}},\"241c\":function(t,e,n){var r=n(\"ca84\"),o=n(\"7839\"),i=o.concat(\"length\",\"prototype\");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},2626:function(t,e,n){\"use strict\";var r=n(\"d066\"),o=n(\"9bf2\"),i=n(\"b622\"),c=n(\"83ab\"),u=i(\"species\");t.exports=function(t){var e=r(t),n=o.f;c&&e&&!e[u]&&n(e,u,{configurable:!0,get:function(){return this}})}},\"2cf4\":function(t,e,n){var r,o,i,c=n(\"da84\"),u=n(\"d039\"),a=n(\"c6b6\"),f=n(\"0366\"),s=n(\"1be4\"),l=n(\"cc12\"),p=n(\"1cdc\"),d=c.location,v=c.setImmediate,h=c.clearImmediate,y=c.process,b=c.MessageChannel,g=c.Dispatch,m=0,x={},w=\"onreadystatechange\",S=function(t){if(x.hasOwnProperty(t)){var e=x[t];delete x[t],e()}},j=function(t){return function(){S(t)}},P=function(t){S(t.data)},E=function(t){c.postMessage(t+\"\",d.protocol+\"//\"+d.host)};v&&h||(v=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return x[++m]=function(){(\"function\"==typeof t?t:Function(t)).apply(void 0,e)},r(m),m},h=function(t){delete x[t]},\"process\"==a(y)?r=function(t){y.nextTick(j(t))}:g&&g.now?r=function(t){g.now(j(t))}:b&&!p?(o=new b,i=o.port2,o.port1.onmessage=P,r=f(i.postMessage,i,1)):!c.addEventListener||\"function\"!=typeof postMessage||c.importScripts||u(E)||\"file:\"===d.protocol?r=w in l(\"script\")?function(t){s.appendChild(l(\"script\"))[w]=function(){s.removeChild(this),S(t)}}:function(t){setTimeout(j(t),0)}:(r=E,c.addEventListener(\"message\",P,!1))),t.exports={set:v,clear:h}},\"2d00\":function(t,e,n){var r,o,i=n(\"da84\"),c=n(\"342f\"),u=i.process,a=u&&u.versions,f=a&&a.v8;f?(r=f.split(\".\"),o=r[0]+r[1]):c&&(r=c.match(/Edge\\/(\\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\\/(\\d+)/),r&&(o=r[1]))),t.exports=o&&+o},\"342f\":function(t,e,n){var r=n(\"d066\");t.exports=r(\"navigator\",\"userAgent\")||\"\"},\"35a1\":function(t,e,n){var r=n(\"f5df\"),o=n(\"3f8c\"),i=n(\"b622\"),c=i(\"iterator\");t.exports=function(t){if(void 0!=t)return t[c]||t[\"@@iterator\"]||o[r(t)]}},\"37e8\":function(t,e,n){var r=n(\"83ab\"),o=n(\"9bf2\"),i=n(\"825a\"),c=n(\"df75\");t.exports=r?Object.defineProperties:function(t,e){i(t);var n,r=c(e),u=r.length,a=0;while(u>a)o.f(t,n=r[a++],e[n]);return t}},\"3bbe\":function(t,e,n){var r=n(\"861d\");t.exports=function(t){if(!r(t)&&null!==t)throw TypeError(\"Can't set \"+String(t)+\" as a prototype\");return t}},\"3f8c\":function(t,e){t.exports={}},4160:function(t,e,n){\"use strict\";var r=n(\"23e7\"),o=n(\"17c2\");r({target:\"Array\",proto:!0,forced:[].forEach!=o},{forEach:o})},\"428f\":function(t,e,n){var r=n(\"da84\");t.exports=r},\"44ad\":function(t,e,n){var r=n(\"d039\"),o=n(\"c6b6\"),i=\"\".split;t.exports=r((function(){return!Object(\"z\").propertyIsEnumerable(0)}))?function(t){return\"String\"==o(t)?i.call(t,\"\"):Object(t)}:Object},\"44de\":function(t,e,n){var r=n(\"da84\");t.exports=function(t,e){var n=r.console;n&&n.error&&(1===arguments.length?n.error(t):n.error(t,e))}},4840:function(t,e,n){var r=n(\"825a\"),o=n(\"1c0b\"),i=n(\"b622\"),c=i(\"species\");t.exports=function(t,e){var n,i=r(t).constructor;return void 0===i||void 0==(n=r(i)[c])?e:o(n)}},4930:function(t,e,n){var r=n(\"d039\");t.exports=!!Object.getOwnPropertySymbols&&!r((function(){return!String(Symbol())}))},\"4d64\":function(t,e,n){var r=n(\"fc6a\"),o=n(\"50c4\"),i=n(\"23cb\"),c=function(t){return function(e,n,c){var u,a=r(e),f=o(a.length),s=i(c,f);if(t&&n!=n){while(f>s)if(u=a[s++],u!=u)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===n)return t||s||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},\"50c4\":function(t,e,n){var r=n(\"a691\"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},5135:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},5692:function(t,e,n){var r=n(\"c430\"),o=n(\"c6cd\");(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})(\"versions\",[]).push({version:\"3.6.5\",mode:r?\"pure\":\"global\",copyright:\"© 2020 Denis Pushkarev (zloirock.ru)\"})},\"56ef\":function(t,e,n){var r=n(\"d066\"),o=n(\"241c\"),i=n(\"7418\"),c=n(\"825a\");t.exports=r(\"Reflect\",\"ownKeys\")||function(t){var e=o.f(c(t)),n=i.f;return n?e.concat(n(t)):e}},5899:function(t,e){t.exports=\"\\t\\n\\v\\f\\r                 \\u2028\\u2029\\ufeff\"},\"58a8\":function(t,e,n){var r=n(\"1d80\"),o=n(\"5899\"),i=\"[\"+o+\"]\",c=RegExp(\"^\"+i+i+\"*\"),u=RegExp(i+i+\"*$\"),a=function(t){return function(e){var n=String(r(e));return 1&t&&(n=n.replace(c,\"\")),2&t&&(n=n.replace(u,\"\")),n}};t.exports={start:a(1),end:a(2),trim:a(3)}},\"5c6c\":function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},\"65f0\":function(t,e,n){var r=n(\"861d\"),o=n(\"e8b5\"),i=n(\"b622\"),c=i(\"species\");t.exports=function(t,e){var n;return o(t)&&(n=t.constructor,\"function\"!=typeof n||n!==Array&&!o(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},\"69f3\":function(t,e,n){var r,o,i,c=n(\"7f9a\"),u=n(\"da84\"),a=n(\"861d\"),f=n(\"9112\"),s=n(\"5135\"),l=n(\"f772\"),p=n(\"d012\"),d=u.WeakMap,v=function(t){return i(t)?o(t):r(t,{})},h=function(t){return function(e){var n;if(!a(e)||(n=o(e)).type!==t)throw TypeError(\"Incompatible receiver, \"+t+\" required\");return n}};if(c){var y=new d,b=y.get,g=y.has,m=y.set;r=function(t,e){return m.call(y,t,e),e},o=function(t){return b.call(y,t)||{}},i=function(t){return g.call(y,t)}}else{var x=l(\"state\");p[x]=!0,r=function(t,e){return f(t,x,e),e},o=function(t){return s(t,x)?t[x]:{}},i=function(t){return s(t,x)}}t.exports={set:r,get:o,has:i,enforce:v,getterFor:h}},\"6eeb\":function(t,e,n){var r=n(\"da84\"),o=n(\"9112\"),i=n(\"5135\"),c=n(\"ce4e\"),u=n(\"8925\"),a=n(\"69f3\"),f=a.get,s=a.enforce,l=String(String).split(\"String\");(t.exports=function(t,e,n,u){var a=!!u&&!!u.unsafe,f=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet;\"function\"==typeof n&&(\"string\"!=typeof e||i(n,\"name\")||o(n,\"name\",e),s(n).source=l.join(\"string\"==typeof e?e:\"\")),t!==r?(a?!p&&t[e]&&(f=!0):delete t[e],f?t[e]=n:o(t,e,n)):f?t[e]=n:c(e,n)})(Function.prototype,\"toString\",(function(){return\"function\"==typeof this&&f(this).source||u(this)}))},7156:function(t,e,n){var r=n(\"861d\"),o=n(\"d2bb\");t.exports=function(t,e,n){var i,c;return o&&\"function\"==typeof(i=e.constructor)&&i!==n&&r(c=i.prototype)&&c!==n.prototype&&o(t,c),t}},7418:function(t,e){e.f=Object.getOwnPropertySymbols},7839:function(t,e){t.exports=[\"constructor\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"toLocaleString\",\"toString\",\"valueOf\"]},\"7b0b\":function(t,e,n){var r=n(\"1d80\");t.exports=function(t){return Object(r(t))}},\"7c73\":function(t,e,n){var r,o=n(\"825a\"),i=n(\"37e8\"),c=n(\"7839\"),u=n(\"d012\"),a=n(\"1be4\"),f=n(\"cc12\"),s=n(\"f772\"),l=\">\",p=\"<\",d=\"prototype\",v=\"script\",h=s(\"IE_PROTO\"),y=function(){},b=function(t){return p+v+l+t+p+\"/\"+v+l},g=function(t){t.write(b(\"\")),t.close();var e=t.parentWindow.Object;return t=null,e},m=function(){var t,e=f(\"iframe\"),n=\"java\"+v+\":\";return e.style.display=\"none\",a.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(b(\"document.F=Object\")),t.close(),t.F},x=function(){try{r=document.domain&&new ActiveXObject(\"htmlfile\")}catch(e){}x=r?g(r):m();var t=c.length;while(t--)delete x[d][c[t]];return x()};u[h]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(y[d]=o(t),n=new y,y[d]=null,n[h]=t):n=x(),void 0===e?n:i(n,e)}},\"7f9a\":function(t,e,n){var r=n(\"da84\"),o=n(\"8925\"),i=r.WeakMap;t.exports=\"function\"===typeof i&&/native code/.test(o(i))},\"825a\":function(t,e,n){var r=n(\"861d\");t.exports=function(t){if(!r(t))throw TypeError(String(t)+\" is not an object\");return t}},\"83ab\":function(t,e,n){var r=n(\"d039\");t.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},\"861d\":function(t,e){t.exports=function(t){return\"object\"===typeof t?null!==t:\"function\"===typeof t}},8875:function(t,e,n){var r,o,i;(function(n,c){o=[],r=c,i=\"function\"===typeof r?r.apply(e,o):r,void 0===i||(t.exports=i)})(\"undefined\"!==typeof self&&self,(function(){function t(){var e=Object.getOwnPropertyDescriptor(document,\"currentScript\");if(!e&&\"currentScript\"in document&&document.currentScript)return document.currentScript;if(e&&e.get!==t&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var n,r,o,i=/.*at [^(]*\\((.*):(.+):(.+)\\)$/gi,c=/@([^@]*):(\\d+):(\\d+)\\s*$/gi,u=i.exec(d.stack)||c.exec(d.stack),a=u&&u[1]||!1,f=u&&u[2]||!1,s=document.location.href.replace(document.location.hash,\"\"),l=document.getElementsByTagName(\"script\");a===s&&(n=document.documentElement.outerHTML,r=new RegExp(\"(?:[^\\\\n]+?\\\\n){0,\"+(f-2)+\"}[^<]*\n * ```\n */\nvar Popup = /** @class */ (function (_super) {\n __extends(Popup, _super);\n function Popup(element, options) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Called internally if any of the property value changed.\n *\n * @param {PopupModel} newProp - specifies the new property\n * @param {PopupModel} oldProp - specifies the old property\n * @private\n * @returns {void}\n */\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'width':\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\n break;\n case 'height':\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\n break;\n case 'zIndex':\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\n break;\n case 'enableRtl':\n this.setEnableRtl();\n break;\n case 'position':\n case 'relateTo':\n this.refreshPosition();\n break;\n case 'offsetX': {\n var x = newProp.offsetX - oldProp.offsetX;\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\n break;\n }\n case 'offsetY': {\n var y = newProp.offsetY - oldProp.offsetY;\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\n break;\n }\n case 'content':\n this.setContent();\n break;\n case 'actionOnScroll':\n if (newProp.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n else {\n this.unwireScrollEvents();\n }\n break;\n }\n }\n };\n /**\n * gets the Component module name.\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.getModuleName = function () {\n return 'popup';\n };\n /**\n * To resolve if any collision occurs.\n *\n * @returns {void}\n */\n Popup.prototype.resolveCollision = function () {\n this.checkCollision();\n };\n /**\n * gets the persisted state properties of the Component.\n *\n * @returns {void}\n */\n Popup.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To destroy the control.\n *\n * @returns {void}\n */\n Popup.prototype.destroy = function () {\n if (this.element.classList.contains('e-popup-open')) {\n this.unwireEvents();\n }\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\n this.content = null;\n this.relateTo = null;\n collisionDestroy();\n _super.prototype.destroy.call(this);\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.render = function () {\n this.element.classList.add(CLASSNAMES.ROOT);\n var styles = {};\n if (this.zIndex !== 1000) {\n styles.zIndex = this.zIndex;\n }\n if (this.width !== 'auto') {\n styles.width = formatUnit(this.width);\n }\n if (this.height !== 'auto') {\n styles.height = formatUnit(this.height);\n }\n setStyleAttribute(this.element, styles);\n this.fixedParent = false;\n this.setEnableRtl();\n this.setContent();\n };\n Popup.prototype.wireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\n }\n if (this.actionOnScroll !== 'none') {\n this.wireScrollEvents();\n }\n };\n Popup.prototype.wireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_1 = _a[_i];\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\n }\n }\n };\n Popup.prototype.unwireEvents = function () {\n if (Browser.isDevice) {\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\n }\n if (this.actionOnScroll !== 'none') {\n this.unwireScrollEvents();\n }\n };\n Popup.prototype.unwireScrollEvents = function () {\n if (this.getRelateToElement()) {\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\n }\n }\n };\n Popup.prototype.getRelateToElement = function () {\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\n document.body : this.relateTo;\n this.setProperties({ relateTo: relateToElement }, true);\n return ((typeof this.relateTo) === 'string') ?\n document.querySelector(this.relateTo) : this.relateTo;\n };\n Popup.prototype.scrollRefresh = function (e) {\n if (this.actionOnScroll === 'reposition') {\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\n e.target.parentElement == null))) {\n this.refreshPosition();\n }\n }\n else if (this.actionOnScroll === 'hide') {\n this.hide();\n }\n if (this.actionOnScroll !== 'none') {\n if (this.getRelateToElement()) {\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\n if (!targetVisible && !this.targetInvisibleStatus) {\n this.trigger('targetExitViewport');\n this.targetInvisibleStatus = true;\n }\n else if (targetVisible) {\n this.targetInvisibleStatus = false;\n }\n }\n }\n };\n /**\n * This method is to get the element visibility on viewport when scroll\n * the page. This method will returns true even though 1 px of element\n * part is in visible.\n *\n * @param {HTMLElement} relateToElement - specifies the element\n * @param {HTMLElement} scrollElement - specifies the scroll element\n * @returns {boolean} - retruns the boolean\n */\n // eslint-disable-next-line\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\n var scrollParents = this.getScrollableParent(relateToElement);\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\n continue;\n }\n else {\n return false;\n }\n }\n return true;\n };\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\n var rect = this.checkGetBoundingClientRect(relateToElement);\n if (!rect.height || !rect.width) {\n return false;\n }\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\n var parent_4 = scrollElement.getBoundingClientRect();\n return !(rect.bottom < parent_4.top) &&\n (!(rect.bottom > parent_4.bottom) &&\n (!(rect.right > parent_4.right) &&\n !(rect.left < parent_4.left)));\n }\n else {\n var win = window;\n var windowView = {\n top: win.scrollY,\n left: win.scrollX,\n right: win.scrollX + win.outerWidth,\n bottom: win.scrollY + win.outerHeight\n };\n var off = calculatePosition(relateToElement);\n var ele = {\n top: off.top,\n left: off.left,\n right: off.left + rect.width,\n bottom: off.top + rect.height\n };\n var elementView = {\n top: windowView.bottom - ele.top,\n left: windowView.right - ele.left,\n bottom: ele.bottom - windowView.top,\n right: ele.right - windowView.left\n };\n return elementView.top > 0\n && elementView.left > 0\n && elementView.right > 0\n && elementView.bottom > 0;\n }\n };\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n Popup.prototype.preRender = function () {\n //There is no event handler\n };\n Popup.prototype.setEnableRtl = function () {\n this.reposition();\n if (this.enableRtl) {\n this.element.classList.add(CLASSNAMES.RTL);\n }\n else {\n this.element.classList.remove(CLASSNAMES.RTL);\n }\n };\n Popup.prototype.setContent = function () {\n if (!isNullOrUndefined(this.content)) {\n this.element.innerHTML = '';\n if (typeof (this.content) === 'string') {\n this.element.textContent = this.content;\n }\n else {\n var relateToElem = this.getRelateToElement();\n // eslint-disable-next-line\n var props = this.content.props;\n if (!relateToElem.classList.contains('e-dropdown-btn') || isNullOrUndefined(props)) {\n this.element.appendChild(this.content);\n }\n }\n }\n };\n Popup.prototype.orientationOnChange = function () {\n var _this = this;\n setTimeout(function () {\n _this.refreshPosition();\n }, 200);\n };\n /**\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\n *\n * @param {HTMLElement} target - The target element.\n * @param {boolean} collision - Specifies whether to check for collision.\n * @returns {void}\n */\n Popup.prototype.refreshPosition = function (target, collision) {\n if (!isNullOrUndefined(target)) {\n this.checkFixedParent(target);\n }\n this.reposition();\n if (!collision) {\n this.checkCollision();\n }\n };\n Popup.prototype.reposition = function () {\n var pos;\n var position;\n var relateToElement = this.getRelateToElement();\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\n pos = { left: this.position.X, top: this.position.Y };\n }\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\n var parentDisplay = void 0;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n if (this.element.classList.contains('e-dlg-modal')) {\n parentDisplay = this.element.parentElement.style.display;\n this.element.parentElement.style.display = 'block';\n }\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\n if (typeof this.position.X === 'string') {\n pos = { left: position.left, top: this.position.Y };\n }\n else {\n pos = { left: this.position.X, top: position.top };\n }\n this.element.style.display = display;\n if (this.element.classList.contains('e-dlg-modal')) {\n this.element.parentElement.style.display = parentDisplay;\n }\n }\n else if (relateToElement) {\n var height = this.element.clientHeight;\n var display = this.element.style.display;\n this.element.style.display = 'block';\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY, height);\n this.element.style.display = display;\n }\n else {\n pos = { left: 0, top: 0 };\n }\n if (!isNullOrUndefined(pos)) {\n this.element.style.left = pos.left + 'px';\n this.element.style.top = pos.top + 'px';\n }\n };\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\n var eleRect;\n try {\n eleRect = ele.getBoundingClientRect();\n return eleRect;\n }\n catch (error) {\n return null;\n }\n };\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY, height) {\n if (height === void 0) { height = 0; }\n var eleRect = this.checkGetBoundingClientRect(ele);\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\n return null;\n }\n var anchor = anchorEle;\n var anchorPos = { left: 0, top: 0 };\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\n anchorPos = calculatePosition(anchorEle);\n }\n else {\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\n ele = ele.parentElement;\n }\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\n }\n switch (position.X) {\n default:\n case 'left':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\n }\n else {\n anchorPos.left += (anchorRect.width / 2);\n }\n break;\n case 'right':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.left += (window.innerWidth - eleRect.width);\n }\n else if (this.targetType === 'container') {\n var scaleX = 1;\n var tranformElement = getTransformElement(ele);\n if (tranformElement) {\n var transformStyle = getComputedStyle(tranformElement).transform;\n if (transformStyle !== 'none') {\n var matrix = new DOMMatrix(transformStyle);\n scaleX = matrix.a;\n }\n var zoomStyle = getComputedStyle(tranformElement).zoom;\n if (zoomStyle !== 'none') {\n var bodyZoom = getZoomValue(document.body);\n scaleX = bodyZoom * scaleX;\n }\n }\n anchorPos.left += ((anchorRect.width - eleRect.width) / scaleX);\n }\n else {\n anchorPos.left += (anchorRect.width);\n }\n break;\n }\n switch (position.Y) {\n default:\n case 'top':\n break;\n case 'center':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\n }\n else if (this.targetType === 'container') {\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\n }\n else {\n anchorPos.top += (anchorRect.height / 2);\n }\n break;\n case 'bottom':\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\n anchorPos.top += (window.innerHeight - eleRect.height);\n }\n else if (this.targetType === 'container' && !ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - eleRect.height);\n }\n else if (this.targetType === 'container' && ele.classList.contains('e-dialog')) {\n anchorPos.top += (anchorRect.height - height);\n }\n else {\n anchorPos.top += (anchorRect.height);\n }\n break;\n }\n anchorPos.left += offsetX;\n anchorPos.top += offsetY;\n return anchorPos;\n };\n Popup.prototype.callFlip = function (param) {\n var relateToElement = this.getRelateToElement();\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\n };\n Popup.prototype.callFit = function (param) {\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\n if (isNullOrUndefined(this.viewPortElement)) {\n var data = fit(this.element, this.viewPortElement, param);\n if (param.X) {\n this.element.style.left = data.left + 'px';\n }\n if (param.Y) {\n this.element.style.top = data.top + 'px';\n }\n }\n else {\n var elementRect = this.checkGetBoundingClientRect(this.element);\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\n return null;\n }\n if (param && param.Y === true) {\n if (viewPortRect.top > elementRect.top) {\n this.element.style.top = '0px';\n }\n else if (viewPortRect.bottom < elementRect.bottom) {\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\n }\n }\n if (param && param.X === true) {\n if (viewPortRect.right < elementRect.right) {\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\n }\n else if (viewPortRect.left > elementRect.left) {\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\n }\n }\n }\n }\n };\n Popup.prototype.checkCollision = function () {\n var horz = this.collision.X;\n var vert = this.collision.Y;\n if (horz === 'none' && vert === 'none') {\n return;\n }\n if (horz === 'flip' && vert === 'flip') {\n this.callFlip({ X: true, Y: true });\n }\n else if (horz === 'fit' && vert === 'fit') {\n this.callFit({ X: true, Y: true });\n }\n else {\n if (horz === 'flip') {\n this.callFlip({ X: true, Y: false });\n }\n else if (vert === 'flip') {\n this.callFlip({ Y: true, X: false });\n }\n if (horz === 'fit') {\n this.callFit({ X: true, Y: false });\n }\n else if (vert === 'fit') {\n this.callFit({ X: false, Y: true });\n }\n }\n };\n /**\n * Shows the popup element from screen.\n *\n * @returns {void}\n * @param {AnimationModel} animationOptions - specifies the model\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\n */\n Popup.prototype.show = function (animationOptions, relativeElement) {\n var _this = this;\n var relateToElement = this.getRelateToElement();\n if (relateToElement.classList.contains('e-filemanager')) {\n this.fmDialogContainer = this.element.getElementsByClassName('e-file-select-wrap')[0];\n }\n this.wireEvents();\n if (!isNullOrUndefined(this.fmDialogContainer) && Browser.isIos) {\n this.fmDialogContainer.style.display = 'block';\n }\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\n this.zIndex = getZindexPartial(zIndexElement);\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\n }\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.showAnimation;\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.checkCollision();\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n }\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.begin = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.CLOSE);\n addClass([_this.element], CLASSNAMES.OPEN);\n }\n };\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n _this.trigger('open');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.CLOSE);\n addClass([this.element], CLASSNAMES.OPEN);\n this.trigger('open');\n }\n };\n /**\n * Hides the popup element from screen.\n *\n * @param {AnimationModel} animationOptions - To give the animation options.\n * @returns {void}\n */\n Popup.prototype.hide = function (animationOptions) {\n var _this = this;\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\n animationOptions : this.hideAnimation;\n if (!isNullOrUndefined(animationOptions)) {\n animationOptions.end = function () {\n if (!_this.isDestroyed) {\n removeClass([_this.element], CLASSNAMES.OPEN);\n addClass([_this.element], CLASSNAMES.CLOSE);\n _this.trigger('close');\n }\n };\n new Animation(animationOptions).animate(this.element);\n }\n else {\n removeClass([this.element], CLASSNAMES.OPEN);\n addClass([this.element], CLASSNAMES.CLOSE);\n this.trigger('close');\n }\n this.unwireEvents();\n };\n /**\n * Gets scrollable parent elements for the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n */\n Popup.prototype.getScrollableParent = function (element) {\n this.checkFixedParent(element);\n return getScrollableParent(element, this.fixedParent);\n };\n Popup.prototype.checkFixedParent = function (element) {\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if ((parentStyle.position === 'fixed' || parentStyle.position === 'sticky') && !isNullOrUndefined(this.element) && this.element.offsetParent &&\n this.element.offsetParent.tagName === 'BODY' && getComputedStyle(this.element.offsetParent).overflow !== 'hidden') {\n this.element.style.top = window.scrollY > parseInt(this.element.style.top, 10) ?\n formatUnit(window.scrollY - parseInt(this.element.style.top, 10))\n : formatUnit(parseInt(this.element.style.top, 10) - window.scrollY);\n this.element.style.position = 'fixed';\n this.fixedParent = true;\n }\n parent = parent.parentElement;\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\n && this.element.style.position === 'fixed') {\n this.fixedParent = true;\n }\n }\n };\n __decorate([\n Property('auto')\n ], Popup.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], Popup.prototype, \"width\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"content\", void 0);\n __decorate([\n Property('container')\n ], Popup.prototype, \"targetType\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"viewPortElement\", void 0);\n __decorate([\n Property({ X: 'none', Y: 'none' })\n ], Popup.prototype, \"collision\", void 0);\n __decorate([\n Property('')\n ], Popup.prototype, \"relateTo\", void 0);\n __decorate([\n Complex({}, PositionData)\n ], Popup.prototype, \"position\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetX\", void 0);\n __decorate([\n Property(0)\n ], Popup.prototype, \"offsetY\", void 0);\n __decorate([\n Property(1000)\n ], Popup.prototype, \"zIndex\", void 0);\n __decorate([\n Property(false)\n ], Popup.prototype, \"enableRtl\", void 0);\n __decorate([\n Property('reposition')\n ], Popup.prototype, \"actionOnScroll\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"showAnimation\", void 0);\n __decorate([\n Property(null)\n ], Popup.prototype, \"hideAnimation\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], Popup.prototype, \"targetExitViewport\", void 0);\n Popup = __decorate([\n NotifyPropertyChanges\n ], Popup);\n return Popup;\n}(Component));\nexport { Popup };\n/**\n * Gets scrollable parent elements for the given element.\n *\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\n * @param {boolean} fixedParent - specifies the parent element\n * @private\n * @returns {void}\n */\nexport function getScrollableParent(element, fixedParent) {\n var eleStyle = getComputedStyle(element);\n var scrollParents = [];\n var overflowRegex = /(auto|scroll)/;\n var parent = element.parentElement;\n while (parent && parent.tagName !== 'HTML') {\n var parentStyle = getComputedStyle(parent);\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\n scrollParents.push(parent);\n }\n parent = parent.parentElement;\n }\n if (!fixedParent) {\n scrollParents.push(document);\n }\n return scrollParents;\n}\n/**\n * Gets the maximum z-index of the given element.\n *\n * @returns {void}\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\n * @private\n */\nexport function getZindexPartial(element) {\n // upto body traversal\n var parent = element.parentElement;\n var parentZindex = [];\n while (parent) {\n if (parent.tagName !== 'BODY') {\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n parentZindex.push(index);\n }\n parent = parent.parentElement;\n }\n else {\n break;\n }\n }\n var childrenZindex = [];\n for (var i = 0; i < document.body.children.length; i++) {\n if (!element.isEqualNode(document.body.children[i])) {\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n childrenZindex.push(index);\n }\n }\n }\n childrenZindex.push('999');\n var siblingsZindex = [];\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\n var childNodes = [].slice.call(element.parentElement.children);\n for (var i = 0; i < childNodes.length; i++) {\n if (!element.isEqualNode(childNodes[i])) {\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n siblingsZindex.push(index);\n }\n }\n }\n }\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n/**\n * Gets the maximum z-index of the page.\n *\n * @returns {void}\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\n * @private\n */\nexport function getMaxZindex(tagName) {\n if (tagName === void 0) { tagName = ['*']; }\n var maxZindex = [];\n for (var i = 0; i < tagName.length; i++) {\n var elements = document.getElementsByTagName(tagName[i]);\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\n if (index !== 'auto' && position !== 'static') {\n maxZindex.push(index);\n }\n }\n }\n // eslint-disable-next-line\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/csp/csp.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"csp\",\n extensions: [\".csp\"],\n aliases: [\"CSP\", \"csp\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/csp/csp\"], resolve, reject);\n });\n } else {\n return import(\"./csp.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from './event.js';\nimport { Disposable } from './lifecycle.js';\nimport * as nls from '../../nls.js';\nexport class Action extends Disposable {\n constructor(id, label = '', cssClass = '', enabled = true, actionCallback) {\n super();\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n this._enabled = true;\n this._id = id;\n this._label = label;\n this._cssClass = cssClass;\n this._enabled = enabled;\n this._actionCallback = actionCallback;\n }\n get id() {\n return this._id;\n }\n get label() {\n return this._label;\n }\n set label(value) {\n this._setLabel(value);\n }\n _setLabel(value) {\n if (this._label !== value) {\n this._label = value;\n this._onDidChange.fire({ label: value });\n }\n }\n get tooltip() {\n return this._tooltip || '';\n }\n set tooltip(value) {\n this._setTooltip(value);\n }\n _setTooltip(value) {\n if (this._tooltip !== value) {\n this._tooltip = value;\n this._onDidChange.fire({ tooltip: value });\n }\n }\n get class() {\n return this._cssClass;\n }\n set class(value) {\n this._setClass(value);\n }\n _setClass(value) {\n if (this._cssClass !== value) {\n this._cssClass = value;\n this._onDidChange.fire({ class: value });\n }\n }\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._setEnabled(value);\n }\n _setEnabled(value) {\n if (this._enabled !== value) {\n this._enabled = value;\n this._onDidChange.fire({ enabled: value });\n }\n }\n get checked() {\n return this._checked;\n }\n set checked(value) {\n this._setChecked(value);\n }\n _setChecked(value) {\n if (this._checked !== value) {\n this._checked = value;\n this._onDidChange.fire({ checked: value });\n }\n }\n async run(event, data) {\n if (this._actionCallback) {\n await this._actionCallback(event);\n }\n }\n}\nexport class ActionRunner extends Disposable {\n constructor() {\n super(...arguments);\n this._onWillRun = this._register(new Emitter());\n this.onWillRun = this._onWillRun.event;\n this._onDidRun = this._register(new Emitter());\n this.onDidRun = this._onDidRun.event;\n }\n async run(action, context) {\n if (!action.enabled) {\n return;\n }\n this._onWillRun.fire({ action });\n let error = undefined;\n try {\n await this.runAction(action, context);\n }\n catch (e) {\n error = e;\n }\n this._onDidRun.fire({ action, error });\n }\n async runAction(action, context) {\n await action.run(context);\n }\n}\nexport class Separator {\n constructor() {\n this.id = Separator.ID;\n this.label = '';\n this.tooltip = '';\n this.class = 'separator';\n this.enabled = false;\n this.checked = false;\n }\n /**\n * Joins all non-empty lists of actions with separators.\n */\n static join(...actionLists) {\n let out = [];\n for (const list of actionLists) {\n if (!list.length) {\n // skip\n }\n else if (out.length) {\n out = [...out, new Separator(), ...list];\n }\n else {\n out = list;\n }\n }\n return out;\n }\n async run() { }\n}\nSeparator.ID = 'vs.actions.separator';\nexport class SubmenuAction {\n get actions() { return this._actions; }\n constructor(id, label, actions, cssClass) {\n this.tooltip = '';\n this.enabled = true;\n this.checked = undefined;\n this.id = id;\n this.label = label;\n this.class = cssClass;\n this._actions = actions;\n }\n async run() { }\n}\nexport class EmptySubmenuAction extends Action {\n constructor() {\n super(EmptySubmenuAction.ID, nls.localize('submenu.empty', '(empty)'), undefined, false);\n }\n}\nEmptySubmenuAction.ID = 'vs.actions.empty';\nexport function toAction(props) {\n var _a, _b;\n return {\n id: props.id,\n label: props.label,\n tooltip: (_a = props.tooltip) !== null && _a !== void 0 ? _a : props.label,\n class: props.class,\n enabled: (_b = props.enabled) !== null && _b !== void 0 ? _b : true,\n checked: props.checked,\n run: async (...args) => props.run(...args),\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a, _b;\nclass ResourceMapEntry {\n constructor(uri, value) {\n this.uri = uri;\n this.value = value;\n }\n}\nfunction isEntries(arg) {\n return Array.isArray(arg);\n}\nexport class ResourceMap {\n constructor(arg, toKey) {\n this[_a] = 'ResourceMap';\n if (arg instanceof ResourceMap) {\n this.map = new Map(arg.map);\n this.toKey = toKey !== null && toKey !== void 0 ? toKey : ResourceMap.defaultToKey;\n }\n else if (isEntries(arg)) {\n this.map = new Map();\n this.toKey = toKey !== null && toKey !== void 0 ? toKey : ResourceMap.defaultToKey;\n for (const [resource, value] of arg) {\n this.set(resource, value);\n }\n }\n else {\n this.map = new Map();\n this.toKey = arg !== null && arg !== void 0 ? arg : ResourceMap.defaultToKey;\n }\n }\n set(resource, value) {\n this.map.set(this.toKey(resource), new ResourceMapEntry(resource, value));\n return this;\n }\n get(resource) {\n var _c;\n return (_c = this.map.get(this.toKey(resource))) === null || _c === void 0 ? void 0 : _c.value;\n }\n has(resource) {\n return this.map.has(this.toKey(resource));\n }\n get size() {\n return this.map.size;\n }\n clear() {\n this.map.clear();\n }\n delete(resource) {\n return this.map.delete(this.toKey(resource));\n }\n forEach(clb, thisArg) {\n if (typeof thisArg !== 'undefined') {\n clb = clb.bind(thisArg);\n }\n for (const [_, entry] of this.map) {\n clb(entry.value, entry.uri, this);\n }\n }\n *values() {\n for (const entry of this.map.values()) {\n yield entry.value;\n }\n }\n *keys() {\n for (const entry of this.map.values()) {\n yield entry.uri;\n }\n }\n *entries() {\n for (const entry of this.map.values()) {\n yield [entry.uri, entry.value];\n }\n }\n *[(_a = Symbol.toStringTag, Symbol.iterator)]() {\n for (const [, entry] of this.map) {\n yield [entry.uri, entry.value];\n }\n }\n}\nResourceMap.defaultToKey = (resource) => resource.toString();\nexport class LinkedMap {\n constructor() {\n this[_b] = 'LinkedMap';\n this._map = new Map();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state = 0;\n }\n clear() {\n this._map.clear();\n this._head = undefined;\n this._tail = undefined;\n this._size = 0;\n this._state++;\n }\n isEmpty() {\n return !this._head && !this._tail;\n }\n get size() {\n return this._size;\n }\n get first() {\n var _c;\n return (_c = this._head) === null || _c === void 0 ? void 0 : _c.value;\n }\n get last() {\n var _c;\n return (_c = this._tail) === null || _c === void 0 ? void 0 : _c.value;\n }\n has(key) {\n return this._map.has(key);\n }\n get(key, touch = 0 /* Touch.None */) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n if (touch !== 0 /* Touch.None */) {\n this.touch(item, touch);\n }\n return item.value;\n }\n set(key, value, touch = 0 /* Touch.None */) {\n let item = this._map.get(key);\n if (item) {\n item.value = value;\n if (touch !== 0 /* Touch.None */) {\n this.touch(item, touch);\n }\n }\n else {\n item = { key, value, next: undefined, previous: undefined };\n switch (touch) {\n case 0 /* Touch.None */:\n this.addItemLast(item);\n break;\n case 1 /* Touch.AsOld */:\n this.addItemFirst(item);\n break;\n case 2 /* Touch.AsNew */:\n this.addItemLast(item);\n break;\n default:\n this.addItemLast(item);\n break;\n }\n this._map.set(key, item);\n this._size++;\n }\n return this;\n }\n delete(key) {\n return !!this.remove(key);\n }\n remove(key) {\n const item = this._map.get(key);\n if (!item) {\n return undefined;\n }\n this._map.delete(key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n shift() {\n if (!this._head && !this._tail) {\n return undefined;\n }\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n const item = this._head;\n this._map.delete(item.key);\n this.removeItem(item);\n this._size--;\n return item.value;\n }\n forEach(callbackfn, thisArg) {\n const state = this._state;\n let current = this._head;\n while (current) {\n if (thisArg) {\n callbackfn.bind(thisArg)(current.value, current.key, this);\n }\n else {\n callbackfn(current.value, current.key, this);\n }\n if (this._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n current = current.next;\n }\n }\n keys() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.key, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n values() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: current.value, done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n entries() {\n const map = this;\n const state = this._state;\n let current = this._head;\n const iterator = {\n [Symbol.iterator]() {\n return iterator;\n },\n next() {\n if (map._state !== state) {\n throw new Error(`LinkedMap got modified during iteration.`);\n }\n if (current) {\n const result = { value: [current.key, current.value], done: false };\n current = current.next;\n return result;\n }\n else {\n return { value: undefined, done: true };\n }\n }\n };\n return iterator;\n }\n [(_b = Symbol.toStringTag, Symbol.iterator)]() {\n return this.entries();\n }\n trimOld(newSize) {\n if (newSize >= this.size) {\n return;\n }\n if (newSize === 0) {\n this.clear();\n return;\n }\n let current = this._head;\n let currentSize = this.size;\n while (current && currentSize > newSize) {\n this._map.delete(current.key);\n current = current.next;\n currentSize--;\n }\n this._head = current;\n this._size = currentSize;\n if (current) {\n current.previous = undefined;\n }\n this._state++;\n }\n trimNew(newSize) {\n if (newSize >= this.size) {\n return;\n }\n if (newSize === 0) {\n this.clear();\n return;\n }\n let current = this._tail;\n let currentSize = this.size;\n while (current && currentSize > newSize) {\n this._map.delete(current.key);\n current = current.previous;\n currentSize--;\n }\n this._tail = current;\n this._size = currentSize;\n if (current) {\n current.next = undefined;\n }\n this._state++;\n }\n addItemFirst(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._tail = item;\n }\n else if (!this._head) {\n throw new Error('Invalid list');\n }\n else {\n item.next = this._head;\n this._head.previous = item;\n }\n this._head = item;\n this._state++;\n }\n addItemLast(item) {\n // First time Insert\n if (!this._head && !this._tail) {\n this._head = item;\n }\n else if (!this._tail) {\n throw new Error('Invalid list');\n }\n else {\n item.previous = this._tail;\n this._tail.next = item;\n }\n this._tail = item;\n this._state++;\n }\n removeItem(item) {\n if (item === this._head && item === this._tail) {\n this._head = undefined;\n this._tail = undefined;\n }\n else if (item === this._head) {\n // This can only happen if size === 1 which is handled\n // by the case above.\n if (!item.next) {\n throw new Error('Invalid list');\n }\n item.next.previous = undefined;\n this._head = item.next;\n }\n else if (item === this._tail) {\n // This can only happen if size === 1 which is handled\n // by the case above.\n if (!item.previous) {\n throw new Error('Invalid list');\n }\n item.previous.next = undefined;\n this._tail = item.previous;\n }\n else {\n const next = item.next;\n const previous = item.previous;\n if (!next || !previous) {\n throw new Error('Invalid list');\n }\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = undefined;\n this._state++;\n }\n touch(item, touch) {\n if (!this._head || !this._tail) {\n throw new Error('Invalid list');\n }\n if ((touch !== 1 /* Touch.AsOld */ && touch !== 2 /* Touch.AsNew */)) {\n return;\n }\n if (touch === 1 /* Touch.AsOld */) {\n if (item === this._head) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item\n if (item === this._tail) {\n // previous must be defined since item was not head but is tail\n // So there are more than on item in the map\n previous.next = undefined;\n this._tail = previous;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n // Insert the node at head\n item.previous = undefined;\n item.next = this._head;\n this._head.previous = item;\n this._head = item;\n this._state++;\n }\n else if (touch === 2 /* Touch.AsNew */) {\n if (item === this._tail) {\n return;\n }\n const next = item.next;\n const previous = item.previous;\n // Unlink the item.\n if (item === this._head) {\n // next must be defined since item was not tail but is head\n // So there are more than on item in the map\n next.previous = undefined;\n this._head = next;\n }\n else {\n // Both next and previous are not undefined since item was neither head nor tail.\n next.previous = previous;\n previous.next = next;\n }\n item.next = undefined;\n item.previous = this._tail;\n this._tail.next = item;\n this._tail = item;\n this._state++;\n }\n }\n toJSON() {\n const data = [];\n this.forEach((value, key) => {\n data.push([key, value]);\n });\n return data;\n }\n fromJSON(data) {\n this.clear();\n for (const [key, value] of data) {\n this.set(key, value);\n }\n }\n}\nclass Cache extends LinkedMap {\n constructor(limit, ratio = 1) {\n super();\n this._limit = limit;\n this._ratio = Math.min(Math.max(0, ratio), 1);\n }\n get limit() {\n return this._limit;\n }\n set limit(limit) {\n this._limit = limit;\n this.checkTrim();\n }\n get(key, touch = 2 /* Touch.AsNew */) {\n return super.get(key, touch);\n }\n peek(key) {\n return super.get(key, 0 /* Touch.None */);\n }\n set(key, value) {\n super.set(key, value, 2 /* Touch.AsNew */);\n return this;\n }\n checkTrim() {\n if (this.size > this._limit) {\n this.trim(Math.round(this._limit * this._ratio));\n }\n }\n}\nexport class LRUCache extends Cache {\n constructor(limit, ratio = 1) {\n super(limit, ratio);\n }\n trim(newSize) {\n this.trimOld(newSize);\n }\n set(key, value) {\n super.set(key, value);\n this.checkTrim();\n return this;\n }\n}\n/**\n * A map that allows access both by keys and values.\n * **NOTE**: values need to be unique.\n */\nexport class BidirectionalMap {\n constructor(entries) {\n this._m1 = new Map();\n this._m2 = new Map();\n if (entries) {\n for (const [key, value] of entries) {\n this.set(key, value);\n }\n }\n }\n clear() {\n this._m1.clear();\n this._m2.clear();\n }\n set(key, value) {\n this._m1.set(key, value);\n this._m2.set(value, key);\n }\n get(key) {\n return this._m1.get(key);\n }\n getKey(value) {\n return this._m2.get(value);\n }\n delete(key) {\n const value = this._m1.get(key);\n if (value === undefined) {\n return false;\n }\n this._m1.delete(key);\n this._m2.delete(value);\n return true;\n }\n keys() {\n return this._m1.keys();\n }\n values() {\n return this._m1.values();\n }\n}\nexport class SetMap {\n constructor() {\n this.map = new Map();\n }\n add(key, value) {\n let values = this.map.get(key);\n if (!values) {\n values = new Set();\n this.map.set(key, values);\n }\n values.add(value);\n }\n delete(key, value) {\n const values = this.map.get(key);\n if (!values) {\n return;\n }\n values.delete(value);\n if (values.size === 0) {\n this.map.delete(key);\n }\n }\n forEach(key, fn) {\n const values = this.map.get(key);\n if (!values) {\n return;\n }\n values.forEach(fn);\n }\n get(key) {\n const values = this.map.get(key);\n if (!values) {\n return new Set();\n }\n return values;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as platform from '../../../base/common/platform.js';\nimport { EditorFontVariations, EDITOR_FONT_DEFAULTS } from './editorOptions.js';\nimport { EditorZoom } from './editorZoom.js';\n/**\n * Determined from empirical observations.\n * @internal\n */\nconst GOLDEN_LINE_HEIGHT_RATIO = platform.isMacintosh ? 1.5 : 1.35;\n/**\n * @internal\n */\nconst MINIMUM_LINE_HEIGHT = 8;\nexport class BareFontInfo {\n /**\n * @internal\n */\n static createFromValidatedSettings(options, pixelRatio, ignoreEditorZoom) {\n const fontFamily = options.get(49 /* EditorOption.fontFamily */);\n const fontWeight = options.get(53 /* EditorOption.fontWeight */);\n const fontSize = options.get(52 /* EditorOption.fontSize */);\n const fontFeatureSettings = options.get(51 /* EditorOption.fontLigatures */);\n const fontVariationSettings = options.get(54 /* EditorOption.fontVariations */);\n const lineHeight = options.get(67 /* EditorOption.lineHeight */);\n const letterSpacing = options.get(64 /* EditorOption.letterSpacing */);\n return BareFontInfo._create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom);\n }\n /**\n * @internal\n */\n static _create(fontFamily, fontWeight, fontSize, fontFeatureSettings, fontVariationSettings, lineHeight, letterSpacing, pixelRatio, ignoreEditorZoom) {\n if (lineHeight === 0) {\n lineHeight = GOLDEN_LINE_HEIGHT_RATIO * fontSize;\n }\n else if (lineHeight < MINIMUM_LINE_HEIGHT) {\n // Values too small to be line heights in pixels are in ems.\n lineHeight = lineHeight * fontSize;\n }\n // Enforce integer, minimum constraints\n lineHeight = Math.round(lineHeight);\n if (lineHeight < MINIMUM_LINE_HEIGHT) {\n lineHeight = MINIMUM_LINE_HEIGHT;\n }\n const editorZoomLevelMultiplier = 1 + (ignoreEditorZoom ? 0 : EditorZoom.getZoomLevel() * 0.1);\n fontSize *= editorZoomLevelMultiplier;\n lineHeight *= editorZoomLevelMultiplier;\n if (fontVariationSettings === EditorFontVariations.TRANSLATE) {\n if (fontWeight === 'normal' || fontWeight === 'bold') {\n fontVariationSettings = EditorFontVariations.OFF;\n }\n else {\n const fontWeightAsNumber = parseInt(fontWeight, 10);\n fontVariationSettings = `'wght' ${fontWeightAsNumber}`;\n fontWeight = 'normal';\n }\n }\n return new BareFontInfo({\n pixelRatio: pixelRatio,\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: fontSize,\n fontFeatureSettings: fontFeatureSettings,\n fontVariationSettings,\n lineHeight: lineHeight,\n letterSpacing: letterSpacing\n });\n }\n /**\n * @internal\n */\n constructor(opts) {\n this._bareFontInfoBrand = undefined;\n this.pixelRatio = opts.pixelRatio;\n this.fontFamily = String(opts.fontFamily);\n this.fontWeight = String(opts.fontWeight);\n this.fontSize = opts.fontSize;\n this.fontFeatureSettings = opts.fontFeatureSettings;\n this.fontVariationSettings = opts.fontVariationSettings;\n this.lineHeight = opts.lineHeight | 0;\n this.letterSpacing = opts.letterSpacing;\n }\n /**\n * @internal\n */\n getId() {\n return `${this.pixelRatio}-${this.fontFamily}-${this.fontWeight}-${this.fontSize}-${this.fontFeatureSettings}-${this.fontVariationSettings}-${this.lineHeight}-${this.letterSpacing}`;\n }\n /**\n * @internal\n */\n getMassagedFontFamily() {\n const fallbackFontFamily = EDITOR_FONT_DEFAULTS.fontFamily;\n const fontFamily = BareFontInfo._wrapInQuotes(this.fontFamily);\n if (fallbackFontFamily && this.fontFamily !== fallbackFontFamily) {\n return `${fontFamily}, ${fallbackFontFamily}`;\n }\n return fontFamily;\n }\n static _wrapInQuotes(fontFamily) {\n if (/[,\"']/.test(fontFamily)) {\n // Looks like the font family might be already escaped\n return fontFamily;\n }\n if (/[+ ]/.test(fontFamily)) {\n // Wrap a font family using + or with quotes\n return `\"${fontFamily}\"`;\n }\n return fontFamily;\n }\n}\n// change this whenever `FontInfo` members are changed\nexport const SERIALIZED_FONT_INFO_VERSION = 2;\nexport class FontInfo extends BareFontInfo {\n /**\n * @internal\n */\n constructor(opts, isTrusted) {\n super(opts);\n this._editorStylingBrand = undefined;\n this.version = SERIALIZED_FONT_INFO_VERSION;\n this.isTrusted = isTrusted;\n this.isMonospace = opts.isMonospace;\n this.typicalHalfwidthCharacterWidth = opts.typicalHalfwidthCharacterWidth;\n this.typicalFullwidthCharacterWidth = opts.typicalFullwidthCharacterWidth;\n this.canUseHalfwidthRightwardsArrow = opts.canUseHalfwidthRightwardsArrow;\n this.spaceWidth = opts.spaceWidth;\n this.middotWidth = opts.middotWidth;\n this.wsmiddotWidth = opts.wsmiddotWidth;\n this.maxDigitWidth = opts.maxDigitWidth;\n }\n /**\n * @internal\n */\n equals(other) {\n return (this.fontFamily === other.fontFamily\n && this.fontWeight === other.fontWeight\n && this.fontSize === other.fontSize\n && this.fontFeatureSettings === other.fontFeatureSettings\n && this.fontVariationSettings === other.fontVariationSettings\n && this.lineHeight === other.lineHeight\n && this.letterSpacing === other.letterSpacing\n && this.typicalHalfwidthCharacterWidth === other.typicalHalfwidthCharacterWidth\n && this.typicalFullwidthCharacterWidth === other.typicalFullwidthCharacterWidth\n && this.canUseHalfwidthRightwardsArrow === other.canUseHalfwidthRightwardsArrow\n && this.spaceWidth === other.spaceWidth\n && this.middotWidth === other.middotWidth\n && this.wsmiddotWidth === other.wsmiddotWidth\n && this.maxDigitWidth === other.maxDigitWidth);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\n/**\n * A range in the editor. (startLineNumber,startColumn) is <= (endLineNumber,endColumn)\n */\nexport class Range {\n constructor(startLineNumber, startColumn, endLineNumber, endColumn) {\n if ((startLineNumber > endLineNumber) || (startLineNumber === endLineNumber && startColumn > endColumn)) {\n this.startLineNumber = endLineNumber;\n this.startColumn = endColumn;\n this.endLineNumber = startLineNumber;\n this.endColumn = startColumn;\n }\n else {\n this.startLineNumber = startLineNumber;\n this.startColumn = startColumn;\n this.endLineNumber = endLineNumber;\n this.endColumn = endColumn;\n }\n }\n /**\n * Test if this range is empty.\n */\n isEmpty() {\n return Range.isEmpty(this);\n }\n /**\n * Test if `range` is empty.\n */\n static isEmpty(range) {\n return (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn);\n }\n /**\n * Test if position is in this range. If the position is at the edges, will return true.\n */\n containsPosition(position) {\n return Range.containsPosition(this, position);\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return true.\n */\n static containsPosition(range, position) {\n if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\n return false;\n }\n if (position.lineNumber === range.startLineNumber && position.column < range.startColumn) {\n return false;\n }\n if (position.lineNumber === range.endLineNumber && position.column > range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * Test if `position` is in `range`. If the position is at the edges, will return false.\n * @internal\n */\n static strictContainsPosition(range, position) {\n if (position.lineNumber < range.startLineNumber || position.lineNumber > range.endLineNumber) {\n return false;\n }\n if (position.lineNumber === range.startLineNumber && position.column <= range.startColumn) {\n return false;\n }\n if (position.lineNumber === range.endLineNumber && position.column >= range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * Test if range is in this range. If the range is equal to this range, will return true.\n */\n containsRange(range) {\n return Range.containsRange(this, range);\n }\n /**\n * Test if `otherRange` is in `range`. If the ranges are equal, will return true.\n */\n static containsRange(range, otherRange) {\n if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn < range.startColumn) {\n return false;\n }\n if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn > range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * Test if `range` is strictly in this range. `range` must start after and end before this range for the result to be true.\n */\n strictContainsRange(range) {\n return Range.strictContainsRange(this, range);\n }\n /**\n * Test if `otherRange` is strictly in `range` (must start after, and end before). If the ranges are equal, will return false.\n */\n static strictContainsRange(range, otherRange) {\n if (otherRange.startLineNumber < range.startLineNumber || otherRange.endLineNumber < range.startLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber > range.endLineNumber || otherRange.endLineNumber > range.endLineNumber) {\n return false;\n }\n if (otherRange.startLineNumber === range.startLineNumber && otherRange.startColumn <= range.startColumn) {\n return false;\n }\n if (otherRange.endLineNumber === range.endLineNumber && otherRange.endColumn >= range.endColumn) {\n return false;\n }\n return true;\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n plusRange(range) {\n return Range.plusRange(this, range);\n }\n /**\n * A reunion of the two ranges.\n * The smallest position will be used as the start point, and the largest one as the end point.\n */\n static plusRange(a, b) {\n let startLineNumber;\n let startColumn;\n let endLineNumber;\n let endColumn;\n if (b.startLineNumber < a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = b.startColumn;\n }\n else if (b.startLineNumber === a.startLineNumber) {\n startLineNumber = b.startLineNumber;\n startColumn = Math.min(b.startColumn, a.startColumn);\n }\n else {\n startLineNumber = a.startLineNumber;\n startColumn = a.startColumn;\n }\n if (b.endLineNumber > a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = b.endColumn;\n }\n else if (b.endLineNumber === a.endLineNumber) {\n endLineNumber = b.endLineNumber;\n endColumn = Math.max(b.endColumn, a.endColumn);\n }\n else {\n endLineNumber = a.endLineNumber;\n endColumn = a.endColumn;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n /**\n * A intersection of the two ranges.\n */\n intersectRanges(range) {\n return Range.intersectRanges(this, range);\n }\n /**\n * A intersection of the two ranges.\n */\n static intersectRanges(a, b) {\n let resultStartLineNumber = a.startLineNumber;\n let resultStartColumn = a.startColumn;\n let resultEndLineNumber = a.endLineNumber;\n let resultEndColumn = a.endColumn;\n const otherStartLineNumber = b.startLineNumber;\n const otherStartColumn = b.startColumn;\n const otherEndLineNumber = b.endLineNumber;\n const otherEndColumn = b.endColumn;\n if (resultStartLineNumber < otherStartLineNumber) {\n resultStartLineNumber = otherStartLineNumber;\n resultStartColumn = otherStartColumn;\n }\n else if (resultStartLineNumber === otherStartLineNumber) {\n resultStartColumn = Math.max(resultStartColumn, otherStartColumn);\n }\n if (resultEndLineNumber > otherEndLineNumber) {\n resultEndLineNumber = otherEndLineNumber;\n resultEndColumn = otherEndColumn;\n }\n else if (resultEndLineNumber === otherEndLineNumber) {\n resultEndColumn = Math.min(resultEndColumn, otherEndColumn);\n }\n // Check if selection is now empty\n if (resultStartLineNumber > resultEndLineNumber) {\n return null;\n }\n if (resultStartLineNumber === resultEndLineNumber && resultStartColumn > resultEndColumn) {\n return null;\n }\n return new Range(resultStartLineNumber, resultStartColumn, resultEndLineNumber, resultEndColumn);\n }\n /**\n * Test if this range equals other.\n */\n equalsRange(other) {\n return Range.equalsRange(this, other);\n }\n /**\n * Test if range `a` equals `b`.\n */\n static equalsRange(a, b) {\n if (!a && !b) {\n return true;\n }\n return (!!a &&\n !!b &&\n a.startLineNumber === b.startLineNumber &&\n a.startColumn === b.startColumn &&\n a.endLineNumber === b.endLineNumber &&\n a.endColumn === b.endColumn);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n getEndPosition() {\n return Range.getEndPosition(this);\n }\n /**\n * Return the end position (which will be after or equal to the start position)\n */\n static getEndPosition(range) {\n return new Position(range.endLineNumber, range.endColumn);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n getStartPosition() {\n return Range.getStartPosition(this);\n }\n /**\n * Return the start position (which will be before or equal to the end position)\n */\n static getStartPosition(range) {\n return new Position(range.startLineNumber, range.startColumn);\n }\n /**\n * Transform to a user presentable string representation.\n */\n toString() {\n return '[' + this.startLineNumber + ',' + this.startColumn + ' -> ' + this.endLineNumber + ',' + this.endColumn + ']';\n }\n /**\n * Create a new range using this range's start position, and using endLineNumber and endColumn as the end position.\n */\n setEndPosition(endLineNumber, endColumn) {\n return new Range(this.startLineNumber, this.startColumn, endLineNumber, endColumn);\n }\n /**\n * Create a new range using this range's end position, and using startLineNumber and startColumn as the start position.\n */\n setStartPosition(startLineNumber, startColumn) {\n return new Range(startLineNumber, startColumn, this.endLineNumber, this.endColumn);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n collapseToStart() {\n return Range.collapseToStart(this);\n }\n /**\n * Create a new empty range using this range's start position.\n */\n static collapseToStart(range) {\n return new Range(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\n }\n /**\n * Create a new empty range using this range's end position.\n */\n collapseToEnd() {\n return Range.collapseToEnd(this);\n }\n /**\n * Create a new empty range using this range's end position.\n */\n static collapseToEnd(range) {\n return new Range(range.endLineNumber, range.endColumn, range.endLineNumber, range.endColumn);\n }\n /**\n * Moves the range by the given amount of lines.\n */\n delta(lineCount) {\n return new Range(this.startLineNumber + lineCount, this.startColumn, this.endLineNumber + lineCount, this.endColumn);\n }\n // ---\n static fromPositions(start, end = start) {\n return new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n }\n static lift(range) {\n if (!range) {\n return null;\n }\n return new Range(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn);\n }\n /**\n * Test if `obj` is an `IRange`.\n */\n static isIRange(obj) {\n return (obj\n && (typeof obj.startLineNumber === 'number')\n && (typeof obj.startColumn === 'number')\n && (typeof obj.endLineNumber === 'number')\n && (typeof obj.endColumn === 'number'));\n }\n /**\n * Test if the two ranges are touching in any way.\n */\n static areIntersectingOrTouching(a, b) {\n // Check if `a` is before `b`\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn < b.startColumn)) {\n return false;\n }\n // Check if `b` is before `a`\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn < a.startColumn)) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * Test if the two ranges are intersecting. If the ranges are touching it returns true.\n */\n static areIntersecting(a, b) {\n // Check if `a` is before `b`\n if (a.endLineNumber < b.startLineNumber || (a.endLineNumber === b.startLineNumber && a.endColumn <= b.startColumn)) {\n return false;\n }\n // Check if `b` is before `a`\n if (b.endLineNumber < a.startLineNumber || (b.endLineNumber === a.startLineNumber && b.endColumn <= a.startColumn)) {\n return false;\n }\n // These ranges must intersect\n return true;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the startPosition and then on the endPosition\n */\n static compareRangesUsingStarts(a, b) {\n if (a && b) {\n const aStartLineNumber = a.startLineNumber | 0;\n const bStartLineNumber = b.startLineNumber | 0;\n if (aStartLineNumber === bStartLineNumber) {\n const aStartColumn = a.startColumn | 0;\n const bStartColumn = b.startColumn | 0;\n if (aStartColumn === bStartColumn) {\n const aEndLineNumber = a.endLineNumber | 0;\n const bEndLineNumber = b.endLineNumber | 0;\n if (aEndLineNumber === bEndLineNumber) {\n const aEndColumn = a.endColumn | 0;\n const bEndColumn = b.endColumn | 0;\n return aEndColumn - bEndColumn;\n }\n return aEndLineNumber - bEndLineNumber;\n }\n return aStartColumn - bStartColumn;\n }\n return aStartLineNumber - bStartLineNumber;\n }\n const aExists = (a ? 1 : 0);\n const bExists = (b ? 1 : 0);\n return aExists - bExists;\n }\n /**\n * A function that compares ranges, useful for sorting ranges\n * It will first compare ranges on the endPosition and then on the startPosition\n */\n static compareRangesUsingEnds(a, b) {\n if (a.endLineNumber === b.endLineNumber) {\n if (a.endColumn === b.endColumn) {\n if (a.startLineNumber === b.startLineNumber) {\n return a.startColumn - b.startColumn;\n }\n return a.startLineNumber - b.startLineNumber;\n }\n return a.endColumn - b.endColumn;\n }\n return a.endLineNumber - b.endLineNumber;\n }\n /**\n * Test if the range spans multiple lines.\n */\n static spansMultipleLines(range) {\n return range.endLineNumber > range.startLineNumber;\n }\n toJSON() {\n return this;\n }\n}\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} properties`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxProperties\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `Object.keys(${data}).length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitProperties.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { assertFn } from '../assert.js';\nimport { DisposableStore, markAsDisposed, toDisposable, trackDisposable } from '../lifecycle.js';\nimport { DebugNameData } from './debugName.js';\nimport { getLogger } from './logging.js';\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nexport function autorun(fn) {\n return new AutorunObserver(new DebugNameData(undefined, undefined, fn), fn, undefined, undefined);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n */\nexport function autorunOpts(options, fn) {\n var _a;\n return new AutorunObserver(new DebugNameData(options.owner, options.debugName, (_a = options.debugReferenceFn) !== null && _a !== void 0 ? _a : fn), fn, undefined, undefined);\n}\n/**\n * Runs immediately and whenever a transaction ends and an observed observable changed.\n * {@link fn} should start with a JS Doc using `@description` to name the autorun.\n *\n * Use `createEmptyChangeSummary` to create a \"change summary\" that can collect the changes.\n * Use `handleChange` to add a reported change to the change summary.\n * The run function is given the last change summary.\n * The change summary is discarded after the run function was called.\n *\n * @see autorun\n */\nexport function autorunHandleChanges(options, fn) {\n var _a;\n return new AutorunObserver(new DebugNameData(options.owner, options.debugName, (_a = options.debugReferenceFn) !== null && _a !== void 0 ? _a : fn), fn, options.createEmptyChangeSummary, options.handleChange);\n}\n/**\n * @see autorun (but with a disposable store that is cleared before the next run or on dispose)\n */\nexport function autorunWithStore(fn) {\n const store = new DisposableStore();\n const disposable = autorunOpts({\n owner: undefined,\n debugName: undefined,\n debugReferenceFn: fn,\n }, reader => {\n store.clear();\n fn(reader, store);\n });\n return toDisposable(() => {\n disposable.dispose();\n store.dispose();\n });\n}\nexport class AutorunObserver {\n get debugName() {\n var _a;\n return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : '(anonymous)';\n }\n constructor(_debugNameData, _runFn, createChangeSummary, _handleChange) {\n var _a, _b;\n this._debugNameData = _debugNameData;\n this._runFn = _runFn;\n this.createChangeSummary = createChangeSummary;\n this._handleChange = _handleChange;\n this.state = 2 /* AutorunState.stale */;\n this.updateCount = 0;\n this.disposed = false;\n this.dependencies = new Set();\n this.dependenciesToBeRemoved = new Set();\n this.changeSummary = (_a = this.createChangeSummary) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = getLogger()) === null || _b === void 0 ? void 0 : _b.handleAutorunCreated(this);\n this._runIfNeeded();\n trackDisposable(this);\n }\n dispose() {\n this.disposed = true;\n for (const o of this.dependencies) {\n o.removeObserver(this);\n }\n this.dependencies.clear();\n markAsDisposed(this);\n }\n _runIfNeeded() {\n var _a, _b, _c;\n if (this.state === 3 /* AutorunState.upToDate */) {\n return;\n }\n const emptySet = this.dependenciesToBeRemoved;\n this.dependenciesToBeRemoved = this.dependencies;\n this.dependencies = emptySet;\n this.state = 3 /* AutorunState.upToDate */;\n const isDisposed = this.disposed;\n try {\n if (!isDisposed) {\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleAutorunTriggered(this);\n const changeSummary = this.changeSummary;\n this.changeSummary = (_b = this.createChangeSummary) === null || _b === void 0 ? void 0 : _b.call(this);\n this._runFn(this, changeSummary);\n }\n }\n finally {\n if (!isDisposed) {\n (_c = getLogger()) === null || _c === void 0 ? void 0 : _c.handleAutorunFinished(this);\n }\n // We don't want our observed observables to think that they are (not even temporarily) not being observed.\n // Thus, we only unsubscribe from observables that are definitely not read anymore.\n for (const o of this.dependenciesToBeRemoved) {\n o.removeObserver(this);\n }\n this.dependenciesToBeRemoved.clear();\n }\n }\n toString() {\n return `Autorun<${this.debugName}>`;\n }\n // IObserver implementation\n beginUpdate() {\n if (this.state === 3 /* AutorunState.upToDate */) {\n this.state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n this.updateCount++;\n }\n endUpdate() {\n if (this.updateCount === 1) {\n do {\n if (this.state === 1 /* AutorunState.dependenciesMightHaveChanged */) {\n this.state = 3 /* AutorunState.upToDate */;\n for (const d of this.dependencies) {\n d.reportChanges();\n if (this.state === 2 /* AutorunState.stale */) {\n // The other dependencies will refresh on demand\n break;\n }\n }\n }\n this._runIfNeeded();\n } while (this.state !== 3 /* AutorunState.upToDate */);\n }\n this.updateCount--;\n assertFn(() => this.updateCount >= 0);\n }\n handlePossibleChange(observable) {\n if (this.state === 3 /* AutorunState.upToDate */ && this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n this.state = 1 /* AutorunState.dependenciesMightHaveChanged */;\n }\n }\n handleChange(observable, change) {\n if (this.dependencies.has(observable) && !this.dependenciesToBeRemoved.has(observable)) {\n const shouldReact = this._handleChange ? this._handleChange({\n changedObservable: observable,\n change,\n didChange: (o) => o === observable,\n }, this.changeSummary) : true;\n if (shouldReact) {\n this.state = 2 /* AutorunState.stale */;\n }\n }\n }\n // IReader implementation\n readObservable(observable) {\n // In case the run action disposes the autorun\n if (this.disposed) {\n return observable.get();\n }\n observable.addObserver(this);\n const value = observable.get();\n this.dependencies.add(observable);\n this.dependenciesToBeRemoved.delete(observable);\n return value;\n }\n}\n(function (autorun) {\n autorun.Observer = AutorunObserver;\n})(autorun || (autorun = {}));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { autorun } from './autorun.js';\nimport { CancellationError } from '../errors.js';\nexport function waitForState(observable, predicate, isError, cancellationToken) {\n if (!predicate) {\n predicate = state => state !== null && state !== undefined;\n }\n return new Promise((resolve, reject) => {\n let isImmediateRun = true;\n let shouldDispose = false;\n const stateObs = observable.map(state => {\n /** @description waitForState.state */\n return {\n isFinished: predicate(state),\n error: isError ? isError(state) : false,\n state\n };\n });\n const d = autorun(reader => {\n /** @description waitForState */\n const { isFinished, error, state } = stateObs.read(reader);\n if (isFinished || error) {\n if (isImmediateRun) {\n // The variable `d` is not initialized yet\n shouldDispose = true;\n }\n else {\n d.dispose();\n }\n if (error) {\n reject(error === true ? state : error);\n }\n else {\n resolve(state);\n }\n }\n });\n if (cancellationToken) {\n const dc = cancellationToken.onCancellationRequested(() => {\n d.dispose();\n dc.dispose();\n reject(new CancellationError());\n });\n if (cancellationToken.isCancellationRequested) {\n d.dispose();\n dc.dispose();\n reject(new CancellationError());\n return;\n }\n }\n isImmediateRun = false;\n if (shouldDispose) {\n d.dispose();\n }\n });\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport { observableValue, disposableObservableValue, transaction, subtransaction } from './observableInternal/base.js';\nexport { derived, derivedOpts, derivedHandleChanges, derivedWithStore } from './observableInternal/derived.js';\nexport { autorun, autorunHandleChanges, autorunWithStore, autorunOpts } from './observableInternal/autorun.js';\nexport { constObservable, derivedObservableWithCache, derivedObservableWithWritableCache, keepObserved, recomputeInitiallyAndOnChange, observableFromEvent, observableSignal, observableSignalFromEvent } from './observableInternal/utils.js';\nexport { waitForState } from './observableInternal/promise.js';\nimport { ConsoleObservableLogger, setLogger } from './observableInternal/logging.js';\n// Remove \"//\" in the next line to enable logging\nconst enableLogging = false;\nif (enableLogging) {\n setLogger(new ConsoleObservableLogger());\n}\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { illegalArgument, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { Range } from '../../../common/core/range.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DefaultDocumentColorProvider } from './defaultDocumentColorProvider.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nexport async function getColors(colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled = true) {\n return _findColorData(new ColorDataCollector(), colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled);\n}\nexport function getColorPresentations(model, colorInfo, provider, token) {\n return Promise.resolve(provider.provideColorPresentations(model, colorInfo, token));\n}\nclass ColorDataCollector {\n constructor() { }\n async compute(provider, model, token, colors) {\n const documentColors = await provider.provideDocumentColors(model, token);\n if (Array.isArray(documentColors)) {\n for (const colorInfo of documentColors) {\n colors.push({ colorInfo, provider });\n }\n }\n return Array.isArray(documentColors);\n }\n}\nclass ExtColorDataCollector {\n constructor() { }\n async compute(provider, model, token, colors) {\n const documentColors = await provider.provideDocumentColors(model, token);\n if (Array.isArray(documentColors)) {\n for (const colorInfo of documentColors) {\n colors.push({ range: colorInfo.range, color: [colorInfo.color.red, colorInfo.color.green, colorInfo.color.blue, colorInfo.color.alpha] });\n }\n }\n return Array.isArray(documentColors);\n }\n}\nclass ColorPresentationsCollector {\n constructor(colorInfo) {\n this.colorInfo = colorInfo;\n }\n async compute(provider, model, _token, colors) {\n const documentColors = await provider.provideColorPresentations(model, this.colorInfo, CancellationToken.None);\n if (Array.isArray(documentColors)) {\n colors.push(...documentColors);\n }\n return Array.isArray(documentColors);\n }\n}\nasync function _findColorData(collector, colorProviderRegistry, model, token, isDefaultColorDecoratorsEnabled) {\n let validDocumentColorProviderFound = false;\n let defaultProvider;\n const colorData = [];\n const documentColorProviders = colorProviderRegistry.ordered(model);\n for (let i = documentColorProviders.length - 1; i >= 0; i--) {\n const provider = documentColorProviders[i];\n if (provider instanceof DefaultDocumentColorProvider) {\n defaultProvider = provider;\n }\n else {\n try {\n if (await collector.compute(provider, model, token, colorData)) {\n validDocumentColorProviderFound = true;\n }\n }\n catch (e) {\n onUnexpectedExternalError(e);\n }\n }\n }\n if (validDocumentColorProviderFound) {\n return colorData;\n }\n if (defaultProvider && isDefaultColorDecoratorsEnabled) {\n await collector.compute(defaultProvider, model, token, colorData);\n return colorData;\n }\n return [];\n}\nfunction _setupColorCommand(accessor, resource) {\n const { colorProvider: colorProviderRegistry } = accessor.get(ILanguageFeaturesService);\n const model = accessor.get(IModelService).getModel(resource);\n if (!model) {\n throw illegalArgument();\n }\n const isDefaultColorDecoratorsEnabled = accessor.get(IConfigurationService).getValue('editor.defaultColorDecorators', { resource });\n return { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled };\n}\nCommandsRegistry.registerCommand('_executeDocumentColorProvider', function (accessor, ...args) {\n const [resource] = args;\n if (!(resource instanceof URI)) {\n throw illegalArgument();\n }\n const { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled } = _setupColorCommand(accessor, resource);\n return _findColorData(new ExtColorDataCollector(), colorProviderRegistry, model, CancellationToken.None, isDefaultColorDecoratorsEnabled);\n});\nCommandsRegistry.registerCommand('_executeColorPresentationProvider', function (accessor, ...args) {\n const [color, context] = args;\n const { uri, range } = context;\n if (!(uri instanceof URI) || !Array.isArray(color) || color.length !== 4 || !Range.isIRange(range)) {\n throw illegalArgument();\n }\n const { model, colorProviderRegistry, isDefaultColorDecoratorsEnabled } = _setupColorCommand(accessor, uri);\n const [red, green, blue, alpha] = color;\n return _findColorData(new ColorPresentationsCollector({ range: range, color: { red, green, blue, alpha } }), colorProviderRegistry, model, CancellationToken.None, isDefaultColorDecoratorsEnabled);\n});\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { StandardKeyboardEvent } from '../../../../base/browser/keyboardEvent.js';\nimport * as aria from '../../../../base/browser/ui/aria/aria.js';\nimport { getBaseLayerHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../../../../base/browser/ui/hover/hoverDelegateFactory.js';\nimport { renderIcon } from '../../../../base/browser/ui/iconLabel/iconLabels.js';\nimport { List } from '../../../../base/browser/ui/list/listWidget.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { DeferredPromise, raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { assertType, isDefined } from '../../../../base/common/types.js';\nimport './renameWidget.css';\nimport * as domFontInfo from '../../../browser/config/domFontInfo.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { NewSymbolNameTag, NewSymbolNameTriggerKind } from '../../../common/languages.js';\nimport * as nls from '../../../../nls.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { getListStyles } from '../../../../platform/theme/browser/defaultStyles.js';\nimport { editorWidgetBackground, inputBackground, inputBorder, inputForeground, quickInputListFocusBackground, quickInputListFocusForeground, widgetBorder, widgetShadow } from '../../../../platform/theme/common/colorRegistry.js';\nimport { IThemeService } from '../../../../platform/theme/common/themeService.js';\n/** for debugging */\nconst _sticky = false;\nexport const CONTEXT_RENAME_INPUT_VISIBLE = new RawContextKey('renameInputVisible', false, localize('renameInputVisible', \"Whether the rename input widget is visible\"));\nexport const CONTEXT_RENAME_INPUT_FOCUSED = new RawContextKey('renameInputFocused', false, localize('renameInputFocused', \"Whether the rename input widget is focused\"));\nlet RenameWidget = class RenameWidget {\n constructor(_editor, _acceptKeybindings, _themeService, _keybindingService, contextKeyService, _logService) {\n this._editor = _editor;\n this._acceptKeybindings = _acceptKeybindings;\n this._themeService = _themeService;\n this._keybindingService = _keybindingService;\n this._logService = _logService;\n // implement IContentWidget\n this.allowEditorOverflow = true;\n this._disposables = new DisposableStore();\n this._visibleContextKey = CONTEXT_RENAME_INPUT_VISIBLE.bindTo(contextKeyService);\n this._isEditingRenameCandidate = false;\n this._nRenameSuggestionsInvocations = 0;\n this._hadAutomaticRenameSuggestionsInvocation = false;\n this._candidates = new Set();\n this._beforeFirstInputFieldEditSW = new StopWatch();\n this._inputWithButton = new InputWithButton();\n this._disposables.add(this._inputWithButton);\n this._editor.addContentWidget(this);\n this._disposables.add(this._editor.onDidChangeConfiguration(e => {\n if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n this._updateFont();\n }\n }));\n this._disposables.add(_themeService.onDidColorThemeChange(this._updateStyles, this));\n }\n dispose() {\n this._disposables.dispose();\n this._editor.removeContentWidget(this);\n }\n getId() {\n return '__renameInputWidget';\n }\n getDomNode() {\n if (!this._domNode) {\n this._domNode = document.createElement('div');\n this._domNode.className = 'monaco-editor rename-box';\n this._domNode.appendChild(this._inputWithButton.domNode);\n this._renameCandidateListView = this._disposables.add(new RenameCandidateListView(this._domNode, {\n fontInfo: this._editor.getOption(50 /* EditorOption.fontInfo */),\n onFocusChange: (newSymbolName) => {\n this._inputWithButton.input.value = newSymbolName;\n this._isEditingRenameCandidate = false; // @ulugbekna: reset\n },\n onSelectionChange: () => {\n this._isEditingRenameCandidate = false; // @ulugbekna: because user picked a rename suggestion\n this.acceptInput(false); // we don't allow preview with mouse click for now\n }\n }));\n this._disposables.add(this._inputWithButton.onDidInputChange(() => {\n var _a, _b, _c, _d;\n if (((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusedCandidate) !== undefined) {\n this._isEditingRenameCandidate = true;\n }\n (_b = this._timeBeforeFirstInputFieldEdit) !== null && _b !== void 0 ? _b : (this._timeBeforeFirstInputFieldEdit = this._beforeFirstInputFieldEditSW.elapsed());\n if (((_c = this._renameCandidateProvidersCts) === null || _c === void 0 ? void 0 : _c.token.isCancellationRequested) === false) {\n this._renameCandidateProvidersCts.cancel();\n }\n (_d = this._renameCandidateListView) === null || _d === void 0 ? void 0 : _d.clearFocus();\n }));\n this._label = document.createElement('div');\n this._label.className = 'rename-label';\n this._domNode.appendChild(this._label);\n this._updateFont();\n this._updateStyles(this._themeService.getColorTheme());\n }\n return this._domNode;\n }\n _updateStyles(theme) {\n var _a, _b, _c, _d, _e;\n if (!this._domNode) {\n return;\n }\n const widgetShadowColor = theme.getColor(widgetShadow);\n const widgetBorderColor = theme.getColor(widgetBorder);\n this._domNode.style.backgroundColor = String((_a = theme.getColor(editorWidgetBackground)) !== null && _a !== void 0 ? _a : '');\n this._domNode.style.boxShadow = widgetShadowColor ? ` 0 0 8px 2px ${widgetShadowColor}` : '';\n this._domNode.style.border = widgetBorderColor ? `1px solid ${widgetBorderColor}` : '';\n this._domNode.style.color = String((_b = theme.getColor(inputForeground)) !== null && _b !== void 0 ? _b : '');\n const border = theme.getColor(inputBorder);\n this._inputWithButton.domNode.style.backgroundColor = String((_c = theme.getColor(inputBackground)) !== null && _c !== void 0 ? _c : '');\n this._inputWithButton.input.style.backgroundColor = String((_d = theme.getColor(inputBackground)) !== null && _d !== void 0 ? _d : '');\n this._inputWithButton.domNode.style.borderWidth = border ? '1px' : '0px';\n this._inputWithButton.domNode.style.borderStyle = border ? 'solid' : 'none';\n this._inputWithButton.domNode.style.borderColor = (_e = border === null || border === void 0 ? void 0 : border.toString()) !== null && _e !== void 0 ? _e : 'none';\n }\n _updateFont() {\n if (this._domNode === undefined) {\n return;\n }\n assertType(this._label !== undefined, 'RenameWidget#_updateFont: _label must not be undefined given _domNode is defined');\n this._editor.applyFontInfo(this._inputWithButton.input);\n const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n this._label.style.fontSize = `${this._computeLabelFontSize(fontInfo.fontSize)}px`;\n }\n _computeLabelFontSize(editorFontSize) {\n return editorFontSize * 0.8;\n }\n getPosition() {\n if (!this._visible) {\n return null;\n }\n if (!this._editor.hasModel() || // @ulugbekna: shouldn't happen\n !this._editor.getDomNode() // @ulugbekna: can happen during tests based on suggestWidget's similar predicate check\n ) {\n return null;\n }\n const bodyBox = dom.getClientArea(this.getDomNode().ownerDocument.body);\n const editorBox = dom.getDomNodePagePosition(this._editor.getDomNode());\n const cursorBoxTop = this._getTopForPosition();\n this._nPxAvailableAbove = cursorBoxTop + editorBox.top;\n this._nPxAvailableBelow = bodyBox.height - this._nPxAvailableAbove;\n const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n const { totalHeight: candidateViewHeight } = RenameCandidateView.getLayoutInfo({ lineHeight });\n const positionPreference = this._nPxAvailableBelow > candidateViewHeight * 6 /* approximate # of candidates to fit in (inclusive of rename input box & rename label) */\n ? [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */]\n : [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */];\n return {\n position: this._position,\n preference: positionPreference,\n };\n }\n beforeRender() {\n var _a, _b;\n const [accept, preview] = this._acceptKeybindings;\n this._label.innerText = localize({ key: 'label', comment: ['placeholders are keybindings, e.g \"F2 to Rename, Shift+F2 to Preview\"'] }, \"{0} to Rename, {1} to Preview\", (_a = this._keybindingService.lookupKeybinding(accept)) === null || _a === void 0 ? void 0 : _a.getLabel(), (_b = this._keybindingService.lookupKeybinding(preview)) === null || _b === void 0 ? void 0 : _b.getLabel());\n this._domNode.style.minWidth = `200px`; // to prevent from widening when candidates come in\n return null;\n }\n afterRender(position) {\n this._trace('invoking afterRender, position: ', position ? 'not null' : 'null');\n if (position === null) {\n // cancel rename when input widget isn't rendered anymore\n this.cancelInput(true, 'afterRender (because position is null)');\n return;\n }\n if (!this._editor.hasModel() || // shouldn't happen\n !this._editor.getDomNode() // can happen during tests based on suggestWidget's similar predicate check\n ) {\n return;\n }\n assertType(this._renameCandidateListView);\n assertType(this._nPxAvailableAbove !== undefined);\n assertType(this._nPxAvailableBelow !== undefined);\n const inputBoxHeight = dom.getTotalHeight(this._inputWithButton.domNode);\n const labelHeight = dom.getTotalHeight(this._label);\n let totalHeightAvailable;\n if (position === 2 /* ContentWidgetPositionPreference.BELOW */) {\n totalHeightAvailable = this._nPxAvailableBelow;\n }\n else {\n totalHeightAvailable = this._nPxAvailableAbove;\n }\n this._renameCandidateListView.layout({\n height: totalHeightAvailable - labelHeight - inputBoxHeight,\n width: dom.getTotalWidth(this._inputWithButton.domNode),\n });\n }\n acceptInput(wantsPreview) {\n var _a;\n this._trace(`invoking acceptInput`);\n (_a = this._currentAcceptInput) === null || _a === void 0 ? void 0 : _a.call(this, wantsPreview);\n }\n cancelInput(focusEditor, caller) {\n var _a;\n this._trace(`invoking cancelInput, caller: ${caller}, _currentCancelInput: ${this._currentAcceptInput ? 'not undefined' : 'undefined'}`);\n (_a = this._currentCancelInput) === null || _a === void 0 ? void 0 : _a.call(this, focusEditor);\n }\n focusNextRenameSuggestion() {\n var _a;\n if (!((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusNext())) {\n this._inputWithButton.input.value = this._currentName;\n }\n }\n focusPreviousRenameSuggestion() {\n var _a;\n if (!((_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.focusPrevious())) {\n this._inputWithButton.input.value = this._currentName;\n }\n }\n /**\n * @param requestRenameCandidates is `undefined` when there are no rename suggestion providers\n */\n getInput(where, currentName, supportPreview, requestRenameCandidates, cts) {\n const { start: selectionStart, end: selectionEnd } = this._getSelection(where, currentName);\n this._renameCts = cts;\n const disposeOnDone = new DisposableStore();\n this._nRenameSuggestionsInvocations = 0;\n this._hadAutomaticRenameSuggestionsInvocation = false;\n if (requestRenameCandidates === undefined) {\n this._inputWithButton.button.style.display = 'none';\n }\n else {\n this._inputWithButton.button.style.display = 'flex';\n this._requestRenameCandidatesOnce = requestRenameCandidates;\n this._requestRenameCandidates(currentName, false);\n disposeOnDone.add(dom.addDisposableListener(this._inputWithButton.button, 'click', () => this._requestRenameCandidates(currentName, true)));\n disposeOnDone.add(dom.addDisposableListener(this._inputWithButton.button, dom.EventType.KEY_DOWN, (e) => {\n const keyEvent = new StandardKeyboardEvent(e);\n if (keyEvent.equals(3 /* KeyCode.Enter */) || keyEvent.equals(10 /* KeyCode.Space */)) {\n keyEvent.stopPropagation();\n keyEvent.preventDefault();\n this._requestRenameCandidates(currentName, true);\n }\n }));\n }\n this._isEditingRenameCandidate = false;\n this._domNode.classList.toggle('preview', supportPreview);\n this._position = new Position(where.startLineNumber, where.startColumn);\n this._currentName = currentName;\n this._inputWithButton.input.value = currentName;\n this._inputWithButton.input.setAttribute('selectionStart', selectionStart.toString());\n this._inputWithButton.input.setAttribute('selectionEnd', selectionEnd.toString());\n this._inputWithButton.input.size = Math.max((where.endColumn - where.startColumn) * 1.1, 20); // determines width\n this._beforeFirstInputFieldEditSW.reset();\n disposeOnDone.add(toDisposable(() => {\n this._renameCts = undefined;\n cts.dispose(true);\n })); // @ulugbekna: this may result in `this.cancelInput` being called twice, but it should be safe since we set it to undefined after 1st call\n disposeOnDone.add(toDisposable(() => {\n if (this._renameCandidateProvidersCts !== undefined) {\n this._renameCandidateProvidersCts.dispose(true);\n this._renameCandidateProvidersCts = undefined;\n }\n }));\n disposeOnDone.add(toDisposable(() => this._candidates.clear()));\n const inputResult = new DeferredPromise();\n inputResult.p.finally(() => {\n disposeOnDone.dispose();\n this._hide();\n });\n this._currentCancelInput = (focusEditor) => {\n var _a;\n this._trace('invoking _currentCancelInput');\n this._currentAcceptInput = undefined;\n this._currentCancelInput = undefined;\n // fixme session cleanup\n (_a = this._renameCandidateListView) === null || _a === void 0 ? void 0 : _a.clearCandidates();\n inputResult.complete(focusEditor);\n return true;\n };\n this._currentAcceptInput = (wantsPreview) => {\n this._trace('invoking _currentAcceptInput');\n assertType(this._renameCandidateListView !== undefined);\n const nRenameSuggestions = this._renameCandidateListView.nCandidates;\n let newName;\n let source;\n const focusedCandidate = this._renameCandidateListView.focusedCandidate;\n if (focusedCandidate !== undefined) {\n this._trace('using new name from renameSuggestion');\n newName = focusedCandidate;\n source = { k: 'renameSuggestion' };\n }\n else {\n this._trace('using new name from inputField');\n newName = this._inputWithButton.input.value;\n source = this._isEditingRenameCandidate ? { k: 'userEditedRenameSuggestion' } : { k: 'inputField' };\n }\n if (newName === currentName || newName.trim().length === 0 /* is just whitespace */) {\n this.cancelInput(true, '_currentAcceptInput (because newName === value || newName.trim().length === 0)');\n return;\n }\n this._currentAcceptInput = undefined;\n this._currentCancelInput = undefined;\n this._renameCandidateListView.clearCandidates();\n // fixme session cleanup\n inputResult.complete({\n newName,\n wantsPreview: supportPreview && wantsPreview,\n stats: {\n source,\n nRenameSuggestions,\n timeBeforeFirstInputFieldEdit: this._timeBeforeFirstInputFieldEdit,\n nRenameSuggestionsInvocations: this._nRenameSuggestionsInvocations,\n hadAutomaticRenameSuggestionsInvocation: this._hadAutomaticRenameSuggestionsInvocation,\n }\n });\n };\n disposeOnDone.add(cts.token.onCancellationRequested(() => this.cancelInput(true, 'cts.token.onCancellationRequested')));\n if (!_sticky) {\n disposeOnDone.add(this._editor.onDidBlurEditorWidget(() => { var _a; return this.cancelInput(!((_a = this._domNode) === null || _a === void 0 ? void 0 : _a.ownerDocument.hasFocus()), 'editor.onDidBlurEditorWidget'); }));\n }\n this._show();\n return inputResult.p;\n }\n _requestRenameCandidates(currentName, isManuallyTriggered) {\n if (this._requestRenameCandidatesOnce === undefined) {\n return;\n }\n if (this._renameCandidateProvidersCts !== undefined) {\n this._renameCandidateProvidersCts.dispose(true);\n }\n assertType(this._renameCts);\n if (this._inputWithButton.buttonState !== 'stop') {\n this._renameCandidateProvidersCts = new CancellationTokenSource();\n const triggerKind = isManuallyTriggered ? NewSymbolNameTriggerKind.Invoke : NewSymbolNameTriggerKind.Automatic;\n const candidates = this._requestRenameCandidatesOnce(triggerKind, this._renameCandidateProvidersCts.token);\n if (candidates.length === 0) {\n this._inputWithButton.setSparkleButton();\n return;\n }\n if (!isManuallyTriggered) {\n this._hadAutomaticRenameSuggestionsInvocation = true;\n }\n this._nRenameSuggestionsInvocations += 1;\n this._inputWithButton.setStopButton();\n this._updateRenameCandidates(candidates, currentName, this._renameCts.token);\n }\n }\n /**\n * This allows selecting only part of the symbol name in the input field based on the selection in the editor\n */\n _getSelection(where, currentName) {\n assertType(this._editor.hasModel());\n const selection = this._editor.getSelection();\n let start = 0;\n let end = currentName.length;\n if (!Range.isEmpty(selection) && !Range.spansMultipleLines(selection) && Range.containsRange(where, selection)) {\n start = Math.max(0, selection.startColumn - where.startColumn);\n end = Math.min(where.endColumn, selection.endColumn) - where.startColumn;\n }\n return { start, end };\n }\n _show() {\n this._trace('invoking _show');\n this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber, 0 /* ScrollType.Smooth */);\n this._visible = true;\n this._visibleContextKey.set(true);\n this._editor.layoutContentWidget(this);\n // TODO@ulugbekna: could this be simply run in `afterRender`?\n setTimeout(() => {\n this._inputWithButton.input.focus();\n this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute('selectionStart')), parseInt(this._inputWithButton.input.getAttribute('selectionEnd')));\n }, 100);\n }\n async _updateRenameCandidates(candidates, currentName, token) {\n const trace = (...args) => this._trace('_updateRenameCandidates', ...args);\n trace('start');\n const namesListResults = await raceCancellation(Promise.allSettled(candidates), token);\n this._inputWithButton.setSparkleButton();\n if (namesListResults === undefined) {\n trace('returning early - received updateRenameCandidates results - undefined');\n return;\n }\n const newNames = namesListResults.flatMap(namesListResult => namesListResult.status === 'fulfilled' && isDefined(namesListResult.value)\n ? namesListResult.value\n : []);\n trace(`received updateRenameCandidates results - total (unfiltered) ${newNames.length} candidates.`);\n // deduplicate and filter out the current value\n const distinctNames = arrays.distinct(newNames, v => v.newSymbolName);\n trace(`distinct candidates - ${distinctNames.length} candidates.`);\n const validDistinctNames = distinctNames.filter(({ newSymbolName }) => newSymbolName.trim().length > 0 && newSymbolName !== this._inputWithButton.input.value && newSymbolName !== currentName && !this._candidates.has(newSymbolName));\n trace(`valid distinct candidates - ${newNames.length} candidates.`);\n validDistinctNames.forEach(n => this._candidates.add(n.newSymbolName));\n if (validDistinctNames.length < 1) {\n trace('returning early - no valid distinct candidates');\n return;\n }\n // show the candidates\n trace('setting candidates');\n this._renameCandidateListView.setCandidates(validDistinctNames);\n // ask editor to re-layout given that the widget is now of a different size after rendering rename candidates\n trace('asking editor to re-layout');\n this._editor.layoutContentWidget(this);\n }\n _hide() {\n this._trace('invoked _hide');\n this._visible = false;\n this._visibleContextKey.reset();\n this._editor.layoutContentWidget(this);\n }\n _getTopForPosition() {\n const visibleRanges = this._editor.getVisibleRanges();\n let firstLineInViewport;\n if (visibleRanges.length > 0) {\n firstLineInViewport = visibleRanges[0].startLineNumber;\n }\n else {\n this._logService.warn('RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty');\n firstLineInViewport = Math.max(1, this._position.lineNumber - 5); // @ulugbekna: fallback to current line minus 5\n }\n return this._editor.getTopForLineNumber(this._position.lineNumber) - this._editor.getTopForLineNumber(firstLineInViewport);\n }\n _trace(...args) {\n this._logService.trace('RenameWidget', ...args);\n }\n};\nRenameWidget = __decorate([\n __param(2, IThemeService),\n __param(3, IKeybindingService),\n __param(4, IContextKeyService),\n __param(5, ILogService)\n], RenameWidget);\nexport { RenameWidget };\nclass RenameCandidateListView {\n // FIXME@ulugbekna: rewrite using event emitters\n constructor(parent, opts) {\n this._disposables = new DisposableStore();\n this._availableHeight = 0;\n this._minimumWidth = 0;\n this._lineHeight = opts.fontInfo.lineHeight;\n this._typicalHalfwidthCharacterWidth = opts.fontInfo.typicalHalfwidthCharacterWidth;\n this._listContainer = document.createElement('div');\n this._listContainer.className = 'rename-box rename-candidate-list-container';\n parent.appendChild(this._listContainer);\n this._listWidget = RenameCandidateListView._createListWidget(this._listContainer, this._candidateViewHeight, opts.fontInfo);\n this._listWidget.onDidChangeFocus(e => {\n if (e.elements.length === 1) {\n opts.onFocusChange(e.elements[0].newSymbolName);\n }\n }, this._disposables);\n this._listWidget.onDidChangeSelection(e => {\n if (e.elements.length === 1) {\n opts.onSelectionChange();\n }\n }, this._disposables);\n this._disposables.add(this._listWidget.onDidBlur(e => {\n this._listWidget.setFocus([]);\n }));\n this._listWidget.style(getListStyles({\n listInactiveFocusForeground: quickInputListFocusForeground,\n listInactiveFocusBackground: quickInputListFocusBackground,\n }));\n }\n dispose() {\n this._listWidget.dispose();\n this._disposables.dispose();\n }\n // height - max height allowed by parent element\n layout({ height, width }) {\n this._availableHeight = height;\n this._minimumWidth = width;\n }\n setCandidates(candidates) {\n // insert candidates into list widget\n this._listWidget.splice(0, 0, candidates);\n // adjust list widget layout\n const height = this._pickListHeight(this._listWidget.length);\n const width = this._pickListWidth(candidates);\n this._listWidget.layout(height, width);\n // adjust list container layout\n this._listContainer.style.height = `${height}px`;\n this._listContainer.style.width = `${width}px`;\n aria.status(localize('renameSuggestionsReceivedAria', \"Received {0} rename suggestions\", candidates.length));\n }\n clearCandidates() {\n this._listContainer.style.height = '0px';\n this._listContainer.style.width = '0px';\n this._listWidget.splice(0, this._listWidget.length, []);\n }\n get nCandidates() {\n return this._listWidget.length;\n }\n get focusedCandidate() {\n if (this._listWidget.length === 0) {\n return;\n }\n const selectedElement = this._listWidget.getSelectedElements()[0];\n if (selectedElement !== undefined) {\n return selectedElement.newSymbolName;\n }\n const focusedElement = this._listWidget.getFocusedElements()[0];\n if (focusedElement !== undefined) {\n return focusedElement.newSymbolName;\n }\n return;\n }\n focusNext() {\n if (this._listWidget.length === 0) {\n return false;\n }\n const focusedIxs = this._listWidget.getFocus();\n if (focusedIxs.length === 0) {\n this._listWidget.focusFirst();\n this._listWidget.reveal(0);\n return true;\n }\n else {\n if (focusedIxs[0] === this._listWidget.length - 1) {\n this._listWidget.setFocus([]);\n this._listWidget.reveal(0); // @ulugbekna: without this, it seems like focused element is obstructed\n return false;\n }\n else {\n this._listWidget.focusNext();\n const focused = this._listWidget.getFocus()[0];\n this._listWidget.reveal(focused);\n return true;\n }\n }\n }\n /**\n * @returns true if focus is moved to previous element\n */\n focusPrevious() {\n if (this._listWidget.length === 0) {\n return false;\n }\n const focusedIxs = this._listWidget.getFocus();\n if (focusedIxs.length === 0) {\n this._listWidget.focusLast();\n const focused = this._listWidget.getFocus()[0];\n this._listWidget.reveal(focused);\n return true;\n }\n else {\n if (focusedIxs[0] === 0) {\n this._listWidget.setFocus([]);\n return false;\n }\n else {\n this._listWidget.focusPrevious();\n const focused = this._listWidget.getFocus()[0];\n this._listWidget.reveal(focused);\n return true;\n }\n }\n }\n clearFocus() {\n this._listWidget.setFocus([]);\n }\n get _candidateViewHeight() {\n const { totalHeight } = RenameCandidateView.getLayoutInfo({ lineHeight: this._lineHeight });\n return totalHeight;\n }\n _pickListHeight(nCandidates) {\n const heightToFitAllCandidates = this._candidateViewHeight * nCandidates;\n const MAX_N_CANDIDATES = 7; // @ulugbekna: max # of candidates we want to show at once\n const height = Math.min(heightToFitAllCandidates, this._availableHeight, this._candidateViewHeight * MAX_N_CANDIDATES);\n return height;\n }\n _pickListWidth(candidates) {\n const longestCandidateWidth = Math.ceil(Math.max(...candidates.map(c => c.newSymbolName.length)) * this._typicalHalfwidthCharacterWidth);\n const width = Math.max(this._minimumWidth, 4 /* padding */ + 16 /* sparkle icon */ + 5 /* margin-left */ + longestCandidateWidth + 10 /* (possibly visible) scrollbar width */ // TODO@ulugbekna: approximate calc - clean this up\n );\n return width;\n }\n static _createListWidget(container, candidateViewHeight, fontInfo) {\n const virtualDelegate = new class {\n getTemplateId(element) {\n return 'candidate';\n }\n getHeight(element) {\n return candidateViewHeight;\n }\n };\n const renderer = new class {\n constructor() {\n this.templateId = 'candidate';\n }\n renderTemplate(container) {\n return new RenameCandidateView(container, fontInfo);\n }\n renderElement(candidate, index, templateData) {\n templateData.populate(candidate);\n }\n disposeTemplate(templateData) {\n templateData.dispose();\n }\n };\n return new List('NewSymbolNameCandidates', container, virtualDelegate, [renderer], {\n keyboardSupport: false, // @ulugbekna: because we handle keyboard events through proper commands & keybinding service, see `rename.ts`\n mouseSupport: true,\n multipleSelectionSupport: false,\n });\n }\n}\nclass InputWithButton {\n constructor() {\n this._onDidInputChange = new Emitter();\n this.onDidInputChange = this._onDidInputChange.event;\n this._disposables = new DisposableStore();\n }\n get domNode() {\n if (!this._domNode) {\n this._domNode = document.createElement('div');\n this._domNode.className = 'rename-input-with-button';\n this._domNode.style.display = 'flex';\n this._domNode.style.flexDirection = 'row';\n this._domNode.style.alignItems = 'center';\n this._inputNode = document.createElement('input');\n this._inputNode.className = 'rename-input';\n this._inputNode.type = 'text';\n this._inputNode.style.border = 'none';\n this._inputNode.setAttribute('aria-label', localize('renameAriaLabel', \"Rename input. Type new name and press Enter to commit.\"));\n this._domNode.appendChild(this._inputNode);\n this._buttonNode = document.createElement('div');\n this._buttonNode.className = 'rename-suggestions-button';\n this._buttonNode.setAttribute('tabindex', '0');\n this._buttonGenHoverText = nls.localize('generateRenameSuggestionsButton', \"Generate new name suggestions\");\n this._buttonCancelHoverText = nls.localize('cancelRenameSuggestionsButton', \"Cancel\");\n this._buttonHover = getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('element'), this._buttonNode, this._buttonGenHoverText);\n this._disposables.add(this._buttonHover);\n this._domNode.appendChild(this._buttonNode);\n // notify if selection changes to cancel request to rename-suggestion providers\n this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.INPUT, () => this._onDidInputChange.fire()));\n this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.KEY_DOWN, (e) => {\n const keyEvent = new StandardKeyboardEvent(e);\n if (keyEvent.keyCode === 15 /* KeyCode.LeftArrow */ || keyEvent.keyCode === 17 /* KeyCode.RightArrow */) {\n this._onDidInputChange.fire();\n }\n }));\n this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.CLICK, () => this._onDidInputChange.fire()));\n // focus \"container\" border instead of input box\n this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.FOCUS, () => {\n this.domNode.style.outlineWidth = '1px';\n this.domNode.style.outlineStyle = 'solid';\n this.domNode.style.outlineOffset = '-1px';\n this.domNode.style.outlineColor = 'var(--vscode-focusBorder)';\n }));\n this._disposables.add(dom.addDisposableListener(this.input, dom.EventType.BLUR, () => {\n this.domNode.style.outline = 'none';\n }));\n }\n return this._domNode;\n }\n get input() {\n assertType(this._inputNode);\n return this._inputNode;\n }\n get button() {\n assertType(this._buttonNode);\n return this._buttonNode;\n }\n get buttonState() {\n return this._buttonState;\n }\n setSparkleButton() {\n var _a, _b;\n this._buttonState = 'sparkle';\n (_a = this._sparkleIcon) !== null && _a !== void 0 ? _a : (this._sparkleIcon = renderIcon(Codicon.sparkle));\n dom.clearNode(this.button);\n this.button.appendChild(this._sparkleIcon);\n this.button.setAttribute('aria-label', 'Generating new name suggestions');\n (_b = this._buttonHover) === null || _b === void 0 ? void 0 : _b.update(this._buttonGenHoverText);\n this.input.focus();\n }\n setStopButton() {\n var _a, _b;\n this._buttonState = 'stop';\n (_a = this._stopIcon) !== null && _a !== void 0 ? _a : (this._stopIcon = renderIcon(Codicon.primitiveSquare));\n dom.clearNode(this.button);\n this.button.appendChild(this._stopIcon);\n this.button.setAttribute('aria-label', 'Cancel generating new name suggestions');\n (_b = this._buttonHover) === null || _b === void 0 ? void 0 : _b.update(this._buttonCancelHoverText);\n this.input.focus();\n }\n dispose() {\n this._disposables.dispose();\n }\n}\nclass RenameCandidateView {\n constructor(parent, fontInfo) {\n this._domNode = document.createElement('div');\n this._domNode.className = 'rename-box rename-candidate';\n this._domNode.style.display = `flex`;\n this._domNode.style.columnGap = `5px`;\n this._domNode.style.alignItems = `center`;\n this._domNode.style.height = `${fontInfo.lineHeight}px`;\n this._domNode.style.padding = `${RenameCandidateView._PADDING}px`;\n // @ulugbekna: needed to keep space when the `icon.style.display` is set to `none`\n const iconContainer = document.createElement('div');\n iconContainer.style.display = `flex`;\n iconContainer.style.alignItems = `center`;\n iconContainer.style.width = iconContainer.style.height = `${fontInfo.lineHeight * 0.8}px`;\n this._domNode.appendChild(iconContainer);\n this._icon = renderIcon(Codicon.sparkle);\n this._icon.style.display = `none`;\n iconContainer.appendChild(this._icon);\n this._label = document.createElement('div');\n domFontInfo.applyFontInfo(this._label, fontInfo);\n this._domNode.appendChild(this._label);\n parent.appendChild(this._domNode);\n }\n populate(value) {\n this._updateIcon(value);\n this._updateLabel(value);\n }\n _updateIcon(value) {\n var _a;\n const isAIGenerated = !!((_a = value.tags) === null || _a === void 0 ? void 0 : _a.includes(NewSymbolNameTag.AIGenerated));\n this._icon.style.display = isAIGenerated ? 'inherit' : 'none';\n }\n _updateLabel(value) {\n this._label.innerText = value.newSymbolName;\n }\n static getLayoutInfo({ lineHeight }) {\n const totalHeight = lineHeight + RenameCandidateView._PADDING * 2 /* top & bottom padding */;\n return { totalHeight };\n }\n dispose() {\n }\n}\nRenameCandidateView._PADDING = 2;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RenameController_1;\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { raceCancellation } from '../../../../base/common/async.js';\nimport { CancellationToken, CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { CancellationError, onUnexpectedError } from '../../../../base/common/errors.js';\nimport { isMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { NewSymbolNameTriggerKind } from '../../../common/languages.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { ITextResourceConfigurationService } from '../../../common/services/textResourceConfiguration.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { MessageController } from '../../message/browser/messageController.js';\nimport * as nls from '../../../../nls.js';\nimport { Action2, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport { Extensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nimport { IEditorProgressService } from '../../../../platform/progress/common/progress.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { CONTEXT_RENAME_INPUT_VISIBLE, RenameWidget } from './renameWidget.js';\nclass RenameSkeleton {\n constructor(model, position, registry) {\n this.model = model;\n this.position = position;\n this._providerRenameIdx = 0;\n this._providers = registry.ordered(model);\n }\n hasProvider() {\n return this._providers.length > 0;\n }\n async resolveRenameLocation(token) {\n const rejects = [];\n for (this._providerRenameIdx = 0; this._providerRenameIdx < this._providers.length; this._providerRenameIdx++) {\n const provider = this._providers[this._providerRenameIdx];\n if (!provider.resolveRenameLocation) {\n break;\n }\n const res = await provider.resolveRenameLocation(this.model, this.position, token);\n if (!res) {\n continue;\n }\n if (res.rejectReason) {\n rejects.push(res.rejectReason);\n continue;\n }\n return res;\n }\n // we are here when no provider prepared a location which means we can\n // just rely on the word under cursor and start with the first provider\n this._providerRenameIdx = 0;\n const word = this.model.getWordAtPosition(this.position);\n if (!word) {\n return {\n range: Range.fromPositions(this.position),\n text: '',\n rejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n };\n }\n return {\n range: new Range(this.position.lineNumber, word.startColumn, this.position.lineNumber, word.endColumn),\n text: word.word,\n rejectReason: rejects.length > 0 ? rejects.join('\\n') : undefined\n };\n }\n async provideRenameEdits(newName, token) {\n return this._provideRenameEdits(newName, this._providerRenameIdx, [], token);\n }\n async _provideRenameEdits(newName, i, rejects, token) {\n const provider = this._providers[i];\n if (!provider) {\n return {\n edits: [],\n rejectReason: rejects.join('\\n')\n };\n }\n const result = await provider.provideRenameEdits(this.model, this.position, newName, token);\n if (!result) {\n return this._provideRenameEdits(newName, i + 1, rejects.concat(nls.localize('no result', \"No result.\")), token);\n }\n else if (result.rejectReason) {\n return this._provideRenameEdits(newName, i + 1, rejects.concat(result.rejectReason), token);\n }\n return result;\n }\n}\nexport async function rename(registry, model, position, newName) {\n const skeleton = new RenameSkeleton(model, position, registry);\n const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n if (loc === null || loc === void 0 ? void 0 : loc.rejectReason) {\n return { edits: [], rejectReason: loc.rejectReason };\n }\n return skeleton.provideRenameEdits(newName, CancellationToken.None);\n}\n// --- register actions and commands\nlet RenameController = RenameController_1 = class RenameController {\n static get(editor) {\n return editor.getContribution(RenameController_1.ID);\n }\n constructor(editor, _instaService, _notificationService, _bulkEditService, _progressService, _logService, _configService, _languageFeaturesService, _telemetryService) {\n this.editor = editor;\n this._instaService = _instaService;\n this._notificationService = _notificationService;\n this._bulkEditService = _bulkEditService;\n this._progressService = _progressService;\n this._logService = _logService;\n this._configService = _configService;\n this._languageFeaturesService = _languageFeaturesService;\n this._telemetryService = _telemetryService;\n this._disposableStore = new DisposableStore();\n this._cts = new CancellationTokenSource();\n this._renameWidget = this._disposableStore.add(this._instaService.createInstance(RenameWidget, this.editor, ['acceptRenameInput', 'acceptRenameInputWithPreview']));\n }\n dispose() {\n this._disposableStore.dispose();\n this._cts.dispose(true);\n }\n async run() {\n var _a, _b;\n const trace = this._logService.trace.bind(this._logService, '[rename]');\n // set up cancellation token to prevent reentrant rename, this\n // is the parent to the resolve- and rename-tokens\n this._cts.dispose(true);\n this._cts = new CancellationTokenSource();\n if (!this.editor.hasModel()) {\n trace('editor has no model');\n return undefined;\n }\n const position = this.editor.getPosition();\n const skeleton = new RenameSkeleton(this.editor.getModel(), position, this._languageFeaturesService.renameProvider);\n if (!skeleton.hasProvider()) {\n trace('skeleton has no provider');\n return undefined;\n }\n // part 1 - resolve rename location\n const cts1 = new EditorStateCancellationTokenSource(this.editor, 4 /* CodeEditorStateFlag.Position */ | 1 /* CodeEditorStateFlag.Value */, undefined, this._cts.token);\n let loc;\n try {\n trace('resolving rename location');\n const resolveLocationOperation = skeleton.resolveRenameLocation(cts1.token);\n this._progressService.showWhile(resolveLocationOperation, 250);\n loc = await resolveLocationOperation;\n trace('resolved rename location');\n }\n catch (e) {\n if (e instanceof CancellationError) {\n trace('resolve rename location cancelled', JSON.stringify(e, null, '\\t'));\n }\n else {\n trace('resolve rename location failed', e instanceof Error ? e : JSON.stringify(e, null, '\\t'));\n if (typeof e === 'string' || isMarkdownString(e)) {\n (_a = MessageController.get(this.editor)) === null || _a === void 0 ? void 0 : _a.showMessage(e || nls.localize('resolveRenameLocationFailed', \"An unknown error occurred while resolving rename location\"), position);\n }\n }\n return undefined;\n }\n finally {\n cts1.dispose();\n }\n if (!loc) {\n trace('returning early - no loc');\n return undefined;\n }\n if (loc.rejectReason) {\n trace(`returning early - rejected with reason: ${loc.rejectReason}`, loc.rejectReason);\n (_b = MessageController.get(this.editor)) === null || _b === void 0 ? void 0 : _b.showMessage(loc.rejectReason, position);\n return undefined;\n }\n if (cts1.token.isCancellationRequested) {\n trace('returning early - cts1 cancelled');\n return undefined;\n }\n // part 2 - do rename at location\n const cts2 = new EditorStateCancellationTokenSource(this.editor, 4 /* CodeEditorStateFlag.Position */ | 1 /* CodeEditorStateFlag.Value */, loc.range, this._cts.token);\n const model = this.editor.getModel(); // @ulugbekna: assumes editor still has a model, otherwise, cts1 should've been cancelled\n const newSymbolNamesProviders = this._languageFeaturesService.newSymbolNamesProvider.all(model);\n const resolvedNewSymbolnamesProviders = await Promise.all(newSymbolNamesProviders.map(async (p) => { var _a; return [p, (_a = await p.supportsAutomaticNewSymbolNamesTriggerKind) !== null && _a !== void 0 ? _a : false]; }));\n const requestRenameSuggestions = (triggerKind, cts) => {\n let providers = resolvedNewSymbolnamesProviders.slice();\n if (triggerKind === NewSymbolNameTriggerKind.Automatic) {\n providers = providers.filter(([_, supportsAutomatic]) => supportsAutomatic);\n }\n return providers.map(([p,]) => p.provideNewSymbolNames(model, loc.range, triggerKind, cts));\n };\n trace('creating rename input field and awaiting its result');\n const supportPreview = this._bulkEditService.hasPreviewHandler() && this._configService.getValue(this.editor.getModel().uri, 'editor.rename.enablePreview');\n const inputFieldResult = await this._renameWidget.getInput(loc.range, loc.text, supportPreview, newSymbolNamesProviders.length > 0 ? requestRenameSuggestions : undefined, cts2);\n trace('received response from rename input field');\n if (newSymbolNamesProviders.length > 0) { // @ulugbekna: we're interested only in telemetry for rename suggestions currently\n this._reportTelemetry(newSymbolNamesProviders.length, model.getLanguageId(), inputFieldResult);\n }\n // no result, only hint to focus the editor or not\n if (typeof inputFieldResult === 'boolean') {\n trace(`returning early - rename input field response - ${inputFieldResult}`);\n if (inputFieldResult) {\n this.editor.focus();\n }\n cts2.dispose();\n return undefined;\n }\n this.editor.focus();\n trace('requesting rename edits');\n const renameOperation = raceCancellation(skeleton.provideRenameEdits(inputFieldResult.newName, cts2.token), cts2.token).then(async (renameResult) => {\n if (!renameResult) {\n trace('returning early - no rename edits result');\n return;\n }\n if (!this.editor.hasModel()) {\n trace('returning early - no model after rename edits are provided');\n return;\n }\n if (renameResult.rejectReason) {\n trace(`returning early - rejected with reason: ${renameResult.rejectReason}`);\n this._notificationService.info(renameResult.rejectReason);\n return;\n }\n // collapse selection to active end\n this.editor.setSelection(Range.fromPositions(this.editor.getSelection().getPosition()));\n trace('applying edits');\n this._bulkEditService.apply(renameResult, {\n editor: this.editor,\n showPreview: inputFieldResult.wantsPreview,\n label: nls.localize('label', \"Renaming '{0}' to '{1}'\", loc === null || loc === void 0 ? void 0 : loc.text, inputFieldResult.newName),\n code: 'undoredo.rename',\n quotableLabel: nls.localize('quotableLabel', \"Renaming {0} to {1}\", loc === null || loc === void 0 ? void 0 : loc.text, inputFieldResult.newName),\n respectAutoSaveConfig: true\n }).then(result => {\n trace('edits applied');\n if (result.ariaSummary) {\n alert(nls.localize('aria', \"Successfully renamed '{0}' to '{1}'. Summary: {2}\", loc.text, inputFieldResult.newName, result.ariaSummary));\n }\n }).catch(err => {\n trace(`error when applying edits ${JSON.stringify(err, null, '\\t')}`);\n this._notificationService.error(nls.localize('rename.failedApply', \"Rename failed to apply edits\"));\n this._logService.error(err);\n });\n }, err => {\n trace('error when providing rename edits', JSON.stringify(err, null, '\\t'));\n this._notificationService.error(nls.localize('rename.failed', \"Rename failed to compute edits\"));\n this._logService.error(err);\n }).finally(() => {\n cts2.dispose();\n });\n trace('returning rename operation');\n this._progressService.showWhile(renameOperation, 250);\n return renameOperation;\n }\n acceptRenameInput(wantsPreview) {\n this._renameWidget.acceptInput(wantsPreview);\n }\n cancelRenameInput() {\n this._renameWidget.cancelInput(true, 'cancelRenameInput command');\n }\n focusNextRenameSuggestion() {\n this._renameWidget.focusNextRenameSuggestion();\n }\n focusPreviousRenameSuggestion() {\n this._renameWidget.focusPreviousRenameSuggestion();\n }\n _reportTelemetry(nRenameSuggestionProviders, languageId, inputFieldResult) {\n const value = typeof inputFieldResult === 'boolean'\n ? {\n kind: 'cancelled',\n languageId,\n nRenameSuggestionProviders,\n }\n : {\n kind: 'accepted',\n languageId,\n nRenameSuggestionProviders,\n source: inputFieldResult.stats.source.k,\n nRenameSuggestions: inputFieldResult.stats.nRenameSuggestions,\n timeBeforeFirstInputFieldEdit: inputFieldResult.stats.timeBeforeFirstInputFieldEdit,\n wantsPreview: inputFieldResult.wantsPreview,\n nRenameSuggestionsInvocations: inputFieldResult.stats.nRenameSuggestionsInvocations,\n hadAutomaticRenameSuggestionsInvocation: inputFieldResult.stats.hadAutomaticRenameSuggestionsInvocation,\n };\n this._telemetryService.publicLog2('renameInvokedEvent', value);\n }\n};\nRenameController.ID = 'editor.contrib.renameController';\nRenameController = RenameController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, INotificationService),\n __param(3, IBulkEditService),\n __param(4, IEditorProgressService),\n __param(5, ILogService),\n __param(6, ITextResourceConfigurationService),\n __param(7, ILanguageFeaturesService),\n __param(8, ITelemetryService)\n], RenameController);\n// ---- action implementation\nexport class RenameAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.rename',\n label: nls.localize('rename.label', \"Rename Symbol\"),\n alias: 'Rename Symbol',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasRenameProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 60 /* KeyCode.F2 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: '1_modification',\n order: 1.1\n }\n });\n }\n runCommand(accessor, args) {\n const editorService = accessor.get(ICodeEditorService);\n const [uri, pos] = Array.isArray(args) && args || [undefined, undefined];\n if (URI.isUri(uri) && Position.isIPosition(pos)) {\n return editorService.openCodeEditor({ resource: uri }, editorService.getActiveCodeEditor()).then(editor => {\n if (!editor) {\n return;\n }\n editor.setPosition(pos);\n editor.invokeWithinContext(accessor => {\n this.reportTelemetry(accessor, editor);\n return this.run(accessor, editor);\n });\n }, onUnexpectedError);\n }\n return super.runCommand(accessor, args);\n }\n run(accessor, editor) {\n const logService = accessor.get(ILogService);\n const controller = RenameController.get(editor);\n if (controller) {\n logService.trace('[RenameAction] got controller, running...');\n return controller.run();\n }\n logService.trace('[RenameAction] returning early - controller missing');\n return Promise.resolve();\n }\n}\nregisterEditorContribution(RenameController.ID, RenameController, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(RenameAction);\nconst RenameCommand = EditorCommand.bindToContribution(RenameController.get);\nregisterEditorCommand(new RenameCommand({\n id: 'acceptRenameInput',\n precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n handler: x => x.acceptRenameInput(false),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n primary: 3 /* KeyCode.Enter */\n }\n}));\nregisterEditorCommand(new RenameCommand({\n id: 'acceptRenameInputWithPreview',\n precondition: ContextKeyExpr.and(CONTEXT_RENAME_INPUT_VISIBLE, ContextKeyExpr.has('config.editor.rename.enablePreview')),\n handler: x => x.acceptRenameInput(true),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n kbExpr: ContextKeyExpr.and(EditorContextKeys.focus, ContextKeyExpr.not('isComposing')),\n primary: 2048 /* KeyMod.CtrlCmd */ + 3 /* KeyCode.Enter */\n }\n}));\nregisterEditorCommand(new RenameCommand({\n id: 'cancelRenameInput',\n precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n handler: x => x.cancelRenameInput(),\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n kbExpr: EditorContextKeys.focus,\n primary: 9 /* KeyCode.Escape */,\n secondary: [1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */]\n }\n}));\nregisterAction2(class FocusNextRenameSuggestion extends Action2 {\n constructor() {\n super({\n id: 'focusNextRenameSuggestion',\n title: {\n ...nls.localize2('focusNextRenameSuggestion', \"Focus Next Rename Suggestion\"),\n },\n precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n keybinding: [\n {\n primary: 18 /* KeyCode.DownArrow */,\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n }\n ]\n });\n }\n run(accessor) {\n const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (!currentEditor) {\n return;\n }\n const controller = RenameController.get(currentEditor);\n if (!controller) {\n return;\n }\n controller.focusNextRenameSuggestion();\n }\n});\nregisterAction2(class FocusPreviousRenameSuggestion extends Action2 {\n constructor() {\n super({\n id: 'focusPreviousRenameSuggestion',\n title: {\n ...nls.localize2('focusPreviousRenameSuggestion', \"Focus Previous Rename Suggestion\"),\n },\n precondition: CONTEXT_RENAME_INPUT_VISIBLE,\n keybinding: [\n {\n primary: 16 /* KeyCode.UpArrow */,\n weight: 100 /* KeybindingWeight.EditorContrib */ + 99,\n }\n ]\n });\n }\n run(accessor) {\n const currentEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (!currentEditor) {\n return;\n }\n const controller = RenameController.get(currentEditor);\n if (!controller) {\n return;\n }\n controller.focusPreviousRenameSuggestion();\n }\n});\n// ---- api bridge command\nregisterModelAndPositionCommand('_executeDocumentRenameProvider', function (accessor, model, position, ...args) {\n const [newName] = args;\n assertType(typeof newName === 'string');\n const { renameProvider } = accessor.get(ILanguageFeaturesService);\n return rename(renameProvider, model, position, newName);\n});\nregisterModelAndPositionCommand('_executePrepareRename', async function (accessor, model, position) {\n const { renameProvider } = accessor.get(ILanguageFeaturesService);\n const skeleton = new RenameSkeleton(model, position, renameProvider);\n const loc = await skeleton.resolveRenameLocation(CancellationToken.None);\n if (loc === null || loc === void 0 ? void 0 : loc.rejectReason) {\n throw new Error(loc.rejectReason);\n }\n return loc;\n});\n//todo@jrieken use editor options world\nRegistry.as(Extensions.Configuration).registerConfiguration({\n id: 'editor',\n properties: {\n 'editor.rename.enablePreview': {\n scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n description: nls.localize('enablePreview', \"Enable/disable the ability to preview changes before renaming\"),\n default: true,\n type: 'boolean'\n }\n }\n});\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../base/common/event.js';\nimport { Disposable, toDisposable } from '../../base/common/lifecycle.js';\nexport class TokenizationRegistry {\n constructor() {\n this._tokenizationSupports = new Map();\n this._factories = new Map();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._colorMap = null;\n }\n handleChange(languageIds) {\n this._onDidChange.fire({\n changedLanguages: languageIds,\n changedColorMap: false\n });\n }\n register(languageId, support) {\n this._tokenizationSupports.set(languageId, support);\n this.handleChange([languageId]);\n return toDisposable(() => {\n if (this._tokenizationSupports.get(languageId) !== support) {\n return;\n }\n this._tokenizationSupports.delete(languageId);\n this.handleChange([languageId]);\n });\n }\n get(languageId) {\n return this._tokenizationSupports.get(languageId) || null;\n }\n registerFactory(languageId, factory) {\n var _a;\n (_a = this._factories.get(languageId)) === null || _a === void 0 ? void 0 : _a.dispose();\n const myData = new TokenizationSupportFactoryData(this, languageId, factory);\n this._factories.set(languageId, myData);\n return toDisposable(() => {\n const v = this._factories.get(languageId);\n if (!v || v !== myData) {\n return;\n }\n this._factories.delete(languageId);\n v.dispose();\n });\n }\n async getOrCreate(languageId) {\n // check first if the support is already set\n const tokenizationSupport = this.get(languageId);\n if (tokenizationSupport) {\n return tokenizationSupport;\n }\n const factory = this._factories.get(languageId);\n if (!factory || factory.isResolved) {\n // no factory or factory.resolve already finished\n return null;\n }\n await factory.resolve();\n return this.get(languageId);\n }\n isResolved(languageId) {\n const tokenizationSupport = this.get(languageId);\n if (tokenizationSupport) {\n return true;\n }\n const factory = this._factories.get(languageId);\n if (!factory || factory.isResolved) {\n return true;\n }\n return false;\n }\n setColorMap(colorMap) {\n this._colorMap = colorMap;\n this._onDidChange.fire({\n changedLanguages: Array.from(this._tokenizationSupports.keys()),\n changedColorMap: true\n });\n }\n getColorMap() {\n return this._colorMap;\n }\n getDefaultBackground() {\n if (this._colorMap && this._colorMap.length > 2 /* ColorId.DefaultBackground */) {\n return this._colorMap[2 /* ColorId.DefaultBackground */];\n }\n return null;\n }\n}\nclass TokenizationSupportFactoryData extends Disposable {\n get isResolved() {\n return this._isResolved;\n }\n constructor(_registry, _languageId, _factory) {\n super();\n this._registry = _registry;\n this._languageId = _languageId;\n this._factory = _factory;\n this._isDisposed = false;\n this._resolvePromise = null;\n this._isResolved = false;\n }\n dispose() {\n this._isDisposed = true;\n super.dispose();\n }\n async resolve() {\n if (!this._resolvePromise) {\n this._resolvePromise = this._create();\n }\n return this._resolvePromise;\n }\n async _create() {\n const value = await this._factory.tokenizationSupport;\n this._isResolved = true;\n if (value && !this._isDisposed) {\n this._register(this._registry.register(this._languageId, value));\n }\n }\n}\n","import { Codicon } from '../../base/common/codicons.js';\nimport { URI } from '../../base/common/uri.js';\nimport { Range } from './core/range.js';\nimport { TokenizationRegistry as TokenizationRegistryImpl } from './tokenizationRegistry.js';\nimport { localize } from '../../nls.js';\nexport class Token {\n constructor(offset, type, language) {\n this.offset = offset;\n this.type = type;\n this.language = language;\n this._tokenBrand = undefined;\n }\n toString() {\n return '(' + this.offset + ', ' + this.type + ')';\n }\n}\n/**\n * @internal\n */\nexport class TokenizationResult {\n constructor(tokens, endState) {\n this.tokens = tokens;\n this.endState = endState;\n this._tokenizationResultBrand = undefined;\n }\n}\n/**\n * @internal\n */\nexport class EncodedTokenizationResult {\n constructor(\n /**\n * The tokens in binary format. Each token occupies two array indices. For token i:\n * - at offset 2*i => startIndex\n * - at offset 2*i + 1 => metadata\n *\n */\n tokens, endState) {\n this.tokens = tokens;\n this.endState = endState;\n this._encodedTokenizationResultBrand = undefined;\n }\n}\nexport var HoverVerbosityAction;\n(function (HoverVerbosityAction) {\n /**\n * Increase the verbosity of the hover\n */\n HoverVerbosityAction[HoverVerbosityAction[\"Increase\"] = 0] = \"Increase\";\n /**\n * Decrease the verbosity of the hover\n */\n HoverVerbosityAction[HoverVerbosityAction[\"Decrease\"] = 1] = \"Decrease\";\n})(HoverVerbosityAction || (HoverVerbosityAction = {}));\n/**\n * @internal\n */\nexport var CompletionItemKinds;\n(function (CompletionItemKinds) {\n const byKind = new Map();\n byKind.set(0 /* CompletionItemKind.Method */, Codicon.symbolMethod);\n byKind.set(1 /* CompletionItemKind.Function */, Codicon.symbolFunction);\n byKind.set(2 /* CompletionItemKind.Constructor */, Codicon.symbolConstructor);\n byKind.set(3 /* CompletionItemKind.Field */, Codicon.symbolField);\n byKind.set(4 /* CompletionItemKind.Variable */, Codicon.symbolVariable);\n byKind.set(5 /* CompletionItemKind.Class */, Codicon.symbolClass);\n byKind.set(6 /* CompletionItemKind.Struct */, Codicon.symbolStruct);\n byKind.set(7 /* CompletionItemKind.Interface */, Codicon.symbolInterface);\n byKind.set(8 /* CompletionItemKind.Module */, Codicon.symbolModule);\n byKind.set(9 /* CompletionItemKind.Property */, Codicon.symbolProperty);\n byKind.set(10 /* CompletionItemKind.Event */, Codicon.symbolEvent);\n byKind.set(11 /* CompletionItemKind.Operator */, Codicon.symbolOperator);\n byKind.set(12 /* CompletionItemKind.Unit */, Codicon.symbolUnit);\n byKind.set(13 /* CompletionItemKind.Value */, Codicon.symbolValue);\n byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum);\n byKind.set(14 /* CompletionItemKind.Constant */, Codicon.symbolConstant);\n byKind.set(15 /* CompletionItemKind.Enum */, Codicon.symbolEnum);\n byKind.set(16 /* CompletionItemKind.EnumMember */, Codicon.symbolEnumMember);\n byKind.set(17 /* CompletionItemKind.Keyword */, Codicon.symbolKeyword);\n byKind.set(27 /* CompletionItemKind.Snippet */, Codicon.symbolSnippet);\n byKind.set(18 /* CompletionItemKind.Text */, Codicon.symbolText);\n byKind.set(19 /* CompletionItemKind.Color */, Codicon.symbolColor);\n byKind.set(20 /* CompletionItemKind.File */, Codicon.symbolFile);\n byKind.set(21 /* CompletionItemKind.Reference */, Codicon.symbolReference);\n byKind.set(22 /* CompletionItemKind.Customcolor */, Codicon.symbolCustomColor);\n byKind.set(23 /* CompletionItemKind.Folder */, Codicon.symbolFolder);\n byKind.set(24 /* CompletionItemKind.TypeParameter */, Codicon.symbolTypeParameter);\n byKind.set(25 /* CompletionItemKind.User */, Codicon.account);\n byKind.set(26 /* CompletionItemKind.Issue */, Codicon.issues);\n /**\n * @internal\n */\n function toIcon(kind) {\n let codicon = byKind.get(kind);\n if (!codicon) {\n console.info('No codicon found for CompletionItemKind ' + kind);\n codicon = Codicon.symbolProperty;\n }\n return codicon;\n }\n CompletionItemKinds.toIcon = toIcon;\n const data = new Map();\n data.set('method', 0 /* CompletionItemKind.Method */);\n data.set('function', 1 /* CompletionItemKind.Function */);\n data.set('constructor', 2 /* CompletionItemKind.Constructor */);\n data.set('field', 3 /* CompletionItemKind.Field */);\n data.set('variable', 4 /* CompletionItemKind.Variable */);\n data.set('class', 5 /* CompletionItemKind.Class */);\n data.set('struct', 6 /* CompletionItemKind.Struct */);\n data.set('interface', 7 /* CompletionItemKind.Interface */);\n data.set('module', 8 /* CompletionItemKind.Module */);\n data.set('property', 9 /* CompletionItemKind.Property */);\n data.set('event', 10 /* CompletionItemKind.Event */);\n data.set('operator', 11 /* CompletionItemKind.Operator */);\n data.set('unit', 12 /* CompletionItemKind.Unit */);\n data.set('value', 13 /* CompletionItemKind.Value */);\n data.set('constant', 14 /* CompletionItemKind.Constant */);\n data.set('enum', 15 /* CompletionItemKind.Enum */);\n data.set('enum-member', 16 /* CompletionItemKind.EnumMember */);\n data.set('enumMember', 16 /* CompletionItemKind.EnumMember */);\n data.set('keyword', 17 /* CompletionItemKind.Keyword */);\n data.set('snippet', 27 /* CompletionItemKind.Snippet */);\n data.set('text', 18 /* CompletionItemKind.Text */);\n data.set('color', 19 /* CompletionItemKind.Color */);\n data.set('file', 20 /* CompletionItemKind.File */);\n data.set('reference', 21 /* CompletionItemKind.Reference */);\n data.set('customcolor', 22 /* CompletionItemKind.Customcolor */);\n data.set('folder', 23 /* CompletionItemKind.Folder */);\n data.set('type-parameter', 24 /* CompletionItemKind.TypeParameter */);\n data.set('typeParameter', 24 /* CompletionItemKind.TypeParameter */);\n data.set('account', 25 /* CompletionItemKind.User */);\n data.set('issue', 26 /* CompletionItemKind.Issue */);\n /**\n * @internal\n */\n function fromString(value, strict) {\n let res = data.get(value);\n if (typeof res === 'undefined' && !strict) {\n res = 9 /* CompletionItemKind.Property */;\n }\n return res;\n }\n CompletionItemKinds.fromString = fromString;\n})(CompletionItemKinds || (CompletionItemKinds = {}));\n/**\n * How an {@link InlineCompletionsProvider inline completion provider} was triggered.\n */\nexport var InlineCompletionTriggerKind;\n(function (InlineCompletionTriggerKind) {\n /**\n * Completion was triggered automatically while editing.\n * It is sufficient to return a single completion item in this case.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n /**\n * Completion was triggered explicitly by a user gesture.\n * Return multiple completion items to enable cycling through them.\n */\n InlineCompletionTriggerKind[InlineCompletionTriggerKind[\"Explicit\"] = 1] = \"Explicit\";\n})(InlineCompletionTriggerKind || (InlineCompletionTriggerKind = {}));\nexport class SelectedSuggestionInfo {\n constructor(range, text, completionKind, isSnippetText) {\n this.range = range;\n this.text = text;\n this.completionKind = completionKind;\n this.isSnippetText = isSnippetText;\n }\n equals(other) {\n return Range.lift(this.range).equalsRange(other.range)\n && this.text === other.text\n && this.completionKind === other.completionKind\n && this.isSnippetText === other.isSnippetText;\n }\n}\n/**\n * @internal\n */\nexport var DocumentPasteTriggerKind;\n(function (DocumentPasteTriggerKind) {\n DocumentPasteTriggerKind[DocumentPasteTriggerKind[\"Automatic\"] = 0] = \"Automatic\";\n DocumentPasteTriggerKind[DocumentPasteTriggerKind[\"PasteAs\"] = 1] = \"PasteAs\";\n})(DocumentPasteTriggerKind || (DocumentPasteTriggerKind = {}));\nexport var SignatureHelpTriggerKind;\n(function (SignatureHelpTriggerKind) {\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"Invoke\"] = 1] = \"Invoke\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n SignatureHelpTriggerKind[SignatureHelpTriggerKind[\"ContentChange\"] = 3] = \"ContentChange\";\n})(SignatureHelpTriggerKind || (SignatureHelpTriggerKind = {}));\n/**\n * A document highlight kind.\n */\nexport var DocumentHighlightKind;\n(function (DocumentHighlightKind) {\n /**\n * A textual occurrence.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Text\"] = 0] = \"Text\";\n /**\n * Read-access of a symbol, like reading a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Read\"] = 1] = \"Read\";\n /**\n * Write-access of a symbol, like writing to a variable.\n */\n DocumentHighlightKind[DocumentHighlightKind[\"Write\"] = 2] = \"Write\";\n})(DocumentHighlightKind || (DocumentHighlightKind = {}));\n/**\n * @internal\n */\nexport function isLocationLink(thing) {\n return thing\n && URI.isUri(thing.uri)\n && Range.isIRange(thing.range)\n && (Range.isIRange(thing.originSelectionRange) || Range.isIRange(thing.targetSelectionRange));\n}\n/**\n * @internal\n */\nexport const symbolKindNames = {\n [17 /* SymbolKind.Array */]: localize('Array', \"array\"),\n [16 /* SymbolKind.Boolean */]: localize('Boolean', \"boolean\"),\n [4 /* SymbolKind.Class */]: localize('Class', \"class\"),\n [13 /* SymbolKind.Constant */]: localize('Constant', \"constant\"),\n [8 /* SymbolKind.Constructor */]: localize('Constructor', \"constructor\"),\n [9 /* SymbolKind.Enum */]: localize('Enum', \"enumeration\"),\n [21 /* SymbolKind.EnumMember */]: localize('EnumMember', \"enumeration member\"),\n [23 /* SymbolKind.Event */]: localize('Event', \"event\"),\n [7 /* SymbolKind.Field */]: localize('Field', \"field\"),\n [0 /* SymbolKind.File */]: localize('File', \"file\"),\n [11 /* SymbolKind.Function */]: localize('Function', \"function\"),\n [10 /* SymbolKind.Interface */]: localize('Interface', \"interface\"),\n [19 /* SymbolKind.Key */]: localize('Key', \"key\"),\n [5 /* SymbolKind.Method */]: localize('Method', \"method\"),\n [1 /* SymbolKind.Module */]: localize('Module', \"module\"),\n [2 /* SymbolKind.Namespace */]: localize('Namespace', \"namespace\"),\n [20 /* SymbolKind.Null */]: localize('Null', \"null\"),\n [15 /* SymbolKind.Number */]: localize('Number', \"number\"),\n [18 /* SymbolKind.Object */]: localize('Object', \"object\"),\n [24 /* SymbolKind.Operator */]: localize('Operator', \"operator\"),\n [3 /* SymbolKind.Package */]: localize('Package', \"package\"),\n [6 /* SymbolKind.Property */]: localize('Property', \"property\"),\n [14 /* SymbolKind.String */]: localize('String', \"string\"),\n [22 /* SymbolKind.Struct */]: localize('Struct', \"struct\"),\n [25 /* SymbolKind.TypeParameter */]: localize('TypeParameter', \"type parameter\"),\n [12 /* SymbolKind.Variable */]: localize('Variable', \"variable\"),\n};\n/**\n * @internal\n */\nexport function getAriaLabelForSymbol(symbolName, kind) {\n return localize('symbolAriaLabel', '{0} ({1})', symbolName, symbolKindNames[kind]);\n}\n/**\n * @internal\n */\nexport var SymbolKinds;\n(function (SymbolKinds) {\n const byKind = new Map();\n byKind.set(0 /* SymbolKind.File */, Codicon.symbolFile);\n byKind.set(1 /* SymbolKind.Module */, Codicon.symbolModule);\n byKind.set(2 /* SymbolKind.Namespace */, Codicon.symbolNamespace);\n byKind.set(3 /* SymbolKind.Package */, Codicon.symbolPackage);\n byKind.set(4 /* SymbolKind.Class */, Codicon.symbolClass);\n byKind.set(5 /* SymbolKind.Method */, Codicon.symbolMethod);\n byKind.set(6 /* SymbolKind.Property */, Codicon.symbolProperty);\n byKind.set(7 /* SymbolKind.Field */, Codicon.symbolField);\n byKind.set(8 /* SymbolKind.Constructor */, Codicon.symbolConstructor);\n byKind.set(9 /* SymbolKind.Enum */, Codicon.symbolEnum);\n byKind.set(10 /* SymbolKind.Interface */, Codicon.symbolInterface);\n byKind.set(11 /* SymbolKind.Function */, Codicon.symbolFunction);\n byKind.set(12 /* SymbolKind.Variable */, Codicon.symbolVariable);\n byKind.set(13 /* SymbolKind.Constant */, Codicon.symbolConstant);\n byKind.set(14 /* SymbolKind.String */, Codicon.symbolString);\n byKind.set(15 /* SymbolKind.Number */, Codicon.symbolNumber);\n byKind.set(16 /* SymbolKind.Boolean */, Codicon.symbolBoolean);\n byKind.set(17 /* SymbolKind.Array */, Codicon.symbolArray);\n byKind.set(18 /* SymbolKind.Object */, Codicon.symbolObject);\n byKind.set(19 /* SymbolKind.Key */, Codicon.symbolKey);\n byKind.set(20 /* SymbolKind.Null */, Codicon.symbolNull);\n byKind.set(21 /* SymbolKind.EnumMember */, Codicon.symbolEnumMember);\n byKind.set(22 /* SymbolKind.Struct */, Codicon.symbolStruct);\n byKind.set(23 /* SymbolKind.Event */, Codicon.symbolEvent);\n byKind.set(24 /* SymbolKind.Operator */, Codicon.symbolOperator);\n byKind.set(25 /* SymbolKind.TypeParameter */, Codicon.symbolTypeParameter);\n /**\n * @internal\n */\n function toIcon(kind) {\n let icon = byKind.get(kind);\n if (!icon) {\n console.info('No codicon found for SymbolKind ' + kind);\n icon = Codicon.symbolProperty;\n }\n return icon;\n }\n SymbolKinds.toIcon = toIcon;\n})(SymbolKinds || (SymbolKinds = {}));\n/** @internal */\nexport class TextEdit {\n}\nexport class FoldingRangeKind {\n /**\n * Returns a {@link FoldingRangeKind} for the given value.\n *\n * @param value of the kind.\n */\n static fromValue(value) {\n switch (value) {\n case 'comment': return FoldingRangeKind.Comment;\n case 'imports': return FoldingRangeKind.Imports;\n case 'region': return FoldingRangeKind.Region;\n }\n return new FoldingRangeKind(value);\n }\n /**\n * Creates a new {@link FoldingRangeKind}.\n *\n * @param value of the kind.\n */\n constructor(value) {\n this.value = value;\n }\n}\n/**\n * Kind for folding range representing a comment. The value of the kind is 'comment'.\n */\nFoldingRangeKind.Comment = new FoldingRangeKind('comment');\n/**\n * Kind for folding range representing a import. The value of the kind is 'imports'.\n */\nFoldingRangeKind.Imports = new FoldingRangeKind('imports');\n/**\n * Kind for folding range representing regions (for example marked by `#region`, `#endregion`).\n * The value of the kind is 'region'.\n */\nFoldingRangeKind.Region = new FoldingRangeKind('region');\nexport var NewSymbolNameTag;\n(function (NewSymbolNameTag) {\n NewSymbolNameTag[NewSymbolNameTag[\"AIGenerated\"] = 1] = \"AIGenerated\";\n})(NewSymbolNameTag || (NewSymbolNameTag = {}));\nexport var NewSymbolNameTriggerKind;\n(function (NewSymbolNameTriggerKind) {\n NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n NewSymbolNameTriggerKind[NewSymbolNameTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(NewSymbolNameTriggerKind || (NewSymbolNameTriggerKind = {}));\n/**\n * @internal\n */\nexport var Command;\n(function (Command) {\n /**\n * @internal\n */\n function is(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n return typeof obj.id === 'string' &&\n typeof obj.title === 'string';\n }\n Command.is = is;\n})(Command || (Command = {}));\nexport var InlayHintKind;\n(function (InlayHintKind) {\n InlayHintKind[InlayHintKind[\"Type\"] = 1] = \"Type\";\n InlayHintKind[InlayHintKind[\"Parameter\"] = 2] = \"Parameter\";\n})(InlayHintKind || (InlayHintKind = {}));\n/**\n * @internal\n */\nexport class LazyTokenizationSupport {\n constructor(createSupport) {\n this.createSupport = createSupport;\n this._tokenizationSupport = null;\n }\n dispose() {\n if (this._tokenizationSupport) {\n this._tokenizationSupport.then((support) => {\n if (support) {\n support.dispose();\n }\n });\n }\n }\n get tokenizationSupport() {\n if (!this._tokenizationSupport) {\n this._tokenizationSupport = this.createSupport();\n }\n return this._tokenizationSupport;\n }\n}\n/**\n * @internal\n */\nexport const TokenizationRegistry = new TokenizationRegistryImpl();\nexport var InlineEditTriggerKind;\n(function (InlineEditTriggerKind) {\n InlineEditTriggerKind[InlineEditTriggerKind[\"Invoke\"] = 0] = \"Invoke\";\n InlineEditTriggerKind[InlineEditTriggerKind[\"Automatic\"] = 1] = \"Automatic\";\n})(InlineEditTriggerKind || (InlineEditTriggerKind = {}));\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","import BaseSeverity from '../../../base/common/severity.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport var Severity = BaseSeverity;\nexport const INotificationService = createDecorator('notificationService');\nexport class NoOpNotification {\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './core/position.js';\nimport { Range } from './core/range.js';\nimport { Selection } from './core/selection.js';\nimport { createScopedLineTokens } from './languages/supports.js';\nimport { CursorColumns } from './core/cursorColumns.js';\nimport { normalizeIndentation } from './core/indentation.js';\nconst autoCloseAlways = () => true;\nconst autoCloseNever = () => false;\nconst autoCloseBeforeWhitespace = (chr) => (chr === ' ' || chr === '\\t');\nexport class CursorConfiguration {\n static shouldRecreate(e) {\n return (e.hasChanged(145 /* EditorOption.layoutInfo */)\n || e.hasChanged(131 /* EditorOption.wordSeparators */)\n || e.hasChanged(37 /* EditorOption.emptySelectionClipboard */)\n || e.hasChanged(77 /* EditorOption.multiCursorMergeOverlapping */)\n || e.hasChanged(79 /* EditorOption.multiCursorPaste */)\n || e.hasChanged(80 /* EditorOption.multiCursorLimit */)\n || e.hasChanged(6 /* EditorOption.autoClosingBrackets */)\n || e.hasChanged(7 /* EditorOption.autoClosingComments */)\n || e.hasChanged(11 /* EditorOption.autoClosingQuotes */)\n || e.hasChanged(9 /* EditorOption.autoClosingDelete */)\n || e.hasChanged(10 /* EditorOption.autoClosingOvertype */)\n || e.hasChanged(14 /* EditorOption.autoSurround */)\n || e.hasChanged(128 /* EditorOption.useTabStops */)\n || e.hasChanged(50 /* EditorOption.fontInfo */)\n || e.hasChanged(91 /* EditorOption.readOnly */)\n || e.hasChanged(130 /* EditorOption.wordSegmenterLocales */));\n }\n constructor(languageId, modelOptions, configuration, languageConfigurationService) {\n var _a;\n this.languageConfigurationService = languageConfigurationService;\n this._cursorMoveConfigurationBrand = undefined;\n this._languageId = languageId;\n const options = configuration.options;\n const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n this.readOnly = options.get(91 /* EditorOption.readOnly */);\n this.tabSize = modelOptions.tabSize;\n this.indentSize = modelOptions.indentSize;\n this.insertSpaces = modelOptions.insertSpaces;\n this.stickyTabStops = options.get(116 /* EditorOption.stickyTabStops */);\n this.lineHeight = fontInfo.lineHeight;\n this.typicalHalfwidthCharacterWidth = fontInfo.typicalHalfwidthCharacterWidth;\n this.pageSize = Math.max(1, Math.floor(layoutInfo.height / this.lineHeight) - 2);\n this.useTabStops = options.get(128 /* EditorOption.useTabStops */);\n this.wordSeparators = options.get(131 /* EditorOption.wordSeparators */);\n this.emptySelectionClipboard = options.get(37 /* EditorOption.emptySelectionClipboard */);\n this.copyWithSyntaxHighlighting = options.get(25 /* EditorOption.copyWithSyntaxHighlighting */);\n this.multiCursorMergeOverlapping = options.get(77 /* EditorOption.multiCursorMergeOverlapping */);\n this.multiCursorPaste = options.get(79 /* EditorOption.multiCursorPaste */);\n this.multiCursorLimit = options.get(80 /* EditorOption.multiCursorLimit */);\n this.autoClosingBrackets = options.get(6 /* EditorOption.autoClosingBrackets */);\n this.autoClosingComments = options.get(7 /* EditorOption.autoClosingComments */);\n this.autoClosingQuotes = options.get(11 /* EditorOption.autoClosingQuotes */);\n this.autoClosingDelete = options.get(9 /* EditorOption.autoClosingDelete */);\n this.autoClosingOvertype = options.get(10 /* EditorOption.autoClosingOvertype */);\n this.autoSurround = options.get(14 /* EditorOption.autoSurround */);\n this.autoIndent = options.get(12 /* EditorOption.autoIndent */);\n this.wordSegmenterLocales = options.get(130 /* EditorOption.wordSegmenterLocales */);\n this.surroundingPairs = {};\n this._electricChars = null;\n this.shouldAutoCloseBefore = {\n quote: this._getShouldAutoClose(languageId, this.autoClosingQuotes, true),\n comment: this._getShouldAutoClose(languageId, this.autoClosingComments, false),\n bracket: this._getShouldAutoClose(languageId, this.autoClosingBrackets, false),\n };\n this.autoClosingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoClosingPairs();\n const surroundingPairs = this.languageConfigurationService.getLanguageConfiguration(languageId).getSurroundingPairs();\n if (surroundingPairs) {\n for (const pair of surroundingPairs) {\n this.surroundingPairs[pair.open] = pair.close;\n }\n }\n const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n this.blockCommentStartToken = (_a = commentsConfiguration === null || commentsConfiguration === void 0 ? void 0 : commentsConfiguration.blockCommentStartToken) !== null && _a !== void 0 ? _a : null;\n }\n get electricChars() {\n var _a;\n if (!this._electricChars) {\n this._electricChars = {};\n const electricChars = (_a = this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter) === null || _a === void 0 ? void 0 : _a.getElectricCharacters();\n if (electricChars) {\n for (const char of electricChars) {\n this._electricChars[char] = true;\n }\n }\n }\n return this._electricChars;\n }\n /**\n * Should return opening bracket type to match indentation with\n */\n onElectricCharacter(character, context, column) {\n const scopedLineTokens = createScopedLineTokens(context, column - 1);\n const electricCharacterSupport = this.languageConfigurationService.getLanguageConfiguration(scopedLineTokens.languageId).electricCharacter;\n if (!electricCharacterSupport) {\n return null;\n }\n return electricCharacterSupport.onElectricCharacter(character, scopedLineTokens, column - scopedLineTokens.firstCharOffset);\n }\n normalizeIndentation(str) {\n return normalizeIndentation(str, this.indentSize, this.insertSpaces);\n }\n _getShouldAutoClose(languageId, autoCloseConfig, forQuotes) {\n switch (autoCloseConfig) {\n case 'beforeWhitespace':\n return autoCloseBeforeWhitespace;\n case 'languageDefined':\n return this._getLanguageDefinedShouldAutoClose(languageId, forQuotes);\n case 'always':\n return autoCloseAlways;\n case 'never':\n return autoCloseNever;\n }\n }\n _getLanguageDefinedShouldAutoClose(languageId, forQuotes) {\n const autoCloseBeforeSet = this.languageConfigurationService.getLanguageConfiguration(languageId).getAutoCloseBeforeSet(forQuotes);\n return c => autoCloseBeforeSet.indexOf(c) !== -1;\n }\n /**\n * Returns a visible column from a column.\n * @see {@link CursorColumns}\n */\n visibleColumnFromColumn(model, position) {\n return CursorColumns.visibleColumnFromColumn(model.getLineContent(position.lineNumber), position.column, this.tabSize);\n }\n /**\n * Returns a visible column from a column.\n * @see {@link CursorColumns}\n */\n columnFromVisibleColumn(model, lineNumber, visibleColumn) {\n const result = CursorColumns.columnFromVisibleColumn(model.getLineContent(lineNumber), visibleColumn, this.tabSize);\n const minColumn = model.getLineMinColumn(lineNumber);\n if (result < minColumn) {\n return minColumn;\n }\n const maxColumn = model.getLineMaxColumn(lineNumber);\n if (result > maxColumn) {\n return maxColumn;\n }\n return result;\n }\n}\nexport class CursorState {\n static fromModelState(modelState) {\n return new PartialModelCursorState(modelState);\n }\n static fromViewState(viewState) {\n return new PartialViewCursorState(viewState);\n }\n static fromModelSelection(modelSelection) {\n const selection = Selection.liftSelection(modelSelection);\n const modelState = new SingleCursorState(Range.fromPositions(selection.getSelectionStart()), 0 /* SelectionStartKind.Simple */, 0, selection.getPosition(), 0);\n return CursorState.fromModelState(modelState);\n }\n static fromModelSelections(modelSelections) {\n const states = [];\n for (let i = 0, len = modelSelections.length; i < len; i++) {\n states[i] = this.fromModelSelection(modelSelections[i]);\n }\n return states;\n }\n constructor(modelState, viewState) {\n this._cursorStateBrand = undefined;\n this.modelState = modelState;\n this.viewState = viewState;\n }\n equals(other) {\n return (this.viewState.equals(other.viewState) && this.modelState.equals(other.modelState));\n }\n}\nexport class PartialModelCursorState {\n constructor(modelState) {\n this.modelState = modelState;\n this.viewState = null;\n }\n}\nexport class PartialViewCursorState {\n constructor(viewState) {\n this.modelState = null;\n this.viewState = viewState;\n }\n}\n/**\n * Represents the cursor state on either the model or on the view model.\n */\nexport class SingleCursorState {\n constructor(selectionStart, selectionStartKind, selectionStartLeftoverVisibleColumns, position, leftoverVisibleColumns) {\n this.selectionStart = selectionStart;\n this.selectionStartKind = selectionStartKind;\n this.selectionStartLeftoverVisibleColumns = selectionStartLeftoverVisibleColumns;\n this.position = position;\n this.leftoverVisibleColumns = leftoverVisibleColumns;\n this._singleCursorStateBrand = undefined;\n this.selection = SingleCursorState._computeSelection(this.selectionStart, this.position);\n }\n equals(other) {\n return (this.selectionStartLeftoverVisibleColumns === other.selectionStartLeftoverVisibleColumns\n && this.leftoverVisibleColumns === other.leftoverVisibleColumns\n && this.selectionStartKind === other.selectionStartKind\n && this.position.equals(other.position)\n && this.selectionStart.equalsRange(other.selectionStart));\n }\n hasSelection() {\n return (!this.selection.isEmpty() || !this.selectionStart.isEmpty());\n }\n move(inSelectionMode, lineNumber, column, leftoverVisibleColumns) {\n if (inSelectionMode) {\n // move just position\n return new SingleCursorState(this.selectionStart, this.selectionStartKind, this.selectionStartLeftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n }\n else {\n // move everything\n return new SingleCursorState(new Range(lineNumber, column, lineNumber, column), 0 /* SelectionStartKind.Simple */, leftoverVisibleColumns, new Position(lineNumber, column), leftoverVisibleColumns);\n }\n }\n static _computeSelection(selectionStart, position) {\n if (selectionStart.isEmpty() || !position.isBeforeOrEqual(selectionStart.getStartPosition())) {\n return Selection.fromPositions(selectionStart.getStartPosition(), position);\n }\n else {\n return Selection.fromPositions(selectionStart.getEndPosition(), position);\n }\n }\n}\nexport class EditOperationResult {\n constructor(type, commands, opts) {\n this._editOperationResultBrand = undefined;\n this.type = type;\n this.commands = commands;\n this.shouldPushStackElementBefore = opts.shouldPushStackElementBefore;\n this.shouldPushStackElementAfter = opts.shouldPushStackElementAfter;\n }\n}\nexport function isQuote(ch) {\n return (ch === '\\'' || ch === '\"' || ch === '`');\n}\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","'use strict';\nmodule.exports = {};\n","class LRUCache {\n constructor () {\n this.max = 1000\n this.map = new Map()\n }\n\n get (key) {\n const value = this.map.get(key)\n if (value === undefined) {\n return undefined\n } else {\n // Remove the key from the map and add it to the end\n this.map.delete(key)\n this.map.set(key, value)\n return value\n }\n }\n\n delete (key) {\n return this.map.delete(key)\n }\n\n set (key, value) {\n const deleted = this.delete(key)\n\n if (!deleted && value !== undefined) {\n // If cache is full, delete the least recently used item\n if (this.map.size >= this.max) {\n const firstKey = this.map.keys().next().value\n this.delete(firstKey)\n }\n\n this.map.set(key, value)\n }\n\n return this\n }\n}\n\nmodule.exports = LRUCache\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport * as DomUtils from './dom.js';\nimport { mainWindow } from './window.js';\nimport * as arrays from '../common/arrays.js';\nimport { memoize } from '../common/decorators.js';\nimport { Event as EventUtils } from '../common/event.js';\nimport { Disposable, markAsSingleton, toDisposable } from '../common/lifecycle.js';\nimport { LinkedList } from '../common/linkedList.js';\nexport var EventType;\n(function (EventType) {\n EventType.Tap = '-monaco-gesturetap';\n EventType.Change = '-monaco-gesturechange';\n EventType.Start = '-monaco-gesturestart';\n EventType.End = '-monaco-gesturesend';\n EventType.Contextmenu = '-monaco-gesturecontextmenu';\n})(EventType || (EventType = {}));\nexport class Gesture extends Disposable {\n constructor() {\n super();\n this.dispatched = false;\n this.targets = new LinkedList();\n this.ignoreTargets = new LinkedList();\n this.activeTouches = {};\n this.handle = null;\n this._lastSetTapCountTime = 0;\n this._register(EventUtils.runAndSubscribe(DomUtils.onDidRegisterWindow, ({ window, disposables }) => {\n disposables.add(DomUtils.addDisposableListener(window.document, 'touchstart', (e) => this.onTouchStart(e), { passive: false }));\n disposables.add(DomUtils.addDisposableListener(window.document, 'touchend', (e) => this.onTouchEnd(window, e)));\n disposables.add(DomUtils.addDisposableListener(window.document, 'touchmove', (e) => this.onTouchMove(e), { passive: false }));\n }, { window: mainWindow, disposables: this._store }));\n }\n static addTarget(element) {\n if (!Gesture.isTouchDevice()) {\n return Disposable.None;\n }\n if (!Gesture.INSTANCE) {\n Gesture.INSTANCE = markAsSingleton(new Gesture());\n }\n const remove = Gesture.INSTANCE.targets.push(element);\n return toDisposable(remove);\n }\n static ignoreTarget(element) {\n if (!Gesture.isTouchDevice()) {\n return Disposable.None;\n }\n if (!Gesture.INSTANCE) {\n Gesture.INSTANCE = markAsSingleton(new Gesture());\n }\n const remove = Gesture.INSTANCE.ignoreTargets.push(element);\n return toDisposable(remove);\n }\n static isTouchDevice() {\n // `'ontouchstart' in window` always evaluates to true with typescript's modern typings. This causes `window` to be\n // `never` later in `window.navigator`. That's why we need the explicit `window as Window` cast\n return 'ontouchstart' in mainWindow || navigator.maxTouchPoints > 0;\n }\n dispose() {\n if (this.handle) {\n this.handle.dispose();\n this.handle = null;\n }\n super.dispose();\n }\n onTouchStart(e) {\n const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n if (this.handle) {\n this.handle.dispose();\n this.handle = null;\n }\n for (let i = 0, len = e.targetTouches.length; i < len; i++) {\n const touch = e.targetTouches.item(i);\n this.activeTouches[touch.identifier] = {\n id: touch.identifier,\n initialTarget: touch.target,\n initialTimeStamp: timestamp,\n initialPageX: touch.pageX,\n initialPageY: touch.pageY,\n rollingTimestamps: [timestamp],\n rollingPageX: [touch.pageX],\n rollingPageY: [touch.pageY]\n };\n const evt = this.newGestureEvent(EventType.Start, touch.target);\n evt.pageX = touch.pageX;\n evt.pageY = touch.pageY;\n this.dispatchEvent(evt);\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n onTouchEnd(targetWindow, e) {\n const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n const activeTouchCount = Object.keys(this.activeTouches).length;\n for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n const touch = e.changedTouches.item(i);\n if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n console.warn('move of an UNKNOWN touch', touch);\n continue;\n }\n const data = this.activeTouches[touch.identifier], holdTime = Date.now() - data.initialTimeStamp;\n if (holdTime < Gesture.HOLD_DELAY\n && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n const evt = this.newGestureEvent(EventType.Tap, data.initialTarget);\n evt.pageX = arrays.tail(data.rollingPageX);\n evt.pageY = arrays.tail(data.rollingPageY);\n this.dispatchEvent(evt);\n }\n else if (holdTime >= Gesture.HOLD_DELAY\n && Math.abs(data.initialPageX - arrays.tail(data.rollingPageX)) < 30\n && Math.abs(data.initialPageY - arrays.tail(data.rollingPageY)) < 30) {\n const evt = this.newGestureEvent(EventType.Contextmenu, data.initialTarget);\n evt.pageX = arrays.tail(data.rollingPageX);\n evt.pageY = arrays.tail(data.rollingPageY);\n this.dispatchEvent(evt);\n }\n else if (activeTouchCount === 1) {\n const finalX = arrays.tail(data.rollingPageX);\n const finalY = arrays.tail(data.rollingPageY);\n const deltaT = arrays.tail(data.rollingTimestamps) - data.rollingTimestamps[0];\n const deltaX = finalX - data.rollingPageX[0];\n const deltaY = finalY - data.rollingPageY[0];\n // We need to get all the dispatch targets on the start of the inertia event\n const dispatchTo = [...this.targets].filter(t => data.initialTarget instanceof Node && t.contains(data.initialTarget));\n this.inertia(targetWindow, dispatchTo, timestamp, // time now\n Math.abs(deltaX) / deltaT, // speed\n deltaX > 0 ? 1 : -1, // x direction\n finalX, // x now\n Math.abs(deltaY) / deltaT, // y speed\n deltaY > 0 ? 1 : -1, // y direction\n finalY // y now\n );\n }\n this.dispatchEvent(this.newGestureEvent(EventType.End, data.initialTarget));\n // forget about this touch\n delete this.activeTouches[touch.identifier];\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n newGestureEvent(type, initialTarget) {\n const event = document.createEvent('CustomEvent');\n event.initEvent(type, false, true);\n event.initialTarget = initialTarget;\n event.tapCount = 0;\n return event;\n }\n dispatchEvent(event) {\n if (event.type === EventType.Tap) {\n const currentTime = (new Date()).getTime();\n let setTapCount = 0;\n if (currentTime - this._lastSetTapCountTime > Gesture.CLEAR_TAP_COUNT_TIME) {\n setTapCount = 1;\n }\n else {\n setTapCount = 2;\n }\n this._lastSetTapCountTime = currentTime;\n event.tapCount = setTapCount;\n }\n else if (event.type === EventType.Change || event.type === EventType.Contextmenu) {\n // tap is canceled by scrolling or context menu\n this._lastSetTapCountTime = 0;\n }\n if (event.initialTarget instanceof Node) {\n for (const ignoreTarget of this.ignoreTargets) {\n if (ignoreTarget.contains(event.initialTarget)) {\n return;\n }\n }\n const targets = [];\n for (const target of this.targets) {\n if (target.contains(event.initialTarget)) {\n let depth = 0;\n let now = event.initialTarget;\n while (now && now !== target) {\n depth++;\n now = now.parentElement;\n }\n targets.push([depth, target]);\n }\n }\n targets.sort((a, b) => a[0] - b[0]);\n for (const [_, target] of targets) {\n target.dispatchEvent(event);\n this.dispatched = true;\n }\n }\n }\n inertia(targetWindow, dispatchTo, t1, vX, dirX, x, vY, dirY, y) {\n this.handle = DomUtils.scheduleAtNextAnimationFrame(targetWindow, () => {\n const now = Date.now();\n // velocity: old speed + accel_over_time\n const deltaT = now - t1;\n let delta_pos_x = 0, delta_pos_y = 0;\n let stopped = true;\n vX += Gesture.SCROLL_FRICTION * deltaT;\n vY += Gesture.SCROLL_FRICTION * deltaT;\n if (vX > 0) {\n stopped = false;\n delta_pos_x = dirX * vX * deltaT;\n }\n if (vY > 0) {\n stopped = false;\n delta_pos_y = dirY * vY * deltaT;\n }\n // dispatch translation event\n const evt = this.newGestureEvent(EventType.Change);\n evt.translationX = delta_pos_x;\n evt.translationY = delta_pos_y;\n dispatchTo.forEach(d => d.dispatchEvent(evt));\n if (!stopped) {\n this.inertia(targetWindow, dispatchTo, now, vX, dirX, x + delta_pos_x, vY, dirY, y + delta_pos_y);\n }\n });\n }\n onTouchMove(e) {\n const timestamp = Date.now(); // use Date.now() because on FF e.timeStamp is not epoch based.\n for (let i = 0, len = e.changedTouches.length; i < len; i++) {\n const touch = e.changedTouches.item(i);\n if (!this.activeTouches.hasOwnProperty(String(touch.identifier))) {\n console.warn('end of an UNKNOWN touch', touch);\n continue;\n }\n const data = this.activeTouches[touch.identifier];\n const evt = this.newGestureEvent(EventType.Change, data.initialTarget);\n evt.translationX = touch.pageX - arrays.tail(data.rollingPageX);\n evt.translationY = touch.pageY - arrays.tail(data.rollingPageY);\n evt.pageX = touch.pageX;\n evt.pageY = touch.pageY;\n this.dispatchEvent(evt);\n // only keep a few data points, to average the final speed\n if (data.rollingPageX.length > 3) {\n data.rollingPageX.shift();\n data.rollingPageY.shift();\n data.rollingTimestamps.shift();\n }\n data.rollingPageX.push(touch.pageX);\n data.rollingPageY.push(touch.pageY);\n data.rollingTimestamps.push(timestamp);\n }\n if (this.dispatched) {\n e.preventDefault();\n e.stopPropagation();\n this.dispatched = false;\n }\n }\n}\nGesture.SCROLL_FRICTION = -0.005;\nGesture.HOLD_DELAY = 700;\nGesture.CLEAR_TAP_COUNT_TIME = 400; // ms\n__decorate([\n memoize\n], Gesture, \"isTouchDevice\", null);\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color } from '../../../../base/common/color.js';\nexport class ParsedTokenThemeRule {\n constructor(token, index, fontStyle, foreground, background) {\n this._parsedThemeRuleBrand = undefined;\n this.token = token;\n this.index = index;\n this.fontStyle = fontStyle;\n this.foreground = foreground;\n this.background = background;\n }\n}\n/**\n * Parse a raw theme into rules.\n */\nexport function parseTokenTheme(source) {\n if (!source || !Array.isArray(source)) {\n return [];\n }\n const result = [];\n let resultLen = 0;\n for (let i = 0, len = source.length; i < len; i++) {\n const entry = source[i];\n let fontStyle = -1 /* FontStyle.NotSet */;\n if (typeof entry.fontStyle === 'string') {\n fontStyle = 0 /* FontStyle.None */;\n const segments = entry.fontStyle.split(' ');\n for (let j = 0, lenJ = segments.length; j < lenJ; j++) {\n const segment = segments[j];\n switch (segment) {\n case 'italic':\n fontStyle = fontStyle | 1 /* FontStyle.Italic */;\n break;\n case 'bold':\n fontStyle = fontStyle | 2 /* FontStyle.Bold */;\n break;\n case 'underline':\n fontStyle = fontStyle | 4 /* FontStyle.Underline */;\n break;\n case 'strikethrough':\n fontStyle = fontStyle | 8 /* FontStyle.Strikethrough */;\n break;\n }\n }\n }\n let foreground = null;\n if (typeof entry.foreground === 'string') {\n foreground = entry.foreground;\n }\n let background = null;\n if (typeof entry.background === 'string') {\n background = entry.background;\n }\n result[resultLen++] = new ParsedTokenThemeRule(entry.token || '', i, fontStyle, foreground, background);\n }\n return result;\n}\n/**\n * Resolve rules (i.e. inheritance).\n */\nfunction resolveParsedTokenThemeRules(parsedThemeRules, customTokenColors) {\n // Sort rules lexicographically, and then by index if necessary\n parsedThemeRules.sort((a, b) => {\n const r = strcmp(a.token, b.token);\n if (r !== 0) {\n return r;\n }\n return a.index - b.index;\n });\n // Determine defaults\n let defaultFontStyle = 0 /* FontStyle.None */;\n let defaultForeground = '000000';\n let defaultBackground = 'ffffff';\n while (parsedThemeRules.length >= 1 && parsedThemeRules[0].token === '') {\n const incomingDefaults = parsedThemeRules.shift();\n if (incomingDefaults.fontStyle !== -1 /* FontStyle.NotSet */) {\n defaultFontStyle = incomingDefaults.fontStyle;\n }\n if (incomingDefaults.foreground !== null) {\n defaultForeground = incomingDefaults.foreground;\n }\n if (incomingDefaults.background !== null) {\n defaultBackground = incomingDefaults.background;\n }\n }\n const colorMap = new ColorMap();\n // start with token colors from custom token themes\n for (const color of customTokenColors) {\n colorMap.getId(color);\n }\n const foregroundColorId = colorMap.getId(defaultForeground);\n const backgroundColorId = colorMap.getId(defaultBackground);\n const defaults = new ThemeTrieElementRule(defaultFontStyle, foregroundColorId, backgroundColorId);\n const root = new ThemeTrieElement(defaults);\n for (let i = 0, len = parsedThemeRules.length; i < len; i++) {\n const rule = parsedThemeRules[i];\n root.insert(rule.token, rule.fontStyle, colorMap.getId(rule.foreground), colorMap.getId(rule.background));\n }\n return new TokenTheme(colorMap, root);\n}\nconst colorRegExp = /^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/;\nexport class ColorMap {\n constructor() {\n this._lastColorId = 0;\n this._id2color = [];\n this._color2id = new Map();\n }\n getId(color) {\n if (color === null) {\n return 0;\n }\n const match = color.match(colorRegExp);\n if (!match) {\n throw new Error('Illegal value for token color: ' + color);\n }\n color = match[1].toUpperCase();\n let value = this._color2id.get(color);\n if (value) {\n return value;\n }\n value = ++this._lastColorId;\n this._color2id.set(color, value);\n this._id2color[value] = Color.fromHex('#' + color);\n return value;\n }\n getColorMap() {\n return this._id2color.slice(0);\n }\n}\nexport class TokenTheme {\n static createFromRawTokenTheme(source, customTokenColors) {\n return this.createFromParsedTokenTheme(parseTokenTheme(source), customTokenColors);\n }\n static createFromParsedTokenTheme(source, customTokenColors) {\n return resolveParsedTokenThemeRules(source, customTokenColors);\n }\n constructor(colorMap, root) {\n this._colorMap = colorMap;\n this._root = root;\n this._cache = new Map();\n }\n getColorMap() {\n return this._colorMap.getColorMap();\n }\n _match(token) {\n return this._root.match(token);\n }\n match(languageId, token) {\n // The cache contains the metadata without the language bits set.\n let result = this._cache.get(token);\n if (typeof result === 'undefined') {\n const rule = this._match(token);\n const standardToken = toStandardTokenType(token);\n result = (rule.metadata\n | (standardToken << 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */)) >>> 0;\n this._cache.set(token, result);\n }\n return (result\n | (languageId << 0 /* MetadataConsts.LANGUAGEID_OFFSET */)) >>> 0;\n }\n}\nconst STANDARD_TOKEN_TYPE_REGEXP = /\\b(comment|string|regex|regexp)\\b/;\nexport function toStandardTokenType(tokenType) {\n const m = tokenType.match(STANDARD_TOKEN_TYPE_REGEXP);\n if (!m) {\n return 0 /* StandardTokenType.Other */;\n }\n switch (m[1]) {\n case 'comment':\n return 1 /* StandardTokenType.Comment */;\n case 'string':\n return 2 /* StandardTokenType.String */;\n case 'regex':\n return 3 /* StandardTokenType.RegEx */;\n case 'regexp':\n return 3 /* StandardTokenType.RegEx */;\n }\n throw new Error('Unexpected match for standard token type!');\n}\nexport function strcmp(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n}\nexport class ThemeTrieElementRule {\n constructor(fontStyle, foreground, background) {\n this._themeTrieElementRuleBrand = undefined;\n this._fontStyle = fontStyle;\n this._foreground = foreground;\n this._background = background;\n this.metadata = ((this._fontStyle << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n | (this._foreground << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n | (this._background << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n }\n clone() {\n return new ThemeTrieElementRule(this._fontStyle, this._foreground, this._background);\n }\n acceptOverwrite(fontStyle, foreground, background) {\n if (fontStyle !== -1 /* FontStyle.NotSet */) {\n this._fontStyle = fontStyle;\n }\n if (foreground !== 0 /* ColorId.None */) {\n this._foreground = foreground;\n }\n if (background !== 0 /* ColorId.None */) {\n this._background = background;\n }\n this.metadata = ((this._fontStyle << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n | (this._foreground << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n | (this._background << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\n }\n}\nexport class ThemeTrieElement {\n constructor(mainRule) {\n this._themeTrieElementBrand = undefined;\n this._mainRule = mainRule;\n this._children = new Map();\n }\n match(token) {\n if (token === '') {\n return this._mainRule;\n }\n const dotIndex = token.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = token;\n tail = '';\n }\n else {\n head = token.substring(0, dotIndex);\n tail = token.substring(dotIndex + 1);\n }\n const child = this._children.get(head);\n if (typeof child !== 'undefined') {\n return child.match(tail);\n }\n return this._mainRule;\n }\n insert(token, fontStyle, foreground, background) {\n if (token === '') {\n // Merge into the main rule\n this._mainRule.acceptOverwrite(fontStyle, foreground, background);\n return;\n }\n const dotIndex = token.indexOf('.');\n let head;\n let tail;\n if (dotIndex === -1) {\n head = token;\n tail = '';\n }\n else {\n head = token.substring(0, dotIndex);\n tail = token.substring(dotIndex + 1);\n }\n let child = this._children.get(head);\n if (typeof child === 'undefined') {\n child = new ThemeTrieElement(this._mainRule.clone());\n this._children.set(head, child);\n }\n child.insert(tail, fontStyle, foreground, background);\n }\n}\nexport function generateTokensCSSForColorMap(colorMap) {\n const rules = [];\n for (let i = 1, len = colorMap.length; i < len; i++) {\n const color = colorMap[i];\n rules[i] = `.mtk${i} { color: ${color}; }`;\n }\n rules.push('.mtki { font-style: italic; }');\n rules.push('.mtkb { font-weight: bold; }');\n rules.push('.mtku { text-decoration: underline; text-underline-position: under; }');\n rules.push('.mtks { text-decoration: line-through; }');\n rules.push('.mtks.mtku { text-decoration: underline line-through; text-underline-position: under; }');\n return rules.join('\\n');\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { editorActiveIndentGuide1, editorIndentGuide1 } from '../../common/core/editorColorRegistry.js';\nimport { editorBackground, editorForeground, editorInactiveSelection, editorSelectionHighlight } from '../../../platform/theme/common/colorRegistry.js';\n/* -------------------------------- Begin vs theme -------------------------------- */\nexport const vs = {\n base: 'vs',\n inherit: false,\n rules: [\n { token: '', foreground: '000000', background: 'fffffe' },\n { token: 'invalid', foreground: 'cd3131' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '001188' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'constant', foreground: 'dd0000' },\n { token: 'comment', foreground: '008000' },\n { token: 'number', foreground: '098658' },\n { token: 'number.hex', foreground: '3030c0' },\n { token: 'regexp', foreground: '800000' },\n { token: 'annotation', foreground: '808080' },\n { token: 'type', foreground: '008080' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'delimiter.xml', foreground: '0000FF' },\n { token: 'tag', foreground: '800000' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'FF0000' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: 'A31515' },\n { token: 'string.value.json', foreground: '0451A5' },\n { token: 'attribute.name', foreground: 'FF0000' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'attribute.value.number', foreground: '098658' },\n { token: 'attribute.value.unit', foreground: '098658' },\n { token: 'attribute.value.html', foreground: '0000FF' },\n { token: 'attribute.value.xml', foreground: '0000FF' },\n { token: 'string', foreground: 'A31515' },\n { token: 'string.html', foreground: '0000FF' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'string.yaml', foreground: '0451A5' },\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.json', foreground: '0451A5' },\n { token: 'keyword.flow', foreground: 'AF00DB' },\n { token: 'keyword.flow.scss', foreground: '0000FF' },\n { token: 'operator.scss', foreground: '666666' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '666666' },\n { token: 'predefined.sql', foreground: 'C700C7' },\n ],\n colors: {\n [editorBackground]: '#FFFFFE',\n [editorForeground]: '#000000',\n [editorInactiveSelection]: '#E5EBF1',\n [editorIndentGuide1]: '#D3D3D3',\n [editorActiveIndentGuide1]: '#939393',\n [editorSelectionHighlight]: '#ADD6FF4D'\n }\n};\n/* -------------------------------- End vs theme -------------------------------- */\n/* -------------------------------- Begin vs-dark theme -------------------------------- */\nexport const vs_dark = {\n base: 'vs-dark',\n inherit: false,\n rules: [\n { token: '', foreground: 'D4D4D4', background: '1E1E1E' },\n { token: 'invalid', foreground: 'f44747' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '74B0DF' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'variable.parameter', foreground: '9CDCFE' },\n { token: 'constant', foreground: '569CD6' },\n { token: 'comment', foreground: '608B4E' },\n { token: 'number', foreground: 'B5CEA8' },\n { token: 'number.hex', foreground: '5BB498' },\n { token: 'regexp', foreground: 'B46695' },\n { token: 'annotation', foreground: 'cc6666' },\n { token: 'type', foreground: '3DC9B0' },\n { token: 'delimiter', foreground: 'DCDCDC' },\n { token: 'delimiter.html', foreground: '808080' },\n { token: 'delimiter.xml', foreground: '808080' },\n { token: 'tag', foreground: '569CD6' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: 'A79873' },\n { token: 'meta.tag', foreground: 'CE9178' },\n { token: 'metatag', foreground: 'DD6A6F' },\n { token: 'metatag.content.html', foreground: '9CDCFE' },\n { token: 'metatag.html', foreground: '569CD6' },\n { token: 'metatag.xml', foreground: '569CD6' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '9CDCFE' },\n { token: 'string.key.json', foreground: '9CDCFE' },\n { token: 'string.value.json', foreground: 'CE9178' },\n { token: 'attribute.name', foreground: '9CDCFE' },\n { token: 'attribute.value', foreground: 'CE9178' },\n { token: 'attribute.value.number.css', foreground: 'B5CEA8' },\n { token: 'attribute.value.unit.css', foreground: 'B5CEA8' },\n { token: 'attribute.value.hex.css', foreground: 'D4D4D4' },\n { token: 'string', foreground: 'CE9178' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.flow', foreground: 'C586C0' },\n { token: 'keyword.json', foreground: 'CE9178' },\n { token: 'keyword.flow.scss', foreground: '569CD6' },\n { token: 'operator.scss', foreground: '909090' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '909090' },\n { token: 'predefined.sql', foreground: 'FF00FF' },\n ],\n colors: {\n [editorBackground]: '#1E1E1E',\n [editorForeground]: '#D4D4D4',\n [editorInactiveSelection]: '#3A3D41',\n [editorIndentGuide1]: '#404040',\n [editorActiveIndentGuide1]: '#707070',\n [editorSelectionHighlight]: '#ADD6FF26'\n }\n};\n/* -------------------------------- End vs-dark theme -------------------------------- */\n/* -------------------------------- Begin hc-black theme -------------------------------- */\nexport const hc_black = {\n base: 'hc-black',\n inherit: false,\n rules: [\n { token: '', foreground: 'FFFFFF', background: '000000' },\n { token: 'invalid', foreground: 'f44747' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '1AEBFF' },\n { token: 'variable.parameter', foreground: '9CDCFE' },\n { token: 'constant', foreground: '569CD6' },\n { token: 'comment', foreground: '608B4E' },\n { token: 'number', foreground: 'FFFFFF' },\n { token: 'regexp', foreground: 'C0C0C0' },\n { token: 'annotation', foreground: '569CD6' },\n { token: 'type', foreground: '3DC9B0' },\n { token: 'delimiter', foreground: 'FFFF00' },\n { token: 'delimiter.html', foreground: 'FFFF00' },\n { token: 'tag', foreground: '569CD6' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta', foreground: 'D4D4D4' },\n { token: 'meta.tag', foreground: 'CE9178' },\n { token: 'metatag', foreground: '569CD6' },\n { token: 'metatag.content.html', foreground: '1AEBFF' },\n { token: 'metatag.html', foreground: '569CD6' },\n { token: 'metatag.xml', foreground: '569CD6' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '9CDCFE' },\n { token: 'string.key', foreground: '9CDCFE' },\n { token: 'string.value', foreground: 'CE9178' },\n { token: 'attribute.name', foreground: '569CD6' },\n { token: 'attribute.value', foreground: '3FF23F' },\n { token: 'string', foreground: 'CE9178' },\n { token: 'string.sql', foreground: 'FF0000' },\n { token: 'keyword', foreground: '569CD6' },\n { token: 'keyword.flow', foreground: 'C586C0' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '909090' },\n { token: 'predefined.sql', foreground: 'FF00FF' },\n ],\n colors: {\n [editorBackground]: '#000000',\n [editorForeground]: '#FFFFFF',\n [editorIndentGuide1]: '#FFFFFF',\n [editorActiveIndentGuide1]: '#FFFFFF',\n }\n};\n/* -------------------------------- End hc-black theme -------------------------------- */\n/* -------------------------------- Begin hc-light theme -------------------------------- */\nexport const hc_light = {\n base: 'hc-light',\n inherit: false,\n rules: [\n { token: '', foreground: '292929', background: 'FFFFFF' },\n { token: 'invalid', foreground: 'B5200D' },\n { token: 'emphasis', fontStyle: 'italic' },\n { token: 'strong', fontStyle: 'bold' },\n { token: 'variable', foreground: '264F70' },\n { token: 'variable.predefined', foreground: '4864AA' },\n { token: 'constant', foreground: 'dd0000' },\n { token: 'comment', foreground: '008000' },\n { token: 'number', foreground: '098658' },\n { token: 'number.hex', foreground: '3030c0' },\n { token: 'regexp', foreground: '800000' },\n { token: 'annotation', foreground: '808080' },\n { token: 'type', foreground: '008080' },\n { token: 'delimiter', foreground: '000000' },\n { token: 'delimiter.html', foreground: '383838' },\n { token: 'tag', foreground: '800000' },\n { token: 'tag.id.pug', foreground: '4F76AC' },\n { token: 'tag.class.pug', foreground: '4F76AC' },\n { token: 'meta.scss', foreground: '800000' },\n { token: 'metatag', foreground: 'e00000' },\n { token: 'metatag.content.html', foreground: 'B5200D' },\n { token: 'metatag.html', foreground: '808080' },\n { token: 'metatag.xml', foreground: '808080' },\n { token: 'metatag.php', fontStyle: 'bold' },\n { token: 'key', foreground: '863B00' },\n { token: 'string.key.json', foreground: 'A31515' },\n { token: 'string.value.json', foreground: '0451A5' },\n { token: 'attribute.name', foreground: '264F78' },\n { token: 'attribute.value', foreground: '0451A5' },\n { token: 'string', foreground: 'A31515' },\n { token: 'string.sql', foreground: 'B5200D' },\n { token: 'keyword', foreground: '0000FF' },\n { token: 'keyword.flow', foreground: 'AF00DB' },\n { token: 'operator.sql', foreground: '778899' },\n { token: 'operator.swift', foreground: '666666' },\n { token: 'predefined.sql', foreground: 'C700C7' },\n ],\n colors: {\n [editorBackground]: '#FFFFFF',\n [editorForeground]: '#292929',\n [editorIndentGuide1]: '#292929',\n [editorActiveIndentGuide1]: '#292929',\n }\n};\n/* -------------------------------- End hc-light theme -------------------------------- */\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asCSSPropertyValue, asCSSUrl } from '../../../base/browser/dom.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { getIconRegistry } from '../common/iconRegistry.js';\nexport function getIconsStyleSheet(themeService) {\n const disposable = new DisposableStore();\n const onDidChangeEmmiter = disposable.add(new Emitter());\n const iconRegistry = getIconRegistry();\n disposable.add(iconRegistry.onDidChange(() => onDidChangeEmmiter.fire()));\n if (themeService) {\n disposable.add(themeService.onDidProductIconThemeChange(() => onDidChangeEmmiter.fire()));\n }\n return {\n dispose: () => disposable.dispose(),\n onDidChange: onDidChangeEmmiter.event,\n getCSS() {\n const productIconTheme = themeService ? themeService.getProductIconTheme() : new UnthemedProductIconTheme();\n const usedFontIds = {};\n const rules = [];\n const rootAttribs = [];\n for (const contribution of iconRegistry.getIcons()) {\n const definition = productIconTheme.getIcon(contribution);\n if (!definition) {\n continue;\n }\n const fontContribution = definition.font;\n const fontFamilyVar = `--vscode-icon-${contribution.id}-font-family`;\n const contentVar = `--vscode-icon-${contribution.id}-content`;\n if (fontContribution) {\n usedFontIds[fontContribution.id] = fontContribution.definition;\n rootAttribs.push(`${fontFamilyVar}: ${asCSSPropertyValue(fontContribution.id)};`, `${contentVar}: '${definition.fontCharacter}';`);\n rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; font-family: ${asCSSPropertyValue(fontContribution.id)}; }`);\n }\n else {\n rootAttribs.push(`${contentVar}: '${definition.fontCharacter}'; ${fontFamilyVar}: 'codicon';`);\n rules.push(`.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; }`);\n }\n }\n for (const id in usedFontIds) {\n const definition = usedFontIds[id];\n const fontWeight = definition.weight ? `font-weight: ${definition.weight};` : '';\n const fontStyle = definition.style ? `font-style: ${definition.style};` : '';\n const src = definition.src.map(l => `${asCSSUrl(l.location)} format('${l.format}')`).join(', ');\n rules.push(`@font-face { src: ${src}; font-family: ${asCSSPropertyValue(id)};${fontWeight}${fontStyle} font-display: block; }`);\n }\n rules.push(`:root { ${rootAttribs.join(' ')} }`);\n return rules.join('\\n');\n }\n };\n}\nexport class UnthemedProductIconTheme {\n getIcon(contribution) {\n const iconRegistry = getIconRegistry();\n let definition = contribution.defaults;\n while (ThemeIcon.isThemeIcon(definition)) {\n const c = iconRegistry.getIcon(definition.id);\n if (!c) {\n return undefined;\n }\n definition = c.defaults;\n }\n return definition;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../base/browser/dom.js';\nimport { addMatchMediaChangeListener } from '../../../base/browser/browser.js';\nimport { Color } from '../../../base/common/color.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { TokenizationRegistry } from '../../common/languages.js';\nimport { TokenMetadata } from '../../common/encodedTokenAttributes.js';\nimport { TokenTheme, generateTokensCSSForColorMap } from '../../common/languages/supports/tokenization.js';\nimport { hc_black, hc_light, vs, vs_dark } from '../common/themes.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { asCssVariableName, Extensions } from '../../../platform/theme/common/colorRegistry.js';\nimport { Extensions as ThemingExtensions } from '../../../platform/theme/common/themeService.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { ColorScheme, isDark, isHighContrast } from '../../../platform/theme/common/theme.js';\nimport { getIconsStyleSheet, UnthemedProductIconTheme } from '../../../platform/theme/browser/iconsStyleSheet.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nexport const VS_LIGHT_THEME_NAME = 'vs';\nexport const VS_DARK_THEME_NAME = 'vs-dark';\nexport const HC_BLACK_THEME_NAME = 'hc-black';\nexport const HC_LIGHT_THEME_NAME = 'hc-light';\nconst colorRegistry = Registry.as(Extensions.ColorContribution);\nconst themingRegistry = Registry.as(ThemingExtensions.ThemingContribution);\nclass StandaloneTheme {\n constructor(name, standaloneThemeData) {\n this.semanticHighlighting = false;\n this.themeData = standaloneThemeData;\n const base = standaloneThemeData.base;\n if (name.length > 0) {\n if (isBuiltinTheme(name)) {\n this.id = name;\n }\n else {\n this.id = base + ' ' + name;\n }\n this.themeName = name;\n }\n else {\n this.id = base;\n this.themeName = base;\n }\n this.colors = null;\n this.defaultColors = Object.create(null);\n this._tokenTheme = null;\n }\n get base() {\n return this.themeData.base;\n }\n notifyBaseUpdated() {\n if (this.themeData.inherit) {\n this.colors = null;\n this._tokenTheme = null;\n }\n }\n getColors() {\n if (!this.colors) {\n const colors = new Map();\n for (const id in this.themeData.colors) {\n colors.set(id, Color.fromHex(this.themeData.colors[id]));\n }\n if (this.themeData.inherit) {\n const baseData = getBuiltinRules(this.themeData.base);\n for (const id in baseData.colors) {\n if (!colors.has(id)) {\n colors.set(id, Color.fromHex(baseData.colors[id]));\n }\n }\n }\n this.colors = colors;\n }\n return this.colors;\n }\n getColor(colorId, useDefault) {\n const color = this.getColors().get(colorId);\n if (color) {\n return color;\n }\n if (useDefault !== false) {\n return this.getDefault(colorId);\n }\n return undefined;\n }\n getDefault(colorId) {\n let color = this.defaultColors[colorId];\n if (color) {\n return color;\n }\n color = colorRegistry.resolveDefaultColor(colorId, this);\n this.defaultColors[colorId] = color;\n return color;\n }\n defines(colorId) {\n return this.getColors().has(colorId);\n }\n get type() {\n switch (this.base) {\n case VS_LIGHT_THEME_NAME: return ColorScheme.LIGHT;\n case HC_BLACK_THEME_NAME: return ColorScheme.HIGH_CONTRAST_DARK;\n case HC_LIGHT_THEME_NAME: return ColorScheme.HIGH_CONTRAST_LIGHT;\n default: return ColorScheme.DARK;\n }\n }\n get tokenTheme() {\n if (!this._tokenTheme) {\n let rules = [];\n let encodedTokensColors = [];\n if (this.themeData.inherit) {\n const baseData = getBuiltinRules(this.themeData.base);\n rules = baseData.rules;\n if (baseData.encodedTokensColors) {\n encodedTokensColors = baseData.encodedTokensColors;\n }\n }\n // Pick up default colors from `editor.foreground` and `editor.background` if available\n const editorForeground = this.themeData.colors['editor.foreground'];\n const editorBackground = this.themeData.colors['editor.background'];\n if (editorForeground || editorBackground) {\n const rule = { token: '' };\n if (editorForeground) {\n rule.foreground = editorForeground;\n }\n if (editorBackground) {\n rule.background = editorBackground;\n }\n rules.push(rule);\n }\n rules = rules.concat(this.themeData.rules);\n if (this.themeData.encodedTokensColors) {\n encodedTokensColors = this.themeData.encodedTokensColors;\n }\n this._tokenTheme = TokenTheme.createFromRawTokenTheme(rules, encodedTokensColors);\n }\n return this._tokenTheme;\n }\n getTokenStyleMetadata(type, modifiers, modelLanguage) {\n // use theme rules match\n const style = this.tokenTheme._match([type].concat(modifiers).join('.'));\n const metadata = style.metadata;\n const foreground = TokenMetadata.getForeground(metadata);\n const fontStyle = TokenMetadata.getFontStyle(metadata);\n return {\n foreground: foreground,\n italic: Boolean(fontStyle & 1 /* FontStyle.Italic */),\n bold: Boolean(fontStyle & 2 /* FontStyle.Bold */),\n underline: Boolean(fontStyle & 4 /* FontStyle.Underline */),\n strikethrough: Boolean(fontStyle & 8 /* FontStyle.Strikethrough */)\n };\n }\n}\nfunction isBuiltinTheme(themeName) {\n return (themeName === VS_LIGHT_THEME_NAME\n || themeName === VS_DARK_THEME_NAME\n || themeName === HC_BLACK_THEME_NAME\n || themeName === HC_LIGHT_THEME_NAME);\n}\nfunction getBuiltinRules(builtinTheme) {\n switch (builtinTheme) {\n case VS_LIGHT_THEME_NAME:\n return vs;\n case VS_DARK_THEME_NAME:\n return vs_dark;\n case HC_BLACK_THEME_NAME:\n return hc_black;\n case HC_LIGHT_THEME_NAME:\n return hc_light;\n }\n}\nfunction newBuiltInTheme(builtinTheme) {\n const themeData = getBuiltinRules(builtinTheme);\n return new StandaloneTheme(builtinTheme, themeData);\n}\nexport class StandaloneThemeService extends Disposable {\n constructor() {\n super();\n this._onColorThemeChange = this._register(new Emitter());\n this.onDidColorThemeChange = this._onColorThemeChange.event;\n this._onProductIconThemeChange = this._register(new Emitter());\n this.onDidProductIconThemeChange = this._onProductIconThemeChange.event;\n this._environment = Object.create(null);\n this._builtInProductIconTheme = new UnthemedProductIconTheme();\n this._autoDetectHighContrast = true;\n this._knownThemes = new Map();\n this._knownThemes.set(VS_LIGHT_THEME_NAME, newBuiltInTheme(VS_LIGHT_THEME_NAME));\n this._knownThemes.set(VS_DARK_THEME_NAME, newBuiltInTheme(VS_DARK_THEME_NAME));\n this._knownThemes.set(HC_BLACK_THEME_NAME, newBuiltInTheme(HC_BLACK_THEME_NAME));\n this._knownThemes.set(HC_LIGHT_THEME_NAME, newBuiltInTheme(HC_LIGHT_THEME_NAME));\n const iconsStyleSheet = this._register(getIconsStyleSheet(this));\n this._codiconCSS = iconsStyleSheet.getCSS();\n this._themeCSS = '';\n this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n this._globalStyleElement = null;\n this._styleElements = [];\n this._colorMapOverride = null;\n this.setTheme(VS_LIGHT_THEME_NAME);\n this._onOSSchemeChanged();\n this._register(iconsStyleSheet.onDidChange(() => {\n this._codiconCSS = iconsStyleSheet.getCSS();\n this._updateCSS();\n }));\n addMatchMediaChangeListener(mainWindow, '(forced-colors: active)', () => {\n this._onOSSchemeChanged();\n });\n }\n registerEditorContainer(domNode) {\n if (dom.isInShadowDOM(domNode)) {\n return this._registerShadowDomContainer(domNode);\n }\n return this._registerRegularEditorContainer();\n }\n _registerRegularEditorContainer() {\n if (!this._globalStyleElement) {\n this._globalStyleElement = dom.createStyleSheet(undefined, style => {\n style.className = 'monaco-colors';\n style.textContent = this._allCSS;\n });\n this._styleElements.push(this._globalStyleElement);\n }\n return Disposable.None;\n }\n _registerShadowDomContainer(domNode) {\n const styleElement = dom.createStyleSheet(domNode, style => {\n style.className = 'monaco-colors';\n style.textContent = this._allCSS;\n });\n this._styleElements.push(styleElement);\n return {\n dispose: () => {\n for (let i = 0; i < this._styleElements.length; i++) {\n if (this._styleElements[i] === styleElement) {\n this._styleElements.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n defineTheme(themeName, themeData) {\n if (!/^[a-z0-9\\-]+$/i.test(themeName)) {\n throw new Error('Illegal theme name!');\n }\n if (!isBuiltinTheme(themeData.base) && !isBuiltinTheme(themeName)) {\n throw new Error('Illegal theme base!');\n }\n // set or replace theme\n this._knownThemes.set(themeName, new StandaloneTheme(themeName, themeData));\n if (isBuiltinTheme(themeName)) {\n this._knownThemes.forEach(theme => {\n if (theme.base === themeName) {\n theme.notifyBaseUpdated();\n }\n });\n }\n if (this._theme.themeName === themeName) {\n this.setTheme(themeName); // refresh theme\n }\n }\n getColorTheme() {\n return this._theme;\n }\n setColorMapOverride(colorMapOverride) {\n this._colorMapOverride = colorMapOverride;\n this._updateThemeOrColorMap();\n }\n setTheme(themeName) {\n let theme;\n if (this._knownThemes.has(themeName)) {\n theme = this._knownThemes.get(themeName);\n }\n else {\n theme = this._knownThemes.get(VS_LIGHT_THEME_NAME);\n }\n this._updateActualTheme(theme);\n }\n _updateActualTheme(desiredTheme) {\n if (!desiredTheme || this._theme === desiredTheme) {\n // Nothing to do\n return;\n }\n this._theme = desiredTheme;\n this._updateThemeOrColorMap();\n }\n _onOSSchemeChanged() {\n if (this._autoDetectHighContrast) {\n const wantsHighContrast = mainWindow.matchMedia(`(forced-colors: active)`).matches;\n if (wantsHighContrast !== isHighContrast(this._theme.type)) {\n // switch to high contrast or non-high contrast but stick to dark or light\n let newThemeName;\n if (isDark(this._theme.type)) {\n newThemeName = wantsHighContrast ? HC_BLACK_THEME_NAME : VS_DARK_THEME_NAME;\n }\n else {\n newThemeName = wantsHighContrast ? HC_LIGHT_THEME_NAME : VS_LIGHT_THEME_NAME;\n }\n this._updateActualTheme(this._knownThemes.get(newThemeName));\n }\n }\n }\n setAutoDetectHighContrast(autoDetectHighContrast) {\n this._autoDetectHighContrast = autoDetectHighContrast;\n this._onOSSchemeChanged();\n }\n _updateThemeOrColorMap() {\n const cssRules = [];\n const hasRule = {};\n const ruleCollector = {\n addRule: (rule) => {\n if (!hasRule[rule]) {\n cssRules.push(rule);\n hasRule[rule] = true;\n }\n }\n };\n themingRegistry.getThemingParticipants().forEach(p => p(this._theme, ruleCollector, this._environment));\n const colorVariables = [];\n for (const item of colorRegistry.getColors()) {\n const color = this._theme.getColor(item.id, true);\n if (color) {\n colorVariables.push(`${asCssVariableName(item.id)}: ${color.toString()};`);\n }\n }\n ruleCollector.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${colorVariables.join('\\n')} }`);\n const colorMap = this._colorMapOverride || this._theme.tokenTheme.getColorMap();\n ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));\n this._themeCSS = cssRules.join('\\n');\n this._updateCSS();\n TokenizationRegistry.setColorMap(colorMap);\n this._onColorThemeChange.fire(this._theme);\n }\n _updateCSS() {\n this._allCSS = `${this._codiconCSS}\\n${this._themeCSS}`;\n this._styleElements.forEach(styleElement => styleElement.textContent = this._allCSS);\n }\n getFileIconTheme() {\n return {\n hasFileIcons: false,\n hasFolderIcons: false,\n hidesExplorerArrows: false\n };\n }\n getProductIconTheme() {\n return this._builtInProductIconTheme;\n }\n}\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class ServiceCollection {\n constructor(...entries) {\n this._entries = new Map();\n for (const [id, service] of entries) {\n this.set(id, service);\n }\n }\n set(id, instanceOrDescriptor) {\n const result = this._entries.get(id);\n this._entries.set(id, instanceOrDescriptor);\n return result;\n }\n get(id) {\n return this._entries.get(id);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { renderMarkdown } from '../../markdownRenderer.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { List } from '../list/listWidget.js';\nimport * as arrays from '../../../common/arrays.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { KeyCodeUtils } from '../../../common/keyCodes.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './selectBoxCustom.css';\nimport { localize } from '../../../../nls.js';\nconst $ = dom.$;\nconst SELECT_OPTION_ENTRY_TEMPLATE_ID = 'selectOption.entry.template';\nclass SelectListRenderer {\n get templateId() { return SELECT_OPTION_ENTRY_TEMPLATE_ID; }\n renderTemplate(container) {\n const data = Object.create(null);\n data.root = container;\n data.text = dom.append(container, $('.option-text'));\n data.detail = dom.append(container, $('.option-detail'));\n data.decoratorRight = dom.append(container, $('.option-decorator-right'));\n return data;\n }\n renderElement(element, index, templateData) {\n const data = templateData;\n const text = element.text;\n const detail = element.detail;\n const decoratorRight = element.decoratorRight;\n const isDisabled = element.isDisabled;\n data.text.textContent = text;\n data.detail.textContent = !!detail ? detail : '';\n data.decoratorRight.innerText = !!decoratorRight ? decoratorRight : '';\n // pseudo-select disabled option\n if (isDisabled) {\n data.root.classList.add('option-disabled');\n }\n else {\n // Make sure we do class removal from prior template rendering\n data.root.classList.remove('option-disabled');\n }\n }\n disposeTemplate(_templateData) {\n // noop\n }\n}\nexport class SelectBoxList extends Disposable {\n constructor(options, selected, contextViewProvider, styles, selectBoxOptions) {\n super();\n this.options = [];\n this._currentSelection = 0;\n this._hasDetails = false;\n this._skipLayout = false;\n this._sticky = false; // for dev purposes only\n this._isVisible = false;\n this.styles = styles;\n this.selectBoxOptions = selectBoxOptions || Object.create(null);\n if (typeof this.selectBoxOptions.minBottomMargin !== 'number') {\n this.selectBoxOptions.minBottomMargin = SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN;\n }\n else if (this.selectBoxOptions.minBottomMargin < 0) {\n this.selectBoxOptions.minBottomMargin = 0;\n }\n this.selectElement = document.createElement('select');\n // Use custom CSS vars for padding calculation\n this.selectElement.className = 'monaco-select-box monaco-select-box-dropdown-padding';\n if (typeof this.selectBoxOptions.ariaLabel === 'string') {\n this.selectElement.setAttribute('aria-label', this.selectBoxOptions.ariaLabel);\n }\n if (typeof this.selectBoxOptions.ariaDescription === 'string') {\n this.selectElement.setAttribute('aria-description', this.selectBoxOptions.ariaDescription);\n }\n this._onDidSelect = new Emitter();\n this._register(this._onDidSelect);\n this.registerListeners();\n this.constructSelectDropDown(contextViewProvider);\n this.selected = selected || 0;\n if (options) {\n this.setOptions(options, selected);\n }\n this.initStyleSheet();\n }\n setTitle(title) {\n if (!this._hover && title) {\n this._hover = this._register(getBaseLayerHoverDelegate().setupUpdatableHover(getDefaultHoverDelegate('mouse'), this.selectElement, title));\n }\n else if (this._hover) {\n this._hover.update(title);\n }\n }\n // IDelegate - List renderer\n getHeight() {\n return 22;\n }\n getTemplateId() {\n return SELECT_OPTION_ENTRY_TEMPLATE_ID;\n }\n constructSelectDropDown(contextViewProvider) {\n // SetUp ContextView container to hold select Dropdown\n this.contextViewProvider = contextViewProvider;\n this.selectDropDownContainer = dom.$('.monaco-select-box-dropdown-container');\n // Use custom CSS vars for padding calculation (shared with parent select)\n this.selectDropDownContainer.classList.add('monaco-select-box-dropdown-padding');\n // Setup container for select option details\n this.selectionDetailsPane = dom.append(this.selectDropDownContainer, $('.select-box-details-pane'));\n // Create span flex box item/div we can measure and control\n const widthControlOuterDiv = dom.append(this.selectDropDownContainer, $('.select-box-dropdown-container-width-control'));\n const widthControlInnerDiv = dom.append(widthControlOuterDiv, $('.width-control-div'));\n this.widthControlElement = document.createElement('span');\n this.widthControlElement.className = 'option-text-width-control';\n dom.append(widthControlInnerDiv, this.widthControlElement);\n // Always default to below position\n this._dropDownPosition = 0 /* AnchorPosition.BELOW */;\n // Inline stylesheet for themes\n this.styleElement = dom.createStyleSheet(this.selectDropDownContainer);\n // Prevent dragging of dropdown #114329\n this.selectDropDownContainer.setAttribute('draggable', 'true');\n this._register(dom.addDisposableListener(this.selectDropDownContainer, dom.EventType.DRAG_START, (e) => {\n dom.EventHelper.stop(e, true);\n }));\n }\n registerListeners() {\n // Parent native select keyboard listeners\n this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {\n this.selected = e.target.selectedIndex;\n this._onDidSelect.fire({\n index: e.target.selectedIndex,\n selected: e.target.value\n });\n if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n this.setTitle(this.options[this.selected].text);\n }\n }));\n // Have to implement both keyboard and mouse controllers to handle disabled options\n // Intercept mouse events to override normal select actions on parents\n this._register(dom.addDisposableListener(this.selectElement, dom.EventType.CLICK, (e) => {\n dom.EventHelper.stop(e);\n if (this._isVisible) {\n this.hideSelectDropDown(true);\n }\n else {\n this.showSelectDropDown();\n }\n }));\n this._register(dom.addDisposableListener(this.selectElement, dom.EventType.MOUSE_DOWN, (e) => {\n dom.EventHelper.stop(e);\n }));\n // Intercept touch events\n // The following implementation is slightly different from the mouse event handlers above.\n // Use the following helper variable, otherwise the list flickers.\n let listIsVisibleOnTouchStart;\n this._register(dom.addDisposableListener(this.selectElement, 'touchstart', (e) => {\n listIsVisibleOnTouchStart = this._isVisible;\n }));\n this._register(dom.addDisposableListener(this.selectElement, 'touchend', (e) => {\n dom.EventHelper.stop(e);\n if (listIsVisibleOnTouchStart) {\n this.hideSelectDropDown(true);\n }\n else {\n this.showSelectDropDown();\n }\n }));\n // Intercept keyboard handling\n this._register(dom.addDisposableListener(this.selectElement, dom.EventType.KEY_DOWN, (e) => {\n const event = new StandardKeyboardEvent(e);\n let showDropDown = false;\n // Create and drop down select list on keyboard select\n if (isMacintosh) {\n if (event.keyCode === 18 /* KeyCode.DownArrow */ || event.keyCode === 16 /* KeyCode.UpArrow */ || event.keyCode === 10 /* KeyCode.Space */ || event.keyCode === 3 /* KeyCode.Enter */) {\n showDropDown = true;\n }\n }\n else {\n if (event.keyCode === 18 /* KeyCode.DownArrow */ && event.altKey || event.keyCode === 16 /* KeyCode.UpArrow */ && event.altKey || event.keyCode === 10 /* KeyCode.Space */ || event.keyCode === 3 /* KeyCode.Enter */) {\n showDropDown = true;\n }\n }\n if (showDropDown) {\n this.showSelectDropDown();\n dom.EventHelper.stop(e, true);\n }\n }));\n }\n get onDidSelect() {\n return this._onDidSelect.event;\n }\n setOptions(options, selected) {\n if (!arrays.equals(this.options, options)) {\n this.options = options;\n this.selectElement.options.length = 0;\n this._hasDetails = false;\n this._cachedMaxDetailsHeight = undefined;\n this.options.forEach((option, index) => {\n this.selectElement.add(this.createOption(option.text, index, option.isDisabled));\n if (typeof option.description === 'string') {\n this._hasDetails = true;\n }\n });\n }\n if (selected !== undefined) {\n this.select(selected);\n // Set current = selected since this is not necessarily a user exit\n this._currentSelection = this.selected;\n }\n }\n setOptionsList() {\n var _a;\n // Mirror options in drop-down\n // Populate select list for non-native select mode\n (_a = this.selectList) === null || _a === void 0 ? void 0 : _a.splice(0, this.selectList.length, this.options);\n }\n select(index) {\n if (index >= 0 && index < this.options.length) {\n this.selected = index;\n }\n else if (index > this.options.length - 1) {\n // Adjust index to end of list\n // This could make client out of sync with the select\n this.select(this.options.length - 1);\n }\n else if (this.selected < 0) {\n this.selected = 0;\n }\n this.selectElement.selectedIndex = this.selected;\n if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n this.setTitle(this.options[this.selected].text);\n }\n }\n focus() {\n if (this.selectElement) {\n this.selectElement.tabIndex = 0;\n this.selectElement.focus();\n }\n }\n blur() {\n if (this.selectElement) {\n this.selectElement.tabIndex = -1;\n this.selectElement.blur();\n }\n }\n setFocusable(focusable) {\n this.selectElement.tabIndex = focusable ? 0 : -1;\n }\n render(container) {\n this.container = container;\n container.classList.add('select-container');\n container.appendChild(this.selectElement);\n this.styleSelectElement();\n }\n initStyleSheet() {\n const content = [];\n // Style non-native select mode\n if (this.styles.listFocusBackground) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`);\n }\n if (this.styles.listFocusForeground) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`);\n }\n if (this.styles.decoratorRightForeground) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`);\n }\n if (this.styles.selectBackground && this.styles.selectBorder && this.styles.selectBorder !== this.styles.selectBackground) {\n content.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `);\n content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `);\n content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `);\n }\n else if (this.styles.selectListBorder) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `);\n content.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `);\n }\n // Hover foreground - ignore for disabled options\n if (this.styles.listHoverForeground) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`);\n }\n // Hover background - ignore for disabled options\n if (this.styles.listHoverBackground) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`);\n }\n // Match quick input outline styles - ignore for disabled options\n if (this.styles.listFocusOutline) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`);\n }\n if (this.styles.listHoverOutline) {\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`);\n }\n // Clear list styles on focus and on hover for disabled options\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }`);\n this.styleElement.textContent = content.join('\\n');\n }\n styleSelectElement() {\n var _a, _b, _c;\n const background = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n const foreground = (_b = this.styles.selectForeground) !== null && _b !== void 0 ? _b : '';\n const border = (_c = this.styles.selectBorder) !== null && _c !== void 0 ? _c : '';\n this.selectElement.style.backgroundColor = background;\n this.selectElement.style.color = foreground;\n this.selectElement.style.borderColor = border;\n }\n styleList() {\n var _a, _b;\n const background = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n const listBackground = dom.asCssValueWithDefault(this.styles.selectListBackground, background);\n this.selectDropDownListContainer.style.backgroundColor = listBackground;\n this.selectionDetailsPane.style.backgroundColor = listBackground;\n const optionsBorder = (_b = this.styles.focusBorder) !== null && _b !== void 0 ? _b : '';\n this.selectDropDownContainer.style.outlineColor = optionsBorder;\n this.selectDropDownContainer.style.outlineOffset = '-1px';\n this.selectList.style(this.styles);\n }\n createOption(value, index, disabled) {\n const option = document.createElement('option');\n option.value = value;\n option.text = value;\n option.disabled = !!disabled;\n return option;\n }\n // ContextView dropdown methods\n showSelectDropDown() {\n this.selectionDetailsPane.innerText = '';\n if (!this.contextViewProvider || this._isVisible) {\n return;\n }\n // Lazily create and populate list only at open, moved from constructor\n this.createSelectList(this.selectDropDownContainer);\n this.setOptionsList();\n // This allows us to flip the position based on measurement\n // Set drop-down position above/below from required height and margins\n // If pre-layout cannot fit at least one option do not show drop-down\n this.contextViewProvider.showContextView({\n getAnchor: () => this.selectElement,\n render: (container) => this.renderSelectDropDown(container, true),\n layout: () => {\n this.layoutSelectDropDown();\n },\n onHide: () => {\n this.selectDropDownContainer.classList.remove('visible');\n this.selectElement.classList.remove('synthetic-focus');\n },\n anchorPosition: this._dropDownPosition\n }, this.selectBoxOptions.optionsAsChildren ? this.container : undefined);\n // Hide so we can relay out\n this._isVisible = true;\n this.hideSelectDropDown(false);\n this.contextViewProvider.showContextView({\n getAnchor: () => this.selectElement,\n render: (container) => this.renderSelectDropDown(container),\n layout: () => this.layoutSelectDropDown(),\n onHide: () => {\n this.selectDropDownContainer.classList.remove('visible');\n this.selectElement.classList.remove('synthetic-focus');\n },\n anchorPosition: this._dropDownPosition\n }, this.selectBoxOptions.optionsAsChildren ? this.container : undefined);\n // Track initial selection the case user escape, blur\n this._currentSelection = this.selected;\n this._isVisible = true;\n this.selectElement.setAttribute('aria-expanded', 'true');\n }\n hideSelectDropDown(focusSelect) {\n if (!this.contextViewProvider || !this._isVisible) {\n return;\n }\n this._isVisible = false;\n this.selectElement.setAttribute('aria-expanded', 'false');\n if (focusSelect) {\n this.selectElement.focus();\n }\n this.contextViewProvider.hideContextView();\n }\n renderSelectDropDown(container, preLayoutPosition) {\n container.appendChild(this.selectDropDownContainer);\n // Pre-Layout allows us to change position\n this.layoutSelectDropDown(preLayoutPosition);\n return {\n dispose: () => {\n // contextView will dispose itself if moving from one View to another\n try {\n container.removeChild(this.selectDropDownContainer); // remove to take out the CSS rules we add\n }\n catch (error) {\n // Ignore, removed already by change of focus\n }\n }\n };\n }\n // Iterate over detailed descriptions, find max height\n measureMaxDetailsHeight() {\n let maxDetailsPaneHeight = 0;\n this.options.forEach((_option, index) => {\n this.updateDetail(index);\n if (this.selectionDetailsPane.offsetHeight > maxDetailsPaneHeight) {\n maxDetailsPaneHeight = this.selectionDetailsPane.offsetHeight;\n }\n });\n return maxDetailsPaneHeight;\n }\n layoutSelectDropDown(preLayoutPosition) {\n // Avoid recursion from layout called in onListFocus\n if (this._skipLayout) {\n return false;\n }\n // Layout ContextView drop down select list and container\n // Have to manage our vertical overflow, sizing, position below or above\n // Position has to be determined and set prior to contextView instantiation\n if (this.selectList) {\n // Make visible to enable measurements\n this.selectDropDownContainer.classList.add('visible');\n const window = dom.getWindow(this.selectElement);\n const selectPosition = dom.getDomNodePagePosition(this.selectElement);\n const styles = dom.getWindow(this.selectElement).getComputedStyle(this.selectElement);\n const verticalPadding = parseFloat(styles.getPropertyValue('--dropdown-padding-top')) + parseFloat(styles.getPropertyValue('--dropdown-padding-bottom'));\n const maxSelectDropDownHeightBelow = (window.innerHeight - selectPosition.top - selectPosition.height - (this.selectBoxOptions.minBottomMargin || 0));\n const maxSelectDropDownHeightAbove = (selectPosition.top - SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN);\n // Determine optimal width - min(longest option), opt(parent select, excluding margins), max(ContextView controlled)\n const selectWidth = this.selectElement.offsetWidth;\n const selectMinWidth = this.setWidthControlElement(this.widthControlElement);\n const selectOptimalWidth = Math.max(selectMinWidth, Math.round(selectWidth)).toString() + 'px';\n this.selectDropDownContainer.style.width = selectOptimalWidth;\n // Get initial list height and determine space above and below\n this.selectList.getHTMLElement().style.height = '';\n this.selectList.layout();\n let listHeight = this.selectList.contentHeight;\n if (this._hasDetails && this._cachedMaxDetailsHeight === undefined) {\n this._cachedMaxDetailsHeight = this.measureMaxDetailsHeight();\n }\n const maxDetailsPaneHeight = this._hasDetails ? this._cachedMaxDetailsHeight : 0;\n const minRequiredDropDownHeight = listHeight + verticalPadding + maxDetailsPaneHeight;\n const maxVisibleOptionsBelow = ((Math.floor((maxSelectDropDownHeightBelow - verticalPadding - maxDetailsPaneHeight) / this.getHeight())));\n const maxVisibleOptionsAbove = ((Math.floor((maxSelectDropDownHeightAbove - verticalPadding - maxDetailsPaneHeight) / this.getHeight())));\n // If we are only doing pre-layout check/adjust position only\n // Calculate vertical space available, flip up if insufficient\n // Use reflected padding on parent select, ContextView style\n // properties not available before DOM attachment\n if (preLayoutPosition) {\n // Check if select moved out of viewport , do not open\n // If at least one option cannot be shown, don't open the drop-down or hide/remove if open\n if ((selectPosition.top + selectPosition.height) > (window.innerHeight - 22)\n || selectPosition.top < SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN\n || ((maxVisibleOptionsBelow < 1) && (maxVisibleOptionsAbove < 1))) {\n // Indicate we cannot open\n return false;\n }\n // Determine if we have to flip up\n // Always show complete list items - never more than Max available vertical height\n if (maxVisibleOptionsBelow < SelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS\n && maxVisibleOptionsAbove > maxVisibleOptionsBelow\n && this.options.length > maxVisibleOptionsBelow) {\n this._dropDownPosition = 1 /* AnchorPosition.ABOVE */;\n this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);\n this.selectDropDownContainer.removeChild(this.selectionDetailsPane);\n this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n this.selectionDetailsPane.classList.remove('border-top');\n this.selectionDetailsPane.classList.add('border-bottom');\n }\n else {\n this._dropDownPosition = 0 /* AnchorPosition.BELOW */;\n this.selectDropDownContainer.removeChild(this.selectDropDownListContainer);\n this.selectDropDownContainer.removeChild(this.selectionDetailsPane);\n this.selectDropDownContainer.appendChild(this.selectDropDownListContainer);\n this.selectDropDownContainer.appendChild(this.selectionDetailsPane);\n this.selectionDetailsPane.classList.remove('border-bottom');\n this.selectionDetailsPane.classList.add('border-top');\n }\n // Do full layout on showSelectDropDown only\n return true;\n }\n // Check if select out of viewport or cutting into status bar\n if ((selectPosition.top + selectPosition.height) > (window.innerHeight - 22)\n || selectPosition.top < SelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN\n || (this._dropDownPosition === 0 /* AnchorPosition.BELOW */ && maxVisibleOptionsBelow < 1)\n || (this._dropDownPosition === 1 /* AnchorPosition.ABOVE */ && maxVisibleOptionsAbove < 1)) {\n // Cannot properly layout, close and hide\n this.hideSelectDropDown(true);\n return false;\n }\n // SetUp list dimensions and layout - account for container padding\n // Use position to check above or below available space\n if (this._dropDownPosition === 0 /* AnchorPosition.BELOW */) {\n if (this._isVisible && maxVisibleOptionsBelow + maxVisibleOptionsAbove < 1) {\n // If drop-down is visible, must be doing a DOM re-layout, hide since we don't fit\n // Hide drop-down, hide contextview, focus on parent select\n this.hideSelectDropDown(true);\n return false;\n }\n // Adjust list height to max from select bottom to margin (default/minBottomMargin)\n if (minRequiredDropDownHeight > maxSelectDropDownHeightBelow) {\n listHeight = (maxVisibleOptionsBelow * this.getHeight());\n }\n }\n else {\n if (minRequiredDropDownHeight > maxSelectDropDownHeightAbove) {\n listHeight = (maxVisibleOptionsAbove * this.getHeight());\n }\n }\n // Set adjusted list height and relayout\n this.selectList.layout(listHeight);\n this.selectList.domFocus();\n // Finally set focus on selected item\n if (this.selectList.length > 0) {\n this.selectList.setFocus([this.selected || 0]);\n this.selectList.reveal(this.selectList.getFocus()[0] || 0);\n }\n if (this._hasDetails) {\n // Leave the selectDropDownContainer to size itself according to children (list + details) - #57447\n this.selectList.getHTMLElement().style.height = (listHeight + verticalPadding) + 'px';\n this.selectDropDownContainer.style.height = '';\n }\n else {\n this.selectDropDownContainer.style.height = (listHeight + verticalPadding) + 'px';\n }\n this.updateDetail(this.selected);\n this.selectDropDownContainer.style.width = selectOptimalWidth;\n // Maintain focus outline on parent select as well as list container - tabindex for focus\n this.selectDropDownListContainer.setAttribute('tabindex', '0');\n this.selectElement.classList.add('synthetic-focus');\n this.selectDropDownContainer.classList.add('synthetic-focus');\n return true;\n }\n else {\n return false;\n }\n }\n setWidthControlElement(container) {\n let elementWidth = 0;\n if (container) {\n let longest = 0;\n let longestLength = 0;\n this.options.forEach((option, index) => {\n const detailLength = !!option.detail ? option.detail.length : 0;\n const rightDecoratorLength = !!option.decoratorRight ? option.decoratorRight.length : 0;\n const len = option.text.length + detailLength + rightDecoratorLength;\n if (len > longestLength) {\n longest = index;\n longestLength = len;\n }\n });\n container.textContent = this.options[longest].text + (!!this.options[longest].decoratorRight ? (this.options[longest].decoratorRight + ' ') : '');\n elementWidth = dom.getTotalWidth(container);\n }\n return elementWidth;\n }\n createSelectList(parent) {\n // If we have already constructive list on open, skip\n if (this.selectList) {\n return;\n }\n // SetUp container for list\n this.selectDropDownListContainer = dom.append(parent, $('.select-box-dropdown-list-container'));\n this.listRenderer = new SelectListRenderer();\n this.selectList = new List('SelectBoxCustom', this.selectDropDownListContainer, this, [this.listRenderer], {\n useShadows: false,\n verticalScrollMode: 3 /* ScrollbarVisibility.Visible */,\n keyboardSupport: false,\n mouseSupport: false,\n accessibilityProvider: {\n getAriaLabel: element => {\n let label = element.text;\n if (element.detail) {\n label += `. ${element.detail}`;\n }\n if (element.decoratorRight) {\n label += `. ${element.decoratorRight}`;\n }\n if (element.description) {\n label += `. ${element.description}`;\n }\n return label;\n },\n getWidgetAriaLabel: () => localize({ key: 'selectBox', comment: ['Behave like native select dropdown element.'] }, \"Select Box\"),\n getRole: () => isMacintosh ? '' : 'option',\n getWidgetRole: () => 'listbox'\n }\n });\n if (this.selectBoxOptions.ariaLabel) {\n this.selectList.ariaLabel = this.selectBoxOptions.ariaLabel;\n }\n // SetUp list keyboard controller - control navigation, disabled items, focus\n const onKeyDown = this._register(new DomEmitter(this.selectDropDownListContainer, 'keydown'));\n const onSelectDropDownKeyDown = Event.chain(onKeyDown.event, $ => $.filter(() => this.selectList.length > 0)\n .map(e => new StandardKeyboardEvent(e)));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 3 /* KeyCode.Enter */))(this.onEnter, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 2 /* KeyCode.Tab */))(this.onEnter, this)); // Tab should behave the same as enter, #79339\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 9 /* KeyCode.Escape */))(this.onEscape, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 16 /* KeyCode.UpArrow */))(this.onUpArrow, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 18 /* KeyCode.DownArrow */))(this.onDownArrow, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 12 /* KeyCode.PageDown */))(this.onPageDown, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 11 /* KeyCode.PageUp */))(this.onPageUp, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 14 /* KeyCode.Home */))(this.onHome, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => e.keyCode === 13 /* KeyCode.End */))(this.onEnd, this));\n this._register(Event.chain(onSelectDropDownKeyDown, $ => $.filter(e => (e.keyCode >= 21 /* KeyCode.Digit0 */ && e.keyCode <= 56 /* KeyCode.KeyZ */) || (e.keyCode >= 85 /* KeyCode.Semicolon */ && e.keyCode <= 113 /* KeyCode.NumpadDivide */)))(this.onCharacter, this));\n // SetUp list mouse controller - control navigation, disabled items, focus\n this._register(dom.addDisposableListener(this.selectList.getHTMLElement(), dom.EventType.POINTER_UP, e => this.onPointerUp(e)));\n this._register(this.selectList.onMouseOver(e => typeof e.index !== 'undefined' && this.selectList.setFocus([e.index])));\n this._register(this.selectList.onDidChangeFocus(e => this.onListFocus(e)));\n this._register(dom.addDisposableListener(this.selectDropDownContainer, dom.EventType.FOCUS_OUT, e => {\n if (!this._isVisible || dom.isAncestor(e.relatedTarget, this.selectDropDownContainer)) {\n return;\n }\n this.onListBlur();\n }));\n this.selectList.getHTMLElement().setAttribute('aria-label', this.selectBoxOptions.ariaLabel || '');\n this.selectList.getHTMLElement().setAttribute('aria-expanded', 'true');\n this.styleList();\n }\n // List methods\n // List mouse controller - active exit, select option, fire onDidSelect if change, return focus to parent select\n // Also takes in touchend events\n onPointerUp(e) {\n if (!this.selectList.length) {\n return;\n }\n dom.EventHelper.stop(e);\n const target = e.target;\n if (!target) {\n return;\n }\n // Check our mouse event is on an option (not scrollbar)\n if (target.classList.contains('slider')) {\n return;\n }\n const listRowElement = target.closest('.monaco-list-row');\n if (!listRowElement) {\n return;\n }\n const index = Number(listRowElement.getAttribute('data-index'));\n const disabled = listRowElement.classList.contains('option-disabled');\n // Ignore mouse selection of disabled options\n if (index >= 0 && index < this.options.length && !disabled) {\n this.selected = index;\n this.select(this.selected);\n this.selectList.setFocus([this.selected]);\n this.selectList.reveal(this.selectList.getFocus()[0]);\n // Only fire if selection change\n if (this.selected !== this._currentSelection) {\n // Set current = selected\n this._currentSelection = this.selected;\n this._onDidSelect.fire({\n index: this.selectElement.selectedIndex,\n selected: this.options[this.selected].text\n });\n if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n this.setTitle(this.options[this.selected].text);\n }\n }\n this.hideSelectDropDown(true);\n }\n }\n // List Exit - passive - implicit no selection change, hide drop-down\n onListBlur() {\n if (this._sticky) {\n return;\n }\n if (this.selected !== this._currentSelection) {\n // Reset selected to current if no change\n this.select(this._currentSelection);\n }\n this.hideSelectDropDown(false);\n }\n renderDescriptionMarkdown(text, actionHandler) {\n const cleanRenderedMarkdown = (element) => {\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes.item(i);\n const tagName = child.tagName && child.tagName.toLowerCase();\n if (tagName === 'img') {\n element.removeChild(child);\n }\n else {\n cleanRenderedMarkdown(child);\n }\n }\n };\n const rendered = renderMarkdown({ value: text, supportThemeIcons: true }, { actionHandler });\n rendered.element.classList.add('select-box-description-markdown');\n cleanRenderedMarkdown(rendered.element);\n return rendered.element;\n }\n // List Focus Change - passive - update details pane with newly focused element's data\n onListFocus(e) {\n // Skip during initial layout\n if (!this._isVisible || !this._hasDetails) {\n return;\n }\n this.updateDetail(e.indexes[0]);\n }\n updateDetail(selectedIndex) {\n var _a, _b;\n this.selectionDetailsPane.innerText = '';\n const option = this.options[selectedIndex];\n const description = (_a = option === null || option === void 0 ? void 0 : option.description) !== null && _a !== void 0 ? _a : '';\n const descriptionIsMarkdown = (_b = option === null || option === void 0 ? void 0 : option.descriptionIsMarkdown) !== null && _b !== void 0 ? _b : false;\n if (description) {\n if (descriptionIsMarkdown) {\n const actionHandler = option.descriptionMarkdownActionHandler;\n this.selectionDetailsPane.appendChild(this.renderDescriptionMarkdown(description, actionHandler));\n }\n else {\n this.selectionDetailsPane.innerText = description;\n }\n this.selectionDetailsPane.style.display = 'block';\n }\n else {\n this.selectionDetailsPane.style.display = 'none';\n }\n // Avoid recursion\n this._skipLayout = true;\n this.contextViewProvider.layout();\n this._skipLayout = false;\n }\n // List keyboard controller\n // List exit - active - hide ContextView dropdown, reset selection, return focus to parent select\n onEscape(e) {\n dom.EventHelper.stop(e);\n // Reset selection to value when opened\n this.select(this._currentSelection);\n this.hideSelectDropDown(true);\n }\n // List exit - active - hide ContextView dropdown, return focus to parent select, fire onDidSelect if change\n onEnter(e) {\n dom.EventHelper.stop(e);\n // Only fire if selection change\n if (this.selected !== this._currentSelection) {\n this._currentSelection = this.selected;\n this._onDidSelect.fire({\n index: this.selectElement.selectedIndex,\n selected: this.options[this.selected].text\n });\n if (!!this.options[this.selected] && !!this.options[this.selected].text) {\n this.setTitle(this.options[this.selected].text);\n }\n }\n this.hideSelectDropDown(true);\n }\n // List navigation - have to handle a disabled option (jump over)\n onDownArrow(e) {\n if (this.selected < this.options.length - 1) {\n dom.EventHelper.stop(e, true);\n // Skip disabled options\n const nextOptionDisabled = this.options[this.selected + 1].isDisabled;\n if (nextOptionDisabled && this.options.length > this.selected + 2) {\n this.selected += 2;\n }\n else if (nextOptionDisabled) {\n return;\n }\n else {\n this.selected++;\n }\n // Set focus/selection - only fire event when closing drop-down or on blur\n this.select(this.selected);\n this.selectList.setFocus([this.selected]);\n this.selectList.reveal(this.selectList.getFocus()[0]);\n }\n }\n onUpArrow(e) {\n if (this.selected > 0) {\n dom.EventHelper.stop(e, true);\n // Skip disabled options\n const previousOptionDisabled = this.options[this.selected - 1].isDisabled;\n if (previousOptionDisabled && this.selected > 1) {\n this.selected -= 2;\n }\n else {\n this.selected--;\n }\n // Set focus/selection - only fire event when closing drop-down or on blur\n this.select(this.selected);\n this.selectList.setFocus([this.selected]);\n this.selectList.reveal(this.selectList.getFocus()[0]);\n }\n }\n onPageUp(e) {\n dom.EventHelper.stop(e);\n this.selectList.focusPreviousPage();\n // Allow scrolling to settle\n setTimeout(() => {\n this.selected = this.selectList.getFocus()[0];\n // Shift selection down if we land on a disabled option\n if (this.options[this.selected].isDisabled && this.selected < this.options.length - 1) {\n this.selected++;\n this.selectList.setFocus([this.selected]);\n }\n this.selectList.reveal(this.selected);\n this.select(this.selected);\n }, 1);\n }\n onPageDown(e) {\n dom.EventHelper.stop(e);\n this.selectList.focusNextPage();\n // Allow scrolling to settle\n setTimeout(() => {\n this.selected = this.selectList.getFocus()[0];\n // Shift selection up if we land on a disabled option\n if (this.options[this.selected].isDisabled && this.selected > 0) {\n this.selected--;\n this.selectList.setFocus([this.selected]);\n }\n this.selectList.reveal(this.selected);\n this.select(this.selected);\n }, 1);\n }\n onHome(e) {\n dom.EventHelper.stop(e);\n if (this.options.length < 2) {\n return;\n }\n this.selected = 0;\n if (this.options[this.selected].isDisabled && this.selected > 1) {\n this.selected++;\n }\n this.selectList.setFocus([this.selected]);\n this.selectList.reveal(this.selected);\n this.select(this.selected);\n }\n onEnd(e) {\n dom.EventHelper.stop(e);\n if (this.options.length < 2) {\n return;\n }\n this.selected = this.options.length - 1;\n if (this.options[this.selected].isDisabled && this.selected > 1) {\n this.selected--;\n }\n this.selectList.setFocus([this.selected]);\n this.selectList.reveal(this.selected);\n this.select(this.selected);\n }\n // Mimic option first character navigation of native select\n onCharacter(e) {\n const ch = KeyCodeUtils.toString(e.keyCode);\n let optionIndex = -1;\n for (let i = 0; i < this.options.length - 1; i++) {\n optionIndex = (i + this.selected + 1) % this.options.length;\n if (this.options[optionIndex].text.charAt(0).toUpperCase() === ch && !this.options[optionIndex].isDisabled) {\n this.select(optionIndex);\n this.selectList.setFocus([optionIndex]);\n this.selectList.reveal(this.selectList.getFocus()[0]);\n dom.EventHelper.stop(e);\n break;\n }\n }\n }\n dispose() {\n this.hideSelectDropDown(false);\n super.dispose();\n }\n}\nSelectBoxList.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN = 32;\nSelectBoxList.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN = 2;\nSelectBoxList.DEFAULT_MINIMUM_VISIBLE_OPTIONS = 3;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport { EventType, Gesture } from '../../touch.js';\nimport * as arrays from '../../../common/arrays.js';\nimport { Emitter } from '../../../common/event.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport { isMacintosh } from '../../../common/platform.js';\nexport class SelectBoxNative extends Disposable {\n constructor(options, selected, styles, selectBoxOptions) {\n super();\n this.selected = 0;\n this.selectBoxOptions = selectBoxOptions || Object.create(null);\n this.options = [];\n this.selectElement = document.createElement('select');\n this.selectElement.className = 'monaco-select-box';\n if (typeof this.selectBoxOptions.ariaLabel === 'string') {\n this.selectElement.setAttribute('aria-label', this.selectBoxOptions.ariaLabel);\n }\n if (typeof this.selectBoxOptions.ariaDescription === 'string') {\n this.selectElement.setAttribute('aria-description', this.selectBoxOptions.ariaDescription);\n }\n this._onDidSelect = this._register(new Emitter());\n this.styles = styles;\n this.registerListeners();\n this.setOptions(options, selected);\n }\n registerListeners() {\n this._register(Gesture.addTarget(this.selectElement));\n [EventType.Tap].forEach(eventType => {\n this._register(dom.addDisposableListener(this.selectElement, eventType, (e) => {\n this.selectElement.focus();\n }));\n });\n this._register(dom.addStandardDisposableListener(this.selectElement, 'click', (e) => {\n dom.EventHelper.stop(e, true);\n }));\n this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {\n this.selectElement.title = e.target.value;\n this._onDidSelect.fire({\n index: e.target.selectedIndex,\n selected: e.target.value\n });\n }));\n this._register(dom.addStandardDisposableListener(this.selectElement, 'keydown', (e) => {\n let showSelect = false;\n if (isMacintosh) {\n if (e.keyCode === 18 /* KeyCode.DownArrow */ || e.keyCode === 16 /* KeyCode.UpArrow */ || e.keyCode === 10 /* KeyCode.Space */) {\n showSelect = true;\n }\n }\n else {\n if (e.keyCode === 18 /* KeyCode.DownArrow */ && e.altKey || e.keyCode === 10 /* KeyCode.Space */ || e.keyCode === 3 /* KeyCode.Enter */) {\n showSelect = true;\n }\n }\n if (showSelect) {\n // Space, Enter, is used to expand select box, do not propagate it (prevent action bar action run)\n e.stopPropagation();\n }\n }));\n }\n get onDidSelect() {\n return this._onDidSelect.event;\n }\n setOptions(options, selected) {\n if (!this.options || !arrays.equals(this.options, options)) {\n this.options = options;\n this.selectElement.options.length = 0;\n this.options.forEach((option, index) => {\n this.selectElement.add(this.createOption(option.text, index, option.isDisabled));\n });\n }\n if (selected !== undefined) {\n this.select(selected);\n }\n }\n select(index) {\n if (this.options.length === 0) {\n this.selected = 0;\n }\n else if (index >= 0 && index < this.options.length) {\n this.selected = index;\n }\n else if (index > this.options.length - 1) {\n // Adjust index to end of list\n // This could make client out of sync with the select\n this.select(this.options.length - 1);\n }\n else if (this.selected < 0) {\n this.selected = 0;\n }\n this.selectElement.selectedIndex = this.selected;\n if ((this.selected < this.options.length) && typeof this.options[this.selected].text === 'string') {\n this.selectElement.title = this.options[this.selected].text;\n }\n else {\n this.selectElement.title = '';\n }\n }\n focus() {\n if (this.selectElement) {\n this.selectElement.tabIndex = 0;\n this.selectElement.focus();\n }\n }\n blur() {\n if (this.selectElement) {\n this.selectElement.tabIndex = -1;\n this.selectElement.blur();\n }\n }\n setFocusable(focusable) {\n this.selectElement.tabIndex = focusable ? 0 : -1;\n }\n render(container) {\n container.classList.add('select-container');\n container.appendChild(this.selectElement);\n this.setOptions(this.options, this.selected);\n this.applyStyles();\n }\n applyStyles() {\n var _a, _b, _c;\n // Style native select\n if (this.selectElement) {\n this.selectElement.style.backgroundColor = (_a = this.styles.selectBackground) !== null && _a !== void 0 ? _a : '';\n this.selectElement.style.color = (_b = this.styles.selectForeground) !== null && _b !== void 0 ? _b : '';\n this.selectElement.style.borderColor = (_c = this.styles.selectBorder) !== null && _c !== void 0 ? _c : '';\n }\n }\n createOption(value, index, disabled) {\n const option = document.createElement('option');\n option.value = value;\n option.text = value;\n option.disabled = !!disabled;\n return option;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SelectBoxList } from './selectBoxCustom.js';\nimport { SelectBoxNative } from './selectBoxNative.js';\nimport { Widget } from '../widget.js';\nimport { isMacintosh } from '../../../common/platform.js';\nimport './selectBox.css';\nexport class SelectBox extends Widget {\n constructor(options, selected, contextViewProvider, styles, selectBoxOptions) {\n super();\n // Default to native SelectBox for OSX unless overridden\n if (isMacintosh && !(selectBoxOptions === null || selectBoxOptions === void 0 ? void 0 : selectBoxOptions.useCustomDrawn)) {\n this.selectBoxDelegate = new SelectBoxNative(options, selected, styles, selectBoxOptions);\n }\n else {\n this.selectBoxDelegate = new SelectBoxList(options, selected, contextViewProvider, styles, selectBoxOptions);\n }\n this._register(this.selectBoxDelegate);\n }\n // Public SelectBox Methods - routed through delegate interface\n get onDidSelect() {\n return this.selectBoxDelegate.onDidSelect;\n }\n setOptions(options, selected) {\n this.selectBoxDelegate.setOptions(options, selected);\n }\n select(index) {\n this.selectBoxDelegate.select(index);\n }\n focus() {\n this.selectBoxDelegate.focus();\n }\n blur() {\n this.selectBoxDelegate.blur();\n }\n setFocusable(focusable) {\n this.selectBoxDelegate.setFocusable(focusable);\n }\n render(container) {\n this.selectBoxDelegate.render(container);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { isFirefox } from '../../browser.js';\nimport { DataTransfers } from '../../dnd.js';\nimport { addDisposableListener, EventHelper, EventType } from '../../dom.js';\nimport { EventType as TouchEventType, Gesture } from '../../touch.js';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { SelectBox } from '../selectBox/selectBox.js';\nimport { Action, ActionRunner, Separator } from '../../../common/actions.js';\nimport { Disposable } from '../../../common/lifecycle.js';\nimport * as platform from '../../../common/platform.js';\nimport * as types from '../../../common/types.js';\nimport './actionbar.css';\nimport * as nls from '../../../../nls.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class BaseActionViewItem extends Disposable {\n get action() {\n return this._action;\n }\n constructor(context, action, options = {}) {\n super();\n this.options = options;\n this._context = context || this;\n this._action = action;\n if (action instanceof Action) {\n this._register(action.onDidChange(event => {\n if (!this.element) {\n // we have not been rendered yet, so there\n // is no point in updating the UI\n return;\n }\n this.handleActionChangeEvent(event);\n }));\n }\n }\n handleActionChangeEvent(event) {\n if (event.enabled !== undefined) {\n this.updateEnabled();\n }\n if (event.checked !== undefined) {\n this.updateChecked();\n }\n if (event.class !== undefined) {\n this.updateClass();\n }\n if (event.label !== undefined) {\n this.updateLabel();\n this.updateTooltip();\n }\n if (event.tooltip !== undefined) {\n this.updateTooltip();\n }\n }\n get actionRunner() {\n if (!this._actionRunner) {\n this._actionRunner = this._register(new ActionRunner());\n }\n return this._actionRunner;\n }\n set actionRunner(actionRunner) {\n this._actionRunner = actionRunner;\n }\n isEnabled() {\n return this._action.enabled;\n }\n setActionContext(newContext) {\n this._context = newContext;\n }\n render(container) {\n const element = this.element = container;\n this._register(Gesture.addTarget(container));\n const enableDragging = this.options && this.options.draggable;\n if (enableDragging) {\n container.draggable = true;\n if (isFirefox) {\n // Firefox: requires to set a text data transfer to get going\n this._register(addDisposableListener(container, EventType.DRAG_START, e => { var _a; return (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData(DataTransfers.TEXT, this._action.label); }));\n }\n }\n this._register(addDisposableListener(element, TouchEventType.Tap, e => this.onClick(e, true))); // Preserve focus on tap #125470\n this._register(addDisposableListener(element, EventType.MOUSE_DOWN, e => {\n if (!enableDragging) {\n EventHelper.stop(e, true); // do not run when dragging is on because that would disable it\n }\n if (this._action.enabled && e.button === 0) {\n element.classList.add('active');\n }\n }));\n if (platform.isMacintosh) {\n // macOS: allow to trigger the button when holding Ctrl+key and pressing the\n // main mouse button. This is for scenarios where e.g. some interaction forces\n // the Ctrl+key to be pressed and hold but the user still wants to interact\n // with the actions (for example quick access in quick navigation mode).\n this._register(addDisposableListener(element, EventType.CONTEXT_MENU, e => {\n if (e.button === 0 && e.ctrlKey === true) {\n this.onClick(e);\n }\n }));\n }\n this._register(addDisposableListener(element, EventType.CLICK, e => {\n EventHelper.stop(e, true);\n // menus do not use the click event\n if (!(this.options && this.options.isMenu)) {\n this.onClick(e);\n }\n }));\n this._register(addDisposableListener(element, EventType.DBLCLICK, e => {\n EventHelper.stop(e, true);\n }));\n [EventType.MOUSE_UP, EventType.MOUSE_OUT].forEach(event => {\n this._register(addDisposableListener(element, event, e => {\n EventHelper.stop(e);\n element.classList.remove('active');\n }));\n });\n }\n onClick(event, preserveFocus = false) {\n var _a;\n EventHelper.stop(event, true);\n const context = types.isUndefinedOrNull(this._context) ? ((_a = this.options) === null || _a === void 0 ? void 0 : _a.useEventAsContext) ? event : { preserveFocus } : this._context;\n this.actionRunner.run(this._action, context);\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.element) {\n this.element.tabIndex = 0;\n this.element.focus();\n this.element.classList.add('focused');\n }\n }\n blur() {\n if (this.element) {\n this.element.blur();\n this.element.tabIndex = -1;\n this.element.classList.remove('focused');\n }\n }\n setFocusable(focusable) {\n if (this.element) {\n this.element.tabIndex = focusable ? 0 : -1;\n }\n }\n get trapsArrowNavigation() {\n return false;\n }\n updateEnabled() {\n // implement in subclass\n }\n updateLabel() {\n // implement in subclass\n }\n getClass() {\n return this.action.class;\n }\n getTooltip() {\n return this.action.tooltip;\n }\n updateTooltip() {\n var _a, _b, _c;\n if (!this.element) {\n return;\n }\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.updateAriaLabel();\n if ((_b = this.options.hoverDelegate) === null || _b === void 0 ? void 0 : _b.showNativeHover) {\n /* While custom hover is not inside custom hover */\n this.element.title = title;\n }\n else {\n if (!this.customHover && title !== '') {\n const hoverDelegate = (_c = this.options.hoverDelegate) !== null && _c !== void 0 ? _c : getDefaultHoverDelegate('element');\n this.customHover = this._store.add(getBaseLayerHoverDelegate().setupUpdatableHover(hoverDelegate, this.element, title));\n }\n else if (this.customHover) {\n this.customHover.update(title);\n }\n }\n }\n updateAriaLabel() {\n var _a;\n if (this.element) {\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.element.setAttribute('aria-label', title);\n }\n }\n updateClass() {\n // implement in subclass\n }\n updateChecked() {\n // implement in subclass\n }\n dispose() {\n if (this.element) {\n this.element.remove();\n this.element = undefined;\n }\n this._context = undefined;\n super.dispose();\n }\n}\nexport class ActionViewItem extends BaseActionViewItem {\n constructor(context, action, options) {\n super(context, action, options);\n this.options = options;\n this.options.icon = options.icon !== undefined ? options.icon : false;\n this.options.label = options.label !== undefined ? options.label : true;\n this.cssClass = '';\n }\n render(container) {\n super.render(container);\n types.assertType(this.element);\n const label = document.createElement('a');\n label.classList.add('action-label');\n label.setAttribute('role', this.getDefaultAriaRole());\n this.label = label;\n this.element.appendChild(label);\n if (this.options.label && this.options.keybinding) {\n const kbLabel = document.createElement('span');\n kbLabel.classList.add('keybinding');\n kbLabel.textContent = this.options.keybinding;\n this.element.appendChild(kbLabel);\n }\n this.updateClass();\n this.updateLabel();\n this.updateTooltip();\n this.updateEnabled();\n this.updateChecked();\n }\n getDefaultAriaRole() {\n if (this._action.id === Separator.ID) {\n return 'presentation'; // A separator is a presentation item\n }\n else {\n if (this.options.isMenu) {\n return 'menuitem';\n }\n else {\n return 'button';\n }\n }\n }\n // Only set the tabIndex on the element once it is about to get focused\n // That way this element wont be a tab stop when it is not needed #106441\n focus() {\n if (this.label) {\n this.label.tabIndex = 0;\n this.label.focus();\n }\n }\n blur() {\n if (this.label) {\n this.label.tabIndex = -1;\n }\n }\n setFocusable(focusable) {\n if (this.label) {\n this.label.tabIndex = focusable ? 0 : -1;\n }\n }\n updateLabel() {\n if (this.options.label && this.label) {\n this.label.textContent = this.action.label;\n }\n }\n getTooltip() {\n let title = null;\n if (this.action.tooltip) {\n title = this.action.tooltip;\n }\n else if (!this.options.label && this.action.label && this.options.icon) {\n title = this.action.label;\n if (this.options.keybinding) {\n title = nls.localize({ key: 'titleLabel', comment: ['action title', 'action keybinding'] }, \"{0} ({1})\", title, this.options.keybinding);\n }\n }\n return title !== null && title !== void 0 ? title : undefined;\n }\n updateClass() {\n var _a;\n if (this.cssClass && this.label) {\n this.label.classList.remove(...this.cssClass.split(' '));\n }\n if (this.options.icon) {\n this.cssClass = this.getClass();\n if (this.label) {\n this.label.classList.add('codicon');\n if (this.cssClass) {\n this.label.classList.add(...this.cssClass.split(' '));\n }\n }\n this.updateEnabled();\n }\n else {\n (_a = this.label) === null || _a === void 0 ? void 0 : _a.classList.remove('codicon');\n }\n }\n updateEnabled() {\n var _a, _b;\n if (this.action.enabled) {\n if (this.label) {\n this.label.removeAttribute('aria-disabled');\n this.label.classList.remove('disabled');\n }\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.classList.remove('disabled');\n }\n else {\n if (this.label) {\n this.label.setAttribute('aria-disabled', 'true');\n this.label.classList.add('disabled');\n }\n (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.add('disabled');\n }\n }\n updateAriaLabel() {\n var _a;\n if (this.label) {\n const title = (_a = this.getTooltip()) !== null && _a !== void 0 ? _a : '';\n this.label.setAttribute('aria-label', title);\n }\n }\n updateChecked() {\n if (this.label) {\n if (this.action.checked !== undefined) {\n this.label.classList.toggle('checked', this.action.checked);\n this.label.setAttribute('aria-checked', this.action.checked ? 'true' : 'false');\n this.label.setAttribute('role', 'checkbox');\n }\n else {\n this.label.classList.remove('checked');\n this.label.removeAttribute('aria-checked');\n this.label.setAttribute('role', this.getDefaultAriaRole());\n }\n }\n }\n}\nexport class SelectActionViewItem extends BaseActionViewItem {\n constructor(ctx, action, options, selected, contextViewProvider, styles, selectBoxOptions) {\n super(ctx, action);\n this.selectBox = new SelectBox(options, selected, contextViewProvider, styles, selectBoxOptions);\n this.selectBox.setFocusable(false);\n this._register(this.selectBox);\n this.registerListeners();\n }\n select(index) {\n this.selectBox.select(index);\n }\n registerListeners() {\n this._register(this.selectBox.onDidSelect(e => this.runAction(e.selected, e.index)));\n }\n runAction(option, index) {\n this.actionRunner.run(this._action, this.getActionContext(option, index));\n }\n getActionContext(option, index) {\n return option;\n }\n setFocusable(focusable) {\n this.selectBox.setFocusable(focusable);\n }\n focus() {\n var _a;\n (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.focus();\n }\n blur() {\n var _a;\n (_a = this.selectBox) === null || _a === void 0 ? void 0 : _a.blur();\n }\n render(container) {\n this.selectBox.render(container);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/st/st.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"st\",\n extensions: [\".st\", \".iecst\", \".iecplc\", \".lc3lib\", \".TcPOU\", \".TcDUT\", \".TcGVL\", \".TcIO\"],\n aliases: [\"StructuredText\", \"scl\", \"stl\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/st/st\"], resolve, reject);\n });\n } else {\n return import(\"./st.js\");\n }\n }\n});\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst types_1 = require(\"../discriminator/types\");\nconst compile_1 = require(\"../../compile\");\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { discrError, tagName } }) => discrError === types_1.DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({ params: { discrError, tag, tagName } }) => (0, codegen_1._) `{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n};\nconst def = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt) {\n const { gen, data, schema, parentSchema, it } = cxt;\n const { oneOf } = parentSchema;\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\");\n }\n const tagName = schema.propertyName;\n if (typeof tagName != \"string\")\n throw new Error(\"discriminator: requires propertyName\");\n if (schema.mapping)\n throw new Error(\"discriminator: mapping is not supported\");\n if (!oneOf)\n throw new Error(\"discriminator: requires oneOf keyword\");\n const valid = gen.let(\"valid\", false);\n const tag = gen.const(\"tag\", (0, codegen_1._) `${data}${(0, codegen_1.getProperty)(tagName)}`);\n gen.if((0, codegen_1._) `typeof ${tag} == \"string\"`, () => validateMapping(), () => cxt.error(false, { discrError: types_1.DiscrError.Tag, tag, tagName }));\n cxt.ok(valid);\n function validateMapping() {\n const mapping = getMapping();\n gen.if(false);\n for (const tagValue in mapping) {\n gen.elseIf((0, codegen_1._) `${tag} === ${tagValue}`);\n gen.assign(valid, applyTagSchema(mapping[tagValue]));\n }\n gen.else();\n cxt.error(false, { discrError: types_1.DiscrError.Mapping, tag, tagName });\n gen.endIf();\n }\n function applyTagSchema(schemaProp) {\n const _valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({ keyword: \"oneOf\", schemaProp }, _valid);\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n return _valid;\n }\n function getMapping() {\n var _a;\n const oneOfMapping = {};\n const topRequired = hasRequired(parentSchema);\n let tagRequired = true;\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i];\n if ((sch === null || sch === void 0 ? void 0 : sch.$ref) && !(0, util_1.schemaHasRulesButRef)(sch, it.self.RULES)) {\n const ref = sch.$ref;\n sch = compile_1.resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref);\n if (sch instanceof compile_1.SchemaEnv)\n sch = sch.schema;\n if (sch === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, it.baseId, ref);\n }\n const propSch = (_a = sch === null || sch === void 0 ? void 0 : sch.properties) === null || _a === void 0 ? void 0 : _a[tagName];\n if (typeof propSch != \"object\") {\n throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`);\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch));\n addMappings(propSch, i);\n }\n if (!tagRequired)\n throw new Error(`discriminator: \"${tagName}\" must be required`);\n return oneOfMapping;\n function hasRequired({ required }) {\n return Array.isArray(required) && required.includes(tagName);\n }\n function addMappings(sch, i) {\n if (sch.const) {\n addMapping(sch.const, i);\n }\n else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i);\n }\n }\n else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`);\n }\n }\n function addMapping(tagValue, i) {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`);\n }\n oneOfMapping[tagValue] = i;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=index.js.map","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TreeError } from './tree.js';\nimport { splice, tail2 } from '../../../common/arrays.js';\nimport { Delayer } from '../../../common/async.js';\nimport { MicrotaskDelay } from '../../../common/symbols.js';\nimport { LcsDiff } from '../../../common/diff/diff.js';\nimport { Emitter, EventBufferer } from '../../../common/event.js';\nimport { Iterable } from '../../../common/iterator.js';\nexport function isFilterResult(obj) {\n return typeof obj === 'object' && 'visibility' in obj && 'data' in obj;\n}\nexport function getVisibleState(visibility) {\n switch (visibility) {\n case true: return 1 /* TreeVisibility.Visible */;\n case false: return 0 /* TreeVisibility.Hidden */;\n default: return visibility;\n }\n}\nfunction isCollapsibleStateUpdate(update) {\n return typeof update.collapsible === 'boolean';\n}\nexport class IndexTreeModel {\n constructor(user, list, rootElement, options = {}) {\n var _a;\n this.user = user;\n this.list = list;\n this.rootRef = [];\n this.eventBufferer = new EventBufferer();\n this._onDidChangeCollapseState = new Emitter();\n this.onDidChangeCollapseState = this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event);\n this._onDidChangeRenderNodeCount = new Emitter();\n this.onDidChangeRenderNodeCount = this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event);\n this._onDidSplice = new Emitter();\n this.onDidSplice = this._onDidSplice.event;\n this.refilterDelayer = new Delayer(MicrotaskDelay);\n this.collapseByDefault = typeof options.collapseByDefault === 'undefined' ? false : options.collapseByDefault;\n this.allowNonCollapsibleParents = (_a = options.allowNonCollapsibleParents) !== null && _a !== void 0 ? _a : false;\n this.filter = options.filter;\n this.autoExpandSingleChildren = typeof options.autoExpandSingleChildren === 'undefined' ? false : options.autoExpandSingleChildren;\n this.root = {\n parent: undefined,\n element: rootElement,\n children: [],\n depth: 0,\n visibleChildrenCount: 0,\n visibleChildIndex: -1,\n collapsible: false,\n collapsed: false,\n renderNodeCount: 0,\n visibility: 1 /* TreeVisibility.Visible */,\n visible: true,\n filterData: undefined\n };\n }\n splice(location, deleteCount, toInsert = Iterable.empty(), options = {}) {\n if (location.length === 0) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n if (options.diffIdentityProvider) {\n this.spliceSmart(options.diffIdentityProvider, location, deleteCount, toInsert, options);\n }\n else {\n this.spliceSimple(location, deleteCount, toInsert, options);\n }\n }\n spliceSmart(identity, location, deleteCount, toInsertIterable, options, recurseLevels) {\n var _a;\n if (toInsertIterable === void 0) { toInsertIterable = Iterable.empty(); }\n if (recurseLevels === void 0) { recurseLevels = (_a = options.diffDepth) !== null && _a !== void 0 ? _a : 0; }\n const { parentNode } = this.getParentNodeWithListIndex(location);\n if (!parentNode.lastDiffIds) {\n return this.spliceSimple(location, deleteCount, toInsertIterable, options);\n }\n const toInsert = [...toInsertIterable];\n const index = location[location.length - 1];\n const diff = new LcsDiff({ getElements: () => parentNode.lastDiffIds }, {\n getElements: () => [\n ...parentNode.children.slice(0, index),\n ...toInsert,\n ...parentNode.children.slice(index + deleteCount),\n ].map(e => identity.getId(e.element).toString())\n }).ComputeDiff(false);\n // if we were given a 'best effort' diff, use default behavior\n if (diff.quitEarly) {\n parentNode.lastDiffIds = undefined;\n return this.spliceSimple(location, deleteCount, toInsert, options);\n }\n const locationPrefix = location.slice(0, -1);\n const recurseSplice = (fromOriginal, fromModified, count) => {\n if (recurseLevels > 0) {\n for (let i = 0; i < count; i++) {\n fromOriginal--;\n fromModified--;\n this.spliceSmart(identity, [...locationPrefix, fromOriginal, 0], Number.MAX_SAFE_INTEGER, toInsert[fromModified].children, options, recurseLevels - 1);\n }\n }\n };\n let lastStartO = Math.min(parentNode.children.length, index + deleteCount);\n let lastStartM = toInsert.length;\n for (const change of diff.changes.sort((a, b) => b.originalStart - a.originalStart)) {\n recurseSplice(lastStartO, lastStartM, lastStartO - (change.originalStart + change.originalLength));\n lastStartO = change.originalStart;\n lastStartM = change.modifiedStart - index;\n this.spliceSimple([...locationPrefix, lastStartO], change.originalLength, Iterable.slice(toInsert, lastStartM, lastStartM + change.modifiedLength), options);\n }\n // at this point, startO === startM === count since any remaining prefix should match\n recurseSplice(lastStartO, lastStartM, lastStartO);\n }\n spliceSimple(location, deleteCount, toInsert = Iterable.empty(), { onDidCreateNode, onDidDeleteNode, diffIdentityProvider }) {\n const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n const treeListElementsToInsert = [];\n const nodesToInsertIterator = Iterable.map(toInsert, el => this.createTreeNode(el, parentNode, parentNode.visible ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */, revealed, treeListElementsToInsert, onDidCreateNode));\n const lastIndex = location[location.length - 1];\n // figure out what's the visible child start index right before the\n // splice point\n let visibleChildStartIndex = 0;\n for (let i = lastIndex; i >= 0 && i < parentNode.children.length; i--) {\n const child = parentNode.children[i];\n if (child.visible) {\n visibleChildStartIndex = child.visibleChildIndex;\n break;\n }\n }\n const nodesToInsert = [];\n let insertedVisibleChildrenCount = 0;\n let renderNodeCount = 0;\n for (const child of nodesToInsertIterator) {\n nodesToInsert.push(child);\n renderNodeCount += child.renderNodeCount;\n if (child.visible) {\n child.visibleChildIndex = visibleChildStartIndex + insertedVisibleChildrenCount++;\n }\n }\n const deletedNodes = splice(parentNode.children, lastIndex, deleteCount, nodesToInsert);\n if (!diffIdentityProvider) {\n parentNode.lastDiffIds = undefined;\n }\n else if (parentNode.lastDiffIds) {\n splice(parentNode.lastDiffIds, lastIndex, deleteCount, nodesToInsert.map(n => diffIdentityProvider.getId(n.element).toString()));\n }\n else {\n parentNode.lastDiffIds = parentNode.children.map(n => diffIdentityProvider.getId(n.element).toString());\n }\n // figure out what is the count of deleted visible children\n let deletedVisibleChildrenCount = 0;\n for (const child of deletedNodes) {\n if (child.visible) {\n deletedVisibleChildrenCount++;\n }\n }\n // and adjust for all visible children after the splice point\n if (deletedVisibleChildrenCount !== 0) {\n for (let i = lastIndex + nodesToInsert.length; i < parentNode.children.length; i++) {\n const child = parentNode.children[i];\n if (child.visible) {\n child.visibleChildIndex -= deletedVisibleChildrenCount;\n }\n }\n }\n // update parent's visible children count\n parentNode.visibleChildrenCount += insertedVisibleChildrenCount - deletedVisibleChildrenCount;\n if (revealed && visible) {\n const visibleDeleteCount = deletedNodes.reduce((r, node) => r + (node.visible ? node.renderNodeCount : 0), 0);\n this._updateAncestorsRenderNodeCount(parentNode, renderNodeCount - visibleDeleteCount);\n this.list.splice(listIndex, visibleDeleteCount, treeListElementsToInsert);\n }\n if (deletedNodes.length > 0 && onDidDeleteNode) {\n const visit = (node) => {\n onDidDeleteNode(node);\n node.children.forEach(visit);\n };\n deletedNodes.forEach(visit);\n }\n this._onDidSplice.fire({ insertedNodes: nodesToInsert, deletedNodes });\n let node = parentNode;\n while (node) {\n if (node.visibility === 2 /* TreeVisibility.Recurse */) {\n // delayed to avoid excessive refiltering, see #135941\n this.refilterDelayer.trigger(() => this.refilter());\n break;\n }\n node = node.parent;\n }\n }\n rerender(location) {\n if (location.length === 0) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n if (node.visible && revealed) {\n this.list.splice(listIndex, 1, [node]);\n }\n }\n has(location) {\n return this.hasTreeNode(location);\n }\n getListIndex(location) {\n const { listIndex, visible, revealed } = this.getTreeNodeWithListIndex(location);\n return visible && revealed ? listIndex : -1;\n }\n getListRenderCount(location) {\n return this.getTreeNode(location).renderNodeCount;\n }\n isCollapsible(location) {\n return this.getTreeNode(location).collapsible;\n }\n setCollapsible(location, collapsible) {\n const node = this.getTreeNode(location);\n if (typeof collapsible === 'undefined') {\n collapsible = !node.collapsible;\n }\n const update = { collapsible };\n return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n }\n isCollapsed(location) {\n return this.getTreeNode(location).collapsed;\n }\n setCollapsed(location, collapsed, recursive) {\n const node = this.getTreeNode(location);\n if (typeof collapsed === 'undefined') {\n collapsed = !node.collapsed;\n }\n const update = { collapsed, recursive: recursive || false };\n return this.eventBufferer.bufferEvents(() => this._setCollapseState(location, update));\n }\n _setCollapseState(location, update) {\n const { node, listIndex, revealed } = this.getTreeNodeWithListIndex(location);\n const result = this._setListNodeCollapseState(node, listIndex, revealed, update);\n if (node !== this.root && this.autoExpandSingleChildren && result && !isCollapsibleStateUpdate(update) && node.collapsible && !node.collapsed && !update.recursive) {\n let onlyVisibleChildIndex = -1;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (child.visible) {\n if (onlyVisibleChildIndex > -1) {\n onlyVisibleChildIndex = -1;\n break;\n }\n else {\n onlyVisibleChildIndex = i;\n }\n }\n }\n if (onlyVisibleChildIndex > -1) {\n this._setCollapseState([...location, onlyVisibleChildIndex], update);\n }\n }\n return result;\n }\n _setListNodeCollapseState(node, listIndex, revealed, update) {\n const result = this._setNodeCollapseState(node, update, false);\n if (!revealed || !node.visible || !result) {\n return result;\n }\n const previousRenderNodeCount = node.renderNodeCount;\n const toInsert = this.updateNodeAfterCollapseChange(node);\n const deleteCount = previousRenderNodeCount - (listIndex === -1 ? 0 : 1);\n this.list.splice(listIndex + 1, deleteCount, toInsert.slice(1));\n return result;\n }\n _setNodeCollapseState(node, update, deep) {\n let result;\n if (node === this.root) {\n result = false;\n }\n else {\n if (isCollapsibleStateUpdate(update)) {\n result = node.collapsible !== update.collapsible;\n node.collapsible = update.collapsible;\n }\n else if (!node.collapsible) {\n result = false;\n }\n else {\n result = node.collapsed !== update.collapsed;\n node.collapsed = update.collapsed;\n }\n if (result) {\n this._onDidChangeCollapseState.fire({ node, deep });\n }\n }\n if (!isCollapsibleStateUpdate(update) && update.recursive) {\n for (const child of node.children) {\n result = this._setNodeCollapseState(child, update, true) || result;\n }\n }\n return result;\n }\n expandTo(location) {\n this.eventBufferer.bufferEvents(() => {\n let node = this.getTreeNode(location);\n while (node.parent) {\n node = node.parent;\n location = location.slice(0, location.length - 1);\n if (node.collapsed) {\n this._setCollapseState(location, { collapsed: false, recursive: false });\n }\n }\n });\n }\n refilter() {\n const previousRenderNodeCount = this.root.renderNodeCount;\n const toInsert = this.updateNodeAfterFilterChange(this.root);\n this.list.splice(0, previousRenderNodeCount, toInsert);\n this.refilterDelayer.cancel();\n }\n createTreeNode(treeElement, parent, parentVisibility, revealed, treeListElements, onDidCreateNode) {\n const node = {\n parent,\n element: treeElement.element,\n children: [],\n depth: parent.depth + 1,\n visibleChildrenCount: 0,\n visibleChildIndex: -1,\n collapsible: typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : (typeof treeElement.collapsed !== 'undefined'),\n collapsed: typeof treeElement.collapsed === 'undefined' ? this.collapseByDefault : treeElement.collapsed,\n renderNodeCount: 1,\n visibility: 1 /* TreeVisibility.Visible */,\n visible: true,\n filterData: undefined\n };\n const visibility = this._filterNode(node, parentVisibility);\n node.visibility = visibility;\n if (revealed) {\n treeListElements.push(node);\n }\n const childElements = treeElement.children || Iterable.empty();\n const childRevealed = revealed && visibility !== 0 /* TreeVisibility.Hidden */ && !node.collapsed;\n let visibleChildrenCount = 0;\n let renderNodeCount = 1;\n for (const el of childElements) {\n const child = this.createTreeNode(el, node, visibility, childRevealed, treeListElements, onDidCreateNode);\n node.children.push(child);\n renderNodeCount += child.renderNodeCount;\n if (child.visible) {\n child.visibleChildIndex = visibleChildrenCount++;\n }\n }\n if (!this.allowNonCollapsibleParents) {\n node.collapsible = node.collapsible || node.children.length > 0;\n }\n node.visibleChildrenCount = visibleChildrenCount;\n node.visible = visibility === 2 /* TreeVisibility.Recurse */ ? visibleChildrenCount > 0 : (visibility === 1 /* TreeVisibility.Visible */);\n if (!node.visible) {\n node.renderNodeCount = 0;\n if (revealed) {\n treeListElements.pop();\n }\n }\n else if (!node.collapsed) {\n node.renderNodeCount = renderNodeCount;\n }\n onDidCreateNode === null || onDidCreateNode === void 0 ? void 0 : onDidCreateNode(node);\n return node;\n }\n updateNodeAfterCollapseChange(node) {\n const previousRenderNodeCount = node.renderNodeCount;\n const result = [];\n this._updateNodeAfterCollapseChange(node, result);\n this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n return result;\n }\n _updateNodeAfterCollapseChange(node, result) {\n if (node.visible === false) {\n return 0;\n }\n result.push(node);\n node.renderNodeCount = 1;\n if (!node.collapsed) {\n for (const child of node.children) {\n node.renderNodeCount += this._updateNodeAfterCollapseChange(child, result);\n }\n }\n this._onDidChangeRenderNodeCount.fire(node);\n return node.renderNodeCount;\n }\n updateNodeAfterFilterChange(node) {\n const previousRenderNodeCount = node.renderNodeCount;\n const result = [];\n this._updateNodeAfterFilterChange(node, node.visible ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */, result);\n this._updateAncestorsRenderNodeCount(node.parent, result.length - previousRenderNodeCount);\n return result;\n }\n _updateNodeAfterFilterChange(node, parentVisibility, result, revealed = true) {\n let visibility;\n if (node !== this.root) {\n visibility = this._filterNode(node, parentVisibility);\n if (visibility === 0 /* TreeVisibility.Hidden */) {\n node.visible = false;\n node.renderNodeCount = 0;\n return false;\n }\n if (revealed) {\n result.push(node);\n }\n }\n const resultStartLength = result.length;\n node.renderNodeCount = node === this.root ? 0 : 1;\n let hasVisibleDescendants = false;\n if (!node.collapsed || visibility !== 0 /* TreeVisibility.Hidden */) {\n let visibleChildIndex = 0;\n for (const child of node.children) {\n hasVisibleDescendants = this._updateNodeAfterFilterChange(child, visibility, result, revealed && !node.collapsed) || hasVisibleDescendants;\n if (child.visible) {\n child.visibleChildIndex = visibleChildIndex++;\n }\n }\n node.visibleChildrenCount = visibleChildIndex;\n }\n else {\n node.visibleChildrenCount = 0;\n }\n if (node !== this.root) {\n node.visible = visibility === 2 /* TreeVisibility.Recurse */ ? hasVisibleDescendants : (visibility === 1 /* TreeVisibility.Visible */);\n node.visibility = visibility;\n }\n if (!node.visible) {\n node.renderNodeCount = 0;\n if (revealed) {\n result.pop();\n }\n }\n else if (!node.collapsed) {\n node.renderNodeCount += result.length - resultStartLength;\n }\n this._onDidChangeRenderNodeCount.fire(node);\n return node.visible;\n }\n _updateAncestorsRenderNodeCount(node, diff) {\n if (diff === 0) {\n return;\n }\n while (node) {\n node.renderNodeCount += diff;\n this._onDidChangeRenderNodeCount.fire(node);\n node = node.parent;\n }\n }\n _filterNode(node, parentVisibility) {\n const result = this.filter ? this.filter.filter(node.element, parentVisibility) : 1 /* TreeVisibility.Visible */;\n if (typeof result === 'boolean') {\n node.filterData = undefined;\n return result ? 1 /* TreeVisibility.Visible */ : 0 /* TreeVisibility.Hidden */;\n }\n else if (isFilterResult(result)) {\n node.filterData = result.data;\n return getVisibleState(result.visibility);\n }\n else {\n node.filterData = undefined;\n return getVisibleState(result);\n }\n }\n // cheap\n hasTreeNode(location, node = this.root) {\n if (!location || location.length === 0) {\n return true;\n }\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n return false;\n }\n return this.hasTreeNode(rest, node.children[index]);\n }\n // cheap\n getTreeNode(location, node = this.root) {\n if (!location || location.length === 0) {\n return node;\n }\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n return this.getTreeNode(rest, node.children[index]);\n }\n // expensive\n getTreeNodeWithListIndex(location) {\n if (location.length === 0) {\n return { node: this.root, listIndex: -1, revealed: true, visible: false };\n }\n const { parentNode, listIndex, revealed, visible } = this.getParentNodeWithListIndex(location);\n const index = location[location.length - 1];\n if (index < 0 || index > parentNode.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n const node = parentNode.children[index];\n return { node, listIndex, revealed, visible: visible && node.visible };\n }\n getParentNodeWithListIndex(location, node = this.root, listIndex = 0, revealed = true, visible = true) {\n const [index, ...rest] = location;\n if (index < 0 || index > node.children.length) {\n throw new TreeError(this.user, 'Invalid tree location');\n }\n // TODO@joao perf!\n for (let i = 0; i < index; i++) {\n listIndex += node.children[i].renderNodeCount;\n }\n revealed = revealed && !node.collapsed;\n visible = visible && node.visible;\n if (rest.length === 0) {\n return { parentNode: node, listIndex, revealed, visible };\n }\n return this.getParentNodeWithListIndex(rest, node.children[index], listIndex + 1, revealed, visible);\n }\n getNode(location = []) {\n return this.getTreeNode(location);\n }\n // TODO@joao perf!\n getNodeLocation(node) {\n const location = [];\n let indexTreeNode = node; // typing woes\n while (indexTreeNode.parent) {\n location.push(indexTreeNode.parent.children.indexOf(indexTreeNode));\n indexTreeNode = indexTreeNode.parent;\n }\n return location.reverse();\n }\n getParentNodeLocation(location) {\n if (location.length === 0) {\n return undefined;\n }\n else if (location.length === 1) {\n return [];\n }\n else {\n return tail2(location)[0];\n }\n }\n getFirstElementChild(location) {\n const node = this.getTreeNode(location);\n if (node.children.length === 0) {\n return undefined;\n }\n return node.children[0].element;\n }\n}\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { InlineDecoration, ViewModelDecoration } from '../viewModel.js';\nimport { filterValidationDecorations } from '../config/editorOptions.js';\nexport class ViewModelDecorations {\n constructor(editorId, model, configuration, linesCollection, coordinatesConverter) {\n this.editorId = editorId;\n this.model = model;\n this.configuration = configuration;\n this._linesCollection = linesCollection;\n this._coordinatesConverter = coordinatesConverter;\n this._decorationsCache = Object.create(null);\n this._cachedModelDecorationsResolver = null;\n this._cachedModelDecorationsResolverViewRange = null;\n }\n _clearCachedModelDecorationsResolver() {\n this._cachedModelDecorationsResolver = null;\n this._cachedModelDecorationsResolverViewRange = null;\n }\n dispose() {\n this._decorationsCache = Object.create(null);\n this._clearCachedModelDecorationsResolver();\n }\n reset() {\n this._decorationsCache = Object.create(null);\n this._clearCachedModelDecorationsResolver();\n }\n onModelDecorationsChanged() {\n this._decorationsCache = Object.create(null);\n this._clearCachedModelDecorationsResolver();\n }\n onLineMappingChanged() {\n this._decorationsCache = Object.create(null);\n this._clearCachedModelDecorationsResolver();\n }\n _getOrCreateViewModelDecoration(modelDecoration) {\n const id = modelDecoration.id;\n let r = this._decorationsCache[id];\n if (!r) {\n const modelRange = modelDecoration.range;\n const options = modelDecoration.options;\n let viewRange;\n if (options.isWholeLine) {\n const start = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.startLineNumber, 1), 0 /* PositionAffinity.Left */, false, true);\n const end = this._coordinatesConverter.convertModelPositionToViewPosition(new Position(modelRange.endLineNumber, this.model.getLineMaxColumn(modelRange.endLineNumber)), 1 /* PositionAffinity.Right */);\n viewRange = new Range(start.lineNumber, start.column, end.lineNumber, end.column);\n }\n else {\n // For backwards compatibility reasons, we want injected text before any decoration.\n // Thus, move decorations to the right.\n viewRange = this._coordinatesConverter.convertModelRangeToViewRange(modelRange, 1 /* PositionAffinity.Right */);\n }\n r = new ViewModelDecoration(viewRange, options);\n this._decorationsCache[id] = r;\n }\n return r;\n }\n getMinimapDecorationsInRange(range) {\n return this._getDecorationsInRange(range, true, false).decorations;\n }\n getDecorationsViewportData(viewRange) {\n let cacheIsValid = (this._cachedModelDecorationsResolver !== null);\n cacheIsValid = cacheIsValid && (viewRange.equalsRange(this._cachedModelDecorationsResolverViewRange));\n if (!cacheIsValid) {\n this._cachedModelDecorationsResolver = this._getDecorationsInRange(viewRange, false, false);\n this._cachedModelDecorationsResolverViewRange = viewRange;\n }\n return this._cachedModelDecorationsResolver;\n }\n getInlineDecorationsOnLine(lineNumber, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n const range = new Range(lineNumber, this._linesCollection.getViewLineMinColumn(lineNumber), lineNumber, this._linesCollection.getViewLineMaxColumn(lineNumber));\n return this._getDecorationsInRange(range, onlyMinimapDecorations, onlyMarginDecorations).inlineDecorations[0];\n }\n _getDecorationsInRange(viewRange, onlyMinimapDecorations, onlyMarginDecorations) {\n const modelDecorations = this._linesCollection.getDecorationsInRange(viewRange, this.editorId, filterValidationDecorations(this.configuration.options), onlyMinimapDecorations, onlyMarginDecorations);\n const startLineNumber = viewRange.startLineNumber;\n const endLineNumber = viewRange.endLineNumber;\n const decorationsInViewport = [];\n let decorationsInViewportLen = 0;\n const inlineDecorations = [];\n for (let j = startLineNumber; j <= endLineNumber; j++) {\n inlineDecorations[j - startLineNumber] = [];\n }\n for (let i = 0, len = modelDecorations.length; i < len; i++) {\n const modelDecoration = modelDecorations[i];\n const decorationOptions = modelDecoration.options;\n if (!isModelDecorationVisible(this.model, modelDecoration)) {\n continue;\n }\n const viewModelDecoration = this._getOrCreateViewModelDecoration(modelDecoration);\n const viewRange = viewModelDecoration.range;\n decorationsInViewport[decorationsInViewportLen++] = viewModelDecoration;\n if (decorationOptions.inlineClassName) {\n const inlineDecoration = new InlineDecoration(viewRange, decorationOptions.inlineClassName, decorationOptions.inlineClassNameAffectsLetterSpacing ? 3 /* InlineDecorationType.RegularAffectingLetterSpacing */ : 0 /* InlineDecorationType.Regular */);\n const intersectedStartLineNumber = Math.max(startLineNumber, viewRange.startLineNumber);\n const intersectedEndLineNumber = Math.min(endLineNumber, viewRange.endLineNumber);\n for (let j = intersectedStartLineNumber; j <= intersectedEndLineNumber; j++) {\n inlineDecorations[j - startLineNumber].push(inlineDecoration);\n }\n }\n if (decorationOptions.beforeContentClassName) {\n if (startLineNumber <= viewRange.startLineNumber && viewRange.startLineNumber <= endLineNumber) {\n const inlineDecoration = new InlineDecoration(new Range(viewRange.startLineNumber, viewRange.startColumn, viewRange.startLineNumber, viewRange.startColumn), decorationOptions.beforeContentClassName, 1 /* InlineDecorationType.Before */);\n inlineDecorations[viewRange.startLineNumber - startLineNumber].push(inlineDecoration);\n }\n }\n if (decorationOptions.afterContentClassName) {\n if (startLineNumber <= viewRange.endLineNumber && viewRange.endLineNumber <= endLineNumber) {\n const inlineDecoration = new InlineDecoration(new Range(viewRange.endLineNumber, viewRange.endColumn, viewRange.endLineNumber, viewRange.endColumn), decorationOptions.afterContentClassName, 2 /* InlineDecorationType.After */);\n inlineDecorations[viewRange.endLineNumber - startLineNumber].push(inlineDecoration);\n }\n }\n }\n return {\n decorations: decorationsInViewport,\n inlineDecorations: inlineDecorations\n };\n }\n}\nexport function isModelDecorationVisible(model, decoration) {\n if (decoration.options.hideInCommentTokens && isModelDecorationInComment(model, decoration)) {\n return false;\n }\n if (decoration.options.hideInStringTokens && isModelDecorationInString(model, decoration)) {\n return false;\n }\n return true;\n}\nexport function isModelDecorationInComment(model, decoration) {\n return testTokensInRange(model, decoration.range, (tokenType) => tokenType === 1 /* StandardTokenType.Comment */);\n}\nexport function isModelDecorationInString(model, decoration) {\n return testTokensInRange(model, decoration.range, (tokenType) => tokenType === 2 /* StandardTokenType.String */);\n}\n/**\n * Calls the callback for every token that intersects the range.\n * If the callback returns `false`, iteration stops and `false` is returned.\n * Otherwise, `true` is returned.\n */\nfunction testTokensInRange(model, range, callback) {\n for (let lineNumber = range.startLineNumber; lineNumber <= range.endLineNumber; lineNumber++) {\n const lineTokens = model.tokenization.getLineTokens(lineNumber);\n const isFirstLine = lineNumber === range.startLineNumber;\n const isEndLine = lineNumber === range.endLineNumber;\n let tokenIdx = isFirstLine ? lineTokens.findTokenIndexAtOffset(range.startColumn - 1) : 0;\n while (tokenIdx < lineTokens.getCount()) {\n if (isEndLine) {\n const startOffset = lineTokens.getStartOffset(tokenIdx);\n if (startOffset > range.endColumn - 1) {\n break;\n }\n }\n const callbackResult = callback(lineTokens.getStandardTokenType(tokenIdx));\n if (!callbackResult) {\n return false;\n }\n tokenIdx++;\n }\n }\n return true;\n}\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/restructuredtext/restructuredtext.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"restructuredtext\",\n extensions: [\".rst\"],\n aliases: [\"reStructuredText\", \"restructuredtext\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/restructuredtext/restructuredtext\"], resolve, reject);\n });\n } else {\n return import(\"./restructuredtext.js\");\n }\n }\n});\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../base/common/lifecycle.js';\nexport class TextModelPart extends Disposable {\n constructor() {\n super(...arguments);\n this._isDisposed = false;\n }\n dispose() {\n super.dispose();\n this._isDisposed = true;\n }\n assertNotDisposed() {\n if (this._isDisposed) {\n throw new Error('TextModelPart is disposed!');\n }\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/freemarker2/freemarker2.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"freemarker2\",\n extensions: [\".ftl\", \".ftlh\", \".ftlx\"],\n aliases: [\"FreeMarker2\", \"Apache FreeMarker2\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagAngleInterpolationDollar);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationDollar);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Angle/Dollar)\", \"Apache FreeMarker2 (Angle/Dollar)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagAngleInterpolationDollar);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagAngleInterpolationDollar);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Bracket/Dollar)\", \"Apache FreeMarker2 (Bracket/Dollar)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagBracketInterpolationDollar);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagBracketInterpolationDollar);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-angle.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Angle/Bracket)\", \"Apache FreeMarker2 (Angle/Bracket)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagAngleInterpolationBracket);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagAngleInterpolationBracket);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-bracket.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Bracket/Bracket)\", \"Apache FreeMarker2 (Bracket/Bracket)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagBracketInterpolationBracket);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagBracketInterpolationBracket);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-dollar\",\n aliases: [\"FreeMarker2 (Auto/Dollar)\", \"Apache FreeMarker2 (Auto/Dollar)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagAutoInterpolationDollar);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationDollar);\n }\n }\n});\nregisterLanguage({\n id: \"freemarker2.tag-auto.interpolation-bracket\",\n aliases: [\"FreeMarker2 (Auto/Bracket)\", \"Apache FreeMarker2 (Auto/Bracket)\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/freemarker2/freemarker2\"], resolve, reject);\n }).then((m) => m.TagAutoInterpolationBracket);\n } else {\n return import(\"./freemarker2.js\").then((m) => m.TagAutoInterpolationBracket);\n }\n }\n});\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n\r\nvar browsers = [\r\n ['firefox', /Firefox\\/([0-9\\.]+)(?:\\s|$)/],\r\n ['opera', /Opera\\/([0-9\\.]+)(?:\\s|$)/],\r\n ['opera', /OPR\\/([0-9\\.]+)(:?\\s|$)$/],\r\n ['edge', /Edge\\/([0-9\\._]+)/],\r\n ['ie', /Trident\\/7\\.0.*rv\\:([0-9\\.]+)\\).*Gecko$/],\r\n ['ie', /MSIE\\s([0-9\\.]+);.*Trident\\/[4-7].0/],\r\n ['ie', /MSIE\\s(7\\.0)/],\r\n ['safari', /Version\\/([0-9\\._]+).*Safari/],\r\n ['chrome', /(?!Chrom.*OPR)Chrom(?:e|ium)\\/([0-9\\.]+)(:?\\s|$)/],\r\n ['bb10', /BB10;\\sTouch.*Version\\/([0-9\\.]+)/],\r\n ['android', /Android\\s([0-9\\.]+)/],\r\n ['ios', /Version\\/([0-9\\._]+).*Mobile.*Safari.*/],\r\n ['yandexbrowser', /YaBrowser\\/([0-9\\._]+)/],\r\n ['crios', /CriOS\\/([0-9\\.]+)(:?\\s|$)/]\r\n];\r\nvar os = [\r\n 'Windows Phone',\r\n 'Android',\r\n 'CentOS',\r\n { name: 'Chrome OS', pattern: 'CrOS' },\r\n 'Debian',\r\n 'Fedora',\r\n 'FreeBSD',\r\n 'Gentoo',\r\n 'Haiku',\r\n 'Kubuntu',\r\n 'Linux Mint',\r\n 'OpenBSD',\r\n 'Red Hat',\r\n 'SuSE',\r\n 'Ubuntu',\r\n 'Xubuntu',\r\n 'Cygwin',\r\n 'Symbian OS',\r\n 'hpwOS',\r\n 'webOS ',\r\n 'webOS',\r\n 'Tablet OS',\r\n 'Tizen',\r\n 'Linux',\r\n 'Mac OS X',\r\n 'Macintosh',\r\n 'Mac',\r\n 'Windows 98;',\r\n 'Windows '\r\n];\r\nvar osVersions = {\r\n '10.0': '10',\r\n '6.4': '10 Technical Preview',\r\n '6.3': '8.1',\r\n '6.2': '8',\r\n '6.1': 'Server 2008 R2 / 7',\r\n '6.0': 'Server 2008 / Vista',\r\n '5.2': 'Server 2003 / XP 64-bit',\r\n '5.1': 'XP',\r\n '5.01': '2000 SP1',\r\n '5.0': '2000',\r\n '4.0': 'NT',\r\n '4.90': 'ME'\r\n};\r\n\r\nvar mobileRegExp = new RegExp(['(android|bb\\\\d+|meego).+mobile|avantgo|bada\\\\/|blackberry|blazer|',\r\n 'compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|',\r\n 'midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)',\r\n '\\\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\\\.(browser|link)|vodafone|',\r\n 'wap|windows ce|xda|xiino'].join(''), 'i');\r\nvar mobilePrefixRegExp = new RegExp(['1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\\\-)|',\r\n 'ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\\\-m|r |s )|',\r\n 'avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\\\-(n|u)|c55\\\\/|capi|ccwa|cdm\\\\-|',\r\n 'cell|chtm|cldc|cmd\\\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\\\-s|devi|dica|dmob|do(c|p)o|',\r\n 'ds(12|\\\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\\\-|_)|',\r\n 'g1 u|g560|gene|gf\\\\-5|g\\\\-mo|go(\\\\.w|od)|gr(ad|un)|haie|hcit|hd\\\\-(m|p|t)|hei\\\\-|',\r\n 'hi(pt|ta)|hp( i|ip)|hs\\\\-c|ht(c(\\\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\\\-(20|go|ma)|',\r\n 'i230|iac( |\\\\-|\\\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|',\r\n 'kddi|keji|kgt( |\\\\/)|klon|kpt |kwc\\\\-|kyo(c|k)|le(no|xi)|lg( g|\\\\/(k|l|u)|50|54|\\\\-[a-w])',\r\n '|libw|lynx|m1\\\\-w|m3ga|m50\\\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\\\-cr|me(rc|ri)|mi(o8|oa|ts)|',\r\n 'mmef|mo(01|02|bi|de|do|t(\\\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|',\r\n 'n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|',\r\n 'op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\\\-2|',\r\n 'po(ck|rt|se)|prox|psio|pt\\\\-g|qa\\\\-a|qc(07|12|21|32|60|\\\\-[2-7]|i\\\\-)|qtek|r380|r600|',\r\n 'raks|rim9|ro(ve|zo)|s55\\\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\\\-|oo|p\\\\-)|sdk\\\\/|',\r\n 'se(c(\\\\-|0|1)|47|mc|nd|ri)|sgh\\\\-|shar|sie(\\\\-|m)|k\\\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|',\r\n 'so(ft|ny)|sp(01|h\\\\-|v\\\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\\\-|tdg\\\\-|',\r\n 'tel(i|m)|tim\\\\-|t\\\\-mo|to(pl|sh)|ts(70|m\\\\-|m3|m5)|tx\\\\-9|up(\\\\.b|g1|si)|utst|v400|v750|',\r\n 'veri|vi(rg|te)|vk(40|5[0-3]|\\\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|',\r\n 'w3c(\\\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\\\-|your|zeto|zte\\\\-'].join(''), 'i');\r\n\r\nvar Detector = /** @class */ (function () {\r\n function Detector(userAgent, navigator, process) {\r\n this.navigator = navigator;\r\n this.process = process;\r\n this.userAgent = userAgent\r\n ? userAgent\r\n : this.navigator ? (navigator.userAgent || navigator.vendor) : '';\r\n }\r\n Detector.prototype.detect = function () {\r\n if (this.process && !this.userAgent) {\r\n var version = this.process.version.slice(1).split('.').slice(0, 3);\r\n var versionTail = Array.prototype.slice.call(version, 1).join('') || '0';\r\n return {\r\n name: 'node',\r\n version: version.join('.'),\r\n versionNumber: parseFloat(version[0] + \".\" + versionTail),\r\n mobile: false,\r\n os: this.process.platform\r\n };\r\n }\r\n if (!this.userAgent)\r\n this.handleMissingError();\r\n return __assign({}, this.checkBrowser(), this.checkMobile(), this.checkOs());\r\n };\r\n Detector.prototype.checkBrowser = function () {\r\n var _this = this;\r\n return browsers\r\n .filter(function (definition) { return definition[1].test(_this.userAgent); })\r\n .map(function (definition) {\r\n var match = definition[1].exec(_this.userAgent);\r\n var version = match && match[1].split(/[._]/).slice(0, 3);\r\n var versionTails = Array.prototype.slice.call(version, 1).join('') || '0';\r\n if (version && version.length < 3)\r\n Array.prototype.push.apply(version, version.length === 1 ? [0, 0] : [0]);\r\n return {\r\n name: String(definition[0]),\r\n version: version.join('.'),\r\n versionNumber: Number(version[0] + \".\" + versionTails)\r\n };\r\n })\r\n .shift();\r\n };\r\n Detector.prototype.checkMobile = function () {\r\n var agentPrefix = this.userAgent.substr(0, 4);\r\n var mobile = mobileRegExp.test(this.userAgent) || mobilePrefixRegExp.test(agentPrefix);\r\n return { mobile: mobile };\r\n };\r\n Detector.prototype.checkOs = function () {\r\n var _this = this;\r\n return os\r\n .map(function (definition) {\r\n var name = definition.name || definition;\r\n var pattern = _this.getOsPattern(definition);\r\n return {\r\n name: name,\r\n pattern: pattern,\r\n value: RegExp(\"\\\\b\" + pattern.replace(/([ -])(?!$)/g, '$1?') + \"(?:x?[\\\\d._]+|[ \\\\w.]*)\", 'i').exec(_this.userAgent)\r\n };\r\n })\r\n .filter(function (definition) { return definition.value; })\r\n .map(function (definition) {\r\n var os$$1 = definition.value[0] || '';\r\n var osSuffix;\r\n if (definition.pattern &&\r\n definition.name &&\r\n /^Win/i.test(os$$1) &&\r\n !/^Windows Phone /i.test(os$$1) &&\r\n (osSuffix = osVersions[os$$1.replace(/[^\\d.]/g, '')]))\r\n os$$1 = \"Windows \" + osSuffix;\r\n if (definition.pattern && definition.name)\r\n os$$1 = os$$1.replace(RegExp(definition.pattern, 'i'), definition.name);\r\n os$$1 = os$$1\r\n .replace(/ ce$/i, ' CE')\r\n .replace(/\\bhpw/i, 'web')\r\n .replace(/\\bMacintosh\\b/, 'Mac OS')\r\n .replace(/_PowerPC\\b/i, ' OS')\r\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\r\n .replace(/\\bMac (OS X)\\b/, '$1')\r\n .replace(/\\/(\\d)/, ' $1')\r\n .replace(/_/g, '.')\r\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\r\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\r\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\r\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\r\n .split(' on ')[0]\r\n .trim();\r\n os$$1 = /^(?:webOS|i(?:OS|P))/.test(os$$1)\r\n ? os$$1\r\n : (os$$1.charAt(0).toUpperCase() + os$$1.slice(1));\r\n return { os: os$$1 };\r\n })\r\n .shift();\r\n };\r\n Detector.prototype.getOsPattern = function (definition) {\r\n var definitionInterface = definition;\r\n return (typeof definition === 'string'\r\n ? definition\r\n : undefined) ||\r\n definitionInterface.pattern ||\r\n definitionInterface.name;\r\n };\r\n Detector.prototype.handleMissingError = function () {\r\n throw new Error('Please give user-agent.\\n> browser(navigator.userAgent or res.headers[\\'user-agent\\']).');\r\n };\r\n return Detector;\r\n}());\r\n\r\nfunction createCommonjsModule(fn, module) {\r\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\r\n}\r\n\r\nvar _global = createCommonjsModule(function (module) {\r\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\r\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\r\n ? window : typeof self != 'undefined' && self.Math == Math ? self\r\n // eslint-disable-next-line no-new-func\r\n : Function('return this')();\r\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\r\n});\r\n\r\nvar _core = createCommonjsModule(function (module) {\r\nvar core = module.exports = { version: '2.5.7' };\r\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\r\n});\r\nvar _core_1 = _core.version;\r\n\r\nvar _isObject = function (it) {\r\n return typeof it === 'object' ? it !== null : typeof it === 'function';\r\n};\r\n\r\nvar _anObject = function (it) {\r\n if (!_isObject(it)) throw TypeError(it + ' is not an object!');\r\n return it;\r\n};\r\n\r\nvar _fails = function (exec) {\r\n try {\r\n return !!exec();\r\n } catch (e) {\r\n return true;\r\n }\r\n};\r\n\r\n// Thank's IE8 for his funny defineProperty\r\nvar _descriptors = !_fails(function () {\r\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\r\n});\r\n\r\nvar document = _global.document;\r\n// typeof document.createElement is 'object' in old IE\r\nvar is = _isObject(document) && _isObject(document.createElement);\r\nvar _domCreate = function (it) {\r\n return is ? document.createElement(it) : {};\r\n};\r\n\r\nvar _ie8DomDefine = !_descriptors && !_fails(function () {\r\n return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;\r\n});\r\n\r\n// 7.1.1 ToPrimitive(input [, PreferredType])\r\n\r\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\r\n// and the second argument - flag - preferred type is a string\r\nvar _toPrimitive = function (it, S) {\r\n if (!_isObject(it)) return it;\r\n var fn, val;\r\n if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;\r\n throw TypeError(\"Can't convert object to primitive value\");\r\n};\r\n\r\nvar dP = Object.defineProperty;\r\n\r\nvar f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {\r\n _anObject(O);\r\n P = _toPrimitive(P, true);\r\n _anObject(Attributes);\r\n if (_ie8DomDefine) try {\r\n return dP(O, P, Attributes);\r\n } catch (e) { /* empty */ }\r\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\r\n if ('value' in Attributes) O[P] = Attributes.value;\r\n return O;\r\n};\r\n\r\nvar _objectDp = {\r\n\tf: f\r\n};\r\n\r\nvar _propertyDesc = function (bitmap, value) {\r\n return {\r\n enumerable: !(bitmap & 1),\r\n configurable: !(bitmap & 2),\r\n writable: !(bitmap & 4),\r\n value: value\r\n };\r\n};\r\n\r\nvar _hide = _descriptors ? function (object, key, value) {\r\n return _objectDp.f(object, key, _propertyDesc(1, value));\r\n} : function (object, key, value) {\r\n object[key] = value;\r\n return object;\r\n};\r\n\r\nvar hasOwnProperty = {}.hasOwnProperty;\r\nvar _has = function (it, key) {\r\n return hasOwnProperty.call(it, key);\r\n};\r\n\r\nvar id = 0;\r\nvar px = Math.random();\r\nvar _uid = function (key) {\r\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\r\n};\r\n\r\nvar _redefine = createCommonjsModule(function (module) {\r\nvar SRC = _uid('src');\r\nvar TO_STRING = 'toString';\r\nvar $toString = Function[TO_STRING];\r\nvar TPL = ('' + $toString).split(TO_STRING);\r\n\r\n_core.inspectSource = function (it) {\r\n return $toString.call(it);\r\n};\r\n\r\n(module.exports = function (O, key, val, safe) {\r\n var isFunction = typeof val == 'function';\r\n if (isFunction) _has(val, 'name') || _hide(val, 'name', key);\r\n if (O[key] === val) return;\r\n if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\r\n if (O === _global) {\r\n O[key] = val;\r\n } else if (!safe) {\r\n delete O[key];\r\n _hide(O, key, val);\r\n } else if (O[key]) {\r\n O[key] = val;\r\n } else {\r\n _hide(O, key, val);\r\n }\r\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\r\n})(Function.prototype, TO_STRING, function toString() {\r\n return typeof this == 'function' && this[SRC] || $toString.call(this);\r\n});\r\n});\r\n\r\nvar _aFunction = function (it) {\r\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\r\n return it;\r\n};\r\n\r\n// optional / simple context binding\r\n\r\nvar _ctx = function (fn, that, length) {\r\n _aFunction(fn);\r\n if (that === undefined) return fn;\r\n switch (length) {\r\n case 1: return function (a) {\r\n return fn.call(that, a);\r\n };\r\n case 2: return function (a, b) {\r\n return fn.call(that, a, b);\r\n };\r\n case 3: return function (a, b, c) {\r\n return fn.call(that, a, b, c);\r\n };\r\n }\r\n return function (/* ...args */) {\r\n return fn.apply(that, arguments);\r\n };\r\n};\r\n\r\nvar PROTOTYPE = 'prototype';\r\n\r\nvar $export = function (type, name, source) {\r\n var IS_FORCED = type & $export.F;\r\n var IS_GLOBAL = type & $export.G;\r\n var IS_STATIC = type & $export.S;\r\n var IS_PROTO = type & $export.P;\r\n var IS_BIND = type & $export.B;\r\n var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];\r\n var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});\r\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\r\n var key, own, out, exp;\r\n if (IS_GLOBAL) source = name;\r\n for (key in source) {\r\n // contains in native\r\n own = !IS_FORCED && target && target[key] !== undefined;\r\n // export native or passed\r\n out = (own ? target : source)[key];\r\n // bind timers to global for call from export context\r\n exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;\r\n // extend global\r\n if (target) _redefine(target, key, out, type & $export.U);\r\n // export\r\n if (exports[key] != out) _hide(exports, key, exp);\r\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\r\n }\r\n};\r\n_global.core = _core;\r\n// type bitmap\r\n$export.F = 1; // forced\r\n$export.G = 2; // global\r\n$export.S = 4; // static\r\n$export.P = 8; // proto\r\n$export.B = 16; // bind\r\n$export.W = 32; // wrap\r\n$export.U = 64; // safe\r\n$export.R = 128; // real proto method for `library`\r\nvar _export = $export;\r\n\r\nvar toString = {}.toString;\r\n\r\nvar _cof = function (it) {\r\n return toString.call(it).slice(8, -1);\r\n};\r\n\r\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\r\n\r\n// eslint-disable-next-line no-prototype-builtins\r\nvar _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\r\n return _cof(it) == 'String' ? it.split('') : Object(it);\r\n};\r\n\r\n// 7.2.1 RequireObjectCoercible(argument)\r\nvar _defined = function (it) {\r\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\r\n return it;\r\n};\r\n\r\n// 7.1.13 ToObject(argument)\r\n\r\nvar _toObject = function (it) {\r\n return Object(_defined(it));\r\n};\r\n\r\n// 7.1.4 ToInteger\r\nvar ceil = Math.ceil;\r\nvar floor = Math.floor;\r\nvar _toInteger = function (it) {\r\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\r\n};\r\n\r\n// 7.1.15 ToLength\r\n\r\nvar min = Math.min;\r\nvar _toLength = function (it) {\r\n return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\r\n};\r\n\r\n// 7.2.2 IsArray(argument)\r\n\r\nvar _isArray = Array.isArray || function isArray(arg) {\r\n return _cof(arg) == 'Array';\r\n};\r\n\r\nvar _shared = createCommonjsModule(function (module) {\r\nvar SHARED = '__core-js_shared__';\r\nvar store = _global[SHARED] || (_global[SHARED] = {});\r\n\r\n(module.exports = function (key, value) {\r\n return store[key] || (store[key] = value !== undefined ? value : {});\r\n})('versions', []).push({\r\n version: _core.version,\r\n mode: 'global',\r\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\r\n});\r\n});\r\n\r\nvar _wks = createCommonjsModule(function (module) {\r\nvar store = _shared('wks');\r\n\r\nvar Symbol = _global.Symbol;\r\nvar USE_SYMBOL = typeof Symbol == 'function';\r\n\r\nvar $exports = module.exports = function (name) {\r\n return store[name] || (store[name] =\r\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));\r\n};\r\n\r\n$exports.store = store;\r\n});\r\n\r\nvar SPECIES = _wks('species');\r\n\r\nvar _arraySpeciesConstructor = function (original) {\r\n var C;\r\n if (_isArray(original)) {\r\n C = original.constructor;\r\n // cross-realm fallback\r\n if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;\r\n if (_isObject(C)) {\r\n C = C[SPECIES];\r\n if (C === null) C = undefined;\r\n }\r\n } return C === undefined ? Array : C;\r\n};\r\n\r\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\r\n\r\n\r\nvar _arraySpeciesCreate = function (original, length) {\r\n return new (_arraySpeciesConstructor(original))(length);\r\n};\r\n\r\n// 0 -> Array#forEach\r\n// 1 -> Array#map\r\n// 2 -> Array#filter\r\n// 3 -> Array#some\r\n// 4 -> Array#every\r\n// 5 -> Array#find\r\n// 6 -> Array#findIndex\r\n\r\n\r\n\r\n\r\n\r\nvar _arrayMethods = function (TYPE, $create) {\r\n var IS_MAP = TYPE == 1;\r\n var IS_FILTER = TYPE == 2;\r\n var IS_SOME = TYPE == 3;\r\n var IS_EVERY = TYPE == 4;\r\n var IS_FIND_INDEX = TYPE == 6;\r\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\r\n var create = $create || _arraySpeciesCreate;\r\n return function ($this, callbackfn, that) {\r\n var O = _toObject($this);\r\n var self = _iobject(O);\r\n var f = _ctx(callbackfn, that, 3);\r\n var length = _toLength(self.length);\r\n var index = 0;\r\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\r\n var val, res;\r\n for (;length > index; index++) if (NO_HOLES || index in self) {\r\n val = self[index];\r\n res = f(val, index, O);\r\n if (TYPE) {\r\n if (IS_MAP) result[index] = res; // map\r\n else if (res) switch (TYPE) {\r\n case 3: return true; // some\r\n case 5: return val; // find\r\n case 6: return index; // findIndex\r\n case 2: result.push(val); // filter\r\n } else if (IS_EVERY) return false; // every\r\n }\r\n }\r\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\r\n };\r\n};\r\n\r\nvar _strictMethod = function (method, arg) {\r\n return !!method && _fails(function () {\r\n // eslint-disable-next-line no-useless-call\r\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\r\n });\r\n};\r\n\r\nvar $filter = _arrayMethods(2);\r\n\r\n_export(_export.P + _export.F * !_strictMethod([].filter, true), 'Array', {\r\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\r\n filter: function filter(callbackfn /* , thisArg */) {\r\n return $filter(this, callbackfn, arguments[1]);\r\n }\r\n});\r\n\r\nvar filter = _core.Array.filter;\r\n\r\nvar $map = _arrayMethods(1);\r\n\r\n_export(_export.P + _export.F * !_strictMethod([].map, true), 'Array', {\r\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\r\n map: function map(callbackfn /* , thisArg */) {\r\n return $map(this, callbackfn, arguments[1]);\r\n }\r\n});\r\n\r\nvar map = _core.Array.map;\r\n\r\nvar _stringWs = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\r\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\r\n\r\nvar space = '[' + _stringWs + ']';\r\nvar non = '\\u200b\\u0085';\r\nvar ltrim = RegExp('^' + space + space + '*');\r\nvar rtrim = RegExp(space + space + '*$');\r\n\r\nvar exporter = function (KEY, exec, ALIAS) {\r\n var exp = {};\r\n var FORCE = _fails(function () {\r\n return !!_stringWs[KEY]() || non[KEY]() != non;\r\n });\r\n var fn = exp[KEY] = FORCE ? exec(trim) : _stringWs[KEY];\r\n if (ALIAS) exp[ALIAS] = fn;\r\n _export(_export.P + _export.F * FORCE, 'String', exp);\r\n};\r\n\r\n// 1 -> String#trimLeft\r\n// 2 -> String#trimRight\r\n// 3 -> String#trim\r\nvar trim = exporter.trim = function (string, TYPE) {\r\n string = String(_defined(string));\r\n if (TYPE & 1) string = string.replace(ltrim, '');\r\n if (TYPE & 2) string = string.replace(rtrim, '');\r\n return string;\r\n};\r\n\r\nvar _stringTrim = exporter;\r\n\r\n// 21.1.3.25 String.prototype.trim()\r\n_stringTrim('trim', function ($trim) {\r\n return function trim() {\r\n return $trim(this, 3);\r\n };\r\n});\r\n\r\nvar trim$1 = _core.String.trim;\r\n\r\nvar injectableNavigator = typeof window !== 'undefined'\r\n ? window.navigator\r\n : undefined;\r\nvar injectableProcess = typeof process !== 'undefined'\r\n ? process\r\n : undefined;\r\nfunction browserDetect (userAgent) {\r\n var detector = new Detector(userAgent, injectableNavigator, injectableProcess);\r\n return detector.detect();\r\n}\r\n\r\nexport default browserDetect;\r\n//# sourceMappingURL=browser-detect.es5.js.map\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must NOT have additional properties\",\n params: ({ params }) => (0, codegen_1._) `{additionalProperty: ${params.additionalProperty}}`,\n};\nconst def = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, errsCount, it } = cxt;\n /* istanbul ignore if */\n if (!errsCount)\n throw new Error(\"ajv implementation error\");\n const { allErrors, opts } = it;\n it.props = true;\n if (opts.removeAdditional !== \"all\" && (0, util_1.alwaysValidSchema)(it, schema))\n return;\n const props = (0, code_1.allSchemaProperties)(parentSchema.properties);\n const patProps = (0, code_1.allSchemaProperties)(parentSchema.patternProperties);\n checkAdditionalProperties();\n cxt.ok((0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n function checkAdditionalProperties() {\n gen.forIn(\"key\", data, (key) => {\n if (!props.length && !patProps.length)\n additionalPropertyCode(key);\n else\n gen.if(isAdditional(key), () => additionalPropertyCode(key));\n });\n }\n function isAdditional(key) {\n let definedProp;\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = (0, util_1.schemaRefOrVal)(it, parentSchema.properties, \"properties\");\n definedProp = (0, code_1.isOwnProperty)(gen, propsSchema, key);\n }\n else if (props.length) {\n definedProp = (0, codegen_1.or)(...props.map((p) => (0, codegen_1._) `${key} === ${p}`));\n }\n else {\n definedProp = codegen_1.nil;\n }\n if (patProps.length) {\n definedProp = (0, codegen_1.or)(definedProp, ...patProps.map((p) => (0, codegen_1._) `${(0, code_1.usePattern)(cxt, p)}.test(${key})`));\n }\n return (0, codegen_1.not)(definedProp);\n }\n function deleteAdditional(key) {\n gen.code((0, codegen_1._) `delete ${data}[${key}]`);\n }\n function additionalPropertyCode(key) {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key);\n return;\n }\n if (schema === false) {\n cxt.setParams({ additionalProperty: key });\n cxt.error();\n if (!allErrors)\n gen.break();\n return;\n }\n if (typeof schema == \"object\" && !(0, util_1.alwaysValidSchema)(it, schema)) {\n const valid = gen.name(\"valid\");\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false);\n gen.if((0, codegen_1.not)(valid), () => {\n cxt.reset();\n deleteAdditional(key);\n });\n }\n else {\n applyAdditionalSchema(key, valid);\n if (!allErrors)\n gen.if((0, codegen_1.not)(valid), () => gen.break());\n }\n }\n }\n function applyAdditionalSchema(key, valid, errors) {\n const subschema = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: util_1.Type.Str,\n };\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n });\n }\n cxt.subschema(subschema, valid);\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=additionalProperties.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { StopWatch } from '../../../../base/common/stopwatch.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport * as nls from '../../../../nls.js';\nclass ForceRetokenizeAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.forceRetokenize',\n label: nls.localize('forceRetokenize', \"Developer: Force Retokenize\"),\n alias: 'Developer: Force Retokenize',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const model = editor.getModel();\n model.tokenization.resetTokenization();\n const sw = new StopWatch();\n model.tokenization.forceTokenization(model.getLineCount());\n sw.stop();\n console.log(`tokenization took ${sw.elapsed()}`);\n }\n}\nregisterEditorAction(ForceRetokenizeAction);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { transformErrorForSerialization } from '../errors.js';\nimport { Emitter } from '../event.js';\nimport { Disposable } from '../lifecycle.js';\nimport { getAllMethodNames } from '../objects.js';\nimport { isWeb } from '../platform.js';\nimport * as strings from '../strings.js';\nconst INITIALIZE = '$initialize';\nlet webWorkerWarningLogged = false;\nexport function logOnceWebWorkerWarning(err) {\n if (!isWeb) {\n // running tests\n return;\n }\n if (!webWorkerWarningLogged) {\n webWorkerWarningLogged = true;\n console.warn('Could not create web worker(s). Falling back to loading web worker code in main thread, which might cause UI freezes. Please see https://github.com/microsoft/monaco-editor#faq');\n }\n console.warn(err.message);\n}\nclass RequestMessage {\n constructor(vsWorker, req, method, args) {\n this.vsWorker = vsWorker;\n this.req = req;\n this.method = method;\n this.args = args;\n this.type = 0 /* MessageType.Request */;\n }\n}\nclass ReplyMessage {\n constructor(vsWorker, seq, res, err) {\n this.vsWorker = vsWorker;\n this.seq = seq;\n this.res = res;\n this.err = err;\n this.type = 1 /* MessageType.Reply */;\n }\n}\nclass SubscribeEventMessage {\n constructor(vsWorker, req, eventName, arg) {\n this.vsWorker = vsWorker;\n this.req = req;\n this.eventName = eventName;\n this.arg = arg;\n this.type = 2 /* MessageType.SubscribeEvent */;\n }\n}\nclass EventMessage {\n constructor(vsWorker, req, event) {\n this.vsWorker = vsWorker;\n this.req = req;\n this.event = event;\n this.type = 3 /* MessageType.Event */;\n }\n}\nclass UnsubscribeEventMessage {\n constructor(vsWorker, req) {\n this.vsWorker = vsWorker;\n this.req = req;\n this.type = 4 /* MessageType.UnsubscribeEvent */;\n }\n}\nclass SimpleWorkerProtocol {\n constructor(handler) {\n this._workerId = -1;\n this._handler = handler;\n this._lastSentReq = 0;\n this._pendingReplies = Object.create(null);\n this._pendingEmitters = new Map();\n this._pendingEvents = new Map();\n }\n setWorkerId(workerId) {\n this._workerId = workerId;\n }\n sendMessage(method, args) {\n const req = String(++this._lastSentReq);\n return new Promise((resolve, reject) => {\n this._pendingReplies[req] = {\n resolve: resolve,\n reject: reject\n };\n this._send(new RequestMessage(this._workerId, req, method, args));\n });\n }\n listen(eventName, arg) {\n let req = null;\n const emitter = new Emitter({\n onWillAddFirstListener: () => {\n req = String(++this._lastSentReq);\n this._pendingEmitters.set(req, emitter);\n this._send(new SubscribeEventMessage(this._workerId, req, eventName, arg));\n },\n onDidRemoveLastListener: () => {\n this._pendingEmitters.delete(req);\n this._send(new UnsubscribeEventMessage(this._workerId, req));\n req = null;\n }\n });\n return emitter.event;\n }\n handleMessage(message) {\n if (!message || !message.vsWorker) {\n return;\n }\n if (this._workerId !== -1 && message.vsWorker !== this._workerId) {\n return;\n }\n this._handleMessage(message);\n }\n _handleMessage(msg) {\n switch (msg.type) {\n case 1 /* MessageType.Reply */:\n return this._handleReplyMessage(msg);\n case 0 /* MessageType.Request */:\n return this._handleRequestMessage(msg);\n case 2 /* MessageType.SubscribeEvent */:\n return this._handleSubscribeEventMessage(msg);\n case 3 /* MessageType.Event */:\n return this._handleEventMessage(msg);\n case 4 /* MessageType.UnsubscribeEvent */:\n return this._handleUnsubscribeEventMessage(msg);\n }\n }\n _handleReplyMessage(replyMessage) {\n if (!this._pendingReplies[replyMessage.seq]) {\n console.warn('Got reply to unknown seq');\n return;\n }\n const reply = this._pendingReplies[replyMessage.seq];\n delete this._pendingReplies[replyMessage.seq];\n if (replyMessage.err) {\n let err = replyMessage.err;\n if (replyMessage.err.$isError) {\n err = new Error();\n err.name = replyMessage.err.name;\n err.message = replyMessage.err.message;\n err.stack = replyMessage.err.stack;\n }\n reply.reject(err);\n return;\n }\n reply.resolve(replyMessage.res);\n }\n _handleRequestMessage(requestMessage) {\n const req = requestMessage.req;\n const result = this._handler.handleMessage(requestMessage.method, requestMessage.args);\n result.then((r) => {\n this._send(new ReplyMessage(this._workerId, req, r, undefined));\n }, (e) => {\n if (e.detail instanceof Error) {\n // Loading errors have a detail property that points to the actual error\n e.detail = transformErrorForSerialization(e.detail);\n }\n this._send(new ReplyMessage(this._workerId, req, undefined, transformErrorForSerialization(e)));\n });\n }\n _handleSubscribeEventMessage(msg) {\n const req = msg.req;\n const disposable = this._handler.handleEvent(msg.eventName, msg.arg)((event) => {\n this._send(new EventMessage(this._workerId, req, event));\n });\n this._pendingEvents.set(req, disposable);\n }\n _handleEventMessage(msg) {\n if (!this._pendingEmitters.has(msg.req)) {\n console.warn('Got event for unknown req');\n return;\n }\n this._pendingEmitters.get(msg.req).fire(msg.event);\n }\n _handleUnsubscribeEventMessage(msg) {\n if (!this._pendingEvents.has(msg.req)) {\n console.warn('Got unsubscribe for unknown req');\n return;\n }\n this._pendingEvents.get(msg.req).dispose();\n this._pendingEvents.delete(msg.req);\n }\n _send(msg) {\n const transfer = [];\n if (msg.type === 0 /* MessageType.Request */) {\n for (let i = 0; i < msg.args.length; i++) {\n if (msg.args[i] instanceof ArrayBuffer) {\n transfer.push(msg.args[i]);\n }\n }\n }\n else if (msg.type === 1 /* MessageType.Reply */) {\n if (msg.res instanceof ArrayBuffer) {\n transfer.push(msg.res);\n }\n }\n this._handler.sendMessage(msg, transfer);\n }\n}\n/**\n * Main thread side\n */\nexport class SimpleWorkerClient extends Disposable {\n constructor(workerFactory, moduleId, host) {\n super();\n let lazyProxyReject = null;\n this._worker = this._register(workerFactory.create('vs/base/common/worker/simpleWorker', (msg) => {\n this._protocol.handleMessage(msg);\n }, (err) => {\n // in Firefox, web workers fail lazily :(\n // we will reject the proxy\n lazyProxyReject === null || lazyProxyReject === void 0 ? void 0 : lazyProxyReject(err);\n }));\n this._protocol = new SimpleWorkerProtocol({\n sendMessage: (msg, transfer) => {\n this._worker.postMessage(msg, transfer);\n },\n handleMessage: (method, args) => {\n if (typeof host[method] !== 'function') {\n return Promise.reject(new Error('Missing method ' + method + ' on main thread host.'));\n }\n try {\n return Promise.resolve(host[method].apply(host, args));\n }\n catch (e) {\n return Promise.reject(e);\n }\n },\n handleEvent: (eventName, arg) => {\n if (propertyIsDynamicEvent(eventName)) {\n const event = host[eventName].call(host, arg);\n if (typeof event !== 'function') {\n throw new Error(`Missing dynamic event ${eventName} on main thread host.`);\n }\n return event;\n }\n if (propertyIsEvent(eventName)) {\n const event = host[eventName];\n if (typeof event !== 'function') {\n throw new Error(`Missing event ${eventName} on main thread host.`);\n }\n return event;\n }\n throw new Error(`Malformed event name ${eventName}`);\n }\n });\n this._protocol.setWorkerId(this._worker.getId());\n // Gather loader configuration\n let loaderConfiguration = null;\n const globalRequire = globalThis.require;\n if (typeof globalRequire !== 'undefined' && typeof globalRequire.getConfig === 'function') {\n // Get the configuration from the Monaco AMD Loader\n loaderConfiguration = globalRequire.getConfig();\n }\n else if (typeof globalThis.requirejs !== 'undefined') {\n // Get the configuration from requirejs\n loaderConfiguration = globalThis.requirejs.s.contexts._.config;\n }\n const hostMethods = getAllMethodNames(host);\n // Send initialize message\n this._onModuleLoaded = this._protocol.sendMessage(INITIALIZE, [\n this._worker.getId(),\n JSON.parse(JSON.stringify(loaderConfiguration)),\n moduleId,\n hostMethods,\n ]);\n // Create proxy to loaded code\n const proxyMethodRequest = (method, args) => {\n return this._request(method, args);\n };\n const proxyListen = (eventName, arg) => {\n return this._protocol.listen(eventName, arg);\n };\n this._lazyProxy = new Promise((resolve, reject) => {\n lazyProxyReject = reject;\n this._onModuleLoaded.then((availableMethods) => {\n resolve(createProxyObject(availableMethods, proxyMethodRequest, proxyListen));\n }, (e) => {\n reject(e);\n this._onError('Worker failed to load ' + moduleId, e);\n });\n });\n }\n getProxyObject() {\n return this._lazyProxy;\n }\n _request(method, args) {\n return new Promise((resolve, reject) => {\n this._onModuleLoaded.then(() => {\n this._protocol.sendMessage(method, args).then(resolve, reject);\n }, reject);\n });\n }\n _onError(message, error) {\n console.error(message);\n console.info(error);\n }\n}\nfunction propertyIsEvent(name) {\n // Assume a property is an event if it has a form of \"onSomething\"\n return name[0] === 'o' && name[1] === 'n' && strings.isUpperAsciiLetter(name.charCodeAt(2));\n}\nfunction propertyIsDynamicEvent(name) {\n // Assume a property is a dynamic event (a method that returns an event) if it has a form of \"onDynamicSomething\"\n return /^onDynamic/.test(name) && strings.isUpperAsciiLetter(name.charCodeAt(9));\n}\nfunction createProxyObject(methodNames, invoke, proxyListen) {\n const createProxyMethod = (method) => {\n return function () {\n const args = Array.prototype.slice.call(arguments, 0);\n return invoke(method, args);\n };\n };\n const createProxyDynamicEvent = (eventName) => {\n return function (arg) {\n return proxyListen(eventName, arg);\n };\n };\n const result = {};\n for (const methodName of methodNames) {\n if (propertyIsDynamicEvent(methodName)) {\n result[methodName] = createProxyDynamicEvent(methodName);\n continue;\n }\n if (propertyIsEvent(methodName)) {\n result[methodName] = proxyListen(methodName, undefined);\n continue;\n }\n result[methodName] = createProxyMethod(methodName);\n }\n return result;\n}\n/**\n * Worker side\n */\nexport class SimpleWorkerServer {\n constructor(postMessage, requestHandlerFactory) {\n this._requestHandlerFactory = requestHandlerFactory;\n this._requestHandler = null;\n this._protocol = new SimpleWorkerProtocol({\n sendMessage: (msg, transfer) => {\n postMessage(msg, transfer);\n },\n handleMessage: (method, args) => this._handleMessage(method, args),\n handleEvent: (eventName, arg) => this._handleEvent(eventName, arg)\n });\n }\n onmessage(msg) {\n this._protocol.handleMessage(msg);\n }\n _handleMessage(method, args) {\n if (method === INITIALIZE) {\n return this.initialize(args[0], args[1], args[2], args[3]);\n }\n if (!this._requestHandler || typeof this._requestHandler[method] !== 'function') {\n return Promise.reject(new Error('Missing requestHandler or method: ' + method));\n }\n try {\n return Promise.resolve(this._requestHandler[method].apply(this._requestHandler, args));\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n _handleEvent(eventName, arg) {\n if (!this._requestHandler) {\n throw new Error(`Missing requestHandler`);\n }\n if (propertyIsDynamicEvent(eventName)) {\n const event = this._requestHandler[eventName].call(this._requestHandler, arg);\n if (typeof event !== 'function') {\n throw new Error(`Missing dynamic event ${eventName} on request handler.`);\n }\n return event;\n }\n if (propertyIsEvent(eventName)) {\n const event = this._requestHandler[eventName];\n if (typeof event !== 'function') {\n throw new Error(`Missing event ${eventName} on request handler.`);\n }\n return event;\n }\n throw new Error(`Malformed event name ${eventName}`);\n }\n initialize(workerId, loaderConfig, moduleId, hostMethods) {\n this._protocol.setWorkerId(workerId);\n const proxyMethodRequest = (method, args) => {\n return this._protocol.sendMessage(method, args);\n };\n const proxyListen = (eventName, arg) => {\n return this._protocol.listen(eventName, arg);\n };\n const hostProxy = createProxyObject(hostMethods, proxyMethodRequest, proxyListen);\n if (this._requestHandlerFactory) {\n // static request handler\n this._requestHandler = this._requestHandlerFactory(hostProxy);\n return Promise.resolve(getAllMethodNames(this._requestHandler));\n }\n if (loaderConfig) {\n // Remove 'baseUrl', handling it is beyond scope for now\n if (typeof loaderConfig.baseUrl !== 'undefined') {\n delete loaderConfig['baseUrl'];\n }\n if (typeof loaderConfig.paths !== 'undefined') {\n if (typeof loaderConfig.paths.vs !== 'undefined') {\n delete loaderConfig.paths['vs'];\n }\n }\n if (typeof loaderConfig.trustedTypesPolicy !== 'undefined') {\n // don't use, it has been destroyed during serialize\n delete loaderConfig['trustedTypesPolicy'];\n }\n // Since this is in a web worker, enable catching errors\n loaderConfig.catchError = true;\n globalThis.require.config(loaderConfig);\n }\n return new Promise((resolve, reject) => {\n // Use the global require to be sure to get the global config\n // ESM-comment-begin\n // \t\t\tconst req = (globalThis.require || require);\n // ESM-comment-end\n // ESM-uncomment-begin\n const req = globalThis.require;\n // ESM-uncomment-end\n req([moduleId], (module) => {\n this._requestHandler = module.create(hostProxy);\n if (!this._requestHandler) {\n reject(new Error(`No RequestHandler!`));\n return;\n }\n resolve(getAllMethodNames(this._requestHandler));\n }, reject);\n });\n }\n}\n/**\n * Called on the worker side\n * @skipMangle\n */\nexport function create(postMessage) {\n return new SimpleWorkerServer(postMessage, null);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createTrustedTypesPolicy } from './trustedTypes.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { logOnceWebWorkerWarning } from '../common/worker/simpleWorker.js';\nimport { Disposable, toDisposable } from '../common/lifecycle.js';\nconst ttPolicy = createTrustedTypesPolicy('defaultWorkerFactory', { createScriptURL: value => value });\nfunction getWorker(label) {\n const monacoEnvironment = globalThis.MonacoEnvironment;\n if (monacoEnvironment) {\n if (typeof monacoEnvironment.getWorker === 'function') {\n return monacoEnvironment.getWorker('workerMain.js', label);\n }\n if (typeof monacoEnvironment.getWorkerUrl === 'function') {\n const workerUrl = monacoEnvironment.getWorkerUrl('workerMain.js', label);\n return new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) : workerUrl, { name: label });\n }\n }\n // ESM-comment-begin\n // \tif (typeof require === 'function') {\n // \t\t// check if the JS lives on a different origin\n // \t\tconst workerMain = require.toUrl('vs/base/worker/workerMain.js'); // explicitly using require.toUrl(), see https://github.com/microsoft/vscode/issues/107440#issuecomment-698982321\n // \t\tconst workerUrl = getWorkerBootstrapUrl(workerMain, label);\n // \t\treturn new Worker(ttPolicy ? ttPolicy.createScriptURL(workerUrl) as unknown as string : workerUrl, { name: label });\n // \t}\n // ESM-comment-end\n throw new Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`);\n}\n// ESM-comment-begin\n// export function getWorkerBootstrapUrl(scriptPath: string, label: string): string {\n// \tif (/^((http:)|(https:)|(file:))/.test(scriptPath) && scriptPath.substring(0, globalThis.origin.length) !== globalThis.origin) {\n// \t\t// this is the cross-origin case\n// \t\t// i.e. the webpage is running at a different origin than where the scripts are loaded from\n// \t\tconst myPath = 'vs/base/worker/defaultWorkerFactory.js';\n// \t\tconst workerBaseUrl = require.toUrl(myPath).slice(0, -myPath.length); // explicitly using require.toUrl(), see https://github.com/microsoft/vscode/issues/107440#issuecomment-698982321\n// \t\tconst js = `/*${label}*/globalThis.MonacoEnvironment={baseUrl: '${workerBaseUrl}'};const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });importScripts(ttPolicy?.createScriptURL('${scriptPath}') ?? '${scriptPath}');/*${label}*/`;\n// \t\tconst blob = new Blob([js], { type: 'application/javascript' });\n// \t\treturn URL.createObjectURL(blob);\n// \t}\n// \n// \tconst start = scriptPath.lastIndexOf('?');\n// \tconst end = scriptPath.lastIndexOf('#', start);\n// \tconst params = start > 0\n// \t\t? new URLSearchParams(scriptPath.substring(start + 1, ~end ? end : undefined))\n// \t\t: new URLSearchParams();\n// \n// \tCOI.addSearchParam(params, true, true);\n// \tconst search = params.toString();\n// \n// \tif (!search) {\n// \t\treturn `${scriptPath}#${label}`;\n// \t} else {\n// \t\treturn `${scriptPath}?${params.toString()}#${label}`;\n// \t}\n// }\n// ESM-comment-end\nfunction isPromiseLike(obj) {\n if (typeof obj.then === 'function') {\n return true;\n }\n return false;\n}\n/**\n * A worker that uses HTML5 web workers so that is has\n * its own global scope and its own thread.\n */\nclass WebWorker extends Disposable {\n constructor(moduleId, id, label, onMessageCallback, onErrorCallback) {\n super();\n this.id = id;\n this.label = label;\n const workerOrPromise = getWorker(label);\n if (isPromiseLike(workerOrPromise)) {\n this.worker = workerOrPromise;\n }\n else {\n this.worker = Promise.resolve(workerOrPromise);\n }\n this.postMessage(moduleId, []);\n this.worker.then((w) => {\n w.onmessage = function (ev) {\n onMessageCallback(ev.data);\n };\n w.onmessageerror = onErrorCallback;\n if (typeof w.addEventListener === 'function') {\n w.addEventListener('error', onErrorCallback);\n }\n });\n this._register(toDisposable(() => {\n var _a;\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.then(w => {\n w.onmessage = null;\n w.onmessageerror = null;\n w.removeEventListener('error', onErrorCallback);\n w.terminate();\n });\n this.worker = null;\n }));\n }\n getId() {\n return this.id;\n }\n postMessage(message, transfer) {\n var _a;\n (_a = this.worker) === null || _a === void 0 ? void 0 : _a.then(w => {\n try {\n w.postMessage(message, transfer);\n }\n catch (err) {\n onUnexpectedError(err);\n onUnexpectedError(new Error(`FAILED to post message to '${this.label}'-worker`, { cause: err }));\n }\n });\n }\n}\nexport class DefaultWorkerFactory {\n constructor(label) {\n this._label = label;\n this._webWorkerFailedBeforeError = false;\n }\n create(moduleId, onMessageCallback, onErrorCallback) {\n const workerId = (++DefaultWorkerFactory.LAST_WORKER_ID);\n if (this._webWorkerFailedBeforeError) {\n throw this._webWorkerFailedBeforeError;\n }\n return new WebWorker(moduleId, workerId, this._label || 'anonymous' + workerId, onMessageCallback, (err) => {\n logOnceWebWorkerWarning(err);\n this._webWorkerFailedBeforeError = err;\n onErrorCallback(err);\n });\n }\n}\nDefaultWorkerFactory.LAST_WORKER_ID = 0;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { splitLines } from '../../../base/common/strings.js';\nimport { Position } from '../core/position.js';\nimport { PrefixSumComputer } from './prefixSumComputer.js';\nexport class MirrorTextModel {\n constructor(uri, lines, eol, versionId) {\n this._uri = uri;\n this._lines = lines;\n this._eol = eol;\n this._versionId = versionId;\n this._lineStarts = null;\n this._cachedTextValue = null;\n }\n dispose() {\n this._lines.length = 0;\n }\n get version() {\n return this._versionId;\n }\n getText() {\n if (this._cachedTextValue === null) {\n this._cachedTextValue = this._lines.join(this._eol);\n }\n return this._cachedTextValue;\n }\n onEvents(e) {\n if (e.eol && e.eol !== this._eol) {\n this._eol = e.eol;\n this._lineStarts = null;\n }\n // Update my lines\n const changes = e.changes;\n for (const change of changes) {\n this._acceptDeleteRange(change.range);\n this._acceptInsertText(new Position(change.range.startLineNumber, change.range.startColumn), change.text);\n }\n this._versionId = e.versionId;\n this._cachedTextValue = null;\n }\n _ensureLineStarts() {\n if (!this._lineStarts) {\n const eolLength = this._eol.length;\n const linesLength = this._lines.length;\n const lineStartValues = new Uint32Array(linesLength);\n for (let i = 0; i < linesLength; i++) {\n lineStartValues[i] = this._lines[i].length + eolLength;\n }\n this._lineStarts = new PrefixSumComputer(lineStartValues);\n }\n }\n /**\n * All changes to a line's text go through this method\n */\n _setLineText(lineIndex, newValue) {\n this._lines[lineIndex] = newValue;\n if (this._lineStarts) {\n // update prefix sum\n this._lineStarts.setValue(lineIndex, this._lines[lineIndex].length + this._eol.length);\n }\n }\n _acceptDeleteRange(range) {\n if (range.startLineNumber === range.endLineNumber) {\n if (range.startColumn === range.endColumn) {\n // Nothing to delete\n return;\n }\n // Delete text on the affected line\n this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\n + this._lines[range.startLineNumber - 1].substring(range.endColumn - 1));\n return;\n }\n // Take remaining text on last line and append it to remaining text on first line\n this._setLineText(range.startLineNumber - 1, this._lines[range.startLineNumber - 1].substring(0, range.startColumn - 1)\n + this._lines[range.endLineNumber - 1].substring(range.endColumn - 1));\n // Delete middle lines\n this._lines.splice(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n if (this._lineStarts) {\n // update prefix sum\n this._lineStarts.removeValues(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n }\n }\n _acceptInsertText(position, insertText) {\n if (insertText.length === 0) {\n // Nothing to insert\n return;\n }\n const insertLines = splitLines(insertText);\n if (insertLines.length === 1) {\n // Inserting text on one line\n this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\n + insertLines[0]\n + this._lines[position.lineNumber - 1].substring(position.column - 1));\n return;\n }\n // Append overflowing text from first line to the end of text to insert\n insertLines[insertLines.length - 1] += this._lines[position.lineNumber - 1].substring(position.column - 1);\n // Delete overflowing text from first line and insert text on first line\n this._setLineText(position.lineNumber - 1, this._lines[position.lineNumber - 1].substring(0, position.column - 1)\n + insertLines[0]);\n // Insert new lines & store lengths\n const newLengths = new Uint32Array(insertLines.length - 1);\n for (let i = 1; i < insertLines.length; i++) {\n this._lines.splice(position.lineNumber + i - 1, 0, insertLines[i]);\n newLengths[i - 1] = insertLines[i].length + this._eol.length;\n }\n if (this._lineStarts) {\n // update prefix sum\n this._lineStarts.insertValues(position.lineNumber, newLengths);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CharacterClassifier } from '../core/characterClassifier.js';\nclass Uint8Matrix {\n constructor(rows, cols, defaultValue) {\n const data = new Uint8Array(rows * cols);\n for (let i = 0, len = rows * cols; i < len; i++) {\n data[i] = defaultValue;\n }\n this._data = data;\n this.rows = rows;\n this.cols = cols;\n }\n get(row, col) {\n return this._data[row * this.cols + col];\n }\n set(row, col, value) {\n this._data[row * this.cols + col] = value;\n }\n}\nexport class StateMachine {\n constructor(edges) {\n let maxCharCode = 0;\n let maxState = 0 /* State.Invalid */;\n for (let i = 0, len = edges.length; i < len; i++) {\n const [from, chCode, to] = edges[i];\n if (chCode > maxCharCode) {\n maxCharCode = chCode;\n }\n if (from > maxState) {\n maxState = from;\n }\n if (to > maxState) {\n maxState = to;\n }\n }\n maxCharCode++;\n maxState++;\n const states = new Uint8Matrix(maxState, maxCharCode, 0 /* State.Invalid */);\n for (let i = 0, len = edges.length; i < len; i++) {\n const [from, chCode, to] = edges[i];\n states.set(from, chCode, to);\n }\n this._states = states;\n this._maxCharCode = maxCharCode;\n }\n nextState(currentState, chCode) {\n if (chCode < 0 || chCode >= this._maxCharCode) {\n return 0 /* State.Invalid */;\n }\n return this._states.get(currentState, chCode);\n }\n}\n// State machine for http:// or https:// or file://\nlet _stateMachine = null;\nfunction getStateMachine() {\n if (_stateMachine === null) {\n _stateMachine = new StateMachine([\n [1 /* State.Start */, 104 /* CharCode.h */, 2 /* State.H */],\n [1 /* State.Start */, 72 /* CharCode.H */, 2 /* State.H */],\n [1 /* State.Start */, 102 /* CharCode.f */, 6 /* State.F */],\n [1 /* State.Start */, 70 /* CharCode.F */, 6 /* State.F */],\n [2 /* State.H */, 116 /* CharCode.t */, 3 /* State.HT */],\n [2 /* State.H */, 84 /* CharCode.T */, 3 /* State.HT */],\n [3 /* State.HT */, 116 /* CharCode.t */, 4 /* State.HTT */],\n [3 /* State.HT */, 84 /* CharCode.T */, 4 /* State.HTT */],\n [4 /* State.HTT */, 112 /* CharCode.p */, 5 /* State.HTTP */],\n [4 /* State.HTT */, 80 /* CharCode.P */, 5 /* State.HTTP */],\n [5 /* State.HTTP */, 115 /* CharCode.s */, 9 /* State.BeforeColon */],\n [5 /* State.HTTP */, 83 /* CharCode.S */, 9 /* State.BeforeColon */],\n [5 /* State.HTTP */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],\n [6 /* State.F */, 105 /* CharCode.i */, 7 /* State.FI */],\n [6 /* State.F */, 73 /* CharCode.I */, 7 /* State.FI */],\n [7 /* State.FI */, 108 /* CharCode.l */, 8 /* State.FIL */],\n [7 /* State.FI */, 76 /* CharCode.L */, 8 /* State.FIL */],\n [8 /* State.FIL */, 101 /* CharCode.e */, 9 /* State.BeforeColon */],\n [8 /* State.FIL */, 69 /* CharCode.E */, 9 /* State.BeforeColon */],\n [9 /* State.BeforeColon */, 58 /* CharCode.Colon */, 10 /* State.AfterColon */],\n [10 /* State.AfterColon */, 47 /* CharCode.Slash */, 11 /* State.AlmostThere */],\n [11 /* State.AlmostThere */, 47 /* CharCode.Slash */, 12 /* State.End */],\n ]);\n }\n return _stateMachine;\n}\nlet _classifier = null;\nfunction getClassifier() {\n if (_classifier === null) {\n _classifier = new CharacterClassifier(0 /* CharacterClass.None */);\n // allow-any-unicode-next-line\n const FORCE_TERMINATION_CHARACTERS = ' \\t<>\\'\\\"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…';\n for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {\n _classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), 1 /* CharacterClass.ForceTermination */);\n }\n const CANNOT_END_WITH_CHARACTERS = '.,;:';\n for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {\n _classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), 2 /* CharacterClass.CannotEndIn */);\n }\n }\n return _classifier;\n}\nexport class LinkComputer {\n static _createLink(classifier, line, lineNumber, linkBeginIndex, linkEndIndex) {\n // Do not allow to end link in certain characters...\n let lastIncludedCharIndex = linkEndIndex - 1;\n do {\n const chCode = line.charCodeAt(lastIncludedCharIndex);\n const chClass = classifier.get(chCode);\n if (chClass !== 2 /* CharacterClass.CannotEndIn */) {\n break;\n }\n lastIncludedCharIndex--;\n } while (lastIncludedCharIndex > linkBeginIndex);\n // Handle links enclosed in parens, square brackets and curlys.\n if (linkBeginIndex > 0) {\n const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);\n const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);\n if ((charCodeBeforeLink === 40 /* CharCode.OpenParen */ && lastCharCodeInLink === 41 /* CharCode.CloseParen */)\n || (charCodeBeforeLink === 91 /* CharCode.OpenSquareBracket */ && lastCharCodeInLink === 93 /* CharCode.CloseSquareBracket */)\n || (charCodeBeforeLink === 123 /* CharCode.OpenCurlyBrace */ && lastCharCodeInLink === 125 /* CharCode.CloseCurlyBrace */)) {\n // Do not end in ) if ( is before the link start\n // Do not end in ] if [ is before the link start\n // Do not end in } if { is before the link start\n lastIncludedCharIndex--;\n }\n }\n return {\n range: {\n startLineNumber: lineNumber,\n startColumn: linkBeginIndex + 1,\n endLineNumber: lineNumber,\n endColumn: lastIncludedCharIndex + 2\n },\n url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)\n };\n }\n static computeLinks(model, stateMachine = getStateMachine()) {\n const classifier = getClassifier();\n const result = [];\n for (let i = 1, lineCount = model.getLineCount(); i <= lineCount; i++) {\n const line = model.getLineContent(i);\n const len = line.length;\n let j = 0;\n let linkBeginIndex = 0;\n let linkBeginChCode = 0;\n let state = 1 /* State.Start */;\n let hasOpenParens = false;\n let hasOpenSquareBracket = false;\n let inSquareBrackets = false;\n let hasOpenCurlyBracket = false;\n while (j < len) {\n let resetStateMachine = false;\n const chCode = line.charCodeAt(j);\n if (state === 13 /* State.Accept */) {\n let chClass;\n switch (chCode) {\n case 40 /* CharCode.OpenParen */:\n hasOpenParens = true;\n chClass = 0 /* CharacterClass.None */;\n break;\n case 41 /* CharCode.CloseParen */:\n chClass = (hasOpenParens ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n break;\n case 91 /* CharCode.OpenSquareBracket */:\n inSquareBrackets = true;\n hasOpenSquareBracket = true;\n chClass = 0 /* CharacterClass.None */;\n break;\n case 93 /* CharCode.CloseSquareBracket */:\n inSquareBrackets = false;\n chClass = (hasOpenSquareBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n break;\n case 123 /* CharCode.OpenCurlyBrace */:\n hasOpenCurlyBracket = true;\n chClass = 0 /* CharacterClass.None */;\n break;\n case 125 /* CharCode.CloseCurlyBrace */:\n chClass = (hasOpenCurlyBracket ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n break;\n // The following three rules make it that ' or \" or ` are allowed inside links\n // only if the link is wrapped by some other quote character\n case 39 /* CharCode.SingleQuote */:\n case 34 /* CharCode.DoubleQuote */:\n case 96 /* CharCode.BackTick */:\n if (linkBeginChCode === chCode) {\n chClass = 1 /* CharacterClass.ForceTermination */;\n }\n else if (linkBeginChCode === 39 /* CharCode.SingleQuote */ || linkBeginChCode === 34 /* CharCode.DoubleQuote */ || linkBeginChCode === 96 /* CharCode.BackTick */) {\n chClass = 0 /* CharacterClass.None */;\n }\n else {\n chClass = 1 /* CharacterClass.ForceTermination */;\n }\n break;\n case 42 /* CharCode.Asterisk */:\n // `*` terminates a link if the link began with `*`\n chClass = (linkBeginChCode === 42 /* CharCode.Asterisk */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;\n break;\n case 124 /* CharCode.Pipe */:\n // `|` terminates a link if the link began with `|`\n chClass = (linkBeginChCode === 124 /* CharCode.Pipe */) ? 1 /* CharacterClass.ForceTermination */ : 0 /* CharacterClass.None */;\n break;\n case 32 /* CharCode.Space */:\n // ` ` allow space in between [ and ]\n chClass = (inSquareBrackets ? 0 /* CharacterClass.None */ : 1 /* CharacterClass.ForceTermination */);\n break;\n default:\n chClass = classifier.get(chCode);\n }\n // Check if character terminates link\n if (chClass === 1 /* CharacterClass.ForceTermination */) {\n result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, j));\n resetStateMachine = true;\n }\n }\n else if (state === 12 /* State.End */) {\n let chClass;\n if (chCode === 91 /* CharCode.OpenSquareBracket */) {\n // Allow for the authority part to contain ipv6 addresses which contain [ and ]\n hasOpenSquareBracket = true;\n chClass = 0 /* CharacterClass.None */;\n }\n else {\n chClass = classifier.get(chCode);\n }\n // Check if character terminates link\n if (chClass === 1 /* CharacterClass.ForceTermination */) {\n resetStateMachine = true;\n }\n else {\n state = 13 /* State.Accept */;\n }\n }\n else {\n state = stateMachine.nextState(state, chCode);\n if (state === 0 /* State.Invalid */) {\n resetStateMachine = true;\n }\n }\n if (resetStateMachine) {\n state = 1 /* State.Start */;\n hasOpenParens = false;\n hasOpenSquareBracket = false;\n hasOpenCurlyBracket = false;\n // Record where the link started\n linkBeginIndex = j + 1;\n linkBeginChCode = chCode;\n }\n j++;\n }\n if (state === 13 /* State.Accept */) {\n result.push(LinkComputer._createLink(classifier, line, i, linkBeginIndex, len));\n }\n }\n return result;\n }\n}\n/**\n * Returns an array of all links contains in the provided\n * document. *Note* that this operation is computational\n * expensive and should not run in the UI thread.\n */\nexport function computeLinks(model) {\n if (!model || typeof model.getLineCount !== 'function' || typeof model.getLineContent !== 'function') {\n // Unknown caller!\n return [];\n }\n return LinkComputer.computeLinks(model);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class BasicInplaceReplace {\n constructor() {\n this._defaultValueSet = [\n ['true', 'false'],\n ['True', 'False'],\n ['Private', 'Public', 'Friend', 'ReadOnly', 'Partial', 'Protected', 'WriteOnly'],\n ['public', 'protected', 'private'],\n ];\n }\n navigateValueSet(range1, text1, range2, text2, up) {\n if (range1 && text1) {\n const result = this.doNavigateValueSet(text1, up);\n if (result) {\n return {\n range: range1,\n value: result\n };\n }\n }\n if (range2 && text2) {\n const result = this.doNavigateValueSet(text2, up);\n if (result) {\n return {\n range: range2,\n value: result\n };\n }\n }\n return null;\n }\n doNavigateValueSet(text, up) {\n const numberResult = this.numberReplace(text, up);\n if (numberResult !== null) {\n return numberResult;\n }\n return this.textReplace(text, up);\n }\n numberReplace(value, up) {\n const precision = Math.pow(10, value.length - (value.lastIndexOf('.') + 1));\n let n1 = Number(value);\n const n2 = parseFloat(value);\n if (!isNaN(n1) && !isNaN(n2) && n1 === n2) {\n if (n1 === 0 && !up) {\n return null; // don't do negative\n //\t\t\t} else if(n1 === 9 && up) {\n //\t\t\t\treturn null; // don't insert 10 into a number\n }\n else {\n n1 = Math.floor(n1 * precision);\n n1 += up ? precision : -precision;\n return String(n1 / precision);\n }\n }\n return null;\n }\n textReplace(value, up) {\n return this.valueSetsReplace(this._defaultValueSet, value, up);\n }\n valueSetsReplace(valueSets, value, up) {\n let result = null;\n for (let i = 0, len = valueSets.length; result === null && i < len; i++) {\n result = this.valueSetReplace(valueSets[i], value, up);\n }\n return result;\n }\n valueSetReplace(valueSet, value, up) {\n let idx = valueSet.indexOf(value);\n if (idx >= 0) {\n idx += up ? +1 : -1;\n if (idx < 0) {\n idx = valueSet.length - 1;\n }\n else {\n idx %= valueSet.length;\n }\n return valueSet[idx];\n }\n return null;\n }\n}\nBasicInplaceReplace.INSTANCE = new BasicInplaceReplace();\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LcsDiff } from '../../../base/common/diff/diff.js';\nimport { LinesDiff } from './linesDiffComputer.js';\nimport { RangeMapping, DetailedLineRangeMapping } from './rangeMapping.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { Range } from '../core/range.js';\nimport { assertFn, checkAdjacentItems } from '../../../base/common/assert.js';\nimport { LineRange } from '../core/lineRange.js';\nconst MINIMUM_MATCHING_CHARACTER_LENGTH = 3;\nexport class LegacyLinesDiffComputer {\n computeDiff(originalLines, modifiedLines, options) {\n var _a;\n const diffComputer = new DiffComputer(originalLines, modifiedLines, {\n maxComputationTime: options.maxComputationTimeMs,\n shouldIgnoreTrimWhitespace: options.ignoreTrimWhitespace,\n shouldComputeCharChanges: true,\n shouldMakePrettyDiff: true,\n shouldPostProcessCharChanges: true,\n });\n const result = diffComputer.computeDiff();\n const changes = [];\n let lastChange = null;\n for (const c of result.changes) {\n let originalRange;\n if (c.originalEndLineNumber === 0) {\n // Insertion\n originalRange = new LineRange(c.originalStartLineNumber + 1, c.originalStartLineNumber + 1);\n }\n else {\n originalRange = new LineRange(c.originalStartLineNumber, c.originalEndLineNumber + 1);\n }\n let modifiedRange;\n if (c.modifiedEndLineNumber === 0) {\n // Deletion\n modifiedRange = new LineRange(c.modifiedStartLineNumber + 1, c.modifiedStartLineNumber + 1);\n }\n else {\n modifiedRange = new LineRange(c.modifiedStartLineNumber, c.modifiedEndLineNumber + 1);\n }\n let change = new DetailedLineRangeMapping(originalRange, modifiedRange, (_a = c.charChanges) === null || _a === void 0 ? void 0 : _a.map(c => new RangeMapping(new Range(c.originalStartLineNumber, c.originalStartColumn, c.originalEndLineNumber, c.originalEndColumn), new Range(c.modifiedStartLineNumber, c.modifiedStartColumn, c.modifiedEndLineNumber, c.modifiedEndColumn))));\n if (lastChange) {\n if (lastChange.modified.endLineNumberExclusive === change.modified.startLineNumber\n || lastChange.original.endLineNumberExclusive === change.original.startLineNumber) {\n // join touching diffs. Probably moving diffs up/down in the algorithm causes touching diffs.\n change = new DetailedLineRangeMapping(lastChange.original.join(change.original), lastChange.modified.join(change.modified), lastChange.innerChanges && change.innerChanges ?\n lastChange.innerChanges.concat(change.innerChanges) : undefined);\n changes.pop();\n }\n }\n changes.push(change);\n lastChange = change;\n }\n assertFn(() => {\n return checkAdjacentItems(changes, (m1, m2) => m2.original.startLineNumber - m1.original.endLineNumberExclusive === m2.modified.startLineNumber - m1.modified.endLineNumberExclusive &&\n // There has to be an unchanged line in between (otherwise both diffs should have been joined)\n m1.original.endLineNumberExclusive < m2.original.startLineNumber &&\n m1.modified.endLineNumberExclusive < m2.modified.startLineNumber);\n });\n return new LinesDiff(changes, [], result.quitEarly);\n }\n}\nfunction computeDiff(originalSequence, modifiedSequence, continueProcessingPredicate, pretty) {\n const diffAlgo = new LcsDiff(originalSequence, modifiedSequence, continueProcessingPredicate);\n return diffAlgo.ComputeDiff(pretty);\n}\nclass LineSequence {\n constructor(lines) {\n const startColumns = [];\n const endColumns = [];\n for (let i = 0, length = lines.length; i < length; i++) {\n startColumns[i] = getFirstNonBlankColumn(lines[i], 1);\n endColumns[i] = getLastNonBlankColumn(lines[i], 1);\n }\n this.lines = lines;\n this._startColumns = startColumns;\n this._endColumns = endColumns;\n }\n getElements() {\n const elements = [];\n for (let i = 0, len = this.lines.length; i < len; i++) {\n elements[i] = this.lines[i].substring(this._startColumns[i] - 1, this._endColumns[i] - 1);\n }\n return elements;\n }\n getStrictElement(index) {\n return this.lines[index];\n }\n getStartLineNumber(i) {\n return i + 1;\n }\n getEndLineNumber(i) {\n return i + 1;\n }\n createCharSequence(shouldIgnoreTrimWhitespace, startIndex, endIndex) {\n const charCodes = [];\n const lineNumbers = [];\n const columns = [];\n let len = 0;\n for (let index = startIndex; index <= endIndex; index++) {\n const lineContent = this.lines[index];\n const startColumn = (shouldIgnoreTrimWhitespace ? this._startColumns[index] : 1);\n const endColumn = (shouldIgnoreTrimWhitespace ? this._endColumns[index] : lineContent.length + 1);\n for (let col = startColumn; col < endColumn; col++) {\n charCodes[len] = lineContent.charCodeAt(col - 1);\n lineNumbers[len] = index + 1;\n columns[len] = col;\n len++;\n }\n if (!shouldIgnoreTrimWhitespace && index < endIndex) {\n // Add \\n if trim whitespace is not ignored\n charCodes[len] = 10 /* CharCode.LineFeed */;\n lineNumbers[len] = index + 1;\n columns[len] = lineContent.length + 1;\n len++;\n }\n }\n return new CharSequence(charCodes, lineNumbers, columns);\n }\n}\nclass CharSequence {\n constructor(charCodes, lineNumbers, columns) {\n this._charCodes = charCodes;\n this._lineNumbers = lineNumbers;\n this._columns = columns;\n }\n toString() {\n return ('[' + this._charCodes.map((s, idx) => (s === 10 /* CharCode.LineFeed */ ? '\\\\n' : String.fromCharCode(s)) + `-(${this._lineNumbers[idx]},${this._columns[idx]})`).join(', ') + ']');\n }\n _assertIndex(index, arr) {\n if (index < 0 || index >= arr.length) {\n throw new Error(`Illegal index`);\n }\n }\n getElements() {\n return this._charCodes;\n }\n getStartLineNumber(i) {\n if (i > 0 && i === this._lineNumbers.length) {\n // the start line number of the element after the last element\n // is the end line number of the last element\n return this.getEndLineNumber(i - 1);\n }\n this._assertIndex(i, this._lineNumbers);\n return this._lineNumbers[i];\n }\n getEndLineNumber(i) {\n if (i === -1) {\n // the end line number of the element before the first element\n // is the start line number of the first element\n return this.getStartLineNumber(i + 1);\n }\n this._assertIndex(i, this._lineNumbers);\n if (this._charCodes[i] === 10 /* CharCode.LineFeed */) {\n return this._lineNumbers[i] + 1;\n }\n return this._lineNumbers[i];\n }\n getStartColumn(i) {\n if (i > 0 && i === this._columns.length) {\n // the start column of the element after the last element\n // is the end column of the last element\n return this.getEndColumn(i - 1);\n }\n this._assertIndex(i, this._columns);\n return this._columns[i];\n }\n getEndColumn(i) {\n if (i === -1) {\n // the end column of the element before the first element\n // is the start column of the first element\n return this.getStartColumn(i + 1);\n }\n this._assertIndex(i, this._columns);\n if (this._charCodes[i] === 10 /* CharCode.LineFeed */) {\n return 1;\n }\n return this._columns[i] + 1;\n }\n}\nclass CharChange {\n constructor(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn) {\n this.originalStartLineNumber = originalStartLineNumber;\n this.originalStartColumn = originalStartColumn;\n this.originalEndLineNumber = originalEndLineNumber;\n this.originalEndColumn = originalEndColumn;\n this.modifiedStartLineNumber = modifiedStartLineNumber;\n this.modifiedStartColumn = modifiedStartColumn;\n this.modifiedEndLineNumber = modifiedEndLineNumber;\n this.modifiedEndColumn = modifiedEndColumn;\n }\n static createFromDiffChange(diffChange, originalCharSequence, modifiedCharSequence) {\n const originalStartLineNumber = originalCharSequence.getStartLineNumber(diffChange.originalStart);\n const originalStartColumn = originalCharSequence.getStartColumn(diffChange.originalStart);\n const originalEndLineNumber = originalCharSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n const originalEndColumn = originalCharSequence.getEndColumn(diffChange.originalStart + diffChange.originalLength - 1);\n const modifiedStartLineNumber = modifiedCharSequence.getStartLineNumber(diffChange.modifiedStart);\n const modifiedStartColumn = modifiedCharSequence.getStartColumn(diffChange.modifiedStart);\n const modifiedEndLineNumber = modifiedCharSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n const modifiedEndColumn = modifiedCharSequence.getEndColumn(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n return new CharChange(originalStartLineNumber, originalStartColumn, originalEndLineNumber, originalEndColumn, modifiedStartLineNumber, modifiedStartColumn, modifiedEndLineNumber, modifiedEndColumn);\n }\n}\nfunction postProcessCharChanges(rawChanges) {\n if (rawChanges.length <= 1) {\n return rawChanges;\n }\n const result = [rawChanges[0]];\n let prevChange = result[0];\n for (let i = 1, len = rawChanges.length; i < len; i++) {\n const currChange = rawChanges[i];\n const originalMatchingLength = currChange.originalStart - (prevChange.originalStart + prevChange.originalLength);\n const modifiedMatchingLength = currChange.modifiedStart - (prevChange.modifiedStart + prevChange.modifiedLength);\n // Both of the above should be equal, but the continueProcessingPredicate may prevent this from being true\n const matchingLength = Math.min(originalMatchingLength, modifiedMatchingLength);\n if (matchingLength < MINIMUM_MATCHING_CHARACTER_LENGTH) {\n // Merge the current change into the previous one\n prevChange.originalLength = (currChange.originalStart + currChange.originalLength) - prevChange.originalStart;\n prevChange.modifiedLength = (currChange.modifiedStart + currChange.modifiedLength) - prevChange.modifiedStart;\n }\n else {\n // Add the current change\n result.push(currChange);\n prevChange = currChange;\n }\n }\n return result;\n}\nclass LineChange {\n constructor(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges) {\n this.originalStartLineNumber = originalStartLineNumber;\n this.originalEndLineNumber = originalEndLineNumber;\n this.modifiedStartLineNumber = modifiedStartLineNumber;\n this.modifiedEndLineNumber = modifiedEndLineNumber;\n this.charChanges = charChanges;\n }\n static createFromDiffResult(shouldIgnoreTrimWhitespace, diffChange, originalLineSequence, modifiedLineSequence, continueCharDiff, shouldComputeCharChanges, shouldPostProcessCharChanges) {\n let originalStartLineNumber;\n let originalEndLineNumber;\n let modifiedStartLineNumber;\n let modifiedEndLineNumber;\n let charChanges = undefined;\n if (diffChange.originalLength === 0) {\n originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart) - 1;\n originalEndLineNumber = 0;\n }\n else {\n originalStartLineNumber = originalLineSequence.getStartLineNumber(diffChange.originalStart);\n originalEndLineNumber = originalLineSequence.getEndLineNumber(diffChange.originalStart + diffChange.originalLength - 1);\n }\n if (diffChange.modifiedLength === 0) {\n modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart) - 1;\n modifiedEndLineNumber = 0;\n }\n else {\n modifiedStartLineNumber = modifiedLineSequence.getStartLineNumber(diffChange.modifiedStart);\n modifiedEndLineNumber = modifiedLineSequence.getEndLineNumber(diffChange.modifiedStart + diffChange.modifiedLength - 1);\n }\n if (shouldComputeCharChanges && diffChange.originalLength > 0 && diffChange.originalLength < 20 && diffChange.modifiedLength > 0 && diffChange.modifiedLength < 20 && continueCharDiff()) {\n // Compute character changes for diff chunks of at most 20 lines...\n const originalCharSequence = originalLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.originalStart, diffChange.originalStart + diffChange.originalLength - 1);\n const modifiedCharSequence = modifiedLineSequence.createCharSequence(shouldIgnoreTrimWhitespace, diffChange.modifiedStart, diffChange.modifiedStart + diffChange.modifiedLength - 1);\n if (originalCharSequence.getElements().length > 0 && modifiedCharSequence.getElements().length > 0) {\n let rawChanges = computeDiff(originalCharSequence, modifiedCharSequence, continueCharDiff, true).changes;\n if (shouldPostProcessCharChanges) {\n rawChanges = postProcessCharChanges(rawChanges);\n }\n charChanges = [];\n for (let i = 0, length = rawChanges.length; i < length; i++) {\n charChanges.push(CharChange.createFromDiffChange(rawChanges[i], originalCharSequence, modifiedCharSequence));\n }\n }\n }\n return new LineChange(originalStartLineNumber, originalEndLineNumber, modifiedStartLineNumber, modifiedEndLineNumber, charChanges);\n }\n}\nexport class DiffComputer {\n constructor(originalLines, modifiedLines, opts) {\n this.shouldComputeCharChanges = opts.shouldComputeCharChanges;\n this.shouldPostProcessCharChanges = opts.shouldPostProcessCharChanges;\n this.shouldIgnoreTrimWhitespace = opts.shouldIgnoreTrimWhitespace;\n this.shouldMakePrettyDiff = opts.shouldMakePrettyDiff;\n this.originalLines = originalLines;\n this.modifiedLines = modifiedLines;\n this.original = new LineSequence(originalLines);\n this.modified = new LineSequence(modifiedLines);\n this.continueLineDiff = createContinueProcessingPredicate(opts.maxComputationTime);\n this.continueCharDiff = createContinueProcessingPredicate(opts.maxComputationTime === 0 ? 0 : Math.min(opts.maxComputationTime, 5000)); // never run after 5s for character changes...\n }\n computeDiff() {\n if (this.original.lines.length === 1 && this.original.lines[0].length === 0) {\n // empty original => fast path\n if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) {\n return {\n quitEarly: false,\n changes: []\n };\n }\n return {\n quitEarly: false,\n changes: [{\n originalStartLineNumber: 1,\n originalEndLineNumber: 1,\n modifiedStartLineNumber: 1,\n modifiedEndLineNumber: this.modified.lines.length,\n charChanges: undefined\n }]\n };\n }\n if (this.modified.lines.length === 1 && this.modified.lines[0].length === 0) {\n // empty modified => fast path\n return {\n quitEarly: false,\n changes: [{\n originalStartLineNumber: 1,\n originalEndLineNumber: this.original.lines.length,\n modifiedStartLineNumber: 1,\n modifiedEndLineNumber: 1,\n charChanges: undefined\n }]\n };\n }\n const diffResult = computeDiff(this.original, this.modified, this.continueLineDiff, this.shouldMakePrettyDiff);\n const rawChanges = diffResult.changes;\n const quitEarly = diffResult.quitEarly;\n // The diff is always computed with ignoring trim whitespace\n // This ensures we get the prettiest diff\n if (this.shouldIgnoreTrimWhitespace) {\n const lineChanges = [];\n for (let i = 0, length = rawChanges.length; i < length; i++) {\n lineChanges.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, rawChanges[i], this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n }\n return {\n quitEarly: quitEarly,\n changes: lineChanges\n };\n }\n // Need to post-process and introduce changes where the trim whitespace is different\n // Note that we are looping starting at -1 to also cover the lines before the first change\n const result = [];\n let originalLineIndex = 0;\n let modifiedLineIndex = 0;\n for (let i = -1 /* !!!! */, len = rawChanges.length; i < len; i++) {\n const nextChange = (i + 1 < len ? rawChanges[i + 1] : null);\n const originalStop = (nextChange ? nextChange.originalStart : this.originalLines.length);\n const modifiedStop = (nextChange ? nextChange.modifiedStart : this.modifiedLines.length);\n while (originalLineIndex < originalStop && modifiedLineIndex < modifiedStop) {\n const originalLine = this.originalLines[originalLineIndex];\n const modifiedLine = this.modifiedLines[modifiedLineIndex];\n if (originalLine !== modifiedLine) {\n // These lines differ only in trim whitespace\n // Check the leading whitespace\n {\n let originalStartColumn = getFirstNonBlankColumn(originalLine, 1);\n let modifiedStartColumn = getFirstNonBlankColumn(modifiedLine, 1);\n while (originalStartColumn > 1 && modifiedStartColumn > 1) {\n const originalChar = originalLine.charCodeAt(originalStartColumn - 2);\n const modifiedChar = modifiedLine.charCodeAt(modifiedStartColumn - 2);\n if (originalChar !== modifiedChar) {\n break;\n }\n originalStartColumn--;\n modifiedStartColumn--;\n }\n if (originalStartColumn > 1 || modifiedStartColumn > 1) {\n this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, 1, originalStartColumn, modifiedLineIndex + 1, 1, modifiedStartColumn);\n }\n }\n // Check the trailing whitespace\n {\n let originalEndColumn = getLastNonBlankColumn(originalLine, 1);\n let modifiedEndColumn = getLastNonBlankColumn(modifiedLine, 1);\n const originalMaxColumn = originalLine.length + 1;\n const modifiedMaxColumn = modifiedLine.length + 1;\n while (originalEndColumn < originalMaxColumn && modifiedEndColumn < modifiedMaxColumn) {\n const originalChar = originalLine.charCodeAt(originalEndColumn - 1);\n const modifiedChar = originalLine.charCodeAt(modifiedEndColumn - 1);\n if (originalChar !== modifiedChar) {\n break;\n }\n originalEndColumn++;\n modifiedEndColumn++;\n }\n if (originalEndColumn < originalMaxColumn || modifiedEndColumn < modifiedMaxColumn) {\n this._pushTrimWhitespaceCharChange(result, originalLineIndex + 1, originalEndColumn, originalMaxColumn, modifiedLineIndex + 1, modifiedEndColumn, modifiedMaxColumn);\n }\n }\n }\n originalLineIndex++;\n modifiedLineIndex++;\n }\n if (nextChange) {\n // Emit the actual change\n result.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace, nextChange, this.original, this.modified, this.continueCharDiff, this.shouldComputeCharChanges, this.shouldPostProcessCharChanges));\n originalLineIndex += nextChange.originalLength;\n modifiedLineIndex += nextChange.modifiedLength;\n }\n }\n return {\n quitEarly: quitEarly,\n changes: result\n };\n }\n _pushTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n if (this._mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn)) {\n // Merged into previous\n return;\n }\n let charChanges = undefined;\n if (this.shouldComputeCharChanges) {\n charChanges = [new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn)];\n }\n result.push(new LineChange(originalLineNumber, originalLineNumber, modifiedLineNumber, modifiedLineNumber, charChanges));\n }\n _mergeTrimWhitespaceCharChange(result, originalLineNumber, originalStartColumn, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedEndColumn) {\n const len = result.length;\n if (len === 0) {\n return false;\n }\n const prevChange = result[len - 1];\n if (prevChange.originalEndLineNumber === 0 || prevChange.modifiedEndLineNumber === 0) {\n // Don't merge with inserts/deletes\n return false;\n }\n if (prevChange.originalEndLineNumber === originalLineNumber && prevChange.modifiedEndLineNumber === modifiedLineNumber) {\n if (this.shouldComputeCharChanges && prevChange.charChanges) {\n prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n }\n return true;\n }\n if (prevChange.originalEndLineNumber + 1 === originalLineNumber && prevChange.modifiedEndLineNumber + 1 === modifiedLineNumber) {\n prevChange.originalEndLineNumber = originalLineNumber;\n prevChange.modifiedEndLineNumber = modifiedLineNumber;\n if (this.shouldComputeCharChanges && prevChange.charChanges) {\n prevChange.charChanges.push(new CharChange(originalLineNumber, originalStartColumn, originalLineNumber, originalEndColumn, modifiedLineNumber, modifiedStartColumn, modifiedLineNumber, modifiedEndColumn));\n }\n return true;\n }\n return false;\n }\n}\nfunction getFirstNonBlankColumn(txt, defaultValue) {\n const r = strings.firstNonWhitespaceIndex(txt);\n if (r === -1) {\n return defaultValue;\n }\n return r + 1;\n}\nfunction getLastNonBlankColumn(txt, defaultValue) {\n const r = strings.lastNonWhitespaceIndex(txt);\n if (r === -1) {\n return defaultValue;\n }\n return r + 2;\n}\nfunction createContinueProcessingPredicate(maximumRuntime) {\n if (maximumRuntime === 0) {\n return () => true;\n }\n const startTime = Date.now();\n return () => {\n return Date.now() - startTime < maximumRuntime;\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LegacyLinesDiffComputer } from './legacyLinesDiffComputer.js';\nimport { DefaultLinesDiffComputer } from './defaultLinesDiffComputer/defaultLinesDiffComputer.js';\nexport const linesDiffComputers = {\n getLegacy: () => new LegacyLinesDiffComputer(),\n getDefault: () => new DefaultLinesDiffComputer(),\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Color, HSLA } from '../../../base/common/color.js';\nfunction _parseCaptureGroups(captureGroups) {\n const values = [];\n for (const captureGroup of captureGroups) {\n const parsedNumber = Number(captureGroup);\n if (parsedNumber || parsedNumber === 0 && captureGroup.replace(/\\s/g, '') !== '') {\n values.push(parsedNumber);\n }\n }\n return values;\n}\nfunction _toIColor(r, g, b, a) {\n return {\n red: r / 255,\n blue: b / 255,\n green: g / 255,\n alpha: a\n };\n}\nfunction _findRange(model, match) {\n const index = match.index;\n const length = match[0].length;\n if (!index) {\n return;\n }\n const startPosition = model.positionAt(index);\n const range = {\n startLineNumber: startPosition.lineNumber,\n startColumn: startPosition.column,\n endLineNumber: startPosition.lineNumber,\n endColumn: startPosition.column + length\n };\n return range;\n}\nfunction _findHexColorInformation(range, hexValue) {\n if (!range) {\n return;\n }\n const parsedHexColor = Color.Format.CSS.parseHex(hexValue);\n if (!parsedHexColor) {\n return;\n }\n return {\n range: range,\n color: _toIColor(parsedHexColor.rgba.r, parsedHexColor.rgba.g, parsedHexColor.rgba.b, parsedHexColor.rgba.a)\n };\n}\nfunction _findRGBColorInformation(range, matches, isAlpha) {\n if (!range || matches.length !== 1) {\n return;\n }\n const match = matches[0];\n const captureGroups = match.values();\n const parsedRegex = _parseCaptureGroups(captureGroups);\n return {\n range: range,\n color: _toIColor(parsedRegex[0], parsedRegex[1], parsedRegex[2], isAlpha ? parsedRegex[3] : 1)\n };\n}\nfunction _findHSLColorInformation(range, matches, isAlpha) {\n if (!range || matches.length !== 1) {\n return;\n }\n const match = matches[0];\n const captureGroups = match.values();\n const parsedRegex = _parseCaptureGroups(captureGroups);\n const colorEquivalent = new Color(new HSLA(parsedRegex[0], parsedRegex[1] / 100, parsedRegex[2] / 100, isAlpha ? parsedRegex[3] : 1));\n return {\n range: range,\n color: _toIColor(colorEquivalent.rgba.r, colorEquivalent.rgba.g, colorEquivalent.rgba.b, colorEquivalent.rgba.a)\n };\n}\nfunction _findMatches(model, regex) {\n if (typeof model === 'string') {\n return [...model.matchAll(regex)];\n }\n else {\n return model.findMatches(regex);\n }\n}\nfunction computeColors(model) {\n const result = [];\n // Early validation for RGB and HSL\n const initialValidationRegex = /\\b(rgb|rgba|hsl|hsla)(\\([0-9\\s,.\\%]*\\))|(#)([A-Fa-f0-9]{3})\\b|(#)([A-Fa-f0-9]{4})\\b|(#)([A-Fa-f0-9]{6})\\b|(#)([A-Fa-f0-9]{8})\\b/gm;\n const initialValidationMatches = _findMatches(model, initialValidationRegex);\n // Potential colors have been found, validate the parameters\n if (initialValidationMatches.length > 0) {\n for (const initialMatch of initialValidationMatches) {\n const initialCaptureGroups = initialMatch.filter(captureGroup => captureGroup !== undefined);\n const colorScheme = initialCaptureGroups[1];\n const colorParameters = initialCaptureGroups[2];\n if (!colorParameters) {\n continue;\n }\n let colorInformation;\n if (colorScheme === 'rgb') {\n const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*\\)$/gm;\n colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n }\n else if (colorScheme === 'rgba') {\n const regexParameters = /^\\(\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;\n colorInformation = _findRGBColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n }\n else if (colorScheme === 'hsl') {\n const regexParameters = /^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*\\)$/gm;\n colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), false);\n }\n else if (colorScheme === 'hsla') {\n const regexParameters = /^\\(\\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(100|\\d{1,2}[.]\\d*|\\d{1,2})%\\s*,\\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\\s*\\)$/gm;\n colorInformation = _findHSLColorInformation(_findRange(model, initialMatch), _findMatches(colorParameters, regexParameters), true);\n }\n else if (colorScheme === '#') {\n colorInformation = _findHexColorInformation(_findRange(model, initialMatch), colorScheme + colorParameters);\n }\n if (colorInformation) {\n result.push(colorInformation);\n }\n }\n }\n return result;\n}\n/**\n * Returns an array of all default document colors in the provided document\n */\nexport function computeDefaultDocumentColors(model) {\n if (!model || typeof model.getValue !== 'function' || typeof model.positionAt !== 'function') {\n // Unknown caller!\n return [];\n }\n return computeColors(model);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst markRegex = new RegExp('\\\\bMARK:\\\\s*(.*)$', 'd');\nconst trimDashesRegex = /^-+|-+$/g;\n/**\n * Find section headers in the model.\n *\n * @param model the text model to search in\n * @param options options to search with\n * @returns an array of section headers\n */\nexport function findSectionHeaders(model, options) {\n var _a;\n let headers = [];\n if (options.findRegionSectionHeaders && ((_a = options.foldingRules) === null || _a === void 0 ? void 0 : _a.markers)) {\n const regionHeaders = collectRegionHeaders(model, options);\n headers = headers.concat(regionHeaders);\n }\n if (options.findMarkSectionHeaders) {\n const markHeaders = collectMarkHeaders(model);\n headers = headers.concat(markHeaders);\n }\n return headers;\n}\nfunction collectRegionHeaders(model, options) {\n const regionHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const match = lineContent.match(options.foldingRules.markers.start);\n if (match) {\n const range = { startLineNumber: lineNumber, startColumn: match[0].length + 1, endLineNumber: lineNumber, endColumn: lineContent.length + 1 };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(lineContent.substring(match[0].length)),\n shouldBeInComments: false\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n regionHeaders.push(sectionHeader);\n }\n }\n }\n }\n return regionHeaders;\n}\nfunction collectMarkHeaders(model) {\n const markHeaders = [];\n const endLineNumber = model.getLineCount();\n for (let lineNumber = 1; lineNumber <= endLineNumber; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n addMarkHeaderIfFound(lineContent, lineNumber, markHeaders);\n }\n return markHeaders;\n}\nfunction addMarkHeaderIfFound(lineContent, lineNumber, sectionHeaders) {\n markRegex.lastIndex = 0;\n const match = markRegex.exec(lineContent);\n if (match) {\n const column = match.indices[1][0] + 1;\n const endColumn = match.indices[1][1] + 1;\n const range = { startLineNumber: lineNumber, startColumn: column, endLineNumber: lineNumber, endColumn: endColumn };\n if (range.endColumn > range.startColumn) {\n const sectionHeader = {\n range,\n ...getHeaderText(match[1]),\n shouldBeInComments: true\n };\n if (sectionHeader.text || sectionHeader.hasSeparatorLine) {\n sectionHeaders.push(sectionHeader);\n }\n }\n }\n}\nfunction getHeaderText(text) {\n text = text.trim();\n const hasSeparatorLine = text.startsWith('-');\n text = text.replace(trimDashesRegex, '');\n return { text, hasSeparatorLine };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { stringDiff } from '../../../base/common/diff/diff.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { MirrorTextModel as BaseMirrorModel } from '../model/mirrorTextModel.js';\nimport { ensureValidWordDefinition, getWordAtText } from '../core/wordHelper.js';\nimport { computeLinks } from '../languages/linkComputer.js';\nimport { BasicInplaceReplace } from '../languages/supports/inplaceReplaceSupport.js';\nimport { createMonacoBaseAPI } from './editorBaseApi.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { UnicodeTextModelHighlighter } from './unicodeTextModelHighlighter.js';\nimport { linesDiffComputers } from '../diff/linesDiffComputers.js';\nimport { createProxyObject, getAllMethodNames } from '../../../base/common/objects.js';\nimport { computeDefaultDocumentColors } from '../languages/defaultDocumentColorsComputer.js';\nimport { findSectionHeaders } from './findSectionHeaders.js';\n/**\n * @internal\n */\nclass MirrorModel extends BaseMirrorModel {\n get uri() {\n return this._uri;\n }\n get eol() {\n return this._eol;\n }\n getValue() {\n return this.getText();\n }\n findMatches(regex) {\n const matches = [];\n for (let i = 0; i < this._lines.length; i++) {\n const line = this._lines[i];\n const offsetToAdd = this.offsetAt(new Position(i + 1, 1));\n const iteratorOverMatches = line.matchAll(regex);\n for (const match of iteratorOverMatches) {\n if (match.index || match.index === 0) {\n match.index = match.index + offsetToAdd;\n }\n matches.push(match);\n }\n }\n return matches;\n }\n getLinesContent() {\n return this._lines.slice(0);\n }\n getLineCount() {\n return this._lines.length;\n }\n getLineContent(lineNumber) {\n return this._lines[lineNumber - 1];\n }\n getWordAtPosition(position, wordDefinition) {\n const wordAtText = getWordAtText(position.column, ensureValidWordDefinition(wordDefinition), this._lines[position.lineNumber - 1], 0);\n if (wordAtText) {\n return new Range(position.lineNumber, wordAtText.startColumn, position.lineNumber, wordAtText.endColumn);\n }\n return null;\n }\n words(wordDefinition) {\n const lines = this._lines;\n const wordenize = this._wordenize.bind(this);\n let lineNumber = 0;\n let lineText = '';\n let wordRangesIdx = 0;\n let wordRanges = [];\n return {\n *[Symbol.iterator]() {\n while (true) {\n if (wordRangesIdx < wordRanges.length) {\n const value = lineText.substring(wordRanges[wordRangesIdx].start, wordRanges[wordRangesIdx].end);\n wordRangesIdx += 1;\n yield value;\n }\n else {\n if (lineNumber < lines.length) {\n lineText = lines[lineNumber];\n wordRanges = wordenize(lineText, wordDefinition);\n wordRangesIdx = 0;\n lineNumber += 1;\n }\n else {\n break;\n }\n }\n }\n }\n };\n }\n getLineWords(lineNumber, wordDefinition) {\n const content = this._lines[lineNumber - 1];\n const ranges = this._wordenize(content, wordDefinition);\n const words = [];\n for (const range of ranges) {\n words.push({\n word: content.substring(range.start, range.end),\n startColumn: range.start + 1,\n endColumn: range.end + 1\n });\n }\n return words;\n }\n _wordenize(content, wordDefinition) {\n const result = [];\n let match;\n wordDefinition.lastIndex = 0; // reset lastIndex just to be sure\n while (match = wordDefinition.exec(content)) {\n if (match[0].length === 0) {\n // it did match the empty string\n break;\n }\n result.push({ start: match.index, end: match.index + match[0].length });\n }\n return result;\n }\n getValueInRange(range) {\n range = this._validateRange(range);\n if (range.startLineNumber === range.endLineNumber) {\n return this._lines[range.startLineNumber - 1].substring(range.startColumn - 1, range.endColumn - 1);\n }\n const lineEnding = this._eol;\n const startLineIndex = range.startLineNumber - 1;\n const endLineIndex = range.endLineNumber - 1;\n const resultLines = [];\n resultLines.push(this._lines[startLineIndex].substring(range.startColumn - 1));\n for (let i = startLineIndex + 1; i < endLineIndex; i++) {\n resultLines.push(this._lines[i]);\n }\n resultLines.push(this._lines[endLineIndex].substring(0, range.endColumn - 1));\n return resultLines.join(lineEnding);\n }\n offsetAt(position) {\n position = this._validatePosition(position);\n this._ensureLineStarts();\n return this._lineStarts.getPrefixSum(position.lineNumber - 2) + (position.column - 1);\n }\n positionAt(offset) {\n offset = Math.floor(offset);\n offset = Math.max(0, offset);\n this._ensureLineStarts();\n const out = this._lineStarts.getIndexOf(offset);\n const lineLength = this._lines[out.index].length;\n // Ensure we return a valid position\n return {\n lineNumber: 1 + out.index,\n column: 1 + Math.min(out.remainder, lineLength)\n };\n }\n _validateRange(range) {\n const start = this._validatePosition({ lineNumber: range.startLineNumber, column: range.startColumn });\n const end = this._validatePosition({ lineNumber: range.endLineNumber, column: range.endColumn });\n if (start.lineNumber !== range.startLineNumber\n || start.column !== range.startColumn\n || end.lineNumber !== range.endLineNumber\n || end.column !== range.endColumn) {\n return {\n startLineNumber: start.lineNumber,\n startColumn: start.column,\n endLineNumber: end.lineNumber,\n endColumn: end.column\n };\n }\n return range;\n }\n _validatePosition(position) {\n if (!Position.isIPosition(position)) {\n throw new Error('bad position');\n }\n let { lineNumber, column } = position;\n let hasChanged = false;\n if (lineNumber < 1) {\n lineNumber = 1;\n column = 1;\n hasChanged = true;\n }\n else if (lineNumber > this._lines.length) {\n lineNumber = this._lines.length;\n column = this._lines[lineNumber - 1].length + 1;\n hasChanged = true;\n }\n else {\n const maxCharacter = this._lines[lineNumber - 1].length + 1;\n if (column < 1) {\n column = 1;\n hasChanged = true;\n }\n else if (column > maxCharacter) {\n column = maxCharacter;\n hasChanged = true;\n }\n }\n if (!hasChanged) {\n return position;\n }\n else {\n return { lineNumber, column };\n }\n }\n}\n/**\n * @internal\n */\nexport class EditorSimpleWorker {\n constructor(host, foreignModuleFactory) {\n this._host = host;\n this._models = Object.create(null);\n this._foreignModuleFactory = foreignModuleFactory;\n this._foreignModule = null;\n }\n dispose() {\n this._models = Object.create(null);\n }\n _getModel(uri) {\n return this._models[uri];\n }\n _getModels() {\n const all = [];\n Object.keys(this._models).forEach((key) => all.push(this._models[key]));\n return all;\n }\n acceptNewModel(data) {\n this._models[data.url] = new MirrorModel(URI.parse(data.url), data.lines, data.EOL, data.versionId);\n }\n acceptModelChanged(strURL, e) {\n if (!this._models[strURL]) {\n return;\n }\n const model = this._models[strURL];\n model.onEvents(e);\n }\n acceptRemovedModel(strURL) {\n if (!this._models[strURL]) {\n return;\n }\n delete this._models[strURL];\n }\n async computeUnicodeHighlights(url, options, range) {\n const model = this._getModel(url);\n if (!model) {\n return { ranges: [], hasMore: false, ambiguousCharacterCount: 0, invisibleCharacterCount: 0, nonBasicAsciiCharacterCount: 0 };\n }\n return UnicodeTextModelHighlighter.computeUnicodeHighlights(model, options, range);\n }\n async findSectionHeaders(url, options) {\n const model = this._getModel(url);\n if (!model) {\n return [];\n }\n return findSectionHeaders(model, options);\n }\n // ---- BEGIN diff --------------------------------------------------------------------------\n async computeDiff(originalUrl, modifiedUrl, options, algorithm) {\n const original = this._getModel(originalUrl);\n const modified = this._getModel(modifiedUrl);\n if (!original || !modified) {\n return null;\n }\n const result = EditorSimpleWorker.computeDiff(original, modified, options, algorithm);\n return result;\n }\n static computeDiff(originalTextModel, modifiedTextModel, options, algorithm) {\n const diffAlgorithm = algorithm === 'advanced' ? linesDiffComputers.getDefault() : linesDiffComputers.getLegacy();\n const originalLines = originalTextModel.getLinesContent();\n const modifiedLines = modifiedTextModel.getLinesContent();\n const result = diffAlgorithm.computeDiff(originalLines, modifiedLines, options);\n const identical = (result.changes.length > 0 ? false : this._modelsAreIdentical(originalTextModel, modifiedTextModel));\n function getLineChanges(changes) {\n return changes.map(m => {\n var _a;\n return ([m.original.startLineNumber, m.original.endLineNumberExclusive, m.modified.startLineNumber, m.modified.endLineNumberExclusive, (_a = m.innerChanges) === null || _a === void 0 ? void 0 : _a.map(m => [\n m.originalRange.startLineNumber,\n m.originalRange.startColumn,\n m.originalRange.endLineNumber,\n m.originalRange.endColumn,\n m.modifiedRange.startLineNumber,\n m.modifiedRange.startColumn,\n m.modifiedRange.endLineNumber,\n m.modifiedRange.endColumn,\n ])]);\n });\n }\n return {\n identical,\n quitEarly: result.hitTimeout,\n changes: getLineChanges(result.changes),\n moves: result.moves.map(m => ([\n m.lineRangeMapping.original.startLineNumber,\n m.lineRangeMapping.original.endLineNumberExclusive,\n m.lineRangeMapping.modified.startLineNumber,\n m.lineRangeMapping.modified.endLineNumberExclusive,\n getLineChanges(m.changes)\n ])),\n };\n }\n static _modelsAreIdentical(original, modified) {\n const originalLineCount = original.getLineCount();\n const modifiedLineCount = modified.getLineCount();\n if (originalLineCount !== modifiedLineCount) {\n return false;\n }\n for (let line = 1; line <= originalLineCount; line++) {\n const originalLine = original.getLineContent(line);\n const modifiedLine = modified.getLineContent(line);\n if (originalLine !== modifiedLine) {\n return false;\n }\n }\n return true;\n }\n async computeMoreMinimalEdits(modelUrl, edits, pretty) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return edits;\n }\n const result = [];\n let lastEol = undefined;\n edits = edits.slice(0).sort((a, b) => {\n if (a.range && b.range) {\n return Range.compareRangesUsingStarts(a.range, b.range);\n }\n // eol only changes should go to the end\n const aRng = a.range ? 0 : 1;\n const bRng = b.range ? 0 : 1;\n return aRng - bRng;\n });\n // merge adjacent edits\n let writeIndex = 0;\n for (let readIndex = 1; readIndex < edits.length; readIndex++) {\n if (Range.getEndPosition(edits[writeIndex].range).equals(Range.getStartPosition(edits[readIndex].range))) {\n edits[writeIndex].range = Range.fromPositions(Range.getStartPosition(edits[writeIndex].range), Range.getEndPosition(edits[readIndex].range));\n edits[writeIndex].text += edits[readIndex].text;\n }\n else {\n writeIndex++;\n edits[writeIndex] = edits[readIndex];\n }\n }\n edits.length = writeIndex + 1;\n for (let { range, text, eol } of edits) {\n if (typeof eol === 'number') {\n lastEol = eol;\n }\n if (Range.isEmpty(range) && !text) {\n // empty change\n continue;\n }\n const original = model.getValueInRange(range);\n text = text.replace(/\\r\\n|\\n|\\r/g, model.eol);\n if (original === text) {\n // noop\n continue;\n }\n // make sure diff won't take too long\n if (Math.max(text.length, original.length) > EditorSimpleWorker._diffLimit) {\n result.push({ range, text });\n continue;\n }\n // compute diff between original and edit.text\n const changes = stringDiff(original, text, pretty);\n const editOffset = model.offsetAt(Range.lift(range).getStartPosition());\n for (const change of changes) {\n const start = model.positionAt(editOffset + change.originalStart);\n const end = model.positionAt(editOffset + change.originalStart + change.originalLength);\n const newEdit = {\n text: text.substr(change.modifiedStart, change.modifiedLength),\n range: { startLineNumber: start.lineNumber, startColumn: start.column, endLineNumber: end.lineNumber, endColumn: end.column }\n };\n if (model.getValueInRange(newEdit.range) !== newEdit.text) {\n result.push(newEdit);\n }\n }\n }\n if (typeof lastEol === 'number') {\n result.push({ eol: lastEol, text: '', range: { startLineNumber: 0, startColumn: 0, endLineNumber: 0, endColumn: 0 } });\n }\n return result;\n }\n // ---- END minimal edits ---------------------------------------------------------------\n async computeLinks(modelUrl) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n return computeLinks(model);\n }\n // --- BEGIN default document colors -----------------------------------------------------------\n async computeDefaultDocumentColors(modelUrl) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n return computeDefaultDocumentColors(model);\n }\n async textualSuggest(modelUrls, leadingWord, wordDef, wordDefFlags) {\n const sw = new StopWatch();\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n const seen = new Set();\n outer: for (const url of modelUrls) {\n const model = this._getModel(url);\n if (!model) {\n continue;\n }\n for (const word of model.words(wordDefRegExp)) {\n if (word === leadingWord || !isNaN(Number(word))) {\n continue;\n }\n seen.add(word);\n if (seen.size > EditorSimpleWorker._suggestionsLimit) {\n break outer;\n }\n }\n }\n return { words: Array.from(seen), duration: sw.elapsed() };\n }\n // ---- END suggest --------------------------------------------------------------------------\n //#region -- word ranges --\n async computeWordRanges(modelUrl, range, wordDef, wordDefFlags) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return Object.create(null);\n }\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n const result = Object.create(null);\n for (let line = range.startLineNumber; line < range.endLineNumber; line++) {\n const words = model.getLineWords(line, wordDefRegExp);\n for (const word of words) {\n if (!isNaN(Number(word.word))) {\n continue;\n }\n let array = result[word.word];\n if (!array) {\n array = [];\n result[word.word] = array;\n }\n array.push({\n startLineNumber: line,\n startColumn: word.startColumn,\n endLineNumber: line,\n endColumn: word.endColumn\n });\n }\n }\n return result;\n }\n //#endregion\n async navigateValueSet(modelUrl, range, up, wordDef, wordDefFlags) {\n const model = this._getModel(modelUrl);\n if (!model) {\n return null;\n }\n const wordDefRegExp = new RegExp(wordDef, wordDefFlags);\n if (range.startColumn === range.endColumn) {\n range = {\n startLineNumber: range.startLineNumber,\n startColumn: range.startColumn,\n endLineNumber: range.endLineNumber,\n endColumn: range.endColumn + 1\n };\n }\n const selectionText = model.getValueInRange(range);\n const wordRange = model.getWordAtPosition({ lineNumber: range.startLineNumber, column: range.startColumn }, wordDefRegExp);\n if (!wordRange) {\n return null;\n }\n const word = model.getValueInRange(wordRange);\n const result = BasicInplaceReplace.INSTANCE.navigateValueSet(range, selectionText, wordRange, word, up);\n return result;\n }\n // ---- BEGIN foreign module support --------------------------------------------------------------------------\n loadForeignModule(moduleId, createData, foreignHostMethods) {\n const proxyMethodRequest = (method, args) => {\n return this._host.fhr(method, args);\n };\n const foreignHost = createProxyObject(foreignHostMethods, proxyMethodRequest);\n const ctx = {\n host: foreignHost,\n getMirrorModels: () => {\n return this._getModels();\n }\n };\n if (this._foreignModuleFactory) {\n this._foreignModule = this._foreignModuleFactory(ctx, createData);\n // static foreing module\n return Promise.resolve(getAllMethodNames(this._foreignModule));\n }\n // ESM-comment-begin\n // \t\treturn new Promise((resolve, reject) => {\n // \t\t\trequire([moduleId], (foreignModule: { create: IForeignModuleFactory }) => {\n // \t\t\t\tthis._foreignModule = foreignModule.create(ctx, createData);\n // \n // \t\t\t\tresolve(getAllMethodNames(this._foreignModule));\n // \n // \t\t\t}, reject);\n // \t\t});\n // ESM-comment-end\n // ESM-uncomment-begin\n return Promise.reject(new Error(`Unexpected usage`));\n // ESM-uncomment-end\n }\n // foreign method request\n fmr(method, args) {\n if (!this._foreignModule || typeof this._foreignModule[method] !== 'function') {\n return Promise.reject(new Error('Missing requestHandler or method: ' + method));\n }\n try {\n return Promise.resolve(this._foreignModule[method].apply(this._foreignModule, args));\n }\n catch (e) {\n return Promise.reject(e);\n }\n }\n}\n// ---- END diff --------------------------------------------------------------------------\n// ---- BEGIN minimal edits ---------------------------------------------------------------\nEditorSimpleWorker._diffLimit = 100000;\n// ---- BEGIN suggest --------------------------------------------------------------------------\nEditorSimpleWorker._suggestionsLimit = 10000;\n/**\n * Called on the worker side\n * @internal\n */\nexport function create(host) {\n return new EditorSimpleWorker(host, null);\n}\nif (typeof importScripts === 'function') {\n // Running in a web worker\n globalThis.monaco = createMonacoBaseAPI();\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { IntervalTimer, timeout } from '../../../base/common/async.js';\nimport { Disposable, dispose, toDisposable, DisposableStore } from '../../../base/common/lifecycle.js';\nimport { SimpleWorkerClient, logOnceWebWorkerWarning } from '../../../base/common/worker/simpleWorker.js';\nimport { DefaultWorkerFactory } from '../../../base/browser/defaultWorkerFactory.js';\nimport { Range } from '../../common/core/range.js';\nimport { ILanguageConfigurationService } from '../../common/languages/languageConfigurationRegistry.js';\nimport { EditorSimpleWorker } from '../../common/services/editorSimpleWorker.js';\nimport { IModelService } from '../../common/services/model.js';\nimport { ITextResourceConfigurationService } from '../../common/services/textResourceConfiguration.js';\nimport { isNonEmptyArray } from '../../../base/common/arrays.js';\nimport { ILogService } from '../../../platform/log/common/log.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { canceled } from '../../../base/common/errors.js';\nimport { ILanguageFeaturesService } from '../../common/services/languageFeatures.js';\nimport { MovedText } from '../../common/diff/linesDiffComputer.js';\nimport { DetailedLineRangeMapping, RangeMapping, LineRangeMapping } from '../../common/diff/rangeMapping.js';\nimport { LineRange } from '../../common/core/lineRange.js';\nimport { mainWindow } from '../../../base/browser/window.js';\nimport { WindowIntervalTimer } from '../../../base/browser/dom.js';\n/**\n * Stop syncing a model to the worker if it was not needed for 1 min.\n */\nconst STOP_SYNC_MODEL_DELTA_TIME_MS = 60 * 1000;\n/**\n * Stop the worker if it was not needed for 5 min.\n */\nconst STOP_WORKER_DELTA_TIME_MS = 5 * 60 * 1000;\nfunction canSyncModel(modelService, resource) {\n const model = modelService.getModel(resource);\n if (!model) {\n return false;\n }\n if (model.isTooLargeForSyncing()) {\n return false;\n }\n return true;\n}\nlet EditorWorkerService = class EditorWorkerService extends Disposable {\n constructor(modelService, configurationService, logService, languageConfigurationService, languageFeaturesService) {\n super();\n this._modelService = modelService;\n this._workerManager = this._register(new WorkerManager(this._modelService, languageConfigurationService));\n this._logService = logService;\n // register default link-provider and default completions-provider\n this._register(languageFeaturesService.linkProvider.register({ language: '*', hasAccessToAllModels: true }, {\n provideLinks: (model, token) => {\n if (!canSyncModel(this._modelService, model.uri)) {\n return Promise.resolve({ links: [] }); // File too large\n }\n return this._workerManager.withWorker().then(client => client.computeLinks(model.uri)).then(links => {\n return links && { links };\n });\n }\n }));\n this._register(languageFeaturesService.completionProvider.register('*', new WordBasedCompletionItemProvider(this._workerManager, configurationService, this._modelService, languageConfigurationService)));\n }\n dispose() {\n super.dispose();\n }\n canComputeUnicodeHighlights(uri) {\n return canSyncModel(this._modelService, uri);\n }\n computedUnicodeHighlights(uri, options, range) {\n return this._workerManager.withWorker().then(client => client.computedUnicodeHighlights(uri, options, range));\n }\n async computeDiff(original, modified, options, algorithm) {\n const result = await this._workerManager.withWorker().then(client => client.computeDiff(original, modified, options, algorithm));\n if (!result) {\n return null;\n }\n // Convert from space efficient JSON data to rich objects.\n const diff = {\n identical: result.identical,\n quitEarly: result.quitEarly,\n changes: toLineRangeMappings(result.changes),\n moves: result.moves.map(m => new MovedText(new LineRangeMapping(new LineRange(m[0], m[1]), new LineRange(m[2], m[3])), toLineRangeMappings(m[4])))\n };\n return diff;\n function toLineRangeMappings(changes) {\n return changes.map((c) => {\n var _a;\n return new DetailedLineRangeMapping(new LineRange(c[0], c[1]), new LineRange(c[2], c[3]), (_a = c[4]) === null || _a === void 0 ? void 0 : _a.map((c) => new RangeMapping(new Range(c[0], c[1], c[2], c[3]), new Range(c[4], c[5], c[6], c[7]))));\n });\n }\n }\n computeMoreMinimalEdits(resource, edits, pretty = false) {\n if (isNonEmptyArray(edits)) {\n if (!canSyncModel(this._modelService, resource)) {\n return Promise.resolve(edits); // File too large\n }\n const sw = StopWatch.create();\n const result = this._workerManager.withWorker().then(client => client.computeMoreMinimalEdits(resource, edits, pretty));\n result.finally(() => this._logService.trace('FORMAT#computeMoreMinimalEdits', resource.toString(true), sw.elapsed()));\n return Promise.race([result, timeout(1000).then(() => edits)]);\n }\n else {\n return Promise.resolve(undefined);\n }\n }\n canNavigateValueSet(resource) {\n return (canSyncModel(this._modelService, resource));\n }\n navigateValueSet(resource, range, up) {\n return this._workerManager.withWorker().then(client => client.navigateValueSet(resource, range, up));\n }\n canComputeWordRanges(resource) {\n return canSyncModel(this._modelService, resource);\n }\n computeWordRanges(resource, range) {\n return this._workerManager.withWorker().then(client => client.computeWordRanges(resource, range));\n }\n findSectionHeaders(uri, options) {\n return this._workerManager.withWorker().then(client => client.findSectionHeaders(uri, options));\n }\n};\nEditorWorkerService = __decorate([\n __param(0, IModelService),\n __param(1, ITextResourceConfigurationService),\n __param(2, ILogService),\n __param(3, ILanguageConfigurationService),\n __param(4, ILanguageFeaturesService)\n], EditorWorkerService);\nexport { EditorWorkerService };\nclass WordBasedCompletionItemProvider {\n constructor(workerManager, configurationService, modelService, languageConfigurationService) {\n this.languageConfigurationService = languageConfigurationService;\n this._debugDisplayName = 'wordbasedCompletions';\n this._workerManager = workerManager;\n this._configurationService = configurationService;\n this._modelService = modelService;\n }\n async provideCompletionItems(model, position) {\n const config = this._configurationService.getValue(model.uri, position, 'editor');\n if (config.wordBasedSuggestions === 'off') {\n return undefined;\n }\n const models = [];\n if (config.wordBasedSuggestions === 'currentDocument') {\n // only current file and only if not too large\n if (canSyncModel(this._modelService, model.uri)) {\n models.push(model.uri);\n }\n }\n else {\n // either all files or files of same language\n for (const candidate of this._modelService.getModels()) {\n if (!canSyncModel(this._modelService, candidate.uri)) {\n continue;\n }\n if (candidate === model) {\n models.unshift(candidate.uri);\n }\n else if (config.wordBasedSuggestions === 'allDocuments' || candidate.getLanguageId() === model.getLanguageId()) {\n models.push(candidate.uri);\n }\n }\n }\n if (models.length === 0) {\n return undefined; // File too large, no other files\n }\n const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n const word = model.getWordAtPosition(position);\n const replace = !word ? Range.fromPositions(position) : new Range(position.lineNumber, word.startColumn, position.lineNumber, word.endColumn);\n const insert = replace.setEndPosition(position.lineNumber, position.column);\n const client = await this._workerManager.withWorker();\n const data = await client.textualSuggest(models, word === null || word === void 0 ? void 0 : word.word, wordDefRegExp);\n if (!data) {\n return undefined;\n }\n return {\n duration: data.duration,\n suggestions: data.words.map((word) => {\n return {\n kind: 18 /* languages.CompletionItemKind.Text */,\n label: word,\n insertText: word,\n range: { insert, replace }\n };\n }),\n };\n }\n}\nclass WorkerManager extends Disposable {\n constructor(modelService, languageConfigurationService) {\n super();\n this.languageConfigurationService = languageConfigurationService;\n this._modelService = modelService;\n this._editorWorkerClient = null;\n this._lastWorkerUsedTime = (new Date()).getTime();\n const stopWorkerInterval = this._register(new WindowIntervalTimer());\n stopWorkerInterval.cancelAndSet(() => this._checkStopIdleWorker(), Math.round(STOP_WORKER_DELTA_TIME_MS / 2), mainWindow);\n this._register(this._modelService.onModelRemoved(_ => this._checkStopEmptyWorker()));\n }\n dispose() {\n if (this._editorWorkerClient) {\n this._editorWorkerClient.dispose();\n this._editorWorkerClient = null;\n }\n super.dispose();\n }\n /**\n * Check if the model service has no more models and stop the worker if that is the case.\n */\n _checkStopEmptyWorker() {\n if (!this._editorWorkerClient) {\n return;\n }\n const models = this._modelService.getModels();\n if (models.length === 0) {\n // There are no more models => nothing possible for me to do\n this._editorWorkerClient.dispose();\n this._editorWorkerClient = null;\n }\n }\n /**\n * Check if the worker has been idle for a while and then stop it.\n */\n _checkStopIdleWorker() {\n if (!this._editorWorkerClient) {\n return;\n }\n const timeSinceLastWorkerUsedTime = (new Date()).getTime() - this._lastWorkerUsedTime;\n if (timeSinceLastWorkerUsedTime > STOP_WORKER_DELTA_TIME_MS) {\n this._editorWorkerClient.dispose();\n this._editorWorkerClient = null;\n }\n }\n withWorker() {\n this._lastWorkerUsedTime = (new Date()).getTime();\n if (!this._editorWorkerClient) {\n this._editorWorkerClient = new EditorWorkerClient(this._modelService, false, 'editorWorkerService', this.languageConfigurationService);\n }\n return Promise.resolve(this._editorWorkerClient);\n }\n}\nclass EditorModelManager extends Disposable {\n constructor(proxy, modelService, keepIdleModels) {\n super();\n this._syncedModels = Object.create(null);\n this._syncedModelsLastUsedTime = Object.create(null);\n this._proxy = proxy;\n this._modelService = modelService;\n if (!keepIdleModels) {\n const timer = new IntervalTimer();\n timer.cancelAndSet(() => this._checkStopModelSync(), Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS / 2));\n this._register(timer);\n }\n }\n dispose() {\n for (const modelUrl in this._syncedModels) {\n dispose(this._syncedModels[modelUrl]);\n }\n this._syncedModels = Object.create(null);\n this._syncedModelsLastUsedTime = Object.create(null);\n super.dispose();\n }\n ensureSyncedResources(resources, forceLargeModels) {\n for (const resource of resources) {\n const resourceStr = resource.toString();\n if (!this._syncedModels[resourceStr]) {\n this._beginModelSync(resource, forceLargeModels);\n }\n if (this._syncedModels[resourceStr]) {\n this._syncedModelsLastUsedTime[resourceStr] = (new Date()).getTime();\n }\n }\n }\n _checkStopModelSync() {\n const currentTime = (new Date()).getTime();\n const toRemove = [];\n for (const modelUrl in this._syncedModelsLastUsedTime) {\n const elapsedTime = currentTime - this._syncedModelsLastUsedTime[modelUrl];\n if (elapsedTime > STOP_SYNC_MODEL_DELTA_TIME_MS) {\n toRemove.push(modelUrl);\n }\n }\n for (const e of toRemove) {\n this._stopModelSync(e);\n }\n }\n _beginModelSync(resource, forceLargeModels) {\n const model = this._modelService.getModel(resource);\n if (!model) {\n return;\n }\n if (!forceLargeModels && model.isTooLargeForSyncing()) {\n return;\n }\n const modelUrl = resource.toString();\n this._proxy.acceptNewModel({\n url: model.uri.toString(),\n lines: model.getLinesContent(),\n EOL: model.getEOL(),\n versionId: model.getVersionId()\n });\n const toDispose = new DisposableStore();\n toDispose.add(model.onDidChangeContent((e) => {\n this._proxy.acceptModelChanged(modelUrl.toString(), e);\n }));\n toDispose.add(model.onWillDispose(() => {\n this._stopModelSync(modelUrl);\n }));\n toDispose.add(toDisposable(() => {\n this._proxy.acceptRemovedModel(modelUrl);\n }));\n this._syncedModels[modelUrl] = toDispose;\n }\n _stopModelSync(modelUrl) {\n const toDispose = this._syncedModels[modelUrl];\n delete this._syncedModels[modelUrl];\n delete this._syncedModelsLastUsedTime[modelUrl];\n dispose(toDispose);\n }\n}\nclass SynchronousWorkerClient {\n constructor(instance) {\n this._instance = instance;\n this._proxyObj = Promise.resolve(this._instance);\n }\n dispose() {\n this._instance.dispose();\n }\n getProxyObject() {\n return this._proxyObj;\n }\n}\nexport class EditorWorkerHost {\n constructor(workerClient) {\n this._workerClient = workerClient;\n }\n // foreign host request\n fhr(method, args) {\n return this._workerClient.fhr(method, args);\n }\n}\nexport class EditorWorkerClient extends Disposable {\n constructor(modelService, keepIdleModels, label, languageConfigurationService) {\n super();\n this.languageConfigurationService = languageConfigurationService;\n this._disposed = false;\n this._modelService = modelService;\n this._keepIdleModels = keepIdleModels;\n this._workerFactory = new DefaultWorkerFactory(label);\n this._worker = null;\n this._modelManager = null;\n }\n // foreign host request\n fhr(method, args) {\n throw new Error(`Not implemented!`);\n }\n _getOrCreateWorker() {\n if (!this._worker) {\n try {\n this._worker = this._register(new SimpleWorkerClient(this._workerFactory, 'vs/editor/common/services/editorSimpleWorker', new EditorWorkerHost(this)));\n }\n catch (err) {\n logOnceWebWorkerWarning(err);\n this._worker = new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this), null));\n }\n }\n return this._worker;\n }\n _getProxy() {\n return this._getOrCreateWorker().getProxyObject().then(undefined, (err) => {\n logOnceWebWorkerWarning(err);\n this._worker = new SynchronousWorkerClient(new EditorSimpleWorker(new EditorWorkerHost(this), null));\n return this._getOrCreateWorker().getProxyObject();\n });\n }\n _getOrCreateModelManager(proxy) {\n if (!this._modelManager) {\n this._modelManager = this._register(new EditorModelManager(proxy, this._modelService, this._keepIdleModels));\n }\n return this._modelManager;\n }\n async _withSyncedResources(resources, forceLargeModels = false) {\n if (this._disposed) {\n return Promise.reject(canceled());\n }\n return this._getProxy().then((proxy) => {\n this._getOrCreateModelManager(proxy).ensureSyncedResources(resources, forceLargeModels);\n return proxy;\n });\n }\n computedUnicodeHighlights(uri, options, range) {\n return this._withSyncedResources([uri]).then(proxy => {\n return proxy.computeUnicodeHighlights(uri.toString(), options, range);\n });\n }\n computeDiff(original, modified, options, algorithm) {\n return this._withSyncedResources([original, modified], /* forceLargeModels */ true).then(proxy => {\n return proxy.computeDiff(original.toString(), modified.toString(), options, algorithm);\n });\n }\n computeMoreMinimalEdits(resource, edits, pretty) {\n return this._withSyncedResources([resource]).then(proxy => {\n return proxy.computeMoreMinimalEdits(resource.toString(), edits, pretty);\n });\n }\n computeLinks(resource) {\n return this._withSyncedResources([resource]).then(proxy => {\n return proxy.computeLinks(resource.toString());\n });\n }\n computeDefaultDocumentColors(resource) {\n return this._withSyncedResources([resource]).then(proxy => {\n return proxy.computeDefaultDocumentColors(resource.toString());\n });\n }\n async textualSuggest(resources, leadingWord, wordDefRegExp) {\n const proxy = await this._withSyncedResources(resources);\n const wordDef = wordDefRegExp.source;\n const wordDefFlags = wordDefRegExp.flags;\n return proxy.textualSuggest(resources.map(r => r.toString()), leadingWord, wordDef, wordDefFlags);\n }\n computeWordRanges(resource, range) {\n return this._withSyncedResources([resource]).then(proxy => {\n const model = this._modelService.getModel(resource);\n if (!model) {\n return Promise.resolve(null);\n }\n const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n const wordDef = wordDefRegExp.source;\n const wordDefFlags = wordDefRegExp.flags;\n return proxy.computeWordRanges(resource.toString(), range, wordDef, wordDefFlags);\n });\n }\n navigateValueSet(resource, range, up) {\n return this._withSyncedResources([resource]).then(proxy => {\n const model = this._modelService.getModel(resource);\n if (!model) {\n return null;\n }\n const wordDefRegExp = this.languageConfigurationService.getLanguageConfiguration(model.getLanguageId()).getWordDefinition();\n const wordDef = wordDefRegExp.source;\n const wordDefFlags = wordDefRegExp.flags;\n return proxy.navigateValueSet(resource.toString(), range, up, wordDef, wordDefFlags);\n });\n }\n findSectionHeaders(uri, options) {\n return this._withSyncedResources([uri]).then(proxy => {\n return proxy.findSectionHeaders(uri.toString(), options);\n });\n }\n dispose() {\n super.dispose();\n this._disposed = true;\n }\n}\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n const versionA = new SemVer(a, loose)\n const versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","'use strict';\nvar toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nconst additionalItems_1 = require(\"./additionalItems\");\nconst error = {\n message: ({ params: { len } }) => (0, codegen_1.str) `must NOT have more than ${len} items`,\n params: ({ params: { len } }) => (0, codegen_1._) `{limit: ${len}}`,\n};\nconst def = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt) {\n const { schema, parentSchema, it } = cxt;\n const { prefixItems } = parentSchema;\n it.items = true;\n if ((0, util_1.alwaysValidSchema)(it, schema))\n return;\n if (prefixItems)\n (0, additionalItems_1.validateAdditionalItems)(cxt, prefixItems);\n else\n cxt.ok((0, code_1.validateArray)(cxt));\n },\n};\nexports.default = def;\n//# sourceMappingURL=items2020.js.map","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { NotSupportedError } from '../../../../../base/common/errors.js';\nimport { TokenMetadata } from '../../../encodedTokenAttributes.js';\nimport { TextAstNode } from './ast.js';\nimport { lengthAdd, lengthDiff, lengthGetColumnCountIfZeroLineCount, lengthToObj, lengthZero, toLength } from './length.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\nexport class Token {\n constructor(length, kind, \n /**\n * If this token is an opening bracket, this is the id of the opening bracket.\n * If this token is a closing bracket, this is the id of the first opening bracket that is closed by this bracket.\n * Otherwise, it is -1.\n */\n bracketId, \n /**\n * If this token is an opening bracket, this just contains `bracketId`.\n * If this token is a closing bracket, this lists all opening bracket ids, that it closes.\n * Otherwise, it is empty.\n */\n bracketIds, astNode) {\n this.length = length;\n this.kind = kind;\n this.bracketId = bracketId;\n this.bracketIds = bracketIds;\n this.astNode = astNode;\n }\n}\nexport class TextBufferTokenizer {\n constructor(textModel, bracketTokens) {\n this.textModel = textModel;\n this.bracketTokens = bracketTokens;\n this.reader = new NonPeekableTextBufferTokenizer(this.textModel, this.bracketTokens);\n this._offset = lengthZero;\n this.didPeek = false;\n this.peeked = null;\n this.textBufferLineCount = textModel.getLineCount();\n this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n }\n get offset() {\n return this._offset;\n }\n get length() {\n return toLength(this.textBufferLineCount - 1, this.textBufferLastLineLength);\n }\n skip(length) {\n this.didPeek = false;\n this._offset = lengthAdd(this._offset, length);\n const obj = lengthToObj(this._offset);\n this.reader.setPosition(obj.lineCount, obj.columnCount);\n }\n read() {\n let token;\n if (this.peeked) {\n this.didPeek = false;\n token = this.peeked;\n }\n else {\n token = this.reader.read();\n }\n if (token) {\n this._offset = lengthAdd(this._offset, token.length);\n }\n return token;\n }\n peek() {\n if (!this.didPeek) {\n this.peeked = this.reader.read();\n this.didPeek = true;\n }\n return this.peeked;\n }\n}\n/**\n * Does not support peek.\n*/\nclass NonPeekableTextBufferTokenizer {\n constructor(textModel, bracketTokens) {\n this.textModel = textModel;\n this.bracketTokens = bracketTokens;\n this.lineIdx = 0;\n this.line = null;\n this.lineCharOffset = 0;\n this.lineTokens = null;\n this.lineTokenOffset = 0;\n /** Must be a zero line token. The end of the document cannot be peeked. */\n this.peekedToken = null;\n this.textBufferLineCount = textModel.getLineCount();\n this.textBufferLastLineLength = textModel.getLineLength(this.textBufferLineCount);\n }\n setPosition(lineIdx, column) {\n // We must not jump into a token!\n if (lineIdx === this.lineIdx) {\n this.lineCharOffset = column;\n if (this.line !== null) {\n this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n }\n }\n else {\n this.lineIdx = lineIdx;\n this.lineCharOffset = column;\n this.line = null;\n }\n this.peekedToken = null;\n }\n read() {\n if (this.peekedToken) {\n const token = this.peekedToken;\n this.peekedToken = null;\n this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(token.length);\n return token;\n }\n if (this.lineIdx > this.textBufferLineCount - 1 || (this.lineIdx === this.textBufferLineCount - 1 && this.lineCharOffset >= this.textBufferLastLineLength)) {\n // We are after the end\n return null;\n }\n if (this.line === null) {\n this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n this.line = this.lineTokens.getLineContent();\n this.lineTokenOffset = this.lineCharOffset === 0 ? 0 : this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset);\n }\n const startLineIdx = this.lineIdx;\n const startLineCharOffset = this.lineCharOffset;\n // limits the length of text tokens.\n // If text tokens get too long, incremental updates will be slow\n let lengthHeuristic = 0;\n while (true) {\n const lineTokens = this.lineTokens;\n const tokenCount = lineTokens.getCount();\n let peekedBracketToken = null;\n if (this.lineTokenOffset < tokenCount) {\n const tokenMetadata = lineTokens.getMetadata(this.lineTokenOffset);\n while (this.lineTokenOffset + 1 < tokenCount && tokenMetadata === lineTokens.getMetadata(this.lineTokenOffset + 1)) {\n // Skip tokens that are identical.\n // Sometimes, (bracket) identifiers are split up into multiple tokens.\n this.lineTokenOffset++;\n }\n const isOther = TokenMetadata.getTokenType(tokenMetadata) === 0 /* StandardTokenType.Other */;\n const containsBracketType = TokenMetadata.containsBalancedBrackets(tokenMetadata);\n const endOffset = lineTokens.getEndOffset(this.lineTokenOffset);\n // Is there a bracket token next? Only consume text.\n if (containsBracketType && isOther && this.lineCharOffset < endOffset) {\n const languageId = lineTokens.getLanguageId(this.lineTokenOffset);\n const text = this.line.substring(this.lineCharOffset, endOffset);\n const brackets = this.bracketTokens.getSingleLanguageBracketTokens(languageId);\n const regexp = brackets.regExpGlobal;\n if (regexp) {\n regexp.lastIndex = 0;\n const match = regexp.exec(text);\n if (match) {\n peekedBracketToken = brackets.getToken(match[0]);\n if (peekedBracketToken) {\n // Consume leading text of the token\n this.lineCharOffset += match.index;\n }\n }\n }\n }\n lengthHeuristic += endOffset - this.lineCharOffset;\n if (peekedBracketToken) {\n // Don't skip the entire token, as a single token could contain multiple brackets.\n if (startLineIdx !== this.lineIdx || startLineCharOffset !== this.lineCharOffset) {\n // There is text before the bracket\n this.peekedToken = peekedBracketToken;\n break;\n }\n else {\n // Consume the peeked token\n this.lineCharOffset += lengthGetColumnCountIfZeroLineCount(peekedBracketToken.length);\n return peekedBracketToken;\n }\n }\n else {\n // Skip the entire token, as the token contains no brackets at all.\n this.lineTokenOffset++;\n this.lineCharOffset = endOffset;\n }\n }\n else {\n if (this.lineIdx === this.textBufferLineCount - 1) {\n break;\n }\n this.lineIdx++;\n this.lineTokens = this.textModel.tokenization.getLineTokens(this.lineIdx + 1);\n this.lineTokenOffset = 0;\n this.line = this.lineTokens.getLineContent();\n this.lineCharOffset = 0;\n lengthHeuristic += 33; // max 1000/33 = 30 lines\n // This limits the amount of work to recompute min-indentation\n if (lengthHeuristic > 1000) {\n // only break (automatically) at the end of line.\n break;\n }\n }\n if (lengthHeuristic > 1500) {\n // Eventually break regardless of the line length so that\n // very long lines do not cause bad performance.\n // This effective limits max indentation to 500, as\n // indentation is not computed across multiple text nodes.\n break;\n }\n }\n // If a token contains some proper indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION}),\n // unless the line is too long.\n // Thus, the min indentation of the document is the minimum min indentation of every text node.\n const length = lengthDiff(startLineIdx, startLineCharOffset, this.lineIdx, this.lineCharOffset);\n return new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n}\nexport class FastTokenizer {\n constructor(text, brackets) {\n this.text = text;\n this._offset = lengthZero;\n this.idx = 0;\n const regExpStr = brackets.getRegExpStr();\n const regexp = regExpStr ? new RegExp(regExpStr + '|\\n', 'gi') : null;\n const tokens = [];\n let match;\n let curLineCount = 0;\n let lastLineBreakOffset = 0;\n let lastTokenEndOffset = 0;\n let lastTokenEndLine = 0;\n const smallTextTokens0Line = [];\n for (let i = 0; i < 60; i++) {\n smallTextTokens0Line.push(new Token(toLength(0, i), 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(0, i))));\n }\n const smallTextTokens1Line = [];\n for (let i = 0; i < 60; i++) {\n smallTextTokens1Line.push(new Token(toLength(1, i), 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(toLength(1, i))));\n }\n if (regexp) {\n regexp.lastIndex = 0;\n // If a token contains indentation, it also contains \\n{INDENTATION+}(?!{INDENTATION})\n while ((match = regexp.exec(text)) !== null) {\n const curOffset = match.index;\n const value = match[0];\n if (value === '\\n') {\n curLineCount++;\n lastLineBreakOffset = curOffset + 1;\n }\n else {\n if (lastTokenEndOffset !== curOffset) {\n let token;\n if (lastTokenEndLine === curLineCount) {\n const colCount = curOffset - lastTokenEndOffset;\n if (colCount < smallTextTokens0Line.length) {\n token = smallTextTokens0Line[colCount];\n }\n else {\n const length = toLength(0, colCount);\n token = new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n }\n else {\n const lineCount = curLineCount - lastTokenEndLine;\n const colCount = curOffset - lastLineBreakOffset;\n if (lineCount === 1 && colCount < smallTextTokens1Line.length) {\n token = smallTextTokens1Line[colCount];\n }\n else {\n const length = toLength(lineCount, colCount);\n token = new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length));\n }\n }\n tokens.push(token);\n }\n // value is matched by regexp, so the token must exist\n tokens.push(brackets.getToken(value));\n lastTokenEndOffset = curOffset + value.length;\n lastTokenEndLine = curLineCount;\n }\n }\n }\n const offset = text.length;\n if (lastTokenEndOffset !== offset) {\n const length = (lastTokenEndLine === curLineCount)\n ? toLength(0, offset - lastTokenEndOffset)\n : toLength(curLineCount - lastTokenEndLine, offset - lastLineBreakOffset);\n tokens.push(new Token(length, 0 /* TokenKind.Text */, -1, SmallImmutableSet.getEmpty(), new TextAstNode(length)));\n }\n this.length = toLength(curLineCount, offset - lastLineBreakOffset);\n this.tokens = tokens;\n }\n get offset() {\n return this._offset;\n }\n read() {\n return this.tokens[this.idx++] || null;\n }\n peek() {\n return this.tokens[this.idx] || null;\n }\n skip(length) {\n throw new NotSupportedError();\n }\n}\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/apex/apex.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"apex\",\n extensions: [\".cls\"],\n aliases: [\"Apex\", \"apex\"],\n mimetypes: [\"text/x-apex-source\", \"text/x-apex\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/apex/apex\"], resolve, reject);\n });\n } else {\n return import(\"./apex.js\");\n }\n }\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.shouldUseRule = exports.shouldUseGroup = exports.schemaHasRulesForType = void 0;\nfunction schemaHasRulesForType({ schema, self }, type) {\n const group = self.RULES.types[type];\n return group && group !== true && shouldUseGroup(schema, group);\n}\nexports.schemaHasRulesForType = schemaHasRulesForType;\nfunction shouldUseGroup(schema, group) {\n return group.rules.some((rule) => shouldUseRule(schema, rule));\n}\nexports.shouldUseGroup = shouldUseGroup;\nfunction shouldUseRule(schema, rule) {\n var _a;\n return (schema[rule.keyword] !== undefined ||\n ((_a = rule.definition.implements) === null || _a === void 0 ? void 0 : _a.some((kwd) => schema[kwd] !== undefined)));\n}\nexports.shouldUseRule = shouldUseRule;\n//# sourceMappingURL=applicability.js.map","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiscrError = void 0;\nvar DiscrError;\n(function (DiscrError) {\n DiscrError[\"Tag\"] = \"tag\";\n DiscrError[\"Mapping\"] = \"mapping\";\n})(DiscrError || (exports.DiscrError = DiscrError = {}));\n//# sourceMappingURL=types.js.map","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar CLS_ROOT = 'e-vscroll';\nvar CLS_RTL = 'e-rtl';\nvar CLS_DISABLE = 'e-overlay';\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\nvar CLS_VSCROLLCON = 'e-vscroll-content';\nvar CLS_NAVARROW = 'e-nav-arrow';\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\nvar CLS_DEVICE = 'e-scroll-device';\nvar CLS_OVERLAY = 'e-scroll-overlay';\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\nvar OVERLAY_MAXWID = 40;\n/**\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\n * Hidden content can be view by touch moving or icon click.\n * ```html\n *
    \n * \n * ```\n */\nvar VScroll = /** @class */ (function (_super) {\n __extends(VScroll, _super);\n /**\n * Initializes a new instance of the VScroll class.\n *\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\n */\n function VScroll(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize the event handler\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.preRender = function () {\n this.browser = Browser.info.name;\n this.browserCheck = this.browser === 'mozilla';\n this.isDevice = Browser.isDevice;\n this.customStep = true;\n var ele = this.element;\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\n this.initialize();\n if (ele.id === '') {\n ele.id = getUniqueID('vscroll');\n this.uniqueId = true;\n }\n ele.style.display = 'block';\n if (this.enableRtl) {\n ele.classList.add(CLS_RTL);\n }\n };\n /**\n * To Initialize the vertical scroll rendering\n *\n * @private\n * @returns {void}\n */\n VScroll.prototype.render = function () {\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\n if (!this.isDevice) {\n this.createNavIcon(this.element);\n }\n else {\n this.element.classList.add(CLS_DEVICE);\n this.createOverlayElement(this.element);\n }\n this.setScrollState();\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\n };\n VScroll.prototype.setScrollState = function () {\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\n this.scrollStep = this.scrollEle.offsetHeight;\n this.customStep = false;\n }\n else {\n this.customStep = true;\n }\n };\n VScroll.prototype.initialize = function () {\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\n scrollBar.setAttribute('tabindex', '-1');\n var ele = this.element;\n var innerEle = [].slice.call(ele.children);\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\n var ele_1 = innerEle_1[_i];\n scrollCnt.appendChild(ele_1);\n }\n scrollBar.appendChild(scrollCnt);\n ele.appendChild(scrollBar);\n scrollBar.style.overflow = 'hidden';\n this.scrollEle = scrollBar;\n this.scrollItems = scrollCnt;\n };\n VScroll.prototype.getPersistData = function () {\n var keyEntity = ['scrollStep'];\n return this.addOnPersist(keyEntity);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - It returns the current module name.\n * @private\n */\n VScroll.prototype.getModuleName = function () {\n return 'vScroll';\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n VScroll.prototype.destroy = function () {\n var el = this.element;\n el.style.display = '';\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE, CLS_RTL]);\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\n var overlays = selectAll('.' + CLS_OVERLAY, el);\n [].slice.call(overlays).forEach(function (ele) {\n detach(ele);\n });\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\n var elem = _a[_i];\n el.appendChild(elem);\n }\n if (this.uniqueId) {\n this.element.removeAttribute('id');\n }\n detach(this.scrollEle);\n if (navs.length > 0) {\n detach(navs[0]);\n if (!isNullOrUndefined(navs[1])) {\n detach(navs[1]);\n }\n }\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\n this.touchModule.destroy();\n this.touchModule = null;\n _super.prototype.destroy.call(this);\n };\n /**\n * Specifies the value to disable/enable the VScroll component.\n * When set to `true` , the component will be disabled.\n *\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\n * @returns {void}.\n */\n VScroll.prototype.disable = function (value) {\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\n if (value) {\n this.element.classList.add(CLS_DISABLE);\n }\n else {\n this.element.classList.remove(CLS_DISABLE);\n }\n [].slice.call(navEle).forEach(function (el) {\n el.setAttribute('tabindex', !value ? '0' : '-1');\n });\n };\n VScroll.prototype.createOverlayElement = function (element) {\n var id = element.id.concat('_nav');\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n downEle.appendChild(navItem);\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\n if (this.ieCheck) {\n downEle.classList.add('e-ie-align');\n }\n element.appendChild(downOverlayEle);\n element.appendChild(downEle);\n element.insertBefore(upEle, element.firstChild);\n this.eventBinding([downEle]);\n };\n VScroll.prototype.createNavIcon = function (element) {\n var id = element.id.concat('_nav');\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\n nav.setAttribute('aria-disabled', 'false');\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\n navElement.setAttribute('aria-disabled', 'true');\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\n navElement.appendChild(navUpItem);\n nav.appendChild(navItem);\n nav.setAttribute('tabindex', '0');\n element.appendChild(nav);\n element.insertBefore(navElement, element.firstChild);\n if (this.ieCheck) {\n nav.classList.add('e-ie-align');\n navElement.classList.add('e-ie-align');\n }\n this.eventBinding([nav, navElement]);\n };\n VScroll.prototype.onKeyPress = function (ev) {\n var _this = this;\n if (ev.key === 'Enter') {\n var timeoutFun_1 = function () {\n _this.keyTimeout = true;\n _this.eleScrolling(10, ev.target, true);\n };\n this.keyTimer = window.setTimeout(function () {\n timeoutFun_1();\n }, 100);\n }\n };\n VScroll.prototype.onKeyUp = function (ev) {\n if (ev.key !== 'Enter') {\n return;\n }\n if (this.keyTimeout) {\n this.keyTimeout = false;\n }\n else {\n ev.target.click();\n }\n clearTimeout(this.keyTimer);\n };\n VScroll.prototype.eventBinding = function (element) {\n var _this = this;\n [].slice.call(element).forEach(function (ele) {\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\n ele.addEventListener('contextmenu', function (e) {\n e.preventDefault();\n });\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\n });\n };\n VScroll.prototype.repeatScroll = function () {\n clearInterval(this.timeout);\n };\n VScroll.prototype.tabHoldHandler = function (ev) {\n var _this = this;\n var trgt = ev.originalEvent.target;\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\n var scrollDistance = 10;\n var timeoutFun = function () {\n _this.eleScrolling(scrollDistance, trgt, true);\n };\n this.timeout = window.setInterval(function () {\n timeoutFun();\n }, 50);\n };\n VScroll.prototype.contains = function (element, className) {\n return element.classList.contains(className);\n };\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\n var classList = trgt.classList;\n if (classList.contains(CLS_VSCROLLNAV)) {\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\n }\n if (classList.contains(CLS_NAVDOWNARROW)) {\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\n }\n else if (classList.contains(CLS_NAVUPARROW)) {\n this.frameScrollRequest(scrollDis, '', isContinuous);\n }\n };\n VScroll.prototype.clickEventHandler = function (event) {\n this.eleScrolling(this.scrollStep, event.target, false);\n };\n VScroll.prototype.wheelEventHandler = function (e) {\n e.preventDefault();\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\n };\n VScroll.prototype.swipeHandler = function (e) {\n var swipeElement = this.scrollEle;\n var distance;\n if (e.velocity <= 1) {\n distance = e.distanceY / (e.velocity * 10);\n }\n else {\n distance = e.distanceY / e.velocity;\n }\n var start = 0.5;\n var animate = function () {\n var step = Math.sin(start);\n if (step <= 0) {\n window.cancelAnimationFrame(step);\n }\n else {\n if (e.swipeDirection === 'Up') {\n swipeElement.scrollTop += distance * step;\n }\n else if (e.swipeDirection === 'Down') {\n swipeElement.scrollTop -= distance * step;\n }\n start -= 0.02;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\n if (action === 'add') {\n this.scrollEle.scrollTop += scrollVal;\n }\n else {\n this.scrollEle.scrollTop -= scrollVal;\n }\n };\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\n var _this = this;\n var step = 10;\n if (isContinuous) {\n this.scrollUpdating(scrollValue, action);\n return;\n }\n if (!this.customStep) {\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\n scrollValue -= el.offsetHeight;\n });\n }\n var animate = function () {\n if (scrollValue < step) {\n window.cancelAnimationFrame(step);\n }\n else {\n _this.scrollUpdating(step, action);\n scrollValue -= step;\n window.requestAnimationFrame(animate);\n }\n };\n animate();\n };\n VScroll.prototype.touchHandler = function (e) {\n var el = this.scrollEle;\n var distance = e.distanceY;\n if (e.scrollDirection === 'Up') {\n el.scrollTop = el.scrollTop + distance;\n }\n else if (e.scrollDirection === 'Down') {\n el.scrollTop = el.scrollTop - distance;\n }\n };\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\n if (this.isDevice) {\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\n if (isNullOrUndefined(addDisableCls)) {\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\n }\n else {\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\n }\n }\n else {\n addDisableCls.classList.add(CLS_DISABLE);\n addDisableCls.setAttribute('aria-disabled', 'true');\n addDisableCls.removeAttribute('tabindex');\n removeDisableCls.classList.remove(CLS_DISABLE);\n removeDisableCls.setAttribute('aria-disabled', 'false');\n removeDisableCls.setAttribute('tabindex', '0');\n }\n this.repeatScroll();\n };\n VScroll.prototype.scrollEventHandler = function (e) {\n var target = e.target;\n var height = target.offsetHeight;\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\n var scrollTop = target.scrollTop;\n if (scrollTop <= 0) {\n scrollTop = -scrollTop;\n }\n if (this.isDevice) {\n if (scrollTop < OVERLAY_MAXWID) {\n upOverlay.style.height = scrollTop + 'px';\n }\n else {\n upOverlay.style.height = '40px';\n }\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\n }\n else {\n downOverlay.style.height = '40px';\n }\n }\n if (scrollTop === 0) {\n this.arrowDisabling(navUpEle, navDownEle);\n }\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\n this.arrowDisabling(navDownEle, navUpEle);\n }\n else {\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\n if (disEle) {\n disEle.classList.remove(CLS_DISABLE);\n disEle.setAttribute('aria-disabled', 'false');\n disEle.setAttribute('tabindex', '0');\n }\n }\n };\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {VScrollModel} newProp - It contains the new value of data.\n * @param {VScrollModel} oldProp - It contains the old value of data.\n * @returns {void}\n * @private\n */\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'scrollStep':\n this.setScrollState();\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(CLS_RTL);\n }\n else {\n this.element.classList.remove(CLS_RTL);\n }\n break;\n }\n }\n };\n __decorate([\n Property(null)\n ], VScroll.prototype, \"scrollStep\", void 0);\n VScroll = __decorate([\n NotifyPropertyChanges\n ], VScroll);\n return VScroll;\n}(Component));\nexport { VScroll };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../common/event.js';\nexport class DomEmitter {\n get event() {\n return this.emitter.event;\n }\n constructor(element, type, useCapture) {\n const fn = (e) => this.emitter.fire(e);\n this.emitter = new Emitter({\n onWillAddFirstListener: () => element.addEventListener(type, fn, useCapture),\n onDidRemoveLastListener: () => element.removeEventListener(type, fn, useCapture)\n });\n }\n dispose() {\n this.emitter.dispose();\n }\n}\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\nmodule.exports = satisfies\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { strictEquals } from '../equals.js';\nimport { DebugNameData, getFunctionName } from './debugName.js';\nimport { getLogger } from './logging.js';\nlet _recomputeInitiallyAndOnChange;\nexport function _setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange) {\n _recomputeInitiallyAndOnChange = recomputeInitiallyAndOnChange;\n}\nlet _keepObserved;\nexport function _setKeepObserved(keepObserved) {\n _keepObserved = keepObserved;\n}\nlet _derived;\n/**\n * @internal\n * This is to allow splitting files.\n*/\nexport function _setDerivedOpts(derived) {\n _derived = derived;\n}\nexport class ConvenientObservable {\n get TChange() { return null; }\n reportChanges() {\n this.get();\n }\n /** @sealed */\n read(reader) {\n if (reader) {\n return reader.readObservable(this);\n }\n else {\n return this.get();\n }\n }\n map(fnOrOwner, fnOrUndefined) {\n const owner = fnOrUndefined === undefined ? undefined : fnOrOwner;\n const fn = fnOrUndefined === undefined ? fnOrOwner : fnOrUndefined;\n return _derived({\n owner,\n debugName: () => {\n const name = getFunctionName(fn);\n if (name !== undefined) {\n return name;\n }\n // regexp to match `x => x.y` or `x => x?.y` where x and y can be arbitrary identifiers (uses backref):\n const regexp = /^\\s*\\(?\\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*\\)?\\s*=>\\s*\\1(?:\\??)\\.([a-zA-Z_$][a-zA-Z_$0-9]*)\\s*$/;\n const match = regexp.exec(fn.toString());\n if (match) {\n return `${this.debugName}.${match[2]}`;\n }\n if (!owner) {\n return `${this.debugName} (mapped)`;\n }\n return undefined;\n },\n debugReferenceFn: fn,\n }, (reader) => fn(this.read(reader), reader));\n }\n recomputeInitiallyAndOnChange(store, handleValue) {\n store.add(_recomputeInitiallyAndOnChange(this, handleValue));\n return this;\n }\n}\nexport class BaseObservable extends ConvenientObservable {\n constructor() {\n super(...arguments);\n this.observers = new Set();\n }\n addObserver(observer) {\n const len = this.observers.size;\n this.observers.add(observer);\n if (len === 0) {\n this.onFirstObserverAdded();\n }\n }\n removeObserver(observer) {\n const deleted = this.observers.delete(observer);\n if (deleted && this.observers.size === 0) {\n this.onLastObserverRemoved();\n }\n }\n onFirstObserverAdded() { }\n onLastObserverRemoved() { }\n}\n/**\n * Starts a transaction in which many observables can be changed at once.\n * {@link fn} should start with a JS Doc using `@description` to give the transaction a debug name.\n * Reaction run on demand or when the transaction ends.\n */\nexport function transaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n fn(tx);\n }\n finally {\n tx.finish();\n }\n}\nlet _globalTransaction = undefined;\nexport function globalTransaction(fn) {\n if (_globalTransaction) {\n fn(_globalTransaction);\n }\n else {\n const tx = new TransactionImpl(fn, undefined);\n _globalTransaction = tx;\n try {\n fn(tx);\n }\n finally {\n tx.finish(); // During finish, more actions might be added to the transaction.\n // Which is why we only clear the global transaction after finish.\n _globalTransaction = undefined;\n }\n }\n}\nexport async function asyncTransaction(fn, getDebugName) {\n const tx = new TransactionImpl(fn, getDebugName);\n try {\n await fn(tx);\n }\n finally {\n tx.finish();\n }\n}\n/**\n * Allows to chain transactions.\n */\nexport function subtransaction(tx, fn, getDebugName) {\n if (!tx) {\n transaction(fn, getDebugName);\n }\n else {\n fn(tx);\n }\n}\nexport class TransactionImpl {\n constructor(_fn, _getDebugName) {\n var _a;\n this._fn = _fn;\n this._getDebugName = _getDebugName;\n this.updatingObservers = [];\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleBeginTransaction(this);\n }\n getDebugName() {\n if (this._getDebugName) {\n return this._getDebugName();\n }\n return getFunctionName(this._fn);\n }\n updateObserver(observer, observable) {\n // When this gets called while finish is active, they will still get considered\n this.updatingObservers.push({ observer, observable });\n observer.beginUpdate(observable);\n }\n finish() {\n var _a;\n const updatingObservers = this.updatingObservers;\n for (let i = 0; i < updatingObservers.length; i++) {\n const { observer, observable } = updatingObservers[i];\n observer.endUpdate(observable);\n }\n // Prevent anyone from updating observers from now on.\n this.updatingObservers = null;\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleEndTransaction();\n }\n}\nexport function observableValue(nameOrOwner, initialValue) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new ObservableValue(debugNameData, initialValue, strictEquals);\n}\nexport function observableValueOpts(options, initialValue) {\n var _a;\n return new ObservableValue(new DebugNameData(options.owner, options.debugName, undefined), initialValue, (_a = options.equalsFn) !== null && _a !== void 0 ? _a : strictEquals);\n}\nexport class ObservableValue extends BaseObservable {\n get debugName() {\n var _a;\n return (_a = this._debugNameData.getDebugName(this)) !== null && _a !== void 0 ? _a : 'ObservableValue';\n }\n constructor(_debugNameData, initialValue, _equalityComparator) {\n super();\n this._debugNameData = _debugNameData;\n this._equalityComparator = _equalityComparator;\n this._value = initialValue;\n }\n get() {\n return this._value;\n }\n set(value, tx, change) {\n var _a;\n if (change === undefined && this._equalityComparator(this._value, value)) {\n return;\n }\n let _tx;\n if (!tx) {\n tx = _tx = new TransactionImpl(() => { }, () => `Setting ${this.debugName}`);\n }\n try {\n const oldValue = this._value;\n this._setValue(value);\n (_a = getLogger()) === null || _a === void 0 ? void 0 : _a.handleObservableChanged(this, { oldValue, newValue: value, change, didChange: true, hadValue: true });\n for (const observer of this.observers) {\n tx.updateObserver(observer, this);\n observer.handleChange(this, change);\n }\n }\n finally {\n if (_tx) {\n _tx.finish();\n }\n }\n }\n toString() {\n return `${this.debugName}: ${this._value}`;\n }\n _setValue(newValue) {\n this._value = newValue;\n }\n}\n/**\n * A disposable observable. When disposed, its value is also disposed.\n * When a new value is set, the previous value is disposed.\n */\nexport function disposableObservableValue(nameOrOwner, initialValue) {\n let debugNameData;\n if (typeof nameOrOwner === 'string') {\n debugNameData = new DebugNameData(undefined, nameOrOwner, undefined);\n }\n else {\n debugNameData = new DebugNameData(nameOrOwner, undefined, undefined);\n }\n return new DisposableObservableValue(debugNameData, initialValue, strictEquals);\n}\nexport class DisposableObservableValue extends ObservableValue {\n _setValue(newValue) {\n if (this._value === newValue) {\n return;\n }\n if (this._value) {\n this._value.dispose();\n }\n this._value = newValue;\n }\n dispose() {\n var _a;\n (_a = this._value) === null || _a === void 0 ? void 0 : _a.dispose();\n }\n}\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","/*!\n * pinia v2.1.7\n * (c) 2023 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, del, nextTick, computed, toRefs } from 'vue-demi';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\nconst IS_CLIENT = typeof window !== 'undefined';\n/**\n * Should we add the devtools plugins.\n * - only if dev mode or forced through the prod devtools flag\n * - not in test\n * - only if window exists (could change in the future)\n */\nconst USE_DEVTOOLS = ((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test') && IS_CLIENT;\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = document.createEvent('MouseEvents');\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = \n typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload, ctx) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload, ctx) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n if (!isVue2) {\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n }\n },\n use(plugin) {\n if (!this._a && !isVue2) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if (USE_DEVTOOLS && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n if (isVue2) {\n set(newState, key, subPatch);\n }\n else {\n newState[key] = subPatch;\n }\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.push(callback);\n const removeSubscription = () => {\n const idx = subscriptions.indexOf(callback);\n if (idx > -1) {\n subscriptions.splice(idx, 1);\n onCleanup();\n }\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.slice().forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n // Handle Set instances\n if (target instanceof Set && patchToApply instanceof Set) {\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\nconst skipHydrateMap = /*#__PURE__*/ new WeakMap();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return isVue2\n ? // in @vue/composition-api, the refs are sealed so defineProperty doesn't work...\n /* istanbul ignore next */ skipHydrateMap.set(obj, 1) && obj\n : Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return isVue2\n ? /* istanbul ignore next */ !skipHydrateMap.has(obj)\n : !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, id, state ? state() : {});\n }\n else {\n pinia.state.value[id] = state ? state() : {};\n }\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n /* istanbul ignore next */\n if (isVue2 && !store._r)\n return;\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = {\n deep: true,\n // flush: 'post',\n };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production') && !isVue2) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = [];\n let actionSubscriptions = [];\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value, $id, {});\n }\n else {\n pinia.state.value[$id] = {};\n }\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions = [];\n actionSubscriptions = [];\n pinia._s.delete($id);\n }\n /**\n * Wraps an action to handle subscriptions.\n *\n * @param name - name of the action\n * @param action - action to wrap\n * @returns a wrapped action to handle subscriptions\n */\n function wrapAction(name, action) {\n return function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackList = [];\n const onErrorCallbackList = [];\n function after(callback) {\n afterCallbackList.push(callback);\n }\n function onError(callback) {\n onErrorCallbackList.push(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name,\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = action.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackList, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackList, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackList, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackList, ret);\n return ret;\n };\n }\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n /* istanbul ignore if */\n if (isVue2) {\n // start as non ready\n partialStore._r = false;\n }\n const store = reactive((process.env.NODE_ENV !== 'production') || USE_DEVTOOLS\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(setup)));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n set(hotState.value, key, toRef(setupStore, key));\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n /* istanbul ignore if */\n if (isVue2) {\n set(pinia.state.value[$id], key, prop);\n }\n else {\n pinia.state.value[$id][key] = prop;\n }\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n // @ts-expect-error: we are overriding the function we avoid wrapping if\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : wrapAction(key, prop);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n /* istanbul ignore if */\n if (isVue2) {\n set(setupStore, key, actionValue);\n }\n else {\n // @ts-expect-error\n setupStore[key] = actionValue;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n if (isVue2) {\n Object.keys(setupStore).forEach((key) => {\n set(store, key, setupStore[key]);\n });\n }\n else {\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n }\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n set(store, stateKey, toRef(newStore.$state, stateKey));\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n del(store, stateKey);\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const action = newStore[actionName];\n set(store, actionName, wrapAction(actionName, action));\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n set(store, getterName, getterValue);\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n del(store, key);\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n del(store, key);\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if (USE_DEVTOOLS) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n /* istanbul ignore if */\n if (isVue2) {\n // mark the store as ready before plugins\n store._r = true;\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if (USE_DEVTOOLS) {\n const extensions = scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\nfunction defineStore(\n// TODO: add proper types from above\nidOrOptions, setup, setupOptions) {\n let id;\n let options;\n const isSetupStore = typeof setup === 'function';\n if (typeof idOrOptions === 'string') {\n id = idOrOptions;\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n }\n else {\n options = idOrOptions;\n id = idOrOptions.id;\n if ((process.env.NODE_ENV !== 'production') && typeof id !== 'string') {\n throw new Error(`[🍍]: \"defineStore()\" must be passed a store id as its first argument.`);\n }\n }\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-ignore\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n // it's easier to type it here as any\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n // See https://github.com/vuejs/pinia/issues/852\n // It's easier to just use toRefs() even if it includes more stuff\n if (isVue2) {\n // @ts-expect-error: toRefs include methods and others\n return toRefs(store);\n }\n else {\n store = toRaw(store);\n const refs = {};\n for (const key in store) {\n const value = store[key];\n if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n }\n}\n\n/**\n * Vue 2 Plugin that must be installed for pinia to work. Note **you don't need\n * this plugin if you are using Nuxt.js**. Use the `buildModule` instead:\n * https://pinia.vuejs.org/ssr/nuxt.html.\n *\n * @example\n * ```js\n * import Vue from 'vue'\n * import { PiniaVuePlugin, createPinia } from 'pinia'\n *\n * Vue.use(PiniaVuePlugin)\n * const pinia = createPinia()\n *\n * new Vue({\n * el: '#app',\n * // ...\n * pinia,\n * })\n * ```\n *\n * @param _Vue - `Vue` imported from 'vue'.\n */\nconst PiniaVuePlugin = function (_Vue) {\n // Equivalent of\n // app.config.globalProperties.$pinia = pinia\n _Vue.mixin({\n beforeCreate() {\n const options = this.$options;\n if (options.pinia) {\n const pinia = options.pinia;\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/main/src/apis/inject.ts#L31\n /* istanbul ignore else */\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: (v) => Object.assign(provideCache, v),\n });\n }\n this._provided[piniaSymbol] = pinia;\n // propagate the pinia instance in an SSR friendly way\n // avoid adding it to nuxt twice\n /* istanbul ignore else */\n if (!this.$pinia) {\n this.$pinia = pinia;\n }\n pinia._a = this;\n if (IS_CLIENT) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n }\n if (USE_DEVTOOLS) {\n registerPiniaDevtools(pinia._a, pinia);\n }\n }\n else if (!this.$pinia && options.parent && options.parent.$pinia) {\n this.$pinia = options.parent.$pinia;\n }\n },\n destroyed() {\n delete this._pStores;\n },\n });\n};\n\nexport { MutationType, PiniaVuePlugin, acceptHMRUpdate, createPinia, defineStore, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, skipHydrate, storeToRefs };\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InlineSuggestionHintsContentWidget_1;\nimport { h } from '../../../../base/browser/dom.js';\nimport { ActionViewItem } from '../../../../base/browser/ui/actionbar/actionViewItems.js';\nimport { KeybindingLabel, unthemedKeybindingLabelOptions } from '../../../../base/browser/ui/keybindingLabel/keybindingLabel.js';\nimport { Action, Separator } from '../../../../base/common/actions.js';\nimport { equals } from '../../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, derivedObservableWithCache, observableFromEvent } from '../../../../base/common/observable.js';\nimport { derivedWithStore } from '../../../../base/common/observableInternal/derived.js';\nimport { OS } from '../../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './inlineCompletionsHintsWidget.css';\nimport { Position } from '../../../common/core/position.js';\nimport { InlineCompletionTriggerKind } from '../../../common/languages.js';\nimport { showNextInlineSuggestionActionId, showPreviousInlineSuggestionActionId } from './commandIds.js';\nimport { localize } from '../../../../nls.js';\nimport { MenuEntryActionViewItem, createAndFillInActionBarActions } from '../../../../platform/actions/browser/menuEntryActionViewItem.js';\nimport { WorkbenchToolBar } from '../../../../platform/actions/browser/toolbar.js';\nimport { IMenuService, MenuId, MenuItemAction } from '../../../../platform/actions/common/actions.js';\nimport { ICommandService } from '../../../../platform/commands/common/commands.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { registerIcon } from '../../../../platform/theme/common/iconRegistry.js';\nlet InlineCompletionsHintsWidget = class InlineCompletionsHintsWidget extends Disposable {\n constructor(editor, model, instantiationService) {\n super();\n this.editor = editor;\n this.model = model;\n this.instantiationService = instantiationService;\n this.alwaysShowToolbar = observableFromEvent(this.editor.onDidChangeConfiguration, () => this.editor.getOption(62 /* EditorOption.inlineSuggest */).showToolbar === 'always');\n this.sessionPosition = undefined;\n this.position = derived(this, reader => {\n var _a, _b, _c;\n const ghostText = (_a = this.model.read(reader)) === null || _a === void 0 ? void 0 : _a.primaryGhostText.read(reader);\n if (!this.alwaysShowToolbar.read(reader) || !ghostText || ghostText.parts.length === 0) {\n this.sessionPosition = undefined;\n return null;\n }\n const firstColumn = ghostText.parts[0].column;\n if (this.sessionPosition && this.sessionPosition.lineNumber !== ghostText.lineNumber) {\n this.sessionPosition = undefined;\n }\n const position = new Position(ghostText.lineNumber, Math.min(firstColumn, (_c = (_b = this.sessionPosition) === null || _b === void 0 ? void 0 : _b.column) !== null && _c !== void 0 ? _c : Number.MAX_SAFE_INTEGER));\n this.sessionPosition = position;\n return position;\n });\n this._register(autorunWithStore((reader, store) => {\n /** @description setup content widget */\n const model = this.model.read(reader);\n if (!model || !this.alwaysShowToolbar.read(reader)) {\n return;\n }\n const contentWidgetValue = derivedWithStore((reader, store) => {\n const contentWidget = store.add(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget, this.editor, true, this.position, model.selectedInlineCompletionIndex, model.inlineCompletionsCount, model.activeCommands));\n editor.addContentWidget(contentWidget);\n store.add(toDisposable(() => editor.removeContentWidget(contentWidget)));\n store.add(autorun(reader => {\n /** @description request explicit */\n const position = this.position.read(reader);\n if (!position) {\n return;\n }\n if (model.lastTriggerKind.read(reader) !== InlineCompletionTriggerKind.Explicit) {\n model.triggerExplicitly();\n }\n }));\n return contentWidget;\n });\n const hadPosition = derivedObservableWithCache(this, (reader, lastValue) => !!this.position.read(reader) || !!lastValue);\n store.add(autorun(reader => {\n if (hadPosition.read(reader)) {\n contentWidgetValue.read(reader);\n }\n }));\n }));\n }\n};\nInlineCompletionsHintsWidget = __decorate([\n __param(2, IInstantiationService)\n], InlineCompletionsHintsWidget);\nexport { InlineCompletionsHintsWidget };\nconst inlineSuggestionHintsNextIcon = registerIcon('inline-suggestion-hints-next', Codicon.chevronRight, localize('parameterHintsNextIcon', 'Icon for show next parameter hint.'));\nconst inlineSuggestionHintsPreviousIcon = registerIcon('inline-suggestion-hints-previous', Codicon.chevronLeft, localize('parameterHintsPreviousIcon', 'Icon for show previous parameter hint.'));\nlet InlineSuggestionHintsContentWidget = InlineSuggestionHintsContentWidget_1 = class InlineSuggestionHintsContentWidget extends Disposable {\n static get dropDownVisible() { return this._dropDownVisible; }\n createCommandAction(commandId, label, iconClassName) {\n const action = new Action(commandId, label, iconClassName, true, () => this._commandService.executeCommand(commandId));\n const kb = this.keybindingService.lookupKeybinding(commandId, this._contextKeyService);\n let tooltip = label;\n if (kb) {\n tooltip = localize({ key: 'content', comment: ['A label', 'A keybinding'] }, '{0} ({1})', label, kb.getLabel());\n }\n action.tooltip = tooltip;\n return action;\n }\n constructor(editor, withBorder, _position, _currentSuggestionIdx, _suggestionCount, _extraCommands, _commandService, instantiationService, keybindingService, _contextKeyService, _menuService) {\n super();\n this.editor = editor;\n this.withBorder = withBorder;\n this._position = _position;\n this._currentSuggestionIdx = _currentSuggestionIdx;\n this._suggestionCount = _suggestionCount;\n this._extraCommands = _extraCommands;\n this._commandService = _commandService;\n this.keybindingService = keybindingService;\n this._contextKeyService = _contextKeyService;\n this._menuService = _menuService;\n this.id = `InlineSuggestionHintsContentWidget${InlineSuggestionHintsContentWidget_1.id++}`;\n this.allowEditorOverflow = true;\n this.suppressMouseDown = false;\n this.nodes = h('div.inlineSuggestionsHints', { className: this.withBorder ? '.withBorder' : '' }, [\n h('div@toolBar'),\n ]);\n this.previousAction = this.createCommandAction(showPreviousInlineSuggestionActionId, localize('previous', 'Previous'), ThemeIcon.asClassName(inlineSuggestionHintsPreviousIcon));\n this.availableSuggestionCountAction = new Action('inlineSuggestionHints.availableSuggestionCount', '', undefined, false);\n this.nextAction = this.createCommandAction(showNextInlineSuggestionActionId, localize('next', 'Next'), ThemeIcon.asClassName(inlineSuggestionHintsNextIcon));\n // TODO@hediet: deprecate MenuId.InlineCompletionsActions\n this.inlineCompletionsActionsMenus = this._register(this._menuService.createMenu(MenuId.InlineCompletionsActions, this._contextKeyService));\n this.clearAvailableSuggestionCountLabelDebounced = this._register(new RunOnceScheduler(() => {\n this.availableSuggestionCountAction.label = '';\n }, 100));\n this.disableButtonsDebounced = this._register(new RunOnceScheduler(() => {\n this.previousAction.enabled = this.nextAction.enabled = false;\n }, 100));\n this.toolBar = this._register(instantiationService.createInstance(CustomizedMenuWorkbenchToolBar, this.nodes.toolBar, MenuId.InlineSuggestionToolbar, {\n menuOptions: { renderShortTitle: true },\n toolbarOptions: { primaryGroup: g => g.startsWith('primary') },\n actionViewItemProvider: (action, options) => {\n if (action instanceof MenuItemAction) {\n return instantiationService.createInstance(StatusBarViewItem, action, undefined);\n }\n if (action === this.availableSuggestionCountAction) {\n const a = new ActionViewItemWithClassName(undefined, action, { label: true, icon: false });\n a.setClass('availableSuggestionCount');\n return a;\n }\n return undefined;\n },\n telemetrySource: 'InlineSuggestionToolbar',\n }));\n this.toolBar.setPrependedPrimaryActions([\n this.previousAction,\n this.availableSuggestionCountAction,\n this.nextAction,\n ]);\n this._register(this.toolBar.onDidChangeDropdownVisibility(e => {\n InlineSuggestionHintsContentWidget_1._dropDownVisible = e;\n }));\n this._register(autorun(reader => {\n /** @description update position */\n this._position.read(reader);\n this.editor.layoutContentWidget(this);\n }));\n this._register(autorun(reader => {\n /** @description counts */\n const suggestionCount = this._suggestionCount.read(reader);\n const currentSuggestionIdx = this._currentSuggestionIdx.read(reader);\n if (suggestionCount !== undefined) {\n this.clearAvailableSuggestionCountLabelDebounced.cancel();\n this.availableSuggestionCountAction.label = `${currentSuggestionIdx + 1}/${suggestionCount}`;\n }\n else {\n this.clearAvailableSuggestionCountLabelDebounced.schedule();\n }\n if (suggestionCount !== undefined && suggestionCount > 1) {\n this.disableButtonsDebounced.cancel();\n this.previousAction.enabled = this.nextAction.enabled = true;\n }\n else {\n this.disableButtonsDebounced.schedule();\n }\n }));\n this._register(autorun(reader => {\n /** @description extra commands */\n const extraCommands = this._extraCommands.read(reader);\n const extraActions = extraCommands.map(c => ({\n class: undefined,\n id: c.id,\n enabled: true,\n tooltip: c.tooltip || '',\n label: c.title,\n run: (event) => {\n return this._commandService.executeCommand(c.id);\n },\n }));\n for (const [_, group] of this.inlineCompletionsActionsMenus.getActions()) {\n for (const action of group) {\n if (action instanceof MenuItemAction) {\n extraActions.push(action);\n }\n }\n }\n if (extraActions.length > 0) {\n extraActions.unshift(new Separator());\n }\n this.toolBar.setAdditionalSecondaryActions(extraActions);\n }));\n }\n getId() { return this.id; }\n getDomNode() {\n return this.nodes.root;\n }\n getPosition() {\n return {\n position: this._position.get(),\n preference: [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */],\n positionAffinity: 3 /* PositionAffinity.LeftOfInjectedText */,\n };\n }\n};\nInlineSuggestionHintsContentWidget._dropDownVisible = false;\nInlineSuggestionHintsContentWidget.id = 0;\nInlineSuggestionHintsContentWidget = InlineSuggestionHintsContentWidget_1 = __decorate([\n __param(6, ICommandService),\n __param(7, IInstantiationService),\n __param(8, IKeybindingService),\n __param(9, IContextKeyService),\n __param(10, IMenuService)\n], InlineSuggestionHintsContentWidget);\nexport { InlineSuggestionHintsContentWidget };\nclass ActionViewItemWithClassName extends ActionViewItem {\n constructor() {\n super(...arguments);\n this._className = undefined;\n }\n setClass(className) {\n this._className = className;\n }\n render(container) {\n super.render(container);\n if (this._className) {\n container.classList.add(this._className);\n }\n }\n updateTooltip() {\n // NOOP, disable tooltip\n }\n}\nclass StatusBarViewItem extends MenuEntryActionViewItem {\n updateLabel() {\n const kb = this._keybindingService.lookupKeybinding(this._action.id, this._contextKeyService);\n if (!kb) {\n return super.updateLabel();\n }\n if (this.label) {\n const div = h('div.keybinding').root;\n const k = this._register(new KeybindingLabel(div, OS, { disableTitle: true, ...unthemedKeybindingLabelOptions }));\n k.set(kb);\n this.label.textContent = this._action.label;\n this.label.appendChild(div);\n this.label.classList.add('inlineSuggestionStatusBarItemLabel');\n }\n }\n updateTooltip() {\n // NOOP, disable tooltip\n }\n}\nlet CustomizedMenuWorkbenchToolBar = class CustomizedMenuWorkbenchToolBar extends WorkbenchToolBar {\n constructor(container, menuId, options2, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n super(container, { resetMenu: menuId, ...options2 }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n this.menuId = menuId;\n this.options2 = options2;\n this.menuService = menuService;\n this.contextKeyService = contextKeyService;\n this.menu = this._store.add(this.menuService.createMenu(this.menuId, this.contextKeyService, { emitEventsForSubmenuChanges: true }));\n this.additionalActions = [];\n this.prependedPrimaryActions = [];\n this._store.add(this.menu.onDidChange(() => this.updateToolbar()));\n this.updateToolbar();\n }\n updateToolbar() {\n var _a, _b, _c, _d, _e, _f, _g;\n const primary = [];\n const secondary = [];\n createAndFillInActionBarActions(this.menu, (_a = this.options2) === null || _a === void 0 ? void 0 : _a.menuOptions, { primary, secondary }, (_c = (_b = this.options2) === null || _b === void 0 ? void 0 : _b.toolbarOptions) === null || _c === void 0 ? void 0 : _c.primaryGroup, (_e = (_d = this.options2) === null || _d === void 0 ? void 0 : _d.toolbarOptions) === null || _e === void 0 ? void 0 : _e.shouldInlineSubmenu, (_g = (_f = this.options2) === null || _f === void 0 ? void 0 : _f.toolbarOptions) === null || _g === void 0 ? void 0 : _g.useSeparatorsInPrimaryActions);\n secondary.push(...this.additionalActions);\n primary.unshift(...this.prependedPrimaryActions);\n this.setActions(primary, secondary);\n }\n setPrependedPrimaryActions(actions) {\n if (equals(this.prependedPrimaryActions, actions, (a, b) => a === b)) {\n return;\n }\n this.prependedPrimaryActions = actions;\n this.updateToolbar();\n }\n setAdditionalSecondaryActions(actions) {\n if (equals(this.additionalActions, actions, (a, b) => a === b)) {\n return;\n }\n this.additionalActions = actions;\n this.updateToolbar();\n }\n};\nCustomizedMenuWorkbenchToolBar = __decorate([\n __param(3, IMenuService),\n __param(4, IContextKeyService),\n __param(5, IContextMenuService),\n __param(6, IKeybindingService),\n __param(7, ICommandService),\n __param(8, ITelemetryService)\n], CustomizedMenuWorkbenchToolBar);\nexport { CustomizedMenuWorkbenchToolBar };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.or = exports.and = exports.not = exports.CodeGen = exports.operators = exports.varKinds = exports.ValueScopeName = exports.ValueScope = exports.Scope = exports.Name = exports.regexpCode = exports.stringify = exports.getProperty = exports.nil = exports.strConcat = exports.str = exports._ = void 0;\nconst code_1 = require(\"./code\");\nconst scope_1 = require(\"./scope\");\nvar code_2 = require(\"./code\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return code_2._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return code_2.str; } });\nObject.defineProperty(exports, \"strConcat\", { enumerable: true, get: function () { return code_2.strConcat; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return code_2.nil; } });\nObject.defineProperty(exports, \"getProperty\", { enumerable: true, get: function () { return code_2.getProperty; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return code_2.stringify; } });\nObject.defineProperty(exports, \"regexpCode\", { enumerable: true, get: function () { return code_2.regexpCode; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return code_2.Name; } });\nvar scope_2 = require(\"./scope\");\nObject.defineProperty(exports, \"Scope\", { enumerable: true, get: function () { return scope_2.Scope; } });\nObject.defineProperty(exports, \"ValueScope\", { enumerable: true, get: function () { return scope_2.ValueScope; } });\nObject.defineProperty(exports, \"ValueScopeName\", { enumerable: true, get: function () { return scope_2.ValueScopeName; } });\nObject.defineProperty(exports, \"varKinds\", { enumerable: true, get: function () { return scope_2.varKinds; } });\nexports.operators = {\n GT: new code_1._Code(\">\"),\n GTE: new code_1._Code(\">=\"),\n LT: new code_1._Code(\"<\"),\n LTE: new code_1._Code(\"<=\"),\n EQ: new code_1._Code(\"===\"),\n NEQ: new code_1._Code(\"!==\"),\n NOT: new code_1._Code(\"!\"),\n OR: new code_1._Code(\"||\"),\n AND: new code_1._Code(\"&&\"),\n ADD: new code_1._Code(\"+\"),\n};\nclass Node {\n optimizeNodes() {\n return this;\n }\n optimizeNames(_names, _constants) {\n return this;\n }\n}\nclass Def extends Node {\n constructor(varKind, name, rhs) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.rhs = rhs;\n }\n render({ es5, _n }) {\n const varKind = es5 ? scope_1.varKinds.var : this.varKind;\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`;\n return `${varKind} ${this.name}${rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (!names[this.name.str])\n return;\n if (this.rhs)\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n return this.rhs instanceof code_1._CodeOrName ? this.rhs.names : {};\n }\n}\nclass Assign extends Node {\n constructor(lhs, rhs, sideEffects) {\n super();\n this.lhs = lhs;\n this.rhs = rhs;\n this.sideEffects = sideEffects;\n }\n render({ _n }) {\n return `${this.lhs} = ${this.rhs};` + _n;\n }\n optimizeNames(names, constants) {\n if (this.lhs instanceof code_1.Name && !names[this.lhs.str] && !this.sideEffects)\n return;\n this.rhs = optimizeExpr(this.rhs, names, constants);\n return this;\n }\n get names() {\n const names = this.lhs instanceof code_1.Name ? {} : { ...this.lhs.names };\n return addExprNames(names, this.rhs);\n }\n}\nclass AssignOp extends Assign {\n constructor(lhs, op, rhs, sideEffects) {\n super(lhs, rhs, sideEffects);\n this.op = op;\n }\n render({ _n }) {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n;\n }\n}\nclass Label extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n return `${this.label}:` + _n;\n }\n}\nclass Break extends Node {\n constructor(label) {\n super();\n this.label = label;\n this.names = {};\n }\n render({ _n }) {\n const label = this.label ? ` ${this.label}` : \"\";\n return `break${label};` + _n;\n }\n}\nclass Throw extends Node {\n constructor(error) {\n super();\n this.error = error;\n }\n render({ _n }) {\n return `throw ${this.error};` + _n;\n }\n get names() {\n return this.error.names;\n }\n}\nclass AnyCode extends Node {\n constructor(code) {\n super();\n this.code = code;\n }\n render({ _n }) {\n return `${this.code};` + _n;\n }\n optimizeNodes() {\n return `${this.code}` ? this : undefined;\n }\n optimizeNames(names, constants) {\n this.code = optimizeExpr(this.code, names, constants);\n return this;\n }\n get names() {\n return this.code instanceof code_1._CodeOrName ? this.code.names : {};\n }\n}\nclass ParentNode extends Node {\n constructor(nodes = []) {\n super();\n this.nodes = nodes;\n }\n render(opts) {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\");\n }\n optimizeNodes() {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n const n = nodes[i].optimizeNodes();\n if (Array.isArray(n))\n nodes.splice(i, 1, ...n);\n else if (n)\n nodes[i] = n;\n else\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n optimizeNames(names, constants) {\n const { nodes } = this;\n let i = nodes.length;\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i];\n if (n.optimizeNames(names, constants))\n continue;\n subtractNames(names, n.names);\n nodes.splice(i, 1);\n }\n return nodes.length > 0 ? this : undefined;\n }\n get names() {\n return this.nodes.reduce((names, n) => addNames(names, n.names), {});\n }\n}\nclass BlockNode extends ParentNode {\n render(opts) {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n;\n }\n}\nclass Root extends ParentNode {\n}\nclass Else extends BlockNode {\n}\nElse.kind = \"else\";\nclass If extends BlockNode {\n constructor(condition, nodes) {\n super(nodes);\n this.condition = condition;\n }\n render(opts) {\n let code = `if(${this.condition})` + super.render(opts);\n if (this.else)\n code += \"else \" + this.else.render(opts);\n return code;\n }\n optimizeNodes() {\n super.optimizeNodes();\n const cond = this.condition;\n if (cond === true)\n return this.nodes; // else is ignored here\n let e = this.else;\n if (e) {\n const ns = e.optimizeNodes();\n e = this.else = Array.isArray(ns) ? new Else(ns) : ns;\n }\n if (e) {\n if (cond === false)\n return e instanceof If ? e : e.nodes;\n if (this.nodes.length)\n return this;\n return new If(not(cond), e instanceof If ? [e] : e.nodes);\n }\n if (cond === false || !this.nodes.length)\n return undefined;\n return this;\n }\n optimizeNames(names, constants) {\n var _a;\n this.else = (_a = this.else) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n if (!(super.optimizeNames(names, constants) || this.else))\n return;\n this.condition = optimizeExpr(this.condition, names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n addExprNames(names, this.condition);\n if (this.else)\n addNames(names, this.else.names);\n return names;\n }\n}\nIf.kind = \"if\";\nclass For extends BlockNode {\n}\nFor.kind = \"for\";\nclass ForLoop extends For {\n constructor(iteration) {\n super();\n this.iteration = iteration;\n }\n render(opts) {\n return `for(${this.iteration})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iteration = optimizeExpr(this.iteration, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iteration.names);\n }\n}\nclass ForRange extends For {\n constructor(varKind, name, from, to) {\n super();\n this.varKind = varKind;\n this.name = name;\n this.from = from;\n this.to = to;\n }\n render(opts) {\n const varKind = opts.es5 ? scope_1.varKinds.var : this.varKind;\n const { name, from, to } = this;\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts);\n }\n get names() {\n const names = addExprNames(super.names, this.from);\n return addExprNames(names, this.to);\n }\n}\nclass ForIter extends For {\n constructor(loop, varKind, name, iterable) {\n super();\n this.loop = loop;\n this.varKind = varKind;\n this.name = name;\n this.iterable = iterable;\n }\n render(opts) {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts);\n }\n optimizeNames(names, constants) {\n if (!super.optimizeNames(names, constants))\n return;\n this.iterable = optimizeExpr(this.iterable, names, constants);\n return this;\n }\n get names() {\n return addNames(super.names, this.iterable.names);\n }\n}\nclass Func extends BlockNode {\n constructor(name, args, async) {\n super();\n this.name = name;\n this.args = args;\n this.async = async;\n }\n render(opts) {\n const _async = this.async ? \"async \" : \"\";\n return `${_async}function ${this.name}(${this.args})` + super.render(opts);\n }\n}\nFunc.kind = \"func\";\nclass Return extends ParentNode {\n render(opts) {\n return \"return \" + super.render(opts);\n }\n}\nReturn.kind = \"return\";\nclass Try extends BlockNode {\n render(opts) {\n let code = \"try\" + super.render(opts);\n if (this.catch)\n code += this.catch.render(opts);\n if (this.finally)\n code += this.finally.render(opts);\n return code;\n }\n optimizeNodes() {\n var _a, _b;\n super.optimizeNodes();\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNodes();\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNodes();\n return this;\n }\n optimizeNames(names, constants) {\n var _a, _b;\n super.optimizeNames(names, constants);\n (_a = this.catch) === null || _a === void 0 ? void 0 : _a.optimizeNames(names, constants);\n (_b = this.finally) === null || _b === void 0 ? void 0 : _b.optimizeNames(names, constants);\n return this;\n }\n get names() {\n const names = super.names;\n if (this.catch)\n addNames(names, this.catch.names);\n if (this.finally)\n addNames(names, this.finally.names);\n return names;\n }\n}\nclass Catch extends BlockNode {\n constructor(error) {\n super();\n this.error = error;\n }\n render(opts) {\n return `catch(${this.error})` + super.render(opts);\n }\n}\nCatch.kind = \"catch\";\nclass Finally extends BlockNode {\n render(opts) {\n return \"finally\" + super.render(opts);\n }\n}\nFinally.kind = \"finally\";\nclass CodeGen {\n constructor(extScope, opts = {}) {\n this._values = {};\n this._blockStarts = [];\n this._constants = {};\n this.opts = { ...opts, _n: opts.lines ? \"\\n\" : \"\" };\n this._extScope = extScope;\n this._scope = new scope_1.Scope({ parent: extScope });\n this._nodes = [new Root()];\n }\n toString() {\n return this._root.render(this.opts);\n }\n // returns unique name in the internal scope\n name(prefix) {\n return this._scope.name(prefix);\n }\n // reserves unique name in the external scope\n scopeName(prefix) {\n return this._extScope.name(prefix);\n }\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName, value) {\n const name = this._extScope.value(prefixOrName, value);\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set());\n vs.add(name);\n return name;\n }\n getScopeValue(prefix, keyOrRef) {\n return this._extScope.getValue(prefix, keyOrRef);\n }\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName) {\n return this._extScope.scopeRefs(scopeName, this._values);\n }\n scopeCode() {\n return this._extScope.scopeCode(this._values);\n }\n _def(varKind, nameOrPrefix, rhs, constant) {\n const name = this._scope.toName(nameOrPrefix);\n if (rhs !== undefined && constant)\n this._constants[name.str] = rhs;\n this._leafNode(new Def(varKind, name, rhs));\n return name;\n }\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.const, nameOrPrefix, rhs, _constant);\n }\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.let, nameOrPrefix, rhs, _constant);\n }\n // `var` declaration with optional assignment\n var(nameOrPrefix, rhs, _constant) {\n return this._def(scope_1.varKinds.var, nameOrPrefix, rhs, _constant);\n }\n // assignment code\n assign(lhs, rhs, sideEffects) {\n return this._leafNode(new Assign(lhs, rhs, sideEffects));\n }\n // `+=` code\n add(lhs, rhs) {\n return this._leafNode(new AssignOp(lhs, exports.operators.ADD, rhs));\n }\n // appends passed SafeExpr to code or executes Block\n code(c) {\n if (typeof c == \"function\")\n c();\n else if (c !== code_1.nil)\n this._leafNode(new AnyCode(c));\n return this;\n }\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues) {\n const code = [\"{\"];\n for (const [key, value] of keyValues) {\n if (code.length > 1)\n code.push(\",\");\n code.push(key);\n if (key !== value || this.opts.es5) {\n code.push(\":\");\n (0, code_1.addCodeArg)(code, value);\n }\n }\n code.push(\"}\");\n return new code_1._Code(code);\n }\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition, thenBody, elseBody) {\n this._blockNode(new If(condition));\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf();\n }\n else if (thenBody) {\n this.code(thenBody).endIf();\n }\n else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body');\n }\n return this;\n }\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition) {\n return this._elseNode(new If(condition));\n }\n // `else` clause - only valid after `if` or `else if` clauses\n else() {\n return this._elseNode(new Else());\n }\n // end `if` statement (needed if gen.if was used only with condition)\n endIf() {\n return this._endBlockNode(If, Else);\n }\n _for(node, forBody) {\n this._blockNode(node);\n if (forBody)\n this.code(forBody).endFor();\n return this;\n }\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration, forBody) {\n return this._for(new ForLoop(iteration), forBody);\n }\n // `for` statement for a range of values\n forRange(nameOrPrefix, from, to, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.let) {\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name));\n }\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(nameOrPrefix, iterable, forBody, varKind = scope_1.varKinds.const) {\n const name = this._scope.toName(nameOrPrefix);\n if (this.opts.es5) {\n const arr = iterable instanceof code_1.Name ? iterable : this.var(\"_arr\", iterable);\n return this.forRange(\"_i\", 0, (0, code_1._) `${arr}.length`, (i) => {\n this.var(name, (0, code_1._) `${arr}[${i}]`);\n forBody(name);\n });\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name));\n }\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(nameOrPrefix, obj, forBody, varKind = this.opts.es5 ? scope_1.varKinds.var : scope_1.varKinds.const) {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, (0, code_1._) `Object.keys(${obj})`, forBody);\n }\n const name = this._scope.toName(nameOrPrefix);\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name));\n }\n // end `for` loop\n endFor() {\n return this._endBlockNode(For);\n }\n // `label` statement\n label(label) {\n return this._leafNode(new Label(label));\n }\n // `break` statement\n break(label) {\n return this._leafNode(new Break(label));\n }\n // `return` statement\n return(value) {\n const node = new Return();\n this._blockNode(node);\n this.code(value);\n if (node.nodes.length !== 1)\n throw new Error('CodeGen: \"return\" should have one node');\n return this._endBlockNode(Return);\n }\n // `try` statement\n try(tryBody, catchCode, finallyCode) {\n if (!catchCode && !finallyCode)\n throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"');\n const node = new Try();\n this._blockNode(node);\n this.code(tryBody);\n if (catchCode) {\n const error = this.name(\"e\");\n this._currNode = node.catch = new Catch(error);\n catchCode(error);\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally();\n this.code(finallyCode);\n }\n return this._endBlockNode(Catch, Finally);\n }\n // `throw` statement\n throw(error) {\n return this._leafNode(new Throw(error));\n }\n // start self-balancing block\n block(body, nodeCount) {\n this._blockStarts.push(this._nodes.length);\n if (body)\n this.code(body).endBlock(nodeCount);\n return this;\n }\n // end the current self-balancing block\n endBlock(nodeCount) {\n const len = this._blockStarts.pop();\n if (len === undefined)\n throw new Error(\"CodeGen: not in self-balancing block\");\n const toClose = this._nodes.length - len;\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`);\n }\n this._nodes.length = len;\n return this;\n }\n // `function` heading (or definition if funcBody is passed)\n func(name, args = code_1.nil, async, funcBody) {\n this._blockNode(new Func(name, args, async));\n if (funcBody)\n this.code(funcBody).endFunc();\n return this;\n }\n // end function definition\n endFunc() {\n return this._endBlockNode(Func);\n }\n optimize(n = 1) {\n while (n-- > 0) {\n this._root.optimizeNodes();\n this._root.optimizeNames(this._root.names, this._constants);\n }\n }\n _leafNode(node) {\n this._currNode.nodes.push(node);\n return this;\n }\n _blockNode(node) {\n this._currNode.nodes.push(node);\n this._nodes.push(node);\n }\n _endBlockNode(N1, N2) {\n const n = this._currNode;\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop();\n return this;\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`);\n }\n _elseNode(node) {\n const n = this._currNode;\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"');\n }\n this._currNode = n.else = node;\n return this;\n }\n get _root() {\n return this._nodes[0];\n }\n get _currNode() {\n const ns = this._nodes;\n return ns[ns.length - 1];\n }\n set _currNode(node) {\n const ns = this._nodes;\n ns[ns.length - 1] = node;\n }\n}\nexports.CodeGen = CodeGen;\nfunction addNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) + (from[n] || 0);\n return names;\n}\nfunction addExprNames(names, from) {\n return from instanceof code_1._CodeOrName ? addNames(names, from.names) : names;\n}\nfunction optimizeExpr(expr, names, constants) {\n if (expr instanceof code_1.Name)\n return replaceName(expr);\n if (!canOptimize(expr))\n return expr;\n return new code_1._Code(expr._items.reduce((items, c) => {\n if (c instanceof code_1.Name)\n c = replaceName(c);\n if (c instanceof code_1._Code)\n items.push(...c._items);\n else\n items.push(c);\n return items;\n }, []));\n function replaceName(n) {\n const c = constants[n.str];\n if (c === undefined || names[n.str] !== 1)\n return n;\n delete names[n.str];\n return c;\n }\n function canOptimize(e) {\n return (e instanceof code_1._Code &&\n e._items.some((c) => c instanceof code_1.Name && names[c.str] === 1 && constants[c.str] !== undefined));\n }\n}\nfunction subtractNames(names, from) {\n for (const n in from)\n names[n] = (names[n] || 0) - (from[n] || 0);\n}\nfunction not(x) {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : (0, code_1._) `!${par(x)}`;\n}\nexports.not = not;\nconst andCode = mappend(exports.operators.AND);\n// boolean AND (&&) expression with the passed arguments\nfunction and(...args) {\n return args.reduce(andCode);\n}\nexports.and = and;\nconst orCode = mappend(exports.operators.OR);\n// boolean OR (||) expression with the passed arguments\nfunction or(...args) {\n return args.reduce(orCode);\n}\nexports.or = or;\nfunction mappend(op) {\n return (x, y) => (x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._) `${par(x)} ${op} ${par(y)}`);\n}\nfunction par(x) {\n return x instanceof code_1.Name ? x : (0, code_1._) `(${x})`;\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueScope = exports.ValueScopeName = exports.Scope = exports.varKinds = exports.UsedValueState = void 0;\nconst code_1 = require(\"./code\");\nclass ValueError extends Error {\n constructor(name) {\n super(`CodeGen: \"code\" for ${name} not defined`);\n this.value = name.value;\n }\n}\nvar UsedValueState;\n(function (UsedValueState) {\n UsedValueState[UsedValueState[\"Started\"] = 0] = \"Started\";\n UsedValueState[UsedValueState[\"Completed\"] = 1] = \"Completed\";\n})(UsedValueState || (exports.UsedValueState = UsedValueState = {}));\nexports.varKinds = {\n const: new code_1.Name(\"const\"),\n let: new code_1.Name(\"let\"),\n var: new code_1.Name(\"var\"),\n};\nclass Scope {\n constructor({ prefixes, parent } = {}) {\n this._names = {};\n this._prefixes = prefixes;\n this._parent = parent;\n }\n toName(nameOrPrefix) {\n return nameOrPrefix instanceof code_1.Name ? nameOrPrefix : this.name(nameOrPrefix);\n }\n name(prefix) {\n return new code_1.Name(this._newName(prefix));\n }\n _newName(prefix) {\n const ng = this._names[prefix] || this._nameGroup(prefix);\n return `${prefix}${ng.index++}`;\n }\n _nameGroup(prefix) {\n var _a, _b;\n if (((_b = (_a = this._parent) === null || _a === void 0 ? void 0 : _a._prefixes) === null || _b === void 0 ? void 0 : _b.has(prefix)) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`);\n }\n return (this._names[prefix] = { prefix, index: 0 });\n }\n}\nexports.Scope = Scope;\nclass ValueScopeName extends code_1.Name {\n constructor(prefix, nameStr) {\n super(nameStr);\n this.prefix = prefix;\n }\n setValue(value, { property, itemIndex }) {\n this.value = value;\n this.scopePath = (0, code_1._) `.${new code_1.Name(property)}[${itemIndex}]`;\n }\n}\nexports.ValueScopeName = ValueScopeName;\nconst line = (0, code_1._) `\\n`;\nclass ValueScope extends Scope {\n constructor(opts) {\n super(opts);\n this._values = {};\n this._scope = opts.scope;\n this.opts = { ...opts, _n: opts.lines ? line : code_1.nil };\n }\n get() {\n return this._scope;\n }\n name(prefix) {\n return new ValueScopeName(prefix, this._newName(prefix));\n }\n value(nameOrPrefix, value) {\n var _a;\n if (value.ref === undefined)\n throw new Error(\"CodeGen: ref must be passed in value\");\n const name = this.toName(nameOrPrefix);\n const { prefix } = name;\n const valueKey = (_a = value.key) !== null && _a !== void 0 ? _a : value.ref;\n let vs = this._values[prefix];\n if (vs) {\n const _name = vs.get(valueKey);\n if (_name)\n return _name;\n }\n else {\n vs = this._values[prefix] = new Map();\n }\n vs.set(valueKey, name);\n const s = this._scope[prefix] || (this._scope[prefix] = []);\n const itemIndex = s.length;\n s[itemIndex] = value.ref;\n name.setValue(value, { property: prefix, itemIndex });\n return name;\n }\n getValue(prefix, keyOrRef) {\n const vs = this._values[prefix];\n if (!vs)\n return;\n return vs.get(keyOrRef);\n }\n scopeRefs(scopeName, values = this._values) {\n return this._reduceValues(values, (name) => {\n if (name.scopePath === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return (0, code_1._) `${scopeName}${name.scopePath}`;\n });\n }\n scopeCode(values = this._values, usedValues, getCode) {\n return this._reduceValues(values, (name) => {\n if (name.value === undefined)\n throw new Error(`CodeGen: name \"${name}\" has no value`);\n return name.value.code;\n }, usedValues, getCode);\n }\n _reduceValues(values, valueCode, usedValues = {}, getCode) {\n let code = code_1.nil;\n for (const prefix in values) {\n const vs = values[prefix];\n if (!vs)\n continue;\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map());\n vs.forEach((name) => {\n if (nameSet.has(name))\n return;\n nameSet.set(name, UsedValueState.Started);\n let c = valueCode(name);\n if (c) {\n const def = this.opts.es5 ? exports.varKinds.var : exports.varKinds.const;\n code = (0, code_1._) `${code}${def} ${name} = ${c};${this.opts._n}`;\n }\n else if ((c = getCode === null || getCode === void 0 ? void 0 : getCode(name))) {\n code = (0, code_1._) `${code}${c}${this.opts._n}`;\n }\n else {\n throw new ValueError(name);\n }\n nameSet.set(name, UsedValueState.Completed);\n });\n }\n return code;\n }\n}\nexports.ValueScope = ValueScope;\n//# sourceMappingURL=scope.js.map","'use strict'\n\nconst { HEX } = require('./scopedChars')\n\nconst IPV4_REG = /^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u\n\nfunction normalizeIPv4 (host) {\n if (findToken(host, '.') < 3) { return { host, isIPV4: false } }\n const matches = host.match(IPV4_REG) || []\n const [address] = matches\n if (address) {\n return { host: stripLeadingZeros(address, '.'), isIPV4: true }\n } else {\n return { host, isIPV4: false }\n }\n}\n\n/**\n * @param {string[]} input\n * @param {boolean} [keepZero=false]\n * @returns {string|undefined}\n */\nfunction stringArrayToHexStripped (input, keepZero = false) {\n let acc = ''\n let strip = true\n for (const c of input) {\n if (HEX[c] === undefined) return undefined\n if (c !== '0' && strip === true) strip = false\n if (!strip) acc += c\n }\n if (keepZero && acc.length === 0) acc = '0'\n return acc\n}\n\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n const address = []\n const buffer = []\n let isZone = false\n let endipv6Encountered = false\n let endIpv6 = false\n\n function consume () {\n if (buffer.length) {\n if (isZone === false) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== undefined) {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n }\n buffer.length = 0\n }\n return true\n }\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume()) { break }\n tokenCount++\n address.push(':')\n if (tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i - 1 >= 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n continue\n } else if (cursor === '%') {\n if (!consume()) { break }\n // switch to zone detection\n isZone = true\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (isZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, escapedHost, isIPV6: true }\n } else {\n return { host, isIPV6: false }\n }\n}\n\nfunction stripLeadingZeros (str, token) {\n let out = ''\n let skip = true\n const l = str.length\n for (let i = 0; i < l; i++) {\n const c = str[i]\n if (c === '0' && skip) {\n if ((i + 1 <= l && str[i + 1] === token) || i + 1 === l) {\n out += c\n skip = false\n }\n } else {\n if (c === token) {\n skip = true\n } else {\n skip = false\n }\n out += c\n }\n }\n return out\n}\n\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\nconst RDS1 = /^\\.\\.?\\//u\nconst RDS2 = /^\\/\\.(?:\\/|$)/u\nconst RDS3 = /^\\/\\.\\.(?:\\/|$)/u\nconst RDS5 = /^\\/?(?:.|\\n)*?(?=\\/|$)/u\n\nfunction removeDotSegments (input) {\n const output = []\n\n while (input.length) {\n if (input.match(RDS1)) {\n input = input.replace(RDS1, '')\n } else if (input.match(RDS2)) {\n input = input.replace(RDS2, '/')\n } else if (input.match(RDS3)) {\n input = input.replace(RDS3, '/')\n output.pop()\n } else if (input === '.' || input === '..') {\n input = ''\n } else {\n const im = input.match(RDS5)\n if (im) {\n const s = im[0]\n input = input.slice(s.length)\n output.push(s)\n } else {\n throw new Error('Unexpected dot segment condition')\n }\n }\n }\n return output.join('')\n}\n\nfunction normalizeComponentEncoding (components, esc) {\n const func = esc !== true ? escape : unescape\n if (components.scheme !== undefined) {\n components.scheme = func(components.scheme)\n }\n if (components.userinfo !== undefined) {\n components.userinfo = func(components.userinfo)\n }\n if (components.host !== undefined) {\n components.host = func(components.host)\n }\n if (components.path !== undefined) {\n components.path = func(components.path)\n }\n if (components.query !== undefined) {\n components.query = func(components.query)\n }\n if (components.fragment !== undefined) {\n components.fragment = func(components.fragment)\n }\n return components\n}\n\nfunction recomposeAuthority (components) {\n const uriTokens = []\n\n if (components.userinfo !== undefined) {\n uriTokens.push(components.userinfo)\n uriTokens.push('@')\n }\n\n if (components.host !== undefined) {\n let host = unescape(components.host)\n const ipV4res = normalizeIPv4(host)\n\n if (ipV4res.isIPV4) {\n host = ipV4res.host\n } else {\n const ipV6res = normalizeIPv6(ipV4res.host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = components.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof components.port === 'number' || typeof components.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(components.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n normalizeIPv4,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { splitLines } from '../../../../../base/common/strings.js';\nimport { Range } from '../../../core/range.js';\nimport { TextLength } from '../../../core/textLength.js';\n/**\n * The end must be greater than or equal to the start.\n*/\nexport function lengthDiff(startLineCount, startColumnCount, endLineCount, endColumnCount) {\n return (startLineCount !== endLineCount)\n ? toLength(endLineCount - startLineCount, endColumnCount)\n : toLength(0, endColumnCount - startColumnCount);\n}\nexport const lengthZero = 0;\nexport function lengthIsZero(length) {\n return length === 0;\n}\n/*\n * We have 52 bits available in a JS number.\n * We use the upper 26 bits to store the line and the lower 26 bits to store the column.\n */\n///*\nconst factor = 2 ** 26;\n/*/\nconst factor = 1000000;\n// */\nexport function toLength(lineCount, columnCount) {\n // llllllllllllllllllllllllllcccccccccccccccccccccccccc (52 bits)\n // line count (26 bits) column count (26 bits)\n // If there is no overflow (all values/sums below 2^26 = 67108864),\n // we have `toLength(lns1, cols1) + toLength(lns2, cols2) = toLength(lns1 + lns2, cols1 + cols2)`.\n return (lineCount * factor + columnCount);\n}\nexport function lengthToObj(length) {\n const l = length;\n const lineCount = Math.floor(l / factor);\n const columnCount = l - lineCount * factor;\n return new TextLength(lineCount, columnCount);\n}\nexport function lengthGetLineCount(length) {\n return Math.floor(length / factor);\n}\n/**\n * Returns the amount of columns of the given length, assuming that it does not span any line.\n*/\nexport function lengthGetColumnCountIfZeroLineCount(length) {\n return length;\n}\nexport function lengthAdd(l1, l2) {\n let r = l1 + l2;\n if (l2 >= factor) {\n r = r - (l1 % factor);\n }\n return r;\n}\nexport function sumLengths(items, lengthFn) {\n return items.reduce((a, b) => lengthAdd(a, lengthFn(b)), lengthZero);\n}\nexport function lengthEquals(length1, length2) {\n return length1 === length2;\n}\n/**\n * Returns a non negative length `result` such that `lengthAdd(length1, result) = length2`, or zero if such length does not exist.\n */\nexport function lengthDiffNonNegative(length1, length2) {\n const l1 = length1;\n const l2 = length2;\n const diff = l2 - l1;\n if (diff <= 0) {\n // line-count of length1 is higher than line-count of length2\n // or they are equal and column-count of length1 is higher than column-count of length2\n return lengthZero;\n }\n const lineCount1 = Math.floor(l1 / factor);\n const lineCount2 = Math.floor(l2 / factor);\n const colCount2 = l2 - lineCount2 * factor;\n if (lineCount1 === lineCount2) {\n const colCount1 = l1 - lineCount1 * factor;\n return toLength(0, colCount2 - colCount1);\n }\n else {\n return toLength(lineCount2 - lineCount1, colCount2);\n }\n}\nexport function lengthLessThan(length1, length2) {\n // First, compare line counts, then column counts.\n return length1 < length2;\n}\nexport function lengthLessThanEqual(length1, length2) {\n return length1 <= length2;\n}\nexport function lengthGreaterThanEqual(length1, length2) {\n return length1 >= length2;\n}\nexport function positionToLength(position) {\n return toLength(position.lineNumber - 1, position.column - 1);\n}\nexport function lengthsToRange(lengthStart, lengthEnd) {\n const l = lengthStart;\n const lineCount = Math.floor(l / factor);\n const colCount = l - lineCount * factor;\n const l2 = lengthEnd;\n const lineCount2 = Math.floor(l2 / factor);\n const colCount2 = l2 - lineCount2 * factor;\n return new Range(lineCount + 1, colCount + 1, lineCount2 + 1, colCount2 + 1);\n}\nexport function lengthOfString(str) {\n const lines = splitLines(str);\n return toLength(lines.length - 1, lines[lines.length - 1].length);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: \"must match exactly one schema in oneOf\",\n params: ({ params }) => (0, codegen_1._) `{passingSchemas: ${params.passing}}`,\n};\nconst def = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n if (it.opts.discriminator && parentSchema.discriminator)\n return;\n const schArr = schema;\n const valid = gen.let(\"valid\", false);\n const passing = gen.let(\"passing\", null);\n const schValid = gen.name(\"_valid\");\n cxt.setParams({ passing });\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n gen.block(validateOneOf);\n cxt.result(valid, () => cxt.reset(), () => cxt.error(true));\n function validateOneOf() {\n schArr.forEach((sch, i) => {\n let schCxt;\n if ((0, util_1.alwaysValidSchema)(it, sch)) {\n gen.var(schValid, true);\n }\n else {\n schCxt = cxt.subschema({\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n }, schValid);\n }\n if (i > 0) {\n gen\n .if((0, codegen_1._) `${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, (0, codegen_1._) `[${passing}, ${i}]`)\n .else();\n }\n gen.if(schValid, () => {\n gen.assign(valid, true);\n gen.assign(passing, i);\n if (schCxt)\n cxt.mergeEvaluated(schCxt, codegen_1.Name);\n });\n });\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=oneOf.js.map","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nlet globalObservableLogger;\nexport function setLogger(logger) {\n globalObservableLogger = logger;\n}\nexport function getLogger() {\n return globalObservableLogger;\n}\nexport class ConsoleObservableLogger {\n constructor() {\n this.indentation = 0;\n this.changedObservablesSets = new WeakMap();\n }\n textToConsoleArgs(text) {\n return consoleTextToArgs([\n normalText(repeat('| ', this.indentation)),\n text,\n ]);\n }\n formatInfo(info) {\n if (!info.hadValue) {\n return [\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n normalText(` (initial)`),\n ];\n }\n return info.didChange\n ? [\n normalText(` `),\n styled(formatValue(info.oldValue, 70), {\n color: 'red',\n strikeThrough: true,\n }),\n normalText(` `),\n styled(formatValue(info.newValue, 60), {\n color: 'green',\n }),\n ]\n : [normalText(` (unchanged)`)];\n }\n handleObservableChanged(observable, info) {\n console.log(...this.textToConsoleArgs([\n formatKind('observable value changed'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n ]));\n }\n formatChanges(changes) {\n if (changes.size === 0) {\n return undefined;\n }\n return styled(' (changed deps: ' +\n [...changes].map((o) => o.debugName).join(', ') +\n ')', { color: 'gray' });\n }\n handleDerivedCreated(derived) {\n const existingHandleChange = derived.handleChange;\n this.changedObservablesSets.set(derived, new Set());\n derived.handleChange = (observable, change) => {\n this.changedObservablesSets.get(derived).add(observable);\n return existingHandleChange.apply(derived, [observable, change]);\n };\n }\n handleDerivedRecomputed(derived, info) {\n const changedObservables = this.changedObservablesSets.get(derived);\n console.log(...this.textToConsoleArgs([\n formatKind('derived recomputed'),\n styled(derived.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n this.formatChanges(changedObservables),\n { data: [{ fn: derived._computeFn }] }\n ]));\n changedObservables.clear();\n }\n handleFromEventObservableTriggered(observable, info) {\n console.log(...this.textToConsoleArgs([\n formatKind('observable from event triggered'),\n styled(observable.debugName, { color: 'BlueViolet' }),\n ...this.formatInfo(info),\n { data: [{ fn: observable._getValue }] }\n ]));\n }\n handleAutorunCreated(autorun) {\n const existingHandleChange = autorun.handleChange;\n this.changedObservablesSets.set(autorun, new Set());\n autorun.handleChange = (observable, change) => {\n this.changedObservablesSets.get(autorun).add(observable);\n return existingHandleChange.apply(autorun, [observable, change]);\n };\n }\n handleAutorunTriggered(autorun) {\n const changedObservables = this.changedObservablesSets.get(autorun);\n console.log(...this.textToConsoleArgs([\n formatKind('autorun'),\n styled(autorun.debugName, { color: 'BlueViolet' }),\n this.formatChanges(changedObservables),\n { data: [{ fn: autorun._runFn }] }\n ]));\n changedObservables.clear();\n this.indentation++;\n }\n handleAutorunFinished(autorun) {\n this.indentation--;\n }\n handleBeginTransaction(transaction) {\n let transactionName = transaction.getDebugName();\n if (transactionName === undefined) {\n transactionName = '';\n }\n console.log(...this.textToConsoleArgs([\n formatKind('transaction'),\n styled(transactionName, { color: 'BlueViolet' }),\n { data: [{ fn: transaction._fn }] }\n ]));\n this.indentation++;\n }\n handleEndTransaction() {\n this.indentation--;\n }\n}\nfunction consoleTextToArgs(text) {\n const styles = new Array();\n const data = [];\n let firstArg = '';\n function process(t) {\n if ('length' in t) {\n for (const item of t) {\n if (item) {\n process(item);\n }\n }\n }\n else if ('text' in t) {\n firstArg += `%c${t.text}`;\n styles.push(t.style);\n if (t.data) {\n data.push(...t.data);\n }\n }\n else if ('data' in t) {\n data.push(...t.data);\n }\n }\n process(text);\n const result = [firstArg, ...styles];\n result.push(...data);\n return result;\n}\nfunction normalText(text) {\n return styled(text, { color: 'black' });\n}\nfunction formatKind(kind) {\n return styled(padStr(`${kind}: `, 10), { color: 'black', bold: true });\n}\nfunction styled(text, options = {\n color: 'black',\n}) {\n function objToCss(styleObj) {\n return Object.entries(styleObj).reduce((styleString, [propName, propValue]) => {\n return `${styleString}${propName}:${propValue};`;\n }, '');\n }\n const style = {\n color: options.color,\n };\n if (options.strikeThrough) {\n style['text-decoration'] = 'line-through';\n }\n if (options.bold) {\n style['font-weight'] = 'bold';\n }\n return {\n text,\n style: objToCss(style),\n };\n}\nfunction formatValue(value, availableLen) {\n switch (typeof value) {\n case 'number':\n return '' + value;\n case 'string':\n if (value.length + 2 <= availableLen) {\n return `\"${value}\"`;\n }\n return `\"${value.substr(0, availableLen - 7)}\"+...`;\n case 'boolean':\n return value ? 'true' : 'false';\n case 'undefined':\n return 'undefined';\n case 'object':\n if (value === null) {\n return 'null';\n }\n if (Array.isArray(value)) {\n return formatArray(value, availableLen);\n }\n return formatObject(value, availableLen);\n case 'symbol':\n return value.toString();\n case 'function':\n return `[[Function${value.name ? ' ' + value.name : ''}]]`;\n default:\n return '' + value;\n }\n}\nfunction formatArray(value, availableLen) {\n let result = '[ ';\n let first = true;\n for (const val of value) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${formatValue(val, availableLen - result.length)}`;\n }\n result += ' ]';\n return result;\n}\nfunction formatObject(value, availableLen) {\n let result = '{ ';\n let first = true;\n for (const [key, val] of Object.entries(value)) {\n if (!first) {\n result += ', ';\n }\n if (result.length - 5 > availableLen) {\n result += '...';\n break;\n }\n first = false;\n result += `${key}: ${formatValue(val, availableLen - result.length)}`;\n }\n result += ' }';\n return result;\n}\nfunction repeat(str, count) {\n let result = '';\n for (let i = 1; i <= count; i++) {\n result += str;\n }\n return result;\n}\nfunction padStr(str, length) {\n while (str.length < length) {\n str += ' ';\n }\n return str;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n const v1 = parse(version1, null, true)\n const v2 = parse(version2, null, true)\n const comparison = v1.compare(v2)\n\n if (comparison === 0) {\n return null\n }\n\n const v1Higher = comparison > 0\n const highVersion = v1Higher ? v1 : v2\n const lowVersion = v1Higher ? v2 : v1\n const highHasPre = !!highVersion.prerelease.length\n const lowHasPre = !!lowVersion.prerelease.length\n\n if (lowHasPre && !highHasPre) {\n // Going from prerelease -> no prerelease requires some special casing\n\n // If the low version has only a major, then it will always be a major\n // Some examples:\n // 1.0.0-1 -> 1.0.0\n // 1.0.0-1 -> 1.1.1\n // 1.0.0-1 -> 2.0.0\n if (!lowVersion.patch && !lowVersion.minor) {\n return 'major'\n }\n\n // If the main part has no difference\n if (lowVersion.compareMain(highVersion) === 0) {\n if (lowVersion.minor && !lowVersion.patch) {\n return 'minor'\n }\n return 'patch'\n }\n }\n\n // add the `pre` prefix if we are going to a prerelease version\n const prefix = highHasPre ? 'pre' : ''\n\n if (v1.major !== v2.major) {\n return prefix + 'major'\n }\n\n if (v1.minor !== v2.minor) {\n return prefix + 'minor'\n }\n\n if (v1.patch !== v2.patch) {\n return prefix + 'patch'\n }\n\n // high and low are preleases\n return 'prerelease'\n}\n\nmodule.exports = diff\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HelpQuickAccessProvider_1;\nimport { localize } from '../../../nls.js';\nimport { Registry } from '../../registry/common/platform.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { Extensions } from '../common/quickAccess.js';\nimport { IQuickInputService } from '../common/quickInput.js';\nlet HelpQuickAccessProvider = HelpQuickAccessProvider_1 = class HelpQuickAccessProvider {\n constructor(quickInputService, keybindingService) {\n this.quickInputService = quickInputService;\n this.keybindingService = keybindingService;\n this.registry = Registry.as(Extensions.Quickaccess);\n }\n provide(picker) {\n const disposables = new DisposableStore();\n // Open a picker with the selected value if picked\n disposables.add(picker.onDidAccept(() => {\n const [item] = picker.selectedItems;\n if (item) {\n this.quickInputService.quickAccess.show(item.prefix, { preserveValue: true });\n }\n }));\n // Also open a picker when we detect the user typed the exact\n // name of a provider (e.g. `?term` for terminals)\n disposables.add(picker.onDidChangeValue(value => {\n const providerDescriptor = this.registry.getQuickAccessProvider(value.substr(HelpQuickAccessProvider_1.PREFIX.length));\n if (providerDescriptor && providerDescriptor.prefix && providerDescriptor.prefix !== HelpQuickAccessProvider_1.PREFIX) {\n this.quickInputService.quickAccess.show(providerDescriptor.prefix, { preserveValue: true });\n }\n }));\n // Fill in all providers\n picker.items = this.getQuickAccessProviders().filter(p => p.prefix !== HelpQuickAccessProvider_1.PREFIX);\n return disposables;\n }\n getQuickAccessProviders() {\n const providers = this.registry\n .getQuickAccessProviders()\n .sort((providerA, providerB) => providerA.prefix.localeCompare(providerB.prefix))\n .flatMap(provider => this.createPicks(provider));\n return providers;\n }\n createPicks(provider) {\n return provider.helpEntries.map(helpEntry => {\n const prefix = helpEntry.prefix || provider.prefix;\n const label = prefix || '\\u2026' /* ... */;\n return {\n prefix,\n label,\n keybinding: helpEntry.commandId ? this.keybindingService.lookupKeybinding(helpEntry.commandId) : undefined,\n ariaLabel: localize('helpPickAriaLabel', \"{0}, {1}\", label, helpEntry.description),\n description: helpEntry.description\n };\n });\n }\n};\nHelpQuickAccessProvider.PREFIX = '?';\nHelpQuickAccessProvider = HelpQuickAccessProvider_1 = __decorate([\n __param(0, IQuickInputService),\n __param(1, IKeybindingService)\n], HelpQuickAccessProvider);\nexport { HelpQuickAccessProvider };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { QuickHelpNLS } from '../../../common/standaloneStrings.js';\nimport { HelpQuickAccessProvider } from '../../../../platform/quickinput/browser/helpQuickAccess.js';\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: HelpQuickAccessProvider,\n prefix: '',\n helpEntries: [{ description: QuickHelpNLS.helpQuickAccessActionLabel }]\n});\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","import { hasDriveLetter } from './extpath.js';\nimport { isWindows } from './platform.js';\nexport function normalizeDriveLetter(path, isWindowsOS = isWindows) {\n if (hasDriveLetter(path, isWindowsOS)) {\n return path.charAt(0).toUpperCase() + path.slice(1);\n }\n return path;\n}\nlet normalizedUserHomeCached = Object.create(null);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { normalizeDriveLetter } from '../../../../base/common/labels.js';\nimport * as path from '../../../../base/common/path.js';\nimport { dirname } from '../../../../base/common/resources.js';\nimport { commonPrefixLength, getLeadingWhitespace, isFalsyOrWhitespace, splitLines } from '../../../../base/common/strings.js';\nimport { generateUuid } from '../../../../base/common/uuid.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { Text } from './snippetParser.js';\nimport * as nls from '../../../../nls.js';\nimport { WORKSPACE_EXTENSION, isSingleFolderWorkspaceIdentifier, toWorkspaceIdentifier, isEmptyWorkspaceIdentifier } from '../../../../platform/workspace/common/workspace.js';\nexport const KnownSnippetVariableNames = Object.freeze({\n 'CURRENT_YEAR': true,\n 'CURRENT_YEAR_SHORT': true,\n 'CURRENT_MONTH': true,\n 'CURRENT_DATE': true,\n 'CURRENT_HOUR': true,\n 'CURRENT_MINUTE': true,\n 'CURRENT_SECOND': true,\n 'CURRENT_DAY_NAME': true,\n 'CURRENT_DAY_NAME_SHORT': true,\n 'CURRENT_MONTH_NAME': true,\n 'CURRENT_MONTH_NAME_SHORT': true,\n 'CURRENT_SECONDS_UNIX': true,\n 'CURRENT_TIMEZONE_OFFSET': true,\n 'SELECTION': true,\n 'CLIPBOARD': true,\n 'TM_SELECTED_TEXT': true,\n 'TM_CURRENT_LINE': true,\n 'TM_CURRENT_WORD': true,\n 'TM_LINE_INDEX': true,\n 'TM_LINE_NUMBER': true,\n 'TM_FILENAME': true,\n 'TM_FILENAME_BASE': true,\n 'TM_DIRECTORY': true,\n 'TM_FILEPATH': true,\n 'CURSOR_INDEX': true, // 0-offset\n 'CURSOR_NUMBER': true, // 1-offset\n 'RELATIVE_FILEPATH': true,\n 'BLOCK_COMMENT_START': true,\n 'BLOCK_COMMENT_END': true,\n 'LINE_COMMENT': true,\n 'WORKSPACE_NAME': true,\n 'WORKSPACE_FOLDER': true,\n 'RANDOM': true,\n 'RANDOM_HEX': true,\n 'UUID': true\n});\nexport class CompositeSnippetVariableResolver {\n constructor(_delegates) {\n this._delegates = _delegates;\n //\n }\n resolve(variable) {\n for (const delegate of this._delegates) {\n const value = delegate.resolve(variable);\n if (value !== undefined) {\n return value;\n }\n }\n return undefined;\n }\n}\nexport class SelectionBasedVariableResolver {\n constructor(_model, _selection, _selectionIdx, _overtypingCapturer) {\n this._model = _model;\n this._selection = _selection;\n this._selectionIdx = _selectionIdx;\n this._overtypingCapturer = _overtypingCapturer;\n //\n }\n resolve(variable) {\n const { name } = variable;\n if (name === 'SELECTION' || name === 'TM_SELECTED_TEXT') {\n let value = this._model.getValueInRange(this._selection) || undefined;\n let isMultiline = this._selection.startLineNumber !== this._selection.endLineNumber;\n // If there was no selected text, try to get last overtyped text\n if (!value && this._overtypingCapturer) {\n const info = this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);\n if (info) {\n value = info.value;\n isMultiline = info.multiline;\n }\n }\n if (value && isMultiline && variable.snippet) {\n // Selection is a multiline string which we indentation we now\n // need to adjust. We compare the indentation of this variable\n // with the indentation at the editor position and add potential\n // extra indentation to the value\n const line = this._model.getLineContent(this._selection.startLineNumber);\n const lineLeadingWhitespace = getLeadingWhitespace(line, 0, this._selection.startColumn - 1);\n let varLeadingWhitespace = lineLeadingWhitespace;\n variable.snippet.walk(marker => {\n if (marker === variable) {\n return false;\n }\n if (marker instanceof Text) {\n varLeadingWhitespace = getLeadingWhitespace(splitLines(marker.value).pop());\n }\n return true;\n });\n const whitespaceCommonLength = commonPrefixLength(varLeadingWhitespace, lineLeadingWhitespace);\n value = value.replace(/(\\r\\n|\\r|\\n)(.*)/g, (m, newline, rest) => `${newline}${varLeadingWhitespace.substr(whitespaceCommonLength)}${rest}`);\n }\n return value;\n }\n else if (name === 'TM_CURRENT_LINE') {\n return this._model.getLineContent(this._selection.positionLineNumber);\n }\n else if (name === 'TM_CURRENT_WORD') {\n const info = this._model.getWordAtPosition({\n lineNumber: this._selection.positionLineNumber,\n column: this._selection.positionColumn\n });\n return info && info.word || undefined;\n }\n else if (name === 'TM_LINE_INDEX') {\n return String(this._selection.positionLineNumber - 1);\n }\n else if (name === 'TM_LINE_NUMBER') {\n return String(this._selection.positionLineNumber);\n }\n else if (name === 'CURSOR_INDEX') {\n return String(this._selectionIdx);\n }\n else if (name === 'CURSOR_NUMBER') {\n return String(this._selectionIdx + 1);\n }\n return undefined;\n }\n}\nexport class ModelBasedVariableResolver {\n constructor(_labelService, _model) {\n this._labelService = _labelService;\n this._model = _model;\n //\n }\n resolve(variable) {\n const { name } = variable;\n if (name === 'TM_FILENAME') {\n return path.basename(this._model.uri.fsPath);\n }\n else if (name === 'TM_FILENAME_BASE') {\n const name = path.basename(this._model.uri.fsPath);\n const idx = name.lastIndexOf('.');\n if (idx <= 0) {\n return name;\n }\n else {\n return name.slice(0, idx);\n }\n }\n else if (name === 'TM_DIRECTORY') {\n if (path.dirname(this._model.uri.fsPath) === '.') {\n return '';\n }\n return this._labelService.getUriLabel(dirname(this._model.uri));\n }\n else if (name === 'TM_FILEPATH') {\n return this._labelService.getUriLabel(this._model.uri);\n }\n else if (name === 'RELATIVE_FILEPATH') {\n return this._labelService.getUriLabel(this._model.uri, { relative: true, noPrefix: true });\n }\n return undefined;\n }\n}\nexport class ClipboardBasedVariableResolver {\n constructor(_readClipboardText, _selectionIdx, _selectionCount, _spread) {\n this._readClipboardText = _readClipboardText;\n this._selectionIdx = _selectionIdx;\n this._selectionCount = _selectionCount;\n this._spread = _spread;\n //\n }\n resolve(variable) {\n if (variable.name !== 'CLIPBOARD') {\n return undefined;\n }\n const clipboardText = this._readClipboardText();\n if (!clipboardText) {\n return undefined;\n }\n // `spread` is assigning each cursor a line of the clipboard\n // text whenever there the line count equals the cursor count\n // and when enabled\n if (this._spread) {\n const lines = clipboardText.split(/\\r\\n|\\n|\\r/).filter(s => !isFalsyOrWhitespace(s));\n if (lines.length === this._selectionCount) {\n return lines[this._selectionIdx];\n }\n }\n return clipboardText;\n }\n}\nlet CommentBasedVariableResolver = class CommentBasedVariableResolver {\n constructor(_model, _selection, _languageConfigurationService) {\n this._model = _model;\n this._selection = _selection;\n this._languageConfigurationService = _languageConfigurationService;\n //\n }\n resolve(variable) {\n const { name } = variable;\n const langId = this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber, this._selection.selectionStartColumn);\n const config = this._languageConfigurationService.getLanguageConfiguration(langId).comments;\n if (!config) {\n return undefined;\n }\n if (name === 'LINE_COMMENT') {\n return config.lineCommentToken || undefined;\n }\n else if (name === 'BLOCK_COMMENT_START') {\n return config.blockCommentStartToken || undefined;\n }\n else if (name === 'BLOCK_COMMENT_END') {\n return config.blockCommentEndToken || undefined;\n }\n return undefined;\n }\n};\nCommentBasedVariableResolver = __decorate([\n __param(2, ILanguageConfigurationService)\n], CommentBasedVariableResolver);\nexport { CommentBasedVariableResolver };\nexport class TimeBasedVariableResolver {\n constructor() {\n this._date = new Date();\n }\n resolve(variable) {\n const { name } = variable;\n if (name === 'CURRENT_YEAR') {\n return String(this._date.getFullYear());\n }\n else if (name === 'CURRENT_YEAR_SHORT') {\n return String(this._date.getFullYear()).slice(-2);\n }\n else if (name === 'CURRENT_MONTH') {\n return String(this._date.getMonth().valueOf() + 1).padStart(2, '0');\n }\n else if (name === 'CURRENT_DATE') {\n return String(this._date.getDate().valueOf()).padStart(2, '0');\n }\n else if (name === 'CURRENT_HOUR') {\n return String(this._date.getHours().valueOf()).padStart(2, '0');\n }\n else if (name === 'CURRENT_MINUTE') {\n return String(this._date.getMinutes().valueOf()).padStart(2, '0');\n }\n else if (name === 'CURRENT_SECOND') {\n return String(this._date.getSeconds().valueOf()).padStart(2, '0');\n }\n else if (name === 'CURRENT_DAY_NAME') {\n return TimeBasedVariableResolver.dayNames[this._date.getDay()];\n }\n else if (name === 'CURRENT_DAY_NAME_SHORT') {\n return TimeBasedVariableResolver.dayNamesShort[this._date.getDay()];\n }\n else if (name === 'CURRENT_MONTH_NAME') {\n return TimeBasedVariableResolver.monthNames[this._date.getMonth()];\n }\n else if (name === 'CURRENT_MONTH_NAME_SHORT') {\n return TimeBasedVariableResolver.monthNamesShort[this._date.getMonth()];\n }\n else if (name === 'CURRENT_SECONDS_UNIX') {\n return String(Math.floor(this._date.getTime() / 1000));\n }\n else if (name === 'CURRENT_TIMEZONE_OFFSET') {\n const rawTimeOffset = this._date.getTimezoneOffset();\n const sign = rawTimeOffset > 0 ? '-' : '+';\n const hours = Math.trunc(Math.abs(rawTimeOffset / 60));\n const hoursString = (hours < 10 ? '0' + hours : hours);\n const minutes = Math.abs(rawTimeOffset) - hours * 60;\n const minutesString = (minutes < 10 ? '0' + minutes : minutes);\n return sign + hoursString + ':' + minutesString;\n }\n return undefined;\n }\n}\nTimeBasedVariableResolver.dayNames = [nls.localize('Sunday', \"Sunday\"), nls.localize('Monday', \"Monday\"), nls.localize('Tuesday', \"Tuesday\"), nls.localize('Wednesday', \"Wednesday\"), nls.localize('Thursday', \"Thursday\"), nls.localize('Friday', \"Friday\"), nls.localize('Saturday', \"Saturday\")];\nTimeBasedVariableResolver.dayNamesShort = [nls.localize('SundayShort', \"Sun\"), nls.localize('MondayShort', \"Mon\"), nls.localize('TuesdayShort', \"Tue\"), nls.localize('WednesdayShort', \"Wed\"), nls.localize('ThursdayShort', \"Thu\"), nls.localize('FridayShort', \"Fri\"), nls.localize('SaturdayShort', \"Sat\")];\nTimeBasedVariableResolver.monthNames = [nls.localize('January', \"January\"), nls.localize('February', \"February\"), nls.localize('March', \"March\"), nls.localize('April', \"April\"), nls.localize('May', \"May\"), nls.localize('June', \"June\"), nls.localize('July', \"July\"), nls.localize('August', \"August\"), nls.localize('September', \"September\"), nls.localize('October', \"October\"), nls.localize('November', \"November\"), nls.localize('December', \"December\")];\nTimeBasedVariableResolver.monthNamesShort = [nls.localize('JanuaryShort', \"Jan\"), nls.localize('FebruaryShort', \"Feb\"), nls.localize('MarchShort', \"Mar\"), nls.localize('AprilShort', \"Apr\"), nls.localize('MayShort', \"May\"), nls.localize('JuneShort', \"Jun\"), nls.localize('JulyShort', \"Jul\"), nls.localize('AugustShort', \"Aug\"), nls.localize('SeptemberShort', \"Sep\"), nls.localize('OctoberShort', \"Oct\"), nls.localize('NovemberShort', \"Nov\"), nls.localize('DecemberShort', \"Dec\")];\nexport class WorkspaceBasedVariableResolver {\n constructor(_workspaceService) {\n this._workspaceService = _workspaceService;\n //\n }\n resolve(variable) {\n if (!this._workspaceService) {\n return undefined;\n }\n const workspaceIdentifier = toWorkspaceIdentifier(this._workspaceService.getWorkspace());\n if (isEmptyWorkspaceIdentifier(workspaceIdentifier)) {\n return undefined;\n }\n if (variable.name === 'WORKSPACE_NAME') {\n return this._resolveWorkspaceName(workspaceIdentifier);\n }\n else if (variable.name === 'WORKSPACE_FOLDER') {\n return this._resoveWorkspacePath(workspaceIdentifier);\n }\n return undefined;\n }\n _resolveWorkspaceName(workspaceIdentifier) {\n if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n return path.basename(workspaceIdentifier.uri.path);\n }\n let filename = path.basename(workspaceIdentifier.configPath.path);\n if (filename.endsWith(WORKSPACE_EXTENSION)) {\n filename = filename.substr(0, filename.length - WORKSPACE_EXTENSION.length - 1);\n }\n return filename;\n }\n _resoveWorkspacePath(workspaceIdentifier) {\n if (isSingleFolderWorkspaceIdentifier(workspaceIdentifier)) {\n return normalizeDriveLetter(workspaceIdentifier.uri.fsPath);\n }\n const filename = path.basename(workspaceIdentifier.configPath.path);\n let folderpath = workspaceIdentifier.configPath.fsPath;\n if (folderpath.endsWith(filename)) {\n folderpath = folderpath.substr(0, folderpath.length - filename.length - 1);\n }\n return (folderpath ? normalizeDriveLetter(folderpath) : '/');\n }\n}\nexport class RandomBasedVariableResolver {\n resolve(variable) {\n const { name } = variable;\n if (name === 'RANDOM') {\n return Math.random().toString().slice(-6);\n }\n else if (name === 'RANDOM_HEX') {\n return Math.random().toString(16).slice(-6);\n }\n else if (name === 'UUID') {\n return generateUuid();\n }\n return undefined;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SnippetSession_1;\nimport { groupBy } from '../../../../base/common/arrays.js';\nimport { dispose } from '../../../../base/common/lifecycle.js';\nimport { getLeadingWhitespace } from '../../../../base/common/strings.js';\nimport './snippetSession.css';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { ILabelService } from '../../../../platform/label/common/label.js';\nimport { IWorkspaceContextService } from '../../../../platform/workspace/common/workspace.js';\nimport { Choice, Placeholder, SnippetParser, Text, TextmateSnippet } from './snippetParser.js';\nimport { ClipboardBasedVariableResolver, CommentBasedVariableResolver, CompositeSnippetVariableResolver, ModelBasedVariableResolver, RandomBasedVariableResolver, SelectionBasedVariableResolver, TimeBasedVariableResolver, WorkspaceBasedVariableResolver } from './snippetVariables.js';\nexport class OneSnippet {\n constructor(_editor, _snippet, _snippetLineLeadingWhitespace) {\n this._editor = _editor;\n this._snippet = _snippet;\n this._snippetLineLeadingWhitespace = _snippetLineLeadingWhitespace;\n this._offset = -1;\n this._nestingLevel = 1;\n this._placeholderGroups = groupBy(_snippet.placeholders, Placeholder.compareByIndex);\n this._placeholderGroupsIdx = -1;\n }\n initialize(textChange) {\n this._offset = textChange.newPosition;\n }\n dispose() {\n if (this._placeholderDecorations) {\n this._editor.removeDecorations([...this._placeholderDecorations.values()]);\n }\n this._placeholderGroups.length = 0;\n }\n _initDecorations() {\n if (this._offset === -1) {\n throw new Error(`Snippet not initialized!`);\n }\n if (this._placeholderDecorations) {\n // already initialized\n return;\n }\n this._placeholderDecorations = new Map();\n const model = this._editor.getModel();\n this._editor.changeDecorations(accessor => {\n // create a decoration for each placeholder\n for (const placeholder of this._snippet.placeholders) {\n const placeholderOffset = this._snippet.offset(placeholder);\n const placeholderLen = this._snippet.fullLen(placeholder);\n const range = Range.fromPositions(model.getPositionAt(this._offset + placeholderOffset), model.getPositionAt(this._offset + placeholderOffset + placeholderLen));\n const options = placeholder.isFinalTabstop ? OneSnippet._decor.inactiveFinal : OneSnippet._decor.inactive;\n const handle = accessor.addDecoration(range, options);\n this._placeholderDecorations.set(placeholder, handle);\n }\n });\n }\n move(fwd) {\n if (!this._editor.hasModel()) {\n return [];\n }\n this._initDecorations();\n // Transform placeholder text if necessary\n if (this._placeholderGroupsIdx >= 0) {\n const operations = [];\n for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n // Check if the placeholder has a transformation\n if (placeholder.transform) {\n const id = this._placeholderDecorations.get(placeholder);\n const range = this._editor.getModel().getDecorationRange(id);\n const currentValue = this._editor.getModel().getValueInRange(range);\n const transformedValueLines = placeholder.transform.resolve(currentValue).split(/\\r\\n|\\r|\\n/);\n // fix indentation for transformed lines\n for (let i = 1; i < transformedValueLines.length; i++) {\n transformedValueLines[i] = this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace + transformedValueLines[i]);\n }\n operations.push(EditOperation.replace(range, transformedValueLines.join(this._editor.getModel().getEOL())));\n }\n }\n if (operations.length > 0) {\n this._editor.executeEdits('snippet.placeholderTransform', operations);\n }\n }\n let couldSkipThisPlaceholder = false;\n if (fwd === true && this._placeholderGroupsIdx < this._placeholderGroups.length - 1) {\n this._placeholderGroupsIdx += 1;\n couldSkipThisPlaceholder = true;\n }\n else if (fwd === false && this._placeholderGroupsIdx > 0) {\n this._placeholderGroupsIdx -= 1;\n couldSkipThisPlaceholder = true;\n }\n else {\n // the selection of the current placeholder might\n // not acurate any more -> simply restore it\n }\n const newSelections = this._editor.getModel().changeDecorations(accessor => {\n const activePlaceholders = new Set();\n // change stickiness to always grow when typing at its edges\n // because these decorations represent the currently active\n // tabstop.\n // Special case #1: reaching the final tabstop\n // Special case #2: placeholders enclosing active placeholders\n const selections = [];\n for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n const id = this._placeholderDecorations.get(placeholder);\n const range = this._editor.getModel().getDecorationRange(id);\n selections.push(new Selection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn));\n // consider to skip this placeholder index when the decoration\n // range is empty but when the placeholder wasn't. that's a strong\n // hint that the placeholder has been deleted. (all placeholder must match this)\n couldSkipThisPlaceholder = couldSkipThisPlaceholder && this._hasPlaceholderBeenCollapsed(placeholder);\n accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? OneSnippet._decor.activeFinal : OneSnippet._decor.active);\n activePlaceholders.add(placeholder);\n for (const enclosingPlaceholder of this._snippet.enclosingPlaceholders(placeholder)) {\n const id = this._placeholderDecorations.get(enclosingPlaceholder);\n accessor.changeDecorationOptions(id, enclosingPlaceholder.isFinalTabstop ? OneSnippet._decor.activeFinal : OneSnippet._decor.active);\n activePlaceholders.add(enclosingPlaceholder);\n }\n }\n // change stickness to never grow when typing at its edges\n // so that in-active tabstops never grow\n for (const [placeholder, id] of this._placeholderDecorations) {\n if (!activePlaceholders.has(placeholder)) {\n accessor.changeDecorationOptions(id, placeholder.isFinalTabstop ? OneSnippet._decor.inactiveFinal : OneSnippet._decor.inactive);\n }\n }\n return selections;\n });\n return !couldSkipThisPlaceholder ? newSelections !== null && newSelections !== void 0 ? newSelections : [] : this.move(fwd);\n }\n _hasPlaceholderBeenCollapsed(placeholder) {\n // A placeholder is empty when it wasn't empty when authored but\n // when its tracking decoration is empty. This also applies to all\n // potential parent placeholders\n let marker = placeholder;\n while (marker) {\n if (marker instanceof Placeholder) {\n const id = this._placeholderDecorations.get(marker);\n const range = this._editor.getModel().getDecorationRange(id);\n if (range.isEmpty() && marker.toString().length > 0) {\n return true;\n }\n }\n marker = marker.parent;\n }\n return false;\n }\n get isAtFirstPlaceholder() {\n return this._placeholderGroupsIdx <= 0 || this._placeholderGroups.length === 0;\n }\n get isAtLastPlaceholder() {\n return this._placeholderGroupsIdx === this._placeholderGroups.length - 1;\n }\n get hasPlaceholder() {\n return this._snippet.placeholders.length > 0;\n }\n /**\n * A snippet is trivial when it has no placeholder or only a final placeholder at\n * its very end\n */\n get isTrivialSnippet() {\n if (this._snippet.placeholders.length === 0) {\n return true;\n }\n if (this._snippet.placeholders.length === 1) {\n const [placeholder] = this._snippet.placeholders;\n if (placeholder.isFinalTabstop) {\n if (this._snippet.rightMostDescendant === placeholder) {\n return true;\n }\n }\n }\n return false;\n }\n computePossibleSelections() {\n const result = new Map();\n for (const placeholdersWithEqualIndex of this._placeholderGroups) {\n let ranges;\n for (const placeholder of placeholdersWithEqualIndex) {\n if (placeholder.isFinalTabstop) {\n // ignore those\n break;\n }\n if (!ranges) {\n ranges = [];\n result.set(placeholder.index, ranges);\n }\n const id = this._placeholderDecorations.get(placeholder);\n const range = this._editor.getModel().getDecorationRange(id);\n if (!range) {\n // one of the placeholder lost its decoration and\n // therefore we bail out and pretend the placeholder\n // (with its mirrors) doesn't exist anymore.\n result.delete(placeholder.index);\n break;\n }\n ranges.push(range);\n }\n }\n return result;\n }\n get activeChoice() {\n if (!this._placeholderDecorations) {\n return undefined;\n }\n const placeholder = this._placeholderGroups[this._placeholderGroupsIdx][0];\n if (!(placeholder === null || placeholder === void 0 ? void 0 : placeholder.choice)) {\n return undefined;\n }\n const id = this._placeholderDecorations.get(placeholder);\n if (!id) {\n return undefined;\n }\n const range = this._editor.getModel().getDecorationRange(id);\n if (!range) {\n return undefined;\n }\n return { range, choice: placeholder.choice };\n }\n get hasChoice() {\n let result = false;\n this._snippet.walk(marker => {\n result = marker instanceof Choice;\n return !result;\n });\n return result;\n }\n merge(others) {\n const model = this._editor.getModel();\n this._nestingLevel *= 10;\n this._editor.changeDecorations(accessor => {\n // For each active placeholder take one snippet and merge it\n // in that the placeholder (can be many for `$1foo$1foo`). Because\n // everything is sorted by editor selection we can simply remove\n // elements from the beginning of the array\n for (const placeholder of this._placeholderGroups[this._placeholderGroupsIdx]) {\n const nested = others.shift();\n console.assert(nested._offset !== -1);\n console.assert(!nested._placeholderDecorations);\n // Massage placeholder-indicies of the nested snippet to be\n // sorted right after the insertion point. This ensures we move\n // through the placeholders in the correct order\n const indexLastPlaceholder = nested._snippet.placeholderInfo.last.index;\n for (const nestedPlaceholder of nested._snippet.placeholderInfo.all) {\n if (nestedPlaceholder.isFinalTabstop) {\n nestedPlaceholder.index = placeholder.index + ((indexLastPlaceholder + 1) / this._nestingLevel);\n }\n else {\n nestedPlaceholder.index = placeholder.index + (nestedPlaceholder.index / this._nestingLevel);\n }\n }\n this._snippet.replace(placeholder, nested._snippet.children);\n // Remove the placeholder at which position are inserting\n // the snippet and also remove its decoration.\n const id = this._placeholderDecorations.get(placeholder);\n accessor.removeDecoration(id);\n this._placeholderDecorations.delete(placeholder);\n // For each *new* placeholder we create decoration to monitor\n // how and if it grows/shrinks.\n for (const placeholder of nested._snippet.placeholders) {\n const placeholderOffset = nested._snippet.offset(placeholder);\n const placeholderLen = nested._snippet.fullLen(placeholder);\n const range = Range.fromPositions(model.getPositionAt(nested._offset + placeholderOffset), model.getPositionAt(nested._offset + placeholderOffset + placeholderLen));\n const handle = accessor.addDecoration(range, OneSnippet._decor.inactive);\n this._placeholderDecorations.set(placeholder, handle);\n }\n }\n // Last, re-create the placeholder groups by sorting placeholders by their index.\n this._placeholderGroups = groupBy(this._snippet.placeholders, Placeholder.compareByIndex);\n });\n }\n}\nOneSnippet._decor = {\n active: ModelDecorationOptions.register({ description: 'snippet-placeholder-1', stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */, className: 'snippet-placeholder' }),\n inactive: ModelDecorationOptions.register({ description: 'snippet-placeholder-2', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'snippet-placeholder' }),\n activeFinal: ModelDecorationOptions.register({ description: 'snippet-placeholder-3', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'finish-snippet-placeholder' }),\n inactiveFinal: ModelDecorationOptions.register({ description: 'snippet-placeholder-4', stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */, className: 'finish-snippet-placeholder' }),\n};\nconst _defaultOptions = {\n overwriteBefore: 0,\n overwriteAfter: 0,\n adjustWhitespace: true,\n clipboardText: undefined,\n overtypingCapturer: undefined\n};\nlet SnippetSession = SnippetSession_1 = class SnippetSession {\n static adjustWhitespace(model, position, adjustIndentation, snippet, filter) {\n const line = model.getLineContent(position.lineNumber);\n const lineLeadingWhitespace = getLeadingWhitespace(line, 0, position.column - 1);\n // the snippet as inserted\n let snippetTextString;\n snippet.walk(marker => {\n // all text elements that are not inside choice\n if (!(marker instanceof Text) || marker.parent instanceof Choice) {\n return true;\n }\n // check with filter (iff provided)\n if (filter && !filter.has(marker)) {\n return true;\n }\n const lines = marker.value.split(/\\r\\n|\\r|\\n/);\n if (adjustIndentation) {\n // adjust indentation of snippet test\n // -the snippet-start doesn't get extra-indented (lineLeadingWhitespace), only normalized\n // -all N+1 lines get extra-indented and normalized\n // -the text start get extra-indented and normalized when following a linebreak\n const offset = snippet.offset(marker);\n if (offset === 0) {\n // snippet start\n lines[0] = model.normalizeIndentation(lines[0]);\n }\n else {\n // check if text start is after a linebreak\n snippetTextString = snippetTextString !== null && snippetTextString !== void 0 ? snippetTextString : snippet.toString();\n const prevChar = snippetTextString.charCodeAt(offset - 1);\n if (prevChar === 10 /* CharCode.LineFeed */ || prevChar === 13 /* CharCode.CarriageReturn */) {\n lines[0] = model.normalizeIndentation(lineLeadingWhitespace + lines[0]);\n }\n }\n for (let i = 1; i < lines.length; i++) {\n lines[i] = model.normalizeIndentation(lineLeadingWhitespace + lines[i]);\n }\n }\n const newValue = lines.join(model.getEOL());\n if (newValue !== marker.value) {\n marker.parent.replace(marker, [new Text(newValue)]);\n snippetTextString = undefined;\n }\n return true;\n });\n return lineLeadingWhitespace;\n }\n static adjustSelection(model, selection, overwriteBefore, overwriteAfter) {\n if (overwriteBefore !== 0 || overwriteAfter !== 0) {\n // overwrite[Before|After] is compute using the position, not the whole\n // selection. therefore we adjust the selection around that position\n const { positionLineNumber, positionColumn } = selection;\n const positionColumnBefore = positionColumn - overwriteBefore;\n const positionColumnAfter = positionColumn + overwriteAfter;\n const range = model.validateRange({\n startLineNumber: positionLineNumber,\n startColumn: positionColumnBefore,\n endLineNumber: positionLineNumber,\n endColumn: positionColumnAfter\n });\n selection = Selection.createWithDirection(range.startLineNumber, range.startColumn, range.endLineNumber, range.endColumn, selection.getDirection());\n }\n return selection;\n }\n static createEditsAndSnippetsFromSelections(editor, template, overwriteBefore, overwriteAfter, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n const edits = [];\n const snippets = [];\n if (!editor.hasModel()) {\n return { edits, snippets };\n }\n const model = editor.getModel();\n const workspaceService = editor.invokeWithinContext(accessor => accessor.get(IWorkspaceContextService));\n const modelBasedVariableResolver = editor.invokeWithinContext(accessor => new ModelBasedVariableResolver(accessor.get(ILabelService), model));\n const readClipboardText = () => clipboardText;\n // know what text the overwrite[Before|After] extensions\n // of the primary curser have selected because only when\n // secondary selections extend to the same text we can grow them\n const firstBeforeText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor.getSelection(), overwriteBefore, 0));\n const firstAfterText = model.getValueInRange(SnippetSession_1.adjustSelection(model, editor.getSelection(), 0, overwriteAfter));\n // remember the first non-whitespace column to decide if\n // `keepWhitespace` should be overruled for secondary selections\n const firstLineFirstNonWhitespace = model.getLineFirstNonWhitespaceColumn(editor.getSelection().positionLineNumber);\n // sort selections by their start position but remeber\n // the original index. that allows you to create correct\n // offset-based selection logic without changing the\n // primary selection\n const indexedSelections = editor.getSelections()\n .map((selection, idx) => ({ selection, idx }))\n .sort((a, b) => Range.compareRangesUsingStarts(a.selection, b.selection));\n for (const { selection, idx } of indexedSelections) {\n // extend selection with the `overwriteBefore` and `overwriteAfter` and then\n // compare if this matches the extensions of the primary selection\n let extensionBefore = SnippetSession_1.adjustSelection(model, selection, overwriteBefore, 0);\n let extensionAfter = SnippetSession_1.adjustSelection(model, selection, 0, overwriteAfter);\n if (firstBeforeText !== model.getValueInRange(extensionBefore)) {\n extensionBefore = selection;\n }\n if (firstAfterText !== model.getValueInRange(extensionAfter)) {\n extensionAfter = selection;\n }\n // merge the before and after selection into one\n const snippetSelection = selection\n .setStartPosition(extensionBefore.startLineNumber, extensionBefore.startColumn)\n .setEndPosition(extensionAfter.endLineNumber, extensionAfter.endColumn);\n const snippet = new SnippetParser().parse(template, true, enforceFinalTabstop);\n // adjust the template string to match the indentation and\n // whitespace rules of this insert location (can be different for each cursor)\n // happens when being asked for (default) or when this is a secondary\n // cursor and the leading whitespace is different\n const start = snippetSelection.getStartPosition();\n const snippetLineLeadingWhitespace = SnippetSession_1.adjustWhitespace(model, start, adjustWhitespace || (idx > 0 && firstLineFirstNonWhitespace !== model.getLineFirstNonWhitespaceColumn(selection.positionLineNumber)), snippet);\n snippet.resolveVariables(new CompositeSnippetVariableResolver([\n modelBasedVariableResolver,\n new ClipboardBasedVariableResolver(readClipboardText, idx, indexedSelections.length, editor.getOption(79 /* EditorOption.multiCursorPaste */) === 'spread'),\n new SelectionBasedVariableResolver(model, selection, idx, overtypingCapturer),\n new CommentBasedVariableResolver(model, selection, languageConfigurationService),\n new TimeBasedVariableResolver,\n new WorkspaceBasedVariableResolver(workspaceService),\n new RandomBasedVariableResolver,\n ]));\n // store snippets with the index of their originating selection.\n // that ensures the primiary cursor stays primary despite not being\n // the one with lowest start position\n edits[idx] = EditOperation.replace(snippetSelection, snippet.toString());\n edits[idx].identifier = { major: idx, minor: 0 }; // mark the edit so only our undo edits will be used to generate end cursors\n edits[idx]._isTracked = true;\n snippets[idx] = new OneSnippet(editor, snippet, snippetLineLeadingWhitespace);\n }\n return { edits, snippets };\n }\n static createEditsAndSnippetsFromEdits(editor, snippetEdits, enforceFinalTabstop, adjustWhitespace, clipboardText, overtypingCapturer, languageConfigurationService) {\n if (!editor.hasModel() || snippetEdits.length === 0) {\n return { edits: [], snippets: [] };\n }\n const edits = [];\n const model = editor.getModel();\n const parser = new SnippetParser();\n const snippet = new TextmateSnippet();\n // snippet variables resolver\n const resolver = new CompositeSnippetVariableResolver([\n editor.invokeWithinContext(accessor => new ModelBasedVariableResolver(accessor.get(ILabelService), model)),\n new ClipboardBasedVariableResolver(() => clipboardText, 0, editor.getSelections().length, editor.getOption(79 /* EditorOption.multiCursorPaste */) === 'spread'),\n new SelectionBasedVariableResolver(model, editor.getSelection(), 0, overtypingCapturer),\n new CommentBasedVariableResolver(model, editor.getSelection(), languageConfigurationService),\n new TimeBasedVariableResolver,\n new WorkspaceBasedVariableResolver(editor.invokeWithinContext(accessor => accessor.get(IWorkspaceContextService))),\n new RandomBasedVariableResolver,\n ]);\n //\n snippetEdits = snippetEdits.sort((a, b) => Range.compareRangesUsingStarts(a.range, b.range));\n let offset = 0;\n for (let i = 0; i < snippetEdits.length; i++) {\n const { range, template } = snippetEdits[i];\n // gaps between snippet edits are appended as text nodes. this\n // ensures placeholder-offsets are later correct\n if (i > 0) {\n const lastRange = snippetEdits[i - 1].range;\n const textRange = Range.fromPositions(lastRange.getEndPosition(), range.getStartPosition());\n const textNode = new Text(model.getValueInRange(textRange));\n snippet.appendChild(textNode);\n offset += textNode.value.length;\n }\n const newNodes = parser.parseFragment(template, snippet);\n SnippetSession_1.adjustWhitespace(model, range.getStartPosition(), true, snippet, new Set(newNodes));\n snippet.resolveVariables(resolver);\n const snippetText = snippet.toString();\n const snippetFragmentText = snippetText.slice(offset);\n offset = snippetText.length;\n // make edit\n const edit = EditOperation.replace(range, snippetFragmentText);\n edit.identifier = { major: i, minor: 0 }; // mark the edit so only our undo edits will be used to generate end cursors\n edit._isTracked = true;\n edits.push(edit);\n }\n //\n parser.ensureFinalTabstop(snippet, enforceFinalTabstop, true);\n return {\n edits,\n snippets: [new OneSnippet(editor, snippet, '')]\n };\n }\n constructor(_editor, _template, _options = _defaultOptions, _languageConfigurationService) {\n this._editor = _editor;\n this._template = _template;\n this._options = _options;\n this._languageConfigurationService = _languageConfigurationService;\n this._templateMerges = [];\n this._snippets = [];\n }\n dispose() {\n dispose(this._snippets);\n }\n _logInfo() {\n return `template=\"${this._template}\", merged_templates=\"${this._templateMerges.join(' -> ')}\"`;\n }\n insert() {\n if (!this._editor.hasModel()) {\n return;\n }\n // make insert edit and start with first selections\n const { edits, snippets } = typeof this._template === 'string'\n ? SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, this._template, this._options.overwriteBefore, this._options.overwriteAfter, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService)\n : SnippetSession_1.createEditsAndSnippetsFromEdits(this._editor, this._template, false, this._options.adjustWhitespace, this._options.clipboardText, this._options.overtypingCapturer, this._languageConfigurationService);\n this._snippets = snippets;\n this._editor.executeEdits('snippet', edits, _undoEdits => {\n // Sometimes, the text buffer will remove automatic whitespace when doing any edits,\n // so we need to look only at the undo edits relevant for us.\n // Our edits have an identifier set so that's how we can distinguish them\n const undoEdits = _undoEdits.filter(edit => !!edit.identifier);\n for (let idx = 0; idx < snippets.length; idx++) {\n snippets[idx].initialize(undoEdits[idx].textChange);\n }\n if (this._snippets[0].hasPlaceholder) {\n return this._move(true);\n }\n else {\n return undoEdits\n .map(edit => Selection.fromPositions(edit.range.getEndPosition()));\n }\n });\n this._editor.revealRange(this._editor.getSelections()[0]);\n }\n merge(template, options = _defaultOptions) {\n if (!this._editor.hasModel()) {\n return;\n }\n this._templateMerges.push([this._snippets[0]._nestingLevel, this._snippets[0]._placeholderGroupsIdx, template]);\n const { edits, snippets } = SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor, template, options.overwriteBefore, options.overwriteAfter, true, options.adjustWhitespace, options.clipboardText, options.overtypingCapturer, this._languageConfigurationService);\n this._editor.executeEdits('snippet', edits, _undoEdits => {\n // Sometimes, the text buffer will remove automatic whitespace when doing any edits,\n // so we need to look only at the undo edits relevant for us.\n // Our edits have an identifier set so that's how we can distinguish them\n const undoEdits = _undoEdits.filter(edit => !!edit.identifier);\n for (let idx = 0; idx < snippets.length; idx++) {\n snippets[idx].initialize(undoEdits[idx].textChange);\n }\n // Trivial snippets have no placeholder or are just the final placeholder. That means they\n // are just text insertions and we don't need to merge the nested snippet into the existing\n // snippet\n const isTrivialSnippet = snippets[0].isTrivialSnippet;\n if (!isTrivialSnippet) {\n for (const snippet of this._snippets) {\n snippet.merge(snippets);\n }\n console.assert(snippets.length === 0);\n }\n if (this._snippets[0].hasPlaceholder && !isTrivialSnippet) {\n return this._move(undefined);\n }\n else {\n return undoEdits.map(edit => Selection.fromPositions(edit.range.getEndPosition()));\n }\n });\n }\n next() {\n const newSelections = this._move(true);\n this._editor.setSelections(newSelections);\n this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n }\n prev() {\n const newSelections = this._move(false);\n this._editor.setSelections(newSelections);\n this._editor.revealPositionInCenterIfOutsideViewport(newSelections[0].getPosition());\n }\n _move(fwd) {\n const selections = [];\n for (const snippet of this._snippets) {\n const oneSelection = snippet.move(fwd);\n selections.push(...oneSelection);\n }\n return selections;\n }\n get isAtFirstPlaceholder() {\n return this._snippets[0].isAtFirstPlaceholder;\n }\n get isAtLastPlaceholder() {\n return this._snippets[0].isAtLastPlaceholder;\n }\n get hasPlaceholder() {\n return this._snippets[0].hasPlaceholder;\n }\n get hasChoice() {\n return this._snippets[0].hasChoice;\n }\n get activeChoice() {\n return this._snippets[0].activeChoice;\n }\n isSelectionWithinPlaceholders() {\n if (!this.hasPlaceholder) {\n return false;\n }\n const selections = this._editor.getSelections();\n if (selections.length < this._snippets.length) {\n // this means we started snippet mode with N\n // selections and have M (N > M) selections.\n // So one snippet is without selection -> cancel\n return false;\n }\n const allPossibleSelections = new Map();\n for (const snippet of this._snippets) {\n const possibleSelections = snippet.computePossibleSelections();\n // for the first snippet find the placeholder (and its ranges)\n // that contain at least one selection. for all remaining snippets\n // the same placeholder (and their ranges) must be used.\n if (allPossibleSelections.size === 0) {\n for (const [index, ranges] of possibleSelections) {\n ranges.sort(Range.compareRangesUsingStarts);\n for (const selection of selections) {\n if (ranges[0].containsRange(selection)) {\n allPossibleSelections.set(index, []);\n break;\n }\n }\n }\n }\n if (allPossibleSelections.size === 0) {\n // return false if we couldn't associate a selection to\n // this (the first) snippet\n return false;\n }\n // add selections from 'this' snippet so that we know all\n // selections for this placeholder\n allPossibleSelections.forEach((array, index) => {\n array.push(...possibleSelections.get(index));\n });\n }\n // sort selections (and later placeholder-ranges). then walk both\n // arrays and make sure the placeholder-ranges contain the corresponding\n // selection\n selections.sort(Range.compareRangesUsingStarts);\n for (const [index, ranges] of allPossibleSelections) {\n if (ranges.length !== selections.length) {\n allPossibleSelections.delete(index);\n continue;\n }\n ranges.sort(Range.compareRangesUsingStarts);\n for (let i = 0; i < ranges.length; i++) {\n if (!ranges[i].containsRange(selections[i])) {\n allPossibleSelections.delete(index);\n continue;\n }\n }\n }\n // from all possible selections we have deleted those\n // that don't match with the current selection. if we don't\n // have any left, we don't have a selection anymore\n return allPossibleSelections.size > 0;\n }\n};\nSnippetSession = SnippetSession_1 = __decorate([\n __param(3, ILanguageConfigurationService)\n], SnippetSession);\nexport { SnippetSession };\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pascaligo/pascaligo.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"pascaligo\",\n extensions: [\".ligo\"],\n aliases: [\"Pascaligo\", \"ligo\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/pascaligo/pascaligo\"], resolve, reject);\n });\n } else {\n return import(\"./pascaligo.js\");\n }\n }\n});\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match pattern \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{pattern: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt) {\n const { data, $data, schema, schemaCode, it } = cxt;\n // TODO regexp should be wrapped in try/catchs\n const u = it.opts.unicodeRegExp ? \"u\" : \"\";\n const regExp = $data ? (0, codegen_1._) `(new RegExp(${schemaCode}, ${u}))` : (0, code_1.usePattern)(cxt, schema);\n cxt.fail$data((0, codegen_1._) `!${regExp}.test(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=pattern.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst limitNumber_1 = require(\"./limitNumber\");\nconst multipleOf_1 = require(\"./multipleOf\");\nconst limitLength_1 = require(\"./limitLength\");\nconst pattern_1 = require(\"./pattern\");\nconst limitProperties_1 = require(\"./limitProperties\");\nconst required_1 = require(\"./required\");\nconst limitItems_1 = require(\"./limitItems\");\nconst uniqueItems_1 = require(\"./uniqueItems\");\nconst const_1 = require(\"./const\");\nconst enum_1 = require(\"./enum\");\nconst validation = [\n // number\n limitNumber_1.default,\n multipleOf_1.default,\n // string\n limitLength_1.default,\n pattern_1.default,\n // object\n limitProperties_1.default,\n required_1.default,\n // array\n limitItems_1.default,\n uniqueItems_1.default,\n // any\n { keyword: \"type\", schemaType: [\"string\", \"array\"] },\n { keyword: \"nullable\", schemaType: \"boolean\" },\n const_1.default,\n enum_1.default,\n];\nexports.default = validation;\n//# sourceMappingURL=index.js.map","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","/**\n * Parse a JSON Pointer\n */\nexport function parseJSONPointer(pointer) {\n const path = pointer.split('/');\n path.shift(); // remove the first empty entry\n\n return path.map(p => p.replace(/~1/g, '/').replace(/~0/g, '~'));\n}\n\n/**\n * Compile a JSON Pointer\n */\nexport function compileJSONPointer(path) {\n return path.map(compileJSONPointerProp).join('');\n}\n\n/**\n * Compile a single path property from a JSONPath\n */\nexport function compileJSONPointerProp(pathProp) {\n return '/' + String(pathProp).replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n * Append a path property to a JSONPointer\n */\nexport function appendToJSONPointer(pointer, pathProp) {\n return pointer + compileJSONPointerProp(pathProp);\n}\n\n/**\n * Test whether `pointer` starts with `searchPointer`\n */\nexport function startsWithJSONPointer(pointer, searchPointer) {\n return pointer.startsWith(searchPointer) && (pointer.length === searchPointer.length || pointer[searchPointer.length] === '/');\n}\n//# sourceMappingURL=jsonPointer.js.map","export function isJSONArray(value) {\n return Array.isArray(value);\n}\nexport function isJSONObject(value) {\n return value !== null && typeof value === 'object' && (value.constructor === undefined ||\n // for example Object.create(null)\n value.constructor.name === 'Object') // do not match on classes or Array\n ;\n}\nexport function isJSONPatchOperation(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? typeof value.op === 'string' : false;\n}\nexport function isJSONPatchAdd(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'add' : false;\n}\nexport function isJSONPatchRemove(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'remove' : false;\n}\nexport function isJSONPatchReplace(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'replace' : false;\n}\nexport function isJSONPatchCopy(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'copy' : false;\n}\nexport function isJSONPatchMove(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'move' : false;\n}\nexport function isJSONPatchTest(value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return value && typeof value === 'object' ? value.op === 'test' : false;\n}\n//# sourceMappingURL=typeguards.js.map","/**\n * Test deep equality of two JSON values, objects, or arrays\n */\n// TODO: write unit tests\nexport function isEqual(a, b) {\n // FIXME: this function will return false for two objects with the same keys\n // but different order of keys\n return JSON.stringify(a) === JSON.stringify(b);\n}\n\n/**\n * Test whether two values are strictly equal\n */\nexport function strictEqual(a, b) {\n return a === b;\n}\n\n/**\n * Get all but the last items from an array\n */\n// TODO: write unit tests\nexport function initial(array) {\n return array.slice(0, array.length - 1);\n}\n\n/**\n * Get the last item from an array\n */\n// TODO: write unit tests\nexport function last(array) {\n return array[array.length - 1];\n}\n\n/**\n * Test whether array1 starts with array2\n * @param array1\n * @param array2\n * @param [isEqual] Optional function to check equality\n */\nexport function startsWith(array1, array2) {\n let isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEqual;\n if (array1.length < array2.length) {\n return false;\n }\n for (let i = 0; i < array2.length; i++) {\n if (!isEqual(array1[i], array2[i])) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Test whether a value is an Object or an Array (and not a primitive JSON value)\n */\n// TODO: write unit tests\nexport function isObjectOrArray(value) {\n return typeof value === 'object' && value !== null;\n}\n//# sourceMappingURL=utils.js.map","/**\n * Immutability helpers\n *\n * inspiration:\n *\n * https://www.npmjs.com/package/seamless-immutable\n * https://www.npmjs.com/package/ih\n * https://www.npmjs.com/package/mutatis\n * https://github.com/mariocasciaro/object-path-immutable\n */\nimport { isJSONArray, isJSONObject } from './typeguards.js';\nimport { isObjectOrArray } from './utils.js';\n\n/**\n * Shallow clone of an Object, Array, or value\n * Symbols are cloned too.\n */\nexport function shallowClone(value) {\n if (isJSONArray(value)) {\n // copy array items\n const copy = value.slice();\n\n // copy all symbols\n Object.getOwnPropertySymbols(value).forEach(symbol => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n copy[symbol] = value[symbol];\n });\n return copy;\n } else if (isJSONObject(value)) {\n // copy object properties\n const copy = {\n ...value\n };\n\n // copy all symbols\n Object.getOwnPropertySymbols(value).forEach(symbol => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n copy[symbol] = value[symbol];\n });\n return copy;\n } else {\n return value;\n }\n}\n\n/**\n * Update a value in an object in an immutable way.\n * If the value is unchanged, the original object will be returned\n */\nexport function applyProp(object, key, value) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (object[key] === value) {\n // return original object unchanged when the new value is identical to the old one\n return object;\n } else {\n const updatedObject = shallowClone(object);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n updatedObject[key] = value;\n return updatedObject;\n }\n}\n\n/**\n * helper function to get a nested property in an object or array\n *\n * @return Returns the field when found, or undefined when the path doesn't exist\n */\nexport function getIn(object, path) {\n let value = object;\n let i = 0;\n while (i < path.length) {\n if (isJSONObject(value)) {\n value = value[path[i]];\n } else if (isJSONArray(value)) {\n value = value[parseInt(path[i])];\n } else {\n value = undefined;\n }\n i++;\n }\n return value;\n}\n\n/**\n * helper function to replace a nested property in an object with a new value\n * without mutating the object itself.\n *\n * @param object\n * @param path\n * @param value\n * @param [createPath=false]\n * If true, `path` will be created when (partly) missing in\n * the object. For correctly creating nested Arrays or\n * Objects, the function relies on `path` containing number\n * in case of array indexes.\n * If false (default), an error will be thrown when the\n * path doesn't exist.\n * @return Returns a new, updated object or array\n */\nexport function setIn(object, path, value) {\n let createPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (path.length === 0) {\n return value;\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = setIn(object ? object[key] : undefined, path.slice(1), value, createPath);\n if (isJSONObject(object) || isJSONArray(object)) {\n return applyProp(object, key, updatedValue);\n } else {\n if (createPath) {\n const newObject = IS_INTEGER_REGEX.test(key) ? [] : {};\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n newObject[key] = updatedValue;\n return newObject;\n } else {\n throw new Error('Path does not exist');\n }\n }\n}\nconst IS_INTEGER_REGEX = /^\\d+$/;\n\n/**\n * helper function to replace a nested property in an object with a new value\n * without mutating the object itself.\n *\n * @return Returns a new, updated object or array\n */\nexport function updateIn(object, path, transform) {\n if (path.length === 0) {\n return transform(object);\n }\n if (!isObjectOrArray(object)) {\n throw new Error('Path doesn\\'t exist');\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = updateIn(object[key], path.slice(1), transform);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return applyProp(object, key, updatedValue);\n}\n\n/**\n * helper function to delete a nested property in an object\n * without mutating the object itself.\n *\n * @return Returns a new, updated object or array\n */\nexport function deleteIn(object, path) {\n if (path.length === 0) {\n return object;\n }\n if (!isObjectOrArray(object)) {\n throw new Error('Path does not exist');\n }\n if (path.length === 1) {\n const key = path[0];\n if (!(key in object)) {\n // key doesn't exist. return object unchanged\n return object;\n } else {\n const updatedObject = shallowClone(object);\n if (isJSONArray(updatedObject)) {\n updatedObject.splice(parseInt(key), 1);\n }\n if (isJSONObject(updatedObject)) {\n delete updatedObject[key];\n }\n return updatedObject;\n }\n }\n const key = path[0];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const updatedValue = deleteIn(object[key], path.slice(1));\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return applyProp(object, key, updatedValue);\n}\n\n/**\n * Insert a new item in an array at a specific index.\n * Example usage:\n *\n * insertAt({arr: [1,2,3]}, ['arr', '2'], 'inserted') // [1,2,'inserted',3]\n */\nexport function insertAt(document, path, value) {\n const parentPath = path.slice(0, path.length - 1);\n const index = path[path.length - 1];\n return updateIn(document, parentPath, items => {\n if (!Array.isArray(items)) {\n throw new TypeError('Array expected at path ' + JSON.stringify(parentPath));\n }\n const updatedItems = shallowClone(items);\n updatedItems.splice(parseInt(index), 0, value);\n return updatedItems;\n });\n}\n\n/**\n * Transform a JSON object, traverse over the whole object,\n * and allow replacing Objects/Arrays/values.\n */\nexport function transform(document, callback) {\n let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n // eslint-disable-next-line n/no-callback-literal\n const updated1 = callback(document, path);\n if (isJSONArray(updated1)) {\n // array\n let updated2;\n for (let i = 0; i < updated1.length; i++) {\n const before = updated1[i];\n // we stringify the index here, so the path only contains strings and can be safely\n // stringified/parsed to JSONPointer without loosing information.\n // We do not want to rely on path keys being numeric/string.\n const after = transform(before, callback, path.concat(i + ''));\n if (after !== before) {\n if (!updated2) {\n updated2 = shallowClone(updated1);\n }\n updated2[i] = after;\n }\n }\n return updated2 || updated1;\n } else if (isJSONObject(updated1)) {\n // object\n let updated2;\n for (const key in updated1) {\n if (Object.hasOwnProperty.call(updated1, key)) {\n const before = updated1[key];\n const after = transform(before, callback, path.concat(key));\n if (after !== before) {\n if (!updated2) {\n updated2 = shallowClone(updated1);\n }\n updated2[key] = after;\n }\n }\n }\n return updated2 || updated1;\n } else {\n // number, string, boolean, null\n return updated1;\n }\n}\n\n/**\n * Test whether a path exists in a JSON object\n * @return Returns true if the path exists, else returns false\n */\nexport function existsIn(document, path) {\n if (document === undefined) {\n return false;\n }\n if (path.length === 0) {\n return true;\n }\n if (document === null) {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return existsIn(document[path[0]], path.slice(1));\n}\n//# sourceMappingURL=immutabilityHelpers.js.map","import { deleteIn, existsIn, getIn, insertAt, setIn } from './immutabilityHelpers.js';\nimport { compileJSONPointer, parseJSONPointer } from './jsonPointer.js';\nimport { initial, isEqual, last } from './utils.js';\n\n/**\n * Apply a patch to a JSON object\n * The original JSON object will not be changed,\n * instead, the patch is applied in an immutable way\n */\nexport function immutableJSONPatch(document, operations, options) {\n let updatedDocument = document;\n for (let i = 0; i < operations.length; i++) {\n validateJSONPatchOperation(operations[i]);\n let operation = operations[i];\n\n // TODO: test before\n if (options && options.before) {\n const result = options.before(updatedDocument, operation);\n if (result !== undefined) {\n if (result.document !== undefined) {\n updatedDocument = result.document;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (result.json !== undefined) {\n // TODO: deprecated since v5.0.0. Cleanup this warning some day\n throw new Error('Deprecation warning: returned object property \".json\" has been renamed to \".document\"');\n }\n if (result.operation !== undefined) {\n operation = result.operation;\n }\n }\n }\n const previousDocument = updatedDocument;\n const path = parsePath(updatedDocument, operation.path);\n if (operation.op === 'add') {\n updatedDocument = add(updatedDocument, path, operation.value);\n } else if (operation.op === 'remove') {\n updatedDocument = remove(updatedDocument, path);\n } else if (operation.op === 'replace') {\n updatedDocument = replace(updatedDocument, path, operation.value);\n } else if (operation.op === 'copy') {\n updatedDocument = copy(updatedDocument, path, parseFrom(operation.from));\n } else if (operation.op === 'move') {\n updatedDocument = move(updatedDocument, path, parseFrom(operation.from));\n } else if (operation.op === 'test') {\n test(updatedDocument, path, operation.value);\n } else {\n throw new Error('Unknown JSONPatch operation ' + JSON.stringify(operation));\n }\n\n // TODO: test after\n if (options && options.after) {\n const result = options.after(updatedDocument, operation, previousDocument);\n if (result !== undefined) {\n updatedDocument = result;\n }\n }\n }\n return updatedDocument;\n}\n\n/**\n * Replace an existing item\n */\nexport function replace(document, path, value) {\n return setIn(document, path, value);\n}\n\n/**\n * Remove an item or property\n */\nexport function remove(document, path) {\n return deleteIn(document, path);\n}\n\n/**\n * Add an item or property\n */\nexport function add(document, path, value) {\n if (isArrayItem(document, path)) {\n return insertAt(document, path, value);\n } else {\n return setIn(document, path, value);\n }\n}\n\n/**\n * Copy a value\n */\nexport function copy(document, path, from) {\n const value = getIn(document, from);\n if (isArrayItem(document, path)) {\n return insertAt(document, path, value);\n } else {\n const value = getIn(document, from);\n return setIn(document, path, value);\n }\n}\n\n/**\n * Move a value\n */\nexport function move(document, path, from) {\n const value = getIn(document, from);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const removedJson = deleteIn(document, from);\n return isArrayItem(removedJson, path) ? insertAt(removedJson, path, value) : setIn(removedJson, path, value);\n}\n\n/**\n * Test whether the data contains the provided value at the specified path.\n * Throws an error when the test fails\n */\nexport function test(document, path, value) {\n if (value === undefined) {\n throw new Error(`Test failed: no value provided (path: \"${compileJSONPointer(path)}\")`);\n }\n if (!existsIn(document, path)) {\n throw new Error(`Test failed: path not found (path: \"${compileJSONPointer(path)}\")`);\n }\n const actualValue = getIn(document, path);\n if (!isEqual(actualValue, value)) {\n throw new Error(`Test failed, value differs (path: \"${compileJSONPointer(path)}\")`);\n }\n}\nexport function isArrayItem(document, path) {\n if (path.length === 0) {\n return false;\n }\n const parent = getIn(document, initial(path));\n return Array.isArray(parent);\n}\n\n/**\n * Resolve the path index of an array, resolves indexes '-'\n * @returns Returns the resolved path\n */\nexport function resolvePathIndex(document, path) {\n if (last(path) !== '-') {\n return path;\n }\n const parentPath = initial(path);\n const parent = getIn(document, parentPath);\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return parentPath.concat(parent.length);\n}\n\n/**\n * Validate a JSONPatch operation.\n * Throws an error when there is an issue\n */\nexport function validateJSONPatchOperation(operation) {\n // TODO: write unit tests\n const ops = ['add', 'remove', 'replace', 'copy', 'move', 'test'];\n if (!ops.includes(operation.op)) {\n throw new Error('Unknown JSONPatch op ' + JSON.stringify(operation.op));\n }\n if (typeof operation.path !== 'string') {\n throw new Error('Required property \"path\" missing or not a string in operation ' + JSON.stringify(operation));\n }\n if (operation.op === 'copy' || operation.op === 'move') {\n if (typeof operation.from !== 'string') {\n throw new Error('Required property \"from\" missing or not a string in operation ' + JSON.stringify(operation));\n }\n }\n}\nexport function parsePath(document, pointer) {\n return resolvePathIndex(document, parseJSONPointer(pointer));\n}\nexport function parseFrom(fromPointer) {\n return parseJSONPointer(fromPointer);\n}\n//# sourceMappingURL=immutableJSONPatch.js.map","import { existsIn, getIn } from './immutabilityHelpers.js';\nimport { immutableJSONPatch, isArrayItem, parseFrom, parsePath } from './immutableJSONPatch.js';\nimport { compileJSONPointer } from './jsonPointer.js';\nimport { startsWith } from './utils.js';\n\n/**\n * Create the inverse of a set of json patch operations\n * @param document\n * @param operations Array with JSON patch actions\n * @param [options]\n * @return Returns the operations to revert the changes\n */\nexport function revertJSONPatch(document, operations, options) {\n let allRevertOperations = [];\n const before = (document, operation) => {\n let revertOperations;\n const path = parsePath(document, operation.path);\n if (operation.op === 'add') {\n revertOperations = revertAdd(document, path);\n } else if (operation.op === 'remove') {\n revertOperations = revertRemove(document, path);\n } else if (operation.op === 'replace') {\n revertOperations = revertReplace(document, path);\n } else if (operation.op === 'copy') {\n revertOperations = revertCopy(document, path);\n } else if (operation.op === 'move') {\n revertOperations = revertMove(document, path, parseFrom(operation.from));\n } else if (operation.op === 'test') {\n revertOperations = [];\n } else {\n throw new Error('Unknown JSONPatch operation ' + JSON.stringify(operation));\n }\n let updatedJson;\n if (options && options.before) {\n const res = options.before(document, operation, revertOperations);\n if (res && res.revertOperations) {\n revertOperations = res.revertOperations;\n }\n if (res && res.document) {\n updatedJson = res.document;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (res && res.json) {\n // TODO: deprecated since v5.0.0. Cleanup this warning some day\n throw new Error('Deprecation warning: returned object property \".json\" has been renamed to \".document\"');\n }\n }\n allRevertOperations = revertOperations.concat(allRevertOperations);\n if (updatedJson !== undefined) {\n return {\n document: updatedJson\n };\n }\n };\n immutableJSONPatch(document, operations, {\n before\n });\n return allRevertOperations;\n}\nfunction revertReplace(document, path) {\n return [{\n op: 'replace',\n path: compileJSONPointer(path),\n value: getIn(document, path)\n }];\n}\nfunction revertRemove(document, path) {\n return [{\n op: 'add',\n path: compileJSONPointer(path),\n value: getIn(document, path)\n }];\n}\nfunction revertAdd(document, path) {\n if (isArrayItem(document, path) || !existsIn(document, path)) {\n return [{\n op: 'remove',\n path: compileJSONPointer(path)\n }];\n } else {\n return revertReplace(document, path);\n }\n}\nfunction revertCopy(document, path) {\n return revertAdd(document, path);\n}\nfunction revertMove(document, path, from) {\n if (path.length < from.length && startsWith(from, path)) {\n // replacing the parent with the child\n return [{\n op: 'replace',\n path: compileJSONPointer(path),\n value: document\n }];\n }\n const move = {\n op: 'move',\n from: compileJSONPointer(path),\n path: compileJSONPointer(from)\n };\n if (!isArrayItem(document, path) && existsIn(document, path)) {\n // the move replaces an existing value in an object\n return [move, ...revertRemove(document, path)];\n } else {\n return [move];\n }\n}\n//# sourceMappingURL=revertJSONPatch.js.map","export class JSONRepairError extends Error {\n constructor(message, position) {\n super(\"\".concat(message, \" at position \").concat(position));\n this.position = position;\n }\n}\n//# sourceMappingURL=JSONRepairError.js.map","const codeSpace = 0x20; // \" \"\nconst codeNewline = 0xa; // \"\\n\"\nconst codeTab = 0x9; // \"\\t\"\nconst codeReturn = 0xd; // \"\\r\"\nconst codeNonBreakingSpace = 0xa0;\nconst codeEnQuad = 0x2000;\nconst codeHairSpace = 0x200a;\nconst codeNarrowNoBreakSpace = 0x202f;\nconst codeMediumMathematicalSpace = 0x205f;\nconst codeIdeographicSpace = 0x3000;\nexport function isHex(char) {\n return /^[0-9A-Fa-f]$/.test(char);\n}\nexport function isDigit(char) {\n return char >= '0' && char <= '9';\n}\nexport function isValidStringCharacter(char) {\n // note that the valid range is between \\u{0020} and \\u{10ffff},\n // but in JavaScript it is not possible to create a code point larger than\n // \\u{10ffff}, so there is no need to test for that here.\n return char >= '\\u0020';\n}\nexport function isDelimiter(char) {\n return ',:[]/{}()\\n+'.includes(char);\n}\nexport function isFunctionNameCharStart(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$';\n}\nexport function isFunctionNameChar(char) {\n return char >= 'a' && char <= 'z' || char >= 'A' && char <= 'Z' || char === '_' || char === '$' || char >= '0' && char <= '9';\n}\n\n// matches \"https://\" and other schemas\nexport const regexUrlStart = /^(http|https|ftp|mailto|file|data|irc):\\/\\/$/;\n\n// matches all valid URL characters EXCEPT \"[\", \"]\", and \",\", since that are important JSON delimiters\nexport const regexUrlChar = /^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;\nexport function isUnquotedStringDelimiter(char) {\n return ',[]/{}\\n+'.includes(char);\n}\nexport function isStartOfValue(char) {\n return isQuote(char) || regexStartOfValue.test(char);\n}\n\n// alpha, number, minus, or opening bracket or brace\nconst regexStartOfValue = /^[[{\\w-]$/;\nexport function isControlCharacter(char) {\n return char === '\\n' || char === '\\r' || char === '\\t' || char === '\\b' || char === '\\f';\n}\n/**\n * Check if the given character is a whitespace character like space, tab, or\n * newline\n */\nexport function isWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeNewline || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a whitespace character like space or tab,\n * but NOT a newline\n */\nexport function isWhitespaceExceptNewline(text, index) {\n const code = text.charCodeAt(index);\n return code === codeSpace || code === codeTab || code === codeReturn;\n}\n\n/**\n * Check if the given character is a special whitespace character, some\n * unicode variant\n */\nexport function isSpecialWhitespace(text, index) {\n const code = text.charCodeAt(index);\n return code === codeNonBreakingSpace || code >= codeEnQuad && code <= codeHairSpace || code === codeNarrowNoBreakSpace || code === codeMediumMathematicalSpace || code === codeIdeographicSpace;\n}\n\n/**\n * Test whether the given character is a quote or double quote character.\n * Also tests for special variants of quotes.\n */\nexport function isQuote(char) {\n // the first check double quotes, since that occurs most often\n return isDoubleQuoteLike(char) || isSingleQuoteLike(char);\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Also tests for special variants of double quotes.\n */\nexport function isDoubleQuoteLike(char) {\n return char === '\"' || char === '\\u201c' || char === '\\u201d';\n}\n\n/**\n * Test whether the given character is a double quote character.\n * Does NOT test for special variants of double quotes.\n */\nexport function isDoubleQuote(char) {\n return char === '\"';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Also tests for special variants of single quotes.\n */\nexport function isSingleQuoteLike(char) {\n return char === \"'\" || char === '\\u2018' || char === '\\u2019' || char === '\\u0060' || char === '\\u00b4';\n}\n\n/**\n * Test whether the given character is a single quote character.\n * Does NOT test for special variants of single quotes.\n */\nexport function isSingleQuote(char) {\n return char === \"'\";\n}\n\n/**\n * Strip last occurrence of textToStrip from text\n */\nexport function stripLastOccurrence(text, textToStrip) {\n let stripRemainingText = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n const index = text.lastIndexOf(textToStrip);\n return index !== -1 ? text.substring(0, index) + (stripRemainingText ? '' : text.substring(index + 1)) : text;\n}\nexport function insertBeforeLastWhitespace(text, textToInsert) {\n let index = text.length;\n if (!isWhitespace(text, index - 1)) {\n // no trailing whitespaces\n return text + textToInsert;\n }\n while (isWhitespace(text, index - 1)) {\n index--;\n }\n return text.substring(0, index) + textToInsert + text.substring(index);\n}\nexport function removeAtIndex(text, start, count) {\n return text.substring(0, start) + text.substring(start + count);\n}\n\n/**\n * Test whether a string ends with a newline or comma character and optional whitespace\n */\nexport function endsWithCommaOrNewline(text) {\n return /[,\\n][ \\t\\r]*$/.test(text);\n}\n//# sourceMappingURL=stringUtils.js.map","import { JSONRepairError } from '../utils/JSONRepairError.js';\nimport { endsWithCommaOrNewline, insertBeforeLastWhitespace, isControlCharacter, isDelimiter, isDigit, isDoubleQuote, isDoubleQuoteLike, isFunctionNameChar, isFunctionNameCharStart, isHex, isQuote, isSingleQuote, isSingleQuoteLike, isSpecialWhitespace, isStartOfValue, isUnquotedStringDelimiter, isValidStringCharacter, isWhitespace, isWhitespaceExceptNewline, regexUrlChar, regexUrlStart, removeAtIndex, stripLastOccurrence } from '../utils/stringUtils.js';\nconst controlCharacters = {\n '\\b': '\\\\b',\n '\\f': '\\\\f',\n '\\n': '\\\\n',\n '\\r': '\\\\r',\n '\\t': '\\\\t'\n};\n\n// map with all escape characters\nconst escapeCharacters = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n // note that \\u is handled separately in parseString()\n};\n\n/**\n * Repair a string containing an invalid JSON document.\n * For example changes JavaScript notation into JSON notation.\n *\n * Example:\n *\n * try {\n * const json = \"{name: 'John'}\"\n * const repaired = jsonrepair(json)\n * console.log(repaired)\n * // '{\"name\": \"John\"}'\n * } catch (err) {\n * console.error(err)\n * }\n *\n */\nexport function jsonrepair(text) {\n let i = 0; // current index in text\n let output = ''; // generated output\n\n parseMarkdownCodeBlock();\n const processed = parseValue();\n if (!processed) {\n throwUnexpectedEnd();\n }\n parseMarkdownCodeBlock();\n const processedComma = parseCharacter(',');\n if (processedComma) {\n parseWhitespaceAndSkipComments();\n }\n if (isStartOfValue(text[i]) && endsWithCommaOrNewline(output)) {\n // start of a new value after end of the root level object: looks like\n // newline delimited JSON -> turn into a root level array\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseNewlineDelimitedJSON();\n } else if (processedComma) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair redundant end quotes\n while (text[i] === '}' || text[i] === ']') {\n i++;\n parseWhitespaceAndSkipComments();\n }\n if (i >= text.length) {\n // reached the end of the document properly\n return output;\n }\n throwUnexpectedCharacter();\n function parseValue() {\n parseWhitespaceAndSkipComments();\n const processed = parseObject() || parseArray() || parseString() || parseNumber() || parseKeywords() || parseUnquotedString(false) || parseRegex();\n parseWhitespaceAndSkipComments();\n return processed;\n }\n function parseWhitespaceAndSkipComments() {\n let skipNewline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n const start = i;\n let changed = parseWhitespace(skipNewline);\n do {\n changed = parseComment();\n if (changed) {\n changed = parseWhitespace(skipNewline);\n }\n } while (changed);\n return i > start;\n }\n function parseWhitespace(skipNewline) {\n const _isWhiteSpace = skipNewline ? isWhitespace : isWhitespaceExceptNewline;\n let whitespace = '';\n while (true) {\n if (_isWhiteSpace(text, i)) {\n whitespace += text[i];\n i++;\n } else if (isSpecialWhitespace(text, i)) {\n // repair special whitespace\n whitespace += ' ';\n i++;\n } else {\n break;\n }\n }\n if (whitespace.length > 0) {\n output += whitespace;\n return true;\n }\n return false;\n }\n function parseComment() {\n // find a block comment '/* ... */'\n if (text[i] === '/' && text[i + 1] === '*') {\n // repair block comment by skipping it\n while (i < text.length && !atEndOfBlockComment(text, i)) {\n i++;\n }\n i += 2;\n return true;\n }\n\n // find a line comment '// ...'\n if (text[i] === '/' && text[i + 1] === '/') {\n // repair line comment by skipping it\n while (i < text.length && text[i] !== '\\n') {\n i++;\n }\n return true;\n }\n return false;\n }\n function parseMarkdownCodeBlock() {\n // find and skip over a Markdown fenced code block:\n // ``` ... ```\n // or\n // ```json ... ```\n if (text.slice(i, i + 3) === '```') {\n i += 3;\n if (isFunctionNameCharStart(text[i])) {\n // strip the optional language specifier like \"json\"\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n }\n parseWhitespaceAndSkipComments();\n return true;\n }\n return false;\n }\n function parseCharacter(char) {\n if (text[i] === char) {\n output += text[i];\n i++;\n return true;\n }\n return false;\n }\n function skipCharacter(char) {\n if (text[i] === char) {\n i++;\n return true;\n }\n return false;\n }\n function skipEscapeCharacter() {\n return skipCharacter('\\\\');\n }\n\n /**\n * Skip ellipsis like \"[1,2,3,...]\" or \"[1,2,3,...,9]\" or \"[...,7,8,9]\"\n * or a similar construct in objects.\n */\n function skipEllipsis() {\n parseWhitespaceAndSkipComments();\n if (text[i] === '.' && text[i + 1] === '.' && text[i + 2] === '.') {\n // repair: remove the ellipsis (three dots) and optionally a comma\n i += 3;\n parseWhitespaceAndSkipComments();\n skipCharacter(',');\n return true;\n }\n return false;\n }\n\n /**\n * Parse an object like '{\"key\": \"value\"}'\n */\n function parseObject() {\n if (text[i] === '{') {\n output += '{';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in {, message: \"hi\"}\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== '}') {\n let processedComma;\n if (!initial) {\n processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n parseWhitespaceAndSkipComments();\n } else {\n processedComma = true;\n initial = false;\n }\n skipEllipsis();\n const processedKey = parseString() || parseUnquotedString(true);\n if (!processedKey) {\n if (text[i] === '}' || text[i] === '{' || text[i] === ']' || text[i] === '[' || text[i] === undefined) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n } else {\n throwObjectKeyExpected();\n }\n break;\n }\n parseWhitespaceAndSkipComments();\n const processedColon = parseCharacter(':');\n const truncatedText = i >= text.length;\n if (!processedColon) {\n if (isStartOfValue(text[i]) || truncatedText) {\n // repair missing colon\n output = insertBeforeLastWhitespace(output, ':');\n } else {\n throwColonExpected();\n }\n }\n const processedValue = parseValue();\n if (!processedValue) {\n if (processedColon || truncatedText) {\n // repair missing object value\n output += 'null';\n } else {\n throwColonExpected();\n }\n }\n }\n if (text[i] === '}') {\n output += '}';\n i++;\n } else {\n // repair missing end bracket\n output = insertBeforeLastWhitespace(output, '}');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse an array like '[\"item1\", \"item2\", ...]'\n */\n function parseArray() {\n if (text[i] === '[') {\n output += '[';\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: skip leading comma like in [,1,2,3]\n if (skipCharacter(',')) {\n parseWhitespaceAndSkipComments();\n }\n let initial = true;\n while (i < text.length && text[i] !== ']') {\n if (!initial) {\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n skipEllipsis();\n const processedValue = parseValue();\n if (!processedValue) {\n // repair trailing comma\n output = stripLastOccurrence(output, ',');\n break;\n }\n }\n if (text[i] === ']') {\n output += ']';\n i++;\n } else {\n // repair missing closing array bracket\n output = insertBeforeLastWhitespace(output, ']');\n }\n return true;\n }\n return false;\n }\n\n /**\n * Parse and repair Newline Delimited JSON (NDJSON):\n * multiple JSON objects separated by a newline character\n */\n function parseNewlineDelimitedJSON() {\n // repair NDJSON\n let initial = true;\n let processedValue = true;\n while (processedValue) {\n if (!initial) {\n // parse optional comma, insert when missing\n const processedComma = parseCharacter(',');\n if (!processedComma) {\n // repair: add missing comma\n output = insertBeforeLastWhitespace(output, ',');\n }\n } else {\n initial = false;\n }\n processedValue = parseValue();\n }\n if (!processedValue) {\n // repair: remove trailing comma\n output = stripLastOccurrence(output, ',');\n }\n\n // repair: wrap the output inside array brackets\n output = \"[\\n\".concat(output, \"\\n]\");\n }\n\n /**\n * Parse a string enclosed by double quotes \"...\". Can contain escaped quotes\n * Repair strings enclosed in single quotes or special quotes\n * Repair an escaped string\n *\n * The function can run in two stages:\n * - First, it assumes the string has a valid end quote\n * - If it turns out that the string does not have a valid end quote followed\n * by a delimiter (which should be the case), the function runs again in a\n * more conservative way, stopping the string at the first next delimiter\n * and fixing the string by inserting a quote there, or stopping at a\n * stop index detected in the first iteration.\n */\n function parseString() {\n let stopAtDelimiter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n let stopAtIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : -1;\n let skipEscapeChars = text[i] === '\\\\';\n if (skipEscapeChars) {\n // repair: remove the first escape character\n i++;\n skipEscapeChars = true;\n }\n if (isQuote(text[i])) {\n // double quotes are correct JSON,\n // single quotes come from JavaScript for example, we assume it will have a correct single end quote too\n // otherwise, we will match any double-quote-like start with a double-quote-like end,\n // or any single-quote-like start with a single-quote-like end\n const isEndQuote = isDoubleQuote(text[i]) ? isDoubleQuote : isSingleQuote(text[i]) ? isSingleQuote : isSingleQuoteLike(text[i]) ? isSingleQuoteLike : isDoubleQuoteLike;\n const iBefore = i;\n const oBefore = output.length;\n let str = '\"';\n i++;\n while (true) {\n if (i >= text.length) {\n // end of text, we are missing an end quote\n\n const iPrev = prevNonWhitespaceIndex(i - 1);\n if (!stopAtDelimiter && isDelimiter(text.charAt(iPrev))) {\n // if the text ends with a delimiter, like [\"hello],\n // so the missing end quote should be inserted before this delimiter\n // retry parsing the string, stopping at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n // biome-ignore lint/style/noUselessElse: \n } else if (i === stopAtIndex) {\n // use the stop index detected in the first iteration, and repair end quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n return true;\n // biome-ignore lint/style/noUselessElse: \n } else if (isEndQuote(text[i])) {\n // end quote\n // let us check what is before and after the quote to verify whether this is a legit end quote\n const iQuote = i;\n const oQuote = str.length;\n str += '\"';\n i++;\n output += str;\n parseWhitespaceAndSkipComments(false);\n if (stopAtDelimiter || i >= text.length || isDelimiter(text[i]) || isQuote(text[i]) || isDigit(text[i])) {\n // The quote is followed by the end of the text, a delimiter,\n // or a next value. So the quote is indeed the end of the string.\n parseConcatenatedString();\n return true;\n }\n const iPrevChar = prevNonWhitespaceIndex(iQuote - 1);\n const prevChar = text.charAt(iPrevChar);\n if (prevChar === ',') {\n // A comma followed by a quote, like '{\"a\":\"b,c,\"d\":\"e\"}'.\n // We assume that the quote is a start quote, and that the end quote\n // should have been located right before the comma but is missing.\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(false, iPrevChar);\n }\n if (isDelimiter(prevChar)) {\n // This is not the right end quote: it is preceded by a delimiter,\n // and NOT followed by a delimiter. So, there is an end quote missing\n // parse the string again and then stop at the first next delimiter\n i = iBefore;\n output = output.substring(0, oBefore);\n return parseString(true);\n }\n\n // revert to right after the quote but before any whitespace, and continue parsing the string\n output = output.substring(0, oBefore);\n i = iQuote + 1;\n\n // repair unescaped quote\n str = \"\".concat(str.substring(0, oQuote), \"\\\\\").concat(str.substring(oQuote));\n } else if (stopAtDelimiter && isUnquotedStringDelimiter(text[i])) {\n // we're in the mode to stop the string at the first delimiter\n // because there is an end quote missing\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(iBefore + 1, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n str += text[i];\n i++;\n }\n }\n\n // repair missing quote\n str = insertBeforeLastWhitespace(str, '\"');\n output += str;\n parseConcatenatedString();\n return true;\n } else if (text[i] === '\\\\') {\n // handle escaped content like \\n or \\u2605\n const char = text.charAt(i + 1);\n const escapeChar = escapeCharacters[char];\n if (escapeChar !== undefined) {\n str += text.slice(i, i + 2);\n i += 2;\n } else if (char === 'u') {\n let j = 2;\n while (j < 6 && isHex(text[i + j])) {\n j++;\n }\n if (j === 6) {\n str += text.slice(i, i + 6);\n i += 6;\n } else if (i + j >= text.length) {\n // repair invalid or truncated unicode char at the end of the text\n // by removing the unicode char and ending the string here\n i = text.length;\n } else {\n throwInvalidUnicodeCharacter();\n }\n } else {\n // repair invalid escape character: remove it\n str += char;\n i += 2;\n }\n } else {\n // handle regular characters\n const char = text.charAt(i);\n if (char === '\"' && text[i - 1] !== '\\\\') {\n // repair unescaped double quote\n str += \"\\\\\".concat(char);\n i++;\n } else if (isControlCharacter(char)) {\n // unescaped control character\n str += controlCharacters[char];\n i++;\n } else {\n if (!isValidStringCharacter(char)) {\n throwInvalidCharacter(char);\n }\n str += char;\n i++;\n }\n }\n if (skipEscapeChars) {\n // repair: skipped escape character (nothing to do)\n skipEscapeCharacter();\n }\n }\n }\n return false;\n }\n\n /**\n * Repair concatenated strings like \"hello\" + \"world\", change this into \"helloworld\"\n */\n function parseConcatenatedString() {\n let processed = false;\n parseWhitespaceAndSkipComments();\n while (text[i] === '+') {\n processed = true;\n i++;\n parseWhitespaceAndSkipComments();\n\n // repair: remove the end quote of the first string\n output = stripLastOccurrence(output, '\"', true);\n const start = output.length;\n const parsedStr = parseString();\n if (parsedStr) {\n // repair: remove the start quote of the second string\n output = removeAtIndex(output, start, 1);\n } else {\n // repair: remove the + because it is not followed by a string\n output = insertBeforeLastWhitespace(output, '\"');\n }\n }\n return processed;\n }\n\n /**\n * Parse a number like 2.4 or 2.4e6\n */\n function parseNumber() {\n const start = i;\n if (text[i] === '-') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n }\n\n // Note that in JSON leading zeros like \"00789\" are not allowed.\n // We will allow all leading zeros here though and at the end of parseNumber\n // check against trailing zeros and repair that if needed.\n // Leading zeros can have meaning, so we should not clear them.\n while (isDigit(text[i])) {\n i++;\n }\n if (text[i] === '.') {\n i++;\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n if (text[i] === 'e' || text[i] === 'E') {\n i++;\n if (text[i] === '-' || text[i] === '+') {\n i++;\n }\n if (atEndOfNumber()) {\n repairNumberEndingWithNumericSymbol(start);\n return true;\n }\n if (!isDigit(text[i])) {\n i = start;\n return false;\n }\n while (isDigit(text[i])) {\n i++;\n }\n }\n\n // if we're not at the end of the number by this point, allow this to be parsed as another type\n if (!atEndOfNumber()) {\n i = start;\n return false;\n }\n if (i > start) {\n // repair a number with leading zeros like \"00789\"\n const num = text.slice(start, i);\n const hasInvalidLeadingZero = /^0\\d/.test(num);\n output += hasInvalidLeadingZero ? \"\\\"\".concat(num, \"\\\"\") : num;\n return true;\n }\n return false;\n }\n\n /**\n * Parse keywords true, false, null\n * Repair Python keywords True, False, None\n */\n function parseKeywords() {\n return parseKeyword('true', 'true') || parseKeyword('false', 'false') || parseKeyword('null', 'null') ||\n // repair Python keywords True, False, None\n parseKeyword('True', 'true') || parseKeyword('False', 'false') || parseKeyword('None', 'null');\n }\n function parseKeyword(name, value) {\n if (text.slice(i, i + name.length) === name) {\n output += value;\n i += name.length;\n return true;\n }\n return false;\n }\n\n /**\n * Repair an unquoted string by adding quotes around it\n * Repair a MongoDB function call like NumberLong(\"2\")\n * Repair a JSONP function call like callback({...});\n */\n function parseUnquotedString(isKey) {\n // note that the symbol can end with whitespaces: we stop at the next delimiter\n // also, note that we allow strings to contain a slash / in order to support repairing regular expressions\n const start = i;\n if (isFunctionNameCharStart(text[i])) {\n while (i < text.length && isFunctionNameChar(text[i])) {\n i++;\n }\n let j = i;\n while (isWhitespace(text, j)) {\n j++;\n }\n if (text[j] === '(') {\n // repair a MongoDB function call like NumberLong(\"2\")\n // repair a JSONP function call like callback({...});\n i = j + 1;\n parseValue();\n if (text[i] === ')') {\n // repair: skip close bracket of function call\n i++;\n if (text[i] === ';') {\n // repair: skip semicolon after JSONP call\n i++;\n }\n }\n return true;\n }\n }\n while (i < text.length && !isUnquotedStringDelimiter(text[i]) && !isQuote(text[i]) && (!isKey || text[i] !== ':')) {\n i++;\n }\n\n // test start of an url like \"https://...\" (this would be parsed as a comment)\n if (text[i - 1] === ':' && regexUrlStart.test(text.substring(start, i + 2))) {\n while (i < text.length && regexUrlChar.test(text[i])) {\n i++;\n }\n }\n if (i > start) {\n // repair unquoted string\n // also, repair undefined into null\n\n // first, go back to prevent getting trailing whitespaces in the string\n while (isWhitespace(text, i - 1) && i > 0) {\n i--;\n }\n const symbol = text.slice(start, i);\n output += symbol === 'undefined' ? 'null' : JSON.stringify(symbol);\n if (text[i] === '\"') {\n // we had a missing start quote, but now we encountered the end quote, so we can skip that one\n i++;\n }\n return true;\n }\n }\n function parseRegex() {\n if (text[i] === '/') {\n const start = i;\n i++;\n while (i < text.length && (text[i] !== '/' || text[i - 1] === '\\\\')) {\n i++;\n }\n i++;\n output += \"\\\"\".concat(text.substring(start, i), \"\\\"\");\n return true;\n }\n }\n function prevNonWhitespaceIndex(start) {\n let prev = start;\n while (prev > 0 && isWhitespace(text, prev)) {\n prev--;\n }\n return prev;\n }\n function atEndOfNumber() {\n return i >= text.length || isDelimiter(text[i]) || isWhitespace(text, i);\n }\n function repairNumberEndingWithNumericSymbol(start) {\n // repair numbers cut off at the end\n // this will only be called when we end after a '.', '-', or 'e' and does not\n // change the number more than it needs to make it valid JSON\n output += \"\".concat(text.slice(start, i), \"0\");\n }\n function throwInvalidCharacter(char) {\n throw new JSONRepairError(\"Invalid character \".concat(JSON.stringify(char)), i);\n }\n function throwUnexpectedCharacter() {\n throw new JSONRepairError(\"Unexpected character \".concat(JSON.stringify(text[i])), i);\n }\n function throwUnexpectedEnd() {\n throw new JSONRepairError('Unexpected end of json string', text.length);\n }\n function throwObjectKeyExpected() {\n throw new JSONRepairError('Object key expected', i);\n }\n function throwColonExpected() {\n throw new JSONRepairError('Colon expected', i);\n }\n function throwInvalidUnicodeCharacter() {\n const chars = text.slice(i, i + 6);\n throw new JSONRepairError(\"Invalid unicode character \\\"\".concat(chars, \"\\\"\"), i);\n }\n}\nfunction atEndOfBlockComment(text, i) {\n return text[i] === '*' && text[i + 1] === '/';\n}\n//# sourceMappingURL=jsonrepair.js.map","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\nfunction baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n}\n\nexport default baseToNumber;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToNumber from './_baseToNumber.js';\nimport baseToString from './_baseToString.js';\n\n/**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\nfunction createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n}\n\nexport default createMathOperation;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Adds two numbers.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {number} augend The first number in an addition.\n * @param {number} addend The second number in an addition.\n * @returns {number} Returns the total.\n * @example\n *\n * _.add(6, 4);\n * // => 10\n */\nvar add = createMathOperation(function(augend, addend) {\n return augend + addend;\n}, 0);\n\nexport default add;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\nfunction after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n}\n\nexport default after;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import WeakMap from './_WeakMap.js';\n\n/** Used to store function metadata. */\nvar metaMap = WeakMap && new WeakMap;\n\nexport default metaMap;\n","import identity from './identity.js';\nimport metaMap from './_metaMap.js';\n\n/**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n};\n\nexport default baseSetData;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport isObject from './isObject.js';\n\n/**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n}\n\nexport default createCtor;\n","import createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n}\n\nexport default createBind;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n}\n\nexport default composeArgs;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\nfunction composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n}\n\nexport default composeArgsRight;\n","/**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\nfunction countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n}\n\nexport default countHolders;\n","/**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\nfunction baseLodash() {\n // No operation performed.\n}\n\nexport default baseLodash;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\nfunction LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n}\n\n// Ensure `LazyWrapper` is an instance of `baseLodash`.\nLazyWrapper.prototype = baseCreate(baseLodash.prototype);\nLazyWrapper.prototype.constructor = LazyWrapper;\n\nexport default LazyWrapper;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import metaMap from './_metaMap.js';\nimport noop from './noop.js';\n\n/**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\nvar getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n};\n\nexport default getData;\n","/** Used to lookup unminified function names. */\nvar realNames = {};\n\nexport default realNames;\n","import realNames from './_realNames.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\nfunction getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n}\n\nexport default getFuncName;\n","import baseCreate from './_baseCreate.js';\nimport baseLodash from './_baseLodash.js';\n\n/**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\nfunction LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n}\n\nLodashWrapper.prototype = baseCreate(baseLodash.prototype);\nLodashWrapper.prototype.constructor = LodashWrapper;\n\nexport default LodashWrapper;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport copyArray from './_copyArray.js';\n\n/**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\nfunction wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n}\n\nexport default wrapperClone;\n","import LazyWrapper from './_LazyWrapper.js';\nimport LodashWrapper from './_LodashWrapper.js';\nimport baseLodash from './_baseLodash.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\nfunction lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n}\n\n// Ensure wrappers are instances of `baseLodash`.\nlodash.prototype = baseLodash.prototype;\nlodash.prototype.constructor = lodash;\n\nexport default lodash;\n","import LazyWrapper from './_LazyWrapper.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport lodash from './wrapperLodash.js';\n\n/**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\nfunction isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n}\n\nexport default isLaziable;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetData from './_baseSetData.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\nvar setData = shortOut(baseSetData);\n\nexport default setData;\n","/** Used to match wrap detail comments. */\nvar reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n/**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\nfunction getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n}\n\nexport default getWrapDetails;\n","/** Used to match wrap detail comments. */\nvar reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/;\n\n/**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\nfunction insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n}\n\nexport default insertWrapDetails;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","import arrayEach from './_arrayEach.js';\nimport arrayIncludes from './_arrayIncludes.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n/** Used to associate wrap methods with their bit flags. */\nvar wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n];\n\n/**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\nfunction updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n}\n\nexport default updateWrapDetails;\n","import getWrapDetails from './_getWrapDetails.js';\nimport insertWrapDetails from './_insertWrapDetails.js';\nimport setToString from './_setToString.js';\nimport updateWrapDetails from './_updateWrapDetails.js';\n\n/**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\nfunction setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n}\n\nexport default setWrapToString;\n","import isLaziable from './_isLaziable.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n}\n\nexport default createRecurry;\n","/**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\nfunction getHolder(func) {\n var object = func;\n return object.placeholder;\n}\n\nexport default getHolder;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import copyArray from './_copyArray.js';\nimport isIndex from './_isIndex.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\nfunction reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n}\n\nexport default reorder;\n","/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\nfunction replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n}\n\nexport default replaceHolders;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport countHolders from './_countHolders.js';\nimport createCtor from './_createCtor.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport reorder from './_reorder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_ARY_FLAG = 128,\n WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n}\n\nexport default createHybrid;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport createHybrid from './_createHybrid.js';\nimport createRecurry from './_createRecurry.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\nimport root from './_root.js';\n\n/**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n}\n\nexport default createCurry;\n","import apply from './_apply.js';\nimport createCtor from './_createCtor.js';\nimport root from './_root.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1;\n\n/**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n}\n\nexport default createPartial;\n","import composeArgs from './_composeArgs.js';\nimport composeArgsRight from './_composeArgsRight.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used as the internal argument placeholder. */\nvar PLACEHOLDER = '__lodash_placeholder__';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\nfunction mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n}\n\nexport default mergeData;\n","import baseSetData from './_baseSetData.js';\nimport createBind from './_createBind.js';\nimport createCurry from './_createCurry.js';\nimport createHybrid from './_createHybrid.js';\nimport createPartial from './_createPartial.js';\nimport getData from './_getData.js';\nimport mergeData from './_mergeData.js';\nimport setData from './_setData.js';\nimport setWrapToString from './_setWrapToString.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\nfunction createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n}\n\nexport default createWrap;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_ARY_FLAG = 128;\n\n/**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\nfunction ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n}\n\nexport default ary;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import assignValue from './_assignValue.js';\nimport copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport isArrayLike from './isArrayLike.js';\nimport isPrototype from './_isPrototype.js';\nimport keys from './keys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nexport default assign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\nvar assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n});\n\nexport default assignIn;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nexport default assignInWith;\n","import copyObject from './_copyObject.js';\nimport createAssigner from './_createAssigner.js';\nimport keys from './keys.js';\n\n/**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n});\n\nexport default assignWith;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","import get from './get.js';\n\n/**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\nfunction baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n}\n\nexport default baseAt;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import Symbol from './_Symbol.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nexport default isFlattenable;\n","import arrayPush from './_arrayPush.js';\nimport isFlattenable from './_isFlattenable.js';\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nexport default baseFlatten;\n","import baseFlatten from './_baseFlatten.js';\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nexport default flatten;\n","import flatten from './flatten.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nexport default flatRest;\n","import baseAt from './_baseAt.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\nvar at = flatRest(baseAt);\n\nexport default at;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/** `Object#toString` result references. */\nvar domExcTag = '[object DOMException]',\n errorTag = '[object Error]';\n\n/**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\nfunction isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n}\n\nexport default isError;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport isError from './isError.js';\n\n/**\n * Attempts to invoke `func`, returning either the result or the caught error\n * object. Any additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Function} func The function to attempt.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {*} Returns the `func` result or error object.\n * @example\n *\n * // Avoid throwing errors for invalid selectors.\n * var elements = _.attempt(function(selector) {\n * return document.querySelectorAll(selector);\n * }, '>_>');\n *\n * if (_.isError(elements)) {\n * elements = [];\n * }\n */\nvar attempt = baseRest(function(func, args) {\n try {\n return apply(func, undefined, args);\n } catch (e) {\n return isError(e) ? e : new Error(e);\n }\n});\n\nexport default attempt;\n","import toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\nfunction before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n}\n\nexport default before;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\nvar bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n});\n\n// Assign default placeholders.\nbind.placeholder = {};\n\nexport default bind;\n","import arrayEach from './_arrayEach.js';\nimport baseAssignValue from './_baseAssignValue.js';\nimport bind from './bind.js';\nimport flatRest from './_flatRest.js';\nimport toKey from './_toKey.js';\n\n/**\n * Binds methods of an object to the object itself, overwriting the existing\n * method.\n *\n * **Note:** This method doesn't set the \"length\" property of bound functions.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Object} object The object to bind and assign the bound methods to.\n * @param {...(string|string[])} methodNames The object method names to bind.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var view = {\n * 'label': 'docs',\n * 'click': function() {\n * console.log('clicked ' + this.label);\n * }\n * };\n *\n * _.bindAll(view, ['click']);\n * jQuery(element).on('click', view.click);\n * // => Logs 'clicked docs' when clicked.\n */\nvar bindAll = flatRest(function(object, methodNames) {\n arrayEach(methodNames, function(key) {\n key = toKey(key);\n baseAssignValue(object, key, bind(object[key], object));\n });\n return object;\n});\n\nexport default bindAll;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\nvar bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n});\n\n// Assign default placeholders.\nbindKey.placeholder = {};\n\nexport default bindKey;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import isArray from './isArray.js';\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nexport default castArray;\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n}\n\nexport default createRound;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded up to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round up.\n * @param {number} [precision=0] The precision to round up to.\n * @returns {number} Returns the rounded up number.\n * @example\n *\n * _.ceil(4.006);\n * // => 5\n *\n * _.ceil(6.004, 2);\n * // => 6.01\n *\n * _.ceil(6040, -2);\n * // => 6100\n */\nvar ceil = createRound('ceil');\n\nexport default ceil;\n","import lodash from './wrapperLodash.js';\n\n/**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\nfunction chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n}\n\nexport default chain;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nexport default chunk;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nexport default baseClamp;\n","import baseClamp from './_baseClamp.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nexport default clamp;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\nfunction cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneDeepWith;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\nfunction cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n}\n\nexport default cloneWith;\n","import LodashWrapper from './_LodashWrapper.js';\n\n/**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\nfunction wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n}\n\nexport default wrapperCommit;\n","/**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\nfunction compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default compact;\n","import arrayPush from './_arrayPush.js';\nimport baseFlatten from './_baseFlatten.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\nfunction concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n}\n\nexport default concat;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that iterates over `pairs` and invokes the corresponding\n * function of the first predicate to return truthy. The predicate-function\n * pairs are invoked with the `this` binding and arguments of the created\n * function.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Array} pairs The predicate-function pairs.\n * @returns {Function} Returns the new composite function.\n * @example\n *\n * var func = _.cond([\n * [_.matches({ 'a': 1 }), _.constant('matches A')],\n * [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],\n * [_.stubTrue, _.constant('no match')]\n * ]);\n *\n * func({ 'a': 1, 'b': 2 });\n * // => 'matches A'\n *\n * func({ 'a': 0, 'b': 1 });\n * // => 'matches B'\n *\n * func({ 'a': '1', 'b': '2' });\n * // => 'no match'\n */\nfunction cond(pairs) {\n var length = pairs == null ? 0 : pairs.length,\n toIteratee = baseIteratee;\n\n pairs = !length ? [] : arrayMap(pairs, function(pair) {\n if (typeof pair[1] != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return [toIteratee(pair[0]), pair[1]];\n });\n\n return baseRest(function(args) {\n var index = -1;\n while (++index < length) {\n var pair = pairs[index];\n if (apply(pair[0], this, args)) {\n return apply(pair[1], this, args);\n }\n }\n });\n}\n\nexport default cond;\n","/**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\nfunction baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n}\n\nexport default baseConformsTo;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n}\n\nexport default baseConforms;\n","import baseClone from './_baseClone.js';\nimport baseConforms from './_baseConforms.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes the predicate properties of `source` with\n * the corresponding property values of a given object, returning `true` if\n * all predicates return truthy, else `false`.\n *\n * **Note:** The created function is equivalent to `_.conformsTo` with\n * `source` partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 2, 'b': 1 },\n * { 'a': 1, 'b': 2 }\n * ];\n *\n * _.filter(objects, _.conforms({ 'b': function(n) { return n > 1; } }));\n * // => [{ 'a': 1, 'b': 2 }]\n */\nfunction conforms(source) {\n return baseConforms(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default conforms;\n","import baseConformsTo from './_baseConformsTo.js';\nimport keys from './keys.js';\n\n/**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\nfunction conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n}\n\nexport default conformsTo;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\nvar countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n});\n\nexport default countBy;\n","import baseAssign from './_baseAssign.js';\nimport baseCreate from './_baseCreate.js';\n\n/**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\nfunction create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n}\n\nexport default create;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8;\n\n/**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\nfunction curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurry.placeholder = {};\n\nexport default curry;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_RIGHT_FLAG = 16;\n\n/**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\nfunction curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n}\n\n// Assign default placeholders.\ncurryRight.placeholder = {};\n\nexport default curryRight;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * Checks `value` to determine whether a default value should be returned in\n * its place. The `defaultValue` is returned if `value` is `NaN`, `null`,\n * or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Util\n * @param {*} value The value to check.\n * @param {*} defaultValue The default value.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * _.defaultTo(1, 10);\n * // => 1\n *\n * _.defaultTo(undefined, 10);\n * // => 10\n */\nfunction defaultTo(value, defaultValue) {\n return (value == null || value !== value) ? defaultValue : value;\n}\n\nexport default defaultTo;\n","import baseRest from './_baseRest.js';\nimport eq from './eq.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keysIn from './keysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nexport default defaults;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","import baseMerge from './_baseMerge.js';\nimport isObject from './isObject.js';\n\n/**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n}\n\nexport default customDefaultsMerge;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\n\nexport default mergeWith;\n","import apply from './_apply.js';\nimport baseRest from './_baseRest.js';\nimport customDefaultsMerge from './_customDefaultsMerge.js';\nimport mergeWith from './mergeWith.js';\n\n/**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\nvar defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n});\n\nexport default defaultsDeep;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\nfunction baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n}\n\nexport default baseDelay;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\nvar defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n});\n\nexport default defer;\n","import baseDelay from './_baseDelay.js';\nimport baseRest from './_baseRest.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nexport default delay;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseDifference;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nexport default difference;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nexport default last;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default differenceBy;\n","import baseDifference from './_baseDifference.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\nvar differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n});\n\nexport default differenceWith;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Divide two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} dividend The first number in a division.\n * @param {number} divisor The second number in a division.\n * @returns {number} Returns the quotient.\n * @example\n *\n * _.divide(6, 4);\n * // => 1.5\n */\nvar divide = createMathOperation(function(dividend, divisor) {\n return dividend / divisor;\n}, 1);\n\nexport default divide;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default drop;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\nfunction dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default dropRight;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nexport default baseWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true, true)\n : [];\n}\n\nexport default dropRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\nfunction dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), true)\n : [];\n}\n\nexport default dropWhile;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","/**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEachRight;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseForRight = createBaseFor(true);\n\nexport default baseForRight;\n","import baseForRight from './_baseForRight.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n}\n\nexport default baseForOwnRight;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEachRight = createBaseEach(baseForOwnRight, true);\n\nexport default baseEachRight;\n","import arrayEachRight from './_arrayEachRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\nfunction forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEachRight;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\nfunction endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n}\n\nexport default endsWith;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\nfunction baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n}\n\nexport default baseToPairs;\n","/**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\nfunction setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n}\n\nexport default setToPairs;\n","import baseToPairs from './_baseToPairs.js';\nimport getTag from './_getTag.js';\nimport mapToArray from './_mapToArray.js';\nimport setToPairs from './_setToPairs.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\nfunction createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n}\n\nexport default createToPairs;\n","import createToPairs from './_createToPairs.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\nvar toPairs = createToPairs(keys);\n\nexport default toPairs;\n","import createToPairs from './_createToPairs.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\nvar toPairsIn = createToPairs(keysIn);\n\nexport default toPairsIn;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map characters to HTML entities. */\nvar htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n\n/**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nvar escapeHtmlChar = basePropertyOf(htmlEscapes);\n\nexport default escapeHtmlChar;\n","import escapeHtmlChar from './_escapeHtmlChar.js';\nimport toString from './toString.js';\n\n/** Used to match HTML entities and HTML characters. */\nvar reUnescapedHtml = /[&<>\"']/g,\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\nfunction escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n}\n\nexport default escape;\n","import toString from './toString.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n/**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\nfunction escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n}\n\nexport default escapeRegExp;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nexport default arrayEvery;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nexport default baseEvery;\n","import arrayEvery from './_arrayEvery.js';\nimport baseEvery from './_baseEvery.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default every;\n","import baseClamp from './_baseClamp.js';\nimport toInteger from './toInteger.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\nfunction toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n}\n\nexport default toLength;\n","import toInteger from './toInteger.js';\nimport toLength from './toLength.js';\n\n/**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\nfunction baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n}\n\nexport default baseFill;\n","import baseFill from './_baseFill.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\nfunction fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n}\n\nexport default fill;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nexport default baseFilter;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default filter;\n","import baseIteratee from './_baseIteratee.js';\nimport isArrayLike from './isArrayLike.js';\nimport keys from './keys.js';\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nexport default createFind;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nexport default findIndex;\n","import createFind from './_createFind.js';\nimport findIndex from './findIndex.js';\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nexport default find;\n","/**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\nfunction baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n}\n\nexport default baseFindKey;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\nfunction findKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwn);\n}\n\nexport default findKey;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIteratee from './_baseIteratee.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nexport default findLastIndex;\n","import createFind from './_createFind.js';\nimport findLastIndex from './findLastIndex.js';\n\n/**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\nvar findLast = createFind(findLastIndex);\n\nexport default findLast;\n","import baseFindKey from './_baseFindKey.js';\nimport baseForOwnRight from './_baseForOwnRight.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\nfunction findLastKey(object, predicate) {\n return baseFindKey(object, baseIteratee(predicate, 3), baseForOwnRight);\n}\n\nexport default findLastKey;\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nexport default head;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nexport default flatMap;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n}\n\nexport default flatMapDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport map from './map.js';\nimport toInteger from './toInteger.js';\n\n/**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\nfunction flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n}\n\nexport default flatMapDepth;\n","import baseFlatten from './_baseFlatten.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nexport default flattenDeep;\n","import baseFlatten from './_baseFlatten.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\nfunction flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n}\n\nexport default flattenDepth;\n","import createWrap from './_createWrap.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_FLIP_FLAG = 512;\n\n/**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\nfunction flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n}\n\nexport default flip;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round down.\n * @param {number} [precision=0] The precision to round down to.\n * @returns {number} Returns the rounded down number.\n * @example\n *\n * _.floor(4.006);\n * // => 4\n *\n * _.floor(0.046, 2);\n * // => 0.04\n *\n * _.floor(4060, -2);\n * // => 4000\n */\nvar floor = createRound('floor');\n\nexport default floor;\n","import LodashWrapper from './_LodashWrapper.js';\nimport flatRest from './_flatRest.js';\nimport getData from './_getData.js';\nimport getFuncName from './_getFuncName.js';\nimport isArray from './isArray.js';\nimport isLaziable from './_isLaziable.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_CURRY_FLAG = 8,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\nfunction createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n}\n\nexport default createFlow;\n","import createFlow from './_createFlow.js';\n\n/**\n * Creates a function that returns the result of invoking the given functions\n * with the `this` binding of the created function, where each successive\n * invocation is supplied the return value of the previous.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flowRight\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flow([_.add, square]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flow = createFlow();\n\nexport default flow;\n","import createFlow from './_createFlow.js';\n\n/**\n * This method is like `_.flow` except that it creates a function that\n * invokes the given functions from right to left.\n *\n * @static\n * @since 3.0.0\n * @memberOf _\n * @category Util\n * @param {...(Function|Function[])} [funcs] The functions to invoke.\n * @returns {Function} Returns the new composite function.\n * @see _.flow\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var addSquare = _.flowRight([square, _.add]);\n * addSquare(1, 2);\n * // => 9\n */\nvar flowRight = createFlow(true);\n\nexport default flowRight;\n","import baseFor from './_baseFor.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\nfunction forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, castFunction(iteratee), keysIn);\n}\n\nexport default forIn;\n","import baseForRight from './_baseForRight.js';\nimport castFunction from './_castFunction.js';\nimport keysIn from './keysIn.js';\n\n/**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\nfunction forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, castFunction(iteratee), keysIn);\n}\n\nexport default forInRight;\n","import baseForOwn from './_baseForOwn.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nexport default forOwn;\n","import baseForOwnRight from './_baseForOwnRight.js';\nimport castFunction from './_castFunction.js';\n\n/**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\nfunction forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, castFunction(iteratee));\n}\n\nexport default forOwnRight;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nexport default fromPairs;\n","import arrayFilter from './_arrayFilter.js';\nimport isFunction from './isFunction.js';\n\n/**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\nfunction baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n}\n\nexport default baseFunctions;\n","import baseFunctions from './_baseFunctions.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\nfunction functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n}\n\nexport default functions;\n","import baseFunctions from './_baseFunctions.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\nfunction functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n}\n\nexport default functionsIn;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nexport default groupBy;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nexport default baseGt;\n","import toNumber from './toNumber.js';\n\n/**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\nfunction createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n}\n\nexport default createRelationalOperation;\n","import baseGt from './_baseGt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\nvar gt = createRelationalOperation(baseGt);\n\nexport default gt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\nvar gte = createRelationalOperation(function(value, other) {\n return value >= other;\n});\n\nexport default gte;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n}\n\nexport default baseHas;\n","import baseHas from './_baseHas.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nexport default has;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\nfunction baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n}\n\nexport default baseInRange;\n","import baseInRange from './_baseInRange.js';\nimport toFinite from './toFinite.js';\nimport toNumber from './toNumber.js';\n\n/**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\nfunction inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n}\n\nexport default inRange;\n","import baseGetTag from './_baseGetTag.js';\nimport isArray from './isArray.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nexport default isString;\n","import arrayMap from './_arrayMap.js';\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nexport default baseValues;\n","import baseValues from './_baseValues.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nexport default values;\n","import baseIndexOf from './_baseIndexOf.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport toInteger from './toInteger.js';\nimport values from './values.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nexport default includes;\n","import baseIndexOf from './_baseIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\nfunction indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n}\n\nexport default indexOf;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\nfunction initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n}\n\nexport default initial;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport arrayMap from './_arrayMap.js';\nimport baseUnary from './_baseUnary.js';\nimport cacheHas from './_cacheHas.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseIntersection;\n","import isArrayLikeObject from './isArrayLikeObject.js';\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nexport default castArrayLikeObject;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nexport default intersection;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\nvar intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, baseIteratee(iteratee, 2))\n : [];\n});\n\nexport default intersectionBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIntersection from './_baseIntersection.js';\nimport baseRest from './_baseRest.js';\nimport castArrayLikeObject from './_castArrayLikeObject.js';\nimport last from './last.js';\n\n/**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\nvar intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n});\n\nexport default intersectionWith;\n","import baseForOwn from './_baseForOwn.js';\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nexport default baseInverter;\n","import baseInverter from './_baseInverter.js';\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nexport default createInverter;\n","import constant from './constant.js';\nimport createInverter from './_createInverter.js';\nimport identity from './identity.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nexport default invert;\n","import baseIteratee from './_baseIteratee.js';\nimport createInverter from './_createInverter.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\nvar invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n}, baseIteratee);\n\nexport default invertBy;\n","import baseGet from './_baseGet.js';\nimport baseSlice from './_baseSlice.js';\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nexport default parent;\n","import apply from './_apply.js';\nimport castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\nfunction baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n}\n\nexport default baseInvoke;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\nvar invoke = baseRest(baseInvoke);\n\nexport default invoke;\n","import apply from './_apply.js';\nimport baseEach from './_baseEach.js';\nimport baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\nvar invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n});\n\nexport default invokeMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\n\n/**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\nfunction baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n}\n\nexport default baseIsArrayBuffer;\n","import baseIsArrayBuffer from './_baseIsArrayBuffer.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer;\n\n/**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\nvar isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\nexport default isArrayBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nexport default isBoolean;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nexport default baseIsDate;\n","import baseIsDate from './_baseIsDate.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nexport default isDate;\n","import isObjectLike from './isObjectLike.js';\nimport isPlainObject from './isPlainObject.js';\n\n/**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\nfunction isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n}\n\nexport default isElement;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLike from './isArrayLike.js';\nimport isBuffer from './isBuffer.js';\nimport isPrototype from './_isPrototype.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\nfunction isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n}\n\nexport default isEqualWith;\n","import root from './_root.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite;\n\n/**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\nfunction isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n}\n\nexport default isFinite;\n","import toInteger from './toInteger.js';\n\n/**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\nfunction isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n}\n\nexport default isInteger;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\nfunction isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n}\n\nexport default isMatch;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\n\n/**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\nfunction isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n}\n\nexport default isMatchWith;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import isNumber from './isNumber.js';\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nexport default isNaN;\n","import coreJsData from './_coreJsData.js';\nimport isFunction from './isFunction.js';\nimport stubFalse from './stubFalse.js';\n\n/**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\nvar isMaskable = coreJsData ? isFunction : stubFalse;\n\nexport default isMaskable;\n","import baseIsNative from './_baseIsNative.js';\nimport isMaskable from './_isMaskable.js';\n\n/** Error message constants. */\nvar CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.';\n\n/**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n}\n\nexport default isNative;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nexport default isNil;\n","/**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\nfunction isNull(value) {\n return value === null;\n}\n\nexport default isNull;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import isInteger from './isInteger.js';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\nfunction isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isSafeInteger;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakMapTag = '[object WeakMap]';\n\n/**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\nfunction isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n}\n\nexport default isWeakMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar weakSetTag = '[object WeakSet]';\n\n/**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\nfunction isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n}\n\nexport default isWeakSet;\n","import baseClone from './_baseClone.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that invokes `func` with the arguments of the created\n * function. If `func` is a property name, the created function returns the\n * property value for a given element. If `func` is an array or object, the\n * created function returns `true` for elements that contain the equivalent\n * source properties, otherwise it returns `false`.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Util\n * @param {*} [func=_.identity] The value to convert to a callback.\n * @returns {Function} Returns the callback.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, _.iteratee({ 'user': 'barney', 'active': true }));\n * // => [{ 'user': 'barney', 'age': 36, 'active': true }]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, _.iteratee(['user', 'fred']));\n * // => [{ 'user': 'fred', 'age': 40 }]\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, _.iteratee('user'));\n * // => ['barney', 'fred']\n *\n * // Create custom iteratee shorthands.\n * _.iteratee = _.wrap(_.iteratee, function(iteratee, func) {\n * return !_.isRegExp(func) ? iteratee(func) : function(string) {\n * return func.test(string);\n * };\n * });\n *\n * _.filter(['abc', 'def'], /ef/);\n * // => ['def']\n */\nfunction iteratee(func) {\n return baseIteratee(typeof func == 'function' ? func : baseClone(func, CLONE_DEEP_FLAG));\n}\n\nexport default iteratee;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeJoin = arrayProto.join;\n\n/**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\nfunction join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n}\n\nexport default join;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\nvar keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n});\n\nexport default keyBy;\n","/**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n}\n\nexport default strictLastIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictLastIndexOf from './_strictLastIndexOf.js';\nimport toInteger from './toInteger.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\nfunction lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n}\n\nexport default lastIndexOf;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\nvar lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n});\n\nexport default lowerCase;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\nvar lowerFirst = createCaseFirst('toLowerCase');\n\nexport default lowerFirst;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nexport default baseLt;\n","import baseLt from './_baseLt.js';\nimport createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\nvar lt = createRelationalOperation(baseLt);\n\nexport default lt;\n","import createRelationalOperation from './_createRelationalOperation.js';\n\n/**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\nvar lte = createRelationalOperation(function(value, other) {\n return value <= other;\n});\n\nexport default lte;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\nfunction mapKeys(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n}\n\nexport default mapKeys;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nexport default mapValues;\n","import baseClone from './_baseClone.js';\nimport baseMatches from './_baseMatches.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between a given\n * object and `source`, returning `true` if the given object has equivalent\n * property values, else `false`.\n *\n * **Note:** The created function is equivalent to `_.isMatch` with `source`\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.filter(objects, _.matches({ 'a': 4, 'c': 6 }));\n * // => [{ 'a': 4, 'b': 5, 'c': 6 }]\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matches(source) {\n return baseMatches(baseClone(source, CLONE_DEEP_FLAG));\n}\n\nexport default matches;\n","import baseClone from './_baseClone.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1;\n\n/**\n * Creates a function that performs a partial deep comparison between the\n * value at `path` of a given object to `srcValue`, returning `true` if the\n * object value is equivalent, else `false`.\n *\n * **Note:** Partial comparisons will match empty array and empty object\n * `srcValue` values against any array or object value, respectively. See\n * `_.isEqual` for a list of supported value comparisons.\n *\n * **Note:** Multiple values can be checked by combining several matchers\n * using `_.overSome`\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n * @example\n *\n * var objects = [\n * { 'a': 1, 'b': 2, 'c': 3 },\n * { 'a': 4, 'b': 5, 'c': 6 }\n * ];\n *\n * _.find(objects, _.matchesProperty('a', 4));\n * // => { 'a': 4, 'b': 5, 'c': 6 }\n *\n * // Checking for several possible values\n * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)]));\n * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }]\n */\nfunction matchesProperty(path, srcValue) {\n return baseMatchesProperty(path, baseClone(srcValue, CLONE_DEEP_FLAG));\n}\n\nexport default matchesProperty;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nexport default max;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nexport default maxBy;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nexport default baseSum;\n","import baseSum from './_baseSum.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\nfunction baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n}\n\nexport default baseMean;\n","import baseMean from './_baseMean.js';\nimport identity from './identity.js';\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nexport default mean;\n","import baseIteratee from './_baseIteratee.js';\nimport baseMean from './_baseMean.js';\n\n/**\n * This method is like `_.mean` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be averaged.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the mean.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.meanBy(objects, function(o) { return o.n; });\n * // => 5\n *\n * // The `_.property` iteratee shorthand.\n * _.meanBy(objects, 'n');\n * // => 5\n */\nfunction meanBy(array, iteratee) {\n return baseMean(array, baseIteratee(iteratee, 2));\n}\n\nexport default meanBy;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * Creates a function that invokes the method at `path` of a given object.\n * Any additional arguments are provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': _.constant(2) } },\n * { 'a': { 'b': _.constant(1) } }\n * ];\n *\n * _.map(objects, _.method('a.b'));\n * // => [2, 1]\n *\n * _.map(objects, _.method(['a', 'b']));\n * // => [2, 1]\n */\nvar method = baseRest(function(path, args) {\n return function(object) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default method;\n","import baseInvoke from './_baseInvoke.js';\nimport baseRest from './_baseRest.js';\n\n/**\n * The opposite of `_.method`; this method creates a function that invokes\n * the method at a given path of `object`. Any additional arguments are\n * provided to the invoked method.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Util\n * @param {Object} object The object to query.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {Function} Returns the new invoker function.\n * @example\n *\n * var array = _.times(3, _.constant),\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.methodOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.methodOf(object));\n * // => [2, 0]\n */\nvar methodOf = baseRest(function(object, args) {\n return function(path) {\n return baseInvoke(object, path, args);\n };\n});\n\nexport default methodOf;\n","import baseExtremum from './_baseExtremum.js';\nimport baseLt from './_baseLt.js';\nimport identity from './identity.js';\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nexport default min;\n","import baseExtremum from './_baseExtremum.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseLt from './_baseLt.js';\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nexport default minBy;\n","import arrayEach from './_arrayEach.js';\nimport arrayPush from './_arrayPush.js';\nimport baseFunctions from './_baseFunctions.js';\nimport copyArray from './_copyArray.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport keys from './keys.js';\n\n/**\n * Adds all own enumerable string keyed function properties of a source\n * object to the destination object. If `object` is a function, then methods\n * are added to its prototype as well.\n *\n * **Note:** Use `_.runInContext` to create a pristine `lodash` function to\n * avoid conflicts caused by modifying the original.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {Function|Object} [object=lodash] The destination object.\n * @param {Object} source The object of functions to add.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.chain=true] Specify whether mixins are chainable.\n * @returns {Function|Object} Returns `object`.\n * @example\n *\n * function vowels(string) {\n * return _.filter(string, function(v) {\n * return /[aeiou]/i.test(v);\n * });\n * }\n *\n * _.mixin({ 'vowels': vowels });\n * _.vowels('fred');\n * // => ['e']\n *\n * _('fred').vowels().value();\n * // => ['e']\n *\n * _.mixin({ 'vowels': vowels }, { 'chain': false });\n * _('fred').vowels();\n * // => ['e']\n */\nfunction mixin(object, source, options) {\n var props = keys(source),\n methodNames = baseFunctions(source, props);\n\n var chain = !(isObject(options) && 'chain' in options) || !!options.chain,\n isFunc = isFunction(object);\n\n arrayEach(methodNames, function(methodName) {\n var func = source[methodName];\n object[methodName] = func;\n if (isFunc) {\n object.prototype[methodName] = function() {\n var chainAll = this.__chain__;\n if (chain || chainAll) {\n var result = object(this.__wrapped__),\n actions = result.__actions__ = copyArray(this.__actions__);\n\n actions.push({ 'func': func, 'args': arguments, 'thisArg': object });\n result.__chain__ = chainAll;\n return result;\n }\n return func.apply(object, arrayPush([this.value()], arguments));\n };\n }\n });\n\n return object;\n}\n\nexport default mixin;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Multiply two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Math\n * @param {number} multiplier The first number in a multiplication.\n * @param {number} multiplicand The second number in a multiplication.\n * @returns {number} Returns the product.\n * @example\n *\n * _.multiply(6, 4);\n * // => 24\n */\nvar multiply = createMathOperation(function(multiplier, multiplicand) {\n return multiplier * multiplicand;\n}, 1);\n\nexport default multiply;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nexport default negate;\n","/**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n}\n\nexport default iteratorToArray;\n","import Symbol from './_Symbol.js';\nimport copyArray from './_copyArray.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport iteratorToArray from './_iteratorToArray.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\nimport stringToArray from './_stringToArray.js';\nimport values from './values.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Built-in value references. */\nvar symIterator = Symbol ? Symbol.iterator : undefined;\n\n/**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\nfunction toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n}\n\nexport default toArray;\n","import toArray from './toArray.js';\n\n/**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\nfunction wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n}\n\nexport default wrapperNext;\n","import isIndex from './_isIndex.js';\n\n/**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\nfunction baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n}\n\nexport default baseNth;\n","import baseNth from './_baseNth.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\nfunction nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n}\n\nexport default nth;\n","import baseNth from './_baseNth.js';\nimport baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a function that gets the argument at index `n`. If `n` is negative,\n * the nth argument from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [n=0] The index of the argument to return.\n * @returns {Function} Returns the new pass-thru function.\n * @example\n *\n * var func = _.nthArg(1);\n * func('a', 'b', 'c', 'd');\n * // => 'b'\n *\n * var func = _.nthArg(-2);\n * func('a', 'b', 'c', 'd');\n * // => 'c'\n */\nfunction nthArg(n) {\n n = toInteger(n);\n return baseRest(function(args) {\n return baseNth(args, n);\n });\n}\n\nexport default nthArg;\n","import castPath from './_castPath.js';\nimport last from './last.js';\nimport parent from './_parent.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nexport default baseUnset;\n","import isPlainObject from './isPlainObject.js';\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nexport default customOmitClone;\n","import arrayMap from './_arrayMap.js';\nimport baseClone from './_baseClone.js';\nimport baseUnset from './_baseUnset.js';\nimport castPath from './_castPath.js';\nimport copyObject from './_copyObject.js';\nimport customOmitClone from './_customOmitClone.js';\nimport flatRest from './_flatRest.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nexport default omit;\n","import assignValue from './_assignValue.js';\nimport castPath from './_castPath.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nexport default baseSet;\n","import baseGet from './_baseGet.js';\nimport baseSet from './_baseSet.js';\nimport castPath from './_castPath.js';\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nexport default basePickBy;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport basePickBy from './_basePickBy.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nexport default pickBy;\n","import baseIteratee from './_baseIteratee.js';\nimport negate from './negate.js';\nimport pickBy from './pickBy.js';\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nexport default omitBy;\n","import before from './before.js';\n\n/**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\nfunction once(func) {\n return before(2, func);\n}\n\nexport default once;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nexport default baseSortBy;\n","import isSymbol from './isSymbol.js';\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nexport default compareAscending;\n","import compareAscending from './_compareAscending.js';\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nexport default compareMultiple;\n","import arrayMap from './_arrayMap.js';\nimport baseGet from './_baseGet.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport baseSortBy from './_baseSortBy.js';\nimport baseUnary from './_baseUnary.js';\nimport compareMultiple from './_compareMultiple.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nexport default baseOrderBy;\n","import baseOrderBy from './_baseOrderBy.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nexport default orderBy;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\nfunction createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n}\n\nexport default createOver;\n","import arrayMap from './_arrayMap.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that invokes `iteratees` with the arguments it receives\n * and returns their results.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to invoke.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.over([Math.max, Math.min]);\n *\n * func(1, 2, 3, 4);\n * // => [4, 1]\n */\nvar over = createOver(arrayMap);\n\nexport default over;\n","import baseRest from './_baseRest.js';\n\n/**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nvar castRest = baseRest;\n\nexport default castRest;\n","import apply from './_apply.js';\nimport arrayMap from './_arrayMap.js';\nimport baseFlatten from './_baseFlatten.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseRest from './_baseRest.js';\nimport baseUnary from './_baseUnary.js';\nimport castRest from './_castRest.js';\nimport isArray from './isArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\nvar overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(baseIteratee))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n});\n\nexport default overArgs;\n","import arrayEvery from './_arrayEvery.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **all** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overEvery([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => false\n *\n * func(NaN);\n * // => false\n */\nvar overEvery = createOver(arrayEvery);\n\nexport default overEvery;\n","import arraySome from './_arraySome.js';\nimport createOver from './_createOver.js';\n\n/**\n * Creates a function that checks if **any** of the `predicates` return\n * truthy when invoked with the arguments it receives.\n *\n * Following shorthands are possible for providing predicates.\n * Pass an `Object` and it will be used as an parameter for `_.matches` to create the predicate.\n * Pass an `Array` of parameters for `_.matchesProperty` and the predicate will be created using them.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {...(Function|Function[])} [predicates=[_.identity]]\n * The predicates to check.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var func = _.overSome([Boolean, isFinite]);\n *\n * func('1');\n * // => true\n *\n * func(null);\n * // => true\n *\n * func(NaN);\n * // => false\n *\n * var matchesFunc = _.overSome([{ 'a': 1 }, { 'a': 2 }])\n * var matchesPropertyFunc = _.overSome([['a', 1], ['a', 2]])\n */\nvar overSome = createOver(arraySome);\n\nexport default overSome;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor;\n\n/**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\nfunction baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n}\n\nexport default baseRepeat;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import baseRepeat from './_baseRepeat.js';\nimport baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\n\n/**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\nfunction createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n}\n\nexport default createPadding;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeFloor = Math.floor;\n\n/**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\nfunction pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n}\n\nexport default pad;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\nfunction padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n}\n\nexport default padEnd;\n","import createPadding from './_createPadding.js';\nimport stringSize from './_stringSize.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\nfunction padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n}\n\nexport default padStart;\n","import root from './_root.js';\nimport toString from './toString.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeParseInt = root.parseInt;\n\n/**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\nfunction parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n}\n\nexport default parseInt;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_FLAG = 32;\n\n/**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\nvar partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartial.placeholder = {};\n\nexport default partial;\n","import baseRest from './_baseRest.js';\nimport createWrap from './_createWrap.js';\nimport getHolder from './_getHolder.js';\nimport replaceHolders from './_replaceHolders.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_PARTIAL_RIGHT_FLAG = 64;\n\n/**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\nvar partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n});\n\n// Assign default placeholders.\npartialRight.placeholder = {};\n\nexport default partialRight;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import basePickBy from './_basePickBy.js';\nimport hasIn from './hasIn.js';\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nexport default basePick;\n","import basePick from './_basePick.js';\nimport flatRest from './_flatRest.js';\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nexport default pick;\n","import baseLodash from './_baseLodash.js';\nimport wrapperClone from './_wrapperClone.js';\n\n/**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\nfunction wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n}\n\nexport default wrapperPlant;\n","import baseGet from './_baseGet.js';\n\n/**\n * The opposite of `_.property`; this method creates a function that returns\n * the value at a given path of `object`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Util\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var array = [0, 1, 2],\n * object = { 'a': array, 'b': array, 'c': array };\n *\n * _.map(['a[2]', 'c[0]'], _.propertyOf(object));\n * // => [2, 0]\n *\n * _.map([['a', '2'], ['c', '0']], _.propertyOf(object));\n * // => [2, 0]\n */\nfunction propertyOf(object) {\n return function(path) {\n return object == null ? undefined : baseGet(object, path);\n };\n}\n\nexport default propertyOf;\n","/**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseIndexOfWith;\n","import arrayMap from './_arrayMap.js';\nimport baseIndexOf from './_baseIndexOf.js';\nimport baseIndexOfWith from './_baseIndexOfWith.js';\nimport baseUnary from './_baseUnary.js';\nimport copyArray from './_copyArray.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n}\n\nexport default basePullAll;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\nfunction pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n}\n\nexport default pullAll;\n","import baseRest from './_baseRest.js';\nimport pullAll from './pullAll.js';\n\n/**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\nvar pull = baseRest(pullAll);\n\nexport default pull;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\nfunction pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, baseIteratee(iteratee, 2))\n : array;\n}\n\nexport default pullAllBy;\n","import basePullAll from './_basePullAll.js';\n\n/**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\nfunction pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n}\n\nexport default pullAllWith;\n","import baseUnset from './_baseUnset.js';\nimport isIndex from './_isIndex.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n}\n\nexport default basePullAt;\n","import arrayMap from './_arrayMap.js';\nimport baseAt from './_baseAt.js';\nimport basePullAt from './_basePullAt.js';\nimport compareAscending from './_compareAscending.js';\nimport flatRest from './_flatRest.js';\nimport isIndex from './_isIndex.js';\n\n/**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\nvar pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n});\n\nexport default pullAt;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeRandom = Math.random;\n\n/**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\nfunction baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n}\n\nexport default baseRandom;\n","import baseRandom from './_baseRandom.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseFloat = parseFloat;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min,\n nativeRandom = Math.random;\n\n/**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\nfunction random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n}\n\nexport default random;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nexport default baseRange;\n","import baseRange from './_baseRange.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toFinite from './toFinite.js';\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nexport default createRange;\n","import createRange from './_createRange.js';\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nexport default range;\n","import createRange from './_createRange.js';\n\n/**\n * This method is like `_.range` except that it populates values in\n * descending order.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.range\n * @example\n *\n * _.rangeRight(4);\n * // => [3, 2, 1, 0]\n *\n * _.rangeRight(-4);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 5);\n * // => [4, 3, 2, 1]\n *\n * _.rangeRight(0, 20, 5);\n * // => [15, 10, 5, 0]\n *\n * _.rangeRight(0, -4, -1);\n * // => [-3, -2, -1, 0]\n *\n * _.rangeRight(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.rangeRight(0);\n * // => []\n */\nvar rangeRight = createRange(true);\n\nexport default rangeRight;\n","import createWrap from './_createWrap.js';\nimport flatRest from './_flatRest.js';\n\n/** Used to compose bitmasks for function metadata. */\nvar WRAP_REARG_FLAG = 256;\n\n/**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\nvar rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n});\n\nexport default rearg;\n","/**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\nfunction baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n}\n\nexport default baseReduce;\n","import arrayReduce from './_arrayReduce.js';\nimport baseEach from './_baseEach.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\nfunction reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n}\n\nexport default reduce;\n","/**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n}\n\nexport default arrayReduceRight;\n","import arrayReduceRight from './_arrayReduceRight.js';\nimport baseEachRight from './_baseEachRight.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseReduce from './_baseReduce.js';\nimport isArray from './isArray.js';\n\n/**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\nfunction reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n}\n\nexport default reduceRight;\n","import arrayFilter from './_arrayFilter.js';\nimport baseFilter from './_baseFilter.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\nimport negate from './negate.js';\n\n/**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\nfunction reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(baseIteratee(predicate, 3)));\n}\n\nexport default reject;\n","import baseIteratee from './_baseIteratee.js';\nimport basePullAt from './_basePullAt.js';\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = baseIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n}\n\nexport default remove;\n","import baseRepeat from './_baseRepeat.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\nfunction repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n}\n\nexport default repeat;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import baseRest from './_baseRest.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n}\n\nexport default rest;\n","import castPath from './_castPath.js';\nimport isFunction from './isFunction.js';\nimport toKey from './_toKey.js';\n\n/**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\nfunction result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n}\n\nexport default result;\n","/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeReverse = arrayProto.reverse;\n\n/**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\nfunction reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n}\n\nexport default reverse;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\nfunction arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n}\n\nexport default arraySample;\n","import arraySample from './_arraySample.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\nfunction baseSample(collection) {\n return arraySample(values(collection));\n}\n\nexport default baseSample;\n","import arraySample from './_arraySample.js';\nimport baseSample from './_baseSample.js';\nimport isArray from './isArray.js';\n\n/**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\nfunction sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n}\n\nexport default sample;\n","import baseRandom from './_baseRandom.js';\n\n/**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\nfunction shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n}\n\nexport default shuffleSelf;\n","import baseClamp from './_baseClamp.js';\nimport copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n}\n\nexport default arraySampleSize;\n","import baseClamp from './_baseClamp.js';\nimport shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\nfunction baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n}\n\nexport default baseSampleSize;\n","import arraySampleSize from './_arraySampleSize.js';\nimport baseSampleSize from './_baseSampleSize.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\nfunction sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n}\n\nexport default sampleSize;\n","import baseSet from './_baseSet.js';\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nexport default set;\n","import baseSet from './_baseSet.js';\n\n/**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\nfunction setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n}\n\nexport default setWith;\n","import copyArray from './_copyArray.js';\nimport shuffleSelf from './_shuffleSelf.js';\n\n/**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n}\n\nexport default arrayShuffle;\n","import shuffleSelf from './_shuffleSelf.js';\nimport values from './values.js';\n\n/**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\nfunction baseShuffle(collection) {\n return shuffleSelf(values(collection));\n}\n\nexport default baseShuffle;\n","import arrayShuffle from './_arrayShuffle.js';\nimport baseShuffle from './_baseShuffle.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\nfunction shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n}\n\nexport default shuffle;\n","import baseKeys from './_baseKeys.js';\nimport getTag from './_getTag.js';\nimport isArrayLike from './isArrayLike.js';\nimport isString from './isString.js';\nimport stringSize from './_stringSize.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\nfunction size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n}\n\nexport default size;\n","import baseSlice from './_baseSlice.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nexport default slice;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nexport default snakeCase;\n","import baseEach from './_baseEach.js';\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nexport default baseSome;\n","import arraySome from './_arraySome.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseSome from './_baseSome.js';\nimport isArray from './isArray.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nexport default some;\n","import baseFlatten from './_baseFlatten.js';\nimport baseOrderBy from './_baseOrderBy.js';\nimport baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nexport default sortBy;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeFloor = Math.floor,\n nativeMin = Math.min;\n\n/**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n}\n\nexport default baseSortedIndexBy;\n","import baseSortedIndexBy from './_baseSortedIndexBy.js';\nimport identity from './identity.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n/**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\nfunction baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n}\n\nexport default baseSortedIndex;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\nfunction sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n}\n\nexport default sortedIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\nfunction sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2));\n}\n\nexport default sortedIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\nfunction sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedIndexOf;\n","import baseSortedIndex from './_baseSortedIndex.js';\n\n/**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\nfunction sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n}\n\nexport default sortedLastIndex;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedIndexBy from './_baseSortedIndexBy.js';\n\n/**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\nfunction sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, baseIteratee(iteratee, 2), true);\n}\n\nexport default sortedLastIndexBy;\n","import baseSortedIndex from './_baseSortedIndex.js';\nimport eq from './eq.js';\n\n/**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\nfunction sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default sortedLastIndexOf;\n","import eq from './eq.js';\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nexport default baseSortedUniq;\n","import baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nexport default sortedUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSortedUniq from './_baseSortedUniq.js';\n\n/**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\nfunction sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, baseIteratee(iteratee, 2))\n : [];\n}\n\nexport default sortedUniqBy;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport isRegExp from './isRegExp.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/** Used as references for the maximum length and index of an array. */\nvar MAX_ARRAY_LENGTH = 4294967295;\n\n/**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\nfunction split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n}\n\nexport default split;\n","import apply from './_apply.js';\nimport arrayPush from './_arrayPush.js';\nimport baseRest from './_baseRest.js';\nimport castSlice from './_castSlice.js';\nimport toInteger from './toInteger.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\nfunction spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n}\n\nexport default spread;\n","import createCompounder from './_createCompounder.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\nexport default startCase;\n","import baseClamp from './_baseClamp.js';\nimport baseToString from './_baseToString.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\nfunction startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n}\n\nexport default startsWith;\n","/**\n * This method returns a new empty object.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Object} Returns the new empty object.\n * @example\n *\n * var objects = _.times(2, _.stubObject);\n *\n * console.log(objects);\n * // => [{}, {}]\n *\n * console.log(objects[0] === objects[1]);\n * // => false\n */\nfunction stubObject() {\n return {};\n}\n\nexport default stubObject;\n","/**\n * This method returns an empty string.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {string} Returns the empty string.\n * @example\n *\n * _.times(2, _.stubString);\n * // => ['', '']\n */\nfunction stubString() {\n return '';\n}\n\nexport default stubString;\n","/**\n * This method returns `true`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `true`.\n * @example\n *\n * _.times(2, _.stubTrue);\n * // => [true, true]\n */\nfunction stubTrue() {\n return true;\n}\n\nexport default stubTrue;\n","import createMathOperation from './_createMathOperation.js';\n\n/**\n * Subtract two numbers.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {number} minuend The first number in a subtraction.\n * @param {number} subtrahend The second number in a subtraction.\n * @returns {number} Returns the difference.\n * @example\n *\n * _.subtract(6, 4);\n * // => 2\n */\nvar subtract = createMathOperation(function(minuend, subtrahend) {\n return minuend - subtrahend;\n}, 0);\n\nexport default subtract;\n","import baseSum from './_baseSum.js';\nimport identity from './identity.js';\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nexport default sum;\n","import baseIteratee from './_baseIteratee.js';\nimport baseSum from './_baseSum.js';\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nexport default sumBy;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\nfunction tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n}\n\nexport default tail;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\nfunction take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n}\n\nexport default take;\n","import baseSlice from './_baseSlice.js';\nimport toInteger from './toInteger.js';\n\n/**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\nfunction takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n}\n\nexport default takeRight;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nexport default takeRightWhile;\n","import baseIteratee from './_baseIteratee.js';\nimport baseWhile from './_baseWhile.js';\n\n/**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\nfunction takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3))\n : [];\n}\n\nexport default takeWhile;\n","/**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\nfunction tap(value, interceptor) {\n interceptor(value);\n return value;\n}\n\nexport default tap;\n","import eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nexport default customDefaultsAssignIn;\n","/** Used to escape characters for inclusion in compiled string literals. */\nvar stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n};\n\n/**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\nfunction escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n}\n\nexport default escapeStringChar;\n","/** Used to match template delimiters. */\nvar reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\nexport default reInterpolate;\n","/** Used to match template delimiters. */\nvar reEscape = /<%-([\\s\\S]+?)%>/g;\n\nexport default reEscape;\n","/** Used to match template delimiters. */\nvar reEvaluate = /<%([\\s\\S]+?)%>/g;\n\nexport default reEvaluate;\n","import escape from './escape.js';\nimport reEscape from './_reEscape.js';\nimport reEvaluate from './_reEvaluate.js';\nimport reInterpolate from './_reInterpolate.js';\n\n/**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\nvar templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': { 'escape': escape }\n }\n};\n\nexport default templateSettings;\n","import assignInWith from './assignInWith.js';\nimport attempt from './attempt.js';\nimport baseValues from './_baseValues.js';\nimport customDefaultsAssignIn from './_customDefaultsAssignIn.js';\nimport escapeStringChar from './_escapeStringChar.js';\nimport isError from './isError.js';\nimport isIterateeCall from './_isIterateeCall.js';\nimport keys from './keys.js';\nimport reInterpolate from './_reInterpolate.js';\nimport templateSettings from './templateSettings.js';\nimport toString from './toString.js';\n\n/** Error message constants. */\nvar INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n/** Used to match empty string literals in compiled template source. */\nvar reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n/**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\nvar reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n/**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\nvar reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n/** Used to ensure capturing order of template delimiters. */\nvar reNoMatch = /($^)/;\n\n/** Used to match unescaped characters in compiled string literals. */\nvar reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '\n * ```\n */\nvar Splitter = /** @class */ (function (_super) {\n __extends(Splitter, _super);\n /**\n * Initializes a new instance of the Splitter class.\n *\n * @param options - Specifies Splitter model properties as options.\n * @param element - Specifies the element that is rendered as an Splitter.\n */\n function Splitter(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.needsID = true;\n return _this;\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\n *\n * @param {SplitterModel} newProp - specifies the new property\n * @param {SplitterModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n Splitter.prototype.onPropertyChanged = function (newProp, oldProp) {\n if (!this.element.classList.contains(ROOT)) {\n return;\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'height':\n this.setSplitterSize(this.element, newProp.height, 'height');\n break;\n case 'width':\n this.setSplitterSize(this.element, newProp.width, 'width');\n break;\n case 'cssClass':\n this.setCssClass(this.element, newProp.cssClass);\n break;\n case 'enabled':\n this.isEnabled(this.enabled);\n break;\n case 'enableReversePanes':\n this.setReversePane();\n break;\n case 'separatorSize':\n this.setSeparatorSize(newProp.separatorSize);\n break;\n case 'orientation':\n this.changeOrientation(newProp.orientation);\n break;\n case 'paneSettings': {\n if (!(newProp.paneSettings instanceof Array && oldProp.paneSettings instanceof Array)) {\n var paneCounts = Object.keys(newProp.paneSettings);\n var isPaneContentChanged = paneCounts.some(function (count) {\n return !isNullOrUndefined(newProp.paneSettings[count].content);\n });\n if (this.isReact && isPaneContentChanged) {\n var cPaneCount = 0;\n for (var k = 0; k < this.paneSettings.length; k++) {\n if (typeof (this.paneSettings[k].content) === 'function') {\n cPaneCount = cPaneCount + 1;\n }\n }\n var hasAllContent = cPaneCount === this.paneSettings.length;\n if (hasAllContent) {\n this.clearTemplate();\n }\n }\n for (var i = 0; i < paneCounts.length; i++) {\n var index = parseInt(Object.keys(newProp.paneSettings)[i], 10);\n var changedPropsCount = Object.keys(newProp.paneSettings[index]).length;\n for (var j = 0; j < changedPropsCount; j++) {\n var property = Object.keys(newProp.paneSettings[index])[j];\n switch (property) {\n case 'content': {\n var newValue = Object(newProp.paneSettings[index])[\"\" + property];\n if (!isNullOrUndefined(newValue)) {\n this.allPanes[index].innerHTML = '';\n this.setTemplate(newValue, this.allPanes[index]);\n }\n break;\n }\n case 'resizable': {\n var newVal = Object(newProp.paneSettings[index])[\"\" + property];\n this.resizableModel(index, newVal);\n break;\n }\n case 'collapsible':\n this.collapsibleModelUpdate(index);\n break;\n case 'collapsed':\n if (newProp.paneSettings[index].collapsed) {\n this.isCollapsed(index);\n }\n else {\n this.collapsedOnchange(index);\n }\n break;\n case 'cssClass':\n this.setCssClass(this.allPanes[index], newProp.paneSettings[index].cssClass);\n break;\n case 'size': {\n var newValSize = Object(newProp.paneSettings[index])[\"\" + property];\n if (newValSize !== '' && !isNullOrUndefined(newValSize)) {\n this.updatePaneSize(newValSize, index);\n }\n break;\n }\n }\n }\n }\n }\n else {\n this.clearTemplate();\n this.destroyPaneSettings();\n this.allBars = [];\n this.allPanes = [];\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setRTL(this.enableRtl);\n this.isCollapsed();\n }\n break;\n }\n case 'enableRtl':\n this.setRTL(newProp.enableRtl);\n break;\n }\n }\n };\n Splitter.prototype.updatePaneSize = function (newValSize, index) {\n this.allPanes[index].style.flexBasis = newValSize;\n var flexPaneIndexes = [];\n var staticPaneWidth;\n var flexCount = 0;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.paneSettings[i].size && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n else if (this.paneSettings[i].size) {\n staticPaneWidth = this.orientation === 'Horizontal' ? this.allPanes[index].offsetWidth : this.allPanes[index].offsetHeight;\n }\n }\n staticPaneWidth = this.orientation === 'Horizontal' ? (this.allBars[0].offsetWidth * this.allBars.length) + staticPaneWidth :\n (this.allBars[0].offsetHeight * this.allBars.length) + staticPaneWidth;\n var flexPaneWidth = (this.orientation === 'Horizontal' ? this.element.offsetWidth : this.element.offsetHeight)\n - staticPaneWidth - (this.border * 2);\n var avgDiffWidth = flexPaneWidth / flexPaneIndexes.length;\n for (var j = 0; j < flexPaneIndexes.length; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = avgDiffWidth + 'px';\n }\n }\n this.allPanes[index].classList.add(STATIC_PANE);\n };\n Splitter.prototype.initializeValues = function () {\n this.allPanes = [];\n this.paneOrder = [];\n this.separatorOrder = [];\n this.allBars = [];\n this.previousCoordinates = {};\n this.currentCoordinates = {};\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n this.panesDimensions = [];\n this.border = 0;\n this.validDataAttributes = ['data-size', 'data-min', 'data-max', 'data-collapsible',\n 'data-resizable', 'data-content', 'data-collapsed'];\n this.validElementAttributes = ['data-orientation', 'data-width', 'data-height'];\n this.iconsDelay = 300;\n this.templateElement = [];\n this.collapseFlag = false;\n this.expandFlag = true;\n };\n Splitter.prototype.preRender = function () {\n this.initializeValues();\n this.onReportWindowSize = this.reportWindowSize.bind(this);\n this.onMouseMoveHandler = this.onMouseMove.bind(this);\n this.onMouseUpHandler = this.onMouseUp.bind(this);\n this.onTouchMoveHandler = this.onMouseMove.bind(this);\n this.onTouchEndHandler = this.onMouseUp.bind(this);\n this.wrapper = this.element.cloneNode(true);\n this.wrapperParent = this.element.parentElement;\n removeClass([this.wrapper], ['e-control', 'e-lib', ROOT]);\n var orientation = this.orientation === 'Horizontal' ? HORIZONTAL_PANE : VERTICAL_PANE;\n addClass([this.element], orientation);\n var name = Browser.info.name;\n var css = (name === 'msie') ? 'e-ie' : '';\n this.setCssClass(this.element, css);\n if (Browser.isDevice) {\n addClass([this.element], SPLIT_TOUCH);\n }\n };\n Splitter.prototype.getPersistData = function () {\n return this.addOnPersist(['paneSettings']);\n };\n /**\n * Returns the current module name.\n *\n * @returns {string} - returns the string value\n * @private\n */\n Splitter.prototype.getModuleName = function () {\n return 'splitter';\n };\n /**\n * To Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Splitter.prototype.render = function () {\n this.checkDataAttributes();\n this.setCssClass(this.element, this.cssClass);\n this.isEnabled(this.enabled);\n this.setDimension(this.getHeight(this.element), this.getWidth(this.element));\n this.createSplitPane(this.element);\n this.addSeparator(this.element);\n this.getPanesDimensions();\n this.setPaneSettings();\n this.setRTL(this.enableRtl);\n if (this.enableReversePanes) {\n this.setReversePane();\n }\n this.collapseFlag = true;\n this.isCollapsed();\n this.collapseFlag = false;\n EventHandler.add(document, 'touchstart click', this.onDocumentClick, this);\n this.renderComplete();\n this.element.ownerDocument.defaultView.addEventListener('resize', this.onReportWindowSize, true);\n EventHandler.add(this.element, 'keydown', this.onMove, this);\n };\n Splitter.prototype.onDocumentClick = function (e) {\n if (!e.target.classList.contains(SPLIT_BAR) && !isNullOrUndefined(this.currentSeparator)) {\n this.currentSeparator.classList.remove(SPLIT_BAR_HOVER);\n this.currentSeparator.classList.remove(SPLIT_BAR_ACTIVE);\n }\n };\n Splitter.prototype.checkPaneSize = function (e) {\n var prePaneSize = this.orientation === 'Horizontal' ? this.previousPane.offsetWidth : this.previousPane.offsetHeight;\n var nextPaneSize = this.orientation === 'Horizontal' ? this.nextPane.offsetWidth : this.nextPane.offsetHeight;\n var splitBarSize = isNullOrUndefined(this.separatorSize) ? BAR_SIZE_DEFAULT : this.separatorSize;\n if ((this.previousPane.style.flexBasis.indexOf('%') > 0 || this.previousPane.style.flexBasis.indexOf('p') > 0 || this.nextPane.style.flexBasis.indexOf('%') > 0)) {\n var previousFlexBasis = this.updatePaneFlexBasis(this.previousPane);\n var nextFlexBasis = this.updatePaneFlexBasis(this.nextPane);\n this.totalPercent = previousFlexBasis + nextFlexBasis;\n this.totalWidth = this.convertPercentageToPixel(this.totalPercent + '%');\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) <\n this.convertPercentageToPixel((nextFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis + 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis - 1) + '%';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) <\n this.convertPercentageToPixel((previousFlexBasis - 1) + '%'))) {\n this.previousPane.style.flexBasis = (previousFlexBasis - 1) + '%';\n this.nextPane.style.flexBasis = (nextFlexBasis + 1) + '%';\n }\n }\n }\n else {\n this.totalWidth = (this.orientation === 'Horizontal') ? this.previousPane.offsetWidth + this.nextPane.offsetWidth :\n this.previousPane.offsetHeight + this.nextPane.offsetHeight;\n if (e.type === 'keydown' && (!isNullOrUndefined(e.keyCode))) {\n if ((e.keyCode === 39 || (e.keyCode === 40)) && nextPaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.nextPaneIndex].min) < (nextPaneSize + splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize + splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize < splitBarSize) ? '0px' :\n (nextPaneSize - splitBarSize) + 'px';\n }\n else if ((e.keyCode === 37 || (e.keyCode === 38)) && prePaneSize > 0 &&\n (this.getMinInPixel(this.paneSettings[this.prevPaneIndex].min) < (prePaneSize - splitBarSize))) {\n this.addStaticPaneClass();\n this.previousPane.style.flexBasis = (prePaneSize < splitBarSize) ? '0px' :\n (prePaneSize - splitBarSize) + 'px';\n this.nextPane.style.flexBasis = (nextPaneSize + splitBarSize) + 'px';\n }\n }\n }\n };\n Splitter.prototype.onMove = function (event) {\n if (this.allPanes.length > 1) {\n var index = this.getSeparatorIndex(this.currentSeparator);\n var isPrevpaneCollapsed = this.previousPane.classList.contains(COLLAPSE_PANE);\n var isPrevpaneExpanded = this.previousPane.classList.contains(EXPAND_PANE);\n var isNextpaneCollapsed = this.nextPane.classList.contains(COLLAPSE_PANE);\n if (((this.orientation !== 'Horizontal' && event.keyCode === 38) || (this.orientation === 'Horizontal' &&\n event.keyCode === 39) ||\n (this.orientation === 'Horizontal' && event.keyCode === 37) || (this.orientation !== 'Horizontal' && event.keyCode === 40))\n && (!isPrevpaneExpanded && !isNextpaneCollapsed && !isPrevpaneCollapsed || (isPrevpaneExpanded) && !isNextpaneCollapsed) &&\n document.activeElement.classList.contains(SPLIT_BAR) && (this.paneSettings[index].resizable &&\n this.paneSettings[index + 1].resizable)) {\n event.preventDefault();\n this.checkPaneSize(event);\n this.triggerResizing(event);\n }\n else if (event.keyCode === 13 && this.paneSettings[index].collapsible &&\n document.activeElement.classList.contains(SPLIT_BAR) && this.currentSeparator.classList.contains(SPLIT_BAR_ACTIVE)) {\n if (!this.previousPane.classList.contains(COLLAPSE_PANE)) {\n this.collapse(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n else {\n this.expand(index);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n }\n }\n }\n };\n Splitter.prototype.getMinInPixel = function (minValue) {\n if (isNullOrUndefined(minValue)) {\n return 0;\n }\n var paneMinRange = this.convertPixelToNumber(minValue.toString());\n if (minValue.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(minValue);\n }\n var min = this.convertPixelToNumber((paneMinRange).toString());\n return min;\n };\n /**\n * @param {string} value - specifies the string value\n * @returns {string} returns the string\n * @hidden\n */\n Splitter.prototype.sanitizeHelper = function (value) {\n if (this.enableHtmlSanitizer) {\n var item = SanitizeHtmlHelper.beforeSanitize();\n var beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n this.trigger('beforeSanitizeHtml', item);\n if (item.cancel && !isNullOrUndefined(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n }\n return value;\n };\n Splitter.prototype.checkDataAttributes = function () {\n var api;\n var value;\n // Element values\n for (var dataIndex = 0; dataIndex < this.validElementAttributes.length; dataIndex++) {\n value = this.element.getAttribute(this.validElementAttributes[dataIndex]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validElementAttributes[dataIndex]);\n // eslint-disable-next-line\n this[api] = value;\n }\n }\n // Pane values\n for (var paneIndex = 0; paneIndex < this.element.children.length; paneIndex++) {\n for (var dataAttr = 0; dataAttr < this.validDataAttributes.length; dataAttr++) {\n value = this.element.children[paneIndex].getAttribute(this.validDataAttributes[dataAttr]);\n if (!isNullOrUndefined(value)) {\n api = this.removeDataPrefix(this.validDataAttributes[dataAttr]);\n value = (api === 'collapsible' || api === 'resizable') ? (value === 'true') : value;\n if (isNullOrUndefined(this.paneSettings[paneIndex])) {\n this.paneSettings[paneIndex] = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsible: false,\n collapsed: false\n };\n }\n // eslint-disable-next-line\n var paneAPI = this.paneSettings[paneIndex][api];\n if (api === 'resizable' || api === 'collapsible' || api === 'collapsed') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n if (isNullOrUndefined(paneAPI) || paneAPI === '') {\n // eslint-disable-next-line\n this.paneSettings[paneIndex][api] = value;\n }\n }\n }\n }\n };\n Splitter.prototype.destroyPaneSettings = function () {\n [].slice.call(this.element.children).forEach(function (el) {\n detach(el);\n });\n this.restoreElem();\n };\n Splitter.prototype.setPaneSettings = function () {\n var childCount = this.allPanes.length;\n var paneCollection = [];\n var paneValue = {\n size: '',\n min: null,\n max: null,\n content: '',\n resizable: true,\n collapsed: false,\n collapsible: false,\n cssClass: ''\n };\n for (var i = 0; i < childCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i])) {\n paneCollection[i] = paneValue;\n }\n else {\n paneCollection[i] = this.paneSettings[i];\n }\n }\n this.setProperties({ 'paneSettings': paneCollection }, true);\n };\n Splitter.prototype.checkArrow = function (paneIndex, targetArrow) {\n return (this.allBars[paneIndex].querySelector('.' + NAVIGATE_ARROW + '.' + targetArrow));\n };\n Splitter.prototype.removeDataPrefix = function (attribute) {\n return attribute.slice(attribute.lastIndexOf('-') + 1);\n };\n Splitter.prototype.setRTL = function (rtl) {\n if (rtl) {\n addClass([this.element], RTL);\n }\n else {\n removeClass([this.element], RTL);\n }\n };\n Splitter.prototype.setReversePane = function () {\n this.allPanes = this.allPanes.reverse();\n this.allBars = this.allBars.reverse();\n addClass([this.allBars[this.allBars.length - 1]], LAST_BAR);\n removeClass([this.allBars[0]], LAST_BAR);\n this.setProperties({ 'paneSettings': this.paneSettings.reverse() }, true);\n if (this.enableReversePanes) {\n this.element.setAttribute('dir', 'rtl');\n }\n else {\n this.element.removeAttribute('dir');\n }\n };\n Splitter.prototype.setSplitterSize = function (element, size, property) {\n var style = property === 'width' ? { 'width': formatUnit(size) } : { 'height': formatUnit(size) };\n setStyleAttribute(element, style);\n };\n Splitter.prototype.getPanesDimensions = function () {\n for (var index = 0; index < this.allPanes.length; index++) {\n if (this.orientation === 'Horizontal') {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().width);\n }\n else {\n this.panesDimensions.push(this.allPanes[index].getBoundingClientRect().height);\n }\n }\n };\n Splitter.prototype.setCssClass = function (element, className) {\n if (className) {\n addClass([element], className.split(className.indexOf(',') > -1 ? ',' : ' '));\n }\n };\n Splitter.prototype.hideResizer = function (target) {\n addClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n };\n Splitter.prototype.showResizer = function (target) {\n if (!isNullOrUndefined(this.previousPane) && this.previousPane.classList.contains(RESIZABLE_PANE) &&\n !isNullOrUndefined(this.nextPane) && this.nextPane.classList.contains(RESIZABLE_PANE)) {\n removeClass([select('.' + RESIZE_BAR, target)], HIDE_HANDLER);\n }\n };\n Splitter.prototype.resizableModel = function (index, newVal) {\n var paneIndex = (index === (this.allBars.length)) ? (index - 1) : index;\n var i = index;\n EventHandler.remove(this.allBars[paneIndex], 'mousedown', this.onMouseDown);\n if (newVal) {\n EventHandler.add(this.allBars[paneIndex], 'mousedown', this.onMouseDown, this);\n if (this.isResizable()) {\n this.showResizer(this.allBars[paneIndex]);\n removeClass([select('.' + RESIZE_BAR, this.allBars[paneIndex])], HIDE_HANDLER);\n this.allBars[paneIndex].classList.add(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.add(RESIZABLE_PANE);\n }\n this.updateResizablePanes(i);\n }\n }\n else {\n this.updateResizablePanes(i);\n this.hideResizer(this.allBars[paneIndex]);\n this.allBars[paneIndex].classList.remove(RESIZABLE_BAR);\n if (index === (this.allBars.length)) {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n else {\n this.allPanes[paneIndex].classList.remove(RESIZABLE_PANE);\n }\n }\n };\n Splitter.prototype.collapsibleModelUpdate = function (index) {\n var paneIndex = index === (this.allBars.length) ? (index - 1) : index;\n var arrow2 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_LEFT) : this.checkArrow(paneIndex, ARROW_UP);\n var arrow1 = (this.orientation === 'Horizontal')\n ? this.checkArrow(paneIndex, ARROW_RIGHT) : this.checkArrow(paneIndex, ARROW_DOWN);\n this.paneCollapsible(this.allPanes[index], index);\n this.updateCollapseIcons(paneIndex, arrow1, arrow2);\n };\n Splitter.prototype.collapseArrow = function (barIndex, arrow) {\n return selectAll('.' + arrow, this.allBars[barIndex])[0];\n };\n Splitter.prototype.updateIsCollapsed = function (index, collapseArrow, lastBarArrow) {\n if (!isNullOrUndefined(index)) {\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, lastBarArrow) : this.collapseArrow(barIndex, collapseArrow);\n }\n targetEle.click();\n }\n };\n Splitter.prototype.isCollapsed = function (index) {\n var _this = this;\n if (!isNullOrUndefined(index) && this.paneSettings[index].collapsed\n && isNullOrUndefined(this.allPanes[index].classList.contains(COLLAPSE_PANE))) {\n return;\n }\n this.expandFlag = false;\n if (!isNullOrUndefined(index)) {\n this.collapseFlag = true;\n var targetEle = void 0;\n var lastBarIndex = (index === this.allBars.length);\n var barIndex = lastBarIndex ? index - 1 : index;\n if (!lastBarIndex && this.allPanes[index + 1].classList.contains(COLLAPSE_PANE) && index !== 0) {\n targetEle = this.collapseArrow(barIndex - 1, this.targetArrows().lastBarArrow);\n }\n else {\n targetEle = (lastBarIndex) ? this.collapseArrow(barIndex, this.targetArrows().lastBarArrow) :\n this.collapseArrow(barIndex, this.targetArrows().collapseArrow);\n }\n var event_1 = { target: targetEle };\n var eventArgs = this.beforeAction(event_1);\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n var collapsedindex = [];\n collapsedindex[0] = index;\n var j = 1;\n for (var i = 0; i < _this.allPanes.length; i++) {\n if (_this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n collapsedindex[j] = i;\n j++;\n }\n }\n collapsedindex = collapsedindex.sort();\n _this.updateIsCollapsed(index, _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n for (var i = 0; i < collapsedindex.length; i++) {\n if (!_this.allPanes[collapsedindex[i]].classList.contains(COLLAPSE_PANE)) {\n _this.updateIsCollapsed(collapsedindex[i], _this.targetArrows().collapseArrow, _this.targetArrows().lastBarArrow);\n }\n }\n for (var i = collapsedindex.length; i > 0; i--) {\n if (!_this.allPanes[collapsedindex[i - 1]].classList.contains(COLLAPSE_PANE)) {\n var targetArrow = _this.targetArrows();\n _this.updateIsCollapsed(collapsedindex[i - 1], targetArrow.collapseArrow, targetArrow.lastBarArrow);\n }\n }\n var collapseEventArgs = _this.afterAction(event_1);\n _this.trigger('collapsed', collapseEventArgs);\n _this.collapseFlag = false;\n }\n });\n }\n else {\n for (var m = 0; m < this.allPanes.length; m++) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed) {\n this.updateIsCollapsed(m, this.targetArrows().collapseArrow, this.targetArrows().lastBarArrow);\n }\n }\n for (var m = this.allPanes.length - 1; m >= 0; m--) {\n if (!isNullOrUndefined(this.paneSettings[m]) && this.paneSettings[m].collapsed &&\n !this.allPanes[m].classList.contains(COLLAPSE_PANE)) {\n var collapseArrow = this.orientation === 'Horizontal' ? ARROW_RIGHT : ARROW_DOWN;\n if (m !== 0) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n if (!this.nextPane.classList.contains(COLLAPSE_PANE)) {\n var targetEle = this.collapseArrow(m - 1, collapseArrow);\n targetEle.click();\n }\n }\n }\n }\n this.expandFlag = true;\n };\n Splitter.prototype.targetArrows = function () {\n this.splitterProperty();\n return {\n collapseArrow: (this.orientation === 'Horizontal') ? ARROW_LEFT : ARROW_UP,\n lastBarArrow: (this.orientation === 'Vertical') ? ARROW_DOWN : ARROW_RIGHT\n };\n };\n Splitter.prototype.collapsedOnchange = function (index) {\n if (!isNullOrUndefined(this.paneSettings[index]) && !isNullOrUndefined(this.paneSettings[index].collapsed)\n && this.allPanes[index].classList.contains(COLLAPSE_PANE)) {\n this.updateIsCollapsed(index, this.targetArrows().lastBarArrow, this.targetArrows().collapseArrow);\n }\n };\n Splitter.prototype.isEnabled = function (enabled) {\n if (enabled) {\n removeClass([this.element], DISABLED);\n }\n else {\n addClass([this.element], DISABLED);\n }\n };\n Splitter.prototype.setSeparatorSize = function (size) {\n var sizeValue = isNullOrUndefined(size) ? 'auto' : size + 'px';\n var separator = this.orientation === 'Horizontal' ? SPLIT_H_BAR : SPLIT_V_BAR;\n for (var index = 0; index < this.allBars.length; index++) {\n var splitBar = selectAll('.' + separator, this.element)[index];\n var resizeBar = selectAll('.' + RESIZE_BAR, splitBar)[0];\n if (this.orientation === 'Horizontal') {\n splitBar.style.width = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.width = sizeValue;\n }\n }\n else {\n splitBar.style.height = sizeValue;\n if (!isNullOrUndefined(resizeBar)) {\n resizeBar.style.height = sizeValue;\n }\n }\n }\n };\n Splitter.prototype.changeOrientation = function (orientation) {\n var isVertical = orientation === 'Vertical';\n this.element.classList.remove(isVertical ? HORIZONTAL_PANE : VERTICAL_PANE);\n this.element.classList.add(isVertical ? VERTICAL_PANE : HORIZONTAL_PANE);\n for (var index = 0; index < this.allPanes.length; index++) {\n this.allPanes[index].classList.remove(isVertical ? SPLIT_H_PANE : SPLIT_V_PANE);\n this.allPanes[index].classList.add(isVertical ? SPLIT_V_PANE : SPLIT_H_PANE);\n }\n for (var index = 0; index < this.allBars.length; index++) {\n detach(this.allBars[index]);\n }\n this.allBars = [];\n this.addSeparator(this.element);\n };\n Splitter.prototype.checkSplitPane = function (currentBar, elementIndex) {\n var paneEle = this.collectPanes(currentBar.parentElement.children)[elementIndex];\n return paneEle;\n };\n Splitter.prototype.collectPanes = function (childNodes) {\n var elements = [];\n for (var i = 0; i < childNodes.length; i++) {\n if (childNodes[i].classList.contains(PANE)) {\n elements.push(childNodes[i]);\n }\n }\n return elements;\n };\n Splitter.prototype.getPrevPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order + 1) : this.getOrderPane(order - 1);\n };\n Splitter.prototype.getNextPane = function (order) {\n return this.enableReversePanes ? this.getOrderPane(order - 1) : this.getOrderPane(order + 1);\n };\n Splitter.prototype.getOrderPane = function (order) {\n var pane;\n for (var i = 0; i < this.element.children.length; i++) {\n if (parseInt(this.element.children[i].style.order, 10) === order) {\n pane = this.element.children[i];\n }\n }\n return pane;\n };\n Splitter.prototype.getOrderIndex = function (order, type) {\n var index;\n var panes;\n if (type === 'pane') {\n panes = this.allPanes;\n }\n else {\n panes = this.allBars;\n }\n for (var i = 0; i < panes.length; i++) {\n if (parseInt(panes[i].style.order, 10) === order) {\n index = i;\n }\n }\n return index;\n };\n Splitter.prototype.updateSeparatorSize = function (resizeHanlder) {\n var sizeValue = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n if (this.orientation === 'Horizontal') {\n resizeHanlder.style.width = sizeValue;\n }\n else {\n resizeHanlder.style.height = sizeValue;\n }\n };\n Splitter.prototype.addResizeHandler = function (currentBar) {\n var resizeHanlder = this.createElement('div');\n addClass([resizeHanlder], [RESIZE_BAR, E_ICONS]);\n this.updateSeparatorSize(resizeHanlder);\n currentBar.appendChild(resizeHanlder);\n };\n Splitter.prototype.getHeight = function (target) {\n var height = this.height;\n height = target.style.height !== '' && this.height === '100%' ? target.style.height : this.height;\n return height;\n };\n Splitter.prototype.getWidth = function (target) {\n var width = this.width;\n width = target.style.width !== '' && this.width === '100%' ? target.style.width : this.width;\n return width;\n };\n Splitter.prototype.setDimension = function (height, width) {\n setStyleAttribute(this.element, { 'height': height, 'width': width });\n };\n Splitter.prototype.updateCollapseIcons = function (index, arrow1, arrow2) {\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].collapsible)) {\n if (this.paneSettings[index].collapsible) {\n removeClass([arrow2], [HIDE_ICON]);\n }\n else {\n addClass([arrow2], [HIDE_ICON]);\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n if (!isNullOrUndefined(this.paneSettings[index + 1])) {\n if ((this.paneSettings[index + 1].collapsible)) {\n if (this.paneSettings[index + 1].collapsible) {\n removeClass([arrow1], [HIDE_ICON]);\n }\n else {\n addClass([arrow1], [HIDE_ICON]);\n }\n }\n }\n }\n }\n };\n Splitter.prototype.updateIconClass = function () {\n if (this.orientation === 'Horizontal') {\n this.leftArrow = ARROW_LEFT;\n this.rightArrow = ARROW_RIGHT;\n }\n else {\n this.leftArrow = ARROW_UP;\n this.rightArrow = ARROW_DOWN;\n }\n };\n Splitter.prototype.createSeparator = function (i) {\n var separator = this.createElement('div');\n this.allBars.push(separator);\n var arrow1 = this.createElement('button');\n var arrow2 = this.createElement('button');\n arrow1.setAttribute('tabindex', '-1');\n arrow2.setAttribute('tabindex', '-1');\n arrow1.setAttribute('aria-label', 'Toggle navigation');\n arrow2.setAttribute('aria-label', 'Toggle navigation');\n arrow1.setAttribute('type', 'button');\n arrow2.setAttribute('type', 'button');\n var size = isNullOrUndefined(this.separatorSize) ? '1px' : this.separatorSize + 'px';\n var proxy = null || this;\n if (this.orientation === 'Horizontal') {\n this.updateIconClass();\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_LEFT, HIDE_ICON]);\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_RIGHT, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_H_BAR]);\n separator.style.width = size;\n }\n else {\n addClass([arrow1], [NAVIGATE_ARROW, ARROW_DOWN, HIDE_ICON]);\n addClass([arrow2], [NAVIGATE_ARROW, ARROW_UP, HIDE_ICON]);\n addClass([separator], [SPLIT_BAR, SPLIT_V_BAR]);\n this.updateIconClass();\n separator.style.height = size;\n }\n this.addMouseActions(separator);\n separator.appendChild(arrow2);\n this.addResizeHandler(separator);\n separator.appendChild(arrow1);\n this.updateCollapseIcons(i, arrow1, arrow2);\n separator.setAttribute('tabindex', '-1');\n separator.setAttribute('aria-hidden', 'true');\n if (this.enableReversePanes) {\n separator.setAttribute('dir', 'ltr');\n }\n else {\n separator.removeAttribute('dir');\n }\n separator.addEventListener('focus', function () {\n separator.classList.add(SPLIT_BAR_ACTIVE);\n proxy.currentSeparator = separator;\n proxy.getPaneDetails();\n });\n separator.addEventListener('blur', function () {\n separator.classList.remove(SPLIT_BAR_ACTIVE);\n });\n return separator;\n };\n Splitter.prototype.updateResizablePanes = function (index) {\n this.getPaneDetails();\n if (this.isResizable()) {\n this.allPanes[index].classList.add(RESIZABLE_PANE);\n }\n else {\n this.allPanes[index].classList.remove(RESIZABLE_PANE);\n }\n };\n Splitter.prototype.addSeparator = function (target) {\n var childCount = this.allPanes.length;\n var clonedEle = target.children;\n var separator;\n for (var i = 0; i < childCount; i++) {\n if (i < childCount - 1) {\n separator = this.createSeparator(i);\n setStyleAttribute(separator, { 'order': (i * 2) + 1 });\n this.separatorOrder.push((i * 2) + 1);\n clonedEle[i].parentNode.appendChild(separator);\n this.currentSeparator = separator;\n separator.setAttribute('role', 'separator');\n separator.setAttribute('aria-valuenow', i.toString());\n if (!isNullOrUndefined(this.orientation)) {\n separator.setAttribute('aria-orientation', this.orientation.toLowerCase());\n }\n this.wireClickEvents();\n if (!isNullOrUndefined(separator)) {\n if (this.isResizable()) {\n EventHandler.add(separator, 'mousedown', this.onMouseDown, this);\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\n EventHandler.add(separator, eventName, this.onMouseDown, this);\n separator.classList.add(RESIZABLE_BAR);\n this.updateResizablePanes(i);\n }\n else {\n addClass([select('.' + RESIZE_BAR, separator)], HIDE_HANDLER);\n }\n }\n }\n else {\n if (separator) {\n addClass([separator], LAST_BAR);\n }\n if (childCount > 1) {\n this.updateResizablePanes(i);\n }\n }\n }\n if (Browser.info.name === 'msie') {\n var allBar = this.element.querySelectorAll('.e-splitter .e-resize-handler');\n for (var i = 0; i < allBar.length; i++) {\n var sepSize = isNullOrUndefined(this.separatorSize) ? 1 : this.separatorSize;\n allBar[i].style.paddingLeft = sepSize / 2 + 'px';\n allBar[i].style.paddingRight = sepSize / 2 + 'px';\n }\n }\n };\n Splitter.prototype.isResizable = function () {\n var resizable = false;\n if ((!isNullOrUndefined(this.paneSettings[this.getPreviousPaneIndex()]) &&\n this.paneSettings[this.getPreviousPaneIndex()].resizable &&\n !isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()]) &&\n this.paneSettings[this.getNextPaneIndex()].resizable) ||\n isNullOrUndefined(this.paneSettings[this.getNextPaneIndex()])) {\n resizable = true;\n }\n return resizable;\n };\n Splitter.prototype.addMouseActions = function (separator) {\n var _this = this;\n var sTout;\n var hoverTimeOut;\n separator.addEventListener('mouseenter', function () {\n /* istanbul ignore next */\n sTout = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n }, _this.iconsDelay);\n });\n separator.addEventListener('mouseleave', function () {\n clearTimeout(sTout);\n removeClass([separator], [SPLIT_BAR_HOVER]);\n });\n separator.addEventListener('mouseout', function () {\n clearTimeout(hoverTimeOut);\n });\n separator.addEventListener('mouseover', function () {\n /* istanbul ignore next */\n hoverTimeOut = setTimeout(function () {\n addClass([separator], [SPLIT_BAR_HOVER]);\n });\n });\n };\n Splitter.prototype.getEventType = function (e) {\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\n };\n Splitter.prototype.updateCurrentSeparator = function (target) {\n this.currentSeparator = this.isSeparator(target) ? target.parentElement : target;\n };\n Splitter.prototype.isSeparator = function (target) {\n return (target.classList.contains(SPLIT_BAR) ? false : true);\n };\n Splitter.prototype.isMouseEvent = function (e) {\n var isMouse = false;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType) &&\n this.getEventType(e.pointerType) === 'mouse')) {\n isMouse = true;\n }\n return isMouse;\n };\n Splitter.prototype.updateCursorPosition = function (e, type) {\n if (this.isMouseEvent(e)) {\n this.changeCoordinates({ x: e.pageX, y: e.pageY }, type);\n }\n else {\n var eventType = Browser.info.name !== 'msie' ? e.touches[0] : e;\n this.changeCoordinates({ x: eventType.pageX, y: eventType.pageY }, type);\n }\n };\n Splitter.prototype.changeCoordinates = function (coordinates, type) {\n if (type === 'previous') {\n this.previousCoordinates = coordinates;\n }\n else {\n this.currentCoordinates = coordinates;\n }\n };\n Splitter.prototype.reportWindowSize = function () {\n var _this = this;\n var paneCount = this.allPanes.length;\n if (!document.body.contains(this.element)) {\n document.defaultView.removeEventListener('resize', this.onReportWindowSize);\n return;\n }\n for (var i = 0; i < paneCount; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n if (paneCount - 1 === i) {\n var staticPaneCount = this.element.querySelectorAll('.' + STATIC_PANE).length;\n if (staticPaneCount === paneCount) {\n if (this.allPanes[i].style.flexBasis === '') {\n removeClass([this.allPanes[i]], STATIC_PANE);\n }\n }\n }\n }\n if (paneCount > 0) {\n setTimeout(function () {\n _this.updateSplitterSize(true);\n }, 200);\n }\n };\n Splitter.prototype.updateSplitterSize = function (iswindowResize) {\n var totalWidth = 0;\n var flexPaneIndexes = [];\n var flexCount = 0;\n var children = this.element.children;\n for (var i = 0, len = children.length; i < len; i++) {\n totalWidth += this.orientation === 'Horizontal' ? children[i].offsetWidth :\n children[i].offsetHeight;\n }\n for (var j = 0, len = this.allBars.length; j < len; j++) {\n totalWidth += this.orientation === 'Horizontal' ? parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginLeft, 10) :\n parseInt(getComputedStyle(this.allBars[j]).marginTop, 10) +\n parseInt(getComputedStyle(this.allBars[j]).marginBottom, 10);\n }\n var diff = this.orientation === 'Horizontal' ? this.element.offsetWidth -\n ((this.border * 2) + totalWidth) :\n this.element.offsetHeight - ((this.border * 2) + totalWidth);\n for (var i = 0, len = this.allPanes.length; i < len; i++) {\n if (this.allPanes[i].innerText === '' ? !(this.paneSettings[i].size) || !(this.allPanes[i].innerText === '')\n : !(this.paneSettings[i].size) && !(this.allPanes[i].innerText === '')) {\n flexPaneIndexes[flexCount] = i;\n flexCount++;\n }\n }\n var avgDiffWidth = diff / flexPaneIndexes.length;\n for (var j = 0, len = flexPaneIndexes.length; j < len; j++) {\n if (this.allPanes[flexPaneIndexes[j]].style.flexBasis !== '') {\n this.allPanes[flexPaneIndexes[j]].style.flexBasis = this.orientation === 'Horizontal' ?\n (this.allPanes[flexPaneIndexes[j]].offsetWidth + avgDiffWidth) + 'px' :\n (this.allPanes[flexPaneIndexes[j]].offsetHeight + avgDiffWidth) + 'px';\n }\n }\n if (this.allPanes.length === 2 && iswindowResize) {\n var paneCount = this.allPanes.length;\n var minValue = void 0;\n var paneMinRange = void 0;\n var paneIndex = 0;\n var updatePane = void 0;\n var flexPane = void 0;\n for (var i = 0; i < paneCount; i++) {\n if (!isNullOrUndefined(this.paneSettings[i].min)) {\n paneMinRange = this.convertPixelToNumber((this.paneSettings[i].min).toString());\n if (this.paneSettings[i].min.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(this.paneSettings[i].min);\n }\n minValue = this.convertPixelToNumber((paneMinRange).toString());\n if ((this.orientation === 'Horizontal' ? this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight) < minValue) {\n if (i === paneIndex) {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i + 1];\n }\n else {\n updatePane = this.allPanes[i];\n flexPane = this.allPanes[i - 1];\n }\n var sizeDiff = minValue - (this.orientation === 'Horizontal' ?\n this.allPanes[i].offsetWidth : this.allPanes[i].offsetHeight);\n var isPercent = updatePane.style.flexBasis.indexOf('%') > -1;\n var updatePaneOffset = this.orientation === 'Horizontal' ? updatePane.offsetWidth : updatePane.offsetHeight;\n if (!isNullOrUndefined(updatePane) && updatePane.style.flexBasis !== '' && updatePane.classList.contains(STATIC_PANE)) {\n updatePane.style.flexBasis = isPercent ? this.convertPixelToPercentage(updatePaneOffset + sizeDiff) + '%'\n : (updatePaneOffset + sizeDiff) + 'px';\n }\n var flexPaneOffset = this.orientation === 'Horizontal' ? flexPane.offsetWidth : flexPane.offsetHeight;\n if (!isNullOrUndefined(flexPane) && flexPane.style.flexBasis !== '' && !flexPane.classList.contains(STATIC_PANE)) {\n flexPane.style.flexBasis = flexPane.style.flexBasis.indexOf('%') > -1 ?\n this.convertPixelToPercentage(flexPaneOffset - sizeDiff) + '%' : (flexPaneOffset - sizeDiff) + 'px';\n }\n }\n }\n }\n }\n };\n Splitter.prototype.wireResizeEvents = function () {\n document.addEventListener('mousemove', this.onMouseMoveHandler, true);\n document.addEventListener('mouseup', this.onMouseUpHandler, true);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.addEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.addEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.unwireResizeEvents = function () {\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize);\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\n document.removeEventListener('mousemove', this.onMouseMoveHandler, true);\n document.removeEventListener('mouseup', this.onMouseUpHandler, true);\n document.removeEventListener(touchMoveEvent, this.onTouchMoveHandler, true);\n document.removeEventListener(touchEndEvent, this.onTouchEndHandler, true);\n };\n Splitter.prototype.wireClickEvents = function () {\n EventHandler.add(this.currentSeparator, 'touchstart click', this.clickHandler, this);\n };\n Splitter.prototype.clickHandler = function (e) {\n if (!e.target.classList.contains(NAVIGATE_ARROW)) {\n var hoverBars = selectAll('.' + ROOT + ' > .' + SPLIT_BAR + '.' + SPLIT_BAR_HOVER);\n if (hoverBars.length > 0) {\n removeClass(hoverBars, SPLIT_BAR_HOVER);\n }\n e.target.classList.add(SPLIT_BAR_HOVER);\n }\n this.splitterDetails(e);\n var icon = e.target;\n if (icon.classList.contains(ARROW_LEFT) || icon.classList.contains(ARROW_RIGHT) ||\n icon.classList.contains(ARROW_DOWN) || icon.classList.contains(ARROW_UP)) {\n if (!this.nextPane.classList.contains(PANE_HIDDEN) && !this.previousPane.classList.contains(PANE_HIDDEN)) {\n this.collapseAction(e);\n }\n else {\n this.expandAction(e);\n }\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.expandAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.expandFlag) {\n this.trigger('beforeExpand', eventArgs, function (beforeExpandArgs) {\n if (!beforeExpandArgs.cancel) {\n _this.expandPane(e);\n }\n var expandEventArgs = _this.afterAction(e);\n _this.trigger('expanded', expandEventArgs);\n });\n }\n else {\n this.expandPane(e);\n }\n };\n Splitter.prototype.getIcon = function (e) {\n var targetClass = e.target.className.split(' ').filter(function (className) {\n return className !== NAVIGATE_ARROW && className !== HIDE_ICON;\n });\n return targetClass[0];\n };\n Splitter.prototype.expandPane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (!this.previousPane.classList.contains(COLLAPSE_PANE) &&\n this.previousPane.classList.contains(STATIC_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.nextPane.classList.contains(EXPAND_PANE) && this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) && !(collapseCount === this.allPanes.length - 2));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.nextPane : this.previousPane;\n var expandPane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPaneIndex = isLeftOrUp ? this.nextPaneIndex : this.prevPaneIndex;\n removeClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'false');\n // cCount is calculated after removing the COLLAPSE_PANE\n var cCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n if (cCount > 0) {\n if (!expandPane.classList.contains(COLLAPSE_PANE)) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n else if (cCount === 0) {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n removeClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'false');\n }\n }\n }\n if (this.expandFlag) {\n this.updatePaneSettings(expandPaneIndex, false);\n }\n this.updateIconsOnExpand(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.previousPane.classList.remove(EXPAND_PANE);\n this.previousPane.setAttribute('aria-expanded', 'false');\n this.previousPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.updateFlexGrow = function () {\n var collapseCount = 0;\n for (var j = 0; j < this.element.children.length; j++) {\n if (this.element.children[j].classList.contains(COLLAPSE_PANE)) {\n collapseCount = collapseCount + 1;\n }\n }\n var visiblePane = collapseCount === this.allPanes.length - 2;\n var panes = this.allPanes;\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.flexGrow = '';\n if (visiblePane && this.allPanes[i].classList.contains(COLLAPSE_PANE) && this.paneSettings[i].size &&\n i !== this.allPanes.length - 1) {\n panes[i].style.flexGrow = '';\n }\n if (panes[i].classList.contains(EXPAND_PANE)) {\n panes[i].style.flexGrow = '1';\n }\n else if (panes[i].classList.contains(COLLAPSE_PANE)) {\n panes[i].style.flexGrow = '0';\n }\n }\n };\n Splitter.prototype.hideTargetBarIcon = function (targetBar, targetArrow) {\n addClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.showTargetBarIcon = function (targetBar, targetArrow) {\n removeClass([select('.' + targetArrow, targetBar)], HIDE_ICON);\n };\n Splitter.prototype.updateIconsOnCollapse = function (e, targetIcon) {\n this.splitterProperty();\n var removeIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ? this.currentBarIndex - 1\n : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n if (this.splitInstance.prevPaneCollapsed || this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.resizableModel(this.currentBarIndex, false);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 1) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n this.resizableModel(otherBarIndex, false);\n }\n else if (collapsecount === 2) {\n this.hideBarIcons(otherBar);\n this.resizableModel(otherBarIndex, false);\n }\n if (!this.paneSettings[otherPrevPaneIndex].collapsible ||\n !this.paneSettings[otherNextPaneIndex].collapsible) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n }\n }\n }\n else {\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n if (!isNullOrUndefined(otherBar)) {\n this.resizableModel(otherBarIndex, true);\n }\n if (!this.paneSettings[this.prevPaneIndex].collapsible || !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, targetIcon);\n }\n this.hideTargetBarIcon(this.currentSeparator, removeIcon);\n }\n else {\n if (!isNullOrUndefined(otherBar)) {\n this.hideTargetBarIcon(otherBar, removeIcon);\n }\n this.showTargetBarIcon(this.currentSeparator, removeIcon);\n }\n }\n };\n Splitter.prototype.collapseAction = function (e) {\n var _this = this;\n var eventArgs = this.beforeAction(e);\n if (this.collapseFlag) {\n this.collapsePane(e);\n }\n else {\n this.trigger('beforeCollapse', eventArgs, function (beforeCollapseArgs) {\n if (!beforeCollapseArgs.cancel) {\n _this.collapsePane(e);\n var collapseEventArgs = _this.afterAction(e);\n _this.trigger('collapsed', collapseEventArgs);\n }\n });\n }\n };\n Splitter.prototype.collapsePane = function (e) {\n this.removeStaticPanes();\n var collapseCount = this.element.querySelectorAll('.' + COLLAPSE_PANE).length;\n var flexStatus = (this.previousPane.classList.contains(STATIC_PANE) &&\n !this.previousPane.classList.contains(COLLAPSE_PANE) && !this.nextPane.classList.contains(COLLAPSE_PANE) &&\n this.nextPane.nextElementSibling.classList.contains(PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(STATIC_PANE) &&\n !this.nextPane.nextElementSibling.classList.contains(COLLAPSE_PANE) &&\n !(collapseCount === this.allPanes.length - 2)) || (this.nextPane.classList.contains(COLLAPSE_PANE) &&\n !this.previousPane.classList.contains(STATIC_PANE) && this.nextPane.classList.contains(STATIC_PANE));\n var collapseClass = [COLLAPSE_PANE, PANE_HIDDEN];\n var icon = this.getIcon(e);\n var isLeftOrUp = icon === ARROW_LEFT || icon === ARROW_UP;\n var collapsePane = isLeftOrUp ? this.previousPane : this.nextPane;\n var expandPane = isLeftOrUp ? this.nextPane : this.previousPane;\n var collapsePaneIndex = isLeftOrUp ? this.prevPaneIndex : this.nextPaneIndex;\n removeClass([collapsePane], EXPAND_PANE);\n collapsePane.setAttribute('aria-expanded', 'false');\n addClass([collapsePane], collapseClass);\n collapsePane.setAttribute('aria-hidden', 'true');\n var isFlexPane = collapsePane.style.flexBasis === '';\n if (isFlexPane) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n else {\n var isFlexPaneHidden = true;\n for (var i = 0; i < this.allPanes.length; i++) {\n if (!this.allPanes[i].classList.contains(COLLAPSE_PANE)) {\n if (this.allPanes[i].style.flexBasis === '' && !this.allPanes[i].classList.contains(COLLAPSE_PANE)\n && !this.allPanes[i].classList.contains(EXPAND_PANE)) {\n addClass([this.allPanes[i]], EXPAND_PANE);\n this.allPanes[i].setAttribute('aria-expanded', 'true');\n isFlexPaneHidden = false;\n break;\n }\n }\n }\n if (isFlexPaneHidden) {\n addClass([expandPane], EXPAND_PANE);\n expandPane.setAttribute('aria-expanded', 'true');\n }\n }\n if (!this.collapseFlag) {\n this.updatePaneSettings(collapsePaneIndex, true);\n }\n this.updateIconsOnCollapse(e, icon);\n this.updateFlexGrow();\n if (flexStatus) {\n this.nextPane.classList.remove(EXPAND_PANE);\n this.nextPane.style.flexGrow = '';\n }\n };\n Splitter.prototype.removeStaticPanes = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n if (isNullOrUndefined(this.paneSettings[i].size)) {\n this.allPanes[i].classList.remove(STATIC_PANE);\n }\n }\n };\n Splitter.prototype.beforeAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n cancel: false\n };\n return eventArgs;\n };\n Splitter.prototype.updatePaneSettings = function (index, collapsed) {\n var paneValues = this.paneSettings;\n paneValues[index].collapsed = collapsed;\n this.setProperties({ 'paneSettings': paneValues }, true);\n };\n Splitter.prototype.splitterProperty = function () {\n this.splitInstance = {\n currentBarIndex: this.currentBarIndex,\n nextPaneCollapsible: this.nextPane.classList.contains(COLLAPSIBLE),\n prevPaneCollapsible: this.previousPane.classList.contains(COLLAPSIBLE),\n prevPaneExpanded: this.previousPane.classList.contains(EXPAND_PANE),\n nextPaneExpanded: this.nextPane.classList.contains(EXPAND_PANE),\n nextPaneCollapsed: this.nextPane.classList.contains(COLLAPSE_PANE),\n prevPaneCollapsed: this.previousPane.classList.contains(COLLAPSE_PANE),\n nextPaneIndex: this.getNextPaneIndex(),\n prevPaneIndex: this.getPreviousPaneIndex(),\n nextPaneNextEle: this.nextPane.nextElementSibling,\n prevPanePreEle: this.previousPane.previousElementSibling\n };\n };\n Splitter.prototype.showCurrentBarIcons = function () {\n removeClass([select('.' + this.arrow, this.currentSeparator)], HIDE_ICON);\n };\n Splitter.prototype.hideBarIcons = function (bar) {\n addClass([select('.' + this.arrow, bar)], HIDE_ICON);\n };\n Splitter.prototype.getCollapseCount = function (prevPaneIndex, nextPaneIndex) {\n var collapsecount = 0;\n if (this.allPanes[prevPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n if (this.allPanes[nextPaneIndex].classList.contains(COLLAPSE_PANE)) {\n collapsecount = collapsecount + 1;\n }\n return collapsecount;\n };\n Splitter.prototype.checkResizableProp = function (prevPaneIndex, nextPaneIndex) {\n if (this.paneSettings[prevPaneIndex].resizable && this.paneSettings[nextPaneIndex].resizable) {\n return true;\n }\n else {\n return false;\n }\n };\n Splitter.prototype.updateIconsOnExpand = function (e, targetIcon) {\n this.splitterProperty();\n var showIcon = this.arrow;\n var otherBar = this.currentBarIndex === (this.allBars.length - 1) ? this.prevBar : this.nextBar;\n var otherBarIndex = this.currentBarIndex === (this.allBars.length - 1) ?\n this.currentBarIndex - 1 : this.currentBarIndex + 1;\n if (!e.target.classList.contains(HIDE_ICON)) {\n // prevPane ! collapsed && nextPane ! collapsed\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.paneSettings[this.prevPaneIndex].collapsible && this.paneSettings[this.nextPaneIndex].collapsible) {\n this.showCurrentBarIcons();\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n if (!isNullOrUndefined(otherBar)) {\n var otherPrevPaneIndex = otherBarIndex;\n var otherNextPaneIndex = otherBarIndex + 1;\n var collapsecount = this.getCollapseCount(otherPrevPaneIndex, otherNextPaneIndex);\n if (this.paneSettings[otherPrevPaneIndex].collapsible &&\n this.paneSettings[otherNextPaneIndex].collapsible) {\n if (collapsecount === 0) {\n this.showTargetBarIcon(otherBar, targetIcon);\n this.showTargetBarIcon(otherBar, showIcon);\n if (this.checkResizableProp(otherPrevPaneIndex, otherNextPaneIndex)) {\n this.resizableModel(otherBarIndex, true);\n }\n }\n else if (collapsecount === 1) {\n this.hideBarIcons(otherBar);\n // If condition Edge case in flexible cases\n if (this.allPanes[otherPrevPaneIndex].classList.contains(EXPAND_PANE) ||\n this.allPanes[otherNextPaneIndex].classList.contains(EXPAND_PANE)) {\n this.showTargetBarIcon(otherBar, showIcon);\n }\n else {\n // Common case\n this.showTargetBarIcon(otherBar, targetIcon);\n }\n this.resizableModel(otherBarIndex, false);\n }\n }\n }\n }\n else {\n this.hideTargetBarIcon(this.currentSeparator, targetIcon);\n this.showTargetBarIcon(this.currentSeparator, showIcon);\n if (!this.splitInstance.prevPaneCollapsed && !this.splitInstance.nextPaneCollapsed) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n else {\n this.resizableModel(this.currentBarIndex, false);\n }\n }\n }\n }\n else {\n if (!this.paneSettings[this.prevPaneIndex].collapsible && !this.paneSettings[this.nextPaneIndex].collapsible) {\n if (this.checkResizableProp(this.prevPaneIndex, this.nextPaneIndex)) {\n this.resizableModel(this.currentBarIndex, true);\n }\n }\n }\n };\n Splitter.prototype.afterAction = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator\n };\n return eventArgs;\n };\n Splitter.prototype.currentIndex = function (e) {\n this.currentBarIndex = this.getOrderIndex(parseInt(e.target.parentElement.style.order, 10), 'splitbar');\n };\n Splitter.prototype.getSeparatorIndex = function (target) {\n var array = [].slice.call(this.allBars);\n array = this.enableReversePanes ? array.reverse() : array;\n return array.indexOf(target);\n };\n Splitter.prototype.getPrevBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar - 1)];\n return prevbar;\n };\n Splitter.prototype.getNextBar = function (currentBar) {\n var prevbar = this.allBars[(currentBar + 1)];\n return prevbar;\n };\n Splitter.prototype.updateBars = function (index) {\n this.prevBar = this.getPrevBar(index);\n this.nextBar = this.getNextBar(index);\n };\n Splitter.prototype.splitterDetails = function (e) {\n if (this.orientation === 'Horizontal') {\n this.arrow = e.target.classList.contains(ARROW_LEFT) ? ARROW_RIGHT : ARROW_LEFT;\n }\n else {\n this.arrow = e.target.classList.contains(ARROW_UP) ? ARROW_DOWN : ARROW_UP;\n }\n this.updateCurrentSeparator(e.target);\n this.currentIndex(e);\n this.updateBars(this.currentBarIndex);\n this.getPaneDetails();\n };\n Splitter.prototype.triggerResizing = function (e) {\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n paneSize: [this.prePaneDimenson, this.nextPaneDimension],\n separator: this.currentSeparator\n };\n this.trigger('resizing', eventArgs);\n };\n Splitter.prototype.onMouseDown = function (e) {\n var _this = this;\n e.preventDefault();\n var target = e.target;\n if (target.classList.contains(NAVIGATE_ARROW)) {\n return;\n }\n this.updateCurrentSeparator(target);\n addClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.updateCursorPosition(e, 'previous');\n this.getPaneDetails();\n var eventArgs = {\n element: this.element,\n event: e,\n pane: [this.previousPane, this.nextPane],\n index: [this.getPreviousPaneIndex(), this.getNextPaneIndex()],\n separator: this.currentSeparator,\n cancel: false\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'none';\n }\n this.trigger('resizeStart', eventArgs, function (resizeStartArgs) {\n if (!resizeStartArgs.cancel) {\n _this.wireResizeEvents();\n _this.checkPaneSize(e);\n }\n });\n };\n Splitter.prototype.updatePaneFlexBasis = function (pane) {\n var previous;\n if (pane.style.flexBasis.indexOf('%') > 0) {\n previous = this.removePercentageUnit(pane.style.flexBasis);\n }\n else {\n if (pane.style.flexBasis !== '') {\n previous = this.convertPixelToPercentage(this.convertPixelToNumber(pane.style.flexBasis));\n }\n else {\n var offset = (this.orientation === 'Horizontal') ? (pane.offsetWidth) : (pane.offsetHeight);\n previous = this.convertPixelToPercentage(offset);\n }\n }\n return previous;\n };\n Splitter.prototype.removePercentageUnit = function (value) {\n return parseFloat(value.slice(0, value.indexOf('%')));\n };\n Splitter.prototype.convertPercentageToPixel = function (value, targetElement) {\n var percentage = value.toString();\n var convertedValue;\n if (percentage.indexOf('%') > -1) {\n convertedValue = parseFloat(percentage.slice(0, percentage.indexOf('%')));\n var offsetValue = void 0;\n if (!isNullOrUndefined(targetElement)) {\n offsetValue = this.panesDimensions[this.allPanes.indexOf(targetElement)];\n }\n else {\n offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n }\n convertedValue = Math.ceil(offsetValue * (convertedValue / 100));\n }\n else {\n convertedValue = parseInt(percentage, 10);\n }\n return convertedValue;\n };\n Splitter.prototype.convertPixelToPercentage = function (value) {\n var offsetValue = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return (value / offsetValue) * 100;\n };\n Splitter.prototype.convertPixelToNumber = function (value) {\n value = value.toString();\n if (value.indexOf('p') > -1) {\n return parseFloat(value.slice(0, value.indexOf('p')));\n }\n else {\n return parseFloat(value);\n }\n };\n Splitter.prototype.calcDragPosition = function (rectValue, offsetValue) {\n var separatorPosition = this.orientation === 'Horizontal' ? (this.currentCoordinates.x - rectValue) :\n (this.currentCoordinates.y - rectValue);\n var separator;\n separator = separatorPosition / offsetValue;\n separator = (separator > 1) ? 1 : (separator < 0) ? 0 : separator;\n return separator * offsetValue;\n };\n Splitter.prototype.getSeparatorPosition = function (e) {\n this.updateCursorPosition(e, 'current');\n var rectBound = (this.orientation === 'Horizontal') ? this.element.getBoundingClientRect().left + window.scrollX :\n this.element.getBoundingClientRect().top + window.scrollY;\n var offSet = (this.orientation === 'Horizontal') ? this.element.offsetWidth : this.element.offsetHeight;\n return this.calcDragPosition(rectBound, offSet);\n };\n Splitter.prototype.getMinMax = function (paneIndex, target, selection) {\n var defaultVal = selection === 'min' ? 0 : null;\n // eslint-disable-next-line\n var paneValue = null;\n if (selection === 'min') {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneValue = this.paneSettings[paneIndex].min;\n }\n }\n else {\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneValue = this.paneSettings[paneIndex].max;\n }\n }\n if (this.paneSettings.length > 0 && !isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(paneValue)) {\n if (paneValue.indexOf('%') > 0) {\n paneValue = this.convertPercentageToPixel(paneValue).toString();\n }\n return this.convertPixelToNumber(paneValue);\n }\n else {\n return defaultVal;\n }\n };\n Splitter.prototype.getPreviousPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) + 1 :\n parseInt(this.currentSeparator.style.order, 10) - 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getNextPaneIndex = function () {\n var separatorIndex = this.enableReversePanes ? parseInt(this.currentSeparator.style.order, 10) - 1 :\n parseInt(this.currentSeparator.style.order, 10) + 1;\n return this.getOrderIndex(separatorIndex, 'pane');\n };\n Splitter.prototype.getPaneDetails = function () {\n var prevPane = null;\n var nextPane = null;\n this.order = parseInt(this.currentSeparator.style.order, 10);\n if (this.allPanes.length > 1) {\n prevPane = this.getPrevPane(this.order);\n nextPane = this.getNextPane(this.order);\n }\n if (prevPane && nextPane) {\n this.previousPane = prevPane;\n this.nextPane = nextPane;\n this.prevPaneIndex = this.getPreviousPaneIndex();\n this.nextPaneIndex = this.getNextPaneIndex();\n }\n else {\n return;\n }\n };\n Splitter.prototype.getPaneHeight = function (pane) {\n return ((this.orientation === 'Horizontal') ? pane.offsetWidth.toString() :\n pane.offsetHeight.toString());\n };\n Splitter.prototype.isValidSize = function (paneIndex) {\n var isValid = false;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) &&\n !isNullOrUndefined(this.paneSettings[paneIndex].size) &&\n this.paneSettings[paneIndex].size.indexOf('%') > -1) {\n isValid = true;\n }\n return isValid;\n };\n Splitter.prototype.getPaneDimensions = function () {\n this.previousPaneHeightWidth = (this.previousPane.style.flexBasis === '') ? this.getPaneHeight(this.previousPane) :\n this.previousPane.style.flexBasis;\n this.nextPaneHeightWidth = (this.nextPane.style.flexBasis === '') ? this.getPaneHeight(this.nextPane) :\n this.nextPane.style.flexBasis;\n if (this.isValidSize(this.prevPaneIndex)) {\n this.previousPaneHeightWidth = this.convertPercentageToPixel(this.previousPaneHeightWidth).toString();\n this.updatePrePaneInPercentage = true;\n }\n if (this.isValidSize(this.nextPaneIndex)) {\n this.nextPaneHeightWidth = this.convertPercentageToPixel(this.nextPaneHeightWidth).toString();\n this.updateNextPaneInPercentage = true;\n }\n this.prePaneDimenson = this.convertPixelToNumber(this.previousPaneHeightWidth.toString());\n this.nextPaneDimension = this.convertPixelToNumber(this.nextPaneHeightWidth.toString());\n };\n Splitter.prototype.checkCoordinates = function (pageX, pageY) {\n var coordinatesChanged = true;\n if ((pageX === this.previousCoordinates.x && pageY === this.previousCoordinates.y)) {\n coordinatesChanged = false;\n }\n return coordinatesChanged;\n };\n Splitter.prototype.isCursorMoved = function (e) {\n var cursorMoved = true;\n if (this.getEventType(e.type) === 'mouse' || (!isNullOrUndefined(e.pointerType)) &&\n this.getEventType(e.pointerType) === 'mouse') {\n cursorMoved = this.checkCoordinates(e.pageX, e.pageY);\n }\n else {\n cursorMoved = (Browser.info.name !== 'msie') ?\n this.checkCoordinates(e.touches[0].pageX, e.touches[0].pageY) :\n this.checkCoordinates(e.pageX, e.pageY);\n }\n return cursorMoved;\n };\n Splitter.prototype.getBorder = function () {\n this.border = 0;\n var border = this.orientation === 'Horizontal' ? ((this.element.offsetWidth - this.element.clientWidth) / 2) :\n (this.element.offsetHeight - this.element.clientHeight) / 2;\n this.border = Browser.info.name !== 'chrome' ? this.border : border;\n };\n Splitter.prototype.onMouseMove = function (e) {\n if (!this.isCursorMoved(e)) {\n return;\n }\n this.getPaneDetails();\n this.getPaneDimensions();\n this.triggerResizing(e);\n var left = this.validateDraggedPosition(this.getSeparatorPosition(e), this.prePaneDimenson, this.nextPaneDimension);\n var separatorNewPosition;\n this.getBorder();\n if (this.orientation === 'Horizontal') {\n separatorNewPosition = (this.element.getBoundingClientRect().left + left) -\n this.currentSeparator.getBoundingClientRect().left + this.border;\n }\n else {\n separatorNewPosition = (this.element.getBoundingClientRect().top + left) -\n this.currentSeparator.getBoundingClientRect().top + this.border;\n }\n this.nextPaneHeightWidth =\n (typeof (this.nextPaneHeightWidth) === 'string' && this.nextPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.nextPaneHeightWidth) : parseInt(this.nextPaneHeightWidth, 10);\n this.previousPaneHeightWidth =\n (typeof (this.previousPaneHeightWidth) === 'string' && this.previousPaneHeightWidth.indexOf('p') > -1) ?\n this.convertPixelToNumber(this.previousPaneHeightWidth) : parseInt(this.previousPaneHeightWidth, 10);\n this.prevPaneCurrentWidth = separatorNewPosition + this.previousPaneHeightWidth;\n this.nextPaneCurrentWidth = this.nextPaneHeightWidth - separatorNewPosition;\n this.validateMinMaxValues();\n if (this.nextPaneCurrentWidth < 0) {\n this.nextPaneCurrentWidth = 0;\n }\n /* istanbul ignore next */\n if (this.prevPaneCurrentWidth < 0) {\n this.prevPaneCurrentWidth = 0;\n }\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) > this.totalWidth) {\n if (this.nextPaneCurrentWidth < this.prevPaneCurrentWidth) {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n else {\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth)\n - this.totalWidth);\n }\n }\n /* istanbul ignore next */\n if ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth) < this.totalWidth) {\n var difference = this.totalWidth - ((this.nextPaneCurrentWidth + this.prevPaneCurrentWidth));\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + difference;\n }\n this.calculateCurrentDimensions();\n this.addStaticPaneClass();\n var flexPaneCount = 0;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (this.paneSettings[i].size === '') {\n flexPaneCount = flexPaneCount + 1;\n }\n else if (this.allPanes[i].style.flexBasis !== '') {\n this.paneSettings[i].size = this.allPanes[i].style.flexBasis;\n }\n }\n var allFlexiblePanes = flexPaneCount === this.allPanes.length;\n // Two flexible Pane Case.\n if (this.previousPane.style.flexBasis === '' && this.nextPane.style.flexBasis === '' && !allFlexiblePanes) {\n var middlePaneIndex = this.allPanes.length % this.allBars.length;\n if (this.prevPaneIndex === middlePaneIndex) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n else if (this.nextPaneIndex === middlePaneIndex) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n }\n else {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n }\n } // All panes are flexible\n else if (allFlexiblePanes) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n addClass([this.previousPane], STATIC_PANE);\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n addClass([this.nextPane], STATIC_PANE);\n } // Two Panesa are Static Pane\n else {\n if (this.previousPane.style.flexBasis !== '' && this.previousPane.classList.contains(STATIC_PANE)) {\n this.previousPane.style.flexBasis = this.prevPaneCurrentWidth;\n }\n if (this.nextPane.style.flexBasis !== '' && this.nextPane.classList.contains(STATIC_PANE)) {\n this.nextPane.style.flexBasis = this.nextPaneCurrentWidth;\n }\n }\n var isStaticPanes = this.previousPane.style.flexBasis !== '' && this.nextPane.style.flexBasis !== '';\n if (!(this.allPanes.length > 2) && isStaticPanes) {\n this.updateSplitterSize();\n }\n };\n Splitter.prototype.validateMinRange = function (paneIndex, paneCurrentWidth) {\n var paneMinRange = null;\n var paneMinDimensions;\n var difference = 0;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].min)) {\n paneMinRange = this.paneSettings[paneIndex].min.toString();\n }\n if (!isNullOrUndefined(paneMinRange)) {\n if (paneMinRange.indexOf('%') > 0) {\n paneMinRange = this.convertPercentageToPixel(paneMinRange).toString();\n }\n paneMinDimensions = this.convertPixelToNumber(paneMinRange);\n if (paneCurrentWidth < paneMinDimensions) {\n difference = (paneCurrentWidth - paneMinDimensions) <= 0 ? 0 :\n (paneCurrentWidth - paneMinDimensions);\n this.totalWidth = this.totalWidth - difference;\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMinDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMaxRange = function (paneIndex, paneCurrentWidth) {\n var paneMaxRange = null;\n var paneMaxDimensions;\n var validatedVal;\n if (!isNullOrUndefined(this.paneSettings[paneIndex]) && !isNullOrUndefined(this.paneSettings[paneIndex].max)) {\n paneMaxRange = this.paneSettings[paneIndex].max.toString();\n }\n if (!isNullOrUndefined(paneMaxRange)) {\n if (paneMaxRange.indexOf('%') > 0) {\n paneMaxRange = this.convertPercentageToPixel(paneMaxRange).toString();\n }\n paneMaxDimensions = this.convertPixelToNumber(paneMaxRange);\n if (paneCurrentWidth > paneMaxDimensions) {\n this.totalWidth = this.totalWidth - (paneCurrentWidth - paneMaxDimensions);\n this.totalPercent = this.convertPixelToPercentage(this.totalWidth);\n validatedVal = paneMaxDimensions;\n }\n }\n return isNullOrUndefined(validatedVal) ? paneCurrentWidth : validatedVal;\n };\n Splitter.prototype.validateMinMaxValues = function () {\n //validate previous pane minimum range\n this.prevPaneCurrentWidth = this.validateMinRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // Validate next pane minimum range\n this.nextPaneCurrentWidth = this.validateMinRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n // validate previous pane maximum range\n this.prevPaneCurrentWidth = this.validateMaxRange(this.prevPaneIndex, this.prevPaneCurrentWidth);\n // validate next pane maximum range\n this.nextPaneCurrentWidth = this.validateMaxRange(this.nextPaneIndex, this.nextPaneCurrentWidth);\n };\n Splitter.prototype.equatePaneWidths = function () {\n var difference;\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) > this.totalPercent) {\n difference = (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) - this.totalPercent;\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth - (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth - (difference / 2) + '%';\n }\n if ((this.prevPaneCurrentWidth + this.nextPaneCurrentWidth) < this.totalPercent) {\n difference = this.totalPercent - (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth);\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + (difference / 2) + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + (difference / 2) + '%';\n }\n };\n Splitter.prototype.calculateCurrentDimensions = function () {\n if (this.updatePrePaneInPercentage || this.updateNextPaneInPercentage) {\n this.prevPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.prevPaneCurrentWidth)\n * 10) / 10));\n this.nextPaneCurrentWidth = Math.round(Number(Math.round(this.convertPixelToPercentage(this.nextPaneCurrentWidth)\n * 10) / 10));\n if (this.prevPaneCurrentWidth === 0) {\n this.nextPaneCurrentWidth = this.totalPercent;\n }\n if (this.nextPaneCurrentWidth === 0) {\n this.prevPaneCurrentWidth = this.totalPercent;\n }\n if (this.prevPaneCurrentWidth + this.nextPaneCurrentWidth !== this.totalPercent) {\n this.equatePaneWidths();\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + '%';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + '%';\n }\n this.prevPaneCurrentWidth = (this.updatePrePaneInPercentage) ? this.prevPaneCurrentWidth :\n this.convertPercentageToPixel(this.prevPaneCurrentWidth) + 'px';\n this.nextPaneCurrentWidth = (this.updateNextPaneInPercentage) ? this.nextPaneCurrentWidth :\n this.convertPercentageToPixel(this.nextPaneCurrentWidth) + 'px';\n this.updatePrePaneInPercentage = false;\n this.updateNextPaneInPercentage = false;\n }\n else {\n this.prevPaneCurrentWidth = this.prevPaneCurrentWidth + 'px';\n this.nextPaneCurrentWidth = this.nextPaneCurrentWidth + 'px';\n }\n };\n Splitter.prototype.addStaticPaneClass = function () {\n if (!this.previousPane.classList.contains(STATIC_PANE) && !(this.previousPane.style.flexBasis === '') && !this.previousPane.classList.contains(EXPAND_PANE)) {\n this.previousPane.classList.add(STATIC_PANE);\n }\n if (!this.nextPane.classList.contains(STATIC_PANE) && !(this.nextPane.style.flexBasis === '') && !this.nextPane.classList.contains(EXPAND_PANE)) {\n this.nextPane.classList.add(STATIC_PANE);\n }\n };\n Splitter.prototype.validateDraggedPosition = function (draggedPos, prevPaneHeightWidth, nextPaneHeightWidth) {\n var separatorTopLeft = (this.orientation === 'Horizontal') ? this.currentSeparator.offsetLeft :\n this.currentSeparator.offsetTop;\n var prePaneRange = separatorTopLeft - prevPaneHeightWidth;\n var nextPaneRange = nextPaneHeightWidth + separatorTopLeft;\n var pane1MinSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'min');\n var pane2MinSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'min');\n var pane1MaxSize = this.getMinMax(this.prevPaneIndex, this.previousPane, 'max');\n var pane2MaxSize = this.getMinMax(this.nextPaneIndex, this.nextPane, 'max');\n var validatedSize = draggedPos;\n if (draggedPos > nextPaneRange - pane2MinSize) {\n validatedSize = nextPaneRange - pane2MinSize;\n }\n else if (draggedPos < prePaneRange + pane1MinSize) {\n validatedSize = prePaneRange + pane1MinSize;\n }\n if (!isNullOrUndefined(pane1MaxSize)) {\n if (draggedPos > prePaneRange + pane1MaxSize) {\n validatedSize = prePaneRange + pane1MaxSize;\n }\n }\n else if (!isNullOrUndefined(pane2MaxSize)) {\n if (draggedPos < nextPaneRange - pane2MaxSize) {\n validatedSize = nextPaneRange - pane2MaxSize;\n }\n }\n return validatedSize;\n };\n Splitter.prototype.onMouseUp = function (e) {\n removeClass([this.currentSeparator], SPLIT_BAR_ACTIVE);\n this.unwireResizeEvents();\n var eventArgs = {\n event: e,\n element: this.element,\n pane: [this.previousPane, this.nextPane],\n index: [this.prevPaneIndex, this.nextPaneIndex],\n separator: this.currentSeparator,\n paneSize: [this.prePaneDimenson, this.nextPaneDimension]\n };\n for (var i = 0; i < this.element.querySelectorAll('iframe').length; i++) {\n this.element.querySelectorAll('iframe')[i].style.pointerEvents = 'auto';\n }\n this.trigger('resizeStop', eventArgs);\n if (this.enablePersistence) {\n var paneValues = this.paneSettings;\n paneValues[this.getPreviousPaneIndex()].size = this.allPanes[this.getPreviousPaneIndex()].style.flexBasis;\n paneValues[this.getNextPaneIndex()].size = this.allPanes[this.getNextPaneIndex()].style.flexBasis;\n this.setProperties({ 'paneSettings': paneValues }, true);\n }\n };\n Splitter.prototype.panesDimension = function (index, child) {\n var childCount = child.length;\n var size;\n parseInt(this.getHeight(this.element), 10);\n if (!isNullOrUndefined(this.paneSettings[index])) {\n if (!isNullOrUndefined(this.paneSettings[index].size)) {\n size = this.paneSettings[index].size;\n if (index < childCount) {\n setStyleAttribute(child[index], { 'flex-basis': size, 'order': index * 2 });\n if (index < childCount - 1 && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n else if (!this.sizeFlag) {\n child[index].style.flexBasis = null;\n }\n if ((index === childCount - 1) && this.sizeFlag && this.paneSettings[index].size !== '') {\n addClass([child[index]], STATIC_PANE);\n }\n }\n }\n else {\n this.sizeFlag = true;\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n }\n else {\n setStyleAttribute(child[index], { 'order': index * 2 });\n }\n this.paneOrder.push(index * 2);\n };\n Splitter.prototype.setTemplate = function (template, toElement) {\n toElement.innerHTML = '';\n template = typeof (template) === 'string' ? this.sanitizeHelper(template) : template;\n this.templateCompile(toElement, template);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n };\n // eslint-disable-next-line\n Splitter.prototype.templateCompile = function (ele, cnt) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n var tempEle = this.createElement('div');\n this.compileElement(tempEle, cnt, 'content');\n if (tempEle.childNodes.length !== 0) {\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\n ele.appendChild(childEle);\n });\n }\n };\n Splitter.prototype.compileElement = function (ele, val, prop) {\n // eslint-disable-next-line\n var blazorContain = Object.keys(window);\n if (typeof (val) === 'string') {\n if (val[0] === '.' || val[0] === '#') {\n var eleVal = document.querySelector(val);\n if (!isNullOrUndefined(eleVal)) {\n this.templateElement.push(eleVal);\n if (eleVal.style.display === 'none') {\n eleVal.style.removeProperty('display');\n }\n if (eleVal.getAttribute('style') === '') {\n eleVal.removeAttribute('style');\n }\n ele.appendChild(eleVal);\n return;\n }\n else {\n val = val.trim();\n }\n }\n else {\n val = val.trim();\n }\n }\n var templateFn;\n if (!isNullOrUndefined(val.outerHTML)) {\n templateFn = compile(val.outerHTML);\n }\n else {\n templateFn = compile(val);\n }\n var templateFUN;\n if (!isNullOrUndefined(templateFn)) {\n templateFUN = templateFn({}, this, prop, this.element.id + 'content' + this.allPanes.length.toString(), true);\n }\n if (!isNullOrUndefined(templateFn) && templateFUN && templateFUN.length > 0) {\n [].slice.call(templateFUN).forEach(function (el) {\n ele.appendChild(el);\n });\n }\n };\n Splitter.prototype.paneCollapsible = function (pane, index) {\n // eslint-disable-next-line\n this.paneSettings[index].collapsible ? addClass([pane], COLLAPSIBLE) : removeClass([pane], COLLAPSIBLE);\n };\n Splitter.prototype.createSplitPane = function (target) {\n var childCount = target.children.length;\n for (var i = 0; i < this.paneSettings.length; i++) {\n if (childCount < this.paneSettings.length) {\n var childElement = this.createElement('div');\n this.element.appendChild(childElement);\n childCount = childCount + 1;\n }\n }\n childCount = target.children.length;\n var child = [].slice.call(target.children);\n this.sizeFlag = false;\n if (childCount > 0) {\n for (var i = 0; i < childCount; i++) {\n // To accept only div and span element as pane\n if (child[i].nodeName === 'DIV' || child[i].nodeName === 'SPAN') {\n this.allPanes.push(child[i]);\n if (this.orientation === 'Horizontal') {\n addClass([child[i]], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n else {\n addClass([child[i]], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n this.panesDimension(i, child);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && !isNullOrUndefined(this.paneSettings[i].content)) {\n this.setTemplate(this.paneSettings[i].content, child[i]);\n }\n if (!isNullOrUndefined(this.paneSettings[i]) && this.paneSettings[i].cssClass) {\n this.setCssClass(child[i], this.paneSettings[i].cssClass);\n }\n if (!isNullOrUndefined(this.paneSettings[i])) {\n this.paneCollapsible(child[i], i);\n }\n }\n }\n }\n };\n /**\n * expands corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be expanded at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.expand = function (index) {\n this.collapsedOnchange(index);\n this.updatePaneSettings(index, false);\n };\n /**\n * collapses corresponding pane based on the index is passed.\n *\n * @param { number } index - Specifies the index value of the corresponding pane to be collapsed at initial rendering of splitter.\n * @returns {void}\n */\n Splitter.prototype.collapse = function (index) {\n this.isCollapsed(index);\n this.updatePaneSettings(index, true);\n };\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n Splitter.prototype.destroy = function () {\n if (!this.isDestroyed) {\n _super.prototype.destroy.call(this);\n EventHandler.remove(document, 'touchstart click', this.onDocumentClick);\n EventHandler.remove(this.element, 'keydown', this.onMove);\n this.element.ownerDocument.defaultView.removeEventListener('resize', this.onReportWindowSize, true);\n while (this.element.attributes.length > 0) {\n this.element.removeAttribute(this.element.attributes[0].name);\n }\n this.element.innerHTML = this.wrapper.innerHTML;\n for (var i = 0; i < this.wrapper.attributes.length; i++) {\n this.element.setAttribute(this.wrapper.attributes[i].name, this.wrapper.attributes[i].value);\n }\n if (this.refreshing) {\n addClass([this.element], ['e-control', 'e-lib', ROOT]);\n this.allBars = [];\n this.allPanes = [];\n }\n this.restoreElem();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n this.allBars = [];\n this.allPanes = [];\n this.previousPane = null;\n this.nextPane = null;\n this.currentSeparator = null;\n }\n };\n Splitter.prototype.restoreElem = function () {\n if (this.templateElement.length > 0) {\n for (var i = 0; i < this.templateElement.length; i++) {\n this.templateElement[i].style.display = 'none';\n document.body.appendChild(this.templateElement[i]);\n }\n }\n };\n Splitter.prototype.addPaneClass = function (pane) {\n if (this.orientation === 'Horizontal') {\n addClass([pane], [PANE, SPLIT_H_PANE, SCROLL_PANE]);\n }\n else {\n addClass([pane], [PANE, SPLIT_V_PANE, SCROLL_PANE]);\n }\n return pane;\n };\n Splitter.prototype.removePaneOrders = function (paneClass) {\n var childNodes = this.element.childNodes;\n var panes = [];\n for (var i = 0; childNodes.length < 0; i++) {\n if (childNodes[i].classList.contains(paneClass)) {\n panes.push(childNodes[i]);\n }\n }\n for (var i = 0; i < panes.length; i++) {\n panes[i].style.removeProperty('order');\n }\n };\n Splitter.prototype.setPaneOrder = function () {\n for (var i = 0; i < this.allPanes.length; i++) {\n this.panesDimension(i, this.allPanes);\n }\n };\n Splitter.prototype.removeSeparator = function () {\n for (var i = 0; i < this.allBars.length; i++) {\n detach(this.allBars[i]);\n }\n this.allBars = [];\n };\n Splitter.prototype.updatePanes = function () {\n this.setPaneOrder();\n this.removeSeparator();\n this.addSeparator(this.element);\n };\n /**\n * Allows you to add a pane dynamically to the specified index position by passing the pane properties.\n *\n * @param { PanePropertiesModel } paneProperties - Specifies the pane’s properties that apply to new pane.\n * @param { number } index - Specifies the index where the pane will be inserted.\n * @returns {void}\n */\n Splitter.prototype.addPane = function (paneProperties, index) {\n var newPane = this.createElement('div');\n newPane = this.addPaneClass(newPane);\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var paneDetails = {\n size: isNullOrUndefined(paneProperties.size) ? '' : paneProperties.size,\n min: isNullOrUndefined(paneProperties.min) ? null : paneProperties.min,\n max: isNullOrUndefined(paneProperties.max) ? null : paneProperties.max,\n content: isNullOrUndefined(paneProperties.content) ? '' : paneProperties.content,\n resizable: isNullOrUndefined(paneProperties.resizable) ? true : paneProperties.resizable,\n collapsible: isNullOrUndefined(paneProperties.collapsible) ? false : paneProperties.collapsible,\n collapsed: isNullOrUndefined(paneProperties.collapsed) ? false : paneProperties.collapsed,\n cssClass: isNullOrUndefined(paneProperties.cssClass) ? '' : paneProperties.cssClass\n };\n this.paneSettings.splice(index, 0, paneDetails);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.orientation === 'Horizontal') {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_H_PANE)[index]);\n this.removePaneOrders(SPLIT_H_PANE);\n }\n else {\n this.element.insertBefore(newPane, this.element.querySelectorAll('.' + SPLIT_V_PANE)[index]);\n this.removePaneOrders(SPLIT_V_PANE);\n }\n this.allPanes.splice(index, 0, newPane);\n this.updatePanes();\n this.setTemplate(this.paneSettings[index].content, newPane);\n this.setCssClass(this.allPanes[index], paneProperties.cssClass);\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n };\n /**\n * Allows you to remove the specified pane dynamically by passing its index value.\n *\n * @param { number } index - Specifies the index value to remove the corresponding pane.\n * @returns {void}\n */\n Splitter.prototype.removePane = function (index) {\n index = (index > this.allPanes.length + 1) ? this.allPanes.length : index;\n var elementClass = (this.orientation === 'Horizontal') ? SPLIT_H_PANE : SPLIT_V_PANE;\n if (isNullOrUndefined(this.element.querySelectorAll('.' + elementClass)[index])) {\n return;\n }\n detach(this.element.querySelectorAll('.' + elementClass)[index]);\n this.allPanes.splice(index, 1);\n this.removePaneOrders(elementClass);\n this.updatePanes();\n this.paneSettings.splice(index, 1);\n this.setProperties({ 'paneSettings': this.paneSettings }, true);\n if (this.allPanes.length > 0) {\n this.allPanes[this.allPanes.length - 1].classList.remove(STATIC_PANE);\n }\n };\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"height\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enableReversePanes\", void 0);\n __decorate([\n Property('100%')\n ], Splitter.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], Splitter.prototype, \"enablePersistence\", void 0);\n __decorate([\n Collection([], PaneProperties)\n ], Splitter.prototype, \"paneSettings\", void 0);\n __decorate([\n Property('Horizontal')\n ], Splitter.prototype, \"orientation\", void 0);\n __decorate([\n Property('')\n ], Splitter.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enabled\", void 0);\n __decorate([\n Property(true)\n ], Splitter.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property(null)\n ], Splitter.prototype, \"separatorSize\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeSanitizeHtml\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStart\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizing\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"resizeStop\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeCollapse\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"beforeExpand\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"collapsed\", void 0);\n __decorate([\n Event()\n ], Splitter.prototype, \"expanded\", void 0);\n Splitter = __decorate([\n NotifyPropertyChanges\n ], Splitter);\n return Splitter;\n}(Component));\nexport { Splitter };\n","import { ComponentBase, gh, getProps, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Splitter } from '@syncfusion/ej2-layouts';\nimport { PanesDirective, PaneDirective, PanesPlugin, PanePlugin } from './panesettings.directive';\nexport var properties = ['isLazyUpdate', 'plugins', 'cssClass', 'enableHtmlSanitizer', 'enablePersistence', 'enableReversePanes', 'enableRtl', 'enabled', 'height', 'locale', 'orientation', 'paneSettings', 'separatorSize', 'width', 'beforeCollapse', 'beforeExpand', 'beforeSanitizeHtml', 'collapsed', 'created', 'expanded', 'resizeStart', 'resizeStop', 'resizing'];\nexport var modelProps = [];\nexport var testProp = getProps({ props: properties });\nexport var props = testProp[0], watch = testProp[1], emitProbs = Object.keys(watch);\nemitProbs.push('modelchanged', 'update:modelValue');\nfor (var _i = 0, modelProps_1 = modelProps; _i < modelProps_1.length; _i++) {\n var props_1 = modelProps_1[_i];\n emitProbs.push('update:' + props_1);\n}\n/**\n * Represents the VueJS Splitter component\n * ```html\n * \n * ```\n */\nexport var SplitterComponent = vueDefineComponent({\n name: 'SplitterComponent',\n mixins: [ComponentBase],\n props: props,\n watch: watch,\n emits: emitProbs,\n provide: function () { return { custom: this.custom }; },\n data: function () {\n return {\n ej2Instances: new Splitter({}),\n propKeys: properties,\n models: modelProps,\n hasChildDirective: true,\n hasInjectedModules: false,\n tagMapper: { \"e-panes\": \"e-pane\" },\n tagNameMapper: { \"e-panes\": \"e-paneSettings\" },\n isVue3: !isExecute,\n templateCollection: {},\n };\n },\n created: function () {\n this.bindProperties();\n this.ej2Instances._setProperties = this.ej2Instances.setProperties;\n this.ej2Instances.setProperties = this.setProperties;\n this.ej2Instances.clearTemplate = this.clearTemplate;\n this.updated = this.updated;\n },\n render: function (createElement) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', slots);\n },\n methods: {\n clearTemplate: function (templateNames) {\n if (!templateNames) {\n templateNames = Object.keys(this.templateCollection || {});\n }\n if (templateNames.length && this.templateCollection) {\n for (var _i = 0, templateNames_1 = templateNames; _i < templateNames_1.length; _i++) {\n var tempName = templateNames_1[_i];\n var elementCollection = this.templateCollection[tempName];\n if (elementCollection && elementCollection.length) {\n for (var _a = 0, elementCollection_1 = elementCollection; _a < elementCollection_1.length; _a++) {\n var ele = elementCollection_1[_a];\n this.destroyPortals(ele);\n }\n delete this.templateCollection[tempName];\n }\n }\n }\n },\n setProperties: function (prop, muteOnChange) {\n var _this = this;\n if (this.isVue3) {\n this.models = !this.models ? this.ej2Instances.referModels : this.models;\n }\n if (this.ej2Instances && this.ej2Instances._setProperties) {\n this.ej2Instances._setProperties(prop, muteOnChange);\n }\n if (prop && this.models && this.models.length) {\n Object.keys(prop).map(function (key) {\n _this.models.map(function (model) {\n if ((key === model) && !(/datasource/i.test(key))) {\n if (_this.isVue3) {\n _this.ej2Instances.vueInstance.$emit('update:' + key, prop[key]);\n }\n else {\n _this.$emit('update:' + key, prop[key]);\n _this.$emit('modelchanged', prop[key]);\n }\n }\n });\n });\n }\n },\n custom: function () {\n this.updated();\n },\n addPane: function (paneProperties, index) {\n return this.ej2Instances.addPane(paneProperties, index);\n },\n collapse: function (index) {\n return this.ej2Instances.collapse(index);\n },\n destroy: function () {\n return this.ej2Instances.destroy();\n },\n expand: function (index) {\n return this.ej2Instances.expand(index);\n },\n removePane: function (index) {\n return this.ej2Instances.removePane(index);\n },\n }\n});\nexport var SplitterPlugin = {\n name: 'ejs-splitter',\n install: function (Vue) {\n Vue.component(SplitterPlugin.name, SplitterComponent);\n Vue.component(PanePlugin.name, PaneDirective);\n Vue.component(PanesPlugin.name, PanesDirective);\n }\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { quickSelect } from '../../../../base/common/arrays.js';\nimport { anyScore, fuzzyScore, FuzzyScore, fuzzyScoreGracefulAggressive, FuzzyScoreOptions } from '../../../../base/common/filters.js';\nimport { compareIgnoreCase } from '../../../../base/common/strings.js';\nexport class LineContext {\n constructor(leadingLineContent, characterCountDelta) {\n this.leadingLineContent = leadingLineContent;\n this.characterCountDelta = characterCountDelta;\n }\n}\n/**\n * Sorted, filtered completion view model\n * */\nexport class CompletionModel {\n constructor(items, column, lineContext, wordDistance, options, snippetSuggestions, fuzzyScoreOptions = FuzzyScoreOptions.default, clipboardText = undefined) {\n this.clipboardText = clipboardText;\n this._snippetCompareFn = CompletionModel._compareCompletionItems;\n this._items = items;\n this._column = column;\n this._wordDistance = wordDistance;\n this._options = options;\n this._refilterKind = 1 /* Refilter.All */;\n this._lineContext = lineContext;\n this._fuzzyScoreOptions = fuzzyScoreOptions;\n if (snippetSuggestions === 'top') {\n this._snippetCompareFn = CompletionModel._compareCompletionItemsSnippetsUp;\n }\n else if (snippetSuggestions === 'bottom') {\n this._snippetCompareFn = CompletionModel._compareCompletionItemsSnippetsDown;\n }\n }\n get lineContext() {\n return this._lineContext;\n }\n set lineContext(value) {\n if (this._lineContext.leadingLineContent !== value.leadingLineContent\n || this._lineContext.characterCountDelta !== value.characterCountDelta) {\n this._refilterKind = this._lineContext.characterCountDelta < value.characterCountDelta && this._filteredItems ? 2 /* Refilter.Incr */ : 1 /* Refilter.All */;\n this._lineContext = value;\n }\n }\n get items() {\n this._ensureCachedState();\n return this._filteredItems;\n }\n getItemsByProvider() {\n this._ensureCachedState();\n return this._itemsByProvider;\n }\n getIncompleteProvider() {\n this._ensureCachedState();\n const result = new Set();\n for (const [provider, items] of this.getItemsByProvider()) {\n if (items.length > 0 && items[0].container.incomplete) {\n result.add(provider);\n }\n }\n return result;\n }\n get stats() {\n this._ensureCachedState();\n return this._stats;\n }\n _ensureCachedState() {\n if (this._refilterKind !== 0 /* Refilter.Nothing */) {\n this._createCachedState();\n }\n }\n _createCachedState() {\n this._itemsByProvider = new Map();\n const labelLengths = [];\n const { leadingLineContent, characterCountDelta } = this._lineContext;\n let word = '';\n let wordLow = '';\n // incrementally filter less\n const source = this._refilterKind === 1 /* Refilter.All */ ? this._items : this._filteredItems;\n const target = [];\n // picks a score function based on the number of\n // items that we have to score/filter and based on the\n // user-configuration\n const scoreFn = (!this._options.filterGraceful || source.length > 2000) ? fuzzyScore : fuzzyScoreGracefulAggressive;\n for (let i = 0; i < source.length; i++) {\n const item = source[i];\n if (item.isInvalid) {\n continue; // SKIP invalid items\n }\n // keep all items by their provider\n const arr = this._itemsByProvider.get(item.provider);\n if (arr) {\n arr.push(item);\n }\n else {\n this._itemsByProvider.set(item.provider, [item]);\n }\n // 'word' is that remainder of the current line that we\n // filter and score against. In theory each suggestion uses a\n // different word, but in practice not - that's why we cache\n const overwriteBefore = item.position.column - item.editStart.column;\n const wordLen = overwriteBefore + characterCountDelta - (item.position.column - this._column);\n if (word.length !== wordLen) {\n word = wordLen === 0 ? '' : leadingLineContent.slice(-wordLen);\n wordLow = word.toLowerCase();\n }\n // remember the word against which this item was\n // scored\n item.word = word;\n if (wordLen === 0) {\n // when there is nothing to score against, don't\n // event try to do. Use a const rank and rely on\n // the fallback-sort using the initial sort order.\n // use a score of `-100` because that is out of the\n // bound of values `fuzzyScore` will return\n item.score = FuzzyScore.Default;\n }\n else {\n // skip word characters that are whitespace until\n // we have hit the replace range (overwriteBefore)\n let wordPos = 0;\n while (wordPos < overwriteBefore) {\n const ch = word.charCodeAt(wordPos);\n if (ch === 32 /* CharCode.Space */ || ch === 9 /* CharCode.Tab */) {\n wordPos += 1;\n }\n else {\n break;\n }\n }\n if (wordPos >= wordLen) {\n // the wordPos at which scoring starts is the whole word\n // and therefore the same rules as not having a word apply\n item.score = FuzzyScore.Default;\n }\n else if (typeof item.completion.filterText === 'string') {\n // when there is a `filterText` it must match the `word`.\n // if it matches we check with the label to compute highlights\n // and if that doesn't yield a result we have no highlights,\n // despite having the match\n const match = scoreFn(word, wordLow, wordPos, item.completion.filterText, item.filterTextLow, 0, this._fuzzyScoreOptions);\n if (!match) {\n continue; // NO match\n }\n if (compareIgnoreCase(item.completion.filterText, item.textLabel) === 0) {\n // filterText and label are actually the same -> use good highlights\n item.score = match;\n }\n else {\n // re-run the scorer on the label in the hope of a result BUT use the rank\n // of the filterText-match\n item.score = anyScore(word, wordLow, wordPos, item.textLabel, item.labelLow, 0);\n item.score[0] = match[0]; // use score from filterText\n }\n }\n else {\n // by default match `word` against the `label`\n const match = scoreFn(word, wordLow, wordPos, item.textLabel, item.labelLow, 0, this._fuzzyScoreOptions);\n if (!match) {\n continue; // NO match\n }\n item.score = match;\n }\n }\n item.idx = i;\n item.distance = this._wordDistance.distance(item.position, item.completion);\n target.push(item);\n // update stats\n labelLengths.push(item.textLabel.length);\n }\n this._filteredItems = target.sort(this._snippetCompareFn);\n this._refilterKind = 0 /* Refilter.Nothing */;\n this._stats = {\n pLabelLen: labelLengths.length ?\n quickSelect(labelLengths.length - .85, labelLengths, (a, b) => a - b)\n : 0\n };\n }\n static _compareCompletionItems(a, b) {\n if (a.score[0] > b.score[0]) {\n return -1;\n }\n else if (a.score[0] < b.score[0]) {\n return 1;\n }\n else if (a.distance < b.distance) {\n return -1;\n }\n else if (a.distance > b.distance) {\n return 1;\n }\n else if (a.idx < b.idx) {\n return -1;\n }\n else if (a.idx > b.idx) {\n return 1;\n }\n else {\n return 0;\n }\n }\n static _compareCompletionItemsSnippetsDown(a, b) {\n if (a.completion.kind !== b.completion.kind) {\n if (a.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n return 1;\n }\n else if (b.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n return -1;\n }\n }\n return CompletionModel._compareCompletionItems(a, b);\n }\n static _compareCompletionItemsSnippetsUp(a, b) {\n if (a.completion.kind !== b.completion.kind) {\n if (a.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n return -1;\n }\n else if (b.completion.kind === 27 /* CompletionItemKind.Snippet */) {\n return 1;\n }\n }\n return CompletionModel._compareCompletionItems(a, b);\n }\n}\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { applyFontInfo } from './domFontInfo.js';\nexport class CharWidthRequest {\n constructor(chr, type) {\n this.chr = chr;\n this.type = type;\n this.width = 0;\n }\n fulfill(width) {\n this.width = width;\n }\n}\nclass DomCharWidthReader {\n constructor(bareFontInfo, requests) {\n this._bareFontInfo = bareFontInfo;\n this._requests = requests;\n this._container = null;\n this._testElements = null;\n }\n read(targetWindow) {\n // Create a test container with all these test elements\n this._createDomElements();\n // Add the container to the DOM\n targetWindow.document.body.appendChild(this._container);\n // Read character widths\n this._readFromDomElements();\n // Remove the container from the DOM\n targetWindow.document.body.removeChild(this._container);\n this._container = null;\n this._testElements = null;\n }\n _createDomElements() {\n const container = document.createElement('div');\n container.style.position = 'absolute';\n container.style.top = '-50000px';\n container.style.width = '50000px';\n const regularDomNode = document.createElement('div');\n applyFontInfo(regularDomNode, this._bareFontInfo);\n container.appendChild(regularDomNode);\n const boldDomNode = document.createElement('div');\n applyFontInfo(boldDomNode, this._bareFontInfo);\n boldDomNode.style.fontWeight = 'bold';\n container.appendChild(boldDomNode);\n const italicDomNode = document.createElement('div');\n applyFontInfo(italicDomNode, this._bareFontInfo);\n italicDomNode.style.fontStyle = 'italic';\n container.appendChild(italicDomNode);\n const testElements = [];\n for (const request of this._requests) {\n let parent;\n if (request.type === 0 /* CharWidthRequestType.Regular */) {\n parent = regularDomNode;\n }\n if (request.type === 2 /* CharWidthRequestType.Bold */) {\n parent = boldDomNode;\n }\n if (request.type === 1 /* CharWidthRequestType.Italic */) {\n parent = italicDomNode;\n }\n parent.appendChild(document.createElement('br'));\n const testElement = document.createElement('span');\n DomCharWidthReader._render(testElement, request);\n parent.appendChild(testElement);\n testElements.push(testElement);\n }\n this._container = container;\n this._testElements = testElements;\n }\n static _render(testElement, request) {\n if (request.chr === ' ') {\n let htmlString = '\\u00a0';\n // Repeat character 256 (2^8) times\n for (let i = 0; i < 8; i++) {\n htmlString += htmlString;\n }\n testElement.innerText = htmlString;\n }\n else {\n let testString = request.chr;\n // Repeat character 256 (2^8) times\n for (let i = 0; i < 8; i++) {\n testString += testString;\n }\n testElement.textContent = testString;\n }\n }\n _readFromDomElements() {\n for (let i = 0, len = this._requests.length; i < len; i++) {\n const request = this._requests[i];\n const testElement = this._testElements[i];\n request.fulfill(testElement.offsetWidth / 256);\n }\n }\n}\nexport function readCharWidths(targetWindow, bareFontInfo, requests) {\n const reader = new DomCharWidthReader(bareFontInfo, requests);\n reader.read(targetWindow);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { getWindowId } from '../../../base/browser/dom.js';\nimport { PixelRatio } from '../../../base/browser/pixelRatio.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable } from '../../../base/common/lifecycle.js';\nimport { CharWidthRequest, readCharWidths } from './charWidthReader.js';\nimport { EditorFontLigatures } from '../../common/config/editorOptions.js';\nimport { FontInfo } from '../../common/config/fontInfo.js';\nexport class FontMeasurementsImpl extends Disposable {\n constructor() {\n super(...arguments);\n this._cache = new Map();\n this._evictUntrustedReadingsTimeout = -1;\n this._onDidChange = this._register(new Emitter());\n this.onDidChange = this._onDidChange.event;\n }\n dispose() {\n if (this._evictUntrustedReadingsTimeout !== -1) {\n clearTimeout(this._evictUntrustedReadingsTimeout);\n this._evictUntrustedReadingsTimeout = -1;\n }\n super.dispose();\n }\n /**\n * Clear all cached font information and trigger a change event.\n */\n clearAllFontInfos() {\n this._cache.clear();\n this._onDidChange.fire();\n }\n _ensureCache(targetWindow) {\n const windowId = getWindowId(targetWindow);\n let cache = this._cache.get(windowId);\n if (!cache) {\n cache = new FontMeasurementsCache();\n this._cache.set(windowId, cache);\n }\n return cache;\n }\n _writeToCache(targetWindow, item, value) {\n const cache = this._ensureCache(targetWindow);\n cache.put(item, value);\n if (!value.isTrusted && this._evictUntrustedReadingsTimeout === -1) {\n // Try reading again after some time\n this._evictUntrustedReadingsTimeout = targetWindow.setTimeout(() => {\n this._evictUntrustedReadingsTimeout = -1;\n this._evictUntrustedReadings(targetWindow);\n }, 5000);\n }\n }\n _evictUntrustedReadings(targetWindow) {\n const cache = this._ensureCache(targetWindow);\n const values = cache.getValues();\n let somethingRemoved = false;\n for (const item of values) {\n if (!item.isTrusted) {\n somethingRemoved = true;\n cache.remove(item);\n }\n }\n if (somethingRemoved) {\n this._onDidChange.fire();\n }\n }\n /**\n * Read font information.\n */\n readFontInfo(targetWindow, bareFontInfo) {\n const cache = this._ensureCache(targetWindow);\n if (!cache.has(bareFontInfo)) {\n let readConfig = this._actualReadFontInfo(targetWindow, bareFontInfo);\n if (readConfig.typicalHalfwidthCharacterWidth <= 2 || readConfig.typicalFullwidthCharacterWidth <= 2 || readConfig.spaceWidth <= 2 || readConfig.maxDigitWidth <= 2) {\n // Hey, it's Bug 14341 ... we couldn't read\n readConfig = new FontInfo({\n pixelRatio: PixelRatio.getInstance(targetWindow).value,\n fontFamily: readConfig.fontFamily,\n fontWeight: readConfig.fontWeight,\n fontSize: readConfig.fontSize,\n fontFeatureSettings: readConfig.fontFeatureSettings,\n fontVariationSettings: readConfig.fontVariationSettings,\n lineHeight: readConfig.lineHeight,\n letterSpacing: readConfig.letterSpacing,\n isMonospace: readConfig.isMonospace,\n typicalHalfwidthCharacterWidth: Math.max(readConfig.typicalHalfwidthCharacterWidth, 5),\n typicalFullwidthCharacterWidth: Math.max(readConfig.typicalFullwidthCharacterWidth, 5),\n canUseHalfwidthRightwardsArrow: readConfig.canUseHalfwidthRightwardsArrow,\n spaceWidth: Math.max(readConfig.spaceWidth, 5),\n middotWidth: Math.max(readConfig.middotWidth, 5),\n wsmiddotWidth: Math.max(readConfig.wsmiddotWidth, 5),\n maxDigitWidth: Math.max(readConfig.maxDigitWidth, 5),\n }, false);\n }\n this._writeToCache(targetWindow, bareFontInfo, readConfig);\n }\n return cache.get(bareFontInfo);\n }\n _createRequest(chr, type, all, monospace) {\n const result = new CharWidthRequest(chr, type);\n all.push(result);\n monospace === null || monospace === void 0 ? void 0 : monospace.push(result);\n return result;\n }\n _actualReadFontInfo(targetWindow, bareFontInfo) {\n const all = [];\n const monospace = [];\n const typicalHalfwidthCharacter = this._createRequest('n', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const typicalFullwidthCharacter = this._createRequest('\\uff4d', 0 /* CharWidthRequestType.Regular */, all, null);\n const space = this._createRequest(' ', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit0 = this._createRequest('0', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit1 = this._createRequest('1', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit2 = this._createRequest('2', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit3 = this._createRequest('3', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit4 = this._createRequest('4', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit5 = this._createRequest('5', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit6 = this._createRequest('6', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit7 = this._createRequest('7', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit8 = this._createRequest('8', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const digit9 = this._createRequest('9', 0 /* CharWidthRequestType.Regular */, all, monospace);\n // monospace test: used for whitespace rendering\n const rightwardsArrow = this._createRequest('→', 0 /* CharWidthRequestType.Regular */, all, monospace);\n const halfwidthRightwardsArrow = this._createRequest('→', 0 /* CharWidthRequestType.Regular */, all, null);\n // U+00B7 - MIDDLE DOT\n const middot = this._createRequest('·', 0 /* CharWidthRequestType.Regular */, all, monospace);\n // U+2E31 - WORD SEPARATOR MIDDLE DOT\n const wsmiddotWidth = this._createRequest(String.fromCharCode(0x2E31), 0 /* CharWidthRequestType.Regular */, all, null);\n // monospace test: some characters\n const monospaceTestChars = '|/-_ilm%';\n for (let i = 0, len = monospaceTestChars.length; i < len; i++) {\n this._createRequest(monospaceTestChars.charAt(i), 0 /* CharWidthRequestType.Regular */, all, monospace);\n this._createRequest(monospaceTestChars.charAt(i), 1 /* CharWidthRequestType.Italic */, all, monospace);\n this._createRequest(monospaceTestChars.charAt(i), 2 /* CharWidthRequestType.Bold */, all, monospace);\n }\n readCharWidths(targetWindow, bareFontInfo, all);\n const maxDigitWidth = Math.max(digit0.width, digit1.width, digit2.width, digit3.width, digit4.width, digit5.width, digit6.width, digit7.width, digit8.width, digit9.width);\n let isMonospace = (bareFontInfo.fontFeatureSettings === EditorFontLigatures.OFF);\n const referenceWidth = monospace[0].width;\n for (let i = 1, len = monospace.length; isMonospace && i < len; i++) {\n const diff = referenceWidth - monospace[i].width;\n if (diff < -0.001 || diff > 0.001) {\n isMonospace = false;\n break;\n }\n }\n let canUseHalfwidthRightwardsArrow = true;\n if (isMonospace && halfwidthRightwardsArrow.width !== referenceWidth) {\n // using a halfwidth rightwards arrow would break monospace...\n canUseHalfwidthRightwardsArrow = false;\n }\n if (halfwidthRightwardsArrow.width > rightwardsArrow.width) {\n // using a halfwidth rightwards arrow would paint a larger arrow than a regular rightwards arrow\n canUseHalfwidthRightwardsArrow = false;\n }\n return new FontInfo({\n pixelRatio: PixelRatio.getInstance(targetWindow).value,\n fontFamily: bareFontInfo.fontFamily,\n fontWeight: bareFontInfo.fontWeight,\n fontSize: bareFontInfo.fontSize,\n fontFeatureSettings: bareFontInfo.fontFeatureSettings,\n fontVariationSettings: bareFontInfo.fontVariationSettings,\n lineHeight: bareFontInfo.lineHeight,\n letterSpacing: bareFontInfo.letterSpacing,\n isMonospace: isMonospace,\n typicalHalfwidthCharacterWidth: typicalHalfwidthCharacter.width,\n typicalFullwidthCharacterWidth: typicalFullwidthCharacter.width,\n canUseHalfwidthRightwardsArrow: canUseHalfwidthRightwardsArrow,\n spaceWidth: space.width,\n middotWidth: middot.width,\n wsmiddotWidth: wsmiddotWidth.width,\n maxDigitWidth: maxDigitWidth\n }, true);\n }\n}\nclass FontMeasurementsCache {\n constructor() {\n this._keys = Object.create(null);\n this._values = Object.create(null);\n }\n has(item) {\n const itemId = item.getId();\n return !!this._values[itemId];\n }\n get(item) {\n const itemId = item.getId();\n return this._values[itemId];\n }\n put(item, value) {\n const itemId = item.getId();\n this._keys[itemId] = item;\n this._values[itemId] = value;\n }\n remove(item) {\n const itemId = item.getId();\n delete this._keys[itemId];\n delete this._values[itemId];\n }\n getValues() {\n return Object.keys(this._keys).map(id => this._values[id]);\n }\n}\nexport const FontMeasurements = new FontMeasurementsImpl();\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.callRef = exports.getValidate = void 0;\nconst ref_error_1 = require(\"../../compile/ref_error\");\nconst code_1 = require(\"../code\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst names_1 = require(\"../../compile/names\");\nconst compile_1 = require(\"../../compile\");\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt) {\n const { gen, schema: $ref, it } = cxt;\n const { baseId, schemaEnv: env, validateName, opts, self } = it;\n const { root } = env;\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId)\n return callRootRef();\n const schOrEnv = compile_1.resolveRef.call(self, root, baseId, $ref);\n if (schOrEnv === undefined)\n throw new ref_error_1.default(it.opts.uriResolver, baseId, $ref);\n if (schOrEnv instanceof compile_1.SchemaEnv)\n return callValidate(schOrEnv);\n return inlineRefSchema(schOrEnv);\n function callRootRef() {\n if (env === root)\n return callRef(cxt, validateName, env, env.$async);\n const rootName = gen.scopeValue(\"root\", { ref: root });\n return callRef(cxt, (0, codegen_1._) `${rootName}.validate`, root, root.$async);\n }\n function callValidate(sch) {\n const v = getValidate(cxt, sch);\n callRef(cxt, v, sch, sch.$async);\n }\n function inlineRefSchema(sch) {\n const schName = gen.scopeValue(\"schema\", opts.code.source === true ? { ref: sch, code: (0, codegen_1.stringify)(sch) } : { ref: sch });\n const valid = gen.name(\"valid\");\n const schCxt = cxt.subschema({\n schema: sch,\n dataTypes: [],\n schemaPath: codegen_1.nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n }, valid);\n cxt.mergeEvaluated(schCxt);\n cxt.ok(valid);\n }\n },\n};\nfunction getValidate(cxt, sch) {\n const { gen } = cxt;\n return sch.validate\n ? gen.scopeValue(\"validate\", { ref: sch.validate })\n : (0, codegen_1._) `${gen.scopeValue(\"wrapper\", { ref: sch })}.validate`;\n}\nexports.getValidate = getValidate;\nfunction callRef(cxt, v, sch, $async) {\n const { gen, it } = cxt;\n const { allErrors, schemaEnv: env, opts } = it;\n const passCxt = opts.passContext ? names_1.default.this : codegen_1.nil;\n if ($async)\n callAsyncRef();\n else\n callSyncRef();\n function callAsyncRef() {\n if (!env.$async)\n throw new Error(\"async schema referenced by sync schema\");\n const valid = gen.let(\"valid\");\n gen.try(() => {\n gen.code((0, codegen_1._) `await ${(0, code_1.callValidateCode)(cxt, v, passCxt)}`);\n addEvaluatedFrom(v); // TODO will not work with async, it has to be returned with the result\n if (!allErrors)\n gen.assign(valid, true);\n }, (e) => {\n gen.if((0, codegen_1._) `!(${e} instanceof ${it.ValidationError})`, () => gen.throw(e));\n addErrorsFrom(e);\n if (!allErrors)\n gen.assign(valid, false);\n });\n cxt.ok(valid);\n }\n function callSyncRef() {\n cxt.result((0, code_1.callValidateCode)(cxt, v, passCxt), () => addEvaluatedFrom(v), () => addErrorsFrom(v));\n }\n function addErrorsFrom(source) {\n const errs = (0, codegen_1._) `${source}.errors`;\n gen.assign(names_1.default.vErrors, (0, codegen_1._) `${names_1.default.vErrors} === null ? ${errs} : ${names_1.default.vErrors}.concat(${errs})`); // TODO tagged\n gen.assign(names_1.default.errors, (0, codegen_1._) `${names_1.default.vErrors}.length`);\n }\n function addEvaluatedFrom(source) {\n var _a;\n if (!it.opts.unevaluated)\n return;\n const schEvaluated = (_a = sch === null || sch === void 0 ? void 0 : sch.validate) === null || _a === void 0 ? void 0 : _a.evaluated;\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schEvaluated.props, it.props);\n }\n }\n else {\n const props = gen.var(\"props\", (0, codegen_1._) `${source}.evaluated.props`);\n it.props = util_1.mergeEvaluated.props(gen, props, it.props, codegen_1.Name);\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schEvaluated.items, it.items);\n }\n }\n else {\n const items = gen.var(\"items\", (0, codegen_1._) `${source}.evaluated.items`);\n it.items = util_1.mergeEvaluated.items(gen, items, it.items, codegen_1.Name);\n }\n }\n }\n}\nexports.callRef = callRef;\nexports.default = def;\n//# sourceMappingURL=ref.js.map","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const ILanguageFeaturesService = createDecorator('ILanguageFeaturesService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IContextViewService = createDecorator('contextViewService');\nexport const IContextMenuService = createDecorator('contextMenuService');\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar _a;\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { EditorAction, EditorCommand, registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { CopyPasteController, changePasteTypeCommandId, pasteWidgetVisibleCtx } from './copyPasteController.js';\nimport { DefaultPasteProvidersFeature, DefaultTextPasteOrDropEditProvider } from './defaultProviders.js';\nimport * as nls from '../../../../nls.js';\nregisterEditorContribution(CopyPasteController.ID, CopyPasteController, 0 /* EditorContributionInstantiation.Eager */); // eager because it listens to events on the container dom node of the editor\nregisterEditorFeature(DefaultPasteProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: changePasteTypeCommandId,\n precondition: pasteWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n var _b;\n return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.changePasteType();\n }\n});\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.hidePasteWidget',\n precondition: pasteWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n var _b;\n (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.clearWidgets();\n }\n});\nregisterEditorAction((_a = class PasteAsAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.pasteAs',\n label: nls.localize('pasteAs', \"Paste As...\"),\n alias: 'Paste As...',\n precondition: EditorContextKeys.writable,\n metadata: {\n description: 'Paste as',\n args: [{\n name: 'args',\n schema: _a.argsSchema\n }]\n }\n });\n }\n run(_accessor, editor, args) {\n var _b;\n let kind = typeof (args === null || args === void 0 ? void 0 : args.kind) === 'string' ? args.kind : undefined;\n if (!kind && args) {\n // Support old id property\n // TODO: remove this in the future\n kind = typeof args.id === 'string' ? args.id : undefined;\n }\n return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.pasteAs(kind ? new HierarchicalKind(kind) : undefined);\n }\n },\n _a.argsSchema = {\n type: 'object',\n properties: {\n kind: {\n type: 'string',\n description: nls.localize('pasteAs.kind', \"The kind of the paste edit to try applying. If not provided or there are multiple edits for this kind, the editor will show a picker.\"),\n }\n },\n },\n _a));\nregisterEditorAction(class extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.pasteAsText',\n label: nls.localize('pasteAsText', \"Paste as Text\"),\n alias: 'Paste as Text',\n precondition: EditorContextKeys.writable,\n });\n }\n run(_accessor, editor) {\n var _b;\n return (_b = CopyPasteController.get(editor)) === null || _b === void 0 ? void 0 : _b.pasteAs({ providerId: DefaultTextPasteOrDropEditProvider.id });\n }\n});\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { forEachWithNeighbors } from '../../../../base/common/arrays.js';\nimport { OffsetRange } from '../../core/offsetRange.js';\nimport { OffsetPair, SequenceDiff } from './algorithms/diffAlgorithm.js';\nexport function optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n let result = sequenceDiffs;\n result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n // Sometimes, calling this function twice improves the result.\n // Uncomment the second invocation and run the tests to see the difference.\n result = joinSequenceDiffsByShifting(sequence1, sequence2, result);\n result = shiftSequenceDiffs(sequence1, sequence2, result);\n return result;\n}\n/**\n * This function fixes issues like this:\n * ```\n * import { Baz, Bar } from \"foo\";\n * ```\n * <->\n * ```\n * import { Baz, Bar, Foo } from \"foo\";\n * ```\n * Computed diff: [ {Add \",\" after Bar}, {Add \"Foo \" after space} }\n * Improved diff: [{Add \", Foo\" after Bar}]\n */\nfunction joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) {\n if (sequenceDiffs.length === 0) {\n return sequenceDiffs;\n }\n const result = [];\n result.push(sequenceDiffs[0]);\n // First move them all to the left as much as possible and join them if possible\n for (let i = 1; i < sequenceDiffs.length; i++) {\n const prevResult = result[result.length - 1];\n let cur = sequenceDiffs[i];\n if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n const length = cur.seq1Range.start - prevResult.seq1Range.endExclusive;\n let d;\n for (d = 1; d <= length; d++) {\n if (sequence1.getElement(cur.seq1Range.start - d) !== sequence1.getElement(cur.seq1Range.endExclusive - d) ||\n sequence2.getElement(cur.seq2Range.start - d) !== sequence2.getElement(cur.seq2Range.endExclusive - d)) {\n break;\n }\n }\n d--;\n if (d === length) {\n // Merge previous and current diff\n result[result.length - 1] = new SequenceDiff(new OffsetRange(prevResult.seq1Range.start, cur.seq1Range.endExclusive - length), new OffsetRange(prevResult.seq2Range.start, cur.seq2Range.endExclusive - length));\n continue;\n }\n cur = cur.delta(-d);\n }\n result.push(cur);\n }\n const result2 = [];\n // Then move them all to the right and join them again if possible\n for (let i = 0; i < result.length - 1; i++) {\n const nextResult = result[i + 1];\n let cur = result[i];\n if (cur.seq1Range.isEmpty || cur.seq2Range.isEmpty) {\n const length = nextResult.seq1Range.start - cur.seq1Range.endExclusive;\n let d;\n for (d = 0; d < length; d++) {\n if (!sequence1.isStronglyEqual(cur.seq1Range.start + d, cur.seq1Range.endExclusive + d) ||\n !sequence2.isStronglyEqual(cur.seq2Range.start + d, cur.seq2Range.endExclusive + d)) {\n break;\n }\n }\n if (d === length) {\n // Merge previous and current diff, write to result!\n result[i + 1] = new SequenceDiff(new OffsetRange(cur.seq1Range.start + length, nextResult.seq1Range.endExclusive), new OffsetRange(cur.seq2Range.start + length, nextResult.seq2Range.endExclusive));\n continue;\n }\n if (d > 0) {\n cur = cur.delta(d);\n }\n }\n result2.push(cur);\n }\n if (result.length > 0) {\n result2.push(result[result.length - 1]);\n }\n return result2;\n}\n// align character level diffs at whitespace characters\n// import { IBar } from \"foo\";\n// import { I[Arr, I]Bar } from \"foo\";\n// ->\n// import { [IArr, ]IBar } from \"foo\";\n// import { ITransaction, observableValue, transaction } from 'vs/base/common/observable';\n// import { ITransaction, observable[FromEvent, observable]Value, transaction } from 'vs/base/common/observable';\n// ->\n// import { ITransaction, [observableFromEvent, ]observableValue, transaction } from 'vs/base/common/observable';\n// collectBrackets(level + 1, levelPerBracketType);\n// collectBrackets(level + 1, levelPerBracket[ + 1, levelPerBracket]Type);\n// ->\n// collectBrackets(level + 1, [levelPerBracket + 1, ]levelPerBracketType);\nfunction shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) {\n if (!sequence1.getBoundaryScore || !sequence2.getBoundaryScore) {\n return sequenceDiffs;\n }\n for (let i = 0; i < sequenceDiffs.length; i++) {\n const prevDiff = (i > 0 ? sequenceDiffs[i - 1] : undefined);\n const diff = sequenceDiffs[i];\n const nextDiff = (i + 1 < sequenceDiffs.length ? sequenceDiffs[i + 1] : undefined);\n const seq1ValidRange = new OffsetRange(prevDiff ? prevDiff.seq1Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq1Range.start - 1 : sequence1.length);\n const seq2ValidRange = new OffsetRange(prevDiff ? prevDiff.seq2Range.endExclusive + 1 : 0, nextDiff ? nextDiff.seq2Range.start - 1 : sequence2.length);\n if (diff.seq1Range.isEmpty) {\n sequenceDiffs[i] = shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange);\n }\n else if (diff.seq2Range.isEmpty) {\n sequenceDiffs[i] = shiftDiffToBetterPosition(diff.swap(), sequence2, sequence1, seq2ValidRange, seq1ValidRange).swap();\n }\n }\n return sequenceDiffs;\n}\nfunction shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1ValidRange, seq2ValidRange) {\n const maxShiftLimit = 100; // To prevent performance issues\n // don't touch previous or next!\n let deltaBefore = 1;\n while (diff.seq1Range.start - deltaBefore >= seq1ValidRange.start &&\n diff.seq2Range.start - deltaBefore >= seq2ValidRange.start &&\n sequence2.isStronglyEqual(diff.seq2Range.start - deltaBefore, diff.seq2Range.endExclusive - deltaBefore) && deltaBefore < maxShiftLimit) {\n deltaBefore++;\n }\n deltaBefore--;\n let deltaAfter = 0;\n while (diff.seq1Range.start + deltaAfter < seq1ValidRange.endExclusive &&\n diff.seq2Range.endExclusive + deltaAfter < seq2ValidRange.endExclusive &&\n sequence2.isStronglyEqual(diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter) && deltaAfter < maxShiftLimit) {\n deltaAfter++;\n }\n if (deltaBefore === 0 && deltaAfter === 0) {\n return diff;\n }\n // Visualize `[sequence1.text, diff.seq1Range.start + deltaAfter]`\n // and `[sequence2.text, diff.seq2Range.start + deltaAfter, diff.seq2Range.endExclusive + deltaAfter]`\n let bestDelta = 0;\n let bestScore = -1;\n // find best scored delta\n for (let delta = -deltaBefore; delta <= deltaAfter; delta++) {\n const seq2OffsetStart = diff.seq2Range.start + delta;\n const seq2OffsetEndExclusive = diff.seq2Range.endExclusive + delta;\n const seq1Offset = diff.seq1Range.start + delta;\n const score = sequence1.getBoundaryScore(seq1Offset) + sequence2.getBoundaryScore(seq2OffsetStart) + sequence2.getBoundaryScore(seq2OffsetEndExclusive);\n if (score > bestScore) {\n bestScore = score;\n bestDelta = delta;\n }\n }\n return diff.delta(bestDelta);\n}\nexport function removeShortMatches(sequence1, sequence2, sequenceDiffs) {\n const result = [];\n for (const s of sequenceDiffs) {\n const last = result[result.length - 1];\n if (!last) {\n result.push(s);\n continue;\n }\n if (s.seq1Range.start - last.seq1Range.endExclusive <= 2 || s.seq2Range.start - last.seq2Range.endExclusive <= 2) {\n result[result.length - 1] = new SequenceDiff(last.seq1Range.join(s.seq1Range), last.seq2Range.join(s.seq2Range));\n }\n else {\n result.push(s);\n }\n }\n return result;\n}\nexport function extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequenceDiffs) {\n const equalMappings = SequenceDiff.invert(sequenceDiffs, sequence1.length);\n const additional = [];\n let lastPoint = new OffsetPair(0, 0);\n function scanWord(pair, equalMapping) {\n if (pair.offset1 < lastPoint.offset1 || pair.offset2 < lastPoint.offset2) {\n return;\n }\n const w1 = sequence1.findWordContaining(pair.offset1);\n const w2 = sequence2.findWordContaining(pair.offset2);\n if (!w1 || !w2) {\n return;\n }\n let w = new SequenceDiff(w1, w2);\n const equalPart = w.intersect(equalMapping);\n let equalChars1 = equalPart.seq1Range.length;\n let equalChars2 = equalPart.seq2Range.length;\n // The words do not touch previous equals mappings, as we would have processed them already.\n // But they might touch the next ones.\n while (equalMappings.length > 0) {\n const next = equalMappings[0];\n const intersects = next.seq1Range.intersects(w.seq1Range) || next.seq2Range.intersects(w.seq2Range);\n if (!intersects) {\n break;\n }\n const v1 = sequence1.findWordContaining(next.seq1Range.start);\n const v2 = sequence2.findWordContaining(next.seq2Range.start);\n // Because there is an intersection, we know that the words are not empty.\n const v = new SequenceDiff(v1, v2);\n const equalPart = v.intersect(next);\n equalChars1 += equalPart.seq1Range.length;\n equalChars2 += equalPart.seq2Range.length;\n w = w.join(v);\n if (w.seq1Range.endExclusive >= next.seq1Range.endExclusive) {\n // The word extends beyond the next equal mapping.\n equalMappings.shift();\n }\n else {\n break;\n }\n }\n if (equalChars1 + equalChars2 < (w.seq1Range.length + w.seq2Range.length) * 2 / 3) {\n additional.push(w);\n }\n lastPoint = w.getEndExclusives();\n }\n while (equalMappings.length > 0) {\n const next = equalMappings.shift();\n if (next.seq1Range.isEmpty) {\n continue;\n }\n scanWord(next.getStarts(), next);\n // The equal parts are not empty, so -1 gives us a character that is equal in both parts.\n scanWord(next.getEndExclusives().delta(-1), next);\n }\n const merged = mergeSequenceDiffs(sequenceDiffs, additional);\n return merged;\n}\nfunction mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) {\n const result = [];\n while (sequenceDiffs1.length > 0 || sequenceDiffs2.length > 0) {\n const sd1 = sequenceDiffs1[0];\n const sd2 = sequenceDiffs2[0];\n let next;\n if (sd1 && (!sd2 || sd1.seq1Range.start < sd2.seq1Range.start)) {\n next = sequenceDiffs1.shift();\n }\n else {\n next = sequenceDiffs2.shift();\n }\n if (result.length > 0 && result[result.length - 1].seq1Range.endExclusive >= next.seq1Range.start) {\n result[result.length - 1] = result[result.length - 1].join(next);\n }\n else {\n result.push(next);\n }\n }\n return result;\n}\nexport function removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2, sequenceDiffs) {\n let diffs = sequenceDiffs;\n if (diffs.length === 0) {\n return diffs;\n }\n let counter = 0;\n let shouldRepeat;\n do {\n shouldRepeat = false;\n const result = [\n diffs[0]\n ];\n for (let i = 1; i < diffs.length; i++) {\n const cur = diffs[i];\n const lastResult = result[result.length - 1];\n function shouldJoinDiffs(before, after) {\n const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n const unchangedText = sequence1.getText(unchangedRange);\n const unchangedTextWithoutWs = unchangedText.replace(/\\s/g, '');\n if (unchangedTextWithoutWs.length <= 4\n && (before.seq1Range.length + before.seq2Range.length > 5 || after.seq1Range.length + after.seq2Range.length > 5)) {\n return true;\n }\n return false;\n }\n const shouldJoin = shouldJoinDiffs(lastResult, cur);\n if (shouldJoin) {\n shouldRepeat = true;\n result[result.length - 1] = result[result.length - 1].join(cur);\n }\n else {\n result.push(cur);\n }\n }\n diffs = result;\n } while (counter++ < 10 && shouldRepeat);\n return diffs;\n}\nexport function removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence2, sequenceDiffs) {\n let diffs = sequenceDiffs;\n if (diffs.length === 0) {\n return diffs;\n }\n let counter = 0;\n let shouldRepeat;\n do {\n shouldRepeat = false;\n const result = [\n diffs[0]\n ];\n for (let i = 1; i < diffs.length; i++) {\n const cur = diffs[i];\n const lastResult = result[result.length - 1];\n function shouldJoinDiffs(before, after) {\n const unchangedRange = new OffsetRange(lastResult.seq1Range.endExclusive, cur.seq1Range.start);\n const unchangedLineCount = sequence1.countLinesIn(unchangedRange);\n if (unchangedLineCount > 5 || unchangedRange.length > 500) {\n return false;\n }\n const unchangedText = sequence1.getText(unchangedRange).trim();\n if (unchangedText.length > 20 || unchangedText.split(/\\r\\n|\\r|\\n/).length > 1) {\n return false;\n }\n const beforeLineCount1 = sequence1.countLinesIn(before.seq1Range);\n const beforeSeq1Length = before.seq1Range.length;\n const beforeLineCount2 = sequence2.countLinesIn(before.seq2Range);\n const beforeSeq2Length = before.seq2Range.length;\n const afterLineCount1 = sequence1.countLinesIn(after.seq1Range);\n const afterSeq1Length = after.seq1Range.length;\n const afterLineCount2 = sequence2.countLinesIn(after.seq2Range);\n const afterSeq2Length = after.seq2Range.length;\n // TODO: Maybe a neural net can be used to derive the result from these numbers\n const max = 2 * 40 + 50;\n function cap(v) {\n return Math.min(v, max);\n }\n if (Math.pow(Math.pow(cap(beforeLineCount1 * 40 + beforeSeq1Length), 1.5) + Math.pow(cap(beforeLineCount2 * 40 + beforeSeq2Length), 1.5), 1.5)\n + Math.pow(Math.pow(cap(afterLineCount1 * 40 + afterSeq1Length), 1.5) + Math.pow(cap(afterLineCount2 * 40 + afterSeq2Length), 1.5), 1.5) > ((max ** 1.5) ** 1.5) * 1.3) {\n return true;\n }\n return false;\n }\n const shouldJoin = shouldJoinDiffs(lastResult, cur);\n if (shouldJoin) {\n shouldRepeat = true;\n result[result.length - 1] = result[result.length - 1].join(cur);\n }\n else {\n result.push(cur);\n }\n }\n diffs = result;\n } while (counter++ < 10 && shouldRepeat);\n const newDiffs = [];\n // Remove short suffixes/prefixes\n forEachWithNeighbors(diffs, (prev, cur, next) => {\n let newDiff = cur;\n function shouldMarkAsChanged(text) {\n return text.length > 0 && text.trim().length <= 3 && cur.seq1Range.length + cur.seq2Range.length > 100;\n }\n const fullRange1 = sequence1.extendToFullLines(cur.seq1Range);\n const prefix = sequence1.getText(new OffsetRange(fullRange1.start, cur.seq1Range.start));\n if (shouldMarkAsChanged(prefix)) {\n newDiff = newDiff.deltaStart(-prefix.length);\n }\n const suffix = sequence1.getText(new OffsetRange(cur.seq1Range.endExclusive, fullRange1.endExclusive));\n if (shouldMarkAsChanged(suffix)) {\n newDiff = newDiff.deltaEnd(suffix.length);\n }\n const availableSpace = SequenceDiff.fromOffsetPairs(prev ? prev.getEndExclusives() : OffsetPair.zero, next ? next.getStarts() : OffsetPair.max);\n const result = newDiff.intersect(availableSpace);\n if (newDiffs.length > 0 && result.getStarts().equals(newDiffs[newDiffs.length - 1].getEndExclusives())) {\n newDiffs[newDiffs.length - 1] = newDiffs[newDiffs.length - 1].join(result);\n }\n else {\n newDiffs.push(result);\n }\n });\n return newDiffs;\n}\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { findLast } from '../../../base/common/arraysFind.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from '../core/cursorColumns.js';\nimport { Range } from '../core/range.js';\nimport { TextModelPart } from './textModelPart.js';\nimport { computeIndentLevel } from './utils.js';\nimport { HorizontalGuidesState, IndentGuide, IndentGuideHorizontalLine } from '../textModelGuides.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nexport class GuidesTextModelPart extends TextModelPart {\n constructor(textModel, languageConfigurationService) {\n super();\n this.textModel = textModel;\n this.languageConfigurationService = languageConfigurationService;\n }\n getLanguageConfiguration(languageId) {\n return this.languageConfigurationService.getLanguageConfiguration(languageId);\n }\n _computeIndentLevel(lineIndex) {\n return computeIndentLevel(this.textModel.getLineContent(lineIndex + 1), this.textModel.getOptions().tabSize);\n }\n getActiveIndentGuide(lineNumber, minLineNumber, maxLineNumber) {\n this.assertNotDisposed();\n const lineCount = this.textModel.getLineCount();\n if (lineNumber < 1 || lineNumber > lineCount) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n const offSide = Boolean(foldingRules && foldingRules.offSide);\n let up_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let up_aboveContentLineIndent = -1;\n let up_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let up_belowContentLineIndent = -1;\n const up_resolveIndents = (lineNumber) => {\n if (up_aboveContentLineIndex !== -1 &&\n (up_aboveContentLineIndex === -2 ||\n up_aboveContentLineIndex > lineNumber - 1)) {\n up_aboveContentLineIndex = -1;\n up_aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n up_aboveContentLineIndex = lineIndex;\n up_aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (up_belowContentLineIndex === -2) {\n up_belowContentLineIndex = -1;\n up_belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n up_belowContentLineIndex = lineIndex;\n up_belowContentLineIndent = indent;\n break;\n }\n }\n }\n };\n let down_aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let down_aboveContentLineIndent = -1;\n let down_belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let down_belowContentLineIndent = -1;\n const down_resolveIndents = (lineNumber) => {\n if (down_aboveContentLineIndex === -2) {\n down_aboveContentLineIndex = -1;\n down_aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n down_aboveContentLineIndex = lineIndex;\n down_aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (down_belowContentLineIndex !== -1 &&\n (down_belowContentLineIndex === -2 ||\n down_belowContentLineIndex < lineNumber - 1)) {\n down_belowContentLineIndex = -1;\n down_belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n down_belowContentLineIndex = lineIndex;\n down_belowContentLineIndent = indent;\n break;\n }\n }\n }\n };\n let startLineNumber = 0;\n let goUp = true;\n let endLineNumber = 0;\n let goDown = true;\n let indent = 0;\n let initialIndent = 0;\n for (let distance = 0; goUp || goDown; distance++) {\n const upLineNumber = lineNumber - distance;\n const downLineNumber = lineNumber + distance;\n if (distance > 1 && (upLineNumber < 1 || upLineNumber < minLineNumber)) {\n goUp = false;\n }\n if (distance > 1 &&\n (downLineNumber > lineCount || downLineNumber > maxLineNumber)) {\n goDown = false;\n }\n if (distance > 50000) {\n // stop processing\n goUp = false;\n goDown = false;\n }\n let upLineIndentLevel = -1;\n if (goUp && upLineNumber >= 1) {\n // compute indent level going up\n const currentIndent = this._computeIndentLevel(upLineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n up_belowContentLineIndex = upLineNumber - 1;\n up_belowContentLineIndent = currentIndent;\n upLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n }\n else {\n up_resolveIndents(upLineNumber);\n upLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, up_aboveContentLineIndent, up_belowContentLineIndent);\n }\n }\n let downLineIndentLevel = -1;\n if (goDown && downLineNumber <= lineCount) {\n // compute indent level going down\n const currentIndent = this._computeIndentLevel(downLineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n down_aboveContentLineIndex = downLineNumber - 1;\n down_aboveContentLineIndent = currentIndent;\n downLineIndentLevel = Math.ceil(currentIndent / this.textModel.getOptions().indentSize);\n }\n else {\n down_resolveIndents(downLineNumber);\n downLineIndentLevel = this._getIndentLevelForWhitespaceLine(offSide, down_aboveContentLineIndent, down_belowContentLineIndent);\n }\n }\n if (distance === 0) {\n initialIndent = upLineIndentLevel;\n continue;\n }\n if (distance === 1) {\n if (downLineNumber <= lineCount &&\n downLineIndentLevel >= 0 &&\n initialIndent + 1 === downLineIndentLevel) {\n // This is the beginning of a scope, we have special handling here, since we want the\n // child scope indent to be active, not the parent scope\n goUp = false;\n startLineNumber = downLineNumber;\n endLineNumber = downLineNumber;\n indent = downLineIndentLevel;\n continue;\n }\n if (upLineNumber >= 1 &&\n upLineIndentLevel >= 0 &&\n upLineIndentLevel - 1 === initialIndent) {\n // This is the end of a scope, just like above\n goDown = false;\n startLineNumber = upLineNumber;\n endLineNumber = upLineNumber;\n indent = upLineIndentLevel;\n continue;\n }\n startLineNumber = lineNumber;\n endLineNumber = lineNumber;\n indent = initialIndent;\n if (indent === 0) {\n // No need to continue\n return { startLineNumber, endLineNumber, indent };\n }\n }\n if (goUp) {\n if (upLineIndentLevel >= indent) {\n startLineNumber = upLineNumber;\n }\n else {\n goUp = false;\n }\n }\n if (goDown) {\n if (downLineIndentLevel >= indent) {\n endLineNumber = downLineNumber;\n }\n else {\n goDown = false;\n }\n }\n }\n return { startLineNumber, endLineNumber, indent };\n }\n getLinesBracketGuides(startLineNumber, endLineNumber, activePosition, options) {\n var _a;\n const result = [];\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n result.push([]);\n }\n // If requested, this could be made configurable.\n const includeSingleLinePairs = true;\n const bracketPairs = this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Range(startLineNumber, 1, endLineNumber, this.textModel.getLineMaxColumn(endLineNumber))).toArray();\n let activeBracketPairRange = undefined;\n if (activePosition && bracketPairs.length > 0) {\n const bracketsContainingActivePosition = (startLineNumber <= activePosition.lineNumber &&\n activePosition.lineNumber <= endLineNumber\n // We don't need to query the brackets again if the cursor is in the viewport\n ? bracketPairs\n : this.textModel.bracketPairs.getBracketPairsInRange(Range.fromPositions(activePosition)).toArray()).filter((bp) => Range.strictContainsPosition(bp.range, activePosition));\n activeBracketPairRange = (_a = findLast(bracketsContainingActivePosition, (i) => includeSingleLinePairs || i.range.startLineNumber !== i.range.endLineNumber)) === null || _a === void 0 ? void 0 : _a.range;\n }\n const independentColorPoolPerBracketType = this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType;\n const colorProvider = new BracketPairGuidesClassNames();\n for (const pair of bracketPairs) {\n /*\n\n\n {\n |\n }\n\n {\n |\n ----}\n\n ____{\n |test\n ----}\n\n renderHorizontalEndLineAtTheBottom:\n {\n |\n |x}\n --\n renderHorizontalEndLineAtTheBottom:\n ____{\n |test\n | x }\n ----\n */\n if (!pair.closingBracketRange) {\n continue;\n }\n const isActive = activeBracketPairRange && pair.range.equalsRange(activeBracketPairRange);\n if (!isActive && !options.includeInactive) {\n continue;\n }\n const className = colorProvider.getInlineClassName(pair.nestingLevel, pair.nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) +\n (options.highlightActive && isActive\n ? ' ' + colorProvider.activeClassName\n : '');\n const start = pair.openingBracketRange.getStartPosition();\n const end = pair.closingBracketRange.getStartPosition();\n const horizontalGuides = options.horizontalGuides === HorizontalGuidesState.Enabled || (options.horizontalGuides === HorizontalGuidesState.EnabledForActive && isActive);\n if (pair.range.startLineNumber === pair.range.endLineNumber) {\n if (includeSingleLinePairs && horizontalGuides) {\n result[pair.range.startLineNumber - startLineNumber].push(new IndentGuide(-1, pair.openingBracketRange.getEndPosition().column, className, new IndentGuideHorizontalLine(false, end.column), -1, -1));\n }\n continue;\n }\n const endVisibleColumn = this.getVisibleColumnFromPosition(end);\n const startVisibleColumn = this.getVisibleColumnFromPosition(pair.openingBracketRange.getStartPosition());\n const guideVisibleColumn = Math.min(startVisibleColumn, endVisibleColumn, pair.minVisibleColumnIndentation + 1);\n let renderHorizontalEndLineAtTheBottom = false;\n const firstNonWsIndex = strings.firstNonWhitespaceIndex(this.textModel.getLineContent(pair.closingBracketRange.startLineNumber));\n const hasTextBeforeClosingBracket = firstNonWsIndex < pair.closingBracketRange.startColumn - 1;\n if (hasTextBeforeClosingBracket) {\n renderHorizontalEndLineAtTheBottom = true;\n }\n const visibleGuideStartLineNumber = Math.max(start.lineNumber, startLineNumber);\n const visibleGuideEndLineNumber = Math.min(end.lineNumber, endLineNumber);\n const offset = renderHorizontalEndLineAtTheBottom ? 1 : 0;\n for (let l = visibleGuideStartLineNumber; l < visibleGuideEndLineNumber + offset; l++) {\n result[l - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, null, l === start.lineNumber ? start.column : -1, l === end.lineNumber ? end.column : -1));\n }\n if (horizontalGuides) {\n if (start.lineNumber >= startLineNumber && startVisibleColumn > guideVisibleColumn) {\n result[start.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, new IndentGuideHorizontalLine(false, start.column), -1, -1));\n }\n if (end.lineNumber <= endLineNumber && endVisibleColumn > guideVisibleColumn) {\n result[end.lineNumber - startLineNumber].push(new IndentGuide(guideVisibleColumn, -1, className, new IndentGuideHorizontalLine(!renderHorizontalEndLineAtTheBottom, end.column), -1, -1));\n }\n }\n }\n for (const guides of result) {\n guides.sort((a, b) => a.visibleColumn - b.visibleColumn);\n }\n return result;\n }\n getVisibleColumnFromPosition(position) {\n return (CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(position.lineNumber), position.column, this.textModel.getOptions().tabSize) + 1);\n }\n getLinesIndentGuides(startLineNumber, endLineNumber) {\n this.assertNotDisposed();\n const lineCount = this.textModel.getLineCount();\n if (startLineNumber < 1 || startLineNumber > lineCount) {\n throw new Error('Illegal value for startLineNumber');\n }\n if (endLineNumber < 1 || endLineNumber > lineCount) {\n throw new Error('Illegal value for endLineNumber');\n }\n const options = this.textModel.getOptions();\n const foldingRules = this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules;\n const offSide = Boolean(foldingRules && foldingRules.offSide);\n const result = new Array(endLineNumber - startLineNumber + 1);\n let aboveContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let aboveContentLineIndent = -1;\n let belowContentLineIndex = -2; /* -2 is a marker for not having computed it */\n let belowContentLineIndent = -1;\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n const resultIndex = lineNumber - startLineNumber;\n const currentIndent = this._computeIndentLevel(lineNumber - 1);\n if (currentIndent >= 0) {\n // This line has content (besides whitespace)\n // Use the line's indent\n aboveContentLineIndex = lineNumber - 1;\n aboveContentLineIndent = currentIndent;\n result[resultIndex] = Math.ceil(currentIndent / options.indentSize);\n continue;\n }\n if (aboveContentLineIndex === -2) {\n aboveContentLineIndex = -1;\n aboveContentLineIndent = -1;\n // must find previous line with content\n for (let lineIndex = lineNumber - 2; lineIndex >= 0; lineIndex--) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n aboveContentLineIndex = lineIndex;\n aboveContentLineIndent = indent;\n break;\n }\n }\n }\n if (belowContentLineIndex !== -1 &&\n (belowContentLineIndex === -2 || belowContentLineIndex < lineNumber - 1)) {\n belowContentLineIndex = -1;\n belowContentLineIndent = -1;\n // must find next line with content\n for (let lineIndex = lineNumber; lineIndex < lineCount; lineIndex++) {\n const indent = this._computeIndentLevel(lineIndex);\n if (indent >= 0) {\n belowContentLineIndex = lineIndex;\n belowContentLineIndent = indent;\n break;\n }\n }\n }\n result[resultIndex] = this._getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent);\n }\n return result;\n }\n _getIndentLevelForWhitespaceLine(offSide, aboveContentLineIndent, belowContentLineIndent) {\n const options = this.textModel.getOptions();\n if (aboveContentLineIndent === -1 || belowContentLineIndent === -1) {\n // At the top or bottom of the file\n return 0;\n }\n else if (aboveContentLineIndent < belowContentLineIndent) {\n // we are inside the region above\n return 1 + Math.floor(aboveContentLineIndent / options.indentSize);\n }\n else if (aboveContentLineIndent === belowContentLineIndent) {\n // we are in between two regions\n return Math.ceil(belowContentLineIndent / options.indentSize);\n }\n else {\n if (offSide) {\n // same level as region below\n return Math.ceil(belowContentLineIndent / options.indentSize);\n }\n else {\n // we are inside the region that ends below\n return 1 + Math.floor(belowContentLineIndent / options.indentSize);\n }\n }\n }\n}\nexport class BracketPairGuidesClassNames {\n constructor() {\n this.activeClassName = 'indent-active';\n }\n getInlineClassName(nestingLevel, nestingLevelOfEqualBracketType, independentColorPoolPerBracketType) {\n return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? nestingLevelOfEqualBracketType : nestingLevel);\n }\n getInlineClassNameOfLevel(level) {\n // To support a dynamic amount of colors up to 6 colors,\n // we use a number that is a lcm of all numbers from 1 to 6.\n return `bracket-indent-guide lvl-${level % 30}`;\n }\n}\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","export const Mimes = Object.freeze({\n text: 'text/plain',\n binary: 'application/octet-stream',\n unknown: 'application/unknown',\n markdown: 'text/markdown',\n latex: 'text/latex',\n uriList: 'text/uri-list',\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { RawContextKey } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IAccessibilityService = createDecorator('accessibilityService');\nexport const CONTEXT_ACCESSIBILITY_MODE_ENABLED = new RawContextKey('accessibilityModeEnabled', false);\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mysql/mysql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"mysql\",\n extensions: [],\n aliases: [\"MySQL\", \"mysql\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/mysql/mysql\"], resolve, reject);\n });\n } else {\n return import(\"./mysql.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { onUnexpectedError } from '../../../base/common/errors.js';\nimport { Selection } from '../core/selection.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { TextChange, compressConsecutiveTextChanges } from '../core/textChange.js';\nimport * as buffer from '../../../base/common/buffer.js';\nimport { basename } from '../../../base/common/resources.js';\nfunction uriGetComparisonKey(resource) {\n return resource.toString();\n}\nexport class SingleModelEditStackData {\n static create(model, beforeCursorState) {\n const alternativeVersionId = model.getAlternativeVersionId();\n const eol = getModelEOL(model);\n return new SingleModelEditStackData(alternativeVersionId, alternativeVersionId, eol, eol, beforeCursorState, beforeCursorState, []);\n }\n constructor(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes) {\n this.beforeVersionId = beforeVersionId;\n this.afterVersionId = afterVersionId;\n this.beforeEOL = beforeEOL;\n this.afterEOL = afterEOL;\n this.beforeCursorState = beforeCursorState;\n this.afterCursorState = afterCursorState;\n this.changes = changes;\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n if (textChanges.length > 0) {\n this.changes = compressConsecutiveTextChanges(this.changes, textChanges);\n }\n this.afterEOL = afterEOL;\n this.afterVersionId = afterVersionId;\n this.afterCursorState = afterCursorState;\n }\n static _writeSelectionsSize(selections) {\n return 4 + 4 * 4 * (selections ? selections.length : 0);\n }\n static _writeSelections(b, selections, offset) {\n buffer.writeUInt32BE(b, (selections ? selections.length : 0), offset);\n offset += 4;\n if (selections) {\n for (const selection of selections) {\n buffer.writeUInt32BE(b, selection.selectionStartLineNumber, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.selectionStartColumn, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.positionLineNumber, offset);\n offset += 4;\n buffer.writeUInt32BE(b, selection.positionColumn, offset);\n offset += 4;\n }\n }\n return offset;\n }\n static _readSelections(b, offset, dest) {\n const count = buffer.readUInt32BE(b, offset);\n offset += 4;\n for (let i = 0; i < count; i++) {\n const selectionStartLineNumber = buffer.readUInt32BE(b, offset);\n offset += 4;\n const selectionStartColumn = buffer.readUInt32BE(b, offset);\n offset += 4;\n const positionLineNumber = buffer.readUInt32BE(b, offset);\n offset += 4;\n const positionColumn = buffer.readUInt32BE(b, offset);\n offset += 4;\n dest.push(new Selection(selectionStartLineNumber, selectionStartColumn, positionLineNumber, positionColumn));\n }\n return offset;\n }\n serialize() {\n let necessarySize = (+4 // beforeVersionId\n + 4 // afterVersionId\n + 1 // beforeEOL\n + 1 // afterEOL\n + SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState)\n + SingleModelEditStackData._writeSelectionsSize(this.afterCursorState)\n + 4 // change count\n );\n for (const change of this.changes) {\n necessarySize += change.writeSize();\n }\n const b = new Uint8Array(necessarySize);\n let offset = 0;\n buffer.writeUInt32BE(b, this.beforeVersionId, offset);\n offset += 4;\n buffer.writeUInt32BE(b, this.afterVersionId, offset);\n offset += 4;\n buffer.writeUInt8(b, this.beforeEOL, offset);\n offset += 1;\n buffer.writeUInt8(b, this.afterEOL, offset);\n offset += 1;\n offset = SingleModelEditStackData._writeSelections(b, this.beforeCursorState, offset);\n offset = SingleModelEditStackData._writeSelections(b, this.afterCursorState, offset);\n buffer.writeUInt32BE(b, this.changes.length, offset);\n offset += 4;\n for (const change of this.changes) {\n offset = change.write(b, offset);\n }\n return b.buffer;\n }\n static deserialize(source) {\n const b = new Uint8Array(source);\n let offset = 0;\n const beforeVersionId = buffer.readUInt32BE(b, offset);\n offset += 4;\n const afterVersionId = buffer.readUInt32BE(b, offset);\n offset += 4;\n const beforeEOL = buffer.readUInt8(b, offset);\n offset += 1;\n const afterEOL = buffer.readUInt8(b, offset);\n offset += 1;\n const beforeCursorState = [];\n offset = SingleModelEditStackData._readSelections(b, offset, beforeCursorState);\n const afterCursorState = [];\n offset = SingleModelEditStackData._readSelections(b, offset, afterCursorState);\n const changeCount = buffer.readUInt32BE(b, offset);\n offset += 4;\n const changes = [];\n for (let i = 0; i < changeCount; i++) {\n offset = TextChange.read(b, offset, changes);\n }\n return new SingleModelEditStackData(beforeVersionId, afterVersionId, beforeEOL, afterEOL, beforeCursorState, afterCursorState, changes);\n }\n}\nexport class SingleModelEditStackElement {\n get type() {\n return 0 /* UndoRedoElementType.Resource */;\n }\n get resource() {\n if (URI.isUri(this.model)) {\n return this.model;\n }\n return this.model.uri;\n }\n constructor(label, code, model, beforeCursorState) {\n this.label = label;\n this.code = code;\n this.model = model;\n this._data = SingleModelEditStackData.create(model, beforeCursorState);\n }\n toString() {\n const data = (this._data instanceof SingleModelEditStackData ? this._data : SingleModelEditStackData.deserialize(this._data));\n return data.changes.map(change => change.toString()).join(', ');\n }\n matchesResource(resource) {\n const uri = (URI.isUri(this.model) ? this.model : this.model.uri);\n return (uri.toString() === resource.toString());\n }\n setModel(model) {\n this.model = model;\n }\n canAppend(model) {\n return (this.model === model && this._data instanceof SingleModelEditStackData);\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n if (this._data instanceof SingleModelEditStackData) {\n this._data.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n }\n }\n close() {\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n }\n open() {\n if (!(this._data instanceof SingleModelEditStackData)) {\n this._data = SingleModelEditStackData.deserialize(this._data);\n }\n }\n undo() {\n if (URI.isUri(this.model)) {\n // don't have a model\n throw new Error(`Invalid SingleModelEditStackElement`);\n }\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n const data = SingleModelEditStackData.deserialize(this._data);\n this.model._applyUndo(data.changes, data.beforeEOL, data.beforeVersionId, data.beforeCursorState);\n }\n redo() {\n if (URI.isUri(this.model)) {\n // don't have a model\n throw new Error(`Invalid SingleModelEditStackElement`);\n }\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n const data = SingleModelEditStackData.deserialize(this._data);\n this.model._applyRedo(data.changes, data.afterEOL, data.afterVersionId, data.afterCursorState);\n }\n heapSize() {\n if (this._data instanceof SingleModelEditStackData) {\n this._data = this._data.serialize();\n }\n return this._data.byteLength + 168 /*heap overhead*/;\n }\n}\nexport class MultiModelEditStackElement {\n get resources() {\n return this._editStackElementsArr.map(editStackElement => editStackElement.resource);\n }\n constructor(label, code, editStackElements) {\n this.label = label;\n this.code = code;\n this.type = 1 /* UndoRedoElementType.Workspace */;\n this._isOpen = true;\n this._editStackElementsArr = editStackElements.slice(0);\n this._editStackElementsMap = new Map();\n for (const editStackElement of this._editStackElementsArr) {\n const key = uriGetComparisonKey(editStackElement.resource);\n this._editStackElementsMap.set(key, editStackElement);\n }\n this._delegate = null;\n }\n prepareUndoRedo() {\n if (this._delegate) {\n return this._delegate.prepareUndoRedo(this);\n }\n }\n matchesResource(resource) {\n const key = uriGetComparisonKey(resource);\n return (this._editStackElementsMap.has(key));\n }\n setModel(model) {\n const key = uriGetComparisonKey(URI.isUri(model) ? model : model.uri);\n if (this._editStackElementsMap.has(key)) {\n this._editStackElementsMap.get(key).setModel(model);\n }\n }\n canAppend(model) {\n if (!this._isOpen) {\n return false;\n }\n const key = uriGetComparisonKey(model.uri);\n if (this._editStackElementsMap.has(key)) {\n const editStackElement = this._editStackElementsMap.get(key);\n return editStackElement.canAppend(model);\n }\n return false;\n }\n append(model, textChanges, afterEOL, afterVersionId, afterCursorState) {\n const key = uriGetComparisonKey(model.uri);\n const editStackElement = this._editStackElementsMap.get(key);\n editStackElement.append(model, textChanges, afterEOL, afterVersionId, afterCursorState);\n }\n close() {\n this._isOpen = false;\n }\n open() {\n // cannot reopen\n }\n undo() {\n this._isOpen = false;\n for (const editStackElement of this._editStackElementsArr) {\n editStackElement.undo();\n }\n }\n redo() {\n for (const editStackElement of this._editStackElementsArr) {\n editStackElement.redo();\n }\n }\n heapSize(resource) {\n const key = uriGetComparisonKey(resource);\n if (this._editStackElementsMap.has(key)) {\n const editStackElement = this._editStackElementsMap.get(key);\n return editStackElement.heapSize();\n }\n return 0;\n }\n split() {\n return this._editStackElementsArr;\n }\n toString() {\n const result = [];\n for (const editStackElement of this._editStackElementsArr) {\n result.push(`${basename(editStackElement.resource)}: ${editStackElement}`);\n }\n return `{${result.join(', ')}}`;\n }\n}\nfunction getModelEOL(model) {\n const eol = model.getEOL();\n if (eol === '\\n') {\n return 0 /* EndOfLineSequence.LF */;\n }\n else {\n return 1 /* EndOfLineSequence.CRLF */;\n }\n}\nexport function isEditStackElement(element) {\n if (!element) {\n return false;\n }\n return ((element instanceof SingleModelEditStackElement) || (element instanceof MultiModelEditStackElement));\n}\nexport class EditStack {\n constructor(model, undoRedoService) {\n this._model = model;\n this._undoRedoService = undoRedoService;\n }\n pushStackElement() {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement)) {\n lastElement.close();\n }\n }\n popStackElement() {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement)) {\n lastElement.open();\n }\n }\n clear() {\n this._undoRedoService.removeElements(this._model.uri);\n }\n _getOrCreateEditStackElement(beforeCursorState, group) {\n const lastElement = this._undoRedoService.getLastElement(this._model.uri);\n if (isEditStackElement(lastElement) && lastElement.canAppend(this._model)) {\n return lastElement;\n }\n const newElement = new SingleModelEditStackElement(nls.localize('edit', \"Typing\"), 'undoredo.textBufferEdit', this._model, beforeCursorState);\n this._undoRedoService.pushElement(newElement, group);\n return newElement;\n }\n pushEOL(eol) {\n const editStackElement = this._getOrCreateEditStackElement(null, undefined);\n this._model.setEOL(eol);\n editStackElement.append(this._model, [], getModelEOL(this._model), this._model.getAlternativeVersionId(), null);\n }\n pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group) {\n const editStackElement = this._getOrCreateEditStackElement(beforeCursorState, group);\n const inverseEditOperations = this._model.applyEdits(editOperations, true);\n const afterCursorState = EditStack._computeCursorState(cursorStateComputer, inverseEditOperations);\n const textChanges = inverseEditOperations.map((op, index) => ({ index: index, textChange: op.textChange }));\n textChanges.sort((a, b) => {\n if (a.textChange.oldPosition === b.textChange.oldPosition) {\n return a.index - b.index;\n }\n return a.textChange.oldPosition - b.textChange.oldPosition;\n });\n editStackElement.append(this._model, textChanges.map(op => op.textChange), getModelEOL(this._model), this._model.getAlternativeVersionId(), afterCursorState);\n return afterCursorState;\n }\n static _computeCursorState(cursorStateComputer, inverseEditOperations) {\n try {\n return cursorStateComputer ? cursorStateComputer(inverseEditOperations) : null;\n }\n catch (e) {\n onUnexpectedError(e);\n return null;\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport * as platform from '../../../base/common/platform.js';\nimport * as buffer from '../../../base/common/buffer.js';\nlet _utf16LE_TextDecoder;\nfunction getUTF16LE_TextDecoder() {\n if (!_utf16LE_TextDecoder) {\n _utf16LE_TextDecoder = new TextDecoder('UTF-16LE');\n }\n return _utf16LE_TextDecoder;\n}\nlet _utf16BE_TextDecoder;\nfunction getUTF16BE_TextDecoder() {\n if (!_utf16BE_TextDecoder) {\n _utf16BE_TextDecoder = new TextDecoder('UTF-16BE');\n }\n return _utf16BE_TextDecoder;\n}\nlet _platformTextDecoder;\nexport function getPlatformTextDecoder() {\n if (!_platformTextDecoder) {\n _platformTextDecoder = platform.isLittleEndian() ? getUTF16LE_TextDecoder() : getUTF16BE_TextDecoder();\n }\n return _platformTextDecoder;\n}\nexport function decodeUTF16LE(source, offset, len) {\n const view = new Uint16Array(source.buffer, offset, len);\n if (len > 0 && (view[0] === 0xFEFF || view[0] === 0xFFFE)) {\n // UTF16 sometimes starts with a BOM https://de.wikipedia.org/wiki/Byte_Order_Mark\n // It looks like TextDecoder.decode will eat up a leading BOM (0xFEFF or 0xFFFE)\n // We don't want that behavior because we know the string is UTF16LE and the BOM should be maintained\n // So we use the manual decoder\n return compatDecodeUTF16LE(source, offset, len);\n }\n return getUTF16LE_TextDecoder().decode(view);\n}\nfunction compatDecodeUTF16LE(source, offset, len) {\n const result = [];\n let resultLen = 0;\n for (let i = 0; i < len; i++) {\n const charCode = buffer.readUInt16LE(source, offset);\n offset += 2;\n result[resultLen++] = String.fromCharCode(charCode);\n }\n return result.join('');\n}\nexport class StringBuilder {\n constructor(capacity) {\n this._capacity = capacity | 0;\n this._buffer = new Uint16Array(this._capacity);\n this._completedStrings = null;\n this._bufferLength = 0;\n }\n reset() {\n this._completedStrings = null;\n this._bufferLength = 0;\n }\n build() {\n if (this._completedStrings !== null) {\n this._flushBuffer();\n return this._completedStrings.join('');\n }\n return this._buildBuffer();\n }\n _buildBuffer() {\n if (this._bufferLength === 0) {\n return '';\n }\n const view = new Uint16Array(this._buffer.buffer, 0, this._bufferLength);\n return getPlatformTextDecoder().decode(view);\n }\n _flushBuffer() {\n const bufferString = this._buildBuffer();\n this._bufferLength = 0;\n if (this._completedStrings === null) {\n this._completedStrings = [bufferString];\n }\n else {\n this._completedStrings[this._completedStrings.length] = bufferString;\n }\n }\n /**\n * Append a char code (<2^16)\n */\n appendCharCode(charCode) {\n const remainingSpace = this._capacity - this._bufferLength;\n if (remainingSpace <= 1) {\n if (remainingSpace === 0 || strings.isHighSurrogate(charCode)) {\n this._flushBuffer();\n }\n }\n this._buffer[this._bufferLength++] = charCode;\n }\n /**\n * Append an ASCII char code (<2^8)\n */\n appendASCIICharCode(charCode) {\n if (this._bufferLength === this._capacity) {\n // buffer is full\n this._flushBuffer();\n }\n this._buffer[this._bufferLength++] = charCode;\n }\n appendString(str) {\n const strLen = str.length;\n if (this._bufferLength + strLen >= this._capacity) {\n // This string does not fit in the remaining buffer space\n this._flushBuffer();\n this._completedStrings[this._completedStrings.length] = str;\n return;\n }\n for (let i = 0; i < strLen; i++) {\n this._buffer[this._bufferLength++] = str.charCodeAt(i);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IOpenerService = createDecorator('openerService');\n/**\n * file:///some/file.js#73\n * file:///some/file.js#L73\n * file:///some/file.js#73,84\n * file:///some/file.js#L73,84\n * file:///some/file.js#73-83\n * file:///some/file.js#L73-L83\n * file:///some/file.js#73,84-83,52\n * file:///some/file.js#L73,84-L83,52\n */\nexport function extractSelection(uri) {\n let selection = undefined;\n const match = /^L?(\\d+)(?:,(\\d+))?(-L?(\\d+)(?:,(\\d+))?)?/.exec(uri.fragment);\n if (match) {\n selection = {\n startLineNumber: parseInt(match[1]),\n startColumn: match[2] ? parseInt(match[2]) : 1,\n endLineNumber: match[4] ? parseInt(match[4]) : undefined,\n endColumn: match[4] ? (match[5] ? parseInt(match[5]) : 1) : undefined\n };\n uri = uri.with({ fragment: '' });\n }\n return { selection, uri };\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar IS_PURE = require('../internals/is-pure');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true, forced: IS_PURE }, {\n filter: function filter(predicate) {\n anObject(this);\n aCallable(predicate);\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: predicate\n });\n }\n});\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, append, EventHelper, EventType, isMouseEvent } from '../../dom.js';\nimport { StandardKeyboardEvent } from '../../keyboardEvent.js';\nimport { EventType as GestureEventType, Gesture } from '../../touch.js';\nimport { ActionRunner } from '../../../common/actions.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nclass BaseDropdown extends ActionRunner {\n constructor(container, options) {\n super();\n this._onDidChangeVisibility = this._register(new Emitter());\n this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n this._element = append(container, $('.monaco-dropdown'));\n this._label = append(this._element, $('.dropdown-label'));\n let labelRenderer = options.labelRenderer;\n if (!labelRenderer) {\n labelRenderer = (container) => {\n container.textContent = options.label || '';\n return null;\n };\n }\n for (const event of [EventType.CLICK, EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n this._register(addDisposableListener(this.element, event, e => EventHelper.stop(e, true))); // prevent default click behaviour to trigger\n }\n for (const event of [EventType.MOUSE_DOWN, GestureEventType.Tap]) {\n this._register(addDisposableListener(this._label, event, e => {\n if (isMouseEvent(e) && (e.detail > 1 || e.button !== 0)) {\n // prevent right click trigger to allow separate context menu (https://github.com/microsoft/vscode/issues/151064)\n // prevent multiple clicks to open multiple context menus (https://github.com/microsoft/vscode/issues/41363)\n return;\n }\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n }));\n }\n this._register(addDisposableListener(this._label, EventType.KEY_UP, e => {\n const event = new StandardKeyboardEvent(e);\n if (event.equals(3 /* KeyCode.Enter */) || event.equals(10 /* KeyCode.Space */)) {\n EventHelper.stop(e, true); // https://github.com/microsoft/vscode/issues/57997\n if (this.visible) {\n this.hide();\n }\n else {\n this.show();\n }\n }\n }));\n const cleanupFn = labelRenderer(this._label);\n if (cleanupFn) {\n this._register(cleanupFn);\n }\n this._register(Gesture.addTarget(this._label));\n }\n get element() {\n return this._element;\n }\n show() {\n if (!this.visible) {\n this.visible = true;\n this._onDidChangeVisibility.fire(true);\n }\n }\n hide() {\n if (this.visible) {\n this.visible = false;\n this._onDidChangeVisibility.fire(false);\n }\n }\n dispose() {\n super.dispose();\n this.hide();\n if (this.boxContainer) {\n this.boxContainer.remove();\n this.boxContainer = undefined;\n }\n if (this.contents) {\n this.contents.remove();\n this.contents = undefined;\n }\n if (this._label) {\n this._label.remove();\n this._label = undefined;\n }\n }\n}\nexport class DropdownMenu extends BaseDropdown {\n constructor(container, _options) {\n super(container, _options);\n this._options = _options;\n this._actions = [];\n this.actions = _options.actions || [];\n }\n set menuOptions(options) {\n this._menuOptions = options;\n }\n get menuOptions() {\n return this._menuOptions;\n }\n get actions() {\n if (this._options.actionProvider) {\n return this._options.actionProvider.getActions();\n }\n return this._actions;\n }\n set actions(actions) {\n this._actions = actions;\n }\n show() {\n super.show();\n this.element.classList.add('active');\n this._options.contextMenuProvider.showContextMenu({\n getAnchor: () => this.element,\n getActions: () => this.actions,\n getActionsContext: () => this.menuOptions ? this.menuOptions.context : null,\n getActionViewItem: (action, options) => this.menuOptions && this.menuOptions.actionViewItemProvider ? this.menuOptions.actionViewItemProvider(action, options) : undefined,\n getKeyBinding: action => this.menuOptions && this.menuOptions.getKeyBinding ? this.menuOptions.getKeyBinding(action) : undefined,\n getMenuClassName: () => this._options.menuClassName || '',\n onHide: () => this.onHide(),\n actionRunner: this.menuOptions ? this.menuOptions.actionRunner : undefined,\n anchorAlignment: this.menuOptions ? this.menuOptions.anchorAlignment : 0 /* AnchorAlignment.LEFT */,\n domForShadowRoot: this._options.menuAsChild ? this.element : undefined,\n skipTelemetry: this._options.skipTelemetry\n });\n }\n hide() {\n super.hide();\n }\n onHide() {\n this.hide();\n this.element.classList.remove('active');\n }\n}\n","import { $, append } from '../../dom.js';\nimport { BaseActionViewItem } from '../actionbar/actionViewItems.js';\nimport { DropdownMenu } from './dropdown.js';\nimport { Emitter } from '../../../common/event.js';\nimport './dropdown.css';\nimport { getDefaultHoverDelegate } from '../hover/hoverDelegateFactory.js';\nimport { getBaseLayerHoverDelegate } from '../hover/hoverDelegate2.js';\nexport class DropdownMenuActionViewItem extends BaseActionViewItem {\n constructor(action, menuActionsOrProvider, contextMenuProvider, options = Object.create(null)) {\n super(null, action, options);\n this.actionItem = null;\n this._onDidChangeVisibility = this._register(new Emitter());\n this.onDidChangeVisibility = this._onDidChangeVisibility.event;\n this.menuActionsOrProvider = menuActionsOrProvider;\n this.contextMenuProvider = contextMenuProvider;\n this.options = options;\n if (this.options.actionRunner) {\n this.actionRunner = this.options.actionRunner;\n }\n }\n render(container) {\n this.actionItem = container;\n const labelRenderer = (el) => {\n var _a;\n this.element = append(el, $('a.action-label'));\n let classNames = [];\n if (typeof this.options.classNames === 'string') {\n classNames = this.options.classNames.split(/\\s+/g).filter(s => !!s);\n }\n else if (this.options.classNames) {\n classNames = this.options.classNames;\n }\n // todo@aeschli: remove codicon, should come through `this.options.classNames`\n if (!classNames.find(c => c === 'icon')) {\n classNames.push('codicon');\n }\n this.element.classList.add(...classNames);\n this.element.setAttribute('role', 'button');\n this.element.setAttribute('aria-haspopup', 'true');\n this.element.setAttribute('aria-expanded', 'false');\n if (this._action.label) {\n this._register(getBaseLayerHoverDelegate().setupUpdatableHover((_a = this.options.hoverDelegate) !== null && _a !== void 0 ? _a : getDefaultHoverDelegate('mouse'), this.element, this._action.label));\n }\n this.element.ariaLabel = this._action.label || '';\n return null;\n };\n const isActionsArray = Array.isArray(this.menuActionsOrProvider);\n const options = {\n contextMenuProvider: this.contextMenuProvider,\n labelRenderer: labelRenderer,\n menuAsChild: this.options.menuAsChild,\n actions: isActionsArray ? this.menuActionsOrProvider : undefined,\n actionProvider: isActionsArray ? undefined : this.menuActionsOrProvider,\n skipTelemetry: this.options.skipTelemetry\n };\n this.dropdownMenu = this._register(new DropdownMenu(container, options));\n this._register(this.dropdownMenu.onDidChangeVisibility(visible => {\n var _a;\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', `${visible}`);\n this._onDidChangeVisibility.fire(visible);\n }));\n this.dropdownMenu.menuOptions = {\n actionViewItemProvider: this.options.actionViewItemProvider,\n actionRunner: this.actionRunner,\n getKeyBinding: this.options.keybindingProvider,\n context: this._context\n };\n if (this.options.anchorAlignmentProvider) {\n const that = this;\n this.dropdownMenu.menuOptions = {\n ...this.dropdownMenu.menuOptions,\n get anchorAlignment() {\n return that.options.anchorAlignmentProvider();\n }\n };\n }\n this.updateTooltip();\n this.updateEnabled();\n }\n getTooltip() {\n let title = null;\n if (this.action.tooltip) {\n title = this.action.tooltip;\n }\n else if (this.action.label) {\n title = this.action.label;\n }\n return title !== null && title !== void 0 ? title : undefined;\n }\n setActionContext(newContext) {\n super.setActionContext(newContext);\n if (this.dropdownMenu) {\n if (this.dropdownMenu.menuOptions) {\n this.dropdownMenu.menuOptions.context = newContext;\n }\n else {\n this.dropdownMenu.menuOptions = { context: newContext };\n }\n }\n }\n show() {\n var _a;\n (_a = this.dropdownMenu) === null || _a === void 0 ? void 0 : _a.show();\n }\n updateEnabled() {\n var _a, _b;\n const disabled = !this.action.enabled;\n (_a = this.actionItem) === null || _a === void 0 ? void 0 : _a.classList.toggle('disabled', disabled);\n (_b = this.element) === null || _b === void 0 ? void 0 : _b.classList.toggle('disabled', disabled);\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.contentVocabulary = exports.metadataVocabulary = void 0;\nexports.metadataVocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n];\nexports.contentVocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n];\n//# sourceMappingURL=metadata.js.map","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../../nls.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Registry } from '../../../platform/registry/common/platform.js';\nimport { Mimes } from '../../../base/common/mime.js';\nimport { Extensions as ConfigurationExtensions } from '../../../platform/configuration/common/configurationRegistry.js';\n// Define extension point ids\nexport const Extensions = {\n ModesRegistry: 'editor.modesRegistry'\n};\nexport class EditorModesRegistry {\n constructor() {\n this._onDidChangeLanguages = new Emitter();\n this.onDidChangeLanguages = this._onDidChangeLanguages.event;\n this._languages = [];\n }\n registerLanguage(def) {\n this._languages.push(def);\n this._onDidChangeLanguages.fire(undefined);\n return {\n dispose: () => {\n for (let i = 0, len = this._languages.length; i < len; i++) {\n if (this._languages[i] === def) {\n this._languages.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n getLanguages() {\n return this._languages;\n }\n}\nexport const ModesRegistry = new EditorModesRegistry();\nRegistry.add(Extensions.ModesRegistry, ModesRegistry);\nexport const PLAINTEXT_LANGUAGE_ID = 'plaintext';\nexport const PLAINTEXT_EXTENSION = '.txt';\nModesRegistry.registerLanguage({\n id: PLAINTEXT_LANGUAGE_ID,\n extensions: [PLAINTEXT_EXTENSION],\n aliases: [nls.localize('plainText.alias', \"Plain Text\"), 'text'],\n mimetypes: [Mimes.text]\n});\nRegistry.as(ConfigurationExtensions.Configuration)\n .registerDefaultConfigurations([{\n overrides: {\n '[plaintext]': {\n 'editor.unicodeHighlight.ambiguousCharacters': false,\n 'editor.unicodeHighlight.invisibleCharacters': false\n }\n }\n }]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message({ keyword, schemaCode }) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\";\n return (0, codegen_1.str) `must NOT have ${comp} than ${schemaCode} items`;\n },\n params: ({ schemaCode }) => (0, codegen_1._) `{limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n const op = keyword === \"maxItems\" ? codegen_1.operators.GT : codegen_1.operators.LT;\n cxt.fail$data((0, codegen_1._) `${data}.length ${op} ${schemaCode}`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitItems.js.map","'use strict';\nmodule.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","var baseMean = require('./_baseMean'),\n identity = require('./identity');\n\n/**\n * Computes the mean of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the mean.\n * @example\n *\n * _.mean([4, 2, 8, 6]);\n * // => 5\n */\nfunction mean(array) {\n return baseMean(array, identity);\n}\n\nmodule.exports = mean;\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","/**\n * marked - a markdown parser\n * Copyright (c) 2011-2022, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n// ESM-uncomment-begin\nlet __marked_exports = {};\n(function() {\n function define(deps, factory) {\n factory(__marked_exports);\n }\n define.amd = true;\n// ESM-uncomment-end\n\n (function (global, factory) {\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.marked = {}));\n})(this, (function (exports) { 'use strict';\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaults() {\n return {\n async: false,\n baseUrl: null,\n breaks: false,\n extensions: null,\n gfm: true,\n headerIds: true,\n headerPrefix: '',\n highlight: null,\n langPrefix: 'language-',\n mangle: true,\n pedantic: false,\n renderer: null,\n sanitize: false,\n sanitizer: null,\n silent: false,\n smartLists: false,\n smartypants: false,\n tokenizer: null,\n walkTokens: null,\n xhtml: false\n };\n }\n exports.defaults = getDefaults();\n function changeDefaults(newDefaults) {\n exports.defaults = newDefaults;\n }\n\n /**\n * Helpers\n */\n var escapeTest = /[&<>\"']/;\n var escapeReplace = /[&<>\"']/g;\n var escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\n var escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\n var escapeReplacements = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n var getEscapeReplacement = function getEscapeReplacement(ch) {\n return escapeReplacements[ch];\n };\n\n function escape(html, encode) {\n if (encode) {\n if (escapeTest.test(html)) {\n return html.replace(escapeReplace, getEscapeReplacement);\n }\n } else {\n if (escapeTestNoEncode.test(html)) {\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n\n return html;\n }\n var unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig;\n /**\n * @param {string} html\n */\n\n function unescape(html) {\n // explicitly match decimal, hex, and named HTML entities\n return html.replace(unescapeTest, function (_, n) {\n n = n.toLowerCase();\n if (n === 'colon') return ':';\n\n if (n.charAt(0) === '#') {\n return n.charAt(1) === 'x' ? String.fromCharCode(parseInt(n.substring(2), 16)) : String.fromCharCode(+n.substring(1));\n }\n\n return '';\n });\n }\n var caret = /(^|[^\\[])\\^/g;\n /**\n * @param {string | RegExp} regex\n * @param {string} opt\n */\n\n function edit(regex, opt) {\n regex = typeof regex === 'string' ? regex : regex.source;\n opt = opt || '';\n var obj = {\n replace: function replace(name, val) {\n val = val.source || val;\n val = val.replace(caret, '$1');\n regex = regex.replace(name, val);\n return obj;\n },\n getRegex: function getRegex() {\n return new RegExp(regex, opt);\n }\n };\n return obj;\n }\n var nonWordAndColonTest = /[^\\w:]/g;\n var originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\n /**\n * @param {boolean} sanitize\n * @param {string} base\n * @param {string} href\n */\n\n function cleanUrl(sanitize, base, href) {\n if (sanitize) {\n var prot;\n\n try {\n prot = decodeURIComponent(unescape(href)).replace(nonWordAndColonTest, '').toLowerCase();\n } catch (e) {\n return null;\n }\n\n if (prot.indexOf('javascript:') === 0 || prot.indexOf('vbscript:') === 0 || prot.indexOf('data:') === 0) {\n return null;\n }\n }\n\n if (base && !originIndependentUrl.test(href)) {\n href = resolveUrl(base, href);\n }\n\n try {\n href = encodeURI(href).replace(/%25/g, '%');\n } catch (e) {\n return null;\n }\n\n return href;\n }\n var baseUrls = {};\n var justDomain = /^[^:]+:\\/*[^/]*$/;\n var protocol = /^([^:]+:)[\\s\\S]*$/;\n var domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\n /**\n * @param {string} base\n * @param {string} href\n */\n\n function resolveUrl(base, href) {\n if (!baseUrls[' ' + base]) {\n // we can ignore everything in base after the last slash of its path component,\n // but we might need to add _that_\n // https://tools.ietf.org/html/rfc3986#section-3\n if (justDomain.test(base)) {\n baseUrls[' ' + base] = base + '/';\n } else {\n baseUrls[' ' + base] = rtrim(base, '/', true);\n }\n }\n\n base = baseUrls[' ' + base];\n var relativeBase = base.indexOf(':') === -1;\n\n if (href.substring(0, 2) === '//') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(protocol, '$1') + href;\n } else if (href.charAt(0) === '/') {\n if (relativeBase) {\n return href;\n }\n\n return base.replace(domain, '$1') + href;\n } else {\n return base + href;\n }\n }\n var noopTest = {\n exec: function noopTest() {}\n };\n function merge(obj) {\n var i = 1,\n target,\n key;\n\n for (; i < arguments.length; i++) {\n target = arguments[i];\n\n for (key in target) {\n if (Object.prototype.hasOwnProperty.call(target, key)) {\n obj[key] = target[key];\n }\n }\n }\n\n return obj;\n }\n function splitCells(tableRow, count) {\n // ensure that every cell-delimiting pipe has a space\n // before it to distinguish it from an escaped pipe\n var row = tableRow.replace(/\\|/g, function (match, offset, str) {\n var escaped = false,\n curr = offset;\n\n while (--curr >= 0 && str[curr] === '\\\\') {\n escaped = !escaped;\n }\n\n if (escaped) {\n // odd number of slashes means | is escaped\n // so we leave it alone\n return '|';\n } else {\n // add space before unescaped |\n return ' |';\n }\n }),\n cells = row.split(/ \\|/);\n var i = 0; // First/last cell in a row cannot be empty if it has no leading/trailing pipe\n\n if (!cells[0].trim()) {\n cells.shift();\n }\n\n if (cells.length > 0 && !cells[cells.length - 1].trim()) {\n cells.pop();\n }\n\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) {\n cells.push('');\n }\n }\n\n for (; i < cells.length; i++) {\n // leading or trailing whitespace is ignored per the gfm spec\n cells[i] = cells[i].trim().replace(/\\\\\\|/g, '|');\n }\n\n return cells;\n }\n /**\n * Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\n * /c*$/ is vulnerable to REDOS.\n *\n * @param {string} str\n * @param {string} c\n * @param {boolean} invert Remove suffix of non-c chars instead. Default falsey.\n */\n\n function rtrim(str, c, invert) {\n var l = str.length;\n\n if (l === 0) {\n return '';\n } // Length of suffix matching the invert condition.\n\n\n var suffLen = 0; // Step left until we fail to match the invert condition.\n\n while (suffLen < l) {\n var currChar = str.charAt(l - suffLen - 1);\n\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n\n return str.slice(0, l - suffLen);\n }\n function findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n\n var l = str.length;\n var level = 0,\n i = 0;\n\n for (; i < l; i++) {\n if (str[i] === '\\\\') {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n\n if (level < 0) {\n return i;\n }\n }\n }\n\n return -1;\n }\n function checkSanitizeDeprecation(opt) {\n if (opt && opt.sanitize && !opt.silent) {\n console.warn('marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options');\n }\n } // copied from https://stackoverflow.com/a/5450113/806777\n\n /**\n * @param {string} pattern\n * @param {number} count\n */\n\n function repeatString(pattern, count) {\n if (count < 1) {\n return '';\n }\n\n var result = '';\n\n while (count > 1) {\n if (count & 1) {\n result += pattern;\n }\n\n count >>= 1;\n pattern += pattern;\n }\n\n return result + pattern;\n }\n\n function outputLink(cap, link, raw, lexer) {\n var href = link.href;\n var title = link.title ? escape(link.title) : null;\n var text = cap[1].replace(/\\\\([\\[\\]])/g, '$1');\n\n if (cap[0].charAt(0) !== '!') {\n lexer.state.inLink = true;\n var token = {\n type: 'link',\n raw: raw,\n href: href,\n title: title,\n text: text,\n tokens: lexer.inlineTokens(text)\n };\n lexer.state.inLink = false;\n return token;\n }\n\n return {\n type: 'image',\n raw: raw,\n href: href,\n title: title,\n text: escape(text)\n };\n }\n\n function indentCodeCompensation(raw, text) {\n var matchIndentToCode = raw.match(/^(\\s+)(?:```)/);\n\n if (matchIndentToCode === null) {\n return text;\n }\n\n var indentToCode = matchIndentToCode[1];\n return text.split('\\n').map(function (node) {\n var matchIndentInNode = node.match(/^\\s+/);\n\n if (matchIndentInNode === null) {\n return node;\n }\n\n var indentInNode = matchIndentInNode[0];\n\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n\n return node;\n }).join('\\n');\n }\n /**\n * Tokenizer\n */\n\n\n var Tokenizer = /*#__PURE__*/function () {\n function Tokenizer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Tokenizer.prototype;\n\n _proto.space = function space(src) {\n var cap = this.rules.block.newline.exec(src);\n\n if (cap && cap[0].length > 0) {\n return {\n type: 'space',\n raw: cap[0]\n };\n }\n };\n\n _proto.code = function code(src) {\n var cap = this.rules.block.code.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ {1,4}/gm, '');\n return {\n type: 'code',\n raw: cap[0],\n codeBlockStyle: 'indented',\n text: !this.options.pedantic ? rtrim(text, '\\n') : text\n };\n }\n };\n\n _proto.fences = function fences(src) {\n var cap = this.rules.block.fences.exec(src);\n\n if (cap) {\n var raw = cap[0];\n var text = indentCodeCompensation(raw, cap[3] || '');\n return {\n type: 'code',\n raw: raw,\n lang: cap[2] ? cap[2].trim() : cap[2],\n text: text\n };\n }\n };\n\n _proto.heading = function heading(src) {\n var cap = this.rules.block.heading.exec(src);\n\n if (cap) {\n var text = cap[2].trim(); // remove trailing #s\n\n if (/#$/.test(text)) {\n var trimmed = rtrim(text, '#');\n\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || / $/.test(trimmed)) {\n // CommonMark requires space before trailing #s\n text = trimmed.trim();\n }\n }\n\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[1].length,\n text: text,\n tokens: this.lexer.inline(text)\n };\n }\n };\n\n _proto.hr = function hr(src) {\n var cap = this.rules.block.hr.exec(src);\n\n if (cap) {\n return {\n type: 'hr',\n raw: cap[0]\n };\n }\n };\n\n _proto.blockquote = function blockquote(src) {\n var cap = this.rules.block.blockquote.exec(src);\n\n if (cap) {\n var text = cap[0].replace(/^ *>[ \\t]?/gm, '');\n return {\n type: 'blockquote',\n raw: cap[0],\n tokens: this.lexer.blockTokens(text, []),\n text: text\n };\n }\n };\n\n _proto.list = function list(src) {\n var cap = this.rules.block.list.exec(src);\n\n if (cap) {\n var raw, istask, ischecked, indent, i, blankLine, endsWithBlankLine, line, nextLine, rawLine, itemContents, endEarly;\n var bull = cap[1].trim();\n var isordered = bull.length > 1;\n var list = {\n type: 'list',\n raw: '',\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : '',\n loose: false,\n items: []\n };\n bull = isordered ? \"\\\\d{1,9}\\\\\" + bull.slice(-1) : \"\\\\\" + bull;\n\n if (this.options.pedantic) {\n bull = isordered ? bull : '[*+-]';\n } // Get next list item\n\n\n var itemRegex = new RegExp(\"^( {0,3}\" + bull + \")((?:[\\t ][^\\\\n]*)?(?:\\\\n|$))\"); // Check if current bullet point can start a new List Item\n\n while (src) {\n endEarly = false;\n\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n\n if (this.rules.block.hr.test(src)) {\n // End list if bullet was actually HR (possibly move into itemRegex?)\n break;\n }\n\n raw = cap[0];\n src = src.substring(raw.length);\n line = cap[2].split('\\n', 1)[0];\n nextLine = src.split('\\n', 1)[0];\n\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimLeft();\n } else {\n indent = cap[2].search(/[^ ]/); // Find first non-space char\n\n indent = indent > 4 ? 1 : indent; // Treat indented code blocks (> 4 spaces) as having only 1 indent\n\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n\n blankLine = false;\n\n if (!line && /^ *$/.test(nextLine)) {\n // Items begin with at most one blank line\n raw += nextLine + '\\n';\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n\n if (!endEarly) {\n var nextBulletRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:[*+-]|\\\\d{1,9}[.)])((?: [^\\\\n]*)?(?:\\\\n|$))\");\n var hrRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)\");\n var fencesBeginRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}(?:```|~~~)\");\n var headingBeginRegex = new RegExp(\"^ {0,\" + Math.min(3, indent - 1) + \"}#\"); // Check if following lines should be included in List Item\n\n while (src) {\n rawLine = src.split('\\n', 1)[0];\n line = rawLine; // Re-align to follow commonmark nesting rules\n\n if (this.options.pedantic) {\n line = line.replace(/^ {1,4}(?=( {4})*[^ ])/g, ' ');\n } // End list item if found code fences\n\n\n if (fencesBeginRegex.test(line)) {\n break;\n } // End list item if found start of new heading\n\n\n if (headingBeginRegex.test(line)) {\n break;\n } // End list item if found start of new bullet\n\n\n if (nextBulletRegex.test(line)) {\n break;\n } // Horizontal rule found\n\n\n if (hrRegex.test(src)) {\n break;\n }\n\n if (line.search(/[^ ]/) >= indent || !line.trim()) {\n // Dedent if possible\n itemContents += '\\n' + line.slice(indent);\n } else if (!blankLine) {\n // Until blank line, item doesn't need indentation\n itemContents += '\\n' + line;\n } else {\n // Otherwise, improper indentation ends this item\n break;\n }\n\n if (!blankLine && !line.trim()) {\n // Check if current line is blank\n blankLine = true;\n }\n\n raw += rawLine + '\\n';\n src = src.substring(rawLine.length + 1);\n }\n }\n\n if (!list.loose) {\n // If the previous item ended with a blank line, the list is loose\n if (endsWithBlankLine) {\n list.loose = true;\n } else if (/\\n *\\n *$/.test(raw)) {\n endsWithBlankLine = true;\n }\n } // Check for task list items\n\n\n if (this.options.gfm) {\n istask = /^\\[[ xX]\\] /.exec(itemContents);\n\n if (istask) {\n ischecked = istask[0] !== '[ ] ';\n itemContents = itemContents.replace(/^\\[[ xX]\\] +/, '');\n }\n }\n\n list.items.push({\n type: 'list_item',\n raw: raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents\n });\n list.raw += raw;\n } // Do not consume newlines at end of final item. Alternatively, make itemRegex *start* with any newlines to simplify/speed up endsWithBlankLine logic\n\n\n list.items[list.items.length - 1].raw = raw.trimRight();\n list.items[list.items.length - 1].text = itemContents.trimRight();\n list.raw = list.raw.trimRight();\n var l = list.items.length; // Item child tokens handled here at end because we needed to have the final item to trim it first\n\n for (i = 0; i < l; i++) {\n this.lexer.state.top = false;\n list.items[i].tokens = this.lexer.blockTokens(list.items[i].text, []);\n var spacers = list.items[i].tokens.filter(function (t) {\n return t.type === 'space';\n });\n var hasMultipleLineBreaks = spacers.every(function (t) {\n var chars = t.raw.split('');\n var lineBreaks = 0;\n\n for (var _iterator = _createForOfIteratorHelperLoose(chars), _step; !(_step = _iterator()).done;) {\n var _char = _step.value;\n\n if (_char === '\\n') {\n lineBreaks += 1;\n }\n\n if (lineBreaks > 1) {\n return true;\n }\n }\n\n return false;\n });\n\n if (!list.loose && spacers.length && hasMultipleLineBreaks) {\n // Having a single line break doesn't mean a list is loose. A single line break is terminating the last list item\n list.loose = true;\n list.items[i].loose = true;\n }\n }\n\n return list;\n }\n };\n\n _proto.html = function html(src) {\n var cap = this.rules.block.html.exec(src);\n\n if (cap) {\n var token = {\n type: 'html',\n raw: cap[0],\n pre: !this.options.sanitizer && (cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style'),\n text: cap[0]\n };\n\n if (this.options.sanitize) {\n var text = this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]);\n token.type = 'paragraph';\n token.text = text;\n token.tokens = this.lexer.inline(text);\n }\n\n return token;\n }\n };\n\n _proto.def = function def(src) {\n var cap = this.rules.block.def.exec(src);\n\n if (cap) {\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\n var tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\n return {\n type: 'def',\n tag: tag,\n raw: cap[0],\n href: cap[2],\n title: cap[3]\n };\n }\n };\n\n _proto.table = function table(src) {\n var cap = this.rules.block.table.exec(src);\n\n if (cap) {\n var item = {\n type: 'table',\n header: splitCells(cap[1]).map(function (c) {\n return {\n text: c\n };\n }),\n align: cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */),\n rows: cap[3] && cap[3].trim() ? cap[3].replace(/\\n[ \\t]*$/, '').split('\\n') : []\n };\n\n if (item.header.length === item.align.length) {\n item.raw = cap[0];\n var l = item.align.length;\n var i, j, k, row;\n\n for (i = 0; i < l; i++) {\n if (/^ *-+: *$/.test(item.align[i])) {\n item.align[i] = 'right';\n } else if (/^ *:-+: *$/.test(item.align[i])) {\n item.align[i] = 'center';\n } else if (/^ *:-+ *$/.test(item.align[i])) {\n item.align[i] = 'left';\n } else {\n item.align[i] = null;\n }\n }\n\n l = item.rows.length;\n\n for (i = 0; i < l; i++) {\n item.rows[i] = splitCells(item.rows[i], item.header.length).map(function (c) {\n return {\n text: c\n };\n });\n } // parse child tokens inside headers and cells\n // header child tokens\n\n\n l = item.header.length;\n\n for (j = 0; j < l; j++) {\n item.header[j].tokens = this.lexer.inline(item.header[j].text);\n } // cell child tokens\n\n\n l = item.rows.length;\n\n for (j = 0; j < l; j++) {\n row = item.rows[j];\n\n for (k = 0; k < row.length; k++) {\n row[k].tokens = this.lexer.inline(row[k].text);\n }\n }\n\n return item;\n }\n }\n };\n\n _proto.lheading = function lheading(src) {\n var cap = this.rules.block.lheading.exec(src);\n\n if (cap) {\n return {\n type: 'heading',\n raw: cap[0],\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n };\n\n _proto.paragraph = function paragraph(src) {\n var cap = this.rules.block.paragraph.exec(src);\n\n if (cap) {\n var text = cap[1].charAt(cap[1].length - 1) === '\\n' ? cap[1].slice(0, -1) : cap[1];\n return {\n type: 'paragraph',\n raw: cap[0],\n text: text,\n tokens: this.lexer.inline(text)\n };\n }\n };\n\n _proto.text = function text(src) {\n var cap = this.rules.block.text.exec(src);\n\n if (cap) {\n return {\n type: 'text',\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n };\n\n _proto.escape = function escape$1(src) {\n var cap = this.rules.inline.escape.exec(src);\n\n if (cap) {\n return {\n type: 'escape',\n raw: cap[0],\n text: escape(cap[1])\n };\n }\n };\n\n _proto.tag = function tag(src) {\n var cap = this.rules.inline.tag.exec(src);\n\n if (cap) {\n if (!this.lexer.state.inLink && /^/i.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n\n if (!this.lexer.state.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n\n return {\n type: this.options.sanitize ? 'text' : 'html',\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n text: this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0]\n };\n }\n };\n\n _proto.link = function link(src) {\n var cap = this.rules.inline.link.exec(src);\n\n if (cap) {\n var trimmedUrl = cap[2].trim();\n\n if (!this.options.pedantic && /^$/.test(trimmedUrl)) {\n return;\n } // ending angle bracket cannot be escaped\n\n\n var rtrimSlash = rtrim(trimmedUrl.slice(0, -1), '\\\\');\n\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n // find closing parenthesis\n var lastParenIndex = findClosingBracket(cap[2], '()');\n\n if (lastParenIndex > -1) {\n var start = cap[0].indexOf('!') === 0 ? 5 : 4;\n var linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = '';\n }\n }\n\n var href = cap[2];\n var title = '';\n\n if (this.options.pedantic) {\n // split pedantic href and title\n var link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\n\n if (link) {\n href = link[1];\n title = link[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : '';\n }\n\n href = href.trim();\n\n if (/^$/.test(trimmedUrl)) {\n // pedantic allows starting angle bracket without ending angle bracket\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline._escapes, '$1') : href,\n title: title ? title.replace(this.rules.inline._escapes, '$1') : title\n }, cap[0], this.lexer);\n }\n };\n\n _proto.reflink = function reflink(src, links) {\n var cap;\n\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n var link = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\n link = links[link.toLowerCase()];\n\n if (!link || !link.href) {\n var text = cap[0].charAt(0);\n return {\n type: 'text',\n raw: text,\n text: text\n };\n }\n\n return outputLink(cap, link, cap[0], this.lexer);\n }\n };\n\n _proto.emStrong = function emStrong(src, maskedSrc, prevChar) {\n if (prevChar === void 0) {\n prevChar = '';\n }\n\n var match = this.rules.inline.emStrong.lDelim.exec(src);\n if (!match) return; // _ can't be between two alphanumerics. \\p{L}\\p{N} includes non-english alphabet/numbers as well\n\n if (match[3] && prevChar.match(/(?:[0-9A-Za-z\\xAA\\xB2\\xB3\\xB5\\xB9\\xBA\\xBC-\\xBE\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u0660-\\u0669\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07C0-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0966-\\u096F\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09E6-\\u09F1\\u09F4-\\u09F9\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A6F\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AE6-\\u0AEF\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71-\\u0B77\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0BE6-\\u0BF2\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D58-\\u0D61\\u0D66-\\u0D78\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DE6-\\u0DEF\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F20-\\u0F33\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F-\\u1049\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1090-\\u1099\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1369-\\u137C\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B50-\\u1B59\\u1B83-\\u1BA0\\u1BAE-\\u1BE5\\u1C00-\\u1C23\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2070\\u2071\\u2074-\\u2079\\u207F-\\u2089\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2150-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2CFD\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u3192-\\u3195\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA830-\\uA835\\uA840-\\uA873\\uA882-\\uA8B3\\uA8D0-\\uA8D9\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA900-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF-\\uA9D9\\uA9E0-\\uA9E4\\uA9E6-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD07-\\uDD33\\uDD40-\\uDD78\\uDD8A\\uDD8B\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE1-\\uDEFB\\uDF00-\\uDF23\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC58-\\uDC76\\uDC79-\\uDC9E\\uDCA7-\\uDCAF\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDCFB-\\uDD1B\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBC-\\uDDCF\\uDDD2-\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE40-\\uDE48\\uDE60-\\uDE7E\\uDE80-\\uDE9F\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDEEB-\\uDEEF\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF58-\\uDF72\\uDF78-\\uDF91\\uDFA9-\\uDFAF]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDCFA-\\uDD23\\uDD30-\\uDD39\\uDE60-\\uDE7E\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF27\\uDF30-\\uDF45\\uDF51-\\uDF54\\uDF70-\\uDF81\\uDFB0-\\uDFCB\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC52-\\uDC6F\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD03-\\uDD26\\uDD36-\\uDD3F\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDD0-\\uDDDA\\uDDDC\\uDDE1-\\uDDF4\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDEF0-\\uDEF9\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC50-\\uDC59\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEAA\\uDEB8\\uDEC0-\\uDEC9\\uDF00-\\uDF1A\\uDF30-\\uDF3B\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCF2\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD50-\\uDD59\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC50-\\uDC6C\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD50-\\uDD59\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDDA0-\\uDDA9\\uDEE0-\\uDEF2\\uDFB0\\uDFC0-\\uDFD4]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDE70-\\uDEBE\\uDEC0-\\uDEC9\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF5B-\\uDF61\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE96\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD834[\\uDEE0-\\uDEF3\\uDF60-\\uDF78]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD40-\\uDD49\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB\\uDEF0-\\uDEF9]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDCC7-\\uDCCF\\uDD00-\\uDD43\\uDD4B\\uDD50-\\uDD59]|\\uD83B[\\uDC71-\\uDCAB\\uDCAD-\\uDCAF\\uDCB1-\\uDCB4\\uDD01-\\uDD2D\\uDD2F-\\uDD3D\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD00-\\uDD0C]|\\uD83E[\\uDFF0-\\uDFF9]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/)) return;\n var nextChar = match[1] || match[2] || '';\n\n if (!nextChar || nextChar && (prevChar === '' || this.rules.inline.punctuation.exec(prevChar))) {\n var lLength = match[0].length - 1;\n var rDelim,\n rLength,\n delimTotal = lLength,\n midDelimTotal = 0;\n var endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;\n endReg.lastIndex = 0; // Clip maskedSrc to same section of string as src (move to lexer?)\n\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue; // skip single * in __abc*abc__\n\n rLength = rDelim.length;\n\n if (match[3] || match[4]) {\n // found another Left Delim\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n // either Left or Right Delim\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue; // CommonMark Emphasis Rules 9-10\n }\n }\n\n delimTotal -= rLength;\n if (delimTotal > 0) continue; // Haven't found enough closing delimiters\n // Remove extra characters. *a*** -> *a*\n\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal); // Create `em` if smallest delimiter has odd char count. *a***\n\n if (Math.min(lLength, rLength) % 2) {\n var _text = src.slice(1, lLength + match.index + rLength);\n\n return {\n type: 'em',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: _text,\n tokens: this.lexer.inlineTokens(_text)\n };\n } // Create 'strong' if smallest delimiter has even char count. **a***\n\n\n var text = src.slice(2, lLength + match.index + rLength - 1);\n return {\n type: 'strong',\n raw: src.slice(0, lLength + match.index + rLength + 1),\n text: text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n };\n\n _proto.codespan = function codespan(src) {\n var cap = this.rules.inline.code.exec(src);\n\n if (cap) {\n var text = cap[2].replace(/\\n/g, ' ');\n var hasNonSpaceChars = /[^ ]/.test(text);\n var hasSpaceCharsOnBothEnds = /^ /.test(text) && / $/.test(text);\n\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n\n text = escape(text, true);\n return {\n type: 'codespan',\n raw: cap[0],\n text: text\n };\n }\n };\n\n _proto.br = function br(src) {\n var cap = this.rules.inline.br.exec(src);\n\n if (cap) {\n return {\n type: 'br',\n raw: cap[0]\n };\n }\n };\n\n _proto.del = function del(src) {\n var cap = this.rules.inline.del.exec(src);\n\n if (cap) {\n return {\n type: 'del',\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n };\n\n _proto.autolink = function autolink(src, mangle) {\n var cap = this.rules.inline.autolink.exec(src);\n\n if (cap) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[1]) : cap[1]);\n href = 'mailto:' + text;\n } else {\n text = escape(cap[1]);\n href = text;\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.url = function url(src, mangle) {\n var cap;\n\n if (cap = this.rules.inline.url.exec(src)) {\n var text, href;\n\n if (cap[2] === '@') {\n text = escape(this.options.mangle ? mangle(cap[0]) : cap[0]);\n href = 'mailto:' + text;\n } else {\n // do extended autolink path validation\n var prevCapZero;\n\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])[0];\n } while (prevCapZero !== cap[0]);\n\n text = escape(cap[0]);\n\n if (cap[1] === 'www.') {\n href = 'http://' + text;\n } else {\n href = text;\n }\n }\n\n return {\n type: 'link',\n raw: cap[0],\n text: text,\n href: href,\n tokens: [{\n type: 'text',\n raw: text,\n text: text\n }]\n };\n }\n };\n\n _proto.inlineText = function inlineText(src, smartypants) {\n var cap = this.rules.inline.text.exec(src);\n\n if (cap) {\n var text;\n\n if (this.lexer.state.inRawBlock) {\n text = this.options.sanitize ? this.options.sanitizer ? this.options.sanitizer(cap[0]) : escape(cap[0]) : cap[0];\n } else {\n text = escape(this.options.smartypants ? smartypants(cap[0]) : cap[0]);\n }\n\n return {\n type: 'text',\n raw: cap[0],\n text: text\n };\n }\n };\n\n return Tokenizer;\n }();\n\n /**\n * Block-Level Grammar\n */\n\n var block = {\n newline: /^(?: *(?:\\n|$))+/,\n code: /^( {4}[^\\n]+(?:\\n(?: *(?:\\n|$))*)?)+/,\n fences: /^ {0,3}(`{3,}(?=[^`\\n]*\\n)|~{3,})([^\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n hr: /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n heading: /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n blockquote: /^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/,\n list: /^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/,\n html: '^ {0,3}(?:' // optional indentation\n + '<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' // (1)\n + '|comment[^\\\\n]*(\\\\n+|$)' // (2)\n + '|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)' // (3)\n + '|\\\\n*|$)' // (4)\n + '|\\\\n*|$)' // (5)\n + '|)[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (6)\n + '|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) open tag\n + '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n *)+\\\\n|$)' // (7) closing tag\n + ')',\n def: /^ {0,3}\\[(label)\\]: *(?:\\n *)?]+)>?(?:(?: +(?:\\n *)?| *\\n *)(title))? *(?:\\n+|$)/,\n table: noopTest,\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n // regex template, placeholders will be replaced according to different paragraph\n // interruption rules of commonmark and the original markdown spec:\n _paragraph: /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n text: /^[^\\n]+/\n };\n block._label = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\n block._title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\n block.def = edit(block.def).replace('label', block._label).replace('title', block._title).getRegex();\n block.bullet = /(?:[*+-]|\\d{1,9}[.)])/;\n block.listItemStart = edit(/^( *)(bull) */).replace('bull', block.bullet).getRegex();\n block.list = edit(block.list).replace(/bull/g, block.bullet).replace('hr', '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))').replace('def', '\\\\n+(?=' + block.def.source + ')').getRegex();\n block._tag = 'address|article|aside|base|basefont|blockquote|body|caption' + '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' + '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' + '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' + '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' + '|track|ul';\n block._comment = /|$)/;\n block.html = edit(block.html, 'i').replace('comment', block._comment).replace('tag', block._tag).replace('attribute', / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\n block.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('|table', '').replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n block.blockquote = edit(block.blockquote).replace('paragraph', block.paragraph).getRegex();\n /**\n * Normal Block Grammar\n */\n\n block.normal = merge({}, block);\n /**\n * GFM Block Grammar\n */\n\n block.gfm = merge({}, block.normal, {\n table: '^ *([^\\\\n ].*\\\\|.*)\\\\n' // Header\n + ' {0,3}(?:\\\\| *)?(:?-+:? *(?:\\\\| *:?-+:? *)*)(?:\\\\| *)?' // Align\n + '(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)' // Cells\n\n });\n block.gfm.table = edit(block.gfm.table).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('blockquote', ' {0,3}>').replace('code', ' {4}[^\\\\n]').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // tables can be interrupted by type (6) html blocks\n .getRegex();\n block.gfm.paragraph = edit(block._paragraph).replace('hr', block.hr).replace('heading', ' {0,3}#{1,6} ').replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\n .replace('table', block.gfm.table) // interrupt paragraphs with table\n .replace('blockquote', ' {0,3}>').replace('fences', ' {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n').replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\n .replace('html', ')|<(?:script|pre|style|textarea|!--)').replace('tag', block._tag) // pars can be interrupted by type (6) html blocks\n .getRegex();\n /**\n * Pedantic grammar (original John Gruber's loose markdown specification)\n */\n\n block.pedantic = merge({}, block.normal, {\n html: edit('^ *(?:comment *(?:\\\\n|\\\\s*$)' + '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' // closed tag\n + '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))').replace('comment', block._comment).replace(/tag/g, '(?!(?:' + 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' + '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' + '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b').getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n paragraph: edit(block.normal._paragraph).replace('hr', block.hr).replace('heading', ' *#{1,6} *[^\\n]').replace('lheading', block.lheading).replace('blockquote', ' {0,3}>').replace('|fences', '').replace('|list', '').replace('|html', '').getRegex()\n });\n /**\n * Inline-Level Grammar\n */\n\n var inline = {\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n autolink: /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/,\n url: noopTest,\n tag: '^comment' + '|^' // self-closing tag\n + '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' // open tag\n + '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' // processing instruction, e.g. \n + '|^' // declaration, e.g. \n + '|^',\n // CDATA section\n link: /^!?\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/,\n reflink: /^!?\\[(label)\\]\\[(ref)\\]/,\n nolink: /^!?\\[(ref)\\](?:\\[\\])?/,\n reflinkSearch: 'reflink|nolink(?!\\\\()',\n emStrong: {\n lDelim: /^(?:\\*+(?:([punct_])|[^\\s*]))|^_+(?:([punct*])|([^\\s_]))/,\n // (1) and (2) can only be a Right Delimiter. (3) and (4) can only be Left. (5) and (6) can be either Left or Right.\n // () Skip orphan inside strong () Consume to delim (1) #*** (2) a***#, a*** (3) #***a, ***a (4) ***# (5) #***# (6) a***a\n rDelimAst: /^[^_*]*?\\_\\_[^_*]*?\\*[^_*]*?(?=\\_\\_)|[^*]+(?=[^*])|[punct_](\\*+)(?=[\\s]|$)|[^punct*_\\s](\\*+)(?=[punct_\\s]|$)|[punct_\\s](\\*+)(?=[^punct*_\\s])|[\\s](\\*+)(?=[punct_])|[punct_](\\*+)(?=[punct_])|[^punct*_\\s](\\*+)(?=[^punct*_\\s])/,\n rDelimUnd: /^[^_*]*?\\*\\*[^_*]*?\\_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|[punct*](\\_+)(?=[\\s]|$)|[^punct*_\\s](\\_+)(?=[punct*\\s]|$)|[punct*\\s](\\_+)(?=[^punct*_\\s])|[\\s](\\_+)(?=[punct*])|[punct*](\\_+)(?=[punct*])/ // ^- Not allowed for _\n\n },\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\n del: noopTest,\n text: /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\?@\\\\[\\\\]`^{|}~';\n inline.punctuation = edit(inline.punctuation).replace(/punctuation/g, inline._punctuation).getRegex(); // sequences em should skip over [title](link), `code`, \n\n inline.blockSkip = /\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>/g;\n inline.escapedEmSt = /\\\\\\*|\\\\_/g;\n inline._comment = edit(block._comment).replace('(?:-->|$)', '-->').getRegex();\n inline.emStrong.lDelim = edit(inline.emStrong.lDelim).replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimAst = edit(inline.emStrong.rDelimAst, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline.emStrong.rDelimUnd = edit(inline.emStrong.rDelimUnd, 'g').replace(/punct/g, inline._punctuation).getRegex();\n inline._escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\n inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\n inline._email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\n inline.autolink = edit(inline.autolink).replace('scheme', inline._scheme).replace('email', inline._email).getRegex();\n inline._attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\n inline.tag = edit(inline.tag).replace('comment', inline._comment).replace('attribute', inline._attribute).getRegex();\n inline._label = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\n inline._href = /<(?:\\\\.|[^\\n<>\\\\])+>|[^\\s\\x00-\\x1f]*/;\n inline._title = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\n inline.link = edit(inline.link).replace('label', inline._label).replace('href', inline._href).replace('title', inline._title).getRegex();\n inline.reflink = edit(inline.reflink).replace('label', inline._label).replace('ref', block._label).getRegex();\n inline.nolink = edit(inline.nolink).replace('ref', block._label).getRegex();\n inline.reflinkSearch = edit(inline.reflinkSearch, 'g').replace('reflink', inline.reflink).replace('nolink', inline.nolink).getRegex();\n /**\n * Normal Inline Grammar\n */\n\n inline.normal = merge({}, inline);\n /**\n * Pedantic Inline Grammar\n */\n\n inline.pedantic = merge({}, inline.normal, {\n strong: {\n start: /^__|\\*\\*/,\n middle: /^__(?=\\S)([\\s\\S]*?\\S)__(?!_)|^\\*\\*(?=\\S)([\\s\\S]*?\\S)\\*\\*(?!\\*)/,\n endAst: /\\*\\*(?!\\*)/g,\n endUnd: /__(?!_)/g\n },\n em: {\n start: /^_|\\*/,\n middle: /^()\\*(?=\\S)([\\s\\S]*?\\S)\\*(?!\\*)|^_(?=\\S)([\\s\\S]*?\\S)_(?!_)/,\n endAst: /\\*(?!\\*)/g,\n endUnd: /_(?!_)/g\n },\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace('label', inline._label).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace('label', inline._label).getRegex()\n });\n /**\n * GFM Inline Grammar\n */\n\n inline.gfm = merge({}, inline.normal, {\n escape: edit(inline.escape).replace('])', '~|])').getRegex(),\n _extended_email: /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,\n url: /^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/,\n _backpedal: /(?:[^?!.,:;*_~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])([\\s\\S]*?[^\\s~])\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\ 0.5) {\n ch = 'x' + ch.toString(16);\n }\n\n out += '&#' + ch + ';';\n }\n\n return out;\n }\n /**\n * Block Lexer\n */\n\n\n var Lexer = /*#__PURE__*/function () {\n function Lexer(options) {\n this.tokens = [];\n this.tokens.links = Object.create(null);\n this.options = options || exports.defaults;\n this.options.tokenizer = this.options.tokenizer || new Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n var rules = {\n block: block.normal,\n inline: inline.normal\n };\n\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n\n\n /**\n * Static Lex Method\n */\n Lexer.lex = function lex(src, options) {\n var lexer = new Lexer(options);\n return lexer.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n ;\n\n Lexer.lexInline = function lexInline(src, options) {\n var lexer = new Lexer(options);\n return lexer.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n ;\n\n var _proto = Lexer.prototype;\n\n _proto.lex = function lex(src) {\n src = src.replace(/\\r\\n|\\r/g, '\\n');\n this.blockTokens(src, this.tokens);\n var next;\n\n while (next = this.inlineQueue.shift()) {\n this.inlineTokens(next.src, next.tokens);\n }\n\n return this.tokens;\n }\n /**\n * Lexing\n */\n ;\n\n _proto.blockTokens = function blockTokens(src, tokens) {\n var _this = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n if (this.options.pedantic) {\n src = src.replace(/\\t/g, ' ').replace(/^ +$/gm, '');\n } else {\n src = src.replace(/^( *)(\\t+)/gm, function (_, leading, tabs) {\n return leading + ' '.repeat(tabs.length);\n });\n }\n\n var token, lastToken, cutSrc, lastParagraphClipped;\n\n while (src) {\n if (this.options.extensions && this.options.extensions.block && this.options.extensions.block.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // newline\n\n\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.length === 1 && tokens.length > 0) {\n // if there's a single \\n as a spacer, it's terminating the last line,\n // so move it there so that we don't get unecessary paragraph tags\n tokens[tokens.length - 1].raw += '\\n';\n } else {\n tokens.push(token);\n }\n\n continue;\n } // code\n\n\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1]; // An indented code block cannot interrupt a paragraph.\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // fences\n\n\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // heading\n\n\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // hr\n\n\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // blockquote\n\n\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // list\n\n\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // html\n\n\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // def\n\n\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && (lastToken.type === 'paragraph' || lastToken.type === 'text')) {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.raw;\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n\n continue;\n } // table (gfm)\n\n\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // lheading\n\n\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // top-level paragraph\n // prevent paragraph consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startBlock) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this.options.extensions.startBlock.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n lastToken = tokens[tokens.length - 1];\n\n if (lastParagraphClipped && lastToken.type === 'paragraph') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n } // text\n\n\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += '\\n' + token.raw;\n lastToken.text += '\\n' + token.text;\n this.inlineQueue.pop();\n this.inlineQueue[this.inlineQueue.length - 1].src = lastToken.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n this.state.top = true;\n return tokens;\n };\n\n _proto.inline = function inline(src, tokens) {\n if (tokens === void 0) {\n tokens = [];\n }\n\n this.inlineQueue.push({\n src: src,\n tokens: tokens\n });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n ;\n\n _proto.inlineTokens = function inlineTokens(src, tokens) {\n var _this2 = this;\n\n if (tokens === void 0) {\n tokens = [];\n }\n\n var token, lastToken, cutSrc; // String with links masked to avoid interference with em and strong\n\n var maskedSrc = src;\n var match;\n var keepPrevChar, prevChar; // Mask out reflinks\n\n if (this.tokens.links) {\n var links = Object.keys(this.tokens.links);\n\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf('[') + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n } // Mask out other blocks\n\n\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '[' + repeatString('a', match[0].length - 2) + ']' + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n } // Mask out escaped em & strong delimiters\n\n\n while ((match = this.tokenizer.rules.inline.escapedEmSt.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + '++' + maskedSrc.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);\n }\n\n while (src) {\n if (!keepPrevChar) {\n prevChar = '';\n }\n\n keepPrevChar = false; // extensions\n\n if (this.options.extensions && this.options.extensions.inline && this.options.extensions.inline.some(function (extTokenizer) {\n if (token = extTokenizer.call({\n lexer: _this2\n }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n\n return false;\n })) {\n continue;\n } // escape\n\n\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // tag\n\n\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // link\n\n\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // reflink, nolink\n\n\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && token.type === 'text' && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n } // em & strong\n\n\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // code\n\n\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // br\n\n\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // del (gfm)\n\n\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // autolink\n\n\n if (token = this.tokenizer.autolink(src, mangle)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // url (gfm)\n\n\n if (!this.state.inLink && (token = this.tokenizer.url(src, mangle))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n } // text\n // prevent inlineText consuming extensions by clipping 'src' to extension start\n\n\n cutSrc = src;\n\n if (this.options.extensions && this.options.extensions.startInline) {\n (function () {\n var startIndex = Infinity;\n var tempSrc = src.slice(1);\n var tempStart = void 0;\n\n _this2.options.extensions.startInline.forEach(function (getStartIndex) {\n tempStart = getStartIndex.call({\n lexer: this\n }, tempSrc);\n\n if (typeof tempStart === 'number' && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n })();\n }\n\n if (token = this.tokenizer.inlineText(cutSrc, smartypants)) {\n src = src.substring(token.raw.length);\n\n if (token.raw.slice(-1) !== '_') {\n // Track prevChar before string of ____ started\n prevChar = token.raw.slice(-1);\n }\n\n keepPrevChar = true;\n lastToken = tokens[tokens.length - 1];\n\n if (lastToken && lastToken.type === 'text') {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n\n continue;\n }\n\n if (src) {\n var errMsg = 'Infinite loop on byte: ' + src.charCodeAt(0);\n\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n\n return tokens;\n };\n\n _createClass(Lexer, null, [{\n key: \"rules\",\n get: function get() {\n return {\n block: block,\n inline: inline\n };\n }\n }]);\n\n return Lexer;\n }();\n\n /**\n * Renderer\n */\n\n var Renderer = /*#__PURE__*/function () {\n function Renderer(options) {\n this.options = options || exports.defaults;\n }\n\n var _proto = Renderer.prototype;\n\n _proto.code = function code(_code, infostring, escaped) {\n var lang = (infostring || '').match(/\\S*/)[0];\n\n if (this.options.highlight) {\n var out = this.options.highlight(_code, lang);\n\n if (out != null && out !== _code) {\n escaped = true;\n _code = out;\n }\n }\n\n _code = _code.replace(/\\n$/, '') + '\\n';\n\n if (!lang) {\n return '
    ' + (escaped ? _code : escape(_code, true)) + '
    \\n';\n }\n\n return '
    ' + (escaped ? _code : escape(_code, true)) + '
    \\n';\n }\n /**\n * @param {string} quote\n */\n ;\n\n _proto.blockquote = function blockquote(quote) {\n return \"
    \\n\" + quote + \"
    \\n\";\n };\n\n _proto.html = function html(_html) {\n return _html;\n }\n /**\n * @param {string} text\n * @param {string} level\n * @param {string} raw\n * @param {any} slugger\n */\n ;\n\n _proto.heading = function heading(text, level, raw, slugger) {\n if (this.options.headerIds) {\n var id = this.options.headerPrefix + slugger.slug(raw);\n return \"\" + text + \"\\n\";\n } // ignore IDs\n\n\n return \"\" + text + \"\\n\";\n };\n\n _proto.hr = function hr() {\n return this.options.xhtml ? '
    \\n' : '
    \\n';\n };\n\n _proto.list = function list(body, ordered, start) {\n var type = ordered ? 'ol' : 'ul',\n startatt = ordered && start !== 1 ? ' start=\"' + start + '\"' : '';\n return '<' + type + startatt + '>\\n' + body + '\\n';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.listitem = function listitem(text) {\n return \"
  • \" + text + \"
  • \\n\";\n };\n\n _proto.checkbox = function checkbox(checked) {\n return ' ';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.paragraph = function paragraph(text) {\n return \"

    \" + text + \"

    \\n\";\n }\n /**\n * @param {string} header\n * @param {string} body\n */\n ;\n\n _proto.table = function table(header, body) {\n if (body) body = \"\" + body + \"\";\n return '\\n' + '\\n' + header + '\\n' + body + '
    \\n';\n }\n /**\n * @param {string} content\n */\n ;\n\n _proto.tablerow = function tablerow(content) {\n return \"\\n\" + content + \"\\n\";\n };\n\n _proto.tablecell = function tablecell(content, flags) {\n var type = flags.header ? 'th' : 'td';\n var tag = flags.align ? \"<\" + type + \" align=\\\"\" + flags.align + \"\\\">\" : \"<\" + type + \">\";\n return tag + content + (\"\\n\");\n }\n /**\n * span level renderer\n * @param {string} text\n */\n ;\n\n _proto.strong = function strong(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.em = function em(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.codespan = function codespan(text) {\n return \"\" + text + \"\";\n };\n\n _proto.br = function br() {\n return this.options.xhtml ? '
    ' : '
    ';\n }\n /**\n * @param {string} text\n */\n ;\n\n _proto.del = function del(text) {\n return \"\" + text + \"\";\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n ;\n\n _proto.link = function link(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = '
    ';\n return out;\n }\n /**\n * @param {string} href\n * @param {string} title\n * @param {string} text\n */\n ;\n\n _proto.image = function image(href, title, text) {\n href = cleanUrl(this.options.sanitize, this.options.baseUrl, href);\n\n if (href === null) {\n return text;\n }\n\n var out = \"\\\"\"' : '>';\n return out;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n return Renderer;\n }();\n\n /**\n * TextRenderer\n * returns only the textual part of the token\n */\n var TextRenderer = /*#__PURE__*/function () {\n function TextRenderer() {}\n\n var _proto = TextRenderer.prototype;\n\n // no need for block level renderers\n _proto.strong = function strong(text) {\n return text;\n };\n\n _proto.em = function em(text) {\n return text;\n };\n\n _proto.codespan = function codespan(text) {\n return text;\n };\n\n _proto.del = function del(text) {\n return text;\n };\n\n _proto.html = function html(text) {\n return text;\n };\n\n _proto.text = function text(_text) {\n return _text;\n };\n\n _proto.link = function link(href, title, text) {\n return '' + text;\n };\n\n _proto.image = function image(href, title, text) {\n return '' + text;\n };\n\n _proto.br = function br() {\n return '';\n };\n\n return TextRenderer;\n }();\n\n /**\n * Slugger generates header id\n */\n var Slugger = /*#__PURE__*/function () {\n function Slugger() {\n this.seen = {};\n }\n /**\n * @param {string} value\n */\n\n\n var _proto = Slugger.prototype;\n\n _proto.serialize = function serialize(value) {\n return value.toLowerCase().trim() // remove html tags\n .replace(/<[!\\/a-z].*?>/ig, '') // remove unwanted chars\n .replace(/[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g, '').replace(/\\s/g, '-');\n }\n /**\n * Finds the next safe (unique) slug to use\n * @param {string} originalSlug\n * @param {boolean} isDryRun\n */\n ;\n\n _proto.getNextSafeSlug = function getNextSafeSlug(originalSlug, isDryRun) {\n var slug = originalSlug;\n var occurenceAccumulator = 0;\n\n if (this.seen.hasOwnProperty(slug)) {\n occurenceAccumulator = this.seen[originalSlug];\n\n do {\n occurenceAccumulator++;\n slug = originalSlug + '-' + occurenceAccumulator;\n } while (this.seen.hasOwnProperty(slug));\n }\n\n if (!isDryRun) {\n this.seen[originalSlug] = occurenceAccumulator;\n this.seen[slug] = 0;\n }\n\n return slug;\n }\n /**\n * Convert string to unique id\n * @param {object} [options]\n * @param {boolean} [options.dryrun] Generates the next unique slug without\n * updating the internal accumulator.\n */\n ;\n\n _proto.slug = function slug(value, options) {\n if (options === void 0) {\n options = {};\n }\n\n var slug = this.serialize(value);\n return this.getNextSafeSlug(slug, options.dryrun);\n };\n\n return Slugger;\n }();\n\n /**\n * Parsing & Compiling\n */\n\n var Parser = /*#__PURE__*/function () {\n function Parser(options) {\n this.options = options || exports.defaults;\n this.options.renderer = this.options.renderer || new Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.textRenderer = new TextRenderer();\n this.slugger = new Slugger();\n }\n /**\n * Static Parse Method\n */\n\n\n Parser.parse = function parse(tokens, options) {\n var parser = new Parser(options);\n return parser.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n ;\n\n Parser.parseInline = function parseInline(tokens, options) {\n var parser = new Parser(options);\n return parser.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n ;\n\n var _proto = Parser.prototype;\n\n _proto.parse = function parse(tokens, top) {\n if (top === void 0) {\n top = true;\n }\n\n var out = '',\n i,\n j,\n k,\n l2,\n l3,\n row,\n cell,\n header,\n body,\n token,\n ordered,\n start,\n loose,\n itemBody,\n item,\n checked,\n task,\n checkbox,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['space', 'hr', 'heading', 'code', 'table', 'blockquote', 'list', 'html', 'paragraph', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'space':\n {\n continue;\n }\n\n case 'hr':\n {\n out += this.renderer.hr();\n continue;\n }\n\n case 'heading':\n {\n out += this.renderer.heading(this.parseInline(token.tokens), token.depth, unescape(this.parseInline(token.tokens, this.textRenderer)), this.slugger);\n continue;\n }\n\n case 'code':\n {\n out += this.renderer.code(token.text, token.lang, token.escaped);\n continue;\n }\n\n case 'table':\n {\n header = ''; // header\n\n cell = '';\n l2 = token.header.length;\n\n for (j = 0; j < l2; j++) {\n cell += this.renderer.tablecell(this.parseInline(token.header[j].tokens), {\n header: true,\n align: token.align[j]\n });\n }\n\n header += this.renderer.tablerow(cell);\n body = '';\n l2 = token.rows.length;\n\n for (j = 0; j < l2; j++) {\n row = token.rows[j];\n cell = '';\n l3 = row.length;\n\n for (k = 0; k < l3; k++) {\n cell += this.renderer.tablecell(this.parseInline(row[k].tokens), {\n header: false,\n align: token.align[k]\n });\n }\n\n body += this.renderer.tablerow(cell);\n }\n\n out += this.renderer.table(header, body);\n continue;\n }\n\n case 'blockquote':\n {\n body = this.parse(token.tokens);\n out += this.renderer.blockquote(body);\n continue;\n }\n\n case 'list':\n {\n ordered = token.ordered;\n start = token.start;\n loose = token.loose;\n l2 = token.items.length;\n body = '';\n\n for (j = 0; j < l2; j++) {\n item = token.items[j];\n checked = item.checked;\n task = item.task;\n itemBody = '';\n\n if (item.task) {\n checkbox = this.renderer.checkbox(checked);\n\n if (loose) {\n if (item.tokens.length > 0 && item.tokens[0].type === 'paragraph') {\n item.tokens[0].text = checkbox + ' ' + item.tokens[0].text;\n\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === 'text') {\n item.tokens[0].tokens[0].text = checkbox + ' ' + item.tokens[0].tokens[0].text;\n }\n } else {\n item.tokens.unshift({\n type: 'text',\n text: checkbox\n });\n }\n } else {\n itemBody += checkbox;\n }\n }\n\n itemBody += this.parse(item.tokens, loose);\n body += this.renderer.listitem(itemBody, task, checked);\n }\n\n out += this.renderer.list(body, ordered, start);\n continue;\n }\n\n case 'html':\n {\n // TODO parse inline content if parameter markdown=1\n out += this.renderer.html(token.text);\n continue;\n }\n\n case 'paragraph':\n {\n out += this.renderer.paragraph(this.parseInline(token.tokens));\n continue;\n }\n\n case 'text':\n {\n body = token.tokens ? this.parseInline(token.tokens) : token.text;\n\n while (i + 1 < l && tokens[i + 1].type === 'text') {\n token = tokens[++i];\n body += '\\n' + (token.tokens ? this.parseInline(token.tokens) : token.text);\n }\n\n out += top ? this.renderer.paragraph(body) : body;\n continue;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n ;\n\n _proto.parseInline = function parseInline(tokens, renderer) {\n renderer = renderer || this.renderer;\n var out = '',\n i,\n token,\n ret;\n var l = tokens.length;\n\n for (i = 0; i < l; i++) {\n token = tokens[i]; // Run any renderer extensions\n\n if (this.options.extensions && this.options.extensions.renderers && this.options.extensions.renderers[token.type]) {\n ret = this.options.extensions.renderers[token.type].call({\n parser: this\n }, token);\n\n if (ret !== false || !['escape', 'html', 'link', 'image', 'strong', 'em', 'codespan', 'br', 'del', 'text'].includes(token.type)) {\n out += ret || '';\n continue;\n }\n }\n\n switch (token.type) {\n case 'escape':\n {\n out += renderer.text(token.text);\n break;\n }\n\n case 'html':\n {\n out += renderer.html(token.text);\n break;\n }\n\n case 'link':\n {\n out += renderer.link(token.href, token.title, this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'image':\n {\n out += renderer.image(token.href, token.title, token.text);\n break;\n }\n\n case 'strong':\n {\n out += renderer.strong(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'em':\n {\n out += renderer.em(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'codespan':\n {\n out += renderer.codespan(token.text);\n break;\n }\n\n case 'br':\n {\n out += renderer.br();\n break;\n }\n\n case 'del':\n {\n out += renderer.del(this.parseInline(token.tokens, renderer));\n break;\n }\n\n case 'text':\n {\n out += renderer.text(token.text);\n break;\n }\n\n default:\n {\n var errMsg = 'Token with \"' + token.type + '\" type was not found.';\n\n if (this.options.silent) {\n console.error(errMsg);\n return;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n\n return out;\n };\n\n return Parser;\n }();\n\n /**\n * Marked\n */\n\n function marked(src, opt, callback) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n if (typeof opt === 'function') {\n callback = opt;\n opt = null;\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n if (callback) {\n var highlight = opt.highlight;\n var tokens;\n\n try {\n tokens = Lexer.lex(src, opt);\n } catch (e) {\n return callback(e);\n }\n\n var done = function done(err) {\n var out;\n\n if (!err) {\n try {\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n out = Parser.parse(tokens, opt);\n } catch (e) {\n err = e;\n }\n }\n\n opt.highlight = highlight;\n return err ? callback(err) : callback(null, out);\n };\n\n if (!highlight || highlight.length < 3) {\n return done();\n }\n\n delete opt.highlight;\n if (!tokens.length) return done();\n var pending = 0;\n marked.walkTokens(tokens, function (token) {\n if (token.type === 'code') {\n pending++;\n setTimeout(function () {\n highlight(token.text, token.lang, function (err, code) {\n if (err) {\n return done(err);\n }\n\n if (code != null && code !== token.text) {\n token.text = code;\n token.escaped = true;\n }\n\n pending--;\n\n if (pending === 0) {\n done();\n }\n });\n }, 0);\n }\n });\n\n if (pending === 0) {\n done();\n }\n\n return;\n }\n\n function onError(e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n\n try {\n var _tokens = Lexer.lex(src, opt);\n\n if (opt.walkTokens) {\n if (opt.async) {\n return Promise.all(marked.walkTokens(_tokens, opt.walkTokens)).then(function () {\n return Parser.parse(_tokens, opt);\n })[\"catch\"](onError);\n }\n\n marked.walkTokens(_tokens, opt.walkTokens);\n }\n\n return Parser.parse(_tokens, opt);\n } catch (e) {\n onError(e);\n }\n }\n /**\n * Options\n */\n\n marked.options = marked.setOptions = function (opt) {\n merge(marked.defaults, opt);\n changeDefaults(marked.defaults);\n return marked;\n };\n\n marked.getDefaults = getDefaults;\n marked.defaults = exports.defaults;\n /**\n * Use Extension\n */\n\n marked.use = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var opts = merge.apply(void 0, [{}].concat(args));\n var extensions = marked.defaults.extensions || {\n renderers: {},\n childTokens: {}\n };\n var hasExtensions;\n args.forEach(function (pack) {\n // ==-- Parse \"addon\" extensions --== //\n if (pack.extensions) {\n hasExtensions = true;\n pack.extensions.forEach(function (ext) {\n if (!ext.name) {\n throw new Error('extension name required');\n }\n\n if (ext.renderer) {\n // Renderer extensions\n var prevRenderer = extensions.renderers ? extensions.renderers[ext.name] : null;\n\n if (prevRenderer) {\n // Replace extension with func to run new extension but fall back if false\n extensions.renderers[ext.name] = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var ret = ext.renderer.apply(this, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(this, args);\n }\n\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n\n if (ext.tokenizer) {\n // Tokenizer Extensions\n if (!ext.level || ext.level !== 'block' && ext.level !== 'inline') {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n\n if (extensions[ext.level]) {\n extensions[ext.level].unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n\n if (ext.start) {\n // Function to check for start of token\n if (ext.level === 'block') {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === 'inline') {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n\n if (ext.childTokens) {\n // Child tokens to be visited by walkTokens\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n } // ==-- Parse \"overwrite\" extensions --== //\n\n\n if (pack.renderer) {\n (function () {\n var renderer = marked.defaults.renderer || new Renderer();\n\n var _loop = function _loop(prop) {\n var prevRenderer = renderer[prop]; // Replace renderer with func to run extension, but fall back if false\n\n renderer[prop] = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var ret = pack.renderer[prop].apply(renderer, args);\n\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.renderer) {\n _loop(prop);\n }\n\n opts.renderer = renderer;\n })();\n }\n\n if (pack.tokenizer) {\n (function () {\n var tokenizer = marked.defaults.tokenizer || new Tokenizer();\n\n var _loop2 = function _loop2(prop) {\n var prevTokenizer = tokenizer[prop]; // Replace tokenizer with func to run extension, but fall back if false\n\n tokenizer[prop] = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var ret = pack.tokenizer[prop].apply(tokenizer, args);\n\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args);\n }\n\n return ret;\n };\n };\n\n for (var prop in pack.tokenizer) {\n _loop2(prop);\n }\n\n opts.tokenizer = tokenizer;\n })();\n } // ==-- Parse WalkTokens extensions --== //\n\n\n if (pack.walkTokens) {\n var _walkTokens = marked.defaults.walkTokens;\n\n opts.walkTokens = function (token) {\n var values = [];\n values.push(pack.walkTokens.call(this, token));\n\n if (_walkTokens) {\n values = values.concat(_walkTokens.call(this, token));\n }\n\n return values;\n };\n }\n\n if (hasExtensions) {\n opts.extensions = extensions;\n }\n\n marked.setOptions(opts);\n });\n };\n /**\n * Run callback for every token\n */\n\n\n marked.walkTokens = function (tokens, callback) {\n var values = [];\n\n var _loop3 = function _loop3() {\n var token = _step.value;\n values = values.concat(callback.call(marked, token));\n\n switch (token.type) {\n case 'table':\n {\n for (var _iterator2 = _createForOfIteratorHelperLoose(token.header), _step2; !(_step2 = _iterator2()).done;) {\n var cell = _step2.value;\n values = values.concat(marked.walkTokens(cell.tokens, callback));\n }\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(token.rows), _step3; !(_step3 = _iterator3()).done;) {\n var row = _step3.value;\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(row), _step4; !(_step4 = _iterator4()).done;) {\n var _cell = _step4.value;\n values = values.concat(marked.walkTokens(_cell.tokens, callback));\n }\n }\n\n break;\n }\n\n case 'list':\n {\n values = values.concat(marked.walkTokens(token.items, callback));\n break;\n }\n\n default:\n {\n if (marked.defaults.extensions && marked.defaults.extensions.childTokens && marked.defaults.extensions.childTokens[token.type]) {\n // Walk any extensions\n marked.defaults.extensions.childTokens[token.type].forEach(function (childTokens) {\n values = values.concat(marked.walkTokens(token[childTokens], callback));\n });\n } else if (token.tokens) {\n values = values.concat(marked.walkTokens(token.tokens, callback));\n }\n }\n }\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(tokens), _step; !(_step = _iterator()).done;) {\n _loop3();\n }\n\n return values;\n };\n /**\n * Parse Inline\n * @param {string} src\n */\n\n\n marked.parseInline = function (src, opt) {\n // throw error in case of non string input\n if (typeof src === 'undefined' || src === null) {\n throw new Error('marked.parseInline(): input parameter is undefined or null');\n }\n\n if (typeof src !== 'string') {\n throw new Error('marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(src) + ', string expected');\n }\n\n opt = merge({}, marked.defaults, opt || {});\n checkSanitizeDeprecation(opt);\n\n try {\n var tokens = Lexer.lexInline(src, opt);\n\n if (opt.walkTokens) {\n marked.walkTokens(tokens, opt.walkTokens);\n }\n\n return Parser.parseInline(tokens, opt);\n } catch (e) {\n e.message += '\\nPlease report this to https://github.com/markedjs/marked.';\n\n if (opt.silent) {\n return '

    An error occurred:

    ' + escape(e.message + '', true) + '
    ';\n }\n\n throw e;\n }\n };\n /**\n * Expose\n */\n\n\n marked.Parser = Parser;\n marked.parser = Parser.parse;\n marked.Renderer = Renderer;\n marked.TextRenderer = TextRenderer;\n marked.Lexer = Lexer;\n marked.lexer = Lexer.lex;\n marked.Tokenizer = Tokenizer;\n marked.Slugger = Slugger;\n marked.parse = marked;\n var options = marked.options;\n var setOptions = marked.setOptions;\n var use = marked.use;\n var walkTokens = marked.walkTokens;\n var parseInline = marked.parseInline;\n var parse = marked;\n var parser = Parser.parse;\n var lexer = Lexer.lex;\n\n exports.Lexer = Lexer;\n exports.Parser = Parser;\n exports.Renderer = Renderer;\n exports.Slugger = Slugger;\n exports.TextRenderer = TextRenderer;\n exports.Tokenizer = Tokenizer;\n exports.getDefaults = getDefaults;\n exports.lexer = lexer;\n exports.marked = marked;\n exports.options = options;\n exports.parse = parse;\n exports.parseInline = parseInline;\n exports.parser = parser;\n exports.setOptions = setOptions;\n exports.use = use;\n exports.walkTokens = walkTokens;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n\n// ESM-uncomment-begin\n})();\nexport var Lexer = (__marked_exports.Lexer || exports.Lexer);\nexport var Parser = (__marked_exports.Parser || exports.Parser);\nexport var Renderer = (__marked_exports.Renderer || exports.Renderer);\nexport var Slugger = (__marked_exports.Slugger || exports.Slugger);\nexport var TextRenderer = (__marked_exports.TextRenderer || exports.TextRenderer);\nexport var Tokenizer = (__marked_exports.Tokenizer || exports.Tokenizer);\nexport var getDefaults = (__marked_exports.getDefaults || exports.getDefaults);\nexport var lexer = (__marked_exports.lexer || exports.lexer);\nexport var marked = (__marked_exports.marked || exports.marked);\nexport var options = (__marked_exports.options || exports.options);\nexport var parse = (__marked_exports.parse || exports.parse);\nexport var parseInline = (__marked_exports.parseInline || exports.parseInline);\nexport var parser = (__marked_exports.parser || exports.parser);\nexport var setOptions = (__marked_exports.setOptions || exports.setOptions);\nexport var use = (__marked_exports.use || exports.use);\nexport var walkTokens = (__marked_exports.walkTokens || exports.walkTokens);\n// ESM-uncomment-end\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as DOM from './dom.js';\nimport * as dompurify from './dompurify/dompurify.js';\nimport { DomEmitter } from './event.js';\nimport { createElement } from './formattedTextRenderer.js';\nimport { StandardKeyboardEvent } from './keyboardEvent.js';\nimport { StandardMouseEvent } from './mouseEvent.js';\nimport { renderLabelWithIcons } from './ui/iconLabel/iconLabels.js';\nimport { onUnexpectedError } from '../common/errors.js';\nimport { Event } from '../common/event.js';\nimport { escapeDoubleQuotes, parseHrefAndDimensions, removeMarkdownEscapes } from '../common/htmlContent.js';\nimport { markdownEscapeEscapedIcons } from '../common/iconLabels.js';\nimport { defaultGenerator } from '../common/idGenerator.js';\nimport { Lazy } from '../common/lazy.js';\nimport { DisposableStore, toDisposable } from '../common/lifecycle.js';\nimport { marked } from '../common/marked/marked.js';\nimport { parse } from '../common/marshalling.js';\nimport { FileAccess, Schemas } from '../common/network.js';\nimport { cloneAndChange } from '../common/objects.js';\nimport { dirname, resolvePath } from '../common/resources.js';\nimport { escape } from '../common/strings.js';\nimport { URI } from '../common/uri.js';\nconst defaultMarkedRenderers = Object.freeze({\n image: (href, title, text) => {\n let dimensions = [];\n let attributes = [];\n if (href) {\n ({ href, dimensions } = parseHrefAndDimensions(href));\n attributes.push(`src=\"${escapeDoubleQuotes(href)}\"`);\n }\n if (text) {\n attributes.push(`alt=\"${escapeDoubleQuotes(text)}\"`);\n }\n if (title) {\n attributes.push(`title=\"${escapeDoubleQuotes(title)}\"`);\n }\n if (dimensions.length) {\n attributes = attributes.concat(dimensions);\n }\n return '';\n },\n paragraph: (text) => {\n return `

    ${text}

    `;\n },\n link: (href, title, text) => {\n if (typeof href !== 'string') {\n return '';\n }\n // Remove markdown escapes. Workaround for https://github.com/chjj/marked/issues/829\n if (href === text) { // raw link case\n text = removeMarkdownEscapes(text);\n }\n title = typeof title === 'string' ? escapeDoubleQuotes(removeMarkdownEscapes(title)) : '';\n href = removeMarkdownEscapes(href);\n // HTML Encode href\n href = href.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n return `
    ${text}`;\n },\n});\n/**\n * Low-level way create a html element from a markdown string.\n *\n * **Note** that for most cases you should be using [`MarkdownRenderer`](./src/vs/editor/contrib/markdownRenderer/browser/markdownRenderer.ts)\n * which comes with support for pretty code block rendering and which uses the default way of handling links.\n */\nexport function renderMarkdown(markdown, options = {}, markedOptions = {}) {\n var _a, _b;\n const disposables = new DisposableStore();\n let isDisposed = false;\n const element = createElement(options);\n const _uriMassage = function (part) {\n let data;\n try {\n data = parse(decodeURIComponent(part));\n }\n catch (e) {\n // ignore\n }\n if (!data) {\n return part;\n }\n data = cloneAndChange(data, value => {\n if (markdown.uris && markdown.uris[value]) {\n return URI.revive(markdown.uris[value]);\n }\n else {\n return undefined;\n }\n });\n return encodeURIComponent(JSON.stringify(data));\n };\n const _href = function (href, isDomUri) {\n const data = markdown.uris && markdown.uris[href];\n let uri = URI.revive(data);\n if (isDomUri) {\n if (href.startsWith(Schemas.data + ':')) {\n return href;\n }\n if (!uri) {\n uri = URI.parse(href);\n }\n // this URI will end up as \"src\"-attribute of a dom node\n // and because of that special rewriting needs to be done\n // so that the URI uses a protocol that's understood by\n // browsers (like http or https)\n return FileAccess.uriToBrowserUri(uri).toString(true);\n }\n if (!uri) {\n return href;\n }\n if (URI.parse(href).toString() === uri.toString()) {\n return href; // no transformation performed\n }\n if (uri.query) {\n uri = uri.with({ query: _uriMassage(uri.query) });\n }\n return uri.toString();\n };\n const renderer = new marked.Renderer();\n renderer.image = defaultMarkedRenderers.image;\n renderer.link = defaultMarkedRenderers.link;\n renderer.paragraph = defaultMarkedRenderers.paragraph;\n // Will collect [id, renderedElement] tuples\n const codeBlocks = [];\n const syncCodeBlocks = [];\n if (options.codeBlockRendererSync) {\n renderer.code = (code, lang) => {\n const id = defaultGenerator.nextId();\n const value = options.codeBlockRendererSync(postProcessCodeBlockLanguageId(lang), code);\n syncCodeBlocks.push([id, value]);\n return `
    ${escape(code)}
    `;\n };\n }\n else if (options.codeBlockRenderer) {\n renderer.code = (code, lang) => {\n const id = defaultGenerator.nextId();\n const value = options.codeBlockRenderer(postProcessCodeBlockLanguageId(lang), code);\n codeBlocks.push(value.then(element => [id, element]));\n return `
    ${escape(code)}
    `;\n };\n }\n if (options.actionHandler) {\n const _activateLink = function (event) {\n let target = event.target;\n if (target.tagName !== 'A') {\n target = target.parentElement;\n if (!target || target.tagName !== 'A') {\n return;\n }\n }\n try {\n let href = target.dataset['href'];\n if (href) {\n if (markdown.baseUri) {\n href = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n }\n options.actionHandler.callback(href, event);\n }\n }\n catch (err) {\n onUnexpectedError(err);\n }\n finally {\n event.preventDefault();\n }\n };\n const onClick = options.actionHandler.disposables.add(new DomEmitter(element, 'click'));\n const onAuxClick = options.actionHandler.disposables.add(new DomEmitter(element, 'auxclick'));\n options.actionHandler.disposables.add(Event.any(onClick.event, onAuxClick.event)(e => {\n const mouseEvent = new StandardMouseEvent(DOM.getWindow(element), e);\n if (!mouseEvent.leftButton && !mouseEvent.middleButton) {\n return;\n }\n _activateLink(mouseEvent);\n }));\n options.actionHandler.disposables.add(DOM.addDisposableListener(element, 'keydown', (e) => {\n const keyboardEvent = new StandardKeyboardEvent(e);\n if (!keyboardEvent.equals(10 /* KeyCode.Space */) && !keyboardEvent.equals(3 /* KeyCode.Enter */)) {\n return;\n }\n _activateLink(keyboardEvent);\n }));\n }\n if (!markdown.supportHtml) {\n // TODO: Can we deprecated this in favor of 'supportHtml'?\n // Use our own sanitizer so that we can let through only spans.\n // Otherwise, we'd be letting all html be rendered.\n // If we want to allow markdown permitted tags, then we can delete sanitizer and sanitize.\n // We always pass the output through dompurify after this so that we don't rely on\n // marked for sanitization.\n markedOptions.sanitizer = (html) => {\n var _a;\n if ((_a = options.sanitizerOptions) === null || _a === void 0 ? void 0 : _a.replaceWithPlaintext) {\n return escape(html);\n }\n const match = markdown.isTrusted ? html.match(/^(]+>)|(<\\/\\s*span>)$/) : undefined;\n return match ? html : '';\n };\n markedOptions.sanitize = true;\n markedOptions.silent = true;\n }\n markedOptions.renderer = renderer;\n // values that are too long will freeze the UI\n let value = (_a = markdown.value) !== null && _a !== void 0 ? _a : '';\n if (value.length > 100000) {\n value = `${value.substr(0, 100000)}…`;\n }\n // escape theme icons\n if (markdown.supportThemeIcons) {\n value = markdownEscapeEscapedIcons(value);\n }\n let renderedMarkdown;\n if (options.fillInIncompleteTokens) {\n // The defaults are applied by parse but not lexer()/parser(), and they need to be present\n const opts = {\n ...marked.defaults,\n ...markedOptions\n };\n const tokens = marked.lexer(value, opts);\n const newTokens = fillInIncompleteTokens(tokens);\n renderedMarkdown = marked.parser(newTokens, opts);\n }\n else {\n renderedMarkdown = marked.parse(value, markedOptions);\n }\n // Rewrite theme icons\n if (markdown.supportThemeIcons) {\n const elements = renderLabelWithIcons(renderedMarkdown);\n renderedMarkdown = elements.map(e => typeof e === 'string' ? e : e.outerHTML).join('');\n }\n const htmlParser = new DOMParser();\n const markdownHtmlDoc = htmlParser.parseFromString(sanitizeRenderedMarkdown({ isTrusted: markdown.isTrusted, ...options.sanitizerOptions }, renderedMarkdown), 'text/html');\n markdownHtmlDoc.body.querySelectorAll('img, audio, video, source')\n .forEach(img => {\n const src = img.getAttribute('src'); // Get the raw 'src' attribute value as text, not the resolved 'src'\n if (src) {\n let href = src;\n try {\n if (markdown.baseUri) { // absolute or relative local path, or file: uri\n href = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n }\n }\n catch (err) { }\n img.setAttribute('src', _href(href, true));\n if (options.remoteImageIsAllowed) {\n const uri = URI.parse(href);\n if (uri.scheme !== Schemas.file && uri.scheme !== Schemas.data && !options.remoteImageIsAllowed(uri)) {\n img.replaceWith(DOM.$('', undefined, img.outerHTML));\n }\n }\n }\n });\n markdownHtmlDoc.body.querySelectorAll('a')\n .forEach(a => {\n const href = a.getAttribute('href'); // Get the raw 'href' attribute value as text, not the resolved 'href'\n a.setAttribute('href', ''); // Clear out href. We use the `data-href` for handling clicks instead\n if (!href\n || /^data:|javascript:/i.test(href)\n || (/^command:/i.test(href) && !markdown.isTrusted)\n || /^command:(\\/\\/\\/)?_workbench\\.downloadResource/i.test(href)) {\n // drop the link\n a.replaceWith(...a.childNodes);\n }\n else {\n let resolvedHref = _href(href, false);\n if (markdown.baseUri) {\n resolvedHref = resolveWithBaseUri(URI.from(markdown.baseUri), href);\n }\n a.dataset.href = resolvedHref;\n }\n });\n element.innerHTML = sanitizeRenderedMarkdown({ isTrusted: markdown.isTrusted, ...options.sanitizerOptions }, markdownHtmlDoc.body.innerHTML);\n if (codeBlocks.length > 0) {\n Promise.all(codeBlocks).then((tuples) => {\n var _a, _b;\n if (isDisposed) {\n return;\n }\n const renderedElements = new Map(tuples);\n const placeholderElements = element.querySelectorAll(`div[data-code]`);\n for (const placeholderElement of placeholderElements) {\n const renderedElement = renderedElements.get((_a = placeholderElement.dataset['code']) !== null && _a !== void 0 ? _a : '');\n if (renderedElement) {\n DOM.reset(placeholderElement, renderedElement);\n }\n }\n (_b = options.asyncRenderCallback) === null || _b === void 0 ? void 0 : _b.call(options);\n });\n }\n else if (syncCodeBlocks.length > 0) {\n const renderedElements = new Map(syncCodeBlocks);\n const placeholderElements = element.querySelectorAll(`div[data-code]`);\n for (const placeholderElement of placeholderElements) {\n const renderedElement = renderedElements.get((_b = placeholderElement.dataset['code']) !== null && _b !== void 0 ? _b : '');\n if (renderedElement) {\n DOM.reset(placeholderElement, renderedElement);\n }\n }\n }\n // signal size changes for image tags\n if (options.asyncRenderCallback) {\n for (const img of element.getElementsByTagName('img')) {\n const listener = disposables.add(DOM.addDisposableListener(img, 'load', () => {\n listener.dispose();\n options.asyncRenderCallback();\n }));\n }\n }\n return {\n element,\n dispose: () => {\n isDisposed = true;\n disposables.dispose();\n }\n };\n}\nfunction postProcessCodeBlockLanguageId(lang) {\n if (!lang) {\n return '';\n }\n const parts = lang.split(/[\\s+|:|,|\\{|\\?]/, 1);\n if (parts.length) {\n return parts[0];\n }\n return lang;\n}\nfunction resolveWithBaseUri(baseUri, href) {\n const hasScheme = /^\\w[\\w\\d+.-]*:/.test(href);\n if (hasScheme) {\n return href;\n }\n if (baseUri.path.endsWith('/')) {\n return resolvePath(baseUri, href).toString();\n }\n else {\n return resolvePath(dirname(baseUri), href).toString();\n }\n}\nconst selfClosingTags = ['area', 'base', 'br', 'col', 'command', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'];\nfunction sanitizeRenderedMarkdown(options, renderedMarkdown) {\n const { config, allowedSchemes } = getSanitizerOptions(options);\n const store = new DisposableStore();\n store.add(addDompurifyHook('uponSanitizeAttribute', (element, e) => {\n var _a;\n if (e.attrName === 'style' || e.attrName === 'class') {\n if (element.tagName === 'SPAN') {\n if (e.attrName === 'style') {\n e.keepAttr = /^(color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?(background-color\\:(#[0-9a-fA-F]+|var\\(--vscode(-[a-zA-Z]+)+\\));)?$/.test(e.attrValue);\n return;\n }\n else if (e.attrName === 'class') {\n e.keepAttr = /^codicon codicon-[a-z\\-]+( codicon-modifier-[a-z\\-]+)?$/.test(e.attrValue);\n return;\n }\n }\n e.keepAttr = false;\n return;\n }\n else if (element.tagName === 'INPUT' && ((_a = element.attributes.getNamedItem('type')) === null || _a === void 0 ? void 0 : _a.value) === 'checkbox') {\n if ((e.attrName === 'type' && e.attrValue === 'checkbox') || e.attrName === 'disabled' || e.attrName === 'checked') {\n e.keepAttr = true;\n return;\n }\n e.keepAttr = false;\n }\n }));\n store.add(addDompurifyHook('uponSanitizeElement', (element, e) => {\n var _a, _b;\n if (e.tagName === 'input') {\n if (((_a = element.attributes.getNamedItem('type')) === null || _a === void 0 ? void 0 : _a.value) === 'checkbox') {\n element.setAttribute('disabled', '');\n }\n else if (!options.replaceWithPlaintext) {\n (_b = element.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(element);\n }\n }\n if (options.replaceWithPlaintext && !e.allowedTags[e.tagName] && e.tagName !== 'body') {\n if (element.parentElement) {\n let startTagText;\n let endTagText;\n if (e.tagName === '#comment') {\n startTagText = ``;\n }\n else {\n const isSelfClosing = selfClosingTags.includes(e.tagName);\n const attrString = element.attributes.length ?\n ' ' + Array.from(element.attributes)\n .map(attr => `${attr.name}=\"${attr.value}\"`)\n .join(' ')\n : '';\n startTagText = `<${e.tagName}${attrString}>`;\n if (!isSelfClosing) {\n endTagText = ``;\n }\n }\n const fragment = document.createDocumentFragment();\n const textNode = element.parentElement.ownerDocument.createTextNode(startTagText);\n fragment.appendChild(textNode);\n const endTagTextNode = endTagText ? element.parentElement.ownerDocument.createTextNode(endTagText) : undefined;\n while (element.firstChild) {\n fragment.appendChild(element.firstChild);\n }\n if (endTagTextNode) {\n fragment.appendChild(endTagTextNode);\n }\n element.parentElement.replaceChild(fragment, element);\n }\n }\n }));\n store.add(DOM.hookDomPurifyHrefAndSrcSanitizer(allowedSchemes));\n try {\n return dompurify.sanitize(renderedMarkdown, { ...config, RETURN_TRUSTED_TYPE: true });\n }\n finally {\n store.dispose();\n }\n}\nexport const allowedMarkdownAttr = [\n 'align',\n 'autoplay',\n 'alt',\n 'checked',\n 'class',\n 'controls',\n 'data-code',\n 'data-href',\n 'disabled',\n 'draggable',\n 'height',\n 'href',\n 'loop',\n 'muted',\n 'playsinline',\n 'poster',\n 'src',\n 'style',\n 'target',\n 'title',\n 'type',\n 'width',\n 'start',\n];\nfunction getSanitizerOptions(options) {\n var _a;\n const allowedSchemes = [\n Schemas.http,\n Schemas.https,\n Schemas.mailto,\n Schemas.data,\n Schemas.file,\n Schemas.vscodeFileResource,\n Schemas.vscodeRemote,\n Schemas.vscodeRemoteResource,\n ];\n if (options.isTrusted) {\n allowedSchemes.push(Schemas.command);\n }\n return {\n config: {\n // allowedTags should included everything that markdown renders to.\n // Since we have our own sanitize function for marked, it's possible we missed some tag so let dompurify make sure.\n // HTML tags that can result from markdown are from reading https://spec.commonmark.org/0.29/\n // HTML table tags that can result from markdown are from https://github.github.com/gfm/#tables-extension-\n ALLOWED_TAGS: (_a = options.allowedTags) !== null && _a !== void 0 ? _a : [...DOM.basicMarkupHtmlTags],\n ALLOWED_ATTR: allowedMarkdownAttr,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n },\n allowedSchemes\n };\n}\n/**\n * Strips all markdown from `string`, if it's an IMarkdownString. For example\n * `# Header` would be output as `Header`. If it's not, the string is returned.\n */\nexport function renderStringAsPlaintext(string) {\n return typeof string === 'string' ? string : renderMarkdownAsPlaintext(string);\n}\n/**\n * Strips all markdown from `markdown`. For example `# Header` would be output as `Header`.\n * provide @param withCodeBlocks to retain code blocks\n */\nexport function renderMarkdownAsPlaintext(markdown, withCodeBlocks) {\n var _a;\n // values that are too long will freeze the UI\n let value = (_a = markdown.value) !== null && _a !== void 0 ? _a : '';\n if (value.length > 100000) {\n value = `${value.substr(0, 100000)}…`;\n }\n const html = marked.parse(value, { renderer: withCodeBlocks ? plainTextWithCodeBlocksRenderer.value : plainTextRenderer.value }).replace(/&(#\\d+|[a-zA-Z]+);/g, m => { var _a; return (_a = unescapeInfo.get(m)) !== null && _a !== void 0 ? _a : m; });\n return sanitizeRenderedMarkdown({ isTrusted: false }, html).toString();\n}\nconst unescapeInfo = new Map([\n ['"', '\"'],\n [' ', ' '],\n ['&', '&'],\n [''', '\\''],\n ['<', '<'],\n ['>', '>'],\n]);\nfunction createRenderer() {\n const renderer = new marked.Renderer();\n renderer.code = (code) => {\n return code;\n };\n renderer.blockquote = (quote) => {\n return quote;\n };\n renderer.html = (_html) => {\n return '';\n };\n renderer.heading = (text, _level, _raw) => {\n return text + '\\n';\n };\n renderer.hr = () => {\n return '';\n };\n renderer.list = (body, _ordered) => {\n return body;\n };\n renderer.listitem = (text) => {\n return text + '\\n';\n };\n renderer.paragraph = (text) => {\n return text + '\\n';\n };\n renderer.table = (header, body) => {\n return header + body + '\\n';\n };\n renderer.tablerow = (content) => {\n return content;\n };\n renderer.tablecell = (content, _flags) => {\n return content + ' ';\n };\n renderer.strong = (text) => {\n return text;\n };\n renderer.em = (text) => {\n return text;\n };\n renderer.codespan = (code) => {\n return code;\n };\n renderer.br = () => {\n return '\\n';\n };\n renderer.del = (text) => {\n return text;\n };\n renderer.image = (_href, _title, _text) => {\n return '';\n };\n renderer.text = (text) => {\n return text;\n };\n renderer.link = (_href, _title, text) => {\n return text;\n };\n return renderer;\n}\nconst plainTextRenderer = new Lazy((withCodeBlocks) => createRenderer());\nconst plainTextWithCodeBlocksRenderer = new Lazy(() => {\n const renderer = createRenderer();\n renderer.code = (code) => {\n return '\\n' + '```' + code + '```' + '\\n';\n };\n return renderer;\n});\nfunction mergeRawTokenText(tokens) {\n let mergedTokenText = '';\n tokens.forEach(token => {\n mergedTokenText += token.raw;\n });\n return mergedTokenText;\n}\nfunction completeSingleLinePattern(token) {\n var _a, _b;\n if (!token.tokens) {\n return undefined;\n }\n for (let i = token.tokens.length - 1; i >= 0; i--) {\n const subtoken = token.tokens[i];\n if (subtoken.type === 'text') {\n const lines = subtoken.raw.split('\\n');\n const lastLine = lines[lines.length - 1];\n if (lastLine.includes('`')) {\n return completeCodespan(token);\n }\n else if (lastLine.includes('**')) {\n return completeDoublestar(token);\n }\n else if (lastLine.match(/\\*\\w/)) {\n return completeStar(token);\n }\n else if (lastLine.match(/(^|\\s)__\\w/)) {\n return completeDoubleUnderscore(token);\n }\n else if (lastLine.match(/(^|\\s)_\\w/)) {\n return completeUnderscore(token);\n }\n else if (\n // Text with start of link target\n hasLinkTextAndStartOfLinkTarget(lastLine) ||\n // This token doesn't have the link text, eg if it contains other markdown constructs that are in other subtokens.\n // But some preceding token does have an unbalanced [ at least\n hasStartOfLinkTargetAndNoLinkText(lastLine) && token.tokens.slice(0, i).some(t => t.type === 'text' && t.raw.match(/\\[[^\\]]*$/))) {\n const nextTwoSubTokens = token.tokens.slice(i + 1);\n // A markdown link can look like\n // [link text](https://microsoft.com \"more text\")\n // Where \"more text\" is a title for the link or an argument to a vscode command link\n if (\n // If the link was parsed as a link, then look for a link token and a text token with a quote\n ((_a = nextTwoSubTokens[0]) === null || _a === void 0 ? void 0 : _a.type) === 'link' && ((_b = nextTwoSubTokens[1]) === null || _b === void 0 ? void 0 : _b.type) === 'text' && nextTwoSubTokens[1].raw.match(/^ *\"[^\"]*$/) ||\n // And if the link was not parsed as a link (eg command link), just look for a single quote in this token\n lastLine.match(/^[^\"]* +\"[^\"]*$/)) {\n return completeLinkTargetArg(token);\n }\n return completeLinkTarget(token);\n }\n // Contains the start of link text, and no following tokens contain the link target\n else if (lastLine.match(/(^|\\s)\\[\\w*/)) {\n return completeLinkText(token);\n }\n }\n }\n return undefined;\n}\nfunction hasLinkTextAndStartOfLinkTarget(str) {\n return !!str.match(/(^|\\s)\\[.*\\]\\(\\w*/);\n}\nfunction hasStartOfLinkTargetAndNoLinkText(str) {\n return !!str.match(/^[^\\[]*\\]\\([^\\)]*$/);\n}\nfunction completeListItemPattern(list) {\n var _a;\n // Patch up this one list item\n const lastListItem = list.items[list.items.length - 1];\n const lastListSubToken = lastListItem.tokens ? lastListItem.tokens[lastListItem.tokens.length - 1] : undefined;\n /*\n Example list token structures:\n\n list\n list_item\n text\n text\n codespan\n link\n list_item\n text\n code // Complete indented codeblock\n list_item\n text\n space\n text\n text // Incomplete indented codeblock\n list_item\n text\n list // Nested list\n list_item\n text\n text\n\n Contrast with paragraph:\n paragraph\n text\n codespan\n */\n let newToken;\n if ((lastListSubToken === null || lastListSubToken === void 0 ? void 0 : lastListSubToken.type) === 'text' && !('inRawBlock' in lastListItem)) { // Why does Tag have a type of 'text'\n newToken = completeSingleLinePattern(lastListSubToken);\n }\n if (!newToken || newToken.type !== 'paragraph') { // 'text' item inside the list item turns into paragraph\n // Nothing to fix, or not a pattern we were expecting\n return;\n }\n const previousListItemsText = mergeRawTokenText(list.items.slice(0, -1));\n // Grabbing the `- ` or `1. ` off the list item because I can't find a better way to do this\n const lastListItemLead = (_a = lastListItem.raw.match(/^(\\s*(-|\\d+\\.) +)/)) === null || _a === void 0 ? void 0 : _a[0];\n if (!lastListItemLead) {\n // Is badly formatted\n return;\n }\n const newListItemText = lastListItemLead +\n mergeRawTokenText(lastListItem.tokens.slice(0, -1)) +\n newToken.raw;\n const newList = marked.lexer(previousListItemsText + newListItemText)[0];\n if (newList.type !== 'list') {\n // Something went wrong\n return;\n }\n return newList;\n}\nconst maxIncompleteTokensFixRounds = 3;\nexport function fillInIncompleteTokens(tokens) {\n for (let i = 0; i < maxIncompleteTokensFixRounds; i++) {\n const newTokens = fillInIncompleteTokensOnce(tokens);\n if (newTokens) {\n tokens = newTokens;\n }\n else {\n break;\n }\n }\n return tokens;\n}\nfunction fillInIncompleteTokensOnce(tokens) {\n let i;\n let newTokens;\n for (i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n let codeblockStart;\n if (token.type === 'paragraph' && (codeblockStart = token.raw.match(/(\\n|^)(````*)/))) {\n const codeblockLead = codeblockStart[2];\n // If the code block was complete, it would be in a type='code'\n newTokens = completeCodeBlock(tokens.slice(i), codeblockLead);\n break;\n }\n if (token.type === 'paragraph' && token.raw.match(/(\\n|^)\\|/)) {\n newTokens = completeTable(tokens.slice(i));\n break;\n }\n if (i === tokens.length - 1 && token.type === 'list') {\n const newListToken = completeListItemPattern(token);\n if (newListToken) {\n newTokens = [newListToken];\n break;\n }\n }\n if (i === tokens.length - 1 && token.type === 'paragraph') {\n // Only operates on a single token, because any newline that follows this should break these patterns\n const newToken = completeSingleLinePattern(token);\n if (newToken) {\n newTokens = [newToken];\n break;\n }\n }\n }\n if (newTokens) {\n const newTokensList = [\n ...tokens.slice(0, i),\n ...newTokens\n ];\n newTokensList.links = tokens.links;\n return newTokensList;\n }\n return null;\n}\nfunction completeCodeBlock(tokens, leader) {\n const mergedRawText = mergeRawTokenText(tokens);\n return marked.lexer(mergedRawText + `\\n${leader}`);\n}\nfunction completeCodespan(token) {\n return completeWithString(token, '`');\n}\nfunction completeStar(tokens) {\n return completeWithString(tokens, '*');\n}\nfunction completeUnderscore(tokens) {\n return completeWithString(tokens, '_');\n}\nfunction completeLinkTarget(tokens) {\n return completeWithString(tokens, ')');\n}\nfunction completeLinkTargetArg(tokens) {\n return completeWithString(tokens, '\")');\n}\nfunction completeLinkText(tokens) {\n return completeWithString(tokens, '](https://microsoft.com)');\n}\nfunction completeDoublestar(tokens) {\n return completeWithString(tokens, '**');\n}\nfunction completeDoubleUnderscore(tokens) {\n return completeWithString(tokens, '__');\n}\nfunction completeWithString(tokens, closingString) {\n const mergedRawText = mergeRawTokenText(Array.isArray(tokens) ? tokens : [tokens]);\n // If it was completed correctly, this should be a single token.\n // Expecting either a Paragraph or a List\n return marked.lexer(mergedRawText + closingString)[0];\n}\nfunction completeTable(tokens) {\n const mergedRawText = mergeRawTokenText(tokens);\n const lines = mergedRawText.split('\\n');\n let numCols; // The number of line1 col headers\n let hasSeparatorRow = false;\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i].trim();\n if (typeof numCols === 'undefined' && line.match(/^\\s*\\|/)) {\n const line1Matches = line.match(/(\\|[^\\|]+)(?=\\||$)/g);\n if (line1Matches) {\n numCols = line1Matches.length;\n }\n }\n else if (typeof numCols === 'number') {\n if (line.match(/^\\s*\\|/)) {\n if (i !== lines.length - 1) {\n // We got the line1 header row, and the line2 separator row, but there are more lines, and it wasn't parsed as a table!\n // That's strange and means that the table is probably malformed in the source, so I won't try to patch it up.\n return undefined;\n }\n // Got a line2 separator row- partial or complete, doesn't matter, we'll replace it with a correct one\n hasSeparatorRow = true;\n }\n else {\n // The line after the header row isn't a valid separator row, so the table is malformed, don't fix it up\n return undefined;\n }\n }\n }\n if (typeof numCols === 'number' && numCols > 0) {\n const prefixText = hasSeparatorRow ? lines.slice(0, -1).join('\\n') : mergedRawText;\n const line1EndsInPipe = !!prefixText.match(/\\|\\s*$/);\n const newRawText = prefixText + (line1EndsInPipe ? '' : '|') + `\\n|${' --- |'.repeat(numCols)}`;\n return marked.lexer(newRawText);\n }\n return undefined;\n}\nfunction addDompurifyHook(hook, cb) {\n dompurify.addHook(hook, cb);\n return toDisposable(() => dompurify.removeHook(hook));\n}\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nimport { StableEditorScrollState } from '../../../browser/stableEditorScroll.js';\nexport class FormattingEdit {\n static _handleEolEdits(editor, edits) {\n let newEol = undefined;\n const singleEdits = [];\n for (const edit of edits) {\n if (typeof edit.eol === 'number') {\n newEol = edit.eol;\n }\n if (edit.range && typeof edit.text === 'string') {\n singleEdits.push(edit);\n }\n }\n if (typeof newEol === 'number') {\n if (editor.hasModel()) {\n editor.getModel().pushEOL(newEol);\n }\n }\n return singleEdits;\n }\n static _isFullModelReplaceEdit(editor, edit) {\n if (!editor.hasModel()) {\n return false;\n }\n const model = editor.getModel();\n const editRange = model.validateRange(edit.range);\n const fullModelRange = model.getFullModelRange();\n return fullModelRange.equalsRange(editRange);\n }\n static execute(editor, _edits, addUndoStops) {\n if (addUndoStops) {\n editor.pushUndoStop();\n }\n const scrollState = StableEditorScrollState.capture(editor);\n const edits = FormattingEdit._handleEolEdits(editor, _edits);\n if (edits.length === 1 && FormattingEdit._isFullModelReplaceEdit(editor, edits[0])) {\n // We use replace semantics and hope that markers stay put...\n editor.executeEdits('formatEditsCommand', edits.map(edit => EditOperation.replace(Range.lift(edit.range), edit.text)));\n }\n else {\n editor.executeEdits('formatEditsCommand', edits.map(edit => EditOperation.replaceMove(Range.lift(edit.range), edit.text)));\n }\n if (addUndoStops) {\n editor.pushUndoStop();\n }\n scrollState.restoreRelativeVerticalPositionOfCursor(editor);\n }\n}\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorZoom } from '../../../common/config/editorZoom.js';\nimport * as nls from '../../../../nls.js';\nclass EditorFontZoomIn extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomIn',\n label: nls.localize('EditorFontZoomIn.label', \"Increase Editor Font Size\"),\n alias: 'Increase Editor Font Size',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() + 1);\n }\n}\nclass EditorFontZoomOut extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomOut',\n label: nls.localize('EditorFontZoomOut.label', \"Decrease Editor Font Size\"),\n alias: 'Decrease Editor Font Size',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(EditorZoom.getZoomLevel() - 1);\n }\n}\nclass EditorFontZoomReset extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.fontZoomReset',\n label: nls.localize('EditorFontZoomReset.label', \"Reset Editor Font Size\"),\n alias: 'Reset Editor Font Size',\n precondition: undefined\n });\n }\n run(accessor, editor) {\n EditorZoom.setZoomLevel(0);\n }\n}\nregisterEditorAction(EditorFontZoomIn);\nregisterEditorAction(EditorFontZoomOut);\nregisterEditorAction(EditorFontZoomReset);\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { mainWindow } from './window.js';\nclass WindowManager {\n constructor() {\n // --- Zoom Factor\n this.mapWindowIdToZoomFactor = new Map();\n }\n getZoomFactor(targetWindow) {\n var _a;\n return (_a = this.mapWindowIdToZoomFactor.get(this.getWindowId(targetWindow))) !== null && _a !== void 0 ? _a : 1;\n }\n getWindowId(targetWindow) {\n return targetWindow.vscodeWindowId;\n }\n}\nWindowManager.INSTANCE = new WindowManager();\nexport function addMatchMediaChangeListener(targetWindow, query, callback) {\n if (typeof query === 'string') {\n query = targetWindow.matchMedia(query);\n }\n query.addEventListener('change', callback);\n}\n/** The zoom scale for an index, e.g. 1, 1.2, 1.4 */\nexport function getZoomFactor(targetWindow) {\n return WindowManager.INSTANCE.getZoomFactor(targetWindow);\n}\nconst userAgent = navigator.userAgent;\nexport const isFirefox = (userAgent.indexOf('Firefox') >= 0);\nexport const isWebKit = (userAgent.indexOf('AppleWebKit') >= 0);\nexport const isChrome = (userAgent.indexOf('Chrome') >= 0);\nexport const isSafari = (!isChrome && (userAgent.indexOf('Safari') >= 0));\nexport const isWebkitWebView = (!isChrome && !isSafari && isWebKit);\nexport const isElectron = (userAgent.indexOf('Electron/') >= 0);\nexport const isAndroid = (userAgent.indexOf('Android') >= 0);\nlet standalone = false;\nif (typeof mainWindow.matchMedia === 'function') {\n const standaloneMatchMedia = mainWindow.matchMedia('(display-mode: standalone) or (display-mode: window-controls-overlay)');\n const fullScreenMatchMedia = mainWindow.matchMedia('(display-mode: fullscreen)');\n standalone = standaloneMatchMedia.matches;\n addMatchMediaChangeListener(mainWindow, standaloneMatchMedia, ({ matches }) => {\n // entering fullscreen would change standaloneMatchMedia.matches to false\n // if standalone is true (running as PWA) and entering fullscreen, skip this change\n if (standalone && fullScreenMatchMedia.matches) {\n return;\n }\n // otherwise update standalone (browser to PWA or PWA to browser)\n standalone = matches;\n });\n}\nexport function isStandalone() {\n return standalone;\n}\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nclass LongLinesHelper extends Disposable {\n constructor(_editor) {\n super();\n this._editor = _editor;\n this._register(this._editor.onMouseDown((e) => {\n const stopRenderingLineAfter = this._editor.getOption(117 /* EditorOption.stopRenderingLineAfter */);\n if (stopRenderingLineAfter >= 0 && e.target.type === 6 /* MouseTargetType.CONTENT_TEXT */ && e.target.position.column >= stopRenderingLineAfter) {\n this._editor.updateOptions({\n stopRenderingLineAfter: -1\n });\n }\n }));\n }\n}\nLongLinesHelper.ID = 'editor.contrib.longLinesHelper';\nregisterEditorContribution(LongLinesHelper.ID, LongLinesHelper, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const IKeybindingService = createDecorator('keybindingService');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst ops = codegen_1.operators;\nconst KWDs = {\n maximum: { okStr: \"<=\", ok: ops.LTE, fail: ops.GT },\n minimum: { okStr: \">=\", ok: ops.GTE, fail: ops.LT },\n exclusiveMaximum: { okStr: \"<\", ok: ops.LT, fail: ops.GTE },\n exclusiveMinimum: { okStr: \">\", ok: ops.GT, fail: ops.LTE },\n};\nconst error = {\n message: ({ keyword, schemaCode }) => (0, codegen_1.str) `must be ${KWDs[keyword].okStr} ${schemaCode}`,\n params: ({ keyword, schemaCode }) => (0, codegen_1._) `{comparison: ${KWDs[keyword].okStr}, limit: ${schemaCode}}`,\n};\nconst def = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt) {\n const { keyword, data, schemaCode } = cxt;\n cxt.fail$data((0, codegen_1._) `${data} ${KWDs[keyword].fail} ${schemaCode} || isNaN(${data})`);\n },\n};\nexports.default = def;\n//# sourceMappingURL=limitNumber.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { URI } from '../../../../base/common/uri.js';\nimport { ITextModelService } from '../../../common/services/resolverService.js';\nimport { IOutlineModelService } from './outlineModel.js';\nimport { CommandsRegistry } from '../../../../platform/commands/common/commands.js';\nCommandsRegistry.registerCommand('_executeDocumentSymbolProvider', async function (accessor, ...args) {\n const [resource] = args;\n assertType(URI.isUri(resource));\n const outlineService = accessor.get(IOutlineModelService);\n const modelService = accessor.get(ITextModelService);\n const reference = await modelService.createModelReference(resource);\n try {\n return (await outlineService.getOrCreate(reference.object.textEditorModel, CancellationToken.None)).getTopLevelSymbols();\n }\n finally {\n reference.dispose();\n }\n});\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { EditOperation } from '../core/editOperation.js';\nimport { Range } from '../core/range.js';\nexport class TrimTrailingWhitespaceCommand {\n constructor(selection, cursors, trimInRegexesAndStrings) {\n this._selection = selection;\n this._cursors = cursors;\n this._selectionId = null;\n this._trimInRegexesAndStrings = trimInRegexesAndStrings;\n }\n getEditOperations(model, builder) {\n const ops = trimTrailingWhitespace(model, this._cursors, this._trimInRegexesAndStrings);\n for (let i = 0, len = ops.length; i < len; i++) {\n const op = ops[i];\n builder.addEditOperation(op.range, op.text);\n }\n this._selectionId = builder.trackSelection(this._selection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this._selectionId);\n }\n}\n/**\n * Generate commands for trimming trailing whitespace on a model and ignore lines on which cursors are sitting.\n */\nexport function trimTrailingWhitespace(model, cursors, trimInRegexesAndStrings) {\n // Sort cursors ascending\n cursors.sort((a, b) => {\n if (a.lineNumber === b.lineNumber) {\n return a.column - b.column;\n }\n return a.lineNumber - b.lineNumber;\n });\n // Reduce multiple cursors on the same line and only keep the last one on the line\n for (let i = cursors.length - 2; i >= 0; i--) {\n if (cursors[i].lineNumber === cursors[i + 1].lineNumber) {\n // Remove cursor at `i`\n cursors.splice(i, 1);\n }\n }\n const r = [];\n let rLen = 0;\n let cursorIndex = 0;\n const cursorLen = cursors.length;\n for (let lineNumber = 1, lineCount = model.getLineCount(); lineNumber <= lineCount; lineNumber++) {\n const lineContent = model.getLineContent(lineNumber);\n const maxLineColumn = lineContent.length + 1;\n let minEditColumn = 0;\n if (cursorIndex < cursorLen && cursors[cursorIndex].lineNumber === lineNumber) {\n minEditColumn = cursors[cursorIndex].column;\n cursorIndex++;\n if (minEditColumn === maxLineColumn) {\n // The cursor is at the end of the line => no edits for sure on this line\n continue;\n }\n }\n if (lineContent.length === 0) {\n continue;\n }\n const lastNonWhitespaceIndex = strings.lastNonWhitespaceIndex(lineContent);\n let fromColumn = 0;\n if (lastNonWhitespaceIndex === -1) {\n // Entire line is whitespace\n fromColumn = 1;\n }\n else if (lastNonWhitespaceIndex !== lineContent.length - 1) {\n // There is trailing whitespace\n fromColumn = lastNonWhitespaceIndex + 2;\n }\n else {\n // There is no trailing whitespace\n continue;\n }\n if (!trimInRegexesAndStrings) {\n if (!model.tokenization.hasAccurateTokensForLine(lineNumber)) {\n // We don't want to force line tokenization, as that can be expensive, but we also don't want to trim\n // trailing whitespace in lines that are not tokenized yet, as that can be wrong and trim whitespace from\n // lines that the user requested we don't. So we bail out if the tokens are not accurate for this line.\n continue;\n }\n const lineTokens = model.tokenization.getLineTokens(lineNumber);\n const fromColumnType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(fromColumn));\n if (fromColumnType === 2 /* StandardTokenType.String */ || fromColumnType === 3 /* StandardTokenType.RegEx */) {\n continue;\n }\n }\n fromColumn = Math.max(minEditColumn, fromColumn);\n r[rLen++] = EditOperation.delete(new Range(lineNumber, fromColumn, lineNumber, maxLineColumn));\n }\n return r;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nexport class CopyLinesCommand {\n constructor(selection, isCopyingDown, noop) {\n this._selection = selection;\n this._isCopyingDown = isCopyingDown;\n this._noop = noop || false;\n this._selectionDirection = 0 /* SelectionDirection.LTR */;\n this._selectionId = null;\n this._startLineNumberDelta = 0;\n this._endLineNumberDelta = 0;\n }\n getEditOperations(model, builder) {\n let s = this._selection;\n this._startLineNumberDelta = 0;\n this._endLineNumberDelta = 0;\n if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n this._endLineNumberDelta = 1;\n s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n }\n const sourceLines = [];\n for (let i = s.startLineNumber; i <= s.endLineNumber; i++) {\n sourceLines.push(model.getLineContent(i));\n }\n const sourceText = sourceLines.join('\\n');\n if (sourceText === '') {\n // Duplicating empty line\n if (this._isCopyingDown) {\n this._startLineNumberDelta++;\n this._endLineNumberDelta++;\n }\n }\n if (this._noop) {\n builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber + 1, 1), s.endLineNumber === model.getLineCount() ? '' : '\\n');\n }\n else {\n if (!this._isCopyingDown) {\n builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), '\\n' + sourceText);\n }\n else {\n builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), sourceText + '\\n');\n }\n }\n this._selectionId = builder.trackSelection(s);\n this._selectionDirection = this._selection.getDirection();\n }\n computeCursorState(model, helper) {\n let result = helper.getTrackedSelection(this._selectionId);\n if (this._startLineNumberDelta !== 0 || this._endLineNumberDelta !== 0) {\n let startLineNumber = result.startLineNumber;\n let startColumn = result.startColumn;\n let endLineNumber = result.endLineNumber;\n let endColumn = result.endColumn;\n if (this._startLineNumberDelta !== 0) {\n startLineNumber = startLineNumber + this._startLineNumberDelta;\n startColumn = 1;\n }\n if (this._endLineNumberDelta !== 0) {\n endLineNumber = endLineNumber + this._endLineNumberDelta;\n endColumn = 1;\n }\n result = Selection.createWithDirection(startLineNumber, startColumn, endLineNumber, endColumn, this._selectionDirection);\n }\n return result;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as strings from '../../../../base/common/strings.js';\nimport { ShiftCommand } from '../../../common/commands/shiftCommand.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IndentAction } from '../../../common/languages/languageConfiguration.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport * as indentUtils from '../../indentation/common/indentUtils.js';\nimport { getGoodIndentForLine, getIndentMetadata } from '../../../common/languages/autoIndent.js';\nimport { getEnterAction } from '../../../common/languages/enterAction.js';\nlet MoveLinesCommand = class MoveLinesCommand {\n constructor(selection, isMovingDown, autoIndent, _languageConfigurationService) {\n this._languageConfigurationService = _languageConfigurationService;\n this._selection = selection;\n this._isMovingDown = isMovingDown;\n this._autoIndent = autoIndent;\n this._selectionId = null;\n this._moveEndLineSelectionShrink = false;\n }\n getEditOperations(model, builder) {\n const getLanguageId = () => {\n return model.getLanguageId();\n };\n const getLanguageIdAtPosition = (lineNumber, column) => {\n return model.getLanguageIdAtPosition(lineNumber, column);\n };\n const modelLineCount = model.getLineCount();\n if (this._isMovingDown && this._selection.endLineNumber === modelLineCount) {\n this._selectionId = builder.trackSelection(this._selection);\n return;\n }\n if (!this._isMovingDown && this._selection.startLineNumber === 1) {\n this._selectionId = builder.trackSelection(this._selection);\n return;\n }\n this._moveEndPositionDown = false;\n let s = this._selection;\n if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n this._moveEndPositionDown = true;\n s = s.setEndPosition(s.endLineNumber - 1, model.getLineMaxColumn(s.endLineNumber - 1));\n }\n const { tabSize, indentSize, insertSpaces } = model.getOptions();\n const indentConverter = this.buildIndentConverter(tabSize, indentSize, insertSpaces);\n if (s.startLineNumber === s.endLineNumber && model.getLineMaxColumn(s.startLineNumber) === 1) {\n // Current line is empty\n const lineNumber = s.startLineNumber;\n const otherLineNumber = (this._isMovingDown ? lineNumber + 1 : lineNumber - 1);\n if (model.getLineMaxColumn(otherLineNumber) === 1) {\n // Other line number is empty too, so no editing is needed\n // Add a no-op to force running by the model\n builder.addEditOperation(new Range(1, 1, 1, 1), null);\n }\n else {\n // Type content from other line number on line number\n builder.addEditOperation(new Range(lineNumber, 1, lineNumber, 1), model.getLineContent(otherLineNumber));\n // Remove content from other line number\n builder.addEditOperation(new Range(otherLineNumber, 1, otherLineNumber, model.getLineMaxColumn(otherLineNumber)), null);\n }\n // Track selection at the other line number\n s = new Selection(otherLineNumber, 1, otherLineNumber, 1);\n }\n else {\n let movingLineNumber;\n let movingLineText;\n if (this._isMovingDown) {\n movingLineNumber = s.endLineNumber + 1;\n movingLineText = model.getLineContent(movingLineNumber);\n // Delete line that needs to be moved\n builder.addEditOperation(new Range(movingLineNumber - 1, model.getLineMaxColumn(movingLineNumber - 1), movingLineNumber, model.getLineMaxColumn(movingLineNumber)), null);\n let insertingText = movingLineText;\n if (this.shouldAutoIndent(model, s)) {\n const movingLineMatchResult = this.matchEnterRule(model, indentConverter, tabSize, movingLineNumber, s.startLineNumber - 1);\n // if s.startLineNumber - 1 matches onEnter rule, we still honor that.\n if (movingLineMatchResult !== null) {\n const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(movingLineNumber));\n const newSpaceCnt = movingLineMatchResult + indentUtils.getSpaceCnt(oldIndentation, tabSize);\n const newIndentation = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n insertingText = newIndentation + this.trimStart(movingLineText);\n }\n else {\n // no enter rule matches, let's check indentatin rules then.\n const virtualModel = {\n tokenization: {\n getLineTokens: (lineNumber) => {\n if (lineNumber === s.startLineNumber) {\n return model.tokenization.getLineTokens(movingLineNumber);\n }\n else {\n return model.tokenization.getLineTokens(lineNumber);\n }\n },\n getLanguageId,\n getLanguageIdAtPosition,\n },\n getLineContent: (lineNumber) => {\n if (lineNumber === s.startLineNumber) {\n return model.getLineContent(movingLineNumber);\n }\n else {\n return model.getLineContent(lineNumber);\n }\n },\n };\n const indentOfMovingLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber, indentConverter, this._languageConfigurationService);\n if (indentOfMovingLine !== null) {\n const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(movingLineNumber));\n const newSpaceCnt = indentUtils.getSpaceCnt(indentOfMovingLine, tabSize);\n const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n if (newSpaceCnt !== oldSpaceCnt) {\n const newIndentation = indentUtils.generateIndent(newSpaceCnt, tabSize, insertSpaces);\n insertingText = newIndentation + this.trimStart(movingLineText);\n }\n }\n }\n // add edit operations for moving line first to make sure it's executed after we make indentation change\n // to s.startLineNumber\n builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + '\\n');\n const ret = this.matchEnterRuleMovingDown(model, indentConverter, tabSize, s.startLineNumber, movingLineNumber, insertingText);\n // check if the line being moved before matches onEnter rules, if so let's adjust the indentation by onEnter rules.\n if (ret !== null) {\n if (ret !== 0) {\n this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n }\n }\n else {\n // it doesn't match onEnter rules, let's check indentation rules then.\n const virtualModel = {\n tokenization: {\n getLineTokens: (lineNumber) => {\n if (lineNumber === s.startLineNumber) {\n return model.tokenization.getLineTokens(movingLineNumber);\n }\n else if (lineNumber >= s.startLineNumber + 1 && lineNumber <= s.endLineNumber + 1) {\n return model.tokenization.getLineTokens(lineNumber - 1);\n }\n else {\n return model.tokenization.getLineTokens(lineNumber);\n }\n },\n getLanguageId,\n getLanguageIdAtPosition,\n },\n getLineContent: (lineNumber) => {\n if (lineNumber === s.startLineNumber) {\n return insertingText;\n }\n else if (lineNumber >= s.startLineNumber + 1 && lineNumber <= s.endLineNumber + 1) {\n return model.getLineContent(lineNumber - 1);\n }\n else {\n return model.getLineContent(lineNumber);\n }\n },\n };\n const newIndentatOfMovingBlock = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(movingLineNumber, 1), s.startLineNumber + 1, indentConverter, this._languageConfigurationService);\n if (newIndentatOfMovingBlock !== null) {\n const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n const newSpaceCnt = indentUtils.getSpaceCnt(newIndentatOfMovingBlock, tabSize);\n const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n if (newSpaceCnt !== oldSpaceCnt) {\n const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n }\n }\n }\n }\n else {\n // Insert line that needs to be moved before\n builder.addEditOperation(new Range(s.startLineNumber, 1, s.startLineNumber, 1), insertingText + '\\n');\n }\n }\n else {\n movingLineNumber = s.startLineNumber - 1;\n movingLineText = model.getLineContent(movingLineNumber);\n // Delete line that needs to be moved\n builder.addEditOperation(new Range(movingLineNumber, 1, movingLineNumber + 1, 1), null);\n // Insert line that needs to be moved after\n builder.addEditOperation(new Range(s.endLineNumber, model.getLineMaxColumn(s.endLineNumber), s.endLineNumber, model.getLineMaxColumn(s.endLineNumber)), '\\n' + movingLineText);\n if (this.shouldAutoIndent(model, s)) {\n const virtualModel = {\n tokenization: {\n getLineTokens: (lineNumber) => {\n if (lineNumber === movingLineNumber) {\n return model.tokenization.getLineTokens(s.startLineNumber);\n }\n else {\n return model.tokenization.getLineTokens(lineNumber);\n }\n },\n getLanguageId,\n getLanguageIdAtPosition,\n },\n getLineContent: (lineNumber) => {\n if (lineNumber === movingLineNumber) {\n return model.getLineContent(s.startLineNumber);\n }\n else {\n return model.getLineContent(lineNumber);\n }\n },\n };\n const ret = this.matchEnterRule(model, indentConverter, tabSize, s.startLineNumber, s.startLineNumber - 2);\n // check if s.startLineNumber - 2 matches onEnter rules, if so adjust the moving block by onEnter rules.\n if (ret !== null) {\n if (ret !== 0) {\n this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, ret);\n }\n }\n else {\n // it doesn't match any onEnter rule, let's check indentation rules then.\n const indentOfFirstLine = getGoodIndentForLine(this._autoIndent, virtualModel, model.getLanguageIdAtPosition(s.startLineNumber, 1), movingLineNumber, indentConverter, this._languageConfigurationService);\n if (indentOfFirstLine !== null) {\n // adjust the indentation of the moving block\n const oldIndent = strings.getLeadingWhitespace(model.getLineContent(s.startLineNumber));\n const newSpaceCnt = indentUtils.getSpaceCnt(indentOfFirstLine, tabSize);\n const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndent, tabSize);\n if (newSpaceCnt !== oldSpaceCnt) {\n const spaceCntOffset = newSpaceCnt - oldSpaceCnt;\n this.getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, spaceCntOffset);\n }\n }\n }\n }\n }\n }\n this._selectionId = builder.trackSelection(s);\n }\n buildIndentConverter(tabSize, indentSize, insertSpaces) {\n return {\n shiftIndent: (indentation) => {\n return ShiftCommand.shiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n },\n unshiftIndent: (indentation) => {\n return ShiftCommand.unshiftIndent(indentation, indentation.length + 1, tabSize, indentSize, insertSpaces);\n }\n };\n }\n parseEnterResult(model, indentConverter, tabSize, line, enter) {\n if (enter) {\n let enterPrefix = enter.indentation;\n if (enter.indentAction === IndentAction.None) {\n enterPrefix = enter.indentation + enter.appendText;\n }\n else if (enter.indentAction === IndentAction.Indent) {\n enterPrefix = enter.indentation + enter.appendText;\n }\n else if (enter.indentAction === IndentAction.IndentOutdent) {\n enterPrefix = enter.indentation;\n }\n else if (enter.indentAction === IndentAction.Outdent) {\n enterPrefix = indentConverter.unshiftIndent(enter.indentation) + enter.appendText;\n }\n const movingLineText = model.getLineContent(line);\n if (this.trimStart(movingLineText).indexOf(this.trimStart(enterPrefix)) >= 0) {\n const oldIndentation = strings.getLeadingWhitespace(model.getLineContent(line));\n let newIndentation = strings.getLeadingWhitespace(enterPrefix);\n const indentMetadataOfMovelingLine = getIndentMetadata(model, line, this._languageConfigurationService);\n if (indentMetadataOfMovelingLine !== null && indentMetadataOfMovelingLine & 2 /* IndentConsts.DECREASE_MASK */) {\n newIndentation = indentConverter.unshiftIndent(newIndentation);\n }\n const newSpaceCnt = indentUtils.getSpaceCnt(newIndentation, tabSize);\n const oldSpaceCnt = indentUtils.getSpaceCnt(oldIndentation, tabSize);\n return newSpaceCnt - oldSpaceCnt;\n }\n }\n return null;\n }\n /**\n *\n * @param model\n * @param indentConverter\n * @param tabSize\n * @param line the line moving down\n * @param futureAboveLineNumber the line which will be at the `line` position\n * @param futureAboveLineText\n */\n matchEnterRuleMovingDown(model, indentConverter, tabSize, line, futureAboveLineNumber, futureAboveLineText) {\n if (strings.lastNonWhitespaceIndex(futureAboveLineText) >= 0) {\n // break\n const maxColumn = model.getLineMaxColumn(futureAboveLineNumber);\n const enter = getEnterAction(this._autoIndent, model, new Range(futureAboveLineNumber, maxColumn, futureAboveLineNumber, maxColumn), this._languageConfigurationService);\n return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n }\n else {\n // go upwards, starting from `line - 1`\n let validPrecedingLine = line - 1;\n while (validPrecedingLine >= 1) {\n const lineContent = model.getLineContent(validPrecedingLine);\n const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineContent);\n if (nonWhitespaceIdx >= 0) {\n break;\n }\n validPrecedingLine--;\n }\n if (validPrecedingLine < 1 || line > model.getLineCount()) {\n return null;\n }\n const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n }\n }\n matchEnterRule(model, indentConverter, tabSize, line, oneLineAbove, previousLineText) {\n let validPrecedingLine = oneLineAbove;\n while (validPrecedingLine >= 1) {\n // ship empty lines as empty lines just inherit indentation\n let lineContent;\n if (validPrecedingLine === oneLineAbove && previousLineText !== undefined) {\n lineContent = previousLineText;\n }\n else {\n lineContent = model.getLineContent(validPrecedingLine);\n }\n const nonWhitespaceIdx = strings.lastNonWhitespaceIndex(lineContent);\n if (nonWhitespaceIdx >= 0) {\n break;\n }\n validPrecedingLine--;\n }\n if (validPrecedingLine < 1 || line > model.getLineCount()) {\n return null;\n }\n const maxColumn = model.getLineMaxColumn(validPrecedingLine);\n const enter = getEnterAction(this._autoIndent, model, new Range(validPrecedingLine, maxColumn, validPrecedingLine, maxColumn), this._languageConfigurationService);\n return this.parseEnterResult(model, indentConverter, tabSize, line, enter);\n }\n trimStart(str) {\n return str.replace(/^\\s+/, '');\n }\n shouldAutoIndent(model, selection) {\n if (this._autoIndent < 4 /* EditorAutoIndentStrategy.Full */) {\n return false;\n }\n // if it's not easy to tokenize, we stop auto indent.\n if (!model.tokenization.isCheapToTokenize(selection.startLineNumber)) {\n return false;\n }\n const languageAtSelectionStart = model.getLanguageIdAtPosition(selection.startLineNumber, 1);\n const languageAtSelectionEnd = model.getLanguageIdAtPosition(selection.endLineNumber, 1);\n if (languageAtSelectionStart !== languageAtSelectionEnd) {\n return false;\n }\n if (this._languageConfigurationService.getLanguageConfiguration(languageAtSelectionStart).indentRulesSupport === null) {\n return false;\n }\n return true;\n }\n getIndentEditsOfMovingBlock(model, builder, s, tabSize, insertSpaces, offset) {\n for (let i = s.startLineNumber; i <= s.endLineNumber; i++) {\n const lineContent = model.getLineContent(i);\n const originalIndent = strings.getLeadingWhitespace(lineContent);\n const originalSpacesCnt = indentUtils.getSpaceCnt(originalIndent, tabSize);\n const newSpacesCnt = originalSpacesCnt + offset;\n const newIndent = indentUtils.generateIndent(newSpacesCnt, tabSize, insertSpaces);\n if (newIndent !== originalIndent) {\n builder.addEditOperation(new Range(i, 1, i, originalIndent.length + 1), newIndent);\n if (i === s.endLineNumber && s.endColumn <= originalIndent.length + 1 && newIndent === '') {\n // as users select part of the original indent white spaces\n // when we adjust the indentation of endLine, we should adjust the cursor position as well.\n this._moveEndLineSelectionShrink = true;\n }\n }\n }\n }\n computeCursorState(model, helper) {\n let result = helper.getTrackedSelection(this._selectionId);\n if (this._moveEndPositionDown) {\n result = result.setEndPosition(result.endLineNumber + 1, 1);\n }\n if (this._moveEndLineSelectionShrink && result.startLineNumber < result.endLineNumber) {\n result = result.setEndPosition(result.endLineNumber, 2);\n }\n return result;\n }\n};\nMoveLinesCommand = __decorate([\n __param(3, ILanguageConfigurationService)\n], MoveLinesCommand);\nexport { MoveLinesCommand };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Range } from '../../../common/core/range.js';\nexport class SortLinesCommand {\n static getCollator() {\n if (!SortLinesCommand._COLLATOR) {\n SortLinesCommand._COLLATOR = new Intl.Collator();\n }\n return SortLinesCommand._COLLATOR;\n }\n constructor(selection, descending) {\n this.selection = selection;\n this.descending = descending;\n this.selectionId = null;\n }\n getEditOperations(model, builder) {\n const op = sortLines(model, this.selection, this.descending);\n if (op) {\n builder.addEditOperation(op.range, op.text);\n }\n this.selectionId = builder.trackSelection(this.selection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this.selectionId);\n }\n static canRun(model, selection, descending) {\n if (model === null) {\n return false;\n }\n const data = getSortData(model, selection, descending);\n if (!data) {\n return false;\n }\n for (let i = 0, len = data.before.length; i < len; i++) {\n if (data.before[i] !== data.after[i]) {\n return true;\n }\n }\n return false;\n }\n}\nSortLinesCommand._COLLATOR = null;\nfunction getSortData(model, selection, descending) {\n const startLineNumber = selection.startLineNumber;\n let endLineNumber = selection.endLineNumber;\n if (selection.endColumn === 1) {\n endLineNumber--;\n }\n // Nothing to sort if user didn't select anything.\n if (startLineNumber >= endLineNumber) {\n return null;\n }\n const linesToSort = [];\n // Get the contents of the selection to be sorted.\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n linesToSort.push(model.getLineContent(lineNumber));\n }\n let sorted = linesToSort.slice(0);\n sorted.sort(SortLinesCommand.getCollator().compare);\n // If descending, reverse the order.\n if (descending === true) {\n sorted = sorted.reverse();\n }\n return {\n startLineNumber: startLineNumber,\n endLineNumber: endLineNumber,\n before: linesToSort,\n after: sorted\n };\n}\n/**\n * Generate commands for sorting lines on a model.\n */\nfunction sortLines(model, selection, descending) {\n const data = getSortData(model, selection, descending);\n if (!data) {\n return null;\n }\n return EditOperation.replace(new Range(data.startLineNumber, 1, data.endLineNumber, model.getLineMaxColumn(data.endLineNumber)), data.after.join('\\n'));\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { KeyChord } from '../../../../base/common/keyCodes.js';\nimport { CoreEditingCommands } from '../../../browser/coreCommands.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ReplaceCommand, ReplaceCommandThatPreservesSelection, ReplaceCommandThatSelectsText } from '../../../common/commands/replaceCommand.js';\nimport { TrimTrailingWhitespaceCommand } from '../../../common/commands/trimTrailingWhitespaceCommand.js';\nimport { TypeOperations } from '../../../common/cursor/cursorTypeOperations.js';\nimport { EditOperation } from '../../../common/core/editOperation.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyLinesCommand } from './copyLinesCommand.js';\nimport { MoveLinesCommand } from './moveLinesCommand.js';\nimport { SortLinesCommand } from './sortLinesCommand.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId } from '../../../../platform/actions/common/actions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\n// copy lines\nclass AbstractCopyLinesAction extends EditorAction {\n constructor(down, opts) {\n super(opts);\n this.down = down;\n }\n run(_accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const selections = editor.getSelections().map((selection, index) => ({ selection, index, ignore: false }));\n selections.sort((a, b) => Range.compareRangesUsingStarts(a.selection, b.selection));\n // Remove selections that would result in copying the same line\n let prev = selections[0];\n for (let i = 1; i < selections.length; i++) {\n const curr = selections[i];\n if (prev.selection.endLineNumber === curr.selection.startLineNumber) {\n // these two selections would copy the same line\n if (prev.index < curr.index) {\n // prev wins\n curr.ignore = true;\n }\n else {\n // curr wins\n prev.ignore = true;\n prev = curr;\n }\n }\n }\n const commands = [];\n for (const selection of selections) {\n commands.push(new CopyLinesCommand(selection.selection, this.down, selection.ignore));\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nclass CopyLinesUpAction extends AbstractCopyLinesAction {\n constructor() {\n super(false, {\n id: 'editor.action.copyLinesUpAction',\n label: nls.localize('lines.copyUp', \"Copy Line Up\"),\n alias: 'Copy Line Up',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */,\n linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 16 /* KeyCode.UpArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '2_line',\n title: nls.localize({ key: 'miCopyLinesUp', comment: ['&& denotes a mnemonic'] }, \"&&Copy Line Up\"),\n order: 1\n }\n });\n }\n}\nclass CopyLinesDownAction extends AbstractCopyLinesAction {\n constructor() {\n super(true, {\n id: 'editor.action.copyLinesDownAction',\n label: nls.localize('lines.copyDown', \"Copy Line Down\"),\n alias: 'Copy Line Down',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */,\n linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 18 /* KeyCode.DownArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '2_line',\n title: nls.localize({ key: 'miCopyLinesDown', comment: ['&& denotes a mnemonic'] }, \"Co&&py Line Down\"),\n order: 2\n }\n });\n }\n}\nexport class DuplicateSelectionAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.duplicateSelection',\n label: nls.localize('duplicateSelection', \"Duplicate Selection\"),\n alias: 'Duplicate Selection',\n precondition: EditorContextKeys.writable,\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '2_line',\n title: nls.localize({ key: 'miDuplicateSelection', comment: ['&& denotes a mnemonic'] }, \"&&Duplicate Selection\"),\n order: 5\n }\n });\n }\n run(accessor, editor, args) {\n if (!editor.hasModel()) {\n return;\n }\n const commands = [];\n const selections = editor.getSelections();\n const model = editor.getModel();\n for (const selection of selections) {\n if (selection.isEmpty()) {\n commands.push(new CopyLinesCommand(selection, true));\n }\n else {\n const insertSelection = new Selection(selection.endLineNumber, selection.endColumn, selection.endLineNumber, selection.endColumn);\n commands.push(new ReplaceCommandThatSelectsText(insertSelection, model.getValueInRange(selection)));\n }\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\n// move lines\nclass AbstractMoveLinesAction extends EditorAction {\n constructor(down, opts) {\n super(opts);\n this.down = down;\n }\n run(accessor, editor) {\n const languageConfigurationService = accessor.get(ILanguageConfigurationService);\n const commands = [];\n const selections = editor.getSelections() || [];\n const autoIndent = editor.getOption(12 /* EditorOption.autoIndent */);\n for (const selection of selections) {\n commands.push(new MoveLinesCommand(selection, this.down, autoIndent, languageConfigurationService));\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nclass MoveLinesUpAction extends AbstractMoveLinesAction {\n constructor() {\n super(false, {\n id: 'editor.action.moveLinesUpAction',\n label: nls.localize('lines.moveUp', \"Move Line Up\"),\n alias: 'Move Line Up',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */,\n linux: { primary: 512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '2_line',\n title: nls.localize({ key: 'miMoveLinesUp', comment: ['&& denotes a mnemonic'] }, \"Mo&&ve Line Up\"),\n order: 3\n }\n });\n }\n}\nclass MoveLinesDownAction extends AbstractMoveLinesAction {\n constructor() {\n super(true, {\n id: 'editor.action.moveLinesDownAction',\n label: nls.localize('lines.moveDown', \"Move Line Down\"),\n alias: 'Move Line Down',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */,\n linux: { primary: 512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n menuOpts: {\n menuId: MenuId.MenubarSelectionMenu,\n group: '2_line',\n title: nls.localize({ key: 'miMoveLinesDown', comment: ['&& denotes a mnemonic'] }, \"Move &&Line Down\"),\n order: 4\n }\n });\n }\n}\nexport class AbstractSortLinesAction extends EditorAction {\n constructor(descending, opts) {\n super(opts);\n this.descending = descending;\n }\n run(_accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const model = editor.getModel();\n let selections = editor.getSelections();\n if (selections.length === 1 && selections[0].isEmpty()) {\n // Apply to whole document.\n selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n }\n for (const selection of selections) {\n if (!SortLinesCommand.canRun(editor.getModel(), selection, this.descending)) {\n return;\n }\n }\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n commands[i] = new SortLinesCommand(selections[i], this.descending);\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nexport class SortLinesAscendingAction extends AbstractSortLinesAction {\n constructor() {\n super(false, {\n id: 'editor.action.sortLinesAscending',\n label: nls.localize('lines.sortAscending', \"Sort Lines Ascending\"),\n alias: 'Sort Lines Ascending',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class SortLinesDescendingAction extends AbstractSortLinesAction {\n constructor() {\n super(true, {\n id: 'editor.action.sortLinesDescending',\n label: nls.localize('lines.sortDescending', \"Sort Lines Descending\"),\n alias: 'Sort Lines Descending',\n precondition: EditorContextKeys.writable\n });\n }\n}\nexport class DeleteDuplicateLinesAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.removeDuplicateLines',\n label: nls.localize('lines.deleteDuplicates', \"Delete Duplicate Lines\"),\n alias: 'Delete Duplicate Lines',\n precondition: EditorContextKeys.writable\n });\n }\n run(_accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const model = editor.getModel();\n if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n return;\n }\n const edits = [];\n const endCursorState = [];\n let linesDeleted = 0;\n let updateSelection = true;\n let selections = editor.getSelections();\n if (selections.length === 1 && selections[0].isEmpty()) {\n // Apply to whole document.\n selections = [new Selection(1, 1, model.getLineCount(), model.getLineMaxColumn(model.getLineCount()))];\n updateSelection = false;\n }\n for (const selection of selections) {\n const uniqueLines = new Set();\n const lines = [];\n for (let i = selection.startLineNumber; i <= selection.endLineNumber; i++) {\n const line = model.getLineContent(i);\n if (uniqueLines.has(line)) {\n continue;\n }\n lines.push(line);\n uniqueLines.add(line);\n }\n const selectionToReplace = new Selection(selection.startLineNumber, 1, selection.endLineNumber, model.getLineMaxColumn(selection.endLineNumber));\n const adjustedSelectionStart = selection.startLineNumber - linesDeleted;\n const finalSelection = new Selection(adjustedSelectionStart, 1, adjustedSelectionStart + lines.length - 1, lines[lines.length - 1].length);\n edits.push(EditOperation.replace(selectionToReplace, lines.join('\\n')));\n endCursorState.push(finalSelection);\n linesDeleted += (selection.endLineNumber - selection.startLineNumber + 1) - lines.length;\n }\n editor.pushUndoStop();\n editor.executeEdits(this.id, edits, updateSelection ? endCursorState : undefined);\n editor.pushUndoStop();\n }\n}\nexport class TrimTrailingWhitespaceAction extends EditorAction {\n constructor() {\n super({\n id: TrimTrailingWhitespaceAction.ID,\n label: nls.localize('lines.trimTrailingWhitespace', \"Trim Trailing Whitespace\"),\n alias: 'Trim Trailing Whitespace',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: KeyChord(2048 /* KeyMod.CtrlCmd */ | 41 /* KeyCode.KeyK */, 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */),\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor, args) {\n let cursors = [];\n if (args.reason === 'auto-save') {\n // See https://github.com/editorconfig/editorconfig-vscode/issues/47\n // It is very convenient for the editor config extension to invoke this action.\n // So, if we get a reason:'auto-save' passed in, let's preserve cursor positions.\n cursors = (editor.getSelections() || []).map(s => new Position(s.positionLineNumber, s.positionColumn));\n }\n const selection = editor.getSelection();\n if (selection === null) {\n return;\n }\n const config = _accessor.get(IConfigurationService);\n const model = editor.getModel();\n const trimInRegexAndStrings = config.getValue('files.trimTrailingWhitespaceInRegexAndStrings', { overrideIdentifier: model === null || model === void 0 ? void 0 : model.getLanguageId(), resource: model === null || model === void 0 ? void 0 : model.uri });\n const command = new TrimTrailingWhitespaceCommand(selection, cursors, trimInRegexAndStrings);\n editor.pushUndoStop();\n editor.executeCommands(this.id, [command]);\n editor.pushUndoStop();\n }\n}\nTrimTrailingWhitespaceAction.ID = 'editor.action.trimTrailingWhitespace';\nexport class DeleteLinesAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.deleteLines',\n label: nls.localize('lines.delete', \"Delete Line\"),\n alias: 'Delete Line',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 41 /* KeyCode.KeyK */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const ops = this._getLinesToRemove(editor);\n const model = editor.getModel();\n if (model.getLineCount() === 1 && model.getLineMaxColumn(1) === 1) {\n // Model is empty\n return;\n }\n let linesDeleted = 0;\n const edits = [];\n const cursorState = [];\n for (let i = 0, len = ops.length; i < len; i++) {\n const op = ops[i];\n let startLineNumber = op.startLineNumber;\n let endLineNumber = op.endLineNumber;\n let startColumn = 1;\n let endColumn = model.getLineMaxColumn(endLineNumber);\n if (endLineNumber < model.getLineCount()) {\n endLineNumber += 1;\n endColumn = 1;\n }\n else if (startLineNumber > 1) {\n startLineNumber -= 1;\n startColumn = model.getLineMaxColumn(startLineNumber);\n }\n edits.push(EditOperation.replace(new Selection(startLineNumber, startColumn, endLineNumber, endColumn), ''));\n cursorState.push(new Selection(startLineNumber - linesDeleted, op.positionColumn, startLineNumber - linesDeleted, op.positionColumn));\n linesDeleted += (op.endLineNumber - op.startLineNumber + 1);\n }\n editor.pushUndoStop();\n editor.executeEdits(this.id, edits, cursorState);\n editor.pushUndoStop();\n }\n _getLinesToRemove(editor) {\n // Construct delete operations\n const operations = editor.getSelections().map((s) => {\n let endLineNumber = s.endLineNumber;\n if (s.startLineNumber < s.endLineNumber && s.endColumn === 1) {\n endLineNumber -= 1;\n }\n return {\n startLineNumber: s.startLineNumber,\n selectionStartColumn: s.selectionStartColumn,\n endLineNumber: endLineNumber,\n positionColumn: s.positionColumn\n };\n });\n // Sort delete operations\n operations.sort((a, b) => {\n if (a.startLineNumber === b.startLineNumber) {\n return a.endLineNumber - b.endLineNumber;\n }\n return a.startLineNumber - b.startLineNumber;\n });\n // Merge delete operations which are adjacent or overlapping\n const mergedOperations = [];\n let previousOperation = operations[0];\n for (let i = 1; i < operations.length; i++) {\n if (previousOperation.endLineNumber + 1 >= operations[i].startLineNumber) {\n // Merge current operations into the previous one\n previousOperation.endLineNumber = operations[i].endLineNumber;\n }\n else {\n // Push previous operation\n mergedOperations.push(previousOperation);\n previousOperation = operations[i];\n }\n }\n // Push the last operation\n mergedOperations.push(previousOperation);\n return mergedOperations;\n }\n}\nexport class IndentLinesAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.indentLines',\n label: nls.localize('lines.indent', \"Indent Line\"),\n alias: 'Indent Line',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 94 /* KeyCode.BracketRight */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n return;\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.indent(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n editor.pushUndoStop();\n }\n}\nclass OutdentLinesAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.outdentLines',\n label: nls.localize('lines.outdent', \"Outdent Line\"),\n alias: 'Outdent Line',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 92 /* KeyCode.BracketLeft */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n CoreEditingCommands.Outdent.runEditorCommand(_accessor, editor, null);\n }\n}\nexport class InsertLineBeforeAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.insertLineBefore',\n label: nls.localize('lines.insertBefore', \"Insert Line Above\"),\n alias: 'Insert Line Above',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n return;\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.lineInsertBefore(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n }\n}\nexport class InsertLineAfterAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.insertLineAfter',\n label: nls.localize('lines.insertAfter', \"Insert Line Below\"),\n alias: 'Insert Line Below',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n const viewModel = editor._getViewModel();\n if (!viewModel) {\n return;\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, TypeOperations.lineInsertAfter(viewModel.cursorConfig, editor.getModel(), editor.getSelections()));\n }\n}\nexport class AbstractDeleteAllToBoundaryAction extends EditorAction {\n run(_accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const primaryCursor = editor.getSelection();\n const rangesToDelete = this._getRangesToDelete(editor);\n // merge overlapping selections\n const effectiveRanges = [];\n for (let i = 0, count = rangesToDelete.length - 1; i < count; i++) {\n const range = rangesToDelete[i];\n const nextRange = rangesToDelete[i + 1];\n if (Range.intersectRanges(range, nextRange) === null) {\n effectiveRanges.push(range);\n }\n else {\n rangesToDelete[i + 1] = Range.plusRange(range, nextRange);\n }\n }\n effectiveRanges.push(rangesToDelete[rangesToDelete.length - 1]);\n const endCursorState = this._getEndCursorState(primaryCursor, effectiveRanges);\n const edits = effectiveRanges.map(range => {\n return EditOperation.replace(range, '');\n });\n editor.pushUndoStop();\n editor.executeEdits(this.id, edits, endCursorState);\n editor.pushUndoStop();\n }\n}\nexport class DeleteAllLeftAction extends AbstractDeleteAllToBoundaryAction {\n constructor() {\n super({\n id: 'deleteAllLeft',\n label: nls.localize('lines.deleteAllLeft', \"Delete All Left\"),\n alias: 'Delete All Left',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 2048 /* KeyMod.CtrlCmd */ | 1 /* KeyCode.Backspace */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _getEndCursorState(primaryCursor, rangesToDelete) {\n let endPrimaryCursor = null;\n const endCursorState = [];\n let deletedLines = 0;\n rangesToDelete.forEach(range => {\n let endCursor;\n if (range.endColumn === 1 && deletedLines > 0) {\n const newStartLine = range.startLineNumber - deletedLines;\n endCursor = new Selection(newStartLine, range.startColumn, newStartLine, range.startColumn);\n }\n else {\n endCursor = new Selection(range.startLineNumber, range.startColumn, range.startLineNumber, range.startColumn);\n }\n deletedLines += range.endLineNumber - range.startLineNumber;\n if (range.intersectRanges(primaryCursor)) {\n endPrimaryCursor = endCursor;\n }\n else {\n endCursorState.push(endCursor);\n }\n });\n if (endPrimaryCursor) {\n endCursorState.unshift(endPrimaryCursor);\n }\n return endCursorState;\n }\n _getRangesToDelete(editor) {\n const selections = editor.getSelections();\n if (selections === null) {\n return [];\n }\n let rangesToDelete = selections;\n const model = editor.getModel();\n if (model === null) {\n return [];\n }\n rangesToDelete.sort(Range.compareRangesUsingStarts);\n rangesToDelete = rangesToDelete.map(selection => {\n if (selection.isEmpty()) {\n if (selection.startColumn === 1) {\n const deleteFromLine = Math.max(1, selection.startLineNumber - 1);\n const deleteFromColumn = selection.startLineNumber === 1 ? 1 : model.getLineLength(deleteFromLine) + 1;\n return new Range(deleteFromLine, deleteFromColumn, selection.startLineNumber, 1);\n }\n else {\n return new Range(selection.startLineNumber, 1, selection.startLineNumber, selection.startColumn);\n }\n }\n else {\n return new Range(selection.startLineNumber, 1, selection.endLineNumber, selection.endColumn);\n }\n });\n return rangesToDelete;\n }\n}\nexport class DeleteAllRightAction extends AbstractDeleteAllToBoundaryAction {\n constructor() {\n super({\n id: 'deleteAllRight',\n label: nls.localize('lines.deleteAllRight', \"Delete All Right\"),\n alias: 'Delete All Right',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 41 /* KeyCode.KeyK */, secondary: [2048 /* KeyMod.CtrlCmd */ | 20 /* KeyCode.Delete */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n _getEndCursorState(primaryCursor, rangesToDelete) {\n let endPrimaryCursor = null;\n const endCursorState = [];\n for (let i = 0, len = rangesToDelete.length, offset = 0; i < len; i++) {\n const range = rangesToDelete[i];\n const endCursor = new Selection(range.startLineNumber - offset, range.startColumn, range.startLineNumber - offset, range.startColumn);\n if (range.intersectRanges(primaryCursor)) {\n endPrimaryCursor = endCursor;\n }\n else {\n endCursorState.push(endCursor);\n }\n }\n if (endPrimaryCursor) {\n endCursorState.unshift(endPrimaryCursor);\n }\n return endCursorState;\n }\n _getRangesToDelete(editor) {\n const model = editor.getModel();\n if (model === null) {\n return [];\n }\n const selections = editor.getSelections();\n if (selections === null) {\n return [];\n }\n const rangesToDelete = selections.map((sel) => {\n if (sel.isEmpty()) {\n const maxColumn = model.getLineMaxColumn(sel.startLineNumber);\n if (sel.startColumn === maxColumn) {\n return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber + 1, 1);\n }\n else {\n return new Range(sel.startLineNumber, sel.startColumn, sel.startLineNumber, maxColumn);\n }\n }\n return sel;\n });\n rangesToDelete.sort(Range.compareRangesUsingStarts);\n return rangesToDelete;\n }\n}\nexport class JoinLinesAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.joinLines',\n label: nls.localize('lines.joinLines', \"Join Lines\"),\n alias: 'Join Lines',\n precondition: EditorContextKeys.writable,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 0,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 40 /* KeyCode.KeyJ */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n const selections = editor.getSelections();\n if (selections === null) {\n return;\n }\n let primaryCursor = editor.getSelection();\n if (primaryCursor === null) {\n return;\n }\n selections.sort(Range.compareRangesUsingStarts);\n const reducedSelections = [];\n const lastSelection = selections.reduce((previousValue, currentValue) => {\n if (previousValue.isEmpty()) {\n if (previousValue.endLineNumber === currentValue.startLineNumber) {\n if (primaryCursor.equalsSelection(previousValue)) {\n primaryCursor = currentValue;\n }\n return currentValue;\n }\n if (currentValue.startLineNumber > previousValue.endLineNumber + 1) {\n reducedSelections.push(previousValue);\n return currentValue;\n }\n else {\n return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n }\n }\n else {\n if (currentValue.startLineNumber > previousValue.endLineNumber) {\n reducedSelections.push(previousValue);\n return currentValue;\n }\n else {\n return new Selection(previousValue.startLineNumber, previousValue.startColumn, currentValue.endLineNumber, currentValue.endColumn);\n }\n }\n });\n reducedSelections.push(lastSelection);\n const model = editor.getModel();\n if (model === null) {\n return;\n }\n const edits = [];\n const endCursorState = [];\n let endPrimaryCursor = primaryCursor;\n let lineOffset = 0;\n for (let i = 0, len = reducedSelections.length; i < len; i++) {\n const selection = reducedSelections[i];\n const startLineNumber = selection.startLineNumber;\n const startColumn = 1;\n let columnDeltaOffset = 0;\n let endLineNumber, endColumn;\n const selectionEndPositionOffset = model.getLineLength(selection.endLineNumber) - selection.endColumn;\n if (selection.isEmpty() || selection.startLineNumber === selection.endLineNumber) {\n const position = selection.getStartPosition();\n if (position.lineNumber < model.getLineCount()) {\n endLineNumber = startLineNumber + 1;\n endColumn = model.getLineMaxColumn(endLineNumber);\n }\n else {\n endLineNumber = position.lineNumber;\n endColumn = model.getLineMaxColumn(position.lineNumber);\n }\n }\n else {\n endLineNumber = selection.endLineNumber;\n endColumn = model.getLineMaxColumn(endLineNumber);\n }\n let trimmedLinesContent = model.getLineContent(startLineNumber);\n for (let i = startLineNumber + 1; i <= endLineNumber; i++) {\n const lineText = model.getLineContent(i);\n const firstNonWhitespaceIdx = model.getLineFirstNonWhitespaceColumn(i);\n if (firstNonWhitespaceIdx >= 1) {\n let insertSpace = true;\n if (trimmedLinesContent === '') {\n insertSpace = false;\n }\n if (insertSpace && (trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === ' ' ||\n trimmedLinesContent.charAt(trimmedLinesContent.length - 1) === '\\t')) {\n insertSpace = false;\n trimmedLinesContent = trimmedLinesContent.replace(/[\\s\\uFEFF\\xA0]+$/g, ' ');\n }\n const lineTextWithoutIndent = lineText.substr(firstNonWhitespaceIdx - 1);\n trimmedLinesContent += (insertSpace ? ' ' : '') + lineTextWithoutIndent;\n if (insertSpace) {\n columnDeltaOffset = lineTextWithoutIndent.length + 1;\n }\n else {\n columnDeltaOffset = lineTextWithoutIndent.length;\n }\n }\n else {\n columnDeltaOffset = 0;\n }\n }\n const deleteSelection = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n if (!deleteSelection.isEmpty()) {\n let resultSelection;\n if (selection.isEmpty()) {\n edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n resultSelection = new Selection(deleteSelection.startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1, startLineNumber - lineOffset, trimmedLinesContent.length - columnDeltaOffset + 1);\n }\n else {\n if (selection.startLineNumber === selection.endLineNumber) {\n edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.endLineNumber - lineOffset, selection.endColumn);\n }\n else {\n edits.push(EditOperation.replace(deleteSelection, trimmedLinesContent));\n resultSelection = new Selection(selection.startLineNumber - lineOffset, selection.startColumn, selection.startLineNumber - lineOffset, trimmedLinesContent.length - selectionEndPositionOffset);\n }\n }\n if (Range.intersectRanges(deleteSelection, primaryCursor) !== null) {\n endPrimaryCursor = resultSelection;\n }\n else {\n endCursorState.push(resultSelection);\n }\n }\n lineOffset += deleteSelection.endLineNumber - deleteSelection.startLineNumber;\n }\n endCursorState.unshift(endPrimaryCursor);\n editor.pushUndoStop();\n editor.executeEdits(this.id, edits, endCursorState);\n editor.pushUndoStop();\n }\n}\nexport class TransposeAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.transpose',\n label: nls.localize('editor.transpose', \"Transpose Characters around the Cursor\"),\n alias: 'Transpose Characters around the Cursor',\n precondition: EditorContextKeys.writable\n });\n }\n run(_accessor, editor) {\n const selections = editor.getSelections();\n if (selections === null) {\n return;\n }\n const model = editor.getModel();\n if (model === null) {\n return;\n }\n const commands = [];\n for (let i = 0, len = selections.length; i < len; i++) {\n const selection = selections[i];\n if (!selection.isEmpty()) {\n continue;\n }\n const cursor = selection.getStartPosition();\n const maxColumn = model.getLineMaxColumn(cursor.lineNumber);\n if (cursor.column >= maxColumn) {\n if (cursor.lineNumber === model.getLineCount()) {\n continue;\n }\n // The cursor is at the end of current line and current line is not empty\n // then we transpose the character before the cursor and the line break if there is any following line.\n const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1);\n const chars = model.getValueInRange(deleteSelection).split('').reverse().join('');\n commands.push(new ReplaceCommand(new Selection(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber + 1, 1), chars));\n }\n else {\n const deleteSelection = new Range(cursor.lineNumber, Math.max(1, cursor.column - 1), cursor.lineNumber, cursor.column + 1);\n const chars = model.getValueInRange(deleteSelection).split('').reverse().join('');\n commands.push(new ReplaceCommandThatPreservesSelection(deleteSelection, chars, new Selection(cursor.lineNumber, cursor.column + 1, cursor.lineNumber, cursor.column + 1)));\n }\n }\n editor.pushUndoStop();\n editor.executeCommands(this.id, commands);\n editor.pushUndoStop();\n }\n}\nexport class AbstractCaseAction extends EditorAction {\n run(_accessor, editor) {\n const selections = editor.getSelections();\n if (selections === null) {\n return;\n }\n const model = editor.getModel();\n if (model === null) {\n return;\n }\n const wordSeparators = editor.getOption(131 /* EditorOption.wordSeparators */);\n const textEdits = [];\n for (const selection of selections) {\n if (selection.isEmpty()) {\n const cursor = selection.getStartPosition();\n const word = editor.getConfiguredWordAtPosition(cursor);\n if (!word) {\n continue;\n }\n const wordRange = new Range(cursor.lineNumber, word.startColumn, cursor.lineNumber, word.endColumn);\n const text = model.getValueInRange(wordRange);\n textEdits.push(EditOperation.replace(wordRange, this._modifyText(text, wordSeparators)));\n }\n else {\n const text = model.getValueInRange(selection);\n textEdits.push(EditOperation.replace(selection, this._modifyText(text, wordSeparators)));\n }\n }\n editor.pushUndoStop();\n editor.executeEdits(this.id, textEdits);\n editor.pushUndoStop();\n }\n}\nexport class UpperCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToUppercase',\n label: nls.localize('editor.transformToUppercase', \"Transform to Uppercase\"),\n alias: 'Transform to Uppercase',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n return text.toLocaleUpperCase();\n }\n}\nexport class LowerCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToLowercase',\n label: nls.localize('editor.transformToLowercase', \"Transform to Lowercase\"),\n alias: 'Transform to Lowercase',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n return text.toLocaleLowerCase();\n }\n}\nclass BackwardsCompatibleRegExp {\n constructor(_pattern, _flags) {\n this._pattern = _pattern;\n this._flags = _flags;\n this._actual = null;\n this._evaluated = false;\n }\n get() {\n if (!this._evaluated) {\n this._evaluated = true;\n try {\n this._actual = new RegExp(this._pattern, this._flags);\n }\n catch (err) {\n // this browser does not support this regular expression\n }\n }\n return this._actual;\n }\n isSupported() {\n return (this.get() !== null);\n }\n}\nexport class TitleCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToTitlecase',\n label: nls.localize('editor.transformToTitlecase', \"Transform to Title Case\"),\n alias: 'Transform to Title Case',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n const titleBoundary = TitleCaseAction.titleBoundary.get();\n if (!titleBoundary) {\n // cannot support this\n return text;\n }\n return text\n .toLocaleLowerCase()\n .replace(titleBoundary, (b) => b.toLocaleUpperCase());\n }\n}\nTitleCaseAction.titleBoundary = new BackwardsCompatibleRegExp('(^|[^\\\\p{L}\\\\p{N}\\']|((^|\\\\P{L})\\'))\\\\p{L}', 'gmu');\nexport class SnakeCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToSnakecase',\n label: nls.localize('editor.transformToSnakecase', \"Transform to Snake Case\"),\n alias: 'Transform to Snake Case',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n const caseBoundary = SnakeCaseAction.caseBoundary.get();\n const singleLetters = SnakeCaseAction.singleLetters.get();\n if (!caseBoundary || !singleLetters) {\n // cannot support this\n return text;\n }\n return (text\n .replace(caseBoundary, '$1_$2')\n .replace(singleLetters, '$1_$2$3')\n .toLocaleLowerCase());\n }\n}\nSnakeCaseAction.caseBoundary = new BackwardsCompatibleRegExp('(\\\\p{Ll})(\\\\p{Lu})', 'gmu');\nSnakeCaseAction.singleLetters = new BackwardsCompatibleRegExp('(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu})(\\\\p{Ll})', 'gmu');\nexport class CamelCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToCamelcase',\n label: nls.localize('editor.transformToCamelcase', \"Transform to Camel Case\"),\n alias: 'Transform to Camel Case',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n const wordBoundary = CamelCaseAction.wordBoundary.get();\n if (!wordBoundary) {\n // cannot support this\n return text;\n }\n const words = text.split(wordBoundary);\n const firstWord = words.shift();\n return firstWord + words.map((word) => word.substring(0, 1).toLocaleUpperCase() + word.substring(1))\n .join('');\n }\n}\nCamelCaseAction.wordBoundary = new BackwardsCompatibleRegExp('[_\\\\s-]', 'gm');\nexport class PascalCaseAction extends AbstractCaseAction {\n constructor() {\n super({\n id: 'editor.action.transformToPascalcase',\n label: nls.localize('editor.transformToPascalcase', \"Transform to Pascal Case\"),\n alias: 'Transform to Pascal Case',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, wordSeparators) {\n const wordBoundary = PascalCaseAction.wordBoundary.get();\n const wordBoundaryToMaintain = PascalCaseAction.wordBoundaryToMaintain.get();\n if (!wordBoundary || !wordBoundaryToMaintain) {\n // cannot support this\n return text;\n }\n const wordsWithMaintainBoundaries = text.split(wordBoundaryToMaintain);\n const words = wordsWithMaintainBoundaries.map((word) => word.split(wordBoundary)).flat();\n return words.map((word) => word.substring(0, 1).toLocaleUpperCase() + word.substring(1))\n .join('');\n }\n}\nPascalCaseAction.wordBoundary = new BackwardsCompatibleRegExp('[_\\\\s-]', 'gm');\nPascalCaseAction.wordBoundaryToMaintain = new BackwardsCompatibleRegExp('(?<=\\\\.)', 'gm');\nexport class KebabCaseAction extends AbstractCaseAction {\n static isSupported() {\n const areAllRegexpsSupported = [\n this.caseBoundary,\n this.singleLetters,\n this.underscoreBoundary,\n ].every((regexp) => regexp.isSupported());\n return areAllRegexpsSupported;\n }\n constructor() {\n super({\n id: 'editor.action.transformToKebabcase',\n label: nls.localize('editor.transformToKebabcase', 'Transform to Kebab Case'),\n alias: 'Transform to Kebab Case',\n precondition: EditorContextKeys.writable\n });\n }\n _modifyText(text, _) {\n const caseBoundary = KebabCaseAction.caseBoundary.get();\n const singleLetters = KebabCaseAction.singleLetters.get();\n const underscoreBoundary = KebabCaseAction.underscoreBoundary.get();\n if (!caseBoundary || !singleLetters || !underscoreBoundary) {\n // one or more regexps aren't supported\n return text;\n }\n return text\n .replace(underscoreBoundary, '$1-$3')\n .replace(caseBoundary, '$1-$2')\n .replace(singleLetters, '$1-$2')\n .toLocaleLowerCase();\n }\n}\nKebabCaseAction.caseBoundary = new BackwardsCompatibleRegExp('(\\\\p{Ll})(\\\\p{Lu})', 'gmu');\nKebabCaseAction.singleLetters = new BackwardsCompatibleRegExp('(\\\\p{Lu}|\\\\p{N})(\\\\p{Lu}\\\\p{Ll})', 'gmu');\nKebabCaseAction.underscoreBoundary = new BackwardsCompatibleRegExp('(\\\\S)(_)(\\\\S)', 'gm');\nregisterEditorAction(CopyLinesUpAction);\nregisterEditorAction(CopyLinesDownAction);\nregisterEditorAction(DuplicateSelectionAction);\nregisterEditorAction(MoveLinesUpAction);\nregisterEditorAction(MoveLinesDownAction);\nregisterEditorAction(SortLinesAscendingAction);\nregisterEditorAction(SortLinesDescendingAction);\nregisterEditorAction(DeleteDuplicateLinesAction);\nregisterEditorAction(TrimTrailingWhitespaceAction);\nregisterEditorAction(DeleteLinesAction);\nregisterEditorAction(IndentLinesAction);\nregisterEditorAction(OutdentLinesAction);\nregisterEditorAction(InsertLineBeforeAction);\nregisterEditorAction(InsertLineAfterAction);\nregisterEditorAction(DeleteAllLeftAction);\nregisterEditorAction(DeleteAllRightAction);\nregisterEditorAction(JoinLinesAction);\nregisterEditorAction(TransposeAction);\nregisterEditorAction(UpperCaseAction);\nregisterEditorAction(LowerCaseAction);\nif (SnakeCaseAction.caseBoundary.isSupported() && SnakeCaseAction.singleLetters.isSupported()) {\n registerEditorAction(SnakeCaseAction);\n}\nif (CamelCaseAction.wordBoundary.isSupported()) {\n registerEditorAction(CamelCaseAction);\n}\nif (PascalCaseAction.wordBoundary.isSupported()) {\n registerEditorAction(PascalCaseAction);\n}\nif (TitleCaseAction.titleBoundary.isSupported()) {\n registerEditorAction(TitleCaseAction);\n}\nif (KebabCaseAction.isSupported()) {\n registerEditorAction(KebabCaseAction);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { arrayInsert } from '../../../base/common/arrays.js';\nimport { toUint32 } from '../../../base/common/uint.js';\nexport class PrefixSumComputer {\n constructor(values) {\n this.values = values;\n this.prefixSum = new Uint32Array(values.length);\n this.prefixSumValidIndex = new Int32Array(1);\n this.prefixSumValidIndex[0] = -1;\n }\n insertValues(insertIndex, insertValues) {\n insertIndex = toUint32(insertIndex);\n const oldValues = this.values;\n const oldPrefixSum = this.prefixSum;\n const insertValuesLen = insertValues.length;\n if (insertValuesLen === 0) {\n return false;\n }\n this.values = new Uint32Array(oldValues.length + insertValuesLen);\n this.values.set(oldValues.subarray(0, insertIndex), 0);\n this.values.set(oldValues.subarray(insertIndex), insertIndex + insertValuesLen);\n this.values.set(insertValues, insertIndex);\n if (insertIndex - 1 < this.prefixSumValidIndex[0]) {\n this.prefixSumValidIndex[0] = insertIndex - 1;\n }\n this.prefixSum = new Uint32Array(this.values.length);\n if (this.prefixSumValidIndex[0] >= 0) {\n this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n }\n return true;\n }\n setValue(index, value) {\n index = toUint32(index);\n value = toUint32(value);\n if (this.values[index] === value) {\n return false;\n }\n this.values[index] = value;\n if (index - 1 < this.prefixSumValidIndex[0]) {\n this.prefixSumValidIndex[0] = index - 1;\n }\n return true;\n }\n removeValues(startIndex, count) {\n startIndex = toUint32(startIndex);\n count = toUint32(count);\n const oldValues = this.values;\n const oldPrefixSum = this.prefixSum;\n if (startIndex >= oldValues.length) {\n return false;\n }\n const maxCount = oldValues.length - startIndex;\n if (count >= maxCount) {\n count = maxCount;\n }\n if (count === 0) {\n return false;\n }\n this.values = new Uint32Array(oldValues.length - count);\n this.values.set(oldValues.subarray(0, startIndex), 0);\n this.values.set(oldValues.subarray(startIndex + count), startIndex);\n this.prefixSum = new Uint32Array(this.values.length);\n if (startIndex - 1 < this.prefixSumValidIndex[0]) {\n this.prefixSumValidIndex[0] = startIndex - 1;\n }\n if (this.prefixSumValidIndex[0] >= 0) {\n this.prefixSum.set(oldPrefixSum.subarray(0, this.prefixSumValidIndex[0] + 1));\n }\n return true;\n }\n getTotalSum() {\n if (this.values.length === 0) {\n return 0;\n }\n return this._getPrefixSum(this.values.length - 1);\n }\n /**\n * Returns the sum of the first `index + 1` many items.\n * @returns `SUM(0 <= j <= index, values[j])`.\n */\n getPrefixSum(index) {\n if (index < 0) {\n return 0;\n }\n index = toUint32(index);\n return this._getPrefixSum(index);\n }\n _getPrefixSum(index) {\n if (index <= this.prefixSumValidIndex[0]) {\n return this.prefixSum[index];\n }\n let startIndex = this.prefixSumValidIndex[0] + 1;\n if (startIndex === 0) {\n this.prefixSum[0] = this.values[0];\n startIndex++;\n }\n if (index >= this.values.length) {\n index = this.values.length - 1;\n }\n for (let i = startIndex; i <= index; i++) {\n this.prefixSum[i] = this.prefixSum[i - 1] + this.values[i];\n }\n this.prefixSumValidIndex[0] = Math.max(this.prefixSumValidIndex[0], index);\n return this.prefixSum[index];\n }\n getIndexOf(sum) {\n sum = Math.floor(sum);\n // Compute all sums (to get a fully valid prefixSum)\n this.getTotalSum();\n let low = 0;\n let high = this.values.length - 1;\n let mid = 0;\n let midStop = 0;\n let midStart = 0;\n while (low <= high) {\n mid = low + ((high - low) / 2) | 0;\n midStop = this.prefixSum[mid];\n midStart = midStop - this.values[mid];\n if (sum < midStart) {\n high = mid - 1;\n }\n else if (sum >= midStop) {\n low = mid + 1;\n }\n else {\n break;\n }\n }\n return new PrefixSumIndexOfResult(mid, sum - midStart);\n }\n}\n/**\n * {@link getIndexOf} has an amortized runtime complexity of O(1).\n *\n * ({@link PrefixSumComputer.getIndexOf} is just O(log n))\n*/\nexport class ConstantTimePrefixSumComputer {\n constructor(values) {\n this._values = values;\n this._isValid = false;\n this._validEndIndex = -1;\n this._prefixSum = [];\n this._indexBySum = [];\n }\n /**\n * @returns SUM(0 <= j < values.length, values[j])\n */\n getTotalSum() {\n this._ensureValid();\n return this._indexBySum.length;\n }\n /**\n * Returns the sum of the first `count` many items.\n * @returns `SUM(0 <= j < count, values[j])`.\n */\n getPrefixSum(count) {\n this._ensureValid();\n if (count === 0) {\n return 0;\n }\n return this._prefixSum[count - 1];\n }\n /**\n * @returns `result`, such that `getPrefixSum(result.index) + result.remainder = sum`\n */\n getIndexOf(sum) {\n this._ensureValid();\n const idx = this._indexBySum[sum];\n const viewLinesAbove = idx > 0 ? this._prefixSum[idx - 1] : 0;\n return new PrefixSumIndexOfResult(idx, sum - viewLinesAbove);\n }\n removeValues(start, deleteCount) {\n this._values.splice(start, deleteCount);\n this._invalidate(start);\n }\n insertValues(insertIndex, insertArr) {\n this._values = arrayInsert(this._values, insertIndex, insertArr);\n this._invalidate(insertIndex);\n }\n _invalidate(index) {\n this._isValid = false;\n this._validEndIndex = Math.min(this._validEndIndex, index - 1);\n }\n _ensureValid() {\n if (this._isValid) {\n return;\n }\n for (let i = this._validEndIndex + 1, len = this._values.length; i < len; i++) {\n const value = this._values[i];\n const sumAbove = i > 0 ? this._prefixSum[i - 1] : 0;\n this._prefixSum[i] = sumAbove + value;\n for (let j = 0; j < value; j++) {\n this._indexBySum[sumAbove + j] = i;\n }\n }\n // trim things\n this._prefixSum.length = this._values.length;\n this._indexBySum.length = this._prefixSum[this._prefixSum.length - 1];\n // mark as valid\n this._isValid = true;\n this._validEndIndex = this._values.length - 1;\n }\n setValue(index, value) {\n if (this._values[index] === value) {\n // no change\n return;\n }\n this._values[index] = value;\n this._invalidate(index);\n }\n}\nexport class PrefixSumIndexOfResult {\n constructor(index, remainder) {\n this.index = index;\n this.remainder = remainder;\n this._prefixSumIndexOfResultBrand = undefined;\n this.index = index;\n this.remainder = remainder;\n }\n}\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","'use strict';\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Color, RGBA } from '../../../../base/common/color.js';\nimport { EditorWorkerClient } from '../../../browser/services/editorWorkerService.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nexport class DefaultDocumentColorProvider {\n constructor(modelService, languageConfigurationService) {\n this._editorWorkerClient = new EditorWorkerClient(modelService, false, 'editorWorkerService', languageConfigurationService);\n }\n async provideDocumentColors(model, _token) {\n return this._editorWorkerClient.computeDefaultDocumentColors(model.uri);\n }\n provideColorPresentations(_model, colorInfo, _token) {\n const range = colorInfo.range;\n const colorFromInfo = colorInfo.color;\n const alpha = colorFromInfo.alpha;\n const color = new Color(new RGBA(Math.round(255 * colorFromInfo.red), Math.round(255 * colorFromInfo.green), Math.round(255 * colorFromInfo.blue), alpha));\n const rgb = alpha ? Color.Format.CSS.formatRGB(color) : Color.Format.CSS.formatRGBA(color);\n const hsl = alpha ? Color.Format.CSS.formatHSL(color) : Color.Format.CSS.formatHSLA(color);\n const hex = alpha ? Color.Format.CSS.formatHex(color) : Color.Format.CSS.formatHexA(color);\n const colorPresentations = [];\n colorPresentations.push({ label: rgb, textEdit: { range: range, text: rgb } });\n colorPresentations.push({ label: hsl, textEdit: { range: range, text: hsl } });\n colorPresentations.push({ label: hex, textEdit: { range: range, text: hex } });\n return colorPresentations;\n }\n}\nlet DefaultDocumentColorProviderFeature = class DefaultDocumentColorProviderFeature extends Disposable {\n constructor(_modelService, _languageConfigurationService, _languageFeaturesService) {\n super();\n this._register(_languageFeaturesService.colorProvider.register('*', new DefaultDocumentColorProvider(_modelService, _languageConfigurationService)));\n }\n};\nDefaultDocumentColorProviderFeature = __decorate([\n __param(0, IModelService),\n __param(1, ILanguageConfigurationService),\n __param(2, ILanguageFeaturesService)\n], DefaultDocumentColorProviderFeature);\nregisterEditorFeature(DefaultDocumentColorProviderFeature);\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sb/sb.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"sb\",\n extensions: [\".sb\"],\n aliases: [\"Small Basic\", \"sb\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/sb/sb\"], resolve, reject);\n });\n } else {\n return import(\"./sb.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nlet SectionHeaderDetector = class SectionHeaderDetector extends Disposable {\n constructor(editor, languageConfigurationService, editorWorkerService) {\n super();\n this.editor = editor;\n this.languageConfigurationService = languageConfigurationService;\n this.editorWorkerService = editorWorkerService;\n this.decorations = this.editor.createDecorationsCollection();\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.computePromise = null;\n this.currentOccurrences = {};\n this._register(editor.onDidChangeModel((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(editor.onDidChangeModelLanguage((e) => {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(languageConfigurationService.onDidChange((e) => {\n var _a;\n const editorLanguageId = (_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.getLanguageId();\n if (editorLanguageId && e.affects(editorLanguageId)) {\n this.currentOccurrences = {};\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n this.stop();\n this.computeSectionHeaders.schedule(0);\n }\n }));\n this._register(editor.onDidChangeConfiguration(e => {\n if (this.options && !e.hasChanged(73 /* EditorOption.minimap */)) {\n return;\n }\n this.options = this.createOptions(editor.getOption(73 /* EditorOption.minimap */));\n // Remove any links (for the getting disabled case)\n this.updateDecorations([]);\n // Stop any computation (for the getting disabled case)\n this.stop();\n // Start computing (for the getting enabled case)\n this.computeSectionHeaders.schedule(0);\n }));\n this._register(this.editor.onDidChangeModelContent(e => {\n this.computeSectionHeaders.schedule();\n }));\n this._register(editor.onDidChangeModelTokens((e) => {\n if (!this.computeSectionHeaders.isScheduled()) {\n this.computeSectionHeaders.schedule(1000);\n }\n }));\n this.computeSectionHeaders = this._register(new RunOnceScheduler(() => {\n this.findSectionHeaders();\n }, 250));\n this.computeSectionHeaders.schedule(0);\n }\n createOptions(minimap) {\n if (!minimap || !this.editor.hasModel()) {\n return undefined;\n }\n const languageId = this.editor.getModel().getLanguageId();\n if (!languageId) {\n return undefined;\n }\n const commentsConfiguration = this.languageConfigurationService.getLanguageConfiguration(languageId).comments;\n const foldingRules = this.languageConfigurationService.getLanguageConfiguration(languageId).foldingRules;\n if (!commentsConfiguration && !(foldingRules === null || foldingRules === void 0 ? void 0 : foldingRules.markers)) {\n return undefined;\n }\n return {\n foldingRules,\n findMarkSectionHeaders: minimap.showMarkSectionHeaders,\n findRegionSectionHeaders: minimap.showRegionSectionHeaders,\n };\n }\n findSectionHeaders() {\n var _a, _b;\n if (!this.editor.hasModel()\n || (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.findMarkSectionHeaders) && !((_b = this.options) === null || _b === void 0 ? void 0 : _b.findRegionSectionHeaders))) {\n return;\n }\n const model = this.editor.getModel();\n if (model.isDisposed() || model.isTooLargeForSyncing()) {\n return;\n }\n const modelVersionId = model.getVersionId();\n this.editorWorkerService.findSectionHeaders(model.uri, this.options)\n .then((sectionHeaders) => {\n if (model.isDisposed() || model.getVersionId() !== modelVersionId) {\n // model changed in the meantime\n return;\n }\n this.updateDecorations(sectionHeaders);\n });\n }\n updateDecorations(sectionHeaders) {\n const model = this.editor.getModel();\n if (model) {\n // Remove all section headers that should be in comments and are not in comments\n sectionHeaders = sectionHeaders.filter((sectionHeader) => {\n if (!sectionHeader.shouldBeInComments) {\n return true;\n }\n const validRange = model.validateRange(sectionHeader.range);\n const tokens = model.tokenization.getLineTokens(validRange.startLineNumber);\n const idx = tokens.findTokenIndexAtOffset(validRange.startColumn - 1);\n const tokenType = tokens.getStandardTokenType(idx);\n const languageId = tokens.getLanguageId(idx);\n return (languageId === model.getLanguageId() && tokenType === 1 /* StandardTokenType.Comment */);\n });\n }\n const oldDecorations = Object.values(this.currentOccurrences).map(occurrence => occurrence.decorationId);\n const newDecorations = sectionHeaders.map(sectionHeader => decoration(sectionHeader));\n this.editor.changeDecorations((changeAccessor) => {\n const decorations = changeAccessor.deltaDecorations(oldDecorations, newDecorations);\n this.currentOccurrences = {};\n for (let i = 0, len = decorations.length; i < len; i++) {\n const occurrence = { sectionHeader: sectionHeaders[i], decorationId: decorations[i] };\n this.currentOccurrences[occurrence.decorationId] = occurrence;\n }\n });\n }\n stop() {\n this.computeSectionHeaders.cancel();\n if (this.computePromise) {\n this.computePromise.cancel();\n this.computePromise = null;\n }\n }\n dispose() {\n super.dispose();\n this.stop();\n this.decorations.clear();\n }\n};\nSectionHeaderDetector.ID = 'editor.sectionHeaderDetector';\nSectionHeaderDetector = __decorate([\n __param(1, ILanguageConfigurationService),\n __param(2, IEditorWorkerService)\n], SectionHeaderDetector);\nexport { SectionHeaderDetector };\nfunction decoration(sectionHeader) {\n return {\n range: sectionHeader.range,\n options: ModelDecorationOptions.createDynamic({\n description: 'section-header',\n stickiness: 3 /* TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */,\n collapseOnReplaceEdit: true,\n minimap: {\n color: undefined,\n position: 1 /* MinimapPosition.Inline */,\n sectionHeaderStyle: sectionHeader.hasSeparatorLine ? 2 /* MinimapSectionHeaderStyle.Underlined */ : 1 /* MinimapSectionHeaderStyle.Normal */,\n sectionHeaderText: sectionHeader.text,\n },\n })\n };\n}\nregisterEditorContribution(SectionHeaderDetector.ID, SectionHeaderDetector, 1 /* EditorContributionInstantiation.AfterFirstRender */);\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t(require(\"vue\"),require(\"clipboard\")):\"function\"==typeof define&&define.amd?define([\"vue\",\"clipboard\"],t):\"object\"==typeof exports?exports.JsonView=t(require(\"vue\"),require(\"clipboard\")):e.JsonView=t(e.vue,e.clipboard)}(this,function(n,o){return a={},r.m=i=[function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=(e,t)=>{const n=e.__vccOpts||e;for(var[o,r]of t)n[o]=r;return n}},function(e,t){e.exports=n},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});a(n(1));var o=a(n(22)),r=a(n(42)),i=n(43);function a(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonViewer\",components:{JsonBox:o.default},props:{value:{type:[Object,Array,String,Number,Boolean,Function],required:!0},expanded:{type:Boolean,default:!1},expandDepth:{type:Number,default:1},copyable:{type:[Boolean,Object],default:!1},sort:{type:Boolean,default:!1},boxed:{type:Boolean,default:!1},theme:{type:String,default:\"jv-light\"},timeformat:{type:Function,default:function(e){return e.toLocaleString()}},previewMode:{type:Boolean,default:!1},showArrayIndex:{type:Boolean,default:!0},showDoubleQuotes:{type:Boolean,default:!1}},provide:function(){return{expandDepth:this.expandDepth,timeformat:this.timeformat,onKeyclick:this.onKeyclick}},data:function(){return{copied:!1,expandableCode:!1,expandCode:this.expanded}},computed:{jvClass:function(){return\"jv-container \"+this.theme+(this.boxed?\" boxed\":\"\")},copyText:function(){var e=this.copyable;return{copyText:e.copyText||\"copy\",copiedText:e.copiedText||\"copied!\",timeout:e.timeout||2e3,align:e.align}}},watch:{value:function(){this.onResized()}},mounted:function(){var t=this;this.debounceResized=(0,i.debounce)(this.debResized.bind(this),200),this.boxed&&this.$refs.jsonBox&&(this.onResized(),this.$refs.jsonBox.$el.addEventListener(\"resized\",this.onResized,!0)),this.copyable&&new r.default(this.$refs.clip,{container:this.$refs.viewer,text:function(){return JSON.stringify(t.value,null,2)}}).on(\"success\",function(e){t.onCopied(e)})},methods:{onResized:function(){this.debounceResized()},debResized:function(){var e=this;this.$nextTick(function(){e.$refs.jsonBox&&(250<=e.$refs.jsonBox.$el.clientHeight?e.expandableCode=!0:e.expandableCode=!1)})},onCopied:function(e){var t=this;this.copied||(this.copied=!0,setTimeout(function(){t.copied=!1},this.copyText.timeout),this.$emit(\"copied\",e))},toggleExpandCode:function(){this.expandCode=!this.expandCode},onKeyclick:function(e){this.$emit(\"keyclick\",e)}}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},i=n(1),a=o(n(31)),s=o(n(32)),u=o(n(33)),l=o(n(34)),c=o(n(35)),d=o(n(36)),f=o(n(37)),p=o(n(38));function o(e){return e&&e.__esModule?e:{default:e}}t.default={name:\"JsonBox\",inject:[\"expandDepth\",\"onKeyclick\"],props:{value:{type:[Object,Array,String,Number,Boolean,Function,Date],default:null},keyName:{type:String,default:\"\"},sort:Boolean,depth:{type:Number,default:0},previewMode:Boolean,forceExpand:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:{type:String,default:\"$\"}},data:function(){return{expand:!0,forceExpandMe:this.forceExpand}},mounted:function(){this.expand=this.previewMode||!(this.depth>=this.expandDepth)||this.forceExpandMe},methods:{toggle:function(){this.expand=!this.expand,this.dispatchEvent()},toggleAll:function(){this.expand=!this.expand,this.forceExpandMe=this.expand,this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}},getPath:function(){for(var e=[this.keyName],t=this.$parent;t.depth;)t.$el.classList.contains(\"jv-node\")&&e.push(t.keyName),t=t.$parent;return e.reverse()}},render:function(){var t=this,e=[],n=void 0;null===this.value||void 0===this.value?n=s.default:Array.isArray(this.value)?n=d.default:\"[object Date]\"===Object.prototype.toString.call(this.value)?n=p.default:\"object\"===r(this.value)?n=c.default:\"number\"==typeof this.value?n=u.default:\"string\"==typeof this.value?n=a.default:\"boolean\"==typeof this.value?n=l.default:\"function\"==typeof this.value&&(n=f.default);var o=this.keyName&&this.value&&(Array.isArray(this.value)||\"object\"===r(this.value)&&\"[object Date]\"!==Object.prototype.toString.call(this.value));return!this.previewMode&&o&&e.push((0,i.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?t.toggleAll():t.toggle()}})),this.keyName&&e.push((0,i.h)(\"span\",{class:{\"jv-key\":!0},innerText:this.showDoubleQuotes?'\"'+this.keyName+'\":':this.keyName+\":\",onClick:function(){t.onKeyclick(t.path)}})),e.push((0,i.h)(n,{class:{\"jv-push\":!0},jsonValue:this.value,keyName:this.keyName,sort:this.sort,depth:this.depth,expand:this.expand,previewMode:this.previewMode,forceExpand:this.forceExpandMe,showArrayIndex:this.showArrayIndex,showDoubleQuotes:this.showDoubleQuotes,path:this.path,\"onUpdate:expand\":function(e){t.expand=e},\"onUpdate:expandAll\":function(e){t.expand=e,t.forceExpandMe=t.expand}})),(0,i.h)(\"div\",{class:{\"jv-node\":!0,\"jv-key-node\":Boolean(this.keyName)&&!o,toggle:!this.previewMode&&o}},e)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1),r=/^\\w+:\\/\\//;t.default={name:\"JsonString\",props:{jsonValue:{type:String,required:!0}},data:function(){return{expand:!0,canExtend:!1}},mounted:function(){this.$refs.itemRef.offsetHeight>this.$refs.holderRef.offsetHeight&&(this.canExtend=!0)},methods:{toggle:function(){this.expand=!this.expand}},render:function(){var e=this.jsonValue,t=r.test(e),n=void 0;return this.expand?(n={class:{\"jv-item\":!0,\"jv-string\":!0},ref:\"itemRef\"},t?n.innerHTML='\"'+(e=''+e+\"\").toString()+'\"':n.innerText='\"'+e.toString()+'\"'):n={class:{\"jv-ellipsis\":!0},onClick:this.toggle,innerText:\"...\"},(0,o.h)(\"span\",{},[this.canExtend&&(0,o.h)(\"span\",{class:{\"jv-toggle\":!0,open:this.expand},onClick:this.toggle}),(0,o.h)(\"span\",{class:{\"jv-holder-node\":!0},ref:\"holderRef\"}),(0,o.h)(\"span\",n)])}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonUndefined\",functional:!0,props:{jsonValue:{type:Object,default:null}},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-undefined\":!0},innerText:null===this.jsonValue?\"null\":\"undefined\"})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonNumber\",functional:!0,props:{jsonValue:{type:Number,required:!0}},render:function(){var e=Number.isInteger(this.jsonValue);return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-number\":!0,\"jv-number-integer\":e,\"jv-number-float\":!e},innerText:this.jsonValue.toString()})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonBoolean\",functional:!0,props:{jsonValue:Boolean},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-boolean\":!0},innerText:this.jsonValue.toString()})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),n=n(22),i=(n=n)&&n.__esModule?n:{default:n};t.default={name:\"JsonObject\",props:{jsonValue:{type:Object,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},expand:Boolean,forceExpand:Boolean,sort:Boolean,previewMode:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:String},data:function(){return{value:{}}},computed:{ordered:function(){var t=this;if(!this.sort)return this.value;var n={};return Object.keys(this.value).sort().forEach(function(e){n[e]=t.value[e]}),n}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this;setTimeout(function(){t.value=e},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand),this.dispatchEvent()},toggleAll:function(){this.$emit(\"update:expandAll\",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var e,t=this,n=[];if(this.previewMode||this.keyName||n.push((0,r.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?t.toggleAll():t.toggle()}})),n.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},innerText:\"{\"})),this.expand)for(var o in this.ordered)this.ordered.hasOwnProperty(o)&&(e=this.ordered[o],n.push((0,r.h)(i.default,{key:o,style:{display:this.expand?void 0:\"none\"},sort:this.sort,keyName:o,depth:this.depth+1,value:e,previewMode:this.previewMode,forceExpand:this.forceExpand,showArrayIndex:this.showArrayIndex,showDoubleQuotes:this.showDoubleQuotes,path:this.path+\".\"+o})));return!this.expand&&Object.keys(this.value).length&&n.push((0,r.h)(\"span\",{class:{\"jv-ellipsis\":!0},onClick:function(e){e.altKey?t.toggleAll():t.toggle()},title:\"click to reveal object content (keys: \"+Object.keys(this.ordered).join(\", \")+\")\",innerText:\"...\"})),n.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-object\":!0},innerText:\"}\"})),(0,r.h)(\"span\",n)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var r=n(1),n=n(22),i=(n=n)&&n.__esModule?n:{default:n};t.default={name:\"JsonArray\",props:{jsonValue:{type:Array,required:!0},keyName:{type:String,default:\"\"},depth:{type:Number,default:0},sort:Boolean,expand:Boolean,forceExpand:Boolean,previewMode:Boolean,showArrayIndex:Boolean,showDoubleQuotes:Boolean,path:String},data:function(){return{value:[]}},watch:{jsonValue:function(e){this.setValue(e)}},mounted:function(){this.setValue(this.jsonValue)},methods:{setValue:function(e){var t=this,n=1n&&(t.value.push(e[n]),t.setValue(e,n+1))},0)},toggle:function(){this.$emit(\"update:expand\",!this.expand),this.dispatchEvent()},toggleAll:function(){this.$emit(\"update:expandAll\",!this.expand),this.dispatchEvent()},dispatchEvent:function(){try{this.$el.dispatchEvent(new Event(\"resized\"))}catch(e){var t=document.createEvent(\"Event\");t.initEvent(\"resized\",!0,!1),this.$el.dispatchEvent(t)}}},render:function(){var n=this,o=[];return this.previewMode||this.keyName||o.push((0,r.h)(\"span\",{class:{\"jv-toggle\":!0,open:!!this.expand},onClick:function(e){e.altKey?n.toggleAll():n.toggle()}})),o.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},innerText:\"[\"})),this.expand&&this.value.forEach(function(e,t){o.push((0,r.h)(i.default,{key:t,style:{display:n.expand?void 0:\"none\"},sort:n.sort,keyName:n.showArrayIndex?\"\"+t:\"\",depth:n.depth+1,value:e,previewMode:n.previewMode,forceExpand:n.forceExpand,showArrayIndex:n.showArrayIndex,showDoubleQuotes:n.showDoubleQuotes,path:n.path+\".\"+t}))}),!this.expand&&this.value.length&&o.push((0,r.h)(\"span\",{class:{\"jv-ellipsis\":!0},onClick:function(e){e.altKey?n.toggleAll():n.toggle()},title:\"click to reveal \"+this.value.length+\" hidden items\",innerText:\"...\"})),o.push((0,r.h)(\"span\",{class:{\"jv-item\":!0,\"jv-array\":!0},innerText:\"]\"})),(0,r.h)(\"span\",o)}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonFunction\",functional:!0,props:{jsonValue:{type:Function,required:!0}},render:function(){return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-function\":!0},attrs:{title:this.jsonValue.toString()},innerHTML:\"<function>\"})}}},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var o=n(1);t.default={name:\"JsonDate\",inject:[\"timeformat\"],functional:!0,props:{jsonValue:{type:Date,required:!0}},render:function(){var e=this.jsonValue,t=this.timeformat;return(0,o.h)(\"span\",{class:{\"jv-item\":!0,\"jv-string\":!0},innerText:'\"'+t(e)+'\"'})}}},function(e,t,n){\"use strict\";n.r(t);var o,r=n(2),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(3),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(4),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(5),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(6),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(7),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(8),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(9),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(10),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(11),i=n.n(r);for(o in n.d(t,\"default\",function(){return i.a}),r)[\"default\",\"default\"].indexOf(o)<0&&function(e){n.d(t,e,function(){return r[e]})}(o)},function(e,t,n){\"use strict\";n.r(t);var o,r=n(13);for(o in r)\"default\"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);n(39);var i=n(0),i=n.n(i)()(r.default,[[\"__file\",\"lib/json-box.vue\"]]);t.default=i},function(e,t,n){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.render=function(e,t,n,o,r,i){var a=(0,s.resolveComponent)(\"json-box\");return(0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{ref:\"viewer\",class:(0,s.normalizeClass)(i.jvClass)},[n.copyable?((0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{key:0,class:(0,s.normalizeClass)(\"jv-tooltip \"+(i.copyText.align||\"right\"))},[(0,s.createElementVNode)(\"span\",{ref:\"clip\",class:(0,s.normalizeClass)([\"jv-button\",{copied:r.copied}])},[(0,s.renderSlot)(e.$slots,\"copy\",{copied:r.copied},function(){return[(0,s.createTextVNode)((0,s.toDisplayString)(r.copied?i.copyText.copiedText:i.copyText.copyText),1)]})],2)],2)):(0,s.createCommentVNode)(\"v-if\",!0),(0,s.createElementVNode)(\"div\",{class:(0,s.normalizeClass)([\"jv-code\",{open:r.expandCode,boxed:n.boxed}])},[(0,s.createVNode)(a,{ref:\"jsonBox\",value:n.value,sort:n.sort,\"preview-mode\":n.previewMode,\"show-array-index\":n.showArrayIndex,\"show-double-quotes\":n.showDoubleQuotes,onKeyclick:i.onKeyclick},null,8,[\"value\",\"sort\",\"preview-mode\",\"show-array-index\",\"show-double-quotes\",\"onKeyclick\"])],2),r.expandableCode&&n.boxed?((0,s.openBlock)(),(0,s.createElementBlock)(\"div\",{key:1,class:\"jv-more\",onClick:t[0]||(t[0]=function(){return i.toggleExpandCode&&i.toggleExpandCode.apply(i,arguments)})},[(0,s.createElementVNode)(\"span\",{class:(0,s.normalizeClass)([\"jv-toggle\",{open:!!r.expandCode}])},null,2)])):(0,s.createCommentVNode)(\"v-if\",!0)],2)};var s=n(1)},function(e,t,n){var o=n(40);\"string\"==typeof o&&(o=[[e.i,o,\"\"]]);var r={hmr:!0,transform:void 0};n(26)(o,r);o.locals&&(e.exports=o.locals)},function(e,t,n){\"use strict\";e.exports=function(n){var u=[];return u.toString=function(){return this.map(function(e){var t=function(e,t){var n=e[1]||\"\",o=e[3];if(!o)return n;if(t&&\"function\"==typeof btoa){e=function(e){e=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),e=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(e);return\"/*# \".concat(e,\" */\")}(o),t=o.sources.map(function(e){return\"/*# sourceURL=\".concat(o.sourceRoot||\"\").concat(e,\" */\")});return[n].concat(t).concat([e]).join(\"\\n\")}return[n].join(\"\\n\")}(e,n);return e[2]?\"@media \".concat(e[2],\" {\").concat(t,\"}\"):t}).join(\"\")},u.i=function(e,t,n){\"string\"==typeof e&&(e=[[null,e,\"\"]]);var o={};if(n)for(var r=0;r compare(a, b, loose) > 0\nmodule.exports = gt\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendErrors = exports.resetErrorsCount = exports.reportExtraError = exports.reportError = exports.keyword$DataError = exports.keywordError = void 0;\nconst codegen_1 = require(\"./codegen\");\nconst util_1 = require(\"./util\");\nconst names_1 = require(\"./names\");\nexports.keywordError = {\n message: ({ keyword }) => (0, codegen_1.str) `must pass \"${keyword}\" keyword validation`,\n};\nexports.keyword$DataError = {\n message: ({ keyword, schemaType }) => schemaType\n ? (0, codegen_1.str) `\"${keyword}\" keyword must be ${schemaType} ($data)`\n : (0, codegen_1.str) `\"${keyword}\" keyword is invalid ($data)`,\n};\nfunction reportError(cxt, error = exports.keywordError, errorPaths, overrideAllErrors) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n if (overrideAllErrors !== null && overrideAllErrors !== void 0 ? overrideAllErrors : (compositeRule || allErrors)) {\n addError(gen, errObj);\n }\n else {\n returnErrors(it, (0, codegen_1._) `[${errObj}]`);\n }\n}\nexports.reportError = reportError;\nfunction reportExtraError(cxt, error = exports.keywordError, errorPaths) {\n const { it } = cxt;\n const { gen, compositeRule, allErrors } = it;\n const errObj = errorObjectCode(cxt, error, errorPaths);\n addError(gen, errObj);\n if (!(compositeRule || allErrors)) {\n returnErrors(it, names_1.default.vErrors);\n }\n}\nexports.reportExtraError = reportExtraError;\nfunction resetErrorsCount(gen, errsCount) {\n gen.assign(names_1.default.errors, errsCount);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} !== null`, () => gen.if(errsCount, () => gen.assign((0, codegen_1._) `${names_1.default.vErrors}.length`, errsCount), () => gen.assign(names_1.default.vErrors, null)));\n}\nexports.resetErrorsCount = resetErrorsCount;\nfunction extendErrors({ gen, keyword, schemaValue, data, errsCount, it, }) {\n /* istanbul ignore if */\n if (errsCount === undefined)\n throw new Error(\"ajv implementation error\");\n const err = gen.name(\"err\");\n gen.forRange(\"i\", errsCount, names_1.default.errors, (i) => {\n gen.const(err, (0, codegen_1._) `${names_1.default.vErrors}[${i}]`);\n gen.if((0, codegen_1._) `${err}.instancePath === undefined`, () => gen.assign((0, codegen_1._) `${err}.instancePath`, (0, codegen_1.strConcat)(names_1.default.instancePath, it.errorPath)));\n gen.assign((0, codegen_1._) `${err}.schemaPath`, (0, codegen_1.str) `${it.errSchemaPath}/${keyword}`);\n if (it.opts.verbose) {\n gen.assign((0, codegen_1._) `${err}.schema`, schemaValue);\n gen.assign((0, codegen_1._) `${err}.data`, data);\n }\n });\n}\nexports.extendErrors = extendErrors;\nfunction addError(gen, errObj) {\n const err = gen.const(\"err\", errObj);\n gen.if((0, codegen_1._) `${names_1.default.vErrors} === null`, () => gen.assign(names_1.default.vErrors, (0, codegen_1._) `[${err}]`), (0, codegen_1._) `${names_1.default.vErrors}.push(${err})`);\n gen.code((0, codegen_1._) `${names_1.default.errors}++`);\n}\nfunction returnErrors(it, errs) {\n const { gen, validateName, schemaEnv } = it;\n if (schemaEnv.$async) {\n gen.throw((0, codegen_1._) `new ${it.ValidationError}(${errs})`);\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, errs);\n gen.return(false);\n }\n}\nconst E = {\n keyword: new codegen_1.Name(\"keyword\"),\n schemaPath: new codegen_1.Name(\"schemaPath\"), // also used in JTD errors\n params: new codegen_1.Name(\"params\"),\n propertyName: new codegen_1.Name(\"propertyName\"),\n message: new codegen_1.Name(\"message\"),\n schema: new codegen_1.Name(\"schema\"),\n parentSchema: new codegen_1.Name(\"parentSchema\"),\n};\nfunction errorObjectCode(cxt, error, errorPaths) {\n const { createErrors } = cxt.it;\n if (createErrors === false)\n return (0, codegen_1._) `{}`;\n return errorObject(cxt, error, errorPaths);\n}\nfunction errorObject(cxt, error, errorPaths = {}) {\n const { gen, it } = cxt;\n const keyValues = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ];\n extraErrorProps(cxt, error, keyValues);\n return gen.object(...keyValues);\n}\nfunction errorInstancePath({ errorPath }, { instancePath }) {\n const instPath = instancePath\n ? (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(instancePath, util_1.Type.Str)}`\n : errorPath;\n return [names_1.default.instancePath, (0, codegen_1.strConcat)(names_1.default.instancePath, instPath)];\n}\nfunction errorSchemaPath({ keyword, it: { errSchemaPath } }, { schemaPath, parentSchema }) {\n let schPath = parentSchema ? errSchemaPath : (0, codegen_1.str) `${errSchemaPath}/${keyword}`;\n if (schemaPath) {\n schPath = (0, codegen_1.str) `${schPath}${(0, util_1.getErrorPath)(schemaPath, util_1.Type.Str)}`;\n }\n return [E.schemaPath, schPath];\n}\nfunction extraErrorProps(cxt, { params, message }, keyValues) {\n const { keyword, data, schemaValue, it } = cxt;\n const { opts, propertyName, topSchemaRef, schemaPath } = it;\n keyValues.push([E.keyword, keyword], [E.params, typeof params == \"function\" ? params(cxt) : params || (0, codegen_1._) `{}`]);\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message]);\n }\n if (opts.verbose) {\n keyValues.push([E.schema, schemaValue], [E.parentSchema, (0, codegen_1._) `${topSchemaRef}${schemaPath}`], [names_1.default.data, data]);\n }\n if (propertyName)\n keyValues.push([E.propertyName, propertyName]);\n}\n//# sourceMappingURL=errors.js.map","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/twig/twig.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"twig\",\n extensions: [\".twig\"],\n aliases: [\"Twig\", \"twig\"],\n mimetypes: [\"text/x-twig\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/twig/twig\"], resolve, reject);\n });\n } else {\n return import(\"./twig.js\");\n }\n }\n});\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/ecl/ecl.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"ecl\",\n extensions: [\".ecl\"],\n aliases: [\"ECL\", \"Ecl\", \"ecl\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/ecl/ecl\"], resolve, reject);\n });\n } else {\n return import(\"./ecl.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { getCodeEditor } from '../../../browser/editorBrowser.js';\nimport { AbstractEditorNavigationQuickAccessProvider } from './editorNavigationQuickAccess.js';\nimport { localize } from '../../../../nls.js';\nexport class AbstractGotoLineQuickAccessProvider extends AbstractEditorNavigationQuickAccessProvider {\n constructor() {\n super({ canAcceptInBackground: true });\n }\n provideWithoutTextEditor(picker) {\n const label = localize('cannotRunGotoLine', \"Open a text editor first to go to a line.\");\n picker.items = [{ label }];\n picker.ariaLabel = label;\n return Disposable.None;\n }\n provideWithTextEditor(context, picker, token) {\n const editor = context.editor;\n const disposables = new DisposableStore();\n // Goto line once picked\n disposables.add(picker.onDidAccept(event => {\n const [item] = picker.selectedItems;\n if (item) {\n if (!this.isValidLineNumber(editor, item.lineNumber)) {\n return;\n }\n this.gotoLocation(context, { range: this.toRange(item.lineNumber, item.column), keyMods: picker.keyMods, preserveFocus: event.inBackground });\n if (!event.inBackground) {\n picker.hide();\n }\n }\n }));\n // React to picker changes\n const updatePickerAndEditor = () => {\n const position = this.parsePosition(editor, picker.value.trim().substr(AbstractGotoLineQuickAccessProvider.PREFIX.length));\n const label = this.getPickLabel(editor, position.lineNumber, position.column);\n // Picker\n picker.items = [{\n lineNumber: position.lineNumber,\n column: position.column,\n label\n }];\n // ARIA Label\n picker.ariaLabel = label;\n // Clear decorations for invalid range\n if (!this.isValidLineNumber(editor, position.lineNumber)) {\n this.clearDecorations(editor);\n return;\n }\n // Reveal\n const range = this.toRange(position.lineNumber, position.column);\n editor.revealRangeInCenter(range, 0 /* ScrollType.Smooth */);\n // Decorate\n this.addDecorations(editor, range);\n };\n updatePickerAndEditor();\n disposables.add(picker.onDidChangeValue(() => updatePickerAndEditor()));\n // Adjust line number visibility as needed\n const codeEditor = getCodeEditor(editor);\n if (codeEditor) {\n const options = codeEditor.getOptions();\n const lineNumbers = options.get(68 /* EditorOption.lineNumbers */);\n if (lineNumbers.renderType === 2 /* RenderLineNumbersType.Relative */) {\n codeEditor.updateOptions({ lineNumbers: 'on' });\n disposables.add(toDisposable(() => codeEditor.updateOptions({ lineNumbers: 'relative' })));\n }\n }\n return disposables;\n }\n toRange(lineNumber = 1, column = 1) {\n return {\n startLineNumber: lineNumber,\n startColumn: column,\n endLineNumber: lineNumber,\n endColumn: column\n };\n }\n parsePosition(editor, value) {\n // Support line-col formats of `line,col`, `line:col`, `line#col`\n const numbers = value.split(/,|:|#/).map(part => parseInt(part, 10)).filter(part => !isNaN(part));\n const endLine = this.lineCount(editor) + 1;\n return {\n lineNumber: numbers[0] > 0 ? numbers[0] : endLine + numbers[0],\n column: numbers[1]\n };\n }\n getPickLabel(editor, lineNumber, column) {\n // Location valid: indicate this as picker label\n if (this.isValidLineNumber(editor, lineNumber)) {\n if (this.isValidColumn(editor, lineNumber, column)) {\n return localize('gotoLineColumnLabel', \"Go to line {0} and character {1}.\", lineNumber, column);\n }\n return localize('gotoLineLabel', \"Go to line {0}.\", lineNumber);\n }\n // Location invalid: show generic label\n const position = editor.getPosition() || { lineNumber: 1, column: 1 };\n const lineCount = this.lineCount(editor);\n if (lineCount > 1) {\n return localize('gotoLineLabelEmptyWithLimit', \"Current Line: {0}, Character: {1}. Type a line number between 1 and {2} to navigate to.\", position.lineNumber, position.column, lineCount);\n }\n return localize('gotoLineLabelEmpty', \"Current Line: {0}, Character: {1}. Type a line number to navigate to.\", position.lineNumber, position.column);\n }\n isValidLineNumber(editor, lineNumber) {\n if (!lineNumber || typeof lineNumber !== 'number') {\n return false;\n }\n return lineNumber > 0 && lineNumber <= this.lineCount(editor);\n }\n isValidColumn(editor, lineNumber, column) {\n if (!column || typeof column !== 'number') {\n return false;\n }\n const model = this.getModel(editor);\n if (!model) {\n return false;\n }\n const positionCandidate = { lineNumber, column };\n return model.validatePosition(positionCandidate).equals(positionCandidate);\n }\n lineCount(editor) {\n var _a, _b;\n return (_b = (_a = this.getModel(editor)) === null || _a === void 0 ? void 0 : _a.getLineCount()) !== null && _b !== void 0 ? _b : 0;\n }\n}\nAbstractGotoLineQuickAccessProvider.PREFIX = ':';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { AbstractGotoLineQuickAccessProvider } from '../../../contrib/quickAccess/browser/gotoLineQuickAccess.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { Extensions } from '../../../../platform/quickinput/common/quickAccess.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { GoToLineNLS } from '../../../common/standaloneStrings.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { EditorAction, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IQuickInputService } from '../../../../platform/quickinput/common/quickInput.js';\nlet StandaloneGotoLineQuickAccessProvider = class StandaloneGotoLineQuickAccessProvider extends AbstractGotoLineQuickAccessProvider {\n constructor(editorService) {\n super();\n this.editorService = editorService;\n this.onDidActiveTextEditorControlChange = Event.None;\n }\n get activeTextEditorControl() {\n var _a;\n return (_a = this.editorService.getFocusedCodeEditor()) !== null && _a !== void 0 ? _a : undefined;\n }\n};\nStandaloneGotoLineQuickAccessProvider = __decorate([\n __param(0, ICodeEditorService)\n], StandaloneGotoLineQuickAccessProvider);\nexport { StandaloneGotoLineQuickAccessProvider };\nexport class GotoLineAction extends EditorAction {\n constructor() {\n super({\n id: GotoLineAction.ID,\n label: GoToLineNLS.gotoLineActionLabel,\n alias: 'Go to Line/Column...',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.focus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 37 /* KeyCode.KeyG */,\n mac: { primary: 256 /* KeyMod.WinCtrl */ | 37 /* KeyCode.KeyG */ },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor) {\n accessor.get(IQuickInputService).quickAccess.show(StandaloneGotoLineQuickAccessProvider.PREFIX);\n }\n}\nGotoLineAction.ID = 'editor.action.gotoLine';\nregisterEditorAction(GotoLineAction);\nRegistry.as(Extensions.Quickaccess).registerQuickAccessProvider({\n ctor: StandaloneGotoLineQuickAccessProvider,\n prefix: StandaloneGotoLineQuickAccessProvider.PREFIX,\n helpEntries: [{ description: GoToLineNLS.gotoLineActionLabel, commandId: GotoLineAction.ID }]\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { TokenMetadata } from '../encodedTokenAttributes.js';\nexport class LineTokens {\n static createEmpty(lineContent, decoder) {\n const defaultMetadata = LineTokens.defaultTokenMetadata;\n const tokens = new Uint32Array(2);\n tokens[0] = lineContent.length;\n tokens[1] = defaultMetadata;\n return new LineTokens(tokens, lineContent, decoder);\n }\n static createFromTextAndMetadata(data, decoder) {\n let offset = 0;\n let fullText = '';\n const tokens = new Array();\n for (const { text, metadata } of data) {\n tokens.push(offset + text.length, metadata);\n offset += text.length;\n fullText += text;\n }\n return new LineTokens(new Uint32Array(tokens), fullText, decoder);\n }\n constructor(tokens, text, decoder) {\n this._lineTokensBrand = undefined;\n this._tokens = tokens;\n this._tokensCount = (this._tokens.length >>> 1);\n this._text = text;\n this.languageIdCodec = decoder;\n }\n equals(other) {\n if (other instanceof LineTokens) {\n return this.slicedEquals(other, 0, this._tokensCount);\n }\n return false;\n }\n slicedEquals(other, sliceFromTokenIndex, sliceTokenCount) {\n if (this._text !== other._text) {\n return false;\n }\n if (this._tokensCount !== other._tokensCount) {\n return false;\n }\n const from = (sliceFromTokenIndex << 1);\n const to = from + (sliceTokenCount << 1);\n for (let i = from; i < to; i++) {\n if (this._tokens[i] !== other._tokens[i]) {\n return false;\n }\n }\n return true;\n }\n getLineContent() {\n return this._text;\n }\n getCount() {\n return this._tokensCount;\n }\n getStartOffset(tokenIndex) {\n if (tokenIndex > 0) {\n return this._tokens[(tokenIndex - 1) << 1];\n }\n return 0;\n }\n getMetadata(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return metadata;\n }\n getLanguageId(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n const languageId = TokenMetadata.getLanguageId(metadata);\n return this.languageIdCodec.decodeLanguageId(languageId);\n }\n getStandardTokenType(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getTokenType(metadata);\n }\n getForeground(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getForeground(metadata);\n }\n getClassName(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getClassNameFromMetadata(metadata);\n }\n getInlineStyle(tokenIndex, colorMap) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getInlineStyleFromMetadata(metadata, colorMap);\n }\n getPresentation(tokenIndex) {\n const metadata = this._tokens[(tokenIndex << 1) + 1];\n return TokenMetadata.getPresentationFromMetadata(metadata);\n }\n getEndOffset(tokenIndex) {\n return this._tokens[tokenIndex << 1];\n }\n /**\n * Find the token containing offset `offset`.\n * @param offset The search offset\n * @return The index of the token containing the offset.\n */\n findTokenIndexAtOffset(offset) {\n return LineTokens.findIndexInTokensArray(this._tokens, offset);\n }\n inflate() {\n return this;\n }\n sliceAndInflate(startOffset, endOffset, deltaOffset) {\n return new SliceLineTokens(this, startOffset, endOffset, deltaOffset);\n }\n static convertToEndOffset(tokens, lineTextLength) {\n const tokenCount = (tokens.length >>> 1);\n const lastTokenIndex = tokenCount - 1;\n for (let tokenIndex = 0; tokenIndex < lastTokenIndex; tokenIndex++) {\n tokens[tokenIndex << 1] = tokens[(tokenIndex + 1) << 1];\n }\n tokens[lastTokenIndex << 1] = lineTextLength;\n }\n static findIndexInTokensArray(tokens, desiredIndex) {\n if (tokens.length <= 2) {\n return 0;\n }\n let low = 0;\n let high = (tokens.length >>> 1) - 1;\n while (low < high) {\n const mid = low + Math.floor((high - low) / 2);\n const endOffset = tokens[(mid << 1)];\n if (endOffset === desiredIndex) {\n return mid + 1;\n }\n else if (endOffset < desiredIndex) {\n low = mid + 1;\n }\n else if (endOffset > desiredIndex) {\n high = mid;\n }\n }\n return low;\n }\n /**\n * @pure\n * @param insertTokens Must be sorted by offset.\n */\n withInserted(insertTokens) {\n if (insertTokens.length === 0) {\n return this;\n }\n let nextOriginalTokenIdx = 0;\n let nextInsertTokenIdx = 0;\n let text = '';\n const newTokens = new Array();\n let originalEndOffset = 0;\n while (true) {\n const nextOriginalTokenEndOffset = nextOriginalTokenIdx < this._tokensCount ? this._tokens[nextOriginalTokenIdx << 1] : -1;\n const nextInsertToken = nextInsertTokenIdx < insertTokens.length ? insertTokens[nextInsertTokenIdx] : null;\n if (nextOriginalTokenEndOffset !== -1 && (nextInsertToken === null || nextOriginalTokenEndOffset <= nextInsertToken.offset)) {\n // original token ends before next insert token\n text += this._text.substring(originalEndOffset, nextOriginalTokenEndOffset);\n const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n newTokens.push(text.length, metadata);\n nextOriginalTokenIdx++;\n originalEndOffset = nextOriginalTokenEndOffset;\n }\n else if (nextInsertToken) {\n if (nextInsertToken.offset > originalEndOffset) {\n // insert token is in the middle of the next token.\n text += this._text.substring(originalEndOffset, nextInsertToken.offset);\n const metadata = this._tokens[(nextOriginalTokenIdx << 1) + 1];\n newTokens.push(text.length, metadata);\n originalEndOffset = nextInsertToken.offset;\n }\n text += nextInsertToken.text;\n newTokens.push(text.length, nextInsertToken.tokenMetadata);\n nextInsertTokenIdx++;\n }\n else {\n break;\n }\n }\n return new LineTokens(new Uint32Array(newTokens), text, this.languageIdCodec);\n }\n getTokenText(tokenIndex) {\n const startOffset = this.getStartOffset(tokenIndex);\n const endOffset = this.getEndOffset(tokenIndex);\n const text = this._text.substring(startOffset, endOffset);\n return text;\n }\n forEach(callback) {\n const tokenCount = this.getCount();\n for (let tokenIndex = 0; tokenIndex < tokenCount; tokenIndex++) {\n callback(tokenIndex);\n }\n }\n}\nLineTokens.defaultTokenMetadata = ((0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)) >>> 0;\nclass SliceLineTokens {\n constructor(source, startOffset, endOffset, deltaOffset) {\n this._source = source;\n this._startOffset = startOffset;\n this._endOffset = endOffset;\n this._deltaOffset = deltaOffset;\n this._firstTokenIndex = source.findTokenIndexAtOffset(startOffset);\n this.languageIdCodec = source.languageIdCodec;\n this._tokensCount = 0;\n for (let i = this._firstTokenIndex, len = source.getCount(); i < len; i++) {\n const tokenStartOffset = source.getStartOffset(i);\n if (tokenStartOffset >= endOffset) {\n break;\n }\n this._tokensCount++;\n }\n }\n getMetadata(tokenIndex) {\n return this._source.getMetadata(this._firstTokenIndex + tokenIndex);\n }\n getLanguageId(tokenIndex) {\n return this._source.getLanguageId(this._firstTokenIndex + tokenIndex);\n }\n getLineContent() {\n return this._source.getLineContent().substring(this._startOffset, this._endOffset);\n }\n equals(other) {\n if (other instanceof SliceLineTokens) {\n return (this._startOffset === other._startOffset\n && this._endOffset === other._endOffset\n && this._deltaOffset === other._deltaOffset\n && this._source.slicedEquals(other._source, this._firstTokenIndex, this._tokensCount));\n }\n return false;\n }\n getCount() {\n return this._tokensCount;\n }\n getStandardTokenType(tokenIndex) {\n return this._source.getStandardTokenType(this._firstTokenIndex + tokenIndex);\n }\n getForeground(tokenIndex) {\n return this._source.getForeground(this._firstTokenIndex + tokenIndex);\n }\n getEndOffset(tokenIndex) {\n const tokenEndOffset = this._source.getEndOffset(this._firstTokenIndex + tokenIndex);\n return Math.min(this._endOffset, tokenEndOffset) - this._startOffset + this._deltaOffset;\n }\n getClassName(tokenIndex) {\n return this._source.getClassName(this._firstTokenIndex + tokenIndex);\n }\n getInlineStyle(tokenIndex, colorMap) {\n return this._source.getInlineStyle(this._firstTokenIndex + tokenIndex, colorMap);\n }\n getPresentation(tokenIndex) {\n return this._source.getPresentation(this._firstTokenIndex + tokenIndex);\n }\n findTokenIndexAtOffset(offset) {\n return this._source.findTokenIndexAtOffset(offset + this._startOffset - this._deltaOffset) - this._firstTokenIndex;\n }\n getTokenText(tokenIndex) {\n const adjustedTokenIndex = this._firstTokenIndex + tokenIndex;\n const tokenStartOffset = this._source.getStartOffset(adjustedTokenIndex);\n const tokenEndOffset = this._source.getEndOffset(adjustedTokenIndex);\n let text = this._source.getTokenText(adjustedTokenIndex);\n if (tokenStartOffset < this._startOffset) {\n text = text.substring(this._startOffset - tokenStartOffset);\n }\n if (tokenEndOffset > this._endOffset) {\n text = text.substring(0, text.length - (tokenEndOffset - this._endOffset));\n }\n return text;\n }\n forEach(callback) {\n for (let tokenIndex = 0; tokenIndex < this.getCount(); tokenIndex++) {\n callback(tokenIndex);\n }\n }\n}\nexport function getStandardTokenTypeAtPosition(model, position) {\n const lineNumber = position.lineNumber;\n if (!model.tokenization.isCheapToTokenize(lineNumber)) {\n return undefined;\n }\n model.tokenization.forceTokenization(lineNumber);\n const lineTokens = model.tokenization.getLineTokens(lineNumber);\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n const tokenType = lineTokens.getStandardTokenType(tokenIndex);\n return tokenType;\n}\n","/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT © Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var SeriesCollectionDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-series-collection';\n }\n }\n});\nexport var SeriesCollectionPlugin = {\n name: 'e-series-collection',\n install: function (Vue) {\n Vue.component(SeriesCollectionPlugin.name, SeriesCollectionDirective);\n }\n};\nexport var SeriesDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-series';\n }\n }\n});\nexport var SeriesPlugin = {\n name: 'e-series',\n install: function (Vue) {\n Vue.component(SeriesPlugin.name, SeriesDirective);\n }\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\nimport { CursorColumns } from './cursorColumns.js';\nfunction _normalizeIndentationFromWhitespace(str, indentSize, insertSpaces) {\n let spacesCnt = 0;\n for (let i = 0; i < str.length; i++) {\n if (str.charAt(i) === '\\t') {\n spacesCnt = CursorColumns.nextIndentTabStop(spacesCnt, indentSize);\n }\n else {\n spacesCnt++;\n }\n }\n let result = '';\n if (!insertSpaces) {\n const tabsCnt = Math.floor(spacesCnt / indentSize);\n spacesCnt = spacesCnt % indentSize;\n for (let i = 0; i < tabsCnt; i++) {\n result += '\\t';\n }\n }\n for (let i = 0; i < spacesCnt; i++) {\n result += ' ';\n }\n return result;\n}\nexport function normalizeIndentation(str, indentSize, insertSpaces) {\n let firstNonWhitespaceIndex = strings.firstNonWhitespaceIndex(str);\n if (firstNonWhitespaceIndex === -1) {\n firstNonWhitespaceIndex = str.length;\n }\n return _normalizeIndentationFromWhitespace(str.substring(0, firstNonWhitespaceIndex), indentSize, insertSpaces) + str.substring(firstNonWhitespaceIndex);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function isLocalizedString(thing) {\n return thing\n && typeof thing === 'object'\n && typeof thing.original === 'string'\n && typeof thing.value === 'string';\n}\nexport function isICommandActionToggleInfo(thing) {\n return thing ? thing.condition !== undefined : false;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar MenuItemAction_1;\nimport { SubmenuAction } from '../../../base/common/actions.js';\nimport { ThemeIcon } from '../../../base/common/themables.js';\nimport { MicrotaskEmitter } from '../../../base/common/event.js';\nimport { DisposableStore, dispose, toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { CommandsRegistry, ICommandService } from '../../commands/common/commands.js';\nimport { ContextKeyExpr, IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nimport { KeybindingsRegistry } from '../../keybinding/common/keybindingsRegistry.js';\nexport function isIMenuItem(item) {\n return item.command !== undefined;\n}\nexport function isISubmenuItem(item) {\n return item.submenu !== undefined;\n}\nexport class MenuId {\n /**\n * Create a new `MenuId` with the unique identifier. Will throw if a menu\n * with the identifier already exists, use `MenuId.for(ident)` or a unique\n * identifier\n */\n constructor(identifier) {\n if (MenuId._instances.has(identifier)) {\n throw new TypeError(`MenuId with identifier '${identifier}' already exists. Use MenuId.for(ident) or a unique identifier`);\n }\n MenuId._instances.set(identifier, this);\n this.id = identifier;\n }\n}\nMenuId._instances = new Map();\nMenuId.CommandPalette = new MenuId('CommandPalette');\nMenuId.DebugBreakpointsContext = new MenuId('DebugBreakpointsContext');\nMenuId.DebugCallStackContext = new MenuId('DebugCallStackContext');\nMenuId.DebugConsoleContext = new MenuId('DebugConsoleContext');\nMenuId.DebugVariablesContext = new MenuId('DebugVariablesContext');\nMenuId.NotebookVariablesContext = new MenuId('NotebookVariablesContext');\nMenuId.DebugHoverContext = new MenuId('DebugHoverContext');\nMenuId.DebugWatchContext = new MenuId('DebugWatchContext');\nMenuId.DebugToolBar = new MenuId('DebugToolBar');\nMenuId.DebugToolBarStop = new MenuId('DebugToolBarStop');\nMenuId.EditorContext = new MenuId('EditorContext');\nMenuId.SimpleEditorContext = new MenuId('SimpleEditorContext');\nMenuId.EditorContent = new MenuId('EditorContent');\nMenuId.EditorLineNumberContext = new MenuId('EditorLineNumberContext');\nMenuId.EditorContextCopy = new MenuId('EditorContextCopy');\nMenuId.EditorContextPeek = new MenuId('EditorContextPeek');\nMenuId.EditorContextShare = new MenuId('EditorContextShare');\nMenuId.EditorTitle = new MenuId('EditorTitle');\nMenuId.EditorTitleRun = new MenuId('EditorTitleRun');\nMenuId.EditorTitleContext = new MenuId('EditorTitleContext');\nMenuId.EditorTitleContextShare = new MenuId('EditorTitleContextShare');\nMenuId.EmptyEditorGroup = new MenuId('EmptyEditorGroup');\nMenuId.EmptyEditorGroupContext = new MenuId('EmptyEditorGroupContext');\nMenuId.EditorTabsBarContext = new MenuId('EditorTabsBarContext');\nMenuId.EditorTabsBarShowTabsSubmenu = new MenuId('EditorTabsBarShowTabsSubmenu');\nMenuId.EditorTabsBarShowTabsZenModeSubmenu = new MenuId('EditorTabsBarShowTabsZenModeSubmenu');\nMenuId.EditorActionsPositionSubmenu = new MenuId('EditorActionsPositionSubmenu');\nMenuId.ExplorerContext = new MenuId('ExplorerContext');\nMenuId.ExplorerContextShare = new MenuId('ExplorerContextShare');\nMenuId.ExtensionContext = new MenuId('ExtensionContext');\nMenuId.GlobalActivity = new MenuId('GlobalActivity');\nMenuId.CommandCenter = new MenuId('CommandCenter');\nMenuId.CommandCenterCenter = new MenuId('CommandCenterCenter');\nMenuId.LayoutControlMenuSubmenu = new MenuId('LayoutControlMenuSubmenu');\nMenuId.LayoutControlMenu = new MenuId('LayoutControlMenu');\nMenuId.MenubarMainMenu = new MenuId('MenubarMainMenu');\nMenuId.MenubarAppearanceMenu = new MenuId('MenubarAppearanceMenu');\nMenuId.MenubarDebugMenu = new MenuId('MenubarDebugMenu');\nMenuId.MenubarEditMenu = new MenuId('MenubarEditMenu');\nMenuId.MenubarCopy = new MenuId('MenubarCopy');\nMenuId.MenubarFileMenu = new MenuId('MenubarFileMenu');\nMenuId.MenubarGoMenu = new MenuId('MenubarGoMenu');\nMenuId.MenubarHelpMenu = new MenuId('MenubarHelpMenu');\nMenuId.MenubarLayoutMenu = new MenuId('MenubarLayoutMenu');\nMenuId.MenubarNewBreakpointMenu = new MenuId('MenubarNewBreakpointMenu');\nMenuId.PanelAlignmentMenu = new MenuId('PanelAlignmentMenu');\nMenuId.PanelPositionMenu = new MenuId('PanelPositionMenu');\nMenuId.ActivityBarPositionMenu = new MenuId('ActivityBarPositionMenu');\nMenuId.MenubarPreferencesMenu = new MenuId('MenubarPreferencesMenu');\nMenuId.MenubarRecentMenu = new MenuId('MenubarRecentMenu');\nMenuId.MenubarSelectionMenu = new MenuId('MenubarSelectionMenu');\nMenuId.MenubarShare = new MenuId('MenubarShare');\nMenuId.MenubarSwitchEditorMenu = new MenuId('MenubarSwitchEditorMenu');\nMenuId.MenubarSwitchGroupMenu = new MenuId('MenubarSwitchGroupMenu');\nMenuId.MenubarTerminalMenu = new MenuId('MenubarTerminalMenu');\nMenuId.MenubarViewMenu = new MenuId('MenubarViewMenu');\nMenuId.MenubarHomeMenu = new MenuId('MenubarHomeMenu');\nMenuId.OpenEditorsContext = new MenuId('OpenEditorsContext');\nMenuId.OpenEditorsContextShare = new MenuId('OpenEditorsContextShare');\nMenuId.ProblemsPanelContext = new MenuId('ProblemsPanelContext');\nMenuId.SCMInputBox = new MenuId('SCMInputBox');\nMenuId.SCMChangesSeparator = new MenuId('SCMChangesSeparator');\nMenuId.SCMIncomingChanges = new MenuId('SCMIncomingChanges');\nMenuId.SCMIncomingChangesContext = new MenuId('SCMIncomingChangesContext');\nMenuId.SCMIncomingChangesSetting = new MenuId('SCMIncomingChangesSetting');\nMenuId.SCMOutgoingChanges = new MenuId('SCMOutgoingChanges');\nMenuId.SCMOutgoingChangesContext = new MenuId('SCMOutgoingChangesContext');\nMenuId.SCMOutgoingChangesSetting = new MenuId('SCMOutgoingChangesSetting');\nMenuId.SCMIncomingChangesAllChangesContext = new MenuId('SCMIncomingChangesAllChangesContext');\nMenuId.SCMIncomingChangesHistoryItemContext = new MenuId('SCMIncomingChangesHistoryItemContext');\nMenuId.SCMOutgoingChangesAllChangesContext = new MenuId('SCMOutgoingChangesAllChangesContext');\nMenuId.SCMOutgoingChangesHistoryItemContext = new MenuId('SCMOutgoingChangesHistoryItemContext');\nMenuId.SCMChangeContext = new MenuId('SCMChangeContext');\nMenuId.SCMResourceContext = new MenuId('SCMResourceContext');\nMenuId.SCMResourceContextShare = new MenuId('SCMResourceContextShare');\nMenuId.SCMResourceFolderContext = new MenuId('SCMResourceFolderContext');\nMenuId.SCMResourceGroupContext = new MenuId('SCMResourceGroupContext');\nMenuId.SCMSourceControl = new MenuId('SCMSourceControl');\nMenuId.SCMSourceControlInline = new MenuId('SCMSourceControlInline');\nMenuId.SCMSourceControlTitle = new MenuId('SCMSourceControlTitle');\nMenuId.SCMTitle = new MenuId('SCMTitle');\nMenuId.SearchContext = new MenuId('SearchContext');\nMenuId.SearchActionMenu = new MenuId('SearchActionContext');\nMenuId.StatusBarWindowIndicatorMenu = new MenuId('StatusBarWindowIndicatorMenu');\nMenuId.StatusBarRemoteIndicatorMenu = new MenuId('StatusBarRemoteIndicatorMenu');\nMenuId.StickyScrollContext = new MenuId('StickyScrollContext');\nMenuId.TestItem = new MenuId('TestItem');\nMenuId.TestItemGutter = new MenuId('TestItemGutter');\nMenuId.TestMessageContext = new MenuId('TestMessageContext');\nMenuId.TestMessageContent = new MenuId('TestMessageContent');\nMenuId.TestPeekElement = new MenuId('TestPeekElement');\nMenuId.TestPeekTitle = new MenuId('TestPeekTitle');\nMenuId.TouchBarContext = new MenuId('TouchBarContext');\nMenuId.TitleBarContext = new MenuId('TitleBarContext');\nMenuId.TitleBarTitleContext = new MenuId('TitleBarTitleContext');\nMenuId.TunnelContext = new MenuId('TunnelContext');\nMenuId.TunnelPrivacy = new MenuId('TunnelPrivacy');\nMenuId.TunnelProtocol = new MenuId('TunnelProtocol');\nMenuId.TunnelPortInline = new MenuId('TunnelInline');\nMenuId.TunnelTitle = new MenuId('TunnelTitle');\nMenuId.TunnelLocalAddressInline = new MenuId('TunnelLocalAddressInline');\nMenuId.TunnelOriginInline = new MenuId('TunnelOriginInline');\nMenuId.ViewItemContext = new MenuId('ViewItemContext');\nMenuId.ViewContainerTitle = new MenuId('ViewContainerTitle');\nMenuId.ViewContainerTitleContext = new MenuId('ViewContainerTitleContext');\nMenuId.ViewTitle = new MenuId('ViewTitle');\nMenuId.ViewTitleContext = new MenuId('ViewTitleContext');\nMenuId.CommentEditorActions = new MenuId('CommentEditorActions');\nMenuId.CommentThreadTitle = new MenuId('CommentThreadTitle');\nMenuId.CommentThreadActions = new MenuId('CommentThreadActions');\nMenuId.CommentThreadAdditionalActions = new MenuId('CommentThreadAdditionalActions');\nMenuId.CommentThreadTitleContext = new MenuId('CommentThreadTitleContext');\nMenuId.CommentThreadCommentContext = new MenuId('CommentThreadCommentContext');\nMenuId.CommentTitle = new MenuId('CommentTitle');\nMenuId.CommentActions = new MenuId('CommentActions');\nMenuId.CommentsViewThreadActions = new MenuId('CommentsViewThreadActions');\nMenuId.InteractiveToolbar = new MenuId('InteractiveToolbar');\nMenuId.InteractiveCellTitle = new MenuId('InteractiveCellTitle');\nMenuId.InteractiveCellDelete = new MenuId('InteractiveCellDelete');\nMenuId.InteractiveCellExecute = new MenuId('InteractiveCellExecute');\nMenuId.InteractiveInputExecute = new MenuId('InteractiveInputExecute');\nMenuId.IssueReporter = new MenuId('IssueReporter');\nMenuId.NotebookToolbar = new MenuId('NotebookToolbar');\nMenuId.NotebookStickyScrollContext = new MenuId('NotebookStickyScrollContext');\nMenuId.NotebookCellTitle = new MenuId('NotebookCellTitle');\nMenuId.NotebookCellDelete = new MenuId('NotebookCellDelete');\nMenuId.NotebookCellInsert = new MenuId('NotebookCellInsert');\nMenuId.NotebookCellBetween = new MenuId('NotebookCellBetween');\nMenuId.NotebookCellListTop = new MenuId('NotebookCellTop');\nMenuId.NotebookCellExecute = new MenuId('NotebookCellExecute');\nMenuId.NotebookCellExecuteGoTo = new MenuId('NotebookCellExecuteGoTo');\nMenuId.NotebookCellExecutePrimary = new MenuId('NotebookCellExecutePrimary');\nMenuId.NotebookDiffCellInputTitle = new MenuId('NotebookDiffCellInputTitle');\nMenuId.NotebookDiffCellMetadataTitle = new MenuId('NotebookDiffCellMetadataTitle');\nMenuId.NotebookDiffCellOutputsTitle = new MenuId('NotebookDiffCellOutputsTitle');\nMenuId.NotebookOutputToolbar = new MenuId('NotebookOutputToolbar');\nMenuId.NotebookOutlineFilter = new MenuId('NotebookOutlineFilter');\nMenuId.NotebookOutlineActionMenu = new MenuId('NotebookOutlineActionMenu');\nMenuId.NotebookEditorLayoutConfigure = new MenuId('NotebookEditorLayoutConfigure');\nMenuId.NotebookKernelSource = new MenuId('NotebookKernelSource');\nMenuId.BulkEditTitle = new MenuId('BulkEditTitle');\nMenuId.BulkEditContext = new MenuId('BulkEditContext');\nMenuId.TimelineItemContext = new MenuId('TimelineItemContext');\nMenuId.TimelineTitle = new MenuId('TimelineTitle');\nMenuId.TimelineTitleContext = new MenuId('TimelineTitleContext');\nMenuId.TimelineFilterSubMenu = new MenuId('TimelineFilterSubMenu');\nMenuId.AccountsContext = new MenuId('AccountsContext');\nMenuId.SidebarTitle = new MenuId('SidebarTitle');\nMenuId.PanelTitle = new MenuId('PanelTitle');\nMenuId.AuxiliaryBarTitle = new MenuId('AuxiliaryBarTitle');\nMenuId.AuxiliaryBarHeader = new MenuId('AuxiliaryBarHeader');\nMenuId.TerminalInstanceContext = new MenuId('TerminalInstanceContext');\nMenuId.TerminalEditorInstanceContext = new MenuId('TerminalEditorInstanceContext');\nMenuId.TerminalNewDropdownContext = new MenuId('TerminalNewDropdownContext');\nMenuId.TerminalTabContext = new MenuId('TerminalTabContext');\nMenuId.TerminalTabEmptyAreaContext = new MenuId('TerminalTabEmptyAreaContext');\nMenuId.TerminalStickyScrollContext = new MenuId('TerminalStickyScrollContext');\nMenuId.WebviewContext = new MenuId('WebviewContext');\nMenuId.InlineCompletionsActions = new MenuId('InlineCompletionsActions');\nMenuId.InlineEditActions = new MenuId('InlineEditActions');\nMenuId.NewFile = new MenuId('NewFile');\nMenuId.MergeInput1Toolbar = new MenuId('MergeToolbar1Toolbar');\nMenuId.MergeInput2Toolbar = new MenuId('MergeToolbar2Toolbar');\nMenuId.MergeBaseToolbar = new MenuId('MergeBaseToolbar');\nMenuId.MergeInputResultToolbar = new MenuId('MergeToolbarResultToolbar');\nMenuId.InlineSuggestionToolbar = new MenuId('InlineSuggestionToolbar');\nMenuId.InlineEditToolbar = new MenuId('InlineEditToolbar');\nMenuId.ChatContext = new MenuId('ChatContext');\nMenuId.ChatCodeBlock = new MenuId('ChatCodeblock');\nMenuId.ChatCompareBlock = new MenuId('ChatCompareBlock');\nMenuId.ChatMessageTitle = new MenuId('ChatMessageTitle');\nMenuId.ChatExecute = new MenuId('ChatExecute');\nMenuId.ChatExecuteSecondary = new MenuId('ChatExecuteSecondary');\nMenuId.ChatInputSide = new MenuId('ChatInputSide');\nMenuId.AccessibleView = new MenuId('AccessibleView');\nMenuId.MultiDiffEditorFileToolbar = new MenuId('MultiDiffEditorFileToolbar');\nMenuId.DiffEditorHunkToolbar = new MenuId('DiffEditorHunkToolbar');\nMenuId.DiffEditorSelectionToolbar = new MenuId('DiffEditorSelectionToolbar');\nexport const IMenuService = createDecorator('menuService');\nclass MenuRegistryChangeEvent {\n static for(id) {\n let value = this._all.get(id);\n if (!value) {\n value = new MenuRegistryChangeEvent(id);\n this._all.set(id, value);\n }\n return value;\n }\n static merge(events) {\n const ids = new Set();\n for (const item of events) {\n if (item instanceof MenuRegistryChangeEvent) {\n ids.add(item.id);\n }\n }\n return ids;\n }\n constructor(id) {\n this.id = id;\n this.has = candidate => candidate === id;\n }\n}\nMenuRegistryChangeEvent._all = new Map();\nexport const MenuRegistry = new class {\n constructor() {\n this._commands = new Map();\n this._menuItems = new Map();\n this._onDidChangeMenu = new MicrotaskEmitter({\n merge: MenuRegistryChangeEvent.merge\n });\n this.onDidChangeMenu = this._onDidChangeMenu.event;\n }\n addCommand(command) {\n this._commands.set(command.id, command);\n this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n return toDisposable(() => {\n if (this._commands.delete(command.id)) {\n this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(MenuId.CommandPalette));\n }\n });\n }\n getCommand(id) {\n return this._commands.get(id);\n }\n getCommands() {\n const map = new Map();\n this._commands.forEach((value, key) => map.set(key, value));\n return map;\n }\n appendMenuItem(id, item) {\n let list = this._menuItems.get(id);\n if (!list) {\n list = new LinkedList();\n this._menuItems.set(id, list);\n }\n const rm = list.push(item);\n this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n return toDisposable(() => {\n rm();\n this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(id));\n });\n }\n appendMenuItems(items) {\n const result = new DisposableStore();\n for (const { id, item } of items) {\n result.add(this.appendMenuItem(id, item));\n }\n return result;\n }\n getMenuItems(id) {\n let result;\n if (this._menuItems.has(id)) {\n result = [...this._menuItems.get(id)];\n }\n else {\n result = [];\n }\n if (id === MenuId.CommandPalette) {\n // CommandPalette is special because it shows\n // all commands by default\n this._appendImplicitItems(result);\n }\n return result;\n }\n _appendImplicitItems(result) {\n const set = new Set();\n for (const item of result) {\n if (isIMenuItem(item)) {\n set.add(item.command.id);\n if (item.alt) {\n set.add(item.alt.id);\n }\n }\n }\n this._commands.forEach((command, id) => {\n if (!set.has(id)) {\n result.push({ command });\n }\n });\n }\n};\nexport class SubmenuItemAction extends SubmenuAction {\n constructor(item, hideActions, actions) {\n super(`submenuitem.${item.submenu.id}`, typeof item.title === 'string' ? item.title : item.title.value, actions, 'submenu');\n this.item = item;\n this.hideActions = hideActions;\n }\n}\n// implements IAction, does NOT extend Action, so that no one\n// subscribes to events of Action or modified properties\nlet MenuItemAction = MenuItemAction_1 = class MenuItemAction {\n static label(action, options) {\n return (options === null || options === void 0 ? void 0 : options.renderShortTitle) && action.shortTitle\n ? (typeof action.shortTitle === 'string' ? action.shortTitle : action.shortTitle.value)\n : (typeof action.title === 'string' ? action.title : action.title.value);\n }\n constructor(item, alt, options, hideActions, menuKeybinding, contextKeyService, _commandService) {\n var _a, _b;\n this.hideActions = hideActions;\n this.menuKeybinding = menuKeybinding;\n this._commandService = _commandService;\n this.id = item.id;\n this.label = MenuItemAction_1.label(item, options);\n this.tooltip = (_b = (typeof item.tooltip === 'string' ? item.tooltip : (_a = item.tooltip) === null || _a === void 0 ? void 0 : _a.value)) !== null && _b !== void 0 ? _b : '';\n this.enabled = !item.precondition || contextKeyService.contextMatchesRules(item.precondition);\n this.checked = undefined;\n let icon;\n if (item.toggled) {\n const toggled = (item.toggled.condition ? item.toggled : { condition: item.toggled });\n this.checked = contextKeyService.contextMatchesRules(toggled.condition);\n if (this.checked && toggled.tooltip) {\n this.tooltip = typeof toggled.tooltip === 'string' ? toggled.tooltip : toggled.tooltip.value;\n }\n if (this.checked && ThemeIcon.isThemeIcon(toggled.icon)) {\n icon = toggled.icon;\n }\n if (this.checked && toggled.title) {\n this.label = typeof toggled.title === 'string' ? toggled.title : toggled.title.value;\n }\n }\n if (!icon) {\n icon = ThemeIcon.isThemeIcon(item.icon) ? item.icon : undefined;\n }\n this.item = item;\n this.alt = alt ? new MenuItemAction_1(alt, undefined, options, hideActions, undefined, contextKeyService, _commandService) : undefined;\n this._options = options;\n this.class = icon && ThemeIcon.asClassName(icon);\n }\n run(...args) {\n var _a, _b;\n let runArgs = [];\n if ((_a = this._options) === null || _a === void 0 ? void 0 : _a.arg) {\n runArgs = [...runArgs, this._options.arg];\n }\n if ((_b = this._options) === null || _b === void 0 ? void 0 : _b.shouldForwardArgs) {\n runArgs = [...runArgs, ...args];\n }\n return this._commandService.executeCommand(this.id, ...runArgs);\n }\n};\nMenuItemAction = MenuItemAction_1 = __decorate([\n __param(5, IContextKeyService),\n __param(6, ICommandService)\n], MenuItemAction);\nexport { MenuItemAction };\nexport class Action2 {\n constructor(desc) {\n this.desc = desc;\n }\n}\nexport function registerAction2(ctor) {\n const disposables = []; // not using `DisposableStore` to reduce startup perf cost\n const action = new ctor();\n const { f1, menu, keybinding, ...command } = action.desc;\n if (CommandsRegistry.getCommand(command.id)) {\n throw new Error(`Cannot register two commands with the same id: ${command.id}`);\n }\n // command\n disposables.push(CommandsRegistry.registerCommand({\n id: command.id,\n handler: (accessor, ...args) => action.run(accessor, ...args),\n metadata: command.metadata,\n }));\n // menu\n if (Array.isArray(menu)) {\n for (const item of menu) {\n disposables.push(MenuRegistry.appendMenuItem(item.id, { command: { ...command, precondition: item.precondition === null ? undefined : command.precondition }, ...item }));\n }\n }\n else if (menu) {\n disposables.push(MenuRegistry.appendMenuItem(menu.id, { command: { ...command, precondition: menu.precondition === null ? undefined : command.precondition }, ...menu }));\n }\n if (f1) {\n disposables.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command, when: command.precondition }));\n disposables.push(MenuRegistry.addCommand(command));\n }\n // keybinding\n if (Array.isArray(keybinding)) {\n for (const item of keybinding) {\n disposables.push(KeybindingsRegistry.registerKeybindingRule({\n ...item,\n id: command.id,\n when: command.precondition ? ContextKeyExpr.and(command.precondition, item.when) : item.when\n }));\n }\n }\n else if (keybinding) {\n disposables.push(KeybindingsRegistry.registerKeybindingRule({\n ...keybinding,\n id: command.id,\n when: command.precondition ? ContextKeyExpr.and(command.precondition, keybinding.when) : keybinding.when\n }));\n }\n return {\n dispose() {\n dispose(disposables);\n }\n };\n}\n//#endregion\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst error = {\n message: ({ schemaCode }) => (0, codegen_1.str) `must match format \"${schemaCode}\"`,\n params: ({ schemaCode }) => (0, codegen_1._) `{format: ${schemaCode}}`,\n};\nconst def = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt, ruleType) {\n const { gen, data, $data, schema, schemaCode, it } = cxt;\n const { opts, errSchemaPath, schemaEnv, self } = it;\n if (!opts.validateFormats)\n return;\n if ($data)\n validate$DataFormat();\n else\n validateFormat();\n function validate$DataFormat() {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n });\n const fDef = gen.const(\"fDef\", (0, codegen_1._) `${fmts}[${schemaCode}]`);\n const fType = gen.let(\"fType\");\n const format = gen.let(\"format\");\n // TODO simplify\n gen.if((0, codegen_1._) `typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`, () => gen.assign(fType, (0, codegen_1._) `${fDef}.type || \"string\"`).assign(format, (0, codegen_1._) `${fDef}.validate`), () => gen.assign(fType, (0, codegen_1._) `\"string\"`).assign(format, fDef));\n cxt.fail$data((0, codegen_1.or)(unknownFmt(), invalidFmt()));\n function unknownFmt() {\n if (opts.strictSchema === false)\n return codegen_1.nil;\n return (0, codegen_1._) `${schemaCode} && !${format}`;\n }\n function invalidFmt() {\n const callFormat = schemaEnv.$async\n ? (0, codegen_1._) `(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : (0, codegen_1._) `${format}(${data})`;\n const validData = (0, codegen_1._) `(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`;\n return (0, codegen_1._) `${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`;\n }\n }\n function validateFormat() {\n const formatDef = self.formats[schema];\n if (!formatDef) {\n unknownFormat();\n return;\n }\n if (formatDef === true)\n return;\n const [fmtType, format, fmtRef] = getFormat(formatDef);\n if (fmtType === ruleType)\n cxt.pass(validCondition());\n function unknownFormat() {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg());\n return;\n }\n throw new Error(unknownMsg());\n function unknownMsg() {\n return `unknown format \"${schema}\" ignored in schema at path \"${errSchemaPath}\"`;\n }\n }\n function getFormat(fmtDef) {\n const code = fmtDef instanceof RegExp\n ? (0, codegen_1.regexpCode)(fmtDef)\n : opts.code.formats\n ? (0, codegen_1._) `${opts.code.formats}${(0, codegen_1.getProperty)(schema)}`\n : undefined;\n const fmt = gen.scopeValue(\"formats\", { key: schema, ref: fmtDef, code });\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, (0, codegen_1._) `${fmt}.validate`];\n }\n return [\"string\", fmtDef, fmt];\n }\n function validCondition() {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async)\n throw new Error(\"async format in sync schema\");\n return (0, codegen_1._) `await ${fmtRef}(${data})`;\n }\n return typeof format == \"function\" ? (0, codegen_1._) `${fmtRef}(${data})` : (0, codegen_1._) `${fmtRef}.test(${data})`;\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=format.js.map","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n switch (op) {\n case '===':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a === b\n\n case '!==':\n if (typeof a === 'object') {\n a = a.version\n }\n if (typeof b === 'object') {\n b = b.version\n }\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError(`Invalid operator: ${op}`)\n }\n}\nmodule.exports = cmp\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from './position.js';\nimport { Range } from './range.js';\n/**\n * Represents a non-negative length of text in terms of line and column count.\n*/\nexport class TextLength {\n static betweenPositions(position1, position2) {\n if (position1.lineNumber === position2.lineNumber) {\n return new TextLength(0, position2.column - position1.column);\n }\n else {\n return new TextLength(position2.lineNumber - position1.lineNumber, position2.column - 1);\n }\n }\n static ofRange(range) {\n return TextLength.betweenPositions(range.getStartPosition(), range.getEndPosition());\n }\n static ofText(text) {\n let line = 0;\n let column = 0;\n for (const c of text) {\n if (c === '\\n') {\n line++;\n column = 0;\n }\n else {\n column++;\n }\n }\n return new TextLength(line, column);\n }\n constructor(lineCount, columnCount) {\n this.lineCount = lineCount;\n this.columnCount = columnCount;\n }\n isGreaterThanOrEqualTo(other) {\n if (this.lineCount !== other.lineCount) {\n return this.lineCount > other.lineCount;\n }\n return this.columnCount >= other.columnCount;\n }\n createRange(startPosition) {\n if (this.lineCount === 0) {\n return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber, startPosition.column + this.columnCount);\n }\n else {\n return new Range(startPosition.lineNumber, startPosition.column, startPosition.lineNumber + this.lineCount, this.columnCount + 1);\n }\n }\n addToPosition(position) {\n if (this.lineCount === 0) {\n return new Position(position.lineNumber, position.column + this.columnCount);\n }\n else {\n return new Position(position.lineNumber + this.lineCount, this.columnCount + 1);\n }\n }\n toString() {\n return `${this.lineCount},${this.columnCount}`;\n }\n}\nTextLength.zero = new TextLength(0, 0);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../base/browser/dom.js';\nimport { GlobalPointerMoveMonitor } from '../../base/browser/globalPointerMoveMonitor.js';\nimport { StandardMouseEvent } from '../../base/browser/mouseEvent.js';\nimport { RunOnceScheduler } from '../../base/common/async.js';\nimport { Disposable, DisposableStore } from '../../base/common/lifecycle.js';\nimport { asCssVariable } from '../../platform/theme/common/colorRegistry.js';\n/**\n * Coordinates relative to the whole document (e.g. mouse event's pageX and pageY)\n */\nexport class PageCoordinates {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n this._pageCoordinatesBrand = undefined;\n }\n toClientCoordinates(targetWindow) {\n return new ClientCoordinates(this.x - targetWindow.scrollX, this.y - targetWindow.scrollY);\n }\n}\n/**\n * Coordinates within the application's client area (i.e. origin is document's scroll position).\n *\n * For example, clicking in the top-left corner of the client area will\n * always result in a mouse event with a client.x value of 0, regardless\n * of whether the page is scrolled horizontally.\n */\nexport class ClientCoordinates {\n constructor(clientX, clientY) {\n this.clientX = clientX;\n this.clientY = clientY;\n this._clientCoordinatesBrand = undefined;\n }\n toPageCoordinates(targetWindow) {\n return new PageCoordinates(this.clientX + targetWindow.scrollX, this.clientY + targetWindow.scrollY);\n }\n}\n/**\n * The position of the editor in the page.\n */\nexport class EditorPagePosition {\n constructor(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this._editorPagePositionBrand = undefined;\n }\n}\n/**\n * Coordinates relative to the the (top;left) of the editor that can be used safely with other internal editor metrics.\n * **NOTE**: This position is obtained by taking page coordinates and transforming them relative to the\n * editor's (top;left) position in a way in which scale transformations are taken into account.\n * **NOTE**: These coordinates could be negative if the mouse position is outside the editor.\n */\nexport class CoordinatesRelativeToEditor {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n this._positionRelativeToEditorBrand = undefined;\n }\n}\nexport function createEditorPagePosition(editorViewDomNode) {\n const editorPos = dom.getDomNodePagePosition(editorViewDomNode);\n return new EditorPagePosition(editorPos.left, editorPos.top, editorPos.width, editorPos.height);\n}\nexport function createCoordinatesRelativeToEditor(editorViewDomNode, editorPagePosition, pos) {\n // The editor's page position is read from the DOM using getBoundingClientRect().\n //\n // getBoundingClientRect() returns the actual dimensions, while offsetWidth and offsetHeight\n // reflect the unscaled size. We can use this difference to detect a transform:scale()\n // and we will apply the transformation in inverse to get mouse coordinates that make sense inside the editor.\n //\n // This could be expanded to cover rotation as well maybe by walking the DOM up from `editorViewDomNode`\n // and computing the effective transformation matrix using getComputedStyle(element).transform.\n //\n const scaleX = editorPagePosition.width / editorViewDomNode.offsetWidth;\n const scaleY = editorPagePosition.height / editorViewDomNode.offsetHeight;\n // Adjust mouse offsets if editor appears to be scaled via transforms\n const relativeX = (pos.x - editorPagePosition.x) / scaleX;\n const relativeY = (pos.y - editorPagePosition.y) / scaleY;\n return new CoordinatesRelativeToEditor(relativeX, relativeY);\n}\nexport class EditorMouseEvent extends StandardMouseEvent {\n constructor(e, isFromPointerCapture, editorViewDomNode) {\n super(dom.getWindow(editorViewDomNode), e);\n this._editorMouseEventBrand = undefined;\n this.isFromPointerCapture = isFromPointerCapture;\n this.pos = new PageCoordinates(this.posx, this.posy);\n this.editorPos = createEditorPagePosition(editorViewDomNode);\n this.relativePos = createCoordinatesRelativeToEditor(editorViewDomNode, this.editorPos, this.pos);\n }\n}\nexport class EditorMouseEventFactory {\n constructor(editorViewDomNode) {\n this._editorViewDomNode = editorViewDomNode;\n }\n _create(e) {\n return new EditorMouseEvent(e, false, this._editorViewDomNode);\n }\n onContextMenu(target, callback) {\n return dom.addDisposableListener(target, 'contextmenu', (e) => {\n callback(this._create(e));\n });\n }\n onMouseUp(target, callback) {\n return dom.addDisposableListener(target, 'mouseup', (e) => {\n callback(this._create(e));\n });\n }\n onMouseDown(target, callback) {\n return dom.addDisposableListener(target, dom.EventType.MOUSE_DOWN, (e) => {\n callback(this._create(e));\n });\n }\n onPointerDown(target, callback) {\n return dom.addDisposableListener(target, dom.EventType.POINTER_DOWN, (e) => {\n callback(this._create(e), e.pointerId);\n });\n }\n onMouseLeave(target, callback) {\n return dom.addDisposableListener(target, dom.EventType.MOUSE_LEAVE, (e) => {\n callback(this._create(e));\n });\n }\n onMouseMove(target, callback) {\n return dom.addDisposableListener(target, 'mousemove', (e) => callback(this._create(e)));\n }\n}\nexport class EditorPointerEventFactory {\n constructor(editorViewDomNode) {\n this._editorViewDomNode = editorViewDomNode;\n }\n _create(e) {\n return new EditorMouseEvent(e, false, this._editorViewDomNode);\n }\n onPointerUp(target, callback) {\n return dom.addDisposableListener(target, 'pointerup', (e) => {\n callback(this._create(e));\n });\n }\n onPointerDown(target, callback) {\n return dom.addDisposableListener(target, dom.EventType.POINTER_DOWN, (e) => {\n callback(this._create(e), e.pointerId);\n });\n }\n onPointerLeave(target, callback) {\n return dom.addDisposableListener(target, dom.EventType.POINTER_LEAVE, (e) => {\n callback(this._create(e));\n });\n }\n onPointerMove(target, callback) {\n return dom.addDisposableListener(target, 'pointermove', (e) => callback(this._create(e)));\n }\n}\nexport class GlobalEditorPointerMoveMonitor extends Disposable {\n constructor(editorViewDomNode) {\n super();\n this._editorViewDomNode = editorViewDomNode;\n this._globalPointerMoveMonitor = this._register(new GlobalPointerMoveMonitor());\n this._keydownListener = null;\n }\n startMonitoring(initialElement, pointerId, initialButtons, pointerMoveCallback, onStopCallback) {\n // Add a <> keydown event listener that will cancel the monitoring\n // if something other than a modifier key is pressed\n this._keydownListener = dom.addStandardDisposableListener(initialElement.ownerDocument, 'keydown', (e) => {\n const chord = e.toKeyCodeChord();\n if (chord.isModifierKey()) {\n // Allow modifier keys\n return;\n }\n this._globalPointerMoveMonitor.stopMonitoring(true, e.browserEvent);\n }, true);\n this._globalPointerMoveMonitor.startMonitoring(initialElement, pointerId, initialButtons, (e) => {\n pointerMoveCallback(new EditorMouseEvent(e, true, this._editorViewDomNode));\n }, (e) => {\n this._keydownListener.dispose();\n onStopCallback(e);\n });\n }\n stopMonitoring() {\n this._globalPointerMoveMonitor.stopMonitoring(true);\n }\n}\n/**\n * A helper to create dynamic css rules, bound to a class name.\n * Rules are reused.\n * Reference counting and delayed garbage collection ensure that no rules leak.\n*/\nexport class DynamicCssRules {\n constructor(_editor) {\n this._editor = _editor;\n this._instanceId = ++DynamicCssRules._idPool;\n this._counter = 0;\n this._rules = new Map();\n // We delay garbage collection so that hanging rules can be reused.\n this._garbageCollectionScheduler = new RunOnceScheduler(() => this.garbageCollect(), 1000);\n }\n createClassNameRef(options) {\n const rule = this.getOrCreateRule(options);\n rule.increaseRefCount();\n return {\n className: rule.className,\n dispose: () => {\n rule.decreaseRefCount();\n this._garbageCollectionScheduler.schedule();\n }\n };\n }\n getOrCreateRule(properties) {\n const key = this.computeUniqueKey(properties);\n let existingRule = this._rules.get(key);\n if (!existingRule) {\n const counter = this._counter++;\n existingRule = new RefCountedCssRule(key, `dyn-rule-${this._instanceId}-${counter}`, dom.isInShadowDOM(this._editor.getContainerDomNode())\n ? this._editor.getContainerDomNode()\n : undefined, properties);\n this._rules.set(key, existingRule);\n }\n return existingRule;\n }\n computeUniqueKey(properties) {\n return JSON.stringify(properties);\n }\n garbageCollect() {\n for (const rule of this._rules.values()) {\n if (!rule.hasReferences()) {\n this._rules.delete(rule.key);\n rule.dispose();\n }\n }\n }\n}\nDynamicCssRules._idPool = 0;\nclass RefCountedCssRule {\n constructor(key, className, _containerElement, properties) {\n this.key = key;\n this.className = className;\n this.properties = properties;\n this._referenceCount = 0;\n this._styleElementDisposables = new DisposableStore();\n this._styleElement = dom.createStyleSheet(_containerElement, undefined, this._styleElementDisposables);\n this._styleElement.textContent = this.getCssText(this.className, this.properties);\n }\n getCssText(className, properties) {\n let str = `.${className} {`;\n for (const prop in properties) {\n const value = properties[prop];\n let cssValue;\n if (typeof value === 'object') {\n cssValue = asCssVariable(value.id);\n }\n else {\n cssValue = value;\n }\n const cssPropName = camelToDashes(prop);\n str += `\\n\\t${cssPropName}: ${cssValue};`;\n }\n str += `\\n}`;\n return str;\n }\n dispose() {\n this._styleElementDisposables.dispose();\n this._styleElement = undefined;\n }\n increaseRefCount() {\n this._referenceCount++;\n }\n decreaseRefCount() {\n this._referenceCount--;\n }\n hasReferences() {\n return this._referenceCount > 0;\n }\n}\nfunction camelToDashes(str) {\n return str.replace(/(^[A-Z])/, ([first]) => first.toLowerCase())\n .replace(/([A-Z])/g, ([letter]) => `-${letter.toLowerCase()}`);\n}\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class BracketInfo {\n constructor(range, \n /** 0-based level */\n nestingLevel, nestingLevelOfEqualBracketType, isInvalid) {\n this.range = range;\n this.nestingLevel = nestingLevel;\n this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n this.isInvalid = isInvalid;\n }\n}\nexport class BracketPairInfo {\n constructor(range, openingBracketRange, closingBracketRange, \n /** 0-based */\n nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode) {\n this.range = range;\n this.openingBracketRange = openingBracketRange;\n this.closingBracketRange = closingBracketRange;\n this.nestingLevel = nestingLevel;\n this.nestingLevelOfEqualBracketType = nestingLevelOfEqualBracketType;\n this.bracketPairNode = bracketPairNode;\n }\n get openingBracketInfo() {\n return this.bracketPairNode.openingBracket.bracketInfo;\n }\n}\nexport class BracketPairWithMinIndentationInfo extends BracketPairInfo {\n constructor(range, openingBracketRange, closingBracketRange, \n /**\n * 0-based\n */\n nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode, \n /**\n * -1 if not requested, otherwise the size of the minimum indentation in the bracket pair in terms of visible columns.\n */\n minVisibleColumnIndentation) {\n super(range, openingBracketRange, closingBracketRange, nestingLevel, nestingLevelOfEqualBracketType, bracketPairNode);\n this.minVisibleColumnIndentation = minVisibleColumnIndentation;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { BracketInfo, BracketPairWithMinIndentationInfo } from '../../../textModelBracketPairs.js';\nimport { TextEditInfo } from './beforeEditPositionMapper.js';\nimport { LanguageAgnosticBracketTokens } from './brackets.js';\nimport { lengthAdd, lengthGreaterThanEqual, lengthLessThan, lengthLessThanEqual, lengthsToRange, lengthZero, positionToLength, toLength } from './length.js';\nimport { parseDocument } from './parser.js';\nimport { DenseKeyProvider } from './smallImmutableSet.js';\nimport { FastTokenizer, TextBufferTokenizer } from './tokenizer.js';\nimport { CallbackIterable } from '../../../../../base/common/arrays.js';\nimport { combineTextEditInfos } from './combineTextEditInfos.js';\nexport class BracketPairsTree extends Disposable {\n didLanguageChange(languageId) {\n return this.brackets.didLanguageChange(languageId);\n }\n constructor(textModel, getLanguageConfiguration) {\n super();\n this.textModel = textModel;\n this.getLanguageConfiguration = getLanguageConfiguration;\n this.didChangeEmitter = new Emitter();\n this.denseKeyProvider = new DenseKeyProvider();\n this.brackets = new LanguageAgnosticBracketTokens(this.denseKeyProvider, this.getLanguageConfiguration);\n this.onDidChange = this.didChangeEmitter.event;\n this.queuedTextEditsForInitialAstWithoutTokens = [];\n this.queuedTextEdits = [];\n if (!textModel.tokenization.hasTokens) {\n const brackets = this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId());\n const tokenizer = new FastTokenizer(this.textModel.getValue(), brackets);\n this.initialAstWithoutTokens = parseDocument(tokenizer, [], undefined, true);\n this.astWithTokens = this.initialAstWithoutTokens;\n }\n else if (textModel.tokenization.backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n // Skip the initial ast, as there is no flickering.\n // Directly create the tree with token information.\n this.initialAstWithoutTokens = undefined;\n this.astWithTokens = this.parseDocumentFromTextBuffer([], undefined, false);\n }\n else {\n // We missed some token changes already, so we cannot use the fast tokenizer + delta increments\n this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer([], undefined, true);\n this.astWithTokens = this.initialAstWithoutTokens;\n }\n }\n //#region TextModel events\n handleDidChangeBackgroundTokenizationState() {\n if (this.textModel.tokenization.backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n const wasUndefined = this.initialAstWithoutTokens === undefined;\n // Clear the initial tree as we can use the tree with token information now.\n this.initialAstWithoutTokens = undefined;\n if (!wasUndefined) {\n this.didChangeEmitter.fire();\n }\n }\n }\n handleDidChangeTokens({ ranges }) {\n const edits = ranges.map(r => new TextEditInfo(toLength(r.fromLineNumber - 1, 0), toLength(r.toLineNumber, 0), toLength(r.toLineNumber - r.fromLineNumber + 1, 0)));\n this.handleEdits(edits, true);\n if (!this.initialAstWithoutTokens) {\n this.didChangeEmitter.fire();\n }\n }\n handleContentChanged(change) {\n const edits = TextEditInfo.fromModelContentChanges(change.changes);\n this.handleEdits(edits, false);\n }\n handleEdits(edits, tokenChange) {\n // Lazily queue the edits and only apply them when the tree is accessed.\n const result = combineTextEditInfos(this.queuedTextEdits, edits);\n this.queuedTextEdits = result;\n if (this.initialAstWithoutTokens && !tokenChange) {\n this.queuedTextEditsForInitialAstWithoutTokens = combineTextEditInfos(this.queuedTextEditsForInitialAstWithoutTokens, edits);\n }\n }\n //#endregion\n flushQueue() {\n if (this.queuedTextEdits.length > 0) {\n this.astWithTokens = this.parseDocumentFromTextBuffer(this.queuedTextEdits, this.astWithTokens, false);\n this.queuedTextEdits = [];\n }\n if (this.queuedTextEditsForInitialAstWithoutTokens.length > 0) {\n if (this.initialAstWithoutTokens) {\n this.initialAstWithoutTokens = this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens, this.initialAstWithoutTokens, false);\n }\n this.queuedTextEditsForInitialAstWithoutTokens = [];\n }\n }\n /**\n * @pure (only if isPure = true)\n */\n parseDocumentFromTextBuffer(edits, previousAst, immutable) {\n // Is much faster if `isPure = false`.\n const isPure = false;\n const previousAstClone = isPure ? previousAst === null || previousAst === void 0 ? void 0 : previousAst.deepClone() : previousAst;\n const tokenizer = new TextBufferTokenizer(this.textModel, this.brackets);\n const result = parseDocument(tokenizer, edits, previousAstClone, immutable);\n return result;\n }\n getBracketsInRange(range, onlyColorizedBrackets) {\n this.flushQueue();\n const startOffset = toLength(range.startLineNumber - 1, range.startColumn - 1);\n const endOffset = toLength(range.endLineNumber - 1, range.endColumn - 1);\n return new CallbackIterable(cb => {\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n collectBrackets(node, lengthZero, node.length, startOffset, endOffset, cb, 0, 0, new Map(), onlyColorizedBrackets);\n });\n }\n getBracketPairsInRange(range, includeMinIndentation) {\n this.flushQueue();\n const startLength = positionToLength(range.getStartPosition());\n const endLength = positionToLength(range.getEndPosition());\n return new CallbackIterable(cb => {\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n const context = new CollectBracketPairsContext(cb, includeMinIndentation, this.textModel);\n collectBracketPairs(node, lengthZero, node.length, startLength, endLength, context, 0, new Map());\n });\n }\n getFirstBracketAfter(position) {\n this.flushQueue();\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n return getFirstBracketAfter(node, lengthZero, node.length, positionToLength(position));\n }\n getFirstBracketBefore(position) {\n this.flushQueue();\n const node = this.initialAstWithoutTokens || this.astWithTokens;\n return getFirstBracketBefore(node, lengthZero, node.length, positionToLength(position));\n }\n}\nfunction getFirstBracketBefore(node, nodeOffsetStart, nodeOffsetEnd, position) {\n if (node.kind === 4 /* AstNodeKind.List */ || node.kind === 2 /* AstNodeKind.Pair */) {\n const lengths = [];\n for (const child of node.children) {\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n lengths.push({ nodeOffsetStart, nodeOffsetEnd });\n nodeOffsetStart = nodeOffsetEnd;\n }\n for (let i = lengths.length - 1; i >= 0; i--) {\n const { nodeOffsetStart, nodeOffsetEnd } = lengths[i];\n if (lengthLessThan(nodeOffsetStart, position)) {\n const result = getFirstBracketBefore(node.children[i], nodeOffsetStart, nodeOffsetEnd, position);\n if (result) {\n return result;\n }\n }\n }\n return null;\n }\n else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n return null;\n }\n else if (node.kind === 1 /* AstNodeKind.Bracket */) {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n return {\n bracketInfo: node.bracketInfo,\n range\n };\n }\n return null;\n}\nfunction getFirstBracketAfter(node, nodeOffsetStart, nodeOffsetEnd, position) {\n if (node.kind === 4 /* AstNodeKind.List */ || node.kind === 2 /* AstNodeKind.Pair */) {\n for (const child of node.children) {\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThan(position, nodeOffsetEnd)) {\n const result = getFirstBracketAfter(child, nodeOffsetStart, nodeOffsetEnd, position);\n if (result) {\n return result;\n }\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n return null;\n }\n else if (node.kind === 3 /* AstNodeKind.UnexpectedClosingBracket */) {\n return null;\n }\n else if (node.kind === 1 /* AstNodeKind.Bracket */) {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n return {\n bracketInfo: node.bracketInfo,\n range\n };\n }\n return null;\n}\nfunction collectBrackets(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, nestingLevelOfEqualBracketType, levelPerBracketType, onlyColorizedBrackets, parentPairIsIncomplete = false) {\n if (level > 200) {\n return true;\n }\n whileLoop: while (true) {\n switch (node.kind) {\n case 4 /* AstNodeKind.List */: {\n const childCount = node.childrenLength;\n for (let i = 0; i < childCount; i++) {\n const child = node.getChild(i);\n if (!child) {\n continue;\n }\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n if (childEndsAfterEnd) {\n // No child after this child in the requested window, don't recurse\n node = child;\n continue whileLoop;\n }\n const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, level, 0, levelPerBracketType, onlyColorizedBrackets);\n if (!shouldContinue) {\n return false;\n }\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n return true;\n }\n case 2 /* AstNodeKind.Pair */: {\n const colorize = !onlyColorizedBrackets || !node.closingBracket || node.closingBracket.bracketInfo.closesColorized(node.openingBracket.bracketInfo);\n let levelPerBracket = 0;\n if (levelPerBracketType) {\n let existing = levelPerBracketType.get(node.openingBracket.text);\n if (existing === undefined) {\n existing = 0;\n }\n levelPerBracket = existing;\n if (colorize) {\n existing++;\n levelPerBracketType.set(node.openingBracket.text, existing);\n }\n }\n const childCount = node.childrenLength;\n for (let i = 0; i < childCount; i++) {\n const child = node.getChild(i);\n if (!child) {\n continue;\n }\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n const childEndsAfterEnd = lengthGreaterThanEqual(nodeOffsetEnd, endOffset);\n if (childEndsAfterEnd && child.kind !== 1 /* AstNodeKind.Bracket */) {\n // No child after this child in the requested window, don't recurse\n // Don't do this for brackets because of unclosed/unopened brackets\n node = child;\n if (colorize) {\n level++;\n nestingLevelOfEqualBracketType = levelPerBracket + 1;\n }\n else {\n nestingLevelOfEqualBracketType = levelPerBracket;\n }\n continue whileLoop;\n }\n if (colorize || child.kind !== 1 /* AstNodeKind.Bracket */ || !node.closingBracket) {\n const shouldContinue = collectBrackets(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, push, colorize ? level + 1 : level, colorize ? levelPerBracket + 1 : levelPerBracket, levelPerBracketType, onlyColorizedBrackets, !node.closingBracket);\n if (!shouldContinue) {\n return false;\n }\n }\n }\n nodeOffsetStart = nodeOffsetEnd;\n }\n levelPerBracketType === null || levelPerBracketType === void 0 ? void 0 : levelPerBracketType.set(node.openingBracket.text, levelPerBracket);\n return true;\n }\n case 3 /* AstNodeKind.UnexpectedClosingBracket */: {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n return push(new BracketInfo(range, level - 1, 0, true));\n }\n case 1 /* AstNodeKind.Bracket */: {\n const range = lengthsToRange(nodeOffsetStart, nodeOffsetEnd);\n return push(new BracketInfo(range, level - 1, nestingLevelOfEqualBracketType - 1, parentPairIsIncomplete));\n }\n case 0 /* AstNodeKind.Text */:\n return true;\n }\n }\n}\nclass CollectBracketPairsContext {\n constructor(push, includeMinIndentation, textModel) {\n this.push = push;\n this.includeMinIndentation = includeMinIndentation;\n this.textModel = textModel;\n }\n}\nfunction collectBracketPairs(node, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level, levelPerBracketType) {\n var _a;\n if (level > 200) {\n return true;\n }\n let shouldContinue = true;\n if (node.kind === 2 /* AstNodeKind.Pair */) {\n let levelPerBracket = 0;\n if (levelPerBracketType) {\n let existing = levelPerBracketType.get(node.openingBracket.text);\n if (existing === undefined) {\n existing = 0;\n }\n levelPerBracket = existing;\n existing++;\n levelPerBracketType.set(node.openingBracket.text, existing);\n }\n const openingBracketEnd = lengthAdd(nodeOffsetStart, node.openingBracket.length);\n let minIndentation = -1;\n if (context.includeMinIndentation) {\n minIndentation = node.computeMinIndentation(nodeOffsetStart, context.textModel);\n }\n shouldContinue = context.push(new BracketPairWithMinIndentationInfo(lengthsToRange(nodeOffsetStart, nodeOffsetEnd), lengthsToRange(nodeOffsetStart, openingBracketEnd), node.closingBracket\n ? lengthsToRange(lengthAdd(openingBracketEnd, ((_a = node.child) === null || _a === void 0 ? void 0 : _a.length) || lengthZero), nodeOffsetEnd)\n : undefined, level, levelPerBracket, node, minIndentation));\n nodeOffsetStart = openingBracketEnd;\n if (shouldContinue && node.child) {\n const child = node.child;\n nodeOffsetEnd = lengthAdd(nodeOffsetStart, child.length);\n if (lengthLessThanEqual(nodeOffsetStart, endOffset) &&\n lengthGreaterThanEqual(nodeOffsetEnd, startOffset)) {\n shouldContinue = collectBracketPairs(child, nodeOffsetStart, nodeOffsetEnd, startOffset, endOffset, context, level + 1, levelPerBracketType);\n if (!shouldContinue) {\n return false;\n }\n }\n }\n levelPerBracketType === null || levelPerBracketType === void 0 ? void 0 : levelPerBracketType.set(node.openingBracket.text, levelPerBracket);\n }\n else {\n let curOffset = nodeOffsetStart;\n for (const child of node.children) {\n const childOffset = curOffset;\n curOffset = lengthAdd(curOffset, child.length);\n if (lengthLessThanEqual(childOffset, endOffset) &&\n lengthLessThanEqual(startOffset, curOffset)) {\n shouldContinue = collectBracketPairs(child, childOffset, curOffset, startOffset, endOffset, context, level, levelPerBracketType);\n if (!shouldContinue) {\n return false;\n }\n }\n }\n }\n return shouldContinue;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CallbackIterable, compareBy } from '../../../../base/common/arrays.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable, DisposableStore, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { ignoreBracketsInToken } from '../../languages/supports.js';\nimport { BracketsUtils } from '../../languages/supports/richEditBrackets.js';\nimport { BracketPairsTree } from './bracketPairsTree/bracketPairsTree.js';\nexport class BracketPairsTextModelPart extends Disposable {\n get canBuildAST() {\n const maxSupportedDocumentLength = /* max lines */ 50000 * /* average column count */ 100;\n return this.textModel.getValueLength() <= maxSupportedDocumentLength;\n }\n constructor(textModel, languageConfigurationService) {\n super();\n this.textModel = textModel;\n this.languageConfigurationService = languageConfigurationService;\n this.bracketPairsTree = this._register(new MutableDisposable());\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.bracketsRequested = false;\n this._register(this.languageConfigurationService.onDidChange(e => {\n var _a;\n if (!e.languageId || ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.didLanguageChange(e.languageId))) {\n this.bracketPairsTree.clear();\n this.updateBracketPairsTree();\n }\n }));\n }\n //#region TextModel events\n handleDidChangeOptions(e) {\n this.bracketPairsTree.clear();\n this.updateBracketPairsTree();\n }\n handleDidChangeLanguage(e) {\n this.bracketPairsTree.clear();\n this.updateBracketPairsTree();\n }\n handleDidChangeContent(change) {\n var _a;\n (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleContentChanged(change);\n }\n handleDidChangeBackgroundTokenizationState() {\n var _a;\n (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleDidChangeBackgroundTokenizationState();\n }\n handleDidChangeTokens(e) {\n var _a;\n (_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.handleDidChangeTokens(e);\n }\n //#endregion\n updateBracketPairsTree() {\n if (this.bracketsRequested && this.canBuildAST) {\n if (!this.bracketPairsTree.value) {\n const store = new DisposableStore();\n this.bracketPairsTree.value = createDisposableRef(store.add(new BracketPairsTree(this.textModel, (languageId) => {\n return this.languageConfigurationService.getLanguageConfiguration(languageId);\n })), store);\n store.add(this.bracketPairsTree.value.object.onDidChange(e => this.onDidChangeEmitter.fire(e)));\n this.onDidChangeEmitter.fire();\n }\n }\n else {\n if (this.bracketPairsTree.value) {\n this.bracketPairsTree.clear();\n // Important: Don't call fire if there was no change!\n this.onDidChangeEmitter.fire();\n }\n }\n }\n /**\n * Returns all bracket pairs that intersect the given range.\n * The result is sorted by the start position.\n */\n getBracketPairsInRange(range) {\n var _a;\n this.bracketsRequested = true;\n this.updateBracketPairsTree();\n return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, false)) || CallbackIterable.empty;\n }\n getBracketPairsInRangeWithMinIndentation(range) {\n var _a;\n this.bracketsRequested = true;\n this.updateBracketPairsTree();\n return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketPairsInRange(range, true)) || CallbackIterable.empty;\n }\n getBracketsInRange(range, onlyColorizedBrackets = false) {\n var _a;\n this.bracketsRequested = true;\n this.updateBracketPairsTree();\n return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getBracketsInRange(range, onlyColorizedBrackets)) || CallbackIterable.empty;\n }\n findMatchingBracketUp(_bracket, _position, maxDuration) {\n const position = this.textModel.validatePosition(_position);\n const languageId = this.textModel.getLanguageIdAtPosition(position.lineNumber, position.column);\n if (this.canBuildAST) {\n const closingBracketInfo = this.languageConfigurationService\n .getLanguageConfiguration(languageId)\n .bracketsNew.getClosingBracketInfo(_bracket);\n if (!closingBracketInfo) {\n return null;\n }\n const bracketPair = this.getBracketPairsInRange(Range.fromPositions(_position, _position)).findLast((b) => closingBracketInfo.closes(b.openingBracketInfo));\n if (bracketPair) {\n return bracketPair.openingBracketRange;\n }\n return null;\n }\n else {\n // Fallback to old bracket matching code:\n const bracket = _bracket.toLowerCase();\n const bracketsSupport = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n if (!bracketsSupport) {\n return null;\n }\n const data = bracketsSupport.textIsBracket[bracket];\n if (!data) {\n return null;\n }\n return stripBracketSearchCanceled(this._findMatchingBracketUp(data, position, createTimeBasedContinueBracketSearchPredicate(maxDuration)));\n }\n }\n matchBracket(position, maxDuration) {\n if (this.canBuildAST) {\n const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).filter((item) => item.closingBracketRange !== undefined &&\n (item.openingBracketRange.containsPosition(position) ||\n item.closingBracketRange.containsPosition(position))).findLastMaxBy(compareBy((item) => item.openingBracketRange.containsPosition(position)\n ? item.openingBracketRange\n : item.closingBracketRange, Range.compareRangesUsingStarts));\n if (bracketPair) {\n return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n }\n return null;\n }\n else {\n // Fallback to old bracket matching code:\n const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n return this._matchBracket(this.textModel.validatePosition(position), continueSearchPredicate);\n }\n }\n _establishBracketSearchOffsets(position, lineTokens, modeBrackets, tokenIndex) {\n const tokenCount = lineTokens.getCount();\n const currentLanguageId = lineTokens.getLanguageId(tokenIndex);\n // limit search to not go before `maxBracketLength`\n let searchStartOffset = Math.max(0, position.column - 1 - modeBrackets.maxBracketLength);\n for (let i = tokenIndex - 1; i >= 0; i--) {\n const tokenEndOffset = lineTokens.getEndOffset(i);\n if (tokenEndOffset <= searchStartOffset) {\n break;\n }\n if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n searchStartOffset = tokenEndOffset;\n break;\n }\n }\n // limit search to not go after `maxBracketLength`\n let searchEndOffset = Math.min(lineTokens.getLineContent().length, position.column - 1 + modeBrackets.maxBracketLength);\n for (let i = tokenIndex + 1; i < tokenCount; i++) {\n const tokenStartOffset = lineTokens.getStartOffset(i);\n if (tokenStartOffset >= searchEndOffset) {\n break;\n }\n if (ignoreBracketsInToken(lineTokens.getStandardTokenType(i)) || lineTokens.getLanguageId(i) !== currentLanguageId) {\n searchEndOffset = tokenStartOffset;\n break;\n }\n }\n return { searchStartOffset, searchEndOffset };\n }\n _matchBracket(position, continueSearchPredicate) {\n const lineNumber = position.lineNumber;\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const lineText = this.textModel.getLineContent(lineNumber);\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n if (tokenIndex < 0) {\n return null;\n }\n const currentModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).brackets;\n // check that the token is not to be ignored\n if (currentModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex))) {\n let { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, currentModeBrackets, tokenIndex);\n // it might be the case that [currentTokenStart -> currentTokenEnd] contains multiple brackets\n // `bestResult` will contain the most right-side result\n let bestResult = null;\n while (true) {\n const foundBracket = BracketsUtils.findNextBracketInRange(currentModeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!foundBracket) {\n // there are no more brackets in this text\n break;\n }\n // check that we didn't hit a bracket too far away from position\n if (foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n const r = this._matchFoundBracket(foundBracket, currentModeBrackets.textIsBracket[foundBracketText], currentModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n if (r) {\n if (r instanceof BracketSearchCanceled) {\n return null;\n }\n bestResult = r;\n }\n }\n searchStartOffset = foundBracket.endColumn - 1;\n }\n if (bestResult) {\n return bestResult;\n }\n }\n // If position is in between two tokens, try also looking in the previous token\n if (tokenIndex > 0 && lineTokens.getStartOffset(tokenIndex) === position.column - 1) {\n const prevTokenIndex = tokenIndex - 1;\n const prevModeBrackets = this.languageConfigurationService.getLanguageConfiguration(lineTokens.getLanguageId(prevTokenIndex)).brackets;\n // check that previous token is not to be ignored\n if (prevModeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(prevTokenIndex))) {\n const { searchStartOffset, searchEndOffset } = this._establishBracketSearchOffsets(position, lineTokens, prevModeBrackets, prevTokenIndex);\n const foundBracket = BracketsUtils.findPrevBracketInRange(prevModeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n // check that we didn't hit a bracket too far away from position\n if (foundBracket && foundBracket.startColumn <= position.column && position.column <= foundBracket.endColumn) {\n const foundBracketText = lineText.substring(foundBracket.startColumn - 1, foundBracket.endColumn - 1).toLowerCase();\n const r = this._matchFoundBracket(foundBracket, prevModeBrackets.textIsBracket[foundBracketText], prevModeBrackets.textIsOpenBracket[foundBracketText], continueSearchPredicate);\n if (r) {\n if (r instanceof BracketSearchCanceled) {\n return null;\n }\n return r;\n }\n }\n }\n }\n return null;\n }\n _matchFoundBracket(foundBracket, data, isOpen, continueSearchPredicate) {\n if (!data) {\n return null;\n }\n const matched = (isOpen\n ? this._findMatchingBracketDown(data, foundBracket.getEndPosition(), continueSearchPredicate)\n : this._findMatchingBracketUp(data, foundBracket.getStartPosition(), continueSearchPredicate));\n if (!matched) {\n return null;\n }\n if (matched instanceof BracketSearchCanceled) {\n return matched;\n }\n return [foundBracket, matched];\n }\n _findMatchingBracketUp(bracket, position, continueSearchPredicate) {\n // console.log('_findMatchingBracketUp: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n const languageId = bracket.languageId;\n const reversedBracketRegex = bracket.reversedRegex;\n let count = -1;\n let totalCallCount = 0;\n const searchPrevMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findPrevBracketInRange(reversedBracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n if (bracket.isOpen(hitText)) {\n count++;\n }\n else if (bracket.isClose(hitText)) {\n count--;\n }\n if (count === 0) {\n return r;\n }\n searchEndOffset = r.startColumn - 1;\n }\n return null;\n };\n for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this.textModel.getLineContent(lineNumber);\n let tokenIndex = tokenCount - 1;\n let searchStartOffset = lineText.length;\n let searchEndOffset = lineText.length;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n }\n let prevSearchInToken = true;\n for (; tokenIndex >= 0; tokenIndex--) {\n const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchStartOffset\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchPrevMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n return null;\n }\n _findMatchingBracketDown(bracket, position, continueSearchPredicate) {\n // console.log('_findMatchingBracketDown: ', 'bracket: ', JSON.stringify(bracket), 'startPosition: ', String(position));\n const languageId = bracket.languageId;\n const bracketRegex = bracket.forwardRegex;\n let count = 1;\n let totalCallCount = 0;\n const searchNextMatchingBracketInRange = (lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findNextBracketInRange(bracketRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n if (bracket.isOpen(hitText)) {\n count++;\n }\n else if (bracket.isClose(hitText)) {\n count--;\n }\n if (count === 0) {\n return r;\n }\n searchStartOffset = r.endColumn - 1;\n }\n return null;\n };\n const lineCount = this.textModel.getLineCount();\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this.textModel.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const searchInToken = (lineTokens.getLanguageId(tokenIndex) === languageId && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchNextMatchingBracketInRange(lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return r;\n }\n }\n }\n return null;\n }\n findPrevBracket(_position) {\n var _a;\n const position = this.textModel.validatePosition(_position);\n if (this.canBuildAST) {\n this.bracketsRequested = true;\n this.updateBracketPairsTree();\n return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getFirstBracketBefore(position)) || null;\n }\n let languageId = null;\n let modeBrackets = null;\n let bracketConfig = null;\n for (let lineNumber = position.lineNumber; lineNumber >= 1; lineNumber--) {\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this.textModel.getLineContent(lineNumber);\n let tokenIndex = tokenCount - 1;\n let searchStartOffset = lineText.length;\n let searchEndOffset = lineText.length;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex >= 0; tokenIndex--) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (modeBrackets && bracketConfig && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchStartOffset\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findPrevBracketInRange(modeBrackets.reversedRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n }\n }\n return null;\n }\n findNextBracket(_position) {\n var _a;\n const position = this.textModel.validatePosition(_position);\n if (this.canBuildAST) {\n this.bracketsRequested = true;\n this.updateBracketPairsTree();\n return ((_a = this.bracketPairsTree.value) === null || _a === void 0 ? void 0 : _a.object.getFirstBracketAfter(position)) || null;\n }\n const lineCount = this.textModel.getLineCount();\n let languageId = null;\n let modeBrackets = null;\n let bracketConfig = null;\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this.textModel.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n bracketConfig = this.languageConfigurationService.getLanguageConfiguration(languageId).bracketsNew;\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (bracketConfig && modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return this._toFoundBracket(bracketConfig, r);\n }\n }\n }\n return null;\n }\n findEnclosingBrackets(_position, maxDuration) {\n const position = this.textModel.validatePosition(_position);\n if (this.canBuildAST) {\n const range = Range.fromPositions(position);\n const bracketPair = this.getBracketPairsInRange(Range.fromPositions(position, position)).findLast((item) => item.closingBracketRange !== undefined && item.range.strictContainsRange(range));\n if (bracketPair) {\n return [bracketPair.openingBracketRange, bracketPair.closingBracketRange];\n }\n return null;\n }\n const continueSearchPredicate = createTimeBasedContinueBracketSearchPredicate(maxDuration);\n const lineCount = this.textModel.getLineCount();\n const savedCounts = new Map();\n let counts = [];\n const resetCounts = (languageId, modeBrackets) => {\n if (!savedCounts.has(languageId)) {\n const tmp = [];\n for (let i = 0, len = modeBrackets ? modeBrackets.brackets.length : 0; i < len; i++) {\n tmp[i] = 0;\n }\n savedCounts.set(languageId, tmp);\n }\n counts = savedCounts.get(languageId);\n };\n let totalCallCount = 0;\n const searchInRange = (modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset) => {\n while (true) {\n if (continueSearchPredicate && (++totalCallCount) % 100 === 0 && !continueSearchPredicate()) {\n return BracketSearchCanceled.INSTANCE;\n }\n const r = BracketsUtils.findNextBracketInRange(modeBrackets.forwardRegex, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (!r) {\n break;\n }\n const hitText = lineText.substring(r.startColumn - 1, r.endColumn - 1).toLowerCase();\n const bracket = modeBrackets.textIsBracket[hitText];\n if (bracket) {\n if (bracket.isOpen(hitText)) {\n counts[bracket.index]++;\n }\n else if (bracket.isClose(hitText)) {\n counts[bracket.index]--;\n }\n if (counts[bracket.index] === -1) {\n return this._matchFoundBracket(r, bracket, false, continueSearchPredicate);\n }\n }\n searchStartOffset = r.endColumn - 1;\n }\n return null;\n };\n let languageId = null;\n let modeBrackets = null;\n for (let lineNumber = position.lineNumber; lineNumber <= lineCount; lineNumber++) {\n const lineTokens = this.textModel.tokenization.getLineTokens(lineNumber);\n const tokenCount = lineTokens.getCount();\n const lineText = this.textModel.getLineContent(lineNumber);\n let tokenIndex = 0;\n let searchStartOffset = 0;\n let searchEndOffset = 0;\n if (lineNumber === position.lineNumber) {\n tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n searchStartOffset = position.column - 1;\n searchEndOffset = position.column - 1;\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n resetCounts(languageId, modeBrackets);\n }\n }\n let prevSearchInToken = true;\n for (; tokenIndex < tokenCount; tokenIndex++) {\n const tokenLanguageId = lineTokens.getLanguageId(tokenIndex);\n if (languageId !== tokenLanguageId) {\n // language id change!\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n prevSearchInToken = false;\n }\n languageId = tokenLanguageId;\n modeBrackets = this.languageConfigurationService.getLanguageConfiguration(languageId).brackets;\n resetCounts(languageId, modeBrackets);\n }\n const searchInToken = (!!modeBrackets && !ignoreBracketsInToken(lineTokens.getStandardTokenType(tokenIndex)));\n if (searchInToken) {\n // this token should be searched\n if (prevSearchInToken) {\n // the previous token should be searched, simply extend searchEndOffset\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n else {\n // the previous token should not be searched\n searchStartOffset = lineTokens.getStartOffset(tokenIndex);\n searchEndOffset = lineTokens.getEndOffset(tokenIndex);\n }\n }\n else {\n // this token should not be searched\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n }\n }\n prevSearchInToken = searchInToken;\n }\n if (modeBrackets && prevSearchInToken && searchStartOffset !== searchEndOffset) {\n const r = searchInRange(modeBrackets, lineNumber, lineText, searchStartOffset, searchEndOffset);\n if (r) {\n return stripBracketSearchCanceled(r);\n }\n }\n }\n return null;\n }\n _toFoundBracket(bracketConfig, r) {\n if (!r) {\n return null;\n }\n let text = this.textModel.getValueInRange(r);\n text = text.toLowerCase();\n const bracketInfo = bracketConfig.getBracketInfo(text);\n if (!bracketInfo) {\n return null;\n }\n return {\n range: r,\n bracketInfo\n };\n }\n}\nfunction createDisposableRef(object, disposable) {\n return {\n object,\n dispose: () => disposable === null || disposable === void 0 ? void 0 : disposable.dispose(),\n };\n}\nfunction createTimeBasedContinueBracketSearchPredicate(maxDuration) {\n if (typeof maxDuration === 'undefined') {\n return () => true;\n }\n else {\n const startTime = Date.now();\n return () => {\n return (Date.now() - startTime <= maxDuration);\n };\n }\n}\nclass BracketSearchCanceled {\n constructor() {\n this._searchCanceledBrand = undefined;\n }\n}\nBracketSearchCanceled.INSTANCE = new BracketSearchCanceled();\nfunction stripBracketSearchCanceled(result) {\n if (result instanceof BracketSearchCanceled) {\n return null;\n }\n return result;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Range } from '../../core/range.js';\nimport { editorBracketHighlightingForeground1, editorBracketHighlightingForeground2, editorBracketHighlightingForeground3, editorBracketHighlightingForeground4, editorBracketHighlightingForeground5, editorBracketHighlightingForeground6, editorBracketHighlightingUnexpectedBracketForeground } from '../../core/editorColorRegistry.js';\nimport { registerThemingParticipant } from '../../../../platform/theme/common/themeService.js';\nexport class ColorizedBracketPairsDecorationProvider extends Disposable {\n constructor(textModel) {\n super();\n this.textModel = textModel;\n this.colorProvider = new ColorProvider();\n this.onDidChangeEmitter = new Emitter();\n this.onDidChange = this.onDidChangeEmitter.event;\n this.colorizationOptions = textModel.getOptions().bracketPairColorizationOptions;\n this._register(textModel.bracketPairs.onDidChange(e => {\n this.onDidChangeEmitter.fire();\n }));\n }\n //#region TextModel events\n handleDidChangeOptions(e) {\n this.colorizationOptions = this.textModel.getOptions().bracketPairColorizationOptions;\n }\n //#endregion\n getDecorationsInRange(range, ownerId, filterOutValidation, onlyMinimapDecorations) {\n if (onlyMinimapDecorations) {\n // Bracket pair colorization decorations are not rendered in the minimap\n return [];\n }\n if (ownerId === undefined) {\n return [];\n }\n if (!this.colorizationOptions.enabled) {\n return [];\n }\n const result = this.textModel.bracketPairs.getBracketsInRange(range, true).map(bracket => ({\n id: `bracket${bracket.range.toString()}-${bracket.nestingLevel}`,\n options: {\n description: 'BracketPairColorization',\n inlineClassName: this.colorProvider.getInlineClassName(bracket, this.colorizationOptions.independentColorPoolPerBracketType),\n },\n ownerId: 0,\n range: bracket.range,\n })).toArray();\n return result;\n }\n getAllDecorations(ownerId, filterOutValidation) {\n if (ownerId === undefined) {\n return [];\n }\n if (!this.colorizationOptions.enabled) {\n return [];\n }\n return this.getDecorationsInRange(new Range(1, 1, this.textModel.getLineCount(), 1), ownerId, filterOutValidation);\n }\n}\nclass ColorProvider {\n constructor() {\n this.unexpectedClosingBracketClassName = 'unexpected-closing-bracket';\n }\n getInlineClassName(bracket, independentColorPoolPerBracketType) {\n if (bracket.isInvalid) {\n return this.unexpectedClosingBracketClassName;\n }\n return this.getInlineClassNameOfLevel(independentColorPoolPerBracketType ? bracket.nestingLevelOfEqualBracketType : bracket.nestingLevel);\n }\n getInlineClassNameOfLevel(level) {\n // To support a dynamic amount of colors up to 6 colors,\n // we use a number that is a lcm of all numbers from 1 to 6.\n return `bracket-highlighting-${level % 30}`;\n }\n}\nregisterThemingParticipant((theme, collector) => {\n const colors = [\n editorBracketHighlightingForeground1,\n editorBracketHighlightingForeground2,\n editorBracketHighlightingForeground3,\n editorBracketHighlightingForeground4,\n editorBracketHighlightingForeground5,\n editorBracketHighlightingForeground6\n ];\n const colorProvider = new ColorProvider();\n collector.addRule(`.monaco-editor .${colorProvider.unexpectedClosingBracketClassName} { color: ${theme.getColor(editorBracketHighlightingUnexpectedBracketForeground)}; }`);\n const colorValues = colors\n .map(c => theme.getColor(c))\n .filter((c) => !!c)\n .filter(c => !c.isTransparent());\n for (let level = 0; level < 30; level++) {\n const color = colorValues[level % colorValues.length];\n collector.addRule(`.monaco-editor .${colorProvider.getInlineClassNameOfLevel(level)} { color: ${color}; }`);\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nclass SpacesDiffResult {\n constructor() {\n this.spacesDiff = 0;\n this.looksLikeAlignment = false;\n }\n}\n/**\n * Compute the diff in spaces between two line's indentation.\n */\nfunction spacesDiff(a, aLength, b, bLength, result) {\n result.spacesDiff = 0;\n result.looksLikeAlignment = false;\n // This can go both ways (e.g.):\n // - a: \"\\t\"\n // - b: \"\\t \"\n // => This should count 1 tab and 4 spaces\n let i;\n for (i = 0; i < aLength && i < bLength; i++) {\n const aCharCode = a.charCodeAt(i);\n const bCharCode = b.charCodeAt(i);\n if (aCharCode !== bCharCode) {\n break;\n }\n }\n let aSpacesCnt = 0, aTabsCount = 0;\n for (let j = i; j < aLength; j++) {\n const aCharCode = a.charCodeAt(j);\n if (aCharCode === 32 /* CharCode.Space */) {\n aSpacesCnt++;\n }\n else {\n aTabsCount++;\n }\n }\n let bSpacesCnt = 0, bTabsCount = 0;\n for (let j = i; j < bLength; j++) {\n const bCharCode = b.charCodeAt(j);\n if (bCharCode === 32 /* CharCode.Space */) {\n bSpacesCnt++;\n }\n else {\n bTabsCount++;\n }\n }\n if (aSpacesCnt > 0 && aTabsCount > 0) {\n return;\n }\n if (bSpacesCnt > 0 && bTabsCount > 0) {\n return;\n }\n const tabsDiff = Math.abs(aTabsCount - bTabsCount);\n const spacesDiff = Math.abs(aSpacesCnt - bSpacesCnt);\n if (tabsDiff === 0) {\n // check if the indentation difference might be caused by alignment reasons\n // sometime folks like to align their code, but this should not be used as a hint\n result.spacesDiff = spacesDiff;\n if (spacesDiff > 0 && 0 <= bSpacesCnt - 1 && bSpacesCnt - 1 < a.length && bSpacesCnt < b.length) {\n if (b.charCodeAt(bSpacesCnt) !== 32 /* CharCode.Space */ && a.charCodeAt(bSpacesCnt - 1) === 32 /* CharCode.Space */) {\n if (a.charCodeAt(a.length - 1) === 44 /* CharCode.Comma */) {\n // This looks like an alignment desire: e.g.\n // const a = b + c,\n // d = b - c;\n result.looksLikeAlignment = true;\n }\n }\n }\n return;\n }\n if (spacesDiff % tabsDiff === 0) {\n result.spacesDiff = spacesDiff / tabsDiff;\n return;\n }\n}\nexport function guessIndentation(source, defaultTabSize, defaultInsertSpaces) {\n // Look at most at the first 10k lines\n const linesCount = Math.min(source.getLineCount(), 10000);\n let linesIndentedWithTabsCount = 0; // number of lines that contain at least one tab in indentation\n let linesIndentedWithSpacesCount = 0; // number of lines that contain only spaces in indentation\n let previousLineText = ''; // content of latest line that contained non-whitespace chars\n let previousLineIndentation = 0; // index at which latest line contained the first non-whitespace char\n const ALLOWED_TAB_SIZE_GUESSES = [2, 4, 6, 8, 3, 5, 7]; // prefer even guesses for `tabSize`, limit to [2, 8].\n const MAX_ALLOWED_TAB_SIZE_GUESS = 8; // max(ALLOWED_TAB_SIZE_GUESSES) = 8\n const spacesDiffCount = [0, 0, 0, 0, 0, 0, 0, 0, 0]; // `tabSize` scores\n const tmp = new SpacesDiffResult();\n for (let lineNumber = 1; lineNumber <= linesCount; lineNumber++) {\n const currentLineLength = source.getLineLength(lineNumber);\n const currentLineText = source.getLineContent(lineNumber);\n // if the text buffer is chunk based, so long lines are cons-string, v8 will flattern the string when we check charCode.\n // checking charCode on chunks directly is cheaper.\n const useCurrentLineText = (currentLineLength <= 65536);\n let currentLineHasContent = false; // does `currentLineText` contain non-whitespace chars\n let currentLineIndentation = 0; // index at which `currentLineText` contains the first non-whitespace char\n let currentLineSpacesCount = 0; // count of spaces found in `currentLineText` indentation\n let currentLineTabsCount = 0; // count of tabs found in `currentLineText` indentation\n for (let j = 0, lenJ = currentLineLength; j < lenJ; j++) {\n const charCode = (useCurrentLineText ? currentLineText.charCodeAt(j) : source.getLineCharCode(lineNumber, j));\n if (charCode === 9 /* CharCode.Tab */) {\n currentLineTabsCount++;\n }\n else if (charCode === 32 /* CharCode.Space */) {\n currentLineSpacesCount++;\n }\n else {\n // Hit non whitespace character on this line\n currentLineHasContent = true;\n currentLineIndentation = j;\n break;\n }\n }\n // Ignore empty or only whitespace lines\n if (!currentLineHasContent) {\n continue;\n }\n if (currentLineTabsCount > 0) {\n linesIndentedWithTabsCount++;\n }\n else if (currentLineSpacesCount > 1) {\n linesIndentedWithSpacesCount++;\n }\n spacesDiff(previousLineText, previousLineIndentation, currentLineText, currentLineIndentation, tmp);\n if (tmp.looksLikeAlignment) {\n // if defaultInsertSpaces === true && the spaces count == tabSize, we may want to count it as valid indentation\n //\n // - item1\n // - item2\n //\n // otherwise skip this line entirely\n //\n // const a = 1,\n // b = 2;\n if (!(defaultInsertSpaces && defaultTabSize === tmp.spacesDiff)) {\n continue;\n }\n }\n const currentSpacesDiff = tmp.spacesDiff;\n if (currentSpacesDiff <= MAX_ALLOWED_TAB_SIZE_GUESS) {\n spacesDiffCount[currentSpacesDiff]++;\n }\n previousLineText = currentLineText;\n previousLineIndentation = currentLineIndentation;\n }\n let insertSpaces = defaultInsertSpaces;\n if (linesIndentedWithTabsCount !== linesIndentedWithSpacesCount) {\n insertSpaces = (linesIndentedWithTabsCount < linesIndentedWithSpacesCount);\n }\n let tabSize = defaultTabSize;\n // Guess tabSize only if inserting spaces...\n if (insertSpaces) {\n let tabSizeScore = (insertSpaces ? 0 : 0.1 * linesCount);\n // console.log(\"score threshold: \" + tabSizeScore);\n ALLOWED_TAB_SIZE_GUESSES.forEach((possibleTabSize) => {\n const possibleTabSizeScore = spacesDiffCount[possibleTabSize];\n if (possibleTabSizeScore > tabSizeScore) {\n tabSizeScore = possibleTabSizeScore;\n tabSize = possibleTabSize;\n }\n });\n // Let a tabSize of 2 win even if it is not the maximum\n // (only in case 4 was guessed)\n if (tabSize === 4 && spacesDiffCount[4] > 0 && spacesDiffCount[2] > 0 && spacesDiffCount[2] >= spacesDiffCount[4] / 2) {\n tabSize = 2;\n }\n }\n // console.log('--------------------------');\n // console.log('linesIndentedWithTabsCount: ' + linesIndentedWithTabsCount + ', linesIndentedWithSpacesCount: ' + linesIndentedWithSpacesCount);\n // console.log('spacesDiffCount: ' + spacesDiffCount);\n // console.log('tabSize: ' + tabSize + ', tabSizeScore: ' + tabSizeScore);\n return {\n insertSpaces: insertSpaces,\n tabSize: tabSize\n };\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function getNodeColor(node) {\n return ((node.metadata & 1 /* Constants.ColorMask */) >>> 0 /* Constants.ColorOffset */);\n}\nfunction setNodeColor(node, color) {\n node.metadata = ((node.metadata & 254 /* Constants.ColorMaskInverse */) | (color << 0 /* Constants.ColorOffset */));\n}\nfunction getNodeIsVisited(node) {\n return ((node.metadata & 2 /* Constants.IsVisitedMask */) >>> 1 /* Constants.IsVisitedOffset */) === 1;\n}\nfunction setNodeIsVisited(node, value) {\n node.metadata = ((node.metadata & 253 /* Constants.IsVisitedMaskInverse */) | ((value ? 1 : 0) << 1 /* Constants.IsVisitedOffset */));\n}\nfunction getNodeIsForValidation(node) {\n return ((node.metadata & 4 /* Constants.IsForValidationMask */) >>> 2 /* Constants.IsForValidationOffset */) === 1;\n}\nfunction setNodeIsForValidation(node, value) {\n node.metadata = ((node.metadata & 251 /* Constants.IsForValidationMaskInverse */) | ((value ? 1 : 0) << 2 /* Constants.IsForValidationOffset */));\n}\nfunction getNodeIsInGlyphMargin(node) {\n return ((node.metadata & 64 /* Constants.IsMarginMask */) >>> 6 /* Constants.IsMarginOffset */) === 1;\n}\nfunction setNodeIsInGlyphMargin(node, value) {\n node.metadata = ((node.metadata & 191 /* Constants.IsMarginMaskInverse */) | ((value ? 1 : 0) << 6 /* Constants.IsMarginOffset */));\n}\nfunction getNodeStickiness(node) {\n return ((node.metadata & 24 /* Constants.StickinessMask */) >>> 3 /* Constants.StickinessOffset */);\n}\nfunction _setNodeStickiness(node, stickiness) {\n node.metadata = ((node.metadata & 231 /* Constants.StickinessMaskInverse */) | (stickiness << 3 /* Constants.StickinessOffset */));\n}\nfunction getCollapseOnReplaceEdit(node) {\n return ((node.metadata & 32 /* Constants.CollapseOnReplaceEditMask */) >>> 5 /* Constants.CollapseOnReplaceEditOffset */) === 1;\n}\nfunction setCollapseOnReplaceEdit(node, value) {\n node.metadata = ((node.metadata & 223 /* Constants.CollapseOnReplaceEditMaskInverse */) | ((value ? 1 : 0) << 5 /* Constants.CollapseOnReplaceEditOffset */));\n}\nexport class IntervalNode {\n constructor(id, start, end) {\n this.metadata = 0;\n this.parent = this;\n this.left = this;\n this.right = this;\n setNodeColor(this, 1 /* NodeColor.Red */);\n this.start = start;\n this.end = end;\n // FORCE_OVERFLOWING_TEST: this.delta = start;\n this.delta = 0;\n this.maxEnd = end;\n this.id = id;\n this.ownerId = 0;\n this.options = null;\n setNodeIsForValidation(this, false);\n setNodeIsInGlyphMargin(this, false);\n _setNodeStickiness(this, 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */);\n setCollapseOnReplaceEdit(this, false);\n this.cachedVersionId = 0;\n this.cachedAbsoluteStart = start;\n this.cachedAbsoluteEnd = end;\n this.range = null;\n setNodeIsVisited(this, false);\n }\n reset(versionId, start, end, range) {\n this.start = start;\n this.end = end;\n this.maxEnd = end;\n this.cachedVersionId = versionId;\n this.cachedAbsoluteStart = start;\n this.cachedAbsoluteEnd = end;\n this.range = range;\n }\n setOptions(options) {\n this.options = options;\n const className = this.options.className;\n setNodeIsForValidation(this, (className === \"squiggly-error\" /* ClassName.EditorErrorDecoration */\n || className === \"squiggly-warning\" /* ClassName.EditorWarningDecoration */\n || className === \"squiggly-info\" /* ClassName.EditorInfoDecoration */));\n setNodeIsInGlyphMargin(this, this.options.glyphMarginClassName !== null);\n _setNodeStickiness(this, this.options.stickiness);\n setCollapseOnReplaceEdit(this, this.options.collapseOnReplaceEdit);\n }\n setCachedOffsets(absoluteStart, absoluteEnd, cachedVersionId) {\n if (this.cachedVersionId !== cachedVersionId) {\n this.range = null;\n }\n this.cachedVersionId = cachedVersionId;\n this.cachedAbsoluteStart = absoluteStart;\n this.cachedAbsoluteEnd = absoluteEnd;\n }\n detach() {\n this.parent = null;\n this.left = null;\n this.right = null;\n }\n}\nexport const SENTINEL = new IntervalNode(null, 0, 0);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nsetNodeColor(SENTINEL, 0 /* NodeColor.Black */);\nexport class IntervalTree {\n constructor() {\n this.root = SENTINEL;\n this.requestNormalizeDelta = false;\n }\n intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n if (this.root === SENTINEL) {\n return [];\n }\n return intervalSearch(this, start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n }\n search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n if (this.root === SENTINEL) {\n return [];\n }\n return search(this, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n }\n /**\n * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n */\n collectNodesFromOwner(ownerId) {\n return collectNodesFromOwner(this, ownerId);\n }\n /**\n * Will not set `cachedAbsoluteStart` nor `cachedAbsoluteEnd` on the returned nodes!\n */\n collectNodesPostOrder() {\n return collectNodesPostOrder(this);\n }\n insert(node) {\n rbTreeInsert(this, node);\n this._normalizeDeltaIfNecessary();\n }\n delete(node) {\n rbTreeDelete(this, node);\n this._normalizeDeltaIfNecessary();\n }\n resolveNode(node, cachedVersionId) {\n const initialNode = node;\n let delta = 0;\n while (node !== this.root) {\n if (node === node.parent.right) {\n delta += node.parent.delta;\n }\n node = node.parent;\n }\n const nodeStart = initialNode.start + delta;\n const nodeEnd = initialNode.end + delta;\n initialNode.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n }\n acceptReplace(offset, length, textLength, forceMoveMarkers) {\n // Our strategy is to remove all directly impacted nodes, and then add them back to the tree.\n // (1) collect all nodes that are intersecting this edit as nodes of interest\n const nodesOfInterest = searchForEditing(this, offset, offset + length);\n // (2) remove all nodes that are intersecting this edit\n for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n const node = nodesOfInterest[i];\n rbTreeDelete(this, node);\n }\n this._normalizeDeltaIfNecessary();\n // (3) edit all tree nodes except the nodes of interest\n noOverlapReplace(this, offset, offset + length, textLength);\n this._normalizeDeltaIfNecessary();\n // (4) edit the nodes of interest and insert them back in the tree\n for (let i = 0, len = nodesOfInterest.length; i < len; i++) {\n const node = nodesOfInterest[i];\n node.start = node.cachedAbsoluteStart;\n node.end = node.cachedAbsoluteEnd;\n nodeAcceptEdit(node, offset, (offset + length), textLength, forceMoveMarkers);\n node.maxEnd = node.end;\n rbTreeInsert(this, node);\n }\n this._normalizeDeltaIfNecessary();\n }\n _normalizeDeltaIfNecessary() {\n if (!this.requestNormalizeDelta) {\n return;\n }\n this.requestNormalizeDelta = false;\n normalizeDelta(this);\n }\n}\n//#region Delta Normalization\nfunction normalizeDelta(T) {\n let node = T.root;\n let delta = 0;\n while (node !== SENTINEL) {\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n // handle current node\n node.start = delta + node.start;\n node.end = delta + node.end;\n node.delta = 0;\n recomputeMaxEnd(node);\n setNodeIsVisited(node, true);\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n }\n setNodeIsVisited(T.root, false);\n}\nfunction adjustMarkerBeforeColumn(markerOffset, markerStickToPreviousCharacter, checkOffset, moveSemantics) {\n if (markerOffset < checkOffset) {\n return true;\n }\n if (markerOffset > checkOffset) {\n return false;\n }\n if (moveSemantics === 1 /* MarkerMoveSemantics.ForceMove */) {\n return false;\n }\n if (moveSemantics === 2 /* MarkerMoveSemantics.ForceStay */) {\n return true;\n }\n return markerStickToPreviousCharacter;\n}\n/**\n * This is a lot more complicated than strictly necessary to maintain the same behaviour\n * as when decorations were implemented using two markers.\n */\nexport function nodeAcceptEdit(node, start, end, textLength, forceMoveMarkers) {\n const nodeStickiness = getNodeStickiness(node);\n const startStickToPreviousCharacter = (nodeStickiness === 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */\n || nodeStickiness === 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */);\n const endStickToPreviousCharacter = (nodeStickiness === 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */\n || nodeStickiness === 2 /* TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */);\n const deletingCnt = (end - start);\n const insertingCnt = textLength;\n const commonLength = Math.min(deletingCnt, insertingCnt);\n const nodeStart = node.start;\n let startDone = false;\n const nodeEnd = node.end;\n let endDone = false;\n if (start <= nodeStart && nodeEnd <= end && getCollapseOnReplaceEdit(node)) {\n // This edit encompasses the entire decoration range\n // and the decoration has asked to become collapsed\n node.start = start;\n startDone = true;\n node.end = start;\n endDone = true;\n }\n {\n const moveSemantics = forceMoveMarkers ? 1 /* MarkerMoveSemantics.ForceMove */ : (deletingCnt > 0 ? 2 /* MarkerMoveSemantics.ForceStay */ : 0 /* MarkerMoveSemantics.MarkerDefined */);\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start, moveSemantics)) {\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start, moveSemantics)) {\n endDone = true;\n }\n }\n if (commonLength > 0 && !forceMoveMarkers) {\n const moveSemantics = (deletingCnt > insertingCnt ? 2 /* MarkerMoveSemantics.ForceStay */ : 0 /* MarkerMoveSemantics.MarkerDefined */);\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, start + commonLength, moveSemantics)) {\n endDone = true;\n }\n }\n {\n const moveSemantics = forceMoveMarkers ? 1 /* MarkerMoveSemantics.ForceMove */ : 0 /* MarkerMoveSemantics.MarkerDefined */;\n if (!startDone && adjustMarkerBeforeColumn(nodeStart, startStickToPreviousCharacter, end, moveSemantics)) {\n node.start = start + insertingCnt;\n startDone = true;\n }\n if (!endDone && adjustMarkerBeforeColumn(nodeEnd, endStickToPreviousCharacter, end, moveSemantics)) {\n node.end = start + insertingCnt;\n endDone = true;\n }\n }\n // Finish\n const deltaColumn = (insertingCnt - deletingCnt);\n if (!startDone) {\n node.start = Math.max(0, nodeStart + deltaColumn);\n }\n if (!endDone) {\n node.end = Math.max(0, nodeEnd + deltaColumn);\n }\n if (node.start > node.end) {\n node.end = node.start;\n }\n}\nfunction searchForEditing(T, start, end) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n const result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < start) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > end) {\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n nodeEnd = delta + node.end;\n if (nodeEnd >= start) {\n node.setCachedOffsets(nodeStart, nodeEnd, 0);\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction noOverlapReplace(T, start, end, textLength) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n const editDelta = (textLength - (end - start));\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n recomputeMaxEnd(node);\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < start) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > end) {\n node.start += editDelta;\n node.end += editDelta;\n node.delta += editDelta;\n if (node.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || node.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n}\n//#endregion\n//#region Searching\nfunction collectNodesFromOwner(T, ownerId) {\n let node = T.root;\n const result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n // handle current node\n if (node.ownerId === ownerId) {\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction collectNodesPostOrder(T) {\n let node = T.root;\n const result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n node = node.right;\n continue;\n }\n // handle current node\n result[resultLen++] = node;\n setNodeIsVisited(node, true);\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction search(T, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n let node = T.root;\n let delta = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n const result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (node.left !== SENTINEL && !getNodeIsVisited(node.left)) {\n // go left\n node = node.left;\n continue;\n }\n // handle current node\n nodeStart = delta + node.start;\n nodeEnd = delta + node.end;\n node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n let include = true;\n if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n include = false;\n }\n if (filterOutValidation && getNodeIsForValidation(node)) {\n include = false;\n }\n if (onlyMarginDecorations && !getNodeIsInGlyphMargin(node)) {\n include = false;\n }\n if (include) {\n result[resultLen++] = node;\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\nfunction intervalSearch(T, intervalStart, intervalEnd, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n // https://en.wikipedia.org/wiki/Interval_tree#Augmented_tree\n // Now, it is known that two intervals A and B overlap only when both\n // A.low <= B.high and A.high >= B.low. When searching the trees for\n // nodes overlapping with a given interval, you can immediately skip:\n // a) all nodes to the right of nodes whose low value is past the end of the given interval.\n // b) all nodes that have their maximum 'high' value below the start of the given interval.\n let node = T.root;\n let delta = 0;\n let nodeMaxEnd = 0;\n let nodeStart = 0;\n let nodeEnd = 0;\n const result = [];\n let resultLen = 0;\n while (node !== SENTINEL) {\n if (getNodeIsVisited(node)) {\n // going up from this node\n setNodeIsVisited(node.left, false);\n setNodeIsVisited(node.right, false);\n if (node === node.parent.right) {\n delta -= node.parent.delta;\n }\n node = node.parent;\n continue;\n }\n if (!getNodeIsVisited(node.left)) {\n // first time seeing this node\n nodeMaxEnd = delta + node.maxEnd;\n if (nodeMaxEnd < intervalStart) {\n // cover case b) from above\n // there is no need to search this node or its children\n setNodeIsVisited(node, true);\n continue;\n }\n if (node.left !== SENTINEL) {\n // go left\n node = node.left;\n continue;\n }\n }\n // handle current node\n nodeStart = delta + node.start;\n if (nodeStart > intervalEnd) {\n // cover case a) from above\n // there is no need to search this node or its right subtree\n setNodeIsVisited(node, true);\n continue;\n }\n nodeEnd = delta + node.end;\n if (nodeEnd >= intervalStart) {\n // There is overlap\n node.setCachedOffsets(nodeStart, nodeEnd, cachedVersionId);\n let include = true;\n if (filterOwnerId && node.ownerId && node.ownerId !== filterOwnerId) {\n include = false;\n }\n if (filterOutValidation && getNodeIsForValidation(node)) {\n include = false;\n }\n if (onlyMarginDecorations && !getNodeIsInGlyphMargin(node)) {\n include = false;\n }\n if (include) {\n result[resultLen++] = node;\n }\n }\n setNodeIsVisited(node, true);\n if (node.right !== SENTINEL && !getNodeIsVisited(node.right)) {\n // go right\n delta += node.delta;\n node = node.right;\n continue;\n }\n }\n setNodeIsVisited(T.root, false);\n return result;\n}\n//#endregion\n//#region Insertion\nfunction rbTreeInsert(T, newNode) {\n if (T.root === SENTINEL) {\n newNode.parent = SENTINEL;\n newNode.left = SENTINEL;\n newNode.right = SENTINEL;\n setNodeColor(newNode, 0 /* NodeColor.Black */);\n T.root = newNode;\n return T.root;\n }\n treeInsert(T, newNode);\n recomputeMaxEndWalkToRoot(newNode.parent);\n // repair tree\n let x = newNode;\n while (x !== T.root && getNodeColor(x.parent) === 1 /* NodeColor.Red */) {\n if (x.parent === x.parent.parent.left) {\n const y = x.parent.parent.right;\n if (getNodeColor(y) === 1 /* NodeColor.Red */) {\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(y, 0 /* NodeColor.Black */);\n setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.right) {\n x = x.parent;\n leftRotate(T, x);\n }\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n rightRotate(T, x.parent.parent);\n }\n }\n else {\n const y = x.parent.parent.left;\n if (getNodeColor(y) === 1 /* NodeColor.Red */) {\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(y, 0 /* NodeColor.Black */);\n setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.left) {\n x = x.parent;\n rightRotate(T, x);\n }\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(x.parent.parent, 1 /* NodeColor.Red */);\n leftRotate(T, x.parent.parent);\n }\n }\n }\n setNodeColor(T.root, 0 /* NodeColor.Black */);\n return newNode;\n}\nfunction treeInsert(T, z) {\n let delta = 0;\n let x = T.root;\n const zAbsoluteStart = z.start;\n const zAbsoluteEnd = z.end;\n while (true) {\n const cmp = intervalCompare(zAbsoluteStart, zAbsoluteEnd, x.start + delta, x.end + delta);\n if (cmp < 0) {\n // this node should be inserted to the left\n // => it is not affected by the node's delta\n if (x.left === SENTINEL) {\n z.start -= delta;\n z.end -= delta;\n z.maxEnd -= delta;\n x.left = z;\n break;\n }\n else {\n x = x.left;\n }\n }\n else {\n // this node should be inserted to the right\n // => it is not affected by the node's delta\n if (x.right === SENTINEL) {\n z.start -= (delta + x.delta);\n z.end -= (delta + x.delta);\n z.maxEnd -= (delta + x.delta);\n x.right = z;\n break;\n }\n else {\n delta += x.delta;\n x = x.right;\n }\n }\n }\n z.parent = x;\n z.left = SENTINEL;\n z.right = SENTINEL;\n setNodeColor(z, 1 /* NodeColor.Red */);\n}\n//#endregion\n//#region Deletion\nfunction rbTreeDelete(T, z) {\n let x;\n let y;\n // RB-DELETE except we don't swap z and y in case c)\n // i.e. we always delete what's pointed at by z.\n if (z.left === SENTINEL) {\n x = z.right;\n y = z;\n // x's delta is no longer influenced by z's delta\n x.delta += z.delta;\n if (x.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || x.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n x.start += z.delta;\n x.end += z.delta;\n }\n else if (z.right === SENTINEL) {\n x = z.left;\n y = z;\n }\n else {\n y = leftest(z.right);\n x = y.right;\n // y's delta is no longer influenced by z's delta,\n // but we don't want to walk the entire right-hand-side subtree of x.\n // we therefore maintain z's delta in y, and adjust only x\n x.start += y.delta;\n x.end += y.delta;\n x.delta += y.delta;\n if (x.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || x.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start += z.delta;\n y.end += z.delta;\n y.delta = z.delta;\n if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n }\n if (y === T.root) {\n T.root = x;\n setNodeColor(x, 0 /* NodeColor.Black */);\n z.detach();\n resetSentinel();\n recomputeMaxEnd(x);\n T.root.parent = SENTINEL;\n return;\n }\n const yWasRed = (getNodeColor(y) === 1 /* NodeColor.Red */);\n if (y === y.parent.left) {\n y.parent.left = x;\n }\n else {\n y.parent.right = x;\n }\n if (y === z) {\n x.parent = y.parent;\n }\n else {\n if (y.parent === z) {\n x.parent = y;\n }\n else {\n x.parent = y.parent;\n }\n y.left = z.left;\n y.right = z.right;\n y.parent = z.parent;\n setNodeColor(y, getNodeColor(z));\n if (z === T.root) {\n T.root = y;\n }\n else {\n if (z === z.parent.left) {\n z.parent.left = y;\n }\n else {\n z.parent.right = y;\n }\n }\n if (y.left !== SENTINEL) {\n y.left.parent = y;\n }\n if (y.right !== SENTINEL) {\n y.right.parent = y;\n }\n }\n z.detach();\n if (yWasRed) {\n recomputeMaxEndWalkToRoot(x.parent);\n if (y !== z) {\n recomputeMaxEndWalkToRoot(y);\n recomputeMaxEndWalkToRoot(y.parent);\n }\n resetSentinel();\n return;\n }\n recomputeMaxEndWalkToRoot(x);\n recomputeMaxEndWalkToRoot(x.parent);\n if (y !== z) {\n recomputeMaxEndWalkToRoot(y);\n recomputeMaxEndWalkToRoot(y.parent);\n }\n // RB-DELETE-FIXUP\n let w;\n while (x !== T.root && getNodeColor(x) === 0 /* NodeColor.Black */) {\n if (x === x.parent.left) {\n w = x.parent.right;\n if (getNodeColor(w) === 1 /* NodeColor.Red */) {\n setNodeColor(w, 0 /* NodeColor.Black */);\n setNodeColor(x.parent, 1 /* NodeColor.Red */);\n leftRotate(T, x.parent);\n w = x.parent.right;\n }\n if (getNodeColor(w.left) === 0 /* NodeColor.Black */ && getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n setNodeColor(w, 1 /* NodeColor.Red */);\n x = x.parent;\n }\n else {\n if (getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n setNodeColor(w.left, 0 /* NodeColor.Black */);\n setNodeColor(w, 1 /* NodeColor.Red */);\n rightRotate(T, w);\n w = x.parent.right;\n }\n setNodeColor(w, getNodeColor(x.parent));\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(w.right, 0 /* NodeColor.Black */);\n leftRotate(T, x.parent);\n x = T.root;\n }\n }\n else {\n w = x.parent.left;\n if (getNodeColor(w) === 1 /* NodeColor.Red */) {\n setNodeColor(w, 0 /* NodeColor.Black */);\n setNodeColor(x.parent, 1 /* NodeColor.Red */);\n rightRotate(T, x.parent);\n w = x.parent.left;\n }\n if (getNodeColor(w.left) === 0 /* NodeColor.Black */ && getNodeColor(w.right) === 0 /* NodeColor.Black */) {\n setNodeColor(w, 1 /* NodeColor.Red */);\n x = x.parent;\n }\n else {\n if (getNodeColor(w.left) === 0 /* NodeColor.Black */) {\n setNodeColor(w.right, 0 /* NodeColor.Black */);\n setNodeColor(w, 1 /* NodeColor.Red */);\n leftRotate(T, w);\n w = x.parent.left;\n }\n setNodeColor(w, getNodeColor(x.parent));\n setNodeColor(x.parent, 0 /* NodeColor.Black */);\n setNodeColor(w.left, 0 /* NodeColor.Black */);\n rightRotate(T, x.parent);\n x = T.root;\n }\n }\n }\n setNodeColor(x, 0 /* NodeColor.Black */);\n resetSentinel();\n}\nfunction leftest(node) {\n while (node.left !== SENTINEL) {\n node = node.left;\n }\n return node;\n}\nfunction resetSentinel() {\n SENTINEL.parent = SENTINEL;\n SENTINEL.delta = 0; // optional\n SENTINEL.start = 0; // optional\n SENTINEL.end = 0; // optional\n}\n//#endregion\n//#region Rotations\nfunction leftRotate(T, x) {\n const y = x.right; // set y.\n y.delta += x.delta; // y's delta is no longer influenced by x's delta\n if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start += x.delta;\n y.end += x.delta;\n x.right = y.left; // turn y's left subtree into x's right subtree.\n if (y.left !== SENTINEL) {\n y.left.parent = x;\n }\n y.parent = x.parent; // link x's parent to y.\n if (x.parent === SENTINEL) {\n T.root = y;\n }\n else if (x === x.parent.left) {\n x.parent.left = y;\n }\n else {\n x.parent.right = y;\n }\n y.left = x; // put x on y's left.\n x.parent = y;\n recomputeMaxEnd(x);\n recomputeMaxEnd(y);\n}\nfunction rightRotate(T, y) {\n const x = y.left;\n y.delta -= x.delta;\n if (y.delta < -1073741824 /* Constants.MIN_SAFE_DELTA */ || y.delta > 1073741824 /* Constants.MAX_SAFE_DELTA */) {\n T.requestNormalizeDelta = true;\n }\n y.start -= x.delta;\n y.end -= x.delta;\n y.left = x.right;\n if (x.right !== SENTINEL) {\n x.right.parent = y;\n }\n x.parent = y.parent;\n if (y.parent === SENTINEL) {\n T.root = x;\n }\n else if (y === y.parent.right) {\n y.parent.right = x;\n }\n else {\n y.parent.left = x;\n }\n x.right = y;\n y.parent = x;\n recomputeMaxEnd(y);\n recomputeMaxEnd(x);\n}\n//#endregion\n//#region max end computation\nfunction computeMaxEnd(node) {\n let maxEnd = node.end;\n if (node.left !== SENTINEL) {\n const leftMaxEnd = node.left.maxEnd;\n if (leftMaxEnd > maxEnd) {\n maxEnd = leftMaxEnd;\n }\n }\n if (node.right !== SENTINEL) {\n const rightMaxEnd = node.right.maxEnd + node.delta;\n if (rightMaxEnd > maxEnd) {\n maxEnd = rightMaxEnd;\n }\n }\n return maxEnd;\n}\nexport function recomputeMaxEnd(node) {\n node.maxEnd = computeMaxEnd(node);\n}\nfunction recomputeMaxEndWalkToRoot(node) {\n while (node !== SENTINEL) {\n const maxEnd = computeMaxEnd(node);\n if (node.maxEnd === maxEnd) {\n // no need to go further\n return;\n }\n node.maxEnd = maxEnd;\n node = node.parent;\n }\n}\n//#endregion\n//#region utils\nexport function intervalCompare(aStart, aEnd, bStart, bEnd) {\n if (aStart === bStart) {\n return aEnd - bEnd;\n }\n return aStart - bStart;\n}\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class TreeNode {\n constructor(piece, color) {\n this.piece = piece;\n this.color = color;\n this.size_left = 0;\n this.lf_left = 0;\n this.parent = this;\n this.left = this;\n this.right = this;\n }\n next() {\n if (this.right !== SENTINEL) {\n return leftest(this.right);\n }\n let node = this;\n while (node.parent !== SENTINEL) {\n if (node.parent.left === node) {\n break;\n }\n node = node.parent;\n }\n if (node.parent === SENTINEL) {\n return SENTINEL;\n }\n else {\n return node.parent;\n }\n }\n prev() {\n if (this.left !== SENTINEL) {\n return righttest(this.left);\n }\n let node = this;\n while (node.parent !== SENTINEL) {\n if (node.parent.right === node) {\n break;\n }\n node = node.parent;\n }\n if (node.parent === SENTINEL) {\n return SENTINEL;\n }\n else {\n return node.parent;\n }\n }\n detach() {\n this.parent = null;\n this.left = null;\n this.right = null;\n }\n}\nexport const SENTINEL = new TreeNode(null, 0 /* NodeColor.Black */);\nSENTINEL.parent = SENTINEL;\nSENTINEL.left = SENTINEL;\nSENTINEL.right = SENTINEL;\nSENTINEL.color = 0 /* NodeColor.Black */;\nexport function leftest(node) {\n while (node.left !== SENTINEL) {\n node = node.left;\n }\n return node;\n}\nexport function righttest(node) {\n while (node.right !== SENTINEL) {\n node = node.right;\n }\n return node;\n}\nfunction calculateSize(node) {\n if (node === SENTINEL) {\n return 0;\n }\n return node.size_left + node.piece.length + calculateSize(node.right);\n}\nfunction calculateLF(node) {\n if (node === SENTINEL) {\n return 0;\n }\n return node.lf_left + node.piece.lineFeedCnt + calculateLF(node.right);\n}\nfunction resetSentinel() {\n SENTINEL.parent = SENTINEL;\n}\nexport function leftRotate(tree, x) {\n const y = x.right;\n // fix size_left\n y.size_left += x.size_left + (x.piece ? x.piece.length : 0);\n y.lf_left += x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n x.right = y.left;\n if (y.left !== SENTINEL) {\n y.left.parent = x;\n }\n y.parent = x.parent;\n if (x.parent === SENTINEL) {\n tree.root = y;\n }\n else if (x.parent.left === x) {\n x.parent.left = y;\n }\n else {\n x.parent.right = y;\n }\n y.left = x;\n x.parent = y;\n}\nexport function rightRotate(tree, y) {\n const x = y.left;\n y.left = x.right;\n if (x.right !== SENTINEL) {\n x.right.parent = y;\n }\n x.parent = y.parent;\n // fix size_left\n y.size_left -= x.size_left + (x.piece ? x.piece.length : 0);\n y.lf_left -= x.lf_left + (x.piece ? x.piece.lineFeedCnt : 0);\n if (y.parent === SENTINEL) {\n tree.root = x;\n }\n else if (y === y.parent.right) {\n y.parent.right = x;\n }\n else {\n y.parent.left = x;\n }\n x.right = y;\n y.parent = x;\n}\nexport function rbDelete(tree, z) {\n let x;\n let y;\n if (z.left === SENTINEL) {\n y = z;\n x = y.right;\n }\n else if (z.right === SENTINEL) {\n y = z;\n x = y.left;\n }\n else {\n y = leftest(z.right);\n x = y.right;\n }\n if (y === tree.root) {\n tree.root = x;\n // if x is null, we are removing the only node\n x.color = 0 /* NodeColor.Black */;\n z.detach();\n resetSentinel();\n tree.root.parent = SENTINEL;\n return;\n }\n const yWasRed = (y.color === 1 /* NodeColor.Red */);\n if (y === y.parent.left) {\n y.parent.left = x;\n }\n else {\n y.parent.right = x;\n }\n if (y === z) {\n x.parent = y.parent;\n recomputeTreeMetadata(tree, x);\n }\n else {\n if (y.parent === z) {\n x.parent = y;\n }\n else {\n x.parent = y.parent;\n }\n // as we make changes to x's hierarchy, update size_left of subtree first\n recomputeTreeMetadata(tree, x);\n y.left = z.left;\n y.right = z.right;\n y.parent = z.parent;\n y.color = z.color;\n if (z === tree.root) {\n tree.root = y;\n }\n else {\n if (z === z.parent.left) {\n z.parent.left = y;\n }\n else {\n z.parent.right = y;\n }\n }\n if (y.left !== SENTINEL) {\n y.left.parent = y;\n }\n if (y.right !== SENTINEL) {\n y.right.parent = y;\n }\n // update metadata\n // we replace z with y, so in this sub tree, the length change is z.item.length\n y.size_left = z.size_left;\n y.lf_left = z.lf_left;\n recomputeTreeMetadata(tree, y);\n }\n z.detach();\n if (x.parent.left === x) {\n const newSizeLeft = calculateSize(x);\n const newLFLeft = calculateLF(x);\n if (newSizeLeft !== x.parent.size_left || newLFLeft !== x.parent.lf_left) {\n const delta = newSizeLeft - x.parent.size_left;\n const lf_delta = newLFLeft - x.parent.lf_left;\n x.parent.size_left = newSizeLeft;\n x.parent.lf_left = newLFLeft;\n updateTreeMetadata(tree, x.parent, delta, lf_delta);\n }\n }\n recomputeTreeMetadata(tree, x.parent);\n if (yWasRed) {\n resetSentinel();\n return;\n }\n // RB-DELETE-FIXUP\n let w;\n while (x !== tree.root && x.color === 0 /* NodeColor.Black */) {\n if (x === x.parent.left) {\n w = x.parent.right;\n if (w.color === 1 /* NodeColor.Red */) {\n w.color = 0 /* NodeColor.Black */;\n x.parent.color = 1 /* NodeColor.Red */;\n leftRotate(tree, x.parent);\n w = x.parent.right;\n }\n if (w.left.color === 0 /* NodeColor.Black */ && w.right.color === 0 /* NodeColor.Black */) {\n w.color = 1 /* NodeColor.Red */;\n x = x.parent;\n }\n else {\n if (w.right.color === 0 /* NodeColor.Black */) {\n w.left.color = 0 /* NodeColor.Black */;\n w.color = 1 /* NodeColor.Red */;\n rightRotate(tree, w);\n w = x.parent.right;\n }\n w.color = x.parent.color;\n x.parent.color = 0 /* NodeColor.Black */;\n w.right.color = 0 /* NodeColor.Black */;\n leftRotate(tree, x.parent);\n x = tree.root;\n }\n }\n else {\n w = x.parent.left;\n if (w.color === 1 /* NodeColor.Red */) {\n w.color = 0 /* NodeColor.Black */;\n x.parent.color = 1 /* NodeColor.Red */;\n rightRotate(tree, x.parent);\n w = x.parent.left;\n }\n if (w.left.color === 0 /* NodeColor.Black */ && w.right.color === 0 /* NodeColor.Black */) {\n w.color = 1 /* NodeColor.Red */;\n x = x.parent;\n }\n else {\n if (w.left.color === 0 /* NodeColor.Black */) {\n w.right.color = 0 /* NodeColor.Black */;\n w.color = 1 /* NodeColor.Red */;\n leftRotate(tree, w);\n w = x.parent.left;\n }\n w.color = x.parent.color;\n x.parent.color = 0 /* NodeColor.Black */;\n w.left.color = 0 /* NodeColor.Black */;\n rightRotate(tree, x.parent);\n x = tree.root;\n }\n }\n }\n x.color = 0 /* NodeColor.Black */;\n resetSentinel();\n}\nexport function fixInsert(tree, x) {\n recomputeTreeMetadata(tree, x);\n while (x !== tree.root && x.parent.color === 1 /* NodeColor.Red */) {\n if (x.parent === x.parent.parent.left) {\n const y = x.parent.parent.right;\n if (y.color === 1 /* NodeColor.Red */) {\n x.parent.color = 0 /* NodeColor.Black */;\n y.color = 0 /* NodeColor.Black */;\n x.parent.parent.color = 1 /* NodeColor.Red */;\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.right) {\n x = x.parent;\n leftRotate(tree, x);\n }\n x.parent.color = 0 /* NodeColor.Black */;\n x.parent.parent.color = 1 /* NodeColor.Red */;\n rightRotate(tree, x.parent.parent);\n }\n }\n else {\n const y = x.parent.parent.left;\n if (y.color === 1 /* NodeColor.Red */) {\n x.parent.color = 0 /* NodeColor.Black */;\n y.color = 0 /* NodeColor.Black */;\n x.parent.parent.color = 1 /* NodeColor.Red */;\n x = x.parent.parent;\n }\n else {\n if (x === x.parent.left) {\n x = x.parent;\n rightRotate(tree, x);\n }\n x.parent.color = 0 /* NodeColor.Black */;\n x.parent.parent.color = 1 /* NodeColor.Red */;\n leftRotate(tree, x.parent.parent);\n }\n }\n }\n tree.root.color = 0 /* NodeColor.Black */;\n}\nexport function updateTreeMetadata(tree, x, delta, lineFeedCntDelta) {\n // node length change or line feed count change\n while (x !== tree.root && x !== SENTINEL) {\n if (x.parent.left === x) {\n x.parent.size_left += delta;\n x.parent.lf_left += lineFeedCntDelta;\n }\n x = x.parent;\n }\n}\nexport function recomputeTreeMetadata(tree, x) {\n let delta = 0;\n let lf_delta = 0;\n if (x === tree.root) {\n return;\n }\n // go upwards till the node whose left subtree is changed.\n while (x !== tree.root && x === x.parent.right) {\n x = x.parent;\n }\n if (x === tree.root) {\n // well, it means we add a node to the end (inorder)\n return;\n }\n // x is the node whose right subtree is changed.\n x = x.parent;\n delta = calculateSize(x.left) - x.size_left;\n lf_delta = calculateLF(x.left) - x.lf_left;\n x.size_left += delta;\n x.lf_left += lf_delta;\n // go upwards till root. O(logN)\n while (x !== tree.root && (delta !== 0 || lf_delta !== 0)) {\n if (x.parent.left === x) {\n x.parent.size_left += delta;\n x.parent.lf_left += lf_delta;\n }\n x = x.parent;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Position } from '../../core/position.js';\nimport { Range } from '../../core/range.js';\nimport { FindMatch } from '../../model.js';\nimport { SENTINEL, TreeNode, fixInsert, leftest, rbDelete, righttest, updateTreeMetadata } from './rbTreeBase.js';\nimport { Searcher, createFindMatch, isValidMatch } from '../textModelSearch.js';\n// const lfRegex = new RegExp(/\\r\\n|\\r|\\n/g);\nconst AverageBufferSize = 65535;\nfunction createUintArray(arr) {\n let r;\n if (arr[arr.length - 1] < 65536) {\n r = new Uint16Array(arr.length);\n }\n else {\n r = new Uint32Array(arr.length);\n }\n r.set(arr, 0);\n return r;\n}\nclass LineStarts {\n constructor(lineStarts, cr, lf, crlf, isBasicASCII) {\n this.lineStarts = lineStarts;\n this.cr = cr;\n this.lf = lf;\n this.crlf = crlf;\n this.isBasicASCII = isBasicASCII;\n }\n}\nexport function createLineStartsFast(str, readonly = true) {\n const r = [0];\n let rLength = 1;\n for (let i = 0, len = str.length; i < len; i++) {\n const chr = str.charCodeAt(i);\n if (chr === 13 /* CharCode.CarriageReturn */) {\n if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n // \\r\\n... case\n r[rLength++] = i + 2;\n i++; // skip \\n\n }\n else {\n // \\r... case\n r[rLength++] = i + 1;\n }\n }\n else if (chr === 10 /* CharCode.LineFeed */) {\n r[rLength++] = i + 1;\n }\n }\n if (readonly) {\n return createUintArray(r);\n }\n else {\n return r;\n }\n}\nexport function createLineStarts(r, str) {\n r.length = 0;\n r[0] = 0;\n let rLength = 1;\n let cr = 0, lf = 0, crlf = 0;\n let isBasicASCII = true;\n for (let i = 0, len = str.length; i < len; i++) {\n const chr = str.charCodeAt(i);\n if (chr === 13 /* CharCode.CarriageReturn */) {\n if (i + 1 < len && str.charCodeAt(i + 1) === 10 /* CharCode.LineFeed */) {\n // \\r\\n... case\n crlf++;\n r[rLength++] = i + 2;\n i++; // skip \\n\n }\n else {\n cr++;\n // \\r... case\n r[rLength++] = i + 1;\n }\n }\n else if (chr === 10 /* CharCode.LineFeed */) {\n lf++;\n r[rLength++] = i + 1;\n }\n else {\n if (isBasicASCII) {\n if (chr !== 9 /* CharCode.Tab */ && (chr < 32 || chr > 126)) {\n isBasicASCII = false;\n }\n }\n }\n }\n const result = new LineStarts(createUintArray(r), cr, lf, crlf, isBasicASCII);\n r.length = 0;\n return result;\n}\nexport class Piece {\n constructor(bufferIndex, start, end, lineFeedCnt, length) {\n this.bufferIndex = bufferIndex;\n this.start = start;\n this.end = end;\n this.lineFeedCnt = lineFeedCnt;\n this.length = length;\n }\n}\nexport class StringBuffer {\n constructor(buffer, lineStarts) {\n this.buffer = buffer;\n this.lineStarts = lineStarts;\n }\n}\n/**\n * Readonly snapshot for piece tree.\n * In a real multiple thread environment, to make snapshot reading always work correctly, we need to\n * 1. Make TreeNode.piece immutable, then reading and writing can run in parallel.\n * 2. TreeNode/Buffers normalization should not happen during snapshot reading.\n */\nclass PieceTreeSnapshot {\n constructor(tree, BOM) {\n this._pieces = [];\n this._tree = tree;\n this._BOM = BOM;\n this._index = 0;\n if (tree.root !== SENTINEL) {\n tree.iterate(tree.root, node => {\n if (node !== SENTINEL) {\n this._pieces.push(node.piece);\n }\n return true;\n });\n }\n }\n read() {\n if (this._pieces.length === 0) {\n if (this._index === 0) {\n this._index++;\n return this._BOM;\n }\n else {\n return null;\n }\n }\n if (this._index > this._pieces.length - 1) {\n return null;\n }\n if (this._index === 0) {\n return this._BOM + this._tree.getPieceContent(this._pieces[this._index++]);\n }\n return this._tree.getPieceContent(this._pieces[this._index++]);\n }\n}\nclass PieceTreeSearchCache {\n constructor(limit) {\n this._limit = limit;\n this._cache = [];\n }\n get(offset) {\n for (let i = this._cache.length - 1; i >= 0; i--) {\n const nodePos = this._cache[i];\n if (nodePos.nodeStartOffset <= offset && nodePos.nodeStartOffset + nodePos.node.piece.length >= offset) {\n return nodePos;\n }\n }\n return null;\n }\n get2(lineNumber) {\n for (let i = this._cache.length - 1; i >= 0; i--) {\n const nodePos = this._cache[i];\n if (nodePos.nodeStartLineNumber && nodePos.nodeStartLineNumber < lineNumber && nodePos.nodeStartLineNumber + nodePos.node.piece.lineFeedCnt >= lineNumber) {\n return nodePos;\n }\n }\n return null;\n }\n set(nodePosition) {\n if (this._cache.length >= this._limit) {\n this._cache.shift();\n }\n this._cache.push(nodePosition);\n }\n validate(offset) {\n let hasInvalidVal = false;\n const tmp = this._cache;\n for (let i = 0; i < tmp.length; i++) {\n const nodePos = tmp[i];\n if (nodePos.node.parent === null || nodePos.nodeStartOffset >= offset) {\n tmp[i] = null;\n hasInvalidVal = true;\n continue;\n }\n }\n if (hasInvalidVal) {\n const newArr = [];\n for (const entry of tmp) {\n if (entry !== null) {\n newArr.push(entry);\n }\n }\n this._cache = newArr;\n }\n }\n}\nexport class PieceTreeBase {\n constructor(chunks, eol, eolNormalized) {\n this.create(chunks, eol, eolNormalized);\n }\n create(chunks, eol, eolNormalized) {\n this._buffers = [\n new StringBuffer('', [0])\n ];\n this._lastChangeBufferPos = { line: 0, column: 0 };\n this.root = SENTINEL;\n this._lineCnt = 1;\n this._length = 0;\n this._EOL = eol;\n this._EOLLength = eol.length;\n this._EOLNormalized = eolNormalized;\n let lastNode = null;\n for (let i = 0, len = chunks.length; i < len; i++) {\n if (chunks[i].buffer.length > 0) {\n if (!chunks[i].lineStarts) {\n chunks[i].lineStarts = createLineStartsFast(chunks[i].buffer);\n }\n const piece = new Piece(i + 1, { line: 0, column: 0 }, { line: chunks[i].lineStarts.length - 1, column: chunks[i].buffer.length - chunks[i].lineStarts[chunks[i].lineStarts.length - 1] }, chunks[i].lineStarts.length - 1, chunks[i].buffer.length);\n this._buffers.push(chunks[i]);\n lastNode = this.rbInsertRight(lastNode, piece);\n }\n }\n this._searchCache = new PieceTreeSearchCache(1);\n this._lastVisitedLine = { lineNumber: 0, value: '' };\n this.computeBufferMetadata();\n }\n normalizeEOL(eol) {\n const averageBufferSize = AverageBufferSize;\n const min = averageBufferSize - Math.floor(averageBufferSize / 3);\n const max = min * 2;\n let tempChunk = '';\n let tempChunkLen = 0;\n const chunks = [];\n this.iterate(this.root, node => {\n const str = this.getNodeContent(node);\n const len = str.length;\n if (tempChunkLen <= min || tempChunkLen + len < max) {\n tempChunk += str;\n tempChunkLen += len;\n return true;\n }\n // flush anyways\n const text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n tempChunk = str;\n tempChunkLen = len;\n return true;\n });\n if (tempChunkLen > 0) {\n const text = tempChunk.replace(/\\r\\n|\\r|\\n/g, eol);\n chunks.push(new StringBuffer(text, createLineStartsFast(text)));\n }\n this.create(chunks, eol, true);\n }\n // #region Buffer API\n getEOL() {\n return this._EOL;\n }\n setEOL(newEOL) {\n this._EOL = newEOL;\n this._EOLLength = this._EOL.length;\n this.normalizeEOL(newEOL);\n }\n createSnapshot(BOM) {\n return new PieceTreeSnapshot(this, BOM);\n }\n getOffsetAt(lineNumber, column) {\n let leftLen = 0; // inorder\n let x = this.root;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left + 1 >= lineNumber) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt + 1 >= lineNumber) {\n leftLen += x.size_left;\n // lineNumber >= 2\n const accumualtedValInCurrentIndex = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n return leftLen += accumualtedValInCurrentIndex + column - 1;\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n leftLen += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n return leftLen;\n }\n getPositionAt(offset) {\n offset = Math.floor(offset);\n offset = Math.max(0, offset);\n let x = this.root;\n let lfCnt = 0;\n const originalOffset = offset;\n while (x !== SENTINEL) {\n if (x.size_left !== 0 && x.size_left >= offset) {\n x = x.left;\n }\n else if (x.size_left + x.piece.length >= offset) {\n const out = this.getIndexOf(x, offset - x.size_left);\n lfCnt += x.lf_left + out.index;\n if (out.index === 0) {\n const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n const column = originalOffset - lineStartOffset;\n return new Position(lfCnt + 1, column + 1);\n }\n return new Position(lfCnt + 1, out.remainder + 1);\n }\n else {\n offset -= x.size_left + x.piece.length;\n lfCnt += x.lf_left + x.piece.lineFeedCnt;\n if (x.right === SENTINEL) {\n // last node\n const lineStartOffset = this.getOffsetAt(lfCnt + 1, 1);\n const column = originalOffset - offset - lineStartOffset;\n return new Position(lfCnt + 1, column + 1);\n }\n else {\n x = x.right;\n }\n }\n }\n return new Position(1, 1);\n }\n getValueInRange(range, eol) {\n if (range.startLineNumber === range.endLineNumber && range.startColumn === range.endColumn) {\n return '';\n }\n const startPosition = this.nodeAt2(range.startLineNumber, range.startColumn);\n const endPosition = this.nodeAt2(range.endLineNumber, range.endColumn);\n const value = this.getValueInRange2(startPosition, endPosition);\n if (eol) {\n if (eol !== this._EOL || !this._EOLNormalized) {\n return value.replace(/\\r\\n|\\r|\\n/g, eol);\n }\n if (eol === this.getEOL() && this._EOLNormalized) {\n if (eol === '\\r\\n') {\n }\n return value;\n }\n return value.replace(/\\r\\n|\\r|\\n/g, eol);\n }\n return value;\n }\n getValueInRange2(startPosition, endPosition) {\n if (startPosition.node === endPosition.node) {\n const node = startPosition.node;\n const buffer = this._buffers[node.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n return buffer.substring(startOffset + startPosition.remainder, startOffset + endPosition.remainder);\n }\n let x = startPosition.node;\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n let ret = buffer.substring(startOffset + startPosition.remainder, startOffset + x.piece.length);\n x = x.next();\n while (x !== SENTINEL) {\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n if (x === endPosition.node) {\n ret += buffer.substring(startOffset, startOffset + endPosition.remainder);\n break;\n }\n else {\n ret += buffer.substr(startOffset, x.piece.length);\n }\n x = x.next();\n }\n return ret;\n }\n getLinesContent() {\n const lines = [];\n let linesLength = 0;\n let currentLine = '';\n let danglingCR = false;\n this.iterate(this.root, node => {\n if (node === SENTINEL) {\n return true;\n }\n const piece = node.piece;\n let pieceLength = piece.length;\n if (pieceLength === 0) {\n return true;\n }\n const buffer = this._buffers[piece.bufferIndex].buffer;\n const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n const pieceStartLine = piece.start.line;\n const pieceEndLine = piece.end.line;\n let pieceStartOffset = lineStarts[pieceStartLine] + piece.start.column;\n if (danglingCR) {\n if (buffer.charCodeAt(pieceStartOffset) === 10 /* CharCode.LineFeed */) {\n // pretend the \\n was in the previous piece..\n pieceStartOffset++;\n pieceLength--;\n }\n lines[linesLength++] = currentLine;\n currentLine = '';\n danglingCR = false;\n if (pieceLength === 0) {\n return true;\n }\n }\n if (pieceStartLine === pieceEndLine) {\n // this piece has no new lines\n if (!this._EOLNormalized && buffer.charCodeAt(pieceStartOffset + pieceLength - 1) === 13 /* CharCode.CarriageReturn */) {\n danglingCR = true;\n currentLine += buffer.substr(pieceStartOffset, pieceLength - 1);\n }\n else {\n currentLine += buffer.substr(pieceStartOffset, pieceLength);\n }\n return true;\n }\n // add the text before the first line start in this piece\n currentLine += (this._EOLNormalized\n ? buffer.substring(pieceStartOffset, Math.max(pieceStartOffset, lineStarts[pieceStartLine + 1] - this._EOLLength))\n : buffer.substring(pieceStartOffset, lineStarts[pieceStartLine + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n lines[linesLength++] = currentLine;\n for (let line = pieceStartLine + 1; line < pieceEndLine; line++) {\n currentLine = (this._EOLNormalized\n ? buffer.substring(lineStarts[line], lineStarts[line + 1] - this._EOLLength)\n : buffer.substring(lineStarts[line], lineStarts[line + 1]).replace(/(\\r\\n|\\r|\\n)$/, ''));\n lines[linesLength++] = currentLine;\n }\n if (!this._EOLNormalized && buffer.charCodeAt(lineStarts[pieceEndLine] + piece.end.column - 1) === 13 /* CharCode.CarriageReturn */) {\n danglingCR = true;\n if (piece.end.column === 0) {\n // The last line ended with a \\r, let's undo the push, it will be pushed by next iteration\n linesLength--;\n }\n else {\n currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column - 1);\n }\n }\n else {\n currentLine = buffer.substr(lineStarts[pieceEndLine], piece.end.column);\n }\n return true;\n });\n if (danglingCR) {\n lines[linesLength++] = currentLine;\n currentLine = '';\n }\n lines[linesLength++] = currentLine;\n return lines;\n }\n getLength() {\n return this._length;\n }\n getLineCount() {\n return this._lineCnt;\n }\n getLineContent(lineNumber) {\n if (this._lastVisitedLine.lineNumber === lineNumber) {\n return this._lastVisitedLine.value;\n }\n this._lastVisitedLine.lineNumber = lineNumber;\n if (lineNumber === this._lineCnt) {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber);\n }\n else if (this._EOLNormalized) {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber, this._EOLLength);\n }\n else {\n this._lastVisitedLine.value = this.getLineRawContent(lineNumber).replace(/(\\r\\n|\\r|\\n)$/, '');\n }\n return this._lastVisitedLine.value;\n }\n _getCharCode(nodePos) {\n if (nodePos.remainder === nodePos.node.piece.length) {\n // the char we want to fetch is at the head of next node.\n const matchingNode = nodePos.node.next();\n if (!matchingNode) {\n return 0;\n }\n const buffer = this._buffers[matchingNode.piece.bufferIndex];\n const startOffset = this.offsetInBuffer(matchingNode.piece.bufferIndex, matchingNode.piece.start);\n return buffer.buffer.charCodeAt(startOffset);\n }\n else {\n const buffer = this._buffers[nodePos.node.piece.bufferIndex];\n const startOffset = this.offsetInBuffer(nodePos.node.piece.bufferIndex, nodePos.node.piece.start);\n const targetOffset = startOffset + nodePos.remainder;\n return buffer.buffer.charCodeAt(targetOffset);\n }\n }\n getLineCharCode(lineNumber, index) {\n const nodePos = this.nodeAt2(lineNumber, index + 1);\n return this._getCharCode(nodePos);\n }\n getLineLength(lineNumber) {\n if (lineNumber === this.getLineCount()) {\n const startOffset = this.getOffsetAt(lineNumber, 1);\n return this.getLength() - startOffset;\n }\n return this.getOffsetAt(lineNumber + 1, 1) - this.getOffsetAt(lineNumber, 1) - this._EOLLength;\n }\n findMatchesInNode(node, searcher, startLineNumber, startColumn, startCursor, endCursor, searchData, captureMatches, limitResultCount, resultLen, result) {\n const buffer = this._buffers[node.piece.bufferIndex];\n const startOffsetInBuffer = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start);\n const start = this.offsetInBuffer(node.piece.bufferIndex, startCursor);\n const end = this.offsetInBuffer(node.piece.bufferIndex, endCursor);\n let m;\n // Reset regex to search from the beginning\n const ret = { line: 0, column: 0 };\n let searchText;\n let offsetInBuffer;\n if (searcher._wordSeparators) {\n searchText = buffer.buffer.substring(start, end);\n offsetInBuffer = (offset) => offset + start;\n searcher.reset(0);\n }\n else {\n searchText = buffer.buffer;\n offsetInBuffer = (offset) => offset;\n searcher.reset(start);\n }\n do {\n m = searcher.next(searchText);\n if (m) {\n if (offsetInBuffer(m.index) >= end) {\n return resultLen;\n }\n this.positionInBuffer(node, offsetInBuffer(m.index) - startOffsetInBuffer, ret);\n const lineFeedCnt = this.getLineFeedCnt(node.piece.bufferIndex, startCursor, ret);\n const retStartColumn = ret.line === startCursor.line ? ret.column - startCursor.column + startColumn : ret.column + 1;\n const retEndColumn = retStartColumn + m[0].length;\n result[resultLen++] = createFindMatch(new Range(startLineNumber + lineFeedCnt, retStartColumn, startLineNumber + lineFeedCnt, retEndColumn), m, captureMatches);\n if (offsetInBuffer(m.index) + m[0].length >= end) {\n return resultLen;\n }\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n const result = [];\n let resultLen = 0;\n const searcher = new Searcher(searchData.wordSeparators, searchData.regex);\n let startPosition = this.nodeAt2(searchRange.startLineNumber, searchRange.startColumn);\n if (startPosition === null) {\n return [];\n }\n const endPosition = this.nodeAt2(searchRange.endLineNumber, searchRange.endColumn);\n if (endPosition === null) {\n return [];\n }\n let start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n const end = this.positionInBuffer(endPosition.node, endPosition.remainder);\n if (startPosition.node === endPosition.node) {\n this.findMatchesInNode(startPosition.node, searcher, searchRange.startLineNumber, searchRange.startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n return result;\n }\n let startLineNumber = searchRange.startLineNumber;\n let currentNode = startPosition.node;\n while (currentNode !== endPosition.node) {\n const lineBreakCnt = this.getLineFeedCnt(currentNode.piece.bufferIndex, start, currentNode.piece.end);\n if (lineBreakCnt >= 1) {\n // last line break position\n const lineStarts = this._buffers[currentNode.piece.bufferIndex].lineStarts;\n const startOffsetInBuffer = this.offsetInBuffer(currentNode.piece.bufferIndex, currentNode.piece.start);\n const nextLineStartOffset = lineStarts[start.line + lineBreakCnt];\n const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n resultLen = this.findMatchesInNode(currentNode, searcher, startLineNumber, startColumn, start, this.positionInBuffer(currentNode, nextLineStartOffset - startOffsetInBuffer), searchData, captureMatches, limitResultCount, resultLen, result);\n if (resultLen >= limitResultCount) {\n return result;\n }\n startLineNumber += lineBreakCnt;\n }\n const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n // search for the remaining content\n if (startLineNumber === searchRange.endLineNumber) {\n const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n resultLen = this._findMatchesInLine(searchData, searcher, this.getLineContent(startLineNumber).substr(startColumn), startLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n if (resultLen >= limitResultCount) {\n return result;\n }\n startLineNumber++;\n startPosition = this.nodeAt2(startLineNumber, 1);\n currentNode = startPosition.node;\n start = this.positionInBuffer(startPosition.node, startPosition.remainder);\n }\n if (startLineNumber === searchRange.endLineNumber) {\n const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn - 1 : 0;\n const text = this.getLineContent(startLineNumber).substring(startColumn, searchRange.endColumn - 1);\n resultLen = this._findMatchesInLine(searchData, searcher, text, searchRange.endLineNumber, startColumn, resultLen, result, captureMatches, limitResultCount);\n return result;\n }\n const startColumn = startLineNumber === searchRange.startLineNumber ? searchRange.startColumn : 1;\n resultLen = this.findMatchesInNode(endPosition.node, searcher, startLineNumber, startColumn, start, end, searchData, captureMatches, limitResultCount, resultLen, result);\n return result;\n }\n _findMatchesInLine(searchData, searcher, text, lineNumber, deltaOffset, resultLen, result, captureMatches, limitResultCount) {\n const wordSeparators = searchData.wordSeparators;\n if (!captureMatches && searchData.simpleSearch) {\n const searchString = searchData.simpleSearch;\n const searchStringLen = searchString.length;\n const textLength = text.length;\n let lastMatchIndex = -searchStringLen;\n while ((lastMatchIndex = text.indexOf(searchString, lastMatchIndex + searchStringLen)) !== -1) {\n if (!wordSeparators || isValidMatch(wordSeparators, text, textLength, lastMatchIndex, searchStringLen)) {\n result[resultLen++] = new FindMatch(new Range(lineNumber, lastMatchIndex + 1 + deltaOffset, lineNumber, lastMatchIndex + 1 + searchStringLen + deltaOffset), null);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n }\n return resultLen;\n }\n let m;\n // Reset regex to search from the beginning\n searcher.reset(0);\n do {\n m = searcher.next(text);\n if (m) {\n result[resultLen++] = createFindMatch(new Range(lineNumber, m.index + 1 + deltaOffset, lineNumber, m.index + 1 + m[0].length + deltaOffset), m, captureMatches);\n if (resultLen >= limitResultCount) {\n return resultLen;\n }\n }\n } while (m);\n return resultLen;\n }\n // #endregion\n // #region Piece Table\n insert(offset, value, eolNormalized = false) {\n this._EOLNormalized = this._EOLNormalized && eolNormalized;\n this._lastVisitedLine.lineNumber = 0;\n this._lastVisitedLine.value = '';\n if (this.root !== SENTINEL) {\n const { node, remainder, nodeStartOffset } = this.nodeAt(offset);\n const piece = node.piece;\n const bufferIndex = piece.bufferIndex;\n const insertPosInBuffer = this.positionInBuffer(node, remainder);\n if (node.piece.bufferIndex === 0 &&\n piece.end.line === this._lastChangeBufferPos.line &&\n piece.end.column === this._lastChangeBufferPos.column &&\n (nodeStartOffset + piece.length === offset) &&\n value.length < AverageBufferSize) {\n // changed buffer\n this.appendToNode(node, value);\n this.computeBufferMetadata();\n return;\n }\n if (nodeStartOffset === offset) {\n this.insertContentToNodeLeft(value, node);\n this._searchCache.validate(offset);\n }\n else if (nodeStartOffset + node.piece.length > offset) {\n // we are inserting into the middle of a node.\n const nodesToDel = [];\n let newRightPiece = new Piece(piece.bufferIndex, insertPosInBuffer, piece.end, this.getLineFeedCnt(piece.bufferIndex, insertPosInBuffer, piece.end), this.offsetInBuffer(bufferIndex, piece.end) - this.offsetInBuffer(bufferIndex, insertPosInBuffer));\n if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n const headOfRight = this.nodeCharCodeAt(node, remainder);\n if (headOfRight === 10 /** \\n */) {\n const newStart = { line: newRightPiece.start.line + 1, column: 0 };\n newRightPiece = new Piece(newRightPiece.bufferIndex, newStart, newRightPiece.end, this.getLineFeedCnt(newRightPiece.bufferIndex, newStart, newRightPiece.end), newRightPiece.length - 1);\n value += '\\n';\n }\n }\n // reuse node for content before insertion point.\n if (this.shouldCheckCRLF() && this.startWithLF(value)) {\n const tailOfLeft = this.nodeCharCodeAt(node, remainder - 1);\n if (tailOfLeft === 13 /** \\r */) {\n const previousPos = this.positionInBuffer(node, remainder - 1);\n this.deleteNodeTail(node, previousPos);\n value = '\\r' + value;\n if (node.piece.length === 0) {\n nodesToDel.push(node);\n }\n }\n else {\n this.deleteNodeTail(node, insertPosInBuffer);\n }\n }\n else {\n this.deleteNodeTail(node, insertPosInBuffer);\n }\n const newPieces = this.createNewPieces(value);\n if (newRightPiece.length > 0) {\n this.rbInsertRight(node, newRightPiece);\n }\n let tmpNode = node;\n for (let k = 0; k < newPieces.length; k++) {\n tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n }\n this.deleteNodes(nodesToDel);\n }\n else {\n this.insertContentToNodeRight(value, node);\n }\n }\n else {\n // insert new node\n const pieces = this.createNewPieces(value);\n let node = this.rbInsertLeft(null, pieces[0]);\n for (let k = 1; k < pieces.length; k++) {\n node = this.rbInsertRight(node, pieces[k]);\n }\n }\n // todo, this is too brutal. Total line feed count should be updated the same way as lf_left.\n this.computeBufferMetadata();\n }\n delete(offset, cnt) {\n this._lastVisitedLine.lineNumber = 0;\n this._lastVisitedLine.value = '';\n if (cnt <= 0 || this.root === SENTINEL) {\n return;\n }\n const startPosition = this.nodeAt(offset);\n const endPosition = this.nodeAt(offset + cnt);\n const startNode = startPosition.node;\n const endNode = endPosition.node;\n if (startNode === endNode) {\n const startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n const endSplitPosInBuffer = this.positionInBuffer(startNode, endPosition.remainder);\n if (startPosition.nodeStartOffset === offset) {\n if (cnt === startNode.piece.length) { // delete node\n const next = startNode.next();\n rbDelete(this, startNode);\n this.validateCRLFWithPrevNode(next);\n this.computeBufferMetadata();\n return;\n }\n this.deleteNodeHead(startNode, endSplitPosInBuffer);\n this._searchCache.validate(offset);\n this.validateCRLFWithPrevNode(startNode);\n this.computeBufferMetadata();\n return;\n }\n if (startPosition.nodeStartOffset + startNode.piece.length === offset + cnt) {\n this.deleteNodeTail(startNode, startSplitPosInBuffer);\n this.validateCRLFWithNextNode(startNode);\n this.computeBufferMetadata();\n return;\n }\n // delete content in the middle, this node will be splitted to nodes\n this.shrinkNode(startNode, startSplitPosInBuffer, endSplitPosInBuffer);\n this.computeBufferMetadata();\n return;\n }\n const nodesToDel = [];\n const startSplitPosInBuffer = this.positionInBuffer(startNode, startPosition.remainder);\n this.deleteNodeTail(startNode, startSplitPosInBuffer);\n this._searchCache.validate(offset);\n if (startNode.piece.length === 0) {\n nodesToDel.push(startNode);\n }\n // update last touched node\n const endSplitPosInBuffer = this.positionInBuffer(endNode, endPosition.remainder);\n this.deleteNodeHead(endNode, endSplitPosInBuffer);\n if (endNode.piece.length === 0) {\n nodesToDel.push(endNode);\n }\n // delete nodes in between\n const secondNode = startNode.next();\n for (let node = secondNode; node !== SENTINEL && node !== endNode; node = node.next()) {\n nodesToDel.push(node);\n }\n const prev = startNode.piece.length === 0 ? startNode.prev() : startNode;\n this.deleteNodes(nodesToDel);\n this.validateCRLFWithNextNode(prev);\n this.computeBufferMetadata();\n }\n insertContentToNodeLeft(value, node) {\n // we are inserting content to the beginning of node\n const nodesToDel = [];\n if (this.shouldCheckCRLF() && this.endWithCR(value) && this.startWithLF(node)) {\n // move `\\n` to new node.\n const piece = node.piece;\n const newStart = { line: piece.start.line + 1, column: 0 };\n const nPiece = new Piece(piece.bufferIndex, newStart, piece.end, this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end), piece.length - 1);\n node.piece = nPiece;\n value += '\\n';\n updateTreeMetadata(this, node, -1, -1);\n if (node.piece.length === 0) {\n nodesToDel.push(node);\n }\n }\n const newPieces = this.createNewPieces(value);\n let newNode = this.rbInsertLeft(node, newPieces[newPieces.length - 1]);\n for (let k = newPieces.length - 2; k >= 0; k--) {\n newNode = this.rbInsertLeft(newNode, newPieces[k]);\n }\n this.validateCRLFWithPrevNode(newNode);\n this.deleteNodes(nodesToDel);\n }\n insertContentToNodeRight(value, node) {\n // we are inserting to the right of this node.\n if (this.adjustCarriageReturnFromNext(value, node)) {\n // move \\n to the new node.\n value += '\\n';\n }\n const newPieces = this.createNewPieces(value);\n const newNode = this.rbInsertRight(node, newPieces[0]);\n let tmpNode = newNode;\n for (let k = 1; k < newPieces.length; k++) {\n tmpNode = this.rbInsertRight(tmpNode, newPieces[k]);\n }\n this.validateCRLFWithPrevNode(newNode);\n }\n positionInBuffer(node, remainder, ret) {\n const piece = node.piece;\n const bufferIndex = node.piece.bufferIndex;\n const lineStarts = this._buffers[bufferIndex].lineStarts;\n const startOffset = lineStarts[piece.start.line] + piece.start.column;\n const offset = startOffset + remainder;\n // binary search offset between startOffset and endOffset\n let low = piece.start.line;\n let high = piece.end.line;\n let mid = 0;\n let midStop = 0;\n let midStart = 0;\n while (low <= high) {\n mid = low + ((high - low) / 2) | 0;\n midStart = lineStarts[mid];\n if (mid === high) {\n break;\n }\n midStop = lineStarts[mid + 1];\n if (offset < midStart) {\n high = mid - 1;\n }\n else if (offset >= midStop) {\n low = mid + 1;\n }\n else {\n break;\n }\n }\n if (ret) {\n ret.line = mid;\n ret.column = offset - midStart;\n return null;\n }\n return {\n line: mid,\n column: offset - midStart\n };\n }\n getLineFeedCnt(bufferIndex, start, end) {\n // we don't need to worry about start: abc\\r|\\n, or abc|\\r, or abc|\\n, or abc|\\r\\n doesn't change the fact that, there is one line break after start.\n // now let's take care of end: abc\\r|\\n, if end is in between \\r and \\n, we need to add line feed count by 1\n if (end.column === 0) {\n return end.line - start.line;\n }\n const lineStarts = this._buffers[bufferIndex].lineStarts;\n if (end.line === lineStarts.length - 1) { // it means, there is no \\n after end, otherwise, there will be one more lineStart.\n return end.line - start.line;\n }\n const nextLineStartOffset = lineStarts[end.line + 1];\n const endOffset = lineStarts[end.line] + end.column;\n if (nextLineStartOffset > endOffset + 1) { // there are more than 1 character after end, which means it can't be \\n\n return end.line - start.line;\n }\n // endOffset + 1 === nextLineStartOffset\n // character at endOffset is \\n, so we check the character before first\n // if character at endOffset is \\r, end.column is 0 and we can't get here.\n const previousCharOffset = endOffset - 1; // end.column > 0 so it's okay.\n const buffer = this._buffers[bufferIndex].buffer;\n if (buffer.charCodeAt(previousCharOffset) === 13) {\n return end.line - start.line + 1;\n }\n else {\n return end.line - start.line;\n }\n }\n offsetInBuffer(bufferIndex, cursor) {\n const lineStarts = this._buffers[bufferIndex].lineStarts;\n return lineStarts[cursor.line] + cursor.column;\n }\n deleteNodes(nodes) {\n for (let i = 0; i < nodes.length; i++) {\n rbDelete(this, nodes[i]);\n }\n }\n createNewPieces(text) {\n if (text.length > AverageBufferSize) {\n // the content is large, operations like substring, charCode becomes slow\n // so here we split it into smaller chunks, just like what we did for CR/LF normalization\n const newPieces = [];\n while (text.length > AverageBufferSize) {\n const lastChar = text.charCodeAt(AverageBufferSize - 1);\n let splitText;\n if (lastChar === 13 /* CharCode.CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n // last character is \\r or a high surrogate => keep it back\n splitText = text.substring(0, AverageBufferSize - 1);\n text = text.substring(AverageBufferSize - 1);\n }\n else {\n splitText = text.substring(0, AverageBufferSize);\n text = text.substring(AverageBufferSize);\n }\n const lineStarts = createLineStartsFast(splitText);\n newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: splitText.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, splitText.length));\n this._buffers.push(new StringBuffer(splitText, lineStarts));\n }\n const lineStarts = createLineStartsFast(text);\n newPieces.push(new Piece(this._buffers.length, /* buffer index */ { line: 0, column: 0 }, { line: lineStarts.length - 1, column: text.length - lineStarts[lineStarts.length - 1] }, lineStarts.length - 1, text.length));\n this._buffers.push(new StringBuffer(text, lineStarts));\n return newPieces;\n }\n let startOffset = this._buffers[0].buffer.length;\n const lineStarts = createLineStartsFast(text, false);\n let start = this._lastChangeBufferPos;\n if (this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 1] === startOffset\n && startOffset !== 0\n && this.startWithLF(text)\n && this.endWithCR(this._buffers[0].buffer) // todo, we can check this._lastChangeBufferPos's column as it's the last one\n ) {\n this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line, column: this._lastChangeBufferPos.column + 1 };\n start = this._lastChangeBufferPos;\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset + 1;\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n this._buffers[0].buffer += '_' + text;\n startOffset += 1;\n }\n else {\n if (startOffset !== 0) {\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset;\n }\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n this._buffers[0].buffer += text;\n }\n const endOffset = this._buffers[0].buffer.length;\n const endIndex = this._buffers[0].lineStarts.length - 1;\n const endColumn = endOffset - this._buffers[0].lineStarts[endIndex];\n const endPos = { line: endIndex, column: endColumn };\n const newPiece = new Piece(0, /** todo@peng */ start, endPos, this.getLineFeedCnt(0, start, endPos), endOffset - startOffset);\n this._lastChangeBufferPos = endPos;\n return [newPiece];\n }\n getLineRawContent(lineNumber, endOffset = 0) {\n let x = this.root;\n let ret = '';\n const cache = this._searchCache.get2(lineNumber);\n if (cache) {\n x = cache.node;\n const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber - 1);\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n if (cache.nodeStartLineNumber + x.piece.lineFeedCnt === lineNumber) {\n ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n }\n else {\n const accumulatedValue = this.getAccumulatedValue(x, lineNumber - cache.nodeStartLineNumber);\n return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n }\n }\n else {\n let nodeStartOffset = 0;\n const originalLineNumber = lineNumber;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n nodeStartOffset += x.size_left;\n this._searchCache.set({\n node: x,\n nodeStartOffset,\n nodeStartLineNumber: originalLineNumber - (lineNumber - 1 - x.lf_left)\n });\n return buffer.substring(startOffset + prevAccumulatedValue, startOffset + accumulatedValue - endOffset);\n }\n else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n const prevAccumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret = buffer.substring(startOffset + prevAccumulatedValue, startOffset + x.piece.length);\n break;\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n }\n // search in order, to find the node contains end column\n x = x.next();\n while (x !== SENTINEL) {\n const buffer = this._buffers[x.piece.bufferIndex].buffer;\n if (x.piece.lineFeedCnt > 0) {\n const accumulatedValue = this.getAccumulatedValue(x, 0);\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret += buffer.substring(startOffset, startOffset + accumulatedValue - endOffset);\n return ret;\n }\n else {\n const startOffset = this.offsetInBuffer(x.piece.bufferIndex, x.piece.start);\n ret += buffer.substr(startOffset, x.piece.length);\n }\n x = x.next();\n }\n return ret;\n }\n computeBufferMetadata() {\n let x = this.root;\n let lfCnt = 1;\n let len = 0;\n while (x !== SENTINEL) {\n lfCnt += x.lf_left + x.piece.lineFeedCnt;\n len += x.size_left + x.piece.length;\n x = x.right;\n }\n this._lineCnt = lfCnt;\n this._length = len;\n this._searchCache.validate(this._length);\n }\n // #region node operations\n getIndexOf(node, accumulatedValue) {\n const piece = node.piece;\n const pos = this.positionInBuffer(node, accumulatedValue);\n const lineCnt = pos.line - piece.start.line;\n if (this.offsetInBuffer(piece.bufferIndex, piece.end) - this.offsetInBuffer(piece.bufferIndex, piece.start) === accumulatedValue) {\n // we are checking the end of this node, so a CRLF check is necessary.\n const realLineCnt = this.getLineFeedCnt(node.piece.bufferIndex, piece.start, pos);\n if (realLineCnt !== lineCnt) {\n // aha yes, CRLF\n return { index: realLineCnt, remainder: 0 };\n }\n }\n return { index: lineCnt, remainder: pos.column };\n }\n getAccumulatedValue(node, index) {\n if (index < 0) {\n return 0;\n }\n const piece = node.piece;\n const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n const expectedLineStartIndex = piece.start.line + index + 1;\n if (expectedLineStartIndex > piece.end.line) {\n return lineStarts[piece.end.line] + piece.end.column - lineStarts[piece.start.line] - piece.start.column;\n }\n else {\n return lineStarts[expectedLineStartIndex] - lineStarts[piece.start.line] - piece.start.column;\n }\n }\n deleteNodeTail(node, pos) {\n const piece = node.piece;\n const originalLFCnt = piece.lineFeedCnt;\n const originalEndOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n const newEnd = pos;\n const newEndOffset = this.offsetInBuffer(piece.bufferIndex, newEnd);\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n const lf_delta = newLineFeedCnt - originalLFCnt;\n const size_delta = newEndOffset - originalEndOffset;\n const newLength = piece.length + size_delta;\n node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, size_delta, lf_delta);\n }\n deleteNodeHead(node, pos) {\n const piece = node.piece;\n const originalLFCnt = piece.lineFeedCnt;\n const originalStartOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n const newStart = pos;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n const newStartOffset = this.offsetInBuffer(piece.bufferIndex, newStart);\n const lf_delta = newLineFeedCnt - originalLFCnt;\n const size_delta = originalStartOffset - newStartOffset;\n const newLength = piece.length + size_delta;\n node.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, size_delta, lf_delta);\n }\n shrinkNode(node, start, end) {\n const piece = node.piece;\n const originalStartPos = piece.start;\n const originalEndPos = piece.end;\n // old piece, originalStartPos, start\n const oldLength = piece.length;\n const oldLFCnt = piece.lineFeedCnt;\n const newEnd = start;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, piece.start, newEnd);\n const newLength = this.offsetInBuffer(piece.bufferIndex, start) - this.offsetInBuffer(piece.bufferIndex, originalStartPos);\n node.piece = new Piece(piece.bufferIndex, piece.start, newEnd, newLineFeedCnt, newLength);\n updateTreeMetadata(this, node, newLength - oldLength, newLineFeedCnt - oldLFCnt);\n // new right piece, end, originalEndPos\n const newPiece = new Piece(piece.bufferIndex, end, originalEndPos, this.getLineFeedCnt(piece.bufferIndex, end, originalEndPos), this.offsetInBuffer(piece.bufferIndex, originalEndPos) - this.offsetInBuffer(piece.bufferIndex, end));\n const newNode = this.rbInsertRight(node, newPiece);\n this.validateCRLFWithPrevNode(newNode);\n }\n appendToNode(node, value) {\n if (this.adjustCarriageReturnFromNext(value, node)) {\n value += '\\n';\n }\n const hitCRLF = this.shouldCheckCRLF() && this.startWithLF(value) && this.endWithCR(node);\n const startOffset = this._buffers[0].buffer.length;\n this._buffers[0].buffer += value;\n const lineStarts = createLineStartsFast(value, false);\n for (let i = 0; i < lineStarts.length; i++) {\n lineStarts[i] += startOffset;\n }\n if (hitCRLF) {\n const prevStartOffset = this._buffers[0].lineStarts[this._buffers[0].lineStarts.length - 2];\n this._buffers[0].lineStarts.pop();\n // _lastChangeBufferPos is already wrong\n this._lastChangeBufferPos = { line: this._lastChangeBufferPos.line - 1, column: startOffset - prevStartOffset };\n }\n this._buffers[0].lineStarts = this._buffers[0].lineStarts.concat(lineStarts.slice(1));\n const endIndex = this._buffers[0].lineStarts.length - 1;\n const endColumn = this._buffers[0].buffer.length - this._buffers[0].lineStarts[endIndex];\n const newEnd = { line: endIndex, column: endColumn };\n const newLength = node.piece.length + value.length;\n const oldLineFeedCnt = node.piece.lineFeedCnt;\n const newLineFeedCnt = this.getLineFeedCnt(0, node.piece.start, newEnd);\n const lf_delta = newLineFeedCnt - oldLineFeedCnt;\n node.piece = new Piece(node.piece.bufferIndex, node.piece.start, newEnd, newLineFeedCnt, newLength);\n this._lastChangeBufferPos = newEnd;\n updateTreeMetadata(this, node, value.length, lf_delta);\n }\n nodeAt(offset) {\n let x = this.root;\n const cache = this._searchCache.get(offset);\n if (cache) {\n return {\n node: cache.node,\n nodeStartOffset: cache.nodeStartOffset,\n remainder: offset - cache.nodeStartOffset\n };\n }\n let nodeStartOffset = 0;\n while (x !== SENTINEL) {\n if (x.size_left > offset) {\n x = x.left;\n }\n else if (x.size_left + x.piece.length >= offset) {\n nodeStartOffset += x.size_left;\n const ret = {\n node: x,\n remainder: offset - x.size_left,\n nodeStartOffset\n };\n this._searchCache.set(ret);\n return ret;\n }\n else {\n offset -= x.size_left + x.piece.length;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n return null;\n }\n nodeAt2(lineNumber, column) {\n let x = this.root;\n let nodeStartOffset = 0;\n while (x !== SENTINEL) {\n if (x.left !== SENTINEL && x.lf_left >= lineNumber - 1) {\n x = x.left;\n }\n else if (x.lf_left + x.piece.lineFeedCnt > lineNumber - 1) {\n const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n const accumulatedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 1);\n nodeStartOffset += x.size_left;\n return {\n node: x,\n remainder: Math.min(prevAccumualtedValue + column - 1, accumulatedValue),\n nodeStartOffset\n };\n }\n else if (x.lf_left + x.piece.lineFeedCnt === lineNumber - 1) {\n const prevAccumualtedValue = this.getAccumulatedValue(x, lineNumber - x.lf_left - 2);\n if (prevAccumualtedValue + column - 1 <= x.piece.length) {\n return {\n node: x,\n remainder: prevAccumualtedValue + column - 1,\n nodeStartOffset\n };\n }\n else {\n column -= x.piece.length - prevAccumualtedValue;\n break;\n }\n }\n else {\n lineNumber -= x.lf_left + x.piece.lineFeedCnt;\n nodeStartOffset += x.size_left + x.piece.length;\n x = x.right;\n }\n }\n // search in order, to find the node contains position.column\n x = x.next();\n while (x !== SENTINEL) {\n if (x.piece.lineFeedCnt > 0) {\n const accumulatedValue = this.getAccumulatedValue(x, 0);\n const nodeStartOffset = this.offsetOfNode(x);\n return {\n node: x,\n remainder: Math.min(column - 1, accumulatedValue),\n nodeStartOffset\n };\n }\n else {\n if (x.piece.length >= column - 1) {\n const nodeStartOffset = this.offsetOfNode(x);\n return {\n node: x,\n remainder: column - 1,\n nodeStartOffset\n };\n }\n else {\n column -= x.piece.length;\n }\n }\n x = x.next();\n }\n return null;\n }\n nodeCharCodeAt(node, offset) {\n if (node.piece.lineFeedCnt < 1) {\n return -1;\n }\n const buffer = this._buffers[node.piece.bufferIndex];\n const newOffset = this.offsetInBuffer(node.piece.bufferIndex, node.piece.start) + offset;\n return buffer.buffer.charCodeAt(newOffset);\n }\n offsetOfNode(node) {\n if (!node) {\n return 0;\n }\n let pos = node.size_left;\n while (node !== this.root) {\n if (node.parent.right === node) {\n pos += node.parent.size_left + node.parent.piece.length;\n }\n node = node.parent;\n }\n return pos;\n }\n // #endregion\n // #region CRLF\n shouldCheckCRLF() {\n return !(this._EOLNormalized && this._EOL === '\\n');\n }\n startWithLF(val) {\n if (typeof val === 'string') {\n return val.charCodeAt(0) === 10;\n }\n if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n return false;\n }\n const piece = val.piece;\n const lineStarts = this._buffers[piece.bufferIndex].lineStarts;\n const line = piece.start.line;\n const startOffset = lineStarts[line] + piece.start.column;\n if (line === lineStarts.length - 1) {\n // last line, so there is no line feed at the end of this line\n return false;\n }\n const nextLineOffset = lineStarts[line + 1];\n if (nextLineOffset > startOffset + 1) {\n return false;\n }\n return this._buffers[piece.bufferIndex].buffer.charCodeAt(startOffset) === 10;\n }\n endWithCR(val) {\n if (typeof val === 'string') {\n return val.charCodeAt(val.length - 1) === 13;\n }\n if (val === SENTINEL || val.piece.lineFeedCnt === 0) {\n return false;\n }\n return this.nodeCharCodeAt(val, val.piece.length - 1) === 13;\n }\n validateCRLFWithPrevNode(nextNode) {\n if (this.shouldCheckCRLF() && this.startWithLF(nextNode)) {\n const node = nextNode.prev();\n if (this.endWithCR(node)) {\n this.fixCRLF(node, nextNode);\n }\n }\n }\n validateCRLFWithNextNode(node) {\n if (this.shouldCheckCRLF() && this.endWithCR(node)) {\n const nextNode = node.next();\n if (this.startWithLF(nextNode)) {\n this.fixCRLF(node, nextNode);\n }\n }\n }\n fixCRLF(prev, next) {\n const nodesToDel = [];\n // update node\n const lineStarts = this._buffers[prev.piece.bufferIndex].lineStarts;\n let newEnd;\n if (prev.piece.end.column === 0) {\n // it means, last line ends with \\r, not \\r\\n\n newEnd = { line: prev.piece.end.line - 1, column: lineStarts[prev.piece.end.line] - lineStarts[prev.piece.end.line - 1] - 1 };\n }\n else {\n // \\r\\n\n newEnd = { line: prev.piece.end.line, column: prev.piece.end.column - 1 };\n }\n const prevNewLength = prev.piece.length - 1;\n const prevNewLFCnt = prev.piece.lineFeedCnt - 1;\n prev.piece = new Piece(prev.piece.bufferIndex, prev.piece.start, newEnd, prevNewLFCnt, prevNewLength);\n updateTreeMetadata(this, prev, -1, -1);\n if (prev.piece.length === 0) {\n nodesToDel.push(prev);\n }\n // update nextNode\n const newStart = { line: next.piece.start.line + 1, column: 0 };\n const newLength = next.piece.length - 1;\n const newLineFeedCnt = this.getLineFeedCnt(next.piece.bufferIndex, newStart, next.piece.end);\n next.piece = new Piece(next.piece.bufferIndex, newStart, next.piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, next, -1, -1);\n if (next.piece.length === 0) {\n nodesToDel.push(next);\n }\n // create new piece which contains \\r\\n\n const pieces = this.createNewPieces('\\r\\n');\n this.rbInsertRight(prev, pieces[0]);\n // delete empty nodes\n for (let i = 0; i < nodesToDel.length; i++) {\n rbDelete(this, nodesToDel[i]);\n }\n }\n adjustCarriageReturnFromNext(value, node) {\n if (this.shouldCheckCRLF() && this.endWithCR(value)) {\n const nextNode = node.next();\n if (this.startWithLF(nextNode)) {\n // move `\\n` forward\n value += '\\n';\n if (nextNode.piece.length === 1) {\n rbDelete(this, nextNode);\n }\n else {\n const piece = nextNode.piece;\n const newStart = { line: piece.start.line + 1, column: 0 };\n const newLength = piece.length - 1;\n const newLineFeedCnt = this.getLineFeedCnt(piece.bufferIndex, newStart, piece.end);\n nextNode.piece = new Piece(piece.bufferIndex, newStart, piece.end, newLineFeedCnt, newLength);\n updateTreeMetadata(this, nextNode, -1, -1);\n }\n return true;\n }\n }\n return false;\n }\n // #endregion\n // #endregion\n // #region Tree operations\n iterate(node, callback) {\n if (node === SENTINEL) {\n return callback(SENTINEL);\n }\n const leftRet = this.iterate(node.left, callback);\n if (!leftRet) {\n return leftRet;\n }\n return callback(node) && this.iterate(node.right, callback);\n }\n getNodeContent(node) {\n if (node === SENTINEL) {\n return '';\n }\n const buffer = this._buffers[node.piece.bufferIndex];\n const piece = node.piece;\n const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n const currentContent = buffer.buffer.substring(startOffset, endOffset);\n return currentContent;\n }\n getPieceContent(piece) {\n const buffer = this._buffers[piece.bufferIndex];\n const startOffset = this.offsetInBuffer(piece.bufferIndex, piece.start);\n const endOffset = this.offsetInBuffer(piece.bufferIndex, piece.end);\n const currentContent = buffer.buffer.substring(startOffset, endOffset);\n return currentContent;\n }\n /**\n * node node\n * / \\ / \\\n * a b <---- a b\n * /\n * z\n */\n rbInsertRight(node, p) {\n const z = new TreeNode(p, 1 /* NodeColor.Red */);\n z.left = SENTINEL;\n z.right = SENTINEL;\n z.parent = SENTINEL;\n z.size_left = 0;\n z.lf_left = 0;\n const x = this.root;\n if (x === SENTINEL) {\n this.root = z;\n z.color = 0 /* NodeColor.Black */;\n }\n else if (node.right === SENTINEL) {\n node.right = z;\n z.parent = node;\n }\n else {\n const nextNode = leftest(node.right);\n nextNode.left = z;\n z.parent = nextNode;\n }\n fixInsert(this, z);\n return z;\n }\n /**\n * node node\n * / \\ / \\\n * a b ----> a b\n * \\\n * z\n */\n rbInsertLeft(node, p) {\n const z = new TreeNode(p, 1 /* NodeColor.Red */);\n z.left = SENTINEL;\n z.right = SENTINEL;\n z.parent = SENTINEL;\n z.size_left = 0;\n z.lf_left = 0;\n if (this.root === SENTINEL) {\n this.root = z;\n z.color = 0 /* NodeColor.Black */;\n }\n else if (node.left === SENTINEL) {\n node.left = z;\n z.parent = node;\n }\n else {\n const prevNode = righttest(node.left); // a\n prevNode.right = z;\n z.parent = prevNode;\n }\n fixInsert(this, z);\n return z;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../../base/common/event.js';\nimport * as strings from '../../../../base/common/strings.js';\nimport { Range } from '../../core/range.js';\nimport { ApplyEditsResult } from '../../model.js';\nimport { PieceTreeBase } from './pieceTreeBase.js';\nimport { countEOL } from '../../core/eolCounter.js';\nimport { TextChange } from '../../core/textChange.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class PieceTreeTextBuffer extends Disposable {\n constructor(chunks, BOM, eol, containsRTL, containsUnusualLineTerminators, isBasicASCII, eolNormalized) {\n super();\n this._onDidChangeContent = this._register(new Emitter());\n this._BOM = BOM;\n this._mightContainNonBasicASCII = !isBasicASCII;\n this._mightContainRTL = containsRTL;\n this._mightContainUnusualLineTerminators = containsUnusualLineTerminators;\n this._pieceTree = new PieceTreeBase(chunks, eol, eolNormalized);\n }\n mightContainRTL() {\n return this._mightContainRTL;\n }\n mightContainUnusualLineTerminators() {\n return this._mightContainUnusualLineTerminators;\n }\n resetMightContainUnusualLineTerminators() {\n this._mightContainUnusualLineTerminators = false;\n }\n mightContainNonBasicASCII() {\n return this._mightContainNonBasicASCII;\n }\n getBOM() {\n return this._BOM;\n }\n getEOL() {\n return this._pieceTree.getEOL();\n }\n createSnapshot(preserveBOM) {\n return this._pieceTree.createSnapshot(preserveBOM ? this._BOM : '');\n }\n getOffsetAt(lineNumber, column) {\n return this._pieceTree.getOffsetAt(lineNumber, column);\n }\n getPositionAt(offset) {\n return this._pieceTree.getPositionAt(offset);\n }\n getRangeAt(start, length) {\n const end = start + length;\n const startPosition = this.getPositionAt(start);\n const endPosition = this.getPositionAt(end);\n return new Range(startPosition.lineNumber, startPosition.column, endPosition.lineNumber, endPosition.column);\n }\n getValueInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n if (range.isEmpty()) {\n return '';\n }\n const lineEnding = this._getEndOfLine(eol);\n return this._pieceTree.getValueInRange(range, lineEnding);\n }\n getValueLengthInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n if (range.isEmpty()) {\n return 0;\n }\n if (range.startLineNumber === range.endLineNumber) {\n return (range.endColumn - range.startColumn);\n }\n const startOffset = this.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this.getOffsetAt(range.endLineNumber, range.endColumn);\n // offsets use the text EOL, so we need to compensate for length differences\n // if the requested EOL doesn't match the text EOL\n let eolOffsetCompensation = 0;\n const desiredEOL = this._getEndOfLine(eol);\n const actualEOL = this.getEOL();\n if (desiredEOL.length !== actualEOL.length) {\n const delta = desiredEOL.length - actualEOL.length;\n const eolCount = range.endLineNumber - range.startLineNumber;\n eolOffsetCompensation = delta * eolCount;\n }\n return endOffset - startOffset + eolOffsetCompensation;\n }\n getCharacterCountInRange(range, eol = 0 /* EndOfLinePreference.TextDefined */) {\n if (this._mightContainNonBasicASCII) {\n // we must count by iterating\n let result = 0;\n const fromLineNumber = range.startLineNumber;\n const toLineNumber = range.endLineNumber;\n for (let lineNumber = fromLineNumber; lineNumber <= toLineNumber; lineNumber++) {\n const lineContent = this.getLineContent(lineNumber);\n const fromOffset = (lineNumber === fromLineNumber ? range.startColumn - 1 : 0);\n const toOffset = (lineNumber === toLineNumber ? range.endColumn - 1 : lineContent.length);\n for (let offset = fromOffset; offset < toOffset; offset++) {\n if (strings.isHighSurrogate(lineContent.charCodeAt(offset))) {\n result = result + 1;\n offset = offset + 1;\n }\n else {\n result = result + 1;\n }\n }\n }\n result += this._getEndOfLine(eol).length * (toLineNumber - fromLineNumber);\n return result;\n }\n return this.getValueLengthInRange(range, eol);\n }\n getLength() {\n return this._pieceTree.getLength();\n }\n getLineCount() {\n return this._pieceTree.getLineCount();\n }\n getLinesContent() {\n return this._pieceTree.getLinesContent();\n }\n getLineContent(lineNumber) {\n return this._pieceTree.getLineContent(lineNumber);\n }\n getLineCharCode(lineNumber, index) {\n return this._pieceTree.getLineCharCode(lineNumber, index);\n }\n getLineLength(lineNumber) {\n return this._pieceTree.getLineLength(lineNumber);\n }\n getLineFirstNonWhitespaceColumn(lineNumber) {\n const result = strings.firstNonWhitespaceIndex(this.getLineContent(lineNumber));\n if (result === -1) {\n return 0;\n }\n return result + 1;\n }\n getLineLastNonWhitespaceColumn(lineNumber) {\n const result = strings.lastNonWhitespaceIndex(this.getLineContent(lineNumber));\n if (result === -1) {\n return 0;\n }\n return result + 2;\n }\n _getEndOfLine(eol) {\n switch (eol) {\n case 1 /* EndOfLinePreference.LF */:\n return '\\n';\n case 2 /* EndOfLinePreference.CRLF */:\n return '\\r\\n';\n case 0 /* EndOfLinePreference.TextDefined */:\n return this.getEOL();\n default:\n throw new Error('Unknown EOL preference');\n }\n }\n setEOL(newEOL) {\n this._pieceTree.setEOL(newEOL);\n }\n applyEdits(rawOperations, recordTrimAutoWhitespace, computeUndoEdits) {\n let mightContainRTL = this._mightContainRTL;\n let mightContainUnusualLineTerminators = this._mightContainUnusualLineTerminators;\n let mightContainNonBasicASCII = this._mightContainNonBasicASCII;\n let canReduceOperations = true;\n let operations = [];\n for (let i = 0; i < rawOperations.length; i++) {\n const op = rawOperations[i];\n if (canReduceOperations && op._isTracked) {\n canReduceOperations = false;\n }\n const validatedRange = op.range;\n if (op.text) {\n let textMightContainNonBasicASCII = true;\n if (!mightContainNonBasicASCII) {\n textMightContainNonBasicASCII = !strings.isBasicASCII(op.text);\n mightContainNonBasicASCII = textMightContainNonBasicASCII;\n }\n if (!mightContainRTL && textMightContainNonBasicASCII) {\n // check if the new inserted text contains RTL\n mightContainRTL = strings.containsRTL(op.text);\n }\n if (!mightContainUnusualLineTerminators && textMightContainNonBasicASCII) {\n // check if the new inserted text contains unusual line terminators\n mightContainUnusualLineTerminators = strings.containsUnusualLineTerminators(op.text);\n }\n }\n let validText = '';\n let eolCount = 0;\n let firstLineLength = 0;\n let lastLineLength = 0;\n if (op.text) {\n let strEOL;\n [eolCount, firstLineLength, lastLineLength, strEOL] = countEOL(op.text);\n const bufferEOL = this.getEOL();\n const expectedStrEOL = (bufferEOL === '\\r\\n' ? 2 /* StringEOL.CRLF */ : 1 /* StringEOL.LF */);\n if (strEOL === 0 /* StringEOL.Unknown */ || strEOL === expectedStrEOL) {\n validText = op.text;\n }\n else {\n validText = op.text.replace(/\\r\\n|\\r|\\n/g, bufferEOL);\n }\n }\n operations[i] = {\n sortIndex: i,\n identifier: op.identifier || null,\n range: validatedRange,\n rangeOffset: this.getOffsetAt(validatedRange.startLineNumber, validatedRange.startColumn),\n rangeLength: this.getValueLengthInRange(validatedRange),\n text: validText,\n eolCount: eolCount,\n firstLineLength: firstLineLength,\n lastLineLength: lastLineLength,\n forceMoveMarkers: Boolean(op.forceMoveMarkers),\n isAutoWhitespaceEdit: op.isAutoWhitespaceEdit || false\n };\n }\n // Sort operations ascending\n operations.sort(PieceTreeTextBuffer._sortOpsAscending);\n let hasTouchingRanges = false;\n for (let i = 0, count = operations.length - 1; i < count; i++) {\n const rangeEnd = operations[i].range.getEndPosition();\n const nextRangeStart = operations[i + 1].range.getStartPosition();\n if (nextRangeStart.isBeforeOrEqual(rangeEnd)) {\n if (nextRangeStart.isBefore(rangeEnd)) {\n // overlapping ranges\n throw new Error('Overlapping ranges are not allowed!');\n }\n hasTouchingRanges = true;\n }\n }\n if (canReduceOperations) {\n operations = this._reduceOperations(operations);\n }\n // Delta encode operations\n const reverseRanges = (computeUndoEdits || recordTrimAutoWhitespace ? PieceTreeTextBuffer._getInverseEditRanges(operations) : []);\n const newTrimAutoWhitespaceCandidates = [];\n if (recordTrimAutoWhitespace) {\n for (let i = 0; i < operations.length; i++) {\n const op = operations[i];\n const reverseRange = reverseRanges[i];\n if (op.isAutoWhitespaceEdit && op.range.isEmpty()) {\n // Record already the future line numbers that might be auto whitespace removal candidates on next edit\n for (let lineNumber = reverseRange.startLineNumber; lineNumber <= reverseRange.endLineNumber; lineNumber++) {\n let currentLineContent = '';\n if (lineNumber === reverseRange.startLineNumber) {\n currentLineContent = this.getLineContent(op.range.startLineNumber);\n if (strings.firstNonWhitespaceIndex(currentLineContent) !== -1) {\n continue;\n }\n }\n newTrimAutoWhitespaceCandidates.push({ lineNumber: lineNumber, oldContent: currentLineContent });\n }\n }\n }\n }\n let reverseOperations = null;\n if (computeUndoEdits) {\n let reverseRangeDeltaOffset = 0;\n reverseOperations = [];\n for (let i = 0; i < operations.length; i++) {\n const op = operations[i];\n const reverseRange = reverseRanges[i];\n const bufferText = this.getValueInRange(op.range);\n const reverseRangeOffset = op.rangeOffset + reverseRangeDeltaOffset;\n reverseRangeDeltaOffset += (op.text.length - bufferText.length);\n reverseOperations[i] = {\n sortIndex: op.sortIndex,\n identifier: op.identifier,\n range: reverseRange,\n text: bufferText,\n textChange: new TextChange(op.rangeOffset, bufferText, reverseRangeOffset, op.text)\n };\n }\n // Can only sort reverse operations when the order is not significant\n if (!hasTouchingRanges) {\n reverseOperations.sort((a, b) => a.sortIndex - b.sortIndex);\n }\n }\n this._mightContainRTL = mightContainRTL;\n this._mightContainUnusualLineTerminators = mightContainUnusualLineTerminators;\n this._mightContainNonBasicASCII = mightContainNonBasicASCII;\n const contentChanges = this._doApplyEdits(operations);\n let trimAutoWhitespaceLineNumbers = null;\n if (recordTrimAutoWhitespace && newTrimAutoWhitespaceCandidates.length > 0) {\n // sort line numbers auto whitespace removal candidates for next edit descending\n newTrimAutoWhitespaceCandidates.sort((a, b) => b.lineNumber - a.lineNumber);\n trimAutoWhitespaceLineNumbers = [];\n for (let i = 0, len = newTrimAutoWhitespaceCandidates.length; i < len; i++) {\n const lineNumber = newTrimAutoWhitespaceCandidates[i].lineNumber;\n if (i > 0 && newTrimAutoWhitespaceCandidates[i - 1].lineNumber === lineNumber) {\n // Do not have the same line number twice\n continue;\n }\n const prevContent = newTrimAutoWhitespaceCandidates[i].oldContent;\n const lineContent = this.getLineContent(lineNumber);\n if (lineContent.length === 0 || lineContent === prevContent || strings.firstNonWhitespaceIndex(lineContent) !== -1) {\n continue;\n }\n trimAutoWhitespaceLineNumbers.push(lineNumber);\n }\n }\n this._onDidChangeContent.fire();\n return new ApplyEditsResult(reverseOperations, contentChanges, trimAutoWhitespaceLineNumbers);\n }\n /**\n * Transform operations such that they represent the same logic edit,\n * but that they also do not cause OOM crashes.\n */\n _reduceOperations(operations) {\n if (operations.length < 1000) {\n // We know from empirical testing that a thousand edits work fine regardless of their shape.\n return operations;\n }\n // At one point, due to how events are emitted and how each operation is handled,\n // some operations can trigger a high amount of temporary string allocations,\n // that will immediately get edited again.\n // e.g. a formatter inserting ridiculous ammounts of \\n on a model with a single line\n // Therefore, the strategy is to collapse all the operations into a huge single edit operation\n return [this._toSingleEditOperation(operations)];\n }\n _toSingleEditOperation(operations) {\n let forceMoveMarkers = false;\n const firstEditRange = operations[0].range;\n const lastEditRange = operations[operations.length - 1].range;\n const entireEditRange = new Range(firstEditRange.startLineNumber, firstEditRange.startColumn, lastEditRange.endLineNumber, lastEditRange.endColumn);\n let lastEndLineNumber = firstEditRange.startLineNumber;\n let lastEndColumn = firstEditRange.startColumn;\n const result = [];\n for (let i = 0, len = operations.length; i < len; i++) {\n const operation = operations[i];\n const range = operation.range;\n forceMoveMarkers = forceMoveMarkers || operation.forceMoveMarkers;\n // (1) -- Push old text\n result.push(this.getValueInRange(new Range(lastEndLineNumber, lastEndColumn, range.startLineNumber, range.startColumn)));\n // (2) -- Push new text\n if (operation.text.length > 0) {\n result.push(operation.text);\n }\n lastEndLineNumber = range.endLineNumber;\n lastEndColumn = range.endColumn;\n }\n const text = result.join('');\n const [eolCount, firstLineLength, lastLineLength] = countEOL(text);\n return {\n sortIndex: 0,\n identifier: operations[0].identifier,\n range: entireEditRange,\n rangeOffset: this.getOffsetAt(entireEditRange.startLineNumber, entireEditRange.startColumn),\n rangeLength: this.getValueLengthInRange(entireEditRange, 0 /* EndOfLinePreference.TextDefined */),\n text: text,\n eolCount: eolCount,\n firstLineLength: firstLineLength,\n lastLineLength: lastLineLength,\n forceMoveMarkers: forceMoveMarkers,\n isAutoWhitespaceEdit: false\n };\n }\n _doApplyEdits(operations) {\n operations.sort(PieceTreeTextBuffer._sortOpsDescending);\n const contentChanges = [];\n // operations are from bottom to top\n for (let i = 0; i < operations.length; i++) {\n const op = operations[i];\n const startLineNumber = op.range.startLineNumber;\n const startColumn = op.range.startColumn;\n const endLineNumber = op.range.endLineNumber;\n const endColumn = op.range.endColumn;\n if (startLineNumber === endLineNumber && startColumn === endColumn && op.text.length === 0) {\n // no-op\n continue;\n }\n if (op.text) {\n // replacement\n this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n this._pieceTree.insert(op.rangeOffset, op.text, true);\n }\n else {\n // deletion\n this._pieceTree.delete(op.rangeOffset, op.rangeLength);\n }\n const contentChangeRange = new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n contentChanges.push({\n range: contentChangeRange,\n rangeLength: op.rangeLength,\n text: op.text,\n rangeOffset: op.rangeOffset,\n forceMoveMarkers: op.forceMoveMarkers\n });\n }\n return contentChanges;\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n return this._pieceTree.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n /**\n * Assumes `operations` are validated and sorted ascending\n */\n static _getInverseEditRanges(operations) {\n const result = [];\n let prevOpEndLineNumber = 0;\n let prevOpEndColumn = 0;\n let prevOp = null;\n for (let i = 0, len = operations.length; i < len; i++) {\n const op = operations[i];\n let startLineNumber;\n let startColumn;\n if (prevOp) {\n if (prevOp.range.endLineNumber === op.range.startLineNumber) {\n startLineNumber = prevOpEndLineNumber;\n startColumn = prevOpEndColumn + (op.range.startColumn - prevOp.range.endColumn);\n }\n else {\n startLineNumber = prevOpEndLineNumber + (op.range.startLineNumber - prevOp.range.endLineNumber);\n startColumn = op.range.startColumn;\n }\n }\n else {\n startLineNumber = op.range.startLineNumber;\n startColumn = op.range.startColumn;\n }\n let resultRange;\n if (op.text.length > 0) {\n // the operation inserts something\n const lineCount = op.eolCount + 1;\n if (lineCount === 1) {\n // single line insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn + op.firstLineLength);\n }\n else {\n // multi line insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber + lineCount - 1, op.lastLineLength + 1);\n }\n }\n else {\n // There is nothing to insert\n resultRange = new Range(startLineNumber, startColumn, startLineNumber, startColumn);\n }\n prevOpEndLineNumber = resultRange.endLineNumber;\n prevOpEndColumn = resultRange.endColumn;\n result.push(resultRange);\n prevOp = op;\n }\n return result;\n }\n static _sortOpsAscending(a, b) {\n const r = Range.compareRangesUsingEnds(a.range, b.range);\n if (r === 0) {\n return a.sortIndex - b.sortIndex;\n }\n return r;\n }\n static _sortOpsDescending(a, b) {\n const r = Range.compareRangesUsingEnds(a.range, b.range);\n if (r === 0) {\n return b.sortIndex - a.sortIndex;\n }\n return -r;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../../base/common/strings.js';\nimport { StringBuffer, createLineStarts, createLineStartsFast } from './pieceTreeBase.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer.js';\nclass PieceTreeTextBufferFactory {\n constructor(_chunks, _bom, _cr, _lf, _crlf, _containsRTL, _containsUnusualLineTerminators, _isBasicASCII, _normalizeEOL) {\n this._chunks = _chunks;\n this._bom = _bom;\n this._cr = _cr;\n this._lf = _lf;\n this._crlf = _crlf;\n this._containsRTL = _containsRTL;\n this._containsUnusualLineTerminators = _containsUnusualLineTerminators;\n this._isBasicASCII = _isBasicASCII;\n this._normalizeEOL = _normalizeEOL;\n }\n _getEOL(defaultEOL) {\n const totalEOLCount = this._cr + this._lf + this._crlf;\n const totalCRCount = this._cr + this._crlf;\n if (totalEOLCount === 0) {\n // This is an empty file or a file with precisely one line\n return (defaultEOL === 1 /* DefaultEndOfLine.LF */ ? '\\n' : '\\r\\n');\n }\n if (totalCRCount > totalEOLCount / 2) {\n // More than half of the file contains \\r\\n ending lines\n return '\\r\\n';\n }\n // At least one line more ends in \\n\n return '\\n';\n }\n create(defaultEOL) {\n const eol = this._getEOL(defaultEOL);\n const chunks = this._chunks;\n if (this._normalizeEOL &&\n ((eol === '\\r\\n' && (this._cr > 0 || this._lf > 0))\n || (eol === '\\n' && (this._cr > 0 || this._crlf > 0)))) {\n // Normalize pieces\n for (let i = 0, len = chunks.length; i < len; i++) {\n const str = chunks[i].buffer.replace(/\\r\\n|\\r|\\n/g, eol);\n const newLineStart = createLineStartsFast(str);\n chunks[i] = new StringBuffer(str, newLineStart);\n }\n }\n const textBuffer = new PieceTreeTextBuffer(chunks, this._bom, eol, this._containsRTL, this._containsUnusualLineTerminators, this._isBasicASCII, this._normalizeEOL);\n return { textBuffer: textBuffer, disposable: textBuffer };\n }\n}\nexport class PieceTreeTextBufferBuilder {\n constructor() {\n this.chunks = [];\n this.BOM = '';\n this._hasPreviousChar = false;\n this._previousChar = 0;\n this._tmpLineStarts = [];\n this.cr = 0;\n this.lf = 0;\n this.crlf = 0;\n this.containsRTL = false;\n this.containsUnusualLineTerminators = false;\n this.isBasicASCII = true;\n }\n acceptChunk(chunk) {\n if (chunk.length === 0) {\n return;\n }\n if (this.chunks.length === 0) {\n if (strings.startsWithUTF8BOM(chunk)) {\n this.BOM = strings.UTF8_BOM_CHARACTER;\n chunk = chunk.substr(1);\n }\n }\n const lastChar = chunk.charCodeAt(chunk.length - 1);\n if (lastChar === 13 /* CharCode.CarriageReturn */ || (lastChar >= 0xD800 && lastChar <= 0xDBFF)) {\n // last character is \\r or a high surrogate => keep it back\n this._acceptChunk1(chunk.substr(0, chunk.length - 1), false);\n this._hasPreviousChar = true;\n this._previousChar = lastChar;\n }\n else {\n this._acceptChunk1(chunk, false);\n this._hasPreviousChar = false;\n this._previousChar = lastChar;\n }\n }\n _acceptChunk1(chunk, allowEmptyStrings) {\n if (!allowEmptyStrings && chunk.length === 0) {\n // Nothing to do\n return;\n }\n if (this._hasPreviousChar) {\n this._acceptChunk2(String.fromCharCode(this._previousChar) + chunk);\n }\n else {\n this._acceptChunk2(chunk);\n }\n }\n _acceptChunk2(chunk) {\n const lineStarts = createLineStarts(this._tmpLineStarts, chunk);\n this.chunks.push(new StringBuffer(chunk, lineStarts.lineStarts));\n this.cr += lineStarts.cr;\n this.lf += lineStarts.lf;\n this.crlf += lineStarts.crlf;\n if (!lineStarts.isBasicASCII) {\n // this chunk contains non basic ASCII characters\n this.isBasicASCII = false;\n if (!this.containsRTL) {\n this.containsRTL = strings.containsRTL(chunk);\n }\n if (!this.containsUnusualLineTerminators) {\n this.containsUnusualLineTerminators = strings.containsUnusualLineTerminators(chunk);\n }\n }\n }\n finish(normalizeEOL = true) {\n this._finish();\n return new PieceTreeTextBufferFactory(this.chunks, this.BOM, this.cr, this.lf, this.crlf, this.containsRTL, this.containsUnusualLineTerminators, this.isBasicASCII, normalizeEOL);\n }\n _finish() {\n if (this.chunks.length === 0) {\n this._acceptChunk1('', true);\n }\n if (this._hasPreviousChar) {\n this._hasPreviousChar = false;\n // recreate last chunk\n const lastChunk = this.chunks[this.chunks.length - 1];\n lastChunk.buffer += String.fromCharCode(this._previousChar);\n const newLineStarts = createLineStartsFast(lastChunk.buffer);\n lastChunk.lineStarts = newLineStarts;\n if (this._previousChar === 13 /* CharCode.CarriageReturn */) {\n this.cr++;\n }\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { arrayInsert } from '../../../base/common/arrays.js';\n/**\n * An array that avoids being sparse by always\n * filling up unused indices with a default value.\n */\nexport class FixedArray {\n constructor(_default) {\n this._default = _default;\n this._store = [];\n }\n get(index) {\n if (index < this._store.length) {\n return this._store[index];\n }\n return this._default;\n }\n set(index, value) {\n while (index >= this._store.length) {\n this._store[this._store.length] = this._default;\n }\n this._store[index] = value;\n }\n replace(index, oldLength, newLength) {\n if (index >= this._store.length) {\n return;\n }\n if (oldLength === 0) {\n this.insert(index, newLength);\n return;\n }\n else if (newLength === 0) {\n this.delete(index, oldLength);\n return;\n }\n const before = this._store.slice(0, index);\n const after = this._store.slice(index + oldLength);\n const insertArr = arrayFill(newLength, this._default);\n this._store = before.concat(insertArr, after);\n }\n delete(deleteIndex, deleteCount) {\n if (deleteCount === 0 || deleteIndex >= this._store.length) {\n return;\n }\n this._store.splice(deleteIndex, deleteCount);\n }\n insert(insertIndex, insertCount) {\n if (insertCount === 0 || insertIndex >= this._store.length) {\n return;\n }\n const arr = [];\n for (let i = 0; i < insertCount; i++) {\n arr[i] = this._default;\n }\n this._store = arrayInsert(this._store, insertIndex, arr);\n }\n}\nfunction arrayFill(length, value) {\n const arr = [];\n for (let i = 0; i < length; i++) {\n arr[i] = value;\n }\n return arr;\n}\n","/**\n * Represents contiguous tokens over a contiguous range of lines.\n */\nexport class ContiguousMultilineTokens {\n /**\n * (Inclusive) start line number for these tokens.\n */\n get startLineNumber() {\n return this._startLineNumber;\n }\n /**\n * (Inclusive) end line number for these tokens.\n */\n get endLineNumber() {\n return this._startLineNumber + this._tokens.length - 1;\n }\n constructor(startLineNumber, tokens) {\n this._startLineNumber = startLineNumber;\n this._tokens = tokens;\n }\n /**\n * @see {@link _tokens}\n */\n getLineTokens(lineNumber) {\n return this._tokens[lineNumber - this._startLineNumber];\n }\n appendLineTokens(lineTokens) {\n this._tokens.push(lineTokens);\n }\n}\n","import { ContiguousMultilineTokens } from './contiguousMultilineTokens.js';\nexport class ContiguousMultilineTokensBuilder {\n constructor() {\n this._tokens = [];\n }\n add(lineNumber, lineTokens) {\n if (this._tokens.length > 0) {\n const last = this._tokens[this._tokens.length - 1];\n if (last.endLineNumber + 1 === lineNumber) {\n // append\n last.appendLineTokens(lineTokens);\n return;\n }\n }\n this._tokens.push(new ContiguousMultilineTokens(lineNumber, [lineTokens]));\n }\n finalize() {\n return this._tokens;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { runWhenGlobalIdle } from '../../../base/common/async.js';\nimport { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js';\nimport { setTimeout0 } from '../../../base/common/platform.js';\nimport { StopWatch } from '../../../base/common/stopwatch.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { OffsetRange } from '../core/offsetRange.js';\nimport { nullTokenizeEncoded } from '../languages/nullTokenize.js';\nimport { FixedArray } from './fixedArray.js';\nimport { ContiguousMultilineTokensBuilder } from '../tokens/contiguousMultilineTokensBuilder.js';\nimport { LineTokens } from '../tokens/lineTokens.js';\nexport class TokenizerWithStateStore {\n constructor(lineCount, tokenizationSupport) {\n this.tokenizationSupport = tokenizationSupport;\n this.initialState = this.tokenizationSupport.getInitialState();\n this.store = new TrackingTokenizationStateStore(lineCount);\n }\n getStartState(lineNumber) {\n return this.store.getStartState(lineNumber, this.initialState);\n }\n getFirstInvalidLine() {\n return this.store.getFirstInvalidLine(this.initialState);\n }\n}\nexport class TokenizerWithStateStoreAndTextModel extends TokenizerWithStateStore {\n constructor(lineCount, tokenizationSupport, _textModel, _languageIdCodec) {\n super(lineCount, tokenizationSupport);\n this._textModel = _textModel;\n this._languageIdCodec = _languageIdCodec;\n }\n updateTokensUntilLine(builder, lineNumber) {\n const languageId = this._textModel.getLanguageId();\n while (true) {\n const lineToTokenize = this.getFirstInvalidLine();\n if (!lineToTokenize || lineToTokenize.lineNumber > lineNumber) {\n break;\n }\n const text = this._textModel.getLineContent(lineToTokenize.lineNumber);\n const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, lineToTokenize.startState);\n builder.add(lineToTokenize.lineNumber, r.tokens);\n this.store.setEndState(lineToTokenize.lineNumber, r.endState);\n }\n }\n /** assumes state is up to date */\n getTokenTypeIfInsertingCharacter(position, character) {\n // TODO@hediet: use tokenizeLineWithEdit\n const lineStartState = this.getStartState(position.lineNumber);\n if (!lineStartState) {\n return 0 /* StandardTokenType.Other */;\n }\n const languageId = this._textModel.getLanguageId();\n const lineContent = this._textModel.getLineContent(position.lineNumber);\n // Create the text as if `character` was inserted\n const text = (lineContent.substring(0, position.column - 1)\n + character\n + lineContent.substring(position.column - 1));\n const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, lineStartState);\n const lineTokens = new LineTokens(r.tokens, text, this._languageIdCodec);\n if (lineTokens.getCount() === 0) {\n return 0 /* StandardTokenType.Other */;\n }\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n return lineTokens.getStandardTokenType(tokenIndex);\n }\n /** assumes state is up to date */\n tokenizeLineWithEdit(position, length, newText) {\n const lineNumber = position.lineNumber;\n const column = position.column;\n const lineStartState = this.getStartState(lineNumber);\n if (!lineStartState) {\n return null;\n }\n const curLineContent = this._textModel.getLineContent(lineNumber);\n const newLineContent = curLineContent.substring(0, column - 1)\n + newText + curLineContent.substring(column - 1 + length);\n const languageId = this._textModel.getLanguageIdAtPosition(lineNumber, 0);\n const result = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, newLineContent, true, lineStartState);\n const lineTokens = new LineTokens(result.tokens, newLineContent, this._languageIdCodec);\n return lineTokens;\n }\n hasAccurateTokensForLine(lineNumber) {\n const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n return (lineNumber < firstInvalidLineNumber);\n }\n isCheapToTokenize(lineNumber) {\n const firstInvalidLineNumber = this.store.getFirstInvalidEndStateLineNumberOrMax();\n if (lineNumber < firstInvalidLineNumber) {\n return true;\n }\n if (lineNumber === firstInvalidLineNumber\n && this._textModel.getLineLength(lineNumber) < 2048 /* Constants.CHEAP_TOKENIZATION_LENGTH_LIMIT */) {\n return true;\n }\n return false;\n }\n /**\n * The result is not cached.\n */\n tokenizeHeuristically(builder, startLineNumber, endLineNumber) {\n if (endLineNumber <= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n // nothing to do\n return { heuristicTokens: false };\n }\n if (startLineNumber <= this.store.getFirstInvalidEndStateLineNumberOrMax()) {\n // tokenization has reached the viewport start...\n this.updateTokensUntilLine(builder, endLineNumber);\n return { heuristicTokens: false };\n }\n let state = this.guessStartState(startLineNumber);\n const languageId = this._textModel.getLanguageId();\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n const text = this._textModel.getLineContent(lineNumber);\n const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, text, true, state);\n builder.add(lineNumber, r.tokens);\n state = r.endState;\n }\n return { heuristicTokens: true };\n }\n guessStartState(lineNumber) {\n let nonWhitespaceColumn = this._textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n const likelyRelevantLines = [];\n let initialState = null;\n for (let i = lineNumber - 1; nonWhitespaceColumn > 1 && i >= 1; i--) {\n const newNonWhitespaceIndex = this._textModel.getLineFirstNonWhitespaceColumn(i);\n // Ignore lines full of whitespace\n if (newNonWhitespaceIndex === 0) {\n continue;\n }\n if (newNonWhitespaceIndex < nonWhitespaceColumn) {\n likelyRelevantLines.push(this._textModel.getLineContent(i));\n nonWhitespaceColumn = newNonWhitespaceIndex;\n initialState = this.getStartState(i);\n if (initialState) {\n break;\n }\n }\n }\n if (!initialState) {\n initialState = this.tokenizationSupport.getInitialState();\n }\n likelyRelevantLines.reverse();\n const languageId = this._textModel.getLanguageId();\n let state = initialState;\n for (const line of likelyRelevantLines) {\n const r = safeTokenize(this._languageIdCodec, languageId, this.tokenizationSupport, line, false, state);\n state = r.endState;\n }\n return state;\n }\n}\n/**\n * **Invariant:**\n * If the text model is retokenized from line 1 to {@link getFirstInvalidEndStateLineNumber}() - 1,\n * then the recomputed end state for line l will be equal to {@link getEndState}(l).\n */\nexport class TrackingTokenizationStateStore {\n constructor(lineCount) {\n this.lineCount = lineCount;\n this._tokenizationStateStore = new TokenizationStateStore();\n this._invalidEndStatesLineNumbers = new RangePriorityQueueImpl();\n this._invalidEndStatesLineNumbers.addRange(new OffsetRange(1, lineCount + 1));\n }\n getEndState(lineNumber) {\n return this._tokenizationStateStore.getEndState(lineNumber);\n }\n /**\n * @returns if the end state has changed.\n */\n setEndState(lineNumber, state) {\n if (!state) {\n throw new BugIndicatingError('Cannot set null/undefined state');\n }\n this._invalidEndStatesLineNumbers.delete(lineNumber);\n const r = this._tokenizationStateStore.setEndState(lineNumber, state);\n if (r && lineNumber < this.lineCount) {\n // because the state changed, we cannot trust the next state anymore and have to invalidate it.\n this._invalidEndStatesLineNumbers.addRange(new OffsetRange(lineNumber + 1, lineNumber + 2));\n }\n return r;\n }\n acceptChange(range, newLineCount) {\n this.lineCount += newLineCount - range.length;\n this._tokenizationStateStore.acceptChange(range, newLineCount);\n this._invalidEndStatesLineNumbers.addRangeAndResize(new OffsetRange(range.startLineNumber, range.endLineNumberExclusive), newLineCount);\n }\n acceptChanges(changes) {\n for (const c of changes) {\n const [eolCount] = countEOL(c.text);\n this.acceptChange(new LineRange(c.range.startLineNumber, c.range.endLineNumber + 1), eolCount + 1);\n }\n }\n invalidateEndStateRange(range) {\n this._invalidEndStatesLineNumbers.addRange(new OffsetRange(range.startLineNumber, range.endLineNumberExclusive));\n }\n getFirstInvalidEndStateLineNumber() { return this._invalidEndStatesLineNumbers.min; }\n getFirstInvalidEndStateLineNumberOrMax() {\n return this.getFirstInvalidEndStateLineNumber() || Number.MAX_SAFE_INTEGER;\n }\n allStatesValid() { return this._invalidEndStatesLineNumbers.min === null; }\n getStartState(lineNumber, initialState) {\n if (lineNumber === 1) {\n return initialState;\n }\n return this.getEndState(lineNumber - 1);\n }\n getFirstInvalidLine(initialState) {\n const lineNumber = this.getFirstInvalidEndStateLineNumber();\n if (lineNumber === null) {\n return null;\n }\n const startState = this.getStartState(lineNumber, initialState);\n if (!startState) {\n throw new BugIndicatingError('Start state must be defined');\n }\n return { lineNumber, startState };\n }\n}\nexport class TokenizationStateStore {\n constructor() {\n this._lineEndStates = new FixedArray(null);\n }\n getEndState(lineNumber) {\n return this._lineEndStates.get(lineNumber);\n }\n setEndState(lineNumber, state) {\n const oldState = this._lineEndStates.get(lineNumber);\n if (oldState && oldState.equals(state)) {\n return false;\n }\n this._lineEndStates.set(lineNumber, state);\n return true;\n }\n acceptChange(range, newLineCount) {\n let length = range.length;\n if (newLineCount > 0 && length > 0) {\n // Keep the last state, even though it is unrelated.\n // But if the new state happens to agree with this last state, then we know we can stop tokenizing.\n length--;\n newLineCount--;\n }\n this._lineEndStates.replace(range.startLineNumber, length, newLineCount);\n }\n}\nexport class RangePriorityQueueImpl {\n constructor() {\n this._ranges = [];\n }\n get min() {\n if (this._ranges.length === 0) {\n return null;\n }\n return this._ranges[0].start;\n }\n delete(value) {\n const idx = this._ranges.findIndex(r => r.contains(value));\n if (idx !== -1) {\n const range = this._ranges[idx];\n if (range.start === value) {\n if (range.endExclusive === value + 1) {\n this._ranges.splice(idx, 1);\n }\n else {\n this._ranges[idx] = new OffsetRange(value + 1, range.endExclusive);\n }\n }\n else {\n if (range.endExclusive === value + 1) {\n this._ranges[idx] = new OffsetRange(range.start, value);\n }\n else {\n this._ranges.splice(idx, 1, new OffsetRange(range.start, value), new OffsetRange(value + 1, range.endExclusive));\n }\n }\n }\n }\n addRange(range) {\n OffsetRange.addRange(range, this._ranges);\n }\n addRangeAndResize(range, newLength) {\n let idxFirstMightBeIntersecting = 0;\n while (!(idxFirstMightBeIntersecting >= this._ranges.length || range.start <= this._ranges[idxFirstMightBeIntersecting].endExclusive)) {\n idxFirstMightBeIntersecting++;\n }\n let idxFirstIsAfter = idxFirstMightBeIntersecting;\n while (!(idxFirstIsAfter >= this._ranges.length || range.endExclusive < this._ranges[idxFirstIsAfter].start)) {\n idxFirstIsAfter++;\n }\n const delta = newLength - range.length;\n for (let i = idxFirstIsAfter; i < this._ranges.length; i++) {\n this._ranges[i] = this._ranges[i].delta(delta);\n }\n if (idxFirstMightBeIntersecting === idxFirstIsAfter) {\n const newRange = new OffsetRange(range.start, range.start + newLength);\n if (!newRange.isEmpty) {\n this._ranges.splice(idxFirstMightBeIntersecting, 0, newRange);\n }\n }\n else {\n const start = Math.min(range.start, this._ranges[idxFirstMightBeIntersecting].start);\n const endEx = Math.max(range.endExclusive, this._ranges[idxFirstIsAfter - 1].endExclusive);\n const newRange = new OffsetRange(start, endEx + delta);\n if (!newRange.isEmpty) {\n this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting, newRange);\n }\n else {\n this._ranges.splice(idxFirstMightBeIntersecting, idxFirstIsAfter - idxFirstMightBeIntersecting);\n }\n }\n }\n toString() {\n return this._ranges.map(r => r.toString()).join(' + ');\n }\n}\nfunction safeTokenize(languageIdCodec, languageId, tokenizationSupport, text, hasEOL, state) {\n let r = null;\n if (tokenizationSupport) {\n try {\n r = tokenizationSupport.tokenizeEncoded(text, hasEOL, state.clone());\n }\n catch (e) {\n onUnexpectedError(e);\n }\n }\n if (!r) {\n r = nullTokenizeEncoded(languageIdCodec.encodeLanguageId(languageId), state);\n }\n LineTokens.convertToEndOffset(r.tokens, text.length);\n return r;\n}\nexport class DefaultBackgroundTokenizer {\n constructor(_tokenizerWithStateStore, _backgroundTokenStore) {\n this._tokenizerWithStateStore = _tokenizerWithStateStore;\n this._backgroundTokenStore = _backgroundTokenStore;\n this._isDisposed = false;\n this._isScheduled = false;\n }\n dispose() {\n this._isDisposed = true;\n }\n handleChanges() {\n this._beginBackgroundTokenization();\n }\n _beginBackgroundTokenization() {\n if (this._isScheduled || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n return;\n }\n this._isScheduled = true;\n runWhenGlobalIdle((deadline) => {\n this._isScheduled = false;\n this._backgroundTokenizeWithDeadline(deadline);\n });\n }\n /**\n * Tokenize until the deadline occurs, but try to yield every 1-2ms.\n */\n _backgroundTokenizeWithDeadline(deadline) {\n // Read the time remaining from the `deadline` immediately because it is unclear\n // if the `deadline` object will be valid after execution leaves this function.\n const endTime = Date.now() + deadline.timeRemaining();\n const execute = () => {\n if (this._isDisposed || !this._tokenizerWithStateStore._textModel.isAttachedToEditor() || !this._hasLinesToTokenize()) {\n // disposed in the meantime or detached or finished\n return;\n }\n this._backgroundTokenizeForAtLeast1ms();\n if (Date.now() < endTime) {\n // There is still time before reaching the deadline, so yield to the browser and then\n // continue execution\n setTimeout0(execute);\n }\n else {\n // The deadline has been reached, so schedule a new idle callback if necessary\n this._beginBackgroundTokenization();\n }\n };\n execute();\n }\n /**\n * Tokenize for at least 1ms.\n */\n _backgroundTokenizeForAtLeast1ms() {\n const lineCount = this._tokenizerWithStateStore._textModel.getLineCount();\n const builder = new ContiguousMultilineTokensBuilder();\n const sw = StopWatch.create(false);\n do {\n if (sw.elapsed() > 1) {\n // the comparison is intentionally > 1 and not >= 1 to ensure that\n // a full millisecond has elapsed, given how microseconds are rounded\n // to milliseconds\n break;\n }\n const tokenizedLineNumber = this._tokenizeOneInvalidLine(builder);\n if (tokenizedLineNumber >= lineCount) {\n break;\n }\n } while (this._hasLinesToTokenize());\n this._backgroundTokenStore.setTokens(builder.finalize());\n this.checkFinished();\n }\n _hasLinesToTokenize() {\n if (!this._tokenizerWithStateStore) {\n return false;\n }\n return !this._tokenizerWithStateStore.store.allStatesValid();\n }\n _tokenizeOneInvalidLine(builder) {\n var _a;\n const firstInvalidLine = (_a = this._tokenizerWithStateStore) === null || _a === void 0 ? void 0 : _a.getFirstInvalidLine();\n if (!firstInvalidLine) {\n return this._tokenizerWithStateStore._textModel.getLineCount() + 1;\n }\n this._tokenizerWithStateStore.updateTokensUntilLine(builder, firstInvalidLine.lineNumber);\n return firstInvalidLine.lineNumber;\n }\n checkFinished() {\n if (this._isDisposed) {\n return;\n }\n if (this._tokenizerWithStateStore.store.allStatesValid()) {\n this._backgroundTokenStore.backgroundTokenizationFinished();\n }\n }\n requestTokens(startLineNumber, endLineNumberExclusive) {\n this._tokenizerWithStateStore.store.invalidateEndStateRange(new LineRange(startLineNumber, endLineNumberExclusive));\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { LineTokens } from './lineTokens.js';\nexport const EMPTY_LINE_TOKENS = (new Uint32Array(0)).buffer;\nexport class ContiguousTokensEditing {\n static deleteBeginning(lineTokens, toChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n return ContiguousTokensEditing.delete(lineTokens, 0, toChIndex);\n }\n static deleteEnding(lineTokens, fromChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const lineTextLength = tokens[tokens.length - 2];\n return ContiguousTokensEditing.delete(lineTokens, fromChIndex, lineTextLength);\n }\n static delete(lineTokens, fromChIndex, toChIndex) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS || fromChIndex === toChIndex) {\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const tokensCount = (tokens.length >>> 1);\n // special case: deleting everything\n if (fromChIndex === 0 && tokens[tokens.length - 2] === toChIndex) {\n return EMPTY_LINE_TOKENS;\n }\n const fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, fromChIndex);\n const fromTokenStartOffset = (fromTokenIndex > 0 ? tokens[(fromTokenIndex - 1) << 1] : 0);\n const fromTokenEndOffset = tokens[fromTokenIndex << 1];\n if (toChIndex < fromTokenEndOffset) {\n // the delete range is inside a single token\n const delta = (toChIndex - fromChIndex);\n for (let i = fromTokenIndex; i < tokensCount; i++) {\n tokens[i << 1] -= delta;\n }\n return lineTokens;\n }\n let dest;\n let lastEnd;\n if (fromTokenStartOffset !== fromChIndex) {\n tokens[fromTokenIndex << 1] = fromChIndex;\n dest = ((fromTokenIndex + 1) << 1);\n lastEnd = fromChIndex;\n }\n else {\n dest = (fromTokenIndex << 1);\n lastEnd = fromTokenStartOffset;\n }\n const delta = (toChIndex - fromChIndex);\n for (let tokenIndex = fromTokenIndex + 1; tokenIndex < tokensCount; tokenIndex++) {\n const tokenEndOffset = tokens[tokenIndex << 1] - delta;\n if (tokenEndOffset > lastEnd) {\n tokens[dest++] = tokenEndOffset;\n tokens[dest++] = tokens[(tokenIndex << 1) + 1];\n lastEnd = tokenEndOffset;\n }\n }\n if (dest === tokens.length) {\n // nothing to trim\n return lineTokens;\n }\n const tmp = new Uint32Array(dest);\n tmp.set(tokens.subarray(0, dest), 0);\n return tmp.buffer;\n }\n static append(lineTokens, _otherTokens) {\n if (_otherTokens === EMPTY_LINE_TOKENS) {\n return lineTokens;\n }\n if (lineTokens === EMPTY_LINE_TOKENS) {\n return _otherTokens;\n }\n if (lineTokens === null) {\n return lineTokens;\n }\n if (_otherTokens === null) {\n // cannot determine combined line length...\n return null;\n }\n const myTokens = toUint32Array(lineTokens);\n const otherTokens = toUint32Array(_otherTokens);\n const otherTokensCount = (otherTokens.length >>> 1);\n const result = new Uint32Array(myTokens.length + otherTokens.length);\n result.set(myTokens, 0);\n let dest = myTokens.length;\n const delta = myTokens[myTokens.length - 2];\n for (let i = 0; i < otherTokensCount; i++) {\n result[dest++] = otherTokens[(i << 1)] + delta;\n result[dest++] = otherTokens[(i << 1) + 1];\n }\n return result.buffer;\n }\n static insert(lineTokens, chIndex, textLength) {\n if (lineTokens === null || lineTokens === EMPTY_LINE_TOKENS) {\n // nothing to do\n return lineTokens;\n }\n const tokens = toUint32Array(lineTokens);\n const tokensCount = (tokens.length >>> 1);\n let fromTokenIndex = LineTokens.findIndexInTokensArray(tokens, chIndex);\n if (fromTokenIndex > 0) {\n const fromTokenStartOffset = tokens[(fromTokenIndex - 1) << 1];\n if (fromTokenStartOffset === chIndex) {\n fromTokenIndex--;\n }\n }\n for (let tokenIndex = fromTokenIndex; tokenIndex < tokensCount; tokenIndex++) {\n tokens[tokenIndex << 1] += textLength;\n }\n return lineTokens;\n }\n}\nexport function toUint32Array(arr) {\n if (arr instanceof Uint32Array) {\n return arr;\n }\n else {\n return new Uint32Array(arr);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { Position } from '../core/position.js';\nimport { ContiguousTokensEditing, EMPTY_LINE_TOKENS, toUint32Array } from './contiguousTokensEditing.js';\nimport { LineTokens } from './lineTokens.js';\nimport { TokenMetadata } from '../encodedTokenAttributes.js';\n/**\n * Represents contiguous tokens in a text model.\n */\nexport class ContiguousTokensStore {\n constructor(languageIdCodec) {\n this._lineTokens = [];\n this._len = 0;\n this._languageIdCodec = languageIdCodec;\n }\n flush() {\n this._lineTokens = [];\n this._len = 0;\n }\n get hasTokens() {\n return this._lineTokens.length > 0;\n }\n getTokens(topLevelLanguageId, lineIndex, lineText) {\n let rawLineTokens = null;\n if (lineIndex < this._len) {\n rawLineTokens = this._lineTokens[lineIndex];\n }\n if (rawLineTokens !== null && rawLineTokens !== EMPTY_LINE_TOKENS) {\n return new LineTokens(toUint32Array(rawLineTokens), lineText, this._languageIdCodec);\n }\n const lineTokens = new Uint32Array(2);\n lineTokens[0] = lineText.length;\n lineTokens[1] = getDefaultMetadata(this._languageIdCodec.encodeLanguageId(topLevelLanguageId));\n return new LineTokens(lineTokens, lineText, this._languageIdCodec);\n }\n static _massageTokens(topLevelLanguageId, lineTextLength, _tokens) {\n const tokens = _tokens ? toUint32Array(_tokens) : null;\n if (lineTextLength === 0) {\n let hasDifferentLanguageId = false;\n if (tokens && tokens.length > 1) {\n hasDifferentLanguageId = (TokenMetadata.getLanguageId(tokens[1]) !== topLevelLanguageId);\n }\n if (!hasDifferentLanguageId) {\n return EMPTY_LINE_TOKENS;\n }\n }\n if (!tokens || tokens.length === 0) {\n const tokens = new Uint32Array(2);\n tokens[0] = lineTextLength;\n tokens[1] = getDefaultMetadata(topLevelLanguageId);\n return tokens.buffer;\n }\n // Ensure the last token covers the end of the text\n tokens[tokens.length - 2] = lineTextLength;\n if (tokens.byteOffset === 0 && tokens.byteLength === tokens.buffer.byteLength) {\n // Store directly the ArrayBuffer pointer to save an object\n return tokens.buffer;\n }\n return tokens;\n }\n _ensureLine(lineIndex) {\n while (lineIndex >= this._len) {\n this._lineTokens[this._len] = null;\n this._len++;\n }\n }\n _deleteLines(start, deleteCount) {\n if (deleteCount === 0) {\n return;\n }\n if (start + deleteCount > this._len) {\n deleteCount = this._len - start;\n }\n this._lineTokens.splice(start, deleteCount);\n this._len -= deleteCount;\n }\n _insertLines(insertIndex, insertCount) {\n if (insertCount === 0) {\n return;\n }\n const lineTokens = [];\n for (let i = 0; i < insertCount; i++) {\n lineTokens[i] = null;\n }\n this._lineTokens = arrays.arrayInsert(this._lineTokens, insertIndex, lineTokens);\n this._len += insertCount;\n }\n setTokens(topLevelLanguageId, lineIndex, lineTextLength, _tokens, checkEquality) {\n const tokens = ContiguousTokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(topLevelLanguageId), lineTextLength, _tokens);\n this._ensureLine(lineIndex);\n const oldTokens = this._lineTokens[lineIndex];\n this._lineTokens[lineIndex] = tokens;\n if (checkEquality) {\n return !ContiguousTokensStore._equals(oldTokens, tokens);\n }\n return false;\n }\n static _equals(_a, _b) {\n if (!_a || !_b) {\n return !_a && !_b;\n }\n const a = toUint32Array(_a);\n const b = toUint32Array(_b);\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0, len = a.length; i < len; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n }\n //#region Editing\n acceptEdit(range, eolCount, firstLineLength) {\n this._acceptDeleteRange(range);\n this._acceptInsertText(new Position(range.startLineNumber, range.startColumn), eolCount, firstLineLength);\n }\n _acceptDeleteRange(range) {\n const firstLineIndex = range.startLineNumber - 1;\n if (firstLineIndex >= this._len) {\n return;\n }\n if (range.startLineNumber === range.endLineNumber) {\n if (range.startColumn === range.endColumn) {\n // Nothing to delete\n return;\n }\n this._lineTokens[firstLineIndex] = ContiguousTokensEditing.delete(this._lineTokens[firstLineIndex], range.startColumn - 1, range.endColumn - 1);\n return;\n }\n this._lineTokens[firstLineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[firstLineIndex], range.startColumn - 1);\n const lastLineIndex = range.endLineNumber - 1;\n let lastLineTokens = null;\n if (lastLineIndex < this._len) {\n lastLineTokens = ContiguousTokensEditing.deleteBeginning(this._lineTokens[lastLineIndex], range.endColumn - 1);\n }\n // Take remaining text on last line and append it to remaining text on first line\n this._lineTokens[firstLineIndex] = ContiguousTokensEditing.append(this._lineTokens[firstLineIndex], lastLineTokens);\n // Delete middle lines\n this._deleteLines(range.startLineNumber, range.endLineNumber - range.startLineNumber);\n }\n _acceptInsertText(position, eolCount, firstLineLength) {\n if (eolCount === 0 && firstLineLength === 0) {\n // Nothing to insert\n return;\n }\n const lineIndex = position.lineNumber - 1;\n if (lineIndex >= this._len) {\n return;\n }\n if (eolCount === 0) {\n // Inserting text on one line\n this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n return;\n }\n this._lineTokens[lineIndex] = ContiguousTokensEditing.deleteEnding(this._lineTokens[lineIndex], position.column - 1);\n this._lineTokens[lineIndex] = ContiguousTokensEditing.insert(this._lineTokens[lineIndex], position.column - 1, firstLineLength);\n this._insertLines(position.lineNumber, eolCount);\n }\n //#endregion\n setMultilineTokens(tokens, textModel) {\n if (tokens.length === 0) {\n return { changes: [] };\n }\n const ranges = [];\n for (let i = 0, len = tokens.length; i < len; i++) {\n const element = tokens[i];\n let minChangedLineNumber = 0;\n let maxChangedLineNumber = 0;\n let hasChange = false;\n for (let lineNumber = element.startLineNumber; lineNumber <= element.endLineNumber; lineNumber++) {\n if (hasChange) {\n this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), false);\n maxChangedLineNumber = lineNumber;\n }\n else {\n const lineHasChange = this.setTokens(textModel.getLanguageId(), lineNumber - 1, textModel.getLineLength(lineNumber), element.getLineTokens(lineNumber), true);\n if (lineHasChange) {\n hasChange = true;\n minChangedLineNumber = lineNumber;\n maxChangedLineNumber = lineNumber;\n }\n }\n }\n if (hasChange) {\n ranges.push({ fromLineNumber: minChangedLineNumber, toLineNumber: maxChangedLineNumber, });\n }\n }\n return { changes: ranges };\n }\n}\nfunction getDefaultMetadata(topLevelLanguageId) {\n return ((topLevelLanguageId << 0 /* MetadataConsts.LANGUAGEID_OFFSET */)\n | (0 /* StandardTokenType.Other */ << 8 /* MetadataConsts.TOKEN_TYPE_OFFSET */)\n | (0 /* FontStyle.None */ << 11 /* MetadataConsts.FONT_STYLE_OFFSET */)\n | (1 /* ColorId.DefaultForeground */ << 15 /* MetadataConsts.FOREGROUND_OFFSET */)\n | (2 /* ColorId.DefaultBackground */ << 24 /* MetadataConsts.BACKGROUND_OFFSET */)\n // If there is no grammar, we just take a guess and try to match brackets.\n | (1024 /* MetadataConsts.BALANCED_BRACKETS_MASK */)) >>> 0;\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport { LineTokens } from './lineTokens.js';\n/**\n * Represents sparse tokens in a text model.\n */\nexport class SparseTokensStore {\n constructor(languageIdCodec) {\n this._pieces = [];\n this._isComplete = false;\n this._languageIdCodec = languageIdCodec;\n }\n flush() {\n this._pieces = [];\n this._isComplete = false;\n }\n isEmpty() {\n return (this._pieces.length === 0);\n }\n set(pieces, isComplete) {\n this._pieces = pieces || [];\n this._isComplete = isComplete;\n }\n setPartial(_range, pieces) {\n // console.log(`setPartial ${_range} ${pieces.map(p => p.toString()).join(', ')}`);\n let range = _range;\n if (pieces.length > 0) {\n const _firstRange = pieces[0].getRange();\n const _lastRange = pieces[pieces.length - 1].getRange();\n if (!_firstRange || !_lastRange) {\n return _range;\n }\n range = _range.plusRange(_firstRange).plusRange(_lastRange);\n }\n let insertPosition = null;\n for (let i = 0, len = this._pieces.length; i < len; i++) {\n const piece = this._pieces[i];\n if (piece.endLineNumber < range.startLineNumber) {\n // this piece is before the range\n continue;\n }\n if (piece.startLineNumber > range.endLineNumber) {\n // this piece is after the range, so mark the spot before this piece\n // as a good insertion position and stop looping\n insertPosition = insertPosition || { index: i };\n break;\n }\n // this piece might intersect with the range\n piece.removeTokens(range);\n if (piece.isEmpty()) {\n // remove the piece if it became empty\n this._pieces.splice(i, 1);\n i--;\n len--;\n continue;\n }\n if (piece.endLineNumber < range.startLineNumber) {\n // after removal, this piece is before the range\n continue;\n }\n if (piece.startLineNumber > range.endLineNumber) {\n // after removal, this piece is after the range\n insertPosition = insertPosition || { index: i };\n continue;\n }\n // after removal, this piece contains the range\n const [a, b] = piece.split(range);\n if (a.isEmpty()) {\n // this piece is actually after the range\n insertPosition = insertPosition || { index: i };\n continue;\n }\n if (b.isEmpty()) {\n // this piece is actually before the range\n continue;\n }\n this._pieces.splice(i, 1, a, b);\n i++;\n len++;\n insertPosition = insertPosition || { index: i };\n }\n insertPosition = insertPosition || { index: this._pieces.length };\n if (pieces.length > 0) {\n this._pieces = arrays.arrayInsert(this._pieces, insertPosition.index, pieces);\n }\n // console.log(`I HAVE ${this._pieces.length} pieces`);\n // console.log(`${this._pieces.map(p => p.toString()).join('\\n')}`);\n return range;\n }\n isComplete() {\n return this._isComplete;\n }\n addSparseTokens(lineNumber, aTokens) {\n if (aTokens.getLineContent().length === 0) {\n // Don't do anything for empty lines\n return aTokens;\n }\n const pieces = this._pieces;\n if (pieces.length === 0) {\n return aTokens;\n }\n const pieceIndex = SparseTokensStore._findFirstPieceWithLine(pieces, lineNumber);\n const bTokens = pieces[pieceIndex].getLineTokens(lineNumber);\n if (!bTokens) {\n return aTokens;\n }\n const aLen = aTokens.getCount();\n const bLen = bTokens.getCount();\n let aIndex = 0;\n const result = [];\n let resultLen = 0;\n let lastEndOffset = 0;\n const emitToken = (endOffset, metadata) => {\n if (endOffset === lastEndOffset) {\n return;\n }\n lastEndOffset = endOffset;\n result[resultLen++] = endOffset;\n result[resultLen++] = metadata;\n };\n for (let bIndex = 0; bIndex < bLen; bIndex++) {\n const bStartCharacter = bTokens.getStartCharacter(bIndex);\n const bEndCharacter = bTokens.getEndCharacter(bIndex);\n const bMetadata = bTokens.getMetadata(bIndex);\n const bMask = (((bMetadata & 1 /* MetadataConsts.SEMANTIC_USE_ITALIC */) ? 2048 /* MetadataConsts.ITALIC_MASK */ : 0)\n | ((bMetadata & 2 /* MetadataConsts.SEMANTIC_USE_BOLD */) ? 4096 /* MetadataConsts.BOLD_MASK */ : 0)\n | ((bMetadata & 4 /* MetadataConsts.SEMANTIC_USE_UNDERLINE */) ? 8192 /* MetadataConsts.UNDERLINE_MASK */ : 0)\n | ((bMetadata & 8 /* MetadataConsts.SEMANTIC_USE_STRIKETHROUGH */) ? 16384 /* MetadataConsts.STRIKETHROUGH_MASK */ : 0)\n | ((bMetadata & 16 /* MetadataConsts.SEMANTIC_USE_FOREGROUND */) ? 16744448 /* MetadataConsts.FOREGROUND_MASK */ : 0)\n | ((bMetadata & 32 /* MetadataConsts.SEMANTIC_USE_BACKGROUND */) ? 4278190080 /* MetadataConsts.BACKGROUND_MASK */ : 0)) >>> 0;\n const aMask = (~bMask) >>> 0;\n // push any token from `a` that is before `b`\n while (aIndex < aLen && aTokens.getEndOffset(aIndex) <= bStartCharacter) {\n emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n aIndex++;\n }\n // push the token from `a` if it intersects the token from `b`\n if (aIndex < aLen && aTokens.getStartOffset(aIndex) < bStartCharacter) {\n emitToken(bStartCharacter, aTokens.getMetadata(aIndex));\n }\n // skip any tokens from `a` that are contained inside `b`\n while (aIndex < aLen && aTokens.getEndOffset(aIndex) < bEndCharacter) {\n emitToken(aTokens.getEndOffset(aIndex), (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n aIndex++;\n }\n if (aIndex < aLen) {\n emitToken(bEndCharacter, (aTokens.getMetadata(aIndex) & aMask) | (bMetadata & bMask));\n if (aTokens.getEndOffset(aIndex) === bEndCharacter) {\n // `a` ends exactly at the same spot as `b`!\n aIndex++;\n }\n }\n else {\n const aMergeIndex = Math.min(Math.max(0, aIndex - 1), aLen - 1);\n // push the token from `b`\n emitToken(bEndCharacter, (aTokens.getMetadata(aMergeIndex) & aMask) | (bMetadata & bMask));\n }\n }\n // push the remaining tokens from `a`\n while (aIndex < aLen) {\n emitToken(aTokens.getEndOffset(aIndex), aTokens.getMetadata(aIndex));\n aIndex++;\n }\n return new LineTokens(new Uint32Array(result), aTokens.getLineContent(), this._languageIdCodec);\n }\n static _findFirstPieceWithLine(pieces, lineNumber) {\n let low = 0;\n let high = pieces.length - 1;\n while (low < high) {\n let mid = low + Math.floor((high - low) / 2);\n if (pieces[mid].endLineNumber < lineNumber) {\n low = mid + 1;\n }\n else if (pieces[mid].startLineNumber > lineNumber) {\n high = mid - 1;\n }\n else {\n while (mid > low && pieces[mid - 1].startLineNumber <= lineNumber && lineNumber <= pieces[mid - 1].endLineNumber) {\n mid--;\n }\n return mid;\n }\n }\n return low;\n }\n acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode) {\n for (const piece of this._pieces) {\n piece.acceptEdit(range, eolCount, firstLineLength, lastLineLength, firstCharCode);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals } from '../../../base/common/arrays.js';\nimport { RunOnceScheduler } from '../../../base/common/async.js';\nimport { BugIndicatingError, onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, DisposableMap, MutableDisposable } from '../../../base/common/lifecycle.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { Position } from '../core/position.js';\nimport { getWordAtText } from '../core/wordHelper.js';\nimport { TokenizationRegistry } from '../languages.js';\nimport { TextModelPart } from './textModelPart.js';\nimport { DefaultBackgroundTokenizer, TokenizerWithStateStoreAndTextModel, TrackingTokenizationStateStore } from './textModelTokens.js';\nimport { ContiguousMultilineTokensBuilder } from '../tokens/contiguousMultilineTokensBuilder.js';\nimport { ContiguousTokensStore } from '../tokens/contiguousTokensStore.js';\nimport { SparseTokensStore } from '../tokens/sparseTokensStore.js';\nexport class TokenizationTextModelPart extends TextModelPart {\n constructor(_languageService, _languageConfigurationService, _textModel, _bracketPairsTextModelPart, _languageId, _attachedViews) {\n super();\n this._languageService = _languageService;\n this._languageConfigurationService = _languageConfigurationService;\n this._textModel = _textModel;\n this._bracketPairsTextModelPart = _bracketPairsTextModelPart;\n this._languageId = _languageId;\n this._attachedViews = _attachedViews;\n this._semanticTokens = new SparseTokensStore(this._languageService.languageIdCodec);\n this._onDidChangeLanguage = this._register(new Emitter());\n this.onDidChangeLanguage = this._onDidChangeLanguage.event;\n this._onDidChangeLanguageConfiguration = this._register(new Emitter());\n this.onDidChangeLanguageConfiguration = this._onDidChangeLanguageConfiguration.event;\n this._onDidChangeTokens = this._register(new Emitter());\n this.onDidChangeTokens = this._onDidChangeTokens.event;\n this.grammarTokens = this._register(new GrammarTokens(this._languageService.languageIdCodec, this._textModel, () => this._languageId, this._attachedViews));\n this._register(this._languageConfigurationService.onDidChange(e => {\n if (e.affects(this._languageId)) {\n this._onDidChangeLanguageConfiguration.fire({});\n }\n }));\n this._register(this.grammarTokens.onDidChangeTokens(e => {\n this._emitModelTokensChangedEvent(e);\n }));\n this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(e => {\n this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState();\n }));\n }\n handleDidChangeContent(e) {\n if (e.isFlush) {\n this._semanticTokens.flush();\n }\n else if (!e.isEolChange) { // We don't have to do anything on an EOL change\n for (const c of e.changes) {\n const [eolCount, firstLineLength, lastLineLength] = countEOL(c.text);\n this._semanticTokens.acceptEdit(c.range, eolCount, firstLineLength, lastLineLength, c.text.length > 0 ? c.text.charCodeAt(0) : 0 /* CharCode.Null */);\n }\n }\n this.grammarTokens.handleDidChangeContent(e);\n }\n handleDidChangeAttached() {\n this.grammarTokens.handleDidChangeAttached();\n }\n /**\n * Includes grammar and semantic tokens.\n */\n getLineTokens(lineNumber) {\n this.validateLineNumber(lineNumber);\n const syntacticTokens = this.grammarTokens.getLineTokens(lineNumber);\n return this._semanticTokens.addSparseTokens(lineNumber, syntacticTokens);\n }\n _emitModelTokensChangedEvent(e) {\n if (!this._textModel._isDisposing()) {\n this._bracketPairsTextModelPart.handleDidChangeTokens(e);\n this._onDidChangeTokens.fire(e);\n }\n }\n // #region Grammar Tokens\n validateLineNumber(lineNumber) {\n if (lineNumber < 1 || lineNumber > this._textModel.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n }\n get hasTokens() {\n return this.grammarTokens.hasTokens;\n }\n resetTokenization() {\n this.grammarTokens.resetTokenization();\n }\n get backgroundTokenizationState() {\n return this.grammarTokens.backgroundTokenizationState;\n }\n forceTokenization(lineNumber) {\n this.validateLineNumber(lineNumber);\n this.grammarTokens.forceTokenization(lineNumber);\n }\n hasAccurateTokensForLine(lineNumber) {\n this.validateLineNumber(lineNumber);\n return this.grammarTokens.hasAccurateTokensForLine(lineNumber);\n }\n isCheapToTokenize(lineNumber) {\n this.validateLineNumber(lineNumber);\n return this.grammarTokens.isCheapToTokenize(lineNumber);\n }\n tokenizeIfCheap(lineNumber) {\n this.validateLineNumber(lineNumber);\n this.grammarTokens.tokenizeIfCheap(lineNumber);\n }\n getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n return this.grammarTokens.getTokenTypeIfInsertingCharacter(lineNumber, column, character);\n }\n tokenizeLineWithEdit(position, length, newText) {\n return this.grammarTokens.tokenizeLineWithEdit(position, length, newText);\n }\n // #endregion\n // #region Semantic Tokens\n setSemanticTokens(tokens, isComplete) {\n this._semanticTokens.set(tokens, isComplete);\n this._emitModelTokensChangedEvent({\n semanticTokensApplied: tokens !== null,\n ranges: [{ fromLineNumber: 1, toLineNumber: this._textModel.getLineCount() }],\n });\n }\n hasCompleteSemanticTokens() {\n return this._semanticTokens.isComplete();\n }\n hasSomeSemanticTokens() {\n return !this._semanticTokens.isEmpty();\n }\n setPartialSemanticTokens(range, tokens) {\n if (this.hasCompleteSemanticTokens()) {\n return;\n }\n const changedRange = this._textModel.validateRange(this._semanticTokens.setPartial(range, tokens));\n this._emitModelTokensChangedEvent({\n semanticTokensApplied: true,\n ranges: [\n {\n fromLineNumber: changedRange.startLineNumber,\n toLineNumber: changedRange.endLineNumber,\n },\n ],\n });\n }\n // #endregion\n // #region Utility Methods\n getWordAtPosition(_position) {\n this.assertNotDisposed();\n const position = this._textModel.validatePosition(_position);\n const lineContent = this._textModel.getLineContent(position.lineNumber);\n const lineTokens = this.getLineTokens(position.lineNumber);\n const tokenIndex = lineTokens.findTokenIndexAtOffset(position.column - 1);\n // (1). First try checking right biased word\n const [rbStartOffset, rbEndOffset] = TokenizationTextModelPart._findLanguageBoundaries(lineTokens, tokenIndex);\n const rightBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex)).getWordDefinition(), lineContent.substring(rbStartOffset, rbEndOffset), rbStartOffset);\n // Make sure the result touches the original passed in position\n if (rightBiasedWord &&\n rightBiasedWord.startColumn <= _position.column &&\n _position.column <= rightBiasedWord.endColumn) {\n return rightBiasedWord;\n }\n // (2). Else, if we were at a language boundary, check the left biased word\n if (tokenIndex > 0 && rbStartOffset === position.column - 1) {\n // edge case, where `position` sits between two tokens belonging to two different languages\n const [lbStartOffset, lbEndOffset] = TokenizationTextModelPart._findLanguageBoundaries(lineTokens, tokenIndex - 1);\n const leftBiasedWord = getWordAtText(position.column, this.getLanguageConfiguration(lineTokens.getLanguageId(tokenIndex - 1)).getWordDefinition(), lineContent.substring(lbStartOffset, lbEndOffset), lbStartOffset);\n // Make sure the result touches the original passed in position\n if (leftBiasedWord &&\n leftBiasedWord.startColumn <= _position.column &&\n _position.column <= leftBiasedWord.endColumn) {\n return leftBiasedWord;\n }\n }\n return null;\n }\n getLanguageConfiguration(languageId) {\n return this._languageConfigurationService.getLanguageConfiguration(languageId);\n }\n static _findLanguageBoundaries(lineTokens, tokenIndex) {\n const languageId = lineTokens.getLanguageId(tokenIndex);\n // go left until a different language is hit\n let startOffset = 0;\n for (let i = tokenIndex; i >= 0 && lineTokens.getLanguageId(i) === languageId; i--) {\n startOffset = lineTokens.getStartOffset(i);\n }\n // go right until a different language is hit\n let endOffset = lineTokens.getLineContent().length;\n for (let i = tokenIndex, tokenCount = lineTokens.getCount(); i < tokenCount && lineTokens.getLanguageId(i) === languageId; i++) {\n endOffset = lineTokens.getEndOffset(i);\n }\n return [startOffset, endOffset];\n }\n getWordUntilPosition(position) {\n const wordAtPosition = this.getWordAtPosition(position);\n if (!wordAtPosition) {\n return { word: '', startColumn: position.column, endColumn: position.column, };\n }\n return {\n word: wordAtPosition.word.substr(0, position.column - wordAtPosition.startColumn),\n startColumn: wordAtPosition.startColumn,\n endColumn: position.column,\n };\n }\n // #endregion\n // #region Language Id handling\n getLanguageId() {\n return this._languageId;\n }\n getLanguageIdAtPosition(lineNumber, column) {\n const position = this._textModel.validatePosition(new Position(lineNumber, column));\n const lineTokens = this.getLineTokens(position.lineNumber);\n return lineTokens.getLanguageId(lineTokens.findTokenIndexAtOffset(position.column - 1));\n }\n setLanguageId(languageId, source = 'api') {\n if (this._languageId === languageId) {\n // There's nothing to do\n return;\n }\n const e = {\n oldLanguage: this._languageId,\n newLanguage: languageId,\n source\n };\n this._languageId = languageId;\n this._bracketPairsTextModelPart.handleDidChangeLanguage(e);\n this.grammarTokens.resetTokenization();\n this._onDidChangeLanguage.fire(e);\n this._onDidChangeLanguageConfiguration.fire({});\n }\n}\nclass GrammarTokens extends Disposable {\n get backgroundTokenizationState() {\n return this._backgroundTokenizationState;\n }\n constructor(_languageIdCodec, _textModel, getLanguageId, attachedViews) {\n super();\n this._languageIdCodec = _languageIdCodec;\n this._textModel = _textModel;\n this.getLanguageId = getLanguageId;\n this._tokenizer = null;\n this._defaultBackgroundTokenizer = null;\n this._backgroundTokenizer = this._register(new MutableDisposable());\n this._tokens = new ContiguousTokensStore(this._languageIdCodec);\n this._debugBackgroundTokenizer = this._register(new MutableDisposable());\n this._backgroundTokenizationState = 1 /* BackgroundTokenizationState.InProgress */;\n this._onDidChangeBackgroundTokenizationState = this._register(new Emitter());\n /** @internal, should not be exposed by the text model! */\n this.onDidChangeBackgroundTokenizationState = this._onDidChangeBackgroundTokenizationState.event;\n this._onDidChangeTokens = this._register(new Emitter());\n /** @internal, should not be exposed by the text model! */\n this.onDidChangeTokens = this._onDidChangeTokens.event;\n this._attachedViewStates = this._register(new DisposableMap());\n this._register(TokenizationRegistry.onDidChange((e) => {\n const languageId = this.getLanguageId();\n if (e.changedLanguages.indexOf(languageId) === -1) {\n return;\n }\n this.resetTokenization();\n }));\n this.resetTokenization();\n this._register(attachedViews.onDidChangeVisibleRanges(({ view, state }) => {\n if (state) {\n let existing = this._attachedViewStates.get(view);\n if (!existing) {\n existing = new AttachedViewHandler(() => this.refreshRanges(existing.lineRanges));\n this._attachedViewStates.set(view, existing);\n }\n existing.handleStateChange(state);\n }\n else {\n this._attachedViewStates.deleteAndDispose(view);\n }\n }));\n }\n resetTokenization(fireTokenChangeEvent = true) {\n var _a;\n this._tokens.flush();\n (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.flush();\n if (this._debugBackgroundStates) {\n this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n }\n if (fireTokenChangeEvent) {\n this._onDidChangeTokens.fire({\n semanticTokensApplied: false,\n ranges: [\n {\n fromLineNumber: 1,\n toLineNumber: this._textModel.getLineCount(),\n },\n ],\n });\n }\n const initializeTokenization = () => {\n if (this._textModel.isTooLargeForTokenization()) {\n return [null, null];\n }\n const tokenizationSupport = TokenizationRegistry.get(this.getLanguageId());\n if (!tokenizationSupport) {\n return [null, null];\n }\n let initialState;\n try {\n initialState = tokenizationSupport.getInitialState();\n }\n catch (e) {\n onUnexpectedError(e);\n return [null, null];\n }\n return [tokenizationSupport, initialState];\n };\n const [tokenizationSupport, initialState] = initializeTokenization();\n if (tokenizationSupport && initialState) {\n this._tokenizer = new TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(), tokenizationSupport, this._textModel, this._languageIdCodec);\n }\n else {\n this._tokenizer = null;\n }\n this._backgroundTokenizer.clear();\n this._defaultBackgroundTokenizer = null;\n if (this._tokenizer) {\n const b = {\n setTokens: (tokens) => {\n this.setTokens(tokens);\n },\n backgroundTokenizationFinished: () => {\n if (this._backgroundTokenizationState === 2 /* BackgroundTokenizationState.Completed */) {\n // We already did a full tokenization and don't go back to progressing.\n return;\n }\n const newState = 2 /* BackgroundTokenizationState.Completed */;\n this._backgroundTokenizationState = newState;\n this._onDidChangeBackgroundTokenizationState.fire();\n },\n setEndState: (lineNumber, state) => {\n var _a;\n if (!this._tokenizer) {\n return;\n }\n const firstInvalidEndStateLineNumber = this._tokenizer.store.getFirstInvalidEndStateLineNumber();\n // Don't accept states for definitely valid states, the renderer is ahead of the worker!\n if (firstInvalidEndStateLineNumber !== null && lineNumber >= firstInvalidEndStateLineNumber) {\n (_a = this._tokenizer) === null || _a === void 0 ? void 0 : _a.store.setEndState(lineNumber, state);\n }\n },\n };\n if (tokenizationSupport && tokenizationSupport.createBackgroundTokenizer && !tokenizationSupport.backgroundTokenizerShouldOnlyVerifyTokens) {\n this._backgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, b);\n }\n if (!this._backgroundTokenizer.value && !this._textModel.isTooLargeForTokenization()) {\n this._backgroundTokenizer.value = this._defaultBackgroundTokenizer =\n new DefaultBackgroundTokenizer(this._tokenizer, b);\n this._defaultBackgroundTokenizer.handleChanges();\n }\n if ((tokenizationSupport === null || tokenizationSupport === void 0 ? void 0 : tokenizationSupport.backgroundTokenizerShouldOnlyVerifyTokens) && tokenizationSupport.createBackgroundTokenizer) {\n this._debugBackgroundTokens = new ContiguousTokensStore(this._languageIdCodec);\n this._debugBackgroundStates = new TrackingTokenizationStateStore(this._textModel.getLineCount());\n this._debugBackgroundTokenizer.clear();\n this._debugBackgroundTokenizer.value = tokenizationSupport.createBackgroundTokenizer(this._textModel, {\n setTokens: (tokens) => {\n var _a;\n (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.setMultilineTokens(tokens, this._textModel);\n },\n backgroundTokenizationFinished() {\n // NO OP\n },\n setEndState: (lineNumber, state) => {\n var _a;\n (_a = this._debugBackgroundStates) === null || _a === void 0 ? void 0 : _a.setEndState(lineNumber, state);\n },\n });\n }\n else {\n this._debugBackgroundTokens = undefined;\n this._debugBackgroundStates = undefined;\n this._debugBackgroundTokenizer.value = undefined;\n }\n }\n this.refreshAllVisibleLineTokens();\n }\n handleDidChangeAttached() {\n var _a;\n (_a = this._defaultBackgroundTokenizer) === null || _a === void 0 ? void 0 : _a.handleChanges();\n }\n handleDidChangeContent(e) {\n var _a, _b, _c;\n if (e.isFlush) {\n // Don't fire the event, as the view might not have got the text change event yet\n this.resetTokenization(false);\n }\n else if (!e.isEolChange) { // We don't have to do anything on an EOL change\n for (const c of e.changes) {\n const [eolCount, firstLineLength] = countEOL(c.text);\n this._tokens.acceptEdit(c.range, eolCount, firstLineLength);\n (_a = this._debugBackgroundTokens) === null || _a === void 0 ? void 0 : _a.acceptEdit(c.range, eolCount, firstLineLength);\n }\n (_b = this._debugBackgroundStates) === null || _b === void 0 ? void 0 : _b.acceptChanges(e.changes);\n if (this._tokenizer) {\n this._tokenizer.store.acceptChanges(e.changes);\n }\n (_c = this._defaultBackgroundTokenizer) === null || _c === void 0 ? void 0 : _c.handleChanges();\n }\n }\n setTokens(tokens) {\n const { changes } = this._tokens.setMultilineTokens(tokens, this._textModel);\n if (changes.length > 0) {\n this._onDidChangeTokens.fire({ semanticTokensApplied: false, ranges: changes, });\n }\n return { changes: changes };\n }\n refreshAllVisibleLineTokens() {\n const ranges = LineRange.joinMany([...this._attachedViewStates].map(([_, s]) => s.lineRanges));\n this.refreshRanges(ranges);\n }\n refreshRanges(ranges) {\n for (const range of ranges) {\n this.refreshRange(range.startLineNumber, range.endLineNumberExclusive - 1);\n }\n }\n refreshRange(startLineNumber, endLineNumber) {\n var _a, _b;\n if (!this._tokenizer) {\n return;\n }\n startLineNumber = Math.max(1, Math.min(this._textModel.getLineCount(), startLineNumber));\n endLineNumber = Math.min(this._textModel.getLineCount(), endLineNumber);\n const builder = new ContiguousMultilineTokensBuilder();\n const { heuristicTokens } = this._tokenizer.tokenizeHeuristically(builder, startLineNumber, endLineNumber);\n const changedTokens = this.setTokens(builder.finalize());\n if (heuristicTokens) {\n // We overrode tokens with heuristically computed ones.\n // Because old states might get reused (thus stopping invalidation),\n // we have to explicitly request the tokens for the changed ranges again.\n for (const c of changedTokens.changes) {\n (_a = this._backgroundTokenizer.value) === null || _a === void 0 ? void 0 : _a.requestTokens(c.fromLineNumber, c.toLineNumber + 1);\n }\n }\n (_b = this._defaultBackgroundTokenizer) === null || _b === void 0 ? void 0 : _b.checkFinished();\n }\n forceTokenization(lineNumber) {\n var _a, _b;\n const builder = new ContiguousMultilineTokensBuilder();\n (_a = this._tokenizer) === null || _a === void 0 ? void 0 : _a.updateTokensUntilLine(builder, lineNumber);\n this.setTokens(builder.finalize());\n (_b = this._defaultBackgroundTokenizer) === null || _b === void 0 ? void 0 : _b.checkFinished();\n }\n hasAccurateTokensForLine(lineNumber) {\n if (!this._tokenizer) {\n return true;\n }\n return this._tokenizer.hasAccurateTokensForLine(lineNumber);\n }\n isCheapToTokenize(lineNumber) {\n if (!this._tokenizer) {\n return true;\n }\n return this._tokenizer.isCheapToTokenize(lineNumber);\n }\n tokenizeIfCheap(lineNumber) {\n if (this.isCheapToTokenize(lineNumber)) {\n this.forceTokenization(lineNumber);\n }\n }\n getLineTokens(lineNumber) {\n var _a;\n const lineText = this._textModel.getLineContent(lineNumber);\n const result = this._tokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n if (this._debugBackgroundTokens && this._debugBackgroundStates && this._tokenizer) {\n if (this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax() > lineNumber && this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax() > lineNumber) {\n const backgroundResult = this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(), lineNumber - 1, lineText);\n if (!result.equals(backgroundResult) && ((_a = this._debugBackgroundTokenizer.value) === null || _a === void 0 ? void 0 : _a.reportMismatchingTokens)) {\n this._debugBackgroundTokenizer.value.reportMismatchingTokens(lineNumber);\n }\n }\n }\n return result;\n }\n getTokenTypeIfInsertingCharacter(lineNumber, column, character) {\n if (!this._tokenizer) {\n return 0 /* StandardTokenType.Other */;\n }\n const position = this._textModel.validatePosition(new Position(lineNumber, column));\n this.forceTokenization(position.lineNumber);\n return this._tokenizer.getTokenTypeIfInsertingCharacter(position, character);\n }\n tokenizeLineWithEdit(position, length, newText) {\n if (!this._tokenizer) {\n return null;\n }\n const validatedPosition = this._textModel.validatePosition(position);\n this.forceTokenization(validatedPosition.lineNumber);\n return this._tokenizer.tokenizeLineWithEdit(validatedPosition, length, newText);\n }\n get hasTokens() {\n return this._tokens.hasTokens;\n }\n}\nclass AttachedViewHandler extends Disposable {\n get lineRanges() { return this._lineRanges; }\n constructor(_refreshTokens) {\n super();\n this._refreshTokens = _refreshTokens;\n this.runner = this._register(new RunOnceScheduler(() => this.update(), 50));\n this._computedLineRanges = [];\n this._lineRanges = [];\n }\n update() {\n if (equals(this._computedLineRanges, this._lineRanges, (a, b) => a.equals(b))) {\n return;\n }\n this._computedLineRanges = this._lineRanges;\n this._refreshTokens();\n }\n handleStateChange(state) {\n this._lineRanges = state.visibleLineRanges;\n if (state.stabilized) {\n this.runner.cancel();\n this.update();\n }\n else {\n this.runner.schedule();\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar TextModel_1;\nimport { ArrayQueue, pushMany } from '../../../base/common/arrays.js';\nimport { Color } from '../../../base/common/color.js';\nimport { BugIndicatingError, illegalArgument, onUnexpectedError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Disposable, MutableDisposable, combinedDisposable } from '../../../base/common/lifecycle.js';\nimport * as strings from '../../../base/common/strings.js';\nimport { URI } from '../../../base/common/uri.js';\nimport { countEOL } from '../core/eolCounter.js';\nimport { normalizeIndentation } from '../core/indentation.js';\nimport { LineRange } from '../core/lineRange.js';\nimport { Position } from '../core/position.js';\nimport { Range } from '../core/range.js';\nimport { Selection } from '../core/selection.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { ILanguageService } from '../languages/language.js';\nimport { ILanguageConfigurationService } from '../languages/languageConfigurationRegistry.js';\nimport * as model from '../model.js';\nimport { BracketPairsTextModelPart } from './bracketPairsTextModelPart/bracketPairsImpl.js';\nimport { ColorizedBracketPairsDecorationProvider } from './bracketPairsTextModelPart/colorizedBracketPairsDecorationProvider.js';\nimport { EditStack } from './editStack.js';\nimport { GuidesTextModelPart } from './guidesTextModelPart.js';\nimport { guessIndentation } from './indentationGuesser.js';\nimport { IntervalNode, IntervalTree, recomputeMaxEnd } from './intervalTree.js';\nimport { PieceTreeTextBuffer } from './pieceTreeTextBuffer/pieceTreeTextBuffer.js';\nimport { PieceTreeTextBufferBuilder } from './pieceTreeTextBuffer/pieceTreeTextBufferBuilder.js';\nimport { SearchParams, TextModelSearch } from './textModelSearch.js';\nimport { TokenizationTextModelPart } from './tokenizationTextModelPart.js';\nimport { InternalModelContentChangeEvent, LineInjectedText, ModelInjectedTextChangedEvent, ModelRawContentChangedEvent, ModelRawEOLChanged, ModelRawFlush, ModelRawLineChanged, ModelRawLinesDeleted, ModelRawLinesInserted } from '../textModelEvents.js';\nimport { IUndoRedoService } from '../../../platform/undoRedo/common/undoRedo.js';\nexport function createTextBufferFactory(text) {\n const builder = new PieceTreeTextBufferBuilder();\n builder.acceptChunk(text);\n return builder.finish();\n}\nexport function createTextBufferFactoryFromSnapshot(snapshot) {\n const builder = new PieceTreeTextBufferBuilder();\n let chunk;\n while (typeof (chunk = snapshot.read()) === 'string') {\n builder.acceptChunk(chunk);\n }\n return builder.finish();\n}\nexport function createTextBuffer(value, defaultEOL) {\n let factory;\n if (typeof value === 'string') {\n factory = createTextBufferFactory(value);\n }\n else if (model.isITextSnapshot(value)) {\n factory = createTextBufferFactoryFromSnapshot(value);\n }\n else {\n factory = value;\n }\n return factory.create(defaultEOL);\n}\nlet MODEL_ID = 0;\nconst LIMIT_FIND_COUNT = 999;\nconst LONG_LINE_BOUNDARY = 10000;\nclass TextModelSnapshot {\n constructor(source) {\n this._source = source;\n this._eos = false;\n }\n read() {\n if (this._eos) {\n return null;\n }\n const result = [];\n let resultCnt = 0;\n let resultLength = 0;\n do {\n const tmp = this._source.read();\n if (tmp === null) {\n // end-of-stream\n this._eos = true;\n if (resultCnt === 0) {\n return null;\n }\n else {\n return result.join('');\n }\n }\n if (tmp.length > 0) {\n result[resultCnt++] = tmp;\n resultLength += tmp.length;\n }\n if (resultLength >= 64 * 1024) {\n return result.join('');\n }\n } while (true);\n }\n}\nconst invalidFunc = () => { throw new Error(`Invalid change accessor`); };\nlet TextModel = TextModel_1 = class TextModel extends Disposable {\n static resolveOptions(textBuffer, options) {\n if (options.detectIndentation) {\n const guessedIndentation = guessIndentation(textBuffer, options.tabSize, options.insertSpaces);\n return new model.TextModelResolvedOptions({\n tabSize: guessedIndentation.tabSize,\n indentSize: 'tabSize', // TODO@Alex: guess indentSize independent of tabSize\n insertSpaces: guessedIndentation.insertSpaces,\n trimAutoWhitespace: options.trimAutoWhitespace,\n defaultEOL: options.defaultEOL,\n bracketPairColorizationOptions: options.bracketPairColorizationOptions,\n });\n }\n return new model.TextModelResolvedOptions(options);\n }\n get onDidChangeLanguage() { return this._tokenizationTextModelPart.onDidChangeLanguage; }\n get onDidChangeLanguageConfiguration() { return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration; }\n get onDidChangeTokens() { return this._tokenizationTextModelPart.onDidChangeTokens; }\n onDidChangeContent(listener) {\n return this._eventEmitter.slowEvent((e) => listener(e.contentChangedEvent));\n }\n onDidChangeContentOrInjectedText(listener) {\n return combinedDisposable(this._eventEmitter.fastEvent(e => listener(e)), this._onDidChangeInjectedText.event(e => listener(e)));\n }\n _isDisposing() { return this.__isDisposing; }\n get tokenization() { return this._tokenizationTextModelPart; }\n get bracketPairs() { return this._bracketPairs; }\n get guides() { return this._guidesTextModelPart; }\n constructor(source, languageIdOrSelection, creationOptions, associatedResource = null, _undoRedoService, _languageService, _languageConfigurationService) {\n super();\n this._undoRedoService = _undoRedoService;\n this._languageService = _languageService;\n this._languageConfigurationService = _languageConfigurationService;\n //#region Events\n this._onWillDispose = this._register(new Emitter());\n this.onWillDispose = this._onWillDispose.event;\n this._onDidChangeDecorations = this._register(new DidChangeDecorationsEmitter(affectedInjectedTextLines => this.handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines)));\n this.onDidChangeDecorations = this._onDidChangeDecorations.event;\n this._onDidChangeOptions = this._register(new Emitter());\n this.onDidChangeOptions = this._onDidChangeOptions.event;\n this._onDidChangeAttached = this._register(new Emitter());\n this.onDidChangeAttached = this._onDidChangeAttached.event;\n this._onDidChangeInjectedText = this._register(new Emitter());\n this._eventEmitter = this._register(new DidChangeContentEmitter());\n this._languageSelectionListener = this._register(new MutableDisposable());\n this._deltaDecorationCallCnt = 0;\n this._attachedViews = new AttachedViews();\n // Generate a new unique model id\n MODEL_ID++;\n this.id = '$model' + MODEL_ID;\n this.isForSimpleWidget = creationOptions.isForSimpleWidget;\n if (typeof associatedResource === 'undefined' || associatedResource === null) {\n this._associatedResource = URI.parse('inmemory://model/' + MODEL_ID);\n }\n else {\n this._associatedResource = associatedResource;\n }\n this._attachedEditorCount = 0;\n const { textBuffer, disposable } = createTextBuffer(source, creationOptions.defaultEOL);\n this._buffer = textBuffer;\n this._bufferDisposable = disposable;\n this._options = TextModel_1.resolveOptions(this._buffer, creationOptions);\n const languageId = (typeof languageIdOrSelection === 'string' ? languageIdOrSelection : languageIdOrSelection.languageId);\n if (typeof languageIdOrSelection !== 'string') {\n this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() => this._setLanguage(languageIdOrSelection.languageId));\n }\n this._bracketPairs = this._register(new BracketPairsTextModelPart(this, this._languageConfigurationService));\n this._guidesTextModelPart = this._register(new GuidesTextModelPart(this, this._languageConfigurationService));\n this._decorationProvider = this._register(new ColorizedBracketPairsDecorationProvider(this));\n this._tokenizationTextModelPart = new TokenizationTextModelPart(this._languageService, this._languageConfigurationService, this, this._bracketPairs, languageId, this._attachedViews);\n const bufferLineCount = this._buffer.getLineCount();\n const bufferTextLength = this._buffer.getValueLengthInRange(new Range(1, 1, bufferLineCount, this._buffer.getLineLength(bufferLineCount) + 1), 0 /* model.EndOfLinePreference.TextDefined */);\n // !!! Make a decision in the ctor and permanently respect this decision !!!\n // If a model is too large at construction time, it will never get tokenized,\n // under no circumstances.\n if (creationOptions.largeFileOptimizations) {\n this._isTooLargeForTokenization = ((bufferTextLength > TextModel_1.LARGE_FILE_SIZE_THRESHOLD)\n || (bufferLineCount > TextModel_1.LARGE_FILE_LINE_COUNT_THRESHOLD));\n this._isTooLargeForHeapOperation = bufferTextLength > TextModel_1.LARGE_FILE_HEAP_OPERATION_THRESHOLD;\n }\n else {\n this._isTooLargeForTokenization = false;\n this._isTooLargeForHeapOperation = false;\n }\n this._isTooLargeForSyncing = (bufferTextLength > TextModel_1._MODEL_SYNC_LIMIT);\n this._versionId = 1;\n this._alternativeVersionId = 1;\n this._initialUndoRedoSnapshot = null;\n this._isDisposed = false;\n this.__isDisposing = false;\n this._instanceId = strings.singleLetterHash(MODEL_ID);\n this._lastDecorationId = 0;\n this._decorations = Object.create(null);\n this._decorationsTree = new DecorationsTrees();\n this._commandManager = new EditStack(this, this._undoRedoService);\n this._isUndoing = false;\n this._isRedoing = false;\n this._trimAutoWhitespaceLines = null;\n this._register(this._decorationProvider.onDidChange(() => {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._onDidChangeDecorations.fire();\n this._onDidChangeDecorations.endDeferredEmit();\n }));\n this._languageService.requestRichLanguageFeatures(languageId);\n }\n dispose() {\n this.__isDisposing = true;\n this._onWillDispose.fire();\n this._tokenizationTextModelPart.dispose();\n this._isDisposed = true;\n super.dispose();\n this._bufferDisposable.dispose();\n this.__isDisposing = false;\n // Manually release reference to previous text buffer to avoid large leaks\n // in case someone leaks a TextModel reference\n const emptyDisposedTextBuffer = new PieceTreeTextBuffer([], '', '\\n', false, false, true, true);\n emptyDisposedTextBuffer.dispose();\n this._buffer = emptyDisposedTextBuffer;\n this._bufferDisposable = Disposable.None;\n }\n _assertNotDisposed() {\n if (this._isDisposed) {\n throw new Error('Model is disposed!');\n }\n }\n _emitContentChangedEvent(rawChange, change) {\n if (this.__isDisposing) {\n // Do not confuse listeners by emitting any event after disposing\n return;\n }\n this._tokenizationTextModelPart.handleDidChangeContent(change);\n this._bracketPairs.handleDidChangeContent(change);\n this._eventEmitter.fire(new InternalModelContentChangeEvent(rawChange, change));\n }\n setValue(value) {\n this._assertNotDisposed();\n if (value === null || value === undefined) {\n throw illegalArgument();\n }\n const { textBuffer, disposable } = createTextBuffer(value, this._options.defaultEOL);\n this._setValueFromTextBuffer(textBuffer, disposable);\n }\n _createContentChanged2(range, rangeOffset, rangeLength, text, isUndoing, isRedoing, isFlush, isEolChange) {\n return {\n changes: [{\n range: range,\n rangeOffset: rangeOffset,\n rangeLength: rangeLength,\n text: text,\n }],\n eol: this._buffer.getEOL(),\n isEolChange: isEolChange,\n versionId: this.getVersionId(),\n isUndoing: isUndoing,\n isRedoing: isRedoing,\n isFlush: isFlush\n };\n }\n _setValueFromTextBuffer(textBuffer, textBufferDisposable) {\n this._assertNotDisposed();\n const oldFullModelRange = this.getFullModelRange();\n const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n const endLineNumber = this.getLineCount();\n const endColumn = this.getLineMaxColumn(endLineNumber);\n this._buffer = textBuffer;\n this._bufferDisposable.dispose();\n this._bufferDisposable = textBufferDisposable;\n this._increaseVersionId();\n // Destroy all my decorations\n this._decorations = Object.create(null);\n this._decorationsTree = new DecorationsTrees();\n // Destroy my edit history and settings\n this._commandManager.clear();\n this._trimAutoWhitespaceLines = null;\n this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n new ModelRawFlush()\n ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, true, false));\n }\n setEOL(eol) {\n this._assertNotDisposed();\n const newEOL = (eol === 1 /* model.EndOfLineSequence.CRLF */ ? '\\r\\n' : '\\n');\n if (this._buffer.getEOL() === newEOL) {\n // Nothing to do\n return;\n }\n const oldFullModelRange = this.getFullModelRange();\n const oldModelValueLength = this.getValueLengthInRange(oldFullModelRange);\n const endLineNumber = this.getLineCount();\n const endColumn = this.getLineMaxColumn(endLineNumber);\n this._onBeforeEOLChange();\n this._buffer.setEOL(newEOL);\n this._increaseVersionId();\n this._onAfterEOLChange();\n this._emitContentChangedEvent(new ModelRawContentChangedEvent([\n new ModelRawEOLChanged()\n ], this._versionId, false, false), this._createContentChanged2(new Range(1, 1, endLineNumber, endColumn), 0, oldModelValueLength, this.getValue(), false, false, false, true));\n }\n _onBeforeEOLChange() {\n // Ensure all decorations get their `range` set.\n this._decorationsTree.ensureAllNodesHaveRanges(this);\n }\n _onAfterEOLChange() {\n // Transform back `range` to offsets\n const versionId = this.getVersionId();\n const allDecorations = this._decorationsTree.collectNodesPostOrder();\n for (let i = 0, len = allDecorations.length; i < len; i++) {\n const node = allDecorations[i];\n const range = node.range; // the range is defined due to `_onBeforeEOLChange`\n const delta = node.cachedAbsoluteStart - node.start;\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n node.cachedAbsoluteStart = startOffset;\n node.cachedAbsoluteEnd = endOffset;\n node.cachedVersionId = versionId;\n node.start = startOffset - delta;\n node.end = endOffset - delta;\n recomputeMaxEnd(node);\n }\n }\n onBeforeAttached() {\n this._attachedEditorCount++;\n if (this._attachedEditorCount === 1) {\n this._tokenizationTextModelPart.handleDidChangeAttached();\n this._onDidChangeAttached.fire(undefined);\n }\n return this._attachedViews.attachView();\n }\n onBeforeDetached(view) {\n this._attachedEditorCount--;\n if (this._attachedEditorCount === 0) {\n this._tokenizationTextModelPart.handleDidChangeAttached();\n this._onDidChangeAttached.fire(undefined);\n }\n this._attachedViews.detachView(view);\n }\n isAttachedToEditor() {\n return this._attachedEditorCount > 0;\n }\n getAttachedEditorCount() {\n return this._attachedEditorCount;\n }\n isTooLargeForSyncing() {\n return this._isTooLargeForSyncing;\n }\n isTooLargeForTokenization() {\n return this._isTooLargeForTokenization;\n }\n isTooLargeForHeapOperation() {\n return this._isTooLargeForHeapOperation;\n }\n isDisposed() {\n return this._isDisposed;\n }\n isDominatedByLongLines() {\n this._assertNotDisposed();\n if (this.isTooLargeForTokenization()) {\n // Cannot word wrap huge files anyways, so it doesn't really matter\n return false;\n }\n let smallLineCharCount = 0;\n let longLineCharCount = 0;\n const lineCount = this._buffer.getLineCount();\n for (let lineNumber = 1; lineNumber <= lineCount; lineNumber++) {\n const lineLength = this._buffer.getLineLength(lineNumber);\n if (lineLength >= LONG_LINE_BOUNDARY) {\n longLineCharCount += lineLength;\n }\n else {\n smallLineCharCount += lineLength;\n }\n }\n return (longLineCharCount > smallLineCharCount);\n }\n get uri() {\n return this._associatedResource;\n }\n //#region Options\n getOptions() {\n this._assertNotDisposed();\n return this._options;\n }\n getFormattingOptions() {\n return {\n tabSize: this._options.indentSize,\n insertSpaces: this._options.insertSpaces\n };\n }\n updateOptions(_newOpts) {\n this._assertNotDisposed();\n const tabSize = (typeof _newOpts.tabSize !== 'undefined') ? _newOpts.tabSize : this._options.tabSize;\n const indentSize = (typeof _newOpts.indentSize !== 'undefined') ? _newOpts.indentSize : this._options.originalIndentSize;\n const insertSpaces = (typeof _newOpts.insertSpaces !== 'undefined') ? _newOpts.insertSpaces : this._options.insertSpaces;\n const trimAutoWhitespace = (typeof _newOpts.trimAutoWhitespace !== 'undefined') ? _newOpts.trimAutoWhitespace : this._options.trimAutoWhitespace;\n const bracketPairColorizationOptions = (typeof _newOpts.bracketColorizationOptions !== 'undefined') ? _newOpts.bracketColorizationOptions : this._options.bracketPairColorizationOptions;\n const newOpts = new model.TextModelResolvedOptions({\n tabSize: tabSize,\n indentSize: indentSize,\n insertSpaces: insertSpaces,\n defaultEOL: this._options.defaultEOL,\n trimAutoWhitespace: trimAutoWhitespace,\n bracketPairColorizationOptions,\n });\n if (this._options.equals(newOpts)) {\n return;\n }\n const e = this._options.createChangeEvent(newOpts);\n this._options = newOpts;\n this._bracketPairs.handleDidChangeOptions(e);\n this._decorationProvider.handleDidChangeOptions(e);\n this._onDidChangeOptions.fire(e);\n }\n detectIndentation(defaultInsertSpaces, defaultTabSize) {\n this._assertNotDisposed();\n const guessedIndentation = guessIndentation(this._buffer, defaultTabSize, defaultInsertSpaces);\n this.updateOptions({\n insertSpaces: guessedIndentation.insertSpaces,\n tabSize: guessedIndentation.tabSize,\n indentSize: guessedIndentation.tabSize, // TODO@Alex: guess indentSize independent of tabSize\n });\n }\n normalizeIndentation(str) {\n this._assertNotDisposed();\n return normalizeIndentation(str, this._options.indentSize, this._options.insertSpaces);\n }\n //#endregion\n //#region Reading\n getVersionId() {\n this._assertNotDisposed();\n return this._versionId;\n }\n mightContainRTL() {\n return this._buffer.mightContainRTL();\n }\n mightContainUnusualLineTerminators() {\n return this._buffer.mightContainUnusualLineTerminators();\n }\n removeUnusualLineTerminators(selections = null) {\n const matches = this.findMatches(strings.UNUSUAL_LINE_TERMINATORS.source, false, true, false, null, false, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */);\n this._buffer.resetMightContainUnusualLineTerminators();\n this.pushEditOperations(selections, matches.map(m => ({ range: m.range, text: null })), () => null);\n }\n mightContainNonBasicASCII() {\n return this._buffer.mightContainNonBasicASCII();\n }\n getAlternativeVersionId() {\n this._assertNotDisposed();\n return this._alternativeVersionId;\n }\n getInitialUndoRedoSnapshot() {\n this._assertNotDisposed();\n return this._initialUndoRedoSnapshot;\n }\n getOffsetAt(rawPosition) {\n this._assertNotDisposed();\n const position = this._validatePosition(rawPosition.lineNumber, rawPosition.column, 0 /* StringOffsetValidationType.Relaxed */);\n return this._buffer.getOffsetAt(position.lineNumber, position.column);\n }\n getPositionAt(rawOffset) {\n this._assertNotDisposed();\n const offset = (Math.min(this._buffer.getLength(), Math.max(0, rawOffset)));\n return this._buffer.getPositionAt(offset);\n }\n _increaseVersionId() {\n this._versionId = this._versionId + 1;\n this._alternativeVersionId = this._versionId;\n }\n _overwriteVersionId(versionId) {\n this._versionId = versionId;\n }\n _overwriteAlternativeVersionId(newAlternativeVersionId) {\n this._alternativeVersionId = newAlternativeVersionId;\n }\n _overwriteInitialUndoRedoSnapshot(newInitialUndoRedoSnapshot) {\n this._initialUndoRedoSnapshot = newInitialUndoRedoSnapshot;\n }\n getValue(eol, preserveBOM = false) {\n this._assertNotDisposed();\n if (this.isTooLargeForHeapOperation()) {\n throw new BugIndicatingError('Operation would exceed heap memory limits');\n }\n const fullModelRange = this.getFullModelRange();\n const fullModelValue = this.getValueInRange(fullModelRange, eol);\n if (preserveBOM) {\n return this._buffer.getBOM() + fullModelValue;\n }\n return fullModelValue;\n }\n createSnapshot(preserveBOM = false) {\n return new TextModelSnapshot(this._buffer.createSnapshot(preserveBOM));\n }\n getValueLength(eol, preserveBOM = false) {\n this._assertNotDisposed();\n const fullModelRange = this.getFullModelRange();\n const fullModelValue = this.getValueLengthInRange(fullModelRange, eol);\n if (preserveBOM) {\n return this._buffer.getBOM().length + fullModelValue;\n }\n return fullModelValue;\n }\n getValueInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getValueInRange(this.validateRange(rawRange), eol);\n }\n getValueLengthInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getValueLengthInRange(this.validateRange(rawRange), eol);\n }\n getCharacterCountInRange(rawRange, eol = 0 /* model.EndOfLinePreference.TextDefined */) {\n this._assertNotDisposed();\n return this._buffer.getCharacterCountInRange(this.validateRange(rawRange), eol);\n }\n getLineCount() {\n this._assertNotDisposed();\n return this._buffer.getLineCount();\n }\n getLineContent(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n return this._buffer.getLineContent(lineNumber);\n }\n getLineLength(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n return this._buffer.getLineLength(lineNumber);\n }\n getLinesContent() {\n this._assertNotDisposed();\n if (this.isTooLargeForHeapOperation()) {\n throw new BugIndicatingError('Operation would exceed heap memory limits');\n }\n return this._buffer.getLinesContent();\n }\n getEOL() {\n this._assertNotDisposed();\n return this._buffer.getEOL();\n }\n getEndOfLineSequence() {\n this._assertNotDisposed();\n return (this._buffer.getEOL() === '\\n'\n ? 0 /* model.EndOfLineSequence.LF */\n : 1 /* model.EndOfLineSequence.CRLF */);\n }\n getLineMinColumn(lineNumber) {\n this._assertNotDisposed();\n return 1;\n }\n getLineMaxColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n return this._buffer.getLineLength(lineNumber) + 1;\n }\n getLineFirstNonWhitespaceColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n return this._buffer.getLineFirstNonWhitespaceColumn(lineNumber);\n }\n getLineLastNonWhitespaceColumn(lineNumber) {\n this._assertNotDisposed();\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n throw new BugIndicatingError('Illegal value for lineNumber');\n }\n return this._buffer.getLineLastNonWhitespaceColumn(lineNumber);\n }\n /**\n * Validates `range` is within buffer bounds, but allows it to sit in between surrogate pairs, etc.\n * Will try to not allocate if possible.\n */\n _validateRangeRelaxedNoAllocations(range) {\n const linesCount = this._buffer.getLineCount();\n const initialStartLineNumber = range.startLineNumber;\n const initialStartColumn = range.startColumn;\n let startLineNumber = Math.floor((typeof initialStartLineNumber === 'number' && !isNaN(initialStartLineNumber)) ? initialStartLineNumber : 1);\n let startColumn = Math.floor((typeof initialStartColumn === 'number' && !isNaN(initialStartColumn)) ? initialStartColumn : 1);\n if (startLineNumber < 1) {\n startLineNumber = 1;\n startColumn = 1;\n }\n else if (startLineNumber > linesCount) {\n startLineNumber = linesCount;\n startColumn = this.getLineMaxColumn(startLineNumber);\n }\n else {\n if (startColumn <= 1) {\n startColumn = 1;\n }\n else {\n const maxColumn = this.getLineMaxColumn(startLineNumber);\n if (startColumn >= maxColumn) {\n startColumn = maxColumn;\n }\n }\n }\n const initialEndLineNumber = range.endLineNumber;\n const initialEndColumn = range.endColumn;\n let endLineNumber = Math.floor((typeof initialEndLineNumber === 'number' && !isNaN(initialEndLineNumber)) ? initialEndLineNumber : 1);\n let endColumn = Math.floor((typeof initialEndColumn === 'number' && !isNaN(initialEndColumn)) ? initialEndColumn : 1);\n if (endLineNumber < 1) {\n endLineNumber = 1;\n endColumn = 1;\n }\n else if (endLineNumber > linesCount) {\n endLineNumber = linesCount;\n endColumn = this.getLineMaxColumn(endLineNumber);\n }\n else {\n if (endColumn <= 1) {\n endColumn = 1;\n }\n else {\n const maxColumn = this.getLineMaxColumn(endLineNumber);\n if (endColumn >= maxColumn) {\n endColumn = maxColumn;\n }\n }\n }\n if (initialStartLineNumber === startLineNumber\n && initialStartColumn === startColumn\n && initialEndLineNumber === endLineNumber\n && initialEndColumn === endColumn\n && range instanceof Range\n && !(range instanceof Selection)) {\n return range;\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n _isValidPosition(lineNumber, column, validationType) {\n if (typeof lineNumber !== 'number' || typeof column !== 'number') {\n return false;\n }\n if (isNaN(lineNumber) || isNaN(column)) {\n return false;\n }\n if (lineNumber < 1 || column < 1) {\n return false;\n }\n if ((lineNumber | 0) !== lineNumber || (column | 0) !== column) {\n return false;\n }\n const lineCount = this._buffer.getLineCount();\n if (lineNumber > lineCount) {\n return false;\n }\n if (column === 1) {\n return true;\n }\n const maxColumn = this.getLineMaxColumn(lineNumber);\n if (column > maxColumn) {\n return false;\n }\n if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n // !!At this point, column > 1\n const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n return false;\n }\n }\n return true;\n }\n _validatePosition(_lineNumber, _column, validationType) {\n const lineNumber = Math.floor((typeof _lineNumber === 'number' && !isNaN(_lineNumber)) ? _lineNumber : 1);\n const column = Math.floor((typeof _column === 'number' && !isNaN(_column)) ? _column : 1);\n const lineCount = this._buffer.getLineCount();\n if (lineNumber < 1) {\n return new Position(1, 1);\n }\n if (lineNumber > lineCount) {\n return new Position(lineCount, this.getLineMaxColumn(lineCount));\n }\n if (column <= 1) {\n return new Position(lineNumber, 1);\n }\n const maxColumn = this.getLineMaxColumn(lineNumber);\n if (column >= maxColumn) {\n return new Position(lineNumber, maxColumn);\n }\n if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n // If the position would end up in the middle of a high-low surrogate pair,\n // we move it to before the pair\n // !!At this point, column > 1\n const charCodeBefore = this._buffer.getLineCharCode(lineNumber, column - 2);\n if (strings.isHighSurrogate(charCodeBefore)) {\n return new Position(lineNumber, column - 1);\n }\n }\n return new Position(lineNumber, column);\n }\n validatePosition(position) {\n const validationType = 1 /* StringOffsetValidationType.SurrogatePairs */;\n this._assertNotDisposed();\n // Avoid object allocation and cover most likely case\n if (position instanceof Position) {\n if (this._isValidPosition(position.lineNumber, position.column, validationType)) {\n return position;\n }\n }\n return this._validatePosition(position.lineNumber, position.column, validationType);\n }\n _isValidRange(range, validationType) {\n const startLineNumber = range.startLineNumber;\n const startColumn = range.startColumn;\n const endLineNumber = range.endLineNumber;\n const endColumn = range.endColumn;\n if (!this._isValidPosition(startLineNumber, startColumn, 0 /* StringOffsetValidationType.Relaxed */)) {\n return false;\n }\n if (!this._isValidPosition(endLineNumber, endColumn, 0 /* StringOffsetValidationType.Relaxed */)) {\n return false;\n }\n if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n return true;\n }\n return false;\n }\n return true;\n }\n validateRange(_range) {\n const validationType = 1 /* StringOffsetValidationType.SurrogatePairs */;\n this._assertNotDisposed();\n // Avoid object allocation and cover most likely case\n if ((_range instanceof Range) && !(_range instanceof Selection)) {\n if (this._isValidRange(_range, validationType)) {\n return _range;\n }\n }\n const start = this._validatePosition(_range.startLineNumber, _range.startColumn, 0 /* StringOffsetValidationType.Relaxed */);\n const end = this._validatePosition(_range.endLineNumber, _range.endColumn, 0 /* StringOffsetValidationType.Relaxed */);\n const startLineNumber = start.lineNumber;\n const startColumn = start.column;\n const endLineNumber = end.lineNumber;\n const endColumn = end.column;\n if (validationType === 1 /* StringOffsetValidationType.SurrogatePairs */) {\n const charCodeBeforeStart = (startColumn > 1 ? this._buffer.getLineCharCode(startLineNumber, startColumn - 2) : 0);\n const charCodeBeforeEnd = (endColumn > 1 && endColumn <= this._buffer.getLineLength(endLineNumber) ? this._buffer.getLineCharCode(endLineNumber, endColumn - 2) : 0);\n const startInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeStart);\n const endInsideSurrogatePair = strings.isHighSurrogate(charCodeBeforeEnd);\n if (!startInsideSurrogatePair && !endInsideSurrogatePair) {\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n if (startLineNumber === endLineNumber && startColumn === endColumn) {\n // do not expand a collapsed range, simply move it to a valid location\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn - 1);\n }\n if (startInsideSurrogatePair && endInsideSurrogatePair) {\n // expand range at both ends\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn + 1);\n }\n if (startInsideSurrogatePair) {\n // only expand range at the start\n return new Range(startLineNumber, startColumn - 1, endLineNumber, endColumn);\n }\n // only expand range at the end\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn + 1);\n }\n return new Range(startLineNumber, startColumn, endLineNumber, endColumn);\n }\n modifyPosition(rawPosition, offset) {\n this._assertNotDisposed();\n const candidate = this.getOffsetAt(rawPosition) + offset;\n return this.getPositionAt(Math.min(this._buffer.getLength(), Math.max(0, candidate)));\n }\n getFullModelRange() {\n this._assertNotDisposed();\n const lineCount = this.getLineCount();\n return new Range(1, 1, lineCount, this.getLineMaxColumn(lineCount));\n }\n findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount) {\n return this._buffer.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n findMatches(searchString, rawSearchScope, isRegex, matchCase, wordSeparators, captureMatches, limitResultCount = LIMIT_FIND_COUNT) {\n this._assertNotDisposed();\n let searchRanges = null;\n if (rawSearchScope !== null) {\n if (!Array.isArray(rawSearchScope)) {\n rawSearchScope = [rawSearchScope];\n }\n if (rawSearchScope.every((searchScope) => Range.isIRange(searchScope))) {\n searchRanges = rawSearchScope.map((searchScope) => this.validateRange(searchScope));\n }\n }\n if (searchRanges === null) {\n searchRanges = [this.getFullModelRange()];\n }\n searchRanges = searchRanges.sort((d1, d2) => d1.startLineNumber - d2.startLineNumber || d1.startColumn - d2.startColumn);\n const uniqueSearchRanges = [];\n uniqueSearchRanges.push(searchRanges.reduce((prev, curr) => {\n if (Range.areIntersecting(prev, curr)) {\n return prev.plusRange(curr);\n }\n uniqueSearchRanges.push(prev);\n return curr;\n }));\n let matchMapper;\n if (!isRegex && searchString.indexOf('\\n') < 0) {\n // not regex, not multi line\n const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return [];\n }\n matchMapper = (searchRange) => this.findMatchesLineByLine(searchRange, searchData, captureMatches, limitResultCount);\n }\n else {\n matchMapper = (searchRange) => TextModelSearch.findMatches(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchRange, captureMatches, limitResultCount);\n }\n return uniqueSearchRanges.map(matchMapper).reduce((arr, matches) => arr.concat(matches), []);\n }\n findNextMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n this._assertNotDisposed();\n const searchStart = this.validatePosition(rawSearchStart);\n if (!isRegex && searchString.indexOf('\\n') < 0) {\n const searchParams = new SearchParams(searchString, isRegex, matchCase, wordSeparators);\n const searchData = searchParams.parseSearchRequest();\n if (!searchData) {\n return null;\n }\n const lineCount = this.getLineCount();\n let searchRange = new Range(searchStart.lineNumber, searchStart.column, lineCount, this.getLineMaxColumn(lineCount));\n let ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n if (ret.length > 0) {\n return ret[0];\n }\n searchRange = new Range(1, 1, searchStart.lineNumber, this.getLineMaxColumn(searchStart.lineNumber));\n ret = this.findMatchesLineByLine(searchRange, searchData, captureMatches, 1);\n if (ret.length > 0) {\n return ret[0];\n }\n return null;\n }\n return TextModelSearch.findNextMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n }\n findPreviousMatch(searchString, rawSearchStart, isRegex, matchCase, wordSeparators, captureMatches) {\n this._assertNotDisposed();\n const searchStart = this.validatePosition(rawSearchStart);\n return TextModelSearch.findPreviousMatch(this, new SearchParams(searchString, isRegex, matchCase, wordSeparators), searchStart, captureMatches);\n }\n //#endregion\n //#region Editing\n pushStackElement() {\n this._commandManager.pushStackElement();\n }\n popStackElement() {\n this._commandManager.popStackElement();\n }\n pushEOL(eol) {\n const currentEOL = (this.getEOL() === '\\n' ? 0 /* model.EndOfLineSequence.LF */ : 1 /* model.EndOfLineSequence.CRLF */);\n if (currentEOL === eol) {\n return;\n }\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n if (this._initialUndoRedoSnapshot === null) {\n this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n }\n this._commandManager.pushEOL(eol);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _validateEditOperation(rawOperation) {\n if (rawOperation instanceof model.ValidAnnotatedEditOperation) {\n return rawOperation;\n }\n return new model.ValidAnnotatedEditOperation(rawOperation.identifier || null, this.validateRange(rawOperation.range), rawOperation.text, rawOperation.forceMoveMarkers || false, rawOperation.isAutoWhitespaceEdit || false, rawOperation._isTracked || false);\n }\n _validateEditOperations(rawOperations) {\n const result = [];\n for (let i = 0, len = rawOperations.length; i < len; i++) {\n result[i] = this._validateEditOperation(rawOperations[i]);\n }\n return result;\n }\n pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n return this._pushEditOperations(beforeCursorState, this._validateEditOperations(editOperations), cursorStateComputer, group);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _pushEditOperations(beforeCursorState, editOperations, cursorStateComputer, group) {\n if (this._options.trimAutoWhitespace && this._trimAutoWhitespaceLines) {\n // Go through each saved line number and insert a trim whitespace edit\n // if it is safe to do so (no conflicts with other edits).\n const incomingEdits = editOperations.map((op) => {\n return {\n range: this.validateRange(op.range),\n text: op.text\n };\n });\n // Sometimes, auto-formatters change ranges automatically which can cause undesired auto whitespace trimming near the cursor\n // We'll use the following heuristic: if the edits occur near the cursor, then it's ok to trim auto whitespace\n let editsAreNearCursors = true;\n if (beforeCursorState) {\n for (let i = 0, len = beforeCursorState.length; i < len; i++) {\n const sel = beforeCursorState[i];\n let foundEditNearSel = false;\n for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n const editRange = incomingEdits[j].range;\n const selIsAbove = editRange.startLineNumber > sel.endLineNumber;\n const selIsBelow = sel.startLineNumber > editRange.endLineNumber;\n if (!selIsAbove && !selIsBelow) {\n foundEditNearSel = true;\n break;\n }\n }\n if (!foundEditNearSel) {\n editsAreNearCursors = false;\n break;\n }\n }\n }\n if (editsAreNearCursors) {\n for (let i = 0, len = this._trimAutoWhitespaceLines.length; i < len; i++) {\n const trimLineNumber = this._trimAutoWhitespaceLines[i];\n const maxLineColumn = this.getLineMaxColumn(trimLineNumber);\n let allowTrimLine = true;\n for (let j = 0, lenJ = incomingEdits.length; j < lenJ; j++) {\n const editRange = incomingEdits[j].range;\n const editText = incomingEdits[j].text;\n if (trimLineNumber < editRange.startLineNumber || trimLineNumber > editRange.endLineNumber) {\n // `trimLine` is completely outside this edit\n continue;\n }\n // At this point:\n // editRange.startLineNumber <= trimLine <= editRange.endLineNumber\n if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === maxLineColumn\n && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(0) === '\\n') {\n // This edit inserts a new line (and maybe other text) after `trimLine`\n continue;\n }\n if (trimLineNumber === editRange.startLineNumber && editRange.startColumn === 1\n && editRange.isEmpty() && editText && editText.length > 0 && editText.charAt(editText.length - 1) === '\\n') {\n // This edit inserts a new line (and maybe other text) before `trimLine`\n continue;\n }\n // Looks like we can't trim this line as it would interfere with an incoming edit\n allowTrimLine = false;\n break;\n }\n if (allowTrimLine) {\n const trimRange = new Range(trimLineNumber, 1, trimLineNumber, maxLineColumn);\n editOperations.push(new model.ValidAnnotatedEditOperation(null, trimRange, null, false, false, false));\n }\n }\n }\n this._trimAutoWhitespaceLines = null;\n }\n if (this._initialUndoRedoSnapshot === null) {\n this._initialUndoRedoSnapshot = this._undoRedoService.createSnapshot(this.uri);\n }\n return this._commandManager.pushEditOperation(beforeCursorState, editOperations, cursorStateComputer, group);\n }\n _applyUndo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n const edits = changes.map((change) => {\n const rangeStart = this.getPositionAt(change.newPosition);\n const rangeEnd = this.getPositionAt(change.newEnd);\n return {\n range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n text: change.oldText\n };\n });\n this._applyUndoRedoEdits(edits, eol, true, false, resultingAlternativeVersionId, resultingSelection);\n }\n _applyRedo(changes, eol, resultingAlternativeVersionId, resultingSelection) {\n const edits = changes.map((change) => {\n const rangeStart = this.getPositionAt(change.oldPosition);\n const rangeEnd = this.getPositionAt(change.oldEnd);\n return {\n range: new Range(rangeStart.lineNumber, rangeStart.column, rangeEnd.lineNumber, rangeEnd.column),\n text: change.newText\n };\n });\n this._applyUndoRedoEdits(edits, eol, false, true, resultingAlternativeVersionId, resultingSelection);\n }\n _applyUndoRedoEdits(edits, eol, isUndoing, isRedoing, resultingAlternativeVersionId, resultingSelection) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n this._isUndoing = isUndoing;\n this._isRedoing = isRedoing;\n this.applyEdits(edits, false);\n this.setEOL(eol);\n this._overwriteAlternativeVersionId(resultingAlternativeVersionId);\n }\n finally {\n this._isUndoing = false;\n this._isRedoing = false;\n this._eventEmitter.endDeferredEmit(resultingSelection);\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n applyEdits(rawOperations, computeUndoEdits = false) {\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n this._eventEmitter.beginDeferredEmit();\n const operations = this._validateEditOperations(rawOperations);\n return this._doApplyEdits(operations, computeUndoEdits);\n }\n finally {\n this._eventEmitter.endDeferredEmit();\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _doApplyEdits(rawOperations, computeUndoEdits) {\n const oldLineCount = this._buffer.getLineCount();\n const result = this._buffer.applyEdits(rawOperations, this._options.trimAutoWhitespace, computeUndoEdits);\n const newLineCount = this._buffer.getLineCount();\n const contentChanges = result.changes;\n this._trimAutoWhitespaceLines = result.trimAutoWhitespaceLineNumbers;\n if (contentChanges.length !== 0) {\n // We do a first pass to update decorations\n // because we want to read decorations in the second pass\n // where we will emit content change events\n // and we want to read the final decorations\n for (let i = 0, len = contentChanges.length; i < len; i++) {\n const change = contentChanges[i];\n this._decorationsTree.acceptReplace(change.rangeOffset, change.rangeLength, change.text.length, change.forceMoveMarkers);\n }\n const rawContentChanges = [];\n this._increaseVersionId();\n let lineCount = oldLineCount;\n for (let i = 0, len = contentChanges.length; i < len; i++) {\n const change = contentChanges[i];\n const [eolCount] = countEOL(change.text);\n this._onDidChangeDecorations.fire();\n const startLineNumber = change.range.startLineNumber;\n const endLineNumber = change.range.endLineNumber;\n const deletingLinesCnt = endLineNumber - startLineNumber;\n const insertingLinesCnt = eolCount;\n const editingLinesCnt = Math.min(deletingLinesCnt, insertingLinesCnt);\n const changeLineCountDelta = (insertingLinesCnt - deletingLinesCnt);\n const currentEditStartLineNumber = newLineCount - lineCount - changeLineCountDelta + startLineNumber;\n const firstEditLineNumber = currentEditStartLineNumber;\n const lastInsertedLineNumber = currentEditStartLineNumber + insertingLinesCnt;\n const decorationsWithInjectedTextInEditedRange = this._decorationsTree.getInjectedTextInInterval(this, this.getOffsetAt(new Position(firstEditLineNumber, 1)), this.getOffsetAt(new Position(lastInsertedLineNumber, this.getLineMaxColumn(lastInsertedLineNumber))), 0);\n const injectedTextInEditedRange = LineInjectedText.fromDecorations(decorationsWithInjectedTextInEditedRange);\n const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n for (let j = editingLinesCnt; j >= 0; j--) {\n const editLineNumber = startLineNumber + j;\n const currentEditLineNumber = currentEditStartLineNumber + j;\n injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber > currentEditLineNumber);\n const decorationsInCurrentLine = injectedTextInEditedRangeQueue.takeFromEndWhile(r => r.lineNumber === currentEditLineNumber);\n rawContentChanges.push(new ModelRawLineChanged(editLineNumber, this.getLineContent(currentEditLineNumber), decorationsInCurrentLine));\n }\n if (editingLinesCnt < deletingLinesCnt) {\n // Must delete some lines\n const spliceStartLineNumber = startLineNumber + editingLinesCnt;\n rawContentChanges.push(new ModelRawLinesDeleted(spliceStartLineNumber + 1, endLineNumber));\n }\n if (editingLinesCnt < insertingLinesCnt) {\n const injectedTextInEditedRangeQueue = new ArrayQueue(injectedTextInEditedRange);\n // Must insert some lines\n const spliceLineNumber = startLineNumber + editingLinesCnt;\n const cnt = insertingLinesCnt - editingLinesCnt;\n const fromLineNumber = newLineCount - lineCount - cnt + spliceLineNumber + 1;\n const injectedTexts = [];\n const newLines = [];\n for (let i = 0; i < cnt; i++) {\n const lineNumber = fromLineNumber + i;\n newLines[i] = this.getLineContent(lineNumber);\n injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber < lineNumber);\n injectedTexts[i] = injectedTextInEditedRangeQueue.takeWhile(r => r.lineNumber === lineNumber);\n }\n rawContentChanges.push(new ModelRawLinesInserted(spliceLineNumber + 1, startLineNumber + insertingLinesCnt, newLines, injectedTexts));\n }\n lineCount += changeLineCountDelta;\n }\n this._emitContentChangedEvent(new ModelRawContentChangedEvent(rawContentChanges, this.getVersionId(), this._isUndoing, this._isRedoing), {\n changes: contentChanges,\n eol: this._buffer.getEOL(),\n isEolChange: false,\n versionId: this.getVersionId(),\n isUndoing: this._isUndoing,\n isRedoing: this._isRedoing,\n isFlush: false\n });\n }\n return (result.reverseEdits === null ? undefined : result.reverseEdits);\n }\n undo() {\n return this._undoRedoService.undo(this.uri);\n }\n canUndo() {\n return this._undoRedoService.canUndo(this.uri);\n }\n redo() {\n return this._undoRedoService.redo(this.uri);\n }\n canRedo() {\n return this._undoRedoService.canRedo(this.uri);\n }\n //#endregion\n //#region Decorations\n handleBeforeFireDecorationsChangedEvent(affectedInjectedTextLines) {\n // This is called before the decoration changed event is fired.\n if (affectedInjectedTextLines === null || affectedInjectedTextLines.size === 0) {\n return;\n }\n const affectedLines = Array.from(affectedInjectedTextLines);\n const lineChangeEvents = affectedLines.map(lineNumber => new ModelRawLineChanged(lineNumber, this.getLineContent(lineNumber), this._getInjectedTextInLine(lineNumber)));\n this._onDidChangeInjectedText.fire(new ModelInjectedTextChangedEvent(lineChangeEvents));\n }\n changeDecorations(callback, ownerId = 0) {\n this._assertNotDisposed();\n try {\n this._onDidChangeDecorations.beginDeferredEmit();\n return this._changeDecorations(ownerId, callback);\n }\n finally {\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n _changeDecorations(ownerId, callback) {\n const changeAccessor = {\n addDecoration: (range, options) => {\n return this._deltaDecorationsImpl(ownerId, [], [{ range: range, options: options }])[0];\n },\n changeDecoration: (id, newRange) => {\n this._changeDecorationImpl(id, newRange);\n },\n changeDecorationOptions: (id, options) => {\n this._changeDecorationOptionsImpl(id, _normalizeOptions(options));\n },\n removeDecoration: (id) => {\n this._deltaDecorationsImpl(ownerId, [id], []);\n },\n deltaDecorations: (oldDecorations, newDecorations) => {\n if (oldDecorations.length === 0 && newDecorations.length === 0) {\n // nothing to do\n return [];\n }\n return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n }\n };\n let result = null;\n try {\n result = callback(changeAccessor);\n }\n catch (e) {\n onUnexpectedError(e);\n }\n // Invalidate change accessor\n changeAccessor.addDecoration = invalidFunc;\n changeAccessor.changeDecoration = invalidFunc;\n changeAccessor.changeDecorationOptions = invalidFunc;\n changeAccessor.removeDecoration = invalidFunc;\n changeAccessor.deltaDecorations = invalidFunc;\n return result;\n }\n deltaDecorations(oldDecorations, newDecorations, ownerId = 0) {\n this._assertNotDisposed();\n if (!oldDecorations) {\n oldDecorations = [];\n }\n if (oldDecorations.length === 0 && newDecorations.length === 0) {\n // nothing to do\n return [];\n }\n try {\n this._deltaDecorationCallCnt++;\n if (this._deltaDecorationCallCnt > 1) {\n console.warn(`Invoking deltaDecorations recursively could lead to leaking decorations.`);\n onUnexpectedError(new Error(`Invoking deltaDecorations recursively could lead to leaking decorations.`));\n }\n this._onDidChangeDecorations.beginDeferredEmit();\n return this._deltaDecorationsImpl(ownerId, oldDecorations, newDecorations);\n }\n finally {\n this._onDidChangeDecorations.endDeferredEmit();\n this._deltaDecorationCallCnt--;\n }\n }\n _getTrackedRange(id) {\n return this.getDecorationRange(id);\n }\n _setTrackedRange(id, newRange, newStickiness) {\n const node = (id ? this._decorations[id] : null);\n if (!node) {\n if (!newRange) {\n // node doesn't exist, the request is to delete => nothing to do\n return null;\n }\n // node doesn't exist, the request is to set => add the tracked range\n return this._deltaDecorationsImpl(0, [], [{ range: newRange, options: TRACKED_RANGE_OPTIONS[newStickiness] }], true)[0];\n }\n if (!newRange) {\n // node exists, the request is to delete => delete node\n this._decorationsTree.delete(node);\n delete this._decorations[node.id];\n return null;\n }\n // node exists, the request is to set => change the tracked range and its options\n const range = this._validateRangeRelaxedNoAllocations(newRange);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n this._decorationsTree.delete(node);\n node.reset(this.getVersionId(), startOffset, endOffset, range);\n node.setOptions(TRACKED_RANGE_OPTIONS[newStickiness]);\n this._decorationsTree.insert(node);\n return node.id;\n }\n removeAllDecorationsWithOwnerId(ownerId) {\n if (this._isDisposed) {\n return;\n }\n const nodes = this._decorationsTree.collectNodesFromOwner(ownerId);\n for (let i = 0, len = nodes.length; i < len; i++) {\n const node = nodes[i];\n this._decorationsTree.delete(node);\n delete this._decorations[node.id];\n }\n }\n getDecorationOptions(decorationId) {\n const node = this._decorations[decorationId];\n if (!node) {\n return null;\n }\n return node.options;\n }\n getDecorationRange(decorationId) {\n const node = this._decorations[decorationId];\n if (!node) {\n return null;\n }\n return this._decorationsTree.getNodeRange(this, node);\n }\n getLineDecorations(lineNumber, ownerId = 0, filterOutValidation = false) {\n if (lineNumber < 1 || lineNumber > this.getLineCount()) {\n return [];\n }\n return this.getLinesDecorations(lineNumber, lineNumber, ownerId, filterOutValidation);\n }\n getLinesDecorations(_startLineNumber, _endLineNumber, ownerId = 0, filterOutValidation = false, onlyMarginDecorations = false) {\n const lineCount = this.getLineCount();\n const startLineNumber = Math.min(lineCount, Math.max(1, _startLineNumber));\n const endLineNumber = Math.min(lineCount, Math.max(1, _endLineNumber));\n const endColumn = this.getLineMaxColumn(endLineNumber);\n const range = new Range(startLineNumber, 1, endLineNumber, endColumn);\n const decorations = this._getDecorationsInRange(range, ownerId, filterOutValidation, onlyMarginDecorations);\n pushMany(decorations, this._decorationProvider.getDecorationsInRange(range, ownerId, filterOutValidation));\n return decorations;\n }\n getDecorationsInRange(range, ownerId = 0, filterOutValidation = false, onlyMinimapDecorations = false, onlyMarginDecorations = false) {\n const validatedRange = this.validateRange(range);\n const decorations = this._getDecorationsInRange(validatedRange, ownerId, filterOutValidation, onlyMarginDecorations);\n pushMany(decorations, this._decorationProvider.getDecorationsInRange(validatedRange, ownerId, filterOutValidation, onlyMinimapDecorations));\n return decorations;\n }\n getOverviewRulerDecorations(ownerId = 0, filterOutValidation = false) {\n return this._decorationsTree.getAll(this, ownerId, filterOutValidation, true, false);\n }\n getInjectedTextDecorations(ownerId = 0) {\n return this._decorationsTree.getAllInjectedText(this, ownerId);\n }\n _getInjectedTextInLine(lineNumber) {\n const startOffset = this._buffer.getOffsetAt(lineNumber, 1);\n const endOffset = startOffset + this._buffer.getLineLength(lineNumber);\n const result = this._decorationsTree.getInjectedTextInInterval(this, startOffset, endOffset, 0);\n return LineInjectedText.fromDecorations(result).filter(t => t.lineNumber === lineNumber);\n }\n getAllDecorations(ownerId = 0, filterOutValidation = false) {\n let result = this._decorationsTree.getAll(this, ownerId, filterOutValidation, false, false);\n result = result.concat(this._decorationProvider.getAllDecorations(ownerId, filterOutValidation));\n return result;\n }\n getAllMarginDecorations(ownerId = 0) {\n return this._decorationsTree.getAll(this, ownerId, false, false, true);\n }\n _getDecorationsInRange(filterRange, filterOwnerId, filterOutValidation, onlyMarginDecorations) {\n const startOffset = this._buffer.getOffsetAt(filterRange.startLineNumber, filterRange.startColumn);\n const endOffset = this._buffer.getOffsetAt(filterRange.endLineNumber, filterRange.endColumn);\n return this._decorationsTree.getAllInInterval(this, startOffset, endOffset, filterOwnerId, filterOutValidation, onlyMarginDecorations);\n }\n getRangeAt(start, end) {\n return this._buffer.getRangeAt(start, end - start);\n }\n _changeDecorationImpl(decorationId, _range) {\n const node = this._decorations[decorationId];\n if (!node) {\n return;\n }\n if (node.options.after) {\n const oldRange = this.getDecorationRange(decorationId);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.endLineNumber);\n }\n if (node.options.before) {\n const oldRange = this.getDecorationRange(decorationId);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(oldRange.startLineNumber);\n }\n const range = this._validateRangeRelaxedNoAllocations(_range);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n this._decorationsTree.delete(node);\n node.reset(this.getVersionId(), startOffset, endOffset, range);\n this._decorationsTree.insert(node);\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n if (node.options.after) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n }\n if (node.options.before) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n }\n }\n _changeDecorationOptionsImpl(decorationId, options) {\n const node = this._decorations[decorationId];\n if (!node) {\n return;\n }\n const nodeWasInOverviewRuler = (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n const nodeIsInOverviewRuler = (options.overviewRuler && options.overviewRuler.color ? true : false);\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n this._onDidChangeDecorations.checkAffectedAndFire(options);\n if (node.options.after || options.after) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n }\n if (node.options.before || options.before) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n }\n const movedInOverviewRuler = nodeWasInOverviewRuler !== nodeIsInOverviewRuler;\n const changedWhetherInjectedText = isOptionsInjectedText(options) !== isNodeInjectedText(node);\n if (movedInOverviewRuler || changedWhetherInjectedText) {\n this._decorationsTree.delete(node);\n node.setOptions(options);\n this._decorationsTree.insert(node);\n }\n else {\n node.setOptions(options);\n }\n }\n _deltaDecorationsImpl(ownerId, oldDecorationsIds, newDecorations, suppressEvents = false) {\n const versionId = this.getVersionId();\n const oldDecorationsLen = oldDecorationsIds.length;\n let oldDecorationIndex = 0;\n const newDecorationsLen = newDecorations.length;\n let newDecorationIndex = 0;\n this._onDidChangeDecorations.beginDeferredEmit();\n try {\n const result = new Array(newDecorationsLen);\n while (oldDecorationIndex < oldDecorationsLen || newDecorationIndex < newDecorationsLen) {\n let node = null;\n if (oldDecorationIndex < oldDecorationsLen) {\n // (1) get ourselves an old node\n do {\n node = this._decorations[oldDecorationsIds[oldDecorationIndex++]];\n } while (!node && oldDecorationIndex < oldDecorationsLen);\n // (2) remove the node from the tree (if it exists)\n if (node) {\n if (node.options.after) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.endLineNumber);\n }\n if (node.options.before) {\n const nodeRange = this._decorationsTree.getNodeRange(this, node);\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(nodeRange.startLineNumber);\n }\n this._decorationsTree.delete(node);\n if (!suppressEvents) {\n this._onDidChangeDecorations.checkAffectedAndFire(node.options);\n }\n }\n }\n if (newDecorationIndex < newDecorationsLen) {\n // (3) create a new node if necessary\n if (!node) {\n const internalDecorationId = (++this._lastDecorationId);\n const decorationId = `${this._instanceId};${internalDecorationId}`;\n node = new IntervalNode(decorationId, 0, 0);\n this._decorations[decorationId] = node;\n }\n // (4) initialize node\n const newDecoration = newDecorations[newDecorationIndex];\n const range = this._validateRangeRelaxedNoAllocations(newDecoration.range);\n const options = _normalizeOptions(newDecoration.options);\n const startOffset = this._buffer.getOffsetAt(range.startLineNumber, range.startColumn);\n const endOffset = this._buffer.getOffsetAt(range.endLineNumber, range.endColumn);\n node.ownerId = ownerId;\n node.reset(versionId, startOffset, endOffset, range);\n node.setOptions(options);\n if (node.options.after) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.endLineNumber);\n }\n if (node.options.before) {\n this._onDidChangeDecorations.recordLineAffectedByInjectedText(range.startLineNumber);\n }\n if (!suppressEvents) {\n this._onDidChangeDecorations.checkAffectedAndFire(options);\n }\n this._decorationsTree.insert(node);\n result[newDecorationIndex] = node.id;\n newDecorationIndex++;\n }\n else {\n if (node) {\n delete this._decorations[node.id];\n }\n }\n }\n return result;\n }\n finally {\n this._onDidChangeDecorations.endDeferredEmit();\n }\n }\n //#endregion\n //#region Tokenization\n // TODO move them to the tokenization part.\n getLanguageId() {\n return this.tokenization.getLanguageId();\n }\n setLanguage(languageIdOrSelection, source) {\n if (typeof languageIdOrSelection === 'string') {\n this._languageSelectionListener.clear();\n this._setLanguage(languageIdOrSelection, source);\n }\n else {\n this._languageSelectionListener.value = languageIdOrSelection.onDidChange(() => this._setLanguage(languageIdOrSelection.languageId, source));\n this._setLanguage(languageIdOrSelection.languageId, source);\n }\n }\n _setLanguage(languageId, source) {\n this.tokenization.setLanguageId(languageId, source);\n this._languageService.requestRichLanguageFeatures(languageId);\n }\n getLanguageIdAtPosition(lineNumber, column) {\n return this.tokenization.getLanguageIdAtPosition(lineNumber, column);\n }\n getWordAtPosition(position) {\n return this._tokenizationTextModelPart.getWordAtPosition(position);\n }\n getWordUntilPosition(position) {\n return this._tokenizationTextModelPart.getWordUntilPosition(position);\n }\n //#endregion\n normalizePosition(position, affinity) {\n return position;\n }\n /**\n * Gets the column at which indentation stops at a given line.\n * @internal\n */\n getLineIndentColumn(lineNumber) {\n // Columns start with 1.\n return indentOfLine(this.getLineContent(lineNumber)) + 1;\n }\n};\nTextModel._MODEL_SYNC_LIMIT = 50 * 1024 * 1024; // 50 MB, // used in tests\nTextModel.LARGE_FILE_SIZE_THRESHOLD = 20 * 1024 * 1024; // 20 MB;\nTextModel.LARGE_FILE_LINE_COUNT_THRESHOLD = 300 * 1000; // 300K lines\nTextModel.LARGE_FILE_HEAP_OPERATION_THRESHOLD = 256 * 1024 * 1024; // 256M characters, usually ~> 512MB memory usage\nTextModel.DEFAULT_CREATION_OPTIONS = {\n isForSimpleWidget: false,\n tabSize: EDITOR_MODEL_DEFAULTS.tabSize,\n indentSize: EDITOR_MODEL_DEFAULTS.indentSize,\n insertSpaces: EDITOR_MODEL_DEFAULTS.insertSpaces,\n detectIndentation: false,\n defaultEOL: 1 /* model.DefaultEndOfLine.LF */,\n trimAutoWhitespace: EDITOR_MODEL_DEFAULTS.trimAutoWhitespace,\n largeFileOptimizations: EDITOR_MODEL_DEFAULTS.largeFileOptimizations,\n bracketPairColorizationOptions: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions,\n};\nTextModel = TextModel_1 = __decorate([\n __param(4, IUndoRedoService),\n __param(5, ILanguageService),\n __param(6, ILanguageConfigurationService)\n], TextModel);\nexport { TextModel };\nfunction indentOfLine(line) {\n let indent = 0;\n for (const c of line) {\n if (c === ' ' || c === '\\t') {\n indent++;\n }\n else {\n break;\n }\n }\n return indent;\n}\n//#region Decorations\nfunction isNodeInOverviewRuler(node) {\n return (node.options.overviewRuler && node.options.overviewRuler.color ? true : false);\n}\nfunction isOptionsInjectedText(options) {\n return !!options.after || !!options.before;\n}\nfunction isNodeInjectedText(node) {\n return !!node.options.after || !!node.options.before;\n}\nclass DecorationsTrees {\n constructor() {\n this._decorationsTree0 = new IntervalTree();\n this._decorationsTree1 = new IntervalTree();\n this._injectedTextDecorationsTree = new IntervalTree();\n }\n ensureAllNodesHaveRanges(host) {\n this.getAll(host, 0, false, false, false);\n }\n _ensureNodesHaveRanges(host, nodes) {\n for (const node of nodes) {\n if (node.range === null) {\n node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n }\n }\n return nodes;\n }\n getAllInInterval(host, start, end, filterOwnerId, filterOutValidation, onlyMarginDecorations) {\n const versionId = host.getVersionId();\n const result = this._intervalSearch(start, end, filterOwnerId, filterOutValidation, versionId, onlyMarginDecorations);\n return this._ensureNodesHaveRanges(host, result);\n }\n _intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations) {\n const r0 = this._decorationsTree0.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n const r1 = this._decorationsTree1.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n const r2 = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n return r0.concat(r1).concat(r2);\n }\n getInjectedTextInInterval(host, start, end, filterOwnerId) {\n const versionId = host.getVersionId();\n const result = this._injectedTextDecorationsTree.intervalSearch(start, end, filterOwnerId, false, versionId, false);\n return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n }\n getAllInjectedText(host, filterOwnerId) {\n const versionId = host.getVersionId();\n const result = this._injectedTextDecorationsTree.search(filterOwnerId, false, versionId, false);\n return this._ensureNodesHaveRanges(host, result).filter((i) => i.options.showIfCollapsed || !i.range.isEmpty());\n }\n getAll(host, filterOwnerId, filterOutValidation, overviewRulerOnly, onlyMarginDecorations) {\n const versionId = host.getVersionId();\n const result = this._search(filterOwnerId, filterOutValidation, overviewRulerOnly, versionId, onlyMarginDecorations);\n return this._ensureNodesHaveRanges(host, result);\n }\n _search(filterOwnerId, filterOutValidation, overviewRulerOnly, cachedVersionId, onlyMarginDecorations) {\n if (overviewRulerOnly) {\n return this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n }\n else {\n const r0 = this._decorationsTree0.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n const r1 = this._decorationsTree1.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n const r2 = this._injectedTextDecorationsTree.search(filterOwnerId, filterOutValidation, cachedVersionId, onlyMarginDecorations);\n return r0.concat(r1).concat(r2);\n }\n }\n collectNodesFromOwner(ownerId) {\n const r0 = this._decorationsTree0.collectNodesFromOwner(ownerId);\n const r1 = this._decorationsTree1.collectNodesFromOwner(ownerId);\n const r2 = this._injectedTextDecorationsTree.collectNodesFromOwner(ownerId);\n return r0.concat(r1).concat(r2);\n }\n collectNodesPostOrder() {\n const r0 = this._decorationsTree0.collectNodesPostOrder();\n const r1 = this._decorationsTree1.collectNodesPostOrder();\n const r2 = this._injectedTextDecorationsTree.collectNodesPostOrder();\n return r0.concat(r1).concat(r2);\n }\n insert(node) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.insert(node);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.insert(node);\n }\n else {\n this._decorationsTree0.insert(node);\n }\n }\n delete(node) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.delete(node);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.delete(node);\n }\n else {\n this._decorationsTree0.delete(node);\n }\n }\n getNodeRange(host, node) {\n const versionId = host.getVersionId();\n if (node.cachedVersionId !== versionId) {\n this._resolveNode(node, versionId);\n }\n if (node.range === null) {\n node.range = host.getRangeAt(node.cachedAbsoluteStart, node.cachedAbsoluteEnd);\n }\n return node.range;\n }\n _resolveNode(node, cachedVersionId) {\n if (isNodeInjectedText(node)) {\n this._injectedTextDecorationsTree.resolveNode(node, cachedVersionId);\n }\n else if (isNodeInOverviewRuler(node)) {\n this._decorationsTree1.resolveNode(node, cachedVersionId);\n }\n else {\n this._decorationsTree0.resolveNode(node, cachedVersionId);\n }\n }\n acceptReplace(offset, length, textLength, forceMoveMarkers) {\n this._decorationsTree0.acceptReplace(offset, length, textLength, forceMoveMarkers);\n this._decorationsTree1.acceptReplace(offset, length, textLength, forceMoveMarkers);\n this._injectedTextDecorationsTree.acceptReplace(offset, length, textLength, forceMoveMarkers);\n }\n}\nfunction cleanClassName(className) {\n return className.replace(/[^a-z0-9\\-_]/gi, ' ');\n}\nclass DecorationOptions {\n constructor(options) {\n this.color = options.color || '';\n this.darkColor = options.darkColor || '';\n }\n}\nexport class ModelDecorationOverviewRulerOptions extends DecorationOptions {\n constructor(options) {\n super(options);\n this._resolvedColor = null;\n this.position = (typeof options.position === 'number' ? options.position : model.OverviewRulerLane.Center);\n }\n getColor(theme) {\n if (!this._resolvedColor) {\n if (theme.type !== 'light' && this.darkColor) {\n this._resolvedColor = this._resolveColor(this.darkColor, theme);\n }\n else {\n this._resolvedColor = this._resolveColor(this.color, theme);\n }\n }\n return this._resolvedColor;\n }\n invalidateCachedColor() {\n this._resolvedColor = null;\n }\n _resolveColor(color, theme) {\n if (typeof color === 'string') {\n return color;\n }\n const c = color ? theme.getColor(color.id) : null;\n if (!c) {\n return '';\n }\n return c.toString();\n }\n}\nexport class ModelDecorationGlyphMarginOptions {\n constructor(options) {\n var _a;\n this.position = (_a = options === null || options === void 0 ? void 0 : options.position) !== null && _a !== void 0 ? _a : model.GlyphMarginLane.Center;\n this.persistLane = options === null || options === void 0 ? void 0 : options.persistLane;\n }\n}\nexport class ModelDecorationMinimapOptions extends DecorationOptions {\n constructor(options) {\n var _a, _b;\n super(options);\n this.position = options.position;\n this.sectionHeaderStyle = (_a = options.sectionHeaderStyle) !== null && _a !== void 0 ? _a : null;\n this.sectionHeaderText = (_b = options.sectionHeaderText) !== null && _b !== void 0 ? _b : null;\n }\n getColor(theme) {\n if (!this._resolvedColor) {\n if (theme.type !== 'light' && this.darkColor) {\n this._resolvedColor = this._resolveColor(this.darkColor, theme);\n }\n else {\n this._resolvedColor = this._resolveColor(this.color, theme);\n }\n }\n return this._resolvedColor;\n }\n invalidateCachedColor() {\n this._resolvedColor = undefined;\n }\n _resolveColor(color, theme) {\n if (typeof color === 'string') {\n return Color.fromHex(color);\n }\n return theme.getColor(color.id);\n }\n}\nexport class ModelDecorationInjectedTextOptions {\n static from(options) {\n if (options instanceof ModelDecorationInjectedTextOptions) {\n return options;\n }\n return new ModelDecorationInjectedTextOptions(options);\n }\n constructor(options) {\n this.content = options.content || '';\n this.inlineClassName = options.inlineClassName || null;\n this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n this.attachedData = options.attachedData || null;\n this.cursorStops = options.cursorStops || null;\n }\n}\nexport class ModelDecorationOptions {\n static register(options) {\n return new ModelDecorationOptions(options);\n }\n static createDynamic(options) {\n return new ModelDecorationOptions(options);\n }\n constructor(options) {\n var _a, _b, _c, _d, _e, _f;\n this.description = options.description;\n this.blockClassName = options.blockClassName ? cleanClassName(options.blockClassName) : null;\n this.blockDoesNotCollapse = (_a = options.blockDoesNotCollapse) !== null && _a !== void 0 ? _a : null;\n this.blockIsAfterEnd = (_b = options.blockIsAfterEnd) !== null && _b !== void 0 ? _b : null;\n this.blockPadding = (_c = options.blockPadding) !== null && _c !== void 0 ? _c : null;\n this.stickiness = options.stickiness || 0 /* model.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */;\n this.zIndex = options.zIndex || 0;\n this.className = options.className ? cleanClassName(options.className) : null;\n this.shouldFillLineOnLineBreak = (_d = options.shouldFillLineOnLineBreak) !== null && _d !== void 0 ? _d : null;\n this.hoverMessage = options.hoverMessage || null;\n this.glyphMarginHoverMessage = options.glyphMarginHoverMessage || null;\n this.lineNumberHoverMessage = options.lineNumberHoverMessage || null;\n this.isWholeLine = options.isWholeLine || false;\n this.showIfCollapsed = options.showIfCollapsed || false;\n this.collapseOnReplaceEdit = options.collapseOnReplaceEdit || false;\n this.overviewRuler = options.overviewRuler ? new ModelDecorationOverviewRulerOptions(options.overviewRuler) : null;\n this.minimap = options.minimap ? new ModelDecorationMinimapOptions(options.minimap) : null;\n this.glyphMargin = options.glyphMarginClassName ? new ModelDecorationGlyphMarginOptions(options.glyphMargin) : null;\n this.glyphMarginClassName = options.glyphMarginClassName ? cleanClassName(options.glyphMarginClassName) : null;\n this.linesDecorationsClassName = options.linesDecorationsClassName ? cleanClassName(options.linesDecorationsClassName) : null;\n this.lineNumberClassName = options.lineNumberClassName ? cleanClassName(options.lineNumberClassName) : null;\n this.linesDecorationsTooltip = options.linesDecorationsTooltip ? strings.htmlAttributeEncodeValue(options.linesDecorationsTooltip) : null;\n this.firstLineDecorationClassName = options.firstLineDecorationClassName ? cleanClassName(options.firstLineDecorationClassName) : null;\n this.marginClassName = options.marginClassName ? cleanClassName(options.marginClassName) : null;\n this.inlineClassName = options.inlineClassName ? cleanClassName(options.inlineClassName) : null;\n this.inlineClassNameAffectsLetterSpacing = options.inlineClassNameAffectsLetterSpacing || false;\n this.beforeContentClassName = options.beforeContentClassName ? cleanClassName(options.beforeContentClassName) : null;\n this.afterContentClassName = options.afterContentClassName ? cleanClassName(options.afterContentClassName) : null;\n this.after = options.after ? ModelDecorationInjectedTextOptions.from(options.after) : null;\n this.before = options.before ? ModelDecorationInjectedTextOptions.from(options.before) : null;\n this.hideInCommentTokens = (_e = options.hideInCommentTokens) !== null && _e !== void 0 ? _e : false;\n this.hideInStringTokens = (_f = options.hideInStringTokens) !== null && _f !== void 0 ? _f : false;\n }\n}\nModelDecorationOptions.EMPTY = ModelDecorationOptions.register({ description: 'empty' });\n/**\n * The order carefully matches the values of the enum.\n */\nconst TRACKED_RANGE_OPTIONS = [\n ModelDecorationOptions.register({ description: 'tracked-range-always-grows-when-typing-at-edges', stickiness: 0 /* model.TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-never-grows-when-typing-at-edges', stickiness: 1 /* model.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-before', stickiness: 2 /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingBefore */ }),\n ModelDecorationOptions.register({ description: 'tracked-range-grows-only-when-typing-after', stickiness: 3 /* model.TrackedRangeStickiness.GrowsOnlyWhenTypingAfter */ }),\n];\nfunction _normalizeOptions(options) {\n if (options instanceof ModelDecorationOptions) {\n return options;\n }\n return ModelDecorationOptions.createDynamic(options);\n}\nclass DidChangeDecorationsEmitter extends Disposable {\n constructor(handleBeforeFire) {\n super();\n this.handleBeforeFire = handleBeforeFire;\n this._actual = this._register(new Emitter());\n this.event = this._actual.event;\n this._affectedInjectedTextLines = null;\n this._deferredCnt = 0;\n this._shouldFireDeferred = false;\n this._affectsMinimap = false;\n this._affectsOverviewRuler = false;\n this._affectsGlyphMargin = false;\n this._affectsLineNumber = false;\n }\n beginDeferredEmit() {\n this._deferredCnt++;\n }\n endDeferredEmit() {\n var _a;\n this._deferredCnt--;\n if (this._deferredCnt === 0) {\n if (this._shouldFireDeferred) {\n this.doFire();\n }\n (_a = this._affectedInjectedTextLines) === null || _a === void 0 ? void 0 : _a.clear();\n this._affectedInjectedTextLines = null;\n }\n }\n recordLineAffectedByInjectedText(lineNumber) {\n if (!this._affectedInjectedTextLines) {\n this._affectedInjectedTextLines = new Set();\n }\n this._affectedInjectedTextLines.add(lineNumber);\n }\n checkAffectedAndFire(options) {\n var _a, _b;\n this._affectsMinimap || (this._affectsMinimap = !!((_a = options.minimap) === null || _a === void 0 ? void 0 : _a.position));\n this._affectsOverviewRuler || (this._affectsOverviewRuler = !!((_b = options.overviewRuler) === null || _b === void 0 ? void 0 : _b.color));\n this._affectsGlyphMargin || (this._affectsGlyphMargin = !!options.glyphMarginClassName);\n this._affectsLineNumber || (this._affectsLineNumber = !!options.lineNumberClassName);\n this.tryFire();\n }\n fire() {\n this._affectsMinimap = true;\n this._affectsOverviewRuler = true;\n this._affectsGlyphMargin = true;\n this.tryFire();\n }\n tryFire() {\n if (this._deferredCnt === 0) {\n this.doFire();\n }\n else {\n this._shouldFireDeferred = true;\n }\n }\n doFire() {\n this.handleBeforeFire(this._affectedInjectedTextLines);\n const event = {\n affectsMinimap: this._affectsMinimap,\n affectsOverviewRuler: this._affectsOverviewRuler,\n affectsGlyphMargin: this._affectsGlyphMargin,\n affectsLineNumber: this._affectsLineNumber,\n };\n this._shouldFireDeferred = false;\n this._affectsMinimap = false;\n this._affectsOverviewRuler = false;\n this._affectsGlyphMargin = false;\n this._actual.fire(event);\n }\n}\n//#endregion\nclass DidChangeContentEmitter extends Disposable {\n constructor() {\n super();\n /**\n * Both `fastEvent` and `slowEvent` work the same way and contain the same events, but first we invoke `fastEvent` and then `slowEvent`.\n */\n this._fastEmitter = this._register(new Emitter());\n this.fastEvent = this._fastEmitter.event;\n this._slowEmitter = this._register(new Emitter());\n this.slowEvent = this._slowEmitter.event;\n this._deferredCnt = 0;\n this._deferredEvent = null;\n }\n beginDeferredEmit() {\n this._deferredCnt++;\n }\n endDeferredEmit(resultingSelection = null) {\n this._deferredCnt--;\n if (this._deferredCnt === 0) {\n if (this._deferredEvent !== null) {\n this._deferredEvent.rawContentChangedEvent.resultingSelection = resultingSelection;\n const e = this._deferredEvent;\n this._deferredEvent = null;\n this._fastEmitter.fire(e);\n this._slowEmitter.fire(e);\n }\n }\n }\n fire(e) {\n if (this._deferredCnt > 0) {\n if (this._deferredEvent) {\n this._deferredEvent = this._deferredEvent.merge(e);\n }\n else {\n this._deferredEvent = e;\n }\n return;\n }\n this._fastEmitter.fire(e);\n this._slowEmitter.fire(e);\n }\n}\n/**\n * @internal\n */\nexport class AttachedViews {\n constructor() {\n this._onDidChangeVisibleRanges = new Emitter();\n this.onDidChangeVisibleRanges = this._onDidChangeVisibleRanges.event;\n this._views = new Set();\n }\n attachView() {\n const view = new AttachedViewImpl((state) => {\n this._onDidChangeVisibleRanges.fire({ view, state });\n });\n this._views.add(view);\n return view;\n }\n detachView(view) {\n this._views.delete(view);\n this._onDidChangeVisibleRanges.fire({ view, state: undefined });\n }\n}\nclass AttachedViewImpl {\n constructor(handleStateChange) {\n this.handleStateChange = handleStateChange;\n }\n setVisibleLines(visibleLines, stabilized) {\n const visibleLineRanges = visibleLines.map((line) => new LineRange(line.startLineNumber, line.endLineNumber + 1));\n this.handleStateChange({ visibleLineRanges, stabilized });\n }\n}\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SuggestModel_1;\nimport { TimeoutTimer } from '../../../../base/common/async.js';\nimport { CancellationTokenSource } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { DisposableStore, dispose } from '../../../../base/common/lifecycle.js';\nimport { getLeadingWhitespace, isHighSurrogate, isLowSurrogate } from '../../../../base/common/strings.js';\nimport { Selection } from '../../../common/core/selection.js';\nimport { IEditorWorkerService } from '../../../common/services/editorWorker.js';\nimport { WordDistance } from './wordDistance.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { ILogService } from '../../../../platform/log/common/log.js';\nimport { ITelemetryService } from '../../../../platform/telemetry/common/telemetry.js';\nimport { CompletionModel } from './completionModel.js';\nimport { CompletionOptions, getSnippetSuggestSupport, provideSuggestionItems, QuickSuggestionsOptions } from './suggest.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { FuzzyScoreOptions } from '../../../../base/common/filters.js';\nimport { assertType } from '../../../../base/common/types.js';\nimport { InlineCompletionContextKeys } from '../../inlineCompletions/browser/inlineCompletionContextKeys.js';\nimport { SnippetController2 } from '../../snippet/browser/snippetController2.js';\nimport { IEnvironmentService } from '../../../../platform/environment/common/environment.js';\nexport class LineContext {\n static shouldAutoTrigger(editor) {\n if (!editor.hasModel()) {\n return false;\n }\n const model = editor.getModel();\n const pos = editor.getPosition();\n model.tokenization.tokenizeIfCheap(pos.lineNumber);\n const word = model.getWordAtPosition(pos);\n if (!word) {\n return false;\n }\n if (word.endColumn !== pos.column &&\n word.startColumn + 1 !== pos.column /* after typing a single character before a word */) {\n return false;\n }\n if (!isNaN(Number(word.word))) {\n return false;\n }\n return true;\n }\n constructor(model, position, triggerOptions) {\n this.leadingLineContent = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n this.leadingWord = model.getWordUntilPosition(position);\n this.lineNumber = position.lineNumber;\n this.column = position.column;\n this.triggerOptions = triggerOptions;\n }\n}\nfunction canShowQuickSuggest(editor, contextKeyService, configurationService) {\n if (!Boolean(contextKeyService.getContextKeyValue(InlineCompletionContextKeys.inlineSuggestionVisible.key))) {\n // Allow if there is no inline suggestion.\n return true;\n }\n const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n if (suppressSuggestions !== undefined) {\n return !suppressSuggestions;\n }\n return !editor.getOption(62 /* EditorOption.inlineSuggest */).suppressSuggestions;\n}\nfunction canShowSuggestOnTriggerCharacters(editor, contextKeyService, configurationService) {\n if (!Boolean(contextKeyService.getContextKeyValue('inlineSuggestionVisible'))) {\n // Allow if there is no inline suggestion.\n return true;\n }\n const suppressSuggestions = contextKeyService.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);\n if (suppressSuggestions !== undefined) {\n return !suppressSuggestions;\n }\n return !editor.getOption(62 /* EditorOption.inlineSuggest */).suppressSuggestions;\n}\nlet SuggestModel = SuggestModel_1 = class SuggestModel {\n constructor(_editor, _editorWorkerService, _clipboardService, _telemetryService, _logService, _contextKeyService, _configurationService, _languageFeaturesService, _envService) {\n this._editor = _editor;\n this._editorWorkerService = _editorWorkerService;\n this._clipboardService = _clipboardService;\n this._telemetryService = _telemetryService;\n this._logService = _logService;\n this._contextKeyService = _contextKeyService;\n this._configurationService = _configurationService;\n this._languageFeaturesService = _languageFeaturesService;\n this._envService = _envService;\n this._toDispose = new DisposableStore();\n this._triggerCharacterListener = new DisposableStore();\n this._triggerQuickSuggest = new TimeoutTimer();\n this._triggerState = undefined;\n this._completionDisposables = new DisposableStore();\n this._onDidCancel = new Emitter();\n this._onDidTrigger = new Emitter();\n this._onDidSuggest = new Emitter();\n this.onDidCancel = this._onDidCancel.event;\n this.onDidTrigger = this._onDidTrigger.event;\n this.onDidSuggest = this._onDidSuggest.event;\n this._telemetryGate = 0;\n this._currentSelection = this._editor.getSelection() || new Selection(1, 1, 1, 1);\n // wire up various listeners\n this._toDispose.add(this._editor.onDidChangeModel(() => {\n this._updateTriggerCharacters();\n this.cancel();\n }));\n this._toDispose.add(this._editor.onDidChangeModelLanguage(() => {\n this._updateTriggerCharacters();\n this.cancel();\n }));\n this._toDispose.add(this._editor.onDidChangeConfiguration(() => {\n this._updateTriggerCharacters();\n }));\n this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(() => {\n this._updateTriggerCharacters();\n this._updateActiveSuggestSession();\n }));\n let editorIsComposing = false;\n this._toDispose.add(this._editor.onDidCompositionStart(() => {\n editorIsComposing = true;\n }));\n this._toDispose.add(this._editor.onDidCompositionEnd(() => {\n editorIsComposing = false;\n this._onCompositionEnd();\n }));\n this._toDispose.add(this._editor.onDidChangeCursorSelection(e => {\n // only trigger suggest when the editor isn't composing a character\n if (!editorIsComposing) {\n this._onCursorChange(e);\n }\n }));\n this._toDispose.add(this._editor.onDidChangeModelContent(() => {\n // only filter completions when the editor isn't composing a character\n // allow-any-unicode-next-line\n // e.g. ¨ + u makes ü but just ¨ cannot be used for filtering\n if (!editorIsComposing && this._triggerState !== undefined) {\n this._refilterCompletionItems();\n }\n }));\n this._updateTriggerCharacters();\n }\n dispose() {\n dispose(this._triggerCharacterListener);\n dispose([this._onDidCancel, this._onDidSuggest, this._onDidTrigger, this._triggerQuickSuggest]);\n this._toDispose.dispose();\n this._completionDisposables.dispose();\n this.cancel();\n }\n _updateTriggerCharacters() {\n this._triggerCharacterListener.clear();\n if (this._editor.getOption(91 /* EditorOption.readOnly */)\n || !this._editor.hasModel()\n || !this._editor.getOption(121 /* EditorOption.suggestOnTriggerCharacters */)) {\n return;\n }\n const supportsByTriggerCharacter = new Map();\n for (const support of this._languageFeaturesService.completionProvider.all(this._editor.getModel())) {\n for (const ch of support.triggerCharacters || []) {\n let set = supportsByTriggerCharacter.get(ch);\n if (!set) {\n set = new Set();\n set.add(getSnippetSuggestSupport());\n supportsByTriggerCharacter.set(ch, set);\n }\n set.add(support);\n }\n }\n const checkTriggerCharacter = (text) => {\n var _a;\n if (!canShowSuggestOnTriggerCharacters(this._editor, this._contextKeyService, this._configurationService)) {\n return;\n }\n if (LineContext.shouldAutoTrigger(this._editor)) {\n // don't trigger by trigger characters when this is a case for quick suggest\n return;\n }\n if (!text) {\n // came here from the compositionEnd-event\n const position = this._editor.getPosition();\n const model = this._editor.getModel();\n text = model.getLineContent(position.lineNumber).substr(0, position.column - 1);\n }\n let lastChar = '';\n if (isLowSurrogate(text.charCodeAt(text.length - 1))) {\n if (isHighSurrogate(text.charCodeAt(text.length - 2))) {\n lastChar = text.substr(text.length - 2);\n }\n }\n else {\n lastChar = text.charAt(text.length - 1);\n }\n const supports = supportsByTriggerCharacter.get(lastChar);\n if (supports) {\n // keep existing items that where not computed by the\n // supports/providers that want to trigger now\n const providerItemsToReuse = new Map();\n if (this._completionModel) {\n for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n if (!supports.has(provider)) {\n providerItemsToReuse.set(provider, items);\n }\n }\n }\n this.trigger({\n auto: true,\n triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */,\n triggerCharacter: lastChar,\n retrigger: Boolean(this._completionModel),\n clipboardText: (_a = this._completionModel) === null || _a === void 0 ? void 0 : _a.clipboardText,\n completionOptions: { providerFilter: supports, providerItemsToReuse }\n });\n }\n };\n this._triggerCharacterListener.add(this._editor.onDidType(checkTriggerCharacter));\n this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(() => checkTriggerCharacter()));\n }\n // --- trigger/retrigger/cancel suggest\n get state() {\n if (!this._triggerState) {\n return 0 /* State.Idle */;\n }\n else if (!this._triggerState.auto) {\n return 1 /* State.Manual */;\n }\n else {\n return 2 /* State.Auto */;\n }\n }\n cancel(retrigger = false) {\n var _a;\n if (this._triggerState !== undefined) {\n this._triggerQuickSuggest.cancel();\n (_a = this._requestToken) === null || _a === void 0 ? void 0 : _a.cancel();\n this._requestToken = undefined;\n this._triggerState = undefined;\n this._completionModel = undefined;\n this._context = undefined;\n this._onDidCancel.fire({ retrigger });\n }\n }\n clear() {\n this._completionDisposables.clear();\n }\n _updateActiveSuggestSession() {\n if (this._triggerState !== undefined) {\n if (!this._editor.hasModel() || !this._languageFeaturesService.completionProvider.has(this._editor.getModel())) {\n this.cancel();\n }\n else {\n this.trigger({ auto: this._triggerState.auto, retrigger: true });\n }\n }\n }\n _onCursorChange(e) {\n if (!this._editor.hasModel()) {\n return;\n }\n const prevSelection = this._currentSelection;\n this._currentSelection = this._editor.getSelection();\n if (!e.selection.isEmpty()\n || (e.reason !== 0 /* CursorChangeReason.NotSet */ && e.reason !== 3 /* CursorChangeReason.Explicit */)\n || (e.source !== 'keyboard' && e.source !== 'deleteLeft')) {\n // Early exit if nothing needs to be done!\n // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n this.cancel();\n return;\n }\n if (this._triggerState === undefined && e.reason === 0 /* CursorChangeReason.NotSet */) {\n if (prevSelection.containsRange(this._currentSelection) || prevSelection.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition())) {\n // cursor did move RIGHT due to typing -> trigger quick suggest\n this._doTriggerQuickSuggest();\n }\n }\n else if (this._triggerState !== undefined && e.reason === 3 /* CursorChangeReason.Explicit */) {\n // suggest is active and something like cursor keys are used to move\n // the cursor. this means we can refilter at the new position\n this._refilterCompletionItems();\n }\n }\n _onCompositionEnd() {\n // trigger or refilter when composition ends\n if (this._triggerState === undefined) {\n this._doTriggerQuickSuggest();\n }\n else {\n this._refilterCompletionItems();\n }\n }\n _doTriggerQuickSuggest() {\n var _a;\n if (QuickSuggestionsOptions.isAllOff(this._editor.getOption(89 /* EditorOption.quickSuggestions */))) {\n // not enabled\n return;\n }\n if (this._editor.getOption(118 /* EditorOption.suggest */).snippetsPreventQuickSuggestions && ((_a = SnippetController2.get(this._editor)) === null || _a === void 0 ? void 0 : _a.isInSnippet())) {\n // no quick suggestion when in snippet mode\n return;\n }\n this.cancel();\n this._triggerQuickSuggest.cancelAndSet(() => {\n if (this._triggerState !== undefined) {\n return;\n }\n if (!LineContext.shouldAutoTrigger(this._editor)) {\n return;\n }\n if (!this._editor.hasModel() || !this._editor.hasWidgetFocus()) {\n return;\n }\n const model = this._editor.getModel();\n const pos = this._editor.getPosition();\n // validate enabled now\n const config = this._editor.getOption(89 /* EditorOption.quickSuggestions */);\n if (QuickSuggestionsOptions.isAllOff(config)) {\n return;\n }\n if (!QuickSuggestionsOptions.isAllOn(config)) {\n // Check the type of the token that triggered this\n model.tokenization.tokenizeIfCheap(pos.lineNumber);\n const lineTokens = model.tokenization.getLineTokens(pos.lineNumber);\n const tokenType = lineTokens.getStandardTokenType(lineTokens.findTokenIndexAtOffset(Math.max(pos.column - 1 - 1, 0)));\n if (QuickSuggestionsOptions.valueFor(config, tokenType) !== 'on') {\n return;\n }\n }\n if (!canShowQuickSuggest(this._editor, this._contextKeyService, this._configurationService)) {\n // do not trigger quick suggestions if inline suggestions are shown\n return;\n }\n if (!this._languageFeaturesService.completionProvider.has(model)) {\n return;\n }\n // we made it till here -> trigger now\n this.trigger({ auto: true });\n }, this._editor.getOption(90 /* EditorOption.quickSuggestionsDelay */));\n }\n _refilterCompletionItems() {\n assertType(this._editor.hasModel());\n assertType(this._triggerState !== undefined);\n const model = this._editor.getModel();\n const position = this._editor.getPosition();\n const ctx = new LineContext(model, position, { ...this._triggerState, refilter: true });\n this._onNewContext(ctx);\n }\n trigger(options) {\n var _a, _b, _c, _d, _e, _f;\n if (!this._editor.hasModel()) {\n return;\n }\n const model = this._editor.getModel();\n const ctx = new LineContext(model, this._editor.getPosition(), options);\n // Cancel previous requests, change state & update UI\n this.cancel(options.retrigger);\n this._triggerState = options;\n this._onDidTrigger.fire({ auto: options.auto, shy: (_a = options.shy) !== null && _a !== void 0 ? _a : false, position: this._editor.getPosition() });\n // Capture context when request was sent\n this._context = ctx;\n // Build context for request\n let suggestCtx = { triggerKind: (_b = options.triggerKind) !== null && _b !== void 0 ? _b : 0 /* CompletionTriggerKind.Invoke */ };\n if (options.triggerCharacter) {\n suggestCtx = {\n triggerKind: 1 /* CompletionTriggerKind.TriggerCharacter */,\n triggerCharacter: options.triggerCharacter\n };\n }\n this._requestToken = new CancellationTokenSource();\n // kind filter and snippet sort rules\n const snippetSuggestions = this._editor.getOption(112 /* EditorOption.snippetSuggestions */);\n let snippetSortOrder = 1 /* SnippetSortOrder.Inline */;\n switch (snippetSuggestions) {\n case 'top':\n snippetSortOrder = 0 /* SnippetSortOrder.Top */;\n break;\n // \t↓ that's the default anyways...\n // case 'inline':\n // \tsnippetSortOrder = SnippetSortOrder.Inline;\n // \tbreak;\n case 'bottom':\n snippetSortOrder = 2 /* SnippetSortOrder.Bottom */;\n break;\n }\n const { itemKind: itemKindFilter, showDeprecated } = SuggestModel_1.createSuggestFilter(this._editor);\n const completionOptions = new CompletionOptions(snippetSortOrder, (_d = (_c = options.completionOptions) === null || _c === void 0 ? void 0 : _c.kindFilter) !== null && _d !== void 0 ? _d : itemKindFilter, (_e = options.completionOptions) === null || _e === void 0 ? void 0 : _e.providerFilter, (_f = options.completionOptions) === null || _f === void 0 ? void 0 : _f.providerItemsToReuse, showDeprecated);\n const wordDistance = WordDistance.create(this._editorWorkerService, this._editor);\n const completions = provideSuggestionItems(this._languageFeaturesService.completionProvider, model, this._editor.getPosition(), completionOptions, suggestCtx, this._requestToken.token);\n Promise.all([completions, wordDistance]).then(async ([completions, wordDistance]) => {\n var _a;\n (_a = this._requestToken) === null || _a === void 0 ? void 0 : _a.dispose();\n if (!this._editor.hasModel()) {\n return;\n }\n let clipboardText = options === null || options === void 0 ? void 0 : options.clipboardText;\n if (!clipboardText && completions.needsClipboard) {\n clipboardText = await this._clipboardService.readText();\n }\n if (this._triggerState === undefined) {\n return;\n }\n const model = this._editor.getModel();\n // const items = completions.items;\n // if (existing) {\n // \tconst cmpFn = getSuggestionComparator(snippetSortOrder);\n // \titems = items.concat(existing.items).sort(cmpFn);\n // }\n const ctx = new LineContext(model, this._editor.getPosition(), options);\n const fuzzySearchOptions = {\n ...FuzzyScoreOptions.default,\n firstMatchCanBeWeak: !this._editor.getOption(118 /* EditorOption.suggest */).matchOnWordStartOnly\n };\n this._completionModel = new CompletionModel(completions.items, this._context.column, {\n leadingLineContent: ctx.leadingLineContent,\n characterCountDelta: ctx.column - this._context.column\n }, wordDistance, this._editor.getOption(118 /* EditorOption.suggest */), this._editor.getOption(112 /* EditorOption.snippetSuggestions */), fuzzySearchOptions, clipboardText);\n // store containers so that they can be disposed later\n this._completionDisposables.add(completions.disposable);\n this._onNewContext(ctx);\n // finally report telemetry about durations\n this._reportDurationsTelemetry(completions.durations);\n // report invalid completions by source\n if (!this._envService.isBuilt || this._envService.isExtensionDevelopment) {\n for (const item of completions.items) {\n if (item.isInvalid) {\n this._logService.warn(`[suggest] did IGNORE invalid completion item from ${item.provider._debugDisplayName}`, item.completion);\n }\n }\n }\n }).catch(onUnexpectedError);\n }\n _reportDurationsTelemetry(durations) {\n if (this._telemetryGate++ % 230 !== 0) {\n return;\n }\n setTimeout(() => {\n this._telemetryService.publicLog2('suggest.durations.json', { data: JSON.stringify(durations) });\n this._logService.debug('suggest.durations.json', durations);\n });\n }\n static createSuggestFilter(editor) {\n // kind filter and snippet sort rules\n const result = new Set();\n // snippet setting\n const snippetSuggestions = editor.getOption(112 /* EditorOption.snippetSuggestions */);\n if (snippetSuggestions === 'none') {\n result.add(27 /* CompletionItemKind.Snippet */);\n }\n // type setting\n const suggestOptions = editor.getOption(118 /* EditorOption.suggest */);\n if (!suggestOptions.showMethods) {\n result.add(0 /* CompletionItemKind.Method */);\n }\n if (!suggestOptions.showFunctions) {\n result.add(1 /* CompletionItemKind.Function */);\n }\n if (!suggestOptions.showConstructors) {\n result.add(2 /* CompletionItemKind.Constructor */);\n }\n if (!suggestOptions.showFields) {\n result.add(3 /* CompletionItemKind.Field */);\n }\n if (!suggestOptions.showVariables) {\n result.add(4 /* CompletionItemKind.Variable */);\n }\n if (!suggestOptions.showClasses) {\n result.add(5 /* CompletionItemKind.Class */);\n }\n if (!suggestOptions.showStructs) {\n result.add(6 /* CompletionItemKind.Struct */);\n }\n if (!suggestOptions.showInterfaces) {\n result.add(7 /* CompletionItemKind.Interface */);\n }\n if (!suggestOptions.showModules) {\n result.add(8 /* CompletionItemKind.Module */);\n }\n if (!suggestOptions.showProperties) {\n result.add(9 /* CompletionItemKind.Property */);\n }\n if (!suggestOptions.showEvents) {\n result.add(10 /* CompletionItemKind.Event */);\n }\n if (!suggestOptions.showOperators) {\n result.add(11 /* CompletionItemKind.Operator */);\n }\n if (!suggestOptions.showUnits) {\n result.add(12 /* CompletionItemKind.Unit */);\n }\n if (!suggestOptions.showValues) {\n result.add(13 /* CompletionItemKind.Value */);\n }\n if (!suggestOptions.showConstants) {\n result.add(14 /* CompletionItemKind.Constant */);\n }\n if (!suggestOptions.showEnums) {\n result.add(15 /* CompletionItemKind.Enum */);\n }\n if (!suggestOptions.showEnumMembers) {\n result.add(16 /* CompletionItemKind.EnumMember */);\n }\n if (!suggestOptions.showKeywords) {\n result.add(17 /* CompletionItemKind.Keyword */);\n }\n if (!suggestOptions.showWords) {\n result.add(18 /* CompletionItemKind.Text */);\n }\n if (!suggestOptions.showColors) {\n result.add(19 /* CompletionItemKind.Color */);\n }\n if (!suggestOptions.showFiles) {\n result.add(20 /* CompletionItemKind.File */);\n }\n if (!suggestOptions.showReferences) {\n result.add(21 /* CompletionItemKind.Reference */);\n }\n if (!suggestOptions.showColors) {\n result.add(22 /* CompletionItemKind.Customcolor */);\n }\n if (!suggestOptions.showFolders) {\n result.add(23 /* CompletionItemKind.Folder */);\n }\n if (!suggestOptions.showTypeParameters) {\n result.add(24 /* CompletionItemKind.TypeParameter */);\n }\n if (!suggestOptions.showSnippets) {\n result.add(27 /* CompletionItemKind.Snippet */);\n }\n if (!suggestOptions.showUsers) {\n result.add(25 /* CompletionItemKind.User */);\n }\n if (!suggestOptions.showIssues) {\n result.add(26 /* CompletionItemKind.Issue */);\n }\n return { itemKind: result, showDeprecated: suggestOptions.showDeprecated };\n }\n _onNewContext(ctx) {\n if (!this._context) {\n // happens when 24x7 IntelliSense is enabled and still in its delay\n return;\n }\n if (ctx.lineNumber !== this._context.lineNumber) {\n // e.g. happens when pressing Enter while IntelliSense is computed\n this.cancel();\n return;\n }\n if (getLeadingWhitespace(ctx.leadingLineContent) !== getLeadingWhitespace(this._context.leadingLineContent)) {\n // cancel IntelliSense when line start changes\n // happens when the current word gets outdented\n this.cancel();\n return;\n }\n if (ctx.column < this._context.column) {\n // typed -> moved cursor LEFT -> retrigger if still on a word\n if (ctx.leadingWord.word) {\n this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n }\n else {\n this.cancel();\n }\n return;\n }\n if (!this._completionModel) {\n // happens when IntelliSense is not yet computed\n return;\n }\n if (ctx.leadingWord.word.length !== 0 && ctx.leadingWord.startColumn > this._context.leadingWord.startColumn) {\n // started a new word while IntelliSense shows -> retrigger but reuse all items that we currently have\n const shouldAutoTrigger = LineContext.shouldAutoTrigger(this._editor);\n if (shouldAutoTrigger && this._context) {\n // shouldAutoTrigger forces tokenization, which can cause pending cursor change events to be emitted, which can cause\n // suggestions to be cancelled, which causes `this._context` to be undefined\n const map = this._completionModel.getItemsByProvider();\n this.trigger({\n auto: this._context.triggerOptions.auto,\n retrigger: true,\n clipboardText: this._completionModel.clipboardText,\n completionOptions: { providerItemsToReuse: map }\n });\n }\n return;\n }\n if (ctx.column > this._context.column && this._completionModel.getIncompleteProvider().size > 0 && ctx.leadingWord.word.length !== 0) {\n // typed -> moved cursor RIGHT & incomple model & still on a word -> retrigger\n const providerItemsToReuse = new Map();\n const providerFilter = new Set();\n for (const [provider, items] of this._completionModel.getItemsByProvider()) {\n if (items.length > 0 && items[0].container.incomplete) {\n providerFilter.add(provider);\n }\n else {\n providerItemsToReuse.set(provider, items);\n }\n }\n this.trigger({\n auto: this._context.triggerOptions.auto,\n triggerKind: 2 /* CompletionTriggerKind.TriggerForIncompleteCompletions */,\n retrigger: true,\n clipboardText: this._completionModel.clipboardText,\n completionOptions: { providerFilter, providerItemsToReuse }\n });\n }\n else {\n // typed -> moved cursor RIGHT -> update UI\n const oldLineContext = this._completionModel.lineContext;\n let isFrozen = false;\n this._completionModel.lineContext = {\n leadingLineContent: ctx.leadingLineContent,\n characterCountDelta: ctx.column - this._context.column\n };\n if (this._completionModel.items.length === 0) {\n const shouldAutoTrigger = LineContext.shouldAutoTrigger(this._editor);\n if (!this._context) {\n // shouldAutoTrigger forces tokenization, which can cause pending cursor change events to be emitted, which can cause\n // suggestions to be cancelled, which causes `this._context` to be undefined\n this.cancel();\n return;\n }\n if (shouldAutoTrigger && this._context.leadingWord.endColumn < ctx.leadingWord.startColumn) {\n // retrigger when heading into a new word\n this.trigger({ auto: this._context.triggerOptions.auto, retrigger: true });\n return;\n }\n if (!this._context.triggerOptions.auto) {\n // freeze when IntelliSense was manually requested\n this._completionModel.lineContext = oldLineContext;\n isFrozen = this._completionModel.items.length > 0;\n if (isFrozen && ctx.leadingWord.word.length === 0) {\n // there were results before but now there aren't\n // and also we are not on a word anymore -> cancel\n this.cancel();\n return;\n }\n }\n else {\n // nothing left\n this.cancel();\n return;\n }\n }\n this._onDidSuggest.fire({\n completionModel: this._completionModel,\n triggerOptions: ctx.triggerOptions,\n isFrozen,\n });\n }\n }\n};\nSuggestModel = SuggestModel_1 = __decorate([\n __param(1, IEditorWorkerService),\n __param(2, IClipboardService),\n __param(3, ITelemetryService),\n __param(4, ILogService),\n __param(5, IContextKeyService),\n __param(6, IConfigurationService),\n __param(7, ILanguageFeaturesService),\n __param(8, IEnvironmentService)\n], SuggestModel);\nexport { SuggestModel };\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n __proto__: null,\n 'double': '\"',\n single: \"'\"\n};\nvar quoteREs = {\n __proto__: null,\n 'double': /([\"\\\\])/g,\n single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var style = opts.quoteStyle || defaultStyle;\n var quoteChar = quotes[style];\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n quoteRE.lastIndex = 0;\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/powershell/powershell\"], resolve, reject);\n });\n } else {\n return import(\"./powershell.js\");\n }\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRules = exports.isJSONType = void 0;\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"];\nconst jsonTypes = new Set(_jsonTypes);\nfunction isJSONType(x) {\n return typeof x == \"string\" && jsonTypes.has(x);\n}\nexports.isJSONType = isJSONType;\nfunction getRules() {\n const groups = {\n number: { type: \"number\", rules: [] },\n string: { type: \"string\", rules: [] },\n array: { type: \"array\", rules: [] },\n object: { type: \"object\", rules: [] },\n };\n return {\n types: { ...groups, integer: true, boolean: true, null: true },\n rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object],\n post: { rules: [] },\n all: {},\n keywords: {},\n };\n}\nexports.getRules = getRules;\n//# sourceMappingURL=rules.js.map","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../dom.js';\nimport './aria.css';\n// Use a max length since we are inserting the whole msg in the DOM and that can cause browsers to freeze for long messages #94233\nconst MAX_MESSAGE_LENGTH = 20000;\nlet ariaContainer;\nlet alertContainer;\nlet alertContainer2;\nlet statusContainer;\nlet statusContainer2;\nexport function setARIAContainer(parent) {\n ariaContainer = document.createElement('div');\n ariaContainer.className = 'monaco-aria-container';\n const createAlertContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-alert';\n element.setAttribute('role', 'alert');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n alertContainer = createAlertContainer();\n alertContainer2 = createAlertContainer();\n const createStatusContainer = () => {\n const element = document.createElement('div');\n element.className = 'monaco-status';\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n ariaContainer.appendChild(element);\n return element;\n };\n statusContainer = createStatusContainer();\n statusContainer2 = createStatusContainer();\n parent.appendChild(ariaContainer);\n}\n/**\n * Given the provided message, will make sure that it is read as alert to screen readers.\n */\nexport function alert(msg) {\n if (!ariaContainer) {\n return;\n }\n // Use alternate containers such that duplicated messages get read out by screen readers #99466\n if (alertContainer.textContent !== msg) {\n dom.clearNode(alertContainer2);\n insertMessage(alertContainer, msg);\n }\n else {\n dom.clearNode(alertContainer);\n insertMessage(alertContainer2, msg);\n }\n}\n/**\n * Given the provided message, will make sure that it is read as status to screen readers.\n */\nexport function status(msg) {\n if (!ariaContainer) {\n return;\n }\n if (statusContainer.textContent !== msg) {\n dom.clearNode(statusContainer2);\n insertMessage(statusContainer, msg);\n }\n else {\n dom.clearNode(statusContainer);\n insertMessage(statusContainer2, msg);\n }\n}\nfunction insertMessage(target, msg) {\n dom.clearNode(target);\n if (msg.length > MAX_MESSAGE_LENGTH) {\n msg = msg.substr(0, MAX_MESSAGE_LENGTH);\n }\n target.textContent = msg;\n // See https://www.paciellogroup.com/blog/2012/06/html5-accessibility-chops-aria-rolealert-browser-support/\n target.style.visibility = 'hidden';\n target.style.visibility = 'visible';\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar StandaloneColorPickerController_1, StandaloneColorPickerWidget_1;\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { StandaloneColorPickerParticipant } from './colorHoverParticipant.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { EditorHoverStatusBar } from '../../hover/browser/contentHoverStatusBar.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IModelService } from '../../../common/services/model.js';\nimport { ILanguageConfigurationService } from '../../../common/languages/languageConfigurationRegistry.js';\nimport { DefaultDocumentColorProvider } from './defaultDocumentColorProvider.js';\nimport * as dom from '../../../../base/browser/dom.js';\nimport './colorPicker.css';\nlet StandaloneColorPickerController = StandaloneColorPickerController_1 = class StandaloneColorPickerController extends Disposable {\n constructor(_editor, _contextKeyService, _modelService, _keybindingService, _instantiationService, _languageFeatureService, _languageConfigurationService) {\n super();\n this._editor = _editor;\n this._modelService = _modelService;\n this._keybindingService = _keybindingService;\n this._instantiationService = _instantiationService;\n this._languageFeatureService = _languageFeatureService;\n this._languageConfigurationService = _languageConfigurationService;\n this._standaloneColorPickerWidget = null;\n this._standaloneColorPickerVisible = EditorContextKeys.standaloneColorPickerVisible.bindTo(_contextKeyService);\n this._standaloneColorPickerFocused = EditorContextKeys.standaloneColorPickerFocused.bindTo(_contextKeyService);\n }\n showOrFocus() {\n var _a;\n if (!this._editor.hasModel()) {\n return;\n }\n if (!this._standaloneColorPickerVisible.get()) {\n this._standaloneColorPickerWidget = new StandaloneColorPickerWidget(this._editor, this._standaloneColorPickerVisible, this._standaloneColorPickerFocused, this._instantiationService, this._modelService, this._keybindingService, this._languageFeatureService, this._languageConfigurationService);\n }\n else if (!this._standaloneColorPickerFocused.get()) {\n (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }\n hide() {\n var _a;\n this._standaloneColorPickerFocused.set(false);\n this._standaloneColorPickerVisible.set(false);\n (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.hide();\n this._editor.focus();\n }\n insertColor() {\n var _a;\n (_a = this._standaloneColorPickerWidget) === null || _a === void 0 ? void 0 : _a.updateEditor();\n this.hide();\n }\n static get(editor) {\n return editor.getContribution(StandaloneColorPickerController_1.ID);\n }\n};\nStandaloneColorPickerController.ID = 'editor.contrib.standaloneColorPickerController';\nStandaloneColorPickerController = StandaloneColorPickerController_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, IModelService),\n __param(3, IKeybindingService),\n __param(4, IInstantiationService),\n __param(5, ILanguageFeaturesService),\n __param(6, ILanguageConfigurationService)\n], StandaloneColorPickerController);\nexport { StandaloneColorPickerController };\nregisterEditorContribution(StandaloneColorPickerController.ID, StandaloneColorPickerController, 1 /* EditorContributionInstantiation.AfterFirstRender */);\nconst PADDING = 8;\nconst CLOSE_BUTTON_WIDTH = 22;\nlet StandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = class StandaloneColorPickerWidget extends Disposable {\n constructor(_editor, _standaloneColorPickerVisible, _standaloneColorPickerFocused, _instantiationService, _modelService, _keybindingService, _languageFeaturesService, _languageConfigurationService) {\n var _a;\n super();\n this._editor = _editor;\n this._standaloneColorPickerVisible = _standaloneColorPickerVisible;\n this._standaloneColorPickerFocused = _standaloneColorPickerFocused;\n this._modelService = _modelService;\n this._keybindingService = _keybindingService;\n this._languageFeaturesService = _languageFeaturesService;\n this._languageConfigurationService = _languageConfigurationService;\n this.allowEditorOverflow = true;\n this._position = undefined;\n this._body = document.createElement('div');\n this._colorHover = null;\n this._selectionSetInEditor = false;\n this._onResult = this._register(new Emitter());\n this.onResult = this._onResult.event;\n this._standaloneColorPickerVisible.set(true);\n this._standaloneColorPickerParticipant = _instantiationService.createInstance(StandaloneColorPickerParticipant, this._editor);\n this._position = (_a = this._editor._getViewModel()) === null || _a === void 0 ? void 0 : _a.getPrimaryCursorState().modelState.position;\n const editorSelection = this._editor.getSelection();\n const selection = editorSelection ?\n {\n startLineNumber: editorSelection.startLineNumber,\n startColumn: editorSelection.startColumn,\n endLineNumber: editorSelection.endLineNumber,\n endColumn: editorSelection.endColumn\n } : { startLineNumber: 0, endLineNumber: 0, endColumn: 0, startColumn: 0 };\n const focusTracker = this._register(dom.trackFocus(this._body));\n this._register(focusTracker.onDidBlur(_ => {\n this.hide();\n }));\n this._register(focusTracker.onDidFocus(_ => {\n this.focus();\n }));\n // When the cursor position changes, hide the color picker\n this._register(this._editor.onDidChangeCursorPosition(() => {\n // Do not hide the color picker when the cursor changes position due to the keybindings\n if (!this._selectionSetInEditor) {\n this.hide();\n }\n else {\n this._selectionSetInEditor = false;\n }\n }));\n this._register(this._editor.onMouseMove((e) => {\n var _a;\n const classList = (_a = e.target.element) === null || _a === void 0 ? void 0 : _a.classList;\n if (classList && classList.contains('colorpicker-color-decoration')) {\n this.hide();\n }\n }));\n this._register(this.onResult((result) => {\n this._render(result.value, result.foundInEditor);\n }));\n this._start(selection);\n this._body.style.zIndex = '50';\n this._editor.addContentWidget(this);\n }\n updateEditor() {\n if (this._colorHover) {\n this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover);\n }\n }\n getId() {\n return StandaloneColorPickerWidget_1.ID;\n }\n getDomNode() {\n return this._body;\n }\n getPosition() {\n if (!this._position) {\n return null;\n }\n const positionPreference = this._editor.getOption(60 /* EditorOption.hover */).above;\n return {\n position: this._position,\n secondaryPosition: this._position,\n preference: positionPreference ? [1 /* ContentWidgetPositionPreference.ABOVE */, 2 /* ContentWidgetPositionPreference.BELOW */] : [2 /* ContentWidgetPositionPreference.BELOW */, 1 /* ContentWidgetPositionPreference.ABOVE */],\n positionAffinity: 2 /* PositionAffinity.None */\n };\n }\n hide() {\n this.dispose();\n this._standaloneColorPickerVisible.set(false);\n this._standaloneColorPickerFocused.set(false);\n this._editor.removeContentWidget(this);\n this._editor.focus();\n }\n focus() {\n this._standaloneColorPickerFocused.set(true);\n this._body.focus();\n }\n async _start(selection) {\n const computeAsyncResult = await this._computeAsync(selection);\n if (!computeAsyncResult) {\n return;\n }\n this._onResult.fire(new StandaloneColorPickerResult(computeAsyncResult.result, computeAsyncResult.foundInEditor));\n }\n async _computeAsync(range) {\n if (!this._editor.hasModel()) {\n return null;\n }\n const colorInfo = {\n range: range,\n color: { red: 0, green: 0, blue: 0, alpha: 1 }\n };\n const colorHoverResult = await this._standaloneColorPickerParticipant.createColorHover(colorInfo, new DefaultDocumentColorProvider(this._modelService, this._languageConfigurationService), this._languageFeaturesService.colorProvider);\n if (!colorHoverResult) {\n return null;\n }\n return { result: colorHoverResult.colorHover, foundInEditor: colorHoverResult.foundInEditor };\n }\n _render(colorHover, foundInEditor) {\n const fragment = document.createDocumentFragment();\n const statusBar = this._register(new EditorHoverStatusBar(this._keybindingService));\n let colorPickerWidget;\n const context = {\n fragment,\n statusBar,\n setColorPicker: (widget) => colorPickerWidget = widget,\n onContentsChanged: () => { },\n hide: () => this.hide()\n };\n this._colorHover = colorHover;\n this._register(this._standaloneColorPickerParticipant.renderHoverParts(context, [colorHover]));\n if (colorPickerWidget === undefined) {\n return;\n }\n this._body.classList.add('standalone-colorpicker-body');\n this._body.style.maxHeight = Math.max(this._editor.getLayoutInfo().height / 4, 250) + 'px';\n this._body.style.maxWidth = Math.max(this._editor.getLayoutInfo().width * 0.66, 500) + 'px';\n this._body.tabIndex = 0;\n this._body.appendChild(fragment);\n colorPickerWidget.layout();\n const colorPickerBody = colorPickerWidget.body;\n const saturationBoxWidth = colorPickerBody.saturationBox.domNode.clientWidth;\n const widthOfOriginalColorBox = colorPickerBody.domNode.clientWidth - saturationBoxWidth - CLOSE_BUTTON_WIDTH - PADDING;\n const enterButton = colorPickerWidget.body.enterButton;\n enterButton === null || enterButton === void 0 ? void 0 : enterButton.onClicked(() => {\n this.updateEditor();\n this.hide();\n });\n const colorPickerHeader = colorPickerWidget.header;\n const pickedColorNode = colorPickerHeader.pickedColorNode;\n pickedColorNode.style.width = saturationBoxWidth + PADDING + 'px';\n const originalColorNode = colorPickerHeader.originalColorNode;\n originalColorNode.style.width = widthOfOriginalColorBox + 'px';\n const closeButton = colorPickerWidget.header.closeButton;\n closeButton === null || closeButton === void 0 ? void 0 : closeButton.onClicked(() => {\n this.hide();\n });\n // When found in the editor, highlight the selection in the editor\n if (foundInEditor) {\n if (enterButton) {\n enterButton.button.textContent = 'Replace';\n }\n this._selectionSetInEditor = true;\n this._editor.setSelection(colorHover.range);\n }\n this._editor.layoutContentWidget(this);\n }\n};\nStandaloneColorPickerWidget.ID = 'editor.contrib.standaloneColorPickerWidget';\nStandaloneColorPickerWidget = StandaloneColorPickerWidget_1 = __decorate([\n __param(3, IInstantiationService),\n __param(4, IModelService),\n __param(5, IKeybindingService),\n __param(6, ILanguageFeaturesService),\n __param(7, ILanguageConfigurationService)\n], StandaloneColorPickerWidget);\nexport { StandaloneColorPickerWidget };\nclass StandaloneColorPickerResult {\n // The color picker result consists of: an array of color results and a boolean indicating if the color was found in the editor\n constructor(value, foundInEditor) {\n this.value = value;\n this.foundInEditor = foundInEditor;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorAction, EditorAction2, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { localize, localize2 } from '../../../../nls.js';\nimport { StandaloneColorPickerController } from './standaloneColorPickerWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { MenuId, registerAction2 } from '../../../../platform/actions/common/actions.js';\nimport './colorPicker.css';\nexport class ShowOrFocusStandaloneColorPicker extends EditorAction2 {\n constructor() {\n super({\n id: 'editor.action.showOrFocusStandaloneColorPicker',\n title: {\n ...localize2('showOrFocusStandaloneColorPicker', \"Show or Focus Standalone Color Picker\"),\n mnemonicTitle: localize({ key: 'mishowOrFocusStandaloneColorPicker', comment: ['&& denotes a mnemonic'] }, \"&&Show or Focus Standalone Color Picker\"),\n },\n precondition: undefined,\n menu: [\n { id: MenuId.CommandPalette },\n ],\n metadata: {\n description: localize2('showOrFocusStandaloneColorPickerDescription', \"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.\"),\n }\n });\n }\n runEditorCommand(_accessor, editor) {\n var _a;\n (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.showOrFocus();\n }\n}\nclass HideStandaloneColorPicker extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.hideColorPicker',\n label: localize({\n key: 'hideColorPicker',\n comment: [\n 'Action that hides the color picker'\n ]\n }, \"Hide the Color Picker\"),\n alias: 'Hide the Color Picker',\n precondition: EditorContextKeys.standaloneColorPickerVisible.isEqualTo(true),\n kbOpts: {\n primary: 9 /* KeyCode.Escape */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: localize2('hideColorPickerDescription', \"Hide the standalone color picker.\"),\n }\n });\n }\n run(_accessor, editor) {\n var _a;\n (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.hide();\n }\n}\nclass InsertColorWithStandaloneColorPicker extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.insertColorWithStandaloneColorPicker',\n label: localize({\n key: 'insertColorWithStandaloneColorPicker',\n comment: [\n 'Action that inserts color with standalone color picker'\n ]\n }, \"Insert Color with Standalone Color Picker\"),\n alias: 'Insert Color with Standalone Color Picker',\n precondition: EditorContextKeys.standaloneColorPickerFocused.isEqualTo(true),\n kbOpts: {\n primary: 3 /* KeyCode.Enter */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n metadata: {\n description: localize2('insertColorWithStandaloneColorPickerDescription', \"Insert hex/rgb/hsl colors with the focused standalone color picker.\"),\n }\n });\n }\n run(_accessor, editor) {\n var _a;\n (_a = StandaloneColorPickerController.get(editor)) === null || _a === void 0 ? void 0 : _a.insertColor();\n }\n}\nregisterEditorAction(HideStandaloneColorPicker);\nregisterEditorAction(InsertColorWithStandaloneColorPicker);\nregisterAction2(ShowOrFocusStandaloneColorPicker);\n","import { gh, isExecute, vueDefineComponent } from '@syncfusion/ej2-vue-base';\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\nexport var AggregatesDirective = vueDefineComponent({\n inject: { custom: { default: null } },\n render: function (createElement) {\n if (!isExecute) {\n var h = !isExecute ? gh : createElement;\n var slots = null;\n if (!isNullOrUndefined(this.$slots.default)) {\n slots = !isExecute ? this.$slots.default() : this.$slots.default;\n }\n return h('div', { class: 'e-directive' }, slots);\n }\n return;\n },\n updated: function () {\n if (!isExecute && this.custom) {\n this.custom();\n }\n },\n methods: {\n getTag: function () {\n return 'e-aggregates';\n }\n }\n});\nexport var AggregatesPlugin = {\n name: 'e-aggregates',\n install: function (Vue) {\n Vue.component(AggregatesPlugin.name, AggregatesDirective);\n }\n};\n/**\n * `e-aggregate` directive represent a aggregate row of the VueJS Grid.\n * It must be contained in a Grid component(`ejs-grid`).\n * ```vue\n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * \n * ```\n */\nexport var AggregateDirective = vueDefineComponent({\n render: function () {\n return;\n },\n methods: {\n getTag: function () {\n return 'e-aggregate';\n }\n }\n});\nexport var AggregatePlugin = {\n name: 'e-aggregate',\n install: function (Vue) {\n Vue.component(AggregatePlugin.name, AggregateDirective);\n }\n};\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { toDisposable } from '../../../base/common/lifecycle.js';\nimport { LinkedList } from '../../../base/common/linkedList.js';\nimport { validateConstraints } from '../../../base/common/types.js';\nimport { createDecorator } from '../../instantiation/common/instantiation.js';\nexport const ICommandService = createDecorator('commandService');\nexport const CommandsRegistry = new class {\n constructor() {\n this._commands = new Map();\n this._onDidRegisterCommand = new Emitter();\n this.onDidRegisterCommand = this._onDidRegisterCommand.event;\n }\n registerCommand(idOrCommand, handler) {\n if (!idOrCommand) {\n throw new Error(`invalid command`);\n }\n if (typeof idOrCommand === 'string') {\n if (!handler) {\n throw new Error(`invalid command`);\n }\n return this.registerCommand({ id: idOrCommand, handler });\n }\n // add argument validation if rich command metadata is provided\n if (idOrCommand.metadata && Array.isArray(idOrCommand.metadata.args)) {\n const constraints = [];\n for (const arg of idOrCommand.metadata.args) {\n constraints.push(arg.constraint);\n }\n const actualHandler = idOrCommand.handler;\n idOrCommand.handler = function (accessor, ...args) {\n validateConstraints(args, constraints);\n return actualHandler(accessor, ...args);\n };\n }\n // find a place to store the command\n const { id } = idOrCommand;\n let commands = this._commands.get(id);\n if (!commands) {\n commands = new LinkedList();\n this._commands.set(id, commands);\n }\n const removeFn = commands.unshift(idOrCommand);\n const ret = toDisposable(() => {\n removeFn();\n const command = this._commands.get(id);\n if (command === null || command === void 0 ? void 0 : command.isEmpty()) {\n this._commands.delete(id);\n }\n });\n // tell the world about this command\n this._onDidRegisterCommand.fire(id);\n return ret;\n }\n registerCommandAlias(oldId, newId) {\n return CommandsRegistry.registerCommand(oldId, (accessor, ...args) => accessor.get(ICommandService).executeCommand(newId, ...args));\n }\n getCommand(id) {\n const list = this._commands.get(id);\n if (!list || list.isEmpty()) {\n return undefined;\n }\n return Iterable.first(list);\n }\n getCommands() {\n const result = new Map();\n for (const key of this._commands.keys()) {\n const command = this.getCommand(key);\n if (command) {\n result.set(key, command);\n }\n }\n return result;\n }\n};\nCommandsRegistry.registerCommand('noop', () => { });\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/yaml/yaml.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"yaml\",\n extensions: [\".yaml\", \".yml\"],\n aliases: [\"YAML\", \"yaml\", \"YML\", \"yml\"],\n mimetypes: [\"application/x-yaml\", \"text/x-yaml\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/yaml/yaml\"], resolve, reject);\n });\n } else {\n return import(\"./yaml.js\");\n }\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst error = {\n message: ({ params: { min, max } }) => max === undefined\n ? (0, codegen_1.str) `must contain at least ${min} valid item(s)`\n : (0, codegen_1.str) `must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({ params: { min, max } }) => max === undefined ? (0, codegen_1._) `{minContains: ${min}}` : (0, codegen_1._) `{minContains: ${min}, maxContains: ${max}}`,\n};\nconst def = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt) {\n const { gen, schema, parentSchema, data, it } = cxt;\n let min;\n let max;\n const { minContains, maxContains } = parentSchema;\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains;\n max = maxContains;\n }\n else {\n min = 1;\n }\n const len = gen.const(\"len\", (0, codegen_1._) `${data}.length`);\n cxt.setParams({ min, max });\n if (max === undefined && min === 0) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`);\n return;\n }\n if (max !== undefined && min > max) {\n (0, util_1.checkStrictMode)(it, `\"minContains\" > \"maxContains\" is always invalid`);\n cxt.fail();\n return;\n }\n if ((0, util_1.alwaysValidSchema)(it, schema)) {\n let cond = (0, codegen_1._) `${len} >= ${min}`;\n if (max !== undefined)\n cond = (0, codegen_1._) `${cond} && ${len} <= ${max}`;\n cxt.pass(cond);\n return;\n }\n it.items = true;\n const valid = gen.name(\"valid\");\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()));\n }\n else if (min === 0) {\n gen.let(valid, true);\n if (max !== undefined)\n gen.if((0, codegen_1._) `${data}.length > 0`, validateItemsWithCount);\n }\n else {\n gen.let(valid, false);\n validateItemsWithCount();\n }\n cxt.result(valid, () => cxt.reset());\n function validateItemsWithCount() {\n const schValid = gen.name(\"_valid\");\n const count = gen.let(\"count\", 0);\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)));\n }\n function validateItems(_valid, block) {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema({\n keyword: \"contains\",\n dataProp: i,\n dataPropType: util_1.Type.Num,\n compositeRule: true,\n }, _valid);\n block();\n });\n }\n function checkLimits(count) {\n gen.code((0, codegen_1._) `${count}++`);\n if (max === undefined) {\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true).break());\n }\n else {\n gen.if((0, codegen_1._) `${count} > ${max}`, () => gen.assign(valid, false).break());\n if (min === 1)\n gen.assign(valid, true);\n else\n gen.if((0, codegen_1._) `${count} >= ${min}`, () => gen.assign(valid, true));\n }\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=contains.js.map","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/sparql/sparql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"sparql\",\n extensions: [\".rq\"],\n aliases: [\"sparql\", \"SPARQL\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/sparql/sparql\"], resolve, reject);\n });\n } else {\n return import(\"./sparql.js\");\n }\n }\n});\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nconst emptyArr = [];\n/**\n * Represents an immutable set that works best for a small number of elements (less than 32).\n * It uses bits to encode element membership efficiently.\n*/\nexport class SmallImmutableSet {\n static create(items, additionalItems) {\n if (items <= 128 && additionalItems.length === 0) {\n // We create a cache of 128=2^7 elements to cover all sets with up to 7 (dense) elements.\n let cached = SmallImmutableSet.cache[items];\n if (!cached) {\n cached = new SmallImmutableSet(items, additionalItems);\n SmallImmutableSet.cache[items] = cached;\n }\n return cached;\n }\n return new SmallImmutableSet(items, additionalItems);\n }\n static getEmpty() {\n return this.empty;\n }\n constructor(items, additionalItems) {\n this.items = items;\n this.additionalItems = additionalItems;\n }\n add(value, keyProvider) {\n const key = keyProvider.getKey(value);\n let idx = key >> 5; // divided by 32\n if (idx === 0) {\n // fast path\n const newItem = (1 << key) | this.items;\n if (newItem === this.items) {\n return this;\n }\n return SmallImmutableSet.create(newItem, this.additionalItems);\n }\n idx--;\n const newItems = this.additionalItems.slice(0);\n while (newItems.length < idx) {\n newItems.push(0);\n }\n newItems[idx] |= 1 << (key & 31);\n return SmallImmutableSet.create(this.items, newItems);\n }\n merge(other) {\n const merged = this.items | other.items;\n if (this.additionalItems === emptyArr && other.additionalItems === emptyArr) {\n // fast path\n if (merged === this.items) {\n return this;\n }\n if (merged === other.items) {\n return other;\n }\n return SmallImmutableSet.create(merged, emptyArr);\n }\n // This can be optimized, but it's not a common case\n const newItems = [];\n for (let i = 0; i < Math.max(this.additionalItems.length, other.additionalItems.length); i++) {\n const item1 = this.additionalItems[i] || 0;\n const item2 = other.additionalItems[i] || 0;\n newItems.push(item1 | item2);\n }\n return SmallImmutableSet.create(merged, newItems);\n }\n intersects(other) {\n if ((this.items & other.items) !== 0) {\n return true;\n }\n for (let i = 0; i < Math.min(this.additionalItems.length, other.additionalItems.length); i++) {\n if ((this.additionalItems[i] & other.additionalItems[i]) !== 0) {\n return true;\n }\n }\n return false;\n }\n}\nSmallImmutableSet.cache = new Array(129);\nSmallImmutableSet.empty = SmallImmutableSet.create(0, emptyArr);\nexport const identityKeyProvider = {\n getKey(value) {\n return value;\n }\n};\n/**\n * Assigns values a unique incrementing key.\n*/\nexport class DenseKeyProvider {\n constructor() {\n this.items = new Map();\n }\n getKey(value) {\n let existing = this.items.get(value);\n if (existing === undefined) {\n existing = this.items.size;\n this.items.set(value, existing);\n }\n return existing;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport var HorizontalGuidesState;\n(function (HorizontalGuidesState) {\n HorizontalGuidesState[HorizontalGuidesState[\"Disabled\"] = 0] = \"Disabled\";\n HorizontalGuidesState[HorizontalGuidesState[\"EnabledForActive\"] = 1] = \"EnabledForActive\";\n HorizontalGuidesState[HorizontalGuidesState[\"Enabled\"] = 2] = \"Enabled\";\n})(HorizontalGuidesState || (HorizontalGuidesState = {}));\nexport class IndentGuide {\n constructor(visibleColumn, column, className, \n /**\n * If set, this indent guide is a horizontal guide (no vertical part).\n * It starts at visibleColumn and continues until endColumn.\n */\n horizontalLine, \n /**\n * If set (!= -1), only show this guide for wrapped lines that don't contain this model column, but are after it.\n */\n forWrappedLinesAfterColumn, forWrappedLinesBeforeOrAtColumn) {\n this.visibleColumn = visibleColumn;\n this.column = column;\n this.className = className;\n this.horizontalLine = horizontalLine;\n this.forWrappedLinesAfterColumn = forWrappedLinesAfterColumn;\n this.forWrappedLinesBeforeOrAtColumn = forWrappedLinesBeforeOrAtColumn;\n if ((visibleColumn !== -1) === (column !== -1)) {\n throw new Error();\n }\n }\n}\nexport class IndentGuideHorizontalLine {\n constructor(top, endColumn) {\n this.top = top;\n this.endColumn = endColumn;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar WordHighlighter_1, WordHighlighterContribution_1;\nimport * as nls from '../../../../nls.js';\nimport * as arrays from '../../../../base/common/arrays.js';\nimport { alert } from '../../../../base/browser/ui/aria/aria.js';\nimport { createCancelablePromise, first, timeout } from '../../../../base/common/async.js';\nimport { CancellationToken } from '../../../../base/common/cancellation.js';\nimport { onUnexpectedError, onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { isDiffEditor } from '../../../browser/editorBrowser.js';\nimport { EditorAction, registerEditorAction, registerEditorContribution, registerModelAndPositionCommand } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { Range } from '../../../common/core/range.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { DocumentHighlightKind } from '../../../common/languages.js';\nimport { shouldSynchronizeModel } from '../../../common/model.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { getHighlightDecorationOptions } from './highlightDecorations.js';\nimport { IContextKeyService, RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { Schemas } from '../../../../base/common/network.js';\nimport { ResourceMap } from '../../../../base/common/map.js';\nimport { score } from '../../../common/languageSelector.js';\n// import { TextualMultiDocumentHighlightFeature } from 'vs/editor/contrib/wordHighlighter/browser/textualHighlightProvider';\n// import { registerEditorFeature } from 'vs/editor/common/editorFeatures';\nconst ctxHasWordHighlights = new RawContextKey('hasWordHighlights', false);\nexport function getOccurrencesAtPosition(registry, model, position, token) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = none empty array)\n return first(orderedByScore.map(provider => () => {\n return Promise.resolve(provider.provideDocumentHighlights(model, position, token))\n .then(undefined, onUnexpectedExternalError);\n }), arrays.isNonEmptyArray).then(result => {\n if (result) {\n const map = new ResourceMap();\n map.set(model.uri, result);\n return map;\n }\n return new ResourceMap();\n });\n}\nexport function getOccurrencesAcrossMultipleModels(registry, model, position, wordSeparators, token, otherModels) {\n const orderedByScore = registry.ordered(model);\n // in order of score ask the occurrences provider\n // until someone response with a good result\n // (good = none empty array)\n return first(orderedByScore.map(provider => () => {\n const filteredModels = otherModels.filter(otherModel => {\n return shouldSynchronizeModel(otherModel);\n }).filter(otherModel => {\n return score(provider.selector, otherModel.uri, otherModel.getLanguageId(), true, undefined, undefined) > 0;\n });\n return Promise.resolve(provider.provideMultiDocumentHighlights(model, position, filteredModels, token))\n .then(undefined, onUnexpectedExternalError);\n }), (t) => t instanceof ResourceMap && t.size > 0);\n}\nclass OccurenceAtPositionRequest {\n constructor(_model, _selection, _wordSeparators) {\n this._model = _model;\n this._selection = _selection;\n this._wordSeparators = _wordSeparators;\n this._wordRange = this._getCurrentWordRange(_model, _selection);\n this._result = null;\n }\n get result() {\n if (!this._result) {\n this._result = createCancelablePromise(token => this._compute(this._model, this._selection, this._wordSeparators, token));\n }\n return this._result;\n }\n _getCurrentWordRange(model, selection) {\n const word = model.getWordAtPosition(selection.getPosition());\n if (word) {\n return new Range(selection.startLineNumber, word.startColumn, selection.startLineNumber, word.endColumn);\n }\n return null;\n }\n isValid(model, selection, decorations) {\n const lineNumber = selection.startLineNumber;\n const startColumn = selection.startColumn;\n const endColumn = selection.endColumn;\n const currentWordRange = this._getCurrentWordRange(model, selection);\n let requestIsValid = Boolean(this._wordRange && this._wordRange.equalsRange(currentWordRange));\n // Even if we are on a different word, if that word is in the decorations ranges, the request is still valid\n // (Same symbol)\n for (let i = 0, len = decorations.length; !requestIsValid && i < len; i++) {\n const range = decorations.getRange(i);\n if (range && range.startLineNumber === lineNumber) {\n if (range.startColumn <= startColumn && range.endColumn >= endColumn) {\n requestIsValid = true;\n }\n }\n }\n return requestIsValid;\n }\n cancel() {\n this.result.cancel();\n }\n}\nclass SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAtPosition(this._providers, model, selection.getPosition(), token).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nclass MultiModelOccurenceRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, wordSeparators, providers, otherModels) {\n super(model, selection, wordSeparators);\n this._providers = providers;\n this._otherModels = otherModels;\n }\n _compute(model, selection, wordSeparators, token) {\n return getOccurrencesAcrossMultipleModels(this._providers, model, selection.getPosition(), wordSeparators, token, this._otherModels).then(value => {\n if (!value) {\n return new ResourceMap();\n }\n return value;\n });\n }\n}\nclass TextualOccurenceRequest extends OccurenceAtPositionRequest {\n constructor(model, selection, word, wordSeparators, otherModels) {\n super(model, selection, wordSeparators);\n this._otherModels = otherModels;\n this._selectionIsEmpty = selection.isEmpty();\n this._word = word;\n }\n _compute(model, selection, wordSeparators, token) {\n return timeout(250, token).then(() => {\n const result = new ResourceMap();\n let wordResult;\n if (this._word) {\n wordResult = this._word;\n }\n else {\n wordResult = model.getWordAtPosition(selection.getPosition());\n }\n if (!wordResult) {\n return new ResourceMap();\n }\n const allModels = [model, ...this._otherModels];\n for (const otherModel of allModels) {\n if (otherModel.isDisposed()) {\n continue;\n }\n const matches = otherModel.findMatches(wordResult.word, true, false, true, wordSeparators, false);\n const highlights = matches.map(m => ({\n range: m.range,\n kind: DocumentHighlightKind.Text\n }));\n if (highlights) {\n result.set(otherModel.uri, highlights);\n }\n }\n return result;\n });\n }\n isValid(model, selection, decorations) {\n const currentSelectionIsEmpty = selection.isEmpty();\n if (this._selectionIsEmpty !== currentSelectionIsEmpty) {\n return false;\n }\n return super.isValid(model, selection, decorations);\n }\n}\nfunction computeOccurencesAtPosition(registry, model, selection, word, wordSeparators) {\n if (registry.has(model)) {\n return new SemanticOccurenceAtPositionRequest(model, selection, wordSeparators, registry);\n }\n return new TextualOccurenceRequest(model, selection, word, wordSeparators, []);\n}\nfunction computeOccurencesMultiModel(registry, model, selection, word, wordSeparators, otherModels) {\n if (registry.has(model)) {\n return new MultiModelOccurenceRequest(model, selection, wordSeparators, registry, otherModels);\n }\n return new TextualOccurenceRequest(model, selection, word, wordSeparators, otherModels);\n}\nregisterModelAndPositionCommand('_executeDocumentHighlights', async (accessor, model, position) => {\n const languageFeaturesService = accessor.get(ILanguageFeaturesService);\n const map = await getOccurrencesAtPosition(languageFeaturesService.documentHighlightProvider, model, position, CancellationToken.None);\n return map === null || map === void 0 ? void 0 : map.get(model.uri);\n});\nlet WordHighlighter = WordHighlighter_1 = class WordHighlighter {\n constructor(editor, providers, multiProviders, contextKeyService, codeEditorService) {\n this.toUnhook = new DisposableStore();\n this.workerRequestTokenId = 0;\n this.workerRequestCompleted = false;\n this.workerRequestValue = new ResourceMap();\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = -1;\n this.editor = editor;\n this.providers = providers;\n this.multiDocumentProviders = multiProviders;\n this.codeEditorService = codeEditorService;\n this._hasWordHighlights = ctxHasWordHighlights.bindTo(contextKeyService);\n this._ignorePositionChangeEvent = false;\n this.occurrencesHighlight = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n this.model = this.editor.getModel();\n this.toUnhook.add(editor.onDidChangeCursorPosition((e) => {\n if (this._ignorePositionChangeEvent) {\n // We are changing the position => ignore this event\n return;\n }\n if (this.occurrencesHighlight === 'off') {\n // Early exit if nothing needs to be done!\n // Leave some form of early exit check here if you wish to continue being a cursor position change listener ;)\n return;\n }\n this._onPositionChanged(e);\n }));\n this.toUnhook.add(editor.onDidFocusEditorText((e) => {\n if (this.occurrencesHighlight === 'off') {\n // Early exit if nothing needs to be done\n return;\n }\n if (!this.workerRequest) {\n this._run();\n }\n }));\n this.toUnhook.add(editor.onDidChangeModelContent((e) => {\n this._stopAll();\n }));\n this.toUnhook.add(editor.onDidChangeModel((e) => {\n if (!e.newModelUrl && e.oldModelUrl) {\n this._stopSingular();\n }\n else {\n if (WordHighlighter_1.query) {\n this._run();\n }\n }\n }));\n this.toUnhook.add(editor.onDidChangeConfiguration((e) => {\n const newValue = this.editor.getOption(81 /* EditorOption.occurrencesHighlight */);\n if (this.occurrencesHighlight !== newValue) {\n this.occurrencesHighlight = newValue;\n this._stopAll();\n }\n }));\n this.decorations = this.editor.createDecorationsCollection();\n this.workerRequestTokenId = 0;\n this.workerRequest = null;\n this.workerRequestCompleted = false;\n this.lastCursorPositionChangeTime = 0;\n this.renderDecorationsTimer = -1;\n // if there is a query already, highlight off that query\n if (WordHighlighter_1.query) {\n this._run();\n }\n }\n hasDecorations() {\n return (this.decorations.length > 0);\n }\n restore() {\n if (this.occurrencesHighlight === 'off') {\n return;\n }\n this._run();\n }\n _getSortedHighlights() {\n return (this.decorations.getRanges()\n .sort(Range.compareRangesUsingStarts));\n }\n moveNext() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index + 1) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n moveBack() {\n const highlights = this._getSortedHighlights();\n const index = highlights.findIndex((range) => range.containsPosition(this.editor.getPosition()));\n const newIndex = ((index - 1 + highlights.length) % highlights.length);\n const dest = highlights[newIndex];\n try {\n this._ignorePositionChangeEvent = true;\n this.editor.setPosition(dest.getStartPosition());\n this.editor.revealRangeInCenterIfOutsideViewport(dest);\n const word = this._getWord();\n if (word) {\n const lineContent = this.editor.getModel().getLineContent(dest.startLineNumber);\n alert(`${lineContent}, ${newIndex + 1} of ${highlights.length} for '${word.word}'`);\n }\n }\n finally {\n this._ignorePositionChangeEvent = false;\n }\n }\n _removeSingleDecorations() {\n // return if no model\n if (!this.editor.hasModel()) {\n return;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(this.editor.getModel().uri);\n if (!currentDecorationIDs) {\n return;\n }\n this.editor.removeDecorations(currentDecorationIDs);\n WordHighlighter_1.storedDecorations.delete(this.editor.getModel().uri);\n if (this.decorations.length > 0) {\n this.decorations.clear();\n this._hasWordHighlights.set(false);\n }\n }\n _removeAllDecorations() {\n const currentEditors = this.codeEditorService.listCodeEditors();\n const deleteURI = [];\n // iterate over editors and store models in currentModels\n for (const editor of currentEditors) {\n if (!editor.hasModel()) {\n continue;\n }\n const currentDecorationIDs = WordHighlighter_1.storedDecorations.get(editor.getModel().uri);\n if (!currentDecorationIDs) {\n continue;\n }\n editor.removeDecorations(currentDecorationIDs);\n deleteURI.push(editor.getModel().uri);\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!(editorHighlighterContrib === null || editorHighlighterContrib === void 0 ? void 0 : editorHighlighterContrib.wordHighlighter)) {\n continue;\n }\n if (editorHighlighterContrib.wordHighlighter.decorations.length > 0) {\n editorHighlighterContrib.wordHighlighter.decorations.clear();\n editorHighlighterContrib.wordHighlighter.workerRequest = null;\n editorHighlighterContrib.wordHighlighter._hasWordHighlights.set(false);\n }\n }\n for (const uri of deleteURI) {\n WordHighlighter_1.storedDecorations.delete(uri);\n }\n }\n _stopSingular() {\n var _a, _b, _c, _d;\n // Remove any existing decorations + a possible query, and re - run to update decorations\n this._removeSingleDecorations();\n if (this.editor.hasTextFocus()) {\n if (((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell && ((_c = (_b = WordHighlighter_1.query) === null || _b === void 0 ? void 0 : _b.modelInfo) === null || _c === void 0 ? void 0 : _c.model.uri.scheme) !== Schemas.vscodeNotebookCell) { // clear query if focused non-nb editor\n WordHighlighter_1.query = null;\n this._run(); // TODO: @Yoyokrazy -- investigate why we need a full rerun here. likely addressed a case/patch in the first iteration of this feature\n }\n else { // remove modelInfo to account for nb cell being disposed\n if ((_d = WordHighlighter_1.query) === null || _d === void 0 ? void 0 : _d.modelInfo) {\n WordHighlighter_1.query.modelInfo = null;\n }\n }\n }\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== -1) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _stopAll() {\n // Remove any existing decorations\n // TODO: @Yoyokrazy -- this triggers as notebooks scroll, causing highlights to disappear momentarily.\n // maybe a nb type check?\n this._removeAllDecorations();\n // Cancel any renderDecorationsTimer\n if (this.renderDecorationsTimer !== -1) {\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n }\n // Cancel any worker request\n if (this.workerRequest !== null) {\n this.workerRequest.cancel();\n this.workerRequest = null;\n }\n // Invalidate any worker request callback\n if (!this.workerRequestCompleted) {\n this.workerRequestTokenId++;\n this.workerRequestCompleted = true;\n }\n }\n _onPositionChanged(e) {\n var _a;\n // disabled\n if (this.occurrencesHighlight === 'off') {\n this._stopAll();\n return;\n }\n // ignore typing & other\n // need to check if the model is a notebook cell, should not stop if nb\n if (e.reason !== 3 /* CursorChangeReason.Explicit */ && ((_a = this.editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri.scheme) !== Schemas.vscodeNotebookCell) {\n this._stopAll();\n return;\n }\n this._run();\n }\n _getWord() {\n const editorSelection = this.editor.getSelection();\n const lineNumber = editorSelection.startLineNumber;\n const startColumn = editorSelection.startColumn;\n if (this.model.isDisposed()) {\n return null;\n }\n return this.model.getWordAtPosition({\n lineNumber: lineNumber,\n column: startColumn\n });\n }\n getOtherModelsToHighlight(model) {\n if (!model) {\n return [];\n }\n // notebook case\n const isNotebookEditor = model.uri.scheme === Schemas.vscodeNotebookCell;\n if (isNotebookEditor) {\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n if (tempModel && tempModel !== model && tempModel.uri.scheme === Schemas.vscodeNotebookCell) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n // inline case\n // ? current works when highlighting outside of an inline diff, highlighting in.\n // ? broken when highlighting within a diff editor. highlighting the main editor does not work\n // ? editor group service could be useful here\n const currentModels = [];\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n if (!isDiffEditor(editor)) {\n continue;\n }\n const diffModel = editor.getModel();\n if (!diffModel) {\n continue;\n }\n if (model === diffModel.modified) { // embedded inline chat diff would pass this, allowing highlights\n //? currentModels.push(diffModel.original);\n currentModels.push(diffModel.modified);\n }\n }\n if (currentModels.length) { // no matching editors have been found\n return currentModels;\n }\n // multi-doc OFF\n if (this.occurrencesHighlight === 'singleFile') {\n return [];\n }\n // multi-doc ON\n for (const editor of currentEditors) {\n const tempModel = editor.getModel();\n const isValidModel = tempModel && tempModel !== model;\n if (isValidModel) {\n currentModels.push(tempModel);\n }\n }\n return currentModels;\n }\n _run() {\n var _a;\n let workerRequestIsValid;\n const hasTextFocus = this.editor.hasTextFocus();\n if (!hasTextFocus) { // new nb cell scrolled in, didChangeModel fires\n if (!WordHighlighter_1.query) { // no previous query, nothing to highlight off of\n return;\n }\n }\n else { // has text focus\n const editorSelection = this.editor.getSelection();\n // ignore multiline selection\n if (!editorSelection || editorSelection.startLineNumber !== editorSelection.endLineNumber) {\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n const startColumn = editorSelection.startColumn;\n const endColumn = editorSelection.endColumn;\n const word = this._getWord();\n // The selection must be inside a word or surround one word at most\n if (!word || word.startColumn > startColumn || word.endColumn < endColumn) {\n // no previous query, nothing to highlight\n WordHighlighter_1.query = null;\n this._stopAll();\n return;\n }\n // All the effort below is trying to achieve this:\n // - when cursor is moved to a word, trigger immediately a findOccurrences request\n // - 250ms later after the last cursor move event, render the occurrences\n // - no flickering!\n workerRequestIsValid = (this.workerRequest && this.workerRequest.isValid(this.model, editorSelection, this.decorations));\n WordHighlighter_1.query = {\n modelInfo: {\n model: this.model,\n selection: editorSelection,\n },\n word: word\n };\n }\n // There are 4 cases:\n // a) old workerRequest is valid & completed, renderDecorationsTimer fired\n // b) old workerRequest is valid & completed, renderDecorationsTimer not fired\n // c) old workerRequest is valid, but not completed\n // d) old workerRequest is not valid\n // For a) no action is needed\n // For c), member 'lastCursorPositionChangeTime' will be used when installing the timer so no action is needed\n this.lastCursorPositionChangeTime = (new Date()).getTime();\n if (workerRequestIsValid) {\n if (this.workerRequestCompleted && this.renderDecorationsTimer !== -1) {\n // case b)\n // Delay the firing of renderDecorationsTimer by an extra 250 ms\n clearTimeout(this.renderDecorationsTimer);\n this.renderDecorationsTimer = -1;\n this._beginRenderDecorations();\n }\n }\n else {\n // case d)\n // Stop all previous actions and start fresh\n this._stopAll();\n const myRequestId = ++this.workerRequestTokenId;\n this.workerRequestCompleted = false;\n const otherModelsToHighlight = this.getOtherModelsToHighlight(this.editor.getModel());\n // when reaching here, there are two possible states.\n // \t\t1) we have text focus, and a valid query was updated.\n // \t\t2) we do not have text focus, and a valid query is cached.\n // the query will ALWAYS have the correct data for the current highlight request, so it can always be passed to the workerRequest safely\n if (!WordHighlighter_1.query.modelInfo || WordHighlighter_1.query.modelInfo.model.isDisposed()) {\n return;\n }\n this.workerRequest = this.computeWithModel(WordHighlighter_1.query.modelInfo.model, WordHighlighter_1.query.modelInfo.selection, WordHighlighter_1.query.word, otherModelsToHighlight);\n (_a = this.workerRequest) === null || _a === void 0 ? void 0 : _a.result.then(data => {\n if (myRequestId === this.workerRequestTokenId) {\n this.workerRequestCompleted = true;\n this.workerRequestValue = data || [];\n this._beginRenderDecorations();\n }\n }, onUnexpectedError);\n }\n }\n computeWithModel(model, selection, word, otherModels) {\n if (!otherModels.length) {\n return computeOccurencesAtPosition(this.providers, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */));\n }\n else {\n return computeOccurencesMultiModel(this.multiDocumentProviders, model, selection, word, this.editor.getOption(131 /* EditorOption.wordSeparators */), otherModels);\n }\n }\n _beginRenderDecorations() {\n const currentTime = (new Date()).getTime();\n const minimumRenderTime = this.lastCursorPositionChangeTime + 250;\n if (currentTime >= minimumRenderTime) {\n // Synchronous\n this.renderDecorationsTimer = -1;\n this.renderDecorations();\n }\n else {\n // Asynchronous\n this.renderDecorationsTimer = setTimeout(() => {\n this.renderDecorations();\n }, (minimumRenderTime - currentTime));\n }\n }\n renderDecorations() {\n var _a, _b, _c;\n this.renderDecorationsTimer = -1;\n // create new loop, iterate over current editors using this.codeEditorService.listCodeEditors(),\n // if the URI of that codeEditor is in the map, then add the decorations to the decorations array\n // then set the decorations for the editor\n const currentEditors = this.codeEditorService.listCodeEditors();\n for (const editor of currentEditors) {\n const editorHighlighterContrib = WordHighlighterContribution.get(editor);\n if (!editorHighlighterContrib) {\n continue;\n }\n const newDecorations = [];\n const uri = (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.uri;\n if (uri && this.workerRequestValue.has(uri)) {\n const oldDecorationIDs = WordHighlighter_1.storedDecorations.get(uri);\n const newDocumentHighlights = this.workerRequestValue.get(uri);\n if (newDocumentHighlights) {\n for (const highlight of newDocumentHighlights) {\n if (!highlight.range) {\n continue;\n }\n newDecorations.push({\n range: highlight.range,\n options: getHighlightDecorationOptions(highlight.kind)\n });\n }\n }\n let newDecorationIDs = [];\n editor.changeDecorations((changeAccessor) => {\n newDecorationIDs = changeAccessor.deltaDecorations(oldDecorationIDs !== null && oldDecorationIDs !== void 0 ? oldDecorationIDs : [], newDecorations);\n });\n WordHighlighter_1.storedDecorations = WordHighlighter_1.storedDecorations.set(uri, newDecorationIDs);\n if (newDecorations.length > 0) {\n (_b = editorHighlighterContrib.wordHighlighter) === null || _b === void 0 ? void 0 : _b.decorations.set(newDecorations);\n (_c = editorHighlighterContrib.wordHighlighter) === null || _c === void 0 ? void 0 : _c._hasWordHighlights.set(true);\n }\n }\n }\n }\n dispose() {\n this._stopSingular();\n this.toUnhook.dispose();\n }\n};\nWordHighlighter.storedDecorations = new ResourceMap();\nWordHighlighter.query = null;\nWordHighlighter = WordHighlighter_1 = __decorate([\n __param(4, ICodeEditorService)\n], WordHighlighter);\nlet WordHighlighterContribution = WordHighlighterContribution_1 = class WordHighlighterContribution extends Disposable {\n static get(editor) {\n return editor.getContribution(WordHighlighterContribution_1.ID);\n }\n constructor(editor, contextKeyService, languageFeaturesService, codeEditorService) {\n super();\n this._wordHighlighter = null;\n const createWordHighlighterIfPossible = () => {\n if (editor.hasModel() && !editor.getModel().isTooLargeForTokenization()) {\n this._wordHighlighter = new WordHighlighter(editor, languageFeaturesService.documentHighlightProvider, languageFeaturesService.multiDocumentHighlightProvider, contextKeyService, codeEditorService);\n }\n };\n this._register(editor.onDidChangeModel((e) => {\n if (this._wordHighlighter) {\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n createWordHighlighterIfPossible();\n }));\n createWordHighlighterIfPossible();\n }\n get wordHighlighter() {\n return this._wordHighlighter;\n }\n saveViewState() {\n if (this._wordHighlighter && this._wordHighlighter.hasDecorations()) {\n return true;\n }\n return false;\n }\n moveNext() {\n var _a;\n (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveNext();\n }\n moveBack() {\n var _a;\n (_a = this._wordHighlighter) === null || _a === void 0 ? void 0 : _a.moveBack();\n }\n restoreViewState(state) {\n if (this._wordHighlighter && state) {\n this._wordHighlighter.restore();\n }\n }\n dispose() {\n if (this._wordHighlighter) {\n this._wordHighlighter.dispose();\n this._wordHighlighter = null;\n }\n super.dispose();\n }\n};\nWordHighlighterContribution.ID = 'editor.contrib.wordHighlighter';\nWordHighlighterContribution = WordHighlighterContribution_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, ILanguageFeaturesService),\n __param(3, ICodeEditorService)\n], WordHighlighterContribution);\nexport { WordHighlighterContribution };\nclass WordHighlightNavigationAction extends EditorAction {\n constructor(next, opts) {\n super(opts);\n this._isNext = next;\n }\n run(accessor, editor) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n if (this._isNext) {\n controller.moveNext();\n }\n else {\n controller.moveBack();\n }\n }\n}\nclass NextWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(true, {\n id: 'editor.action.wordHighlight.next',\n label: nls.localize('wordHighlight.next.label', \"Go to Next Symbol Highlight\"),\n alias: 'Go to Next Symbol Highlight',\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass PrevWordHighlightAction extends WordHighlightNavigationAction {\n constructor() {\n super(false, {\n id: 'editor.action.wordHighlight.prev',\n label: nls.localize('wordHighlight.previous.label', \"Go to Previous Symbol Highlight\"),\n alias: 'Go to Previous Symbol Highlight',\n precondition: ctxHasWordHighlights,\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n}\nclass TriggerWordHighlightAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.wordHighlight.trigger',\n label: nls.localize('wordHighlight.trigger.label', \"Trigger Symbol Highlight\"),\n alias: 'Trigger Symbol Highlight',\n precondition: ctxHasWordHighlights.toNegated(),\n kbOpts: {\n kbExpr: EditorContextKeys.editorTextFocus,\n primary: 0,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor, args) {\n const controller = WordHighlighterContribution.get(editor);\n if (!controller) {\n return;\n }\n controller.restoreViewState(true);\n }\n}\nregisterEditorContribution(WordHighlighterContribution.ID, WordHighlighterContribution, 0 /* EditorContributionInstantiation.Eager */); // eager because it uses `saveViewState`/`restoreViewState`\nregisterEditorAction(NextWordHighlightAction);\nregisterEditorAction(PrevWordHighlightAction);\nregisterEditorAction(TriggerWordHighlightAction);\n// registerEditorFeature(TextualMultiDocumentHighlightFeature);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\n/**\n * Defines the icon position of button.\n */\nexport var IconPosition;\n(function (IconPosition) {\n /**\n * Positions the Icon at the left of the text content in the Button.\n */\n IconPosition[\"Left\"] = \"Left\";\n /**\n * Positions the Icon at the right of the text content in the Button.\n */\n IconPosition[\"Right\"] = \"Right\";\n /**\n * Positions the Icon at the top of the text content in the Button.\n */\n IconPosition[\"Top\"] = \"Top\";\n /**\n * Positions the Icon at the bottom of the text content in the Button.\n */\n IconPosition[\"Bottom\"] = \"Bottom\";\n})(IconPosition || (IconPosition = {}));\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {ButtonModel} options - Specifies the button model\n * @param {string|HTMLButtonElement} element - Specifies the target element\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n *\n * @returns {void}\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n Button.prototype.destroy = function () {\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module name\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist Data\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @private\n * @returns {void}\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ButtonModel} newProp - Specifies new properties\n * @param {ButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\n var span = this.element.querySelector('span.e-btn-icon');\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss': {\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n }\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content': {\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n }\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n *\n * @public\n * @returns {void}\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(true)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst dataType_1 = require(\"../../compile/validate/dataType\");\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst equal_1 = require(\"../../runtime/equal\");\nconst error = {\n message: ({ params: { i, j } }) => (0, codegen_1.str) `must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({ params: { i, j } }) => (0, codegen_1._) `{i: ${i}, j: ${j}}`,\n};\nconst def = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt) {\n const { gen, data, $data, schema, parentSchema, schemaCode, it } = cxt;\n if (!$data && !schema)\n return;\n const valid = gen.let(\"valid\");\n const itemTypes = parentSchema.items ? (0, dataType_1.getSchemaTypes)(parentSchema.items) : [];\n cxt.block$data(valid, validateUniqueItems, (0, codegen_1._) `${schemaCode} === false`);\n cxt.ok(valid);\n function validateUniqueItems() {\n const i = gen.let(\"i\", (0, codegen_1._) `${data}.length`);\n const j = gen.let(\"j\");\n cxt.setParams({ i, j });\n gen.assign(valid, true);\n gen.if((0, codegen_1._) `${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j));\n }\n function canOptimize() {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\");\n }\n function loopN(i, j) {\n const item = gen.name(\"item\");\n const wrongType = (0, dataType_1.checkDataTypes)(itemTypes, item, it.opts.strictNumbers, dataType_1.DataType.Wrong);\n const indices = gen.const(\"indices\", (0, codegen_1._) `{}`);\n gen.for((0, codegen_1._) `;${i}--;`, () => {\n gen.let(item, (0, codegen_1._) `${data}[${i}]`);\n gen.if(wrongType, (0, codegen_1._) `continue`);\n if (itemTypes.length > 1)\n gen.if((0, codegen_1._) `typeof ${item} == \"string\"`, (0, codegen_1._) `${item} += \"_\"`);\n gen\n .if((0, codegen_1._) `typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, (0, codegen_1._) `${indices}[${item}]`);\n cxt.error();\n gen.assign(valid, false).break();\n })\n .code((0, codegen_1._) `${indices}[${item}] = ${i}`);\n });\n }\n function loopN2(i, j) {\n const eql = (0, util_1.useFunc)(gen, equal_1.default);\n const outer = gen.name(\"outer\");\n gen.label(outer).for((0, codegen_1._) `;${i}--;`, () => gen.for((0, codegen_1._) `${j} = ${i}; ${j}--;`, () => gen.if((0, codegen_1._) `${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error();\n gen.assign(valid, false).break(outer);\n })));\n }\n },\n};\nexports.default = def;\n//# sourceMappingURL=uniqueItems.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport * as dom from '../../../../base/browser/dom.js';\nimport { disposableTimeout } from '../../../../base/common/async.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { Disposable, MutableDisposable } from '../../../../base/common/lifecycle.js';\nimport { noBreakWhitespace } from '../../../../base/common/strings.js';\nimport { ThemeIcon } from '../../../../base/common/themables.js';\nimport './inlineProgressWidget.css';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nconst inlineProgressDecoration = ModelDecorationOptions.register({\n description: 'inline-progress-widget',\n stickiness: 1 /* TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges */,\n showIfCollapsed: true,\n after: {\n content: noBreakWhitespace,\n inlineClassName: 'inline-editor-progress-decoration',\n inlineClassNameAffectsLetterSpacing: true,\n }\n});\nclass InlineProgressWidget extends Disposable {\n constructor(typeId, editor, range, title, delegate) {\n super();\n this.typeId = typeId;\n this.editor = editor;\n this.range = range;\n this.delegate = delegate;\n this.allowEditorOverflow = false;\n this.suppressMouseDown = true;\n this.create(title);\n this.editor.addContentWidget(this);\n this.editor.layoutContentWidget(this);\n }\n create(title) {\n this.domNode = dom.$('.inline-progress-widget');\n this.domNode.role = 'button';\n this.domNode.title = title;\n const iconElement = dom.$('span.icon');\n this.domNode.append(iconElement);\n iconElement.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading), 'codicon-modifier-spin');\n const updateSize = () => {\n const lineHeight = this.editor.getOption(67 /* EditorOption.lineHeight */);\n this.domNode.style.height = `${lineHeight}px`;\n this.domNode.style.width = `${Math.ceil(0.8 * lineHeight)}px`;\n };\n updateSize();\n this._register(this.editor.onDidChangeConfiguration(c => {\n if (c.hasChanged(52 /* EditorOption.fontSize */) || c.hasChanged(67 /* EditorOption.lineHeight */)) {\n updateSize();\n }\n }));\n this._register(dom.addDisposableListener(this.domNode, dom.EventType.CLICK, e => {\n this.delegate.cancel();\n }));\n }\n getId() {\n return InlineProgressWidget.baseId + '.' + this.typeId;\n }\n getDomNode() {\n return this.domNode;\n }\n getPosition() {\n return {\n position: { lineNumber: this.range.startLineNumber, column: this.range.startColumn },\n preference: [0 /* ContentWidgetPositionPreference.EXACT */]\n };\n }\n dispose() {\n super.dispose();\n this.editor.removeContentWidget(this);\n }\n}\nInlineProgressWidget.baseId = 'editor.widget.inlineProgressWidget';\nlet InlineProgressManager = class InlineProgressManager extends Disposable {\n constructor(id, _editor, _instantiationService) {\n super();\n this.id = id;\n this._editor = _editor;\n this._instantiationService = _instantiationService;\n /** Delay before showing the progress widget */\n this._showDelay = 500; // ms\n this._showPromise = this._register(new MutableDisposable());\n this._currentWidget = new MutableDisposable();\n this._operationIdPool = 0;\n this._currentDecorations = _editor.createDecorationsCollection();\n }\n async showWhile(position, title, promise) {\n const operationId = this._operationIdPool++;\n this._currentOperation = operationId;\n this.clear();\n this._showPromise.value = disposableTimeout(() => {\n const range = Range.fromPositions(position);\n const decorationIds = this._currentDecorations.set([{\n range: range,\n options: inlineProgressDecoration,\n }]);\n if (decorationIds.length > 0) {\n this._currentWidget.value = this._instantiationService.createInstance(InlineProgressWidget, this.id, this._editor, range, title, promise);\n }\n }, this._showDelay);\n try {\n return await promise;\n }\n finally {\n if (this._currentOperation === operationId) {\n this.clear();\n this._currentOperation = undefined;\n }\n }\n }\n clear() {\n this._showPromise.clear();\n this._currentDecorations.clear();\n this._currentWidget.clear();\n }\n};\nInlineProgressManager = __decorate([\n __param(2, IInstantiationService)\n], InlineProgressManager);\nexport { InlineProgressManager };\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","import '../../editor/editor.api.js';\n/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../../editor/editor.api.js\";\n\n// src/language/json/monaco.contribution.ts\nvar LanguageServiceDefaultsImpl = class {\n constructor(languageId, diagnosticsOptions, modeConfiguration) {\n this._onDidChange = new monaco_editor_core_exports.Emitter();\n this._languageId = languageId;\n this.setDiagnosticsOptions(diagnosticsOptions);\n this.setModeConfiguration(modeConfiguration);\n }\n get onDidChange() {\n return this._onDidChange.event;\n }\n get languageId() {\n return this._languageId;\n }\n get modeConfiguration() {\n return this._modeConfiguration;\n }\n get diagnosticsOptions() {\n return this._diagnosticsOptions;\n }\n setDiagnosticsOptions(options) {\n this._diagnosticsOptions = options || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n setModeConfiguration(modeConfiguration) {\n this._modeConfiguration = modeConfiguration || /* @__PURE__ */ Object.create(null);\n this._onDidChange.fire(this);\n }\n};\nvar diagnosticDefault = {\n validate: true,\n allowComments: true,\n schemas: [],\n enableSchemaRequest: false,\n schemaRequest: \"warning\",\n schemaValidation: \"warning\",\n comments: \"error\",\n trailingCommas: \"error\"\n};\nvar modeConfigurationDefault = {\n documentFormattingEdits: true,\n documentRangeFormattingEdits: true,\n completionItems: true,\n hovers: true,\n documentSymbols: true,\n tokens: true,\n colors: true,\n foldingRanges: true,\n diagnostics: true,\n selectionRanges: true\n};\nvar jsonDefaults = new LanguageServiceDefaultsImpl(\n \"json\",\n diagnosticDefault,\n modeConfigurationDefault\n);\nvar getWorker = () => getMode().then((mode) => mode.getWorker());\nmonaco_editor_core_exports.languages.json = { jsonDefaults, getWorker };\nfunction getMode() {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/language/json/jsonMode\"], resolve, reject);\n });\n } else {\n return import(\"./jsonMode.js\");\n }\n}\nmonaco_editor_core_exports.languages.register({\n id: \"json\",\n extensions: [\".json\", \".bowerrc\", \".jshintrc\", \".jscsrc\", \".eslintrc\", \".babelrc\", \".har\"],\n aliases: [\"JSON\", \"json\"],\n mimetypes: [\"application/json\"]\n});\nmonaco_editor_core_exports.languages.onLanguage(\"json\", () => {\n getMode().then((mode) => mode.setupMode(jsonDefaults));\n});\nexport {\n getWorker,\n jsonDefaults\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/pgsql/pgsql.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"pgsql\",\n extensions: [],\n aliases: [\"PostgreSQL\", \"postgres\", \"pg\", \"postgre\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/pgsql/pgsql\"], resolve, reject);\n });\n } else {\n return import(\"./pgsql.js\");\n }\n }\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MissingRefError = exports.ValidationError = exports.CodeGen = exports.Name = exports.nil = exports.stringify = exports.str = exports._ = exports.KeywordCxt = exports.Ajv = void 0;\nconst core_1 = require(\"./core\");\nconst draft7_1 = require(\"./vocabularies/draft7\");\nconst discriminator_1 = require(\"./vocabularies/discriminator\");\nconst draft7MetaSchema = require(\"./refs/json-schema-draft-07.json\");\nconst META_SUPPORT_DATA = [\"/properties\"];\nconst META_SCHEMA_ID = \"http://json-schema.org/draft-07/schema\";\nclass Ajv extends core_1.default {\n _addVocabularies() {\n super._addVocabularies();\n draft7_1.default.forEach((v) => this.addVocabulary(v));\n if (this.opts.discriminator)\n this.addKeyword(discriminator_1.default);\n }\n _addDefaultMetaSchema() {\n super._addDefaultMetaSchema();\n if (!this.opts.meta)\n return;\n const metaSchema = this.opts.$data\n ? this.$dataMetaSchema(draft7MetaSchema, META_SUPPORT_DATA)\n : draft7MetaSchema;\n this.addMetaSchema(metaSchema, META_SCHEMA_ID, false);\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID;\n }\n defaultMeta() {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined));\n }\n}\nexports.Ajv = Ajv;\nmodule.exports = exports = Ajv;\nmodule.exports.Ajv = Ajv;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = Ajv;\nvar validate_1 = require(\"./compile/validate\");\nObject.defineProperty(exports, \"KeywordCxt\", { enumerable: true, get: function () { return validate_1.KeywordCxt; } });\nvar codegen_1 = require(\"./compile/codegen\");\nObject.defineProperty(exports, \"_\", { enumerable: true, get: function () { return codegen_1._; } });\nObject.defineProperty(exports, \"str\", { enumerable: true, get: function () { return codegen_1.str; } });\nObject.defineProperty(exports, \"stringify\", { enumerable: true, get: function () { return codegen_1.stringify; } });\nObject.defineProperty(exports, \"nil\", { enumerable: true, get: function () { return codegen_1.nil; } });\nObject.defineProperty(exports, \"Name\", { enumerable: true, get: function () { return codegen_1.Name; } });\nObject.defineProperty(exports, \"CodeGen\", { enumerable: true, get: function () { return codegen_1.CodeGen; } });\nvar validation_error_1 = require(\"./runtime/validation_error\");\nObject.defineProperty(exports, \"ValidationError\", { enumerable: true, get: function () { return validation_error_1.default; } });\nvar ref_error_1 = require(\"./compile/ref_error\");\nObject.defineProperty(exports, \"MissingRefError\", { enumerable: true, get: function () { return ref_error_1.default; } });\n//# sourceMappingURL=ajv.js.map","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/html/html.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"html\",\n extensions: [\".html\", \".htm\", \".shtml\", \".xhtml\", \".mdoc\", \".jsp\", \".asp\", \".aspx\", \".jshtm\"],\n aliases: [\"HTML\", \"htm\", \"html\", \"xhtml\"],\n mimetypes: [\"text/html\", \"text/x-jshtm\", \"text/template\", \"text/ng-template\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/html/html\"], resolve, reject);\n });\n } else {\n return import(\"./html.js\");\n }\n }\n});\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from '../../../base/common/strings.js';\n/**\n * A column in a position is the gap between two adjacent characters. The methods here\n * work with a concept called \"visible column\". A visible column is a very rough approximation\n * of the horizontal screen position of a column. For example, using a tab size of 4:\n * ```txt\n * |||T|ext\n * | | | \\---- column = 4, visible column = 9\n * | | \\------ column = 3, visible column = 8\n * | \\------------ column = 2, visible column = 4\n * \\------------------ column = 1, visible column = 0\n * ```\n *\n * **NOTE**: Visual columns do not work well for RTL text or variable-width fonts or characters.\n *\n * **NOTE**: These methods work and make sense both on the model and on the view model.\n */\nexport class CursorColumns {\n static _nextVisibleColumn(codePoint, visibleColumn, tabSize) {\n if (codePoint === 9 /* CharCode.Tab */) {\n return CursorColumns.nextRenderTabStop(visibleColumn, tabSize);\n }\n if (strings.isFullWidthCharacter(codePoint) || strings.isEmojiImprecise(codePoint)) {\n return visibleColumn + 2;\n }\n return visibleColumn + 1;\n }\n /**\n * Returns a visible column from a column.\n * @see {@link CursorColumns}\n */\n static visibleColumnFromColumn(lineContent, column, tabSize) {\n const textLen = Math.min(column - 1, lineContent.length);\n const text = lineContent.substring(0, textLen);\n const iterator = new strings.GraphemeIterator(text);\n let result = 0;\n while (!iterator.eol()) {\n const codePoint = strings.getNextCodePoint(text, textLen, iterator.offset);\n iterator.nextGraphemeLength();\n result = this._nextVisibleColumn(codePoint, result, tabSize);\n }\n return result;\n }\n /**\n * Returns a column from a visible column.\n * @see {@link CursorColumns}\n */\n static columnFromVisibleColumn(lineContent, visibleColumn, tabSize) {\n if (visibleColumn <= 0) {\n return 1;\n }\n const lineContentLength = lineContent.length;\n const iterator = new strings.GraphemeIterator(lineContent);\n let beforeVisibleColumn = 0;\n let beforeColumn = 1;\n while (!iterator.eol()) {\n const codePoint = strings.getNextCodePoint(lineContent, lineContentLength, iterator.offset);\n iterator.nextGraphemeLength();\n const afterVisibleColumn = this._nextVisibleColumn(codePoint, beforeVisibleColumn, tabSize);\n const afterColumn = iterator.offset + 1;\n if (afterVisibleColumn >= visibleColumn) {\n const beforeDelta = visibleColumn - beforeVisibleColumn;\n const afterDelta = afterVisibleColumn - visibleColumn;\n if (afterDelta < beforeDelta) {\n return afterColumn;\n }\n else {\n return beforeColumn;\n }\n }\n beforeVisibleColumn = afterVisibleColumn;\n beforeColumn = afterColumn;\n }\n // walked the entire string\n return lineContentLength + 1;\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n * @see {@link CursorColumns}\n */\n static nextRenderTabStop(visibleColumn, tabSize) {\n return visibleColumn + tabSize - visibleColumn % tabSize;\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n * @see {@link CursorColumns}\n */\n static nextIndentTabStop(visibleColumn, indentSize) {\n return visibleColumn + indentSize - visibleColumn % indentSize;\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n * @see {@link CursorColumns}\n */\n static prevRenderTabStop(column, tabSize) {\n return Math.max(0, column - 1 - (column - 1) % tabSize);\n }\n /**\n * ATTENTION: This works with 0-based columns (as opposed to the regular 1-based columns)\n * @see {@link CursorColumns}\n */\n static prevIndentTabStop(column, indentSize) {\n return Math.max(0, column - 1 - (column - 1) % indentSize);\n }\n}\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getData = exports.KeywordCxt = exports.validateFunctionCode = void 0;\nconst boolSchema_1 = require(\"./boolSchema\");\nconst dataType_1 = require(\"./dataType\");\nconst applicability_1 = require(\"./applicability\");\nconst dataType_2 = require(\"./dataType\");\nconst defaults_1 = require(\"./defaults\");\nconst keyword_1 = require(\"./keyword\");\nconst subschema_1 = require(\"./subschema\");\nconst codegen_1 = require(\"../codegen\");\nconst names_1 = require(\"../names\");\nconst resolve_1 = require(\"../resolve\");\nconst util_1 = require(\"../util\");\nconst errors_1 = require(\"../errors\");\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nfunction validateFunctionCode(it) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it);\n return;\n }\n }\n validateFunction(it, () => (0, boolSchema_1.topBoolOrEmptySchema)(it));\n}\nexports.validateFunctionCode = validateFunctionCode;\nfunction validateFunction({ gen, validateName, schema, schemaEnv, opts }, body) {\n if (opts.code.es5) {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${names_1.default.valCxt}`, schemaEnv.$async, () => {\n gen.code((0, codegen_1._) `\"use strict\"; ${funcSourceUrl(schema, opts)}`);\n destructureValCxtES5(gen, opts);\n gen.code(body);\n });\n }\n else {\n gen.func(validateName, (0, codegen_1._) `${names_1.default.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () => gen.code(funcSourceUrl(schema, opts)).code(body));\n }\n}\nfunction destructureValCxt(opts) {\n return (0, codegen_1._) `{${names_1.default.instancePath}=\"\", ${names_1.default.parentData}, ${names_1.default.parentDataProperty}, ${names_1.default.rootData}=${names_1.default.data}${opts.dynamicRef ? (0, codegen_1._) `, ${names_1.default.dynamicAnchors}={}` : codegen_1.nil}}={}`;\n}\nfunction destructureValCxtES5(gen, opts) {\n gen.if(names_1.default.valCxt, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.instancePath}`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentData}`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.parentDataProperty}`);\n gen.var(names_1.default.rootData, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.rootData}`);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `${names_1.default.valCxt}.${names_1.default.dynamicAnchors}`);\n }, () => {\n gen.var(names_1.default.instancePath, (0, codegen_1._) `\"\"`);\n gen.var(names_1.default.parentData, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.parentDataProperty, (0, codegen_1._) `undefined`);\n gen.var(names_1.default.rootData, names_1.default.data);\n if (opts.dynamicRef)\n gen.var(names_1.default.dynamicAnchors, (0, codegen_1._) `{}`);\n });\n}\nfunction topSchemaObjCode(it) {\n const { schema, opts, gen } = it;\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n checkNoDefault(it);\n gen.let(names_1.default.vErrors, null);\n gen.let(names_1.default.errors, 0);\n if (opts.unevaluated)\n resetEvaluated(it);\n typeAndKeywords(it);\n returnResults(it);\n });\n return;\n}\nfunction resetEvaluated(it) {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const { gen, validateName } = it;\n it.evaluated = gen.const(\"evaluated\", (0, codegen_1._) `${validateName}.evaluated`);\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicProps`, () => gen.assign((0, codegen_1._) `${it.evaluated}.props`, (0, codegen_1._) `undefined`));\n gen.if((0, codegen_1._) `${it.evaluated}.dynamicItems`, () => gen.assign((0, codegen_1._) `${it.evaluated}.items`, (0, codegen_1._) `undefined`));\n}\nfunction funcSourceUrl(schema, opts) {\n const schId = typeof schema == \"object\" && schema[opts.schemaId];\n return schId && (opts.code.source || opts.code.process) ? (0, codegen_1._) `/*# sourceURL=${schId} */` : codegen_1.nil;\n}\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it, valid) {\n if (isSchemaObj(it)) {\n checkKeywords(it);\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid);\n return;\n }\n }\n (0, boolSchema_1.boolOrEmptySchema)(it, valid);\n}\nfunction schemaCxtHasRules({ schema, self }) {\n if (typeof schema == \"boolean\")\n return !schema;\n for (const key in schema)\n if (self.RULES.all[key])\n return true;\n return false;\n}\nfunction isSchemaObj(it) {\n return typeof it.schema != \"boolean\";\n}\nfunction subSchemaObjCode(it, valid) {\n const { schema, gen, opts } = it;\n if (opts.$comment && schema.$comment)\n commentKeyword(it);\n updateContext(it);\n checkAsyncSchema(it);\n const errsCount = gen.const(\"_errs\", names_1.default.errors);\n typeAndKeywords(it, errsCount);\n // TODO var\n gen.var(valid, (0, codegen_1._) `${errsCount} === ${names_1.default.errors}`);\n}\nfunction checkKeywords(it) {\n (0, util_1.checkUnknownRules)(it);\n checkRefsAndKeywords(it);\n}\nfunction typeAndKeywords(it, errsCount) {\n if (it.opts.jtd)\n return schemaKeywords(it, [], false, errsCount);\n const types = (0, dataType_1.getSchemaTypes)(it.schema);\n const checkedTypes = (0, dataType_1.coerceAndCheckDataType)(it, types);\n schemaKeywords(it, types, !checkedTypes, errsCount);\n}\nfunction checkRefsAndKeywords(it) {\n const { schema, errSchemaPath, opts, self } = it;\n if (schema.$ref && opts.ignoreKeywordsWithRef && (0, util_1.schemaHasRulesButRef)(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`);\n }\n}\nfunction checkNoDefault(it) {\n const { schema, opts } = it;\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n (0, util_1.checkStrictMode)(it, \"default is ignored in the schema root\");\n }\n}\nfunction updateContext(it) {\n const schId = it.schema[it.opts.schemaId];\n if (schId)\n it.baseId = (0, resolve_1.resolveUrl)(it.opts.uriResolver, it.baseId, schId);\n}\nfunction checkAsyncSchema(it) {\n if (it.schema.$async && !it.schemaEnv.$async)\n throw new Error(\"async schema in sync schema\");\n}\nfunction commentKeyword({ gen, schemaEnv, schema, errSchemaPath, opts }) {\n const msg = schema.$comment;\n if (opts.$comment === true) {\n gen.code((0, codegen_1._) `${names_1.default.self}.logger.log(${msg})`);\n }\n else if (typeof opts.$comment == \"function\") {\n const schemaPath = (0, codegen_1.str) `${errSchemaPath}/$comment`;\n const rootName = gen.scopeValue(\"root\", { ref: schemaEnv.root });\n gen.code((0, codegen_1._) `${names_1.default.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`);\n }\n}\nfunction returnResults(it) {\n const { gen, schemaEnv, validateName, ValidationError, opts } = it;\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if((0, codegen_1._) `${names_1.default.errors} === 0`, () => gen.return(names_1.default.data), () => gen.throw((0, codegen_1._) `new ${ValidationError}(${names_1.default.vErrors})`));\n }\n else {\n gen.assign((0, codegen_1._) `${validateName}.errors`, names_1.default.vErrors);\n if (opts.unevaluated)\n assignEvaluated(it);\n gen.return((0, codegen_1._) `${names_1.default.errors} === 0`);\n }\n}\nfunction assignEvaluated({ gen, evaluated, props, items }) {\n if (props instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.props`, props);\n if (items instanceof codegen_1.Name)\n gen.assign((0, codegen_1._) `${evaluated}.items`, items);\n}\nfunction schemaKeywords(it, types, typeErrors, errsCount) {\n const { gen, schema, data, allErrors, opts, self } = it;\n const { RULES } = self;\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", RULES.all.$ref.definition)); // TODO typecast\n return;\n }\n if (!opts.jtd)\n checkStrictTypes(it, types);\n gen.block(() => {\n for (const group of RULES.rules)\n groupKeywords(group);\n groupKeywords(RULES.post);\n });\n function groupKeywords(group) {\n if (!(0, applicability_1.shouldUseGroup)(schema, group))\n return;\n if (group.type) {\n gen.if((0, dataType_2.checkDataType)(group.type, data, opts.strictNumbers));\n iterateKeywords(it, group);\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else();\n (0, dataType_2.reportTypeError)(it);\n }\n gen.endIf();\n }\n else {\n iterateKeywords(it, group);\n }\n // TODO make it \"ok\" call?\n if (!allErrors)\n gen.if((0, codegen_1._) `${names_1.default.errors} === ${errsCount || 0}`);\n }\n}\nfunction iterateKeywords(it, group) {\n const { gen, schema, opts: { useDefaults }, } = it;\n if (useDefaults)\n (0, defaults_1.assignDefaults)(it, group.type);\n gen.block(() => {\n for (const rule of group.rules) {\n if ((0, applicability_1.shouldUseRule)(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type);\n }\n }\n });\n}\nfunction checkStrictTypes(it, types) {\n if (it.schemaEnv.meta || !it.opts.strictTypes)\n return;\n checkContextTypes(it, types);\n if (!it.opts.allowUnionTypes)\n checkMultipleTypes(it, types);\n checkKeywordTypes(it, it.dataTypes);\n}\nfunction checkContextTypes(it, types) {\n if (!types.length)\n return;\n if (!it.dataTypes.length) {\n it.dataTypes = types;\n return;\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`);\n }\n });\n narrowSchemaTypes(it, types);\n}\nfunction checkMultipleTypes(it, ts) {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\");\n }\n}\nfunction checkKeywordTypes(it, ts) {\n const rules = it.self.RULES.all;\n for (const keyword in rules) {\n const rule = rules[keyword];\n if (typeof rule == \"object\" && (0, applicability_1.shouldUseRule)(it.schema, rule)) {\n const { type } = rule.definition;\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`);\n }\n }\n }\n}\nfunction hasApplicableType(schTs, kwdT) {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"));\n}\nfunction includesType(ts, t) {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"));\n}\nfunction narrowSchemaTypes(it, withTypes) {\n const ts = [];\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t))\n ts.push(t);\n else if (withTypes.includes(\"integer\") && t === \"number\")\n ts.push(\"integer\");\n }\n it.dataTypes = ts;\n}\nfunction strictTypesError(it, msg) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath;\n msg += ` at \"${schemaPath}\" (strictTypes)`;\n (0, util_1.checkStrictMode)(it, msg, it.opts.strictTypes);\n}\nclass KeywordCxt {\n constructor(it, def, keyword) {\n (0, keyword_1.validateKeywordUsage)(it, def, keyword);\n this.gen = it.gen;\n this.allErrors = it.allErrors;\n this.keyword = keyword;\n this.data = it.data;\n this.schema = it.schema[keyword];\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data;\n this.schemaValue = (0, util_1.schemaRefOrVal)(it, this.schema, keyword, this.$data);\n this.schemaType = def.schemaType;\n this.parentSchema = it.schema;\n this.params = {};\n this.it = it;\n this.def = def;\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it));\n }\n else {\n this.schemaCode = this.schemaValue;\n if (!(0, keyword_1.validSchemaType)(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`);\n }\n }\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", names_1.default.errors);\n }\n }\n result(condition, successAction, failAction) {\n this.failResult((0, codegen_1.not)(condition), successAction, failAction);\n }\n failResult(condition, successAction, failAction) {\n this.gen.if(condition);\n if (failAction)\n failAction();\n else\n this.error();\n if (successAction) {\n this.gen.else();\n successAction();\n if (this.allErrors)\n this.gen.endIf();\n }\n else {\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n }\n pass(condition, failAction) {\n this.failResult((0, codegen_1.not)(condition), undefined, failAction);\n }\n fail(condition) {\n if (condition === undefined) {\n this.error();\n if (!this.allErrors)\n this.gen.if(false); // this branch will be removed by gen.optimize\n return;\n }\n this.gen.if(condition);\n this.error();\n if (this.allErrors)\n this.gen.endIf();\n else\n this.gen.else();\n }\n fail$data(condition) {\n if (!this.$data)\n return this.fail(condition);\n const { schemaCode } = this;\n this.fail((0, codegen_1._) `${schemaCode} !== undefined && (${(0, codegen_1.or)(this.invalid$data(), condition)})`);\n }\n error(append, errorParams, errorPaths) {\n if (errorParams) {\n this.setParams(errorParams);\n this._error(append, errorPaths);\n this.setParams({});\n return;\n }\n this._error(append, errorPaths);\n }\n _error(append, errorPaths) {\n ;\n (append ? errors_1.reportExtraError : errors_1.reportError)(this, this.def.error, errorPaths);\n }\n $dataError() {\n (0, errors_1.reportError)(this, this.def.$dataError || errors_1.keyword$DataError);\n }\n reset() {\n if (this.errsCount === undefined)\n throw new Error('add \"trackErrors\" to keyword definition');\n (0, errors_1.resetErrorsCount)(this.gen, this.errsCount);\n }\n ok(cond) {\n if (!this.allErrors)\n this.gen.if(cond);\n }\n setParams(obj, assign) {\n if (assign)\n Object.assign(this.params, obj);\n else\n this.params = obj;\n }\n block$data(valid, codeBlock, $dataValid = codegen_1.nil) {\n this.gen.block(() => {\n this.check$data(valid, $dataValid);\n codeBlock();\n });\n }\n check$data(valid = codegen_1.nil, $dataValid = codegen_1.nil) {\n if (!this.$data)\n return;\n const { gen, schemaCode, schemaType, def } = this;\n gen.if((0, codegen_1.or)((0, codegen_1._) `${schemaCode} === undefined`, $dataValid));\n if (valid !== codegen_1.nil)\n gen.assign(valid, true);\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data());\n this.$dataError();\n if (valid !== codegen_1.nil)\n gen.assign(valid, false);\n }\n gen.else();\n }\n invalid$data() {\n const { gen, schemaCode, schemaType, def, it } = this;\n return (0, codegen_1.or)(wrong$DataType(), invalid$DataSchema());\n function wrong$DataType() {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof codegen_1.Name))\n throw new Error(\"ajv implementation error\");\n const st = Array.isArray(schemaType) ? schemaType : [schemaType];\n return (0, codegen_1._) `${(0, dataType_2.checkDataTypes)(st, schemaCode, it.opts.strictNumbers, dataType_2.DataType.Wrong)}`;\n }\n return codegen_1.nil;\n }\n function invalid$DataSchema() {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", { ref: def.validateSchema }); // TODO value.code for standalone\n return (0, codegen_1._) `!${validateSchemaRef}(${schemaCode})`;\n }\n return codegen_1.nil;\n }\n }\n subschema(appl, valid) {\n const subschema = (0, subschema_1.getSubschema)(this.it, appl);\n (0, subschema_1.extendSubschemaData)(subschema, this.it, appl);\n (0, subschema_1.extendSubschemaMode)(subschema, appl);\n const nextContext = { ...this.it, ...subschema, items: undefined, props: undefined };\n subschemaCode(nextContext, valid);\n return nextContext;\n }\n mergeEvaluated(schemaCxt, toName) {\n const { it, gen } = this;\n if (!it.opts.unevaluated)\n return;\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = util_1.mergeEvaluated.props(gen, schemaCxt.props, it.props, toName);\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = util_1.mergeEvaluated.items(gen, schemaCxt.items, it.items, toName);\n }\n }\n mergeValidEvaluated(schemaCxt, valid) {\n const { it, gen } = this;\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, codegen_1.Name));\n return true;\n }\n }\n}\nexports.KeywordCxt = KeywordCxt;\nfunction keywordCode(it, keyword, def, ruleType) {\n const cxt = new KeywordCxt(it, def, keyword);\n if (\"code\" in def) {\n def.code(cxt, ruleType);\n }\n else if (cxt.$data && def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n else if (\"macro\" in def) {\n (0, keyword_1.macroKeywordCode)(cxt, def);\n }\n else if (def.compile || def.validate) {\n (0, keyword_1.funcKeywordCode)(cxt, def);\n }\n}\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/;\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/;\nfunction getData($data, { dataLevel, dataNames, dataPathArr }) {\n let jsonPointer;\n let data;\n if ($data === \"\")\n return names_1.default.rootData;\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data))\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n jsonPointer = $data;\n data = names_1.default.rootData;\n }\n else {\n const matches = RELATIVE_JSON_POINTER.exec($data);\n if (!matches)\n throw new Error(`Invalid JSON-pointer: ${$data}`);\n const up = +matches[1];\n jsonPointer = matches[2];\n if (jsonPointer === \"#\") {\n if (up >= dataLevel)\n throw new Error(errorMsg(\"property/index\", up));\n return dataPathArr[dataLevel - up];\n }\n if (up > dataLevel)\n throw new Error(errorMsg(\"data\", up));\n data = dataNames[dataLevel - up];\n if (!jsonPointer)\n return data;\n }\n let expr = data;\n const segments = jsonPointer.split(\"/\");\n for (const segment of segments) {\n if (segment) {\n data = (0, codegen_1._) `${data}${(0, codegen_1.getProperty)((0, util_1.unescapeJsonPointer)(segment))}`;\n expr = (0, codegen_1._) `${expr} && ${data}`;\n }\n }\n return expr;\n function errorMsg(pointerType, up) {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`;\n }\n}\nexports.getData = getData;\n//# sourceMappingURL=index.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { onUnexpectedExternalError } from '../../../../base/common/errors.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nexport const CodeActionKind = new class {\n constructor() {\n this.QuickFix = new HierarchicalKind('quickfix');\n this.Refactor = new HierarchicalKind('refactor');\n this.RefactorExtract = this.Refactor.append('extract');\n this.RefactorInline = this.Refactor.append('inline');\n this.RefactorMove = this.Refactor.append('move');\n this.RefactorRewrite = this.Refactor.append('rewrite');\n this.Notebook = new HierarchicalKind('notebook');\n this.Source = new HierarchicalKind('source');\n this.SourceOrganizeImports = this.Source.append('organizeImports');\n this.SourceFixAll = this.Source.append('fixAll');\n this.SurroundWith = this.Refactor.append('surround');\n }\n};\nexport var CodeActionTriggerSource;\n(function (CodeActionTriggerSource) {\n CodeActionTriggerSource[\"Refactor\"] = \"refactor\";\n CodeActionTriggerSource[\"RefactorPreview\"] = \"refactor preview\";\n CodeActionTriggerSource[\"Lightbulb\"] = \"lightbulb\";\n CodeActionTriggerSource[\"Default\"] = \"other (default)\";\n CodeActionTriggerSource[\"SourceAction\"] = \"source action\";\n CodeActionTriggerSource[\"QuickFix\"] = \"quick fix action\";\n CodeActionTriggerSource[\"FixAll\"] = \"fix all\";\n CodeActionTriggerSource[\"OrganizeImports\"] = \"organize imports\";\n CodeActionTriggerSource[\"AutoFix\"] = \"auto fix\";\n CodeActionTriggerSource[\"QuickFixHover\"] = \"quick fix hover window\";\n CodeActionTriggerSource[\"OnSave\"] = \"save participants\";\n CodeActionTriggerSource[\"ProblemsView\"] = \"problems view\";\n})(CodeActionTriggerSource || (CodeActionTriggerSource = {}));\nexport function mayIncludeActionsOfKind(filter, providedKind) {\n // A provided kind may be a subset or superset of our filtered kind.\n if (filter.include && !filter.include.intersects(providedKind)) {\n return false;\n }\n if (filter.excludes) {\n if (filter.excludes.some(exclude => excludesAction(providedKind, exclude, filter.include))) {\n return false;\n }\n }\n // Don't return source actions unless they are explicitly requested\n if (!filter.includeSourceActions && CodeActionKind.Source.contains(providedKind)) {\n return false;\n }\n return true;\n}\nexport function filtersAction(filter, action) {\n const actionKind = action.kind ? new HierarchicalKind(action.kind) : undefined;\n // Filter out actions by kind\n if (filter.include) {\n if (!actionKind || !filter.include.contains(actionKind)) {\n return false;\n }\n }\n if (filter.excludes) {\n if (actionKind && filter.excludes.some(exclude => excludesAction(actionKind, exclude, filter.include))) {\n return false;\n }\n }\n // Don't return source actions unless they are explicitly requested\n if (!filter.includeSourceActions) {\n if (actionKind && CodeActionKind.Source.contains(actionKind)) {\n return false;\n }\n }\n if (filter.onlyIncludePreferredActions) {\n if (!action.isPreferred) {\n return false;\n }\n }\n return true;\n}\nfunction excludesAction(providedKind, exclude, include) {\n if (!exclude.contains(providedKind)) {\n return false;\n }\n if (include && exclude.contains(include)) {\n // The include is more specific, don't filter out\n return false;\n }\n return true;\n}\nexport class CodeActionCommandArgs {\n static fromUser(arg, defaults) {\n if (!arg || typeof arg !== 'object') {\n return new CodeActionCommandArgs(defaults.kind, defaults.apply, false);\n }\n return new CodeActionCommandArgs(CodeActionCommandArgs.getKindFromUser(arg, defaults.kind), CodeActionCommandArgs.getApplyFromUser(arg, defaults.apply), CodeActionCommandArgs.getPreferredUser(arg));\n }\n static getApplyFromUser(arg, defaultAutoApply) {\n switch (typeof arg.apply === 'string' ? arg.apply.toLowerCase() : '') {\n case 'first': return \"first\" /* CodeActionAutoApply.First */;\n case 'never': return \"never\" /* CodeActionAutoApply.Never */;\n case 'ifsingle': return \"ifSingle\" /* CodeActionAutoApply.IfSingle */;\n default: return defaultAutoApply;\n }\n }\n static getKindFromUser(arg, defaultKind) {\n return typeof arg.kind === 'string'\n ? new HierarchicalKind(arg.kind)\n : defaultKind;\n }\n static getPreferredUser(arg) {\n return typeof arg.preferred === 'boolean'\n ? arg.preferred\n : false;\n }\n constructor(kind, apply, preferred) {\n this.kind = kind;\n this.apply = apply;\n this.preferred = preferred;\n }\n}\nexport class CodeActionItem {\n constructor(action, provider, highlightRange) {\n this.action = action;\n this.provider = provider;\n this.highlightRange = highlightRange;\n }\n async resolve(token) {\n var _a;\n if (((_a = this.provider) === null || _a === void 0 ? void 0 : _a.resolveCodeAction) && !this.action.edit) {\n let action;\n try {\n action = await this.provider.resolveCodeAction(this.action, token);\n }\n catch (err) {\n onUnexpectedExternalError(err);\n }\n if (action) {\n this.action.edit = action.edit;\n }\n }\n return this;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\nexport class MovingAverage {\n constructor() {\n this._n = 1;\n this._val = 0;\n }\n update(value) {\n this._val = this._val + (value - this._val) / this._n;\n this._n += 1;\n return this._val;\n }\n get value() {\n return this._val;\n }\n}\nexport class SlidingWindowAverage {\n constructor(size) {\n this._n = 0;\n this._val = 0;\n this._values = [];\n this._index = 0;\n this._sum = 0;\n this._values = new Array(size);\n this._values.fill(0, 0, size);\n }\n update(value) {\n const oldValue = this._values[this._index];\n this._values[this._index] = value;\n this._index = (this._index + 1) % this._values.length;\n this._sum -= oldValue;\n this._sum += value;\n if (this._n < this._values.length) {\n this._n += 1;\n }\n this._val = this._sum / this._n;\n return this._val;\n }\n get value() {\n return this._val;\n }\n}\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","var _a, _b;\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from '../../nls.js';\nexport const LANGUAGE_DEFAULT = 'en';\nlet _isWindows = false;\nlet _isMacintosh = false;\nlet _isLinux = false;\nlet _isLinuxSnap = false;\nlet _isNative = false;\nlet _isWeb = false;\nlet _isElectron = false;\nlet _isIOS = false;\nlet _isCI = false;\nlet _isMobile = false;\nlet _locale = undefined;\nlet _language = LANGUAGE_DEFAULT;\nlet _platformLocale = LANGUAGE_DEFAULT;\nlet _translationsConfigFile = undefined;\nlet _userAgent = undefined;\nconst $globalThis = globalThis;\nlet nodeProcess = undefined;\nif (typeof $globalThis.vscode !== 'undefined' && typeof $globalThis.vscode.process !== 'undefined') {\n // Native environment (sandboxed)\n nodeProcess = $globalThis.vscode.process;\n}\nelse if (typeof process !== 'undefined' && typeof ((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) === 'string') {\n // Native environment (non-sandboxed)\n nodeProcess = process;\n}\nconst isElectronProcess = typeof ((_b = nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.versions) === null || _b === void 0 ? void 0 : _b.electron) === 'string';\nconst isElectronRenderer = isElectronProcess && (nodeProcess === null || nodeProcess === void 0 ? void 0 : nodeProcess.type) === 'renderer';\n// Native environment\nif (typeof nodeProcess === 'object') {\n _isWindows = (nodeProcess.platform === 'win32');\n _isMacintosh = (nodeProcess.platform === 'darwin');\n _isLinux = (nodeProcess.platform === 'linux');\n _isLinuxSnap = _isLinux && !!nodeProcess.env['SNAP'] && !!nodeProcess.env['SNAP_REVISION'];\n _isElectron = isElectronProcess;\n _isCI = !!nodeProcess.env['CI'] || !!nodeProcess.env['BUILD_ARTIFACTSTAGINGDIRECTORY'];\n _locale = LANGUAGE_DEFAULT;\n _language = LANGUAGE_DEFAULT;\n const rawNlsConfig = nodeProcess.env['VSCODE_NLS_CONFIG'];\n if (rawNlsConfig) {\n try {\n const nlsConfig = JSON.parse(rawNlsConfig);\n const resolved = nlsConfig.availableLanguages['*'];\n _locale = nlsConfig.locale;\n _platformLocale = nlsConfig.osLocale;\n // VSCode's default language is 'en'\n _language = resolved ? resolved : LANGUAGE_DEFAULT;\n _translationsConfigFile = nlsConfig._translationsConfigFile;\n }\n catch (e) {\n }\n }\n _isNative = true;\n}\n// Web environment\nelse if (typeof navigator === 'object' && !isElectronRenderer) {\n _userAgent = navigator.userAgent;\n _isWindows = _userAgent.indexOf('Windows') >= 0;\n _isMacintosh = _userAgent.indexOf('Macintosh') >= 0;\n _isIOS = (_userAgent.indexOf('Macintosh') >= 0 || _userAgent.indexOf('iPad') >= 0 || _userAgent.indexOf('iPhone') >= 0) && !!navigator.maxTouchPoints && navigator.maxTouchPoints > 0;\n _isLinux = _userAgent.indexOf('Linux') >= 0;\n _isMobile = (_userAgent === null || _userAgent === void 0 ? void 0 : _userAgent.indexOf('Mobi')) >= 0;\n _isWeb = true;\n const configuredLocale = nls.getConfiguredDefaultLocale(\n // This call _must_ be done in the file that calls `nls.getConfiguredDefaultLocale`\n // to ensure that the NLS AMD Loader plugin has been loaded and configured.\n // This is because the loader plugin decides what the default locale is based on\n // how it's able to resolve the strings.\n nls.localize({ key: 'ensureLoaderPluginIsLoaded', comment: ['{Locked}'] }, '_'));\n _locale = configuredLocale || LANGUAGE_DEFAULT;\n _language = _locale;\n _platformLocale = navigator.language;\n}\n// Unknown environment\nelse {\n console.error('Unable to resolve platform.');\n}\nlet _platform = 0 /* Platform.Web */;\nif (_isMacintosh) {\n _platform = 1 /* Platform.Mac */;\n}\nelse if (_isWindows) {\n _platform = 3 /* Platform.Windows */;\n}\nelse if (_isLinux) {\n _platform = 2 /* Platform.Linux */;\n}\nexport const isWindows = _isWindows;\nexport const isMacintosh = _isMacintosh;\nexport const isLinux = _isLinux;\nexport const isNative = _isNative;\nexport const isWeb = _isWeb;\nexport const isWebWorker = (_isWeb && typeof $globalThis.importScripts === 'function');\nexport const webWorkerOrigin = isWebWorker ? $globalThis.origin : undefined;\nexport const isIOS = _isIOS;\nexport const isMobile = _isMobile;\nexport const userAgent = _userAgent;\n/**\n * The language used for the user interface. The format of\n * the string is all lower case (e.g. zh-tw for Traditional\n * Chinese)\n */\nexport const language = _language;\nexport const setTimeout0IsFaster = (typeof $globalThis.postMessage === 'function' && !$globalThis.importScripts);\n/**\n * See https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#:~:text=than%204%2C%20then-,set%20timeout%20to%204,-.\n *\n * Works similarly to `setTimeout(0)` but doesn't suffer from the 4ms artificial delay\n * that browsers set when the nesting level is > 5.\n */\nexport const setTimeout0 = (() => {\n if (setTimeout0IsFaster) {\n const pending = [];\n $globalThis.addEventListener('message', (e) => {\n if (e.data && e.data.vscodeScheduleAsyncWork) {\n for (let i = 0, len = pending.length; i < len; i++) {\n const candidate = pending[i];\n if (candidate.id === e.data.vscodeScheduleAsyncWork) {\n pending.splice(i, 1);\n candidate.callback();\n return;\n }\n }\n }\n });\n let lastId = 0;\n return (callback) => {\n const myId = ++lastId;\n pending.push({\n id: myId,\n callback: callback\n });\n $globalThis.postMessage({ vscodeScheduleAsyncWork: myId }, '*');\n };\n }\n return (callback) => setTimeout(callback);\n})();\nexport const OS = (_isMacintosh || _isIOS ? 2 /* OperatingSystem.Macintosh */ : (_isWindows ? 1 /* OperatingSystem.Windows */ : 3 /* OperatingSystem.Linux */));\nlet _isLittleEndian = true;\nlet _isLittleEndianComputed = false;\nexport function isLittleEndian() {\n if (!_isLittleEndianComputed) {\n _isLittleEndianComputed = true;\n const test = new Uint8Array(2);\n test[0] = 1;\n test[1] = 2;\n const view = new Uint16Array(test.buffer);\n _isLittleEndian = (view[0] === (2 << 8) + 1);\n }\n return _isLittleEndian;\n}\nexport const isChrome = !!(userAgent && userAgent.indexOf('Chrome') >= 0);\nexport const isFirefox = !!(userAgent && userAgent.indexOf('Firefox') >= 0);\nexport const isSafari = !!(!isChrome && (userAgent && userAgent.indexOf('Safari') >= 0));\nexport const isEdge = !!(userAgent && userAgent.indexOf('Edg/') >= 0);\nexport const isAndroid = !!(userAgent && userAgent.indexOf('Android') >= 0);\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst resolve_1 = require(\"./resolve\");\nclass MissingRefError extends Error {\n constructor(resolver, baseId, ref, msg) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`);\n this.missingRef = (0, resolve_1.resolveUrl)(resolver, baseId, ref);\n this.missingSchema = (0, resolve_1.normalizeId)((0, resolve_1.getFullPath)(resolver, this.missingRef));\n }\n}\nexports.default = MissingRefError;\n//# sourceMappingURL=ref_error.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateSchemaDeps = exports.validatePropertyDeps = exports.error = void 0;\nconst codegen_1 = require(\"../../compile/codegen\");\nconst util_1 = require(\"../../compile/util\");\nconst code_1 = require(\"../code\");\nexports.error = {\n message: ({ params: { property, depsCount, deps } }) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\";\n return (0, codegen_1.str) `must have ${property_ies} ${deps} when property ${property} is present`;\n },\n params: ({ params: { property, depsCount, deps, missingProperty } }) => (0, codegen_1._) `{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n};\nconst def = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error: exports.error,\n code(cxt) {\n const [propDeps, schDeps] = splitDependencies(cxt);\n validatePropertyDeps(cxt, propDeps);\n validateSchemaDeps(cxt, schDeps);\n },\n};\nfunction splitDependencies({ schema }) {\n const propertyDeps = {};\n const schemaDeps = {};\n for (const key in schema) {\n if (key === \"__proto__\")\n continue;\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps;\n deps[key] = schema[key];\n }\n return [propertyDeps, schemaDeps];\n}\nfunction validatePropertyDeps(cxt, propertyDeps = cxt.schema) {\n const { gen, data, it } = cxt;\n if (Object.keys(propertyDeps).length === 0)\n return;\n const missing = gen.let(\"missing\");\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop];\n if (deps.length === 0)\n continue;\n const hasProperty = (0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties);\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n });\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n (0, code_1.checkReportMissingProp)(cxt, depProp);\n }\n });\n }\n else {\n gen.if((0, codegen_1._) `${hasProperty} && (${(0, code_1.checkMissingProp)(cxt, deps, missing)})`);\n (0, code_1.reportMissingProp)(cxt, missing);\n gen.else();\n }\n }\n}\nexports.validatePropertyDeps = validatePropertyDeps;\nfunction validateSchemaDeps(cxt, schemaDeps = cxt.schema) {\n const { gen, data, keyword, it } = cxt;\n const valid = gen.name(\"valid\");\n for (const prop in schemaDeps) {\n if ((0, util_1.alwaysValidSchema)(it, schemaDeps[prop]))\n continue;\n gen.if((0, code_1.propertyInData)(gen, data, prop, it.opts.ownProperties), () => {\n const schCxt = cxt.subschema({ keyword, schemaProp: prop }, valid);\n cxt.mergeValidEvaluated(schCxt, valid);\n }, () => gen.var(valid, true) // TODO var\n );\n cxt.ok(valid);\n }\n}\nexports.validateSchemaDeps = validateSchemaDeps;\nexports.default = def;\n//# sourceMappingURL=dependencies.js.map","var baseSet = require('./_baseSet');\n\n/**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\nfunction set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n}\n\nmodule.exports = set;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nexport { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _defineProperty as defineProperty, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _slicedToArray as slicedToArray, _unsupportedIterableToArray as unsupportedIterableToArray };\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n}\n\nfunction curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len3 = arguments.length, nextArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n nextArgs[_key3] = arguments[_key3];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nfunction isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nfunction isEmpty(obj) {\n return !Object.keys(obj).length;\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\nfunction validateChanges(initial, changes) {\n if (!isObject(changes)) errorHandler('changeType');\n if (Object.keys(changes).some(function (field) {\n return !hasOwnProperty(initial, field);\n })) errorHandler('changeField');\n return changes;\n}\n\nfunction validateSelector(selector) {\n if (!isFunction(selector)) errorHandler('selectorType');\n}\n\nfunction validateHandler(handler) {\n if (!(isFunction(handler) || isObject(handler))) errorHandler('handlerType');\n if (isObject(handler) && Object.values(handler).some(function (_handler) {\n return !isFunction(_handler);\n })) errorHandler('handlersType');\n}\n\nfunction validateInitial(initial) {\n if (!initial) errorHandler('initialIsRequired');\n if (!isObject(initial)) errorHandler('initialType');\n if (isEmpty(initial)) errorHandler('initialContent');\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n initialIsRequired: 'initial state is required',\n initialType: 'initial state should be an object',\n initialContent: 'initial state shouldn\\'t be an empty object',\n handlerType: 'handler should be an object or a function',\n handlersType: 'all handlers should be a functions',\n selectorType: 'selector should be a function',\n changeType: 'provided value of changes should be an object',\n changeField: 'it seams you want to change a field in the state which is not specified in the \"initial\" state',\n \"default\": 'an unknown error accured in `state-local` package'\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n changes: validateChanges,\n selector: validateSelector,\n handler: validateHandler,\n initial: validateInitial\n};\n\nfunction create(initial) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n validators.initial(initial);\n validators.handler(handler);\n var state = {\n current: initial\n };\n var didUpdate = curry(didStateUpdate)(state, handler);\n var update = curry(updateState)(state);\n var validate = curry(validators.changes)(initial);\n var getChanges = curry(extractChanges)(state);\n\n function getState() {\n var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function (state) {\n return state;\n };\n validators.selector(selector);\n return selector(state.current);\n }\n\n function setState(causedChanges) {\n compose(didUpdate, update, validate, getChanges)(causedChanges);\n }\n\n return [getState, setState];\n}\n\nfunction extractChanges(state, causedChanges) {\n return isFunction(causedChanges) ? causedChanges(state.current) : causedChanges;\n}\n\nfunction updateState(state, changes) {\n state.current = _objectSpread2(_objectSpread2({}, state.current), changes);\n return changes;\n}\n\nfunction didStateUpdate(state, handler, changes) {\n isFunction(handler) ? handler(state.current) : Object.keys(changes).forEach(function (field) {\n var _handler$field;\n\n return (_handler$field = handler[field]) === null || _handler$field === void 0 ? void 0 : _handler$field.call(handler, state.current[field]);\n });\n return changes;\n}\n\nvar index = {\n create: create\n};\n\nexport default index;\n","var config = {\n paths: {\n vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs'\n }\n};\n\nexport default config;\n","function curry(fn) {\n return function curried() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length >= fn.length ? fn.apply(this, args) : function () {\n for (var _len2 = arguments.length, nextArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n nextArgs[_key2] = arguments[_key2];\n }\n\n return curried.apply(_this, [].concat(args, nextArgs));\n };\n };\n}\n\nexport default curry;\n","function isObject(value) {\n return {}.toString.call(value).includes('Object');\n}\n\nexport default isObject;\n","import curry from '../utils/curry.js';\nimport isObject from '../utils/isObject.js';\n\n/**\n * validates the configuration object and informs about deprecation\n * @param {Object} config - the configuration object \n * @return {Object} config - the validated configuration object\n */\n\nfunction validateConfig(config) {\n if (!config) errorHandler('configIsRequired');\n if (!isObject(config)) errorHandler('configType');\n\n if (config.urls) {\n informAboutDeprecation();\n return {\n paths: {\n vs: config.urls.monacoBase\n }\n };\n }\n\n return config;\n}\n/**\n * logs deprecation message\n */\n\n\nfunction informAboutDeprecation() {\n console.warn(errorMessages.deprecation);\n}\n\nfunction throwError(errorMessages, type) {\n throw new Error(errorMessages[type] || errorMessages[\"default\"]);\n}\n\nvar errorMessages = {\n configIsRequired: 'the configuration object is required',\n configType: 'the configuration object should be an object',\n \"default\": 'an unknown error accured in `@monaco-editor/loader` package',\n deprecation: \"Deprecation warning!\\n You are using deprecated way of configuration.\\n\\n Instead of using\\n monaco.config({ urls: { monacoBase: '...' } })\\n use\\n monaco.config({ paths: { vs: '...' } })\\n\\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\\n \"\n};\nvar errorHandler = curry(throwError)(errorMessages);\nvar validators = {\n config: validateConfig\n};\n\nexport default validators;\nexport { errorHandler, errorMessages };\n","var compose = function compose() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (x) {\n return fns.reduceRight(function (y, f) {\n return f(y);\n }, x);\n };\n};\n\nexport default compose;\n","import { objectSpread2 as _objectSpread2 } from '../_virtual/_rollupPluginBabelHelpers.js';\n\nfunction merge(target, source) {\n Object.keys(source).forEach(function (key) {\n if (source[key] instanceof Object) {\n if (target[key]) {\n Object.assign(source[key], merge(target[key], source[key]));\n }\n }\n });\n return _objectSpread2(_objectSpread2({}, target), source);\n}\n\nexport default merge;\n","// The source (has been changed) is https://github.com/facebook/react/issues/5465#issuecomment-157888325\nvar CANCELATION_MESSAGE = {\n type: 'cancelation',\n msg: 'operation is manually canceled'\n};\n\nfunction makeCancelable(promise) {\n var hasCanceled_ = false;\n var wrappedPromise = new Promise(function (resolve, reject) {\n promise.then(function (val) {\n return hasCanceled_ ? reject(CANCELATION_MESSAGE) : resolve(val);\n });\n promise[\"catch\"](reject);\n });\n return wrappedPromise.cancel = function () {\n return hasCanceled_ = true;\n }, wrappedPromise;\n}\n\nexport default makeCancelable;\nexport { CANCELATION_MESSAGE };\n","import { slicedToArray as _slicedToArray, objectWithoutProperties as _objectWithoutProperties } from '../_virtual/_rollupPluginBabelHelpers.js';\nimport state from 'state-local';\nimport config$1 from '../config/index.js';\nimport validators from '../validators/index.js';\nimport compose from '../utils/compose.js';\nimport merge from '../utils/deepMerge.js';\nimport makeCancelable from '../utils/makeCancelable.js';\n\n/** the local state of the module */\n\nvar _state$create = state.create({\n config: config$1,\n isInitialized: false,\n resolve: null,\n reject: null,\n monaco: null\n}),\n _state$create2 = _slicedToArray(_state$create, 2),\n getState = _state$create2[0],\n setState = _state$create2[1];\n/**\n * set the loader configuration\n * @param {Object} config - the configuration object\n */\n\n\nfunction config(globalConfig) {\n var _validators$config = validators.config(globalConfig),\n monaco = _validators$config.monaco,\n config = _objectWithoutProperties(_validators$config, [\"monaco\"]);\n\n setState(function (state) {\n return {\n config: merge(state.config, config),\n monaco: monaco\n };\n });\n}\n/**\n * handles the initialization of the monaco-editor\n * @return {Promise} - returns an instance of monaco (with a cancelable promise)\n */\n\n\nfunction init() {\n var state = getState(function (_ref) {\n var monaco = _ref.monaco,\n isInitialized = _ref.isInitialized,\n resolve = _ref.resolve;\n return {\n monaco: monaco,\n isInitialized: isInitialized,\n resolve: resolve\n };\n });\n\n if (!state.isInitialized) {\n setState({\n isInitialized: true\n });\n\n if (state.monaco) {\n state.resolve(state.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n if (window.monaco && window.monaco.editor) {\n storeMonacoInstance(window.monaco);\n state.resolve(window.monaco);\n return makeCancelable(wrapperPromise);\n }\n\n compose(injectScripts, getMonacoLoaderScript)(configureLoader);\n }\n\n return makeCancelable(wrapperPromise);\n}\n/**\n * injects provided scripts into the document.body\n * @param {Object} script - an HTML script element\n * @return {Object} - the injected HTML script element\n */\n\n\nfunction injectScripts(script) {\n return document.body.appendChild(script);\n}\n/**\n * creates an HTML script element with/without provided src\n * @param {string} [src] - the source path of the script\n * @return {Object} - the created HTML script element\n */\n\n\nfunction createScript(src) {\n var script = document.createElement('script');\n return src && (script.src = src), script;\n}\n/**\n * creates an HTML script element with the monaco loader src\n * @return {Object} - the created HTML script element\n */\n\n\nfunction getMonacoLoaderScript(configureLoader) {\n var state = getState(function (_ref2) {\n var config = _ref2.config,\n reject = _ref2.reject;\n return {\n config: config,\n reject: reject\n };\n });\n var loaderScript = createScript(\"\".concat(state.config.paths.vs, \"/loader.js\"));\n\n loaderScript.onload = function () {\n return configureLoader();\n };\n\n loaderScript.onerror = state.reject;\n return loaderScript;\n}\n/**\n * configures the monaco loader\n */\n\n\nfunction configureLoader() {\n var state = getState(function (_ref3) {\n var config = _ref3.config,\n resolve = _ref3.resolve,\n reject = _ref3.reject;\n return {\n config: config,\n resolve: resolve,\n reject: reject\n };\n });\n var require = window.require;\n\n require.config(state.config);\n\n require(['vs/editor/editor.main'], function (monaco) {\n storeMonacoInstance(monaco);\n state.resolve(monaco);\n }, function (error) {\n state.reject(error);\n });\n}\n/**\n * store monaco instance in local state\n */\n\n\nfunction storeMonacoInstance(monaco) {\n if (!getState().monaco) {\n setState({\n monaco: monaco\n });\n }\n}\n/**\n * internal helper function\n * extracts stored monaco instance\n * @return {Object|null} - the monaco instance\n */\n\n\nfunction __getMonacoInstance() {\n return getState(function (_ref4) {\n var monaco = _ref4.monaco;\n return monaco;\n });\n}\n\nvar wrapperPromise = new Promise(function (resolve, reject) {\n return setState({\n resolve: resolve,\n reject: reject\n });\n});\nvar loader = {\n config: config,\n init: init,\n __getMonacoInstance: __getMonacoInstance\n};\n\nexport default loader;\n","import loader from './loader/index.js';\nexport { default } from './loader/index.js';\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import loader from '@monaco-editor/loader';\nexport { default as loader } from '@monaco-editor/loader';\nimport { computed, shallowRef, ref, onMounted, defineComponent, onUnmounted, watch, h, nextTick } from 'vue-demi';\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst styles = {\n wrapper: {\n display: \"flex\",\n position: \"relative\",\n textAlign: \"initial\"\n },\n fullWidth: {\n width: \"100%\"\n },\n hide: {\n display: \"none\"\n }\n};\nfunction useContainer(props, isEditorReady) {\n const wrapperStyle = computed(() => {\n const { width, height } = props;\n return __spreadProps(__spreadValues$2({}, styles.wrapper), {\n width,\n height\n });\n });\n const containerStyle = computed(() => {\n return __spreadValues$2(__spreadValues$2({}, styles.fullWidth), !isEditorReady.value && styles.hide);\n });\n return { wrapperStyle, containerStyle };\n}\n\nfunction useMonaco() {\n const monacoRef = shallowRef(loader.__getMonacoInstance());\n const isLoadFailed = ref(false);\n let promise;\n onMounted(() => {\n if (monacoRef.value)\n return;\n promise = loader.init();\n promise.then((monacoInstance) => monacoRef.value = monacoInstance).catch((error) => {\n if ((error == null ? void 0 : error.type) !== \"cancelation\") {\n isLoadFailed.value = true;\n console.error(\"Monaco initialization error:\", error);\n }\n });\n });\n const unload = () => promise == null ? void 0 : promise.cancel();\n return {\n monacoRef,\n unload,\n isLoadFailed\n };\n}\n\nfunction slotHelper(slot) {\n return typeof slot == \"function\" ? slot() : slot;\n}\nfunction isUndefined(v) {\n return v === void 0;\n}\nfunction getOrCreateModel(monaco, value, language, path) {\n return getModel(monaco, path) || createModel(monaco, value, language, path);\n}\nfunction getModel(monaco, path) {\n return monaco.editor.getModel(createModelUri(monaco, path));\n}\nfunction createModel(monaco, value, language, path) {\n return monaco.editor.createModel(value, language, path ? createModelUri(monaco, path) : void 0);\n}\nfunction createModelUri(monaco, path) {\n return monaco.Uri.parse(path);\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nconst loadingStyle$1 = {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\"\n};\nvar VueMonacoEditor = defineComponent({\n name: \"VueMonacoEditor\",\n // TODO: vue3 use modelValue, vue2 use value\n model: {\n prop: \"value\",\n event: \"update:value\"\n },\n props: {\n defaultValue: String,\n defaultPath: String,\n defaultLanguage: String,\n value: String,\n language: String,\n path: String,\n /* === */\n theme: {\n type: String,\n default: \"vs\"\n },\n line: Number,\n options: {\n type: Object,\n default: () => ({})\n },\n overrideServices: {\n type: Object,\n default: () => ({})\n },\n saveViewState: {\n type: Boolean,\n default: true\n },\n /* === */\n width: {\n type: [Number, String],\n default: \"100%\"\n },\n height: {\n type: [Number, String],\n default: \"100%\"\n },\n className: String\n },\n emits: [\"update:value\", \"beforeMount\", \"mount\", \"change\", \"validate\"],\n setup(props, ctx) {\n const viewStates = /* @__PURE__ */ new Map();\n const containerRef = shallowRef(null);\n const { monacoRef, unload, isLoadFailed } = useMonaco();\n const { editorRef } = useEditor(ctx, props, monacoRef, containerRef);\n const { disposeValidator } = useValidator(ctx, props, monacoRef, editorRef);\n const isEditorReady = computed(() => !!monacoRef.value && !!editorRef.value);\n const { wrapperStyle, containerStyle } = useContainer(props, isEditorReady);\n onUnmounted(() => {\n var _a, _b;\n (_a = disposeValidator.value) == null ? void 0 : _a.call(disposeValidator);\n if (editorRef.value) {\n (_b = editorRef.value.getModel()) == null ? void 0 : _b.dispose();\n editorRef.value.dispose();\n } else {\n unload();\n }\n });\n watch(\n [() => props.path, () => props.value, () => props.language, () => props.line],\n ([newPath, newValue, newLanguage, newLine], [oldPath, oldValue, oldLanguage, oldLine]) => {\n if (!isEditorReady.value) {\n return;\n }\n if (newPath !== oldPath) {\n const newModel = getOrCreateModel(\n monacoRef.value,\n newValue || props.defaultValue || \"\",\n newLanguage || props.defaultLanguage || \"\",\n newPath || props.defaultPath || \"\"\n );\n props.saveViewState && viewStates.set(oldPath, editorRef.value.saveViewState());\n editorRef.value.setModel(newModel);\n props.saveViewState && editorRef.value.restoreViewState(viewStates.get(newPath));\n if (!isUndefined(newLine)) {\n editorRef.value.revealLine(newLine);\n }\n return;\n }\n if (editorRef.value.getValue() !== newValue) {\n editorRef.value.setValue(newValue);\n }\n if (newLanguage !== oldLanguage) {\n monacoRef.value.editor.setModelLanguage(editorRef.value.getModel(), newLanguage);\n }\n if (!isUndefined(newLine) && newLine !== oldLine) {\n editorRef.value.revealLine(newLine);\n }\n }\n );\n watch(\n () => props.options,\n (options) => editorRef.value && editorRef.value.updateOptions(options),\n { deep: true }\n );\n watch(\n () => props.theme,\n (theme) => monacoRef.value && monacoRef.value.editor.setTheme(theme)\n );\n return {\n containerRef,\n isEditorReady,\n isLoadFailed,\n wrapperStyle,\n containerStyle\n };\n },\n render() {\n const {\n $slots,\n isEditorReady,\n isLoadFailed,\n wrapperStyle,\n containerStyle,\n // TODO: need remove, add `@deprecated` flag\n className\n } = this;\n return h(\n \"div\",\n {\n style: wrapperStyle\n },\n [\n !isEditorReady && h(\n \"div\",\n {\n style: loadingStyle$1\n },\n isLoadFailed ? $slots.failure ? slotHelper($slots.failure) : \"load failed\" : $slots.default ? slotHelper($slots.default) : \"loading...\"\n ),\n h(\"div\", {\n ref: \"containerRef\",\n key: \"monaco_editor_container\",\n style: containerStyle,\n class: className\n })\n ]\n );\n }\n});\nfunction useEditor({ emit }, props, monacoRef, containerRef) {\n const editorRef = shallowRef(null);\n onMounted(() => {\n const stop = watch(\n monacoRef,\n () => {\n if (containerRef.value && monacoRef.value) {\n nextTick(() => stop());\n createEditor();\n }\n },\n { immediate: true }\n );\n });\n function createEditor() {\n var _a;\n if (!containerRef.value || !monacoRef.value || editorRef.value) {\n return;\n }\n emit(\"beforeMount\", monacoRef.value);\n const autoCreatedModelPath = props.path || props.defaultPath;\n const defaultModel = getOrCreateModel(\n monacoRef.value,\n props.value || props.defaultValue || \"\",\n props.language || props.defaultLanguage || \"\",\n autoCreatedModelPath || \"\"\n );\n editorRef.value = monacoRef.value.editor.create(\n containerRef.value,\n __spreadValues$1({\n model: defaultModel,\n theme: props.theme,\n automaticLayout: true,\n autoIndent: \"brackets\",\n formatOnPaste: true,\n formatOnType: true\n }, props.options),\n props.overrideServices\n );\n (_a = editorRef.value) == null ? void 0 : _a.onDidChangeModelContent((event) => {\n const value = editorRef.value.getValue();\n if (value !== props.value) {\n emit(\"update:value\", value);\n emit(\"change\", value, event);\n }\n });\n if (editorRef.value && !isUndefined(props.line)) {\n editorRef.value.revealLine(props.line);\n }\n emit(\"mount\", editorRef.value, monacoRef.value);\n }\n return { editorRef };\n}\nfunction useValidator({ emit }, props, monacoRef, editorRef) {\n const disposeValidator = ref(null);\n const stop = watch([monacoRef, editorRef], () => {\n if (monacoRef.value && editorRef.value) {\n nextTick(() => stop());\n const changeMarkersListener = monacoRef.value.editor.onDidChangeMarkers((uris) => {\n var _a, _b;\n const editorUri = (_b = (_a = editorRef.value) == null ? void 0 : _a.getModel()) == null ? void 0 : _b.uri;\n if (editorUri) {\n const currentEditorHasMarkerChanges = uris.find((uri) => uri.path === editorUri.path);\n if (currentEditorHasMarkerChanges) {\n const markers = monacoRef.value.editor.getModelMarkers({\n resource: editorUri\n });\n emit(\"validate\", markers);\n }\n }\n });\n disposeValidator.value = () => changeMarkersListener == null ? void 0 : changeMarkersListener.dispose();\n }\n });\n return { disposeValidator };\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nconst loadingStyle = {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\"\n};\nvar VueMonacoDiffEditor = defineComponent({\n name: \"VueMonacoDiffEditor\",\n props: {\n original: String,\n modified: String,\n language: String,\n originalLanguage: String,\n modifiedLanguage: String,\n originalModelPath: String,\n modifiedModelPath: String,\n /* == */\n theme: {\n type: String,\n default: \"vs\"\n },\n options: {\n type: Object,\n default: () => ({})\n },\n /* == */\n width: {\n type: [Number, String],\n default: \"100%\"\n },\n height: {\n type: [Number, String],\n default: \"100%\"\n },\n className: String\n },\n setup(props, ctx) {\n const containerRef = shallowRef(null);\n const { monacoRef, unload, isLoadFailed } = useMonaco();\n const { diffEditorRef } = useDiffEditor(ctx, props, monacoRef, containerRef);\n const isDiffEditorReady = computed(() => !!monacoRef.value && !!diffEditorRef.value);\n const { wrapperStyle, containerStyle } = useContainer(props, isDiffEditorReady);\n onUnmounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n !monacoRef.value && unload();\n const models = (_b = (_a = diffEditorRef.value) == null ? void 0 : _a.getModel) == null ? void 0 : _b.call(_a);\n (_d = (_c = models == null ? void 0 : models.original) == null ? void 0 : _c.dispose) == null ? void 0 : _d.call(_c);\n (_f = (_e = models == null ? void 0 : models.modified) == null ? void 0 : _e.dispose) == null ? void 0 : _f.call(_e);\n (_h = (_g = diffEditorRef.value) == null ? void 0 : _g.dispose) == null ? void 0 : _h.call(_g);\n });\n watch(\n [() => props.originalModelPath, () => props.original, () => props.originalLanguage, () => props.language],\n ([newOriginalModelPath, newOriginal, newOriginalLanguage, newLanguage], [oldOriginalModelPath, oldOriginal, oldOriginalLanguage, oldLanguage]) => {\n if (!isDiffEditorReady.value) {\n return;\n }\n const originalEditor = diffEditorRef.value.getOriginalEditor();\n if (newOriginalModelPath !== oldOriginalModelPath) {\n const newOriginModel = getOrCreateModel(\n monacoRef.value,\n newOriginal || \"\",\n newOriginalLanguage || newLanguage || \"text\",\n newOriginalModelPath || \"\"\n );\n originalEditor.setModel(newOriginModel);\n return;\n }\n if (newOriginal !== originalEditor.getValue()) {\n originalEditor.setValue(newOriginal || \"\");\n }\n if (newOriginalLanguage !== oldOriginalLanguage || newLanguage !== oldLanguage) {\n monacoRef.value.editor.setModelLanguage(\n diffEditorRef.value.getModel().original,\n newOriginalLanguage || newLanguage || \"text\"\n );\n }\n }\n );\n watch(\n [() => props.modifiedModelPath, () => props.modified, () => props.modifiedLanguage, () => props.language],\n ([newModifiedModelPath, newModified, newModifiedLanguage, newLanguage], [oldModifiedModelPath, oldModified, oldModifiedLanguage, oldLanguage]) => {\n if (!isDiffEditorReady.value) {\n return;\n }\n const modifiedEditor = diffEditorRef.value.getModifiedEditor();\n if (oldModifiedModelPath !== newModifiedModelPath) {\n const newModifiedModel = getOrCreateModel(\n monacoRef.value,\n newModified || \"\",\n newModifiedLanguage || newLanguage || \"text\",\n newModifiedModelPath || \"\"\n );\n modifiedEditor.setModel(newModifiedModel);\n return;\n }\n if (newModified !== modifiedEditor.getValue()) {\n const readOnlyCode = monacoRef.value.editor.EditorOption.readOnly;\n if (modifiedEditor.getOption(readOnlyCode)) {\n modifiedEditor.setValue(newModified || \"\");\n } else {\n modifiedEditor.executeEdits(\"\", [\n {\n range: modifiedEditor.getModel().getFullModelRange(),\n text: newModified || \"\",\n forceMoveMarkers: true\n }\n ]);\n modifiedEditor.pushUndoStop();\n }\n }\n if (newModifiedLanguage !== oldModifiedLanguage || newLanguage !== oldLanguage) {\n monacoRef.value.editor.setModelLanguage(\n diffEditorRef.value.getModel().modified,\n newModifiedLanguage || newLanguage || \"text\"\n );\n }\n }\n );\n watch(\n () => props.theme,\n () => {\n var _a;\n return (_a = monacoRef.value) == null ? void 0 : _a.editor.setTheme(props.theme);\n }\n );\n watch(\n () => props.options,\n () => {\n var _a;\n return (_a = diffEditorRef.value) == null ? void 0 : _a.updateOptions(props.options);\n },\n { deep: true }\n );\n return {\n containerRef,\n isDiffEditorReady,\n isLoadFailed,\n wrapperStyle,\n containerStyle\n };\n },\n render() {\n const { $slots, isDiffEditorReady, isLoadFailed, wrapperStyle, containerStyle, className } = this;\n return h(\n \"div\",\n {\n style: wrapperStyle\n },\n [\n !isDiffEditorReady && h(\n \"div\",\n {\n style: loadingStyle\n },\n isLoadFailed ? $slots.failure ? slotHelper($slots.failure) : \"load failed\" : $slots.default ? slotHelper($slots.default) : \"loading...\"\n ),\n h(\"div\", {\n ref: \"containerRef\",\n key: \"monaco_diff_editor_container\",\n style: containerStyle,\n class: className\n })\n ]\n );\n }\n});\nfunction useDiffEditor({ emit }, props, monacoRef, containerRef) {\n const diffEditorRef = shallowRef(null);\n onMounted(() => {\n const stop = watch(\n monacoRef,\n () => {\n if (containerRef.value && monacoRef.value) {\n nextTick(() => stop());\n createDiffEditor();\n }\n },\n { immediate: true }\n );\n });\n function createDiffEditor() {\n var _a;\n if (!containerRef.value || !monacoRef.value || diffEditorRef.value) {\n return;\n }\n emit(\"beforeMount\", monacoRef.value);\n diffEditorRef.value = monacoRef.value.editor.createDiffEditor(containerRef.value, __spreadValues({\n automaticLayout: true,\n autoIndent: \"brackets\",\n theme: props.theme,\n formatOnPaste: true,\n formatOnType: true\n }, props.options));\n const originalModel = getOrCreateModel(\n monacoRef.value,\n props.original || \"\",\n props.originalLanguage || props.language || \"text\",\n props.originalModelPath || \"\"\n );\n const modifiedModel = getOrCreateModel(\n monacoRef.value,\n props.modified || \"\",\n props.modifiedLanguage || props.language || \"text\",\n props.modifiedModelPath || \"\"\n );\n (_a = diffEditorRef.value) == null ? void 0 : _a.setModel({\n original: originalModel,\n modified: modifiedModel\n });\n emit(\"mount\", diffEditorRef.value, monacoRef.value);\n }\n return { diffEditorRef };\n}\n\nfunction install(app, options) {\n if (options) {\n loader.config(options);\n }\n app.component(VueMonacoEditor.name, VueMonacoEditor);\n app.component(VueMonacoDiffEditor.name, VueMonacoDiffEditor);\n}\n\nexport { VueMonacoDiffEditor as DiffEditor, VueMonacoEditor as Editor, VueMonacoDiffEditor, VueMonacoEditor, VueMonacoEditor as default, install, useMonaco };\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class Lazy {\n constructor(executor) {\n this.executor = executor;\n this._didRun = false;\n }\n /**\n * Get the wrapped value.\n *\n * This will force evaluation of the lazy value if it has not been resolved yet. Lazy values are only\n * resolved once. `getValue` will re-throw exceptions that are hit while resolving the value\n */\n get value() {\n if (!this._didRun) {\n try {\n this._value = this.executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n /**\n * Get the wrapped value without forcing evaluation.\n */\n get rawValue() { return this._value; }\n}\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { BugIndicatingError } from '../../../../../base/common/errors.js';\nimport { CursorColumns } from '../../../core/cursorColumns.js';\nimport { lengthAdd, lengthGetLineCount, lengthToObj, lengthZero } from './length.js';\nimport { SmallImmutableSet } from './smallImmutableSet.js';\n/**\n * The base implementation for all AST nodes.\n*/\nclass BaseAstNode {\n /**\n * The length of the entire node, which should equal the sum of lengths of all children.\n */\n get length() {\n return this._length;\n }\n constructor(length) {\n this._length = length;\n }\n}\n/**\n * Represents a bracket pair including its child (e.g. `{ ... }`).\n * Might be unclosed.\n * Immutable, if all children are immutable.\n*/\nexport class PairAstNode extends BaseAstNode {\n static create(openingBracket, child, closingBracket) {\n let length = openingBracket.length;\n if (child) {\n length = lengthAdd(length, child.length);\n }\n if (closingBracket) {\n length = lengthAdd(length, closingBracket.length);\n }\n return new PairAstNode(length, openingBracket, child, closingBracket, child ? child.missingOpeningBracketIds : SmallImmutableSet.getEmpty());\n }\n get kind() {\n return 2 /* AstNodeKind.Pair */;\n }\n get listHeight() {\n return 0;\n }\n get childrenLength() {\n return 3;\n }\n getChild(idx) {\n switch (idx) {\n case 0: return this.openingBracket;\n case 1: return this.child;\n case 2: return this.closingBracket;\n }\n throw new Error('Invalid child index');\n }\n /**\n * Avoid using this property, it allocates an array!\n */\n get children() {\n const result = [];\n result.push(this.openingBracket);\n if (this.child) {\n result.push(this.child);\n }\n if (this.closingBracket) {\n result.push(this.closingBracket);\n }\n return result;\n }\n constructor(length, openingBracket, child, closingBracket, missingOpeningBracketIds) {\n super(length);\n this.openingBracket = openingBracket;\n this.child = child;\n this.closingBracket = closingBracket;\n this.missingOpeningBracketIds = missingOpeningBracketIds;\n }\n canBeReused(openBracketIds) {\n if (this.closingBracket === null) {\n // Unclosed pair ast nodes only\n // end at the end of the document\n // or when a parent node is closed.\n // This could be improved:\n // Only return false if some next token is neither \"undefined\" nor a bracket that closes a parent.\n return false;\n }\n if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n return false;\n }\n return true;\n }\n deepClone() {\n return new PairAstNode(this.length, this.openingBracket.deepClone(), this.child && this.child.deepClone(), this.closingBracket && this.closingBracket.deepClone(), this.missingOpeningBracketIds);\n }\n computeMinIndentation(offset, textModel) {\n return this.child ? this.child.computeMinIndentation(lengthAdd(offset, this.openingBracket.length), textModel) : Number.MAX_SAFE_INTEGER;\n }\n}\nexport class ListAstNode extends BaseAstNode {\n /**\n * This method uses more memory-efficient list nodes that can only store 2 or 3 children.\n */\n static create23(item1, item2, item3, immutable = false) {\n let length = item1.length;\n let missingBracketIds = item1.missingOpeningBracketIds;\n if (item1.listHeight !== item2.listHeight) {\n throw new Error('Invalid list heights');\n }\n length = lengthAdd(length, item2.length);\n missingBracketIds = missingBracketIds.merge(item2.missingOpeningBracketIds);\n if (item3) {\n if (item1.listHeight !== item3.listHeight) {\n throw new Error('Invalid list heights');\n }\n length = lengthAdd(length, item3.length);\n missingBracketIds = missingBracketIds.merge(item3.missingOpeningBracketIds);\n }\n return immutable\n ? new Immutable23ListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds)\n : new TwoThreeListAstNode(length, item1.listHeight + 1, item1, item2, item3, missingBracketIds);\n }\n static getEmpty() {\n return new ImmutableArrayListAstNode(lengthZero, 0, [], SmallImmutableSet.getEmpty());\n }\n get kind() {\n return 4 /* AstNodeKind.List */;\n }\n get missingOpeningBracketIds() {\n return this._missingOpeningBracketIds;\n }\n /**\n * Use ListAstNode.create.\n */\n constructor(length, listHeight, _missingOpeningBracketIds) {\n super(length);\n this.listHeight = listHeight;\n this._missingOpeningBracketIds = _missingOpeningBracketIds;\n this.cachedMinIndentation = -1;\n }\n throwIfImmutable() {\n // NOOP\n }\n makeLastElementMutable() {\n this.throwIfImmutable();\n const childCount = this.childrenLength;\n if (childCount === 0) {\n return undefined;\n }\n const lastChild = this.getChild(childCount - 1);\n const mutable = lastChild.kind === 4 /* AstNodeKind.List */ ? lastChild.toMutable() : lastChild;\n if (lastChild !== mutable) {\n this.setChild(childCount - 1, mutable);\n }\n return mutable;\n }\n makeFirstElementMutable() {\n this.throwIfImmutable();\n const childCount = this.childrenLength;\n if (childCount === 0) {\n return undefined;\n }\n const firstChild = this.getChild(0);\n const mutable = firstChild.kind === 4 /* AstNodeKind.List */ ? firstChild.toMutable() : firstChild;\n if (firstChild !== mutable) {\n this.setChild(0, mutable);\n }\n return mutable;\n }\n canBeReused(openBracketIds) {\n if (openBracketIds.intersects(this.missingOpeningBracketIds)) {\n return false;\n }\n if (this.childrenLength === 0) {\n // Don't reuse empty lists.\n return false;\n }\n let lastChild = this;\n while (lastChild.kind === 4 /* AstNodeKind.List */) {\n const lastLength = lastChild.childrenLength;\n if (lastLength === 0) {\n // Empty lists should never be contained in other lists.\n throw new BugIndicatingError();\n }\n lastChild = lastChild.getChild(lastLength - 1);\n }\n return lastChild.canBeReused(openBracketIds);\n }\n handleChildrenChanged() {\n this.throwIfImmutable();\n const count = this.childrenLength;\n let length = this.getChild(0).length;\n let unopenedBrackets = this.getChild(0).missingOpeningBracketIds;\n for (let i = 1; i < count; i++) {\n const child = this.getChild(i);\n length = lengthAdd(length, child.length);\n unopenedBrackets = unopenedBrackets.merge(child.missingOpeningBracketIds);\n }\n this._length = length;\n this._missingOpeningBracketIds = unopenedBrackets;\n this.cachedMinIndentation = -1;\n }\n computeMinIndentation(offset, textModel) {\n if (this.cachedMinIndentation !== -1) {\n return this.cachedMinIndentation;\n }\n let minIndentation = Number.MAX_SAFE_INTEGER;\n let childOffset = offset;\n for (let i = 0; i < this.childrenLength; i++) {\n const child = this.getChild(i);\n if (child) {\n minIndentation = Math.min(minIndentation, child.computeMinIndentation(childOffset, textModel));\n childOffset = lengthAdd(childOffset, child.length);\n }\n }\n this.cachedMinIndentation = minIndentation;\n return minIndentation;\n }\n}\nclass TwoThreeListAstNode extends ListAstNode {\n get childrenLength() {\n return this._item3 !== null ? 3 : 2;\n }\n getChild(idx) {\n switch (idx) {\n case 0: return this._item1;\n case 1: return this._item2;\n case 2: return this._item3;\n }\n throw new Error('Invalid child index');\n }\n setChild(idx, node) {\n switch (idx) {\n case 0:\n this._item1 = node;\n return;\n case 1:\n this._item2 = node;\n return;\n case 2:\n this._item3 = node;\n return;\n }\n throw new Error('Invalid child index');\n }\n get children() {\n return this._item3 ? [this._item1, this._item2, this._item3] : [this._item1, this._item2];\n }\n get item1() {\n return this._item1;\n }\n get item2() {\n return this._item2;\n }\n get item3() {\n return this._item3;\n }\n constructor(length, listHeight, _item1, _item2, _item3, missingOpeningBracketIds) {\n super(length, listHeight, missingOpeningBracketIds);\n this._item1 = _item1;\n this._item2 = _item2;\n this._item3 = _item3;\n }\n deepClone() {\n return new TwoThreeListAstNode(this.length, this.listHeight, this._item1.deepClone(), this._item2.deepClone(), this._item3 ? this._item3.deepClone() : null, this.missingOpeningBracketIds);\n }\n appendChildOfSameHeight(node) {\n if (this._item3) {\n throw new Error('Cannot append to a full (2,3) tree node');\n }\n this.throwIfImmutable();\n this._item3 = node;\n this.handleChildrenChanged();\n }\n unappendChild() {\n if (!this._item3) {\n throw new Error('Cannot remove from a non-full (2,3) tree node');\n }\n this.throwIfImmutable();\n const result = this._item3;\n this._item3 = null;\n this.handleChildrenChanged();\n return result;\n }\n prependChildOfSameHeight(node) {\n if (this._item3) {\n throw new Error('Cannot prepend to a full (2,3) tree node');\n }\n this.throwIfImmutable();\n this._item3 = this._item2;\n this._item2 = this._item1;\n this._item1 = node;\n this.handleChildrenChanged();\n }\n unprependChild() {\n if (!this._item3) {\n throw new Error('Cannot remove from a non-full (2,3) tree node');\n }\n this.throwIfImmutable();\n const result = this._item1;\n this._item1 = this._item2;\n this._item2 = this._item3;\n this._item3 = null;\n this.handleChildrenChanged();\n return result;\n }\n toMutable() {\n return this;\n }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass Immutable23ListAstNode extends TwoThreeListAstNode {\n toMutable() {\n return new TwoThreeListAstNode(this.length, this.listHeight, this.item1, this.item2, this.item3, this.missingOpeningBracketIds);\n }\n throwIfImmutable() {\n throw new Error('this instance is immutable');\n }\n}\n/**\n * For debugging.\n*/\nclass ArrayListAstNode extends ListAstNode {\n get childrenLength() {\n return this._children.length;\n }\n getChild(idx) {\n return this._children[idx];\n }\n setChild(idx, child) {\n this._children[idx] = child;\n }\n get children() {\n return this._children;\n }\n constructor(length, listHeight, _children, missingOpeningBracketIds) {\n super(length, listHeight, missingOpeningBracketIds);\n this._children = _children;\n }\n deepClone() {\n const children = new Array(this._children.length);\n for (let i = 0; i < this._children.length; i++) {\n children[i] = this._children[i].deepClone();\n }\n return new ArrayListAstNode(this.length, this.listHeight, children, this.missingOpeningBracketIds);\n }\n appendChildOfSameHeight(node) {\n this.throwIfImmutable();\n this._children.push(node);\n this.handleChildrenChanged();\n }\n unappendChild() {\n this.throwIfImmutable();\n const item = this._children.pop();\n this.handleChildrenChanged();\n return item;\n }\n prependChildOfSameHeight(node) {\n this.throwIfImmutable();\n this._children.unshift(node);\n this.handleChildrenChanged();\n }\n unprependChild() {\n this.throwIfImmutable();\n const item = this._children.shift();\n this.handleChildrenChanged();\n return item;\n }\n toMutable() {\n return this;\n }\n}\n/**\n * Immutable, if all children are immutable.\n*/\nclass ImmutableArrayListAstNode extends ArrayListAstNode {\n toMutable() {\n return new ArrayListAstNode(this.length, this.listHeight, [...this.children], this.missingOpeningBracketIds);\n }\n throwIfImmutable() {\n throw new Error('this instance is immutable');\n }\n}\nconst emptyArray = [];\nclass ImmutableLeafAstNode extends BaseAstNode {\n get listHeight() {\n return 0;\n }\n get childrenLength() {\n return 0;\n }\n getChild(idx) {\n return null;\n }\n get children() {\n return emptyArray;\n }\n deepClone() {\n return this;\n }\n}\nexport class TextAstNode extends ImmutableLeafAstNode {\n get kind() {\n return 0 /* AstNodeKind.Text */;\n }\n get missingOpeningBracketIds() {\n return SmallImmutableSet.getEmpty();\n }\n canBeReused(_openedBracketIds) {\n return true;\n }\n computeMinIndentation(offset, textModel) {\n const start = lengthToObj(offset);\n // Text ast nodes don't have partial indentation (ensured by the tokenizer).\n // Thus, if this text node does not start at column 0, the first line cannot have any indentation at all.\n const startLineNumber = (start.columnCount === 0 ? start.lineCount : start.lineCount + 1) + 1;\n const endLineNumber = lengthGetLineCount(lengthAdd(offset, this.length)) + 1;\n let result = Number.MAX_SAFE_INTEGER;\n for (let lineNumber = startLineNumber; lineNumber <= endLineNumber; lineNumber++) {\n const firstNonWsColumn = textModel.getLineFirstNonWhitespaceColumn(lineNumber);\n const lineContent = textModel.getLineContent(lineNumber);\n if (firstNonWsColumn === 0) {\n continue;\n }\n const visibleColumn = CursorColumns.visibleColumnFromColumn(lineContent, firstNonWsColumn, textModel.getOptions().tabSize);\n result = Math.min(result, visibleColumn);\n }\n return result;\n }\n}\nexport class BracketAstNode extends ImmutableLeafAstNode {\n static create(length, bracketInfo, bracketIds) {\n const node = new BracketAstNode(length, bracketInfo, bracketIds);\n return node;\n }\n get kind() {\n return 1 /* AstNodeKind.Bracket */;\n }\n get missingOpeningBracketIds() {\n return SmallImmutableSet.getEmpty();\n }\n constructor(length, bracketInfo, \n /**\n * In case of a opening bracket, this is the id of the opening bracket.\n * In case of a closing bracket, this contains the ids of all opening brackets it can close.\n */\n bracketIds) {\n super(length);\n this.bracketInfo = bracketInfo;\n this.bracketIds = bracketIds;\n }\n get text() {\n return this.bracketInfo.bracketText;\n }\n get languageId() {\n return this.bracketInfo.languageId;\n }\n canBeReused(_openedBracketIds) {\n // These nodes could be reused,\n // but not in a general way.\n // Their parent may be reused.\n return false;\n }\n computeMinIndentation(offset, textModel) {\n return Number.MAX_SAFE_INTEGER;\n }\n}\nexport class InvalidBracketAstNode extends ImmutableLeafAstNode {\n get kind() {\n return 3 /* AstNodeKind.UnexpectedClosingBracket */;\n }\n constructor(closingBrackets, length) {\n super(length);\n this.missingOpeningBracketIds = closingBrackets;\n }\n canBeReused(openedBracketIds) {\n return !openedBracketIds.intersects(this.missingOpeningBracketIds);\n }\n computeMinIndentation(offset, textModel) {\n return Number.MAX_SAFE_INTEGER;\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/mips/mips.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"mips\",\n extensions: [\".s\"],\n aliases: [\"MIPS\", \"MIPS-V\"],\n mimetypes: [\"text/x-mips\", \"text/mips\", \"text/plaintext\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/mips/mips\"], resolve, reject);\n });\n } else {\n return import(\"./mips.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nexport const IModelService = createDecorator('modelService');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// https://github.com/ajv-validator/ajv/issues/889\nconst equal = require(\"fast-deep-equal\");\nequal.code = 'require(\"ajv/dist/runtime/equal\").default';\nexports.default = equal;\n//# sourceMappingURL=equal.js.map","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","'use strict'\n\nconst HEX = {\n 0: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n a: 10,\n A: 10,\n b: 11,\n B: 11,\n c: 12,\n C: 12,\n d: 13,\n D: 13,\n e: 14,\n E: 14,\n f: 15,\n F: 15\n}\n\nmodule.exports = {\n HEX\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = new Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in new Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/cameligo/cameligo.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"cameligo\",\n extensions: [\".mligo\"],\n aliases: [\"Cameligo\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/cameligo/cameligo\"], resolve, reject);\n });\n } else {\n return import(\"./cameligo.js\");\n }\n }\n});\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Lazy } from '../../../common/lazy.js';\nconst nullHoverDelegateFactory = () => ({\n get delay() { return -1; },\n dispose: () => { },\n showHover: () => { return undefined; },\n});\nlet hoverDelegateFactory = nullHoverDelegateFactory;\nconst defaultHoverDelegateMouse = new Lazy(() => hoverDelegateFactory('mouse', false));\nconst defaultHoverDelegateElement = new Lazy(() => hoverDelegateFactory('element', false));\n// TODO: Remove when getDefaultHoverDelegate is no longer used\nexport function setHoverDelegateFactory(hoverDelegateProvider) {\n hoverDelegateFactory = hoverDelegateProvider;\n}\n// TODO: Refine type for use in new IHoverService interface\nexport function getDefaultHoverDelegate(placement) {\n if (placement === 'element') {\n return defaultHoverDelegateElement.value;\n }\n return defaultHoverDelegateMouse.value;\n}\n// TODO: Create equivalent in IHoverService\nexport function createInstantHoverDelegate() {\n // Creates a hover delegate with instant hover enabled.\n // This hover belongs to the consumer and requires the them to dispose it.\n // Instant hover only makes sense for 'element' placement.\n return hoverDelegateFactory('element', true);\n}\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\n\n// src/basic-languages/r/r.contribution.ts\nimport { registerLanguage } from \"../_.contribution.js\";\nregisterLanguage({\n id: \"r\",\n extensions: [\".r\", \".rhistory\", \".rmd\", \".rprofile\", \".rt\"],\n aliases: [\"R\", \"r\"],\n loader: () => {\n if (false) {\n return new Promise((resolve, reject) => {\n __require([\"vs/basic-languages/r/r\"], resolve, reject);\n });\n } else {\n return import(\"./r.js\");\n }\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './iPadShowKeyboard.css';\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { isIOS } from '../../../../base/common/platform.js';\nexport class IPadShowKeyboard extends Disposable {\n constructor(editor) {\n super();\n this.editor = editor;\n this.widget = null;\n if (isIOS) {\n this._register(editor.onDidChangeConfiguration(() => this.update()));\n this.update();\n }\n }\n update() {\n const shouldHaveWidget = (!this.editor.getOption(91 /* EditorOption.readOnly */));\n if (!this.widget && shouldHaveWidget) {\n this.widget = new ShowKeyboardWidget(this.editor);\n }\n else if (this.widget && !shouldHaveWidget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n dispose() {\n super.dispose();\n if (this.widget) {\n this.widget.dispose();\n this.widget = null;\n }\n }\n}\nIPadShowKeyboard.ID = 'editor.contrib.iPadShowKeyboard';\nclass ShowKeyboardWidget extends Disposable {\n constructor(editor) {\n super();\n this.editor = editor;\n this._domNode = document.createElement('textarea');\n this._domNode.className = 'iPadShowKeyboard';\n this._register(dom.addDisposableListener(this._domNode, 'touchstart', (e) => {\n this.editor.focus();\n }));\n this._register(dom.addDisposableListener(this._domNode, 'focus', (e) => {\n this.editor.focus();\n }));\n this.editor.addOverlayWidget(this);\n }\n dispose() {\n this.editor.removeOverlayWidget(this);\n super.dispose();\n }\n // ----- IOverlayWidget API\n getId() {\n return ShowKeyboardWidget.ID;\n }\n getDomNode() {\n return this._domNode;\n }\n getPosition() {\n return {\n preference: 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */\n };\n }\n}\nShowKeyboardWidget.ID = 'editor.contrib.ShowKeyboardWidget';\nregisterEditorContribution(IPadShowKeyboard.ID, IPadShowKeyboard, 3 /* EditorContributionInstantiation.Eventually */);\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n let gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisfies the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (let i = 0; i < range.set.length; ++i) {\n const comparators = range.set[i]\n\n let high = null\n let low = null\n\n comparators.forEach((comparator) => {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nmodule.exports = outside\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { CancellationTokenSource } from './cancellation.js';\nimport { BugIndicatingError, CancellationError } from './errors.js';\nimport { Emitter, Event } from './event.js';\nimport { toDisposable } from './lifecycle.js';\nimport { setTimeout0 } from './platform.js';\nimport { MicrotaskDelay } from './symbols.js';\nexport function isThenable(obj) {\n return !!obj && typeof obj.then === 'function';\n}\nexport function createCancelablePromise(callback) {\n const source = new CancellationTokenSource();\n const thenable = callback(source.token);\n const promise = new Promise((resolve, reject) => {\n const subscription = source.token.onCancellationRequested(() => {\n subscription.dispose();\n reject(new CancellationError());\n });\n Promise.resolve(thenable).then(value => {\n subscription.dispose();\n source.dispose();\n resolve(value);\n }, err => {\n subscription.dispose();\n source.dispose();\n reject(err);\n });\n });\n return new class {\n cancel() {\n source.cancel();\n source.dispose();\n }\n then(resolve, reject) {\n return promise.then(resolve, reject);\n }\n catch(reject) {\n return this.then(undefined, reject);\n }\n finally(onfinally) {\n return promise.finally(onfinally);\n }\n };\n}\nexport function raceCancellation(promise, token, defaultValue) {\n return new Promise((resolve, reject) => {\n const ref = token.onCancellationRequested(() => {\n ref.dispose();\n resolve(defaultValue);\n });\n promise.then(resolve, reject).finally(() => ref.dispose());\n });\n}\n/**\n * A helper to prevent accumulation of sequential async tasks.\n *\n * Imagine a mail man with the sole task of delivering letters. As soon as\n * a letter submitted for delivery, he drives to the destination, delivers it\n * and returns to his base. Imagine that during the trip, N more letters were submitted.\n * When the mail man returns, he picks those N letters and delivers them all in a\n * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.\n *\n * The throttler implements this via the queue() method, by providing it a task\n * factory. Following the example:\n *\n * \t\tconst throttler = new Throttler();\n * \t\tconst letters = [];\n *\n * \t\tfunction deliver() {\n * \t\t\tconst lettersToDeliver = letters;\n * \t\t\tletters = [];\n * \t\t\treturn makeTheTrip(lettersToDeliver);\n * \t\t}\n *\n * \t\tfunction onLetterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tthrottler.queue(deliver);\n * \t\t}\n */\nexport class Throttler {\n constructor() {\n this.isDisposed = false;\n this.activePromise = null;\n this.queuedPromise = null;\n this.queuedPromiseFactory = null;\n }\n queue(promiseFactory) {\n if (this.isDisposed) {\n return Promise.reject(new Error('Throttler is disposed'));\n }\n if (this.activePromise) {\n this.queuedPromiseFactory = promiseFactory;\n if (!this.queuedPromise) {\n const onComplete = () => {\n this.queuedPromise = null;\n if (this.isDisposed) {\n return;\n }\n const result = this.queue(this.queuedPromiseFactory);\n this.queuedPromiseFactory = null;\n return result;\n };\n this.queuedPromise = new Promise(resolve => {\n this.activePromise.then(onComplete, onComplete).then(resolve);\n });\n }\n return new Promise((resolve, reject) => {\n this.queuedPromise.then(resolve, reject);\n });\n }\n this.activePromise = promiseFactory();\n return new Promise((resolve, reject) => {\n this.activePromise.then((result) => {\n this.activePromise = null;\n resolve(result);\n }, (err) => {\n this.activePromise = null;\n reject(err);\n });\n });\n }\n dispose() {\n this.isDisposed = true;\n }\n}\nconst timeoutDeferred = (timeout, fn) => {\n let scheduled = true;\n const handle = setTimeout(() => {\n scheduled = false;\n fn();\n }, timeout);\n return {\n isTriggered: () => scheduled,\n dispose: () => {\n clearTimeout(handle);\n scheduled = false;\n },\n };\n};\nconst microtaskDeferred = (fn) => {\n let scheduled = true;\n queueMicrotask(() => {\n if (scheduled) {\n scheduled = false;\n fn();\n }\n });\n return {\n isTriggered: () => scheduled,\n dispose: () => { scheduled = false; },\n };\n};\n/**\n * A helper to delay (debounce) execution of a task that is being requested often.\n *\n * Following the throttler, now imagine the mail man wants to optimize the number of\n * trips proactively. The trip itself can be long, so he decides not to make the trip\n * as soon as a letter is submitted. Instead he waits a while, in case more\n * letters are submitted. After said waiting period, if no letters were submitted, he\n * decides to make the trip. Imagine that N more letters were submitted after the first\n * one, all within a short period of time between each other. Even though N+1\n * submissions occurred, only 1 delivery was made.\n *\n * The delayer offers this behavior via the trigger() method, into which both the task\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\n * the example:\n *\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\n * \t\tconst letters = [];\n *\n * \t\tfunction letterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\n * \t\t}\n */\nexport class Delayer {\n constructor(defaultDelay) {\n this.defaultDelay = defaultDelay;\n this.deferred = null;\n this.completionPromise = null;\n this.doResolve = null;\n this.doReject = null;\n this.task = null;\n }\n trigger(task, delay = this.defaultDelay) {\n this.task = task;\n this.cancelTimeout();\n if (!this.completionPromise) {\n this.completionPromise = new Promise((resolve, reject) => {\n this.doResolve = resolve;\n this.doReject = reject;\n }).then(() => {\n this.completionPromise = null;\n this.doResolve = null;\n if (this.task) {\n const task = this.task;\n this.task = null;\n return task();\n }\n return undefined;\n });\n }\n const fn = () => {\n var _a;\n this.deferred = null;\n (_a = this.doResolve) === null || _a === void 0 ? void 0 : _a.call(this, null);\n };\n this.deferred = delay === MicrotaskDelay ? microtaskDeferred(fn) : timeoutDeferred(delay, fn);\n return this.completionPromise;\n }\n isTriggered() {\n var _a;\n return !!((_a = this.deferred) === null || _a === void 0 ? void 0 : _a.isTriggered());\n }\n cancel() {\n var _a;\n this.cancelTimeout();\n if (this.completionPromise) {\n (_a = this.doReject) === null || _a === void 0 ? void 0 : _a.call(this, new CancellationError());\n this.completionPromise = null;\n }\n }\n cancelTimeout() {\n var _a;\n (_a = this.deferred) === null || _a === void 0 ? void 0 : _a.dispose();\n this.deferred = null;\n }\n dispose() {\n this.cancel();\n }\n}\n/**\n * A helper to delay execution of a task that is being requested often, while\n * preventing accumulation of consecutive executions, while the task runs.\n *\n * The mail man is clever and waits for a certain amount of time, before going\n * out to deliver letters. While the mail man is going out, more letters arrive\n * and can only be delivered once he is back. Once he is back the mail man will\n * do one more trip to deliver the letters that have accumulated while he was out.\n */\nexport class ThrottledDelayer {\n constructor(defaultDelay) {\n this.delayer = new Delayer(defaultDelay);\n this.throttler = new Throttler();\n }\n trigger(promiseFactory, delay) {\n return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);\n }\n cancel() {\n this.delayer.cancel();\n }\n dispose() {\n this.delayer.dispose();\n this.throttler.dispose();\n }\n}\nexport function timeout(millis, token) {\n if (!token) {\n return createCancelablePromise(token => timeout(millis, token));\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(() => {\n disposable.dispose();\n resolve();\n }, millis);\n const disposable = token.onCancellationRequested(() => {\n clearTimeout(handle);\n disposable.dispose();\n reject(new CancellationError());\n });\n });\n}\n/**\n * Creates a timeout that can be disposed using its returned value.\n * @param handler The timeout handler.\n * @param timeout An optional timeout in milliseconds.\n * @param store An optional {@link DisposableStore} that will have the timeout disposable managed automatically.\n *\n * @example\n * const store = new DisposableStore;\n * // Call the timeout after 1000ms at which point it will be automatically\n * // evicted from the store.\n * const timeoutDisposable = disposableTimeout(() => {}, 1000, store);\n *\n * if (foo) {\n * // Cancel the timeout and evict it from store.\n * timeoutDisposable.dispose();\n * }\n */\nexport function disposableTimeout(handler, timeout = 0, store) {\n const timer = setTimeout(() => {\n handler();\n if (store) {\n disposable.dispose();\n }\n }, timeout);\n const disposable = toDisposable(() => {\n clearTimeout(timer);\n store === null || store === void 0 ? void 0 : store.deleteAndLeak(disposable);\n });\n store === null || store === void 0 ? void 0 : store.add(disposable);\n return disposable;\n}\nexport function first(promiseFactories, shouldStop = t => !!t, defaultValue = null) {\n let index = 0;\n const len = promiseFactories.length;\n const loop = () => {\n if (index >= len) {\n return Promise.resolve(defaultValue);\n }\n const factory = promiseFactories[index++];\n const promise = Promise.resolve(factory());\n return promise.then(result => {\n if (shouldStop(result)) {\n return Promise.resolve(result);\n }\n return loop();\n });\n };\n return loop();\n}\nexport class TimeoutTimer {\n constructor(runner, timeout) {\n this._isDisposed = false;\n this._token = -1;\n if (typeof runner === 'function' && typeof timeout === 'number') {\n this.setIfNotSet(runner, timeout);\n }\n }\n dispose() {\n this.cancel();\n this._isDisposed = true;\n }\n cancel() {\n if (this._token !== -1) {\n clearTimeout(this._token);\n this._token = -1;\n }\n }\n cancelAndSet(runner, timeout) {\n if (this._isDisposed) {\n throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);\n }\n this.cancel();\n this._token = setTimeout(() => {\n this._token = -1;\n runner();\n }, timeout);\n }\n setIfNotSet(runner, timeout) {\n if (this._isDisposed) {\n throw new BugIndicatingError(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);\n }\n if (this._token !== -1) {\n // timer is already set\n return;\n }\n this._token = setTimeout(() => {\n this._token = -1;\n runner();\n }, timeout);\n }\n}\nexport class IntervalTimer {\n constructor() {\n this.disposable = undefined;\n this.isDisposed = false;\n }\n cancel() {\n var _a;\n (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\n this.disposable = undefined;\n }\n cancelAndSet(runner, interval, context = globalThis) {\n if (this.isDisposed) {\n throw new BugIndicatingError(`Calling 'cancelAndSet' on a disposed IntervalTimer`);\n }\n this.cancel();\n const handle = context.setInterval(() => {\n runner();\n }, interval);\n this.disposable = toDisposable(() => {\n context.clearInterval(handle);\n this.disposable = undefined;\n });\n }\n dispose() {\n this.cancel();\n this.isDisposed = true;\n }\n}\nexport class RunOnceScheduler {\n constructor(runner, delay) {\n this.timeoutToken = -1;\n this.runner = runner;\n this.timeout = delay;\n this.timeoutHandler = this.onTimeout.bind(this);\n }\n /**\n * Dispose RunOnceScheduler\n */\n dispose() {\n this.cancel();\n this.runner = null;\n }\n /**\n * Cancel current scheduled runner (if any).\n */\n cancel() {\n if (this.isScheduled()) {\n clearTimeout(this.timeoutToken);\n this.timeoutToken = -1;\n }\n }\n /**\n * Cancel previous runner (if any) & schedule a new runner.\n */\n schedule(delay = this.timeout) {\n this.cancel();\n this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n }\n get delay() {\n return this.timeout;\n }\n set delay(value) {\n this.timeout = value;\n }\n /**\n * Returns true if scheduled.\n */\n isScheduled() {\n return this.timeoutToken !== -1;\n }\n onTimeout() {\n this.timeoutToken = -1;\n if (this.runner) {\n this.doRun();\n }\n }\n doRun() {\n var _a;\n (_a = this.runner) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n}\n/**\n * Execute the callback the next time the browser is idle, returning an\n * {@link IDisposable} that will cancel the callback when disposed. This wraps\n * [requestIdleCallback] so it will fallback to [setTimeout] if the environment\n * doesn't support it.\n *\n * @param callback The callback to run when idle, this includes an\n * [IdleDeadline] that provides the time alloted for the idle callback by the\n * browser. Not respecting this deadline will result in a degraded user\n * experience.\n * @param timeout A timeout at which point to queue no longer wait for an idle\n * callback but queue it on the regular event loop (like setTimeout). Typically\n * this should not be used.\n *\n * [IdleDeadline]: https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline\n * [requestIdleCallback]: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n * [setTimeout]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout\n *\n * **Note** that there is `dom.ts#runWhenWindowIdle` which is better suited when running inside a browser\n * context\n */\nexport let runWhenGlobalIdle;\nexport let _runWhenIdle;\n(function () {\n if (typeof globalThis.requestIdleCallback !== 'function' || typeof globalThis.cancelIdleCallback !== 'function') {\n _runWhenIdle = (_targetWindow, runner) => {\n setTimeout0(() => {\n if (disposed) {\n return;\n }\n const end = Date.now() + 15; // one frame at 64fps\n const deadline = {\n didTimeout: true,\n timeRemaining() {\n return Math.max(0, end - Date.now());\n }\n };\n runner(Object.freeze(deadline));\n });\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n }\n };\n };\n }\n else {\n _runWhenIdle = (targetWindow, runner, timeout) => {\n const handle = targetWindow.requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n targetWindow.cancelIdleCallback(handle);\n }\n };\n };\n }\n runWhenGlobalIdle = (runner) => _runWhenIdle(globalThis, runner);\n})();\nexport class AbstractIdleValue {\n constructor(targetWindow, executor) {\n this._didRun = false;\n this._executor = () => {\n try {\n this._value = executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n };\n this._handle = _runWhenIdle(targetWindow, () => this._executor());\n }\n dispose() {\n this._handle.dispose();\n }\n get value() {\n if (!this._didRun) {\n this._handle.dispose();\n this._executor();\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n get isInitialized() {\n return this._didRun;\n }\n}\n/**\n * An `IdleValue` that always uses the current window (which might be throttled or inactive)\n *\n * **Note** that there is `dom.ts#WindowIdleValue` which is better suited when running inside a browser\n * context\n */\nexport class GlobalIdleValue extends AbstractIdleValue {\n constructor(executor) {\n super(globalThis, executor);\n }\n}\n/**\n * Creates a promise whose resolution or rejection can be controlled imperatively.\n */\nexport class DeferredPromise {\n get isRejected() {\n var _a;\n return ((_a = this.outcome) === null || _a === void 0 ? void 0 : _a.outcome) === 1 /* DeferredOutcome.Rejected */;\n }\n get isSettled() {\n return !!this.outcome;\n }\n constructor() {\n this.p = new Promise((c, e) => {\n this.completeCallback = c;\n this.errorCallback = e;\n });\n }\n complete(value) {\n return new Promise(resolve => {\n this.completeCallback(value);\n this.outcome = { outcome: 0 /* DeferredOutcome.Resolved */, value };\n resolve();\n });\n }\n error(err) {\n return new Promise(resolve => {\n this.errorCallback(err);\n this.outcome = { outcome: 1 /* DeferredOutcome.Rejected */, value: err };\n resolve();\n });\n }\n cancel() {\n return this.error(new CancellationError());\n }\n}\n//#endregion\n//#region Promises\nexport var Promises;\n(function (Promises) {\n /**\n * A drop-in replacement for `Promise.all` with the only difference\n * that the method awaits every promise to either fulfill or reject.\n *\n * Similar to `Promise.all`, only the first error will be returned\n * if any.\n */\n async function settled(promises) {\n let firstError = undefined;\n const result = await Promise.all(promises.map(promise => promise.then(value => value, error => {\n if (!firstError) {\n firstError = error;\n }\n return undefined; // do not rethrow so that other promises can settle\n })));\n if (typeof firstError !== 'undefined') {\n throw firstError;\n }\n return result; // cast is needed and protected by the `throw` above\n }\n Promises.settled = settled;\n /**\n * A helper to create a new `Promise` with a body that is a promise\n * itself. By default, an error that raises from the async body will\n * end up as a unhandled rejection, so this utility properly awaits the\n * body and rejects the promise as a normal promise does without async\n * body.\n *\n * This method should only be used in rare cases where otherwise `async`\n * cannot be used (e.g. when callbacks are involved that require this).\n */\n function withAsyncBody(bodyFn) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n await bodyFn(resolve, reject);\n }\n catch (error) {\n reject(error);\n }\n });\n }\n Promises.withAsyncBody = withAsyncBody;\n})(Promises || (Promises = {}));\n/**\n * A rich implementation for an `AsyncIterable`.\n */\nexport class AsyncIterableObject {\n static fromArray(items) {\n return new AsyncIterableObject((writer) => {\n writer.emitMany(items);\n });\n }\n static fromPromise(promise) {\n return new AsyncIterableObject(async (emitter) => {\n emitter.emitMany(await promise);\n });\n }\n static fromPromises(promises) {\n return new AsyncIterableObject(async (emitter) => {\n await Promise.all(promises.map(async (p) => emitter.emitOne(await p)));\n });\n }\n static merge(iterables) {\n return new AsyncIterableObject(async (emitter) => {\n await Promise.all(iterables.map(async (iterable) => {\n for await (const item of iterable) {\n emitter.emitOne(item);\n }\n }));\n });\n }\n constructor(executor, onReturn) {\n this._state = 0 /* AsyncIterableSourceState.Initial */;\n this._results = [];\n this._error = null;\n this._onReturn = onReturn;\n this._onStateChanged = new Emitter();\n queueMicrotask(async () => {\n const writer = {\n emitOne: (item) => this.emitOne(item),\n emitMany: (items) => this.emitMany(items),\n reject: (error) => this.reject(error)\n };\n try {\n await Promise.resolve(executor(writer));\n this.resolve();\n }\n catch (err) {\n this.reject(err);\n }\n finally {\n writer.emitOne = undefined;\n writer.emitMany = undefined;\n writer.reject = undefined;\n }\n });\n }\n [Symbol.asyncIterator]() {\n let i = 0;\n return {\n next: async () => {\n do {\n if (this._state === 2 /* AsyncIterableSourceState.DoneError */) {\n throw this._error;\n }\n if (i < this._results.length) {\n return { done: false, value: this._results[i++] };\n }\n if (this._state === 1 /* AsyncIterableSourceState.DoneOK */) {\n return { done: true, value: undefined };\n }\n await Event.toPromise(this._onStateChanged.event);\n } while (true);\n },\n return: async () => {\n var _a;\n (_a = this._onReturn) === null || _a === void 0 ? void 0 : _a.call(this);\n return { done: true, value: undefined };\n }\n };\n }\n static map(iterable, mapFn) {\n return new AsyncIterableObject(async (emitter) => {\n for await (const item of iterable) {\n emitter.emitOne(mapFn(item));\n }\n });\n }\n map(mapFn) {\n return AsyncIterableObject.map(this, mapFn);\n }\n static filter(iterable, filterFn) {\n return new AsyncIterableObject(async (emitter) => {\n for await (const item of iterable) {\n if (filterFn(item)) {\n emitter.emitOne(item);\n }\n }\n });\n }\n filter(filterFn) {\n return AsyncIterableObject.filter(this, filterFn);\n }\n static coalesce(iterable) {\n return AsyncIterableObject.filter(iterable, item => !!item);\n }\n coalesce() {\n return AsyncIterableObject.coalesce(this);\n }\n static async toPromise(iterable) {\n const result = [];\n for await (const item of iterable) {\n result.push(item);\n }\n return result;\n }\n toPromise() {\n return AsyncIterableObject.toPromise(this);\n }\n /**\n * The value will be appended at the end.\n *\n * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n */\n emitOne(value) {\n if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n return;\n }\n // it is important to add new values at the end,\n // as we may have iterators already running on the array\n this._results.push(value);\n this._onStateChanged.fire();\n }\n /**\n * The values will be appended at the end.\n *\n * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n */\n emitMany(values) {\n if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n return;\n }\n // it is important to add new values at the end,\n // as we may have iterators already running on the array\n this._results = this._results.concat(values);\n this._onStateChanged.fire();\n }\n /**\n * Calling `resolve()` will mark the result array as complete.\n *\n * **NOTE** `resolve()` must be called, otherwise all consumers of this iterable will hang indefinitely, similar to a non-resolved promise.\n * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n */\n resolve() {\n if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n return;\n }\n this._state = 1 /* AsyncIterableSourceState.DoneOK */;\n this._onStateChanged.fire();\n }\n /**\n * Writing an error will permanently invalidate this iterable.\n * The current users will receive an error thrown, as will all future users.\n *\n * **NOTE** If `resolve()` or `reject()` have already been called, this method has no effect.\n */\n reject(error) {\n if (this._state !== 0 /* AsyncIterableSourceState.Initial */) {\n return;\n }\n this._state = 2 /* AsyncIterableSourceState.DoneError */;\n this._error = error;\n this._onStateChanged.fire();\n }\n}\nAsyncIterableObject.EMPTY = AsyncIterableObject.fromArray([]);\nexport class CancelableAsyncIterableObject extends AsyncIterableObject {\n constructor(_source, executor) {\n super(executor);\n this._source = _source;\n }\n cancel() {\n this._source.cancel();\n }\n}\nexport function createCancelableAsyncIterable(callback) {\n const source = new CancellationTokenSource();\n const innerIterable = callback(source.token);\n return new CancelableAsyncIterableObject(source, async (emitter) => {\n const subscription = source.token.onCancellationRequested(() => {\n subscription.dispose();\n source.dispose();\n emitter.reject(new CancellationError());\n });\n try {\n for await (const item of innerIterable) {\n if (source.token.isCancellationRequested) {\n // canceled in the meantime\n return;\n }\n emitter.emitOne(item);\n }\n subscription.dispose();\n source.dispose();\n }\n catch (err) {\n subscription.dispose();\n source.dispose();\n emitter.reject(err);\n }\n });\n}\n//#endregion\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { equals } from '../../base/common/objects.js';\n/**\n * Vertical Lane in the overview ruler of the editor.\n */\nexport var OverviewRulerLane;\n(function (OverviewRulerLane) {\n OverviewRulerLane[OverviewRulerLane[\"Left\"] = 1] = \"Left\";\n OverviewRulerLane[OverviewRulerLane[\"Center\"] = 2] = \"Center\";\n OverviewRulerLane[OverviewRulerLane[\"Right\"] = 4] = \"Right\";\n OverviewRulerLane[OverviewRulerLane[\"Full\"] = 7] = \"Full\";\n})(OverviewRulerLane || (OverviewRulerLane = {}));\n/**\n * Vertical Lane in the glyph margin of the editor.\n */\nexport var GlyphMarginLane;\n(function (GlyphMarginLane) {\n GlyphMarginLane[GlyphMarginLane[\"Left\"] = 1] = \"Left\";\n GlyphMarginLane[GlyphMarginLane[\"Center\"] = 2] = \"Center\";\n GlyphMarginLane[GlyphMarginLane[\"Right\"] = 3] = \"Right\";\n})(GlyphMarginLane || (GlyphMarginLane = {}));\nexport var InjectedTextCursorStops;\n(function (InjectedTextCursorStops) {\n InjectedTextCursorStops[InjectedTextCursorStops[\"Both\"] = 0] = \"Both\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"Right\"] = 1] = \"Right\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"Left\"] = 2] = \"Left\";\n InjectedTextCursorStops[InjectedTextCursorStops[\"None\"] = 3] = \"None\";\n})(InjectedTextCursorStops || (InjectedTextCursorStops = {}));\nexport class TextModelResolvedOptions {\n get originalIndentSize() {\n return this._indentSizeIsTabSize ? 'tabSize' : this.indentSize;\n }\n /**\n * @internal\n */\n constructor(src) {\n this._textModelResolvedOptionsBrand = undefined;\n this.tabSize = Math.max(1, src.tabSize | 0);\n if (src.indentSize === 'tabSize') {\n this.indentSize = this.tabSize;\n this._indentSizeIsTabSize = true;\n }\n else {\n this.indentSize = Math.max(1, src.indentSize | 0);\n this._indentSizeIsTabSize = false;\n }\n this.insertSpaces = Boolean(src.insertSpaces);\n this.defaultEOL = src.defaultEOL | 0;\n this.trimAutoWhitespace = Boolean(src.trimAutoWhitespace);\n this.bracketPairColorizationOptions = src.bracketPairColorizationOptions;\n }\n /**\n * @internal\n */\n equals(other) {\n return (this.tabSize === other.tabSize\n && this._indentSizeIsTabSize === other._indentSizeIsTabSize\n && this.indentSize === other.indentSize\n && this.insertSpaces === other.insertSpaces\n && this.defaultEOL === other.defaultEOL\n && this.trimAutoWhitespace === other.trimAutoWhitespace\n && equals(this.bracketPairColorizationOptions, other.bracketPairColorizationOptions));\n }\n /**\n * @internal\n */\n createChangeEvent(newOpts) {\n return {\n tabSize: this.tabSize !== newOpts.tabSize,\n indentSize: this.indentSize !== newOpts.indentSize,\n insertSpaces: this.insertSpaces !== newOpts.insertSpaces,\n trimAutoWhitespace: this.trimAutoWhitespace !== newOpts.trimAutoWhitespace,\n };\n }\n}\nexport class FindMatch {\n /**\n * @internal\n */\n constructor(range, matches) {\n this._findMatchBrand = undefined;\n this.range = range;\n this.matches = matches;\n }\n}\n/**\n * @internal\n */\nexport function isITextSnapshot(obj) {\n return (obj && typeof obj.read === 'function');\n}\n/**\n * @internal\n */\nexport class ValidAnnotatedEditOperation {\n constructor(identifier, range, text, forceMoveMarkers, isAutoWhitespaceEdit, _isTracked) {\n this.identifier = identifier;\n this.range = range;\n this.text = text;\n this.forceMoveMarkers = forceMoveMarkers;\n this.isAutoWhitespaceEdit = isAutoWhitespaceEdit;\n this._isTracked = _isTracked;\n }\n}\n/**\n * @internal\n */\nexport class SearchData {\n constructor(regex, wordSeparators, simpleSearch) {\n this.regex = regex;\n this.wordSeparators = wordSeparators;\n this.simpleSearch = simpleSearch;\n }\n}\n/**\n * @internal\n */\nexport class ApplyEditsResult {\n constructor(reverseEdits, changes, trimAutoWhitespaceLineNumbers) {\n this.reverseEdits = reverseEdits;\n this.changes = changes;\n this.trimAutoWhitespaceLineNumbers = trimAutoWhitespaceLineNumbers;\n }\n}\n/**\n * @internal\n */\nexport function shouldSynchronizeModel(model) {\n return (!model.isTooLargeForSyncing() && !model.isForSimpleWidget);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { escapeRegExpCharacters } from '../../../../base/common/strings.js';\nimport { EditorAction, EditorCommand } from '../../../browser/editorExtensions.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { autoFixCommandId, codeActionCommandId, fixAllCommandId, organizeImportsCommandId, quickFixCommandId, refactorCommandId, sourceActionCommandId } from './codeAction.js';\nimport * as nls from '../../../../nls.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport { CodeActionCommandArgs, CodeActionKind, CodeActionTriggerSource } from '../common/types.js';\nimport { CodeActionController } from './codeActionController.js';\nimport { SUPPORTED_CODE_ACTIONS } from './codeActionModel.js';\nfunction contextKeyForSupportedActions(kind) {\n return ContextKeyExpr.regex(SUPPORTED_CODE_ACTIONS.keys()[0], new RegExp('(\\\\s|^)' + escapeRegExpCharacters(kind.value) + '\\\\b'));\n}\nconst argsSchema = {\n type: 'object',\n defaultSnippets: [{ body: { kind: '' } }],\n properties: {\n 'kind': {\n type: 'string',\n description: nls.localize('args.schema.kind', \"Kind of the code action to run.\"),\n },\n 'apply': {\n type: 'string',\n description: nls.localize('args.schema.apply', \"Controls when the returned actions are applied.\"),\n default: \"ifSingle\" /* CodeActionAutoApply.IfSingle */,\n enum: [\"first\" /* CodeActionAutoApply.First */, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, \"never\" /* CodeActionAutoApply.Never */],\n enumDescriptions: [\n nls.localize('args.schema.apply.first', \"Always apply the first returned code action.\"),\n nls.localize('args.schema.apply.ifSingle', \"Apply the first returned code action if it is the only one.\"),\n nls.localize('args.schema.apply.never', \"Do not apply the returned code actions.\"),\n ]\n },\n 'preferred': {\n type: 'boolean',\n default: false,\n description: nls.localize('args.schema.preferred', \"Controls if only preferred code actions should be returned.\"),\n }\n }\n};\nfunction triggerCodeActionsForEditorSelection(editor, notAvailableMessage, filter, autoApply, triggerAction = CodeActionTriggerSource.Default) {\n if (editor.hasModel()) {\n const controller = CodeActionController.get(editor);\n controller === null || controller === void 0 ? void 0 : controller.manualTriggerAtCurrentPosition(notAvailableMessage, triggerAction, filter, autoApply);\n }\n}\nexport class QuickFixAction extends EditorAction {\n constructor() {\n super({\n id: quickFixCommandId,\n label: nls.localize('quickfix.trigger.label', \"Quick Fix...\"),\n alias: 'Quick Fix...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.quickFix.noneMessage', \"No code actions available\"), undefined, undefined, CodeActionTriggerSource.QuickFix);\n }\n}\nexport class CodeActionCommand extends EditorCommand {\n constructor() {\n super({\n id: codeActionCommandId,\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n metadata: {\n description: 'Trigger a code action',\n args: [{ name: 'args', schema: argsSchema, }]\n }\n });\n }\n runEditorCommand(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: HierarchicalKind.Empty,\n apply: \"ifSingle\" /* CodeActionAutoApply.IfSingle */,\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.codeAction.noneMessage.preferred.kind', \"No preferred code actions for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.codeAction.noneMessage.kind', \"No code actions for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.codeAction.noneMessage.preferred', \"No preferred code actions available\")\n : nls.localize('editor.action.codeAction.noneMessage', \"No code actions available\"), {\n include: args.kind,\n includeSourceActions: true,\n onlyIncludePreferredActions: args.preferred,\n }, args.apply);\n }\n}\nexport class RefactorAction extends EditorAction {\n constructor() {\n super({\n id: refactorCommandId,\n label: nls.localize('refactor.label', \"Refactor...\"),\n alias: 'Refactor...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 2048 /* KeyMod.CtrlCmd */ | 1024 /* KeyMod.Shift */ | 48 /* KeyCode.KeyR */,\n mac: {\n primary: 256 /* KeyMod.WinCtrl */ | 1024 /* KeyMod.Shift */ | 48 /* KeyCode.KeyR */\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n contextMenuOpts: {\n group: '1_modification',\n order: 2,\n when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Refactor)),\n },\n metadata: {\n description: 'Refactor...',\n args: [{ name: 'args', schema: argsSchema }]\n }\n });\n }\n run(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: CodeActionKind.Refactor,\n apply: \"never\" /* CodeActionAutoApply.Never */\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.refactor.noneMessage.preferred.kind', \"No preferred refactorings for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.refactor.noneMessage.kind', \"No refactorings for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.refactor.noneMessage.preferred', \"No preferred refactorings available\")\n : nls.localize('editor.action.refactor.noneMessage', \"No refactorings available\"), {\n include: CodeActionKind.Refactor.contains(args.kind) ? args.kind : HierarchicalKind.None,\n onlyIncludePreferredActions: args.preferred\n }, args.apply, CodeActionTriggerSource.Refactor);\n }\n}\nexport class SourceAction extends EditorAction {\n constructor() {\n super({\n id: sourceActionCommandId,\n label: nls.localize('source.label', \"Source Action...\"),\n alias: 'Source Action...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider),\n contextMenuOpts: {\n group: '1_modification',\n order: 2.1,\n when: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.Source)),\n },\n metadata: {\n description: 'Source Action...',\n args: [{ name: 'args', schema: argsSchema }]\n }\n });\n }\n run(_accessor, editor, userArgs) {\n const args = CodeActionCommandArgs.fromUser(userArgs, {\n kind: CodeActionKind.Source,\n apply: \"never\" /* CodeActionAutoApply.Never */\n });\n return triggerCodeActionsForEditorSelection(editor, typeof (userArgs === null || userArgs === void 0 ? void 0 : userArgs.kind) === 'string'\n ? args.preferred\n ? nls.localize('editor.action.source.noneMessage.preferred.kind', \"No preferred source actions for '{0}' available\", userArgs.kind)\n : nls.localize('editor.action.source.noneMessage.kind', \"No source actions for '{0}' available\", userArgs.kind)\n : args.preferred\n ? nls.localize('editor.action.source.noneMessage.preferred', \"No preferred source actions available\")\n : nls.localize('editor.action.source.noneMessage', \"No source actions available\"), {\n include: CodeActionKind.Source.contains(args.kind) ? args.kind : HierarchicalKind.None,\n includeSourceActions: true,\n onlyIncludePreferredActions: args.preferred,\n }, args.apply, CodeActionTriggerSource.SourceAction);\n }\n}\nexport class OrganizeImportsAction extends EditorAction {\n constructor() {\n super({\n id: organizeImportsCommandId,\n label: nls.localize('organizeImports.label', \"Organize Imports\"),\n alias: 'Organize Imports',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceOrganizeImports)),\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 1024 /* KeyMod.Shift */ | 512 /* KeyMod.Alt */ | 45 /* KeyCode.KeyO */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.organize.noneMessage', \"No organize imports action available\"), { include: CodeActionKind.SourceOrganizeImports, includeSourceActions: true }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.OrganizeImports);\n }\n}\nexport class FixAllAction extends EditorAction {\n constructor() {\n super({\n id: fixAllCommandId,\n label: nls.localize('fixAll.label', \"Fix All\"),\n alias: 'Fix All',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.SourceFixAll))\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('fixAll.noneMessage', \"No fix all action available\"), { include: CodeActionKind.SourceFixAll, includeSourceActions: true }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.FixAll);\n }\n}\nexport class AutoFixAction extends EditorAction {\n constructor() {\n super({\n id: autoFixCommandId,\n label: nls.localize('autoFix.label', \"Auto Fix...\"),\n alias: 'Auto Fix...',\n precondition: ContextKeyExpr.and(EditorContextKeys.writable, contextKeyForSupportedActions(CodeActionKind.QuickFix)),\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 512 /* KeyMod.Alt */ | 1024 /* KeyMod.Shift */ | 89 /* KeyCode.Period */,\n mac: {\n primary: 2048 /* KeyMod.CtrlCmd */ | 512 /* KeyMod.Alt */ | 89 /* KeyCode.Period */\n },\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(_accessor, editor) {\n return triggerCodeActionsForEditorSelection(editor, nls.localize('editor.action.autoFix.noneMessage', \"No auto fixes available\"), {\n include: CodeActionKind.QuickFix,\n onlyIncludePreferredActions: true\n }, \"ifSingle\" /* CodeActionAutoApply.IfSingle */, CodeActionTriggerSource.AutoFix);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerEditorAction, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { editorConfigurationBaseNode } from '../../../common/config/editorConfigurationSchema.js';\nimport { AutoFixAction, CodeActionCommand, FixAllAction, OrganizeImportsAction, QuickFixAction, RefactorAction, SourceAction } from './codeActionCommands.js';\nimport { CodeActionController } from './codeActionController.js';\nimport { LightBulbWidget } from './lightBulbWidget.js';\nimport * as nls from '../../../../nls.js';\nimport { Extensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nregisterEditorContribution(CodeActionController.ID, CodeActionController, 3 /* EditorContributionInstantiation.Eventually */);\nregisterEditorContribution(LightBulbWidget.ID, LightBulbWidget, 4 /* EditorContributionInstantiation.Lazy */);\nregisterEditorAction(QuickFixAction);\nregisterEditorAction(RefactorAction);\nregisterEditorAction(SourceAction);\nregisterEditorAction(OrganizeImportsAction);\nregisterEditorAction(AutoFixAction);\nregisterEditorAction(FixAllAction);\nregisterEditorCommand(new CodeActionCommand());\nRegistry.as(Extensions.Configuration).registerConfiguration({\n ...editorConfigurationBaseNode,\n properties: {\n 'editor.codeActionWidget.showHeaders': {\n type: 'boolean',\n scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n description: nls.localize('showCodeActionHeaders', \"Enable/disable showing group headers in the Code Action menu.\"),\n default: true,\n },\n }\n});\nRegistry.as(Extensions.Configuration).registerConfiguration({\n ...editorConfigurationBaseNode,\n properties: {\n 'editor.codeActionWidget.includeNearbyQuickFixes': {\n type: 'boolean',\n scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n description: nls.localize('includeNearbyQuickFixes', \"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic.\"),\n default: true,\n },\n }\n});\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","/*!-----------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Version: 0.50.0(c321d0fbecb50ab8a5365fa1965476b0ae63fc87)\n * Released under the MIT license\n * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt\n *-----------------------------------------------------------------------------*/\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\n\n// src/fillers/monaco-editor-core.ts\nvar monaco_editor_core_exports = {};\n__reExport(monaco_editor_core_exports, monaco_editor_core_star);\nimport * as monaco_editor_core_star from \"../editor/editor.api.js\";\n\n// src/basic-languages/_.contribution.ts\nvar languageDefinitions = {};\nvar lazyLanguageLoaders = {};\nvar LazyLanguageLoader = class _LazyLanguageLoader {\n static getOrCreate(languageId) {\n if (!lazyLanguageLoaders[languageId]) {\n lazyLanguageLoaders[languageId] = new _LazyLanguageLoader(languageId);\n }\n return lazyLanguageLoaders[languageId];\n }\n constructor(languageId) {\n this._languageId = languageId;\n this._loadingTriggered = false;\n this._lazyLoadPromise = new Promise((resolve, reject) => {\n this._lazyLoadPromiseResolve = resolve;\n this._lazyLoadPromiseReject = reject;\n });\n }\n load() {\n if (!this._loadingTriggered) {\n this._loadingTriggered = true;\n languageDefinitions[this._languageId].loader().then(\n (mod) => this._lazyLoadPromiseResolve(mod),\n (err) => this._lazyLoadPromiseReject(err)\n );\n }\n return this._lazyLoadPromise;\n }\n};\nasync function loadLanguage(languageId) {\n await LazyLanguageLoader.getOrCreate(languageId).load();\n const model = monaco_editor_core_exports.editor.createModel(\"\", languageId);\n model.dispose();\n}\nfunction registerLanguage(def) {\n const languageId = def.id;\n languageDefinitions[languageId] = def;\n monaco_editor_core_exports.languages.register(def);\n const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);\n monaco_editor_core_exports.languages.registerTokensProviderFactory(languageId, {\n create: async () => {\n const mod = await lazyLanguageLoader.load();\n return mod.language;\n }\n });\n monaco_editor_core_exports.languages.onLanguageEncountered(languageId, async () => {\n const mod = await lazyLanguageLoader.load();\n monaco_editor_core_exports.languages.setLanguageConfiguration(languageId, mod.conf);\n });\n}\nexport {\n loadLanguage,\n registerLanguage\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar PostEditWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Button } from '../../../../base/browser/ui/button/button.js';\nimport { toAction } from '../../../../base/common/actions.js';\nimport { toErrorMessage } from '../../../../base/common/errorMessage.js';\nimport { isCancellationError } from '../../../../base/common/errors.js';\nimport { Event } from '../../../../base/common/event.js';\nimport { Disposable, MutableDisposable, toDisposable } from '../../../../base/common/lifecycle.js';\nimport './postEditWidget.css';\nimport { IBulkEditService } from '../../../browser/services/bulkEditService.js';\nimport { createCombinedWorkspaceEdit } from './edit.js';\nimport { localize } from '../../../../nls.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../../../platform/contextview/browser/contextView.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { INotificationService } from '../../../../platform/notification/common/notification.js';\nlet PostEditWidget = PostEditWidget_1 = class PostEditWidget extends Disposable {\n constructor(typeId, editor, visibleContext, showCommand, range, edits, onSelectNewEdit, _contextMenuService, contextKeyService, _keybindingService) {\n super();\n this.typeId = typeId;\n this.editor = editor;\n this.showCommand = showCommand;\n this.range = range;\n this.edits = edits;\n this.onSelectNewEdit = onSelectNewEdit;\n this._contextMenuService = _contextMenuService;\n this._keybindingService = _keybindingService;\n this.allowEditorOverflow = true;\n this.suppressMouseDown = true;\n this.create();\n this.visibleContext = visibleContext.bindTo(contextKeyService);\n this.visibleContext.set(true);\n this._register(toDisposable(() => this.visibleContext.reset()));\n this.editor.addContentWidget(this);\n this.editor.layoutContentWidget(this);\n this._register(toDisposable((() => this.editor.removeContentWidget(this))));\n this._register(this.editor.onDidChangeCursorPosition(e => {\n if (!range.containsPosition(e.position)) {\n this.dispose();\n }\n }));\n this._register(Event.runAndSubscribe(_keybindingService.onDidUpdateKeybindings, () => {\n this._updateButtonTitle();\n }));\n }\n _updateButtonTitle() {\n var _a;\n const binding = (_a = this._keybindingService.lookupKeybinding(this.showCommand.id)) === null || _a === void 0 ? void 0 : _a.getLabel();\n this.button.element.title = this.showCommand.label + (binding ? ` (${binding})` : '');\n }\n create() {\n this.domNode = dom.$('.post-edit-widget');\n this.button = this._register(new Button(this.domNode, {\n supportIcons: true,\n }));\n this.button.label = '$(insert)';\n this._register(dom.addDisposableListener(this.domNode, dom.EventType.CLICK, () => this.showSelector()));\n }\n getId() {\n return PostEditWidget_1.baseId + '.' + this.typeId;\n }\n getDomNode() {\n return this.domNode;\n }\n getPosition() {\n return {\n position: this.range.getEndPosition(),\n preference: [2 /* ContentWidgetPositionPreference.BELOW */]\n };\n }\n showSelector() {\n this._contextMenuService.showContextMenu({\n getAnchor: () => {\n const pos = dom.getDomNodePagePosition(this.button.element);\n return { x: pos.left + pos.width, y: pos.top + pos.height };\n },\n getActions: () => {\n return this.edits.allEdits.map((edit, i) => toAction({\n id: '',\n label: edit.title,\n checked: i === this.edits.activeEditIndex,\n run: () => {\n if (i !== this.edits.activeEditIndex) {\n return this.onSelectNewEdit(i);\n }\n },\n }));\n }\n });\n }\n};\nPostEditWidget.baseId = 'editor.widget.postEditWidget';\nPostEditWidget = PostEditWidget_1 = __decorate([\n __param(7, IContextMenuService),\n __param(8, IContextKeyService),\n __param(9, IKeybindingService)\n], PostEditWidget);\nlet PostEditWidgetManager = class PostEditWidgetManager extends Disposable {\n constructor(_id, _editor, _visibleContext, _showCommand, _instantiationService, _bulkEditService, _notificationService) {\n super();\n this._id = _id;\n this._editor = _editor;\n this._visibleContext = _visibleContext;\n this._showCommand = _showCommand;\n this._instantiationService = _instantiationService;\n this._bulkEditService = _bulkEditService;\n this._notificationService = _notificationService;\n this._currentWidget = this._register(new MutableDisposable());\n this._register(Event.any(_editor.onDidChangeModel, _editor.onDidChangeModelContent)(() => this.clear()));\n }\n async applyEditAndShowIfNeeded(ranges, edits, canShowWidget, resolve, token) {\n const model = this._editor.getModel();\n if (!model || !ranges.length) {\n return;\n }\n const edit = edits.allEdits.at(edits.activeEditIndex);\n if (!edit) {\n return;\n }\n const onDidSelectEdit = async (newEditIndex) => {\n const model = this._editor.getModel();\n if (!model) {\n return;\n }\n await model.undo();\n this.applyEditAndShowIfNeeded(ranges, { activeEditIndex: newEditIndex, allEdits: edits.allEdits }, canShowWidget, resolve, token);\n };\n const handleError = (e, message) => {\n if (isCancellationError(e)) {\n return;\n }\n this._notificationService.error(message);\n if (canShowWidget) {\n this.show(ranges[0], edits, onDidSelectEdit);\n }\n };\n let resolvedEdit;\n try {\n resolvedEdit = await resolve(edit, token);\n }\n catch (e) {\n return handleError(e, localize('resolveError', \"Error resolving edit '{0}':\\n{1}\", edit.title, toErrorMessage(e)));\n }\n if (token.isCancellationRequested) {\n return;\n }\n const combinedWorkspaceEdit = createCombinedWorkspaceEdit(model.uri, ranges, resolvedEdit);\n // Use a decoration to track edits around the trigger range\n const primaryRange = ranges[0];\n const editTrackingDecoration = model.deltaDecorations([], [{\n range: primaryRange,\n options: { description: 'paste-line-suffix', stickiness: 0 /* TrackedRangeStickiness.AlwaysGrowsWhenTypingAtEdges */ }\n }]);\n this._editor.focus();\n let editResult;\n let editRange;\n try {\n editResult = await this._bulkEditService.apply(combinedWorkspaceEdit, { editor: this._editor, token });\n editRange = model.getDecorationRange(editTrackingDecoration[0]);\n }\n catch (e) {\n return handleError(e, localize('applyError', \"Error applying edit '{0}':\\n{1}\", edit.title, toErrorMessage(e)));\n }\n finally {\n model.deltaDecorations(editTrackingDecoration, []);\n }\n if (token.isCancellationRequested) {\n return;\n }\n if (canShowWidget && editResult.isApplied && edits.allEdits.length > 1) {\n this.show(editRange !== null && editRange !== void 0 ? editRange : primaryRange, edits, onDidSelectEdit);\n }\n }\n show(range, edits, onDidSelectEdit) {\n this.clear();\n if (this._editor.hasModel()) {\n this._currentWidget.value = this._instantiationService.createInstance((PostEditWidget), this._id, this._editor, this._visibleContext, this._showCommand, range, edits, onDidSelectEdit);\n }\n }\n clear() {\n this._currentWidget.clear();\n }\n tryShowSelector() {\n var _a;\n (_a = this._currentWidget.value) === null || _a === void 0 ? void 0 : _a.showSelector();\n }\n};\nPostEditWidgetManager = __decorate([\n __param(4, IInstantiationService),\n __param(5, IBulkEditService),\n __param(6, INotificationService)\n], PostEditWidgetManager);\nexport { PostEditWidgetManager };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Selection } from '../core/selection.js';\nexport class ReplaceCommand {\n constructor(range, text, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n return Selection.fromPositions(srcRange.getEndPosition());\n }\n}\nexport class ReplaceCommandThatSelectsText {\n constructor(range, text) {\n this._range = range;\n this._text = text;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n return Selection.fromRange(srcRange, 0 /* SelectionDirection.LTR */);\n }\n}\nexport class ReplaceCommandWithoutChangingPosition {\n constructor(range, text, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n return Selection.fromPositions(srcRange.getStartPosition());\n }\n}\nexport class ReplaceCommandWithOffsetCursorState {\n constructor(range, text, lineNumberDeltaOffset, columnDeltaOffset, insertsAutoWhitespace = false) {\n this._range = range;\n this._text = text;\n this._columnDeltaOffset = columnDeltaOffset;\n this._lineNumberDeltaOffset = lineNumberDeltaOffset;\n this.insertsAutoWhitespace = insertsAutoWhitespace;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text);\n }\n computeCursorState(model, helper) {\n const inverseEditOperations = helper.getInverseEditOperations();\n const srcRange = inverseEditOperations[0].range;\n return Selection.fromPositions(srcRange.getEndPosition().delta(this._lineNumberDeltaOffset, this._columnDeltaOffset));\n }\n}\nexport class ReplaceCommandThatPreservesSelection {\n constructor(editRange, text, initialSelection, forceMoveMarkers = false) {\n this._range = editRange;\n this._text = text;\n this._initialSelection = initialSelection;\n this._forceMoveMarkers = forceMoveMarkers;\n this._selectionId = null;\n }\n getEditOperations(model, builder) {\n builder.addTrackedEditOperation(this._range, this._text, this._forceMoveMarkers);\n this._selectionId = builder.trackSelection(this._initialSelection);\n }\n computeCursorState(model, helper) {\n return helper.getTrackedSelection(this._selectionId);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as strings from './strings.js';\nvar Severity;\n(function (Severity) {\n Severity[Severity[\"Ignore\"] = 0] = \"Ignore\";\n Severity[Severity[\"Info\"] = 1] = \"Info\";\n Severity[Severity[\"Warning\"] = 2] = \"Warning\";\n Severity[Severity[\"Error\"] = 3] = \"Error\";\n})(Severity || (Severity = {}));\n(function (Severity) {\n const _error = 'error';\n const _warning = 'warning';\n const _warn = 'warn';\n const _info = 'info';\n const _ignore = 'ignore';\n /**\n * Parses 'error', 'warning', 'warn', 'info' in call casings\n * and falls back to ignore.\n */\n function fromValue(value) {\n if (!value) {\n return Severity.Ignore;\n }\n if (strings.equalsIgnoreCase(_error, value)) {\n return Severity.Error;\n }\n if (strings.equalsIgnoreCase(_warning, value) || strings.equalsIgnoreCase(_warn, value)) {\n return Severity.Warning;\n }\n if (strings.equalsIgnoreCase(_info, value)) {\n return Severity.Info;\n }\n return Severity.Ignore;\n }\n Severity.fromValue = fromValue;\n function toString(severity) {\n switch (severity) {\n case Severity.Error: return _error;\n case Severity.Warning: return _warning;\n case Severity.Info: return _info;\n default: return _ignore;\n }\n }\n Severity.toString = toString;\n})(Severity || (Severity = {}));\nexport default Severity;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as arrays from '../../../base/common/arrays.js';\nimport * as objects from '../../../base/common/objects.js';\nimport * as platform from '../../../base/common/platform.js';\nimport { EDITOR_MODEL_DEFAULTS } from '../core/textModelDefaults.js';\nimport { USUAL_WORD_SEPARATORS } from '../core/wordHelper.js';\nimport * as nls from '../../../nls.js';\n/**\n * @internal\n * The width of the minimap gutter, in pixels.\n */\nexport const MINIMAP_GUTTER_WIDTH = 8;\n//#endregion\n/**\n * An event describing that the configuration of the editor has changed.\n */\nexport class ConfigurationChangedEvent {\n /**\n * @internal\n */\n constructor(values) {\n this._values = values;\n }\n hasChanged(id) {\n return this._values[id];\n }\n}\n/**\n * @internal\n */\nexport class ComputeOptionsMemory {\n constructor() {\n this.stableMinimapLayoutInput = null;\n this.stableFitMaxMinimapScale = 0;\n this.stableFitRemainingWidth = 0;\n }\n}\n/**\n * @internal\n */\nclass BaseEditorOption {\n constructor(id, name, defaultValue, schema) {\n this.id = id;\n this.name = name;\n this.defaultValue = defaultValue;\n this.schema = schema;\n }\n applyUpdate(value, update) {\n return applyUpdate(value, update);\n }\n compute(env, options, value) {\n return value;\n }\n}\nexport class ApplyUpdateResult {\n constructor(newValue, didChange) {\n this.newValue = newValue;\n this.didChange = didChange;\n }\n}\nfunction applyUpdate(value, update) {\n if (typeof value !== 'object' || typeof update !== 'object' || !value || !update) {\n return new ApplyUpdateResult(update, value !== update);\n }\n if (Array.isArray(value) || Array.isArray(update)) {\n const arrayEquals = Array.isArray(value) && Array.isArray(update) && arrays.equals(value, update);\n return new ApplyUpdateResult(update, !arrayEquals);\n }\n let didChange = false;\n for (const key in update) {\n if (update.hasOwnProperty(key)) {\n const result = applyUpdate(value[key], update[key]);\n if (result.didChange) {\n value[key] = result.newValue;\n didChange = true;\n }\n }\n }\n return new ApplyUpdateResult(value, didChange);\n}\n/**\n * @internal\n */\nclass ComputedEditorOption {\n constructor(id) {\n this.schema = undefined;\n this.id = id;\n this.name = '_never_';\n this.defaultValue = undefined;\n }\n applyUpdate(value, update) {\n return applyUpdate(value, update);\n }\n validate(input) {\n return this.defaultValue;\n }\n}\nclass SimpleEditorOption {\n constructor(id, name, defaultValue, schema) {\n this.id = id;\n this.name = name;\n this.defaultValue = defaultValue;\n this.schema = schema;\n }\n applyUpdate(value, update) {\n return applyUpdate(value, update);\n }\n validate(input) {\n if (typeof input === 'undefined') {\n return this.defaultValue;\n }\n return input;\n }\n compute(env, options, value) {\n return value;\n }\n}\n/**\n * @internal\n */\nexport function boolean(value, defaultValue) {\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n if (value === 'false') {\n // treat the string 'false' as false\n return false;\n }\n return Boolean(value);\n}\nclass EditorBooleanOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'boolean';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n }\n validate(input) {\n return boolean(input, this.defaultValue);\n }\n}\n/**\n * @internal\n */\nexport function clampedInt(value, defaultValue, minimum, maximum) {\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n let r = parseInt(value, 10);\n if (isNaN(r)) {\n return defaultValue;\n }\n r = Math.max(minimum, r);\n r = Math.min(maximum, r);\n return r | 0;\n}\nclass EditorIntOption extends SimpleEditorOption {\n static clampedInt(value, defaultValue, minimum, maximum) {\n return clampedInt(value, defaultValue, minimum, maximum);\n }\n constructor(id, name, defaultValue, minimum, maximum, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'integer';\n schema.default = defaultValue;\n schema.minimum = minimum;\n schema.maximum = maximum;\n }\n super(id, name, defaultValue, schema);\n this.minimum = minimum;\n this.maximum = maximum;\n }\n validate(input) {\n return EditorIntOption.clampedInt(input, this.defaultValue, this.minimum, this.maximum);\n }\n}\n/**\n * @internal\n */\nexport function clampedFloat(value, defaultValue, minimum, maximum) {\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n const r = EditorFloatOption.float(value, defaultValue);\n return EditorFloatOption.clamp(r, minimum, maximum);\n}\nclass EditorFloatOption extends SimpleEditorOption {\n static clamp(n, min, max) {\n if (n < min) {\n return min;\n }\n if (n > max) {\n return max;\n }\n return n;\n }\n static float(value, defaultValue) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'undefined') {\n return defaultValue;\n }\n const r = parseFloat(value);\n return (isNaN(r) ? defaultValue : r);\n }\n constructor(id, name, defaultValue, validationFn, schema) {\n if (typeof schema !== 'undefined') {\n schema.type = 'number';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n this.validationFn = validationFn;\n }\n validate(input) {\n return this.validationFn(EditorFloatOption.float(input, this.defaultValue));\n }\n}\nclass EditorStringOption extends SimpleEditorOption {\n static string(value, defaultValue) {\n if (typeof value !== 'string') {\n return defaultValue;\n }\n return value;\n }\n constructor(id, name, defaultValue, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n }\n validate(input) {\n return EditorStringOption.string(input, this.defaultValue);\n }\n}\n/**\n * @internal\n */\nexport function stringSet(value, defaultValue, allowedValues, renamedValues) {\n if (typeof value !== 'string') {\n return defaultValue;\n }\n if (renamedValues && value in renamedValues) {\n return renamedValues[value];\n }\n if (allowedValues.indexOf(value) === -1) {\n return defaultValue;\n }\n return value;\n}\nclass EditorStringEnumOption extends SimpleEditorOption {\n constructor(id, name, defaultValue, allowedValues, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.enum = allowedValues;\n schema.default = defaultValue;\n }\n super(id, name, defaultValue, schema);\n this._allowedValues = allowedValues;\n }\n validate(input) {\n return stringSet(input, this.defaultValue, this._allowedValues);\n }\n}\nclass EditorEnumOption extends BaseEditorOption {\n constructor(id, name, defaultValue, defaultStringValue, allowedValues, convert, schema = undefined) {\n if (typeof schema !== 'undefined') {\n schema.type = 'string';\n schema.enum = allowedValues;\n schema.default = defaultStringValue;\n }\n super(id, name, defaultValue, schema);\n this._allowedValues = allowedValues;\n this._convert = convert;\n }\n validate(input) {\n if (typeof input !== 'string') {\n return this.defaultValue;\n }\n if (this._allowedValues.indexOf(input) === -1) {\n return this.defaultValue;\n }\n return this._convert(input);\n }\n}\n//#endregion\n//#region autoIndent\nfunction _autoIndentFromString(autoIndent) {\n switch (autoIndent) {\n case 'none': return 0 /* EditorAutoIndentStrategy.None */;\n case 'keep': return 1 /* EditorAutoIndentStrategy.Keep */;\n case 'brackets': return 2 /* EditorAutoIndentStrategy.Brackets */;\n case 'advanced': return 3 /* EditorAutoIndentStrategy.Advanced */;\n case 'full': return 4 /* EditorAutoIndentStrategy.Full */;\n }\n}\n//#endregion\n//#region accessibilitySupport\nclass EditorAccessibilitySupport extends BaseEditorOption {\n constructor() {\n super(2 /* EditorOption.accessibilitySupport */, 'accessibilitySupport', 0 /* AccessibilitySupport.Unknown */, {\n type: 'string',\n enum: ['auto', 'on', 'off'],\n enumDescriptions: [\n nls.localize('accessibilitySupport.auto', \"Use platform APIs to detect when a Screen Reader is attached.\"),\n nls.localize('accessibilitySupport.on', \"Optimize for usage with a Screen Reader.\"),\n nls.localize('accessibilitySupport.off', \"Assume a screen reader is not attached.\"),\n ],\n default: 'auto',\n tags: ['accessibility'],\n description: nls.localize('accessibilitySupport', \"Controls if the UI should run in a mode where it is optimized for screen readers.\")\n });\n }\n validate(input) {\n switch (input) {\n case 'auto': return 0 /* AccessibilitySupport.Unknown */;\n case 'off': return 1 /* AccessibilitySupport.Disabled */;\n case 'on': return 2 /* AccessibilitySupport.Enabled */;\n }\n return this.defaultValue;\n }\n compute(env, options, value) {\n if (value === 0 /* AccessibilitySupport.Unknown */) {\n // The editor reads the `accessibilitySupport` from the environment\n return env.accessibilitySupport;\n }\n return value;\n }\n}\nclass EditorComments extends BaseEditorOption {\n constructor() {\n const defaults = {\n insertSpace: true,\n ignoreEmptyLines: true,\n };\n super(23 /* EditorOption.comments */, 'comments', defaults, {\n 'editor.comments.insertSpace': {\n type: 'boolean',\n default: defaults.insertSpace,\n description: nls.localize('comments.insertSpace', \"Controls whether a space character is inserted when commenting.\")\n },\n 'editor.comments.ignoreEmptyLines': {\n type: 'boolean',\n default: defaults.ignoreEmptyLines,\n description: nls.localize('comments.ignoreEmptyLines', 'Controls if empty lines should be ignored with toggle, add or remove actions for line comments.')\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n insertSpace: boolean(input.insertSpace, this.defaultValue.insertSpace),\n ignoreEmptyLines: boolean(input.ignoreEmptyLines, this.defaultValue.ignoreEmptyLines),\n };\n }\n}\nfunction _cursorBlinkingStyleFromString(cursorBlinkingStyle) {\n switch (cursorBlinkingStyle) {\n case 'blink': return 1 /* TextEditorCursorBlinkingStyle.Blink */;\n case 'smooth': return 2 /* TextEditorCursorBlinkingStyle.Smooth */;\n case 'phase': return 3 /* TextEditorCursorBlinkingStyle.Phase */;\n case 'expand': return 4 /* TextEditorCursorBlinkingStyle.Expand */;\n case 'solid': return 5 /* TextEditorCursorBlinkingStyle.Solid */;\n }\n}\n//#endregion\n//#region cursorStyle\n/**\n * The style in which the editor's cursor should be rendered.\n */\nexport var TextEditorCursorStyle;\n(function (TextEditorCursorStyle) {\n /**\n * As a vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Line\"] = 1] = \"Line\";\n /**\n * As a block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Block\"] = 2] = \"Block\";\n /**\n * As a horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"Underline\"] = 3] = \"Underline\";\n /**\n * As a thin vertical line (sitting between two characters).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"LineThin\"] = 4] = \"LineThin\";\n /**\n * As an outlined block (sitting on top of a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"BlockOutline\"] = 5] = \"BlockOutline\";\n /**\n * As a thin horizontal line (sitting under a character).\n */\n TextEditorCursorStyle[TextEditorCursorStyle[\"UnderlineThin\"] = 6] = \"UnderlineThin\";\n})(TextEditorCursorStyle || (TextEditorCursorStyle = {}));\nfunction _cursorStyleFromString(cursorStyle) {\n switch (cursorStyle) {\n case 'line': return TextEditorCursorStyle.Line;\n case 'block': return TextEditorCursorStyle.Block;\n case 'underline': return TextEditorCursorStyle.Underline;\n case 'line-thin': return TextEditorCursorStyle.LineThin;\n case 'block-outline': return TextEditorCursorStyle.BlockOutline;\n case 'underline-thin': return TextEditorCursorStyle.UnderlineThin;\n }\n}\n//#endregion\n//#region editorClassName\nclass EditorClassName extends ComputedEditorOption {\n constructor() {\n super(142 /* EditorOption.editorClassName */);\n }\n compute(env, options, _) {\n const classNames = ['monaco-editor'];\n if (options.get(39 /* EditorOption.extraEditorClassName */)) {\n classNames.push(options.get(39 /* EditorOption.extraEditorClassName */));\n }\n if (env.extraEditorClassName) {\n classNames.push(env.extraEditorClassName);\n }\n if (options.get(74 /* EditorOption.mouseStyle */) === 'default') {\n classNames.push('mouse-default');\n }\n else if (options.get(74 /* EditorOption.mouseStyle */) === 'copy') {\n classNames.push('mouse-copy');\n }\n if (options.get(111 /* EditorOption.showUnused */)) {\n classNames.push('showUnused');\n }\n if (options.get(140 /* EditorOption.showDeprecated */)) {\n classNames.push('showDeprecated');\n }\n return classNames.join(' ');\n }\n}\n//#endregion\n//#region emptySelectionClipboard\nclass EditorEmptySelectionClipboard extends EditorBooleanOption {\n constructor() {\n super(37 /* EditorOption.emptySelectionClipboard */, 'emptySelectionClipboard', true, { description: nls.localize('emptySelectionClipboard', \"Controls whether copying without a selection copies the current line.\") });\n }\n compute(env, options, value) {\n return value && env.emptySelectionClipboard;\n }\n}\nclass EditorFind extends BaseEditorOption {\n constructor() {\n const defaults = {\n cursorMoveOnType: true,\n seedSearchStringFromSelection: 'always',\n autoFindInSelection: 'never',\n globalFindClipboard: false,\n addExtraSpaceOnTop: true,\n loop: true\n };\n super(41 /* EditorOption.find */, 'find', defaults, {\n 'editor.find.cursorMoveOnType': {\n type: 'boolean',\n default: defaults.cursorMoveOnType,\n description: nls.localize('find.cursorMoveOnType', \"Controls whether the cursor should jump to find matches while typing.\")\n },\n 'editor.find.seedSearchStringFromSelection': {\n type: 'string',\n enum: ['never', 'always', 'selection'],\n default: defaults.seedSearchStringFromSelection,\n enumDescriptions: [\n nls.localize('editor.find.seedSearchStringFromSelection.never', 'Never seed search string from the editor selection.'),\n nls.localize('editor.find.seedSearchStringFromSelection.always', 'Always seed search string from the editor selection, including word at cursor position.'),\n nls.localize('editor.find.seedSearchStringFromSelection.selection', 'Only seed search string from the editor selection.')\n ],\n description: nls.localize('find.seedSearchStringFromSelection', \"Controls whether the search string in the Find Widget is seeded from the editor selection.\")\n },\n 'editor.find.autoFindInSelection': {\n type: 'string',\n enum: ['never', 'always', 'multiline'],\n default: defaults.autoFindInSelection,\n enumDescriptions: [\n nls.localize('editor.find.autoFindInSelection.never', 'Never turn on Find in Selection automatically (default).'),\n nls.localize('editor.find.autoFindInSelection.always', 'Always turn on Find in Selection automatically.'),\n nls.localize('editor.find.autoFindInSelection.multiline', 'Turn on Find in Selection automatically when multiple lines of content are selected.')\n ],\n description: nls.localize('find.autoFindInSelection', \"Controls the condition for turning on Find in Selection automatically.\")\n },\n 'editor.find.globalFindClipboard': {\n type: 'boolean',\n default: defaults.globalFindClipboard,\n description: nls.localize('find.globalFindClipboard', \"Controls whether the Find Widget should read or modify the shared find clipboard on macOS.\"),\n included: platform.isMacintosh\n },\n 'editor.find.addExtraSpaceOnTop': {\n type: 'boolean',\n default: defaults.addExtraSpaceOnTop,\n description: nls.localize('find.addExtraSpaceOnTop', \"Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.\")\n },\n 'editor.find.loop': {\n type: 'boolean',\n default: defaults.loop,\n description: nls.localize('find.loop', \"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n cursorMoveOnType: boolean(input.cursorMoveOnType, this.defaultValue.cursorMoveOnType),\n seedSearchStringFromSelection: typeof _input.seedSearchStringFromSelection === 'boolean'\n ? (_input.seedSearchStringFromSelection ? 'always' : 'never')\n : stringSet(input.seedSearchStringFromSelection, this.defaultValue.seedSearchStringFromSelection, ['never', 'always', 'selection']),\n autoFindInSelection: typeof _input.autoFindInSelection === 'boolean'\n ? (_input.autoFindInSelection ? 'always' : 'never')\n : stringSet(input.autoFindInSelection, this.defaultValue.autoFindInSelection, ['never', 'always', 'multiline']),\n globalFindClipboard: boolean(input.globalFindClipboard, this.defaultValue.globalFindClipboard),\n addExtraSpaceOnTop: boolean(input.addExtraSpaceOnTop, this.defaultValue.addExtraSpaceOnTop),\n loop: boolean(input.loop, this.defaultValue.loop),\n };\n }\n}\n//#endregion\n//#region fontLigatures\n/**\n * @internal\n */\nexport class EditorFontLigatures extends BaseEditorOption {\n constructor() {\n super(51 /* EditorOption.fontLigatures */, 'fontLigatures', EditorFontLigatures.OFF, {\n anyOf: [\n {\n type: 'boolean',\n description: nls.localize('fontLigatures', \"Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.\"),\n },\n {\n type: 'string',\n description: nls.localize('fontFeatureSettings', \"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.\")\n }\n ],\n description: nls.localize('fontLigaturesGeneral', \"Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property.\"),\n default: false\n });\n }\n validate(input) {\n if (typeof input === 'undefined') {\n return this.defaultValue;\n }\n if (typeof input === 'string') {\n if (input === 'false' || input.length === 0) {\n return EditorFontLigatures.OFF;\n }\n if (input === 'true') {\n return EditorFontLigatures.ON;\n }\n return input;\n }\n if (Boolean(input)) {\n return EditorFontLigatures.ON;\n }\n return EditorFontLigatures.OFF;\n }\n}\nEditorFontLigatures.OFF = '\"liga\" off, \"calt\" off';\nEditorFontLigatures.ON = '\"liga\" on, \"calt\" on';\n//#endregion\n//#region fontVariations\n/**\n * @internal\n */\nexport class EditorFontVariations extends BaseEditorOption {\n constructor() {\n super(54 /* EditorOption.fontVariations */, 'fontVariations', EditorFontVariations.OFF, {\n anyOf: [\n {\n type: 'boolean',\n description: nls.localize('fontVariations', \"Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.\"),\n },\n {\n type: 'string',\n description: nls.localize('fontVariationSettings', \"Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.\")\n }\n ],\n description: nls.localize('fontVariationsGeneral', \"Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property.\"),\n default: false\n });\n }\n validate(input) {\n if (typeof input === 'undefined') {\n return this.defaultValue;\n }\n if (typeof input === 'string') {\n if (input === 'false') {\n return EditorFontVariations.OFF;\n }\n if (input === 'true') {\n return EditorFontVariations.TRANSLATE;\n }\n return input;\n }\n if (Boolean(input)) {\n return EditorFontVariations.TRANSLATE;\n }\n return EditorFontVariations.OFF;\n }\n compute(env, options, value) {\n // The value is computed from the fontWeight if it is true.\n // So take the result from env.fontInfo\n return env.fontInfo.fontVariationSettings;\n }\n}\n// Text is laid out using default settings.\nEditorFontVariations.OFF = 'normal';\n// Translate `fontWeight` config to the `font-variation-settings` CSS property.\nEditorFontVariations.TRANSLATE = 'translate';\n//#endregion\n//#region fontInfo\nclass EditorFontInfo extends ComputedEditorOption {\n constructor() {\n super(50 /* EditorOption.fontInfo */);\n }\n compute(env, options, _) {\n return env.fontInfo;\n }\n}\n//#endregion\n//#region fontSize\nclass EditorFontSize extends SimpleEditorOption {\n constructor() {\n super(52 /* EditorOption.fontSize */, 'fontSize', EDITOR_FONT_DEFAULTS.fontSize, {\n type: 'number',\n minimum: 6,\n maximum: 100,\n default: EDITOR_FONT_DEFAULTS.fontSize,\n description: nls.localize('fontSize', \"Controls the font size in pixels.\")\n });\n }\n validate(input) {\n const r = EditorFloatOption.float(input, this.defaultValue);\n if (r === 0) {\n return EDITOR_FONT_DEFAULTS.fontSize;\n }\n return EditorFloatOption.clamp(r, 6, 100);\n }\n compute(env, options, value) {\n // The final fontSize respects the editor zoom level.\n // So take the result from env.fontInfo\n return env.fontInfo.fontSize;\n }\n}\n//#endregion\n//#region fontWeight\nclass EditorFontWeight extends BaseEditorOption {\n constructor() {\n super(53 /* EditorOption.fontWeight */, 'fontWeight', EDITOR_FONT_DEFAULTS.fontWeight, {\n anyOf: [\n {\n type: 'number',\n minimum: EditorFontWeight.MINIMUM_VALUE,\n maximum: EditorFontWeight.MAXIMUM_VALUE,\n errorMessage: nls.localize('fontWeightErrorMessage', \"Only \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000 are allowed.\")\n },\n {\n type: 'string',\n pattern: '^(normal|bold|1000|[1-9][0-9]{0,2})$'\n },\n {\n enum: EditorFontWeight.SUGGESTION_VALUES\n }\n ],\n default: EDITOR_FONT_DEFAULTS.fontWeight,\n description: nls.localize('fontWeight', \"Controls the font weight. Accepts \\\"normal\\\" and \\\"bold\\\" keywords or numbers between 1 and 1000.\")\n });\n }\n validate(input) {\n if (input === 'normal' || input === 'bold') {\n return input;\n }\n return String(EditorIntOption.clampedInt(input, EDITOR_FONT_DEFAULTS.fontWeight, EditorFontWeight.MINIMUM_VALUE, EditorFontWeight.MAXIMUM_VALUE));\n }\n}\nEditorFontWeight.SUGGESTION_VALUES = ['normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'];\nEditorFontWeight.MINIMUM_VALUE = 1;\nEditorFontWeight.MAXIMUM_VALUE = 1000;\nclass EditorGoToLocation extends BaseEditorOption {\n constructor() {\n const defaults = {\n multiple: 'peek',\n multipleDefinitions: 'peek',\n multipleTypeDefinitions: 'peek',\n multipleDeclarations: 'peek',\n multipleImplementations: 'peek',\n multipleReferences: 'peek',\n alternativeDefinitionCommand: 'editor.action.goToReferences',\n alternativeTypeDefinitionCommand: 'editor.action.goToReferences',\n alternativeDeclarationCommand: 'editor.action.goToReferences',\n alternativeImplementationCommand: '',\n alternativeReferenceCommand: '',\n };\n const jsonSubset = {\n type: 'string',\n enum: ['peek', 'gotoAndPeek', 'goto'],\n default: defaults.multiple,\n enumDescriptions: [\n nls.localize('editor.gotoLocation.multiple.peek', 'Show Peek view of the results (default)'),\n nls.localize('editor.gotoLocation.multiple.gotoAndPeek', 'Go to the primary result and show a Peek view'),\n nls.localize('editor.gotoLocation.multiple.goto', 'Go to the primary result and enable Peek-less navigation to others')\n ]\n };\n const alternativeCommandOptions = ['', 'editor.action.referenceSearch.trigger', 'editor.action.goToReferences', 'editor.action.peekImplementation', 'editor.action.goToImplementation', 'editor.action.peekTypeDefinition', 'editor.action.goToTypeDefinition', 'editor.action.peekDeclaration', 'editor.action.revealDeclaration', 'editor.action.peekDefinition', 'editor.action.revealDefinitionAside', 'editor.action.revealDefinition'];\n super(58 /* EditorOption.gotoLocation */, 'gotoLocation', defaults, {\n 'editor.gotoLocation.multiple': {\n deprecationMessage: nls.localize('editor.gotoLocation.multiple.deprecated', \"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.\"),\n },\n 'editor.gotoLocation.multipleDefinitions': {\n description: nls.localize('editor.editor.gotoLocation.multipleDefinitions', \"Controls the behavior the 'Go to Definition'-command when multiple target locations exist.\"),\n ...jsonSubset,\n },\n 'editor.gotoLocation.multipleTypeDefinitions': {\n description: nls.localize('editor.editor.gotoLocation.multipleTypeDefinitions', \"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist.\"),\n ...jsonSubset,\n },\n 'editor.gotoLocation.multipleDeclarations': {\n description: nls.localize('editor.editor.gotoLocation.multipleDeclarations', \"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist.\"),\n ...jsonSubset,\n },\n 'editor.gotoLocation.multipleImplementations': {\n description: nls.localize('editor.editor.gotoLocation.multipleImplemenattions', \"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist.\"),\n ...jsonSubset,\n },\n 'editor.gotoLocation.multipleReferences': {\n description: nls.localize('editor.editor.gotoLocation.multipleReferences', \"Controls the behavior the 'Go to References'-command when multiple target locations exist.\"),\n ...jsonSubset,\n },\n 'editor.gotoLocation.alternativeDefinitionCommand': {\n type: 'string',\n default: defaults.alternativeDefinitionCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Definition' is the current location.\")\n },\n 'editor.gotoLocation.alternativeTypeDefinitionCommand': {\n type: 'string',\n default: defaults.alternativeTypeDefinitionCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeTypeDefinitionCommand', \"Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.\")\n },\n 'editor.gotoLocation.alternativeDeclarationCommand': {\n type: 'string',\n default: defaults.alternativeDeclarationCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeDeclarationCommand', \"Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.\")\n },\n 'editor.gotoLocation.alternativeImplementationCommand': {\n type: 'string',\n default: defaults.alternativeImplementationCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeImplementationCommand', \"Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.\")\n },\n 'editor.gotoLocation.alternativeReferenceCommand': {\n type: 'string',\n default: defaults.alternativeReferenceCommand,\n enum: alternativeCommandOptions,\n description: nls.localize('alternativeReferenceCommand', \"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.\")\n },\n });\n }\n validate(_input) {\n var _a, _b, _c, _d, _e;\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n multiple: stringSet(input.multiple, this.defaultValue.multiple, ['peek', 'gotoAndPeek', 'goto']),\n multipleDefinitions: (_a = input.multipleDefinitions) !== null && _a !== void 0 ? _a : stringSet(input.multipleDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleTypeDefinitions: (_b = input.multipleTypeDefinitions) !== null && _b !== void 0 ? _b : stringSet(input.multipleTypeDefinitions, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleDeclarations: (_c = input.multipleDeclarations) !== null && _c !== void 0 ? _c : stringSet(input.multipleDeclarations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleImplementations: (_d = input.multipleImplementations) !== null && _d !== void 0 ? _d : stringSet(input.multipleImplementations, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n multipleReferences: (_e = input.multipleReferences) !== null && _e !== void 0 ? _e : stringSet(input.multipleReferences, 'peek', ['peek', 'gotoAndPeek', 'goto']),\n alternativeDefinitionCommand: EditorStringOption.string(input.alternativeDefinitionCommand, this.defaultValue.alternativeDefinitionCommand),\n alternativeTypeDefinitionCommand: EditorStringOption.string(input.alternativeTypeDefinitionCommand, this.defaultValue.alternativeTypeDefinitionCommand),\n alternativeDeclarationCommand: EditorStringOption.string(input.alternativeDeclarationCommand, this.defaultValue.alternativeDeclarationCommand),\n alternativeImplementationCommand: EditorStringOption.string(input.alternativeImplementationCommand, this.defaultValue.alternativeImplementationCommand),\n alternativeReferenceCommand: EditorStringOption.string(input.alternativeReferenceCommand, this.defaultValue.alternativeReferenceCommand),\n };\n }\n}\nclass EditorHover extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n delay: 300,\n hidingDelay: 300,\n sticky: true,\n above: true,\n };\n super(60 /* EditorOption.hover */, 'hover', defaults, {\n 'editor.hover.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('hover.enabled', \"Controls whether the hover is shown.\")\n },\n 'editor.hover.delay': {\n type: 'number',\n default: defaults.delay,\n minimum: 0,\n maximum: 10000,\n description: nls.localize('hover.delay', \"Controls the delay in milliseconds after which the hover is shown.\")\n },\n 'editor.hover.sticky': {\n type: 'boolean',\n default: defaults.sticky,\n description: nls.localize('hover.sticky', \"Controls whether the hover should remain visible when mouse is moved over it.\")\n },\n 'editor.hover.hidingDelay': {\n type: 'integer',\n minimum: 0,\n default: defaults.hidingDelay,\n description: nls.localize('hover.hidingDelay', \"Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.\")\n },\n 'editor.hover.above': {\n type: 'boolean',\n default: defaults.above,\n description: nls.localize('hover.above', \"Prefer showing hovers above the line, if there's space.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n delay: EditorIntOption.clampedInt(input.delay, this.defaultValue.delay, 0, 10000),\n sticky: boolean(input.sticky, this.defaultValue.sticky),\n hidingDelay: EditorIntOption.clampedInt(input.hidingDelay, this.defaultValue.hidingDelay, 0, 600000),\n above: boolean(input.above, this.defaultValue.above),\n };\n }\n}\n/**\n * @internal\n */\nexport class EditorLayoutInfoComputer extends ComputedEditorOption {\n constructor() {\n super(145 /* EditorOption.layoutInfo */);\n }\n compute(env, options, _) {\n return EditorLayoutInfoComputer.computeLayout(options, {\n memory: env.memory,\n outerWidth: env.outerWidth,\n outerHeight: env.outerHeight,\n isDominatedByLongLines: env.isDominatedByLongLines,\n lineHeight: env.fontInfo.lineHeight,\n viewLineCount: env.viewLineCount,\n lineNumbersDigitCount: env.lineNumbersDigitCount,\n typicalHalfwidthCharacterWidth: env.fontInfo.typicalHalfwidthCharacterWidth,\n maxDigitWidth: env.fontInfo.maxDigitWidth,\n pixelRatio: env.pixelRatio,\n glyphMarginDecorationLaneCount: env.glyphMarginDecorationLaneCount\n });\n }\n static computeContainedMinimapLineCount(input) {\n const typicalViewportLineCount = input.height / input.lineHeight;\n const extraLinesBeforeFirstLine = Math.floor(input.paddingTop / input.lineHeight);\n let extraLinesBeyondLastLine = Math.floor(input.paddingBottom / input.lineHeight);\n if (input.scrollBeyondLastLine) {\n extraLinesBeyondLastLine = Math.max(extraLinesBeyondLastLine, typicalViewportLineCount - 1);\n }\n const desiredRatio = (extraLinesBeforeFirstLine + input.viewLineCount + extraLinesBeyondLastLine) / (input.pixelRatio * input.height);\n const minimapLineCount = Math.floor(input.viewLineCount / desiredRatio);\n return { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount };\n }\n static _computeMinimapLayout(input, memory) {\n const outerWidth = input.outerWidth;\n const outerHeight = input.outerHeight;\n const pixelRatio = input.pixelRatio;\n if (!input.minimap.enabled) {\n return {\n renderMinimap: 0 /* RenderMinimap.None */,\n minimapLeft: 0,\n minimapWidth: 0,\n minimapHeightIsEditorHeight: false,\n minimapIsSampling: false,\n minimapScale: 1,\n minimapLineHeight: 1,\n minimapCanvasInnerWidth: 0,\n minimapCanvasInnerHeight: Math.floor(pixelRatio * outerHeight),\n minimapCanvasOuterWidth: 0,\n minimapCanvasOuterHeight: outerHeight,\n };\n }\n // Can use memory if only the `viewLineCount` and `remainingWidth` have changed\n const stableMinimapLayoutInput = memory.stableMinimapLayoutInput;\n const couldUseMemory = (stableMinimapLayoutInput\n // && input.outerWidth === lastMinimapLayoutInput.outerWidth !!! INTENTIONAL OMITTED\n && input.outerHeight === stableMinimapLayoutInput.outerHeight\n && input.lineHeight === stableMinimapLayoutInput.lineHeight\n && input.typicalHalfwidthCharacterWidth === stableMinimapLayoutInput.typicalHalfwidthCharacterWidth\n && input.pixelRatio === stableMinimapLayoutInput.pixelRatio\n && input.scrollBeyondLastLine === stableMinimapLayoutInput.scrollBeyondLastLine\n && input.paddingTop === stableMinimapLayoutInput.paddingTop\n && input.paddingBottom === stableMinimapLayoutInput.paddingBottom\n && input.minimap.enabled === stableMinimapLayoutInput.minimap.enabled\n && input.minimap.side === stableMinimapLayoutInput.minimap.side\n && input.minimap.size === stableMinimapLayoutInput.minimap.size\n && input.minimap.showSlider === stableMinimapLayoutInput.minimap.showSlider\n && input.minimap.renderCharacters === stableMinimapLayoutInput.minimap.renderCharacters\n && input.minimap.maxColumn === stableMinimapLayoutInput.minimap.maxColumn\n && input.minimap.scale === stableMinimapLayoutInput.minimap.scale\n && input.verticalScrollbarWidth === stableMinimapLayoutInput.verticalScrollbarWidth\n // && input.viewLineCount === lastMinimapLayoutInput.viewLineCount !!! INTENTIONAL OMITTED\n // && input.remainingWidth === lastMinimapLayoutInput.remainingWidth !!! INTENTIONAL OMITTED\n && input.isViewportWrapping === stableMinimapLayoutInput.isViewportWrapping);\n const lineHeight = input.lineHeight;\n const typicalHalfwidthCharacterWidth = input.typicalHalfwidthCharacterWidth;\n const scrollBeyondLastLine = input.scrollBeyondLastLine;\n const minimapRenderCharacters = input.minimap.renderCharacters;\n let minimapScale = (pixelRatio >= 2 ? Math.round(input.minimap.scale * 2) : input.minimap.scale);\n const minimapMaxColumn = input.minimap.maxColumn;\n const minimapSize = input.minimap.size;\n const minimapSide = input.minimap.side;\n const verticalScrollbarWidth = input.verticalScrollbarWidth;\n const viewLineCount = input.viewLineCount;\n const remainingWidth = input.remainingWidth;\n const isViewportWrapping = input.isViewportWrapping;\n const baseCharHeight = minimapRenderCharacters ? 2 : 3;\n let minimapCanvasInnerHeight = Math.floor(pixelRatio * outerHeight);\n const minimapCanvasOuterHeight = minimapCanvasInnerHeight / pixelRatio;\n let minimapHeightIsEditorHeight = false;\n let minimapIsSampling = false;\n let minimapLineHeight = baseCharHeight * minimapScale;\n let minimapCharWidth = minimapScale / pixelRatio;\n let minimapWidthMultiplier = 1;\n if (minimapSize === 'fill' || minimapSize === 'fit') {\n const { typicalViewportLineCount, extraLinesBeforeFirstLine, extraLinesBeyondLastLine, desiredRatio, minimapLineCount } = EditorLayoutInfoComputer.computeContainedMinimapLineCount({\n viewLineCount: viewLineCount,\n scrollBeyondLastLine: scrollBeyondLastLine,\n paddingTop: input.paddingTop,\n paddingBottom: input.paddingBottom,\n height: outerHeight,\n lineHeight: lineHeight,\n pixelRatio: pixelRatio\n });\n // ratio is intentionally not part of the layout to avoid the layout changing all the time\n // when doing sampling\n const ratio = viewLineCount / minimapLineCount;\n if (ratio > 1) {\n minimapHeightIsEditorHeight = true;\n minimapIsSampling = true;\n minimapScale = 1;\n minimapLineHeight = 1;\n minimapCharWidth = minimapScale / pixelRatio;\n }\n else {\n let fitBecomesFill = false;\n let maxMinimapScale = minimapScale + 1;\n if (minimapSize === 'fit') {\n const effectiveMinimapHeight = Math.ceil((extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine) * minimapLineHeight);\n if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n // There is a loop when using `fit` and viewport wrapping:\n // - view line count impacts minimap layout\n // - minimap layout impacts viewport width\n // - viewport width impacts view line count\n // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n fitBecomesFill = true;\n maxMinimapScale = memory.stableFitMaxMinimapScale;\n }\n else {\n fitBecomesFill = (effectiveMinimapHeight > minimapCanvasInnerHeight);\n }\n }\n if (minimapSize === 'fill' || fitBecomesFill) {\n minimapHeightIsEditorHeight = true;\n const configuredMinimapScale = minimapScale;\n minimapLineHeight = Math.min(lineHeight * pixelRatio, Math.max(1, Math.floor(1 / desiredRatio)));\n if (isViewportWrapping && couldUseMemory && remainingWidth <= memory.stableFitRemainingWidth) {\n // There is a loop when using `fill` and viewport wrapping:\n // - view line count impacts minimap layout\n // - minimap layout impacts viewport width\n // - viewport width impacts view line count\n // To break the loop, once we go to a smaller minimap scale, we try to stick with it.\n maxMinimapScale = memory.stableFitMaxMinimapScale;\n }\n minimapScale = Math.min(maxMinimapScale, Math.max(1, Math.floor(minimapLineHeight / baseCharHeight)));\n if (minimapScale > configuredMinimapScale) {\n minimapWidthMultiplier = Math.min(2, minimapScale / configuredMinimapScale);\n }\n minimapCharWidth = minimapScale / pixelRatio / minimapWidthMultiplier;\n minimapCanvasInnerHeight = Math.ceil((Math.max(typicalViewportLineCount, extraLinesBeforeFirstLine + viewLineCount + extraLinesBeyondLastLine)) * minimapLineHeight);\n if (isViewportWrapping) {\n // remember for next time\n memory.stableMinimapLayoutInput = input;\n memory.stableFitRemainingWidth = remainingWidth;\n memory.stableFitMaxMinimapScale = minimapScale;\n }\n else {\n memory.stableMinimapLayoutInput = null;\n memory.stableFitRemainingWidth = 0;\n }\n }\n }\n }\n // Given:\n // (leaving 2px for the cursor to have space after the last character)\n // viewportColumn = (contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth\n // minimapWidth = viewportColumn * minimapCharWidth\n // contentWidth = remainingWidth - minimapWidth\n // What are good values for contentWidth and minimapWidth ?\n // minimapWidth = ((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth) * minimapCharWidth\n // typicalHalfwidthCharacterWidth * minimapWidth = (contentWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // typicalHalfwidthCharacterWidth * minimapWidth = (remainingWidth - minimapWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // (typicalHalfwidthCharacterWidth + minimapCharWidth) * minimapWidth = (remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth\n // minimapWidth = ((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth)\n const minimapMaxWidth = Math.floor(minimapMaxColumn * minimapCharWidth);\n const minimapWidth = Math.min(minimapMaxWidth, Math.max(0, Math.floor(((remainingWidth - verticalScrollbarWidth - 2) * minimapCharWidth) / (typicalHalfwidthCharacterWidth + minimapCharWidth))) + MINIMAP_GUTTER_WIDTH);\n let minimapCanvasInnerWidth = Math.floor(pixelRatio * minimapWidth);\n const minimapCanvasOuterWidth = minimapCanvasInnerWidth / pixelRatio;\n minimapCanvasInnerWidth = Math.floor(minimapCanvasInnerWidth * minimapWidthMultiplier);\n const renderMinimap = (minimapRenderCharacters ? 1 /* RenderMinimap.Text */ : 2 /* RenderMinimap.Blocks */);\n const minimapLeft = (minimapSide === 'left' ? 0 : (outerWidth - minimapWidth - verticalScrollbarWidth));\n return {\n renderMinimap,\n minimapLeft,\n minimapWidth,\n minimapHeightIsEditorHeight,\n minimapIsSampling,\n minimapScale,\n minimapLineHeight,\n minimapCanvasInnerWidth,\n minimapCanvasInnerHeight,\n minimapCanvasOuterWidth,\n minimapCanvasOuterHeight,\n };\n }\n static computeLayout(options, env) {\n const outerWidth = env.outerWidth | 0;\n const outerHeight = env.outerHeight | 0;\n const lineHeight = env.lineHeight | 0;\n const lineNumbersDigitCount = env.lineNumbersDigitCount | 0;\n const typicalHalfwidthCharacterWidth = env.typicalHalfwidthCharacterWidth;\n const maxDigitWidth = env.maxDigitWidth;\n const pixelRatio = env.pixelRatio;\n const viewLineCount = env.viewLineCount;\n const wordWrapOverride2 = options.get(137 /* EditorOption.wordWrapOverride2 */);\n const wordWrapOverride1 = (wordWrapOverride2 === 'inherit' ? options.get(136 /* EditorOption.wordWrapOverride1 */) : wordWrapOverride2);\n const wordWrap = (wordWrapOverride1 === 'inherit' ? options.get(132 /* EditorOption.wordWrap */) : wordWrapOverride1);\n const wordWrapColumn = options.get(135 /* EditorOption.wordWrapColumn */);\n const isDominatedByLongLines = env.isDominatedByLongLines;\n const showGlyphMargin = options.get(57 /* EditorOption.glyphMargin */);\n const showLineNumbers = (options.get(68 /* EditorOption.lineNumbers */).renderType !== 0 /* RenderLineNumbersType.Off */);\n const lineNumbersMinChars = options.get(69 /* EditorOption.lineNumbersMinChars */);\n const scrollBeyondLastLine = options.get(105 /* EditorOption.scrollBeyondLastLine */);\n const padding = options.get(84 /* EditorOption.padding */);\n const minimap = options.get(73 /* EditorOption.minimap */);\n const scrollbar = options.get(103 /* EditorOption.scrollbar */);\n const verticalScrollbarWidth = scrollbar.verticalScrollbarSize;\n const verticalScrollbarHasArrows = scrollbar.verticalHasArrows;\n const scrollbarArrowSize = scrollbar.arrowSize;\n const horizontalScrollbarHeight = scrollbar.horizontalScrollbarSize;\n const folding = options.get(43 /* EditorOption.folding */);\n const showFoldingDecoration = options.get(110 /* EditorOption.showFoldingControls */) !== 'never';\n let lineDecorationsWidth = options.get(66 /* EditorOption.lineDecorationsWidth */);\n if (folding && showFoldingDecoration) {\n lineDecorationsWidth += 16;\n }\n let lineNumbersWidth = 0;\n if (showLineNumbers) {\n const digitCount = Math.max(lineNumbersDigitCount, lineNumbersMinChars);\n lineNumbersWidth = Math.round(digitCount * maxDigitWidth);\n }\n let glyphMarginWidth = 0;\n if (showGlyphMargin) {\n glyphMarginWidth = lineHeight * env.glyphMarginDecorationLaneCount;\n }\n let glyphMarginLeft = 0;\n let lineNumbersLeft = glyphMarginLeft + glyphMarginWidth;\n let decorationsLeft = lineNumbersLeft + lineNumbersWidth;\n let contentLeft = decorationsLeft + lineDecorationsWidth;\n const remainingWidth = outerWidth - glyphMarginWidth - lineNumbersWidth - lineDecorationsWidth;\n let isWordWrapMinified = false;\n let isViewportWrapping = false;\n let wrappingColumn = -1;\n if (wordWrapOverride1 === 'inherit' && isDominatedByLongLines) {\n // Force viewport width wrapping if model is dominated by long lines\n isWordWrapMinified = true;\n isViewportWrapping = true;\n }\n else if (wordWrap === 'on' || wordWrap === 'bounded') {\n isViewportWrapping = true;\n }\n else if (wordWrap === 'wordWrapColumn') {\n wrappingColumn = wordWrapColumn;\n }\n const minimapLayout = EditorLayoutInfoComputer._computeMinimapLayout({\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n lineHeight: lineHeight,\n typicalHalfwidthCharacterWidth: typicalHalfwidthCharacterWidth,\n pixelRatio: pixelRatio,\n scrollBeyondLastLine: scrollBeyondLastLine,\n paddingTop: padding.top,\n paddingBottom: padding.bottom,\n minimap: minimap,\n verticalScrollbarWidth: verticalScrollbarWidth,\n viewLineCount: viewLineCount,\n remainingWidth: remainingWidth,\n isViewportWrapping: isViewportWrapping,\n }, env.memory || new ComputeOptionsMemory());\n if (minimapLayout.renderMinimap !== 0 /* RenderMinimap.None */ && minimapLayout.minimapLeft === 0) {\n // the minimap is rendered to the left, so move everything to the right\n glyphMarginLeft += minimapLayout.minimapWidth;\n lineNumbersLeft += minimapLayout.minimapWidth;\n decorationsLeft += minimapLayout.minimapWidth;\n contentLeft += minimapLayout.minimapWidth;\n }\n const contentWidth = remainingWidth - minimapLayout.minimapWidth;\n // (leaving 2px for the cursor to have space after the last character)\n const viewportColumn = Math.max(1, Math.floor((contentWidth - verticalScrollbarWidth - 2) / typicalHalfwidthCharacterWidth));\n const verticalArrowSize = (verticalScrollbarHasArrows ? scrollbarArrowSize : 0);\n if (isViewportWrapping) {\n // compute the actual wrappingColumn\n wrappingColumn = Math.max(1, viewportColumn);\n if (wordWrap === 'bounded') {\n wrappingColumn = Math.min(wrappingColumn, wordWrapColumn);\n }\n }\n return {\n width: outerWidth,\n height: outerHeight,\n glyphMarginLeft: glyphMarginLeft,\n glyphMarginWidth: glyphMarginWidth,\n glyphMarginDecorationLaneCount: env.glyphMarginDecorationLaneCount,\n lineNumbersLeft: lineNumbersLeft,\n lineNumbersWidth: lineNumbersWidth,\n decorationsLeft: decorationsLeft,\n decorationsWidth: lineDecorationsWidth,\n contentLeft: contentLeft,\n contentWidth: contentWidth,\n minimap: minimapLayout,\n viewportColumn: viewportColumn,\n isWordWrapMinified: isWordWrapMinified,\n isViewportWrapping: isViewportWrapping,\n wrappingColumn: wrappingColumn,\n verticalScrollbarWidth: verticalScrollbarWidth,\n horizontalScrollbarHeight: horizontalScrollbarHeight,\n overviewRuler: {\n top: verticalArrowSize,\n width: verticalScrollbarWidth,\n height: (outerHeight - 2 * verticalArrowSize),\n right: 0\n }\n };\n }\n}\n//#endregion\n//#region WrappingStrategy\nclass WrappingStrategy extends BaseEditorOption {\n constructor() {\n super(139 /* EditorOption.wrappingStrategy */, 'wrappingStrategy', 'simple', {\n 'editor.wrappingStrategy': {\n enumDescriptions: [\n nls.localize('wrappingStrategy.simple', \"Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width.\"),\n nls.localize('wrappingStrategy.advanced', \"Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.\")\n ],\n type: 'string',\n enum: ['simple', 'advanced'],\n default: 'simple',\n description: nls.localize('wrappingStrategy', \"Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.\")\n }\n });\n }\n validate(input) {\n return stringSet(input, 'simple', ['simple', 'advanced']);\n }\n compute(env, options, value) {\n const accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n if (accessibilitySupport === 2 /* AccessibilitySupport.Enabled */) {\n // if we know for a fact that a screen reader is attached, we switch our strategy to advanced to\n // help that the editor's wrapping points match the textarea's wrapping points\n return 'advanced';\n }\n return value;\n }\n}\n//#endregion\n//#region lightbulb\nexport var ShowLightbulbIconMode;\n(function (ShowLightbulbIconMode) {\n ShowLightbulbIconMode[\"Off\"] = \"off\";\n ShowLightbulbIconMode[\"OnCode\"] = \"onCode\";\n ShowLightbulbIconMode[\"On\"] = \"on\";\n})(ShowLightbulbIconMode || (ShowLightbulbIconMode = {}));\nclass EditorLightbulb extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: ShowLightbulbIconMode.On };\n super(65 /* EditorOption.lightbulb */, 'lightbulb', defaults, {\n 'editor.lightbulb.enabled': {\n type: 'string',\n tags: ['experimental'],\n enum: [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On],\n default: defaults.enabled,\n enumDescriptions: [\n nls.localize('editor.lightbulb.enabled.off', 'Disable the code action menu.'),\n nls.localize('editor.lightbulb.enabled.onCode', 'Show the code action menu when the cursor is on lines with code.'),\n nls.localize('editor.lightbulb.enabled.on', 'Show the code action menu when the cursor is on lines with code or on empty lines.'),\n ],\n description: nls.localize('enabled', \"Enables the Code Action lightbulb in the editor.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: stringSet(input.enabled, this.defaultValue.enabled, [ShowLightbulbIconMode.Off, ShowLightbulbIconMode.OnCode, ShowLightbulbIconMode.On])\n };\n }\n}\nclass EditorStickyScroll extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: true, maxLineCount: 5, defaultModel: 'outlineModel', scrollWithEditor: true };\n super(115 /* EditorOption.stickyScroll */, 'stickyScroll', defaults, {\n 'editor.stickyScroll.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('editor.stickyScroll.enabled', \"Shows the nested current scopes during the scroll at the top of the editor.\"),\n tags: ['experimental']\n },\n 'editor.stickyScroll.maxLineCount': {\n type: 'number',\n default: defaults.maxLineCount,\n minimum: 1,\n maximum: 20,\n description: nls.localize('editor.stickyScroll.maxLineCount', \"Defines the maximum number of sticky lines to show.\")\n },\n 'editor.stickyScroll.defaultModel': {\n type: 'string',\n enum: ['outlineModel', 'foldingProviderModel', 'indentationModel'],\n default: defaults.defaultModel,\n description: nls.localize('editor.stickyScroll.defaultModel', \"Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.\")\n },\n 'editor.stickyScroll.scrollWithEditor': {\n type: 'boolean',\n default: defaults.scrollWithEditor,\n description: nls.localize('editor.stickyScroll.scrollWithEditor', \"Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n maxLineCount: EditorIntOption.clampedInt(input.maxLineCount, this.defaultValue.maxLineCount, 1, 20),\n defaultModel: stringSet(input.defaultModel, this.defaultValue.defaultModel, ['outlineModel', 'foldingProviderModel', 'indentationModel']),\n scrollWithEditor: boolean(input.scrollWithEditor, this.defaultValue.scrollWithEditor)\n };\n }\n}\nclass EditorInlayHints extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: 'on', fontSize: 0, fontFamily: '', padding: false };\n super(141 /* EditorOption.inlayHints */, 'inlayHints', defaults, {\n 'editor.inlayHints.enabled': {\n type: 'string',\n default: defaults.enabled,\n description: nls.localize('inlayHints.enable', \"Enables the inlay hints in the editor.\"),\n enum: ['on', 'onUnlessPressed', 'offUnlessPressed', 'off'],\n markdownEnumDescriptions: [\n nls.localize('editor.inlayHints.on', \"Inlay hints are enabled\"),\n nls.localize('editor.inlayHints.onUnlessPressed', \"Inlay hints are showing by default and hide when holding {0}\", platform.isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n nls.localize('editor.inlayHints.offUnlessPressed', \"Inlay hints are hidden by default and show when holding {0}\", platform.isMacintosh ? `Ctrl+Option` : `Ctrl+Alt`),\n nls.localize('editor.inlayHints.off', \"Inlay hints are disabled\"),\n ],\n },\n 'editor.inlayHints.fontSize': {\n type: 'number',\n default: defaults.fontSize,\n markdownDescription: nls.localize('inlayHints.fontSize', \"Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.\", '`#editor.fontSize#`', '`5`')\n },\n 'editor.inlayHints.fontFamily': {\n type: 'string',\n default: defaults.fontFamily,\n markdownDescription: nls.localize('inlayHints.fontFamily', \"Controls font family of inlay hints in the editor. When set to empty, the {0} is used.\", '`#editor.fontFamily#`')\n },\n 'editor.inlayHints.padding': {\n type: 'boolean',\n default: defaults.padding,\n description: nls.localize('inlayHints.padding', \"Enables the padding around the inlay hints in the editor.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n if (typeof input.enabled === 'boolean') {\n input.enabled = input.enabled ? 'on' : 'off';\n }\n return {\n enabled: stringSet(input.enabled, this.defaultValue.enabled, ['on', 'off', 'offUnlessPressed', 'onUnlessPressed']),\n fontSize: EditorIntOption.clampedInt(input.fontSize, this.defaultValue.fontSize, 0, 100),\n fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n padding: boolean(input.padding, this.defaultValue.padding)\n };\n }\n}\n//#endregion\n//#region lineDecorationsWidth\nclass EditorLineDecorationsWidth extends BaseEditorOption {\n constructor() {\n super(66 /* EditorOption.lineDecorationsWidth */, 'lineDecorationsWidth', 10);\n }\n validate(input) {\n if (typeof input === 'string' && /^\\d+(\\.\\d+)?ch$/.test(input)) {\n const multiple = parseFloat(input.substring(0, input.length - 2));\n return -multiple; // negative numbers signal a multiple\n }\n else {\n return EditorIntOption.clampedInt(input, this.defaultValue, 0, 1000);\n }\n }\n compute(env, options, value) {\n if (value < 0) {\n // negative numbers signal a multiple\n return EditorIntOption.clampedInt(-value * env.fontInfo.typicalHalfwidthCharacterWidth, this.defaultValue, 0, 1000);\n }\n else {\n return value;\n }\n }\n}\n//#endregion\n//#region lineHeight\nclass EditorLineHeight extends EditorFloatOption {\n constructor() {\n super(67 /* EditorOption.lineHeight */, 'lineHeight', EDITOR_FONT_DEFAULTS.lineHeight, x => EditorFloatOption.clamp(x, 0, 150), { markdownDescription: nls.localize('lineHeight', \"Controls the line height. \\n - Use 0 to automatically compute the line height from the font size.\\n - Values between 0 and 8 will be used as a multiplier with the font size.\\n - Values greater than or equal to 8 will be used as effective values.\") });\n }\n compute(env, options, value) {\n // The lineHeight is computed from the fontSize if it is 0.\n // Moreover, the final lineHeight respects the editor zoom level.\n // So take the result from env.fontInfo\n return env.fontInfo.lineHeight;\n }\n}\nclass EditorMinimap extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n size: 'proportional',\n side: 'right',\n showSlider: 'mouseover',\n autohide: false,\n renderCharacters: true,\n maxColumn: 120,\n scale: 1,\n showRegionSectionHeaders: true,\n showMarkSectionHeaders: true,\n sectionHeaderFontSize: 9,\n sectionHeaderLetterSpacing: 1,\n };\n super(73 /* EditorOption.minimap */, 'minimap', defaults, {\n 'editor.minimap.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('minimap.enabled', \"Controls whether the minimap is shown.\")\n },\n 'editor.minimap.autohide': {\n type: 'boolean',\n default: defaults.autohide,\n description: nls.localize('minimap.autohide', \"Controls whether the minimap is hidden automatically.\")\n },\n 'editor.minimap.size': {\n type: 'string',\n enum: ['proportional', 'fill', 'fit'],\n enumDescriptions: [\n nls.localize('minimap.size.proportional', \"The minimap has the same size as the editor contents (and might scroll).\"),\n nls.localize('minimap.size.fill', \"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling).\"),\n nls.localize('minimap.size.fit', \"The minimap will shrink as necessary to never be larger than the editor (no scrolling).\"),\n ],\n default: defaults.size,\n description: nls.localize('minimap.size', \"Controls the size of the minimap.\")\n },\n 'editor.minimap.side': {\n type: 'string',\n enum: ['left', 'right'],\n default: defaults.side,\n description: nls.localize('minimap.side', \"Controls the side where to render the minimap.\")\n },\n 'editor.minimap.showSlider': {\n type: 'string',\n enum: ['always', 'mouseover'],\n default: defaults.showSlider,\n description: nls.localize('minimap.showSlider', \"Controls when the minimap slider is shown.\")\n },\n 'editor.minimap.scale': {\n type: 'number',\n default: defaults.scale,\n minimum: 1,\n maximum: 3,\n enum: [1, 2, 3],\n description: nls.localize('minimap.scale', \"Scale of content drawn in the minimap: 1, 2 or 3.\")\n },\n 'editor.minimap.renderCharacters': {\n type: 'boolean',\n default: defaults.renderCharacters,\n description: nls.localize('minimap.renderCharacters', \"Render the actual characters on a line as opposed to color blocks.\")\n },\n 'editor.minimap.maxColumn': {\n type: 'number',\n default: defaults.maxColumn,\n description: nls.localize('minimap.maxColumn', \"Limit the width of the minimap to render at most a certain number of columns.\")\n },\n 'editor.minimap.showRegionSectionHeaders': {\n type: 'boolean',\n default: defaults.showRegionSectionHeaders,\n description: nls.localize('minimap.showRegionSectionHeaders', \"Controls whether named regions are shown as section headers in the minimap.\")\n },\n 'editor.minimap.showMarkSectionHeaders': {\n type: 'boolean',\n default: defaults.showMarkSectionHeaders,\n description: nls.localize('minimap.showMarkSectionHeaders', \"Controls whether MARK: comments are shown as section headers in the minimap.\")\n },\n 'editor.minimap.sectionHeaderFontSize': {\n type: 'number',\n default: defaults.sectionHeaderFontSize,\n description: nls.localize('minimap.sectionHeaderFontSize', \"Controls the font size of section headers in the minimap.\")\n },\n 'editor.minimap.sectionHeaderLetterSpacing': {\n type: 'number',\n default: defaults.sectionHeaderLetterSpacing,\n description: nls.localize('minimap.sectionHeaderLetterSpacing', \"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.\")\n }\n });\n }\n validate(_input) {\n var _a, _b;\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n autohide: boolean(input.autohide, this.defaultValue.autohide),\n size: stringSet(input.size, this.defaultValue.size, ['proportional', 'fill', 'fit']),\n side: stringSet(input.side, this.defaultValue.side, ['right', 'left']),\n showSlider: stringSet(input.showSlider, this.defaultValue.showSlider, ['always', 'mouseover']),\n renderCharacters: boolean(input.renderCharacters, this.defaultValue.renderCharacters),\n scale: EditorIntOption.clampedInt(input.scale, 1, 1, 3),\n maxColumn: EditorIntOption.clampedInt(input.maxColumn, this.defaultValue.maxColumn, 1, 10000),\n showRegionSectionHeaders: boolean(input.showRegionSectionHeaders, this.defaultValue.showRegionSectionHeaders),\n showMarkSectionHeaders: boolean(input.showMarkSectionHeaders, this.defaultValue.showMarkSectionHeaders),\n sectionHeaderFontSize: EditorFloatOption.clamp((_a = input.sectionHeaderFontSize) !== null && _a !== void 0 ? _a : this.defaultValue.sectionHeaderFontSize, 4, 32),\n sectionHeaderLetterSpacing: EditorFloatOption.clamp((_b = input.sectionHeaderLetterSpacing) !== null && _b !== void 0 ? _b : this.defaultValue.sectionHeaderLetterSpacing, 0, 5),\n };\n }\n}\n//#endregion\n//#region multiCursorModifier\nfunction _multiCursorModifierFromString(multiCursorModifier) {\n if (multiCursorModifier === 'ctrlCmd') {\n return (platform.isMacintosh ? 'metaKey' : 'ctrlKey');\n }\n return 'altKey';\n}\nclass EditorPadding extends BaseEditorOption {\n constructor() {\n super(84 /* EditorOption.padding */, 'padding', { top: 0, bottom: 0 }, {\n 'editor.padding.top': {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 1000,\n description: nls.localize('padding.top', \"Controls the amount of space between the top edge of the editor and the first line.\")\n },\n 'editor.padding.bottom': {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 1000,\n description: nls.localize('padding.bottom', \"Controls the amount of space between the bottom edge of the editor and the last line.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n top: EditorIntOption.clampedInt(input.top, 0, 0, 1000),\n bottom: EditorIntOption.clampedInt(input.bottom, 0, 0, 1000)\n };\n }\n}\nclass EditorParameterHints extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n cycle: true\n };\n super(86 /* EditorOption.parameterHints */, 'parameterHints', defaults, {\n 'editor.parameterHints.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('parameterHints.enabled', \"Enables a pop-up that shows parameter documentation and type information as you type.\")\n },\n 'editor.parameterHints.cycle': {\n type: 'boolean',\n default: defaults.cycle,\n description: nls.localize('parameterHints.cycle', \"Controls whether the parameter hints menu cycles or closes when reaching the end of the list.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n cycle: boolean(input.cycle, this.defaultValue.cycle)\n };\n }\n}\n//#endregion\n//#region pixelRatio\nclass EditorPixelRatio extends ComputedEditorOption {\n constructor() {\n super(143 /* EditorOption.pixelRatio */);\n }\n compute(env, options, _) {\n return env.pixelRatio;\n }\n}\nclass EditorQuickSuggestions extends BaseEditorOption {\n constructor() {\n const defaults = {\n other: 'on',\n comments: 'off',\n strings: 'off'\n };\n const types = [\n { type: 'boolean' },\n {\n type: 'string',\n enum: ['on', 'inline', 'off'],\n enumDescriptions: [nls.localize('on', \"Quick suggestions show inside the suggest widget\"), nls.localize('inline', \"Quick suggestions show as ghost text\"), nls.localize('off', \"Quick suggestions are disabled\")]\n }\n ];\n super(89 /* EditorOption.quickSuggestions */, 'quickSuggestions', defaults, {\n type: 'object',\n additionalProperties: false,\n properties: {\n strings: {\n anyOf: types,\n default: defaults.strings,\n description: nls.localize('quickSuggestions.strings', \"Enable quick suggestions inside strings.\")\n },\n comments: {\n anyOf: types,\n default: defaults.comments,\n description: nls.localize('quickSuggestions.comments', \"Enable quick suggestions inside comments.\")\n },\n other: {\n anyOf: types,\n default: defaults.other,\n description: nls.localize('quickSuggestions.other', \"Enable quick suggestions outside of strings and comments.\")\n },\n },\n default: defaults,\n markdownDescription: nls.localize('quickSuggestions', \"Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.\", `#editor.suggestOnTriggerCharacters#`)\n });\n this.defaultValue = defaults;\n }\n validate(input) {\n if (typeof input === 'boolean') {\n // boolean -> all on/off\n const value = input ? 'on' : 'off';\n return { comments: value, strings: value, other: value };\n }\n if (!input || typeof input !== 'object') {\n // invalid object\n return this.defaultValue;\n }\n const { other, comments, strings } = input;\n const allowedValues = ['on', 'inline', 'off'];\n let validatedOther;\n let validatedComments;\n let validatedStrings;\n if (typeof other === 'boolean') {\n validatedOther = other ? 'on' : 'off';\n }\n else {\n validatedOther = stringSet(other, this.defaultValue.other, allowedValues);\n }\n if (typeof comments === 'boolean') {\n validatedComments = comments ? 'on' : 'off';\n }\n else {\n validatedComments = stringSet(comments, this.defaultValue.comments, allowedValues);\n }\n if (typeof strings === 'boolean') {\n validatedStrings = strings ? 'on' : 'off';\n }\n else {\n validatedStrings = stringSet(strings, this.defaultValue.strings, allowedValues);\n }\n return {\n other: validatedOther,\n comments: validatedComments,\n strings: validatedStrings\n };\n }\n}\nclass EditorRenderLineNumbersOption extends BaseEditorOption {\n constructor() {\n super(68 /* EditorOption.lineNumbers */, 'lineNumbers', { renderType: 1 /* RenderLineNumbersType.On */, renderFn: null }, {\n type: 'string',\n enum: ['off', 'on', 'relative', 'interval'],\n enumDescriptions: [\n nls.localize('lineNumbers.off', \"Line numbers are not rendered.\"),\n nls.localize('lineNumbers.on', \"Line numbers are rendered as absolute number.\"),\n nls.localize('lineNumbers.relative', \"Line numbers are rendered as distance in lines to cursor position.\"),\n nls.localize('lineNumbers.interval', \"Line numbers are rendered every 10 lines.\")\n ],\n default: 'on',\n description: nls.localize('lineNumbers', \"Controls the display of line numbers.\")\n });\n }\n validate(lineNumbers) {\n let renderType = this.defaultValue.renderType;\n let renderFn = this.defaultValue.renderFn;\n if (typeof lineNumbers !== 'undefined') {\n if (typeof lineNumbers === 'function') {\n renderType = 4 /* RenderLineNumbersType.Custom */;\n renderFn = lineNumbers;\n }\n else if (lineNumbers === 'interval') {\n renderType = 3 /* RenderLineNumbersType.Interval */;\n }\n else if (lineNumbers === 'relative') {\n renderType = 2 /* RenderLineNumbersType.Relative */;\n }\n else if (lineNumbers === 'on') {\n renderType = 1 /* RenderLineNumbersType.On */;\n }\n else {\n renderType = 0 /* RenderLineNumbersType.Off */;\n }\n }\n return {\n renderType,\n renderFn\n };\n }\n}\n//#endregion\n//#region renderValidationDecorations\n/**\n * @internal\n */\nexport function filterValidationDecorations(options) {\n const renderValidationDecorations = options.get(98 /* EditorOption.renderValidationDecorations */);\n if (renderValidationDecorations === 'editable') {\n return options.get(91 /* EditorOption.readOnly */);\n }\n return renderValidationDecorations === 'on' ? false : true;\n}\nclass EditorRulers extends BaseEditorOption {\n constructor() {\n const defaults = [];\n const columnSchema = { type: 'number', description: nls.localize('rulers.size', \"Number of monospace characters at which this editor ruler will render.\") };\n super(102 /* EditorOption.rulers */, 'rulers', defaults, {\n type: 'array',\n items: {\n anyOf: [\n columnSchema,\n {\n type: [\n 'object'\n ],\n properties: {\n column: columnSchema,\n color: {\n type: 'string',\n description: nls.localize('rulers.color', \"Color of this editor ruler.\"),\n format: 'color-hex'\n }\n }\n }\n ]\n },\n default: defaults,\n description: nls.localize('rulers', \"Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.\")\n });\n }\n validate(input) {\n if (Array.isArray(input)) {\n const rulers = [];\n for (const _element of input) {\n if (typeof _element === 'number') {\n rulers.push({\n column: EditorIntOption.clampedInt(_element, 0, 0, 10000),\n color: null\n });\n }\n else if (_element && typeof _element === 'object') {\n const element = _element;\n rulers.push({\n column: EditorIntOption.clampedInt(element.column, 0, 0, 10000),\n color: element.color\n });\n }\n }\n rulers.sort((a, b) => a.column - b.column);\n return rulers;\n }\n return this.defaultValue;\n }\n}\n//#endregion\n//#region readonly\n/**\n * Configuration options for readonly message\n */\nclass ReadonlyMessage extends BaseEditorOption {\n constructor() {\n const defaults = undefined;\n super(92 /* EditorOption.readOnlyMessage */, 'readOnlyMessage', defaults);\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n return _input;\n }\n}\nfunction _scrollbarVisibilityFromString(visibility, defaultValue) {\n if (typeof visibility !== 'string') {\n return defaultValue;\n }\n switch (visibility) {\n case 'hidden': return 2 /* ScrollbarVisibility.Hidden */;\n case 'visible': return 3 /* ScrollbarVisibility.Visible */;\n default: return 1 /* ScrollbarVisibility.Auto */;\n }\n}\nclass EditorScrollbar extends BaseEditorOption {\n constructor() {\n const defaults = {\n vertical: 1 /* ScrollbarVisibility.Auto */,\n horizontal: 1 /* ScrollbarVisibility.Auto */,\n arrowSize: 11,\n useShadows: true,\n verticalHasArrows: false,\n horizontalHasArrows: false,\n horizontalScrollbarSize: 12,\n horizontalSliderSize: 12,\n verticalScrollbarSize: 14,\n verticalSliderSize: 14,\n handleMouseWheel: true,\n alwaysConsumeMouseWheel: true,\n scrollByPage: false,\n ignoreHorizontalScrollbarInContentHeight: false,\n };\n super(103 /* EditorOption.scrollbar */, 'scrollbar', defaults, {\n 'editor.scrollbar.vertical': {\n type: 'string',\n enum: ['auto', 'visible', 'hidden'],\n enumDescriptions: [\n nls.localize('scrollbar.vertical.auto', \"The vertical scrollbar will be visible only when necessary.\"),\n nls.localize('scrollbar.vertical.visible', \"The vertical scrollbar will always be visible.\"),\n nls.localize('scrollbar.vertical.fit', \"The vertical scrollbar will always be hidden.\"),\n ],\n default: 'auto',\n description: nls.localize('scrollbar.vertical', \"Controls the visibility of the vertical scrollbar.\")\n },\n 'editor.scrollbar.horizontal': {\n type: 'string',\n enum: ['auto', 'visible', 'hidden'],\n enumDescriptions: [\n nls.localize('scrollbar.horizontal.auto', \"The horizontal scrollbar will be visible only when necessary.\"),\n nls.localize('scrollbar.horizontal.visible', \"The horizontal scrollbar will always be visible.\"),\n nls.localize('scrollbar.horizontal.fit', \"The horizontal scrollbar will always be hidden.\"),\n ],\n default: 'auto',\n description: nls.localize('scrollbar.horizontal', \"Controls the visibility of the horizontal scrollbar.\")\n },\n 'editor.scrollbar.verticalScrollbarSize': {\n type: 'number',\n default: defaults.verticalScrollbarSize,\n description: nls.localize('scrollbar.verticalScrollbarSize', \"The width of the vertical scrollbar.\")\n },\n 'editor.scrollbar.horizontalScrollbarSize': {\n type: 'number',\n default: defaults.horizontalScrollbarSize,\n description: nls.localize('scrollbar.horizontalScrollbarSize', \"The height of the horizontal scrollbar.\")\n },\n 'editor.scrollbar.scrollByPage': {\n type: 'boolean',\n default: defaults.scrollByPage,\n description: nls.localize('scrollbar.scrollByPage', \"Controls whether clicks scroll by page or jump to click position.\")\n },\n 'editor.scrollbar.ignoreHorizontalScrollbarInContentHeight': {\n type: 'boolean',\n default: defaults.ignoreHorizontalScrollbarInContentHeight,\n description: nls.localize('scrollbar.ignoreHorizontalScrollbarInContentHeight', \"When set, the horizontal scrollbar will not increase the size of the editor's content.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n const horizontalScrollbarSize = EditorIntOption.clampedInt(input.horizontalScrollbarSize, this.defaultValue.horizontalScrollbarSize, 0, 1000);\n const verticalScrollbarSize = EditorIntOption.clampedInt(input.verticalScrollbarSize, this.defaultValue.verticalScrollbarSize, 0, 1000);\n return {\n arrowSize: EditorIntOption.clampedInt(input.arrowSize, this.defaultValue.arrowSize, 0, 1000),\n vertical: _scrollbarVisibilityFromString(input.vertical, this.defaultValue.vertical),\n horizontal: _scrollbarVisibilityFromString(input.horizontal, this.defaultValue.horizontal),\n useShadows: boolean(input.useShadows, this.defaultValue.useShadows),\n verticalHasArrows: boolean(input.verticalHasArrows, this.defaultValue.verticalHasArrows),\n horizontalHasArrows: boolean(input.horizontalHasArrows, this.defaultValue.horizontalHasArrows),\n handleMouseWheel: boolean(input.handleMouseWheel, this.defaultValue.handleMouseWheel),\n alwaysConsumeMouseWheel: boolean(input.alwaysConsumeMouseWheel, this.defaultValue.alwaysConsumeMouseWheel),\n horizontalScrollbarSize: horizontalScrollbarSize,\n horizontalSliderSize: EditorIntOption.clampedInt(input.horizontalSliderSize, horizontalScrollbarSize, 0, 1000),\n verticalScrollbarSize: verticalScrollbarSize,\n verticalSliderSize: EditorIntOption.clampedInt(input.verticalSliderSize, verticalScrollbarSize, 0, 1000),\n scrollByPage: boolean(input.scrollByPage, this.defaultValue.scrollByPage),\n ignoreHorizontalScrollbarInContentHeight: boolean(input.ignoreHorizontalScrollbarInContentHeight, this.defaultValue.ignoreHorizontalScrollbarInContentHeight),\n };\n }\n}\n/**\n * @internal\n*/\nexport const inUntrustedWorkspace = 'inUntrustedWorkspace';\n/**\n * @internal\n */\nexport const unicodeHighlightConfigKeys = {\n allowedCharacters: 'editor.unicodeHighlight.allowedCharacters',\n invisibleCharacters: 'editor.unicodeHighlight.invisibleCharacters',\n nonBasicASCII: 'editor.unicodeHighlight.nonBasicASCII',\n ambiguousCharacters: 'editor.unicodeHighlight.ambiguousCharacters',\n includeComments: 'editor.unicodeHighlight.includeComments',\n includeStrings: 'editor.unicodeHighlight.includeStrings',\n allowedLocales: 'editor.unicodeHighlight.allowedLocales',\n};\nclass UnicodeHighlight extends BaseEditorOption {\n constructor() {\n const defaults = {\n nonBasicASCII: inUntrustedWorkspace,\n invisibleCharacters: true,\n ambiguousCharacters: true,\n includeComments: inUntrustedWorkspace,\n includeStrings: true,\n allowedCharacters: {},\n allowedLocales: { _os: true, _vscode: true },\n };\n super(125 /* EditorOption.unicodeHighlighting */, 'unicodeHighlight', defaults, {\n [unicodeHighlightConfigKeys.nonBasicASCII]: {\n restricted: true,\n type: ['boolean', 'string'],\n enum: [true, false, inUntrustedWorkspace],\n default: defaults.nonBasicASCII,\n description: nls.localize('unicodeHighlight.nonBasicASCII', \"Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.\")\n },\n [unicodeHighlightConfigKeys.invisibleCharacters]: {\n restricted: true,\n type: 'boolean',\n default: defaults.invisibleCharacters,\n description: nls.localize('unicodeHighlight.invisibleCharacters', \"Controls whether characters that just reserve space or have no width at all are highlighted.\")\n },\n [unicodeHighlightConfigKeys.ambiguousCharacters]: {\n restricted: true,\n type: 'boolean',\n default: defaults.ambiguousCharacters,\n description: nls.localize('unicodeHighlight.ambiguousCharacters', \"Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.\")\n },\n [unicodeHighlightConfigKeys.includeComments]: {\n restricted: true,\n type: ['boolean', 'string'],\n enum: [true, false, inUntrustedWorkspace],\n default: defaults.includeComments,\n description: nls.localize('unicodeHighlight.includeComments', \"Controls whether characters in comments should also be subject to Unicode highlighting.\")\n },\n [unicodeHighlightConfigKeys.includeStrings]: {\n restricted: true,\n type: ['boolean', 'string'],\n enum: [true, false, inUntrustedWorkspace],\n default: defaults.includeStrings,\n description: nls.localize('unicodeHighlight.includeStrings', \"Controls whether characters in strings should also be subject to Unicode highlighting.\")\n },\n [unicodeHighlightConfigKeys.allowedCharacters]: {\n restricted: true,\n type: 'object',\n default: defaults.allowedCharacters,\n description: nls.localize('unicodeHighlight.allowedCharacters', \"Defines allowed characters that are not being highlighted.\"),\n additionalProperties: {\n type: 'boolean'\n }\n },\n [unicodeHighlightConfigKeys.allowedLocales]: {\n restricted: true,\n type: 'object',\n additionalProperties: {\n type: 'boolean'\n },\n default: defaults.allowedLocales,\n description: nls.localize('unicodeHighlight.allowedLocales', \"Unicode characters that are common in allowed locales are not being highlighted.\")\n },\n });\n }\n applyUpdate(value, update) {\n let didChange = false;\n if (update.allowedCharacters && value) {\n // Treat allowedCharacters atomically\n if (!objects.equals(value.allowedCharacters, update.allowedCharacters)) {\n value = { ...value, allowedCharacters: update.allowedCharacters };\n didChange = true;\n }\n }\n if (update.allowedLocales && value) {\n // Treat allowedLocales atomically\n if (!objects.equals(value.allowedLocales, update.allowedLocales)) {\n value = { ...value, allowedLocales: update.allowedLocales };\n didChange = true;\n }\n }\n const result = super.applyUpdate(value, update);\n if (didChange) {\n return new ApplyUpdateResult(result.newValue, true);\n }\n return result;\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n nonBasicASCII: primitiveSet(input.nonBasicASCII, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n invisibleCharacters: boolean(input.invisibleCharacters, this.defaultValue.invisibleCharacters),\n ambiguousCharacters: boolean(input.ambiguousCharacters, this.defaultValue.ambiguousCharacters),\n includeComments: primitiveSet(input.includeComments, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n includeStrings: primitiveSet(input.includeStrings, inUntrustedWorkspace, [true, false, inUntrustedWorkspace]),\n allowedCharacters: this.validateBooleanMap(_input.allowedCharacters, this.defaultValue.allowedCharacters),\n allowedLocales: this.validateBooleanMap(_input.allowedLocales, this.defaultValue.allowedLocales),\n };\n }\n validateBooleanMap(map, defaultValue) {\n if ((typeof map !== 'object') || !map) {\n return defaultValue;\n }\n const result = {};\n for (const [key, value] of Object.entries(map)) {\n if (value === true) {\n result[key] = true;\n }\n }\n return result;\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass InlineEditorSuggest extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: true,\n mode: 'subwordSmart',\n showToolbar: 'onHover',\n suppressSuggestions: false,\n keepOnBlur: false,\n fontFamily: 'default'\n };\n super(62 /* EditorOption.inlineSuggest */, 'inlineSuggest', defaults, {\n 'editor.inlineSuggest.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('inlineSuggest.enabled', \"Controls whether to automatically show inline suggestions in the editor.\")\n },\n 'editor.inlineSuggest.showToolbar': {\n type: 'string',\n default: defaults.showToolbar,\n enum: ['always', 'onHover', 'never'],\n enumDescriptions: [\n nls.localize('inlineSuggest.showToolbar.always', \"Show the inline suggestion toolbar whenever an inline suggestion is shown.\"),\n nls.localize('inlineSuggest.showToolbar.onHover', \"Show the inline suggestion toolbar when hovering over an inline suggestion.\"),\n nls.localize('inlineSuggest.showToolbar.never', \"Never show the inline suggestion toolbar.\"),\n ],\n description: nls.localize('inlineSuggest.showToolbar', \"Controls when to show the inline suggestion toolbar.\"),\n },\n 'editor.inlineSuggest.suppressSuggestions': {\n type: 'boolean',\n default: defaults.suppressSuggestions,\n description: nls.localize('inlineSuggest.suppressSuggestions', \"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.\")\n },\n 'editor.inlineSuggest.fontFamily': {\n type: 'string',\n default: defaults.fontFamily,\n description: nls.localize('inlineSuggest.fontFamily', \"Controls the font family of the inline suggestions.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n mode: stringSet(input.mode, this.defaultValue.mode, ['prefix', 'subword', 'subwordSmart']),\n showToolbar: stringSet(input.showToolbar, this.defaultValue.showToolbar, ['always', 'onHover', 'never']),\n suppressSuggestions: boolean(input.suppressSuggestions, this.defaultValue.suppressSuggestions),\n keepOnBlur: boolean(input.keepOnBlur, this.defaultValue.keepOnBlur),\n fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily)\n };\n }\n}\nclass InlineEditorEdit extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: false,\n showToolbar: 'onHover',\n fontFamily: 'default',\n keepOnBlur: false,\n backgroundColoring: false,\n };\n super(63 /* EditorOption.inlineEdit */, 'experimentalInlineEdit', defaults, {\n 'editor.experimentalInlineEdit.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n description: nls.localize('inlineEdit.enabled', \"Controls whether to show inline edits in the editor.\")\n },\n 'editor.experimentalInlineEdit.showToolbar': {\n type: 'string',\n default: defaults.showToolbar,\n enum: ['always', 'onHover', 'never'],\n enumDescriptions: [\n nls.localize('inlineEdit.showToolbar.always', \"Show the inline edit toolbar whenever an inline suggestion is shown.\"),\n nls.localize('inlineEdit.showToolbar.onHover', \"Show the inline edit toolbar when hovering over an inline suggestion.\"),\n nls.localize('inlineEdit.showToolbar.never', \"Never show the inline edit toolbar.\"),\n ],\n description: nls.localize('inlineEdit.showToolbar', \"Controls when to show the inline edit toolbar.\"),\n },\n 'editor.experimentalInlineEdit.fontFamily': {\n type: 'string',\n default: defaults.fontFamily,\n description: nls.localize('inlineEdit.fontFamily', \"Controls the font family of the inline edit.\")\n },\n 'editor.experimentalInlineEdit.backgroundColoring': {\n type: 'boolean',\n default: defaults.backgroundColoring,\n description: nls.localize('inlineEdit.backgroundColoring', \"Controls whether to color the background of inline edits.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n showToolbar: stringSet(input.showToolbar, this.defaultValue.showToolbar, ['always', 'onHover', 'never']),\n fontFamily: EditorStringOption.string(input.fontFamily, this.defaultValue.fontFamily),\n keepOnBlur: boolean(input.keepOnBlur, this.defaultValue.keepOnBlur),\n backgroundColoring: boolean(input.backgroundColoring, this.defaultValue.backgroundColoring)\n };\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass BracketPairColorization extends BaseEditorOption {\n constructor() {\n const defaults = {\n enabled: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,\n independentColorPoolPerBracketType: EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType,\n };\n super(15 /* EditorOption.bracketPairColorization */, 'bracketPairColorization', defaults, {\n 'editor.bracketPairColorization.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n markdownDescription: nls.localize('bracketPairColorization.enabled', \"Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.\", '`#workbench.colorCustomizations#`')\n },\n 'editor.bracketPairColorization.independentColorPoolPerBracketType': {\n type: 'boolean',\n default: defaults.independentColorPoolPerBracketType,\n description: nls.localize('bracketPairColorization.independentColorPoolPerBracketType', \"Controls whether each bracket type has its own independent color pool.\")\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n independentColorPoolPerBracketType: boolean(input.independentColorPoolPerBracketType, this.defaultValue.independentColorPoolPerBracketType),\n };\n }\n}\n/**\n * Configuration options for inline suggestions\n */\nclass GuideOptions extends BaseEditorOption {\n constructor() {\n const defaults = {\n bracketPairs: false,\n bracketPairsHorizontal: 'active',\n highlightActiveBracketPair: true,\n indentation: true,\n highlightActiveIndentation: true\n };\n super(16 /* EditorOption.guides */, 'guides', defaults, {\n 'editor.guides.bracketPairs': {\n type: ['boolean', 'string'],\n enum: [true, 'active', false],\n enumDescriptions: [\n nls.localize('editor.guides.bracketPairs.true', \"Enables bracket pair guides.\"),\n nls.localize('editor.guides.bracketPairs.active', \"Enables bracket pair guides only for the active bracket pair.\"),\n nls.localize('editor.guides.bracketPairs.false', \"Disables bracket pair guides.\"),\n ],\n default: defaults.bracketPairs,\n description: nls.localize('editor.guides.bracketPairs', \"Controls whether bracket pair guides are enabled or not.\")\n },\n 'editor.guides.bracketPairsHorizontal': {\n type: ['boolean', 'string'],\n enum: [true, 'active', false],\n enumDescriptions: [\n nls.localize('editor.guides.bracketPairsHorizontal.true', \"Enables horizontal guides as addition to vertical bracket pair guides.\"),\n nls.localize('editor.guides.bracketPairsHorizontal.active', \"Enables horizontal guides only for the active bracket pair.\"),\n nls.localize('editor.guides.bracketPairsHorizontal.false', \"Disables horizontal bracket pair guides.\"),\n ],\n default: defaults.bracketPairsHorizontal,\n description: nls.localize('editor.guides.bracketPairsHorizontal', \"Controls whether horizontal bracket pair guides are enabled or not.\")\n },\n 'editor.guides.highlightActiveBracketPair': {\n type: 'boolean',\n default: defaults.highlightActiveBracketPair,\n description: nls.localize('editor.guides.highlightActiveBracketPair', \"Controls whether the editor should highlight the active bracket pair.\")\n },\n 'editor.guides.indentation': {\n type: 'boolean',\n default: defaults.indentation,\n description: nls.localize('editor.guides.indentation', \"Controls whether the editor should render indent guides.\")\n },\n 'editor.guides.highlightActiveIndentation': {\n type: ['boolean', 'string'],\n enum: [true, 'always', false],\n enumDescriptions: [\n nls.localize('editor.guides.highlightActiveIndentation.true', \"Highlights the active indent guide.\"),\n nls.localize('editor.guides.highlightActiveIndentation.always', \"Highlights the active indent guide even if bracket guides are highlighted.\"),\n nls.localize('editor.guides.highlightActiveIndentation.false', \"Do not highlight the active indent guide.\"),\n ],\n default: defaults.highlightActiveIndentation,\n description: nls.localize('editor.guides.highlightActiveIndentation', \"Controls whether the editor should highlight the active indent guide.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n bracketPairs: primitiveSet(input.bracketPairs, this.defaultValue.bracketPairs, [true, false, 'active']),\n bracketPairsHorizontal: primitiveSet(input.bracketPairsHorizontal, this.defaultValue.bracketPairsHorizontal, [true, false, 'active']),\n highlightActiveBracketPair: boolean(input.highlightActiveBracketPair, this.defaultValue.highlightActiveBracketPair),\n indentation: boolean(input.indentation, this.defaultValue.indentation),\n highlightActiveIndentation: primitiveSet(input.highlightActiveIndentation, this.defaultValue.highlightActiveIndentation, [true, false, 'always']),\n };\n }\n}\nfunction primitiveSet(value, defaultValue, allowedValues) {\n const idx = allowedValues.indexOf(value);\n if (idx === -1) {\n return defaultValue;\n }\n return allowedValues[idx];\n}\nclass EditorSuggest extends BaseEditorOption {\n constructor() {\n const defaults = {\n insertMode: 'insert',\n filterGraceful: true,\n snippetsPreventQuickSuggestions: false,\n localityBonus: false,\n shareSuggestSelections: false,\n selectionMode: 'always',\n showIcons: true,\n showStatusBar: false,\n preview: false,\n previewMode: 'subwordSmart',\n showInlineDetails: true,\n showMethods: true,\n showFunctions: true,\n showConstructors: true,\n showDeprecated: true,\n matchOnWordStartOnly: true,\n showFields: true,\n showVariables: true,\n showClasses: true,\n showStructs: true,\n showInterfaces: true,\n showModules: true,\n showProperties: true,\n showEvents: true,\n showOperators: true,\n showUnits: true,\n showValues: true,\n showConstants: true,\n showEnums: true,\n showEnumMembers: true,\n showKeywords: true,\n showWords: true,\n showColors: true,\n showFiles: true,\n showReferences: true,\n showFolders: true,\n showTypeParameters: true,\n showSnippets: true,\n showUsers: true,\n showIssues: true,\n };\n super(118 /* EditorOption.suggest */, 'suggest', defaults, {\n 'editor.suggest.insertMode': {\n type: 'string',\n enum: ['insert', 'replace'],\n enumDescriptions: [\n nls.localize('suggest.insertMode.insert', \"Insert suggestion without overwriting text right of the cursor.\"),\n nls.localize('suggest.insertMode.replace', \"Insert suggestion and overwrite text right of the cursor.\"),\n ],\n default: defaults.insertMode,\n description: nls.localize('suggest.insertMode', \"Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.\")\n },\n 'editor.suggest.filterGraceful': {\n type: 'boolean',\n default: defaults.filterGraceful,\n description: nls.localize('suggest.filterGraceful', \"Controls whether filtering and sorting suggestions accounts for small typos.\")\n },\n 'editor.suggest.localityBonus': {\n type: 'boolean',\n default: defaults.localityBonus,\n description: nls.localize('suggest.localityBonus', \"Controls whether sorting favors words that appear close to the cursor.\")\n },\n 'editor.suggest.shareSuggestSelections': {\n type: 'boolean',\n default: defaults.shareSuggestSelections,\n markdownDescription: nls.localize('suggest.shareSuggestSelections', \"Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).\")\n },\n 'editor.suggest.selectionMode': {\n type: 'string',\n enum: ['always', 'never', 'whenTriggerCharacter', 'whenQuickSuggestion'],\n enumDescriptions: [\n nls.localize('suggest.insertMode.always', \"Always select a suggestion when automatically triggering IntelliSense.\"),\n nls.localize('suggest.insertMode.never', \"Never select a suggestion when automatically triggering IntelliSense.\"),\n nls.localize('suggest.insertMode.whenTriggerCharacter', \"Select a suggestion only when triggering IntelliSense from a trigger character.\"),\n nls.localize('suggest.insertMode.whenQuickSuggestion', \"Select a suggestion only when triggering IntelliSense as you type.\"),\n ],\n default: defaults.selectionMode,\n markdownDescription: nls.localize('suggest.selectionMode', \"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.\")\n },\n 'editor.suggest.snippetsPreventQuickSuggestions': {\n type: 'boolean',\n default: defaults.snippetsPreventQuickSuggestions,\n description: nls.localize('suggest.snippetsPreventQuickSuggestions', \"Controls whether an active snippet prevents quick suggestions.\")\n },\n 'editor.suggest.showIcons': {\n type: 'boolean',\n default: defaults.showIcons,\n description: nls.localize('suggest.showIcons', \"Controls whether to show or hide icons in suggestions.\")\n },\n 'editor.suggest.showStatusBar': {\n type: 'boolean',\n default: defaults.showStatusBar,\n description: nls.localize('suggest.showStatusBar', \"Controls the visibility of the status bar at the bottom of the suggest widget.\")\n },\n 'editor.suggest.preview': {\n type: 'boolean',\n default: defaults.preview,\n description: nls.localize('suggest.preview', \"Controls whether to preview the suggestion outcome in the editor.\")\n },\n 'editor.suggest.showInlineDetails': {\n type: 'boolean',\n default: defaults.showInlineDetails,\n description: nls.localize('suggest.showInlineDetails', \"Controls whether suggest details show inline with the label or only in the details widget.\")\n },\n 'editor.suggest.maxVisibleSuggestions': {\n type: 'number',\n deprecationMessage: nls.localize('suggest.maxVisibleSuggestions.dep', \"This setting is deprecated. The suggest widget can now be resized.\"),\n },\n 'editor.suggest.filteredTypes': {\n type: 'object',\n deprecationMessage: nls.localize('deprecated', \"This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.\")\n },\n 'editor.suggest.showMethods': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showMethods', \"When enabled IntelliSense shows `method`-suggestions.\")\n },\n 'editor.suggest.showFunctions': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFunctions', \"When enabled IntelliSense shows `function`-suggestions.\")\n },\n 'editor.suggest.showConstructors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showConstructors', \"When enabled IntelliSense shows `constructor`-suggestions.\")\n },\n 'editor.suggest.showDeprecated': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showDeprecated', \"When enabled IntelliSense shows `deprecated`-suggestions.\")\n },\n 'editor.suggest.matchOnWordStartOnly': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.matchOnWordStartOnly', \"When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.\")\n },\n 'editor.suggest.showFields': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFields', \"When enabled IntelliSense shows `field`-suggestions.\")\n },\n 'editor.suggest.showVariables': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showVariables', \"When enabled IntelliSense shows `variable`-suggestions.\")\n },\n 'editor.suggest.showClasses': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showClasss', \"When enabled IntelliSense shows `class`-suggestions.\")\n },\n 'editor.suggest.showStructs': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showStructs', \"When enabled IntelliSense shows `struct`-suggestions.\")\n },\n 'editor.suggest.showInterfaces': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showInterfaces', \"When enabled IntelliSense shows `interface`-suggestions.\")\n },\n 'editor.suggest.showModules': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showModules', \"When enabled IntelliSense shows `module`-suggestions.\")\n },\n 'editor.suggest.showProperties': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showPropertys', \"When enabled IntelliSense shows `property`-suggestions.\")\n },\n 'editor.suggest.showEvents': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEvents', \"When enabled IntelliSense shows `event`-suggestions.\")\n },\n 'editor.suggest.showOperators': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showOperators', \"When enabled IntelliSense shows `operator`-suggestions.\")\n },\n 'editor.suggest.showUnits': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showUnits', \"When enabled IntelliSense shows `unit`-suggestions.\")\n },\n 'editor.suggest.showValues': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showValues', \"When enabled IntelliSense shows `value`-suggestions.\")\n },\n 'editor.suggest.showConstants': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showConstants', \"When enabled IntelliSense shows `constant`-suggestions.\")\n },\n 'editor.suggest.showEnums': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEnums', \"When enabled IntelliSense shows `enum`-suggestions.\")\n },\n 'editor.suggest.showEnumMembers': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showEnumMembers', \"When enabled IntelliSense shows `enumMember`-suggestions.\")\n },\n 'editor.suggest.showKeywords': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showKeywords', \"When enabled IntelliSense shows `keyword`-suggestions.\")\n },\n 'editor.suggest.showWords': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showTexts', \"When enabled IntelliSense shows `text`-suggestions.\")\n },\n 'editor.suggest.showColors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showColors', \"When enabled IntelliSense shows `color`-suggestions.\")\n },\n 'editor.suggest.showFiles': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFiles', \"When enabled IntelliSense shows `file`-suggestions.\")\n },\n 'editor.suggest.showReferences': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showReferences', \"When enabled IntelliSense shows `reference`-suggestions.\")\n },\n 'editor.suggest.showCustomcolors': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showCustomcolors', \"When enabled IntelliSense shows `customcolor`-suggestions.\")\n },\n 'editor.suggest.showFolders': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showFolders', \"When enabled IntelliSense shows `folder`-suggestions.\")\n },\n 'editor.suggest.showTypeParameters': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showTypeParameters', \"When enabled IntelliSense shows `typeParameter`-suggestions.\")\n },\n 'editor.suggest.showSnippets': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showSnippets', \"When enabled IntelliSense shows `snippet`-suggestions.\")\n },\n 'editor.suggest.showUsers': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showUsers', \"When enabled IntelliSense shows `user`-suggestions.\")\n },\n 'editor.suggest.showIssues': {\n type: 'boolean',\n default: true,\n markdownDescription: nls.localize('editor.suggest.showIssues', \"When enabled IntelliSense shows `issues`-suggestions.\")\n }\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n insertMode: stringSet(input.insertMode, this.defaultValue.insertMode, ['insert', 'replace']),\n filterGraceful: boolean(input.filterGraceful, this.defaultValue.filterGraceful),\n snippetsPreventQuickSuggestions: boolean(input.snippetsPreventQuickSuggestions, this.defaultValue.filterGraceful),\n localityBonus: boolean(input.localityBonus, this.defaultValue.localityBonus),\n shareSuggestSelections: boolean(input.shareSuggestSelections, this.defaultValue.shareSuggestSelections),\n selectionMode: stringSet(input.selectionMode, this.defaultValue.selectionMode, ['always', 'never', 'whenQuickSuggestion', 'whenTriggerCharacter']),\n showIcons: boolean(input.showIcons, this.defaultValue.showIcons),\n showStatusBar: boolean(input.showStatusBar, this.defaultValue.showStatusBar),\n preview: boolean(input.preview, this.defaultValue.preview),\n previewMode: stringSet(input.previewMode, this.defaultValue.previewMode, ['prefix', 'subword', 'subwordSmart']),\n showInlineDetails: boolean(input.showInlineDetails, this.defaultValue.showInlineDetails),\n showMethods: boolean(input.showMethods, this.defaultValue.showMethods),\n showFunctions: boolean(input.showFunctions, this.defaultValue.showFunctions),\n showConstructors: boolean(input.showConstructors, this.defaultValue.showConstructors),\n showDeprecated: boolean(input.showDeprecated, this.defaultValue.showDeprecated),\n matchOnWordStartOnly: boolean(input.matchOnWordStartOnly, this.defaultValue.matchOnWordStartOnly),\n showFields: boolean(input.showFields, this.defaultValue.showFields),\n showVariables: boolean(input.showVariables, this.defaultValue.showVariables),\n showClasses: boolean(input.showClasses, this.defaultValue.showClasses),\n showStructs: boolean(input.showStructs, this.defaultValue.showStructs),\n showInterfaces: boolean(input.showInterfaces, this.defaultValue.showInterfaces),\n showModules: boolean(input.showModules, this.defaultValue.showModules),\n showProperties: boolean(input.showProperties, this.defaultValue.showProperties),\n showEvents: boolean(input.showEvents, this.defaultValue.showEvents),\n showOperators: boolean(input.showOperators, this.defaultValue.showOperators),\n showUnits: boolean(input.showUnits, this.defaultValue.showUnits),\n showValues: boolean(input.showValues, this.defaultValue.showValues),\n showConstants: boolean(input.showConstants, this.defaultValue.showConstants),\n showEnums: boolean(input.showEnums, this.defaultValue.showEnums),\n showEnumMembers: boolean(input.showEnumMembers, this.defaultValue.showEnumMembers),\n showKeywords: boolean(input.showKeywords, this.defaultValue.showKeywords),\n showWords: boolean(input.showWords, this.defaultValue.showWords),\n showColors: boolean(input.showColors, this.defaultValue.showColors),\n showFiles: boolean(input.showFiles, this.defaultValue.showFiles),\n showReferences: boolean(input.showReferences, this.defaultValue.showReferences),\n showFolders: boolean(input.showFolders, this.defaultValue.showFolders),\n showTypeParameters: boolean(input.showTypeParameters, this.defaultValue.showTypeParameters),\n showSnippets: boolean(input.showSnippets, this.defaultValue.showSnippets),\n showUsers: boolean(input.showUsers, this.defaultValue.showUsers),\n showIssues: boolean(input.showIssues, this.defaultValue.showIssues),\n };\n }\n}\nclass SmartSelect extends BaseEditorOption {\n constructor() {\n super(113 /* EditorOption.smartSelect */, 'smartSelect', {\n selectLeadingAndTrailingWhitespace: true,\n selectSubwords: true,\n }, {\n 'editor.smartSelect.selectLeadingAndTrailingWhitespace': {\n description: nls.localize('selectLeadingAndTrailingWhitespace', \"Whether leading and trailing whitespace should always be selected.\"),\n default: true,\n type: 'boolean'\n },\n 'editor.smartSelect.selectSubwords': {\n description: nls.localize('selectSubwords', \"Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected.\"),\n default: true,\n type: 'boolean'\n }\n });\n }\n validate(input) {\n if (!input || typeof input !== 'object') {\n return this.defaultValue;\n }\n return {\n selectLeadingAndTrailingWhitespace: boolean(input.selectLeadingAndTrailingWhitespace, this.defaultValue.selectLeadingAndTrailingWhitespace),\n selectSubwords: boolean(input.selectSubwords, this.defaultValue.selectSubwords),\n };\n }\n}\n//#endregion\n//#region wordSegmenterLocales\n/**\n * Locales used for segmenting lines into words when doing word related navigations or operations.\n *\n * Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\n */\nclass WordSegmenterLocales extends BaseEditorOption {\n constructor() {\n const defaults = [];\n super(130 /* EditorOption.wordSegmenterLocales */, 'wordSegmenterLocales', defaults, {\n anyOf: [\n {\n description: nls.localize('wordSegmenterLocales', \"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),\n type: 'string',\n }, {\n description: nls.localize('wordSegmenterLocales', \"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.).\"),\n type: 'array',\n items: {\n type: 'string'\n }\n }\n ]\n });\n }\n validate(input) {\n if (typeof input === 'string') {\n input = [input];\n }\n if (Array.isArray(input)) {\n const validLocales = [];\n for (const locale of input) {\n if (typeof locale === 'string') {\n try {\n if (Intl.Segmenter.supportedLocalesOf(locale).length > 0) {\n validLocales.push(locale);\n }\n }\n catch (_a) {\n // ignore invalid locales\n }\n }\n }\n return validLocales;\n }\n return this.defaultValue;\n }\n}\nclass WrappingIndentOption extends BaseEditorOption {\n constructor() {\n super(138 /* EditorOption.wrappingIndent */, 'wrappingIndent', 1 /* WrappingIndent.Same */, {\n 'editor.wrappingIndent': {\n type: 'string',\n enum: ['none', 'same', 'indent', 'deepIndent'],\n enumDescriptions: [\n nls.localize('wrappingIndent.none', \"No indentation. Wrapped lines begin at column 1.\"),\n nls.localize('wrappingIndent.same', \"Wrapped lines get the same indentation as the parent.\"),\n nls.localize('wrappingIndent.indent', \"Wrapped lines get +1 indentation toward the parent.\"),\n nls.localize('wrappingIndent.deepIndent', \"Wrapped lines get +2 indentation toward the parent.\"),\n ],\n description: nls.localize('wrappingIndent', \"Controls the indentation of wrapped lines.\"),\n default: 'same'\n }\n });\n }\n validate(input) {\n switch (input) {\n case 'none': return 0 /* WrappingIndent.None */;\n case 'same': return 1 /* WrappingIndent.Same */;\n case 'indent': return 2 /* WrappingIndent.Indent */;\n case 'deepIndent': return 3 /* WrappingIndent.DeepIndent */;\n }\n return 1 /* WrappingIndent.Same */;\n }\n compute(env, options, value) {\n const accessibilitySupport = options.get(2 /* EditorOption.accessibilitySupport */);\n if (accessibilitySupport === 2 /* AccessibilitySupport.Enabled */) {\n // if we know for a fact that a screen reader is attached, we use no indent wrapping to\n // help that the editor's wrapping points match the textarea's wrapping points\n return 0 /* WrappingIndent.None */;\n }\n return value;\n }\n}\nclass EditorWrappingInfoComputer extends ComputedEditorOption {\n constructor() {\n super(146 /* EditorOption.wrappingInfo */);\n }\n compute(env, options, _) {\n const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n return {\n isDominatedByLongLines: env.isDominatedByLongLines,\n isWordWrapMinified: layoutInfo.isWordWrapMinified,\n isViewportWrapping: layoutInfo.isViewportWrapping,\n wrappingColumn: layoutInfo.wrappingColumn,\n };\n }\n}\nclass EditorDropIntoEditor extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: true, showDropSelector: 'afterDrop' };\n super(36 /* EditorOption.dropIntoEditor */, 'dropIntoEditor', defaults, {\n 'editor.dropIntoEditor.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n markdownDescription: nls.localize('dropIntoEditor.enabled', \"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).\"),\n },\n 'editor.dropIntoEditor.showDropSelector': {\n type: 'string',\n markdownDescription: nls.localize('dropIntoEditor.showDropSelector', \"Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped.\"),\n enum: [\n 'afterDrop',\n 'never'\n ],\n enumDescriptions: [\n nls.localize('dropIntoEditor.showDropSelector.afterDrop', \"Show the drop selector widget after a file is dropped into the editor.\"),\n nls.localize('dropIntoEditor.showDropSelector.never', \"Never show the drop selector widget. Instead the default drop provider is always used.\"),\n ],\n default: 'afterDrop',\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n showDropSelector: stringSet(input.showDropSelector, this.defaultValue.showDropSelector, ['afterDrop', 'never']),\n };\n }\n}\nclass EditorPasteAs extends BaseEditorOption {\n constructor() {\n const defaults = { enabled: true, showPasteSelector: 'afterPaste' };\n super(85 /* EditorOption.pasteAs */, 'pasteAs', defaults, {\n 'editor.pasteAs.enabled': {\n type: 'boolean',\n default: defaults.enabled,\n markdownDescription: nls.localize('pasteAs.enabled', \"Controls whether you can paste content in different ways.\"),\n },\n 'editor.pasteAs.showPasteSelector': {\n type: 'string',\n markdownDescription: nls.localize('pasteAs.showPasteSelector', \"Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted.\"),\n enum: [\n 'afterPaste',\n 'never'\n ],\n enumDescriptions: [\n nls.localize('pasteAs.showPasteSelector.afterPaste', \"Show the paste selector widget after content is pasted into the editor.\"),\n nls.localize('pasteAs.showPasteSelector.never', \"Never show the paste selector widget. Instead the default pasting behavior is always used.\"),\n ],\n default: 'afterPaste',\n },\n });\n }\n validate(_input) {\n if (!_input || typeof _input !== 'object') {\n return this.defaultValue;\n }\n const input = _input;\n return {\n enabled: boolean(input.enabled, this.defaultValue.enabled),\n showPasteSelector: stringSet(input.showPasteSelector, this.defaultValue.showPasteSelector, ['afterPaste', 'never']),\n };\n }\n}\n//#endregion\nconst DEFAULT_WINDOWS_FONT_FAMILY = 'Consolas, \\'Courier New\\', monospace';\nconst DEFAULT_MAC_FONT_FAMILY = 'Menlo, Monaco, \\'Courier New\\', monospace';\nconst DEFAULT_LINUX_FONT_FAMILY = '\\'Droid Sans Mono\\', \\'monospace\\', monospace';\n/**\n * @internal\n */\nexport const EDITOR_FONT_DEFAULTS = {\n fontFamily: (platform.isMacintosh ? DEFAULT_MAC_FONT_FAMILY : (platform.isLinux ? DEFAULT_LINUX_FONT_FAMILY : DEFAULT_WINDOWS_FONT_FAMILY)),\n fontWeight: 'normal',\n fontSize: (platform.isMacintosh ? 12 : 14),\n lineHeight: 0,\n letterSpacing: 0,\n};\n/**\n * @internal\n */\nexport const editorOptionsRegistry = [];\nfunction register(option) {\n editorOptionsRegistry[option.id] = option;\n return option;\n}\nexport const EditorOptions = {\n acceptSuggestionOnCommitCharacter: register(new EditorBooleanOption(0 /* EditorOption.acceptSuggestionOnCommitCharacter */, 'acceptSuggestionOnCommitCharacter', true, { markdownDescription: nls.localize('acceptSuggestionOnCommitCharacter', \"Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.\") })),\n acceptSuggestionOnEnter: register(new EditorStringEnumOption(1 /* EditorOption.acceptSuggestionOnEnter */, 'acceptSuggestionOnEnter', 'on', ['on', 'smart', 'off'], {\n markdownEnumDescriptions: [\n '',\n nls.localize('acceptSuggestionOnEnterSmart', \"Only accept a suggestion with `Enter` when it makes a textual change.\"),\n ''\n ],\n markdownDescription: nls.localize('acceptSuggestionOnEnter', \"Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.\")\n })),\n accessibilitySupport: register(new EditorAccessibilitySupport()),\n accessibilityPageSize: register(new EditorIntOption(3 /* EditorOption.accessibilityPageSize */, 'accessibilityPageSize', 10, 1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, {\n description: nls.localize('accessibilityPageSize', \"Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default.\"),\n tags: ['accessibility']\n })),\n ariaLabel: register(new EditorStringOption(4 /* EditorOption.ariaLabel */, 'ariaLabel', nls.localize('editorViewAccessibleLabel', \"Editor content\"))),\n ariaRequired: register(new EditorBooleanOption(5 /* EditorOption.ariaRequired */, 'ariaRequired', false, undefined)),\n screenReaderAnnounceInlineSuggestion: register(new EditorBooleanOption(8 /* EditorOption.screenReaderAnnounceInlineSuggestion */, 'screenReaderAnnounceInlineSuggestion', true, {\n description: nls.localize('screenReaderAnnounceInlineSuggestion', \"Control whether inline suggestions are announced by a screen reader.\"),\n tags: ['accessibility']\n })),\n autoClosingBrackets: register(new EditorStringEnumOption(6 /* EditorOption.autoClosingBrackets */, 'autoClosingBrackets', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingBrackets.languageDefined', \"Use language configurations to determine when to autoclose brackets.\"),\n nls.localize('editor.autoClosingBrackets.beforeWhitespace', \"Autoclose brackets only when the cursor is to the left of whitespace.\"),\n '',\n ],\n description: nls.localize('autoClosingBrackets', \"Controls whether the editor should automatically close brackets after the user adds an opening bracket.\")\n })),\n autoClosingComments: register(new EditorStringEnumOption(7 /* EditorOption.autoClosingComments */, 'autoClosingComments', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingComments.languageDefined', \"Use language configurations to determine when to autoclose comments.\"),\n nls.localize('editor.autoClosingComments.beforeWhitespace', \"Autoclose comments only when the cursor is to the left of whitespace.\"),\n '',\n ],\n description: nls.localize('autoClosingComments', \"Controls whether the editor should automatically close comments after the user adds an opening comment.\")\n })),\n autoClosingDelete: register(new EditorStringEnumOption(9 /* EditorOption.autoClosingDelete */, 'autoClosingDelete', 'auto', ['always', 'auto', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingDelete.auto', \"Remove adjacent closing quotes or brackets only if they were automatically inserted.\"),\n '',\n ],\n description: nls.localize('autoClosingDelete', \"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.\")\n })),\n autoClosingOvertype: register(new EditorStringEnumOption(10 /* EditorOption.autoClosingOvertype */, 'autoClosingOvertype', 'auto', ['always', 'auto', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingOvertype.auto', \"Type over closing quotes or brackets only if they were automatically inserted.\"),\n '',\n ],\n description: nls.localize('autoClosingOvertype', \"Controls whether the editor should type over closing quotes or brackets.\")\n })),\n autoClosingQuotes: register(new EditorStringEnumOption(11 /* EditorOption.autoClosingQuotes */, 'autoClosingQuotes', 'languageDefined', ['always', 'languageDefined', 'beforeWhitespace', 'never'], {\n enumDescriptions: [\n '',\n nls.localize('editor.autoClosingQuotes.languageDefined', \"Use language configurations to determine when to autoclose quotes.\"),\n nls.localize('editor.autoClosingQuotes.beforeWhitespace', \"Autoclose quotes only when the cursor is to the left of whitespace.\"),\n '',\n ],\n description: nls.localize('autoClosingQuotes', \"Controls whether the editor should automatically close quotes after the user adds an opening quote.\")\n })),\n autoIndent: register(new EditorEnumOption(12 /* EditorOption.autoIndent */, 'autoIndent', 4 /* EditorAutoIndentStrategy.Full */, 'full', ['none', 'keep', 'brackets', 'advanced', 'full'], _autoIndentFromString, {\n enumDescriptions: [\n nls.localize('editor.autoIndent.none', \"The editor will not insert indentation automatically.\"),\n nls.localize('editor.autoIndent.keep', \"The editor will keep the current line's indentation.\"),\n nls.localize('editor.autoIndent.brackets', \"The editor will keep the current line's indentation and honor language defined brackets.\"),\n nls.localize('editor.autoIndent.advanced', \"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages.\"),\n nls.localize('editor.autoIndent.full', \"The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.\"),\n ],\n description: nls.localize('autoIndent', \"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.\")\n })),\n automaticLayout: register(new EditorBooleanOption(13 /* EditorOption.automaticLayout */, 'automaticLayout', false)),\n autoSurround: register(new EditorStringEnumOption(14 /* EditorOption.autoSurround */, 'autoSurround', 'languageDefined', ['languageDefined', 'quotes', 'brackets', 'never'], {\n enumDescriptions: [\n nls.localize('editor.autoSurround.languageDefined', \"Use language configurations to determine when to automatically surround selections.\"),\n nls.localize('editor.autoSurround.quotes', \"Surround with quotes but not brackets.\"),\n nls.localize('editor.autoSurround.brackets', \"Surround with brackets but not quotes.\"),\n ''\n ],\n description: nls.localize('autoSurround', \"Controls whether the editor should automatically surround selections when typing quotes or brackets.\")\n })),\n bracketPairColorization: register(new BracketPairColorization()),\n bracketPairGuides: register(new GuideOptions()),\n stickyTabStops: register(new EditorBooleanOption(116 /* EditorOption.stickyTabStops */, 'stickyTabStops', false, { description: nls.localize('stickyTabStops', \"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.\") })),\n codeLens: register(new EditorBooleanOption(17 /* EditorOption.codeLens */, 'codeLens', true, { description: nls.localize('codeLens', \"Controls whether the editor shows CodeLens.\") })),\n codeLensFontFamily: register(new EditorStringOption(18 /* EditorOption.codeLensFontFamily */, 'codeLensFontFamily', '', { description: nls.localize('codeLensFontFamily', \"Controls the font family for CodeLens.\") })),\n codeLensFontSize: register(new EditorIntOption(19 /* EditorOption.codeLensFontSize */, 'codeLensFontSize', 0, 0, 100, {\n type: 'number',\n default: 0,\n minimum: 0,\n maximum: 100,\n markdownDescription: nls.localize('codeLensFontSize', \"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.\")\n })),\n colorDecorators: register(new EditorBooleanOption(20 /* EditorOption.colorDecorators */, 'colorDecorators', true, { description: nls.localize('colorDecorators', \"Controls whether the editor should render the inline color decorators and color picker.\") })),\n colorDecoratorActivatedOn: register(new EditorStringEnumOption(148 /* EditorOption.colorDecoratorsActivatedOn */, 'colorDecoratorsActivatedOn', 'clickAndHover', ['clickAndHover', 'hover', 'click'], {\n enumDescriptions: [\n nls.localize('editor.colorDecoratorActivatedOn.clickAndHover', \"Make the color picker appear both on click and hover of the color decorator\"),\n nls.localize('editor.colorDecoratorActivatedOn.hover', \"Make the color picker appear on hover of the color decorator\"),\n nls.localize('editor.colorDecoratorActivatedOn.click', \"Make the color picker appear on click of the color decorator\")\n ],\n description: nls.localize('colorDecoratorActivatedOn', \"Controls the condition to make a color picker appear from a color decorator\")\n })),\n colorDecoratorsLimit: register(new EditorIntOption(21 /* EditorOption.colorDecoratorsLimit */, 'colorDecoratorsLimit', 500, 1, 1000000, {\n markdownDescription: nls.localize('colorDecoratorsLimit', \"Controls the max number of color decorators that can be rendered in an editor at once.\")\n })),\n columnSelection: register(new EditorBooleanOption(22 /* EditorOption.columnSelection */, 'columnSelection', false, { description: nls.localize('columnSelection', \"Enable that the selection with the mouse and keys is doing column selection.\") })),\n comments: register(new EditorComments()),\n contextmenu: register(new EditorBooleanOption(24 /* EditorOption.contextmenu */, 'contextmenu', true)),\n copyWithSyntaxHighlighting: register(new EditorBooleanOption(25 /* EditorOption.copyWithSyntaxHighlighting */, 'copyWithSyntaxHighlighting', true, { description: nls.localize('copyWithSyntaxHighlighting', \"Controls whether syntax highlighting should be copied into the clipboard.\") })),\n cursorBlinking: register(new EditorEnumOption(26 /* EditorOption.cursorBlinking */, 'cursorBlinking', 1 /* TextEditorCursorBlinkingStyle.Blink */, 'blink', ['blink', 'smooth', 'phase', 'expand', 'solid'], _cursorBlinkingStyleFromString, { description: nls.localize('cursorBlinking', \"Control the cursor animation style.\") })),\n cursorSmoothCaretAnimation: register(new EditorStringEnumOption(27 /* EditorOption.cursorSmoothCaretAnimation */, 'cursorSmoothCaretAnimation', 'off', ['off', 'explicit', 'on'], {\n enumDescriptions: [\n nls.localize('cursorSmoothCaretAnimation.off', \"Smooth caret animation is disabled.\"),\n nls.localize('cursorSmoothCaretAnimation.explicit', \"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture.\"),\n nls.localize('cursorSmoothCaretAnimation.on', \"Smooth caret animation is always enabled.\")\n ],\n description: nls.localize('cursorSmoothCaretAnimation', \"Controls whether the smooth caret animation should be enabled.\")\n })),\n cursorStyle: register(new EditorEnumOption(28 /* EditorOption.cursorStyle */, 'cursorStyle', TextEditorCursorStyle.Line, 'line', ['line', 'block', 'underline', 'line-thin', 'block-outline', 'underline-thin'], _cursorStyleFromString, { description: nls.localize('cursorStyle', \"Controls the cursor style.\") })),\n cursorSurroundingLines: register(new EditorIntOption(29 /* EditorOption.cursorSurroundingLines */, 'cursorSurroundingLines', 0, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('cursorSurroundingLines', \"Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.\") })),\n cursorSurroundingLinesStyle: register(new EditorStringEnumOption(30 /* EditorOption.cursorSurroundingLinesStyle */, 'cursorSurroundingLinesStyle', 'default', ['default', 'all'], {\n enumDescriptions: [\n nls.localize('cursorSurroundingLinesStyle.default', \"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API.\"),\n nls.localize('cursorSurroundingLinesStyle.all', \"`cursorSurroundingLines` is enforced always.\")\n ],\n markdownDescription: nls.localize('cursorSurroundingLinesStyle', \"Controls when `#editor.cursorSurroundingLines#` should be enforced.\")\n })),\n cursorWidth: register(new EditorIntOption(31 /* EditorOption.cursorWidth */, 'cursorWidth', 0, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { markdownDescription: nls.localize('cursorWidth', \"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.\") })),\n disableLayerHinting: register(new EditorBooleanOption(32 /* EditorOption.disableLayerHinting */, 'disableLayerHinting', false)),\n disableMonospaceOptimizations: register(new EditorBooleanOption(33 /* EditorOption.disableMonospaceOptimizations */, 'disableMonospaceOptimizations', false)),\n domReadOnly: register(new EditorBooleanOption(34 /* EditorOption.domReadOnly */, 'domReadOnly', false)),\n dragAndDrop: register(new EditorBooleanOption(35 /* EditorOption.dragAndDrop */, 'dragAndDrop', true, { description: nls.localize('dragAndDrop', \"Controls whether the editor should allow moving selections via drag and drop.\") })),\n emptySelectionClipboard: register(new EditorEmptySelectionClipboard()),\n dropIntoEditor: register(new EditorDropIntoEditor()),\n stickyScroll: register(new EditorStickyScroll()),\n experimentalWhitespaceRendering: register(new EditorStringEnumOption(38 /* EditorOption.experimentalWhitespaceRendering */, 'experimentalWhitespaceRendering', 'svg', ['svg', 'font', 'off'], {\n enumDescriptions: [\n nls.localize('experimentalWhitespaceRendering.svg', \"Use a new rendering method with svgs.\"),\n nls.localize('experimentalWhitespaceRendering.font', \"Use a new rendering method with font characters.\"),\n nls.localize('experimentalWhitespaceRendering.off', \"Use the stable rendering method.\"),\n ],\n description: nls.localize('experimentalWhitespaceRendering', \"Controls whether whitespace is rendered with a new, experimental method.\")\n })),\n extraEditorClassName: register(new EditorStringOption(39 /* EditorOption.extraEditorClassName */, 'extraEditorClassName', '')),\n fastScrollSensitivity: register(new EditorFloatOption(40 /* EditorOption.fastScrollSensitivity */, 'fastScrollSensitivity', 5, x => (x <= 0 ? 5 : x), { markdownDescription: nls.localize('fastScrollSensitivity', \"Scrolling speed multiplier when pressing `Alt`.\") })),\n find: register(new EditorFind()),\n fixedOverflowWidgets: register(new EditorBooleanOption(42 /* EditorOption.fixedOverflowWidgets */, 'fixedOverflowWidgets', false)),\n folding: register(new EditorBooleanOption(43 /* EditorOption.folding */, 'folding', true, { description: nls.localize('folding', \"Controls whether the editor has code folding enabled.\") })),\n foldingStrategy: register(new EditorStringEnumOption(44 /* EditorOption.foldingStrategy */, 'foldingStrategy', 'auto', ['auto', 'indentation'], {\n enumDescriptions: [\n nls.localize('foldingStrategy.auto', \"Use a language-specific folding strategy if available, else the indentation-based one.\"),\n nls.localize('foldingStrategy.indentation', \"Use the indentation-based folding strategy.\"),\n ],\n description: nls.localize('foldingStrategy', \"Controls the strategy for computing folding ranges.\")\n })),\n foldingHighlight: register(new EditorBooleanOption(45 /* EditorOption.foldingHighlight */, 'foldingHighlight', true, { description: nls.localize('foldingHighlight', \"Controls whether the editor should highlight folded ranges.\") })),\n foldingImportsByDefault: register(new EditorBooleanOption(46 /* EditorOption.foldingImportsByDefault */, 'foldingImportsByDefault', false, { description: nls.localize('foldingImportsByDefault', \"Controls whether the editor automatically collapses import ranges.\") })),\n foldingMaximumRegions: register(new EditorIntOption(47 /* EditorOption.foldingMaximumRegions */, 'foldingMaximumRegions', 5000, 10, 65000, // limit must be less than foldingRanges MAX_FOLDING_REGIONS\n { description: nls.localize('foldingMaximumRegions', \"The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.\") })),\n unfoldOnClickAfterEndOfLine: register(new EditorBooleanOption(48 /* EditorOption.unfoldOnClickAfterEndOfLine */, 'unfoldOnClickAfterEndOfLine', false, { description: nls.localize('unfoldOnClickAfterEndOfLine', \"Controls whether clicking on the empty content after a folded line will unfold the line.\") })),\n fontFamily: register(new EditorStringOption(49 /* EditorOption.fontFamily */, 'fontFamily', EDITOR_FONT_DEFAULTS.fontFamily, { description: nls.localize('fontFamily', \"Controls the font family.\") })),\n fontInfo: register(new EditorFontInfo()),\n fontLigatures2: register(new EditorFontLigatures()),\n fontSize: register(new EditorFontSize()),\n fontWeight: register(new EditorFontWeight()),\n fontVariations: register(new EditorFontVariations()),\n formatOnPaste: register(new EditorBooleanOption(55 /* EditorOption.formatOnPaste */, 'formatOnPaste', false, { description: nls.localize('formatOnPaste', \"Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.\") })),\n formatOnType: register(new EditorBooleanOption(56 /* EditorOption.formatOnType */, 'formatOnType', false, { description: nls.localize('formatOnType', \"Controls whether the editor should automatically format the line after typing.\") })),\n glyphMargin: register(new EditorBooleanOption(57 /* EditorOption.glyphMargin */, 'glyphMargin', true, { description: nls.localize('glyphMargin', \"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.\") })),\n gotoLocation: register(new EditorGoToLocation()),\n hideCursorInOverviewRuler: register(new EditorBooleanOption(59 /* EditorOption.hideCursorInOverviewRuler */, 'hideCursorInOverviewRuler', false, { description: nls.localize('hideCursorInOverviewRuler', \"Controls whether the cursor should be hidden in the overview ruler.\") })),\n hover: register(new EditorHover()),\n inDiffEditor: register(new EditorBooleanOption(61 /* EditorOption.inDiffEditor */, 'inDiffEditor', false)),\n letterSpacing: register(new EditorFloatOption(64 /* EditorOption.letterSpacing */, 'letterSpacing', EDITOR_FONT_DEFAULTS.letterSpacing, x => EditorFloatOption.clamp(x, -5, 20), { description: nls.localize('letterSpacing', \"Controls the letter spacing in pixels.\") })),\n lightbulb: register(new EditorLightbulb()),\n lineDecorationsWidth: register(new EditorLineDecorationsWidth()),\n lineHeight: register(new EditorLineHeight()),\n lineNumbers: register(new EditorRenderLineNumbersOption()),\n lineNumbersMinChars: register(new EditorIntOption(69 /* EditorOption.lineNumbersMinChars */, 'lineNumbersMinChars', 5, 1, 300)),\n linkedEditing: register(new EditorBooleanOption(70 /* EditorOption.linkedEditing */, 'linkedEditing', false, { description: nls.localize('linkedEditing', \"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.\") })),\n links: register(new EditorBooleanOption(71 /* EditorOption.links */, 'links', true, { description: nls.localize('links', \"Controls whether the editor should detect links and make them clickable.\") })),\n matchBrackets: register(new EditorStringEnumOption(72 /* EditorOption.matchBrackets */, 'matchBrackets', 'always', ['always', 'near', 'never'], { description: nls.localize('matchBrackets', \"Highlight matching brackets.\") })),\n minimap: register(new EditorMinimap()),\n mouseStyle: register(new EditorStringEnumOption(74 /* EditorOption.mouseStyle */, 'mouseStyle', 'text', ['text', 'default', 'copy'])),\n mouseWheelScrollSensitivity: register(new EditorFloatOption(75 /* EditorOption.mouseWheelScrollSensitivity */, 'mouseWheelScrollSensitivity', 1, x => (x === 0 ? 1 : x), { markdownDescription: nls.localize('mouseWheelScrollSensitivity', \"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.\") })),\n mouseWheelZoom: register(new EditorBooleanOption(76 /* EditorOption.mouseWheelZoom */, 'mouseWheelZoom', false, {\n markdownDescription: platform.isMacintosh\n ? nls.localize('mouseWheelZoom.mac', \"Zoom the font of the editor when using mouse wheel and holding `Cmd`.\")\n : nls.localize('mouseWheelZoom', \"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.\")\n })),\n multiCursorMergeOverlapping: register(new EditorBooleanOption(77 /* EditorOption.multiCursorMergeOverlapping */, 'multiCursorMergeOverlapping', true, { description: nls.localize('multiCursorMergeOverlapping', \"Merge multiple cursors when they are overlapping.\") })),\n multiCursorModifier: register(new EditorEnumOption(78 /* EditorOption.multiCursorModifier */, 'multiCursorModifier', 'altKey', 'alt', ['ctrlCmd', 'alt'], _multiCursorModifierFromString, {\n markdownEnumDescriptions: [\n nls.localize('multiCursorModifier.ctrlCmd', \"Maps to `Control` on Windows and Linux and to `Command` on macOS.\"),\n nls.localize('multiCursorModifier.alt', \"Maps to `Alt` on Windows and Linux and to `Option` on macOS.\")\n ],\n markdownDescription: nls.localize({\n key: 'multiCursorModifier',\n comment: [\n '- `ctrlCmd` refers to a value the setting can take and should not be localized.',\n '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.'\n ]\n }, \"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).\")\n })),\n multiCursorPaste: register(new EditorStringEnumOption(79 /* EditorOption.multiCursorPaste */, 'multiCursorPaste', 'spread', ['spread', 'full'], {\n markdownEnumDescriptions: [\n nls.localize('multiCursorPaste.spread', \"Each cursor pastes a single line of the text.\"),\n nls.localize('multiCursorPaste.full', \"Each cursor pastes the full text.\")\n ],\n markdownDescription: nls.localize('multiCursorPaste', \"Controls pasting when the line count of the pasted text matches the cursor count.\")\n })),\n multiCursorLimit: register(new EditorIntOption(80 /* EditorOption.multiCursorLimit */, 'multiCursorLimit', 10000, 1, 100000, {\n markdownDescription: nls.localize('multiCursorLimit', \"Controls the max number of cursors that can be in an active editor at once.\")\n })),\n occurrencesHighlight: register(new EditorStringEnumOption(81 /* EditorOption.occurrencesHighlight */, 'occurrencesHighlight', 'singleFile', ['off', 'singleFile', 'multiFile'], {\n markdownEnumDescriptions: [\n nls.localize('occurrencesHighlight.off', \"Does not highlight occurrences.\"),\n nls.localize('occurrencesHighlight.singleFile', \"Highlights occurrences only in the current file.\"),\n nls.localize('occurrencesHighlight.multiFile', \"Experimental: Highlights occurrences across all valid open files.\")\n ],\n markdownDescription: nls.localize('occurrencesHighlight', \"Controls whether occurrences should be highlighted across open files.\")\n })),\n overviewRulerBorder: register(new EditorBooleanOption(82 /* EditorOption.overviewRulerBorder */, 'overviewRulerBorder', true, { description: nls.localize('overviewRulerBorder', \"Controls whether a border should be drawn around the overview ruler.\") })),\n overviewRulerLanes: register(new EditorIntOption(83 /* EditorOption.overviewRulerLanes */, 'overviewRulerLanes', 3, 0, 3)),\n padding: register(new EditorPadding()),\n pasteAs: register(new EditorPasteAs()),\n parameterHints: register(new EditorParameterHints()),\n peekWidgetDefaultFocus: register(new EditorStringEnumOption(87 /* EditorOption.peekWidgetDefaultFocus */, 'peekWidgetDefaultFocus', 'tree', ['tree', 'editor'], {\n enumDescriptions: [\n nls.localize('peekWidgetDefaultFocus.tree', \"Focus the tree when opening peek\"),\n nls.localize('peekWidgetDefaultFocus.editor', \"Focus the editor when opening peek\")\n ],\n description: nls.localize('peekWidgetDefaultFocus', \"Controls whether to focus the inline editor or the tree in the peek widget.\")\n })),\n definitionLinkOpensInPeek: register(new EditorBooleanOption(88 /* EditorOption.definitionLinkOpensInPeek */, 'definitionLinkOpensInPeek', false, { description: nls.localize('definitionLinkOpensInPeek', \"Controls whether the Go to Definition mouse gesture always opens the peek widget.\") })),\n quickSuggestions: register(new EditorQuickSuggestions()),\n quickSuggestionsDelay: register(new EditorIntOption(90 /* EditorOption.quickSuggestionsDelay */, 'quickSuggestionsDelay', 10, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('quickSuggestionsDelay', \"Controls the delay in milliseconds after which quick suggestions will show up.\") })),\n readOnly: register(new EditorBooleanOption(91 /* EditorOption.readOnly */, 'readOnly', false)),\n readOnlyMessage: register(new ReadonlyMessage()),\n renameOnType: register(new EditorBooleanOption(93 /* EditorOption.renameOnType */, 'renameOnType', false, { description: nls.localize('renameOnType', \"Controls whether the editor auto renames on type.\"), markdownDeprecationMessage: nls.localize('renameOnTypeDeprecate', \"Deprecated, use `editor.linkedEditing` instead.\") })),\n renderControlCharacters: register(new EditorBooleanOption(94 /* EditorOption.renderControlCharacters */, 'renderControlCharacters', true, { description: nls.localize('renderControlCharacters', \"Controls whether the editor should render control characters.\"), restricted: true })),\n renderFinalNewline: register(new EditorStringEnumOption(95 /* EditorOption.renderFinalNewline */, 'renderFinalNewline', (platform.isLinux ? 'dimmed' : 'on'), ['off', 'on', 'dimmed'], { description: nls.localize('renderFinalNewline', \"Render last line number when the file ends with a newline.\") })),\n renderLineHighlight: register(new EditorStringEnumOption(96 /* EditorOption.renderLineHighlight */, 'renderLineHighlight', 'line', ['none', 'gutter', 'line', 'all'], {\n enumDescriptions: [\n '',\n '',\n '',\n nls.localize('renderLineHighlight.all', \"Highlights both the gutter and the current line.\"),\n ],\n description: nls.localize('renderLineHighlight', \"Controls how the editor should render the current line highlight.\")\n })),\n renderLineHighlightOnlyWhenFocus: register(new EditorBooleanOption(97 /* EditorOption.renderLineHighlightOnlyWhenFocus */, 'renderLineHighlightOnlyWhenFocus', false, { description: nls.localize('renderLineHighlightOnlyWhenFocus', \"Controls if the editor should render the current line highlight only when the editor is focused.\") })),\n renderValidationDecorations: register(new EditorStringEnumOption(98 /* EditorOption.renderValidationDecorations */, 'renderValidationDecorations', 'editable', ['editable', 'on', 'off'])),\n renderWhitespace: register(new EditorStringEnumOption(99 /* EditorOption.renderWhitespace */, 'renderWhitespace', 'selection', ['none', 'boundary', 'selection', 'trailing', 'all'], {\n enumDescriptions: [\n '',\n nls.localize('renderWhitespace.boundary', \"Render whitespace characters except for single spaces between words.\"),\n nls.localize('renderWhitespace.selection', \"Render whitespace characters only on selected text.\"),\n nls.localize('renderWhitespace.trailing', \"Render only trailing whitespace characters.\"),\n ''\n ],\n description: nls.localize('renderWhitespace', \"Controls how the editor should render whitespace characters.\")\n })),\n revealHorizontalRightPadding: register(new EditorIntOption(100 /* EditorOption.revealHorizontalRightPadding */, 'revealHorizontalRightPadding', 15, 0, 1000)),\n roundedSelection: register(new EditorBooleanOption(101 /* EditorOption.roundedSelection */, 'roundedSelection', true, { description: nls.localize('roundedSelection', \"Controls whether selections should have rounded corners.\") })),\n rulers: register(new EditorRulers()),\n scrollbar: register(new EditorScrollbar()),\n scrollBeyondLastColumn: register(new EditorIntOption(104 /* EditorOption.scrollBeyondLastColumn */, 'scrollBeyondLastColumn', 4, 0, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, { description: nls.localize('scrollBeyondLastColumn', \"Controls the number of extra characters beyond which the editor will scroll horizontally.\") })),\n scrollBeyondLastLine: register(new EditorBooleanOption(105 /* EditorOption.scrollBeyondLastLine */, 'scrollBeyondLastLine', true, { description: nls.localize('scrollBeyondLastLine', \"Controls whether the editor will scroll beyond the last line.\") })),\n scrollPredominantAxis: register(new EditorBooleanOption(106 /* EditorOption.scrollPredominantAxis */, 'scrollPredominantAxis', true, { description: nls.localize('scrollPredominantAxis', \"Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.\") })),\n selectionClipboard: register(new EditorBooleanOption(107 /* EditorOption.selectionClipboard */, 'selectionClipboard', true, {\n description: nls.localize('selectionClipboard', \"Controls whether the Linux primary clipboard should be supported.\"),\n included: platform.isLinux\n })),\n selectionHighlight: register(new EditorBooleanOption(108 /* EditorOption.selectionHighlight */, 'selectionHighlight', true, { description: nls.localize('selectionHighlight', \"Controls whether the editor should highlight matches similar to the selection.\") })),\n selectOnLineNumbers: register(new EditorBooleanOption(109 /* EditorOption.selectOnLineNumbers */, 'selectOnLineNumbers', true)),\n showFoldingControls: register(new EditorStringEnumOption(110 /* EditorOption.showFoldingControls */, 'showFoldingControls', 'mouseover', ['always', 'never', 'mouseover'], {\n enumDescriptions: [\n nls.localize('showFoldingControls.always', \"Always show the folding controls.\"),\n nls.localize('showFoldingControls.never', \"Never show the folding controls and reduce the gutter size.\"),\n nls.localize('showFoldingControls.mouseover', \"Only show the folding controls when the mouse is over the gutter.\"),\n ],\n description: nls.localize('showFoldingControls', \"Controls when the folding controls on the gutter are shown.\")\n })),\n showUnused: register(new EditorBooleanOption(111 /* EditorOption.showUnused */, 'showUnused', true, { description: nls.localize('showUnused', \"Controls fading out of unused code.\") })),\n showDeprecated: register(new EditorBooleanOption(140 /* EditorOption.showDeprecated */, 'showDeprecated', true, { description: nls.localize('showDeprecated', \"Controls strikethrough deprecated variables.\") })),\n inlayHints: register(new EditorInlayHints()),\n snippetSuggestions: register(new EditorStringEnumOption(112 /* EditorOption.snippetSuggestions */, 'snippetSuggestions', 'inline', ['top', 'bottom', 'inline', 'none'], {\n enumDescriptions: [\n nls.localize('snippetSuggestions.top', \"Show snippet suggestions on top of other suggestions.\"),\n nls.localize('snippetSuggestions.bottom', \"Show snippet suggestions below other suggestions.\"),\n nls.localize('snippetSuggestions.inline', \"Show snippets suggestions with other suggestions.\"),\n nls.localize('snippetSuggestions.none', \"Do not show snippet suggestions.\"),\n ],\n description: nls.localize('snippetSuggestions', \"Controls whether snippets are shown with other suggestions and how they are sorted.\")\n })),\n smartSelect: register(new SmartSelect()),\n smoothScrolling: register(new EditorBooleanOption(114 /* EditorOption.smoothScrolling */, 'smoothScrolling', false, { description: nls.localize('smoothScrolling', \"Controls whether the editor will scroll using an animation.\") })),\n stopRenderingLineAfter: register(new EditorIntOption(117 /* EditorOption.stopRenderingLineAfter */, 'stopRenderingLineAfter', 10000, -1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */)),\n suggest: register(new EditorSuggest()),\n inlineSuggest: register(new InlineEditorSuggest()),\n inlineEdit: register(new InlineEditorEdit()),\n inlineCompletionsAccessibilityVerbose: register(new EditorBooleanOption(149 /* EditorOption.inlineCompletionsAccessibilityVerbose */, 'inlineCompletionsAccessibilityVerbose', false, { description: nls.localize('inlineCompletionsAccessibilityVerbose', \"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.\") })),\n suggestFontSize: register(new EditorIntOption(119 /* EditorOption.suggestFontSize */, 'suggestFontSize', 0, 0, 1000, { markdownDescription: nls.localize('suggestFontSize', \"Font size for the suggest widget. When set to {0}, the value of {1} is used.\", '`0`', '`#editor.fontSize#`') })),\n suggestLineHeight: register(new EditorIntOption(120 /* EditorOption.suggestLineHeight */, 'suggestLineHeight', 0, 0, 1000, { markdownDescription: nls.localize('suggestLineHeight', \"Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.\", '`0`', '`#editor.lineHeight#`') })),\n suggestOnTriggerCharacters: register(new EditorBooleanOption(121 /* EditorOption.suggestOnTriggerCharacters */, 'suggestOnTriggerCharacters', true, { description: nls.localize('suggestOnTriggerCharacters', \"Controls whether suggestions should automatically show up when typing trigger characters.\") })),\n suggestSelection: register(new EditorStringEnumOption(122 /* EditorOption.suggestSelection */, 'suggestSelection', 'first', ['first', 'recentlyUsed', 'recentlyUsedByPrefix'], {\n markdownEnumDescriptions: [\n nls.localize('suggestSelection.first', \"Always select the first suggestion.\"),\n nls.localize('suggestSelection.recentlyUsed', \"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently.\"),\n nls.localize('suggestSelection.recentlyUsedByPrefix', \"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.\"),\n ],\n description: nls.localize('suggestSelection', \"Controls how suggestions are pre-selected when showing the suggest list.\")\n })),\n tabCompletion: register(new EditorStringEnumOption(123 /* EditorOption.tabCompletion */, 'tabCompletion', 'off', ['on', 'off', 'onlySnippets'], {\n enumDescriptions: [\n nls.localize('tabCompletion.on', \"Tab complete will insert the best matching suggestion when pressing tab.\"),\n nls.localize('tabCompletion.off', \"Disable tab completions.\"),\n nls.localize('tabCompletion.onlySnippets', \"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.\"),\n ],\n description: nls.localize('tabCompletion', \"Enables tab completions.\")\n })),\n tabIndex: register(new EditorIntOption(124 /* EditorOption.tabIndex */, 'tabIndex', 0, -1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */)),\n unicodeHighlight: register(new UnicodeHighlight()),\n unusualLineTerminators: register(new EditorStringEnumOption(126 /* EditorOption.unusualLineTerminators */, 'unusualLineTerminators', 'prompt', ['auto', 'off', 'prompt'], {\n enumDescriptions: [\n nls.localize('unusualLineTerminators.auto', \"Unusual line terminators are automatically removed.\"),\n nls.localize('unusualLineTerminators.off', \"Unusual line terminators are ignored.\"),\n nls.localize('unusualLineTerminators.prompt', \"Unusual line terminators prompt to be removed.\"),\n ],\n description: nls.localize('unusualLineTerminators', \"Remove unusual line terminators that might cause problems.\")\n })),\n useShadowDOM: register(new EditorBooleanOption(127 /* EditorOption.useShadowDOM */, 'useShadowDOM', true)),\n useTabStops: register(new EditorBooleanOption(128 /* EditorOption.useTabStops */, 'useTabStops', true, { description: nls.localize('useTabStops', \"Spaces and tabs are inserted and deleted in alignment with tab stops.\") })),\n wordBreak: register(new EditorStringEnumOption(129 /* EditorOption.wordBreak */, 'wordBreak', 'normal', ['normal', 'keepAll'], {\n markdownEnumDescriptions: [\n nls.localize('wordBreak.normal', \"Use the default line break rule.\"),\n nls.localize('wordBreak.keepAll', \"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.\"),\n ],\n description: nls.localize('wordBreak', \"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.\")\n })),\n wordSegmenterLocales: register(new WordSegmenterLocales()),\n wordSeparators: register(new EditorStringOption(131 /* EditorOption.wordSeparators */, 'wordSeparators', USUAL_WORD_SEPARATORS, { description: nls.localize('wordSeparators', \"Characters that will be used as word separators when doing word related navigations or operations.\") })),\n wordWrap: register(new EditorStringEnumOption(132 /* EditorOption.wordWrap */, 'wordWrap', 'off', ['off', 'on', 'wordWrapColumn', 'bounded'], {\n markdownEnumDescriptions: [\n nls.localize('wordWrap.off', \"Lines will never wrap.\"),\n nls.localize('wordWrap.on', \"Lines will wrap at the viewport width.\"),\n nls.localize({\n key: 'wordWrap.wordWrapColumn',\n comment: [\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Lines will wrap at `#editor.wordWrapColumn#`.\"),\n nls.localize({\n key: 'wordWrap.bounded',\n comment: [\n '- viewport means the edge of the visible window size.',\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.\"),\n ],\n description: nls.localize({\n key: 'wordWrap',\n comment: [\n '- \\'off\\', \\'on\\', \\'wordWrapColumn\\' and \\'bounded\\' refer to values the setting can take and should not be localized.',\n '- `editor.wordWrapColumn` refers to a different setting and should not be localized.'\n ]\n }, \"Controls how lines should wrap.\")\n })),\n wordWrapBreakAfterCharacters: register(new EditorStringOption(133 /* EditorOption.wordWrapBreakAfterCharacters */, 'wordWrapBreakAfterCharacters', \n // allow-any-unicode-next-line\n ' \\t})]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」')),\n wordWrapBreakBeforeCharacters: register(new EditorStringOption(134 /* EditorOption.wordWrapBreakBeforeCharacters */, 'wordWrapBreakBeforeCharacters', \n // allow-any-unicode-next-line\n '([{‘“〈《「『【〔([{「£¥$£¥++')),\n wordWrapColumn: register(new EditorIntOption(135 /* EditorOption.wordWrapColumn */, 'wordWrapColumn', 80, 1, 1073741824 /* Constants.MAX_SAFE_SMALL_INTEGER */, {\n markdownDescription: nls.localize({\n key: 'wordWrapColumn',\n comment: [\n '- `editor.wordWrap` refers to a different setting and should not be localized.',\n '- \\'wordWrapColumn\\' and \\'bounded\\' refer to values the different setting can take and should not be localized.'\n ]\n }, \"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.\")\n })),\n wordWrapOverride1: register(new EditorStringEnumOption(136 /* EditorOption.wordWrapOverride1 */, 'wordWrapOverride1', 'inherit', ['off', 'on', 'inherit'])),\n wordWrapOverride2: register(new EditorStringEnumOption(137 /* EditorOption.wordWrapOverride2 */, 'wordWrapOverride2', 'inherit', ['off', 'on', 'inherit'])),\n // Leave these at the end (because they have dependencies!)\n editorClassName: register(new EditorClassName()),\n defaultColorDecorators: register(new EditorBooleanOption(147 /* EditorOption.defaultColorDecorators */, 'defaultColorDecorators', false, { markdownDescription: nls.localize('defaultColorDecorators', \"Controls whether inline color decorations should be shown using the default document color provider\") })),\n pixelRatio: register(new EditorPixelRatio()),\n tabFocusMode: register(new EditorBooleanOption(144 /* EditorOption.tabFocusMode */, 'tabFocusMode', false, { markdownDescription: nls.localize('tabFocusMode', \"Controls whether the editor receives tabs or defers them to the workbench for navigation.\") })),\n layoutInfo: register(new EditorLayoutInfoComputer()),\n wrappingInfo: register(new EditorWrappingInfoComputer()),\n wrappingIndent: register(new WrappingIndentOption()),\n wrappingStrategy: register(new WrappingStrategy())\n};\n","import { compare, compareIgnoreCase, compareSubstring, compareSubstringIgnoreCase } from './strings.js';\nexport class StringIterator {\n constructor() {\n this._value = '';\n this._pos = 0;\n }\n reset(key) {\n this._value = key;\n this._pos = 0;\n return this;\n }\n next() {\n this._pos += 1;\n return this;\n }\n hasNext() {\n return this._pos < this._value.length - 1;\n }\n cmp(a) {\n const aCode = a.charCodeAt(0);\n const thisCode = this._value.charCodeAt(this._pos);\n return aCode - thisCode;\n }\n value() {\n return this._value[this._pos];\n }\n}\nexport class ConfigKeysIterator {\n constructor(_caseSensitive = true) {\n this._caseSensitive = _caseSensitive;\n }\n reset(key) {\n this._value = key;\n this._from = 0;\n this._to = 0;\n return this.next();\n }\n hasNext() {\n return this._to < this._value.length;\n }\n next() {\n // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n this._from = this._to;\n let justSeps = true;\n for (; this._to < this._value.length; this._to++) {\n const ch = this._value.charCodeAt(this._to);\n if (ch === 46 /* CharCode.Period */) {\n if (justSeps) {\n this._from++;\n }\n else {\n break;\n }\n }\n else {\n justSeps = false;\n }\n }\n return this;\n }\n cmp(a) {\n return this._caseSensitive\n ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n }\n value() {\n return this._value.substring(this._from, this._to);\n }\n}\nexport class PathIterator {\n constructor(_splitOnBackslash = true, _caseSensitive = true) {\n this._splitOnBackslash = _splitOnBackslash;\n this._caseSensitive = _caseSensitive;\n }\n reset(key) {\n this._from = 0;\n this._to = 0;\n this._value = key;\n this._valueLen = key.length;\n for (let pos = key.length - 1; pos >= 0; pos--, this._valueLen--) {\n const ch = this._value.charCodeAt(pos);\n if (!(ch === 47 /* CharCode.Slash */ || this._splitOnBackslash && ch === 92 /* CharCode.Backslash */)) {\n break;\n }\n }\n return this.next();\n }\n hasNext() {\n return this._to < this._valueLen;\n }\n next() {\n // this._data = key.split(/[\\\\/]/).filter(s => !!s);\n this._from = this._to;\n let justSeps = true;\n for (; this._to < this._valueLen; this._to++) {\n const ch = this._value.charCodeAt(this._to);\n if (ch === 47 /* CharCode.Slash */ || this._splitOnBackslash && ch === 92 /* CharCode.Backslash */) {\n if (justSeps) {\n this._from++;\n }\n else {\n break;\n }\n }\n else {\n justSeps = false;\n }\n }\n return this;\n }\n cmp(a) {\n return this._caseSensitive\n ? compareSubstring(a, this._value, 0, a.length, this._from, this._to)\n : compareSubstringIgnoreCase(a, this._value, 0, a.length, this._from, this._to);\n }\n value() {\n return this._value.substring(this._from, this._to);\n }\n}\nexport class UriIterator {\n constructor(_ignorePathCasing, _ignoreQueryAndFragment) {\n this._ignorePathCasing = _ignorePathCasing;\n this._ignoreQueryAndFragment = _ignoreQueryAndFragment;\n this._states = [];\n this._stateIdx = 0;\n }\n reset(key) {\n this._value = key;\n this._states = [];\n if (this._value.scheme) {\n this._states.push(1 /* UriIteratorState.Scheme */);\n }\n if (this._value.authority) {\n this._states.push(2 /* UriIteratorState.Authority */);\n }\n if (this._value.path) {\n this._pathIterator = new PathIterator(false, !this._ignorePathCasing(key));\n this._pathIterator.reset(key.path);\n if (this._pathIterator.value()) {\n this._states.push(3 /* UriIteratorState.Path */);\n }\n }\n if (!this._ignoreQueryAndFragment(key)) {\n if (this._value.query) {\n this._states.push(4 /* UriIteratorState.Query */);\n }\n if (this._value.fragment) {\n this._states.push(5 /* UriIteratorState.Fragment */);\n }\n }\n this._stateIdx = 0;\n return this;\n }\n next() {\n if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */ && this._pathIterator.hasNext()) {\n this._pathIterator.next();\n }\n else {\n this._stateIdx += 1;\n }\n return this;\n }\n hasNext() {\n return (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */ && this._pathIterator.hasNext())\n || this._stateIdx < this._states.length - 1;\n }\n cmp(a) {\n if (this._states[this._stateIdx] === 1 /* UriIteratorState.Scheme */) {\n return compareIgnoreCase(a, this._value.scheme);\n }\n else if (this._states[this._stateIdx] === 2 /* UriIteratorState.Authority */) {\n return compareIgnoreCase(a, this._value.authority);\n }\n else if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */) {\n return this._pathIterator.cmp(a);\n }\n else if (this._states[this._stateIdx] === 4 /* UriIteratorState.Query */) {\n return compare(a, this._value.query);\n }\n else if (this._states[this._stateIdx] === 5 /* UriIteratorState.Fragment */) {\n return compare(a, this._value.fragment);\n }\n throw new Error();\n }\n value() {\n if (this._states[this._stateIdx] === 1 /* UriIteratorState.Scheme */) {\n return this._value.scheme;\n }\n else if (this._states[this._stateIdx] === 2 /* UriIteratorState.Authority */) {\n return this._value.authority;\n }\n else if (this._states[this._stateIdx] === 3 /* UriIteratorState.Path */) {\n return this._pathIterator.value();\n }\n else if (this._states[this._stateIdx] === 4 /* UriIteratorState.Query */) {\n return this._value.query;\n }\n else if (this._states[this._stateIdx] === 5 /* UriIteratorState.Fragment */) {\n return this._value.fragment;\n }\n throw new Error();\n }\n}\nclass TernarySearchTreeNode {\n constructor() {\n this.height = 1;\n }\n rotateLeft() {\n const tmp = this.right;\n this.right = tmp.left;\n tmp.left = this;\n this.updateHeight();\n tmp.updateHeight();\n return tmp;\n }\n rotateRight() {\n const tmp = this.left;\n this.left = tmp.right;\n tmp.right = this;\n this.updateHeight();\n tmp.updateHeight();\n return tmp;\n }\n updateHeight() {\n this.height = 1 + Math.max(this.heightLeft, this.heightRight);\n }\n balanceFactor() {\n return this.heightRight - this.heightLeft;\n }\n get heightLeft() {\n var _a, _b;\n return (_b = (_a = this.left) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;\n }\n get heightRight() {\n var _a, _b;\n return (_b = (_a = this.right) === null || _a === void 0 ? void 0 : _a.height) !== null && _b !== void 0 ? _b : 0;\n }\n}\nexport class TernarySearchTree {\n static forUris(ignorePathCasing = () => false, ignoreQueryAndFragment = () => false) {\n return new TernarySearchTree(new UriIterator(ignorePathCasing, ignoreQueryAndFragment));\n }\n static forStrings() {\n return new TernarySearchTree(new StringIterator());\n }\n static forConfigKeys() {\n return new TernarySearchTree(new ConfigKeysIterator());\n }\n constructor(segments) {\n this._iter = segments;\n }\n clear() {\n this._root = undefined;\n }\n set(key, element) {\n const iter = this._iter.reset(key);\n let node;\n if (!this._root) {\n this._root = new TernarySearchTreeNode();\n this._root.segment = iter.value();\n }\n const stack = [];\n // find insert_node\n node = this._root;\n while (true) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n if (!node.left) {\n node.left = new TernarySearchTreeNode();\n node.left.segment = iter.value();\n }\n stack.push([-1 /* Dir.Left */, node]);\n node = node.left;\n }\n else if (val < 0) {\n // right\n if (!node.right) {\n node.right = new TernarySearchTreeNode();\n node.right.segment = iter.value();\n }\n stack.push([1 /* Dir.Right */, node]);\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n if (!node.mid) {\n node.mid = new TernarySearchTreeNode();\n node.mid.segment = iter.value();\n }\n stack.push([0 /* Dir.Mid */, node]);\n node = node.mid;\n }\n else {\n break;\n }\n }\n // set value\n const oldElement = node.value;\n node.value = element;\n node.key = key;\n // balance\n for (let i = stack.length - 1; i >= 0; i--) {\n const node = stack[i][1];\n node.updateHeight();\n const bf = node.balanceFactor();\n if (bf < -1 || bf > 1) {\n // needs rotate\n const d1 = stack[i][0];\n const d2 = stack[i + 1][0];\n if (d1 === 1 /* Dir.Right */ && d2 === 1 /* Dir.Right */) {\n //right, right -> rotate left\n stack[i][1] = node.rotateLeft();\n }\n else if (d1 === -1 /* Dir.Left */ && d2 === -1 /* Dir.Left */) {\n // left, left -> rotate right\n stack[i][1] = node.rotateRight();\n }\n else if (d1 === 1 /* Dir.Right */ && d2 === -1 /* Dir.Left */) {\n // right, left -> double rotate right, left\n node.right = stack[i + 1][1] = stack[i + 1][1].rotateRight();\n stack[i][1] = node.rotateLeft();\n }\n else if (d1 === -1 /* Dir.Left */ && d2 === 1 /* Dir.Right */) {\n // left, right -> double rotate left, right\n node.left = stack[i + 1][1] = stack[i + 1][1].rotateLeft();\n stack[i][1] = node.rotateRight();\n }\n else {\n throw new Error();\n }\n // patch path to parent\n if (i > 0) {\n switch (stack[i - 1][0]) {\n case -1 /* Dir.Left */:\n stack[i - 1][1].left = stack[i][1];\n break;\n case 1 /* Dir.Right */:\n stack[i - 1][1].right = stack[i][1];\n break;\n case 0 /* Dir.Mid */:\n stack[i - 1][1].mid = stack[i][1];\n break;\n }\n }\n else {\n this._root = stack[0][1];\n }\n }\n }\n return oldElement;\n }\n get(key) {\n var _a;\n return (_a = this._getNode(key)) === null || _a === void 0 ? void 0 : _a.value;\n }\n _getNode(key) {\n const iter = this._iter.reset(key);\n let node = this._root;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n node = node.mid;\n }\n else {\n break;\n }\n }\n return node;\n }\n has(key) {\n const node = this._getNode(key);\n return !((node === null || node === void 0 ? void 0 : node.value) === undefined && (node === null || node === void 0 ? void 0 : node.mid) === undefined);\n }\n delete(key) {\n return this._delete(key, false);\n }\n deleteSuperstr(key) {\n return this._delete(key, true);\n }\n _delete(key, superStr) {\n var _a;\n const iter = this._iter.reset(key);\n const stack = [];\n let node = this._root;\n // find node\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n stack.push([-1 /* Dir.Left */, node]);\n node = node.left;\n }\n else if (val < 0) {\n // right\n stack.push([1 /* Dir.Right */, node]);\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n stack.push([0 /* Dir.Mid */, node]);\n node = node.mid;\n }\n else {\n break;\n }\n }\n if (!node) {\n // node not found\n return;\n }\n if (superStr) {\n // removing children, reset height\n node.left = undefined;\n node.mid = undefined;\n node.right = undefined;\n node.height = 1;\n }\n else {\n // removing element\n node.key = undefined;\n node.value = undefined;\n }\n // BST node removal\n if (!node.mid && !node.value) {\n if (node.left && node.right) {\n // full node\n // replace deleted-node with the min-node of the right branch.\n // If there is no true min-node leave things as they are\n const min = this._min(node.right);\n if (min.key) {\n const { key, value, segment } = min;\n this._delete(min.key, false);\n node.key = key;\n node.value = value;\n node.segment = segment;\n }\n }\n else {\n // empty or half empty\n const newChild = (_a = node.left) !== null && _a !== void 0 ? _a : node.right;\n if (stack.length > 0) {\n const [dir, parent] = stack[stack.length - 1];\n switch (dir) {\n case -1 /* Dir.Left */:\n parent.left = newChild;\n break;\n case 0 /* Dir.Mid */:\n parent.mid = newChild;\n break;\n case 1 /* Dir.Right */:\n parent.right = newChild;\n break;\n }\n }\n else {\n this._root = newChild;\n }\n }\n }\n // AVL balance\n for (let i = stack.length - 1; i >= 0; i--) {\n const node = stack[i][1];\n node.updateHeight();\n const bf = node.balanceFactor();\n if (bf > 1) {\n // right heavy\n if (node.right.balanceFactor() >= 0) {\n // right, right -> rotate left\n stack[i][1] = node.rotateLeft();\n }\n else {\n // right, left -> double rotate\n node.right = node.right.rotateRight();\n stack[i][1] = node.rotateLeft();\n }\n }\n else if (bf < -1) {\n // left heavy\n if (node.left.balanceFactor() <= 0) {\n // left, left -> rotate right\n stack[i][1] = node.rotateRight();\n }\n else {\n // left, right -> double rotate\n node.left = node.left.rotateLeft();\n stack[i][1] = node.rotateRight();\n }\n }\n // patch path to parent\n if (i > 0) {\n switch (stack[i - 1][0]) {\n case -1 /* Dir.Left */:\n stack[i - 1][1].left = stack[i][1];\n break;\n case 1 /* Dir.Right */:\n stack[i - 1][1].right = stack[i][1];\n break;\n case 0 /* Dir.Mid */:\n stack[i - 1][1].mid = stack[i][1];\n break;\n }\n }\n else {\n this._root = stack[0][1];\n }\n }\n }\n _min(node) {\n while (node.left) {\n node = node.left;\n }\n return node;\n }\n findSubstr(key) {\n const iter = this._iter.reset(key);\n let node = this._root;\n let candidate = undefined;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n candidate = node.value || candidate;\n node = node.mid;\n }\n else {\n break;\n }\n }\n return node && node.value || candidate;\n }\n findSuperstr(key) {\n return this._findSuperstrOrElement(key, false);\n }\n _findSuperstrOrElement(key, allowValue) {\n const iter = this._iter.reset(key);\n let node = this._root;\n while (node) {\n const val = iter.cmp(node.segment);\n if (val > 0) {\n // left\n node = node.left;\n }\n else if (val < 0) {\n // right\n node = node.right;\n }\n else if (iter.hasNext()) {\n // mid\n iter.next();\n node = node.mid;\n }\n else {\n // collect\n if (!node.mid) {\n if (allowValue) {\n return node.value;\n }\n else {\n return undefined;\n }\n }\n else {\n return this._entries(node.mid);\n }\n }\n }\n return undefined;\n }\n forEach(callback) {\n for (const [key, value] of this) {\n callback(value, key);\n }\n }\n *[Symbol.iterator]() {\n yield* this._entries(this._root);\n }\n _entries(node) {\n const result = [];\n this._dfsEntries(node, result);\n return result[Symbol.iterator]();\n }\n _dfsEntries(node, bucket) {\n // DFS\n if (!node) {\n return;\n }\n if (node.left) {\n this._dfsEntries(node.left, bucket);\n }\n if (node.value) {\n bucket.push([node.key, node.value]);\n }\n if (node.mid) {\n this._dfsEntries(node.mid, bucket);\n }\n if (node.right) {\n this._dfsEntries(node.right, bucket);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ResizableHTMLElement } from '../../../../base/browser/ui/resizable/resizable.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport * as dom from '../../../../base/browser/dom.js';\nconst TOP_HEIGHT = 30;\nconst BOTTOM_HEIGHT = 24;\nexport class ResizableContentWidget extends Disposable {\n constructor(_editor, minimumSize = new dom.Dimension(10, 10)) {\n super();\n this._editor = _editor;\n this.allowEditorOverflow = true;\n this.suppressMouseDown = false;\n this._resizableNode = this._register(new ResizableHTMLElement());\n this._contentPosition = null;\n this._isResizing = false;\n this._resizableNode.domNode.style.position = 'absolute';\n this._resizableNode.minSize = dom.Dimension.lift(minimumSize);\n this._resizableNode.layout(minimumSize.height, minimumSize.width);\n this._resizableNode.enableSashes(true, true, true, true);\n this._register(this._resizableNode.onDidResize(e => {\n this._resize(new dom.Dimension(e.dimension.width, e.dimension.height));\n if (e.done) {\n this._isResizing = false;\n }\n }));\n this._register(this._resizableNode.onDidWillResize(() => {\n this._isResizing = true;\n }));\n }\n get isResizing() {\n return this._isResizing;\n }\n getDomNode() {\n return this._resizableNode.domNode;\n }\n getPosition() {\n return this._contentPosition;\n }\n get position() {\n var _a;\n return ((_a = this._contentPosition) === null || _a === void 0 ? void 0 : _a.position) ? Position.lift(this._contentPosition.position) : undefined;\n }\n _availableVerticalSpaceAbove(position) {\n const editorDomNode = this._editor.getDomNode();\n const mouseBox = this._editor.getScrolledVisiblePosition(position);\n if (!editorDomNode || !mouseBox) {\n return;\n }\n const editorBox = dom.getDomNodePagePosition(editorDomNode);\n return editorBox.top + mouseBox.top - TOP_HEIGHT;\n }\n _availableVerticalSpaceBelow(position) {\n const editorDomNode = this._editor.getDomNode();\n const mouseBox = this._editor.getScrolledVisiblePosition(position);\n if (!editorDomNode || !mouseBox) {\n return;\n }\n const editorBox = dom.getDomNodePagePosition(editorDomNode);\n const bodyBox = dom.getClientArea(editorDomNode.ownerDocument.body);\n const mouseBottom = editorBox.top + mouseBox.top + mouseBox.height;\n return bodyBox.height - mouseBottom - BOTTOM_HEIGHT;\n }\n _findPositionPreference(widgetHeight, showAtPosition) {\n var _a, _b;\n const maxHeightBelow = Math.min((_a = this._availableVerticalSpaceBelow(showAtPosition)) !== null && _a !== void 0 ? _a : Infinity, widgetHeight);\n const maxHeightAbove = Math.min((_b = this._availableVerticalSpaceAbove(showAtPosition)) !== null && _b !== void 0 ? _b : Infinity, widgetHeight);\n const maxHeight = Math.min(Math.max(maxHeightAbove, maxHeightBelow), widgetHeight);\n const height = Math.min(widgetHeight, maxHeight);\n let renderingAbove;\n if (this._editor.getOption(60 /* EditorOption.hover */).above) {\n renderingAbove = height <= maxHeightAbove ? 1 /* ContentWidgetPositionPreference.ABOVE */ : 2 /* ContentWidgetPositionPreference.BELOW */;\n }\n else {\n renderingAbove = height <= maxHeightBelow ? 2 /* ContentWidgetPositionPreference.BELOW */ : 1 /* ContentWidgetPositionPreference.ABOVE */;\n }\n if (renderingAbove === 1 /* ContentWidgetPositionPreference.ABOVE */) {\n this._resizableNode.enableSashes(true, true, false, false);\n }\n else {\n this._resizableNode.enableSashes(false, true, true, false);\n }\n return renderingAbove;\n }\n _resize(dimension) {\n this._resizableNode.layout(dimension.height, dimension.width);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ContentHoverWidget_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { ResizableContentWidget } from './resizableContentWidget.js';\nimport { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { IAccessibilityService } from '../../../../platform/accessibility/common/accessibility.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { getHoverAccessibleViewHint, HoverWidget } from '../../../../base/browser/ui/hover/hoverWidget.js';\nconst HORIZONTAL_SCROLLING_BY = 30;\nconst CONTAINER_HEIGHT_PADDING = 6;\nlet ContentHoverWidget = ContentHoverWidget_1 = class ContentHoverWidget extends ResizableContentWidget {\n get isColorPickerVisible() {\n var _a;\n return Boolean((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.colorPicker);\n }\n get isVisibleFromKeyboard() {\n var _a;\n return (((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.source) === 1 /* HoverStartSource.Keyboard */);\n }\n get isVisible() {\n var _a;\n return (_a = this._hoverVisibleKey.get()) !== null && _a !== void 0 ? _a : false;\n }\n get isFocused() {\n var _a;\n return (_a = this._hoverFocusedKey.get()) !== null && _a !== void 0 ? _a : false;\n }\n constructor(editor, contextKeyService, _configurationService, _accessibilityService, _keybindingService) {\n const minimumHeight = editor.getOption(67 /* EditorOption.lineHeight */) + 8;\n const minimumWidth = 150;\n const minimumSize = new dom.Dimension(minimumWidth, minimumHeight);\n super(editor, minimumSize);\n this._configurationService = _configurationService;\n this._accessibilityService = _accessibilityService;\n this._keybindingService = _keybindingService;\n this._hover = this._register(new HoverWidget());\n this._minimumSize = minimumSize;\n this._hoverVisibleKey = EditorContextKeys.hoverVisible.bindTo(contextKeyService);\n this._hoverFocusedKey = EditorContextKeys.hoverFocused.bindTo(contextKeyService);\n dom.append(this._resizableNode.domNode, this._hover.containerDomNode);\n this._resizableNode.domNode.style.zIndex = '50';\n this._register(this._editor.onDidLayoutChange(() => {\n if (this.isVisible) {\n this._updateMaxDimensions();\n }\n }));\n this._register(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n this._updateFont();\n }\n }));\n const focusTracker = this._register(dom.trackFocus(this._resizableNode.domNode));\n this._register(focusTracker.onDidFocus(() => {\n this._hoverFocusedKey.set(true);\n }));\n this._register(focusTracker.onDidBlur(() => {\n this._hoverFocusedKey.set(false);\n }));\n this._setHoverData(undefined);\n this._editor.addContentWidget(this);\n }\n dispose() {\n var _a;\n super.dispose();\n (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.disposables.dispose();\n this._editor.removeContentWidget(this);\n }\n getId() {\n return ContentHoverWidget_1.ID;\n }\n static _applyDimensions(container, width, height) {\n const transformedWidth = typeof width === 'number' ? `${width}px` : width;\n const transformedHeight = typeof height === 'number' ? `${height}px` : height;\n container.style.width = transformedWidth;\n container.style.height = transformedHeight;\n }\n _setContentsDomNodeDimensions(width, height) {\n const contentsDomNode = this._hover.contentsDomNode;\n return ContentHoverWidget_1._applyDimensions(contentsDomNode, width, height);\n }\n _setContainerDomNodeDimensions(width, height) {\n const containerDomNode = this._hover.containerDomNode;\n return ContentHoverWidget_1._applyDimensions(containerDomNode, width, height);\n }\n _setHoverWidgetDimensions(width, height) {\n this._setContentsDomNodeDimensions(width, height);\n this._setContainerDomNodeDimensions(width, height);\n this._layoutContentWidget();\n }\n static _applyMaxDimensions(container, width, height) {\n const transformedWidth = typeof width === 'number' ? `${width}px` : width;\n const transformedHeight = typeof height === 'number' ? `${height}px` : height;\n container.style.maxWidth = transformedWidth;\n container.style.maxHeight = transformedHeight;\n }\n _setHoverWidgetMaxDimensions(width, height) {\n ContentHoverWidget_1._applyMaxDimensions(this._hover.contentsDomNode, width, height);\n ContentHoverWidget_1._applyMaxDimensions(this._hover.containerDomNode, width, height);\n this._hover.containerDomNode.style.setProperty('--vscode-hover-maxWidth', typeof width === 'number' ? `${width}px` : width);\n this._layoutContentWidget();\n }\n _setAdjustedHoverWidgetDimensions(size) {\n this._setHoverWidgetMaxDimensions('none', 'none');\n const width = size.width;\n const height = size.height;\n this._setHoverWidgetDimensions(width, height);\n }\n _updateResizableNodeMaxDimensions() {\n var _a, _b;\n const maxRenderingWidth = (_a = this._findMaximumRenderingWidth()) !== null && _a !== void 0 ? _a : Infinity;\n const maxRenderingHeight = (_b = this._findMaximumRenderingHeight()) !== null && _b !== void 0 ? _b : Infinity;\n this._resizableNode.maxSize = new dom.Dimension(maxRenderingWidth, maxRenderingHeight);\n this._setHoverWidgetMaxDimensions(maxRenderingWidth, maxRenderingHeight);\n }\n _resize(size) {\n var _a, _b;\n ContentHoverWidget_1._lastDimensions = new dom.Dimension(size.width, size.height);\n this._setAdjustedHoverWidgetDimensions(size);\n this._resizableNode.layout(size.height, size.width);\n this._updateResizableNodeMaxDimensions();\n this._hover.scrollbar.scanDomNode();\n this._editor.layoutContentWidget(this);\n (_b = (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.colorPicker) === null || _b === void 0 ? void 0 : _b.layout();\n }\n _findAvailableSpaceVertically() {\n var _a;\n const position = (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.showAtPosition;\n if (!position) {\n return;\n }\n return this._positionPreference === 1 /* ContentWidgetPositionPreference.ABOVE */ ?\n this._availableVerticalSpaceAbove(position)\n : this._availableVerticalSpaceBelow(position);\n }\n _findMaximumRenderingHeight() {\n const availableSpace = this._findAvailableSpaceVertically();\n if (!availableSpace) {\n return;\n }\n // Padding needed in order to stop the resizing down to a smaller height\n let maximumHeight = CONTAINER_HEIGHT_PADDING;\n Array.from(this._hover.contentsDomNode.children).forEach((hoverPart) => {\n maximumHeight += hoverPart.clientHeight;\n });\n return Math.min(availableSpace, maximumHeight);\n }\n _isHoverTextOverflowing() {\n // To find out if the text is overflowing, we will disable wrapping, check the widths, and then re-enable wrapping\n this._hover.containerDomNode.style.setProperty('--vscode-hover-whiteSpace', 'nowrap');\n this._hover.containerDomNode.style.setProperty('--vscode-hover-sourceWhiteSpace', 'nowrap');\n const overflowing = Array.from(this._hover.contentsDomNode.children).some((hoverElement) => {\n return hoverElement.scrollWidth > hoverElement.clientWidth;\n });\n this._hover.containerDomNode.style.removeProperty('--vscode-hover-whiteSpace');\n this._hover.containerDomNode.style.removeProperty('--vscode-hover-sourceWhiteSpace');\n return overflowing;\n }\n _findMaximumRenderingWidth() {\n if (!this._editor || !this._editor.hasModel()) {\n return;\n }\n const overflowing = this._isHoverTextOverflowing();\n const initialWidth = (typeof this._contentWidth === 'undefined'\n ? 0\n : this._contentWidth - 2 // - 2 for the borders\n );\n if (overflowing || this._hover.containerDomNode.clientWidth < initialWidth) {\n const bodyBoxWidth = dom.getClientArea(this._hover.containerDomNode.ownerDocument.body).width;\n const horizontalPadding = 14;\n return bodyBoxWidth - horizontalPadding;\n }\n else {\n return this._hover.containerDomNode.clientWidth + 2;\n }\n }\n isMouseGettingCloser(posx, posy) {\n if (!this._visibleData) {\n return false;\n }\n if (typeof this._visibleData.initialMousePosX === 'undefined'\n || typeof this._visibleData.initialMousePosY === 'undefined') {\n this._visibleData.initialMousePosX = posx;\n this._visibleData.initialMousePosY = posy;\n return false;\n }\n const widgetRect = dom.getDomNodePagePosition(this.getDomNode());\n if (typeof this._visibleData.closestMouseDistance === 'undefined') {\n this._visibleData.closestMouseDistance = computeDistanceFromPointToRectangle(this._visibleData.initialMousePosX, this._visibleData.initialMousePosY, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n }\n const distance = computeDistanceFromPointToRectangle(posx, posy, widgetRect.left, widgetRect.top, widgetRect.width, widgetRect.height);\n if (distance > this._visibleData.closestMouseDistance + 4 /* tolerance of 4 pixels */) {\n // The mouse is getting farther away\n return false;\n }\n this._visibleData.closestMouseDistance = Math.min(this._visibleData.closestMouseDistance, distance);\n return true;\n }\n _setHoverData(hoverData) {\n var _a;\n (_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.disposables.dispose();\n this._visibleData = hoverData;\n this._hoverVisibleKey.set(!!hoverData);\n this._hover.containerDomNode.classList.toggle('hidden', !hoverData);\n }\n _updateFont() {\n const { fontSize, lineHeight } = this._editor.getOption(50 /* EditorOption.fontInfo */);\n const contentsDomNode = this._hover.contentsDomNode;\n contentsDomNode.style.fontSize = `${fontSize}px`;\n contentsDomNode.style.lineHeight = `${lineHeight / fontSize}`;\n const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName('code'));\n codeClasses.forEach(node => this._editor.applyFontInfo(node));\n }\n _updateContent(node) {\n const contentsDomNode = this._hover.contentsDomNode;\n contentsDomNode.style.paddingBottom = '';\n contentsDomNode.textContent = '';\n contentsDomNode.appendChild(node);\n }\n _layoutContentWidget() {\n this._editor.layoutContentWidget(this);\n this._hover.onContentsChanged();\n }\n _updateMaxDimensions() {\n const height = Math.max(this._editor.getLayoutInfo().height / 4, 250, ContentHoverWidget_1._lastDimensions.height);\n const width = Math.max(this._editor.getLayoutInfo().width * 0.66, 500, ContentHoverWidget_1._lastDimensions.width);\n this._setHoverWidgetMaxDimensions(width, height);\n }\n _render(node, hoverData) {\n this._setHoverData(hoverData);\n this._updateFont();\n this._updateContent(node);\n this._updateMaxDimensions();\n this.onContentsChanged();\n // Simply force a synchronous render on the editor\n // such that the widget does not really render with left = '0px'\n this._editor.render();\n }\n getPosition() {\n var _a;\n if (!this._visibleData) {\n return null;\n }\n return {\n position: this._visibleData.showAtPosition,\n secondaryPosition: this._visibleData.showAtSecondaryPosition,\n positionAffinity: this._visibleData.isBeforeContent ? 3 /* PositionAffinity.LeftOfInjectedText */ : undefined,\n preference: [(_a = this._positionPreference) !== null && _a !== void 0 ? _a : 1 /* ContentWidgetPositionPreference.ABOVE */]\n };\n }\n showAt(node, hoverData) {\n var _a, _b, _c, _d;\n if (!this._editor || !this._editor.hasModel()) {\n return;\n }\n this._render(node, hoverData);\n const widgetHeight = dom.getTotalHeight(this._hover.containerDomNode);\n const widgetPosition = hoverData.showAtPosition;\n this._positionPreference = (_a = this._findPositionPreference(widgetHeight, widgetPosition)) !== null && _a !== void 0 ? _a : 1 /* ContentWidgetPositionPreference.ABOVE */;\n // See https://github.com/microsoft/vscode/issues/140339\n // TODO: Doing a second layout of the hover after force rendering the editor\n this.onContentsChanged();\n if (hoverData.stoleFocus) {\n this._hover.containerDomNode.focus();\n }\n (_b = hoverData.colorPicker) === null || _b === void 0 ? void 0 : _b.layout();\n // The aria label overrides the label, so if we add to it, add the contents of the hover\n const hoverFocused = this._hover.containerDomNode.ownerDocument.activeElement === this._hover.containerDomNode;\n const accessibleViewHint = hoverFocused && getHoverAccessibleViewHint(this._configurationService.getValue('accessibility.verbosity.hover') === true && this._accessibilityService.isScreenReaderOptimized(), (_d = (_c = this._keybindingService.lookupKeybinding('editor.action.accessibleView')) === null || _c === void 0 ? void 0 : _c.getAriaLabel()) !== null && _d !== void 0 ? _d : '');\n if (accessibleViewHint) {\n this._hover.contentsDomNode.ariaLabel = this._hover.contentsDomNode.textContent + ', ' + accessibleViewHint;\n }\n }\n hide() {\n if (!this._visibleData) {\n return;\n }\n const stoleFocus = this._visibleData.stoleFocus || this._hoverFocusedKey.get();\n this._setHoverData(undefined);\n this._resizableNode.maxSize = new dom.Dimension(Infinity, Infinity);\n this._resizableNode.clearSashHoverState();\n this._hoverFocusedKey.set(false);\n this._editor.layoutContentWidget(this);\n if (stoleFocus) {\n this._editor.focus();\n }\n }\n _removeConstraintsRenderNormally() {\n // Added because otherwise the initial size of the hover content is smaller than should be\n const layoutInfo = this._editor.getLayoutInfo();\n this._resizableNode.layout(layoutInfo.height, layoutInfo.width);\n this._setHoverWidgetDimensions('auto', 'auto');\n }\n setMinimumDimensions(dimensions) {\n // We combine the new minimum dimensions with the previous ones\n this._minimumSize = new dom.Dimension(Math.max(this._minimumSize.width, dimensions.width), Math.max(this._minimumSize.height, dimensions.height));\n this._updateMinimumWidth();\n }\n _updateMinimumWidth() {\n const width = (typeof this._contentWidth === 'undefined'\n ? this._minimumSize.width\n : Math.min(this._contentWidth, this._minimumSize.width));\n // We want to avoid that the hover is artificially large, so we use the content width as minimum width\n this._resizableNode.minSize = new dom.Dimension(width, this._minimumSize.height);\n }\n onContentsChanged() {\n var _a;\n this._removeConstraintsRenderNormally();\n const containerDomNode = this._hover.containerDomNode;\n let height = dom.getTotalHeight(containerDomNode);\n let width = dom.getTotalWidth(containerDomNode);\n this._resizableNode.layout(height, width);\n this._setHoverWidgetDimensions(width, height);\n height = dom.getTotalHeight(containerDomNode);\n width = dom.getTotalWidth(containerDomNode);\n this._contentWidth = width;\n this._updateMinimumWidth();\n this._resizableNode.layout(height, width);\n if ((_a = this._visibleData) === null || _a === void 0 ? void 0 : _a.showAtPosition) {\n const widgetHeight = dom.getTotalHeight(this._hover.containerDomNode);\n this._positionPreference = this._findPositionPreference(widgetHeight, this._visibleData.showAtPosition);\n }\n this._layoutContentWidget();\n }\n focus() {\n this._hover.containerDomNode.focus();\n }\n scrollUp() {\n const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - fontInfo.lineHeight });\n }\n scrollDown() {\n const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n const fontInfo = this._editor.getOption(50 /* EditorOption.fontInfo */);\n this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + fontInfo.lineHeight });\n }\n scrollLeft() {\n const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft - HORIZONTAL_SCROLLING_BY });\n }\n scrollRight() {\n const scrollLeft = this._hover.scrollbar.getScrollPosition().scrollLeft;\n this._hover.scrollbar.setScrollPosition({ scrollLeft: scrollLeft + HORIZONTAL_SCROLLING_BY });\n }\n pageUp() {\n const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop - scrollHeight });\n }\n pageDown() {\n const scrollTop = this._hover.scrollbar.getScrollPosition().scrollTop;\n const scrollHeight = this._hover.scrollbar.getScrollDimensions().height;\n this._hover.scrollbar.setScrollPosition({ scrollTop: scrollTop + scrollHeight });\n }\n goToTop() {\n this._hover.scrollbar.setScrollPosition({ scrollTop: 0 });\n }\n goToBottom() {\n this._hover.scrollbar.setScrollPosition({ scrollTop: this._hover.scrollbar.getScrollDimensions().scrollHeight });\n }\n};\nContentHoverWidget.ID = 'editor.contrib.resizableContentHoverWidget';\nContentHoverWidget._lastDimensions = new dom.Dimension(0, 0);\nContentHoverWidget = ContentHoverWidget_1 = __decorate([\n __param(1, IContextKeyService),\n __param(2, IConfigurationService),\n __param(3, IAccessibilityService),\n __param(4, IKeybindingService)\n], ContentHoverWidget);\nexport { ContentHoverWidget };\nfunction computeDistanceFromPointToRectangle(pointX, pointY, left, top, width, height) {\n const x = (left + width / 2); // x center of rectangle\n const y = (top + height / 2); // y center of rectangle\n const dx = Math.max(Math.abs(pointX - x) - width / 2, 0);\n const dy = Math.max(Math.abs(pointY - y) - height / 2, 0);\n return Math.sqrt(dx * dx + dy * dy);\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createCancelableAsyncIterable, RunOnceScheduler } from '../../../../base/common/async.js';\nimport { onUnexpectedError } from '../../../../base/common/errors.js';\nimport { Emitter } from '../../../../base/common/event.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nexport class HoverResult {\n constructor(value, isComplete, hasLoadingMessage) {\n this.value = value;\n this.isComplete = isComplete;\n this.hasLoadingMessage = hasLoadingMessage;\n }\n}\n/**\n * Computing the hover is very fine tuned.\n *\n * Suppose the hover delay is 300ms (the default). Then, when resting the mouse at an anchor:\n * - at 150ms, the async computation is triggered (i.e. semantic hover)\n * - if async results already come in, they are not rendered yet.\n * - at 300ms, the sync computation is triggered (i.e. decorations, markers)\n * - if there are sync or async results, they are rendered.\n * - at 900ms, if the async computation hasn't finished, a \"Loading...\" result is added.\n */\nexport class HoverOperation extends Disposable {\n constructor(_editor, _computer) {\n super();\n this._editor = _editor;\n this._computer = _computer;\n this._onResult = this._register(new Emitter());\n this.onResult = this._onResult.event;\n this._firstWaitScheduler = this._register(new RunOnceScheduler(() => this._triggerAsyncComputation(), 0));\n this._secondWaitScheduler = this._register(new RunOnceScheduler(() => this._triggerSyncComputation(), 0));\n this._loadingMessageScheduler = this._register(new RunOnceScheduler(() => this._triggerLoadingMessage(), 0));\n this._state = 0 /* HoverOperationState.Idle */;\n this._asyncIterable = null;\n this._asyncIterableDone = false;\n this._result = [];\n }\n dispose() {\n if (this._asyncIterable) {\n this._asyncIterable.cancel();\n this._asyncIterable = null;\n }\n super.dispose();\n }\n get _hoverTime() {\n return this._editor.getOption(60 /* EditorOption.hover */).delay;\n }\n get _firstWaitTime() {\n return this._hoverTime / 2;\n }\n get _secondWaitTime() {\n return this._hoverTime - this._firstWaitTime;\n }\n get _loadingMessageTime() {\n return 3 * this._hoverTime;\n }\n _setState(state, fireResult = true) {\n this._state = state;\n if (fireResult) {\n this._fireResult();\n }\n }\n _triggerAsyncComputation() {\n this._setState(2 /* HoverOperationState.SecondWait */);\n this._secondWaitScheduler.schedule(this._secondWaitTime);\n if (this._computer.computeAsync) {\n this._asyncIterableDone = false;\n this._asyncIterable = createCancelableAsyncIterable(token => this._computer.computeAsync(token));\n (async () => {\n try {\n for await (const item of this._asyncIterable) {\n if (item) {\n this._result.push(item);\n this._fireResult();\n }\n }\n this._asyncIterableDone = true;\n if (this._state === 3 /* HoverOperationState.WaitingForAsync */ || this._state === 4 /* HoverOperationState.WaitingForAsyncShowingLoading */) {\n this._setState(0 /* HoverOperationState.Idle */);\n }\n }\n catch (e) {\n onUnexpectedError(e);\n }\n })();\n }\n else {\n this._asyncIterableDone = true;\n }\n }\n _triggerSyncComputation() {\n if (this._computer.computeSync) {\n this._result = this._result.concat(this._computer.computeSync());\n }\n this._setState(this._asyncIterableDone ? 0 /* HoverOperationState.Idle */ : 3 /* HoverOperationState.WaitingForAsync */);\n }\n _triggerLoadingMessage() {\n if (this._state === 3 /* HoverOperationState.WaitingForAsync */) {\n this._setState(4 /* HoverOperationState.WaitingForAsyncShowingLoading */);\n }\n }\n _fireResult() {\n if (this._state === 1 /* HoverOperationState.FirstWait */ || this._state === 2 /* HoverOperationState.SecondWait */) {\n // Do not send out results before the hover time\n return;\n }\n const isComplete = (this._state === 0 /* HoverOperationState.Idle */);\n const hasLoadingMessage = (this._state === 4 /* HoverOperationState.WaitingForAsyncShowingLoading */);\n this._onResult.fire(new HoverResult(this._result.slice(0), isComplete, hasLoadingMessage));\n }\n start(mode) {\n if (mode === 0 /* HoverStartMode.Delayed */) {\n if (this._state === 0 /* HoverOperationState.Idle */) {\n this._setState(1 /* HoverOperationState.FirstWait */);\n this._firstWaitScheduler.schedule(this._firstWaitTime);\n this._loadingMessageScheduler.schedule(this._loadingMessageTime);\n }\n }\n else {\n switch (this._state) {\n case 0 /* HoverOperationState.Idle */:\n this._triggerAsyncComputation();\n this._secondWaitScheduler.cancel();\n this._triggerSyncComputation();\n break;\n case 2 /* HoverOperationState.SecondWait */:\n this._secondWaitScheduler.cancel();\n this._triggerSyncComputation();\n break;\n }\n }\n }\n cancel() {\n this._firstWaitScheduler.cancel();\n this._secondWaitScheduler.cancel();\n this._loadingMessageScheduler.cancel();\n if (this._asyncIterable) {\n this._asyncIterable.cancel();\n this._asyncIterable = null;\n }\n this._result = [];\n this._setState(0 /* HoverOperationState.Idle */, false);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { AsyncIterableObject } from '../../../../base/common/async.js';\nexport class ContentHoverComputer {\n get anchor() { return this._anchor; }\n set anchor(value) { this._anchor = value; }\n get shouldFocus() { return this._shouldFocus; }\n set shouldFocus(value) { this._shouldFocus = value; }\n get source() { return this._source; }\n set source(value) { this._source = value; }\n get insistOnKeepingHoverVisible() { return this._insistOnKeepingHoverVisible; }\n set insistOnKeepingHoverVisible(value) { this._insistOnKeepingHoverVisible = value; }\n constructor(_editor, _participants) {\n this._editor = _editor;\n this._participants = _participants;\n this._anchor = null;\n this._shouldFocus = false;\n this._source = 0 /* HoverStartSource.Mouse */;\n this._insistOnKeepingHoverVisible = false;\n }\n static _getLineDecorations(editor, anchor) {\n if (anchor.type !== 1 /* HoverAnchorType.Range */ && !anchor.supportsMarkerHover) {\n return [];\n }\n const model = editor.getModel();\n const lineNumber = anchor.range.startLineNumber;\n if (lineNumber > model.getLineCount()) {\n // invalid line\n return [];\n }\n const maxColumn = model.getLineMaxColumn(lineNumber);\n return editor.getLineDecorations(lineNumber).filter((d) => {\n if (d.options.isWholeLine) {\n return true;\n }\n const startColumn = (d.range.startLineNumber === lineNumber) ? d.range.startColumn : 1;\n const endColumn = (d.range.endLineNumber === lineNumber) ? d.range.endColumn : maxColumn;\n if (d.options.showIfCollapsed) {\n // Relax check around `showIfCollapsed` decorations to also include +/- 1 character\n if (startColumn > anchor.range.startColumn + 1 || anchor.range.endColumn - 1 > endColumn) {\n return false;\n }\n }\n else {\n if (startColumn > anchor.range.startColumn || anchor.range.endColumn > endColumn) {\n return false;\n }\n }\n return true;\n });\n }\n computeAsync(token) {\n const anchor = this._anchor;\n if (!this._editor.hasModel() || !anchor) {\n return AsyncIterableObject.EMPTY;\n }\n const lineDecorations = ContentHoverComputer._getLineDecorations(this._editor, anchor);\n return AsyncIterableObject.merge(this._participants.map((participant) => {\n if (!participant.computeAsync) {\n return AsyncIterableObject.EMPTY;\n }\n return participant.computeAsync(anchor, lineDecorations, token);\n }));\n }\n computeSync() {\n if (!this._editor.hasModel() || !this._anchor) {\n return [];\n }\n const lineDecorations = ContentHoverComputer._getLineDecorations(this._editor, this._anchor);\n let result = [];\n for (const participant of this._participants) {\n result = result.concat(participant.computeSync(this._anchor, lineDecorations));\n }\n return coalesce(result);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class HoverResult {\n constructor(anchor, messages, isComplete) {\n this.anchor = anchor;\n this.messages = messages;\n this.isComplete = isComplete;\n }\n filter(anchor) {\n const filteredMessages = this.messages.filter((m) => m.isValidForHoverAnchor(anchor));\n if (filteredMessages.length === this.messages.length) {\n return this;\n }\n return new FilteredHoverResult(this, this.anchor, filteredMessages, this.isComplete);\n }\n}\nexport class FilteredHoverResult extends HoverResult {\n constructor(original, anchor, messages, isComplete) {\n super(anchor, messages, isComplete);\n this.original = original;\n }\n filter(anchor) {\n return this.original.filter(anchor);\n }\n}\nexport class ContentHoverVisibleData {\n constructor(initialMousePosX, initialMousePosY, colorPicker, showAtPosition, showAtSecondaryPosition, preferAbove, stoleFocus, source, isBeforeContent, disposables) {\n this.initialMousePosX = initialMousePosX;\n this.initialMousePosY = initialMousePosY;\n this.colorPicker = colorPicker;\n this.showAtPosition = showAtPosition;\n this.showAtSecondaryPosition = showAtSecondaryPosition;\n this.preferAbove = preferAbove;\n this.stoleFocus = stoleFocus;\n this.source = source;\n this.isBeforeContent = isBeforeContent;\n this.disposables = disposables;\n this.closestMouseDistance = undefined;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ContentHoverController_1;\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable, DisposableStore, toDisposable } from '../../../../base/common/lifecycle.js';\nimport { Position } from '../../../common/core/position.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ModelDecorationOptions } from '../../../common/model/textModel.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { HoverOperation } from './hoverOperation.js';\nimport { HoverParticipantRegistry, HoverRangeAnchor } from './hoverTypes.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { MarkdownHoverParticipant } from './markdownHoverParticipant.js';\nimport { InlayHintsHover } from '../../inlayHints/browser/inlayHintsHover.js';\nimport { ContentHoverWidget } from './contentHoverWidget.js';\nimport { ContentHoverComputer } from './contentHoverComputer.js';\nimport { ContentHoverVisibleData, HoverResult } from './contentHoverTypes.js';\nimport { EditorHoverStatusBar } from './contentHoverStatusBar.js';\nimport { Emitter } from '../../../../base/common/event.js';\nlet ContentHoverController = ContentHoverController_1 = class ContentHoverController extends Disposable {\n constructor(_editor, _instantiationService, _keybindingService) {\n super();\n this._editor = _editor;\n this._instantiationService = _instantiationService;\n this._keybindingService = _keybindingService;\n this._currentResult = null;\n this._onContentsChanged = this._register(new Emitter());\n this.onContentsChanged = this._onContentsChanged.event;\n this._widget = this._register(this._instantiationService.createInstance(ContentHoverWidget, this._editor));\n // Instantiate participants and sort them by `hoverOrdinal` which is relevant for rendering order.\n this._participants = [];\n for (const participant of HoverParticipantRegistry.getAll()) {\n const participantInstance = this._instantiationService.createInstance(participant, this._editor);\n if (participantInstance instanceof MarkdownHoverParticipant && !(participantInstance instanceof InlayHintsHover)) {\n this._markdownHoverParticipant = participantInstance;\n }\n this._participants.push(participantInstance);\n }\n this._participants.sort((p1, p2) => p1.hoverOrdinal - p2.hoverOrdinal);\n this._computer = new ContentHoverComputer(this._editor, this._participants);\n this._hoverOperation = this._register(new HoverOperation(this._editor, this._computer));\n this._register(this._hoverOperation.onResult((result) => {\n if (!this._computer.anchor) {\n // invalid state, ignore result\n return;\n }\n const messages = (result.hasLoadingMessage ? this._addLoadingMessage(result.value) : result.value);\n this._withResult(new HoverResult(this._computer.anchor, messages, result.isComplete));\n }));\n this._register(dom.addStandardDisposableListener(this._widget.getDomNode(), 'keydown', (e) => {\n if (e.equals(9 /* KeyCode.Escape */)) {\n this.hide();\n }\n }));\n this._register(TokenizationRegistry.onDidChange(() => {\n if (this._widget.position && this._currentResult) {\n this._setCurrentResult(this._currentResult); // render again\n }\n }));\n }\n /**\n * Returns true if the hover shows now or will show.\n */\n _startShowingOrUpdateHover(anchor, mode, source, focus, mouseEvent) {\n if (!this._widget.position || !this._currentResult) {\n // The hover is not visible\n if (anchor) {\n this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n return true;\n }\n return false;\n }\n // The hover is currently visible\n const isHoverSticky = this._editor.getOption(60 /* EditorOption.hover */).sticky;\n const isGettingCloser = (isHoverSticky\n && mouseEvent\n && this._widget.isMouseGettingCloser(mouseEvent.event.posx, mouseEvent.event.posy));\n if (isGettingCloser) {\n // The mouse is getting closer to the hover, so we will keep the hover untouched\n // But we will kick off a hover update at the new anchor, insisting on keeping the hover visible.\n if (anchor) {\n this._startHoverOperationIfNecessary(anchor, mode, source, focus, true);\n }\n return true;\n }\n if (!anchor) {\n this._setCurrentResult(null);\n return false;\n }\n if (anchor && this._currentResult.anchor.equals(anchor)) {\n // The widget is currently showing results for the exact same anchor, so no update is needed\n return true;\n }\n if (!anchor.canAdoptVisibleHover(this._currentResult.anchor, this._widget.position)) {\n // The new anchor is not compatible with the previous anchor\n this._setCurrentResult(null);\n this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n return true;\n }\n // We aren't getting any closer to the hover, so we will filter existing results\n // and keep those which also apply to the new anchor.\n this._setCurrentResult(this._currentResult.filter(anchor));\n this._startHoverOperationIfNecessary(anchor, mode, source, focus, false);\n return true;\n }\n _startHoverOperationIfNecessary(anchor, mode, source, focus, insistOnKeepingHoverVisible) {\n if (this._computer.anchor && this._computer.anchor.equals(anchor)) {\n // We have to start a hover operation at the exact same anchor as before, so no work is needed\n return;\n }\n this._hoverOperation.cancel();\n this._computer.anchor = anchor;\n this._computer.shouldFocus = focus;\n this._computer.source = source;\n this._computer.insistOnKeepingHoverVisible = insistOnKeepingHoverVisible;\n this._hoverOperation.start(mode);\n }\n _setCurrentResult(hoverResult) {\n if (this._currentResult === hoverResult) {\n // avoid updating the DOM to avoid resetting the user selection\n return;\n }\n if (hoverResult && hoverResult.messages.length === 0) {\n hoverResult = null;\n }\n this._currentResult = hoverResult;\n if (this._currentResult) {\n this._renderMessages(this._currentResult.anchor, this._currentResult.messages);\n }\n else {\n this._widget.hide();\n }\n }\n _addLoadingMessage(result) {\n if (this._computer.anchor) {\n for (const participant of this._participants) {\n if (participant.createLoadingMessage) {\n const loadingMessage = participant.createLoadingMessage(this._computer.anchor);\n if (loadingMessage) {\n return result.slice(0).concat([loadingMessage]);\n }\n }\n }\n }\n return result;\n }\n _withResult(hoverResult) {\n if (this._widget.position && this._currentResult && this._currentResult.isComplete) {\n // The hover is visible with a previous complete result.\n if (!hoverResult.isComplete) {\n // Instead of rendering the new partial result, we wait for the result to be complete.\n return;\n }\n if (this._computer.insistOnKeepingHoverVisible && hoverResult.messages.length === 0) {\n // The hover would now hide normally, so we'll keep the previous messages\n return;\n }\n }\n this._setCurrentResult(hoverResult);\n }\n _renderMessages(anchor, messages) {\n const { showAtPosition, showAtSecondaryPosition, highlightRange } = ContentHoverController_1.computeHoverRanges(this._editor, anchor.range, messages);\n const disposables = new DisposableStore();\n const statusBar = disposables.add(new EditorHoverStatusBar(this._keybindingService));\n const fragment = document.createDocumentFragment();\n let colorPicker = null;\n const context = {\n fragment,\n statusBar,\n setColorPicker: (widget) => colorPicker = widget,\n onContentsChanged: () => this._doOnContentsChanged(),\n setMinimumDimensions: (dimensions) => this._widget.setMinimumDimensions(dimensions),\n hide: () => this.hide()\n };\n for (const participant of this._participants) {\n const hoverParts = messages.filter(msg => msg.owner === participant);\n if (hoverParts.length > 0) {\n disposables.add(participant.renderHoverParts(context, hoverParts));\n }\n }\n const isBeforeContent = messages.some(m => m.isBeforeContent);\n if (statusBar.hasContent) {\n fragment.appendChild(statusBar.hoverElement);\n }\n if (fragment.hasChildNodes()) {\n if (highlightRange) {\n const highlightDecoration = this._editor.createDecorationsCollection();\n highlightDecoration.set([{\n range: highlightRange,\n options: ContentHoverController_1._DECORATION_OPTIONS\n }]);\n disposables.add(toDisposable(() => {\n highlightDecoration.clear();\n }));\n }\n this._widget.showAt(fragment, new ContentHoverVisibleData(anchor.initialMousePosX, anchor.initialMousePosY, colorPicker, showAtPosition, showAtSecondaryPosition, this._editor.getOption(60 /* EditorOption.hover */).above, this._computer.shouldFocus, this._computer.source, isBeforeContent, disposables));\n }\n else {\n disposables.dispose();\n }\n }\n _doOnContentsChanged() {\n this._onContentsChanged.fire();\n this._widget.onContentsChanged();\n }\n static computeHoverRanges(editor, anchorRange, messages) {\n let startColumnBoundary = 1;\n if (editor.hasModel()) {\n // Ensure the range is on the current view line\n const viewModel = editor._getViewModel();\n const coordinatesConverter = viewModel.coordinatesConverter;\n const anchorViewRange = coordinatesConverter.convertModelRangeToViewRange(anchorRange);\n const anchorViewRangeStart = new Position(anchorViewRange.startLineNumber, viewModel.getLineMinColumn(anchorViewRange.startLineNumber));\n startColumnBoundary = coordinatesConverter.convertViewPositionToModelPosition(anchorViewRangeStart).column;\n }\n // The anchor range is always on a single line\n const anchorLineNumber = anchorRange.startLineNumber;\n let renderStartColumn = anchorRange.startColumn;\n let highlightRange = messages[0].range;\n let forceShowAtRange = null;\n for (const msg of messages) {\n highlightRange = Range.plusRange(highlightRange, msg.range);\n if (msg.range.startLineNumber === anchorLineNumber && msg.range.endLineNumber === anchorLineNumber) {\n // this message has a range that is completely sitting on the line of the anchor\n renderStartColumn = Math.max(Math.min(renderStartColumn, msg.range.startColumn), startColumnBoundary);\n }\n if (msg.forceShowAtRange) {\n forceShowAtRange = msg.range;\n }\n }\n const showAtPosition = forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchorLineNumber, anchorRange.startColumn);\n const showAtSecondaryPosition = forceShowAtRange ? forceShowAtRange.getStartPosition() : new Position(anchorLineNumber, renderStartColumn);\n return {\n showAtPosition,\n showAtSecondaryPosition,\n highlightRange\n };\n }\n showsOrWillShow(mouseEvent) {\n if (this._widget.isResizing) {\n return true;\n }\n const anchorCandidates = [];\n for (const participant of this._participants) {\n if (participant.suggestHoverAnchor) {\n const anchor = participant.suggestHoverAnchor(mouseEvent);\n if (anchor) {\n anchorCandidates.push(anchor);\n }\n }\n }\n const target = mouseEvent.target;\n if (target.type === 6 /* MouseTargetType.CONTENT_TEXT */) {\n anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n }\n if (target.type === 7 /* MouseTargetType.CONTENT_EMPTY */) {\n const epsilon = this._editor.getOption(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth / 2;\n if (!target.detail.isAfterLines\n && typeof target.detail.horizontalDistanceToText === 'number'\n && target.detail.horizontalDistanceToText < epsilon) {\n // Let hover kick in even when the mouse is technically in the empty area after a line, given the distance is small enough\n anchorCandidates.push(new HoverRangeAnchor(0, target.range, mouseEvent.event.posx, mouseEvent.event.posy));\n }\n }\n if (anchorCandidates.length === 0) {\n return this._startShowingOrUpdateHover(null, 0 /* HoverStartMode.Delayed */, 0 /* HoverStartSource.Mouse */, false, mouseEvent);\n }\n anchorCandidates.sort((a, b) => b.priority - a.priority);\n return this._startShowingOrUpdateHover(anchorCandidates[0], 0 /* HoverStartMode.Delayed */, 0 /* HoverStartSource.Mouse */, false, mouseEvent);\n }\n startShowingAtRange(range, mode, source, focus) {\n this._startShowingOrUpdateHover(new HoverRangeAnchor(0, range, undefined, undefined), mode, source, focus, null);\n }\n async updateMarkdownHoverVerbosityLevel(action, index, focus) {\n var _a;\n (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.updateMarkdownHoverVerbosityLevel(action, index, focus);\n }\n markdownHoverContentAtIndex(index) {\n var _a, _b;\n return (_b = (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.markdownHoverContentAtIndex(index)) !== null && _b !== void 0 ? _b : '';\n }\n doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n var _a, _b;\n return (_b = (_a = this._markdownHoverParticipant) === null || _a === void 0 ? void 0 : _a.doesMarkdownHoverAtIndexSupportVerbosityAction(index, action)) !== null && _b !== void 0 ? _b : false;\n }\n containsNode(node) {\n return (node ? this._widget.getDomNode().contains(node) : false);\n }\n focus() {\n this._widget.focus();\n }\n scrollUp() {\n this._widget.scrollUp();\n }\n scrollDown() {\n this._widget.scrollDown();\n }\n scrollLeft() {\n this._widget.scrollLeft();\n }\n scrollRight() {\n this._widget.scrollRight();\n }\n pageUp() {\n this._widget.pageUp();\n }\n pageDown() {\n this._widget.pageDown();\n }\n goToTop() {\n this._widget.goToTop();\n }\n goToBottom() {\n this._widget.goToBottom();\n }\n hide() {\n this._computer.anchor = null;\n this._hoverOperation.cancel();\n this._setCurrentResult(null);\n }\n get isColorPickerVisible() {\n return this._widget.isColorPickerVisible;\n }\n get isVisibleFromKeyboard() {\n return this._widget.isVisibleFromKeyboard;\n }\n get isVisible() {\n return this._widget.isVisible;\n }\n get isFocused() {\n return this._widget.isFocused;\n }\n get isResizing() {\n return this._widget.isResizing;\n }\n get widget() {\n return this._widget;\n }\n};\nContentHoverController._DECORATION_OPTIONS = ModelDecorationOptions.register({\n description: 'content-hover-highlight',\n className: 'hoverHighlight'\n});\nContentHoverController = ContentHoverController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IKeybindingService)\n], ContentHoverController);\nexport { ContentHoverController };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { asArray } from '../../../../base/common/arrays.js';\nimport { isEmptyMarkdownString } from '../../../../base/common/htmlContent.js';\nimport { GlyphMarginLane } from '../../../common/model.js';\nexport class MarginHoverComputer {\n get lineNumber() {\n return this._lineNumber;\n }\n set lineNumber(value) {\n this._lineNumber = value;\n }\n get lane() {\n return this._laneOrLine;\n }\n set lane(value) {\n this._laneOrLine = value;\n }\n constructor(_editor) {\n this._editor = _editor;\n this._lineNumber = -1;\n this._laneOrLine = GlyphMarginLane.Center;\n }\n computeSync() {\n var _a, _b;\n const toHoverMessage = (contents) => {\n return {\n value: contents\n };\n };\n const lineDecorations = this._editor.getLineDecorations(this._lineNumber);\n const result = [];\n const isLineHover = this._laneOrLine === 'lineNo';\n if (!lineDecorations) {\n return result;\n }\n for (const d of lineDecorations) {\n const lane = (_b = (_a = d.options.glyphMargin) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : GlyphMarginLane.Center;\n if (!isLineHover && lane !== this._laneOrLine) {\n continue;\n }\n const hoverMessage = isLineHover ? d.options.lineNumberHoverMessage : d.options.glyphMarginHoverMessage;\n if (!hoverMessage || isEmptyMarkdownString(hoverMessage)) {\n continue;\n }\n result.push(...asArray(hoverMessage).map(toHoverMessage));\n }\n return result;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { MarkdownRenderer } from '../../../browser/widget/markdownRenderer/browser/markdownRenderer.js';\nimport { HoverOperation } from './hoverOperation.js';\nimport { HoverWidget } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { MarginHoverComputer } from './marginHoverComputer.js';\nconst $ = dom.$;\nexport class MarginHoverWidget extends Disposable {\n constructor(editor, languageService, openerService) {\n super();\n this._renderDisposeables = this._register(new DisposableStore());\n this._editor = editor;\n this._isVisible = false;\n this._messages = [];\n this._hover = this._register(new HoverWidget());\n this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n this._markdownRenderer = this._register(new MarkdownRenderer({ editor: this._editor }, languageService, openerService));\n this._computer = new MarginHoverComputer(this._editor);\n this._hoverOperation = this._register(new HoverOperation(this._editor, this._computer));\n this._register(this._hoverOperation.onResult((result) => {\n this._withResult(result.value);\n }));\n this._register(this._editor.onDidChangeModelDecorations(() => this._onModelDecorationsChanged()));\n this._register(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(50 /* EditorOption.fontInfo */)) {\n this._updateFont();\n }\n }));\n this._editor.addOverlayWidget(this);\n }\n dispose() {\n this._editor.removeOverlayWidget(this);\n super.dispose();\n }\n getId() {\n return MarginHoverWidget.ID;\n }\n getDomNode() {\n return this._hover.containerDomNode;\n }\n getPosition() {\n return null;\n }\n _updateFont() {\n const codeClasses = Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName('code'));\n codeClasses.forEach(node => this._editor.applyFontInfo(node));\n }\n _onModelDecorationsChanged() {\n if (this._isVisible) {\n // The decorations have changed and the hover is visible,\n // we need to recompute the displayed text\n this._hoverOperation.cancel();\n this._hoverOperation.start(0 /* HoverStartMode.Delayed */);\n }\n }\n showsOrWillShow(mouseEvent) {\n const target = mouseEvent.target;\n if (target.type === 2 /* MouseTargetType.GUTTER_GLYPH_MARGIN */ && target.detail.glyphMarginLane) {\n this._startShowingAt(target.position.lineNumber, target.detail.glyphMarginLane);\n return true;\n }\n if (target.type === 3 /* MouseTargetType.GUTTER_LINE_NUMBERS */) {\n this._startShowingAt(target.position.lineNumber, 'lineNo');\n return true;\n }\n return false;\n }\n _startShowingAt(lineNumber, laneOrLine) {\n if (this._computer.lineNumber === lineNumber && this._computer.lane === laneOrLine) {\n // We have to show the widget at the exact same line number as before, so no work is needed\n return;\n }\n this._hoverOperation.cancel();\n this.hide();\n this._computer.lineNumber = lineNumber;\n this._computer.lane = laneOrLine;\n this._hoverOperation.start(0 /* HoverStartMode.Delayed */);\n }\n hide() {\n this._computer.lineNumber = -1;\n this._hoverOperation.cancel();\n if (!this._isVisible) {\n return;\n }\n this._isVisible = false;\n this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n }\n _withResult(result) {\n this._messages = result;\n if (this._messages.length > 0) {\n this._renderMessages(this._computer.lineNumber, this._messages);\n }\n else {\n this.hide();\n }\n }\n _renderMessages(lineNumber, messages) {\n this._renderDisposeables.clear();\n const fragment = document.createDocumentFragment();\n for (const msg of messages) {\n const markdownHoverElement = $('div.hover-row.markdown-hover');\n const hoverContentsElement = dom.append(markdownHoverElement, $('div.hover-contents'));\n const renderedContents = this._renderDisposeables.add(this._markdownRenderer.render(msg.value));\n hoverContentsElement.appendChild(renderedContents.element);\n fragment.appendChild(markdownHoverElement);\n }\n this._updateContents(fragment);\n this._showAt(lineNumber);\n }\n _updateContents(node) {\n this._hover.contentsDomNode.textContent = '';\n this._hover.contentsDomNode.appendChild(node);\n this._updateFont();\n }\n _showAt(lineNumber) {\n if (!this._isVisible) {\n this._isVisible = true;\n this._hover.containerDomNode.classList.toggle('hidden', !this._isVisible);\n }\n const editorLayout = this._editor.getLayoutInfo();\n const topForLineNumber = this._editor.getTopForLineNumber(lineNumber);\n const editorScrollTop = this._editor.getScrollTop();\n const lineHeight = this._editor.getOption(67 /* EditorOption.lineHeight */);\n const nodeHeight = this._hover.containerDomNode.clientHeight;\n const top = topForLineNumber - editorScrollTop - ((nodeHeight - lineHeight) / 2);\n const left = editorLayout.glyphMarginLeft + editorLayout.glyphMarginWidth + (this._computer.lane === 'lineNo' ? editorLayout.lineNumbersWidth : 0);\n this._hover.containerDomNode.style.left = `${left}px`;\n this._hover.containerDomNode.style.top = `${Math.max(Math.round(top), 0)}px`;\n }\n}\nMarginHoverWidget.ID = 'editor.contrib.modesGlyphHoverWidget';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar HoverController_1;\nimport { DECREASE_HOVER_VERBOSITY_ACTION_ID, INCREASE_HOVER_VERBOSITY_ACTION_ID, SHOW_OR_FOCUS_HOVER_ACTION_ID } from './hoverActionIds.js';\nimport { Disposable, DisposableStore } from '../../../../base/common/lifecycle.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { InlineSuggestionHintsContentWidget } from '../../inlineCompletions/browser/inlineCompletionsHintsWidget.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nimport { RunOnceScheduler } from '../../../../base/common/async.js';\nimport { ContentHoverWidget } from './contentHoverWidget.js';\nimport { ContentHoverController } from './contentHoverController.js';\nimport './hover.css';\nimport { MarginHoverWidget } from './marginHoverWidget.js';\nimport { Emitter } from '../../../../base/common/event.js';\n// sticky hover widget which doesn't disappear on focus out and such\nconst _sticky = false;\nlet HoverController = HoverController_1 = class HoverController extends Disposable {\n constructor(_editor, _instantiationService, _keybindingService) {\n super();\n this._editor = _editor;\n this._instantiationService = _instantiationService;\n this._keybindingService = _keybindingService;\n this._onHoverContentsChanged = this._register(new Emitter());\n this.shouldKeepOpenOnEditorMouseMoveOrLeave = false;\n this._listenersStore = new DisposableStore();\n this._hoverState = {\n mouseDown: false,\n activatedByDecoratorClick: false\n };\n this._reactToEditorMouseMoveRunner = this._register(new RunOnceScheduler(() => this._reactToEditorMouseMove(this._mouseMoveEvent), 0));\n this._hookListeners();\n this._register(this._editor.onDidChangeConfiguration((e) => {\n if (e.hasChanged(60 /* EditorOption.hover */)) {\n this._unhookListeners();\n this._hookListeners();\n }\n }));\n }\n static get(editor) {\n return editor.getContribution(HoverController_1.ID);\n }\n _hookListeners() {\n const hoverOpts = this._editor.getOption(60 /* EditorOption.hover */);\n this._hoverSettings = {\n enabled: hoverOpts.enabled,\n sticky: hoverOpts.sticky,\n hidingDelay: hoverOpts.delay\n };\n if (hoverOpts.enabled) {\n this._listenersStore.add(this._editor.onMouseDown((e) => this._onEditorMouseDown(e)));\n this._listenersStore.add(this._editor.onMouseUp(() => this._onEditorMouseUp()));\n this._listenersStore.add(this._editor.onMouseMove((e) => this._onEditorMouseMove(e)));\n this._listenersStore.add(this._editor.onKeyDown((e) => this._onKeyDown(e)));\n }\n else {\n this._listenersStore.add(this._editor.onMouseMove((e) => this._onEditorMouseMove(e)));\n this._listenersStore.add(this._editor.onKeyDown((e) => this._onKeyDown(e)));\n }\n this._listenersStore.add(this._editor.onMouseLeave((e) => this._onEditorMouseLeave(e)));\n this._listenersStore.add(this._editor.onDidChangeModel(() => {\n this._cancelScheduler();\n this._hideWidgets();\n }));\n this._listenersStore.add(this._editor.onDidChangeModelContent(() => this._cancelScheduler()));\n this._listenersStore.add(this._editor.onDidScrollChange((e) => this._onEditorScrollChanged(e)));\n }\n _unhookListeners() {\n this._listenersStore.clear();\n }\n _cancelScheduler() {\n this._mouseMoveEvent = undefined;\n this._reactToEditorMouseMoveRunner.cancel();\n }\n _onEditorScrollChanged(e) {\n if (e.scrollTopChanged || e.scrollLeftChanged) {\n this._hideWidgets();\n }\n }\n _onEditorMouseDown(mouseEvent) {\n this._hoverState.mouseDown = true;\n const shouldNotHideCurrentHoverWidget = this._shouldNotHideCurrentHoverWidget(mouseEvent);\n if (shouldNotHideCurrentHoverWidget) {\n return;\n }\n this._hideWidgets();\n }\n _shouldNotHideCurrentHoverWidget(mouseEvent) {\n if (this._isMouseOnContentHoverWidget(mouseEvent)\n || this._isMouseOnMarginHoverWidget(mouseEvent)\n || this._isContentWidgetResizing()) {\n return true;\n }\n return false;\n }\n _isMouseOnMarginHoverWidget(mouseEvent) {\n const target = mouseEvent.target;\n if (!target) {\n return false;\n }\n return target.type === 12 /* MouseTargetType.OVERLAY_WIDGET */ && target.detail === MarginHoverWidget.ID;\n }\n _isMouseOnContentHoverWidget(mouseEvent) {\n const target = mouseEvent.target;\n if (!target) {\n return false;\n }\n return target.type === 9 /* MouseTargetType.CONTENT_WIDGET */ && target.detail === ContentHoverWidget.ID;\n }\n _onEditorMouseUp() {\n this._hoverState.mouseDown = false;\n }\n _onEditorMouseLeave(mouseEvent) {\n if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n return;\n }\n this._cancelScheduler();\n const shouldNotHideCurrentHoverWidget = this._shouldNotHideCurrentHoverWidget(mouseEvent);\n if (shouldNotHideCurrentHoverWidget) {\n return;\n }\n if (_sticky) {\n return;\n }\n this._hideWidgets();\n }\n _shouldNotRecomputeCurrentHoverWidget(mouseEvent) {\n const isHoverSticky = this._hoverSettings.sticky;\n const isMouseOnStickyMarginHoverWidget = (mouseEvent, isHoverSticky) => {\n const isMouseOnMarginHoverWidget = this._isMouseOnMarginHoverWidget(mouseEvent);\n return isHoverSticky && isMouseOnMarginHoverWidget;\n };\n const isMouseOnStickyContentHoverWidget = (mouseEvent, isHoverSticky) => {\n const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent);\n return isHoverSticky && isMouseOnContentHoverWidget;\n };\n const isMouseOnColorPicker = (mouseEvent) => {\n var _a;\n const isMouseOnContentHoverWidget = this._isMouseOnContentHoverWidget(mouseEvent);\n const isColorPickerVisible = (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible;\n return isMouseOnContentHoverWidget && isColorPickerVisible;\n };\n // TODO@aiday-mar verify if the following is necessary code\n const isTextSelectedWithinContentHoverWidget = (mouseEvent, sticky) => {\n var _a, _b, _c, _d;\n return sticky\n && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.containsNode((_b = mouseEvent.event.browserEvent.view) === null || _b === void 0 ? void 0 : _b.document.activeElement))\n && !((_d = (_c = mouseEvent.event.browserEvent.view) === null || _c === void 0 ? void 0 : _c.getSelection()) === null || _d === void 0 ? void 0 : _d.isCollapsed);\n };\n if (isMouseOnStickyMarginHoverWidget(mouseEvent, isHoverSticky)\n || isMouseOnStickyContentHoverWidget(mouseEvent, isHoverSticky)\n || isMouseOnColorPicker(mouseEvent)\n || isTextSelectedWithinContentHoverWidget(mouseEvent, isHoverSticky)) {\n return true;\n }\n return false;\n }\n _onEditorMouseMove(mouseEvent) {\n var _a, _b, _c, _d;\n if (this.shouldKeepOpenOnEditorMouseMoveOrLeave) {\n return;\n }\n this._mouseMoveEvent = mouseEvent;\n if (((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isFocused) || ((_b = this._contentWidget) === null || _b === void 0 ? void 0 : _b.isResizing)) {\n return;\n }\n const sticky = this._hoverSettings.sticky;\n if (sticky && ((_c = this._contentWidget) === null || _c === void 0 ? void 0 : _c.isVisibleFromKeyboard)) {\n // Sticky mode is on and the hover has been shown via keyboard\n // so moving the mouse has no effect\n return;\n }\n const shouldNotRecomputeCurrentHoverWidget = this._shouldNotRecomputeCurrentHoverWidget(mouseEvent);\n if (shouldNotRecomputeCurrentHoverWidget) {\n this._reactToEditorMouseMoveRunner.cancel();\n return;\n }\n const hidingDelay = this._hoverSettings.hidingDelay;\n const isContentHoverWidgetVisible = (_d = this._contentWidget) === null || _d === void 0 ? void 0 : _d.isVisible;\n // If the mouse is not over the widget, and if sticky is on,\n // then give it a grace period before reacting to the mouse event\n const shouldRescheduleHoverComputation = isContentHoverWidgetVisible && sticky && hidingDelay > 0;\n if (shouldRescheduleHoverComputation) {\n if (!this._reactToEditorMouseMoveRunner.isScheduled()) {\n this._reactToEditorMouseMoveRunner.schedule(hidingDelay);\n }\n return;\n }\n this._reactToEditorMouseMove(mouseEvent);\n }\n _reactToEditorMouseMove(mouseEvent) {\n var _a;\n if (!mouseEvent) {\n return;\n }\n const target = mouseEvent.target;\n const mouseOnDecorator = (_a = target.element) === null || _a === void 0 ? void 0 : _a.classList.contains('colorpicker-color-decoration');\n const decoratorActivatedOn = this._editor.getOption(148 /* EditorOption.colorDecoratorsActivatedOn */);\n const enabled = this._hoverSettings.enabled;\n const activatedByDecoratorClick = this._hoverState.activatedByDecoratorClick;\n if ((mouseOnDecorator && ((decoratorActivatedOn === 'click' && !activatedByDecoratorClick) ||\n (decoratorActivatedOn === 'hover' && !enabled && !_sticky) ||\n (decoratorActivatedOn === 'clickAndHover' && !enabled && !activatedByDecoratorClick))) || (!mouseOnDecorator && !enabled && !activatedByDecoratorClick)) {\n this._hideWidgets();\n return;\n }\n const contentHoverShowsOrWillShow = this._tryShowHoverWidget(mouseEvent, 0 /* HoverWidgetType.Content */);\n if (contentHoverShowsOrWillShow) {\n return;\n }\n const glyphWidgetShowsOrWillShow = this._tryShowHoverWidget(mouseEvent, 1 /* HoverWidgetType.Glyph */);\n if (glyphWidgetShowsOrWillShow) {\n return;\n }\n if (_sticky) {\n return;\n }\n this._hideWidgets();\n }\n _tryShowHoverWidget(mouseEvent, hoverWidgetType) {\n const contentWidget = this._getOrCreateContentWidget();\n const glyphWidget = this._getOrCreateGlyphWidget();\n let currentWidget;\n let otherWidget;\n switch (hoverWidgetType) {\n case 0 /* HoverWidgetType.Content */:\n currentWidget = contentWidget;\n otherWidget = glyphWidget;\n break;\n case 1 /* HoverWidgetType.Glyph */:\n currentWidget = glyphWidget;\n otherWidget = contentWidget;\n break;\n default:\n throw new Error(`HoverWidgetType ${hoverWidgetType} is unrecognized`);\n }\n const showsOrWillShow = currentWidget.showsOrWillShow(mouseEvent);\n if (showsOrWillShow) {\n otherWidget.hide();\n }\n return showsOrWillShow;\n }\n _onKeyDown(e) {\n var _a;\n if (!this._editor.hasModel()) {\n return;\n }\n const resolvedKeyboardEvent = this._keybindingService.softDispatch(e, this._editor.getDomNode());\n // If the beginning of a multi-chord keybinding is pressed,\n // or the command aims to focus the hover,\n // set the variable to true, otherwise false\n const shouldKeepHoverVisible = (resolvedKeyboardEvent.kind === 1 /* ResultKind.MoreChordsNeeded */ ||\n (resolvedKeyboardEvent.kind === 2 /* ResultKind.KbFound */\n && (resolvedKeyboardEvent.commandId === SHOW_OR_FOCUS_HOVER_ACTION_ID\n || resolvedKeyboardEvent.commandId === INCREASE_HOVER_VERBOSITY_ACTION_ID\n || resolvedKeyboardEvent.commandId === DECREASE_HOVER_VERBOSITY_ACTION_ID)\n && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isVisible)));\n if (e.keyCode === 5 /* KeyCode.Ctrl */\n || e.keyCode === 6 /* KeyCode.Alt */\n || e.keyCode === 57 /* KeyCode.Meta */\n || e.keyCode === 4 /* KeyCode.Shift */\n || shouldKeepHoverVisible) {\n // Do not hide hover when a modifier key is pressed\n return;\n }\n this._hideWidgets();\n }\n _hideWidgets() {\n var _a, _b, _c;\n if (_sticky) {\n return;\n }\n if ((this._hoverState.mouseDown\n && ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible)) || InlineSuggestionHintsContentWidget.dropDownVisible) {\n return;\n }\n this._hoverState.activatedByDecoratorClick = false;\n (_b = this._glyphWidget) === null || _b === void 0 ? void 0 : _b.hide();\n (_c = this._contentWidget) === null || _c === void 0 ? void 0 : _c.hide();\n }\n _getOrCreateContentWidget() {\n if (!this._contentWidget) {\n this._contentWidget = this._instantiationService.createInstance(ContentHoverController, this._editor);\n this._listenersStore.add(this._contentWidget.onContentsChanged(() => this._onHoverContentsChanged.fire()));\n }\n return this._contentWidget;\n }\n _getOrCreateGlyphWidget() {\n if (!this._glyphWidget) {\n this._glyphWidget = this._instantiationService.createInstance(MarginHoverWidget, this._editor);\n }\n return this._glyphWidget;\n }\n showContentHover(range, mode, source, focus, activatedByColorDecoratorClick = false) {\n this._hoverState.activatedByDecoratorClick = activatedByColorDecoratorClick;\n this._getOrCreateContentWidget().startShowingAtRange(range, mode, source, focus);\n }\n _isContentWidgetResizing() {\n var _a;\n return ((_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.widget.isResizing) || false;\n }\n markdownHoverContentAtIndex(index) {\n return this._getOrCreateContentWidget().markdownHoverContentAtIndex(index);\n }\n doesMarkdownHoverAtIndexSupportVerbosityAction(index, action) {\n return this._getOrCreateContentWidget().doesMarkdownHoverAtIndexSupportVerbosityAction(index, action);\n }\n updateMarkdownHoverVerbosityLevel(action, index, focus) {\n this._getOrCreateContentWidget().updateMarkdownHoverVerbosityLevel(action, index, focus);\n }\n focus() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.focus();\n }\n scrollUp() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollUp();\n }\n scrollDown() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollDown();\n }\n scrollLeft() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollLeft();\n }\n scrollRight() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.scrollRight();\n }\n pageUp() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.pageUp();\n }\n pageDown() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.pageDown();\n }\n goToTop() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.goToTop();\n }\n goToBottom() {\n var _a;\n (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.goToBottom();\n }\n get isColorPickerVisible() {\n var _a;\n return (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isColorPickerVisible;\n }\n get isHoverVisible() {\n var _a;\n return (_a = this._contentWidget) === null || _a === void 0 ? void 0 : _a.isVisible;\n }\n dispose() {\n var _a, _b;\n super.dispose();\n this._unhookListeners();\n this._listenersStore.dispose();\n (_a = this._glyphWidget) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this._contentWidget) === null || _b === void 0 ? void 0 : _b.dispose();\n }\n};\nHoverController.ID = 'editor.contrib.hover';\nHoverController = HoverController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IKeybindingService)\n], HoverController);\nexport { HoverController };\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as editorCommon from '../common/editorCommon.js';\n/**\n *@internal\n */\nexport function isCodeEditor(thing) {\n if (thing && typeof thing.getEditorType === 'function') {\n return thing.getEditorType() === editorCommon.EditorType.ICodeEditor;\n }\n else {\n return false;\n }\n}\n/**\n *@internal\n */\nexport function isDiffEditor(thing) {\n if (thing && typeof thing.getEditorType === 'function') {\n return thing.getEditorType() === editorCommon.EditorType.IDiffEditor;\n }\n else {\n return false;\n }\n}\n/**\n *@internal\n */\nexport function isCompositeEditor(thing) {\n return !!thing\n && typeof thing === 'object'\n && typeof thing.onDidChangeActiveEditor === 'function';\n}\n/**\n *@internal\n */\nexport function getCodeEditor(thing) {\n if (isCodeEditor(thing)) {\n return thing;\n }\n if (isDiffEditor(thing)) {\n return thing.getModifiedEditor();\n }\n if (isCompositeEditor(thing) && isCodeEditor(thing.activeCodeEditor)) {\n return thing.activeCodeEditor;\n }\n return null;\n}\n","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as dom from '../../../../base/browser/dom.js';\nimport { HoverAction } from '../../../../base/browser/ui/hover/hoverWidget.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { IKeybindingService } from '../../../../platform/keybinding/common/keybinding.js';\nconst $ = dom.$;\nlet EditorHoverStatusBar = class EditorHoverStatusBar extends Disposable {\n get hasContent() {\n return this._hasContent;\n }\n constructor(_keybindingService) {\n super();\n this._keybindingService = _keybindingService;\n this._hasContent = false;\n this.hoverElement = $('div.hover-row.status-bar');\n this.hoverElement.tabIndex = 0;\n this.actionsElement = dom.append(this.hoverElement, $('div.actions'));\n }\n addAction(actionOptions) {\n const keybinding = this._keybindingService.lookupKeybinding(actionOptions.commandId);\n const keybindingLabel = keybinding ? keybinding.getLabel() : null;\n this._hasContent = true;\n return this._register(HoverAction.render(this.actionsElement, actionOptions, keybindingLabel));\n }\n append(element) {\n const result = dom.append(this.actionsElement, element);\n this._hasContent = true;\n return result;\n }\n};\nEditorHoverStatusBar = __decorate([\n __param(0, IKeybindingService)\n], EditorHoverStatusBar);\nexport { EditorHoverStatusBar };\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { SyncDescriptor } from './descriptors.js';\nconst _registry = [];\nexport function registerSingleton(id, ctorOrDescriptor, supportsDelayedInstantiation) {\n if (!(ctorOrDescriptor instanceof SyncDescriptor)) {\n ctorOrDescriptor = new SyncDescriptor(ctorOrDescriptor, [], Boolean(supportsDelayedInstantiation));\n }\n _registry.push([id, ctorOrDescriptor]);\n}\nexport function getSingletonServiceDescriptors() {\n return _registry;\n}\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { $, addDisposableListener, append, getWindow, scheduleAtNextAnimationFrame } from '../../dom.js';\nimport { DomEmitter } from '../../event.js';\nimport { Sash } from '../sash/sash.js';\nimport { SmoothScrollableElement } from '../scrollbar/scrollableElement.js';\nimport { pushToEnd, pushToStart, range } from '../../../common/arrays.js';\nimport { Color } from '../../../common/color.js';\nimport { Emitter, Event } from '../../../common/event.js';\nimport { combinedDisposable, Disposable, dispose, toDisposable } from '../../../common/lifecycle.js';\nimport { clamp } from '../../../common/numbers.js';\nimport { Scrollable } from '../../../common/scrollable.js';\nimport * as types from '../../../common/types.js';\nimport './splitview.css';\nconst defaultStyles = {\n separatorBorder: Color.transparent\n};\nclass ViewItem {\n set size(size) {\n this._size = size;\n }\n get size() {\n return this._size;\n }\n get visible() {\n return typeof this._cachedVisibleSize === 'undefined';\n }\n setVisible(visible, size) {\n var _a, _b;\n if (visible === this.visible) {\n return;\n }\n if (visible) {\n this.size = clamp(this._cachedVisibleSize, this.viewMinimumSize, this.viewMaximumSize);\n this._cachedVisibleSize = undefined;\n }\n else {\n this._cachedVisibleSize = typeof size === 'number' ? size : this.size;\n this.size = 0;\n }\n this.container.classList.toggle('visible', visible);\n try {\n (_b = (_a = this.view).setVisible) === null || _b === void 0 ? void 0 : _b.call(_a, visible);\n }\n catch (e) {\n console.error('Splitview: Failed to set visible view');\n console.error(e);\n }\n }\n get minimumSize() { return this.visible ? this.view.minimumSize : 0; }\n get viewMinimumSize() { return this.view.minimumSize; }\n get maximumSize() { return this.visible ? this.view.maximumSize : 0; }\n get viewMaximumSize() { return this.view.maximumSize; }\n get priority() { return this.view.priority; }\n get proportionalLayout() { var _a; return (_a = this.view.proportionalLayout) !== null && _a !== void 0 ? _a : true; }\n get snap() { return !!this.view.snap; }\n set enabled(enabled) {\n this.container.style.pointerEvents = enabled ? '' : 'none';\n }\n constructor(container, view, size, disposable) {\n this.container = container;\n this.view = view;\n this.disposable = disposable;\n this._cachedVisibleSize = undefined;\n if (typeof size === 'number') {\n this._size = size;\n this._cachedVisibleSize = undefined;\n container.classList.add('visible');\n }\n else {\n this._size = 0;\n this._cachedVisibleSize = size.cachedVisibleSize;\n }\n }\n layout(offset, layoutContext) {\n this.layoutContainer(offset);\n try {\n this.view.layout(this.size, offset, layoutContext);\n }\n catch (e) {\n console.error('Splitview: Failed to layout view');\n console.error(e);\n }\n }\n dispose() {\n this.disposable.dispose();\n }\n}\nclass VerticalViewItem extends ViewItem {\n layoutContainer(offset) {\n this.container.style.top = `${offset}px`;\n this.container.style.height = `${this.size}px`;\n }\n}\nclass HorizontalViewItem extends ViewItem {\n layoutContainer(offset) {\n this.container.style.left = `${offset}px`;\n this.container.style.width = `${this.size}px`;\n }\n}\nvar State;\n(function (State) {\n State[State[\"Idle\"] = 0] = \"Idle\";\n State[State[\"Busy\"] = 1] = \"Busy\";\n})(State || (State = {}));\nexport var Sizing;\n(function (Sizing) {\n /**\n * When adding or removing views, distribute the delta space among\n * all other views.\n */\n Sizing.Distribute = { type: 'distribute' };\n /**\n * When adding or removing views, split the delta space with another\n * specific view, indexed by the provided `index`.\n */\n function Split(index) { return { type: 'split', index }; }\n Sizing.Split = Split;\n /**\n * When adding a view, use DistributeSizing when all pre-existing views are\n * distributed evenly, otherwise use SplitSizing.\n */\n function Auto(index) { return { type: 'auto', index }; }\n Sizing.Auto = Auto;\n /**\n * When adding or removing views, assume the view is invisible.\n */\n function Invisible(cachedVisibleSize) { return { type: 'invisible', cachedVisibleSize }; }\n Sizing.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\n/**\n * The {@link SplitView} is the UI component which implements a one dimensional\n * flex-like layout algorithm for a collection of {@link IView} instances, which\n * are essentially HTMLElement instances with the following size constraints:\n *\n * - {@link IView.minimumSize}\n * - {@link IView.maximumSize}\n * - {@link IView.priority}\n * - {@link IView.snap}\n *\n * In case the SplitView doesn't have enough size to fit all views, it will overflow\n * its content with a scrollbar.\n *\n * In between each pair of views there will be a {@link Sash} allowing the user\n * to resize the views, making sure the constraints are respected.\n *\n * An optional {@link TLayoutContext layout context type} may be used in order to\n * pass along layout contextual data from the {@link SplitView.layout} method down\n * to each view's {@link IView.layout} calls.\n *\n * Features:\n * - Flex-like layout algorithm\n * - Snap support\n * - Orthogonal sash support, for corner sashes\n * - View hide/show support\n * - View swap/move support\n * - Alt key modifier behavior, macOS style\n */\nexport class SplitView extends Disposable {\n get orthogonalStartSash() { return this._orthogonalStartSash; }\n get orthogonalEndSash() { return this._orthogonalEndSash; }\n get startSnappingEnabled() { return this._startSnappingEnabled; }\n get endSnappingEnabled() { return this._endSnappingEnabled; }\n /**\n * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n * located at the left- or top-most side of the SplitView.\n * Corner sashes will be created automatically at the intersections.\n */\n set orthogonalStartSash(sash) {\n for (const sashItem of this.sashItems) {\n sashItem.sash.orthogonalStartSash = sash;\n }\n this._orthogonalStartSash = sash;\n }\n /**\n * A reference to a sash, perpendicular to all sashes in this {@link SplitView},\n * located at the right- or bottom-most side of the SplitView.\n * Corner sashes will be created automatically at the intersections.\n */\n set orthogonalEndSash(sash) {\n for (const sashItem of this.sashItems) {\n sashItem.sash.orthogonalEndSash = sash;\n }\n this._orthogonalEndSash = sash;\n }\n /**\n * Enable/disable snapping at the beginning of this {@link SplitView}.\n */\n set startSnappingEnabled(startSnappingEnabled) {\n if (this._startSnappingEnabled === startSnappingEnabled) {\n return;\n }\n this._startSnappingEnabled = startSnappingEnabled;\n this.updateSashEnablement();\n }\n /**\n * Enable/disable snapping at the end of this {@link SplitView}.\n */\n set endSnappingEnabled(endSnappingEnabled) {\n if (this._endSnappingEnabled === endSnappingEnabled) {\n return;\n }\n this._endSnappingEnabled = endSnappingEnabled;\n this.updateSashEnablement();\n }\n /**\n * Create a new {@link SplitView} instance.\n */\n constructor(container, options = {}) {\n var _a, _b, _c, _d, _e;\n super();\n this.size = 0;\n this._contentSize = 0;\n this.proportions = undefined;\n this.viewItems = [];\n this.sashItems = []; // used in tests\n this.state = State.Idle;\n this._onDidSashChange = this._register(new Emitter());\n this._onDidSashReset = this._register(new Emitter());\n this._startSnappingEnabled = true;\n this._endSnappingEnabled = true;\n /**\n * Fires whenever the user resizes a {@link Sash sash}.\n */\n this.onDidSashChange = this._onDidSashChange.event;\n /**\n * Fires whenever the user double clicks a {@link Sash sash}.\n */\n this.onDidSashReset = this._onDidSashReset.event;\n this.orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : 0 /* Orientation.VERTICAL */;\n this.inverseAltBehavior = (_b = options.inverseAltBehavior) !== null && _b !== void 0 ? _b : false;\n this.proportionalLayout = (_c = options.proportionalLayout) !== null && _c !== void 0 ? _c : true;\n this.getSashOrthogonalSize = options.getSashOrthogonalSize;\n this.el = document.createElement('div');\n this.el.classList.add('monaco-split-view2');\n this.el.classList.add(this.orientation === 0 /* Orientation.VERTICAL */ ? 'vertical' : 'horizontal');\n container.appendChild(this.el);\n this.sashContainer = append(this.el, $('.sash-container'));\n this.viewContainer = $('.split-view-container');\n this.scrollable = this._register(new Scrollable({\n forceIntegerValues: true,\n smoothScrollDuration: 125,\n scheduleAtNextAnimationFrame: callback => scheduleAtNextAnimationFrame(getWindow(this.el), callback),\n }));\n this.scrollableElement = this._register(new SmoothScrollableElement(this.viewContainer, {\n vertical: this.orientation === 0 /* Orientation.VERTICAL */ ? ((_d = options.scrollbarVisibility) !== null && _d !== void 0 ? _d : 1 /* ScrollbarVisibility.Auto */) : 2 /* ScrollbarVisibility.Hidden */,\n horizontal: this.orientation === 1 /* Orientation.HORIZONTAL */ ? ((_e = options.scrollbarVisibility) !== null && _e !== void 0 ? _e : 1 /* ScrollbarVisibility.Auto */) : 2 /* ScrollbarVisibility.Hidden */\n }, this.scrollable));\n // https://github.com/microsoft/vscode/issues/157737\n const onDidScrollViewContainer = this._register(new DomEmitter(this.viewContainer, 'scroll')).event;\n this._register(onDidScrollViewContainer(_ => {\n const position = this.scrollableElement.getScrollPosition();\n const scrollLeft = Math.abs(this.viewContainer.scrollLeft - position.scrollLeft) <= 1 ? undefined : this.viewContainer.scrollLeft;\n const scrollTop = Math.abs(this.viewContainer.scrollTop - position.scrollTop) <= 1 ? undefined : this.viewContainer.scrollTop;\n if (scrollLeft !== undefined || scrollTop !== undefined) {\n this.scrollableElement.setScrollPosition({ scrollLeft, scrollTop });\n }\n }));\n this.onDidScroll = this.scrollableElement.onScroll;\n this._register(this.onDidScroll(e => {\n if (e.scrollTopChanged) {\n this.viewContainer.scrollTop = e.scrollTop;\n }\n if (e.scrollLeftChanged) {\n this.viewContainer.scrollLeft = e.scrollLeft;\n }\n }));\n append(this.el, this.scrollableElement.getDomNode());\n this.style(options.styles || defaultStyles);\n // We have an existing set of view, add them now\n if (options.descriptor) {\n this.size = options.descriptor.size;\n options.descriptor.views.forEach((viewDescriptor, index) => {\n const sizing = types.isUndefined(viewDescriptor.visible) || viewDescriptor.visible ? viewDescriptor.size : { type: 'invisible', cachedVisibleSize: viewDescriptor.size };\n const view = viewDescriptor.view;\n this.doAddView(view, sizing, index, true);\n });\n // Initialize content size and proportions for first layout\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.saveProportions();\n }\n }\n style(styles) {\n if (styles.separatorBorder.isTransparent()) {\n this.el.classList.remove('separator-border');\n this.el.style.removeProperty('--separator-border');\n }\n else {\n this.el.classList.add('separator-border');\n this.el.style.setProperty('--separator-border', styles.separatorBorder.toString());\n }\n }\n /**\n * Add a {@link IView view} to this {@link SplitView}.\n *\n * @param view The view to add.\n * @param size Either a fixed size, or a dynamic {@link Sizing} strategy.\n * @param index The index to insert the view on.\n * @param skipLayout Whether layout should be skipped.\n */\n addView(view, size, index = this.viewItems.length, skipLayout) {\n this.doAddView(view, size, index, skipLayout);\n }\n /**\n * Layout the {@link SplitView}.\n *\n * @param size The entire size of the {@link SplitView}.\n * @param layoutContext An optional layout context to pass along to {@link IView views}.\n */\n layout(size, layoutContext) {\n const previousSize = Math.max(this.size, this._contentSize);\n this.size = size;\n this.layoutContext = layoutContext;\n if (!this.proportions) {\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n }\n else {\n let total = 0;\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number') {\n total += proportion;\n }\n else {\n size -= item.size;\n }\n }\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number' && total > 0) {\n item.size = clamp(Math.round(proportion * size / total), item.minimumSize, item.maximumSize);\n }\n }\n }\n this.distributeEmptySpace();\n this.layoutViews();\n }\n saveProportions() {\n if (this.proportionalLayout && this._contentSize > 0) {\n this.proportions = this.viewItems.map(v => v.proportionalLayout && v.visible ? v.size / this._contentSize : undefined);\n }\n }\n onSashStart({ sash, start, alt }) {\n for (const item of this.viewItems) {\n item.enabled = false;\n }\n const index = this.sashItems.findIndex(item => item.sash === sash);\n // This way, we can press Alt while we resize a sash, macOS style!\n const disposable = combinedDisposable(addDisposableListener(this.el.ownerDocument.body, 'keydown', e => resetSashDragState(this.sashDragState.current, e.altKey)), addDisposableListener(this.el.ownerDocument.body, 'keyup', () => resetSashDragState(this.sashDragState.current, false)));\n const resetSashDragState = (start, alt) => {\n const sizes = this.viewItems.map(i => i.size);\n let minDelta = Number.NEGATIVE_INFINITY;\n let maxDelta = Number.POSITIVE_INFINITY;\n if (this.inverseAltBehavior) {\n alt = !alt;\n }\n if (alt) {\n // When we're using the last sash with Alt, we're resizing\n // the view to the left/up, instead of right/down as usual\n // Thus, we must do the inverse of the usual\n const isLastSash = index === this.sashItems.length - 1;\n if (isLastSash) {\n const viewItem = this.viewItems[index];\n minDelta = (viewItem.minimumSize - viewItem.size) / 2;\n maxDelta = (viewItem.maximumSize - viewItem.size) / 2;\n }\n else {\n const viewItem = this.viewItems[index + 1];\n minDelta = (viewItem.size - viewItem.maximumSize) / 2;\n maxDelta = (viewItem.size - viewItem.minimumSize) / 2;\n }\n }\n let snapBefore;\n let snapAfter;\n if (!alt) {\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\n const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].minimumSize), 0);\n const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].viewMaximumSize), 0);\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n if (typeof snapBeforeIndex === 'number') {\n const viewItem = this.viewItems[snapBeforeIndex];\n const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n snapBefore = {\n index: snapBeforeIndex,\n limitDelta: viewItem.visible ? minDelta - halfSize : minDelta + halfSize,\n size: viewItem.size\n };\n }\n if (typeof snapAfterIndex === 'number') {\n const viewItem = this.viewItems[snapAfterIndex];\n const halfSize = Math.floor(viewItem.viewMinimumSize / 2);\n snapAfter = {\n index: snapAfterIndex,\n limitDelta: viewItem.visible ? maxDelta + halfSize : maxDelta - halfSize,\n size: viewItem.size\n };\n }\n }\n this.sashDragState = { start, current: start, index, sizes, minDelta, maxDelta, alt, snapBefore, snapAfter, disposable };\n };\n resetSashDragState(start, alt);\n }\n onSashChange({ current }) {\n const { index, start, sizes, alt, minDelta, maxDelta, snapBefore, snapAfter } = this.sashDragState;\n this.sashDragState.current = current;\n const delta = current - start;\n const newDelta = this.resize(index, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\n if (alt) {\n const isLastSash = index === this.sashItems.length - 1;\n const newSizes = this.viewItems.map(i => i.size);\n const viewItemIndex = isLastSash ? index : index + 1;\n const viewItem = this.viewItems[viewItemIndex];\n const newMinDelta = viewItem.size - viewItem.maximumSize;\n const newMaxDelta = viewItem.size - viewItem.minimumSize;\n const resizeIndex = isLastSash ? index - 1 : index + 1;\n this.resize(resizeIndex, -newDelta, newSizes, undefined, undefined, newMinDelta, newMaxDelta);\n }\n this.distributeEmptySpace();\n this.layoutViews();\n }\n onSashEnd(index) {\n this._onDidSashChange.fire(index);\n this.sashDragState.disposable.dispose();\n this.saveProportions();\n for (const item of this.viewItems) {\n item.enabled = true;\n }\n }\n onViewChange(item, size) {\n const index = this.viewItems.indexOf(item);\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n size = typeof size === 'number' ? size : item.size;\n size = clamp(size, item.minimumSize, item.maximumSize);\n if (this.inverseAltBehavior && index > 0) {\n // In this case, we want the view to grow or shrink both sides equally\n // so we just resize the \"left\" side by half and let `resize` do the clamping magic\n this.resize(index - 1, Math.floor((item.size - size) / 2));\n this.distributeEmptySpace();\n this.layoutViews();\n }\n else {\n item.size = size;\n this.relayout([index], undefined);\n }\n }\n /**\n * Resize a {@link IView view} within the {@link SplitView}.\n *\n * @param index The {@link IView view} index.\n * @param size The {@link IView view} size.\n */\n resizeView(index, size) {\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n if (this.state !== State.Idle) {\n throw new Error('Cant modify splitview');\n }\n this.state = State.Busy;\n try {\n const indexes = range(this.viewItems.length).filter(i => i !== index);\n const lowPriorityIndexes = [...indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */), index];\n const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n const item = this.viewItems[index];\n size = Math.round(size);\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this.size));\n item.size = size;\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n finally {\n this.state = State.Idle;\n }\n }\n /**\n * Distribute the entire {@link SplitView} size among all {@link IView views}.\n */\n distributeViewSizes() {\n const flexibleViewItems = [];\n let flexibleSize = 0;\n for (const item of this.viewItems) {\n if (item.maximumSize - item.minimumSize > 0) {\n flexibleViewItems.push(item);\n flexibleSize += item.size;\n }\n }\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\n for (const item of flexibleViewItems) {\n item.size = clamp(size, item.minimumSize, item.maximumSize);\n }\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n /**\n * Returns the size of a {@link IView view}.\n */\n getViewSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n return -1;\n }\n return this.viewItems[index].size;\n }\n doAddView(view, size, index = this.viewItems.length, skipLayout) {\n if (this.state !== State.Idle) {\n throw new Error('Cant modify splitview');\n }\n this.state = State.Busy;\n try {\n // Add view\n const container = $('.split-view-view');\n if (index === this.viewItems.length) {\n this.viewContainer.appendChild(container);\n }\n else {\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n }\n const onChangeDisposable = view.onDidChange(size => this.onViewChange(item, size));\n const containerDisposable = toDisposable(() => this.viewContainer.removeChild(container));\n const disposable = combinedDisposable(onChangeDisposable, containerDisposable);\n let viewSize;\n if (typeof size === 'number') {\n viewSize = size;\n }\n else {\n if (size.type === 'auto') {\n if (this.areViewsDistributed()) {\n size = { type: 'distribute' };\n }\n else {\n size = { type: 'split', index: size.index };\n }\n }\n if (size.type === 'split') {\n viewSize = this.getViewSize(size.index) / 2;\n }\n else if (size.type === 'invisible') {\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\n }\n else {\n viewSize = view.minimumSize;\n }\n }\n const item = this.orientation === 0 /* Orientation.VERTICAL */\n ? new VerticalViewItem(container, view, viewSize, disposable)\n : new HorizontalViewItem(container, view, viewSize, disposable);\n this.viewItems.splice(index, 0, item);\n // Add sash\n if (this.viewItems.length > 1) {\n const opts = { orthogonalStartSash: this.orthogonalStartSash, orthogonalEndSash: this.orthogonalEndSash };\n const sash = this.orientation === 0 /* Orientation.VERTICAL */\n ? new Sash(this.sashContainer, { getHorizontalSashTop: s => this.getSashPosition(s), getHorizontalSashWidth: this.getSashOrthogonalSize }, { ...opts, orientation: 1 /* Orientation.HORIZONTAL */ })\n : new Sash(this.sashContainer, { getVerticalSashLeft: s => this.getSashPosition(s), getVerticalSashHeight: this.getSashOrthogonalSize }, { ...opts, orientation: 0 /* Orientation.VERTICAL */ });\n const sashEventMapper = this.orientation === 0 /* Orientation.VERTICAL */\n ? (e) => ({ sash, start: e.startY, current: e.currentY, alt: e.altKey })\n : (e) => ({ sash, start: e.startX, current: e.currentX, alt: e.altKey });\n const onStart = Event.map(sash.onDidStart, sashEventMapper);\n const onStartDisposable = onStart(this.onSashStart, this);\n const onChange = Event.map(sash.onDidChange, sashEventMapper);\n const onChangeDisposable = onChange(this.onSashChange, this);\n const onEnd = Event.map(sash.onDidEnd, () => this.sashItems.findIndex(item => item.sash === sash));\n const onEndDisposable = onEnd(this.onSashEnd, this);\n const onDidResetDisposable = sash.onDidReset(() => {\n const index = this.sashItems.findIndex(item => item.sash === sash);\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n if (typeof snapBeforeIndex === 'number' && !this.viewItems[snapBeforeIndex].visible) {\n return;\n }\n if (typeof snapAfterIndex === 'number' && !this.viewItems[snapAfterIndex].visible) {\n return;\n }\n this._onDidSashReset.fire(index);\n });\n const disposable = combinedDisposable(onStartDisposable, onChangeDisposable, onEndDisposable, onDidResetDisposable, sash);\n const sashItem = { sash, disposable };\n this.sashItems.splice(index - 1, 0, sashItem);\n }\n container.appendChild(view.element);\n let highPriorityIndexes;\n if (typeof size !== 'number' && size.type === 'split') {\n highPriorityIndexes = [size.index];\n }\n if (!skipLayout) {\n this.relayout([index], highPriorityIndexes);\n }\n if (!skipLayout && typeof size !== 'number' && size.type === 'distribute') {\n this.distributeViewSizes();\n }\n }\n finally {\n this.state = State.Idle;\n }\n }\n relayout(lowPriorityIndexes, highPriorityIndexes) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.resize(this.viewItems.length - 1, this.size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n this.distributeEmptySpace();\n this.layoutViews();\n this.saveProportions();\n }\n resize(index, delta, sizes = this.viewItems.map(i => i.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) {\n if (index < 0 || index >= this.viewItems.length) {\n return 0;\n }\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n if (highPriorityIndexes) {\n for (const index of highPriorityIndexes) {\n pushToStart(upIndexes, index);\n pushToStart(downIndexes, index);\n }\n }\n if (lowPriorityIndexes) {\n for (const index of lowPriorityIndexes) {\n pushToEnd(upIndexes, index);\n pushToEnd(downIndexes, index);\n }\n }\n const upItems = upIndexes.map(i => this.viewItems[i]);\n const upSizes = upIndexes.map(i => sizes[i]);\n const downItems = downIndexes.map(i => this.viewItems[i]);\n const downSizes = downIndexes.map(i => sizes[i]);\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].maximumSize - sizes[i]), 0);\n const maxDeltaDown = downIndexes.length === 0 ? Number.POSITIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].minimumSize), 0);\n const minDeltaDown = downIndexes.length === 0 ? Number.NEGATIVE_INFINITY : downIndexes.reduce((r, i) => r + (sizes[i] - this.viewItems[i].maximumSize), 0);\n const minDelta = Math.max(minDeltaUp, minDeltaDown, overloadMinDelta);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp, overloadMaxDelta);\n let snapped = false;\n if (snapBefore) {\n const snapView = this.viewItems[snapBefore.index];\n const visible = delta >= snapBefore.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapBefore.size);\n }\n if (!snapped && snapAfter) {\n const snapView = this.viewItems[snapAfter.index];\n const visible = delta < snapAfter.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapAfter.size);\n }\n if (snapped) {\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n }\n delta = clamp(delta, minDelta, maxDelta);\n for (let i = 0, deltaUp = delta; i < upItems.length; i++) {\n const item = upItems[i];\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\n const viewDelta = size - upSizes[i];\n deltaUp -= viewDelta;\n item.size = size;\n }\n for (let i = 0, deltaDown = delta; i < downItems.length; i++) {\n const item = downItems[i];\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\n const viewDelta = size - downSizes[i];\n deltaDown += viewDelta;\n item.size = size;\n }\n return delta;\n }\n distributeEmptySpace(lowPriorityIndex) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let emptyDelta = this.size - contentSize;\n const indexes = range(this.viewItems.length - 1, -1);\n const lowPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 1 /* LayoutPriority.Low */);\n const highPriorityIndexes = indexes.filter(i => this.viewItems[i].priority === 2 /* LayoutPriority.High */);\n for (const index of highPriorityIndexes) {\n pushToStart(indexes, index);\n }\n for (const index of lowPriorityIndexes) {\n pushToEnd(indexes, index);\n }\n if (typeof lowPriorityIndex === 'number') {\n pushToEnd(indexes, lowPriorityIndex);\n }\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\n const item = this.viewItems[indexes[i]];\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n const viewDelta = size - item.size;\n emptyDelta -= viewDelta;\n item.size = size;\n }\n }\n layoutViews() {\n // Save new content size\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n // Layout views\n let offset = 0;\n for (const viewItem of this.viewItems) {\n viewItem.layout(offset, this.layoutContext);\n offset += viewItem.size;\n }\n // Layout sashes\n this.sashItems.forEach(item => item.sash.layout());\n this.updateSashEnablement();\n this.updateScrollableElement();\n }\n updateScrollableElement() {\n if (this.orientation === 0 /* Orientation.VERTICAL */) {\n this.scrollableElement.setScrollDimensions({\n height: this.size,\n scrollHeight: this._contentSize\n });\n }\n else {\n this.scrollableElement.setScrollDimensions({\n width: this.size,\n scrollWidth: this._contentSize\n });\n }\n }\n updateSashEnablement() {\n let previous = false;\n const collapsesDown = this.viewItems.map(i => previous = (i.size - i.minimumSize > 0) || previous);\n previous = false;\n const expandsDown = this.viewItems.map(i => previous = (i.maximumSize - i.size > 0) || previous);\n const reverseViews = [...this.viewItems].reverse();\n previous = false;\n const collapsesUp = reverseViews.map(i => previous = (i.size - i.minimumSize > 0) || previous).reverse();\n previous = false;\n const expandsUp = reverseViews.map(i => previous = (i.maximumSize - i.size > 0) || previous).reverse();\n let position = 0;\n for (let index = 0; index < this.sashItems.length; index++) {\n const { sash } = this.sashItems[index];\n const viewItem = this.viewItems[index];\n position += viewItem.size;\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\n if (min && max) {\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n const snappedBefore = typeof snapBeforeIndex === 'number' && !this.viewItems[snapBeforeIndex].visible;\n const snappedAfter = typeof snapAfterIndex === 'number' && !this.viewItems[snapAfterIndex].visible;\n if (snappedBefore && collapsesUp[index] && (position > 0 || this.startSnappingEnabled)) {\n sash.state = 1 /* SashState.AtMinimum */;\n }\n else if (snappedAfter && collapsesDown[index] && (position < this._contentSize || this.endSnappingEnabled)) {\n sash.state = 2 /* SashState.AtMaximum */;\n }\n else {\n sash.state = 0 /* SashState.Disabled */;\n }\n }\n else if (min && !max) {\n sash.state = 1 /* SashState.AtMinimum */;\n }\n else if (!min && max) {\n sash.state = 2 /* SashState.AtMaximum */;\n }\n else {\n sash.state = 3 /* SashState.Enabled */;\n }\n }\n }\n getSashPosition(sash) {\n let position = 0;\n for (let i = 0; i < this.sashItems.length; i++) {\n position += this.viewItems[i].size;\n if (this.sashItems[i].sash === sash) {\n return position;\n }\n }\n return 0;\n }\n findFirstSnapIndex(indexes) {\n // visible views first\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (!viewItem.visible) {\n continue;\n }\n if (viewItem.snap) {\n return index;\n }\n }\n // then, hidden views\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (viewItem.visible && viewItem.maximumSize - viewItem.minimumSize > 0) {\n return undefined;\n }\n if (!viewItem.visible && viewItem.snap) {\n return index;\n }\n }\n return undefined;\n }\n areViewsDistributed() {\n let min = undefined, max = undefined;\n for (const view of this.viewItems) {\n min = min === undefined ? view.size : Math.min(min, view.size);\n max = max === undefined ? view.size : Math.max(max, view.size);\n if (max - min > 2) {\n return false;\n }\n }\n return true;\n }\n dispose() {\n var _a;\n (_a = this.sashDragState) === null || _a === void 0 ? void 0 : _a.disposable.dispose();\n dispose(this.viewItems);\n this.viewItems = [];\n this.sashItems.forEach(i => i.disposable.dispose());\n this.sashItems = [];\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport class TreeViewsDnDService {\n constructor() {\n this._dragOperations = new Map();\n }\n removeDragOperationTransfer(uuid) {\n if ((uuid && this._dragOperations.has(uuid))) {\n const operation = this._dragOperations.get(uuid);\n this._dragOperations.delete(uuid);\n return operation;\n }\n return undefined;\n }\n}\nexport class DraggedTreeItemsIdentifier {\n constructor(identifier) {\n this.identifier = identifier;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { registerSingleton } from '../../../platform/instantiation/common/extensions.js';\nimport { createDecorator } from '../../../platform/instantiation/common/instantiation.js';\nimport { TreeViewsDnDService } from './treeViewsDnd.js';\nexport const ITreeViewsDnDService = createDecorator('treeViewsDndService');\nregisterSingleton(ITreeViewsDnDService, TreeViewsDnDService, 1 /* InstantiationType.Delayed */);\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar DropIntoEditorController_1;\nimport { coalesce } from '../../../../base/common/arrays.js';\nimport { createCancelablePromise, raceCancellation } from '../../../../base/common/async.js';\nimport { VSDataTransfer, matchesMimeType } from '../../../../base/common/dataTransfer.js';\nimport { HierarchicalKind } from '../../../../base/common/hierarchicalKind.js';\nimport { Disposable } from '../../../../base/common/lifecycle.js';\nimport { toExternalVSDataTransfer } from '../../../browser/dnd.js';\nimport { Range } from '../../../common/core/range.js';\nimport { ILanguageFeaturesService } from '../../../common/services/languageFeatures.js';\nimport { DraggedTreeItemsIdentifier } from '../../../common/services/treeViewsDnd.js';\nimport { ITreeViewsDnDService } from '../../../common/services/treeViewsDndService.js';\nimport { EditorStateCancellationTokenSource } from '../../editorState/browser/editorState.js';\nimport { InlineProgressManager } from '../../inlineProgress/browser/inlineProgress.js';\nimport { localize } from '../../../../nls.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { RawContextKey } from '../../../../platform/contextkey/common/contextkey.js';\nimport { LocalSelectionTransfer } from '../../../../platform/dnd/browser/dnd.js';\nimport { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';\nimport { sortEditsByYieldTo } from './edit.js';\nimport { PostEditWidgetManager } from './postEditWidget.js';\nexport const defaultProviderConfig = 'editor.experimental.dropIntoEditor.defaultProvider';\nexport const changeDropTypeCommandId = 'editor.changeDropType';\nexport const dropWidgetVisibleCtx = new RawContextKey('dropWidgetVisible', false, localize('dropWidgetVisible', \"Whether the drop widget is showing\"));\nlet DropIntoEditorController = DropIntoEditorController_1 = class DropIntoEditorController extends Disposable {\n static get(editor) {\n return editor.getContribution(DropIntoEditorController_1.ID);\n }\n constructor(editor, instantiationService, _configService, _languageFeaturesService, _treeViewsDragAndDropService) {\n super();\n this._configService = _configService;\n this._languageFeaturesService = _languageFeaturesService;\n this._treeViewsDragAndDropService = _treeViewsDragAndDropService;\n this.treeItemsTransfer = LocalSelectionTransfer.getInstance();\n this._dropProgressManager = this._register(instantiationService.createInstance(InlineProgressManager, 'dropIntoEditor', editor));\n this._postDropWidgetManager = this._register(instantiationService.createInstance(PostEditWidgetManager, 'dropIntoEditor', editor, dropWidgetVisibleCtx, { id: changeDropTypeCommandId, label: localize('postDropWidgetTitle', \"Show drop options...\") }));\n this._register(editor.onDropIntoEditor(e => this.onDropIntoEditor(editor, e.position, e.event)));\n }\n clearWidgets() {\n this._postDropWidgetManager.clear();\n }\n changeDropType() {\n this._postDropWidgetManager.tryShowSelector();\n }\n async onDropIntoEditor(editor, position, dragEvent) {\n var _a;\n if (!dragEvent.dataTransfer || !editor.hasModel()) {\n return;\n }\n (_a = this._currentOperation) === null || _a === void 0 ? void 0 : _a.cancel();\n editor.focus();\n editor.setPosition(position);\n const p = createCancelablePromise(async (token) => {\n const tokenSource = new EditorStateCancellationTokenSource(editor, 1 /* CodeEditorStateFlag.Value */, undefined, token);\n try {\n const ourDataTransfer = await this.extractDataTransferData(dragEvent);\n if (ourDataTransfer.size === 0 || tokenSource.token.isCancellationRequested) {\n return;\n }\n const model = editor.getModel();\n if (!model) {\n return;\n }\n const providers = this._languageFeaturesService.documentDropEditProvider\n .ordered(model)\n .filter(provider => {\n if (!provider.dropMimeTypes) {\n // Keep all providers that don't specify mime types\n return true;\n }\n return provider.dropMimeTypes.some(mime => ourDataTransfer.matches(mime));\n });\n const edits = await this.getDropEdits(providers, model, position, ourDataTransfer, tokenSource);\n if (tokenSource.token.isCancellationRequested) {\n return;\n }\n if (edits.length) {\n const activeEditIndex = this.getInitialActiveEditIndex(model, edits);\n const canShowWidget = editor.getOption(36 /* EditorOption.dropIntoEditor */).showDropSelector === 'afterDrop';\n // Pass in the parent token here as it tracks cancelling the entire drop operation\n await this._postDropWidgetManager.applyEditAndShowIfNeeded([Range.fromPositions(position)], { activeEditIndex, allEdits: edits }, canShowWidget, async (edit) => edit, token);\n }\n }\n finally {\n tokenSource.dispose();\n if (this._currentOperation === p) {\n this._currentOperation = undefined;\n }\n }\n });\n this._dropProgressManager.showWhile(position, localize('dropIntoEditorProgress', \"Running drop handlers. Click to cancel\"), p);\n this._currentOperation = p;\n }\n async getDropEdits(providers, model, position, dataTransfer, tokenSource) {\n const results = await raceCancellation(Promise.all(providers.map(async (provider) => {\n try {\n const edits = await provider.provideDocumentDropEdits(model, position, dataTransfer, tokenSource.token);\n return edits === null || edits === void 0 ? void 0 : edits.map(edit => ({ ...edit, providerId: provider.id }));\n }\n catch (err) {\n console.error(err);\n }\n return undefined;\n })), tokenSource.token);\n const edits = coalesce(results !== null && results !== void 0 ? results : []).flat();\n return sortEditsByYieldTo(edits);\n }\n getInitialActiveEditIndex(model, edits) {\n const preferredProviders = this._configService.getValue(defaultProviderConfig, { resource: model.uri });\n for (const [configMime, desiredKindStr] of Object.entries(preferredProviders)) {\n const desiredKind = new HierarchicalKind(desiredKindStr);\n const editIndex = edits.findIndex(edit => desiredKind.value === edit.providerId\n && edit.handledMimeType && matchesMimeType(configMime, [edit.handledMimeType]));\n if (editIndex >= 0) {\n return editIndex;\n }\n }\n return 0;\n }\n async extractDataTransferData(dragEvent) {\n if (!dragEvent.dataTransfer) {\n return new VSDataTransfer();\n }\n const dataTransfer = toExternalVSDataTransfer(dragEvent.dataTransfer);\n if (this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)) {\n const data = this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);\n if (Array.isArray(data)) {\n for (const id of data) {\n const treeDataTransfer = await this._treeViewsDragAndDropService.removeDragOperationTransfer(id.identifier);\n if (treeDataTransfer) {\n for (const [type, value] of treeDataTransfer) {\n dataTransfer.replace(type, value);\n }\n }\n }\n }\n }\n return dataTransfer;\n }\n};\nDropIntoEditorController.ID = 'editor.contrib.dropIntoEditorController';\nDropIntoEditorController = DropIntoEditorController_1 = __decorate([\n __param(1, IInstantiationService),\n __param(2, IConfigurationService),\n __param(3, ILanguageFeaturesService),\n __param(4, ITreeViewsDnDService)\n], DropIntoEditorController);\nexport { DropIntoEditorController };\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { EditorCommand, registerEditorCommand, registerEditorContribution } from '../../../browser/editorExtensions.js';\nimport { editorConfigurationBaseNode } from '../../../common/config/editorConfigurationSchema.js';\nimport { registerEditorFeature } from '../../../common/editorFeatures.js';\nimport { DefaultDropProvidersFeature } from './defaultProviders.js';\nimport * as nls from '../../../../nls.js';\nimport { Extensions as ConfigurationExtensions } from '../../../../platform/configuration/common/configurationRegistry.js';\nimport { Registry } from '../../../../platform/registry/common/platform.js';\nimport { DropIntoEditorController, changeDropTypeCommandId, defaultProviderConfig, dropWidgetVisibleCtx } from './dropIntoEditorController.js';\nregisterEditorContribution(DropIntoEditorController.ID, DropIntoEditorController, 2 /* EditorContributionInstantiation.BeforeFirstInteraction */);\nregisterEditorFeature(DefaultDropProvidersFeature);\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: changeDropTypeCommandId,\n precondition: dropWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 2048 /* KeyMod.CtrlCmd */ | 89 /* KeyCode.Period */,\n }\n });\n }\n runEditorCommand(_accessor, editor, _args) {\n var _a;\n (_a = DropIntoEditorController.get(editor)) === null || _a === void 0 ? void 0 : _a.changeDropType();\n }\n});\nregisterEditorCommand(new class extends EditorCommand {\n constructor() {\n super({\n id: 'editor.hideDropWidget',\n precondition: dropWidgetVisibleCtx,\n kbOpts: {\n weight: 100 /* KeybindingWeight.EditorContrib */,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(_accessor, editor, _args) {\n var _a;\n (_a = DropIntoEditorController.get(editor)) === null || _a === void 0 ? void 0 : _a.clearWidgets();\n }\n});\nRegistry.as(ConfigurationExtensions.Configuration).registerConfiguration({\n ...editorConfigurationBaseNode,\n properties: {\n [defaultProviderConfig]: {\n type: 'object',\n scope: 5 /* ConfigurationScope.LANGUAGE_OVERRIDABLE */,\n description: nls.localize('defaultProviderDescription', \"Configures the default drop provider to use for content of a given mime type.\"),\n default: {},\n additionalProperties: {\n type: 'string',\n },\n },\n }\n});\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Assert from '../../../base/common/assert.js';\nimport * as Types from '../../../base/common/types.js';\nclass RegistryImpl {\n constructor() {\n this.data = new Map();\n }\n add(id, data) {\n Assert.ok(Types.isString(id));\n Assert.ok(Types.isObject(data));\n Assert.ok(!this.data.has(id), 'There is already an extension with this id');\n this.data.set(id, data);\n }\n as(id) {\n return this.data.get(id) || null;\n }\n}\nexport const Registry = new RegistryImpl();\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n let max = null\n let maxSV = null\n let rangeObj = null\n try {\n rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach((v) => {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\nmodule.exports = maxSatisfying\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extendSubschemaMode = exports.extendSubschemaData = exports.getSubschema = void 0;\nconst codegen_1 = require(\"../codegen\");\nconst util_1 = require(\"../util\");\nfunction getSubschema(it, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }) {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed');\n }\n if (keyword !== undefined) {\n const sch = it.schema[keyword];\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: (0, codegen_1._) `${it.schemaPath}${(0, codegen_1.getProperty)(keyword)}${(0, codegen_1.getProperty)(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${(0, util_1.escapeFragment)(schemaProp)}`,\n };\n }\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"');\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n };\n }\n throw new Error('either \"keyword\" or \"schema\" must be passed');\n}\nexports.getSubschema = getSubschema;\nfunction extendSubschemaData(subschema, it, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }) {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed');\n }\n const { gen } = it;\n if (dataProp !== undefined) {\n const { errorPath, dataPathArr, opts } = it;\n const nextData = gen.let(\"data\", (0, codegen_1._) `${it.data}${(0, codegen_1.getProperty)(dataProp)}`, true);\n dataContextProps(nextData);\n subschema.errorPath = (0, codegen_1.str) `${errorPath}${(0, util_1.getErrorPath)(dataProp, dpType, opts.jsPropertySyntax)}`;\n subschema.parentDataProperty = (0, codegen_1._) `${dataProp}`;\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty];\n }\n if (data !== undefined) {\n const nextData = data instanceof codegen_1.Name ? data : gen.let(\"data\", data, true); // replaceable if used once?\n dataContextProps(nextData);\n if (propertyName !== undefined)\n subschema.propertyName = propertyName;\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n if (dataTypes)\n subschema.dataTypes = dataTypes;\n function dataContextProps(_nextData) {\n subschema.data = _nextData;\n subschema.dataLevel = it.dataLevel + 1;\n subschema.dataTypes = [];\n it.definedProperties = new Set();\n subschema.parentData = it.data;\n subschema.dataNames = [...it.dataNames, _nextData];\n }\n}\nexports.extendSubschemaData = extendSubschemaData;\nfunction extendSubschemaMode(subschema, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }) {\n if (compositeRule !== undefined)\n subschema.compositeRule = compositeRule;\n if (createErrors !== undefined)\n subschema.createErrors = createErrors;\n if (allErrors !== undefined)\n subschema.allErrors = allErrors;\n subschema.jtdDiscriminator = jtdDiscriminator; // not inherited\n subschema.jtdMetadata = jtdMetadata; // not inherited\n}\nexports.extendSubschemaMode = extendSubschemaMode;\n//# sourceMappingURL=subschema.js.map","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst util_1 = require(\"../../compile/util\");\nconst def = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt) {\n const { gen, schema, it } = cxt;\n /* istanbul ignore if */\n if (!Array.isArray(schema))\n throw new Error(\"ajv implementation error\");\n const valid = gen.name(\"valid\");\n schema.forEach((sch, i) => {\n if ((0, util_1.alwaysValidSchema)(it, sch))\n return;\n const schCxt = cxt.subschema({ keyword: \"allOf\", schemaProp: i }, valid);\n cxt.ok(valid);\n cxt.mergeEvaluated(schCxt);\n });\n },\n};\nexports.default = def;\n//# sourceMappingURL=allOf.js.map","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as browser from '../../../../base/browser/browser.js';\nimport { getActiveDocument } from '../../../../base/browser/dom.js';\nimport * as platform from '../../../../base/common/platform.js';\nimport { CopyOptions, InMemoryClipboardMetadataManager } from '../../../browser/controller/textAreaInput.js';\nimport { EditorAction, MultiCommand, registerEditorAction } from '../../../browser/editorExtensions.js';\nimport { ICodeEditorService } from '../../../browser/services/codeEditorService.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { CopyPasteController } from '../../dropOrPasteInto/browser/copyPasteController.js';\nimport * as nls from '../../../../nls.js';\nimport { MenuId, MenuRegistry } from '../../../../platform/actions/common/actions.js';\nimport { IClipboardService } from '../../../../platform/clipboard/common/clipboardService.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nconst CLIPBOARD_CONTEXT_MENU_GROUP = '9_cutcopypaste';\nconst supportsCut = (platform.isNative || document.queryCommandSupported('cut'));\nconst supportsCopy = (platform.isNative || document.queryCommandSupported('copy'));\n// Firefox only supports navigator.clipboard.readText() in browser extensions.\n// See https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText#Browser_compatibility\n// When loading over http, navigator.clipboard can be undefined. See https://github.com/microsoft/monaco-editor/issues/2313\nconst supportsPaste = (typeof navigator.clipboard === 'undefined' || browser.isFirefox) ? document.queryCommandSupported('paste') : true;\nfunction registerCommand(command) {\n command.register();\n return command;\n}\nexport const CutAction = supportsCut ? registerCommand(new MultiCommand({\n id: 'editor.action.clipboardCutAction',\n precondition: undefined,\n kbOpts: (\n // Do not bind cut keybindings in the browser,\n // since browsers do that for us and it avoids security prompts\n platform.isNative ? {\n primary: 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */,\n win: { primary: 2048 /* KeyMod.CtrlCmd */ | 54 /* KeyCode.KeyX */, secondary: [1024 /* KeyMod.Shift */ | 20 /* KeyCode.Delete */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n } : undefined),\n menuOpts: [{\n menuId: MenuId.MenubarEditMenu,\n group: '2_ccp',\n title: nls.localize({ key: 'miCut', comment: ['&& denotes a mnemonic'] }, \"Cu&&t\"),\n order: 1\n }, {\n menuId: MenuId.EditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n when: EditorContextKeys.writable,\n order: 1,\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n order: 1\n }, {\n menuId: MenuId.SimpleEditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.cutLabel', \"Cut\"),\n when: EditorContextKeys.writable,\n order: 1,\n }]\n})) : undefined;\nexport const CopyAction = supportsCopy ? registerCommand(new MultiCommand({\n id: 'editor.action.clipboardCopyAction',\n precondition: undefined,\n kbOpts: (\n // Do not bind copy keybindings in the browser,\n // since browsers do that for us and it avoids security prompts\n platform.isNative ? {\n primary: 2048 /* KeyMod.CtrlCmd */ | 33 /* KeyCode.KeyC */,\n win: { primary: 2048 /* KeyMod.CtrlCmd */ | 33 /* KeyCode.KeyC */, secondary: [2048 /* KeyMod.CtrlCmd */ | 19 /* KeyCode.Insert */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n } : undefined),\n menuOpts: [{\n menuId: MenuId.MenubarEditMenu,\n group: '2_ccp',\n title: nls.localize({ key: 'miCopy', comment: ['&& denotes a mnemonic'] }, \"&&Copy\"),\n order: 2\n }, {\n menuId: MenuId.EditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n order: 2,\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n order: 1\n }, {\n menuId: MenuId.SimpleEditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.copyLabel', \"Copy\"),\n order: 2,\n }]\n})) : undefined;\nMenuRegistry.appendMenuItem(MenuId.MenubarEditMenu, { submenu: MenuId.MenubarCopy, title: nls.localize2('copy as', \"Copy As\"), group: '2_ccp', order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextCopy, title: nls.localize2('copy as', \"Copy As\"), group: CLIPBOARD_CONTEXT_MENU_GROUP, order: 3 });\nMenuRegistry.appendMenuItem(MenuId.EditorContext, { submenu: MenuId.EditorContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1, when: ContextKeyExpr.and(ContextKeyExpr.notEquals('resourceScheme', 'output'), EditorContextKeys.editorTextFocus) });\nMenuRegistry.appendMenuItem(MenuId.ExplorerContext, { submenu: MenuId.ExplorerContextShare, title: nls.localize2('share', \"Share\"), group: '11_share', order: -1 });\nexport const PasteAction = supportsPaste ? registerCommand(new MultiCommand({\n id: 'editor.action.clipboardPasteAction',\n precondition: undefined,\n kbOpts: (\n // Do not bind paste keybindings in the browser,\n // since browsers do that for us and it avoids security prompts\n platform.isNative ? {\n primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */,\n win: { primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */, secondary: [1024 /* KeyMod.Shift */ | 19 /* KeyCode.Insert */] },\n linux: { primary: 2048 /* KeyMod.CtrlCmd */ | 52 /* KeyCode.KeyV */, secondary: [1024 /* KeyMod.Shift */ | 19 /* KeyCode.Insert */] },\n weight: 100 /* KeybindingWeight.EditorContrib */\n } : undefined),\n menuOpts: [{\n menuId: MenuId.MenubarEditMenu,\n group: '2_ccp',\n title: nls.localize({ key: 'miPaste', comment: ['&& denotes a mnemonic'] }, \"&&Paste\"),\n order: 4\n }, {\n menuId: MenuId.EditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n when: EditorContextKeys.writable,\n order: 4,\n }, {\n menuId: MenuId.CommandPalette,\n group: '',\n title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n order: 1\n }, {\n menuId: MenuId.SimpleEditorContext,\n group: CLIPBOARD_CONTEXT_MENU_GROUP,\n title: nls.localize('actions.clipboard.pasteLabel', \"Paste\"),\n when: EditorContextKeys.writable,\n order: 4,\n }]\n})) : undefined;\nclass ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction {\n constructor() {\n super({\n id: 'editor.action.clipboardCopyWithSyntaxHighlightingAction',\n label: nls.localize('actions.clipboard.copyWithSyntaxHighlightingLabel', \"Copy With Syntax Highlighting\"),\n alias: 'Copy With Syntax Highlighting',\n precondition: undefined,\n kbOpts: {\n kbExpr: EditorContextKeys.textInputFocus,\n primary: 0,\n weight: 100 /* KeybindingWeight.EditorContrib */\n }\n });\n }\n run(accessor, editor) {\n if (!editor.hasModel()) {\n return;\n }\n const emptySelectionClipboard = editor.getOption(37 /* EditorOption.emptySelectionClipboard */);\n if (!emptySelectionClipboard && editor.getSelection().isEmpty()) {\n return;\n }\n CopyOptions.forceCopyWithSyntaxHighlighting = true;\n editor.focus();\n editor.getContainerDomNode().ownerDocument.execCommand('copy');\n CopyOptions.forceCopyWithSyntaxHighlighting = false;\n }\n}\nfunction registerExecCommandImpl(target, browserCommand) {\n if (!target) {\n return;\n }\n // 1. handle case when focus is in editor.\n target.addImplementation(10000, 'code-editor', (accessor, args) => {\n // Only if editor text focus (i.e. not if editor has widget focus).\n const focusedEditor = accessor.get(ICodeEditorService).getFocusedCodeEditor();\n if (focusedEditor && focusedEditor.hasTextFocus()) {\n // Do not execute if there is no selection and empty selection clipboard is off\n const emptySelectionClipboard = focusedEditor.getOption(37 /* EditorOption.emptySelectionClipboard */);\n const selection = focusedEditor.getSelection();\n if (selection && selection.isEmpty() && !emptySelectionClipboard) {\n return true;\n }\n focusedEditor.getContainerDomNode().ownerDocument.execCommand(browserCommand);\n return true;\n }\n return false;\n });\n // 2. (default) handle case when focus is somewhere else.\n target.addImplementation(0, 'generic-dom', (accessor, args) => {\n getActiveDocument().execCommand(browserCommand);\n return true;\n });\n}\nregisterExecCommandImpl(CutAction, 'cut');\nregisterExecCommandImpl(CopyAction, 'copy');\nif (PasteAction) {\n // 1. Paste: handle case when focus is in editor.\n PasteAction.addImplementation(10000, 'code-editor', (accessor, args) => {\n var _a, _b;\n const codeEditorService = accessor.get(ICodeEditorService);\n const clipboardService = accessor.get(IClipboardService);\n // Only if editor text focus (i.e. not if editor has widget focus).\n const focusedEditor = codeEditorService.getFocusedCodeEditor();\n if (focusedEditor && focusedEditor.hasTextFocus()) {\n const result = focusedEditor.getContainerDomNode().ownerDocument.execCommand('paste');\n if (result) {\n return (_b = (_a = CopyPasteController.get(focusedEditor)) === null || _a === void 0 ? void 0 : _a.finishedPaste()) !== null && _b !== void 0 ? _b : Promise.resolve();\n }\n else if (platform.isWeb) {\n // Use the clipboard service if document.execCommand('paste') was not successful\n return (async () => {\n const clipboardText = await clipboardService.readText();\n if (clipboardText !== '') {\n const metadata = InMemoryClipboardMetadataManager.INSTANCE.get(clipboardText);\n let pasteOnNewLine = false;\n let multicursorText = null;\n let mode = null;\n if (metadata) {\n pasteOnNewLine = (focusedEditor.getOption(37 /* EditorOption.emptySelectionClipboard */) && !!metadata.isFromEmptySelection);\n multicursorText = (typeof metadata.multicursorText !== 'undefined' ? metadata.multicursorText : null);\n mode = metadata.mode;\n }\n focusedEditor.trigger('keyboard', \"paste\" /* Handler.Paste */, {\n text: clipboardText,\n pasteOnNewLine,\n multicursorText,\n mode\n });\n }\n })();\n }\n return true;\n }\n return false;\n });\n // 2. Paste: (default) handle case when focus is somewhere else.\n PasteAction.addImplementation(0, 'generic-dom', (accessor, args) => {\n getActiveDocument().execCommand('paste');\n return true;\n });\n}\nif (supportsCopy) {\n registerEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);\n}\n","var instances = 'ej2_instances';\nvar uid = 0;\nvar isBlazorPlatform = false;\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function disableBlazorMode() {\n isBlazorPlatform = false;\n}\n/**\n * Create Instance from constructor function with desired parameters.\n *\n * @param {Function} classFunction - Class function to which need to create instance\n * @param {any[]} params - Parameters need to passed while creating instance\n * @returns {any} ?\n * @private\n */\nexport function createInstance(classFunction, params) {\n var arrayParam = params;\n arrayParam.unshift(undefined);\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\n}\n/**\n * To run a callback function immediately after the browser has completed other operations.\n *\n * @param {Function} handler - callback function to be triggered.\n * @returns {Function} ?\n * @private\n */\nexport function setImmediate(handler) {\n var unbind;\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n intCrypto.getRandomValues(num);\n var secret = 'ej2' + combineArray(num);\n var messageHandler = function (event) {\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\n handler();\n unbind();\n }\n };\n window.addEventListener('message', messageHandler, false);\n window.postMessage(secret, '*');\n return unbind = function () {\n window.removeEventListener('message', messageHandler);\n handler = messageHandler = secret = undefined;\n };\n}\n/**\n * To get nameSpace value from the desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\nexport function getValue(nameSpace, obj) {\n var value = obj;\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\n value = value[splits[parseInt(i.toString(), 10)]];\n }\n return value;\n}\n/**\n * To set value for the nameSpace in desired object.\n *\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @returns {any} ?\n * @private\n */\nexport function setValue(nameSpace, value, obj) {\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n var start = obj || {};\n var fromObj = start;\n var i;\n var length = keys.length;\n var key;\n for (i = 0; i < length; i++) {\n key = keys[parseInt(i.toString(), 10)];\n if (i + 1 === length) {\n fromObj[\"\" + key] = value === undefined ? {} : value;\n }\n else if (isNullOrUndefined(fromObj[\"\" + key])) {\n fromObj[\"\" + key] = {};\n }\n fromObj = fromObj[\"\" + key];\n }\n return start;\n}\n/**\n * Delete an item from Object\n *\n * @param {any} obj - Object in which we need to delete an item.\n * @param {string} key - String value to the get the inner object\n * @returns {void} ?\n * @private\n */\nexport function deleteObject(obj, key) {\n delete obj[\"\" + key];\n}\n/**\n *@private\n */\nexport var containerObject = typeof window !== 'undefined' ? window : {};\n/**\n * Check weather the given argument is only object.\n *\n * @param {any} obj - Object which is need to check.\n * @returns {boolean} ?\n * @private\n */\nexport function isObject(obj) {\n var objCon = {};\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\n}\n/**\n * To get enum value by giving the string.\n *\n * @param {any} enumObject - Enum object.\n * @param {string} enumValue - Enum value to be searched\n * @returns {any} ?\n * @private\n */\nexport function getEnumValue(enumObject, enumValue) {\n return enumObject[\"\" + enumValue];\n}\n/**\n * Merge the source object into destination object.\n *\n * @param {any} source - source object which is going to merge with destination object\n * @param {any} destination - object need to be merged\n * @returns {void} ?\n * @private\n */\nexport function merge(source, destination) {\n if (!isNullOrUndefined(destination)) {\n var temrObj = source;\n var tempProp = destination;\n var keys = Object.keys(destination);\n var deepmerge = 'deepMerge';\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (!isNullOrUndefined(temrObj[\"\" + deepmerge]) && (temrObj[\"\" + deepmerge].indexOf(key) !== -1) &&\n (isObject(tempProp[\"\" + key]) || Array.isArray(tempProp[\"\" + key]))) {\n extend(temrObj[\"\" + key], temrObj[\"\" + key], tempProp[\"\" + key], true);\n }\n else {\n temrObj[\"\" + key] = tempProp[\"\" + key];\n }\n }\n }\n}\n/**\n * Extend the two object with newer one.\n *\n * @param {any} copied - Resultant object after merged\n * @param {Object} first - First object need to merge\n * @param {Object} second - Second object need to merge\n * @param {boolean} deep ?\n * @returns {Object} ?\n * @private\n */\nexport function extend(copied, first, second, deep) {\n var result = copied && typeof copied === 'object' ? copied : {};\n var length = arguments.length;\n var args = [copied, first, second, deep];\n if (deep) {\n length = length - 1;\n }\n var _loop_1 = function (i) {\n if (!args[parseInt(i.toString(), 10)]) {\n return \"continue\";\n }\n var obj1 = args[parseInt(i.toString(), 10)];\n Object.keys(obj1).forEach(function (key) {\n var src = result[\"\" + key];\n var copy = obj1[\"\" + key];\n var clone;\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\n if (isObject(copy)) {\n clone = src ? src : {};\n if (Array.isArray(clone) && Object.prototype.hasOwnProperty.call(clone, 'isComplexArray')) {\n extend(clone, {}, copy, deep);\n }\n else {\n result[\"\" + key] = extend(clone, {}, copy, deep);\n }\n }\n else {\n /* istanbul ignore next */\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\n result[\"\" + key] = extend([], clone, copy, (clone && clone.length) || (copy && copy.length));\n }\n }\n else {\n result[\"\" + key] = copy;\n }\n });\n };\n for (var i = 1; i < length; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * To check whether the object is null or undefined.\n *\n * @param {any} value - To check the object is null or undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isNullOrUndefined(value) {\n return value === undefined || value === null;\n}\n/**\n * To check whether the object is undefined.\n *\n * @param {any} value - To check the object is undefined\n * @returns {boolean} ?\n * @private\n */\nexport function isUndefined(value) {\n return ('undefined' === typeof value);\n}\n/**\n * To return the generated unique name\n *\n * @param {string} definedName - To concatenate the unique id to provided name\n * @returns {string} ?\n * @private\n */\nexport function getUniqueID(definedName) {\n return definedName + '_' + uid++;\n}\n/**\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\n *\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\n * @returns {Function} ?\n * @private\n */\nexport function debounce(eventFunction, delay) {\n var out;\n return function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var later = function () {\n out = null;\n return eventFunction.apply(_this, args);\n };\n clearTimeout(out);\n out = setTimeout(later, delay);\n };\n}\n/**\n * To convert the object to string for query url\n *\n * @param {Object} data ?\n * @returns {string} ?\n * @private\n */\nexport function queryParams(data) {\n var array = [];\n var keys = Object.keys(data);\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\n var key = keys_2[_i];\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[\"\" + key]));\n }\n return array.join('&');\n}\n/**\n * To check whether the given array contains object.\n *\n * @param {any} value - Specifies the T type array to be checked.\n * @returns {boolean} ?\n * @private\n */\nexport function isObjectArray(value) {\n var parser = Object.prototype.toString;\n if (parser.call(value) === '[object Array]') {\n if (parser.call(value[0]) === '[object Object]') {\n return true;\n }\n }\n return false;\n}\n/**\n * To check whether the child element is descendant to parent element or parent and child are same element.\n *\n * @param {Element} child - Specifies the child element to compare with parent.\n * @param {Element} parent - Specifies the parent element.\n * @returns {boolean} ?\n * @private\n */\nexport function compareElementParent(child, parent) {\n var node = child;\n if (node === parent) {\n return true;\n }\n else if (node === document || !node) {\n return false;\n }\n else {\n return compareElementParent(node.parentNode, parent);\n }\n}\n/**\n * To throw custom error message.\n *\n * @param {string} message - Specifies the error message to be thrown.\n * @returns {void} ?\n * @private\n */\nexport function throwError(message) {\n try {\n throw new Error(message);\n }\n catch (e) {\n throw new Error(e.message + '\\n' + e.stack);\n }\n}\n/**\n * This function is used to print given element\n *\n * @param {Element} element - Specifies the print content element.\n * @param {Window} printWindow - Specifies the print window.\n * @returns {Window} ?\n * @private\n */\nexport function print(element, printWindow) {\n var div = document.createElement('div');\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\n if (blinks.length) {\n for (var l = 0, len = blinks.length; l < len; l++) {\n links.push(blinks[parseInt(l.toString(), 10)]);\n }\n }\n var reference = '';\n if (isNullOrUndefined(printWindow)) {\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\n }\n div.appendChild(element.cloneNode(true));\n for (var i = 0, len = links.length; i < len; i++) {\n reference += links[parseInt(i.toString(), 10)].outerHTML;\n }\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\n '' + '');\n printWindow.document.close();\n printWindow.focus();\n var interval = setInterval(function () {\n if (printWindow.ready) {\n printWindow.print();\n printWindow.close();\n clearInterval(interval);\n }\n }, 500);\n return printWindow;\n}\n/**\n * Function to normalize the units applied to the element.\n *\n * @param {number|string} value ?\n * @returns {string} result\n * @private\n */\nexport function formatUnit(value) {\n var result = value + '';\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\n return result;\n }\n return result + 'px';\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {void} result\n * @private\n */\nexport function enableBlazorMode() {\n isBlazorPlatform = true;\n}\n/**\n * Function to check whether the platform is blazor or not.\n *\n * @returns {boolean} result\n * @private\n */\nexport function isBlazor() {\n return isBlazorPlatform;\n}\n/**\n * Function to convert xPath to DOM element in blazor platform\n *\n * @returns {HTMLElement} result\n * @param {HTMLElement | object} element ?\n * @private\n */\nexport function getElement(element) {\n var xPath = 'xPath';\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[\"\" + xPath])) {\n return document.evaluate(element[\"\" + xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\n }\n return element;\n}\n/**\n * Function to fetch the Instances of a HTML element for the given component.\n *\n * @param {string | HTMLElement} element ?\n * @param {any} component ?\n * @returns {Object} ?\n * @private\n */\nexport function getInstance(element, component) {\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n for (var _i = 0, _a = elem[\"\" + instances]; _i < _a.length; _i++) {\n var inst = _a[_i];\n if (inst instanceof component) {\n return inst;\n }\n }\n }\n return null;\n}\n/**\n * Function to add instances for the given element.\n *\n * @param {string | HTMLElement} element ?\n * @param {Object} instance ?\n * @returns {void} ?\n * @private\n */\nexport function addInstance(element, instance) {\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\n if (elem[\"\" + instances]) {\n elem[\"\" + instances].push(instance);\n }\n else {\n elem[\"\" + instances] = [instance];\n }\n}\n/**\n * Function to generate the unique id.\n *\n * @returns {any} ?\n * @private\n */\nexport function uniqueID() {\n if ((typeof window) === 'undefined') {\n return;\n }\n var num = new Uint16Array(5);\n var intCrypto = window.msCrypto || window.crypto;\n return intCrypto.getRandomValues(num);\n}\n/**\n *\n * @param {Int16Array} num ?\n * @returns {string} ?\n */\nfunction combineArray(num) {\n var ret = '';\n for (var i = 0; i < 5; i++) {\n ret += (i ? ',' : '') + num[parseInt(i.toString(), 10)];\n }\n return ret;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Parser\n */\nvar defaultNumberingSystem = {\n 'latn': {\n '_digits': '0123456789',\n '_type': 'numeric'\n }\n};\nimport { isUndefined, getValue, isBlazor } from '../util';\nvar defaultNumberSymbols = {\n 'decimal': '.',\n 'group': ',',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'exponential': 'E'\n};\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\n/**\n * Interface for parser base\n *\n * @private\n */\nvar ParserBase = /** @class */ (function () {\n function ParserBase() {\n }\n /**\n * Returns the cldr object for the culture specifies\n *\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\n * @param {string} cName - Specifies the culture name.\n * @returns {Object} ?\n */\n ParserBase.getMainObject = function (obj, cName) {\n var value = isBlazor() ? cName : 'main.' + cName;\n return getValue(value, obj);\n };\n /**\n * Returns the numbering system object from given cldr data.\n *\n * @param {Object} obj - Specifies the object from which number system is acquired.\n * @returns {Object} ?\n */\n ParserBase.getNumberingSystem = function (obj) {\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\n };\n /**\n * Returns the reverse of given object keys or keys specified.\n *\n * @param {Object} prop - Specifies the object to be reversed.\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\n * @returns {Object} ?\n */\n ParserBase.reverseObject = function (prop, keys) {\n var propKeys = keys || Object.keys(prop);\n var res = {};\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\n var key = propKeys_1[_i];\n if (!Object.prototype.hasOwnProperty.call(res, prop[\"\" + key])) {\n res[prop[\"\" + key]] = key;\n }\n }\n return res;\n };\n /**\n * Returns the symbol regex by skipping the escape sequence.\n *\n * @param {string[]} props - Specifies the array values to be skipped.\n * @returns {RegExp} ?\n */\n ParserBase.getSymbolRegex = function (props) {\n var regexStr = props.map(function (str) {\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\n }).join('|');\n var regExp = RegExp;\n return new regExp(regexStr, 'g');\n };\n /**\n *\n * @param {Object} prop ?\n * @returns {Object} ?\n */\n ParserBase.getSymbolMatch = function (prop) {\n var matchKeys = Object.keys(defaultNumberSymbols);\n var ret = {};\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\n var key = matchKeys_1[_i];\n ret[prop[\"\" + key]] = defaultNumberSymbols[\"\" + key];\n }\n return ret;\n };\n /**\n * Returns regex string for provided value\n *\n * @param {string} val ?\n * @returns {string} ?\n */\n ParserBase.constructRegex = function (val) {\n var len = val.length;\n var ret = '';\n for (var i = 0; i < len; i++) {\n if (i !== len - 1) {\n ret += val[parseInt(i.toString(), 10)] + '|';\n }\n else {\n ret += val[parseInt(i.toString(), 10)];\n }\n }\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {string} value - Specifies the values to be replaced.\n * @param {RegExp} regex - Specifies the regex to search.\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\n * @returns {string} ?\n */\n ParserBase.convertValueParts = function (value, regex, obj) {\n return value.replace(regex, function (str) {\n return obj[\"\" + str];\n });\n };\n /**\n * Returns default numbering system object for formatting from cldr data\n *\n * @param {Object} obj ?\n * @returns {NumericObject} ?\n */\n ParserBase.getDefaultNumberingSystem = function (obj) {\n var ret = {};\n ret.obj = getValue('numbers', obj);\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\n return ret;\n };\n /**\n * Returns the replaced value of matching regex and obj mapper.\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} needSymbols ?\n * @param {boolean} blazorMode ?\n * @returns {Object} ?\n */\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\n var ret = {};\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem) || blazorMode) {\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\n var regExp = RegExp;\n ret.numberParseRegex = new regExp(this.constructRegex(digits), 'g');\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\n if (needSymbols) {\n ret.numericRegex = digits[0] + '-' + digits[9];\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\n ret.numberSystem = cur.nSystem;\n }\n }\n }\n return ret;\n };\n /**\n * Returns number mapper object for the provided cldr data\n *\n * @param {Object} curObj ?\n * @param {Object} numberSystem ?\n * @param {boolean} isNumber ?\n * @returns {NumberMapper} ?\n */\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\n var ret = { mapper: {} };\n var cur = this.getDefaultNumberingSystem(curObj);\n if (!isUndefined(cur.nSystem)) {\n ret.numberSystem = cur.nSystem;\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\n if (!isUndefined(digits)) {\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\n var i = latnNumberSystem_1[_i];\n ret.mapper[parseInt(i.toString(), 10)] = digits[parseInt(i.toString(), 10)];\n }\n }\n }\n return ret;\n };\n ParserBase.nPair = 'numericPair';\n ParserBase.nRegex = 'numericRegex';\n ParserBase.numberingSystems = defaultNumberingSystem;\n return ParserBase;\n}());\nexport { ParserBase };\n/**\n * @private\n */\nvar blazorCurrencyData = {\n 'DJF': 'Fdj',\n 'ERN': 'Nfk',\n 'ETB': 'Br',\n 'NAD': '$',\n 'ZAR': 'R',\n 'XAF': 'FCFA',\n 'GHS': 'GH₵',\n 'XDR': 'XDR',\n 'AED': 'د.إ.',\n 'BHD': 'د.ب.',\n 'DZD': 'د.ج.',\n 'EGP': 'ج.م.',\n 'ILS': '₪',\n 'IQD': 'د.ع.',\n 'JOD': 'د.ا.',\n 'KMF': 'CF',\n 'KWD': 'د.ك.',\n 'LBP': 'ل.ل.',\n 'LYD': 'د.ل.',\n 'MAD': 'د.م.',\n 'MRU': 'أ.م.',\n 'OMR': 'ر.ع.',\n 'QAR': 'ر.ق.',\n 'SAR': 'ر.س.',\n 'SDG': 'ج.س.',\n 'SOS': 'S',\n 'SSP': '£',\n 'SYP': 'ل.س.',\n 'TND': 'د.ت.',\n 'YER': 'ر.ي.',\n 'CLP': '$',\n 'INR': '₹',\n 'TZS': 'TSh',\n 'EUR': '€',\n 'AZN': '₼',\n 'RUB': '₽',\n 'BYN': 'Br',\n 'ZMW': 'K',\n 'BGN': 'лв.',\n 'NGN': '₦',\n 'XOF': 'CFA',\n 'BDT': '৳',\n 'CNY': '¥',\n 'BAM': 'КМ',\n 'UGX': 'USh',\n 'USD': '$',\n 'CZK': 'Kč',\n 'GBP': '£',\n 'DKK': 'kr.',\n 'KES': 'Ksh',\n 'CHF': 'CHF',\n 'MVR': 'ރ.',\n 'BTN': 'Nu.',\n 'XCD': 'EC$',\n 'AUD': '$',\n 'BBD': '$',\n 'BIF': 'FBu',\n 'BMD': '$',\n 'BSD': '$',\n 'BWP': 'P',\n 'BZD': '$',\n 'CAD': '$',\n 'NZD': '$',\n 'FJD': '$',\n 'FKP': '£',\n 'GIP': '£',\n 'GMD': 'D',\n 'GYD': '$',\n 'HKD': '$',\n 'IDR': 'Rp',\n 'JMD': '$',\n 'KYD': '$',\n 'LRD': '$',\n 'MGA': 'Ar',\n 'MOP': 'MOP$',\n 'MUR': 'Rs',\n 'MWK': 'MK',\n 'MYR': 'RM',\n 'PGK': 'K',\n 'PHP': '₱',\n 'PKR': 'Rs',\n 'RWF': 'RF',\n 'SBD': '$',\n 'SCR': 'SR',\n 'SEK': 'kr',\n 'SGD': '$',\n 'SHP': '£',\n 'SLL': 'Le',\n 'ANG': 'NAf.',\n 'SZL': 'E',\n 'TOP': 'T$',\n 'TTD': '$',\n 'VUV': 'VT',\n 'WST': 'WS$',\n 'ARS': '$',\n 'BOB': 'Bs',\n 'BRL': 'R$',\n 'COP': '$',\n 'CRC': '₡',\n 'CUP': '$',\n 'DOP': '$',\n 'GTQ': 'Q',\n 'HNL': 'L',\n 'MXN': '$',\n 'NIO': 'C$',\n 'PAB': 'B/.',\n 'PEN': 'S/',\n 'PYG': '₲',\n 'UYU': '$',\n 'VES': 'Bs.S',\n 'IRR': 'ريال',\n 'GNF': 'FG',\n 'CDF': 'FC',\n 'HTG': 'G',\n 'XPF': 'FCFP',\n 'HRK': 'kn',\n 'HUF': 'Ft',\n 'AMD': '֏',\n 'ISK': 'kr',\n 'JPY': '¥',\n 'GEL': '₾',\n 'CVE': '​',\n 'KZT': '₸',\n 'KHR': '៛',\n 'KPW': '₩',\n 'KRW': '₩',\n 'KGS': 'сом',\n 'AOA': 'Kz',\n 'LAK': '₭',\n 'MZN': 'MTn',\n 'MKD': 'ден',\n 'MNT': '₮',\n 'BND': '$',\n 'MMK': 'K',\n 'NOK': 'kr',\n 'NPR': 'रु',\n 'AWG': 'Afl.',\n 'SRD': '$',\n 'PLN': 'zł',\n 'AFN': '؋',\n 'STN': 'Db',\n 'MDL': 'L',\n 'RON': 'lei',\n 'UAH': '₴',\n 'LKR': 'රු.',\n 'ALL': 'Lekë',\n 'RSD': 'дин.',\n 'TJS': 'смн',\n 'THB': '฿',\n 'TMT': 'm.',\n 'TRY': '₺',\n 'UZS': 'сўм',\n 'VND': '₫',\n 'TWD': 'NT$'\n};\n/**\n *\n * @param {string} currencyCode ?\n * @returns {string} ?\n */\nexport function getBlazorCurrencySymbol(currencyCode) {\n return getValue(currencyCode || '', blazorCurrencyData);\n}\n","/***\n * Hijri parser\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var HijriParser;\n(function (HijriParser) {\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\n ];\n /**\n *\n * @param {Date} gDate ?\n * @returns {Object} ?\n */\n function getHijriDate(gDate) {\n var day = gDate.getDate();\n var month = gDate.getMonth();\n var year = gDate.getFullYear();\n var tMonth = month + 1;\n var tYear = year;\n if (tMonth < 3) {\n tYear -= 1;\n tMonth += 12;\n }\n var yPrefix = Math.floor(tYear / 100);\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\n var b = julianNumber + julilanOffset + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var tempMonth = Math.floor((b - d) / 30.6001);\n day = (b - d) - Math.floor(30.6001 * tempMonth);\n month = Math.floor((b - d) / 20.6001);\n if (month > 13) {\n c += 1;\n month -= 12;\n }\n month -= 1;\n year = c - 4716;\n var modifiedJulianDate = julianNumber - 2400000;\n // date calculation for year after 2077\n var iyear = 10631 / 30;\n var z = julianNumber - 1948084;\n var cyc = Math.floor(z / 10631.);\n z = z - 10631 * cyc;\n var j = Math.floor((z - 0.1335) / iyear);\n var iy = 30 * cyc + j;\n z = z - Math.floor(j * iyear + 0.1335);\n var im = Math.floor((z + 28.5001) / 29.5);\n /* istanbul ignore next */\n if (im === 13) {\n im = 12;\n }\n var tempDay = z - Math.floor(29.5001 * im - 29);\n var i = 0;\n for (; i < dateCorrection.length; i++) {\n if (dateCorrection[parseInt(i.toString(), 10)] > modifiedJulianDate) {\n break;\n }\n }\n var iln = i + 16260;\n var ii = Math.floor((iln - 1) / 12);\n var hYear = ii + 1;\n var hmonth = iln - 12 * ii;\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\n if ((hDate + '').length > 2) {\n hDate = tempDay;\n hmonth = im;\n hYear = iy;\n }\n return { year: hYear, month: hmonth, date: hDate };\n }\n HijriParser.getHijriDate = getHijriDate;\n /**\n *\n * @param {number} year ?\n * @param {number} month ?\n * @param {number} day ?\n * @returns {Date} ?\n */\n function toGregorian(year, month, day) {\n var iy = year;\n var im = month;\n var id = day;\n var ii = iy - 1;\n var iln = (ii * 12) + 1 + (im - 1);\n var i = iln - 16260;\n var mcjdn = id + dateCorrection[i - 1] - 1;\n var julianDate = mcjdn + 2400000;\n var z = Math.floor(julianDate + 0.5);\n var a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var gDay = b - d - Math.floor(e * 30.6001);\n var gMonth = e - (e > 13.5 ? 13 : 1);\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\n /* istanbul ignore next */\n if (gYear <= 0) {\n gMonth--;\n } // No year zero\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\n }\n HijriParser.toGregorian = toGregorian;\n})(HijriParser || (HijriParser = {}));\n","import { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\nimport { HijriParser } from '../hijri-parser';\nimport { isNullOrUndefined, extend } from '../util';\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\nvar standalone = 'stand-alone';\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\nvar timeSetter = {\n m: 'getMinutes',\n h: 'getHours',\n H: 'getHours',\n s: 'getSeconds',\n d: 'getDate',\n f: 'getMilliseconds'\n};\nexport var datePartMatcher = {\n 'M': 'month',\n 'd': 'day',\n 'E': 'weekday',\n 'c': 'weekday',\n 'y': 'year',\n 'm': 'minute',\n 'h': 'hour',\n 'H': 'hour',\n 's': 'second',\n 'L': 'month',\n 'a': 'designator',\n 'z': 'timeZone',\n 'Z': 'timeZone',\n 'G': 'era',\n 'f': 'milliseconds'\n};\nvar timeSeparator = 'timeSeparator';\n/**\n * Date Format is a framework provides support for date formatting.\n *\n * @private\n */\nvar DateFormat = /** @class */ (function () {\n function DateFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which date will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateFormat.dateFormat = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numObject = getValue('parserObject.numbers', dependable);\n var dateObject = dependable.dateObject;\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n if (isBlazor()) {\n resPattern = resPattern.replace(/tt/, 'a');\n }\n formatOptions.pattern = resPattern;\n formatOptions.numMapper = isBlazor() ?\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\n var str = patternMatch_1[_i];\n var len = str.length;\n var char = str[0];\n if (char === 'K') {\n char = 'h';\n }\n switch (char) {\n case 'E':\n case 'c':\n if (isBlazor()) {\n formatOptions.weekday = getValue('days.' + base.monthIndex[\"\" + len], dateObject);\n }\n else {\n formatOptions.weekday = dependable.dateObject[\"\" + base.days][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n break;\n case 'M':\n case 'L':\n if (isBlazor()) {\n formatOptions.month = getValue('months.' + base.monthIndex[\"\" + len], dateObject);\n }\n else {\n formatOptions.month = dependable.dateObject[\"\" + base.month][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n break;\n case 'a':\n formatOptions.designator = isBlazor() ?\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\n break;\n case 'G': {\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\n break;\n }\n case 'z':\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n break;\n }\n }\n }\n return function (value) {\n if (isNaN(value.getDate())) {\n return null;\n }\n return _this.intDateFormatter(value, formatOptions);\n };\n };\n /**\n * Returns formatted date string based on options passed.\n *\n * @param {Date} value ?\n * @param {FormatOptions} options ?\n * @returns {string} ?\n */\n DateFormat.intDateFormatter = function (value, options) {\n var pattern = options.pattern;\n var ret = '';\n var matches = pattern.match(base.dateParseRegex);\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\n var match = matches_1[_i];\n var length_1 = match.length;\n var char = match[0];\n if (char === 'K') {\n char = 'h';\n }\n var curval = void 0;\n var curvalstr = '';\n var isNumber = void 0;\n var processNumber = void 0;\n var curstr = '';\n switch (char) {\n case 'M':\n case 'L':\n curval = dObject.month;\n if (length_1 > 2) {\n ret += options.month[\"\" + curval];\n }\n else {\n isNumber = true;\n }\n break;\n case 'E':\n case 'c':\n ret += options.weekday[\"\" + weekdayKey[value.getDay()]];\n break;\n case 'H':\n case 'h':\n case 'm':\n case 's':\n case 'd':\n case 'f':\n isNumber = true;\n if (char === 'd') {\n curval = dObject.date;\n }\n else if (char === 'f') {\n isNumber = false;\n processNumber = true;\n curvalstr = value[\"\" + timeSetter[\"\" + char]]().toString();\n curvalstr = curvalstr.substring(0, length_1);\n var curlength = curvalstr.length;\n if (length_1 !== curlength) {\n if (length_1 > 3) {\n continue;\n }\n for (var i = 0; i < length_1 - curlength; i++) {\n curvalstr = '0' + curvalstr.toString();\n }\n }\n curstr += curvalstr;\n }\n else {\n curval = value[\"\" + timeSetter[\"\" + char]]();\n }\n if (char === 'h') {\n curval = curval % 12 || 12;\n }\n break;\n case 'y':\n processNumber = true;\n curstr += dObject.year;\n if (length_1 === 2) {\n curstr = curstr.substr(curstr.length - 2);\n }\n break;\n case 'a': {\n var desig = value.getHours() < 12 ? 'am' : 'pm';\n ret += options.designator[\"\" + desig];\n break;\n }\n case 'G': {\n var dec = value.getFullYear() < 0 ? 0 : 1;\n var retu = options.era[\"\" + dec];\n if (isNullOrUndefined(retu)) {\n retu = options.era[dec ? 0 : 1];\n }\n ret += retu || '';\n break;\n }\n case '\\'':\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\n break;\n case 'z': {\n var timezone = value.getTimezoneOffset();\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\n if (timezone === 0) {\n ret += options.timeZone.gmtZeroFormat;\n }\n else {\n processNumber = true;\n curstr = this.getTimeZoneValue(timezone, pattern_1);\n }\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\n break;\n }\n case ':':\n ret += options.numMapper.numberSymbols[\"\" + timeSeparator];\n break;\n case '/':\n ret += options.dateSeperator;\n break;\n case 'W':\n isNumber = true;\n curval = base.getWeekOfYear(value);\n break;\n default:\n ret += match;\n }\n if (isNumber) {\n processNumber = true;\n curstr = this.checkTwodigitNumber(curval, length_1);\n }\n if (processNumber) {\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\n }\n }\n return ret;\n };\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\n if (isIslamic) {\n return HijriParser.getHijriDate(value);\n }\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\n };\n /**\n * Returns two digit numbers for given value and length\n *\n * @param {number} val ?\n * @param {number} len ?\n * @returns {string} ?\n */\n DateFormat.checkTwodigitNumber = function (val, len) {\n var ret = val + '';\n if (len === 2 && ret.length !== 2) {\n return '0' + ret;\n }\n return ret;\n };\n /**\n * Returns the value of the Time Zone.\n *\n * @param {number} tVal ?\n * @param {string} pattern ?\n * @returns {string} ?\n * @private\n */\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\n var _this = this;\n var splt = pattern.split(';');\n var curPattern = splt[tVal > 0 ? 1 : 0];\n var no = Math.abs(tVal);\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\n var len = str.length;\n var ishour = str.indexOf('H') !== -1;\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\n });\n };\n return DateFormat;\n}());\nexport { DateFormat };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\nimport { defaultCurrencyCode } from '../internationalization';\nimport { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nvar errorText = {\n 'ms': 'minimumSignificantDigits',\n 'ls': 'maximumSignificantDigits',\n 'mf': 'minimumFractionDigits',\n 'lf': 'maximumFractionDigits'\n};\nvar percentSign = 'percentSign';\nvar minusSign = 'minusSign';\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\n/**\n * Module for number formatting.\n *\n * @private\n */\nvar NumberFormat = /** @class */ (function () {\n function NumberFormat() {\n }\n /**\n * Returns the formatter function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberFormat.numberFormatter = function (culture, option, cldr) {\n var _this = this;\n var fOptions = extend({}, option);\n var cOptions = {};\n var dOptions = {};\n var symbolPattern;\n var dependable = base.getDependables(cldr, culture, '', true);\n var numObject = dependable.numericObject;\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol, option.ignoreCurrency);\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + percentSign];\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\n dOptions.numberMapper.numberSymbols[\"\" + minusSign];\n var symbols = dOptions.numberMapper.numberSymbols;\n if ((option.format) && !(base.formatRegex.test(option.format))) {\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\n if (!isUndefined(fOptions.useGrouping) && fOptions.useGrouping) {\n fOptions.useGrouping = cOptions.pData.useGrouping;\n }\n }\n else {\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\n fOptions.isCurrency = fOptions.type === 'currency';\n fOptions.isPercent = fOptions.type === 'percent';\n if (!isBlazor()) {\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\n }\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\n if (!isUndefined(fOptions.fractionDigits)) {\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\n }\n if (isUndefined(fOptions.useGrouping)) {\n fOptions.useGrouping = true;\n }\n if (fOptions.isCurrency && !isBlazor()) {\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\n }\n if (!isBlazor()) {\n var split = symbolPattern.split(';');\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\n if (fOptions.useGrouping) {\n fOptions.groupSeparator = symbols[mapper[2]];\n fOptions.groupData = this.getGroupingDetails(split[0]);\n }\n }\n else {\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\n if (fOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\n }\n }\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\n if (minFrac) {\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\n }\n if (isUndefined(fOptions.maximumFractionDigits)) {\n var mval = cOptions.nData.maximumFraction;\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\n }\n var mfrac = fOptions.minimumFractionDigits;\n var lfrac = fOptions.maximumFractionDigits;\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\n if (mfrac > lfrac) {\n fOptions.maximumFractionDigits = mfrac;\n }\n }\n }\n extend(cOptions.nData, fOptions);\n extend(cOptions.pData, fOptions);\n return function (value) {\n if (isNaN(value)) {\n return symbols[mapper[1]];\n }\n else if (!isFinite(value)) {\n return symbols[mapper[0]];\n }\n return _this.intNumberFormatter(value, cOptions, dOptions, option);\n };\n };\n /**\n * Returns grouping details for the pattern provided\n *\n * @param {string} pattern ?\n * @returns {GroupDetails} ?\n */\n NumberFormat.getGroupingDetails = function (pattern) {\n var ret = {};\n var match = pattern.match(base.negativeDataRegex);\n if (match && match[4]) {\n var pattern_1 = match[4];\n var p = pattern_1.lastIndexOf(',');\n if (p !== -1) {\n var temp = pattern_1.split('.')[0];\n ret.primary = (temp.length - p) - 1;\n var s = pattern_1.lastIndexOf(',', p - 1);\n if (s !== -1) {\n ret.secondary = p - 1 - s;\n }\n }\n }\n return ret;\n };\n /**\n * Returns if the provided integer range is valid.\n *\n * @param {number} val1 ?\n * @param {number} val2 ?\n * @param {boolean} checkbothExist ?\n * @param {boolean} isFraction ?\n * @returns {boolean} ?\n */\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\n var decide = isFraction ? 'f' : 's';\n var dint = 0;\n var str1 = errorText['l' + decide];\n var str2 = errorText['m' + decide];\n if (!isUndefined(val1)) {\n this.checkRange(val1, str1, isFraction);\n dint++;\n }\n if (!isUndefined(val2)) {\n this.checkRange(val2, str2, isFraction);\n dint++;\n }\n if (dint === 2) {\n if (val1 < val2) {\n throwError(str2 + 'specified must be less than the' + str1);\n }\n else {\n return true;\n }\n }\n else if (checkbothExist && dint === 1) {\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\n }\n return false;\n };\n /**\n * Check if the provided fraction range is valid\n *\n * @param {number} val ?\n * @param {string} text ?\n * @param {boolean} isFraction ?\n * @returns {void} ?\n */\n NumberFormat.checkRange = function (val, text, isFraction) {\n var range = isFraction ? [0, 20] : [1, 21];\n if (val < range[0] || val > range[1]) {\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\n }\n };\n /**\n * Returns formatted numeric string for provided formatting options\n *\n * @param {number} value ?\n * @param {base.GenericFormatOptions} fOptions ?\n * @param {CommonOptions} dOptions ?\n * @param {NumberFormatOptions} [option] ?\n * @returns {string} ?\n */\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions, option) {\n var curData;\n if (isUndefined(fOptions.nData.type)) {\n return undefined;\n }\n else {\n if (value < 0) {\n value = value * -1;\n curData = fOptions.nData;\n }\n else if (value === 0) {\n curData = fOptions.zeroData || fOptions.pData;\n }\n else {\n curData = fOptions.pData;\n }\n var fValue = '';\n if (curData.isPercent) {\n value = value * 100;\n }\n if (curData.groupOne) {\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\n }\n else {\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits, option);\n if (curData.minimumIntegerDigits) {\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\n }\n if (dOptions.isCustomFormat && curData.minimumFractionDigits < curData.maximumFractionDigits\n && /\\d+\\.\\d+/.test(fValue)) {\n var temp = fValue.split('.');\n var decimalPart = temp[1];\n var len = decimalPart.length;\n for (var i = len - 1; i >= 0; i--) {\n if (decimalPart[parseInt(i.toString(), 10)] === '0' && i >= curData.minimumFractionDigits) {\n decimalPart = decimalPart.slice(0, i);\n }\n else {\n break;\n }\n }\n fValue = temp[0] + '.' + decimalPart;\n }\n }\n if (curData.type === 'scientific') {\n fValue = value.toExponential(curData.maximumFractionDigits);\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\n }\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\n fValue = curData.format === '#,###,,;(#,###,,)' ? this.customPivotFormat(parseInt(fValue, 10)) : fValue;\n if (curData.useGrouping) {\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\n }\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\n if (curData.nlead === 'N/A') {\n return curData.nlead;\n }\n else {\n if (fValue === '0' && option && option.format === '0') {\n return fValue + curData.nend;\n }\n return curData.nlead + fValue + curData.nend;\n }\n }\n };\n /**\n * Returns significant digits processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @returns {string} ?\n */\n NumberFormat.processSignificantDigits = function (value, min, max) {\n var temp = value + '';\n var tn;\n var length = temp.length;\n if (length < min) {\n return value.toPrecision(min);\n }\n else {\n temp = value.toPrecision(max);\n tn = +temp;\n return tn + '';\n }\n };\n /**\n * Returns grouped numeric string\n *\n * @param {string} val ?\n * @param {number} level1 ?\n * @param {string} sep ?\n * @param {string} decimalSymbol ?\n * @param {number} level2 ?\n * @returns {string} ?\n */\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\n var split = val.split(decimalSymbol);\n var prefix = split[0];\n var length = prefix.length;\n var str = '';\n while (length > level1) {\n str = prefix.slice(length - level1, length) + (str.length ?\n (sep + str) : '');\n length -= level1;\n if (flag) {\n level1 = level2;\n flag = false;\n }\n }\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\n return split.join(decimalSymbol);\n };\n /**\n * Returns fraction processed numeric string\n *\n * @param {number} value ?\n * @param {number} min ?\n * @param {number} max ?\n * @param {NumberFormatOptions} [option] ?\n * @returns {string} ?\n */\n NumberFormat.processFraction = function (value, min, max, option) {\n var temp = (value + '').split('.')[1];\n var length = temp ? temp.length : 0;\n if (min && length < min) {\n var ret = '';\n if (length === 0) {\n ret = value.toFixed(min);\n }\n else {\n ret += value;\n for (var j = 0; j < min - length; j++) {\n ret += '0';\n }\n return ret;\n }\n return value.toFixed(min);\n }\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\n return value.toFixed(max);\n }\n var str = value + '';\n if (str[0] === '0' && option && option.format === '###.00') {\n str = str.slice(1);\n }\n return str;\n };\n /**\n * Returns integer processed numeric string\n *\n * @param {string} value ?\n * @param {number} min ?\n * @returns {string} ?\n */\n NumberFormat.processMinimumIntegers = function (value, min) {\n var temp = value.split('.');\n var lead = temp[0];\n var len = lead.length;\n if (len < min) {\n for (var i = 0; i < min - len; i++) {\n lead = '0' + lead;\n }\n temp[0] = lead;\n }\n return temp.join('.');\n };\n /**\n * Returns custom format for pivot table\n *\n * @param {number} value ?\n * @returns {string} ?\n */\n NumberFormat.customPivotFormat = function (value) {\n if (value >= 500000) {\n value /= 1000000;\n var _a = value.toString().split('.'), integer = _a[0], decimal = _a[1];\n return decimal && +decimal.substring(0, 1) >= 5\n ? Math.ceil(value).toString()\n : Math.floor(value).toString();\n }\n return '';\n };\n return NumberFormat;\n}());\nexport { NumberFormat };\n","import { IntlBase as base } from './intl-base';\nimport { ParserBase as parser } from './parser-base';\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\nimport { datePartMatcher } from './date-formatter';\nimport { HijriParser } from '../hijri-parser';\nvar standalone = 'stand-alone';\nvar latnRegex = /^[0-9]*$/;\nvar timeSetter = {\n minute: 'setMinutes',\n hour: 'setHours',\n second: 'setSeconds',\n day: 'setDate',\n month: 'setMonth',\n milliseconds: 'setMilliseconds'\n};\nvar month = 'months';\n/**\n * Date Parser.\n *\n * @private\n */\nvar DateParser = /** @class */ (function () {\n function DateParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n DateParser.dateParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, option.calendar);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\n var parseOptions = {};\n if (isBlazor() && option.isServerRendered) {\n option = base.compareBlazorDateFormats(option, culture);\n }\n var resPattern = option.format ||\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\n var regexString = '';\n var hourOnly;\n if (isUndefined(resPattern)) {\n throwError('Format options or type given must be invalid');\n }\n else {\n resPattern = base.ConvertDateToWeekFormat(resPattern);\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\n var length_1 = patternMatch.length;\n var gmtCorrection = 0;\n var zCorrectTemp = 0;\n var isgmtTraversed = false;\n var nRegx = numOptions.numericRegex;\n var numMapper = isBlazor() ? dependable.parserObject.numbers\n : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n for (var i = 0; i < length_1; i++) {\n var str = patternMatch[parseInt(i.toString(), 10)];\n var len = str.length;\n var char = (str[0] === 'K') ? 'h' : str[0];\n var isNumber = void 0;\n var canUpdate = void 0;\n var charKey = datePartMatcher[\"\" + char];\n var optional = (len === 2) ? '' : '?';\n if (isgmtTraversed) {\n gmtCorrection = zCorrectTemp;\n isgmtTraversed = false;\n }\n switch (char) {\n case 'E':\n case 'c': {\n var weekData = void 0;\n if (isBlazor()) {\n weekData = getValue('days.' + base.monthIndex[\"\" + len], dependable.dateObject);\n }\n else {\n weekData = dependable.dateObject[\"\" + base.days][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n var weekObject = parser.reverseObject(weekData);\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\n break;\n }\n case 'M':\n case 'L':\n case 'd':\n case 'm':\n case 's':\n case 'h':\n case 'H':\n case 'f':\n canUpdate = true;\n if ((char === 'M' || char === 'L') && len > 2) {\n var monthData = void 0;\n if (isBlazor()) {\n monthData = getValue('months.' + base.monthIndex[\"\" + len], dependable.dateObject);\n }\n else {\n monthData = dependable.dateObject[\"\" + month][\"\" + standalone][base.monthIndex[\"\" + len]];\n }\n parseOptions[\"\" + charKey] = parser.reverseObject(monthData);\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + ')';\n }\n else if (char === 'f') {\n if (len > 3) {\n continue;\n }\n isNumber = true;\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\n }\n else {\n isNumber = true;\n regexString += '(' + nRegx + nRegx + optional + ')';\n }\n if (char === 'h') {\n parseOptions.hour12 = true;\n }\n break;\n case 'W': {\n var opt = len === 1 ? '?' : '';\n regexString += '(' + nRegx + opt + nRegx + ')';\n break;\n }\n case 'y':\n canUpdate = isNumber = true;\n if (len === 2) {\n regexString += '(' + nRegx + nRegx + ')';\n }\n else {\n regexString += '(' + nRegx + '{' + len + ',})';\n }\n break;\n case 'a': {\n canUpdate = true;\n var periodValur = isBlazor() ?\n getValue('dayPeriods', dependable.dateObject) :\n getValue('dayPeriods.format.wide', dependable.dateObject);\n parseOptions[\"\" + charKey] = parser.reverseObject(periodValur);\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + ')';\n break;\n }\n case 'G': {\n canUpdate = true;\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\n parseOptions[\"\" + charKey] = parser.reverseObject(isBlazor() ?\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\n regexString += '(' + Object.keys(parseOptions[\"\" + charKey]).join('|') + '?)';\n break;\n }\n case 'z': {\n var tval = new Date().getTimezoneOffset();\n canUpdate = (tval !== 0);\n parseOptions[\"\" + charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\n var tzone = parseOptions[\"\" + charKey];\n hourOnly = (len < 4);\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\n isgmtTraversed = true;\n zCorrectTemp = hourOnly ? 6 : 12;\n break;\n }\n case '\\'': {\n var iString = str.replace(/'/g, '');\n regexString += '(' + iString + ')?';\n break;\n }\n default:\n regexString += '([\\\\D])';\n break;\n }\n if (canUpdate) {\n parseOptions.evalposition[\"\" + charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\n }\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\n var regExp = RegExp;\n parseOptions.parserRegex = new regExp('^' + regexString + '$', 'i');\n }\n }\n }\n return function (value) {\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\n return null;\n }\n if (parseOptions.isIslamic) {\n var dobj = {};\n var tYear = parsedDateParts.year;\n var tDate = parsedDateParts.day;\n var tMonth = parsedDateParts.month;\n var ystrig = tYear ? (tYear + '') : '';\n var is2DigitYear = (ystrig.length === 2);\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\n dobj = HijriParser.getHijriDate(new Date());\n }\n if (is2DigitYear) {\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\n }\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\n parsedDateParts.year = dateObject.getFullYear();\n parsedDateParts.month = dateObject.getMonth() + 1;\n parsedDateParts.day = dateObject.getDate();\n }\n return _this.getDateObject(parsedDateParts);\n };\n };\n /**\n * Returns date object for provided date options\n *\n * @param {DateParts} options ?\n * @param {Date} value ?\n * @returns {Date} ?\n */\n DateParser.getDateObject = function (options, value) {\n var res = value || new Date();\n res.setMilliseconds(0);\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\n var y = options.year;\n var desig = options.designator;\n var tzone = options.timeZone;\n if (!isUndefined(y)) {\n var len = (y + '').length;\n if (len <= 2) {\n var century = Math.floor(res.getFullYear() / 100) * 100;\n y += century;\n }\n res.setFullYear(y);\n }\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\n var key = tKeys_1[_i];\n var tValue = options[\"\" + key];\n if (isUndefined(tValue) && key === 'day') {\n res.setDate(1);\n }\n if (!isUndefined(tValue)) {\n if (key === 'month') {\n tValue -= 1;\n if (tValue < 0 || tValue > 11) {\n return new Date('invalid');\n }\n var pDate = res.getDate();\n res.setDate(1);\n res[timeSetter[\"\" + key]](tValue);\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\n res.setDate(pDate < lDate ? pDate : lDate);\n }\n else {\n if (key === 'day') {\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\n if ((tValue < 1 || tValue > lastDay)) {\n return null;\n }\n }\n res[\"\" + timeSetter[\"\" + key]](tValue);\n }\n }\n }\n if (!isUndefined(desig)) {\n var hour = res.getHours();\n if (desig === 'pm') {\n res.setHours(hour + (hour === 12 ? 0 : 12));\n }\n else if (hour === 12) {\n res.setHours(0);\n }\n }\n if (!isUndefined(tzone)) {\n var tzValue = tzone - res.getTimezoneOffset();\n if (tzValue !== 0) {\n res.setMinutes(res.getMinutes() + tzValue);\n }\n }\n return res;\n };\n /**\n * Returns date parsing options for provided value along with parse and numeric options\n *\n * @param {string} value ?\n * @param {ParseOptions} parseOptions ?\n * @param {NumericOptions} num ?\n * @returns {DateParts} ?\n */\n DateParser.internalDateParse = function (value, parseOptions, num) {\n var matches = value.match(parseOptions.parserRegex);\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\n if (isNullOrUndefined(matches)) {\n return null;\n }\n else {\n var props = Object.keys(parseOptions.evalposition);\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var curObject = parseOptions.evalposition[\"\" + prop];\n var matchString = matches[curObject.pos];\n if (curObject.isNumber) {\n retOptions[\"\" + prop] = this.internalNumberParser(matchString, num);\n }\n else {\n if (prop === 'timeZone' && !isUndefined(matchString)) {\n var pos = curObject.pos;\n var val = void 0;\n var tmatch = matches[pos + 1];\n var flag = !isUndefined(tmatch);\n if (curObject.hourOnly) {\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\n }\n else {\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\n }\n if (!isNullOrUndefined(val)) {\n retOptions[\"\" + prop] = val;\n }\n }\n else {\n var cultureOptions = ['en-US', 'en-MH', 'en-MP'];\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\n matchString = ((prop !== 'month') && (prop === 'designator') && parseOptions.culture && parseOptions.culture.indexOf('en-') !== -1 && cultureOptions.indexOf(parseOptions.culture) === -1)\n ? matchString.toLowerCase() : matchString;\n retOptions[\"\" + prop] = parseOptions[\"\" + prop][\"\" + matchString];\n }\n }\n }\n if (parseOptions.hour12) {\n retOptions.hour12 = true;\n }\n }\n return retOptions;\n };\n /**\n * Returns parsed number for provided Numeric string and Numeric Options\n *\n * @param {string} value ?\n * @param {NumericOptions} option ?\n * @returns {number} ?\n */\n DateParser.internalNumberParser = function (value, option) {\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\n if (latnRegex.test(value)) {\n return +value;\n }\n return null;\n };\n /**\n * Returns parsed time zone RegExp for provided hour format and time zone\n *\n * @param {string} hourFormat ?\n * @param {base.TimeZoneOptions} tZone ?\n * @param {string} nRegex ?\n * @returns {string} ?\n */\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\n var pattern = tZone.gmtFormat;\n var ret;\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\n ret = hourFormat.replace('+', '\\\\+');\n if (hourFormat.indexOf('HH') !== -1) {\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\n }\n else {\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\n }\n var splitStr = (ret.split(';').map(function (str) {\n return pattern.replace('{0}', str);\n }));\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\n return ret;\n };\n /**\n * Returns zone based value.\n *\n * @param {boolean} flag ?\n * @param {string} val1 ?\n * @param {string} val2 ?\n * @param {NumericOptions} num ?\n * @returns {number} ?\n */\n DateParser.getZoneValue = function (flag, val1, val2, num) {\n var ival = flag ? val1 : val2;\n if (!ival) {\n return 0;\n }\n var value = this.internalNumberParser(ival, num);\n if (flag) {\n return -value;\n }\n return value;\n };\n return DateParser;\n}());\nexport { DateParser };\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\nimport { ParserBase as parser } from './parser-base';\nimport { IntlBase as base } from './intl-base';\nvar regExp = RegExp;\nvar parseRegex = new regExp('^([^0-9]*)' + '(([0-9,]*[0-9]+)(.[0-9]+)?)' + '([Ee][+-]?[0-9]+)?([^0-9]*)$');\nvar groupRegex = /,/g;\nvar keys = ['minusSign', 'infinity'];\n/**\n * Module for Number Parser.\n *\n * @private\n */\nvar NumberParser = /** @class */ (function () {\n function NumberParser() {\n }\n /**\n * Returns the parser function for given skeleton.\n *\n * @param {string} culture - Specifies the culture name to be which formatting.\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\n * @param {Object} cldr - Specifies the global cldr data collection.\n * @returns {Function} ?\n */\n NumberParser.numberParser = function (culture, option, cldr) {\n var _this = this;\n var dependable = base.getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\n parseOptions.custom = false;\n if (!parseOptions.fractionDigits) {\n if (option.maximumFractionDigits) {\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\n }\n }\n }\n else {\n extend(parseOptions, base.customFormat(option.format, null, null));\n }\n var numbers = getValue('numbers', dependable.parserObject);\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\n var symbolpattern;\n if (!isBlazor()) {\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\n if (symbolpattern) {\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\n var split = symbolpattern.split(';');\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\n parseOptions.pData = base.getFormatData(split[0], true, '');\n }\n }\n else {\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\n if (parseOptions.type === 'currency' && option.currency) {\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\n }\n }\n return function (value) {\n return _this.getParsedNumber(value, parseOptions, numOptions);\n };\n };\n /**\n * Returns parsed number for the provided formatting options\n *\n * @param {string} value ?\n * @param {NumericParts} options ?\n * @param {NumericOptions} numOptions ?\n * @returns {number} ?\n */\n NumberParser.getParsedNumber = function (value, options, numOptions) {\n var isNegative;\n var isPercent;\n var tempValue;\n var lead;\n var end;\n var ret;\n if (value.indexOf(options.infinity) !== -1) {\n return Infinity;\n }\n else {\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\n if (value.indexOf('.') === 0) {\n value = '0' + value;\n }\n var matches = value.match(parseRegex);\n if (isNullOrUndefined(matches)) {\n return NaN;\n }\n lead = matches[1];\n tempValue = matches[2];\n var exponent = matches[5];\n end = matches[6];\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\n isPercent = isNegative ?\n options.nData.isPercent :\n options.pData.isPercent;\n tempValue = tempValue.replace(groupRegex, '');\n if (exponent) {\n tempValue += exponent;\n }\n ret = +tempValue;\n if (options.type === 'percent' || isPercent) {\n ret = ret / 100;\n }\n if (options.custom || options.fractionDigits) {\n ret = parseFloat(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\n }\n if (options.maximumFractionDigits) {\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\n }\n if (isNegative) {\n ret *= -1;\n }\n return ret;\n }\n };\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\n var decimalSplitValue = value.split('.');\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\n ret = +(ret.toFixed(options.custom ?\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\n }\n return ret;\n };\n return NumberParser;\n}());\nexport { NumberParser };\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { isNullOrUndefined, getValue, extend, isBlazor } from './util';\nvar Observer = /** @class */ (function () {\n function Observer(context) {\n this.ranArray = [];\n this.boundedEvents = {};\n if (isNullOrUndefined(context)) {\n return;\n }\n this.context = context;\n }\n /**\n * To attach handler for given property in current context.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Specifies the handler function to be called while event notified.\n * @param {Object} context - Specifies the context binded to the handler.\n * @param {string} id - specifies the random generated id.\n * @returns {void}\n */\n Observer.prototype.on = function (property, handler, context, id) {\n if (isNullOrUndefined(handler)) {\n return;\n }\n var cntxt = context || this.context;\n if (this.notExist(property)) {\n this.boundedEvents[\"\" + property] = [{ handler: handler, context: cntxt, id: id }];\n return;\n }\n if (!isNullOrUndefined(id)) {\n if (this.ranArray.indexOf(id) === -1) {\n this.ranArray.push(id);\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt, id: id });\n }\n }\n else if (!this.isHandlerPresent(this.boundedEvents[\"\" + property], handler)) {\n this.boundedEvents[\"\" + property].push({ handler: handler, context: cntxt });\n }\n };\n /**\n * To remove handlers from a event attached using on() function.\n *\n * @param {string} property - specifies the name of the event.\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\n * @param {string} id - specifies the random generated id.\n * @returns {void} ?\n */\n Observer.prototype.off = function (property, handler, id) {\n if (this.notExist(property)) {\n return;\n }\n var curObject = getValue(property, this.boundedEvents);\n if (handler) {\n for (var i = 0; i < curObject.length; i++) {\n if (id) {\n if (curObject[parseInt(i.toString(), 10)].id === id) {\n curObject.splice(i, 1);\n var indexLocation = this.ranArray.indexOf(id);\n if (indexLocation !== -1) {\n this.ranArray.splice(indexLocation, 1);\n }\n break;\n }\n }\n else if (handler === curObject[parseInt(i.toString(), 10)].handler) {\n curObject.splice(i, 1);\n break;\n }\n }\n }\n else {\n delete this.boundedEvents[\"\" + property];\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\n * @returns {void} ?\n */\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\n if (this.notExist(property)) {\n if (successHandler) {\n successHandler.call(this, argument);\n }\n return;\n }\n if (argument) {\n argument.name = property;\n }\n var blazor = 'Blazor';\n var curObject = getValue(property, this.boundedEvents).slice(0);\n if (window[\"\" + blazor]) {\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\n }\n else {\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\n var cur = curObject_1[_i];\n cur.handler.call(cur.context, argument);\n }\n if (successHandler) {\n successHandler.call(this, argument);\n }\n }\n };\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\n var _this = this;\n var isTrigger = index === objs.length - 1;\n if (index < objs.length) {\n var obj_1 = objs[parseInt(index.toString(), 10)];\n var promise = obj_1.handler.call(obj_1.context, argument);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n return promise;\n }\n promise.then(function (data) {\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\n extend(argument, argument, data, true);\n if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }).catch(function (data) {\n if (errorHandler) {\n errorHandler.call(obj_1.context, typeof data === 'string' &&\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\n }\n });\n }\n else if (successHandler && isTrigger) {\n successHandler.call(obj_1.context, argument);\n }\n else {\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\n }\n }\n };\n Observer.prototype.dateReviver = function (key, value) {\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\n return (new Date(value));\n }\n return (value);\n };\n Observer.prototype.isJson = function (value) {\n try {\n JSON.parse(value);\n }\n catch (e) {\n return false;\n }\n return true;\n };\n /**\n * To destroy handlers in the event\n *\n * @returns {void} ?\n */\n Observer.prototype.destroy = function () {\n this.boundedEvents = this.context = undefined;\n };\n /**\n * To remove internationalization events\n *\n * @returns {void} ?\n */\n Observer.prototype.offIntlEvents = function () {\n var eventsArr = this.boundedEvents['notifyExternalChange'];\n if (eventsArr) {\n for (var i = 0; i < eventsArr.length; i++) {\n var curContext = eventsArr[parseInt(i.toString(), 10)].context;\n if (curContext && curContext.detectFunction && curContext.randomId && curContext.isReactMock) {\n this.off('notifyExternalChange', curContext.detectFunction, curContext.randomId);\n i--;\n }\n }\n if (!this.boundedEvents['notifyExternalChange'].length) {\n delete this.boundedEvents['notifyExternalChange'];\n }\n }\n };\n /**\n * Returns if the property exists.\n *\n * @param {string} prop ?\n * @returns {boolean} ?\n */\n Observer.prototype.notExist = function (prop) {\n return Object.prototype.hasOwnProperty.call(this.boundedEvents, prop) === false || this.boundedEvents[\"\" + prop].length <= 0;\n };\n /**\n * Returns if the handler is present.\n *\n * @param {BoundOptions[]} boundedEvents ?\n * @param {Function} handler ?\n * @returns {boolean} ?\n */\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\n var cur = boundedEvents_1[_i];\n if (cur.handler === handler) {\n return true;\n }\n }\n return false;\n };\n return Observer;\n}());\nexport { Observer };\n","import { DateFormat } from './intl/date-formatter';\nimport { NumberFormat } from './intl/number-formatter';\nimport { DateParser } from './intl/date-parser';\nimport { NumberParser } from './intl/number-parser';\nimport { IntlBase } from './intl/intl-base';\nimport { extend, getValue, isBlazor } from './util';\nimport { Observer } from './observer';\n/**\n * Specifies the observer used for external change detection.\n */\nexport var onIntlChange = new Observer();\n/**\n * Specifies the default rtl status for EJ2 components.\n */\nexport var rightToLeft = false;\n/**\n * Specifies the CLDR data loaded for internationalization functionalities.\n *\n * @private\n */\nexport var cldrData = {};\n/**\n * Specifies the default culture value to be considered.\n *\n * @private\n */\nexport var defaultCulture = 'en-US';\n/**\n * Specifies default currency code to be considered\n *\n * @private\n */\nexport var defaultCurrencyCode = 'USD';\nvar mapper = ['numericObject', 'dateObject'];\n/**\n * Internationalization class provides support to parse and format the number and date object to the desired format.\n * ```typescript\n * // To set the culture globally\n * setCulture('en-GB');\n *\n * // To set currency code globally\n * setCurrencyCode('EUR');\n *\n * //Load cldr data\n * loadCldr(gregorainData);\n * loadCldr(timeZoneData);\n * loadCldr(numbersData);\n * loadCldr(numberSystemData);\n *\n * // To use formatter in component side\n * let Intl:Internationalization = new Internationalization();\n *\n * // Date formatting\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\n * dateFormatter(new Date('11/2/2016'));\n * dateFormatter(new Date('25/2/2030'));\n * Intl.formatDate(new Date(),{skeleton:'E'});\n *\n * //Number formatting\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\n * numberFormatter(24563334);\n * Intl.formatNumber(123123,{skeleton:'p2'});\n *\n * // Date parser\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\n * dateParser('10:30 PM');\n * Intl.parseDate('10',{skeleton:'H'});\n * ```\n */\nvar Internationalization = /** @class */ (function () {\n function Internationalization(cultureName) {\n if (cultureName) {\n this.culture = cultureName;\n }\n }\n /**\n * Returns the format function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateFormat = function (options) {\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\n };\n /**\n * Returns the format function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberFormat = function (options) {\n if (options && !options.currency) {\n options.currency = defaultCurrencyCode;\n }\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getDateParser = function (options) {\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\n };\n /**\n * Returns the parser function for given options.\n *\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\n * @returns {Function} ?\n */\n Internationalization.prototype.getNumberParser = function (options) {\n if (isBlazor() && options && !options.format) {\n options.minimumFractionDigits = 0;\n }\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\n };\n /**\n * Returns the formatted string based on format options.\n *\n * @param {number} value - Specifies the number to format.\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatNumber = function (value, option) {\n return this.getNumberFormat(option)(value);\n };\n /**\n * Returns the formatted date string based on format options.\n *\n * @param {Date} value - Specifies the number to format.\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\n * @returns {string} ?\n */\n Internationalization.prototype.formatDate = function (value, option) {\n return this.getDateFormat(option)(value);\n };\n /**\n * Returns the date object for given date string and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\n * @returns {Date} ?\n */\n Internationalization.prototype.parseDate = function (value, option) {\n return this.getDateParser(option)(value);\n };\n /**\n * Returns the number object from the given string value and options.\n *\n * @param {string} value - Specifies the string to parse.\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\n * @returns {number} ?\n */\n Internationalization.prototype.parseNumber = function (value, option) {\n return this.getNumberParser(option)(value);\n };\n /**\n * Returns Native Date Time Pattern\n *\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\n };\n /**\n * Returns Native Number Pattern\n *\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\n * @param {boolean} isExcel ?\n * @returns {string} ?\n * @private\n */\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\n };\n /**\n * Returns the First Day of the Week\n *\n * @returns {number} ?\n */\n Internationalization.prototype.getFirstDayOfWeek = function () {\n return IntlBase.getWeekData(this.getCulture(), cldrData);\n };\n /**\n * Returns the culture\n *\n * @returns {string} ?\n */\n Internationalization.prototype.getCulture = function () {\n return this.culture || defaultCulture;\n };\n return Internationalization;\n}());\nexport { Internationalization };\n/**\n * Set the default culture to all EJ2 components\n *\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCulture(cultureName) {\n defaultCulture = cultureName;\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\n}\n/**\n * Set the default currency code to all EJ2 components\n *\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\n * @returns {void} ?\n */\nexport function setCurrencyCode(currencyCode) {\n defaultCurrencyCode = currencyCode;\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\n}\n/**\n * Load the CLDR data into context\n *\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\n * @returns {void} ?\n */\nexport function loadCldr() {\n var data = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n data[_i] = arguments[_i];\n }\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\n var obj = data_1[_a];\n extend(cldrData, obj, {}, true);\n }\n}\n/**\n * To enable or disable RTL functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\n * @returns {void} ?\n */\nexport function enableRtl(status) {\n if (status === void 0) { status = true; }\n rightToLeft = status;\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\n}\n/**\n * To get the numeric CLDR object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} type ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getNumericObject(locale, type) {\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\n var numSystem = getValue('defaultNumberingSystem', numObject);\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\n}\n/**\n * To get the numeric CLDR number base object for given culture\n *\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\n * @returns {string} ?\n * @ignore\n * @private\n */\nexport function getNumberDependable(locale, currency) {\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\n}\n/**\n * To get the default date CLDR object.\n *\n * @param {string} mode ?\n * @returns {Object} ?\n * @ignore\n * @private\n */\nexport function getDefaultDateObject(mode) {\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { defaultCurrencyCode } from '../internationalization';\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\nimport { DateFormat } from './date-formatter';\nimport { NumberFormat } from './number-formatter';\nimport { isUndefined } from '../util';\nvar regExp = RegExp;\nexport var blazorCultureFormats = {\n 'en-US': {\n 'd': 'M/d/y',\n 'D': 'EEEE, MMMM d, y',\n 'f': 'EEEE, MMMM d, y h:mm a',\n 'F': 'EEEE, MMMM d, y h:mm:s a',\n 'g': 'M/d/y h:mm a',\n 'G': 'M/d/yyyy h:mm:ss tt',\n 'm': 'MMMM d',\n 'M': 'MMMM d',\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\n 't': 'h:mm tt',\n 'T': 'h:m:s tt',\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\n 'y': 'MMMM yyyy',\n 'Y': 'MMMM yyyy'\n }\n};\n/**\n * Date base common constants and function for date parser and formatter.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport var IntlBase;\n(function (IntlBase) {\n // eslint-disable-next-line security/detect-unsafe-regex\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n // eslint-disable-next-line security/detect-unsafe-regex\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*[0# ]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\n var fractionRegex = /[0-9]/g;\n IntlBase.defaultCurrency = '$';\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\n var patternMatch = {\n 'G': '',\n 'M': 'm',\n 'L': 'm',\n 'H': 'h',\n 'c': 'd',\n '\\'': '\"',\n ' a': ' AM/PM',\n 'yy': 'yy',\n 'y': 'yyyy',\n 'EEEE': 'dddd',\n 'E': 'ddd'\n };\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\n var defaultFirstDay = 'sun';\n IntlBase.islamicRegex = /^islamic/;\n var firstDayMapper = {\n 'sun': 0,\n 'mon': 1,\n 'tue': 2,\n 'wed': 3,\n 'thu': 4,\n 'fri': 5,\n 'sat': 6\n };\n IntlBase.formatRegex = new regExp('(^[ncpae]{1})([0-1]?[0-9]|20)?$', 'i');\n IntlBase.currencyFormatRegex = new regExp('(^[ca]{1})([0-1]?[0-9]|20)?$', 'i');\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\n var typeMapper = {\n '$': 'isCurrency',\n '%': 'isPercent',\n '-': 'isNegative',\n 0: 'nlead',\n 1: 'nend'\n };\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\n IntlBase.defaultObject = {\n 'dates': {\n 'calendars': {\n 'gregorian': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'narrow': {\n '1': 'J',\n '2': 'F',\n '3': 'M',\n '4': 'A',\n '5': 'M',\n '6': 'J',\n '7': 'J',\n '8': 'A',\n '9': 'S',\n '10': 'O',\n '11': 'N',\n '12': 'D'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'Before Christ',\n '0-alt-variant': 'Before Common Era',\n '1': 'Anno Domini',\n '1-alt-variant': 'Common Era'\n },\n 'eraAbbr': {\n '0': 'BC',\n '0-alt-variant': 'BCE',\n '1': 'AD',\n '1-alt-variant': 'CE'\n },\n 'eraNarrow': {\n '0': 'B',\n '0-alt-variant': 'BCE',\n '1': 'A',\n '1-alt-variant': 'CE'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y',\n 'long': 'MMMM d, y',\n 'medium': 'MMM d, y',\n 'short': 'M/d/yy'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'hmsv': 'h:mm:ss a v',\n 'Hmsv': 'HH:mm:ss v',\n 'hmv': 'h:mm a v',\n 'Hmv': 'HH:mm v',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y',\n 'yM': 'M/y',\n 'yMd': 'M/d/y',\n 'yMEd': 'E, M/d/y',\n 'yMMM': 'MMM y',\n 'yMMMd': 'MMM d, y',\n 'yMMMEd': 'E, MMM d, y',\n 'yMMMM': 'MMMM y'\n }\n }\n },\n 'islamic': {\n 'months': {\n 'stand-alone': {\n 'abbreviated': {\n '1': 'Muh.',\n '2': 'Saf.',\n '3': 'Rab. I',\n '4': 'Rab. II',\n '5': 'Jum. I',\n '6': 'Jum. II',\n '7': 'Raj.',\n '8': 'Sha.',\n '9': 'Ram.',\n '10': 'Shaw.',\n '11': 'Dhuʻl-Q.',\n '12': 'Dhuʻl-H.'\n },\n 'narrow': {\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '10': '10',\n '11': '11',\n '12': '12'\n },\n 'wide': {\n '1': 'Muharram',\n '2': 'Safar',\n '3': 'Rabiʻ I',\n '4': 'Rabiʻ II',\n '5': 'Jumada I',\n '6': 'Jumada II',\n '7': 'Rajab',\n '8': 'Shaʻban',\n '9': 'Ramadan',\n '10': 'Shawwal',\n '11': 'Dhuʻl-Qiʻdah',\n '12': 'Dhuʻl-Hijjah'\n }\n }\n },\n 'days': {\n 'stand-alone': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'narrow': {\n 'sun': 'S',\n 'mon': 'M',\n 'tue': 'T',\n 'wed': 'W',\n 'thu': 'T',\n 'fri': 'F',\n 'sat': 'S'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n }\n },\n 'dayPeriods': {\n 'format': {\n 'wide': {\n 'am': 'AM',\n 'pm': 'PM'\n }\n }\n },\n 'eras': {\n 'eraNames': {\n '0': 'AH'\n },\n 'eraAbbr': {\n '0': 'AH'\n },\n 'eraNarrow': {\n '0': 'AH'\n }\n },\n 'dateFormats': {\n 'full': 'EEEE, MMMM d, y G',\n 'long': 'MMMM d, y G',\n 'medium': 'MMM d, y G',\n 'short': 'M/d/y GGGGG'\n },\n 'timeFormats': {\n 'full': 'h:mm:ss a zzzz',\n 'long': 'h:mm:ss a z',\n 'medium': 'h:mm:ss a',\n 'short': 'h:mm a'\n },\n 'dateTimeFormats': {\n 'full': '{1} \\'at\\' {0}',\n 'long': '{1} \\'at\\' {0}',\n 'medium': '{1}, {0}',\n 'short': '{1}, {0}',\n 'availableFormats': {\n 'd': 'd',\n 'E': 'ccc',\n 'Ed': 'd E',\n 'Ehm': 'E h:mm a',\n 'EHm': 'E HH:mm',\n 'Ehms': 'E h:mm:ss a',\n 'EHms': 'E HH:mm:ss',\n 'Gy': 'y G',\n 'GyMMM': 'MMM y G',\n 'GyMMMd': 'MMM d, y G',\n 'GyMMMEd': 'E, MMM d, y G',\n 'h': 'h a',\n 'H': 'HH',\n 'hm': 'h:mm a',\n 'Hm': 'HH:mm',\n 'hms': 'h:mm:ss a',\n 'Hms': 'HH:mm:ss',\n 'M': 'L',\n 'Md': 'M/d',\n 'MEd': 'E, M/d',\n 'MMM': 'LLL',\n 'MMMd': 'MMM d',\n 'MMMEd': 'E, MMM d',\n 'MMMMd': 'MMMM d',\n 'ms': 'mm:ss',\n 'y': 'y G',\n 'yyyy': 'y G',\n 'yyyyM': 'M/y GGGGG',\n 'yyyyMd': 'M/d/y GGGGG',\n 'yyyyMEd': 'E, M/d/y GGGGG',\n 'yyyyMMM': 'MMM y G',\n 'yyyyMMMd': 'MMM d, y G',\n 'yyyyMMMEd': 'E, MMM d, y G',\n 'yyyyMMMM': 'MMMM y G',\n 'yyyyQQQ': 'QQQ y G',\n 'yyyyQQQQ': 'QQQQ y G'\n }\n }\n }\n },\n 'timeZoneNames': {\n 'hourFormat': '+HH:mm;-HH:mm',\n 'gmtFormat': 'GMT{0}',\n 'gmtZeroFormat': 'GMT'\n }\n },\n 'numbers': {\n 'currencies': {\n 'USD': {\n 'displayName': 'US Dollar',\n 'symbol': '$',\n 'symbol-alt-narrow': '$'\n },\n 'EUR': {\n 'displayName': 'Euro',\n 'symbol': '€',\n 'symbol-alt-narrow': '€'\n },\n 'GBP': {\n 'displayName': 'British Pound',\n 'symbol-alt-narrow': '£'\n }\n },\n 'defaultNumberingSystem': 'latn',\n 'minimumGroupingDigits': '1',\n 'symbols-numberSystem-latn': {\n 'decimal': '.',\n 'group': ',',\n 'list': ';',\n 'percentSign': '%',\n 'plusSign': '+',\n 'minusSign': '-',\n 'exponential': 'E',\n 'superscriptingExponent': '×',\n 'perMille': '‰',\n 'infinity': '∞',\n 'nan': 'NaN',\n 'timeSeparator': ':'\n },\n 'decimalFormats-numberSystem-latn': {\n 'standard': '#,##0.###'\n },\n 'percentFormats-numberSystem-latn': {\n 'standard': '#,##0%'\n },\n 'currencyFormats-numberSystem-latn': {\n 'standard': '¤#,##0.00',\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\n },\n 'scientificFormats-numberSystem-latn': {\n 'standard': '#E0'\n }\n }\n };\n IntlBase.blazorDefaultObject = {\n 'numbers': {\n 'mapper': {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9'\n },\n 'mapperDigits': '0123456789',\n 'numberSymbols': {\n 'decimal': '.',\n 'group': ',',\n 'plusSign': '+',\n 'minusSign': '-',\n 'percentSign': '%',\n 'nan': 'NaN',\n 'timeSeparator': ':',\n 'infinity': '∞'\n },\n 'timeSeparator': ':',\n 'currencySymbol': '$',\n 'currencypData': {\n 'nlead': '$',\n 'nend': '',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentpData': {\n 'nlead': '',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'percentnData': {\n 'nlead': '-',\n 'nend': '%',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'currencynData': {\n 'nlead': '($',\n 'nend': ')',\n 'groupSeparator': ',',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalnData': {\n 'nlead': '-',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n },\n 'decimalpData': {\n 'nlead': '',\n 'nend': '',\n 'groupData': {\n 'primary': 3\n },\n 'maximumFraction': 2,\n 'minimumFraction': 2\n }\n },\n 'dates': {\n 'dayPeriods': {\n 'am': 'AM',\n 'pm': 'PM'\n },\n 'dateSeperator': '/',\n 'days': {\n 'abbreviated': {\n 'sun': 'Sun',\n 'mon': 'Mon',\n 'tue': 'Tue',\n 'wed': 'Wed',\n 'thu': 'Thu',\n 'fri': 'Fri',\n 'sat': 'Sat'\n },\n 'short': {\n 'sun': 'Su',\n 'mon': 'Mo',\n 'tue': 'Tu',\n 'wed': 'We',\n 'thu': 'Th',\n 'fri': 'Fr',\n 'sat': 'Sa'\n },\n 'wide': {\n 'sun': 'Sunday',\n 'mon': 'Monday',\n 'tue': 'Tuesday',\n 'wed': 'Wednesday',\n 'thu': 'Thursday',\n 'fri': 'Friday',\n 'sat': 'Saturday'\n }\n },\n 'months': {\n 'abbreviated': {\n '1': 'Jan',\n '2': 'Feb',\n '3': 'Mar',\n '4': 'Apr',\n '5': 'May',\n '6': 'Jun',\n '7': 'Jul',\n '8': 'Aug',\n '9': 'Sep',\n '10': 'Oct',\n '11': 'Nov',\n '12': 'Dec'\n },\n 'wide': {\n '1': 'January',\n '2': 'February',\n '3': 'March',\n '4': 'April',\n '5': 'May',\n '6': 'June',\n '7': 'July',\n '8': 'August',\n '9': 'September',\n '10': 'October',\n '11': 'November',\n '12': 'December'\n }\n },\n 'eras': {\n '1': 'AD'\n }\n }\n };\n IntlBase.monthIndex = {\n 3: 'abbreviated',\n 4: 'wide',\n 5: 'narrow',\n 1: 'abbreviated'\n };\n /**\n *\n */\n IntlBase.month = 'months';\n IntlBase.days = 'days';\n /**\n * Default numerber Object\n */\n IntlBase.patternMatcher = {\n C: 'currency',\n P: 'percent',\n N: 'decimal',\n A: 'currency',\n E: 'scientific'\n };\n /**\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\n *\n * @private\n * @param {string} skeleton ?\n * @param {Object} dateObject ?\n * @param {string} type ?\n * @param {boolean} isIslamic ?\n * @param {string} blazorCulture ?\n * @returns {string} ?\n */\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\n var resPattern;\n var iType = type || 'date';\n if (blazorCulture) {\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\n }\n else {\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\n if (iType === 'dateTime') {\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\n }\n }\n else {\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\n }\n if (isUndefined(resPattern) && skeleton === 'yMd') {\n resPattern = 'M/d/y';\n }\n }\n return resPattern;\n }\n IntlBase.getResultantPattern = getResultantPattern;\n /**\n * Returns the dependable object for provided cldr data and culture\n *\n * @private\n * @param {Object} cldr ?\n * @param {string} culture ?\n * @param {string} mode ?\n * @param {boolean} isNumber ?\n * @returns {any} ?\n */\n function getDependables(cldr, culture, mode, isNumber) {\n var ret = {};\n var calendartype = mode || 'gregorian';\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\n if (isNumber) {\n ret.numericObject = getValue('numbers', ret.parserObject);\n }\n else {\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\n ret.dateObject = getValue(dateString, ret.parserObject);\n }\n return ret;\n }\n IntlBase.getDependables = getDependables;\n /**\n * Returns the symbol pattern for provided parameters\n *\n * @private\n * @param {string} type ?\n * @param {string} numSystem ?\n * @param {Object} obj ?\n * @param {boolean} isAccount ?\n * @returns {string} ?\n */\n function getSymbolPattern(type, numSystem, obj, isAccount) {\n return getValue(type + 'Formats-numberSystem-' +\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\n numSystem + '.standard', obj) : '');\n }\n IntlBase.getSymbolPattern = getSymbolPattern;\n /**\n *\n * @param {string} format ?\n * @returns {string} ?\n */\n function ConvertDateToWeekFormat(format) {\n var convertMapper = format.match(IntlBase.dateConverterMapper);\n if (convertMapper && isBlazor()) {\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\n return format.replace(IntlBase.dateConverterMapper, tempString);\n }\n return format;\n }\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\n /**\n *\n * @param {DateFormatOptions} formatOptions ?\n * @param {string} culture ?\n * @returns {DateFormatOptions} ?\n */\n function compareBlazorDateFormats(formatOptions, culture) {\n var format = formatOptions.format || formatOptions.skeleton;\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\n if (!curFormatMapper) {\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\n }\n if (curFormatMapper) {\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\n }\n return formatOptions;\n }\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\n /**\n * Returns proper numeric skeleton\n *\n * @private\n * @param {string} skeleton ?\n * @returns {any} ?\n */\n function getProperNumericSkeleton(skeleton) {\n var matches = skeleton.match(IntlBase.formatRegex);\n var ret = {};\n var pattern = matches[1].toUpperCase();\n ret.isAccount = (pattern === 'A');\n ret.type = IntlBase.patternMatcher[\"\" + pattern];\n if (skeleton.length > 1) {\n ret.fractionDigits = parseInt(matches[2], 10);\n }\n return ret;\n }\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\n /**\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\n *\n * @private\n * @param {string} pattern ?\n * @param {boolean} needFraction ?\n * @param {string} cSymbol ?\n * @param {boolean} fractionOnly ?\n * @returns {any} ?\n */\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\n var match = pattern.match(IntlBase.customRegex);\n if (match) {\n if (!fractionOnly) {\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\n nData.groupPattern = match[4];\n }\n var fraction = match[7];\n if (fraction && needFraction) {\n var fmatch = fraction.match(fractionRegex);\n if (!isNullOrUndefined(fmatch)) {\n nData.minimumFraction = fmatch.length;\n }\n else {\n nData.minimumFraction = 0;\n }\n nData.maximumFraction = fraction.length - 1;\n }\n }\n return nData;\n }\n IntlBase.getFormatData = getFormatData;\n /**\n * Changes currency symbol\n *\n * @private\n * @param {string} val ?\n * @param {string} sym ?\n * @returns {string} ?\n */\n function changeCurrencySymbol(val, sym) {\n if (val) {\n val = val.replace(IntlBase.defaultCurrency, sym);\n return (sym === '') ? val.trim() : val;\n }\n return '';\n }\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\n /**\n * Returns currency symbol based on currency code ?\n *\n * @private\n * @param {Object} numericObject ?\n * @param {string} currencyCode ?\n * @param {string} altSymbol ?\n * @param {string} ignoreCurrency ?\n * @returns {string} ?\n */\n function getCurrencySymbol(numericObject, currencyCode, altSymbol, ignoreCurrency) {\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\n var getCurrency = ignoreCurrency ? '$' : getValue('currencies.' + currencyCode + symbol, numericObject) ||\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\n return getCurrency;\n }\n IntlBase.getCurrencySymbol = getCurrencySymbol;\n /**\n * Returns formatting options for custom number format\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {any} obj ?\n * @returns {any} ?\n */\n function customFormat(format, dOptions, obj) {\n var options = {};\n var formatSplit = format.split(';');\n var data = ['pData', 'nData', 'zeroData'];\n for (var i = 0; i < formatSplit.length; i++) {\n options[\"\" + data[parseInt(i.toString(), 10)]] = customNumberFormat(formatSplit[parseInt(i.toString(), 10)], dOptions, obj);\n }\n if (isNullOrUndefined(options.nData)) {\n options.nData = extend({}, options.pData);\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\n }\n return options;\n }\n IntlBase.customFormat = customFormat;\n /**\n * Returns custom formatting options\n *\n * @private\n * @param {string} format ?\n * @param {CommonOptions} dOptions ?\n * @param {Object} numObject ?\n * @returns {any} ?\n */\n function customNumberFormat(format, dOptions, numObject) {\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\n var pattern = format.match(IntlBase.customRegex);\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\n cOptions.type = undefined;\n return cOptions;\n }\n cOptions.nlead = pattern[1];\n cOptions.nend = pattern[10];\n var integerPart = pattern[6];\n var spaceCapture = integerPart.match(/ $/g) ? true : false;\n var spaceGrouping = integerPart.replace(/ $/g, '').indexOf(' ') !== -1;\n cOptions.useGrouping = integerPart.indexOf(',') !== -1 || spaceGrouping;\n integerPart = integerPart.replace(/,/g, '');\n var fractionPart = pattern[7];\n if (integerPart.indexOf('0') !== -1) {\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\n }\n if (!isNullOrUndefined(fractionPart)) {\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\n if (cOptions.minimumFractionDigits === -1) {\n cOptions.minimumFractionDigits = 0;\n }\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\n }\n }\n if (!isNullOrUndefined(dOptions)) {\n dOptions.isCustomFormat = true;\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\n if (!cOptions.isCurrency) {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\n }\n }\n else {\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\n }\n if (!isNullOrUndefined(numObject)) {\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\n if (cOptions.useGrouping) {\n cOptions.groupSeparator = spaceGrouping ? ' ' : dOptions.numberMapper.numberSymbols[mapper[2]];\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\n }\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\n cOptions.nend = spaceCapture ? ' ' + cOptions.nend.replace(/'/g, '') : cOptions.nend.replace(/'/g, '');\n }\n return cOptions;\n }\n IntlBase.customNumberFormat = customNumberFormat;\n /**\n * Returns formatting options for currency or percent type\n *\n * @private\n * @param {string[]} parts ?\n * @param {string} actual ?\n * @param {string} symbol ?\n * @returns {any} ?\n */\n function isCurrencyPercent(parts, actual, symbol) {\n var options = { nlead: parts[0], nend: parts[1] };\n for (var i = 0; i < 2; i++) {\n var part = parts[parseInt(i.toString(), 10)];\n var loc = part.indexOf(actual);\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\n options[\"\" + typeMapper[parseInt(i.toString(), 10)]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\n options[\"\" + typeMapper[\"\" + actual]] = true;\n options.type = options.isCurrency ? 'currency' : 'percent';\n break;\n }\n }\n return options;\n }\n IntlBase.isCurrencyPercent = isCurrencyPercent;\n /**\n * Returns culture based date separator\n *\n * @private\n * @param {Object} dateObj ?\n * @returns {string} ?\n */\n function getDateSeparator(dateObj) {\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[dM]([^dM])[dM]/i);\n return value ? value[1] : '/';\n }\n IntlBase.getDateSeparator = getDateSeparator;\n /**\n * Returns Native Date Time pattern\n *\n * @private\n * @param {string} culture ?\n * @param {DateFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcelFormat ?\n * @returns {string} ?\n */\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\n var dependable = getDependables(cldr, culture, options.calendar);\n if (isBlazor()) {\n options = compareBlazorDateFormats(options, culture);\n }\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\n if (isExcelFormat) {\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\n return patternMatch[\"\" + pattern];\n });\n if (actualPattern.indexOf('z') !== -1) {\n var tLength = actualPattern.match(/z/g).length;\n var timeZonePattern = void 0;\n var options_1 = { 'timeZone': {} };\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\n var value = new Date();\n var timezone = value.getTimezoneOffset();\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\n if (timezone === 0) {\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\n }\n else {\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\n }\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\n }\n actualPattern = actualPattern.replace(/ $/, '');\n }\n return actualPattern;\n }\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\n /**\n *\n * @param {string} actual ?\n * @param {any} option ?\n * @returns {any} ?\n */\n function processSymbol(actual, option) {\n if (actual.indexOf(',') !== -1) {\n var split = actual.split(',');\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\n }\n else {\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\n }\n return actual;\n }\n IntlBase.processSymbol = processSymbol;\n /**\n * Returns Native Number pattern\n *\n * @private\n * @param {string} culture ?\n * @param {NumberFormatOptions} options ?\n * @param {Object} cldr ?\n * @param {boolean} isExcel ?\n * @returns {string} ?\n */\n function getActualNumberFormat(culture, options, cldr, isExcel) {\n var dependable = getDependables(cldr, culture, '', true);\n var parseOptions = { custom: true };\n var numrericObject = dependable.numericObject;\n var minFrac;\n var curObj = {};\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\n var dOptions = {};\n if (curMatch) {\n dOptions.numberMapper = isBlazor() ?\n extend({}, dependable.numericObject) :\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\n var split = symbolPattern.split(';');\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\n getFormatData(split[1] || '-' + split[0], true, curCode);\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\n getFormatData(split[0], false, curCode);\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\n }\n }\n var actualPattern;\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\n parseOptions.custom = false;\n actualPattern = '###0';\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\n var defaultMinimum = 0;\n if (parseOptions.fractionDigits) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\n }\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\n }\n if (options.minimumIntegerDigits) {\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\n }\n if (options.useGrouping) {\n actualPattern = groupingPattern(actualPattern);\n }\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\n if (isBlazor() && parseOptions.type !== 'currency') {\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\n }\n var cPattern = actualPattern;\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\n if (curObj.hasNegativePattern || isBlazor()) {\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\n }\n }\n if (parseOptions.type === 'percent' && !isBlazor()) {\n actualPattern += ' %';\n }\n }\n else {\n actualPattern = options.format.replace(/'/g, '\"');\n }\n if (Object.keys(dOptions).length > 0) {\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\n }\n return actualPattern;\n }\n IntlBase.getActualNumberFormat = getActualNumberFormat;\n /**\n *\n * @param {string} pattern ?\n * @param {number} minDigits ?\n * @param {number} maxDigits ?\n * @returns {string} ?\n */\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\n pattern += '.';\n for (var a = 0; a < minDigits; a++) {\n pattern += '0';\n }\n if (minDigits < maxDigits) {\n var diff = maxDigits - minDigits;\n for (var b = 0; b < diff; b++) {\n pattern += '#';\n }\n }\n return pattern;\n }\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\n /**\n *\n * @param {string} pattern ?\n * @param {number} digits ?\n * @returns {string} ?\n */\n function minimumIntegerPattern(pattern, digits) {\n var temp = pattern.split('.');\n var integer = '';\n for (var x = 0; x < digits; x++) {\n integer += '0';\n }\n return temp[1] ? (integer + '.' + temp[1]) : integer;\n }\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\n /**\n *\n * @param {string} pattern ?\n * @returns {string} ?\n */\n function groupingPattern(pattern) {\n var temp = pattern.split('.');\n var integer = temp[0];\n var no = 3 - integer.length % 3;\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\n integer = hash + integer;\n pattern = '';\n for (var x = integer.length - 1; x > 0; x = x - 3) {\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[parseInt(x.toString(), 10)] + pattern;\n }\n pattern = pattern.slice(1);\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\n }\n IntlBase.groupingPattern = groupingPattern;\n /**\n *\n * @param {string} culture ?\n * @param {Object} cldr ?\n * @returns {number} ?\n */\n function getWeekData(culture, cldr) {\n var firstDay = defaultFirstDay;\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\n var iCulture = culture;\n if ((/en-/).test(iCulture)) {\n iCulture = iCulture.slice(3);\n }\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\n if (mapper) {\n firstDay = mapper[\"\" + iCulture] || mapper[iCulture.slice(0, 2)] || defaultFirstDay;\n }\n return firstDayMapper[\"\" + firstDay];\n }\n IntlBase.getWeekData = getWeekData;\n /**\n * @private\n * @param {any} pData ?\n * @param {string} aCurrency ?\n * @param {string} rCurrency ?\n * @returns {void} ?\n */\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\n if (aCurrency !== iCurrency) {\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\n var data = pData_1[_i];\n data.nend = data.nend.replace(aCurrency, iCurrency);\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\n }\n }\n }\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\n /**\n * @private\n * @param {Date} date ?\n * @returns {number} ?\n */\n function getWeekOfYear(date) {\n var newYear = new Date(date.getFullYear(), 0, 1);\n var day = newYear.getDay();\n var weeknum;\n day = (day >= 0 ? day : day + 7);\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\n if (day < 4) {\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\n if (weeknum > 52) {\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\n var nday = nYear.getDay();\n nday = nday >= 0 ? nday : nday + 7;\n weeknum = nday < 4 ? 1 : 53;\n }\n }\n else {\n weeknum = Math.floor((daynum + day - 1) / 7);\n }\n return weeknum;\n }\n IntlBase.getWeekOfYear = getWeekOfYear;\n})(IntlBase || (IntlBase = {}));\n","import { isNullOrUndefined, merge } from './util';\nvar headerRegex = /^(.*?):[ \\t]*([^\\r\\n]*)$/gm;\nvar defaultType = 'GET';\n/**\n * Ajax class provides ability to make asynchronous HTTP request to the server\n * ```typescript\n * var ajax = new Ajax(\"index.html\", \"GET\", true);\n * ajax.send().then(\n * function (value) {\n * console.log(value);\n * },\n * function (reason) {\n * console.log(reason);\n * });\n * ```\n */\nvar Ajax = /** @class */ (function () {\n /**\n * Constructor for Ajax class\n *\n * @param {string|Object} options ?\n * @param {string} type ?\n * @param {boolean} async ?\n * @returns defaultType any\n */\n function Ajax(options, type, async, contentType) {\n /**\n * A boolean value indicating whether the request should be sent asynchronous or not.\n *\n * @default true\n */\n this.mode = true;\n /**\n * A boolean value indicating whether to ignore the promise reject.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n this.options = {};\n if (typeof options === 'string') {\n this.url = options;\n this.type = type ? type.toUpperCase() : defaultType;\n this.mode = !isNullOrUndefined(async) ? async : true;\n }\n else if (typeof options === 'object') {\n this.options = options;\n merge(this, this.options);\n }\n this.type = this.type ? this.type.toUpperCase() : defaultType;\n this.contentType = (this.contentType !== undefined) ? this.contentType : contentType;\n }\n /**\n *\n * Send the request to server.\n *\n * @param {any} data - To send the user data\n * @returns {Promise} ?\n */\n Ajax.prototype.send = function (data) {\n var _this = this;\n this.data = isNullOrUndefined(data) ? this.data : data;\n var eventArgs = {\n cancel: false,\n httpRequest: null\n };\n var promise = new Promise(function (resolve, reject) {\n _this.httpRequest = new XMLHttpRequest();\n _this.httpRequest.onreadystatechange = function () { _this.stateChange(resolve, reject); };\n if (!isNullOrUndefined(_this.onLoad)) {\n _this.httpRequest.onload = _this.onLoad;\n }\n if (!isNullOrUndefined(_this.onProgress)) {\n _this.httpRequest.onprogress = _this.onProgress;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onAbort)) {\n _this.httpRequest.onabort = _this.onAbort;\n }\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onError)) {\n _this.httpRequest.onerror = _this.onError;\n }\n //** Upload Events **/\n /* istanbul ignore next */\n if (!isNullOrUndefined(_this.onUploadProgress)) {\n _this.httpRequest.upload.onprogress = _this.onUploadProgress;\n }\n _this.httpRequest.open(_this.type, _this.url, _this.mode);\n // Set default headers\n if (!isNullOrUndefined(_this.data) && _this.contentType !== null) {\n _this.httpRequest.setRequestHeader('Content-Type', _this.contentType || 'application/json; charset=utf-8');\n }\n if (_this.beforeSend) {\n eventArgs.httpRequest = _this.httpRequest;\n _this.beforeSend(eventArgs);\n }\n if (!eventArgs.cancel) {\n _this.httpRequest.send(!isNullOrUndefined(_this.data) ? _this.data : null);\n }\n });\n return promise;\n };\n Ajax.prototype.successHandler = function (data) {\n if (this.onSuccess) {\n this.onSuccess(data, this);\n }\n return data;\n };\n Ajax.prototype.failureHandler = function (reason) {\n if (this.onFailure) {\n this.onFailure(this.httpRequest);\n }\n return reason;\n };\n Ajax.prototype.stateChange = function (resolve, reject) {\n var data = this.httpRequest.responseText;\n if (this.dataType && this.dataType.toLowerCase() === 'json') {\n if (data === '') {\n data = undefined;\n }\n else {\n try {\n data = JSON.parse(data);\n }\n catch (error) {\n // no exception handle\n }\n }\n }\n if (this.httpRequest.readyState === 4) {\n //success range should be 200 to 299\n if ((this.httpRequest.status >= 200 && this.httpRequest.status <= 299) || this.httpRequest.status === 304) {\n resolve(this.successHandler(data));\n }\n else {\n if (this.emitError) {\n reject(new Error(this.failureHandler(this.httpRequest.statusText)));\n }\n else {\n resolve();\n }\n }\n }\n };\n /**\n * To get the response header from XMLHttpRequest\n *\n * @param {string} key Key to search in the response header\n * @returns {string} ?\n */\n Ajax.prototype.getResponseHeader = function (key) {\n var responseHeaders = {};\n var headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n while (headers) {\n responseHeaders[headers[1].toLowerCase()] = headers[2];\n headers = headerRegex.exec(this.httpRequest.getAllResponseHeaders());\n }\n var header = responseHeaders[key.toLowerCase()];\n return isNullOrUndefined(header) ? null : header;\n };\n return Ajax;\n}());\nexport { Ajax };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isNullOrUndefined as isNOU, isObject, merge } from './util';\n/**\n * The Fetch class provides a way to make asynchronous network requests, typically to retrieve resources from a server.\n * ```typescript\n * var fetchApi = new Fetch('index.html', 'GET');\n * fetchApi.send()\n * .then((value) => {\n * console.log(value);\n * }).catch((error) => {\n * console.log(error);\n * });\n * ```\n */\nvar Fetch = /** @class */ (function () {\n /**\n * Constructor for Fetch class.\n *\n * @param {string|Object} options - Specifies the URL or Request object with URL to which the request is to be sent.\n * @param {string} type - Specifies which request method is to be used, such as GET, POST, etc.\n * @param {string} contentType - Specifies the content type of the request, which is used to indicate the original media type of the resource.\n */\n function Fetch(options, type, contentType) {\n /**\n * Specifies which request method is to be used, such as GET, POST, etc.\n *\n * @default GET\n */\n this.type = 'GET';\n /**\n * A boolean value indicating whether to reject the promise or not.\n *\n * @private\n * @default true\n */\n this.emitError = true;\n if (typeof options === 'string') {\n this.url = options;\n this.type = !isNOU(type) ? type.toUpperCase() : this.type;\n this.contentType = contentType;\n }\n else if (isObject(options) && Object.keys(options).length > 0) {\n merge(this, options);\n }\n this.contentType = !isNOU(this.contentType) ? this.contentType : 'application/json; charset=utf-8';\n }\n /**\n * Send the request to server.\n *\n * @param {string|Object} data - Specifies the data that needs to be added to the request.\n * @returns {Promise} - Returns the response to a request.\n */\n Fetch.prototype.send = function (data) {\n var _this = this;\n var contentTypes = {\n 'application/json': 'json',\n 'multipart/form-data': 'formData',\n 'application/octet-stream': 'blob',\n 'application/x-www-form-urlencoded': 'formData'\n };\n try {\n if (isNOU(this.fetchRequest) && this.type === 'GET') {\n this.fetchRequest = new Request(this.url, { method: this.type });\n }\n else if (isNOU(this.fetchRequest)) {\n this.data = !isNOU(data) ? data : this.data;\n this.fetchRequest = new Request(this.url, {\n method: this.type,\n headers: { 'Content-Type': this.contentType },\n body: this.data\n });\n }\n var eventArgs = { cancel: false, fetchRequest: this.fetchRequest };\n this.triggerEvent(this['beforeSend'], eventArgs);\n if (eventArgs.cancel) {\n return null;\n }\n this.fetchResponse = fetch(this.fetchRequest);\n return this.fetchResponse.then(function (response) {\n _this.triggerEvent(_this['onLoad'], response);\n if (!response.ok) {\n throw response;\n }\n var responseType = 'text';\n for (var _i = 0, _a = Object.keys(contentTypes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (response.headers.get('Content-Type') && response.headers.get('Content-Type').indexOf(key) !== -1) {\n responseType = contentTypes[key];\n }\n }\n return response[responseType]();\n }).then(function (data) {\n _this.triggerEvent(_this['onSuccess'], data, _this);\n return data;\n }).catch(function (error) {\n var returnVal = {};\n if (_this.emitError) {\n _this.triggerEvent(_this['onFailure'], error);\n returnVal = Promise.reject(error);\n }\n return returnVal;\n });\n }\n catch (error) {\n return error;\n }\n };\n Fetch.prototype.triggerEvent = function (callback, data, instance) {\n if (!isNOU(callback) && typeof callback === 'function') {\n callback(data, instance);\n }\n };\n return Fetch;\n}());\nexport { Fetch };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined } from './util';\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\nvar REGX_IE = /msie|trident/i;\nvar REGX_IE11 = /Trident\\/7\\./;\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\nvar REGX_ANDROID = /android/i;\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\nvar REGX_BROWSER = {\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\n SAFARI: /(safari)[ /]([\\w.]+)/i,\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\n MSIE: /(msie|trident) ([\\w.]+)/i,\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\n/* istanbul ignore else */\nif (typeof window !== 'undefined') {\n window.browserDetails = window.browserDetails || {};\n}\n/**\n * Get configuration details for Browser\n *\n * @private\n */\nvar Browser = /** @class */ (function () {\n function Browser() {\n }\n Browser.extractBrowserDetail = function () {\n var browserInfo = { culture: {} };\n var keys = Object.keys(REGX_BROWSER);\n var clientInfo = [];\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n clientInfo = Browser.userAgent.match(REGX_BROWSER[\"\" + key]);\n if (clientInfo) {\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\n browserInfo.version = clientInfo[2];\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\n if (Browser.userAgent.match(REGX_IE11)) {\n browserInfo.name = 'msie';\n break;\n }\n var version = Browser.userAgent.match(REGX_VERSION);\n if (browserInfo.name === 'safari' && version) {\n browserInfo.version = version[2];\n }\n break;\n }\n }\n return browserInfo;\n };\n /**\n * To get events from the browser\n *\n * @param {string} event - type of event triggered.\n * @returns {string} ?\n */\n Browser.getEvent = function (event) {\n var events = {\n start: {\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\n },\n move: {\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\n },\n end: {\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\n },\n cancel: {\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\n }\n };\n return (Browser.isPointer ? events[\"\" + event].isPointer :\n (Browser.isTouch ? events[\"\" + event].isTouch + (!Browser.isDevice ? ' ' + events[\"\" + event].isDevice : '')\n : events[\"\" + event].isDevice));\n };\n /**\n * To get the Touch start event from browser\n *\n * @returns {string}\n */\n Browser.getTouchStartEvent = function () {\n return Browser.getEvent('start');\n };\n /**\n * To get the Touch end event from browser\n *\n * @returns {string}\n */\n Browser.getTouchEndEvent = function () {\n return Browser.getEvent('end');\n };\n /**\n * To get the Touch move event from browser\n *\n * @returns {string}\n */\n Browser.getTouchMoveEvent = function () {\n return Browser.getEvent('move');\n };\n /**\n * To cancel the touch event from browser\n *\n * @returns {string}\n */\n Browser.getTouchCancelEvent = function () {\n return Browser.getEvent('cancel');\n };\n /**\n * Check whether the browser on the iPad device is Safari or not\n *\n * @returns {boolean}\n */\n Browser.isSafari = function () {\n return (Browser.isDevice && Browser.isIos && Browser.isTouch && typeof window !== 'undefined'\n && window.navigator.userAgent.toLowerCase().indexOf('iphone') === -1\n && window.navigator.userAgent.toLowerCase().indexOf('safari') > -1);\n };\n /**\n * To get the value based on provided key and regX\n *\n * @param {string} key ?\n * @param {RegExp} regX ?\n * @returns {Object} ?\n */\n Browser.getValue = function (key, regX) {\n var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};\n if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {\n browserDetails['isIos'] = true;\n browserDetails['isDevice'] = true;\n browserDetails['isTouch'] = true;\n browserDetails['isPointer'] = true;\n // Set 'isPointer' for pointer-enabled devices (e.g., iPad on Safari)\n browserDetails['isPointer'] = ('pointerEnabled' in window.navigator);\n }\n if (typeof window !== 'undefined' && window.Capacitor && window.Capacitor.getPlatform() === 'ios') {\n browserDetails['isPointer'] = false;\n }\n if ('undefined' === typeof browserDetails[\"\" + key]) {\n return browserDetails[\"\" + key] = regX.test(Browser.userAgent);\n }\n return browserDetails[\"\" + key];\n };\n Object.defineProperty(Browser, \"userAgent\", {\n get: function () {\n return Browser.uA;\n },\n //Properties\n /**\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\n * Also we can set our own userAgent.\n *\n * @param {string} uA ?\n */\n set: function (uA) {\n Browser.uA = uA;\n window.browserDetails = {};\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"info\", {\n //Read Only Properties\n /**\n * Property is to get the browser information like Name, Version and Language\n *\n * @returns {BrowserInfo} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.info)) {\n return window.browserDetails.info = Browser.extractBrowserDetail();\n }\n return window.browserDetails.info;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIE\", {\n /**\n * Property is to get whether the userAgent is based IE.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIE', REGX_IE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isTouch\", {\n /**\n * Property is to get whether the browser has touch support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isTouch)) {\n return (window.browserDetails.isTouch =\n ('ontouchstart' in window.navigator) ||\n (window &&\n window.navigator &&\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\n }\n return window.browserDetails.isTouch;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isPointer\", {\n /**\n * Property is to get whether the browser has Pointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isPointer)) {\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\n }\n return window.browserDetails.isPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isMSPointer\", {\n /**\n * Property is to get whether the browser has MSPointer support.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isMSPointer)) {\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\n }\n return window.browserDetails.isMSPointer;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isDevice\", {\n /**\n * Property is to get whether the userAgent is device based.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isDevice', REGX_MOBILE);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos\", {\n /**\n * Property is to get whether the userAgent is IOS.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos', REGX_IOS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isIos7\", {\n /**\n * Property is to get whether the userAgent is Ios7.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isIos7', REGX_IOS7);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isAndroid\", {\n /**\n * Property is to get whether the userAgent is Android.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isAndroid', REGX_ANDROID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWebView\", {\n /**\n * Property is to identify whether application ran in web view.\n *\n * @returns {boolean} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.isWebView)) {\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\n && isUndefined(window.phonegap) && window.forge !== 'object');\n return window.browserDetails.isWebView;\n }\n return window.browserDetails.isWebView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"isWindows\", {\n /**\n * Property is to get whether the userAgent is Windows.\n *\n * @returns {boolean} ?\n */\n get: function () {\n return Browser.getValue('isWindows', REGX_WINDOWS);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchStartEvent\", {\n /**\n * Property is to get the touch start event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchStartEvent)) {\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\n }\n return window.browserDetails.touchStartEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchMoveEvent\", {\n /**\n * Property is to get the touch move event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\n }\n return window.browserDetails.touchMoveEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchEndEvent\", {\n /**\n * Property is to get the touch end event. It returns event name based on browser.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchEndEvent)) {\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\n }\n return window.browserDetails.touchEndEvent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Browser, \"touchCancelEvent\", {\n /**\n * Property is to cancel the touch end event.\n *\n * @returns {string} ?\n */\n get: function () {\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\n }\n return window.browserDetails.touchCancelEvent;\n },\n enumerable: true,\n configurable: true\n });\n /* istanbul ignore next */\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\n return Browser;\n}());\nexport { Browser };\n","import { debounce, extend } from './util';\nimport { Browser } from './browser';\n/**\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\n * ```html\n *
    \n * \n * ```\n */\nvar EventHandler = /** @class */ (function () {\n function EventHandler() {\n }\n // to get the event data based on element\n EventHandler.addOrGetEventData = function (element) {\n if ('__eventList' in element) {\n return element.__eventList.events;\n }\n else {\n element.__eventList = {};\n return element.__eventList.events = [];\n }\n };\n /**\n * Add an event to the specified DOM element.\n *\n * @param {any} element - Target HTML DOM element\n * @param {string} eventName - A string that specifies the name of the event\n * @param {Function} listener - Specifies the function to run when the event occurs\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\n * @returns {Function} ?\n */\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\n var eventData = EventHandler.addOrGetEventData(element);\n var debounceListener;\n if (intDebounce) {\n debounceListener = debounce(listener, intDebounce);\n }\n else {\n debounceListener = listener;\n }\n if (bindTo) {\n debounceListener = debounceListener.bind(bindTo);\n }\n var event = eventName.split(' ');\n for (var i = 0; i < event.length; i++) {\n eventData.push({\n name: event[parseInt(i.toString(), 10)],\n listener: listener,\n debounce: debounceListener\n });\n if (Browser.isIE) {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener);\n }\n else {\n element.addEventListener(event[parseInt(i.toString(), 10)], debounceListener, { passive: false });\n }\n }\n return debounceListener;\n };\n /**\n * Remove an event listener that has been attached before.\n *\n * @param {any} element - Specifies the target html element to remove the event\n * @param {string} eventName - A string that specifies the name of the event to remove\n * @param {Function} listener - Specifies the function to remove\n * @returns {void} ?\n */\n EventHandler.remove = function (element, eventName, listener) {\n var eventData = EventHandler.addOrGetEventData(element);\n var event = eventName.split(' ');\n var _loop_1 = function (j) {\n var index = -1;\n var debounceListener;\n if (eventData && eventData.length !== 0) {\n eventData.some(function (x, i) {\n return x.name === event[parseInt(j.toString(), 10)] && x.listener === listener ?\n (index = i, debounceListener = x.debounce, true) : false;\n });\n }\n if (index !== -1) {\n eventData.splice(index, 1);\n }\n if (debounceListener) {\n element.removeEventListener(event[parseInt(j.toString(), 10)], debounceListener);\n }\n };\n for (var j = 0; j < event.length; j++) {\n _loop_1(j);\n }\n };\n /**\n * Clear all the event listeners that has been previously attached to the element.\n *\n * @param {any} element - Specifies the target html element to clear the events\n * @returns {void} ?\n */\n EventHandler.clearEvents = function (element) {\n var eventData = EventHandler.addOrGetEventData(element);\n var copyData = extend([], undefined, eventData);\n for (var i = 0; i < copyData.length; i++) {\n var parseValue = copyData[parseInt(i.toString(), 10)];\n element.removeEventListener(parseValue.name, parseValue.debounce);\n eventData.shift();\n }\n };\n /**\n * Trigger particular event of the element.\n *\n * @param {any} element - Specifies the target html element to trigger the events\n * @param {string} eventName - Specifies the event to trigger for the specified element.\n * Can be a custom event, or any of the standard events.\n * @param {any} eventProp - Additional parameters to pass on to the event properties\n * @returns {void} ?\n */\n EventHandler.trigger = function (element, eventName, eventProp) {\n var eventData = EventHandler.addOrGetEventData(element);\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\n var event_1 = eventData_1[_i];\n if (event_1.name === eventName) {\n event_1.debounce.call(this, eventProp);\n }\n }\n };\n return EventHandler;\n}());\nexport { EventHandler };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Functions related to dom operations.\n */\nimport { EventHandler } from './event-handler';\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\nvar SVG_REG = /^svg|^path|^g/;\n/**\n * Function to create Html element.\n *\n * @param {string} tagName - Name of the tag, id and class names.\n * @param {ElementProperties} properties - Object to set properties in the element.\n * @param {ElementProperties} properties.id - To set the id to the created element.\n * @param {ElementProperties} properties.className - To add classes to the element.\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\n * @returns {any} ?\n * @private\n */\nexport function createElement(tagName, properties) {\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\n if (typeof (properties) === 'undefined') {\n return element;\n }\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\n if (properties.className !== undefined) {\n element.className = properties.className;\n }\n if (properties.id !== undefined) {\n element.id = properties.id;\n }\n if (properties.styles !== undefined) {\n element.setAttribute('style', properties.styles);\n }\n if (properties.attrs !== undefined) {\n attributes(element, properties.attrs);\n }\n return element;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function addClass(elements, classes) {\n var classList = getClassList(classes);\n var regExp = RegExp;\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\n var className = classList_1[_b];\n if (isObject(ele)) {\n var curClass = getValue('attributes.className', ele);\n if (isNullOrUndefined(curClass)) {\n setValue('attributes.className', className, ele);\n }\n else if (!new regExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\n setValue('attributes.className', curClass + ' ' + className, ele);\n }\n }\n else {\n if (!ele.classList.contains(className)) {\n ele.classList.add(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to add the classes to array of elements\n *\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\n * @returns {any} .\n * @private\n */\nexport function removeClass(elements, classes) {\n var classList = getClassList(classes);\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\n var ele = _a[_i];\n var flag = isObject(ele);\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\n if (canRemove) {\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\n var className = classList_2[_b];\n if (flag) {\n var classes_1 = getValue('attributes.className', ele);\n var classArr = classes_1.split(' ');\n var index = classArr.indexOf(className);\n if (index !== -1) {\n classArr.splice(index, 1);\n }\n setValue('attributes.className', classArr.join(' '), ele);\n }\n else {\n ele.classList.remove(className);\n }\n }\n }\n }\n return elements;\n}\n/**\n * The function used to get classlist.\n *\n * @param {string | string[]} classes - An element the need to check visibility\n * @returns {string[]} ?\n * @private\n */\nfunction getClassList(classes) {\n var classList = [];\n if (typeof classes === 'string') {\n classList.push(classes);\n }\n else {\n classList = classes;\n }\n return classList;\n}\n/**\n * The function used to check element is visible or not.\n *\n * @param {Element|Node} element - An element the need to check visibility\n * @returns {boolean} ?\n * @private\n */\nexport function isVisible(element) {\n var ele = element;\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\n}\n/**\n * The function used to insert an array of elements into a first of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function prepend(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n toElement.insertBefore(docFrag, toElement.firstElementChild);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function used to insert an array of elements into last of the element.\n *\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\n * @param {Element} toElement - An element that is going to prepend.\n * @param {boolean} isEval - ?\n * @returns {Element[] | NodeList} ?\n * @private\n */\nexport function append(fromElements, toElement, isEval) {\n var docFrag = document.createDocumentFragment();\n if (fromElements instanceof NodeList) {\n while (fromElements.length > 0) {\n docFrag.appendChild(fromElements[0]);\n }\n }\n else {\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\n var ele = _a[_i];\n docFrag.appendChild(ele);\n }\n }\n toElement.appendChild(docFrag);\n if (isEval) {\n executeScript(toElement);\n }\n return fromElements;\n}\n/**\n * The function is used to evaluate script from Ajax request\n *\n * @param {Element} ele - An element is going to evaluate the script\n * @returns {void} ?\n */\nfunction executeScript(ele) {\n var eleArray = ele.querySelectorAll('script');\n eleArray.forEach(function (element) {\n var script = document.createElement('script');\n script.text = element.innerHTML;\n document.head.appendChild(script);\n detach(script);\n });\n}\n/**\n * The function used to remove the element from parentnode\n *\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\n * @returns {any} ?\n * @private\n */\nexport function detach(element) {\n var parentNode = element.parentNode;\n if (parentNode) {\n return parentNode.removeChild(element);\n }\n}\n/**\n * The function used to remove the element from Dom also clear the bounded events\n *\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\n * @returns {void} ?\n * @private\n */\nexport function remove(element) {\n var parentNode = element.parentNode;\n EventHandler.clearEvents(element);\n parentNode.removeChild(element);\n}\n/**\n * The function helps to set multiple attributes to an element\n *\n * @param {Element|Node} element - An element that need to set attributes.\n * @param {string} attributes - JSON Object that is going to as attributes.\n * @returns {Element} ?\n * @private\n */\nexport function attributes(element, attributes) {\n var keys = Object.keys(attributes);\n var ele = element;\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (isObject(ele)) {\n var iKey = key;\n if (key === 'tabindex') {\n iKey = 'tabIndex';\n }\n ele.attributes[\"\" + iKey] = attributes[\"\" + key];\n }\n else {\n ele.setAttribute(key, attributes[\"\" + key]);\n }\n }\n return ele;\n}\n/**\n * The function selects the element from giving context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {any} ?\n * @private\n */\nexport function select(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n return context.querySelector(selector);\n}\n/**\n * The function selects an array of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\n * @param {boolean} needsVDOM ?\n * @returns {HTMLElement[]} ?\n * @private\n */\nexport function selectAll(selector, context, needsVDOM) {\n if (context === void 0) { context = document; }\n selector = querySelectId(selector);\n var nodeList = context.querySelectorAll(selector);\n return nodeList;\n}\n/**\n * The function selects an id of element from the given context.\n *\n * @param {string} selector - Selector string need fetch element\n * @returns {string} ?\n * @private\n */\nfunction querySelectId(selector) {\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\n var idList = selector.split(',');\n for (var i = 0; i < idList.length; i++) {\n var list = idList[parseInt(i.toString(), 10)].split(' ');\n for (var j = 0; j < list.length; j++) {\n if (list[parseInt(j.toString(), 10)].indexOf('#') > -1) {\n if (!list[parseInt(j.toString(), 10)].match(/\\[.*\\]/)) {\n var splitId = list[parseInt(j.toString(), 10)].split('#');\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\n var setId = list[parseInt(j.toString(), 10)].split('.');\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\n list[parseInt(j.toString(), 10)] = setId.join('.');\n }\n }\n }\n }\n idList[parseInt(i.toString(), 10)] = list.join(' ');\n }\n return idList.join(',');\n }\n return selector;\n}\n/**\n * Returns single closest parent element based on class selector.\n *\n * @param {Element} element - An element that need to find the closest element.\n * @param {string} selector - A classSelector of closest element.\n * @returns {Element} ?\n * @private\n */\nexport function closest(element, selector) {\n var el = element;\n if (typeof el.closest === 'function') {\n return el.closest(selector);\n }\n while (el && el.nodeType === 1) {\n if (matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n return null;\n}\n/**\n * Returns all sibling elements of the given element.\n *\n * @param {Element|Node} element - An element that need to get siblings.\n * @returns {Element[]} ?\n * @private\n */\nexport function siblings(element) {\n var siblings = [];\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\n var curNode = childNodes_1[_i];\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\n siblings.push(curNode);\n }\n }\n return siblings;\n}\n/**\n * set the value if not exist. Otherwise set the existing value\n *\n * @param {HTMLElement} element - An element to which we need to set value.\n * @param {string} property - Property need to get or set.\n * @param {string} value - value need to set.\n * @returns {string} ?\n * @private\n */\nexport function getAttributeOrDefault(element, property, value) {\n var attrVal;\n var isObj = isObject(element);\n if (isObj) {\n attrVal = getValue('attributes.' + property, element);\n }\n else {\n attrVal = element.getAttribute(property);\n }\n if (isNullOrUndefined(attrVal) && value) {\n if (!isObj) {\n element.setAttribute(property, value.toString());\n }\n else {\n element.attributes[\"\" + property] = value;\n }\n attrVal = value;\n }\n return attrVal;\n}\n/**\n * Set the style attributes to Html element.\n *\n * @param {HTMLElement} element - Element which we want to set attributes\n * @param {any} attrs - Set the given attributes to element\n * @returns {void} ?\n * @private\n */\nexport function setStyleAttribute(element, attrs) {\n if (attrs !== undefined) {\n Object.keys(attrs).forEach(function (key) {\n element.style[\"\" + key] = attrs[\"\" + key];\n });\n }\n}\n/**\n * Method for add and remove classes to a dom element.\n *\n * @param {Element} element - Element for add and remove classes\n * @param {string[]} addClasses - List of classes need to be add to the element\n * @param {string[]} removeClasses - List of classes need to be remove from the element\n * @returns {void} ?\n * @private\n */\nexport function classList(element, addClasses, removeClasses) {\n addClass([element], addClasses);\n removeClass([element], removeClasses);\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Element} element - Element to compare with the selector.\n * @param {string} selector - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function matches(element, selector) {\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\n if (matches) {\n return matches.call(element, selector);\n }\n else {\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\n }\n}\n/**\n * Method to get the html text from DOM.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} innerHTML - String selector which element will satisfy.\n * @returns {void} ?\n * @private\n */\nexport function includeInnerHTML(ele, innerHTML) {\n ele.innerHTML = innerHTML;\n}\n/**\n * Method to get the containsclass.\n *\n * @param {HTMLElement} ele - Element to compare with the selector.\n * @param {string} className - String selector which element will satisfy.\n * @returns {any} ?\n * @private\n */\nexport function containsClass(ele, className) {\n if (isObject(ele)) {\n var regExp = RegExp;\n return new regExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\n }\n else {\n return ele.classList.contains(className);\n }\n}\n/**\n * Method to check whether the element matches the given selector.\n *\n * @param {Object} element - Element to compare with the selector.\n * @param {boolean} deep ?\n * @returns {any} ?\n * @private\n */\nexport function cloneNode(element, deep) {\n if (isObject(element)) {\n if (deep) {\n return extend({}, {}, element, true);\n }\n }\n else {\n return element.cloneNode(deep);\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\nimport { addClass, removeClass } from './dom';\nimport { Observer } from './observer';\nvar isColEName = new RegExp(']');\n/**\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\n *\n * @private\n * @returns {void} ?\n */\nvar Base = /** @class */ (function () {\n /**\n * Base constructor accept options and element\n *\n * @param {Object} options ?\n * @param {string} element ?\n */\n function Base(options, element) {\n this.isRendered = false;\n this.isComplexArraySetter = false;\n this.isServerRendered = false;\n this.allowServerDataBinding = true;\n this.isProtectedOnChange = true;\n this.properties = {};\n this.changedProperties = {};\n this.oldProperties = {};\n this.bulkChanges = {};\n this.refreshing = false;\n this.ignoreCollectionWatch = false;\n this.finalUpdate = function () { };\n this.childChangedProperties = {};\n this.modelObserver = new Observer(this);\n if (!isUndefined(element)) {\n if ('string' === typeof (element)) {\n this.element = document.querySelector(element);\n }\n else {\n this.element = element;\n }\n if (!isNullOrUndefined(this.element)) {\n this.isProtectedOnChange = false;\n this.addInstance();\n }\n }\n if (!isUndefined(options)) {\n this.setProperties(options, true);\n }\n this.isDestroyed = false;\n }\n /** Property base section */\n /**\n * Function used to set bunch of property at a time.\n *\n * @private\n * @param {Object} prop - JSON object which holds components properties.\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\n * @returns {void} ?\n */\n Base.prototype.setProperties = function (prop, muteOnChange) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = !!muteOnChange;\n merge(this, prop);\n if (muteOnChange !== true) {\n merge(this.changedProperties, prop);\n this.dataBind();\n }\n else if (isBlazor() && this.isRendered) {\n this.serverDataBind(prop);\n }\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.isProtectedOnChange = prevDetection;\n };\n /**\n * Calls for child element data bind\n *\n * @param {Object} obj ?\n * @param {Object} parent ?\n * @returns {void} ?\n */\n Base.callChildDataBind = function (obj, parent) {\n var keys = Object.keys(obj);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n if (parent[\"\" + key] instanceof Array) {\n for (var _a = 0, _b = parent[\"\" + key]; _a < _b.length; _a++) {\n var obj_1 = _b[_a];\n if (obj_1.dataBind !== undefined) {\n obj_1.dataBind();\n }\n }\n }\n else {\n parent[\"\" + key].dataBind();\n }\n }\n };\n Base.prototype.clearChanges = function () {\n this.finalUpdate();\n this.changedProperties = {};\n this.oldProperties = {};\n this.childChangedProperties = {};\n };\n /**\n * Bind property changes immediately to components\n *\n * @returns {void} ?\n */\n Base.prototype.dataBind = function () {\n Base.callChildDataBind(this.childChangedProperties, this);\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\n var prevDetection = this.isProtectedOnChange;\n var newChanges = this.changedProperties;\n var oldChanges = this.oldProperties;\n this.clearChanges();\n this.isProtectedOnChange = true;\n this.onPropertyChanged(newChanges, oldChanges);\n this.isProtectedOnChange = prevDetection;\n }\n };\n Base.prototype.serverDataBind = function (newChanges) {\n if (!isBlazor()) {\n return;\n }\n newChanges = newChanges ? newChanges : {};\n extend(this.bulkChanges, {}, newChanges, true);\n var sfBlazor = 'sfBlazor';\n if (this.allowServerDataBinding && window[\"\" + sfBlazor].updateModel) {\n window[\"\" + sfBlazor].updateModel(this);\n this.bulkChanges = {};\n }\n };\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\n if (isBlazor()) {\n var newChanges = {};\n newChanges[\"\" + key] = newValue;\n this.serverDataBind(newChanges);\n }\n if (this.isProtectedOnChange) {\n return;\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.finalUpdate();\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\n };\n /** Event Base Section */\n /**\n * Adds the handler to the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event\n * @param {Function} handler - Specifies the call to run when the event occurs.\n * @returns {void} ?\n */\n Base.prototype.addEventListener = function (eventName, handler) {\n this.modelObserver.on(eventName, handler);\n };\n /**\n * Removes the handler from the given event listener.\n *\n * @param {string} eventName - A String that specifies the name of the event to remove\n * @param {Function} handler - Specifies the function to remove\n * @returns {void} ?\n */\n Base.prototype.removeEventListener = function (eventName, handler) {\n this.modelObserver.off(eventName, handler);\n };\n /**\n * Triggers the handlers in the specified event.\n *\n * @private\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\n * Can be a custom event, or any of the standard events.\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\n * @param {Function} successHandler - this function will invoke after event successfully triggered\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\n * @returns {void} ?\n */\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\n var _this = this;\n if (this.isDestroyed !== true) {\n var prevDetection = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\n if (isColEName.test(eventName)) {\n var handler = getValue(eventName, this);\n if (handler) {\n var blazor = 'Blazor';\n if (window[\"\" + blazor]) {\n var promise = handler.call(this, eventProp);\n if (promise && typeof promise.then === 'function') {\n if (!successHandler) {\n data = promise;\n }\n else {\n promise.then(function (data) {\n if (successHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\n JSON.parse(data) : data;\n successHandler.call(_this, data);\n }\n }).catch(function (data) {\n if (errorHandler) {\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\n errorHandler.call(_this, data);\n }\n });\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n else {\n handler.call(this, eventProp);\n if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n }\n else if (successHandler) {\n successHandler.call(this, eventProp);\n }\n }\n this.isProtectedOnChange = prevDetection;\n return data;\n }\n };\n /**\n * To maintain instance in base class\n *\n * @returns {void} ?\n */\n Base.prototype.addInstance = function () {\n // Add module class to the root element\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-lib', moduleClass]);\n if (!isNullOrUndefined(this.element.ej2_instances)) {\n this.element.ej2_instances.push(this);\n }\n else {\n setValue('ej2_instances', [this], this.element);\n }\n };\n /**\n * To remove the instance from the element\n *\n * @returns {void} ?\n */\n Base.prototype.destroy = function () {\n var _this = this;\n // eslint-disable-next-line camelcase\n this.element.ej2_instances =\n this.element.ej2_instances ?\n this.element.ej2_instances.filter(function (i) {\n if (proxyToRaw) {\n return proxyToRaw(i) !== proxyToRaw(_this);\n }\n return i !== _this;\n })\n : [];\n removeClass([this.element], ['e-' + this.getModuleName()]);\n if (this.element.ej2_instances.length === 0) {\n // Remove module class from the root element\n removeClass([this.element], ['e-lib']);\n }\n this.clearChanges();\n this.modelObserver.destroy();\n this.isDestroyed = true;\n };\n return Base;\n}());\nexport { Base };\n/**\n * Global function to get the component instance from the rendered element.\n *\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\n * @param {string} comp Specifies the component module name or Component.\n * @returns {any} ?\n */\nexport function getComponent(elem, comp) {\n var instance;\n var i;\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\n for (i = 0; i < ele.ej2_instances.length; i++) {\n instance = ele.ej2_instances[parseInt(i.toString(), 10)];\n if (typeof comp === 'string') {\n var compName = instance.getModuleName();\n if (comp === compName) {\n return instance;\n }\n }\n else {\n if (instance instanceof comp) {\n return instance;\n }\n }\n }\n return undefined;\n}\n/**\n * Function to remove the child instances.\n *\n * @param {HTMLElement} element ?\n * @returns {void} ?\n * @private\n */\nexport function removeChildInstance(element) {\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\n for (var i = 0; i < childEle.length; i++) {\n var compName = childEle[parseInt(i.toString(), 10)].classList[1].split('e-')[1];\n var compInstance = getComponent(childEle[parseInt(i.toString(), 10)], compName);\n if (!isUndefined(compInstance)) {\n compInstance.destroy();\n }\n }\n}\nexport var proxyToRaw;\nexport var setProxyToRaw = function (toRaw) { proxyToRaw = toRaw; };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createInstance, isUndefined, merge, extend, getValue } from './util';\n/**\n * Returns the Class Object\n *\n * @param {ClassObject} instance - instance of ClassObject\n * @param {string} curKey - key of the current instance\n * @param {Object} defaultValue - default Value\n * @param {Object[]} type ?\n * @returns {ClassObject} ?\n */\nfunction getObject(instance, curKey, defaultValue, type) {\n if (!Object.prototype.hasOwnProperty.call(instance.properties, curKey) || !(instance.properties[\"\" + curKey] instanceof type)) {\n instance.properties[\"\" + curKey] = createInstance(type, [instance, curKey, defaultValue]);\n }\n return instance.properties[\"\" + curKey];\n}\n/**\n * Returns object array\n *\n * @param {ClassObject} instance ?\n * @param {string} curKey ?\n * @param {Object[]} defaultValue ?\n * @param {Object} type ?\n * @param {boolean} isSetter ?\n * @param {boolean} isFactory ?\n * @returns {Object[]} ?\n */\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\n var result = [];\n var len = defaultValue ? defaultValue.length : 0;\n for (var i = 0; i < len; i++) {\n var curType = type;\n if (isFactory) {\n curType = type(defaultValue[parseInt(i.toString(), 10)], instance);\n }\n if (isSetter) {\n var inst = createInstance(curType, [instance, curKey, {}, true]);\n inst.setProperties(defaultValue[parseInt(i.toString(), 10)], true);\n result.push(inst);\n }\n else {\n result.push(createInstance(curType, [instance, curKey, defaultValue[parseInt(i.toString(), 10)], false]));\n }\n }\n return result;\n}\n/**\n * Returns the properties of the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertyGetter(defaultValue, curKey) {\n return function () {\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n this.properties[\"\" + curKey] = defaultValue;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n * Set the properties for the object\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @returns {void} ?\n */\nfunction propertySetter(defaultValue, curKey) {\n return function (newValue) {\n if (this.properties[\"\" + curKey] !== newValue) {\n var oldVal = Object.prototype.hasOwnProperty.call(this.properties, curKey) ? this.properties[\"\" + curKey] : defaultValue;\n this.saveChanges(curKey, newValue, oldVal);\n this.properties[\"\" + curKey] = newValue;\n }\n };\n}\n/**\n * Returns complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexGetter(defaultValue, curKey, type) {\n return function () {\n return getObject(this, curKey, defaultValue, type);\n };\n}\n/**\n * Sets complex objects\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexSetter(defaultValue, curKey, type) {\n return function (newValue) {\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n if (Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n return this.properties[\"\" + curKey];\n }\n else {\n return getObject(this, curKey, defaultValue, curType);\n }\n };\n}\n/**\n *\n * @param {Object} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var curType = type(newValue, this);\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayGetter(defaultValue, curKey, type) {\n return function () {\n var _this = this;\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\n || this.ignoreCollectionWatch);\n if (!Object.prototype.hasOwnProperty.call(this.properties[\"\" + curKey], 'push') && !ignore) {\n ['push', 'pop'].forEach(function (extendFunc) {\n var descriptor = {\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[\"\" + curKey]).bind(_this),\n configurable: true\n };\n Object.defineProperty(_this.properties[\"\" + curKey], extendFunc, descriptor);\n });\n }\n if (!Object.prototype.hasOwnProperty.call(this.properties[\"\" + curKey], 'isComplexArray')) {\n Object.defineProperty(this.properties[\"\" + curKey], 'isComplexArray', { value: true });\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArraySetter(defaultValue, curKey, type) {\n return function (newValue) {\n this.isComplexArraySetter = true;\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\n this.isComplexArraySetter = false;\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {Object[]} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\n return function (newValue) {\n var oldValueCollection = Object.prototype.hasOwnProperty.call(this.properties, curKey) ? this.properties[\"\" + curKey] : defaultValue;\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\n this.saveChanges(curKey, newValCollection, oldValueCollection);\n this.properties[\"\" + curKey] = newValCollection;\n };\n}\n/**\n *\n * @param {Object[]} defaultValue ?\n * @param {string} curKey ?\n * @param {FunctionConstructor} type ?\n * @returns {void} ?\n */\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\n return function () {\n var curType = type({});\n if (!Object.prototype.hasOwnProperty.call(this.properties, curKey)) {\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\n this.properties[\"\" + curKey] = defCollection;\n }\n return this.properties[\"\" + curKey];\n };\n}\n/**\n *\n * @param {string} dFunc ?\n * @param {string} curKey ?\n * @param {Object} type ?\n * @param {Object} prop ?\n * @returns {Object} ?\n */\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\n return function () {\n var newValue = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newValue[_i] = arguments[_i];\n }\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\n switch (dFunc) {\n case 'push':\n for (var i = 0; i < newValue.length; i++) {\n var newValueParse = newValue[parseInt(i.toString(), 10)];\n Array.prototype[\"\" + dFunc].apply(prop, [newValueParse]);\n var model = getArrayModel(keyString + (prop.length - 1), newValueParse, !this.controlParent, dFunc);\n this.serverDataBind(model, newValue[parseInt(i.toString(), 10)], false, dFunc);\n }\n break;\n case 'pop': {\n Array.prototype[\"\" + dFunc].apply(prop);\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\n break;\n }\n }\n return prop;\n };\n}\n/**\n *\n * @param {string} keyString ?\n * @param {Object} value ?\n * @param {boolean} isControlParent ?\n * @param {string} arrayFunction ?\n * @returns {Object} ?\n */\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\n var modelObject = keyString;\n if (isControlParent) {\n modelObject = {};\n modelObject[\"\" + keyString] = value;\n if (value && typeof value === 'object') {\n var action = 'ejsAction';\n modelObject[\"\" + keyString][\"\" + action] = arrayFunction;\n }\n }\n return modelObject;\n}\n/**\n * Method used to create property. General syntax below.\n *\n * @param {Object} defaultValue - Specifies the default value of property.\n * @returns {PropertyDecorator} ?\n * @private\n */\nexport function Property(defaultValue) {\n return function (target, key) {\n var propertyDescriptor = {\n set: propertySetter(defaultValue, key),\n get: propertyGetter(defaultValue, key),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'prop', defaultValue);\n };\n}\n/**\n * Method used to create complex property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Complex({},Type)\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Complex(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexSetter(defaultValue, key, type),\n get: complexGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex Factory property. General syntax below.\n *\n * @param {Function} type - Specifies the class factory type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @ComplexFactory(defaultType, factoryFunction)\n * propertyName: Type1 | Type2;\n * ```\n * @private\n */\nexport function ComplexFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexFactorySetter({}, key, type),\n get: complexFactoryGetter({}, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'complexProp', {}, type);\n };\n}\n/**\n * Method used to create complex array property. General syntax below.\n *\n * @param {any} defaultValue - Specifies the default value of property.\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyDecorator} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function Collection(defaultValue, type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArraySetter(defaultValue, key, type),\n get: complexArrayGetter(defaultValue, key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\n };\n}\n/**\n * Method used to create complex factory array property. General syntax below.\n *\n * @param {Function} type - Specifies the class type of complex object.\n * @returns {PropertyCollectionInfo} ?\n * ```\n * @Collection([], Type);\n * propertyName: Type;\n * ```\n * @private\n */\nexport function CollectionFactory(type) {\n return function (target, key) {\n var propertyDescriptor = {\n set: complexArrayFactorySetter([], key, type),\n get: complexArrayFactoryGetter([], key, type),\n enumerable: true,\n configurable: true\n };\n //new property creation\n Object.defineProperty(target, key, propertyDescriptor);\n addPropertyCollection(target, key, 'colProp', {}, type);\n };\n}\n/**\n * Method used to create event property. General syntax below.\n *\n * @returns {PropertyDecorator} ?\n * ```\n * @Event(()=>{return true;})\n * ```\n * @private\n */\nexport function Event() {\n return function (target, key) {\n var eventDescriptor = {\n set: function (newValue) {\n var oldValue = this.properties[\"\" + key];\n if (oldValue !== newValue) {\n var finalContext = getParentContext(this, key);\n if (isUndefined(oldValue) === false) {\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\n }\n finalContext.context.addEventListener(finalContext.prefix, newValue);\n this.properties[\"\" + key] = newValue;\n }\n },\n get: propertyGetter(undefined, key),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, eventDescriptor);\n addPropertyCollection(target, key, 'event');\n };\n}\n/**\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\n *\n * @param {Function} classConstructor ?\n * @returns {void} ?\n * @private\n */\nexport function NotifyPropertyChanges(classConstructor) {\n /** Need to code */\n}\n/**\n * Method used to create the builderObject for the target component.\n *\n * @param {BuildInfo} target ?\n * @param {string} key ?\n * @param {string} propertyType ?\n * @param {Object} defaultValue ?\n * @param {Function} type ?\n * @returns {void} ?\n * @private\n */\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\n if (isUndefined(target.propList)) {\n target.propList = {\n props: [],\n complexProps: [],\n colProps: [],\n events: [],\n propNames: [],\n complexPropNames: [],\n colPropNames: [],\n eventNames: []\n };\n }\n target.propList[propertyType + 's'].push({\n propertyName: key,\n defaultValue: defaultValue,\n type: type\n });\n target.propList[propertyType + 'Names'].push(key);\n}\n/**\n * Returns an object containing the builder properties\n *\n * @param {Function} component ?\n * @returns {Object} ?\n * @private\n */\nfunction getBuilderProperties(component) {\n if (isUndefined(component.prototype.builderObject)) {\n component.prototype.builderObject = {\n properties: {}, propCollections: [], add: function () {\n this.isPropertyArray = true;\n this.propCollections.push(extend({}, this.properties, {}));\n }\n };\n var rex = /complex/;\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\n var key = _a[_i];\n var _loop_1 = function (prop) {\n if (rex.test(key)) {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n var childType = {};\n merge(childType, getBuilderProperties(prop.type));\n value(childType);\n var tempValue;\n if (!childType.isPropertyArray) {\n tempValue = extend({}, childType.properties, {});\n }\n else {\n tempValue = childType.propCollections;\n }\n this.properties[prop.propertyName] = tempValue;\n childType.properties = {};\n childType.propCollections = [];\n childType.isPropertyArray = false;\n return this;\n };\n }\n else {\n component.prototype.builderObject[prop.propertyName] = function (value) {\n this.properties[prop.propertyName] = value;\n return this;\n };\n }\n };\n for (var _b = 0, _c = component.prototype.propList[\"\" + key]; _b < _c.length; _b++) {\n var prop = _c[_b];\n _loop_1(prop);\n }\n }\n }\n return component.prototype.builderObject;\n}\n/**\n * Method used to create builder for the components\n *\n * @param {any} component -specifies the target component for which builder to be created.\n * @returns {Object} ?\n * @private\n */\nexport function CreateBuilder(component) {\n var builderFunction = function (element) {\n this.element = element;\n return this;\n };\n var instanceFunction = function (element) {\n if (!Object.prototype.hasOwnProperty.call(builderFunction, 'create')) {\n builderFunction.prototype = getBuilderProperties(component);\n builderFunction.prototype.create = function () {\n var temp = extend({}, {}, this.properties);\n this.properties = {};\n return new component(temp, this.element);\n };\n }\n return new builderFunction(element);\n };\n return instanceFunction;\n}\n/**\n * Returns parent options for the object\n *\n * @param {Object} context ?\n * @param {string} prefix ?\n * @returns {ParentOption} ?\n * @private\n */\nfunction getParentContext(context, prefix) {\n if (Object.prototype.hasOwnProperty.call(context, 'parentObj') === false) {\n return { context: context, prefix: prefix };\n }\n else {\n var curText = getValue('propName', context);\n if (curText) {\n prefix = curText + '-' + prefix;\n }\n return getParentContext(getValue('parentObj', context), prefix);\n }\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { createElement, selectAll, closest } from './dom';\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { EventHandler } from './event-handler';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\n/**\n * The Animation framework provide options to animate the html DOM elements\n * ```typescript\n * let animeObject = new Animation({\n * name: 'SlideLeftIn',\n * duration: 1000\n * });\n * animeObject.animate('#anime1');\n * animeObject.animate('#anime2', { duration: 500 });\n * ```\n */\nvar Animation = /** @class */ (function (_super) {\n __extends(Animation, _super);\n function Animation(options) {\n var _this = _super.call(this, options, undefined) || this;\n /**\n * @private\n */\n _this.easing = {\n ease: 'cubic-bezier(0.250, 0.100, 0.250, 1.000)',\n linear: 'cubic-bezier(0.250, 0.250, 0.750, 0.750)',\n easeIn: 'cubic-bezier(0.420, 0.000, 1.000, 1.000)',\n easeOut: 'cubic-bezier(0.000, 0.000, 0.580, 1.000)',\n easeInOut: 'cubic-bezier(0.420, 0.000, 0.580, 1.000)',\n elasticInOut: 'cubic-bezier(0.5,-0.58,0.38,1.81)',\n elasticIn: 'cubic-bezier(0.17,0.67,0.59,1.81)',\n elasticOut: 'cubic-bezier(0.7,-0.75,0.99,1.01)'\n };\n return _this;\n }\n Animation_1 = Animation;\n /**\n * Applies animation to the current element.\n *\n * @param {string | HTMLElement} element - Element which needs to be animated.\n * @param {AnimationModel} options - Overriding default animation settings.\n * @returns {void} ?\n */\n Animation.prototype.animate = function (element, options) {\n options = !options ? {} : options;\n var model = this.getModel(options);\n if (typeof element === 'string') {\n var elements = Array.prototype.slice.call(selectAll(element, document));\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element_1 = elements_1[_i];\n model.element = element_1;\n Animation_1.delayAnimation(model);\n }\n }\n else {\n model.element = element;\n Animation_1.delayAnimation(model);\n }\n };\n /**\n * Stop the animation effect on animated element.\n *\n * @param {HTMLElement} element - Element which needs to be stop the animation.\n * @param {AnimationOptions} model - Handling the animation model at stop function.\n * @returns {void}\n */\n Animation.stop = function (element, model) {\n element.style.animation = '';\n element.removeAttribute('e-animate');\n var animationId = element.getAttribute('e-animation-id');\n if (animationId) {\n var frameId = parseInt(animationId, 10);\n cancelAnimationFrame(frameId);\n element.removeAttribute('e-animation-id');\n }\n if (model && model.end) {\n model.end.call(this, model);\n }\n };\n /**\n * Set delay to animation element\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.delayAnimation = function (model) {\n if (animationMode === 'Disable' || animationMode === GlobalAnimationMode.Disable) {\n if (model.begin) {\n model.begin.call(this, model);\n }\n if (model.end) {\n model.end.call(this, model);\n }\n }\n else {\n if (model.delay) {\n setTimeout(function () { Animation_1.applyAnimation(model); }, model.delay);\n }\n else {\n Animation_1.applyAnimation(model);\n }\n }\n };\n /**\n * Triggers animation\n *\n * @param {AnimationModel} model ?\n * @returns {void}\n */\n Animation.applyAnimation = function (model) {\n var _this = this;\n model.timeStamp = 0;\n var step = 0;\n var timerId = 0;\n var prevTimeStamp = 0;\n var duration = model.duration;\n model.element.setAttribute('e-animate', 'true');\n var startAnimation = function (timeStamp) {\n try {\n if (timeStamp) {\n // let step: number = model.timeStamp = timeStamp - startTime;\n /** phantomjs workaround for timestamp fix */\n prevTimeStamp = prevTimeStamp === 0 ? timeStamp : prevTimeStamp;\n model.timeStamp = (timeStamp + model.timeStamp) - prevTimeStamp;\n prevTimeStamp = timeStamp;\n /** phantomjs workaround end */\n // trigger animation begin event\n if (!step && model.begin) {\n model.begin.call(_this, model);\n }\n step = step + 1;\n var avg = model.timeStamp / step;\n if (model.timeStamp < duration && model.timeStamp + avg < duration && model.element.getAttribute('e-animate')) {\n // apply animation effect to the current element\n model.element.style.animation = model.name + ' ' + model.duration + 'ms ' + model.timingFunction;\n if (model.progress) {\n model.progress.call(_this, model);\n }\n // repeat requestAnimationFrame\n requestAnimationFrame(startAnimation);\n }\n else {\n // clear requestAnimationFrame\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n model.element.removeAttribute('e-animate');\n model.element.style.animation = '';\n if (model.end) {\n model.end.call(_this, model);\n }\n }\n }\n else {\n //startTime = performance.now();\n // set initial requestAnimationFrame\n timerId = requestAnimationFrame(startAnimation);\n model.element.setAttribute('e-animation-id', timerId.toString());\n }\n }\n catch (e) {\n cancelAnimationFrame(timerId);\n model.element.removeAttribute('e-animation-id');\n if (model.fail) {\n model.fail.call(_this, e);\n }\n }\n };\n startAnimation();\n };\n /**\n * Returns Animation Model\n *\n * @param {AnimationModel} options ?\n * @returns {AnimationModel} ?\n */\n Animation.prototype.getModel = function (options) {\n return {\n name: options.name || this.name,\n delay: options.delay || this.delay,\n duration: (options.duration !== undefined ? options.duration : this.duration),\n begin: options.begin || this.begin,\n end: options.end || this.end,\n fail: options.fail || this.fail,\n progress: options.progress || this.progress,\n timingFunction: this.easing[options.timingFunction] ? this.easing[options.timingFunction] :\n (options.timingFunction || this.easing[this.timingFunction])\n };\n };\n /**\n * @private\n * @param {AnimationModel} newProp ?\n * @param {AnimationModel} oldProp ?\n * @returns {void} ?\n */\n Animation.prototype.onPropertyChanged = function (newProp, oldProp) {\n // no code needed\n };\n /**\n * Returns module name as animation\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.getModuleName = function () {\n return 'animation';\n };\n /**\n *\n * @private\n * @returns {void} ?\n */\n Animation.prototype.destroy = function () {\n //Override base destroy;\n };\n var Animation_1;\n __decorate([\n Property('FadeIn')\n ], Animation.prototype, \"name\", void 0);\n __decorate([\n Property(400)\n ], Animation.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], Animation.prototype, \"timingFunction\", void 0);\n __decorate([\n Property(0)\n ], Animation.prototype, \"delay\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], Animation.prototype, \"fail\", void 0);\n Animation = Animation_1 = __decorate([\n NotifyPropertyChanges\n ], Animation);\n return Animation;\n}(Base));\nexport { Animation };\n/**\n * Ripple provides material theme's wave effect when an element is clicked\n * ```html\n *
    \n * \n * ```\n *\n * @private\n * @param {HTMLElement} element - Target element\n * @param {RippleOptions} rippleOptions - Ripple options .\n * @param {Function} done .\n * @returns {void} .\n */\nexport function rippleEffect(element, rippleOptions, done) {\n var rippleModel = getRippleModel(rippleOptions);\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\n return (function () {\n // do nothing.\n });\n }\n element.setAttribute('data-ripple', 'true');\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n if (Browser.isPointer) {\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\n }\n return (function () {\n element.removeAttribute('data-ripple');\n EventHandler.remove(element, 'mousedown', rippleHandler);\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\n });\n}\n/**\n * Handler for ripple model\n *\n * @param {RippleOptions} rippleOptions ?\n * @returns {RippleOptions} ?\n */\nfunction getRippleModel(rippleOptions) {\n var rippleModel = {\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\n };\n return rippleModel;\n}\n/**\n * Handler for ripple event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleHandler(e) {\n var target = (e.target);\n var selector = this.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\n return;\n }\n var offset = element.getBoundingClientRect();\n var offsetX = e.pageX - document.body.scrollLeft;\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\n document.documentElement.scrollTop : document.body.scrollTop);\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\n var diameter = radius * 2 + 'px';\n var x = offsetX - offset.left - radius;\n var y = offsetY - offset.top - radius;\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\n x = 0;\n y = 0;\n diameter = '100%';\n }\n element.classList.add('e-ripple');\n var duration = this.rippleOptions.duration.toString();\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\n 'transition-duration: ' + duration + 'ms;';\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\n element.appendChild(rippleElement);\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\n rippleElement.style.transform = 'scale(1)';\n if (element !== this.parent) {\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\n }\n}\n/**\n * Handler for ripple element mouse up event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleUpHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for ripple element mouse move event\n *\n * @param {MouseEvent} e ?\n * @returns {void} ?\n * @private\n */\nfunction rippleLeaveHandler(e) {\n removeRipple(e, this);\n}\n/**\n * Handler for removing ripple element\n *\n * @param {MouseEvent} e ?\n * @param {RippleArgs} eventArgs ?\n * @returns {void} ?\n * @private\n */\nfunction removeRipple(e, eventArgs) {\n var duration = eventArgs.rippleOptions.duration;\n var target = (e.target);\n var selector = eventArgs.rippleOptions.selector;\n var element = selector ? closest(target, selector) : target;\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\n return;\n }\n var rippleElements = selectAll('.e-ripple-element', element);\n var rippleElement = rippleElements[rippleElements.length - 1];\n if (rippleElement) {\n rippleElement.style.opacity = '0.5';\n }\n if (eventArgs.parent !== element) {\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\n }\n setTimeout(function () {\n if (rippleElement && rippleElement.parentNode) {\n rippleElement.parentNode.removeChild(rippleElement);\n }\n if (!element.getElementsByClassName('e-ripple-element').length) {\n element.classList.remove('e-ripple');\n }\n if (eventArgs.done) {\n eventArgs.done(e);\n }\n }, duration);\n}\nexport var isRippleEnabled = false;\n/**\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\n *\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\n * @returns {boolean} ?\n */\nexport function enableRipple(isRipple) {\n isRippleEnabled = isRipple;\n return isRippleEnabled;\n}\n/**\n * Defines the Modes of Global animation.\n *\n * @private\n */\nexport var animationMode;\n/**\n * This method is used to enable or disable the animation for all components.\n *\n * @param {string|GlobalAnimationMode} value - Specifies the value to enable or disable the animation for all components. When set to 'enable', it enables the animation for all components, regardless of the individual component's animation settings. When set to 'disable', it disables the animation for all components, regardless of the individual component's animation settings.\n * @returns {void}\n */\nexport function setGlobalAnimation(value) {\n animationMode = value;\n}\n/**\n * Defines the global animation modes for all components.\n */\nexport var GlobalAnimationMode;\n(function (GlobalAnimationMode) {\n /**\n * Defines the global animation mode as Default. Animation is enabled or disabled based on the component's animation settings.\n */\n GlobalAnimationMode[\"Default\"] = \"Default\";\n /**\n * Defines the global animation mode as Enable. Enables the animation for all components, regardless of the individual component's animation settings.\n */\n GlobalAnimationMode[\"Enable\"] = \"Enable\";\n /**\n * Defines the global animation mode as Disable. Disables the animation for all components, regardless of the individual component's animation settings.\n */\n GlobalAnimationMode[\"Disable\"] = \"Disable\";\n})(GlobalAnimationMode || (GlobalAnimationMode = {}));\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Module loading operations\n */\nimport { createInstance, setValue, getValue, deleteObject } from './util';\nvar MODULE_SUFFIX = 'Module';\nvar ModuleLoader = /** @class */ (function () {\n function ModuleLoader(parent) {\n this.loadedModules = [];\n this.parent = parent;\n }\n /**\n * Inject required modules in component library\n *\n * @returns {void} ?\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\n */\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\n var reqLength = requiredModules.length;\n if (reqLength === 0) {\n this.clean();\n return;\n }\n if (this.loadedModules.length) {\n this.clearUnusedModule(requiredModules);\n }\n for (var i = 0; i < reqLength; i++) {\n var modl = requiredModules[parseInt(i.toString(), 10)];\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\n var module = moduleList_1[_i];\n var modName = modl.member;\n if (module && module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\n var moduleObject = createInstance(module, modl.args);\n var memberName = this.getMemberName(modName);\n if (modl.isProperty) {\n setValue(memberName, module, this.parent);\n }\n else {\n setValue(memberName, moduleObject, this.parent);\n }\n var loadedModule = modl;\n loadedModule.member = memberName;\n this.loadedModules.push(loadedModule);\n }\n }\n }\n };\n /**\n * To remove the created object while destroying the control\n *\n * @returns {void}\n */\n ModuleLoader.prototype.clean = function () {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var modules = _a[_i];\n if (!modules.isProperty) {\n getValue(modules.member, this.parent).destroy();\n }\n }\n this.loadedModules = [];\n };\n /**\n * Returns the array of modules that are not loaded in the component library.\n *\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\n * @returns {ModuleDeclaration[]} ?\n * @private\n */\n ModuleLoader.prototype.getNonInjectedModules = function (requiredModules) {\n var _this = this;\n return requiredModules.filter(function (module) { return !_this.isModuleLoaded(module.member); });\n };\n /**\n * Removes all unused modules\n *\n * @param {ModuleDeclaration[]} moduleList ?\n * @returns {void} ?\n */\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\n var _this = this;\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\n var removableModule = this.loadedModules.filter(function (module) {\n return usedModules.indexOf(module.member) === -1;\n });\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\n var mod = removableModule_1[_i];\n if (!mod.isProperty) {\n getValue(mod.member, this.parent).destroy();\n }\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\n deleteObject(this.parent, mod.member);\n }\n };\n /**\n * To get the name of the member.\n *\n * @param {string} name ?\n * @returns {string} ?\n */\n ModuleLoader.prototype.getMemberName = function (name) {\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\n };\n /**\n * Returns boolean based on whether the module specified is loaded or not\n *\n * @param {string} modName ?\n * @returns {boolean} ?\n */\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\n var mod = _a[_i];\n if (mod.member === this.getMemberName(modName)) {\n return true;\n }\n }\n return false;\n };\n return ModuleLoader;\n}());\nexport { ModuleLoader };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getValue, setValue, merge, isBlazor } from './util';\nimport { Base } from './base';\n/**\n * To detect the changes for inner properties.\n *\n * @private\n * @returns {void} ?\n */\nvar ChildProperty = /** @class */ (function () {\n function ChildProperty(parent, propName, defaultValue, isArray) {\n this.isComplexArraySetter = false;\n this.properties = {};\n this.changedProperties = {};\n this.childChangedProperties = {};\n this.oldProperties = {};\n this.finalUpdate = function () { };\n this.callChildDataBind = getValue('callChildDataBind', Base);\n this.parentObj = parent;\n this.controlParent = this.parentObj.controlParent || this.parentObj;\n this.propName = propName;\n this.isParentArray = isArray;\n this.setProperties(defaultValue, true);\n }\n /**\n * Updates the property changes\n *\n * @param {boolean} val ?\n * @param {string} propName ?\n * @returns {void} ?\n */\n ChildProperty.prototype.updateChange = function (val, propName) {\n if (val === true) {\n this.parentObj.childChangedProperties[\"\" + propName] = val;\n }\n else {\n delete this.parentObj.childChangedProperties[\"\" + propName];\n }\n if (this.parentObj.updateChange) {\n this.parentObj.updateChange(val, this.parentObj.propName);\n }\n };\n /**\n * Updates time out duration\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.updateTimeOut = function () {\n if (this.parentObj.updateTimeOut) {\n this.parentObj.finalUpdate();\n this.parentObj.updateTimeOut();\n }\n else {\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\n var clearUpdate = function () {\n clearTimeout(changeTime_1);\n };\n this.finalUpdate = clearUpdate;\n }\n };\n /**\n * Clears changed properties\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.clearChanges = function () {\n this.finalUpdate();\n this.updateChange(false, this.propName);\n this.oldProperties = {};\n this.changedProperties = {};\n };\n /**\n * Set property changes\n *\n * @param {Object} prop ?\n * @param {boolean} muteOnChange ?\n * @returns {void} ?\n */\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\n if (muteOnChange === true) {\n merge(this, prop);\n this.updateChange(false, this.propName);\n this.clearChanges();\n }\n else {\n merge(this, prop);\n }\n };\n /**\n * Binds data\n *\n * @returns {void} ?\n */\n ChildProperty.prototype.dataBind = function () {\n this.callChildDataBind(this.childChangedProperties, this);\n if (this.isParentArray) {\n var curIndex = this.parentObj[this.propName].indexOf(this);\n if (Object.keys(this.changedProperties).length) {\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\n }\n }\n else {\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\n }\n this.clearChanges();\n };\n /**\n * Saves changes to newer values\n *\n * @param {string} key ?\n * @param {Object} newValue ?\n * @param {Object} oldValue ?\n * @param {boolean} restrictServerDataBind ?\n * @returns {void} ?\n */\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\n if (this.controlParent.isProtectedOnChange) {\n return;\n }\n if (!restrictServerDataBind) {\n this.serverDataBind(key, newValue, true);\n }\n this.oldProperties[\"\" + key] = oldValue;\n this.changedProperties[\"\" + key] = newValue;\n this.updateChange(true, this.propName);\n this.finalUpdate();\n this.updateTimeOut();\n };\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\n var parent_1;\n var newChanges = {};\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\n /* istanbul ignore else */\n if (parentKey.indexOf('.') !== -1) {\n var complexKeys = parentKey.split('.');\n parent_1 = newChanges;\n for (var i = 0; i < complexKeys.length; i++) {\n var isFinal = i === complexKeys.length - 1;\n parent_1[complexKeys[parseInt(i.toString(), 10)]] = isFinal ? value : {};\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[parseInt(i.toString(), 10)]];\n }\n }\n else {\n newChanges[\"\" + parentKey] = {};\n parent_1 = newChanges[\"\" + parentKey];\n newChanges[\"\" + parentKey][\"\" + key] = value;\n }\n /* istanbul ignore next */\n if (this.isParentArray) {\n var actionProperty = 'ejsAction';\n parent_1[\"\" + actionProperty] = action ? action : 'none';\n }\n this.controlParent.serverDataBind(newChanges);\n }\n };\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\n var index = '';\n var propName = this.propName;\n /* istanbul ignore next */\n if (this.isParentArray) {\n index = this.parentObj[this.propName].indexOf(this);\n var valueLength = this.parentObj[this.propName].length;\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\n index = index !== -1 ? '-' + index : '-' + valueLength;\n propName = propName + index;\n }\n if (this.controlParent !== this.parentObj) {\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\n }\n return propName;\n };\n return ChildProperty;\n}());\nexport { ChildProperty };\n","import { createElement } from './dom';\nimport { getValue, containerObject, setValue, isNullOrUndefined } from './util';\nexport var componentList = ['grid', 'pivotview', 'treegrid', 'spreadsheet', 'rangeNavigator', 'DocumentEditor', 'listbox', 'inplaceeditor', 'PdfViewer', 'richtexteditor', 'DashboardLayout', 'chart', 'stockChart', 'circulargauge', 'diagram', 'heatmap', 'lineargauge', 'maps', 'slider', 'smithchart', 'barcode', 'sparkline', 'treemap', 'bulletChart', 'kanban', 'daterangepicker', 'schedule', 'gantt', 'signature', 'query-builder', 'drop-down-tree', 'carousel', 'filemanager', 'uploader', 'accordion', 'tab', 'treeview'];\nvar bypassKey = [115, 121, 110, 99, 102, 117, 115, 105,\n 111, 110, 46, 105, 115, 76, 105, 99, 86, 97, 108,\n 105, 100, 97, 116, 101, 100];\nvar accountURL;\n/**\n * License validation module\n *\n * @private\n */\nvar LicenseValidator = /** @class */ (function () {\n function LicenseValidator(key) {\n this.isValidated = false;\n this.isLicensed = true;\n this.version = '27';\n this.platform = /JavaScript|ASPNET|ASPNETCORE|ASPNETMVC|FileFormats|essentialstudio/i;\n this.errors = {\n noLicense: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n trailExpired: 'This application was built using a trial version of Syncfusion Essential Studio.' +\n ' To remove the license validation message permanently, a valid license key must be included.',\n versionMismatched: 'The included Syncfusion license key is invalid.',\n platformMismatched: 'The included Syncfusion license key is invalid.',\n invalidKey: 'The included Syncfusion license key is invalid.'\n };\n /**\n * To manage licensing operation.\n */\n this.manager = (function () {\n var licKey = null;\n /**\n * Sets the license key.\n *\n * @param {string} key - Specifies the license key.\n * @returns {void}\n */\n function set(key) { licKey = key; }\n /**\n * Gets the license key.\n *\n * @returns {string} -Gets the license key.\n */\n function get() { return licKey; }\n return {\n setKey: set,\n getKey: get\n };\n })();\n /**\n * To manage npx licensing operation.\n */\n this.npxManager = (function () {\n var npxLicKey = 'npxKeyReplace';\n /**\n * Gets the license key.\n *\n * @returns {string} - Gets the license key.\n */\n function get() { return npxLicKey; }\n return {\n getKey: get\n };\n })();\n this.manager.setKey(key);\n }\n /**\n * To validate the provided license key.\n *\n * @returns {boolean} ?\n */\n LicenseValidator.prototype.validate = function () {\n var contentKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 108, 105, 99, 101, 110, 115, 101, 67, 111, 110, 116, 101, 110, 116];\n var URLKey = [115, 121, 110, 99, 102, 117, 115, 105, 111, 110, 46,\n 99, 108, 97, 105, 109, 65, 99, 99, 111, 117, 110, 116, 85, 82, 76];\n if (!this.isValidated && (containerObject && !getValue(convertToChar(bypassKey), containerObject) && !getValue('Blazor', containerObject))) {\n var validateMsg = void 0;\n var validateURL = void 0;\n if ((this.manager && this.manager.getKey()) || (this.npxManager && this.npxManager.getKey() !== 'npxKeyReplace')) {\n var result = this.getInfoFromKey();\n if (result && result.length) {\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\n var res = result_1[_i];\n if (!this.platform.test(res.platform) || res.invalidPlatform) {\n validateMsg = this.errors.platformMismatched;\n }\n else if (res.version.indexOf(this.version) === -1) {\n validateMsg = this.errors.versionMismatched;\n validateMsg = validateMsg.replace('##LicenseVersion', res.version);\n validateMsg = validateMsg.replace('##Requireversion', this.version + '.x');\n }\n else if (res.expiryDate) {\n var expDate = new Date(res.expiryDate);\n var currDate = new Date();\n if (expDate !== currDate && expDate < currDate) {\n validateMsg = this.errors.trailExpired;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n validateMsg = this.errors.invalidKey;\n }\n }\n else {\n var licenseContent = getValue(convertToChar(contentKey), containerObject);\n validateURL = getValue(convertToChar(URLKey), containerObject);\n if (licenseContent && licenseContent !== '') {\n validateMsg = licenseContent;\n }\n else {\n validateMsg = this.errors.noLicense;\n }\n }\n if (validateMsg && typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n accountURL = (validateURL && validateURL !== '') ? validateURL : 'https://www.syncfusion.com/account/claim-license-key?pl=SmF2YVNjcmlwdA==&vs=Mjc=&utm_source=es_license_validation_banner&utm_medium=listing&utm_campaign=license-information';\n var errorDiv = createElement('div', {\n innerHTML: \"\" + validateMsg + ' ' + 'Claim your free account'\n });\n errorDiv.setAttribute('style', \"position: fixed;\\n top: 10px;\\n left: 10px;\\n right: 10px;\\n font-size: 14px;\\n background: #EEF2FF;\\n color: #222222;\\n z-index: 999999999;\\n text-align: left;\\n border: 1px solid #EEEEEE;\\n padding: 10px 11px 10px 50px;\\n border-radius: 8px;\\n font-family: Helvetica Neue, Helvetica, Arial;\");\n document.body.appendChild(errorDiv);\n this.isLicensed = false;\n }\n this.isValidated = true;\n setValue(convertToChar(bypassKey), this.isValidated, containerObject);\n }\n return this.isLicensed;\n };\n LicenseValidator.prototype.getDecryptedData = function (key) {\n try {\n return atob(key);\n }\n catch (error) {\n return '';\n }\n };\n /**\n * Get license information from key.\n *\n * @returns {IValidator} - Get license information from key.\n */\n LicenseValidator.prototype.getInfoFromKey = function () {\n try {\n var licKey = '';\n var pkey = [5439488, 7929856, 5111808, 6488064, 4587520, 7667712, 5439488,\n 6881280, 5177344, 7208960, 4194304, 4456448, 6619136, 7733248, 5242880, 7077888,\n 6356992, 7602176, 4587520, 7274496, 7471104, 7143424];\n var decryptedStr = [];\n var resultArray = [];\n var invalidPlatform = false;\n var isNpxKey = false;\n if (this.manager.getKey()) {\n licKey = this.manager.getKey();\n }\n else {\n isNpxKey = true;\n licKey = this.npxManager.getKey().split('npxKeyReplace')[1];\n }\n var licKeySplit = licKey.split(';');\n for (var _i = 0, licKeySplit_1 = licKeySplit; _i < licKeySplit_1.length; _i++) {\n var lKey = licKeySplit_1[_i];\n var decodeStr = this.getDecryptedData(lKey);\n if (!decodeStr) {\n continue;\n }\n var k = 0;\n var buffr = '';\n if (!isNpxKey) {\n for (var i = 0; i < decodeStr.length; i++, k++) {\n if (k === pkey.length) {\n k = 0;\n }\n var c = decodeStr.charCodeAt(i);\n buffr += String.fromCharCode(c ^ (pkey[parseInt(k.toString(), 10)] >> 16));\n }\n }\n else {\n var charKey = decodeStr[decodeStr.length - 1];\n var decryptedKey = [];\n for (var i = 0; i < decodeStr.length; i++) {\n decryptedKey[parseInt(i.toString(), 10)] = decodeStr[parseInt(i.toString(), 10)].charCodeAt(0)\n - charKey.charCodeAt(0);\n }\n for (var i = 0; i < decryptedKey.length; i++) {\n buffr += String.fromCharCode(decryptedKey[parseInt(i.toString(), 10)]);\n }\n }\n if (this.platform.test(buffr)) {\n decryptedStr = buffr.split(';');\n invalidPlatform = false;\n // checked the length to verify the key in proper strucutre\n if (decryptedStr.length > 3) {\n resultArray.push({ platform: decryptedStr[0],\n version: decryptedStr[1],\n expiryDate: decryptedStr[2] });\n }\n }\n else if (buffr && buffr.split(';').length > 3) {\n invalidPlatform = true;\n }\n }\n if (invalidPlatform && !resultArray.length) {\n return [{ invalidPlatform: invalidPlatform }];\n }\n else {\n return resultArray.length ? resultArray : null;\n }\n }\n catch (error) {\n return null;\n }\n };\n return LicenseValidator;\n}());\nvar licenseValidator = new LicenseValidator();\n/**\n * Converts the given number to characters.\n *\n * @param {number} cArr - Specifies the license key as number.\n * @returns {string} ?\n */\nfunction convertToChar(cArr) {\n var ret = '';\n for (var _i = 0, cArr_1 = cArr; _i < cArr_1.length; _i++) {\n var arr = cArr_1[_i];\n ret += String.fromCharCode(arr);\n }\n return ret;\n}\n/**\n * To set license key.\n *\n * @param {string} key - license key\n * @returns {void}\n */\nexport function registerLicense(key) {\n licenseValidator = new LicenseValidator(key);\n}\nexport var validateLicense = function (key) {\n if (key) {\n registerLicense(key);\n }\n return licenseValidator.validate();\n};\nexport var getVersion = function () {\n return licenseValidator.version;\n};\n// Method for create overlay over the sample\nexport var createLicenseOverlay = function () {\n var bannerTemplate = \"\\n
    \\n
    \\n
    \\n \\n
    \\n
    Claim your FREE account and get a key in less than a minute
    \\n
      \\n
    • Access to a 30-day free trial of any of our products.
    • \\n
    • Access to 24x5 support by developers via the support tickets, forum, feature & feedback page and chat.
    • \\n
    • 200+ ebooks on the latest technologies, industry trends, and research topics.\\n
    • \\n
    • Largest collection of over 7,000 flat and wireframe icons for free with Syncfusion Metro Studio.
    • \\n
    • Free and unlimited access to Syncfusion technical blogs and whitepapers.
    • \\n
    \\n
    Syncfusion is trusted by 29,000+ businesses worldwide
    \\n \\n Claim your FREE account\\n
    have a Syncfusion account? Sign In
    \\n
    \\n
    \";\n if (typeof document !== 'undefined' && !isNullOrUndefined(document)) {\n var errorBackground = createElement('div', {\n innerHTML: bannerTemplate\n });\n document.body.appendChild(errorBackground);\n }\n};\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\nimport { ModuleLoader } from './module-loader';\nimport { Base } from './base';\nimport { Observer } from './observer';\nimport { ChildProperty } from './child-property';\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\nimport { createElement, addClass, removeClass, select } from './dom';\nimport { validateLicense, createLicenseOverlay, componentList } from './validate-lic';\nvar componentCount = 0;\nvar lastPageID;\nvar lastHistoryLen = 0;\n// Decalre the static variable to count the instance\nvar instancecount = 0;\n// Decalre the static variable to find if control limit exceed or not\nvar isvalid = true;\n// We have added styles to inline type so here declare the static variable to detect if banner is added or not\nvar isBannerAdded = false;\nexport var versionBasedStatePersistence = false;\n/**\n * To enable or disable version based statePersistence functionality for all components globally.\n *\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\n * @returns {void}\n */\nexport function enableVersionBasedPersistence(status) {\n versionBasedStatePersistence = status;\n}\n/**\n * Base class for all Essential JavaScript components\n */\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n /**\n * Initialize the constructor for component base\n *\n * @param {Object} options ?\n * @param {string} selector ?\n */\n function Component(options, selector) {\n var _this = _super.call(this, options, selector) || this;\n _this.randomId = uniqueID();\n /**\n * string template option for Blazor template rendering\n *\n * @private\n */\n _this.isStringTemplate = false;\n _this.needsID = false;\n _this.isReactHybrid = false;\n _this.isAngular = false;\n _this.isReact = false;\n _this.isVue = false;\n if (isNullOrUndefined(_this.enableRtl)) {\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\n }\n if (isNullOrUndefined(_this.locale)) {\n _this.setProperties({ 'locale': defaultCulture }, true);\n }\n _this.moduleLoader = new ModuleLoader(_this);\n _this.localObserver = new Observer(_this);\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\n // Based on the considered control list we have count the instance\n if (typeof window !== 'undefined' && typeof document !== 'undefined' && !validateLicense()) {\n if (componentList.indexOf(_this.getModuleName()) !== -1) {\n instancecount = instancecount + 1;\n if (instancecount > 5) {\n isvalid = false;\n }\n }\n }\n if (!isUndefined(selector)) {\n _this.appendTo();\n }\n return _this;\n }\n Component.prototype.requiredModules = function () {\n return [];\n };\n /**\n * Destroys the sub modules while destroying the widget\n *\n * @returns {void} ?\n */\n Component.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n if (this.enablePersistence) {\n this.setPersistData();\n this.detachUnloadEvent();\n }\n this.localObserver.destroy();\n if (this.refreshing) {\n return;\n }\n removeClass([this.element], ['e-control']);\n this.trigger('destroyed', { cancel: false });\n _super.prototype.destroy.call(this);\n this.moduleLoader.clean();\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\n };\n /**\n * Applies all the pending property changes and render the component again.\n *\n * @returns {void} ?\n */\n Component.prototype.refresh = function () {\n this.refreshing = true;\n this.moduleLoader.clean();\n this.destroy();\n this.clearChanges();\n this.localObserver = new Observer(this);\n this.preRender();\n this.injectModules();\n this.render();\n this.refreshing = false;\n };\n Component.prototype.accessMount = function () {\n if (this.mount && !this.isReactHybrid) {\n this.mount();\n }\n };\n /**\n * Returns the route element of the component\n *\n * @returns {HTMLElement} ?\n */\n Component.prototype.getRootElement = function () {\n if (this.isReactHybrid) {\n return this.actualElement;\n }\n else {\n return this.element;\n }\n };\n /**\n * Returns the persistence data for component\n *\n * @returns {any} ?\n */\n Component.prototype.getLocalData = function () {\n var eleId = this.getModuleName() + this.element.id;\n if (versionBasedStatePersistence) {\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\n }\n else {\n return window.localStorage.getItem(eleId);\n }\n };\n /**\n * Adding unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.attachUnloadEvent = function () {\n this.handleUnload = this.handleUnload.bind(this);\n window.addEventListener('pagehide', this.handleUnload);\n };\n /**\n * Handling unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.handleUnload = function () {\n this.setPersistData();\n };\n /**\n * Removing unload event to persist data when enable persistence true\n *\n * @returns {void}\n */\n Component.prototype.detachUnloadEvent = function () {\n window.removeEventListener('pagehide', this.handleUnload);\n };\n /**\n * Appends the control within the given HTML element\n *\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\n * @returns {void} ?\n */\n Component.prototype.appendTo = function (selector) {\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\n this.element = select(selector, document);\n }\n else if (!isNullOrUndefined(selector)) {\n this.element = selector;\n }\n if (!isNullOrUndefined(this.element)) {\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\n addClass([this.element], ['e-control', moduleClass]);\n this.isProtectedOnChange = false;\n if (this.needsID && !this.element.id) {\n this.element.id = this.getUniqueID(this.getModuleName());\n }\n if (this.enablePersistence) {\n this.mergePersistData();\n this.attachUnloadEvent();\n }\n var inst = getValue('ej2_instances', this.element);\n if (!inst || inst.indexOf(this) === -1) {\n _super.prototype.addInstance.call(this);\n }\n this.preRender();\n this.injectModules();\n // Throw a warning for the required modules to be injected.\n var ignoredComponents = {\n schedule: 'all',\n diagram: 'all',\n PdfViewer: 'all',\n grid: ['logger'],\n richtexteditor: ['link', 'table', 'image', 'audio', 'video', 'formatPainter', 'emojiPicker', 'pasteCleanup', 'htmlEditor', 'toolbar', 'importExport'],\n treegrid: ['filter'],\n gantt: ['tooltip'],\n chart: ['Export', 'Zoom'],\n accumulationchart: ['Export'],\n 'query-builder': 'all'\n };\n var component = this.getModuleName();\n if (this.requiredModules && (!ignoredComponents[\"\" + component] || ignoredComponents[\"\" + component] !== 'all')) {\n var modulesRequired = this.requiredModules();\n for (var _i = 0, _a = this.moduleLoader.getNonInjectedModules(modulesRequired); _i < _a.length; _i++) {\n var module = _a[_i];\n var moduleName = module.name ? module.name : module.member;\n if (ignoredComponents[\"\" + component] && ignoredComponents[\"\" + component].indexOf(module.member) !== -1) {\n continue;\n }\n var componentName = component.charAt(0).toUpperCase() + component.slice(1); // To capitalize the component name\n console.warn(\"[WARNING] :: Module \\\"\" + moduleName + \"\\\" is not available in \" + componentName + \" component! You either misspelled the module name or forgot to load it.\");\n }\n }\n // Checked weather cases are valid or not. If control leads to more than five counts\n if (!isvalid && !isBannerAdded) {\n createLicenseOverlay();\n isBannerAdded = true;\n }\n this.render();\n if (!this.mount) {\n this.trigger('created');\n }\n else {\n this.accessMount();\n }\n }\n };\n /**\n * It is used to process the post rendering functionalities to a component.\n *\n * @param {Node} wrapperElement ?\n * @returns {void} ?\n */\n Component.prototype.renderComplete = function (wrapperElement) {\n if (isBlazor()) {\n var sfBlazor = 'sfBlazor';\n window[\"\" + sfBlazor].renderComplete(this.element, wrapperElement);\n }\n this.isRendered = true;\n };\n /**\n * When invoked, applies the pending property changes immediately to the component.\n *\n * @returns {void} ?\n */\n Component.prototype.dataBind = function () {\n this.injectModules();\n _super.prototype.dataBind.call(this);\n };\n /**\n * Attach one or more event handler to the current component context.\n * It is used for internal handling event internally within the component only.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.on = function (event, handler, context) {\n if (typeof event === 'string') {\n this.localObserver.on(event, handler, context);\n }\n else {\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\n var arg = event_1[_i];\n this.localObserver.on(arg.event, arg.handler, arg.context);\n }\n }\n };\n /**\n * To remove one or more event handler that has been attached with the on() method.\n *\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\n * @returns {void} ?\n * @private\n */\n Component.prototype.off = function (event, handler) {\n if (typeof event === 'string') {\n this.localObserver.off(event, handler);\n }\n else {\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\n var arg = event_2[_i];\n this.localObserver.off(arg.event, arg.handler);\n }\n }\n };\n /**\n * To notify the handlers in the specified event.\n *\n * @param {string} property - Specifies the event to be notify.\n * @param {Object} argument - Additional parameters to pass while calling the handler.\n * @returns {void} ?\n * @private\n */\n Component.prototype.notify = function (property, argument) {\n if (this.isDestroyed !== true) {\n this.localObserver.notify(property, argument);\n }\n };\n /**\n * Get injected modules\n *\n * @returns {Function} ?\n * @private\n */\n Component.prototype.getInjectedModules = function () {\n return this.injectedModules;\n };\n /**\n * Dynamically injects the required modules to the component.\n *\n * @param {Function} moduleList ?\n * @returns {void} ?\n */\n Component.Inject = function () {\n var moduleList = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n moduleList[_i] = arguments[_i];\n }\n if (!this.prototype.injectedModules) {\n this.prototype.injectedModules = [];\n }\n for (var i = 0; i < moduleList.length; i++) {\n if (this.prototype.injectedModules.indexOf(moduleList[parseInt(i.toString(), 10)]) === -1) {\n this.prototype.injectedModules.push(moduleList[parseInt(i.toString(), 10)]);\n }\n }\n };\n /**\n * This is a instance method to create an element.\n *\n * @param {string} tagName ?\n * @param {ElementProperties} prop ?\n * @param {boolean} isVDOM ?\n * @returns {any} ?\n * @private\n */\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\n return createElement(tagName, prop);\n };\n /**\n *\n * @param {Function} handler - handler to be triggered after state Updated.\n * @param {any} argument - Arguments to be passed to caller.\n * @returns {void} .\n * @private\n */\n Component.prototype.triggerStateChange = function (handler, argument) {\n if (this.isReactHybrid) {\n this.setState();\n this.currentContext = { calls: handler, args: argument };\n }\n };\n Component.prototype.injectModules = function () {\n if (this.injectedModules && this.injectedModules.length) {\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\n }\n };\n Component.prototype.detectFunction = function (args) {\n var prop = Object.keys(args);\n if (prop.length) {\n this[prop[0]] = args[prop[0]];\n }\n };\n Component.prototype.mergePersistData = function () {\n var data;\n if (versionBasedStatePersistence) {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\n }\n else {\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\n }\n if (!(isNullOrUndefined(data) || (data === ''))) {\n this.setProperties(JSON.parse(data), true);\n }\n };\n Component.prototype.setPersistData = function () {\n if (!this.isDestroyed) {\n if (versionBasedStatePersistence) {\n window.localStorage.setItem(this.getModuleName() +\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\n }\n else {\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\n }\n }\n };\n Component.prototype.renderReactTemplates = function (callback) {\n if (!isNullOrUndefined(callback)) {\n callback();\n }\n };\n Component.prototype.clearTemplate = function (templateName, index) {\n //No Code\n };\n Component.prototype.getUniqueID = function (definedName) {\n if (this.isHistoryChanged()) {\n componentCount = 0;\n }\n lastPageID = this.pageID(location.href);\n lastHistoryLen = history.length;\n return definedName + '_' + lastPageID + '_' + componentCount++;\n };\n Component.prototype.pageID = function (url) {\n var hash = 0;\n if (url.length === 0) {\n return hash;\n }\n for (var i = 0; i < url.length; i++) {\n var char = url.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32bit integer\n }\n return Math.abs(hash);\n };\n Component.prototype.isHistoryChanged = function () {\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\n };\n Component.prototype.addOnPersist = function (options) {\n var _this = this;\n var persistObj = {};\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\n var key = options_1[_i];\n var objValue = getValue(key, this);\n if (!isUndefined(objValue)) {\n setValue(key, this.getActualProperties(objValue), persistObj);\n }\n }\n return JSON.stringify(persistObj, function (key, value) {\n return _this.getActualProperties(value);\n });\n };\n Component.prototype.getActualProperties = function (obj) {\n if (obj instanceof ChildProperty) {\n return getValue('properties', obj);\n }\n else {\n return obj;\n }\n };\n Component.prototype.ignoreOnPersist = function (options) {\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\n };\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\n var newObj = {};\n var _loop_1 = function (key) {\n if (ignoreList.indexOf(key) === -1) {\n var value = obj[\"\" + key];\n if (typeof value === 'object' && !(value instanceof Array)) {\n var newList = ignoreList.filter(function (str) {\n var regExp = RegExp;\n return new regExp(key + '.').test(str);\n }).map(function (str) {\n return str.replace(key + '.', '');\n });\n newObj[\"\" + key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\n }\n else {\n newObj[\"\" + key] = value;\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n _loop_1(key);\n }\n return newObj;\n };\n __decorate([\n Property(false)\n ], Component.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"enableRtl\", void 0);\n __decorate([\n Property()\n ], Component.prototype, \"locale\", void 0);\n Component = __decorate([\n NotifyPropertyChanges\n ], Component);\n return Component;\n}(Base));\nexport { Component };\n//Function handling for page navigation detection\n/* istanbul ignore next */\n(function () {\n if (typeof window !== 'undefined') {\n window.addEventListener('popstate', \n /* istanbul ignore next */\n function () {\n componentCount = 0;\n });\n }\n})();\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible } from './dom';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { ChildProperty } from './child-property';\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\nvar isDraggedObject = { isDragged: false };\n/**\n * Specifies the position coordinates\n */\nvar Position = /** @class */ (function (_super) {\n __extends(Position, _super);\n function Position() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(0)\n ], Position.prototype, \"left\", void 0);\n __decorate([\n Property(0)\n ], Position.prototype, \"top\", void 0);\n return Position;\n}(ChildProperty));\nexport { Position };\n/**\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\n * ```html\n *
    Draggable
    \n * \n * ```\n */\nvar Draggable = /** @class */ (function (_super) {\n __extends(Draggable, _super);\n function Draggable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.dragLimit = Draggable_1.getDefaultPosition();\n _this.borderWidth = Draggable_1.getDefaultPosition();\n _this.padding = Draggable_1.getDefaultPosition();\n _this.diffX = 0;\n _this.prevLeft = 0;\n _this.prevTop = 0;\n _this.dragProcessStarted = false;\n _this.eleTop = 0;\n _this.tapHoldTimer = 0;\n _this.externalInitialize = false;\n _this.diffY = 0;\n _this.parentScrollX = 0;\n _this.parentScrollY = 0;\n _this.droppables = {};\n _this.bind();\n return _this;\n }\n Draggable_1 = Draggable;\n Draggable.prototype.bind = function () {\n this.toggleEvents();\n if (Browser.isIE) {\n addClass([this.element], 'e-block-touch');\n }\n this.droppables[this.scope] = {};\n };\n Draggable.getDefaultPosition = function () {\n return extend({}, defaultPosition);\n };\n Draggable.prototype.toggleEvents = function (isUnWire) {\n var ele;\n if (!isUndefined(this.handle)) {\n ele = select(this.handle, this.element);\n }\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\n if (isUnWire) {\n EventHandler.remove(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler);\n }\n else {\n EventHandler.add(ele || this.element, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, handler, this);\n }\n };\n /* istanbul ignore next */\n Draggable.prototype.mobileInitialize = function (evt) {\n var _this = this;\n var target = evt.currentTarget;\n this.tapHoldTimer = setTimeout(function () {\n _this.externalInitialize = true;\n _this.removeTapholdTimer();\n _this.initialize(evt, target);\n }, this.tapHoldThreshold);\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer, this);\n };\n /* istanbul ignore next */\n Draggable.prototype.removeTapholdTimer = function () {\n clearTimeout(this.tapHoldTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.removeTapholdTimer);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.removeTapholdTimer);\n };\n /* istanbul ignore next */\n Draggable.prototype.getScrollableParent = function (element, axis) {\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\n if (isNullOrUndefined(element)) {\n return null;\n }\n if (element[scroll[\"\" + axis]] > element[client[\"\" + axis]]) {\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\n if (axis === 'vertical') {\n this.parentScrollY = this.parentScrollY +\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\n this.tempScrollHeight = element.scrollHeight;\n }\n else {\n this.parentScrollX = this.parentScrollX +\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\n this.tempScrollWidth = element.scrollWidth;\n }\n if (!isNullOrUndefined(element)) {\n return this.getScrollableParent(element.parentNode, axis);\n }\n else {\n return element;\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n }\n else {\n return this.getScrollableParent(element.parentNode, axis);\n }\n };\n Draggable.prototype.getScrollableValues = function () {\n this.parentScrollX = 0;\n this.parentScrollY = 0;\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\n };\n Draggable.prototype.initialize = function (evt, curTarget) {\n this.currentStateTarget = evt.target;\n if (this.isDragStarted()) {\n return;\n }\n else {\n this.isDragStarted(true);\n this.externalInitialize = false;\n }\n this.target = (evt.currentTarget || curTarget);\n this.dragProcessStarted = false;\n if (this.abort) {\n var abortSelectors = this.abort;\n if (typeof abortSelectors === 'string') {\n abortSelectors = [abortSelectors];\n }\n for (var i = 0; i < abortSelectors.length; i++) {\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[parseInt(i.toString(), 10)]))) {\n /* istanbul ignore next */\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n return;\n }\n }\n }\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\n evt.preventDefault();\n }\n this.element.setAttribute('aria-grabbed', 'true');\n var intCoord = this.getCoordinates(evt);\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\n if (!this.clone) {\n var pos = this.element.getBoundingClientRect();\n this.getScrollableValues();\n if (evt.clientX === evt.pageX) {\n this.parentScrollX = 0;\n }\n if (evt.clientY === evt.pageY) {\n this.parentScrollY = 0;\n }\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\n }\n if (this.externalInitialize) {\n this.intDragStart(evt);\n }\n else {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy, this);\n }\n this.toggleEvents(true);\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\n document.body.classList.add('e-prevent-select');\n }\n this.externalInitialize = false;\n EventHandler.trigger(document.documentElement, Browser.isSafari() ? 'touchstart' : Browser.touchStartEvent, evt);\n };\n Draggable.prototype.intDragStart = function (evt) {\n this.removeTapholdTimer();\n var isChangeTouch = !isUndefined(evt.changedTouches);\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\n return;\n }\n var intCordinate = this.getCoordinates(evt);\n var pos;\n var styleProp = getComputedStyle(this.element);\n this.margin = {\n left: parseInt(styleProp.marginLeft, 10),\n top: parseInt(styleProp.marginTop, 10),\n right: parseInt(styleProp.marginRight, 10),\n bottom: parseInt(styleProp.marginBottom, 10)\n };\n var element = this.element;\n if (this.clone && this.dragTarget) {\n var intClosest = closest(evt.target, this.dragTarget);\n if (!isNullOrUndefined(intClosest)) {\n element = intClosest;\n }\n }\n /* istanbul ignore next */\n if (this.isReplaceDragEle) {\n element = this.currentStateCheck(evt.target, element);\n }\n this.offset = this.calculateParentPosition(element);\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var x = this.initialPosition.x - intCordinate.pageX;\n var y = this.initialPosition.y - intCordinate.pageY;\n var distance = Math.sqrt((x * x) + (y * y));\n if ((distance >= this.distance || this.externalInitialize)) {\n var ele = this.getHelperElement(evt);\n if (!ele || isNullOrUndefined(ele)) {\n return;\n }\n if (isChangeTouch) {\n evt.preventDefault();\n }\n var dragTargetElement = this.helperElement = ele;\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\n if (this.dragStart) {\n var curTarget = this.getProperTargetElement(evt);\n var args = {\n event: evt,\n element: element,\n target: curTarget,\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\n dragElement: dragTargetElement\n };\n this.trigger('dragStart', args);\n }\n if (this.dragArea) {\n this.setDragArea();\n }\n else {\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\n this.borderWidth = { top: 0, left: 0 };\n }\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\n if (this.clone && !this.enableTailMode) {\n this.diffX = this.position.left - this.offset.left;\n this.diffY = this.position.top - this.offset.top;\n }\n this.getScrollableValues();\n // when drag element has margin-top\n var styles = getComputedStyle(element);\n var marginTop = parseFloat(styles.marginTop);\n /* istanbul ignore next */\n if (this.clone && marginTop !== 0) {\n pos.top += marginTop;\n }\n this.eleTop = !isNaN(parseFloat(styles.top)) ? parseFloat(styles.top) - this.offset.top : 0;\n /* istanbul ignore next */\n // if (this.eleTop > 0) {\n // pos.top += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n pos.top -= this.parentScrollY;\n pos.left -= this.parentScrollX;\n }\n var posValue = this.getProcessedPositionValue({\n top: (pos.top - this.diffY) + 'px',\n left: (pos.left - this.diffX) + 'px'\n });\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n pos.top += this.dragArea.scrollTop;\n }\n this.dragElePosition = { top: pos.top, left: pos.left };\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n if (!isBlazor()) {\n this.bindDragEvents(dragTargetElement);\n }\n }\n };\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\n if (isVisible(dragTargetElement)) {\n EventHandler.add(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag, this);\n EventHandler.add(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop, this);\n this.setGlobalDroppables(false, this.element, dragTargetElement);\n }\n else {\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n }\n };\n Draggable.prototype.elementInViewport = function (el) {\n this.top = el.offsetTop;\n this.left = el.offsetLeft;\n this.width = el.offsetWidth;\n this.height = el.offsetHeight;\n while (el.offsetParent) {\n el = el.offsetParent;\n this.top += el.offsetTop;\n this.left += el.offsetLeft;\n }\n return (this.top >= window.pageYOffset &&\n this.left >= window.pageXOffset &&\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\n };\n Draggable.prototype.getProcessedPositionValue = function (value) {\n if (this.queryPositionInfo) {\n return this.queryPositionInfo(value);\n }\n return value;\n };\n Draggable.prototype.calculateParentPosition = function (ele) {\n if (isNullOrUndefined(ele)) {\n return { left: 0, top: 0 };\n }\n var rect = ele.getBoundingClientRect();\n var style = getComputedStyle(ele);\n return {\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\n };\n };\n Draggable.prototype.intDrag = function (evt) {\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n if (this.clone && evt.changedTouches && Browser.isDevice && Browser.isTouch) {\n evt.preventDefault();\n }\n var left;\n var top;\n this.position = this.getMousePosition(evt, this.isDragScroll);\n var docHeight = this.getDocumentWidthHeight('Height');\n if (docHeight < this.position.top) {\n this.position.top = docHeight;\n }\n var docWidth = this.getDocumentWidthHeight('Width');\n if (docWidth < this.position.left) {\n this.position.left = docWidth;\n }\n if (this.drag) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n var flag = true;\n if (this.hoverObject) {\n if (this.hoverObject.instance !== eleObj.instance) {\n this.triggerOutFunction(evt, eleObj);\n }\n else {\n flag = false;\n }\n }\n if (flag) {\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intOver(evt, eleObj.target);\n this.hoverObject = eleObj;\n }\n }\n else if (this.hoverObject) {\n this.triggerOutFunction(evt, eleObj);\n }\n var helperElement = this.droppables[this.scope].helper;\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\n var tLeft = this.parentClientRect.left;\n var tTop = this.parentClientRect.top;\n var intCoord = this.getCoordinates(evt);\n var pagex = intCoord.pageX;\n var pagey = intCoord.pageY;\n var dLeft = this.position.left - this.diffX;\n var dTop = this.position.top - this.diffY;\n var styles = getComputedStyle(helperElement);\n if (this.dragArea) {\n if (this.enableAutoScroll) {\n this.setDragArea();\n }\n if (this.pageX !== pagex || this.skipDistanceCheck) {\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\n + parseFloat(styles.marginRight));\n if (this.dragLimit.left > dLeft && dLeft > 0) {\n left = this.dragLimit.left;\n }\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\n }\n else {\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\n }\n }\n if (this.pageY !== pagey || this.skipDistanceCheck) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n if (this.dragLimit.top > dTop && dTop > 0) {\n top = this.dragLimit.top;\n }\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\n }\n else {\n top = dTop < 0 ? this.dragLimit.top : dTop;\n }\n }\n }\n else {\n left = dLeft;\n top = dTop;\n }\n var iTop = tTop + this.borderWidth.top;\n var iLeft = tLeft + this.borderWidth.left;\n if (this.dragProcessStarted) {\n if (isNullOrUndefined(top)) {\n top = this.prevTop;\n }\n if (isNullOrUndefined(left)) {\n left = this.prevLeft;\n }\n }\n var draEleTop;\n var draEleLeft;\n if (this.helperElement.classList.contains('e-treeview')) {\n if (this.dragArea) {\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - this.borderWidth.top);\n draEleLeft = (left - iLeft) < 0 ? this.dragLimit.left : (left - this.borderWidth.left);\n }\n else {\n draEleTop = top - this.borderWidth.top;\n draEleLeft = left - this.borderWidth.left;\n }\n }\n else {\n if (this.dragArea) {\n var isDialogEle = this.helperElement.classList.contains('e-dialog');\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\n draEleLeft = (left - iLeft) < 0 ? isDialogEle ? (left - (iLeft - this.borderWidth.left)) :\n this.dragElePosition.left : (left - iLeft);\n }\n else {\n draEleTop = top - iTop;\n draEleLeft = left - iLeft;\n }\n }\n var marginTop = parseFloat(getComputedStyle(this.element).marginTop);\n // when drag-element has margin-top\n /* istanbul ignore next */\n if (marginTop > 0) {\n if (this.clone) {\n draEleTop += marginTop;\n if (dTop < 0) {\n if ((marginTop + dTop) >= 0) {\n draEleTop = marginTop + dTop;\n }\n else {\n draEleTop -= marginTop;\n }\n }\n if (this.dragArea) {\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\n }\n }\n if ((top - iTop) < 0) {\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\n if ((tempDraEleTop + marginTop + iTop) < 0) {\n draEleTop -= marginTop + iTop;\n }\n else {\n draEleTop = tempDraEleTop;\n }\n }\n else {\n draEleTop -= marginTop + iTop;\n }\n }\n }\n if (this.dragArea && this.helperElement.classList.contains('e-treeview')) {\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\n + parseFloat(styles.marginBottom));\n draEleTop = (draEleTop + helperHeight) > this.dragLimit.bottom ? (this.dragLimit.bottom - helperHeight) : draEleTop;\n }\n /* istanbul ignore next */\n // if(this.eleTop > 0) {\n // draEleTop += this.eleTop;\n // }\n if (this.enableScrollHandler && !this.clone) {\n draEleTop -= this.parentScrollY;\n draEleLeft -= this.parentScrollX;\n }\n if (this.dragArea && typeof this.dragArea !== 'string' && this.dragArea.classList.contains('e-kanban-content') && this.dragArea.style.position === 'relative') {\n draEleTop += this.dragArea.scrollTop;\n }\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\n if (this.isPreventScroll) {\n dragValue = this.getProcessedPositionValue({\n top: (this.position.top - this.parentClientRect.top - 2) + 'px',\n left: (this.position.left - this.parentClientRect.left - 2) + 'px'\n });\n }\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll && !this.helperElement.classList.contains('e-treeview')) {\n this.helperElement.scrollIntoView();\n }\n var elements = document.querySelectorAll(':hover');\n if (this.enableAutoScroll && this.helperElement.classList.contains('e-treeview')) {\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n var scrollParent = this.getScrollParent(elements, false);\n if (this.elementInViewport(this.helperElement)) {\n this.getScrollPosition(scrollParent, draEleTop);\n }\n else if (!this.elementInViewport(this.helperElement)) {\n elements = [].slice.call(document.querySelectorAll(':hover'));\n if (elements.length === 0) {\n elements = this.getPathElements(evt);\n }\n scrollParent = this.getScrollParent(elements, true);\n this.getScrollPosition(scrollParent, draEleTop);\n }\n }\n this.dragProcessStarted = true;\n this.prevLeft = left;\n this.prevTop = top;\n this.position.left = left;\n this.position.top = top;\n this.pageX = pagex;\n this.pageY = pagey;\n };\n Draggable.prototype.getScrollParent = function (node, reverse) {\n var nodeEl = reverse ? node.reverse() : node;\n var hasScroll;\n for (var i = nodeEl.length - 1; i >= 0; i--) {\n hasScroll = window.getComputedStyle(nodeEl[parseInt(i.toString(), 10)])['overflow-y'];\n if ((hasScroll === 'auto' || hasScroll === 'scroll')\n && nodeEl[parseInt(i.toString(), 10)].scrollHeight > nodeEl[parseInt(i.toString(), 10)].clientHeight) {\n return nodeEl[parseInt(i.toString(), 10)];\n }\n }\n hasScroll = window.getComputedStyle(document.scrollingElement)['overflow-y'];\n if (hasScroll === 'visible') {\n document.scrollingElement.style.overflow = 'auto';\n return document.scrollingElement;\n }\n };\n Draggable.prototype.getScrollPosition = function (nodeEle, draEleTop) {\n if (nodeEle && nodeEle === document.scrollingElement) {\n if ((nodeEle.clientHeight + document.scrollingElement.scrollTop - this.helperElement.clientHeight) < draEleTop\n && nodeEle.getBoundingClientRect().height + this.parentClientRect.top > draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.scrollTop > draEleTop - this.helperElement.clientHeight) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n else if (nodeEle && nodeEle !== document.scrollingElement) {\n var docScrollTop = document.scrollingElement.scrollTop;\n var helperClientHeight = this.helperElement.clientHeight;\n if ((nodeEle.clientHeight + nodeEle.getBoundingClientRect().top - helperClientHeight + docScrollTop) < draEleTop) {\n nodeEle.scrollTop += this.helperElement.clientHeight;\n }\n else if (nodeEle.getBoundingClientRect().top > (draEleTop - helperClientHeight - docScrollTop)) {\n nodeEle.scrollTop -= this.helperElement.clientHeight;\n }\n }\n };\n Draggable.prototype.getPathElements = function (evt) {\n var elementTop = evt.clientX > 0 ? evt.clientX : 0;\n var elementLeft = evt.clientY > 0 ? evt.clientY : 0;\n return document.elementsFromPoint(elementTop, elementLeft);\n };\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\n this.hoverObject.instance.intOut(evt, eleObj.target);\n this.hoverObject.instance.dragData[this.scope] = null;\n this.hoverObject = null;\n };\n Draggable.prototype.getDragPosition = function (dragValue) {\n var temp = extend({}, dragValue);\n if (this.axis) {\n if (this.axis === 'x') {\n delete temp.top;\n }\n else if (this.axis === 'y') {\n delete temp.left;\n }\n }\n return temp;\n };\n Draggable.prototype.getDocumentWidthHeight = function (str) {\n var docBody = document.body;\n var docEle = document.documentElement;\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\n return returnValue;\n };\n Draggable.prototype.intDragStop = function (evt) {\n this.dragProcessStarted = false;\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\n return;\n }\n var type = ['touchend', 'pointerup', 'mouseup'];\n if (type.indexOf(evt.type) !== -1) {\n if (this.dragStop) {\n var curTarget = this.getProperTargetElement(evt);\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\n }\n this.intDestroy(evt);\n }\n else {\n this.element.setAttribute('aria-grabbed', 'false');\n }\n var eleObj = this.checkTargetElement(evt);\n if (eleObj.target && eleObj.instance) {\n eleObj.instance.dragStopCalled = true;\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\n eleObj.instance.intDrop(evt, eleObj.target);\n }\n this.setGlobalDroppables(true);\n document.body.classList.remove('e-prevent-select');\n };\n /**\n * @param {MouseEvent | TouchEvent} evt ?\n * @returns {void}\n * @private\n */\n Draggable.prototype.intDestroy = function (evt) {\n this.dragProcessStarted = false;\n this.toggleEvents();\n document.body.classList.remove('e-prevent-select');\n this.element.setAttribute('aria-grabbed', 'false');\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDragStart);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDragStop);\n EventHandler.remove(document, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDestroy);\n EventHandler.remove(document, Browser.isSafari() ? 'touchmove' : Browser.touchMoveEvent, this.intDrag);\n if (this.isDragStarted()) {\n this.isDragStarted(true);\n }\n };\n // triggers when property changed\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Draggable.prototype.getModuleName = function () {\n return 'draggable';\n };\n Draggable.prototype.isDragStarted = function (change) {\n if (change) {\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\n }\n return isDraggedObject.isDragged;\n };\n Draggable.prototype.setDragArea = function () {\n var eleWidthBound;\n var eleHeightBound;\n var top = 0;\n var left = 0;\n var ele;\n var type = typeof this.dragArea;\n if (type === 'string') {\n ele = select(this.dragArea);\n }\n else {\n ele = this.dragArea;\n }\n if (ele) {\n var elementArea = ele.getBoundingClientRect();\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\n eleHeightBound = ele.scrollHeight ? (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) ? ele.clientHeight : ele.scrollHeight : elementArea.bottom - elementArea.top;\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\n var styles = getComputedStyle(ele);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[parseInt(i.toString(), 10)];\n var tborder = styles['border' + key + 'Width'];\n var tpadding = styles['padding' + key];\n var lowerKey = key.toLowerCase();\n this.borderWidth[\"\" + lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\n this.padding[\"\" + lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\n }\n if (this.dragArea && !isNullOrUndefined(this.helperElement) && this.helperElement.classList.contains('e-treeview')) {\n top = elementArea.top + document.scrollingElement.scrollTop;\n }\n else {\n top = elementArea.top;\n }\n left = elementArea.left;\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\n }\n };\n Draggable.prototype.getProperTargetElement = function (evt) {\n var intCoord = this.getCoordinates(evt);\n var ele;\n var prevStyle = this.helperElement.style.pointerEvents || '';\n var isPointer = evt.type.indexOf('pointer') !== -1 && Browser.info.name === 'safari' && parseInt(Browser.info.version, 10) > 12;\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1 || isPointer) {\n this.helperElement.style.pointerEvents = 'none';\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\n this.helperElement.style.pointerEvents = prevStyle;\n }\n else {\n ele = evt.target;\n }\n return ele;\n };\n /* istanbul ignore next */\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\n var elem;\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\n elem = this.currentStateTarget;\n }\n else {\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\n }\n return elem;\n };\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\n var intCoord = this.getCoordinates(evt);\n var pageX;\n var pageY;\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\n /* istanbul ignore next */\n if (isdragscroll) {\n pageX = this.clone ? intCoord.pageX :\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY :\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\n }\n else {\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\n }\n if (document.scrollingElement && (!isdragscroll && !this.clone)) {\n var ele = document.scrollingElement;\n var isVerticalScroll = ele.scrollHeight > 0 && ele.scrollHeight > ele.clientHeight && ele.scrollTop > 0;\n var isHorrizontalScroll = ele.scrollWidth > 0 && ele.scrollWidth > ele.clientWidth && ele.scrollLeft > 0;\n pageX = isHorrizontalScroll ? pageX - ele.scrollLeft : pageX;\n pageY = isVerticalScroll ? pageY - ele.scrollTop : pageY;\n }\n return {\n left: pageX - (this.margin.left + this.cursorAt.left),\n top: pageY - (this.margin.top + this.cursorAt.top)\n };\n };\n Draggable.prototype.getCoordinates = function (evt) {\n if (evt.type.indexOf('touch') > -1) {\n return evt.changedTouches[0];\n }\n return evt;\n };\n Draggable.prototype.getHelperElement = function (evt) {\n var element;\n if (this.clone) {\n if (this.helper) {\n element = this.helper({ sender: evt, element: this.target });\n }\n else {\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\n document.body.appendChild(element);\n }\n }\n else {\n element = this.element;\n }\n return element;\n };\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\n this.droppables[this.scope] = reset ? null : {\n draggable: drag,\n helper: helper,\n draggedElement: this.element\n };\n };\n Draggable.prototype.checkTargetElement = function (evt) {\n var target = this.getProperTargetElement(evt);\n var dropIns = this.getDropInstance(target);\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\n if (parent_1) {\n dropIns = this.getDropInstance(parent_1);\n }\n }\n return { target: target, instance: dropIns };\n };\n Draggable.prototype.getDropInstance = function (ele) {\n var name = 'getModuleName';\n var drop;\n var eleInst = ele && ele.ej2_instances;\n if (eleInst) {\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\n var inst = eleInst_1[_i];\n if (inst[\"\" + name]() === 'droppable') {\n drop = inst;\n break;\n }\n }\n }\n return drop;\n };\n Draggable.prototype.destroy = function () {\n this.toggleEvents(true);\n _super.prototype.destroy.call(this);\n };\n var Draggable_1;\n __decorate([\n Complex({}, Position)\n ], Draggable.prototype, \"cursorAt\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"clone\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"dragArea\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isDragScroll\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"isPreventSelect\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"isPreventScroll\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], Draggable.prototype, \"dragStop\", void 0);\n __decorate([\n Property(1)\n ], Draggable.prototype, \"distance\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"handle\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"abort\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"helper\", void 0);\n __decorate([\n Property('default')\n ], Draggable.prototype, \"scope\", void 0);\n __decorate([\n Property('')\n ], Draggable.prototype, \"dragTarget\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"axis\", void 0);\n __decorate([\n Property()\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTailMode\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\n __decorate([\n Property(true)\n ], Draggable.prototype, \"preventDefault\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableTapHold\", void 0);\n __decorate([\n Property(750)\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Property(false)\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\n Draggable = Draggable_1 = __decorate([\n NotifyPropertyChanges\n ], Draggable);\n return Draggable;\n}(Base));\nexport { Draggable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Base } from './base';\nimport { Browser } from './browser';\nimport { isVisible, matches } from './dom';\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { EventHandler } from './event-handler';\nimport { compareElementParent } from './util';\n/**\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\n * ```html\n *
    Droppable
    \n * \n * ```\n */\nvar Droppable = /** @class */ (function (_super) {\n __extends(Droppable, _super);\n function Droppable(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.mouseOver = false;\n _this.dragData = {};\n _this.dragStopCalled = false;\n _this.bind();\n return _this;\n }\n Droppable.prototype.bind = function () {\n this.wireEvents();\n };\n Droppable.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop, this);\n };\n // triggers when property changed\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Droppable.prototype.getModuleName = function () {\n return 'droppable';\n };\n Droppable.prototype.intOver = function (event, element) {\n if (!this.mouseOver) {\n var drag = this.dragData[this.scope];\n this.trigger('over', { event: event, target: element, dragData: drag });\n this.mouseOver = true;\n }\n };\n Droppable.prototype.intOut = function (event, element) {\n if (this.mouseOver) {\n this.trigger('out', { evt: event, target: element });\n this.mouseOver = false;\n }\n };\n Droppable.prototype.intDrop = function (evt, element) {\n if (!this.dragStopCalled) {\n return;\n }\n else {\n this.dragStopCalled = false;\n }\n var accept = true;\n var drag = this.dragData[this.scope];\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\n var area;\n if (isDrag) {\n area = this.isDropArea(evt, drag.helper, element);\n if (this.accept) {\n accept = matches(drag.helper, this.accept);\n }\n }\n if (isDrag && this.drop && area.canDrop && accept) {\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\n }\n this.mouseOver = false;\n };\n Droppable.prototype.isDropArea = function (evt, helper, element) {\n var area = { canDrop: true, target: element || evt.target };\n var isTouch = evt.type === 'touchend';\n if (isTouch || area.target === helper) {\n helper.style.display = 'none';\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\n area.canDrop = false;\n area.canDrop = compareElementParent(ele, this.element);\n if (area.canDrop) {\n area.target = ele;\n }\n helper.style.display = '';\n }\n return area;\n };\n Droppable.prototype.destroy = function () {\n EventHandler.remove(this.element, Browser.isSafari() ? 'touchend' : Browser.touchEndEvent, this.intDrop);\n _super.prototype.destroy.call(this);\n };\n __decorate([\n Property()\n ], Droppable.prototype, \"accept\", void 0);\n __decorate([\n Property('default')\n ], Droppable.prototype, \"scope\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"drop\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"over\", void 0);\n __decorate([\n Event()\n ], Droppable.prototype, \"out\", void 0);\n Droppable = __decorate([\n NotifyPropertyChanges\n ], Droppable);\n return Droppable;\n}(Base));\nexport { Droppable };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Base } from './base';\nvar keyCode = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'control': 17,\n 'alt': 18,\n 'pause': 19,\n 'capslock': 20,\n 'space': 32,\n 'escape': 27,\n 'pageup': 33,\n 'pagedown': 34,\n 'end': 35,\n 'home': 36,\n 'leftarrow': 37,\n 'uparrow': 38,\n 'rightarrow': 39,\n 'downarrow': 40,\n 'insert': 45,\n 'delete': 46,\n 'f1': 112,\n 'f2': 113,\n 'f3': 114,\n 'f4': 115,\n 'f5': 116,\n 'f6': 117,\n 'f7': 118,\n 'f8': 119,\n 'f9': 120,\n 'f10': 121,\n 'f11': 122,\n 'f12': 123,\n 'semicolon': 186,\n 'plus': 187,\n 'comma': 188,\n 'minus': 189,\n 'dot': 190,\n 'forwardslash': 191,\n 'graveaccent': 192,\n 'openbracket': 219,\n 'backslash': 220,\n 'closebracket': 221,\n 'singlequote': 222\n};\n/**\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\n * ```html\n *
    ;\n * \n * ```\n */\nvar KeyboardEvents = /** @class */ (function (_super) {\n __extends(KeyboardEvents, _super);\n /**\n * Initializes the KeyboardEvents\n *\n * @param {HTMLElement} element ?\n * @param {KeyboardEventsModel} options ?\n */\n function KeyboardEvents(element, options) {\n var _this = _super.call(this, options, element) || this;\n /**\n * To handle a key press event returns null\n *\n * @param {KeyboardEventArgs} e ?\n * @returns {void} ?\n */\n _this.keyPressHandler = function (e) {\n var isAltKey = e.altKey;\n var isCtrlKey = e.ctrlKey;\n var isShiftKey = e.shiftKey;\n var curkeyCode = e.which;\n var keys = Object.keys(_this.keyConfigs);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n var configCollection = _this.keyConfigs[\"\" + key].split(',');\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\n var rconfig = configCollection_1[_a];\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\n e.action = key;\n if (_this.keyAction) {\n _this.keyAction(e);\n }\n }\n }\n }\n };\n _this.bind();\n return _this;\n }\n KeyboardEvents_1 = KeyboardEvents;\n /**\n * Unwire bound events and destroy the instance.\n *\n * @returns {void} ?\n */\n KeyboardEvents.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n /**\n * Function can be used to specify certain action if a property is changed\n *\n * @param {KeyboardEventsModel} newProp ?\n * @param {KeyboardEventsModel} oldProp ?\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\n // No code are needed\n };\n KeyboardEvents.prototype.bind = function () {\n this.wireEvents();\n };\n /**\n * To get the module name, returns 'keyboard'.\n *\n * @returns {string} ?\n * @private\n */\n KeyboardEvents.prototype.getModuleName = function () {\n return 'keyboard';\n };\n /**\n * Wiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.wireEvents = function () {\n this.element.addEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * Unwiring event handlers to events\n *\n * @returns {void} ?\n * @private\n */\n KeyboardEvents.prototype.unwireEvents = function () {\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\n };\n /**\n * To get the key configuration data\n *\n * @param {string} config - configuration data\n * @returns {KeyData} ?\n */\n KeyboardEvents.getKeyConfigData = function (config) {\n if (config in this.configCache) {\n return this.configCache[\"\" + config];\n }\n var keys = config.toLowerCase().split('+');\n var keyData = {\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\n keyCode: null\n };\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\n keyData.keyCode = Number(keys[keys.length - 1]);\n }\n else {\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\n }\n KeyboardEvents_1.configCache[\"\" + config] = keyData;\n return keyData;\n };\n // Return the keycode value as string\n KeyboardEvents.getKeyCode = function (keyVal) {\n return keyCode[\"\" + keyVal] || keyVal.toUpperCase().charCodeAt(0);\n };\n var KeyboardEvents_1;\n KeyboardEvents.configCache = {};\n __decorate([\n Property({})\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\n __decorate([\n Property('keyup')\n ], KeyboardEvents.prototype, \"eventName\", void 0);\n __decorate([\n Event()\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\n KeyboardEvents = KeyboardEvents_1 = __decorate([\n NotifyPropertyChanges\n ], KeyboardEvents);\n return KeyboardEvents;\n}(Base));\nexport { KeyboardEvents };\n","import { extend, isNullOrUndefined } from './util';\nimport { defaultCulture } from './internationalization';\n/**\n * L10n modules provides localized text for different culture.\n * ```typescript\n * import {setCulture} from '@syncfusion/ts-base-library';\n * //load global locale object common for all components.\n * L10n.load({\n * 'fr-BE': {\n * 'button': {\n * 'check': 'vérifié'\n * }\n * }\n * });\n * //set globale default locale culture.\n * setCulture('fr-BE');\n * let instance: L10n = new L10n('button', {\n * check: 'checked'\n * });\n * //Get locale text for current property.\n * instance.getConstant('check');\n * //Change locale culture in a component.\n * instance.setLocale('en-US');\n * ```\n */\nvar L10n = /** @class */ (function () {\n /**\n * Constructor\n *\n * @param {string} controlName ?\n * @param {Object} localeStrings ?\n * @param {string} locale ?\n */\n function L10n(controlName, localeStrings, locale) {\n this.controlName = controlName;\n this.localeStrings = localeStrings;\n this.setLocale(locale || defaultCulture);\n }\n /**\n * Sets the locale text\n *\n * @param {string} locale ?\n * @returns {void} ?\n */\n L10n.prototype.setLocale = function (locale) {\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\n this.currentLocale = intLocale || this.localeStrings;\n };\n /**\n * Sets the global locale for all components.\n *\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\n * @returns {void} ?\n */\n L10n.load = function (localeObject) {\n this.locale = extend(this.locale, localeObject, {}, true);\n };\n /**\n * Returns current locale text for the property based on the culture name and control name.\n *\n * @param {string} prop - specifies the property for which localize text to be returned.\n * @returns {string} ?\n */\n L10n.prototype.getConstant = function (prop) {\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\n if (!isNullOrUndefined(this.currentLocale[\"\" + prop])) {\n return this.currentLocale[\"\" + prop];\n }\n else {\n return this.localeStrings[\"\" + prop] || '';\n }\n };\n /**\n * Returns the control constant object for current object and the locale specified.\n *\n * @param {Object} curObject ?\n * @param {string} locale ?\n * @returns {Object} ?\n */\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\n if ((curObject)[\"\" + locale]) {\n return (curObject)[\"\" + locale][this.controlName];\n }\n return null;\n };\n L10n.locale = {};\n return L10n;\n}());\nexport { L10n };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { extend } from './util';\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\nimport { Browser } from './browser';\nimport { Base } from './base';\nimport { ChildProperty } from './child-property';\nimport { EventHandler } from './event-handler';\n/**\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\n */\nvar SwipeSettings = /** @class */ (function (_super) {\n __extends(SwipeSettings, _super);\n function SwipeSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(50)\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\n return SwipeSettings;\n}(ChildProperty));\nexport { SwipeSettings };\nvar swipeRegex = /(Up|Down)/;\n/**\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\n * ```typescript\n * let node: HTMLElement;\n * let touchObj: Touch = new Touch({\n * element: node,\n * tap: function (e) {\n * // tap handler function code\n * }\n * tapHold: function (e) {\n * // tap hold handler function code\n * }\n * scroll: function (e) {\n * // scroll handler function code\n * }\n * swipe: function (e) {\n * // swipe handler function code\n * }\n * });\n * ```\n */\nvar Touch = /** @class */ (function (_super) {\n __extends(Touch, _super);\n /* End-Properties */\n function Touch(element, options) {\n var _this = _super.call(this, options, element) || this;\n _this.touchAction = true;\n _this.tapCount = 0;\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.startEvent = function (evt) {\n if (_this.touchAction === true) {\n var point = _this.updateChangeTouches(evt);\n if (evt.changedTouches !== undefined) {\n _this.touchAction = false;\n }\n _this.isTouchMoved = false;\n _this.movedDirection = '';\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n _this.startEventData = point;\n _this.hScrollLocked = _this.vScrollLocked = false;\n _this.tStampStart = Date.now();\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.moveEvent = function (evt) {\n var point = _this.updateChangeTouches(evt);\n _this.movedPoint = point;\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\n var eScrollArgs = {};\n if (_this.isTouchMoved) {\n clearTimeout(_this.timeOutTapHold);\n _this.calcScrollPoints(evt);\n var scrollArg = {\n startEvents: _this.startEventData,\n originalEvent: evt, startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\n velocity: _this.getVelocity(point)\n };\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\n _this.trigger('scroll', eScrollArgs);\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\n }\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.cancelEvent = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n _this.tapCount = 0;\n _this.swipeFn(evt);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.endEvent = function (evt) {\n _this.swipeFn(evt);\n if (!_this.isTouchMoved) {\n if (typeof _this.tap === 'function') {\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\n _this.timeOutTap = setTimeout(function () {\n _this.tapCount = 0;\n }, _this.tapThreshold);\n }\n }\n _this.modeclear();\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n _this.swipeFn = function (evt) {\n clearTimeout(_this.timeOutTapHold);\n clearTimeout(_this.timeOutTap);\n var point = _this.updateChangeTouches(evt);\n var diffX = point.clientX - _this.startPoint.clientX;\n var diffY = point.clientY - _this.startPoint.clientY;\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\n _this.isTouchMoved = diffX > 1 || diffY > 1;\n var isFirefox = (/Firefox/).test(Browser.userAgent);\n if (isFirefox && point.clientX === 0 && point.clientY === 0 && evt.type === 'mouseup') {\n _this.isTouchMoved = false;\n }\n _this.endPoint = point;\n _this.calcPoints(evt);\n var swipeArgs = {\n originalEvent: evt,\n startEvents: _this.startEventData,\n startX: _this.startPoint.clientX,\n startY: _this.startPoint.clientY,\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\n velocity: _this.getVelocity(point)\n };\n if (_this.isTouchMoved) {\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\n var eSwipeArgs = extend(undefined, _this.defaultArgs, swipeArgs);\n var canTrigger = false;\n var ele = _this.element;\n var scrollBool = _this.isScrollable(ele);\n var moved = swipeRegex.test(_this.movedDirection);\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\n if (!scrollBool) {\n canTrigger = true;\n }\n else {\n canTrigger = _this.checkSwipe(ele, moved);\n }\n }\n if (canTrigger) {\n _this.trigger('swipe', eSwipeArgs);\n }\n }\n _this.modeclear();\n };\n _this.modeclear = function () {\n _this.modeClear = setTimeout(function () {\n _this.touchAction = true;\n }, (typeof _this.tap !== 'function' ? 0 : 20));\n _this.lastTapTime = new Date().getTime();\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\n };\n _this.bind();\n return _this;\n }\n // triggers when property changed\n /**\n *\n * @private\n * @param {TouchModel} newProp ?\n * @param {TouchModel} oldProp ?\n * @returns {void} ?\n */\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\n //No Code to handle\n };\n Touch.prototype.bind = function () {\n this.wireEvents();\n if (Browser.isIE) {\n this.element.classList.add('e-block-touch');\n }\n };\n /**\n * To destroy the touch instance.\n *\n * @returns {void}\n */\n Touch.prototype.destroy = function () {\n this.unwireEvents();\n _super.prototype.destroy.call(this);\n };\n // Need to changes the event binding once we updated the event handler.\n Touch.prototype.wireEvents = function () {\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\n };\n Touch.prototype.unwireEvents = function () {\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\n };\n /**\n * Returns module name as touch\n *\n * @returns {string} ?\n * @private\n */\n Touch.prototype.getModuleName = function () {\n return 'touch';\n };\n /**\n * Returns if the HTML element is Scrollable.\n *\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\n * @returns {boolean} ?\n */\n Touch.prototype.isScrollable = function (element) {\n var eleStyle = getComputedStyle(element);\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\n if ((/(auto|scroll)/).test(style)) {\n return true;\n }\n return false;\n };\n /**\n *\n * @param {MouseEventArgs | TouchEventArgs} evt ?\n * @returns {void} ?\n */\n Touch.prototype.tapHoldEvent = function (evt) {\n this.tapCount = 0;\n this.touchAction = true;\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\n var eTapArgs = { originalEvent: evt };\n this.trigger('tapHold', eTapArgs);\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\n };\n Touch.prototype.calcPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\n if (this.distanceX > this.distanceY) {\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\n }\n else {\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\n }\n };\n Touch.prototype.calcScrollPoints = function (evt) {\n var point = this.updateChangeTouches(evt);\n this.defaultArgs = { originalEvent: evt };\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\n this.hScrollLocked = true;\n }\n else {\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\n this.vScrollLocked = true;\n }\n };\n Touch.prototype.getVelocity = function (pnt) {\n var newX = pnt.clientX;\n var newY = pnt.clientY;\n var newT = Date.now();\n var xDist = newX - this.startPoint.clientX;\n var yDist = newY - this.startPoint.clientX;\n var interval = newT - this.tStampStart;\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\n };\n Touch.prototype.checkSwipe = function (ele, flag) {\n var keys = ['scroll', 'offset'];\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\n return true;\n }\n return (ele[keys[0] + temp[1]] === 0) ||\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\n };\n Touch.prototype.updateChangeTouches = function (evt) {\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\n return point;\n };\n __decorate([\n Event()\n ], Touch.prototype, \"tap\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"tapHold\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"swipe\", void 0);\n __decorate([\n Event()\n ], Touch.prototype, \"scroll\", void 0);\n __decorate([\n Property(350)\n ], Touch.prototype, \"tapThreshold\", void 0);\n __decorate([\n Property(750)\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\n __decorate([\n Complex({}, SwipeSettings)\n ], Touch.prototype, \"swipeSettings\", void 0);\n Touch = __decorate([\n NotifyPropertyChanges\n ], Touch);\n return Touch;\n}(Base));\nexport { Touch };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Template Engine\n */\nvar LINES = new RegExp('\\\\n|\\\\r|\\\\s\\\\s+', 'g');\nvar QUOTES = new RegExp(/'|\"/g);\nvar IF_STMT = new RegExp('if ?\\\\(');\nvar ELSEIF_STMT = new RegExp('else if ?\\\\(');\nvar ELSE_STMT = new RegExp('else');\nvar FOR_STMT = new RegExp('for ?\\\\(');\nvar IF_OR_FOR = new RegExp('(/if|/for)');\nvar CALL_FUNCTION = new RegExp('\\\\((.*)\\\\)', '');\nvar NOT_NUMBER = new RegExp('^[0-9]+$', 'g');\nvar WORD = new RegExp('[\\\\w\"\\'.\\\\s+]+', 'g');\nvar DBL_QUOTED_STR = new RegExp('\"(.*?)\"', 'g');\nvar WORDIF = new RegExp('[\\\\w\"\\'@#$.\\\\s-+]+', 'g');\nvar exp = new RegExp('\\\\${([^}]*)}', 'g');\n// let cachedTemplate: Object = {};\nvar ARR_OBJ = /^\\..*/gm;\nvar SINGLE_SLASH = /\\\\/gi;\nvar DOUBLE_SLASH = /\\\\\\\\/gi;\nvar WORDFUNC = new RegExp('[\\\\w\"\\'@#$.\\\\s+]+', 'g');\nvar WINDOWFUNC = /\\window\\./gm;\n/**\n * The function to set regular expression for template expression string.\n *\n * @param {RegExp} value - Value expression.\n * @returns {RegExp} ?\n * @private\n */\nexport function expression(value) {\n if (value) {\n exp = value;\n }\n return exp;\n}\n// /**\n// * To render the template string from the given data.\n// * @param {string} template - String Template.\n// * @param {Object[]|JSON} data - DataSource for the template.\n// * @param {Object} helper? - custom helper object.\n// */\n// export function template(template: string, data: JSON, helper?: Object): string {\n// let hash: string = hashCode(template);\n// let tmpl: Function;\n// if (!cachedTemplate[hash]) {\n// tmpl = cachedTemplate[hash] = compile(template, helper);\n// } else {\n// tmpl = cachedTemplate[hash];\n// }\n// return tmpl(data);\n// }\n/**\n * Compile the template string into template function.\n *\n * @param {string | Function} template - The template string which is going to convert.\n * @param {Object} helper - Helper functions as an object.\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n * @private\n */\nexport function compile(template, helper, ignorePrefix) {\n if (typeof template === 'function') {\n return template;\n }\n else {\n var argName = 'data';\n var evalExpResult = evalExp(template, argName, helper, ignorePrefix);\n var condtion = \"var valueRegEx = (/value=\\\\'([A-Za-z0-9 _]*)((.)([\\\\w)(!-;?-\\u25A0\\\\s]+)['])/g);\\n var hrefRegex = (/(?:href)([\\\\s='\\\"./]+)([\\\\w-./?=&\\\\\\\\#\\\"]+)((.)([\\\\w)(!-;/?-\\u25A0\\\\s]+)['])/g);\\n if(str.match(valueRegEx)){\\n var check = str.match(valueRegEx);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(valueRegEx)[i].split('value=')[1];\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n str = str.replace(str, str1);\\n }\\n else if (str.match(/(?:href='')/) === null) {\\n if(str.match(hrefRegex)) {\\n var check = str.match(hrefRegex);\\n var str1 = str;\\n for (var i=0; i < check.length; i++) {\\n var check1 = str.match(hrefRegex)[i].split('href=')[1];\\n if (check1) {\\n var change = check1.match(/^'/) !== null ? check1.replace(/^'/, '\\\"') : check1;\\n change =change.match(/.$/)[0] === '\\\\'' ? change.replace(/.$/,'\\\"') : change;\\n str1 = str1.replace(check1, change);\\n }\\n }\\n str = str.replace(str, str1);\\n }\\n }\\n \";\n var fnCode = 'var str=\"' + evalExpResult + '\";' + condtion + ' return str;';\n var fn = new Function(argName, fnCode);\n return fn.bind(helper);\n }\n}\n/** function used to evaluate the function expression\n *\n * @param {string} str ?\n * @param {string} nameSpace ?\n * @param {Object} helper ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction evalExp(str, nameSpace, helper, ignorePrefix) {\n var varCOunt = 0;\n /**\n * Variable containing Local Keys\n */\n var localKeys = [];\n var isClass = str.match(/class=\"([^\"]+|)\\s{2}/g);\n var singleSpace = '';\n if (isClass) {\n isClass.forEach(function (value) {\n singleSpace = value.replace(/\\s\\s+/g, ' ');\n str = str.replace(value, singleSpace);\n });\n }\n if (exp.test(str)) {\n var insideBraces = false;\n var outputString = '';\n for (var i = 0; i < str.length; i++) {\n if (str[i + ''] === '$' && str[i + 1] === '{') {\n insideBraces = true;\n }\n else if (str[i + ''] === '}') {\n insideBraces = false;\n }\n outputString += (str[i + ''] === '\"' && !insideBraces) ? '\\\\\"' : str[i + ''];\n }\n str = outputString;\n }\n else {\n str = str.replace(/\\\\?\"/g, '\\\\\"');\n }\n return str.replace(LINES, '').replace(DBL_QUOTED_STR, '\\'$1\\'').replace(exp, function (match, cnt, offset, matchStr) {\n var SPECIAL_CHAR = /@|#|\\$/gm;\n var matches = cnt.match(CALL_FUNCTION);\n // matches to detect any function calls\n if (matches) {\n var rlStr = matches[1];\n if (ELSEIF_STMT.test(cnt)) {\n //handling else-if condition\n cnt = '\";} ' + cnt.replace(matches[1], rlStr.replace(WORD, function (str) {\n str = str.trim();\n return addNameSpace(str, !(QUOTES.test(str)) && (localKeys.indexOf(str) === -1), nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (IF_STMT.test(cnt)) {\n //handling if condition\n cnt = '\"; ' + cnt.replace(matches[1], rlStr.replace(WORDIF, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '{ \\n str = str + \"';\n }\n else if (FOR_STMT.test(cnt)) {\n //handling for condition\n var rlStr_1 = matches[1].split(' of ');\n // replace for each into actual JavaScript\n cnt = '\"; ' + cnt.replace(matches[1], function (mtc) {\n localKeys.push(rlStr_1[0]);\n localKeys.push(rlStr_1[0] + 'Index');\n varCOunt = varCOunt + 1;\n return 'var i' + varCOunt + '=0; i' + varCOunt + ' < ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix) + '.length; i' + varCOunt + '++';\n }) + '{ \\n ' + rlStr_1[0] + '= ' + addNameSpace(rlStr_1[1], true, nameSpace, localKeys, ignorePrefix)\n + '[i' + varCOunt + ']; \\n var ' + rlStr_1[0] + 'Index=i' + varCOunt + '; \\n str = str + \"';\n }\n else {\n //helper function handling\n var fnStr = cnt.split('(');\n var fNameSpace = (helper && Object.prototype.hasOwnProperty.call(helper, fnStr[0]) ? 'this.' : 'global');\n fNameSpace = (/\\./.test(fnStr[0]) ? '' : fNameSpace);\n var ftArray = matches[1].split(',');\n if (matches[1].length !== 0 && !(/data/).test(ftArray[0]) && !(/window./).test(ftArray[0])) {\n matches[1] = (fNameSpace === 'global' ? nameSpace + '.' + matches[1] : matches[1]);\n }\n var splRegexp = /@|\\$|#/gm;\n var arrObj = /\\]\\./gm;\n if (WINDOWFUNC.test(cnt) && arrObj.test(cnt) || splRegexp.test(cnt)) {\n var splArrRegexp = /@|\\$|#|\\]\\./gm;\n if (splArrRegexp.test(cnt)) {\n cnt = '\"+ ' + (fNameSpace === 'global' ? '' : fNameSpace) + cnt.replace(matches[1], rlStr.replace(WORDFUNC, function (strs) {\n return HandleSpecialCharArrObj(strs, nameSpace, localKeys, ignorePrefix);\n })) + '+ \"';\n }\n }\n else {\n cnt = '\" + ' + (fNameSpace === 'global' ? '' : fNameSpace) +\n cnt.replace(rlStr, addNameSpace(matches[1].replace(/,( |)data.|,/gi, ',' + nameSpace + '.').replace(/,( |)data.window/gi, ',window'), (fNameSpace === 'global' ? false : true), nameSpace, localKeys, ignorePrefix)) +\n '+\"';\n }\n }\n }\n else if (ELSE_STMT.test(cnt)) {\n // handling else condition\n cnt = '\"; ' + cnt.replace(ELSE_STMT, '} else { \\n str = str + \"');\n }\n else if (cnt.match(IF_OR_FOR)) {\n // close condition\n cnt = cnt.replace(IF_OR_FOR, '\"; \\n } \\n str = str + \"');\n }\n else if (SPECIAL_CHAR.test(cnt)) {\n // template string with double slash with special character\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n }\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // template string with double slash\n if (cnt.match(SINGLE_SLASH)) {\n cnt = SlashReplace(cnt);\n cnt = '\"+' + NameSpaceForspecialChar(cnt, (localKeys.indexOf(cnt) === -1), nameSpace, localKeys) + '\"]+\"';\n }\n else {\n // evaluate normal expression\n cnt = cnt !== '' ? '\"+' + addNameSpace(cnt.replace(/,/gi, '+' + nameSpace + '.'), (localKeys.indexOf(cnt) === -1), nameSpace, localKeys, ignorePrefix) + '+\"' : '${}';\n }\n }\n return cnt;\n });\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction addNameSpace(str, addNS, nameSpace, ignoreList, ignorePrefix) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1 && !ignorePrefix && str !== 'true' && str !== 'false') ? nameSpace + '.' + str : str);\n}\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceArrObj(str, addNS, nameSpace, ignoreList) {\n var arrObjReg = /^\\..*/gm;\n return ((addNS && !(NOT_NUMBER.test(str)) &&\n ignoreList.indexOf(str.split('.')[0]) === -1 && !(arrObjReg.test(str))) ? nameSpace + '.' + str : str);\n}\n// // Create hashCode for template string to storeCached function\n// function hashCode(str: string): string {\n// return str.split('').reduce((a: number, b: string) => { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\n// }\n/**\n *\n * @param {string} str ?\n * @param {boolean} addNS ?\n * @param {string} nameSpace ?\n * @param {string[]} ignoreList ?\n * @returns {string} ?\n */\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\n}\n/**\n * Replace double slashes to single slash.\n *\n * @param {string} tempStr ?\n * @returns {any} ?\n */\nfunction SlashReplace(tempStr) {\n var double = '\\\\\\\\';\n if (tempStr.match(DOUBLE_SLASH)) {\n return tempStr;\n }\n else {\n return tempStr.replace(SINGLE_SLASH, double);\n }\n}\n/**\n *\n * @param {string} str ?\n * @param {string} nameSpaceNew ?\n * @param {string[]} keys ?\n * @param {boolean} ignorePrefix ?\n * @returns {string} ?\n */\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\n str = str.trim();\n var windowFunc = /\\window\\./gm;\n if (!windowFunc.test(str)) {\n var quotes = /'|\"/gm;\n var splRegexp = /@|\\$|#/gm;\n if (splRegexp.test(str)) {\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\n }\n if (ARR_OBJ.test(str)) {\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\n }\n else {\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\n }\n }\n else {\n return str;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types */\n/**\n * Template Engine Bridge\n */\nimport { compile as render } from './template';\nimport { createElement } from './dom';\nimport { isNullOrUndefined, isBlazor } from './util';\nvar HAS_ROW = /^[\\n\\r.]+ 0) {\n elements.forEach(function (element) {\n detach(element);\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeJsEvents = function () {\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\n if (elements.length > 0) {\n elements.forEach(function (element) {\n jsEvents.forEach(function (attr) {\n if (element.hasAttribute(attr)) {\n element.removeAttribute(attr);\n }\n });\n });\n }\n else {\n return;\n }\n };\n SanitizeHtmlHelper.removeXssAttrs = function () {\n var _this = this;\n this.removeAttrs.forEach(function (item, index) {\n var elements = _this.wrapElement.querySelectorAll(item.selector);\n if (elements.length > 0) {\n if (item.selector === 'a[href]') {\n elements.forEach(function (element) {\n if ((element.getAttribute(item.attribute)).replace(/\\t|\\s|&/, '').indexOf('javascript:alert') !== -1) {\n element.removeAttribute(item.attribute);\n }\n });\n }\n else {\n elements.forEach(function (element) {\n element.removeAttribute(item.attribute);\n });\n }\n }\n });\n };\n return SanitizeHtmlHelper;\n}());\nexport { SanitizeHtmlHelper };\n","/**\n * Base modules\n */\nexport * from './intl/intl-base';\nexport * from './ajax';\nexport * from './fetch';\nexport * from './animation';\nexport * from './base';\nexport * from './browser';\nexport * from './component';\nexport * from './child-property';\nexport * from './draggable';\nexport * from './droppable';\nexport * from './event-handler';\nexport * from './internationalization';\nexport * from './keyboard';\nexport * from './l10n';\nexport * from './module-loader';\nexport * from './notify-property-change';\nexport * from './touch';\nexport * from './hijri-parser';\nexport * from './template-engine';\nexport * from './util';\nexport * from './dom';\nexport * from './observer';\nexport * from './sanitize-helper';\nexport * from './validate-lic';\n","/**\n * index\n */\nexport * from './src/index';\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { ActionBar } from '../actionbar/actionbar.js';\nimport { DropdownMenuActionViewItem } from '../dropdown/dropdownActionViewItem.js';\nimport { Action, SubmenuAction } from '../../../common/actions.js';\nimport { Codicon } from '../../../common/codicons.js';\nimport { ThemeIcon } from '../../../common/themables.js';\nimport { EventMultiplexer } from '../../../common/event.js';\nimport { Disposable, DisposableStore } from '../../../common/lifecycle.js';\nimport './toolbar.css';\nimport * as nls from '../../../../nls.js';\nimport { createInstantHoverDelegate } from '../hover/hoverDelegateFactory.js';\n/**\n * A widget that combines an action bar for primary actions and a dropdown for secondary actions.\n */\nexport class ToolBar extends Disposable {\n constructor(container, contextMenuProvider, options = { orientation: 0 /* ActionsOrientation.HORIZONTAL */ }) {\n var _a;\n super();\n this.submenuActionViewItems = [];\n this.hasSecondaryActions = false;\n this._onDidChangeDropdownVisibility = this._register(new EventMultiplexer());\n this.onDidChangeDropdownVisibility = this._onDidChangeDropdownVisibility.event;\n this.disposables = this._register(new DisposableStore());\n options.hoverDelegate = (_a = options.hoverDelegate) !== null && _a !== void 0 ? _a : this._register(createInstantHoverDelegate());\n this.options = options;\n this.lookupKeybindings = typeof this.options.getKeyBinding === 'function';\n this.toggleMenuAction = this._register(new ToggleMenuAction(() => { var _a; return (_a = this.toggleMenuActionViewItem) === null || _a === void 0 ? void 0 : _a.show(); }, options.toggleMenuTitle));\n this.element = document.createElement('div');\n this.element.className = 'monaco-toolbar';\n container.appendChild(this.element);\n this.actionBar = this._register(new ActionBar(this.element, {\n orientation: options.orientation,\n ariaLabel: options.ariaLabel,\n actionRunner: options.actionRunner,\n allowContextMenu: options.allowContextMenu,\n highlightToggledItems: options.highlightToggledItems,\n hoverDelegate: options.hoverDelegate,\n actionViewItemProvider: (action, viewItemOptions) => {\n var _a;\n if (action.id === ToggleMenuAction.ID) {\n this.toggleMenuActionViewItem = new DropdownMenuActionViewItem(action, action.menuActions, contextMenuProvider, {\n actionViewItemProvider: this.options.actionViewItemProvider,\n actionRunner: this.actionRunner,\n keybindingProvider: this.options.getKeyBinding,\n classNames: ThemeIcon.asClassNameArray((_a = options.moreIcon) !== null && _a !== void 0 ? _a : Codicon.toolBarMore),\n anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n menuAsChild: !!this.options.renderDropdownAsChildElement,\n skipTelemetry: this.options.skipTelemetry,\n isMenu: true,\n hoverDelegate: this.options.hoverDelegate\n });\n this.toggleMenuActionViewItem.setActionContext(this.actionBar.context);\n this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility));\n return this.toggleMenuActionViewItem;\n }\n if (options.actionViewItemProvider) {\n const result = options.actionViewItemProvider(action, viewItemOptions);\n if (result) {\n return result;\n }\n }\n if (action instanceof SubmenuAction) {\n const result = new DropdownMenuActionViewItem(action, action.actions, contextMenuProvider, {\n actionViewItemProvider: this.options.actionViewItemProvider,\n actionRunner: this.actionRunner,\n keybindingProvider: this.options.getKeyBinding,\n classNames: action.class,\n anchorAlignmentProvider: this.options.anchorAlignmentProvider,\n menuAsChild: !!this.options.renderDropdownAsChildElement,\n skipTelemetry: this.options.skipTelemetry,\n hoverDelegate: this.options.hoverDelegate\n });\n result.setActionContext(this.actionBar.context);\n this.submenuActionViewItems.push(result);\n this.disposables.add(this._onDidChangeDropdownVisibility.add(result.onDidChangeVisibility));\n return result;\n }\n return undefined;\n }\n }));\n }\n set actionRunner(actionRunner) {\n this.actionBar.actionRunner = actionRunner;\n }\n get actionRunner() {\n return this.actionBar.actionRunner;\n }\n getElement() {\n return this.element;\n }\n getItemAction(indexOrElement) {\n return this.actionBar.getAction(indexOrElement);\n }\n setActions(primaryActions, secondaryActions) {\n this.clear();\n const primaryActionsToSet = primaryActions ? primaryActions.slice(0) : [];\n // Inject additional action to open secondary actions if present\n this.hasSecondaryActions = !!(secondaryActions && secondaryActions.length > 0);\n if (this.hasSecondaryActions && secondaryActions) {\n this.toggleMenuAction.menuActions = secondaryActions.slice(0);\n primaryActionsToSet.push(this.toggleMenuAction);\n }\n primaryActionsToSet.forEach(action => {\n this.actionBar.push(action, { icon: true, label: false, keybinding: this.getKeybindingLabel(action) });\n });\n }\n getKeybindingLabel(action) {\n var _a, _b, _c;\n const key = this.lookupKeybindings ? (_b = (_a = this.options).getKeyBinding) === null || _b === void 0 ? void 0 : _b.call(_a, action) : undefined;\n return (_c = key === null || key === void 0 ? void 0 : key.getLabel()) !== null && _c !== void 0 ? _c : undefined;\n }\n clear() {\n this.submenuActionViewItems = [];\n this.disposables.clear();\n this.actionBar.clear();\n }\n dispose() {\n this.clear();\n this.disposables.dispose();\n super.dispose();\n }\n}\nexport class ToggleMenuAction extends Action {\n constructor(toggleDropdownMenu, title) {\n title = title || nls.localize('moreActions', \"More Actions...\");\n super(ToggleMenuAction.ID, title, undefined, true);\n this._menuActions = [];\n this.toggleDropdownMenu = toggleDropdownMenu;\n }\n async run() {\n this.toggleDropdownMenu();\n }\n get menuActions() {\n return this._menuActions;\n }\n set menuActions(actions) {\n this._menuActions = actions;\n }\n}\nToggleMenuAction.ID = 'toolbar.toggle.more';\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { addDisposableListener, getWindow } from '../../../base/browser/dom.js';\nimport { StandardMouseEvent } from '../../../base/browser/mouseEvent.js';\nimport { ToggleMenuAction, ToolBar } from '../../../base/browser/ui/toolbar/toolbar.js';\nimport { Separator, toAction } from '../../../base/common/actions.js';\nimport { coalesceInPlace } from '../../../base/common/arrays.js';\nimport { intersection } from '../../../base/common/collections.js';\nimport { BugIndicatingError } from '../../../base/common/errors.js';\nimport { Emitter } from '../../../base/common/event.js';\nimport { Iterable } from '../../../base/common/iterator.js';\nimport { DisposableStore } from '../../../base/common/lifecycle.js';\nimport { localize } from '../../../nls.js';\nimport { createAndFillInActionBarActions } from './menuEntryActionViewItem.js';\nimport { IMenuService, MenuItemAction, SubmenuItemAction } from '../common/actions.js';\nimport { createConfigureKeybindingAction } from '../common/menuService.js';\nimport { ICommandService } from '../../commands/common/commands.js';\nimport { IContextKeyService } from '../../contextkey/common/contextkey.js';\nimport { IContextMenuService } from '../../contextview/browser/contextView.js';\nimport { IKeybindingService } from '../../keybinding/common/keybinding.js';\nimport { ITelemetryService } from '../../telemetry/common/telemetry.js';\n/**\n * The `WorkbenchToolBar` does\n * - support hiding of menu items\n * - lookup keybindings for each actions automatically\n * - send `workbenchActionExecuted`-events for each action\n *\n * See {@link MenuWorkbenchToolBar} for a toolbar that is backed by a menu.\n */\nlet WorkbenchToolBar = class WorkbenchToolBar extends ToolBar {\n constructor(container, _options, _menuService, _contextKeyService, _contextMenuService, _keybindingService, _commandService, telemetryService) {\n super(container, _contextMenuService, {\n // defaults\n getKeyBinding: (action) => { var _a; return (_a = _keybindingService.lookupKeybinding(action.id)) !== null && _a !== void 0 ? _a : undefined; },\n // options (override defaults)\n ..._options,\n // mandatory (overide options)\n allowContextMenu: true,\n skipTelemetry: typeof (_options === null || _options === void 0 ? void 0 : _options.telemetrySource) === 'string',\n });\n this._options = _options;\n this._menuService = _menuService;\n this._contextKeyService = _contextKeyService;\n this._contextMenuService = _contextMenuService;\n this._keybindingService = _keybindingService;\n this._commandService = _commandService;\n this._sessionDisposables = this._store.add(new DisposableStore());\n // telemetry logic\n const telemetrySource = _options === null || _options === void 0 ? void 0 : _options.telemetrySource;\n if (telemetrySource) {\n this._store.add(this.actionBar.onDidRun(e => telemetryService.publicLog2('workbenchActionExecuted', { id: e.action.id, from: telemetrySource })));\n }\n }\n setActions(_primary, _secondary = [], menuIds) {\n var _a, _b, _c;\n this._sessionDisposables.clear();\n const primary = _primary.slice(); // for hiding and overflow we set some items to undefined\n const secondary = _secondary.slice();\n const toggleActions = [];\n let toggleActionsCheckedCount = 0;\n const extraSecondary = [];\n let someAreHidden = false;\n // unless disabled, move all hidden items to secondary group or ignore them\n if (((_a = this._options) === null || _a === void 0 ? void 0 : _a.hiddenItemStrategy) !== -1 /* HiddenItemStrategy.NoHide */) {\n for (let i = 0; i < primary.length; i++) {\n const action = primary[i];\n if (!(action instanceof MenuItemAction) && !(action instanceof SubmenuItemAction)) {\n // console.warn(`Action ${action.id}/${action.label} is not a MenuItemAction`);\n continue;\n }\n if (!action.hideActions) {\n continue;\n }\n // collect all toggle actions\n toggleActions.push(action.hideActions.toggle);\n if (action.hideActions.toggle.checked) {\n toggleActionsCheckedCount++;\n }\n // hidden items move into overflow or ignore\n if (action.hideActions.isHidden) {\n someAreHidden = true;\n primary[i] = undefined;\n if (((_b = this._options) === null || _b === void 0 ? void 0 : _b.hiddenItemStrategy) !== 0 /* HiddenItemStrategy.Ignore */) {\n extraSecondary[i] = action;\n }\n }\n }\n }\n // count for max\n if (((_c = this._options) === null || _c === void 0 ? void 0 : _c.overflowBehavior) !== undefined) {\n const exemptedIds = intersection(new Set(this._options.overflowBehavior.exempted), Iterable.map(primary, a => a === null || a === void 0 ? void 0 : a.id));\n const maxItems = this._options.overflowBehavior.maxItems - exemptedIds.size;\n let count = 0;\n for (let i = 0; i < primary.length; i++) {\n const action = primary[i];\n if (!action) {\n continue;\n }\n count++;\n if (exemptedIds.has(action.id)) {\n continue;\n }\n if (count >= maxItems) {\n primary[i] = undefined;\n extraSecondary[i] = action;\n }\n }\n }\n // coalesce turns Array into IAction[]\n coalesceInPlace(primary);\n coalesceInPlace(extraSecondary);\n super.setActions(primary, Separator.join(extraSecondary, secondary));\n // add context menu for toggle and configure keybinding actions\n if (toggleActions.length > 0 || primary.length > 0) {\n this._sessionDisposables.add(addDisposableListener(this.getElement(), 'contextmenu', e => {\n var _a, _b, _c, _d, _e;\n const event = new StandardMouseEvent(getWindow(this.getElement()), e);\n const action = this.getItemAction(event.target);\n if (!(action)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n const primaryActions = [];\n // -- Configure Keybinding Action --\n if (action instanceof MenuItemAction && action.menuKeybinding) {\n primaryActions.push(action.menuKeybinding);\n }\n else if (!(action instanceof SubmenuItemAction || action instanceof ToggleMenuAction)) {\n primaryActions.push(createConfigureKeybindingAction(action.id, undefined, this._commandService, this._keybindingService));\n }\n // -- Hide Actions --\n if (toggleActions.length > 0) {\n let noHide = false;\n // last item cannot be hidden when using ignore strategy\n if (toggleActionsCheckedCount === 1 && ((_a = this._options) === null || _a === void 0 ? void 0 : _a.hiddenItemStrategy) === 0 /* HiddenItemStrategy.Ignore */) {\n noHide = true;\n for (let i = 0; i < toggleActions.length; i++) {\n if (toggleActions[i].checked) {\n toggleActions[i] = toAction({\n id: action.id,\n label: action.label,\n checked: true,\n enabled: false,\n run() { }\n });\n break; // there is only one\n }\n }\n }\n // add \"hide foo\" actions\n if (!noHide && (action instanceof MenuItemAction || action instanceof SubmenuItemAction)) {\n if (!action.hideActions) {\n // no context menu for MenuItemAction instances that support no hiding\n // those are fake actions and need to be cleaned up\n return;\n }\n primaryActions.push(action.hideActions.hide);\n }\n else {\n primaryActions.push(toAction({\n id: 'label',\n label: localize('hide', \"Hide\"),\n enabled: false,\n run() { }\n }));\n }\n }\n const actions = Separator.join(primaryActions, toggleActions);\n // add \"Reset Menu\" action\n if (((_b = this._options) === null || _b === void 0 ? void 0 : _b.resetMenu) && !menuIds) {\n menuIds = [this._options.resetMenu];\n }\n if (someAreHidden && menuIds) {\n actions.push(new Separator());\n actions.push(toAction({\n id: 'resetThisMenu',\n label: localize('resetThisMenu', \"Reset Menu\"),\n run: () => this._menuService.resetHiddenStates(menuIds)\n }));\n }\n if (actions.length === 0) {\n return;\n }\n this._contextMenuService.showContextMenu({\n getAnchor: () => event,\n getActions: () => actions,\n // add context menu actions (iff appicable)\n menuId: (_c = this._options) === null || _c === void 0 ? void 0 : _c.contextMenu,\n menuActionOptions: { renderShortTitle: true, ...(_d = this._options) === null || _d === void 0 ? void 0 : _d.menuOptions },\n skipTelemetry: typeof ((_e = this._options) === null || _e === void 0 ? void 0 : _e.telemetrySource) === 'string',\n contextKeyService: this._contextKeyService,\n });\n }));\n }\n }\n};\nWorkbenchToolBar = __decorate([\n __param(2, IMenuService),\n __param(3, IContextKeyService),\n __param(4, IContextMenuService),\n __param(5, IKeybindingService),\n __param(6, ICommandService),\n __param(7, ITelemetryService)\n], WorkbenchToolBar);\nexport { WorkbenchToolBar };\n/**\n * A {@link WorkbenchToolBar workbench toolbar} that is purely driven from a {@link MenuId menu}-identifier.\n *\n * *Note* that Manual updates via `setActions` are NOT supported.\n */\nlet MenuWorkbenchToolBar = class MenuWorkbenchToolBar extends WorkbenchToolBar {\n constructor(container, menuId, options, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService) {\n super(container, { resetMenu: menuId, ...options }, menuService, contextKeyService, contextMenuService, keybindingService, commandService, telemetryService);\n this._onDidChangeMenuItems = this._store.add(new Emitter());\n this.onDidChangeMenuItems = this._onDidChangeMenuItems.event;\n // update logic\n const menu = this._store.add(menuService.createMenu(menuId, contextKeyService, { emitEventsForSubmenuChanges: true }));\n const updateToolbar = () => {\n var _a, _b, _c;\n const primary = [];\n const secondary = [];\n createAndFillInActionBarActions(menu, options === null || options === void 0 ? void 0 : options.menuOptions, { primary, secondary }, (_a = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _a === void 0 ? void 0 : _a.primaryGroup, (_b = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _b === void 0 ? void 0 : _b.shouldInlineSubmenu, (_c = options === null || options === void 0 ? void 0 : options.toolbarOptions) === null || _c === void 0 ? void 0 : _c.useSeparatorsInPrimaryActions);\n container.classList.toggle('has-no-actions', primary.length === 0 && secondary.length === 0);\n super.setActions(primary, secondary);\n };\n this._store.add(menu.onDidChange(() => {\n updateToolbar();\n this._onDidChangeMenuItems.fire(this);\n }));\n updateToolbar();\n }\n /**\n * @deprecated The WorkbenchToolBar does not support this method because it works with menus.\n */\n setActions() {\n throw new BugIndicatingError('This toolbar is populated from a menu.');\n }\n};\nMenuWorkbenchToolBar = __decorate([\n __param(3, IMenuService),\n __param(4, IContextKeyService),\n __param(5, IContextMenuService),\n __param(6, IKeybindingService),\n __param(7, ICommandService),\n __param(8, ITelemetryService)\n], MenuWorkbenchToolBar);\nexport { MenuWorkbenchToolBar };\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","function naturalJoin(values, conjunction = \"or\") {\n switch (values.length) {\n case 0:\n return \"\";\n case 1:\n return values[0];\n case 2:\n return `${values[0]} ${conjunction} ${values[1]}`;\n default:\n return `${values.slice(0, -1).join(\", \")} ${conjunction} ${values.slice(-1)[0]}`;\n }\n}\n\nexport { naturalJoin as n };\n//# sourceMappingURL=natural-join.js.map\n","import { n as naturalJoin } from './utils/natural-join.js';\n\nfunction defineMetadata(metatable) {\n return metatable;\n}\n\nfunction allowedIfAttributeIsPresent(...attr) {\n return (node) => {\n if (attr.some((it) => node.hasAttribute(it))) {\n return null;\n }\n const expected = naturalJoin(attr.map((it) => `\"${it}\"`));\n return `requires ${expected} attribute to be present`;\n };\n}\nfunction allowedIfAttributeIsAbsent(...attr) {\n return (node) => {\n const present = attr.filter((it) => node.hasAttribute(it));\n if (present.length === 0) {\n return null;\n }\n const expected = naturalJoin(present.map((it) => `\"${it}\"`));\n return `cannot be used at the same time as ${expected}`;\n };\n}\nfunction allowedIfAttributeHasValue(key, expectedValue, { defaultValue } = {}) {\n return (node) => {\n const attr = node.getAttribute(key);\n if (attr && typeof attr !== \"string\") {\n return null;\n }\n const actualValue = attr ?? defaultValue;\n if (actualValue && expectedValue.includes(actualValue.toLocaleLowerCase())) {\n return null;\n }\n const expected = naturalJoin(expectedValue.map((it) => `\"${it}\"`));\n return `\"${key}\" attribute must be ${expected}`;\n };\n}\nfunction allowedIfParentIsPresent(...tags) {\n return (node) => {\n const match = tags.some((it) => node.closest(it));\n if (match) {\n return null;\n }\n const expected = naturalJoin(tags.map((it) => `<${it}>`));\n return `requires ${expected} as parent`;\n };\n}\nconst metadataHelper = {\n allowedIfAttributeIsPresent,\n allowedIfAttributeIsAbsent,\n allowedIfAttributeHasValue,\n allowedIfParentIsPresent\n};\n\nexport { defineMetadata as d, metadataHelper as m };\n//# sourceMappingURL=meta-helper.js.map\n","import { d as defineMetadata, m as metadataHelper } from './meta-helper.js';\n\nconst {\n allowedIfAttributeIsPresent,\n allowedIfAttributeIsAbsent,\n allowedIfAttributeHasValue,\n allowedIfParentIsPresent\n} = metadataHelper;\nconst validId = \"/\\\\S+/\";\nconst ReferrerPolicy = [\n \"\",\n \"no-referrer\",\n \"no-referrer-when-downgrade\",\n \"same-origin\",\n \"origin\",\n \"strict-origin\",\n \"origin-when-cross-origin\",\n \"strict-origin-when-cross-origin\",\n \"unsafe-url\"\n];\nfunction isInsideLandmark(node) {\n const selectors = [\n \"article\",\n \"aside\",\n \"main\",\n \"nav\",\n \"section\",\n '[role=\"article\"]',\n '[role=\"complementary\"]',\n '[role=\"main\"]',\n '[role=\"navigation\"]',\n '[role=\"region\"]'\n ];\n return Boolean(node.closest(selectors.join(\",\")));\n}\nfunction linkBodyOk(node) {\n if (node.hasAttribute(\"itemprop\")) {\n return true;\n }\n const rel = node.getAttribute(\"rel\");\n if (!rel) {\n return false;\n }\n if (typeof rel !== \"string\") {\n return false;\n }\n const bodyOk = [\n \"dns-prefetch\",\n \"modulepreload\",\n \"pingback\",\n \"preconnect\",\n \"prefetch\",\n \"preload\",\n \"stylesheet\"\n ];\n const tokens = rel.toLowerCase().split(/\\s+/);\n return tokens.some((keyword) => bodyOk.includes(keyword));\n}\nvar html5 = defineMetadata({\n \"*\": {\n attributes: {\n contenteditable: {\n omit: true,\n enum: [\"true\", \"false\"]\n },\n contextmenu: {\n deprecated: true\n },\n dir: {\n enum: [\"ltr\", \"rtl\", \"auto\"]\n },\n draggable: {\n enum: [\"true\", \"false\"]\n },\n hidden: {\n boolean: true\n },\n id: {\n enum: [validId]\n },\n inert: {\n boolean: true\n },\n spellcheck: {\n omit: true,\n enum: [\"true\", \"false\"]\n },\n tabindex: {\n enum: [\"/-?\\\\d+/\"]\n }\n }\n },\n a: {\n flow: true,\n focusable(node) {\n return node.hasAttribute(\"href\");\n },\n phrasing: true,\n interactive: true,\n transparent: true,\n attributes: {\n charset: {\n deprecated: true\n },\n coords: {\n deprecated: true\n },\n datafld: {\n deprecated: true\n },\n datasrc: {\n deprecated: true\n },\n download: {\n allowed: allowedIfAttributeIsPresent(\"href\"),\n omit: true,\n enum: [\"/.+/\"]\n },\n href: {\n enum: [\"/.*/\"]\n },\n hreflang: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n itemprop: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n methods: {\n deprecated: true\n },\n name: {\n deprecated: true\n },\n ping: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n referrerpolicy: {\n allowed: allowedIfAttributeIsPresent(\"href\"),\n enum: ReferrerPolicy\n },\n rel: {\n allowed(node, attr) {\n if (!node.hasAttribute(\"href\")) {\n return `requires \"href\" attribute to be present`;\n }\n if (!attr || attr === \"\" || typeof attr !== \"string\") {\n return null;\n }\n const disallowed = [\n /* whatwg */\n \"canonical\",\n \"dns-prefetch\",\n \"expect\",\n \"icon\",\n \"manifest\",\n \"modulepreload\",\n \"pingback\",\n \"preconnect\",\n \"prefetch\",\n \"preload\",\n \"stylesheet\",\n /* microformats.org */\n \"apple-touch-icon\",\n \"apple-touch-icon-precomposed\",\n \"apple-touch-startup-image\",\n \"authorization_endpoint\",\n \"component\",\n \"chrome-webstore-item\",\n \"dns-prefetch\",\n \"edit\",\n \"gbfs\",\n \"gtfs-static\",\n \"gtfs-realtime\",\n \"import\",\n \"mask-icon\",\n \"meta\",\n \"micropub\",\n \"openid.delegate\",\n \"openid.server\",\n \"openid2.local_id\",\n \"openid2.provider\",\n \"p3pv1\",\n \"pgpkey\",\n \"schema.dcterms\",\n \"service\",\n \"shortlink\",\n \"sitemap\",\n \"subresource\",\n \"sword\",\n \"timesheet\",\n \"token_endpoint\",\n \"wlwmanifest\",\n \"stylesheet/less\",\n \"token_endpoint\",\n \"yandex-tableau-widget\"\n ];\n const tokens = attr.toLowerCase().split(/\\s+/);\n for (const keyword of tokens) {\n if (disallowed.includes(keyword)) {\n return ` does not allow rel=\"${keyword}\"`;\n }\n if (keyword.startsWith(\"dcterms.\")) {\n return ` does not allow rel=\"${keyword}\"`;\n }\n }\n return null;\n },\n list: true,\n enum: [\"/.+/\"]\n },\n shape: {\n deprecated: true\n },\n target: {\n allowed: allowedIfAttributeIsPresent(\"href\"),\n enum: [\"/[^_].*/\", \"_blank\", \"_self\", \"_parent\", \"_top\"]\n },\n type: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n urn: {\n deprecated: true\n }\n },\n permittedDescendants: [{ exclude: \"@interactive\" }],\n aria: {\n implicitRole(node) {\n return node.hasAttribute(\"href\") ? \"link\" : \"generic\";\n },\n naming(node) {\n return node.hasAttribute(\"href\") ? \"allowed\" : \"prohibited\";\n }\n }\n },\n abbr: {\n flow: true,\n phrasing: true,\n permittedContent: [\"@phrasing\"],\n aria: {\n naming: \"prohibited\"\n }\n },\n acronym: {\n deprecated: {\n message: \"use instead\",\n documentation: \"`` can be used as a replacement.\",\n source: \"html5\"\n }\n },\n address: {\n flow: true,\n aria: {\n implicitRole: \"group\"\n },\n permittedContent: [\"@flow\"],\n permittedDescendants: [{ exclude: [\"address\", \"header\", \"footer\", \"@heading\", \"@sectioning\"] }]\n },\n applet: {\n deprecated: {\n source: \"html5\"\n },\n attributes: {\n datafld: {\n deprecated: true\n },\n datasrc: {\n deprecated: true\n }\n }\n },\n area: {\n flow(node) {\n return Boolean(node.closest(\"map\"));\n },\n focusable(node) {\n return node.hasAttribute(\"href\");\n },\n phrasing(node) {\n return Boolean(node.closest(\"map\"));\n },\n void: true,\n attributes: {\n alt: {},\n coords: {\n allowed(node) {\n const attr = node.getAttribute(\"shape\");\n if (attr === \"default\") {\n return `cannot be used when \"shape\" attribute is \"default\"`;\n } else {\n return null;\n }\n }\n },\n download: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n nohref: {\n deprecated: true\n },\n itemprop: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n ping: {\n allowed: allowedIfAttributeIsPresent(\"href\")\n },\n referrerpolicy: {\n allowed: allowedIfAttributeIsPresent(\"href\"),\n enum: ReferrerPolicy\n },\n rel: {\n allowed(node, attr) {\n if (!node.hasAttribute(\"href\")) {\n return `requires \"href\" attribute to be present`;\n }\n if (!attr || attr === \"\" || typeof attr !== \"string\") {\n return null;\n }\n const disallowed = [\n /* whatwg */\n \"canonical\",\n \"dns-prefetch\",\n \"expect\",\n \"icon\",\n \"manifest\",\n \"modulepreload\",\n \"pingback\",\n \"preconnect\",\n \"prefetch\",\n \"preload\",\n \"stylesheet\",\n /* microformats.org */\n \"apple-touch-icon\",\n \"apple-touch-icon-precomposed\",\n \"apple-touch-startup-image\",\n \"authorization_endpoint\",\n \"component\",\n \"chrome-webstore-item\",\n \"dns-prefetch\",\n \"edit\",\n \"gbfs\",\n \"gtfs-static\",\n \"gtfs-realtime\",\n \"import\",\n \"mask-icon\",\n \"meta\",\n \"micropub\",\n \"openid.delegate\",\n \"openid.server\",\n \"openid2.local_id\",\n \"openid2.provider\",\n \"p3pv1\",\n \"pgpkey\",\n \"schema.dcterms\",\n \"service\",\n \"shortlink\",\n \"sitemap\",\n \"subresource\",\n \"sword\",\n \"timesheet\",\n \"token_endpoint\",\n \"wlwmanifest\",\n \"stylesheet/less\",\n \"token_endpoint\",\n \"yandex-tableau-widget\"\n ];\n const tokens = attr.toLowerCase().split(/\\s+/);\n for (const keyword of tokens) {\n if (disallowed.includes(keyword)) {\n return ` does not allow rel=\"${keyword}\"`;\n }\n if (keyword.startsWith(\"dcterms.\")) {\n return ` does not allow rel=\"${keyword}\"`;\n }\n }\n return null;\n }\n },\n shape: {\n allowed(node, attr) {\n const shape = attr ?? \"rect\";\n switch (shape) {\n case \"circ\":\n case \"circle\":\n case \"poly\":\n case \"polygon\":\n case \"rect\":\n case \"rectangle\":\n return allowedIfAttributeIsPresent(\"coords\")(node, attr);\n default:\n return null;\n }\n },\n enum: [\"rect\", \"circle\", \"poly\", \"default\"]\n },\n target: {\n allowed: allowedIfAttributeIsPresent(\"href\"),\n enum: [\"/[^_].*/\", \"_blank\", \"_self\", \"_parent\", \"_top\"]\n }\n },\n aria: {\n implicitRole(node) {\n return node.hasAttribute(\"href\") ? \"link\" : \"generic\";\n },\n naming(node) {\n return node.hasAttribute(\"href\") ? \"allowed\" : \"prohibited\";\n }\n },\n requiredAncestors: [\"map\"]\n },\n article: {\n flow: true,\n sectioning: true,\n permittedContent: [\"@flow\"],\n permittedDescendants: [{ exclude: [\"main\"] }],\n aria: {\n implicitRole: \"article\"\n }\n },\n aside: {\n flow: true,\n sectioning: true,\n permittedContent: [\"@flow\"],\n permittedDescendants: [{ exclude: [\"main\"] }],\n aria: {\n implicitRole: \"complementary\"\n }\n },\n audio: {\n flow: true,\n focusable(node) {\n return node.hasAttribute(\"controls\");\n },\n phrasing: true,\n embedded: true,\n interactive(node) {\n return node.hasAttribute(\"controls\");\n },\n transparent: [\"@flow\"],\n attributes: {\n crossorigin: {\n omit: true,\n enum: [\"anonymous\", \"use-credentials\"]\n },\n itemprop: {\n allowed: allowedIfAttributeIsPresent(\"src\")\n },\n preload: {\n omit: true,\n enum: [\"none\", \"metadata\", \"auto\"]\n }\n },\n permittedContent: [\"@flow\", \"track\", \"source\"],\n permittedDescendants: [{ exclude: [\"audio\", \"video\"] }],\n permittedOrder: [\"source\", \"track\", \"@flow\"]\n },\n b: {\n flow: true,\n phrasing: true,\n permittedContent: [\"@phrasing\"],\n aria: {\n implicitRole: \"generic\",\n naming: \"prohibited\"\n }\n },\n base: {\n metadata: true,\n void: true,\n permittedParent: [\"head\"],\n aria: {\n naming: \"prohibited\"\n }\n },\n basefont: {\n deprecated: {\n message: \"use CSS instead\",\n documentation: \"Use CSS `font-size` property instead.\",\n source: \"html4\"\n }\n },\n bdi: {\n flow: true,\n phrasing: true,\n permittedContent: [\"@phrasing\"],\n aria: {\n implicitRole: \"generic\",\n naming: \"prohibited\"\n }\n },\n bdo: {\n flow: true,\n phrasing: true,\n permittedContent: [\"@phrasing\"],\n aria: {\n implicitRole: \"generic\",\n naming: \"prohibited\"\n }\n },\n bgsound: {\n deprecated: {\n message: \"use